From 034b478a604db38a039b096f021d1477fba9db52 Mon Sep 17 00:00:00 2001 From: Simon Warta <2603011+webmaster128@users.noreply.github.com> Date: Wed, 12 Aug 2020 15:03:28 +0200 Subject: [PATCH] Add helpful debug info to VerifyAddressFormat (#7016) Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> --- types/address.go | 2 +- types/address_test.go | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/types/address.go b/types/address.go index 36b327cf5b..1d02615707 100644 --- a/types/address.go +++ b/types/address.go @@ -111,7 +111,7 @@ func VerifyAddressFormat(bz []byte) error { return verifier(bz) } if len(bz) != AddrLen { - return errors.New("incorrect address length") + return fmt.Errorf("incorrect address length (expected: %d, actual: %d)", AddrLen, len(bz)) } return nil } diff --git a/types/address_test.go b/types/address_test.go index 5d814c2cb9..6072b963dd 100644 --- a/types/address_test.go +++ b/types/address_test.go @@ -325,6 +325,22 @@ func TestAddressInterface(t *testing.T) { } +func TestVerifyAddressFormat(t *testing.T) { + addr0 := make([]byte, 0) + addr5 := make([]byte, 5) + addr20 := make([]byte, 20) + addr32 := make([]byte, 32) + + err := types.VerifyAddressFormat(addr0) + require.EqualError(t, err, "incorrect address length (expected: 20, actual: 0)") + err = types.VerifyAddressFormat(addr5) + require.EqualError(t, err, "incorrect address length (expected: 20, actual: 5)") + err = types.VerifyAddressFormat(addr20) + require.Nil(t, err) + err = types.VerifyAddressFormat(addr32) + require.EqualError(t, err, "incorrect address length (expected: 20, actual: 32)") +} + func TestCustomAddressVerifier(t *testing.T) { // Create a 10 byte address addr := []byte{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}