Skip to content

Commit 3af3036

Browse files
committed
Refactoring.
1 parent 9394faf commit 3af3036

File tree

1 file changed

+40
-59
lines changed

1 file changed

+40
-59
lines changed

x/wasm/keeper/addresses_test.go

Lines changed: 40 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -22,82 +22,63 @@ func TestBuildContractAddressClassic(t *testing.T) {
2222

2323
// set custom Bech32 settings
2424
sdk.GetConfig().SetBech32PrefixForAccount("purple", "purple")
25-
// disables address cache, AccAddress -> String conversion is then slower,
26-
// but does not lead to errors like:
27-
// runtime error: invalid memory address or nil pointer dereference
25+
// disable address cache
26+
// AccAddress -> String conversion is then slower, but does not lead to errors like this:
27+
// runtime error: invalid memory address or nil pointer dereference
2828
sdk.SetAddrCacheEnabled(false)
2929

30-
// prepare test data
31-
type Spec struct {
32-
In struct {
33-
CodeId uint64 `json:"codeId"`
34-
InstanceId uint64 `json:"instanceId"`
35-
} `json:"in"`
36-
Out struct {
37-
Address sdk.AccAddress `json:"address"`
38-
} `json:"out"`
39-
}
40-
var specs []Spec
41-
require.NoError(t, json.Unmarshal([]byte(goldenMasterClassicContractAddr), &specs))
42-
require.NotEmpty(t, specs)
43-
44-
// run test on prepared test data
45-
for i, spec := range specs {
30+
// run tests
31+
for i, spec := range classicContractAddr {
4632
t.Run(fmt.Sprintf("case %d", i), func(t *testing.T) {
4733
// when
48-
gotAddr := BuildContractAddressClassic(spec.In.CodeId, spec.In.InstanceId)
34+
gotAddr := BuildContractAddressClassic(spec.codeId, spec.instanceId)
4935
// then
50-
require.Equal(t, spec.Out.Address.String(), gotAddr.String())
36+
require.Equal(t, spec.address, gotAddr.String())
5137
require.NoError(t, sdk.VerifyAddressFormat(gotAddr))
5238
})
5339
}
5440
}
5541

56-
const goldenMasterClassicContractAddr = `[
57-
{
58-
"in": {
59-
"codeId": 0,
60-
"instanceId": 0
61-
},
62-
"out": {
63-
"address": "purple1w0w8sasnut0jx0vvsnvlc8nayq0q2ej8xgrpwgel05tn6wy4r57qfplul7"
64-
}
65-
},
66-
{
67-
"in": {
68-
"codeId": 0,
69-
"instanceId": 1
70-
},
71-
"out": {
72-
"address": "purple156r47kpk4va938pmtpuee4fh77847gqcw2dmpl2nnpwztwfgz04s5cr8hj"
73-
}
74-
},
75-
{
76-
"in": {
77-
"codeId": 1,
78-
"instanceId": 0
79-
},
80-
"out": {
81-
"address": "purple1mzdhwvvh22wrt07w59wxyd58822qavwkx5lcej7aqfkpqqlhaqfs5efvjk"
82-
}
83-
},
84-
{
85-
"in": {
86-
"codeId": 1,
87-
"instanceId": 1
88-
},
89-
"out": {
90-
"address": "purple14hj2tavq8fpesdwxxcu44rty3hh90vhujrvcmstl4zr3txmfvw9smc2vxm"
91-
}
92-
}
93-
]`
42+
var classicContractAddr = []struct {
43+
codeId uint64
44+
instanceId uint64
45+
address string
46+
}{
47+
{
48+
codeId: 0,
49+
instanceId: 0,
50+
address: "purple1w0w8sasnut0jx0vvsnvlc8nayq0q2ej8xgrpwgel05tn6wy4r57qfplul7",
51+
},
52+
{
53+
codeId: 0,
54+
instanceId: 1,
55+
address: "purple156r47kpk4va938pmtpuee4fh77847gqcw2dmpl2nnpwztwfgz04s5cr8hj",
56+
},
57+
{
58+
codeId: 1,
59+
instanceId: 0,
60+
address: "purple1mzdhwvvh22wrt07w59wxyd58822qavwkx5lcej7aqfkpqqlhaqfs5efvjk",
61+
},
62+
{
63+
codeId: 1,
64+
instanceId: 1,
65+
address: "purple14hj2tavq8fpesdwxxcu44rty3hh90vhujrvcmstl4zr3txmfvw9smc2vxm",
66+
},
67+
}
9468

9569
func TestBuildContractAddressPredictable(t *testing.T) {
9670
x, y := sdk.GetConfig().GetBech32AccountAddrPrefix(), sdk.GetConfig().GetBech32AccountPubPrefix()
71+
c := sdk.IsAddrCacheEnabled()
9772
t.Cleanup(func() {
9873
sdk.GetConfig().SetBech32PrefixForAccount(x, y)
74+
sdk.SetAddrCacheEnabled(c)
9975
})
76+
// set custom Bech32 settings
10077
sdk.GetConfig().SetBech32PrefixForAccount("purple", "purple")
78+
// disable address cache
79+
// AccAddress -> String conversion is then slower, but does not lead to errors like this:
80+
// runtime error: invalid memory address or nil pointer dereference
81+
sdk.SetAddrCacheEnabled(false)
10182

10283
// test vectors generated via cosmjs: https://github.com/cosmos/cosmjs/pull/1253/files
10384
type Spec struct {

0 commit comments

Comments
 (0)