diff --git a/accounts/abi/bind/bindv2.go b/accounts/abi/bind/bindv2.go index e0693a0741..2b48166944 100644 --- a/accounts/abi/bind/bindv2.go +++ b/accounts/abi/bind/bindv2.go @@ -143,9 +143,10 @@ func normalizeArgs(inp abi.Arguments) abi.Arguments { if input.Name == "" || isKeyWord(input.Name) { normalizedArguments[i].Name = fmt.Sprintf("arg%d", i) } + normalizedArguments[i].Name = capitalise(normalizedArguments[i].Name) for index := 0; ; index++ { - if !used[capitalise(normalizedArguments[i].Name)] { - used[capitalise(normalizedArguments[i].Name)] = true + if !used[normalizedArguments[i].Name] { + used[normalizedArguments[i].Name] = true break } normalizedArguments[i].Name = fmt.Sprintf("%s%d", normalizedArguments[i].Name, index) diff --git a/accounts/abi/bind/bindv2_test.go b/accounts/abi/bind/bindv2_test.go index b8867e0ff2..16740d6e60 100644 --- a/accounts/abi/bind/bindv2_test.go +++ b/accounts/abi/bind/bindv2_test.go @@ -360,8 +360,10 @@ func TestNormalizeArgs(t *testing.T) { inp []string expected []string } - for _, tc := range []normalizeArgsTc{ - {[]string{"arg1", "Arg1"}, []string{"Arg1", "Arg1"}}} { + for i, tc := range []normalizeArgsTc{ + {[]string{"arg1", "Arg1"}, []string{"Arg1", "Arg10"}}, + {[]string{"", ""}, []string{"Arg0", "Arg1"}}, + {[]string{"var", "const"}, []string{"Arg0", "Arg1"}}} { var inpArgs abi.Arguments for _, inpArgName := range tc.inp { inpArgs = append(inpArgs, abi.Argument{ @@ -369,11 +371,9 @@ func TestNormalizeArgs(t *testing.T) { }) } res := normalizeArgs(inpArgs) - for i, resArg := range res { - if resArg.Name != tc.expected[i] { - fmt.Println(resArg.Name) - fmt.Println(tc.expected[i]) - t.Fatalf("mismatch!!!") + for j, resArg := range res { + if resArg.Name != tc.expected[j] { + t.Fatalf("mismatch for test index %d, arg index %d: expected %v. got %v", i, j, resArg.Name, tc.expected[j]) } } }