@@ -5,9 +5,11 @@ import (
5
5
6
6
"github.com/ethereum/go-ethereum/common"
7
7
"github.com/ethereum/go-ethereum/core/tracing"
8
+ "github.com/ethereum/go-ethereum/crypto"
8
9
"github.com/holiman/uint256"
9
10
"github.com/stretchr/testify/require"
10
11
12
+ "github.com/cosmos/evm/crypto/ethsecp256k1"
11
13
testutil "github.com/cosmos/evm/testutil"
12
14
testconstants "github.com/cosmos/evm/testutil/constants"
13
15
"github.com/cosmos/evm/x/vm/statedb"
@@ -31,7 +33,11 @@ func setupBalanceHandlerTest(t *testing.T) {
31
33
}
32
34
33
35
func 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 ())
35
41
36
42
testCases := []struct {
37
43
name string
@@ -46,6 +52,16 @@ func TestParseHexAddress(t *testing.T) {
46
52
return sdk .NewEvent ("bank" , sdk .NewAttribute (banktypes .AttributeKeySpender , accAddr .String ()))
47
53
},
48
54
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" ),
49
65
expError : false ,
50
66
},
51
67
{
@@ -70,10 +86,6 @@ func TestParseHexAddress(t *testing.T) {
70
86
t .Run (tc .name , func (t * testing.T ) {
71
87
setupBalanceHandlerTest (t )
72
88
73
- _ , addrs , err := testutil .GeneratePrivKeyAddressPairs (1 )
74
- require .NoError (t , err )
75
- accAddr = addrs [0 ]
76
-
77
89
event := tc .maleate ()
78
90
79
91
addr , err := parseHexAddress (event , tc .key )
@@ -83,7 +95,7 @@ func TestParseHexAddress(t *testing.T) {
83
95
}
84
96
85
97
require .NoError (t , err )
86
- require .Equal (t , common . Address ( accAddr . Bytes ()) , addr )
98
+ require .Equal (t , tc . expAddr , addr )
87
99
})
88
100
}
89
101
}
@@ -148,8 +160,8 @@ func TestAfterBalanceChange(t *testing.T) {
148
160
require .NoError (t , err )
149
161
spenderAcc := addrs [0 ]
150
162
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 )
153
165
154
166
// initial balance for spender
155
167
stateDB .AddBalance (spender , uint256 .NewInt (5 ), tracing .BalanceChangeUnspecified )
0 commit comments