From 1445baa4902088439fefc8e8065d6922e8dfafda Mon Sep 17 00:00:00 2001 From: Dariusz Depta Date: Thu, 12 Oct 2023 15:03:09 +0200 Subject: [PATCH 1/9] Added tests for classic addresses. --- x/wasm/keeper/addresses.go | 2 +- x/wasm/keeper/addresses_test.go | 74 ++++++++++++++++++++++++++++++++- 2 files changed, 74 insertions(+), 2 deletions(-) diff --git a/x/wasm/keeper/addresses.go b/x/wasm/keeper/addresses.go index 77ecaa1d..4f709363 100644 --- a/x/wasm/keeper/addresses.go +++ b/x/wasm/keeper/addresses.go @@ -32,7 +32,7 @@ func PredicableAddressGenerator(creator sdk.AccAddress, salt, msg []byte, fixMsg } } -// BuildContractAddressClassic builds an sdk account address for a contract. +// BuildContractAddressClassic builds an address for a contract. func BuildContractAddressClassic(codeID, instanceID uint64) sdk.AccAddress { contractID := make([]byte, 16) binary.BigEndian.PutUint64(contractID[:8], codeID) diff --git a/x/wasm/keeper/addresses_test.go b/x/wasm/keeper/addresses_test.go index 84f3e54b..14aeaaec 100644 --- a/x/wasm/keeper/addresses_test.go +++ b/x/wasm/keeper/addresses_test.go @@ -11,7 +11,79 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" ) -func TestBuildContractAddress(t *testing.T) { +func TestBuildContractAddressClassic(t *testing.T) { + // preserve current Bech32 settings and make sure they will be restores when this test finishes + x, y := sdk.GetConfig().GetBech32AccountAddrPrefix(), sdk.GetConfig().GetBech32AccountPubPrefix() + t.Cleanup(func() { + sdk.GetConfig().SetBech32PrefixForAccount(x, y) + }) + // set custom Bech32 settings + sdk.GetConfig().SetBech32PrefixForAccount("juno", "juno") + // prepare test data + type Spec struct { + In struct { + CodeId uint64 `json:"codeId"` + InstanceId uint64 `json:"InstanceId"` + } `json:"in"` + Out struct { + Address sdk.AccAddress `json:"address"` + } `json:"out"` + } + var specs []Spec + require.NoError(t, json.Unmarshal([]byte(goldenMasterClassicContractAddr), &specs)) + require.NotEmpty(t, specs) + // run test on prepared test data + for i, spec := range specs { + t.Run(fmt.Sprintf("case %d", i), func(t *testing.T) { + // when + gotAddr := BuildContractAddressClassic(spec.In.CodeId, spec.In.InstanceId) + // then + require.Equal(t, spec.Out.Address.String(), gotAddr.String()) + require.NoError(t, sdk.VerifyAddressFormat(gotAddr)) + }) + } +} + +const goldenMasterClassicContractAddr = `[ + { + "in": { + "codeId": 0, + "instanceId": 0 + }, + "out": { + "address": "juno1w0w8sasnut0jx0vvsnvlc8nayq0q2ej8xgrpwgel05tn6wy4r57qytf73z" + } + }, + { + "in": { + "codeId": 0, + "instanceId": 1 + }, + "out": { + "address": "juno156r47kpk4va938pmtpuee4fh77847gqcw2dmpl2nnpwztwfgz04sej49ew" + } + }, + { + "in": { + "codeId": 1, + "instanceId": 0 + }, + "out": { + "address": "juno1mzdhwvvh22wrt07w59wxyd58822qavwkx5lcej7aqfkpqqlhaqfsenlwu2" + } + }, + { + "in": { + "codeId": 1, + "instanceId": 1 + }, + "out": { + "address": "juno14hj2tavq8fpesdwxxcu44rty3hh90vhujrvcmstl4zr3txmfvw9skjuwg8" + } + } +]` + +func TestBuildContractAddressPredictable(t *testing.T) { x, y := sdk.GetConfig().GetBech32AccountAddrPrefix(), sdk.GetConfig().GetBech32AccountPubPrefix() t.Cleanup(func() { sdk.GetConfig().SetBech32PrefixForAccount(x, y) From d8fe3f94677d45fb4ff5daaa9ee1066cc0d2a5f9 Mon Sep 17 00:00:00 2001 From: Dariusz Depta Date: Thu, 12 Oct 2023 15:31:27 +0200 Subject: [PATCH 2/9] Used another prefix. --- x/wasm/keeper/addresses_test.go | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/x/wasm/keeper/addresses_test.go b/x/wasm/keeper/addresses_test.go index 14aeaaec..800f4d6d 100644 --- a/x/wasm/keeper/addresses_test.go +++ b/x/wasm/keeper/addresses_test.go @@ -18,7 +18,7 @@ func TestBuildContractAddressClassic(t *testing.T) { sdk.GetConfig().SetBech32PrefixForAccount(x, y) }) // set custom Bech32 settings - sdk.GetConfig().SetBech32PrefixForAccount("juno", "juno") + sdk.GetConfig().SetBech32PrefixForAccount("purple", "purple") // prepare test data type Spec struct { In struct { @@ -39,7 +39,7 @@ func TestBuildContractAddressClassic(t *testing.T) { gotAddr := BuildContractAddressClassic(spec.In.CodeId, spec.In.InstanceId) // then require.Equal(t, spec.Out.Address.String(), gotAddr.String()) - require.NoError(t, sdk.VerifyAddressFormat(gotAddr)) + //require.NoError(t, sdk.VerifyAddressFormat(gotAddr)) }) } } @@ -51,7 +51,7 @@ const goldenMasterClassicContractAddr = `[ "instanceId": 0 }, "out": { - "address": "juno1w0w8sasnut0jx0vvsnvlc8nayq0q2ej8xgrpwgel05tn6wy4r57qytf73z" + "address": "purple1w0w8sasnut0jx0vvsnvlc8nayq0q2ej8xgrpwgel05tn6wy4r57qfplul7" } }, { @@ -60,7 +60,7 @@ const goldenMasterClassicContractAddr = `[ "instanceId": 1 }, "out": { - "address": "juno156r47kpk4va938pmtpuee4fh77847gqcw2dmpl2nnpwztwfgz04sej49ew" + "address": "purple156r47kpk4va938pmtpuee4fh77847gqcw2dmpl2nnpwztwfgz04s5cr8hj" } }, { @@ -69,7 +69,7 @@ const goldenMasterClassicContractAddr = `[ "instanceId": 0 }, "out": { - "address": "juno1mzdhwvvh22wrt07w59wxyd58822qavwkx5lcej7aqfkpqqlhaqfsenlwu2" + "address": "purple1mzdhwvvh22wrt07w59wxyd58822qavwkx5lcej7aqfkpqqlhaqfs5efvjk" } }, { @@ -78,7 +78,7 @@ const goldenMasterClassicContractAddr = `[ "instanceId": 1 }, "out": { - "address": "juno14hj2tavq8fpesdwxxcu44rty3hh90vhujrvcmstl4zr3txmfvw9skjuwg8" + "address": "purple14hj2tavq8fpesdwxxcu44rty3hh90vhujrvcmstl4zr3txmfvw9smc2vxm" } } ]` From f79a694bbd39b8551df3f9fe500563a35bd80281 Mon Sep 17 00:00:00 2001 From: Dariusz Depta Date: Thu, 12 Oct 2023 15:42:42 +0200 Subject: [PATCH 3/9] Fixes. --- x/wasm/keeper/addresses_test.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/x/wasm/keeper/addresses_test.go b/x/wasm/keeper/addresses_test.go index 800f4d6d..8325e899 100644 --- a/x/wasm/keeper/addresses_test.go +++ b/x/wasm/keeper/addresses_test.go @@ -17,8 +17,8 @@ func TestBuildContractAddressClassic(t *testing.T) { t.Cleanup(func() { sdk.GetConfig().SetBech32PrefixForAccount(x, y) }) - // set custom Bech32 settings sdk.GetConfig().SetBech32PrefixForAccount("purple", "purple") + // prepare test data type Spec struct { In struct { @@ -39,7 +39,7 @@ func TestBuildContractAddressClassic(t *testing.T) { gotAddr := BuildContractAddressClassic(spec.In.CodeId, spec.In.InstanceId) // then require.Equal(t, spec.Out.Address.String(), gotAddr.String()) - //require.NoError(t, sdk.VerifyAddressFormat(gotAddr)) + require.NoError(t, sdk.VerifyAddressFormat(gotAddr)) }) } } From 29d10f3af20a0680aa520f4dd47f56f97b094b23 Mon Sep 17 00:00:00 2001 From: Dariusz Depta Date: Thu, 12 Oct 2023 16:15:30 +0200 Subject: [PATCH 4/9] Fixes. --- t.sh | 6 ++++++ x/wasm/keeper/addresses_test.go | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) create mode 100755 t.sh diff --git a/t.sh b/t.sh new file mode 100755 index 00000000..7794d953 --- /dev/null +++ b/t.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +for pkg in $(go list ./... ); do + echo "$pkg" + go test "$pkg" +done \ No newline at end of file diff --git a/x/wasm/keeper/addresses_test.go b/x/wasm/keeper/addresses_test.go index 8325e899..66b504c1 100644 --- a/x/wasm/keeper/addresses_test.go +++ b/x/wasm/keeper/addresses_test.go @@ -23,7 +23,7 @@ func TestBuildContractAddressClassic(t *testing.T) { type Spec struct { In struct { CodeId uint64 `json:"codeId"` - InstanceId uint64 `json:"InstanceId"` + InstanceId uint64 `json:"instanceId"` } `json:"in"` Out struct { Address sdk.AccAddress `json:"address"` From 99ade09b37b8b5e92d1977b85cae82250a3860cc Mon Sep 17 00:00:00 2001 From: Dariusz Depta Date: Thu, 12 Oct 2023 16:21:31 +0200 Subject: [PATCH 5/9] Refactoring. --- t.sh | 6 ------ x/wasm/keeper/addresses_test.go | 5 ++++- 2 files changed, 4 insertions(+), 7 deletions(-) delete mode 100755 t.sh diff --git a/t.sh b/t.sh deleted file mode 100755 index 7794d953..00000000 --- a/t.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/usr/bin/env bash - -for pkg in $(go list ./... ); do - echo "$pkg" - go test "$pkg" -done \ No newline at end of file diff --git a/x/wasm/keeper/addresses_test.go b/x/wasm/keeper/addresses_test.go index 66b504c1..a90c535f 100644 --- a/x/wasm/keeper/addresses_test.go +++ b/x/wasm/keeper/addresses_test.go @@ -12,11 +12,13 @@ import ( ) func TestBuildContractAddressClassic(t *testing.T) { - // preserve current Bech32 settings and make sure they will be restores when this test finishes + // preserve current Bech32 settings and restore them after test completion x, y := sdk.GetConfig().GetBech32AccountAddrPrefix(), sdk.GetConfig().GetBech32AccountPubPrefix() t.Cleanup(func() { sdk.GetConfig().SetBech32PrefixForAccount(x, y) }) + + // set custom Bech32 settings sdk.GetConfig().SetBech32PrefixForAccount("purple", "purple") // prepare test data @@ -32,6 +34,7 @@ func TestBuildContractAddressClassic(t *testing.T) { var specs []Spec require.NoError(t, json.Unmarshal([]byte(goldenMasterClassicContractAddr), &specs)) require.NotEmpty(t, specs) + // run test on prepared test data for i, spec := range specs { t.Run(fmt.Sprintf("case %d", i), func(t *testing.T) { From 9394faf3be48f65658b486005dbbafe1a7df298b Mon Sep 17 00:00:00 2001 From: Dariusz Depta Date: Thu, 12 Oct 2023 17:21:39 +0200 Subject: [PATCH 6/9] Maybe this will fix the problem. --- x/wasm/keeper/addresses_test.go | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/x/wasm/keeper/addresses_test.go b/x/wasm/keeper/addresses_test.go index a90c535f..d345132e 100644 --- a/x/wasm/keeper/addresses_test.go +++ b/x/wasm/keeper/addresses_test.go @@ -3,9 +3,9 @@ package keeper import ( "encoding/json" "fmt" + tmbytes "github.com/cometbft/cometbft/libs/bytes" "testing" - tmbytes "github.com/cometbft/cometbft/libs/bytes" "github.com/stretchr/testify/require" sdk "github.com/cosmos/cosmos-sdk/types" @@ -14,12 +14,18 @@ import ( func TestBuildContractAddressClassic(t *testing.T) { // preserve current Bech32 settings and restore them after test completion x, y := sdk.GetConfig().GetBech32AccountAddrPrefix(), sdk.GetConfig().GetBech32AccountPubPrefix() + c := sdk.IsAddrCacheEnabled() t.Cleanup(func() { sdk.GetConfig().SetBech32PrefixForAccount(x, y) + sdk.SetAddrCacheEnabled(c) }) // set custom Bech32 settings sdk.GetConfig().SetBech32PrefixForAccount("purple", "purple") + // disables address cache, AccAddress -> String conversion is then slower, + // but does not lead to errors like: + // runtime error: invalid memory address or nil pointer dereference + sdk.SetAddrCacheEnabled(false) // prepare test data type Spec struct { @@ -112,7 +118,7 @@ func TestBuildContractAddressPredictable(t *testing.T) { t.Run(fmt.Sprintf("case %d", i), func(t *testing.T) { // when gotAddr := BuildContractAddressPredictable(spec.In.Checksum, spec.In.Creator, spec.In.Salt.Bytes(), []byte(spec.In.Msg)) - + // then require.Equal(t, spec.Out.Address.String(), gotAddr.String()) require.NoError(t, sdk.VerifyAddressFormat(gotAddr)) }) From 3af3036a79fce5098772ca844948725b1c5a3000 Mon Sep 17 00:00:00 2001 From: Dariusz Depta Date: Thu, 12 Oct 2023 17:42:42 +0200 Subject: [PATCH 7/9] Refactoring. --- x/wasm/keeper/addresses_test.go | 99 +++++++++++++-------------------- 1 file changed, 40 insertions(+), 59 deletions(-) diff --git a/x/wasm/keeper/addresses_test.go b/x/wasm/keeper/addresses_test.go index d345132e..a8d2cdef 100644 --- a/x/wasm/keeper/addresses_test.go +++ b/x/wasm/keeper/addresses_test.go @@ -22,82 +22,63 @@ func TestBuildContractAddressClassic(t *testing.T) { // set custom Bech32 settings sdk.GetConfig().SetBech32PrefixForAccount("purple", "purple") - // disables address cache, AccAddress -> String conversion is then slower, - // but does not lead to errors like: - // runtime error: invalid memory address or nil pointer dereference + // disable address cache + // AccAddress -> String conversion is then slower, but does not lead to errors like this: + // runtime error: invalid memory address or nil pointer dereference sdk.SetAddrCacheEnabled(false) - // prepare test data - type Spec struct { - In struct { - CodeId uint64 `json:"codeId"` - InstanceId uint64 `json:"instanceId"` - } `json:"in"` - Out struct { - Address sdk.AccAddress `json:"address"` - } `json:"out"` - } - var specs []Spec - require.NoError(t, json.Unmarshal([]byte(goldenMasterClassicContractAddr), &specs)) - require.NotEmpty(t, specs) - - // run test on prepared test data - for i, spec := range specs { + // run tests + for i, spec := range classicContractAddr { t.Run(fmt.Sprintf("case %d", i), func(t *testing.T) { // when - gotAddr := BuildContractAddressClassic(spec.In.CodeId, spec.In.InstanceId) + gotAddr := BuildContractAddressClassic(spec.codeId, spec.instanceId) // then - require.Equal(t, spec.Out.Address.String(), gotAddr.String()) + require.Equal(t, spec.address, gotAddr.String()) require.NoError(t, sdk.VerifyAddressFormat(gotAddr)) }) } } -const goldenMasterClassicContractAddr = `[ - { - "in": { - "codeId": 0, - "instanceId": 0 - }, - "out": { - "address": "purple1w0w8sasnut0jx0vvsnvlc8nayq0q2ej8xgrpwgel05tn6wy4r57qfplul7" - } - }, - { - "in": { - "codeId": 0, - "instanceId": 1 - }, - "out": { - "address": "purple156r47kpk4va938pmtpuee4fh77847gqcw2dmpl2nnpwztwfgz04s5cr8hj" - } - }, - { - "in": { - "codeId": 1, - "instanceId": 0 - }, - "out": { - "address": "purple1mzdhwvvh22wrt07w59wxyd58822qavwkx5lcej7aqfkpqqlhaqfs5efvjk" - } - }, - { - "in": { - "codeId": 1, - "instanceId": 1 - }, - "out": { - "address": "purple14hj2tavq8fpesdwxxcu44rty3hh90vhujrvcmstl4zr3txmfvw9smc2vxm" - } - } -]` +var classicContractAddr = []struct { + codeId uint64 + instanceId uint64 + address string +}{ + { + codeId: 0, + instanceId: 0, + address: "purple1w0w8sasnut0jx0vvsnvlc8nayq0q2ej8xgrpwgel05tn6wy4r57qfplul7", + }, + { + codeId: 0, + instanceId: 1, + address: "purple156r47kpk4va938pmtpuee4fh77847gqcw2dmpl2nnpwztwfgz04s5cr8hj", + }, + { + codeId: 1, + instanceId: 0, + address: "purple1mzdhwvvh22wrt07w59wxyd58822qavwkx5lcej7aqfkpqqlhaqfs5efvjk", + }, + { + codeId: 1, + instanceId: 1, + address: "purple14hj2tavq8fpesdwxxcu44rty3hh90vhujrvcmstl4zr3txmfvw9smc2vxm", + }, +} func TestBuildContractAddressPredictable(t *testing.T) { x, y := sdk.GetConfig().GetBech32AccountAddrPrefix(), sdk.GetConfig().GetBech32AccountPubPrefix() + c := sdk.IsAddrCacheEnabled() t.Cleanup(func() { sdk.GetConfig().SetBech32PrefixForAccount(x, y) + sdk.SetAddrCacheEnabled(c) }) + // set custom Bech32 settings sdk.GetConfig().SetBech32PrefixForAccount("purple", "purple") + // disable address cache + // AccAddress -> String conversion is then slower, but does not lead to errors like this: + // runtime error: invalid memory address or nil pointer dereference + sdk.SetAddrCacheEnabled(false) // test vectors generated via cosmjs: https://github.com/cosmos/cosmjs/pull/1253/files type Spec struct { From 76f6f3d5487ab5c9e35bf8eeaa460db187bb6c92 Mon Sep 17 00:00:00 2001 From: Dariusz Depta Date: Thu, 12 Oct 2023 18:58:17 +0200 Subject: [PATCH 8/9] Refactoring. --- x/wasm/keeper/addresses_test.go | 80 +++++++++++++++------------------ 1 file changed, 36 insertions(+), 44 deletions(-) diff --git a/x/wasm/keeper/addresses_test.go b/x/wasm/keeper/addresses_test.go index a8d2cdef..5a5665ab 100644 --- a/x/wasm/keeper/addresses_test.go +++ b/x/wasm/keeper/addresses_test.go @@ -11,7 +11,7 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" ) -func TestBuildContractAddressClassic(t *testing.T) { +func PrepareCleanup(t *testing.T) { // preserve current Bech32 settings and restore them after test completion x, y := sdk.GetConfig().GetBech32AccountAddrPrefix(), sdk.GetConfig().GetBech32AccountPubPrefix() c := sdk.IsAddrCacheEnabled() @@ -19,67 +19,59 @@ func TestBuildContractAddressClassic(t *testing.T) { sdk.GetConfig().SetBech32PrefixForAccount(x, y) sdk.SetAddrCacheEnabled(c) }) - // set custom Bech32 settings sdk.GetConfig().SetBech32PrefixForAccount("purple", "purple") // disable address cache // AccAddress -> String conversion is then slower, but does not lead to errors like this: // runtime error: invalid memory address or nil pointer dereference sdk.SetAddrCacheEnabled(false) +} +func TestBuildContractAddressClassic(t *testing.T) { + // set cleanup function + PrepareCleanup(t) + // prepare test data + specs := []struct { + codeId uint64 + instanceId uint64 + expAddress string + }{ + { + codeId: 0, + instanceId: 0, + expAddress: "purple1w0w8sasnut0jx0vvsnvlc8nayq0q2ej8xgrpwgel05tn6wy4r57qfplul7", + }, + { + codeId: 0, + instanceId: 1, + expAddress: "purple156r47kpk4va938pmtpuee4fh77847gqcw2dmpl2nnpwztwfgz04s5cr8hj", + }, + { + codeId: 1, + instanceId: 0, + expAddress: "purple1mzdhwvvh22wrt07w59wxyd58822qavwkx5lcej7aqfkpqqlhaqfs5efvjk", + }, + { + codeId: 1, + instanceId: 1, + expAddress: "purple14hj2tavq8fpesdwxxcu44rty3hh90vhujrvcmstl4zr3txmfvw9smc2vxm", + }, + } // run tests - for i, spec := range classicContractAddr { + for i, spec := range specs { t.Run(fmt.Sprintf("case %d", i), func(t *testing.T) { // when gotAddr := BuildContractAddressClassic(spec.codeId, spec.instanceId) // then - require.Equal(t, spec.address, gotAddr.String()) + require.Equal(t, spec.expAddress, gotAddr.String()) require.NoError(t, sdk.VerifyAddressFormat(gotAddr)) }) } } -var classicContractAddr = []struct { - codeId uint64 - instanceId uint64 - address string -}{ - { - codeId: 0, - instanceId: 0, - address: "purple1w0w8sasnut0jx0vvsnvlc8nayq0q2ej8xgrpwgel05tn6wy4r57qfplul7", - }, - { - codeId: 0, - instanceId: 1, - address: "purple156r47kpk4va938pmtpuee4fh77847gqcw2dmpl2nnpwztwfgz04s5cr8hj", - }, - { - codeId: 1, - instanceId: 0, - address: "purple1mzdhwvvh22wrt07w59wxyd58822qavwkx5lcej7aqfkpqqlhaqfs5efvjk", - }, - { - codeId: 1, - instanceId: 1, - address: "purple14hj2tavq8fpesdwxxcu44rty3hh90vhujrvcmstl4zr3txmfvw9smc2vxm", - }, -} - func TestBuildContractAddressPredictable(t *testing.T) { - x, y := sdk.GetConfig().GetBech32AccountAddrPrefix(), sdk.GetConfig().GetBech32AccountPubPrefix() - c := sdk.IsAddrCacheEnabled() - t.Cleanup(func() { - sdk.GetConfig().SetBech32PrefixForAccount(x, y) - sdk.SetAddrCacheEnabled(c) - }) - // set custom Bech32 settings - sdk.GetConfig().SetBech32PrefixForAccount("purple", "purple") - // disable address cache - // AccAddress -> String conversion is then slower, but does not lead to errors like this: - // runtime error: invalid memory address or nil pointer dereference - sdk.SetAddrCacheEnabled(false) - + // set cleanup function + PrepareCleanup(t) // test vectors generated via cosmjs: https://github.com/cosmos/cosmjs/pull/1253/files type Spec struct { In struct { From 257cd7e0bca334ff9b4f9ca44e75c7287b47e8ba Mon Sep 17 00:00:00 2001 From: Dariusz Depta Date: Fri, 13 Oct 2023 09:41:29 +0200 Subject: [PATCH 9/9] Made cleanup function private. --- x/wasm/keeper/addresses_test.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/x/wasm/keeper/addresses_test.go b/x/wasm/keeper/addresses_test.go index 5a5665ab..c3b24bc4 100644 --- a/x/wasm/keeper/addresses_test.go +++ b/x/wasm/keeper/addresses_test.go @@ -11,7 +11,7 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" ) -func PrepareCleanup(t *testing.T) { +func prepareCleanup(t *testing.T) { // preserve current Bech32 settings and restore them after test completion x, y := sdk.GetConfig().GetBech32AccountAddrPrefix(), sdk.GetConfig().GetBech32AccountPubPrefix() c := sdk.IsAddrCacheEnabled() @@ -29,7 +29,7 @@ func PrepareCleanup(t *testing.T) { func TestBuildContractAddressClassic(t *testing.T) { // set cleanup function - PrepareCleanup(t) + prepareCleanup(t) // prepare test data specs := []struct { codeId uint64 @@ -71,7 +71,7 @@ func TestBuildContractAddressClassic(t *testing.T) { func TestBuildContractAddressPredictable(t *testing.T) { // set cleanup function - PrepareCleanup(t) + prepareCleanup(t) // test vectors generated via cosmjs: https://github.com/cosmos/cosmjs/pull/1253/files type Spec struct { In struct {