@@ -5,9 +5,11 @@ import (
55
66 "github.com/ethereum/go-ethereum/common"
77 "github.com/ethereum/go-ethereum/core/tracing"
8+ "github.com/ethereum/go-ethereum/crypto"
89 "github.com/holiman/uint256"
910 "github.com/stretchr/testify/require"
1011
12+ "github.com/cosmos/evm/crypto/ethsecp256k1"
1113 testutil "github.com/cosmos/evm/testutil"
1214 testconstants "github.com/cosmos/evm/testutil/constants"
1315 "github.com/cosmos/evm/x/vm/statedb"
@@ -31,7 +33,11 @@ func setupBalanceHandlerTest(t *testing.T) {
3133}
3234
3335func TestParseHexAddress (t * testing.T ) {
34- var accAddr sdk.AccAddress
36+ // account key, use a constant account to keep unit test deterministic.
37+ priv , err := crypto .HexToECDSA ("b71c71a67e1177ad4e901695e1b4b9ee17ae16c6668d313eac2f96dbcda3f291" )
38+ require .NoError (t , err )
39+ privKey := & ethsecp256k1.PrivKey {Key : crypto .FromECDSA (priv )}
40+ accAddr := sdk .AccAddress (privKey .PubKey ().Address ().Bytes ())
3541
3642 testCases := []struct {
3743 name string
@@ -46,6 +52,16 @@ func TestParseHexAddress(t *testing.T) {
4652 return sdk .NewEvent ("bank" , sdk .NewAttribute (banktypes .AttributeKeySpender , accAddr .String ()))
4753 },
4854 key : banktypes .AttributeKeySpender ,
55+ expAddr : common .BytesToAddress (accAddr ),
56+ expError : false ,
57+ },
58+ {
59+ name : "valid address - BytesToAddress" ,
60+ maleate : func () sdk.Event {
61+ return sdk .NewEvent ("bank" , sdk .NewAttribute (banktypes .AttributeKeySpender , "cosmos1ddjhjcmgv95kutgqqqqqqqqqqqqsjugwrg" ))
62+ },
63+ key : banktypes .AttributeKeySpender ,
64+ expAddr : common .HexToAddress ("0x0000006B6579636861696e2d0000000000000001" ),
4965 expError : false ,
5066 },
5167 {
@@ -70,10 +86,6 @@ func TestParseHexAddress(t *testing.T) {
7086 t .Run (tc .name , func (t * testing.T ) {
7187 setupBalanceHandlerTest (t )
7288
73- _ , addrs , err := testutil .GeneratePrivKeyAddressPairs (1 )
74- require .NoError (t , err )
75- accAddr = addrs [0 ]
76-
7789 event := tc .maleate ()
7890
7991 addr , err := parseHexAddress (event , tc .key )
@@ -83,7 +95,7 @@ func TestParseHexAddress(t *testing.T) {
8395 }
8496
8597 require .NoError (t , err )
86- require .Equal (t , common . Address ( accAddr . Bytes ()) , addr )
98+ require .Equal (t , tc . expAddr , addr )
8799 })
88100 }
89101}
@@ -148,8 +160,8 @@ func TestAfterBalanceChange(t *testing.T) {
148160 require .NoError (t , err )
149161 spenderAcc := addrs [0 ]
150162 receiverAcc := addrs [1 ]
151- spender := common .Address (spenderAcc . Bytes () )
152- receiver := common .Address (receiverAcc . Bytes () )
163+ spender := common .BytesToAddress (spenderAcc )
164+ receiver := common .BytesToAddress (receiverAcc )
153165
154166 // initial balance for spender
155167 stateDB .AddBalance (spender , uint256 .NewInt (5 ), tracing .BalanceChangeUnspecified )
0 commit comments