From 16fff0804986ab5ce2d5603d4455ea285a99a523 Mon Sep 17 00:00:00 2001 From: Marius van der Wijden Date: Thu, 7 May 2020 19:54:30 +0200 Subject: [PATCH] accounts/abi: minor changes in error messages --- accounts/abi/argument.go | 3 +++ accounts/abi/event_test.go | 4 ++-- accounts/abi/unpack_test.go | 2 +- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/accounts/abi/argument.go b/accounts/abi/argument.go index 4e3e423cf2..44bc12ee2d 100644 --- a/accounts/abi/argument.go +++ b/accounts/abi/argument.go @@ -159,6 +159,9 @@ func (arguments Arguments) unpackTuple(v interface{}, marshalledValues []interfa } } 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++ { // Skip indexed fields if arguments[i].Indexed { diff --git a/accounts/abi/event_test.go b/accounts/abi/event_test.go index 28da4c5024..1f19a27413 100644 --- a/accounts/abi/event_test.go +++ b/accounts/abi/event_test.go @@ -312,14 +312,14 @@ func TestEventTupleUnpack(t *testing.T) { &[]interface{}{common.Address{}, new(big.Int)}, &[]interface{}{}, 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", }, { pledgeData1, new(map[string]interface{}), &[]interface{}{}, 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", }, { mixedCaseData1, diff --git a/accounts/abi/unpack_test.go b/accounts/abi/unpack_test.go index c98cb4b150..4270d480d9 100644 --- a/accounts/abi/unpack_test.go +++ b/accounts/abi/unpack_test.go @@ -367,7 +367,7 @@ func TestMethodMultiReturn(t *testing.T) { }, { &[]interface{}{new(int)}, &[]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", }} for _, tc := range testCases {