diff --git a/accounts/abi/abi.go b/accounts/abi/abi.go index 4906858378bf5..712bd58348da4 100644 --- a/accounts/abi/abi.go +++ b/accounts/abi/abi.go @@ -250,10 +250,10 @@ func UnpackRevert(data []byte) (string, error) { if !bytes.Equal(data[:4], revertSelector) { return "", errors.New("invalid data for unpacking") } + var reason string typ, _ := NewType("string", "", nil) - unpacked, err := (Arguments{{Type: typ}}).Unpack2(data[4:]) - if err != nil { + if err := (Arguments{{Type: typ}}).Unpack(&reason, data[4:]); err != nil { return "", err } - return unpacked[0].(string), nil + return reason, nil } diff --git a/accounts/abi/argument.go b/accounts/abi/argument.go index a5ee9839e78d6..27af0d8a66e31 100644 --- a/accounts/abi/argument.go +++ b/accounts/abi/argument.go @@ -18,7 +18,6 @@ package abi import ( "encoding/json" - "errors" "fmt" "reflect" "strings" @@ -113,17 +112,6 @@ func (arguments Arguments) Unpack(v interface{}, data []byte) error { return arguments.unpackAtomic(v, marshalledValues[0]) } -// Unpack2 performs the operation hexdata -> Go format. -func (arguments Arguments) Unpack2(data []byte) ([]interface{}, error) { - if len(data) == 0 { - if len(arguments.NonIndexed()) != 0 { - return nil, errors.New("abi: attempting to unmarshall an empty string while arguments are expected") - } - return make([]interface{}, 0), nil - } - return arguments.UnpackValues(data) -} - // UnpackIntoMap performs the operation hexdata -> mapping of argument name to argument value func (arguments Arguments) UnpackIntoMap(v map[string]interface{}, data []byte) error { // Make sure map is not nil