diff options
author | Matt K <1036969+mkrump@users.noreply.github.com> | 2018-12-29 18:32:58 +0800 |
---|---|---|
committer | Guillaume Ballet <gballet@gmail.com> | 2018-12-29 18:32:58 +0800 |
commit | a4af734328d50b9ea89405c7e5050065a8087946 (patch) | |
tree | 5741ded89a84cef4ca38faf10b5cc9094a1c7529 /accounts/abi/bind | |
parent | 735343430dec74a340f5c9a18822537e18165caa (diff) | |
download | dexon-a4af734328d50b9ea89405c7e5050065a8087946.tar dexon-a4af734328d50b9ea89405c7e5050065a8087946.tar.gz dexon-a4af734328d50b9ea89405c7e5050065a8087946.tar.bz2 dexon-a4af734328d50b9ea89405c7e5050065a8087946.tar.lz dexon-a4af734328d50b9ea89405c7e5050065a8087946.tar.xz dexon-a4af734328d50b9ea89405c7e5050065a8087946.tar.zst dexon-a4af734328d50b9ea89405c7e5050065a8087946.zip |
accounts/abi: change unpacking of abi fields w/ underscores (#16513)
* accounts/abi: fix name styling when unpacking abi fields w/ underscores
ABI fields with underscores that are being unpacked
into structs expect structs with following form:
int_one -> Int_one
whereas in abigen the generated structs are camelcased
int_one -> IntOne
so updated the unpack method to expect camelcased structs as well.
Diffstat (limited to 'accounts/abi/bind')
-rw-r--r-- | accounts/abi/bind/bind.go | 41 |
1 files changed, 4 insertions, 37 deletions
diff --git a/accounts/abi/bind/bind.go b/accounts/abi/bind/bind.go index 4dca4b4ea..21e16060c 100644 --- a/accounts/abi/bind/bind.go +++ b/accounts/abi/bind/bind.go @@ -387,48 +387,15 @@ var methodNormalizer = map[Lang]func(string) string{ // capitalise makes a camel-case string which starts with an upper case character. func capitalise(input string) string { - for len(input) > 0 && input[0] == '_' { - input = input[1:] - } - if len(input) == 0 { - return "" - } - return toCamelCase(strings.ToUpper(input[:1]) + input[1:]) + return abi.ToCamelCase(input) } // decapitalise makes a camel-case string which starts with a lower case character. func decapitalise(input string) string { - for len(input) > 0 && input[0] == '_' { - input = input[1:] - } - if len(input) == 0 { - return "" - } - return toCamelCase(strings.ToLower(input[:1]) + input[1:]) -} - -// toCamelCase converts an under-score string to a camel-case string -func toCamelCase(input string) string { - toupper := false + // NOTE: This is the current behavior, it doesn't match the comment + // above and needs to be investigated. + return abi.ToCamelCase(input) - result := "" - for k, v := range input { - switch { - case k == 0: - result = strings.ToUpper(string(input[0])) - - case toupper: - result += strings.ToUpper(string(v)) - toupper = false - - case v == '_': - toupper = true - - default: - result += string(v) - } - } - return result } // structured checks whether a list of ABI data types has enough information to |