diff --git a/accounts/abi/abi.go b/accounts/abi/abi.go index c3d809e5a9..93c44a7ce3 100644 --- a/accounts/abi/abi.go +++ b/accounts/abi/abi.go @@ -21,6 +21,7 @@ import ( "encoding/json" "fmt" "io" + "strconv" "github.com/ethereum/go-ethereum/common" ) @@ -128,6 +129,7 @@ func (abi *ABI) UnmarshalJSON(data []byte) error { abi.Methods = make(map[string]Method) abi.Events = make(map[string]Event) + functionCnt, eventCnt := 0, 0 for _, field := range fields { switch field.Type { case "constructor": @@ -142,12 +144,16 @@ func (abi *ABI) UnmarshalJSON(data []byte) error { Inputs: field.Inputs, Outputs: field.Outputs, } + abi.Methods[field.Name+strconv.Itoa(functionCnt)] = abi.Methods[field.Name] + functionCnt++ case "event": abi.Events[field.Name] = Event{ Name: field.Name, Anonymous: field.Anonymous, Inputs: field.Inputs, } + abi.Events[field.Name+strconv.Itoa(eventCnt)] = abi.Events[field.Name] + eventCnt++ } }