accounts/abi: minor changes in error messages

This commit is contained in:
Marius van der Wijden 2020-05-07 19:54:30 +02:00
parent 6385c47467
commit 16fff08049
3 changed files with 6 additions and 3 deletions

View file

@ -159,6 +159,9 @@ func (arguments Arguments) unpackTuple(v interface{}, marshalledValues []interfa
} }
} }
case reflect.Slice, reflect.Array: case reflect.Slice, reflect.Array:
if value.Len() < len(marshalledValues) {
return fmt.Errorf("abi: insufficient number of arguments for unpack, want %d, got %d", len(arguments), value.Len())
}
for i := 0; i < value.Len(); i++ { for i := 0; i < value.Len(); i++ {
// Skip indexed fields // Skip indexed fields
if arguments[i].Indexed { if arguments[i].Indexed {

View file

@ -312,14 +312,14 @@ func TestEventTupleUnpack(t *testing.T) {
&[]interface{}{common.Address{}, new(big.Int)}, &[]interface{}{common.Address{}, new(big.Int)},
&[]interface{}{}, &[]interface{}{},
jsonEventPledge, jsonEventPledge,
"abi: insufficient number of elements in the list/array for unpack, want 3, got 2", "abi: insufficient number of arguments for unpack, want 3, got 2",
"Can not unpack Pledge event into too short slice", "Can not unpack Pledge event into too short slice",
}, { }, {
pledgeData1, pledgeData1,
new(map[string]interface{}), new(map[string]interface{}),
&[]interface{}{}, &[]interface{}{},
jsonEventPledge, jsonEventPledge,
"abi: cannot unmarshal tuple into map[string]interface {}", "abi:[2] cannot unmarshal tuple in to map[string]interface {}",
"Can not unpack Pledge event into map", "Can not unpack Pledge event into map",
}, { }, {
mixedCaseData1, mixedCaseData1,

View file

@ -367,7 +367,7 @@ func TestMethodMultiReturn(t *testing.T) {
}, { }, {
&[]interface{}{new(int)}, &[]interface{}{new(int)},
&[]interface{}{}, &[]interface{}{},
"abi: insufficient number of elements in the list/array for unpack, want 2, got 1", "abi: insufficient number of arguments for unpack, want 2, got 1",
"Can not unpack into a slice with wrong types", "Can not unpack into a slice with wrong types",
}} }}
for _, tc := range testCases { for _, tc := range testCases {