Upgrade to cosmos-sdk v0.45.0 (#717)

* Upgrade to cosmos-sdk v0.44.5

* Upgrade to sdk v0.45.0-rc1

* Fix local test deploy scripts

* Bump to v0.45.0 final release

* Fixed replace to 0.45.0 not rc1

* Fix changed import path since rc1

Co-authored-by: Ethan Frey <ethanfrey@users.noreply.github.com>
This commit is contained in:
Alexander Peters
2022-01-20 12:47:01 +01:00
committed by GitHub
parent 52477ead36
commit b8319aa334
134 changed files with 4249 additions and 4559 deletions

View File

@@ -29,6 +29,7 @@ type testData struct {
keeper Keeper
bankKeeper bankkeeper.Keeper
stakingKeeper stakingkeeper.Keeper
faucet *keeper.TestFaucet
}
func setupTest(t *testing.T) testData {
@@ -41,6 +42,7 @@ func setupTest(t *testing.T) testData {
keeper: *keepers.WasmKeeper,
bankKeeper: keepers.BankKeeper,
stakingKeeper: keepers.StakingKeeper,
faucet: keepers.Faucet,
}
return data
}
@@ -141,9 +143,7 @@ type state struct {
func TestHandleInstantiate(t *testing.T) {
data := setupTest(t)
deposit := sdk.NewCoins(sdk.NewInt64Coin("denom", 100000))
creator := createFakeFundedAccount(t, data.ctx, data.acctKeeper, data.bankKeeper, deposit)
creator := data.faucet.NewFundedAccount(data.ctx, sdk.NewInt64Coin("denom", 100000))
h := data.module.Route().Handler()
q := data.module.LegacyQuerierHandler(nil)
@@ -177,7 +177,7 @@ func TestHandleInstantiate(t *testing.T) {
require.NoError(t, err)
contractBech32Addr := parseInitResponse(t, res.Data)
require.Equal(t, "cosmos14hj2tavq8fpesdwxxcu44rty3hh90vhuc53mp6", contractBech32Addr)
require.Equal(t, "cosmos14hj2tavq8fpesdwxxcu44rty3hh90vhujrvcmstl4zr3txmfvw9s4hmalr", contractBech32Addr)
// this should be standard x/wasm init event, nothing from contract
require.Equal(t, 3, len(res.Events), prettyEvents(res.Events))
require.Equal(t, "message", res.Events[0].Type)
@@ -203,8 +203,9 @@ func TestHandleExecute(t *testing.T) {
deposit := sdk.NewCoins(sdk.NewInt64Coin("denom", 100000))
topUp := sdk.NewCoins(sdk.NewInt64Coin("denom", 5000))
creator := createFakeFundedAccount(t, data.ctx, data.acctKeeper, data.bankKeeper, deposit.Add(deposit...))
fred := createFakeFundedAccount(t, data.ctx, data.acctKeeper, data.bankKeeper, topUp)
creator := data.faucet.NewFundedAccount(data.ctx, deposit.Add(deposit...)...)
fred := data.faucet.NewFundedAccount(data.ctx, topUp...)
h := data.module.Route().Handler()
q := data.module.LegacyQuerierHandler(nil)
@@ -235,15 +236,17 @@ func TestHandleExecute(t *testing.T) {
require.NoError(t, err)
contractBech32Addr := parseInitResponse(t, res.Data)
require.Equal(t, "cosmos14hj2tavq8fpesdwxxcu44rty3hh90vhuc53mp6", contractBech32Addr)
require.Equal(t, "cosmos14hj2tavq8fpesdwxxcu44rty3hh90vhujrvcmstl4zr3txmfvw9s4hmalr", contractBech32Addr)
// this should be standard x/wasm message event, init event, plus a bank send event (2), with no custom contract events
require.Equal(t, 4, len(res.Events), prettyEvents(res.Events))
require.Equal(t, 6, len(res.Events), prettyEvents(res.Events))
require.Equal(t, "message", res.Events[0].Type)
assertAttribute(t, "module", "wasm", res.Events[0].Attributes[0])
require.Equal(t, "transfer", res.Events[1].Type)
require.Equal(t, "instantiate", res.Events[2].Type)
require.Equal(t, "wasm", res.Events[3].Type)
assertAttribute(t, "_contract_address", contractBech32Addr, res.Events[3].Attributes[0])
require.Equal(t, "coin_spent", res.Events[1].Type)
require.Equal(t, "coin_received", res.Events[2].Type)
require.Equal(t, "transfer", res.Events[3].Type)
require.Equal(t, "instantiate", res.Events[4].Type)
require.Equal(t, "wasm", res.Events[5].Type)
assertAttribute(t, "_contract_address", contractBech32Addr, res.Events[5].Attributes[0])
// ensure bob doesn't exist
bobAcct := data.acctKeeper.GetAccount(data.ctx, bob)
@@ -273,32 +276,37 @@ func TestHandleExecute(t *testing.T) {
assertExecuteResponse(t, res.Data, []byte{0xf0, 0x0b, 0xaa})
// this should be standard message event, plus x/wasm init event, plus 2 bank send event, plus a special event from the contract
require.Equal(t, 6, len(res.Events), prettyEvents(res.Events))
require.Equal(t, 10, len(res.Events), prettyEvents(res.Events))
assert.Equal(t, "message", res.Events[0].Type)
assertAttribute(t, "module", "wasm", res.Events[0].Attributes[0])
assert.Equal(t, "coin_spent", res.Events[1].Type)
assert.Equal(t, "coin_received", res.Events[2].Type)
require.Equal(t, "transfer", res.Events[1].Type)
require.Len(t, res.Events[1].Attributes, 3)
assertAttribute(t, "recipient", contractBech32Addr, res.Events[1].Attributes[0])
assertAttribute(t, "sender", fred.String(), res.Events[1].Attributes[1])
assertAttribute(t, "amount", "5000denom", res.Events[1].Attributes[2])
require.Equal(t, "transfer", res.Events[3].Type)
require.Len(t, res.Events[3].Attributes, 3)
assertAttribute(t, "recipient", contractBech32Addr, res.Events[3].Attributes[0])
assertAttribute(t, "sender", fred.String(), res.Events[3].Attributes[1])
assertAttribute(t, "amount", "5000denom", res.Events[3].Attributes[2])
assert.Equal(t, "execute", res.Events[2].Type)
assert.Equal(t, "execute", res.Events[4].Type)
// custom contract event attribute
assert.Equal(t, "wasm", res.Events[3].Type)
assertAttribute(t, "_contract_address", contractBech32Addr, res.Events[3].Attributes[0])
assertAttribute(t, "action", "release", res.Events[3].Attributes[1])
assert.Equal(t, "wasm", res.Events[5].Type)
assertAttribute(t, "_contract_address", contractBech32Addr, res.Events[5].Attributes[0])
assertAttribute(t, "action", "release", res.Events[5].Attributes[1])
// custom contract event
assert.Equal(t, "wasm-hackatom", res.Events[4].Type)
assertAttribute(t, "_contract_address", contractBech32Addr, res.Events[4].Attributes[0])
assertAttribute(t, "action", "release", res.Events[4].Attributes[1])
assert.Equal(t, "wasm-hackatom", res.Events[6].Type)
assertAttribute(t, "_contract_address", contractBech32Addr, res.Events[6].Attributes[0])
assertAttribute(t, "action", "release", res.Events[6].Attributes[1])
// second transfer (this without conflicting message)
assert.Equal(t, "transfer", res.Events[5].Type)
assertAttribute(t, "recipient", bob.String(), res.Events[5].Attributes[0])
assertAttribute(t, "sender", contractBech32Addr, res.Events[5].Attributes[1])
assertAttribute(t, "amount", "105000denom", res.Events[5].Attributes[2])
assert.Equal(t, "coin_spent", res.Events[7].Type)
assert.Equal(t, "coin_received", res.Events[8].Type)
assert.Equal(t, "transfer", res.Events[9].Type)
assertAttribute(t, "recipient", bob.String(), res.Events[9].Attributes[0])
assertAttribute(t, "sender", contractBech32Addr, res.Events[9].Attributes[1])
assertAttribute(t, "amount", "105000denom", res.Events[9].Attributes[2])
// finally, standard x/wasm tag
// ensure bob now exists and got both payments released
@@ -311,7 +319,7 @@ func TestHandleExecute(t *testing.T) {
contractAcct = data.acctKeeper.GetAccount(data.ctx, contractAddr)
require.NotNil(t, contractAcct)
assert.Equal(t, sdk.Coins(nil), data.bankKeeper.GetAllBalances(data.ctx, contractAcct.GetAddress()))
assert.Equal(t, sdk.Coins{}, data.bankKeeper.GetAllBalances(data.ctx, contractAcct.GetAddress()))
// ensure all contract state is as after init
assertCodeList(t, q, data.ctx, 1)
@@ -331,8 +339,8 @@ func TestHandleExecuteEscrow(t *testing.T) {
deposit := sdk.NewCoins(sdk.NewInt64Coin("denom", 100000))
topUp := sdk.NewCoins(sdk.NewInt64Coin("denom", 5000))
creator := createFakeFundedAccount(t, data.ctx, data.acctKeeper, data.bankKeeper, deposit.Add(deposit...))
fred := createFakeFundedAccount(t, data.ctx, data.acctKeeper, data.bankKeeper, topUp)
creator := data.faucet.NewFundedAccount(data.ctx, deposit.Add(deposit...)...)
fred := data.faucet.NewFundedAccount(data.ctx, topUp...)
h := data.module.Route().Handler()
@@ -360,7 +368,7 @@ func TestHandleExecuteEscrow(t *testing.T) {
res, err = h(data.ctx, &initCmd)
require.NoError(t, err)
contractBech32Addr := parseInitResponse(t, res.Data)
require.Equal(t, "cosmos14hj2tavq8fpesdwxxcu44rty3hh90vhuc53mp6", contractBech32Addr)
require.Equal(t, "cosmos14hj2tavq8fpesdwxxcu44rty3hh90vhujrvcmstl4zr3txmfvw9s4hmalr", contractBech32Addr)
handleMsg := map[string]interface{}{
"release": map[string]interface{}{},
@@ -389,7 +397,7 @@ func TestHandleExecuteEscrow(t *testing.T) {
contractAddr, _ := sdk.AccAddressFromBech32(contractBech32Addr)
contractAcct := data.acctKeeper.GetAccount(data.ctx, contractAddr)
require.NotNil(t, contractAcct)
assert.Equal(t, sdk.Coins(nil), data.bankKeeper.GetAllBalances(data.ctx, contractAcct.GetAddress()))
assert.Equal(t, sdk.Coins{}, data.bankKeeper.GetAllBalances(data.ctx, contractAcct.GetAddress()))
}
func TestReadWasmConfig(t *testing.T) {
@@ -570,12 +578,3 @@ func assertContractInfo(t *testing.T, q sdk.Querier, ctx sdk.Context, contractBe
assert.Equal(t, codeID, res.CodeID)
assert.Equal(t, creator.String(), res.Creator)
}
func createFakeFundedAccount(t *testing.T, ctx sdk.Context, am authkeeper.AccountKeeper, bankKeeper bankkeeper.Keeper, coins sdk.Coins) sdk.AccAddress {
t.Helper()
_, _, addr := keyPubAddr()
acc := am.NewAccountWithAddress(ctx, addr)
am.SetAccount(ctx, acc)
require.NoError(t, bankKeeper.SetBalances(ctx, addr, coins))
return addr
}