aboutsummaryrefslogtreecommitdiffstats
path: root/accounts/abi/reflect.go
diff options
context:
space:
mode:
authorMartin Holst Swende <martin@swende.se>2018-03-21 17:11:37 +0800
committerGitHub <noreply@github.com>2018-03-21 17:11:37 +0800
commit933972d139b0fe291cb01c7ad2c0f9d3109a68dd (patch)
tree8b333fa17ddc382581557c0c99441290a8a812e1 /accounts/abi/reflect.go
parentb1917ac9a3cf4716460bd53a11db40384103e5e2 (diff)
parent60a999f238fca7c83b26ecf94257ee648afe4df9 (diff)
downloadgo-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.go16
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
+}