diff options
author | Martin Holst Swende <martin@swende.se> | 2018-03-21 17:11:37 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-03-21 17:11:37 +0800 |
commit | 933972d139b0fe291cb01c7ad2c0f9d3109a68dd (patch) | |
tree | 8b333fa17ddc382581557c0c99441290a8a812e1 /accounts/abi/reflect.go | |
parent | b1917ac9a3cf4716460bd53a11db40384103e5e2 (diff) | |
parent | 60a999f238fca7c83b26ecf94257ee648afe4df9 (diff) | |
download | go-tangerine-933972d139b0fe291cb01c7ad2c0f9d3109a68dd.tar go-tangerine-933972d139b0fe291cb01c7ad2c0f9d3109a68dd.tar.gz go-tangerine-933972d139b0fe291cb01c7ad2c0f9d3109a68dd.tar.bz2 go-tangerine-933972d139b0fe291cb01c7ad2c0f9d3109a68dd.tar.lz go-tangerine-933972d139b0fe291cb01c7ad2c0f9d3109a68dd.tar.xz go-tangerine-933972d139b0fe291cb01c7ad2c0f9d3109a68dd.tar.zst go-tangerine-933972d139b0fe291cb01c7ad2c0f9d3109a68dd.zip |
Merge pull request #16256 from epiclabs-io/unpack_one_arg_event
Fix issue unmarshaling single parameter events from abigen generated go code #16208
Diffstat (limited to 'accounts/abi/reflect.go')
-rw-r--r-- | accounts/abi/reflect.go | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/accounts/abi/reflect.go b/accounts/abi/reflect.go index 7a9cdacd5..2e6bf7098 100644 --- a/accounts/abi/reflect.go +++ b/accounts/abi/reflect.go @@ -110,3 +110,19 @@ func requireUnpackKind(v reflect.Value, t reflect.Type, k reflect.Kind, } return nil } + +// requireUniqueStructFieldNames makes sure field names don't collide +func requireUniqueStructFieldNames(args Arguments) error { + exists := make(map[string]bool) + for _, arg := range args { + field := capitalise(arg.Name) + if field == "" { + return fmt.Errorf("abi: purely underscored output cannot unpack to struct") + } + if exists[field] { + return fmt.Errorf("abi: multiple outputs mapping to the same struct field '%s'", field) + } + exists[field] = true + } + return nil +} |