github.com/ethereum-optimism/optimism/l2geth@v0.0.0-20230612200230-50b04ade19e3/rollup/util/vm_errors.go (about) 1 package util 2 3 import ( 4 "fmt" 5 "strings" 6 7 "github.com/ethereum-optimism/optimism/l2geth/accounts/abi" 8 ) 9 10 var codec abi.ABI 11 12 func init() { 13 const abidata = ` 14 [ 15 { 16 "type": "function", 17 "name": "Error", 18 "constant": true, 19 "inputs": [ 20 { 21 "name": "msg", 22 "type": "string" 23 } 24 ], 25 "outputs": [] 26 } 27 ] 28 ` 29 30 var err error 31 codec, err = abi.JSON(strings.NewReader(abidata)) 32 if err != nil { 33 panic(fmt.Errorf("unable to create abi decoder: %v", err)) 34 } 35 } 36 37 // EncodeSolidityError generates an abi-encoded error message. 38 func EncodeSolidityError(err error) ([]byte, error) { 39 return codec.Pack("Error", err.Error()) 40 }