From ab4d9e38ae504668933715977eb24690d4444db1 Mon Sep 17 00:00:00 2001 From: liminglei02 Date: Thu, 25 Feb 2021 11:30:50 +0800 Subject: [PATCH] fix contract name to evm address bug when contract name length is 16 --- account/address_trans.go | 4 +++- account/address_trans_test.go | 5 +++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/account/address_trans.go b/account/address_trans.go index 8fb9178..e9d05bb 100644 --- a/account/address_trans.go +++ b/account/address_trans.go @@ -142,7 +142,9 @@ func evmAddressToContractName(evmAddr crypto.Address) (string, error) { contractNameWithPrefix := evmAddr.Bytes() contractNameStrWithPrefix := string(contractNameWithPrefix) prefixIndex := strings.LastIndex(contractNameStrWithPrefix, evmAddressFiller) - + if prefixIndex == -1 { + return contractNameStrWithPrefix[4:], nil + } return contractNameStrWithPrefix[prefixIndex+1:], nil } diff --git a/account/address_trans_test.go b/account/address_trans_test.go index ebf8ff1..dcc8378 100644 --- a/account/address_trans_test.go +++ b/account/address_trans_test.go @@ -27,6 +27,11 @@ func TestTrans(t *testing.T) { Type: "contract-name", EVMAddress: "313131312D2D2D73746F72616765646174613131", }, + { + XchainAddress: "mike_test_sol_31", + Type: "contract-name", + EVMAddress: "313131316D696B655F746573745F736F6C5F3331", + }, } for _, c := range cases {