From 2d0833d9d4f29f74b5bc99961223accdbc594722 Mon Sep 17 00:00:00 2001 From: pr0n00gler Date: Fri, 2 Feb 2024 18:55:20 +0200 Subject: [PATCH 1/8] missing-tokenfactory-bindings --- wasmbinding/bindings/msg.go | 25 ++++- wasmbinding/message_plugin.go | 69 ++++++++++++- wasmbinding/test/custom_message_test.go | 124 ++++++++++++++++++++++++ x/tokenfactory/keeper/createdenom.go | 1 - 4 files changed, 215 insertions(+), 4 deletions(-) diff --git a/wasmbinding/bindings/msg.go b/wasmbinding/bindings/msg.go index a3d03ecca..1ab909827 100644 --- a/wasmbinding/bindings/msg.go +++ b/wasmbinding/bindings/msg.go @@ -5,6 +5,7 @@ import ( "cosmossdk.io/math" cosmostypes "github.com/cosmos/cosmos-sdk/codec/types" sdk "github.com/cosmos/cosmos-sdk/types" + banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" paramChange "github.com/cosmos/cosmos-sdk/x/params/types/proposal" feetypes "github.com/neutron-org/neutron/v2/x/feerefunder/types" @@ -44,9 +45,14 @@ type NeutronMsg struct { /// Currently, the burn from address must be the admin contract. BurnTokens *BurnTokens `json:"burn_tokens,omitempty"` /// Contracts can set before send hook for an existing factory denom - // that they are the admin of. - // Currently, the set before hook call should be performed from address that must be the admin contract. + /// that they are the admin of. + /// Currently, the set before hook call should be performed from address that must be the admin contract. SetBeforeSendHook *SetBeforeSendHook `json:"set_before_send_hook,omitempty"` + /// Force transferring of a specific denom is only allowed for the creator of the denom registered during CreateDenom. + ForceTransfer *ForceTransfer `json:"force_transfer,omitempty"` + /// Setting of metadata for a specific denom is only allowed for the admin of the denom. + /// It allows the overwriting of the denom metadata in the bank module. + SetDenomMetadata *SetDenomMetadata `json:"set_denom_metadata,omitempty"` // Cron types AddSchedule *AddSchedule `json:"add_schedule,omitempty"` @@ -185,11 +191,26 @@ type BurnTokens struct { BurnFromAddress string `json:"burn_from_address"` } +// SetBeforeSendHook Allowing to assign a CosmWasm contract to call with a BeforeSend hook for a specific denom is only +// allowed for the creator of the denom registered during CreateDenom. type SetBeforeSendHook struct { Denom string `json:"denom"` ContractAddr string `json:"contract_addr"` } +// SetDenomMetadata is sets the denom's bank metadata +type SetDenomMetadata struct { + banktypes.Metadata +} + +// ForceTransfer forces transferring of a specific denom is only allowed for the creator of the denom registered during CreateDenom. +type ForceTransfer struct { + Denom string `json:"denom"` + Amount math.Int `json:"amount"` + TransferFromAddress string `json:"transfer_from_address"` + TransferToAddress string `json:"transfer_to_address"` +} + // AddSchedule adds new schedule to the cron module type AddSchedule struct { Name string `json:"name"` diff --git a/wasmbinding/message_plugin.go b/wasmbinding/message_plugin.go index 81827739d..afcbaebea 100644 --- a/wasmbinding/message_plugin.go +++ b/wasmbinding/message_plugin.go @@ -121,6 +121,7 @@ func (m *CustomMessenger) DispatchMsg(ctx sdk.Context, contractAddr sdk.AccAddre if contractMsg.SubmitAdminProposal != nil { return m.submitAdminProposal(ctx, contractAddr, &contractMsg.SubmitAdminProposal.AdminProposal) } + if contractMsg.CreateDenom != nil { return m.createDenom(ctx, contractAddr, contractMsg.CreateDenom) } @@ -136,6 +137,13 @@ func (m *CustomMessenger) DispatchMsg(ctx sdk.Context, contractAddr sdk.AccAddre if contractMsg.BurnTokens != nil { return m.burnTokens(ctx, contractAddr, contractMsg.BurnTokens) } + if contractMsg.ForceTransfer != nil { + return m.forceTransfer(ctx, contractAddr, contractMsg.ForceTransfer) + } + if contractMsg.SetDenomMetadata != nil { + return m.setDenomMetadata(ctx, contractAddr, contractMsg.SetDenomMetadata) + } + if contractMsg.AddSchedule != nil { return m.addSchedule(ctx, contractAddr, contractMsg.AddSchedule) } @@ -495,6 +503,66 @@ func PerformCreateDenom(f *tokenfactorykeeper.Keeper, _ *bankkeeper.BaseKeeper, return nil } +// createDenom forces a transfer of a tokenFactory token +func (m *CustomMessenger) forceTransfer(ctx sdk.Context, contractAddr sdk.AccAddress, forceTransfer *bindings.ForceTransfer) ([]sdk.Event, [][]byte, error) { + err := PerformForceTransfer(m.TokenFactory, m.Bank, ctx, contractAddr, forceTransfer) + if err != nil { + return nil, nil, errors.Wrap(err, "perform force transfer") + } + return nil, nil, nil +} + +// PerformForceTransfer is used with forceTransfer to force a tokenfactory token transfer; validates the msgForceTransfer. +func PerformForceTransfer(f *tokenfactorykeeper.Keeper, _ *bankkeeper.BaseKeeper, ctx sdk.Context, contractAddr sdk.AccAddress, forceTransfer *bindings.ForceTransfer) error { + msgServer := tokenfactorykeeper.NewMsgServerImpl(*f) + + msgForceTransfer := tokenfactorytypes.NewMsgForceTransfer(contractAddr.String(), sdk.NewInt64Coin(forceTransfer.Denom, forceTransfer.Amount.Int64()), forceTransfer.TransferFromAddress, forceTransfer.TransferToAddress) + + if err := msgForceTransfer.ValidateBasic(); err != nil { + return errors.Wrap(err, "failed validating MsgForceTransfer") + } + + // Force Transfer + _, err := msgServer.ForceTransfer( + sdk.WrapSDKContext(ctx), + msgForceTransfer, + ) + if err != nil { + return errors.Wrap(err, "forcing transfer") + } + return nil +} + +// setDenomMetadata sets a metadata for a tokenfactory denom +func (m *CustomMessenger) setDenomMetadata(ctx sdk.Context, contractAddr sdk.AccAddress, setDenomMetadata *bindings.SetDenomMetadata) ([]sdk.Event, [][]byte, error) { + err := PerformSetDenomMetadata(m.TokenFactory, m.Bank, ctx, contractAddr, setDenomMetadata) + if err != nil { + return nil, nil, errors.Wrap(err, "perform force transfer") + } + return nil, nil, nil +} + +// PerformSetDenomMetadata is used with setDenomMetadata to set a metadata for a tokenfactory denom; validates the msgSetDenomMetadata. +func PerformSetDenomMetadata(f *tokenfactorykeeper.Keeper, _ *bankkeeper.BaseKeeper, ctx sdk.Context, contractAddr sdk.AccAddress, setDenomMetadata *bindings.SetDenomMetadata) error { + msgServer := tokenfactorykeeper.NewMsgServerImpl(*f) + + msgSetDenomMetadata := tokenfactorytypes.NewMsgSetDenomMetadata(contractAddr.String(), setDenomMetadata.Metadata) + + if err := msgSetDenomMetadata.ValidateBasic(); err != nil { + return errors.Wrap(err, "failed validating MsgSetDenomMetadata") + } + + // Set denom metadata + _, err := msgServer.SetDenomMetadata( + sdk.WrapSDKContext(ctx), + msgSetDenomMetadata, + ) + if err != nil { + return errors.Wrap(err, "setting denom metadata") + } + return nil +} + // mintTokens mints tokens of a specified denom to an address. func (m *CustomMessenger) mintTokens(ctx sdk.Context, contractAddr sdk.AccAddress, mint *bindings.MintTokens) ([]sdk.Event, [][]byte, error) { err := PerformMint(m.TokenFactory, m.Bank, ctx, contractAddr, mint) @@ -896,7 +964,6 @@ func (m *CustomMessenger) resubmitFailure(ctx sdk.Context, contractAddr sdk.AccA } err = m.ContractmanagerKeeper.ResubmitFailure(ctx, contractAddr, failure) - if err != nil { ctx.Logger().Error("failed to resubmitFailure", "from_address", contractAddr.String(), diff --git a/wasmbinding/test/custom_message_test.go b/wasmbinding/test/custom_message_test.go index 95956bb63..c5b1ac513 100644 --- a/wasmbinding/test/custom_message_test.go +++ b/wasmbinding/test/custom_message_test.go @@ -5,6 +5,8 @@ import ( "fmt" "testing" + banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" + keeper2 "github.com/neutron-org/neutron/v2/x/contractmanager/keeper" feeburnertypes "github.com/neutron-org/neutron/v2/x/feeburner/types" @@ -194,6 +196,52 @@ func (suite *CustomMessengerTestSuite) TestCreateDenomMsg() { suite.Equal([][]byte(nil), data) } +func (suite *CustomMessengerTestSuite) TestSetDenomMetadataMsg() { + codeID := suite.StoreTestCode(suite.ctx, suite.contractOwner, "../testdata/reflect.wasm") + suite.contractAddress = suite.InstantiateTestContract(suite.ctx, suite.contractOwner, codeID) + suite.Require().NotEmpty(suite.contractAddress) + + senderAddress := suite.ChainA.SenderAccounts[0].SenderAccount.GetAddress() + coinsAmnt := sdk.NewCoins(sdk.NewCoin(params.DefaultDenom, sdk.NewInt(int64(10_000_000)))) + bankKeeper := suite.neutron.BankKeeper + err := bankKeeper.SendCoins(suite.ctx, senderAddress, suite.contractAddress, coinsAmnt) + suite.NoError(err) + + fullMsg := bindings.NeutronMsg{ + CreateDenom: &bindings.CreateDenom{ + Subdenom: "SUN", + }, + } + data, _ := suite.executeCustomMsg(suite.contractAddress, fullMsg) + suite.Equal([][]byte(nil), data) + + sunDenom := fmt.Sprintf("factory/%s/%s", suite.contractAddress.String(), fullMsg.CreateDenom.Subdenom) + metadata := banktypes.Metadata{ + Description: "very nice description", + DenomUnits: []*banktypes.DenomUnit{{ + Denom: sunDenom, + Exponent: 0, + Aliases: nil, + }}, + Base: sunDenom, + Display: sunDenom, + Name: "noname", + Symbol: sunDenom, + URI: "yuri", + URIHash: "sdjalkfjsdklfj", + } + + metaMsg := bindings.NeutronMsg{ + SetDenomMetadata: &bindings.SetDenomMetadata{Metadata: metadata}, + } + data, _ = suite.executeCustomMsg(suite.contractAddress, metaMsg) + suite.Equal([][]byte(nil), data) + + metaFromBank, ok := bankKeeper.GetDenomMetaData(suite.ctx, sunDenom) + suite.Require().True(ok) + suite.Equal(metadata, metaFromBank) +} + func (suite *CustomMessengerTestSuite) TestMintMsg() { var ( neutron = suite.GetNeutronZoneApp(suite.ChainA) @@ -286,6 +334,82 @@ func (suite *CustomMessengerTestSuite) TestMintMsg() { require.Equal(suite.T(), moonDenom, coin.Denom) } +func (suite *CustomMessengerTestSuite) TestForceTransferMsg() { + var ( + neutron = suite.GetNeutronZoneApp(suite.ChainA) + ctx = suite.ChainA.GetContext() + lucky = keeper.RandomAccountAddress(suite.T()) // We don't care what this address is + forceReceiver = keeper.RandomAccountAddress(suite.T()) // We don't care what this address is + ) + + codeID := suite.StoreTestCode(suite.ctx, suite.contractOwner, "../testdata/reflect.wasm") + suite.contractAddress = suite.InstantiateTestContract(suite.ctx, suite.contractOwner, codeID) + suite.Require().NotEmpty(suite.contractAddress) + + senderAddress := suite.ChainA.SenderAccounts[0].SenderAccount.GetAddress() + coinsAmnt := sdk.NewCoins(sdk.NewCoin(params.DefaultDenom, sdk.NewInt(int64(20_000_000)))) + bankKeeper := suite.neutron.BankKeeper + err := bankKeeper.SendCoins(suite.ctx, senderAddress, suite.contractAddress, coinsAmnt) + suite.NoError(err) + + // lucky was broke + balances := neutron.BankKeeper.GetAllBalances(suite.ctx, lucky) + require.Empty(suite.T(), balances) + + // Create denom for minting + fullMsg := bindings.NeutronMsg{ + CreateDenom: &bindings.CreateDenom{ + Subdenom: "SUN", + }, + } + + suite.executeCustomMsg(suite.contractAddress, fullMsg) + + sunDenom := fmt.Sprintf("factory/%s/%s", suite.contractAddress.String(), fullMsg.CreateDenom.Subdenom) + + amount, ok := sdk.NewIntFromString("808010808") + require.True(suite.T(), ok) + + fullMsg = bindings.NeutronMsg{ + MintTokens: &bindings.MintTokens{ + Denom: sunDenom, + Amount: amount, + MintToAddress: lucky.String(), + }, + } + + suite.executeCustomMsg(suite.contractAddress, fullMsg) + + balances = neutron.BankKeeper.GetAllBalances(ctx, lucky) + require.Len(suite.T(), balances, 1) + coin := balances[0] + require.Equal(suite.T(), amount, coin.Amount) + require.Contains(suite.T(), coin.Denom, "factory/") + require.Equal(suite.T(), sunDenom, coin.Denom) + + // now perform a force transfer to transfer tokens from a lucky address to a forceReceiver + fullMsg = bindings.NeutronMsg{ + ForceTransfer: &bindings.ForceTransfer{ + Denom: sunDenom, + Amount: amount, + TransferFromAddress: lucky.String(), + TransferToAddress: forceReceiver.String(), + }, + } + + suite.executeCustomMsg(suite.contractAddress, fullMsg) + + balancesLucky := neutron.BankKeeper.GetAllBalances(ctx, lucky) + require.Len(suite.T(), balancesLucky, 0) + balancesReceiver := neutron.BankKeeper.GetAllBalances(ctx, forceReceiver) + require.Len(suite.T(), balancesReceiver, 1) + + coinReceiver := balancesReceiver[0] + require.Equal(suite.T(), amount, coinReceiver.Amount) + require.Contains(suite.T(), coinReceiver.Denom, "factory/") + require.Equal(suite.T(), sunDenom, coinReceiver.Denom) +} + func (suite *CustomMessengerTestSuite) TestUpdateInterchainQuery() { // reuse register interchain query test to get query registered suite.TestRegisterInterchainQuery() diff --git a/x/tokenfactory/keeper/createdenom.go b/x/tokenfactory/keeper/createdenom.go index 1f39f08bb..f22746c33 100644 --- a/x/tokenfactory/keeper/createdenom.go +++ b/x/tokenfactory/keeper/createdenom.go @@ -102,7 +102,6 @@ func (k Keeper) chargeForCreateDenom(ctx sdk.Context, creatorAddr string) (err e accAddr, feeCollectorAddr, params.DenomCreationFee, ) - if err != nil { return errors.Wrap(err, "unable to send coins to fee collector") } From 58cf60613e68ae776bb260566d54a8fd86881928 Mon Sep 17 00:00:00 2001 From: pr0n00gler Date: Wed, 7 Feb 2024 23:35:39 +0200 Subject: [PATCH 2/8] tmp tests fix --- wasmbinding/message_plugin.go | 12 +- wasmbinding/test/custom_message_test.go | 430 ++++++++++-------------- wasmbinding/testdata/reflect.wasm | Bin 220627 -> 411173 bytes 3 files changed, 188 insertions(+), 254 deletions(-) diff --git a/wasmbinding/message_plugin.go b/wasmbinding/message_plugin.go index afcbaebea..4a2bd4bcd 100644 --- a/wasmbinding/message_plugin.go +++ b/wasmbinding/message_plugin.go @@ -475,7 +475,7 @@ func (m *CustomMessenger) performSubmitAdminProposal(ctx sdk.Context, contractAd // createDenom creates a new token denom func (m *CustomMessenger) createDenom(ctx sdk.Context, contractAddr sdk.AccAddress, createDenom *bindings.CreateDenom) ([]sdk.Event, [][]byte, error) { - err := PerformCreateDenom(m.TokenFactory, m.Bank, ctx, contractAddr, createDenom) + err := PerformCreateDenom(m.TokenFactory, ctx, contractAddr, createDenom) if err != nil { return nil, nil, errors.Wrap(err, "perform create denom") } @@ -483,7 +483,7 @@ func (m *CustomMessenger) createDenom(ctx sdk.Context, contractAddr sdk.AccAddre } // PerformCreateDenom is used with createDenom to create a token denom; validates the msgCreateDenom. -func PerformCreateDenom(f *tokenfactorykeeper.Keeper, _ *bankkeeper.BaseKeeper, ctx sdk.Context, contractAddr sdk.AccAddress, createDenom *bindings.CreateDenom) error { +func PerformCreateDenom(f *tokenfactorykeeper.Keeper, ctx sdk.Context, contractAddr sdk.AccAddress, createDenom *bindings.CreateDenom) error { msgServer := tokenfactorykeeper.NewMsgServerImpl(*f) msgCreateDenom := tokenfactorytypes.NewMsgCreateDenom(contractAddr.String(), createDenom.Subdenom) @@ -505,7 +505,7 @@ func PerformCreateDenom(f *tokenfactorykeeper.Keeper, _ *bankkeeper.BaseKeeper, // createDenom forces a transfer of a tokenFactory token func (m *CustomMessenger) forceTransfer(ctx sdk.Context, contractAddr sdk.AccAddress, forceTransfer *bindings.ForceTransfer) ([]sdk.Event, [][]byte, error) { - err := PerformForceTransfer(m.TokenFactory, m.Bank, ctx, contractAddr, forceTransfer) + err := PerformForceTransfer(m.TokenFactory, ctx, contractAddr, forceTransfer) if err != nil { return nil, nil, errors.Wrap(err, "perform force transfer") } @@ -513,7 +513,7 @@ func (m *CustomMessenger) forceTransfer(ctx sdk.Context, contractAddr sdk.AccAdd } // PerformForceTransfer is used with forceTransfer to force a tokenfactory token transfer; validates the msgForceTransfer. -func PerformForceTransfer(f *tokenfactorykeeper.Keeper, _ *bankkeeper.BaseKeeper, ctx sdk.Context, contractAddr sdk.AccAddress, forceTransfer *bindings.ForceTransfer) error { +func PerformForceTransfer(f *tokenfactorykeeper.Keeper, ctx sdk.Context, contractAddr sdk.AccAddress, forceTransfer *bindings.ForceTransfer) error { msgServer := tokenfactorykeeper.NewMsgServerImpl(*f) msgForceTransfer := tokenfactorytypes.NewMsgForceTransfer(contractAddr.String(), sdk.NewInt64Coin(forceTransfer.Denom, forceTransfer.Amount.Int64()), forceTransfer.TransferFromAddress, forceTransfer.TransferToAddress) @@ -535,7 +535,7 @@ func PerformForceTransfer(f *tokenfactorykeeper.Keeper, _ *bankkeeper.BaseKeeper // setDenomMetadata sets a metadata for a tokenfactory denom func (m *CustomMessenger) setDenomMetadata(ctx sdk.Context, contractAddr sdk.AccAddress, setDenomMetadata *bindings.SetDenomMetadata) ([]sdk.Event, [][]byte, error) { - err := PerformSetDenomMetadata(m.TokenFactory, m.Bank, ctx, contractAddr, setDenomMetadata) + err := PerformSetDenomMetadata(m.TokenFactory, ctx, contractAddr, setDenomMetadata) if err != nil { return nil, nil, errors.Wrap(err, "perform force transfer") } @@ -543,7 +543,7 @@ func (m *CustomMessenger) setDenomMetadata(ctx sdk.Context, contractAddr sdk.Acc } // PerformSetDenomMetadata is used with setDenomMetadata to set a metadata for a tokenfactory denom; validates the msgSetDenomMetadata. -func PerformSetDenomMetadata(f *tokenfactorykeeper.Keeper, _ *bankkeeper.BaseKeeper, ctx sdk.Context, contractAddr sdk.AccAddress, setDenomMetadata *bindings.SetDenomMetadata) error { +func PerformSetDenomMetadata(f *tokenfactorykeeper.Keeper, ctx sdk.Context, contractAddr sdk.AccAddress, setDenomMetadata *bindings.SetDenomMetadata) error { msgServer := tokenfactorykeeper.NewMsgServerImpl(*f) msgSetDenomMetadata := tokenfactorytypes.NewMsgSetDenomMetadata(contractAddr.String(), setDenomMetadata.Metadata) diff --git a/wasmbinding/test/custom_message_test.go b/wasmbinding/test/custom_message_test.go index c5b1ac513..562ce1501 100644 --- a/wasmbinding/test/custom_message_test.go +++ b/wasmbinding/test/custom_message_test.go @@ -5,6 +5,7 @@ import ( "fmt" "testing" + types2 "github.com/CosmWasm/wasmd/x/wasm/types" banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" keeper2 "github.com/neutron-org/neutron/v2/x/contractmanager/keeper" @@ -17,7 +18,6 @@ import ( ictxtypes "github.com/neutron-org/neutron/v2/x/interchaintxs/types" adminkeeper "github.com/cosmos/admin-module/x/adminmodule/keeper" - admintypes "github.com/cosmos/admin-module/x/adminmodule/types" "github.com/neutron-org/neutron/v2/app/params" @@ -49,6 +49,7 @@ type CustomMessengerTestSuite struct { messenger *wasmbinding.CustomMessenger contractOwner sdk.AccAddress contractAddress sdk.AccAddress + contractKeeper types2.ContractOpsKeeper } func (suite *CustomMessengerTestSuite) SetupTest() { @@ -67,20 +68,21 @@ func (suite *CustomMessengerTestSuite) SetupTest() { suite.messenger.ContractmanagerKeeper = &suite.neutron.ContractManagerKeeper suite.contractOwner = keeper.RandomAccountAddress(suite.T()) + suite.contractKeeper = keeper.NewDefaultPermissionKeeper(&suite.neutron.WasmKeeper) + err := suite.messenger.TokenFactory.SetParams(suite.ctx, tokenfactorytypes.NewParams( sdk.NewCoins(sdk.NewInt64Coin(params.DefaultDenom, 10_000_000)), 0, FeeCollectorAddress, )) suite.Require().NoError(err) -} -func (suite *CustomMessengerTestSuite) TestRegisterInterchainAccount() { - // Store code and instantiate reflect contract codeID := suite.StoreTestCode(suite.ctx, suite.contractOwner, "../testdata/reflect.wasm") suite.contractAddress = suite.InstantiateTestContract(suite.ctx, suite.contractOwner, codeID) suite.Require().NotEmpty(suite.contractAddress) +} +func (suite *CustomMessengerTestSuite) TestRegisterInterchainAccount() { err := suite.neutron.FeeBurnerKeeper.SetParams(suite.ctx, feeburnertypes.Params{ NeutronDenom: "untrn", TreasuryAddress: "neutron13jrwrtsyjjuynlug65r76r2zvfw5xjcq6532h2", @@ -88,14 +90,13 @@ func (suite *CustomMessengerTestSuite) TestRegisterInterchainAccount() { suite.Require().NoError(err) // Craft RegisterInterchainAccount message - msg, err := json.Marshal(bindings.NeutronMsg{ + msg := bindings.NeutronMsg{ RegisterInterchainAccount: &bindings.RegisterInterchainAccount{ ConnectionId: suite.Path.EndpointA.ConnectionID, InterchainAccountId: testutil.TestInterchainID, RegisterFee: sdk.NewCoins(sdk.NewCoin(params.DefaultDenom, sdk.NewInt(1_000_000))), }, - }) - suite.NoError(err) + } bankKeeper := suite.neutron.BankKeeper senderAddress := suite.ChainA.SenderAccounts[0].SenderAccount.GetAddress() @@ -103,20 +104,12 @@ func (suite *CustomMessengerTestSuite) TestRegisterInterchainAccount() { suite.NoError(err) // Dispatch RegisterInterchainAccount message - events, data, err := suite.messenger.DispatchMsg(suite.ctx, suite.contractAddress, suite.Path.EndpointA.ChannelConfig.PortID, types.CosmosMsg{ - Custom: msg, - }) + data, _, err := suite.executeNeutronMsg(suite.contractAddress, msg) suite.NoError(err) - suite.Nil(events) - suite.Equal([][]byte{[]byte(`{}`)}, data) + suite.Nil(data) } func (suite *CustomMessengerTestSuite) TestRegisterInterchainAccountLongID() { - // Store code and instantiate reflect contract - codeID := suite.StoreTestCode(suite.ctx, suite.contractOwner, "../testdata/reflect.wasm") - suite.contractAddress = suite.InstantiateTestContract(suite.ctx, suite.contractOwner, codeID) - suite.Require().NotEmpty(suite.contractAddress) - // Craft RegisterInterchainAccount message msg, err := json.Marshal(bindings.NeutronMsg{ RegisterInterchainAccount: &bindings.RegisterInterchainAccount{ @@ -127,7 +120,7 @@ func (suite *CustomMessengerTestSuite) TestRegisterInterchainAccountLongID() { }) suite.NoError(err) - // Dispatch RegisterInterchainAccount message + // Dispatch RegisterInterchainAccount message via DispatchHandler cause we want to catch an error from SDK directly, not from a contract _, _, err = suite.messenger.DispatchMsg(suite.ctx, suite.contractAddress, suite.Path.EndpointA.ChannelConfig.PortID, types.CosmosMsg{ Custom: msg, }) @@ -136,11 +129,6 @@ func (suite *CustomMessengerTestSuite) TestRegisterInterchainAccountLongID() { } func (suite *CustomMessengerTestSuite) TestRegisterInterchainQuery() { - // Store code and instantiate reflect contract - codeID := suite.StoreTestCode(suite.ctx, suite.contractOwner, "../testdata/reflect.wasm") - suite.contractAddress = suite.InstantiateTestContract(suite.ctx, suite.contractOwner, codeID) - suite.Require().NotEmpty(suite.contractAddress) - err := testutil.SetupICAPath(suite.Path, suite.contractAddress.String()) suite.Require().NoError(err) @@ -152,7 +140,7 @@ func (suite *CustomMessengerTestSuite) TestRegisterInterchainQuery() { suite.NoError(err) // Craft RegisterInterchainQuery message - msg, err := json.Marshal(bindings.NeutronMsg{ + msg := bindings.NeutronMsg{ RegisterInterchainQuery: &bindings.RegisterInterchainQuery{ QueryType: string(icqtypes.InterchainQueryTypeKV), Keys: []*icqtypes.KVKey{ @@ -162,23 +150,15 @@ func (suite *CustomMessengerTestSuite) TestRegisterInterchainQuery() { ConnectionId: suite.Path.EndpointA.ConnectionID, UpdatePeriod: 20, }, - }) - suite.NoError(err) + } // Dispatch RegisterInterchainQuery message - events, data, err := suite.messenger.DispatchMsg(suite.ctx, suite.contractAddress, suite.Path.EndpointA.ChannelConfig.PortID, types.CosmosMsg{ - Custom: msg, - }) + _, _, err = suite.executeNeutronMsg(suite.contractAddress, msg) suite.NoError(err) - suite.Nil(events) - suite.Equal([][]byte{[]byte(`{"id":1}`)}, data) + suite.Equal(uint64(1), suite.neutron.InterchainQueriesKeeper.GetLastRegisteredQueryKey(suite.ctx)) } func (suite *CustomMessengerTestSuite) TestCreateDenomMsg() { - codeID := suite.StoreTestCode(suite.ctx, suite.contractOwner, "../testdata/reflect.wasm") - suite.contractAddress = suite.InstantiateTestContract(suite.ctx, suite.contractOwner, codeID) - suite.Require().NotEmpty(suite.contractAddress) - senderAddress := suite.ChainA.SenderAccounts[0].SenderAccount.GetAddress() coinsAmnt := sdk.NewCoins(sdk.NewCoin(params.DefaultDenom, sdk.NewInt(int64(10_000_000)))) bankKeeper := suite.neutron.BankKeeper @@ -191,16 +171,11 @@ func (suite *CustomMessengerTestSuite) TestCreateDenomMsg() { }, } - data, _ := suite.executeCustomMsg(suite.contractAddress, fullMsg) - - suite.Equal([][]byte(nil), data) + data, _, _ := suite.executeNeutronMsg(suite.contractAddress, fullMsg) + suite.Nil(data) } func (suite *CustomMessengerTestSuite) TestSetDenomMetadataMsg() { - codeID := suite.StoreTestCode(suite.ctx, suite.contractOwner, "../testdata/reflect.wasm") - suite.contractAddress = suite.InstantiateTestContract(suite.ctx, suite.contractOwner, codeID) - suite.Require().NotEmpty(suite.contractAddress) - senderAddress := suite.ChainA.SenderAccounts[0].SenderAccount.GetAddress() coinsAmnt := sdk.NewCoins(sdk.NewCoin(params.DefaultDenom, sdk.NewInt(int64(10_000_000)))) bankKeeper := suite.neutron.BankKeeper @@ -212,17 +187,19 @@ func (suite *CustomMessengerTestSuite) TestSetDenomMetadataMsg() { Subdenom: "SUN", }, } - data, _ := suite.executeCustomMsg(suite.contractAddress, fullMsg) - suite.Equal([][]byte(nil), data) + data, _, err := suite.executeNeutronMsg(suite.contractAddress, fullMsg) + suite.Nil(data) + suite.NoError(err) sunDenom := fmt.Sprintf("factory/%s/%s", suite.contractAddress.String(), fullMsg.CreateDenom.Subdenom) metadata := banktypes.Metadata{ Description: "very nice description", - DenomUnits: []*banktypes.DenomUnit{{ - Denom: sunDenom, - Exponent: 0, - Aliases: nil, - }}, + DenomUnits: []*banktypes.DenomUnit{ + { + Denom: sunDenom, + Exponent: 0, + Aliases: []string{"sun"}}, + }, Base: sunDenom, Display: sunDenom, Name: "noname", @@ -231,11 +208,33 @@ func (suite *CustomMessengerTestSuite) TestSetDenomMetadataMsg() { URIHash: "sdjalkfjsdklfj", } - metaMsg := bindings.NeutronMsg{ - SetDenomMetadata: &bindings.SetDenomMetadata{Metadata: metadata}, - } - data, _ = suite.executeCustomMsg(suite.contractAddress, metaMsg) - suite.Equal([][]byte(nil), data) + // this is the metadata variable but just in JSON representation, cause we can't marshal into json because of omitempty tags + metaMsgBz := ` +{ + "set_denom_metadata": { + "description": "very nice description", + "denom_units": [ + { + "denom": "factory/neutron14hj2tavq8fpesdwxxcu44rty3hh90vhujrvcmstl4zr3txmfvw9s5c2epq/SUN", + "exponent": 0, + "aliases": [ + "sun" + ] + } + ], + "base": "factory/neutron14hj2tavq8fpesdwxxcu44rty3hh90vhujrvcmstl4zr3txmfvw9s5c2epq/SUN", + "display": "factory/neutron14hj2tavq8fpesdwxxcu44rty3hh90vhujrvcmstl4zr3txmfvw9s5c2epq/SUN", + "name": "noname", + "symbol": "factory/neutron14hj2tavq8fpesdwxxcu44rty3hh90vhujrvcmstl4zr3txmfvw9s5c2epq/SUN", + "uri": "yuri", + "uri_hash": "sdjalkfjsdklfj" + } +} + ` + + data, _, err = suite.executeCustomMsg(suite.contractAddress, json.RawMessage(metaMsgBz)) + suite.Nil(data) + suite.NoError(err) metaFromBank, ok := bankKeeper.GetDenomMetaData(suite.ctx, sunDenom) suite.Require().True(ok) @@ -249,10 +248,6 @@ func (suite *CustomMessengerTestSuite) TestMintMsg() { lucky = keeper.RandomAccountAddress(suite.T()) // We don't care what this address is ) - codeID := suite.StoreTestCode(suite.ctx, suite.contractOwner, "../testdata/reflect.wasm") - suite.contractAddress = suite.InstantiateTestContract(suite.ctx, suite.contractOwner, codeID) - suite.Require().NotEmpty(suite.contractAddress) - senderAddress := suite.ChainA.SenderAccounts[0].SenderAccount.GetAddress() coinsAmnt := sdk.NewCoins(sdk.NewCoin(params.DefaultDenom, sdk.NewInt(int64(20_000_000)))) bankKeeper := suite.neutron.BankKeeper @@ -270,7 +265,8 @@ func (suite *CustomMessengerTestSuite) TestMintMsg() { }, } - suite.executeCustomMsg(suite.contractAddress, fullMsg) + _, _, err = suite.executeNeutronMsg(suite.contractAddress, fullMsg) + suite.NoError(err) sunDenom := fmt.Sprintf("factory/%s/%s", suite.contractAddress.String(), fullMsg.CreateDenom.Subdenom) @@ -285,7 +281,8 @@ func (suite *CustomMessengerTestSuite) TestMintMsg() { }, } - suite.executeCustomMsg(suite.contractAddress, fullMsg) + _, _, err = suite.executeNeutronMsg(suite.contractAddress, fullMsg) + suite.NoError(err) balances = neutron.BankKeeper.GetAllBalances(ctx, lucky) require.Len(suite.T(), balances, 1) @@ -295,7 +292,8 @@ func (suite *CustomMessengerTestSuite) TestMintMsg() { require.Equal(suite.T(), sunDenom, coin.Denom) // mint the same denom again - suite.executeCustomMsg(suite.contractAddress, fullMsg) + _, _, err = suite.executeNeutronMsg(suite.contractAddress, fullMsg) + suite.NoError(err) balances = neutron.BankKeeper.GetAllBalances(ctx, lucky) require.Len(suite.T(), balances, 1) @@ -311,7 +309,8 @@ func (suite *CustomMessengerTestSuite) TestMintMsg() { Subdenom: "MOON", }, } - suite.executeCustomMsg(suite.contractAddress, fullMsg) + _, _, err = suite.executeNeutronMsg(suite.contractAddress, fullMsg) + suite.NoError(err) moonDenom := fmt.Sprintf("factory/%s/%s", suite.contractAddress.String(), fullMsg.CreateDenom.Subdenom) @@ -324,7 +323,8 @@ func (suite *CustomMessengerTestSuite) TestMintMsg() { }, } - suite.executeCustomMsg(suite.contractAddress, fullMsg) + _, _, err = suite.executeNeutronMsg(suite.contractAddress, fullMsg) + suite.NoError(err) balances = neutron.BankKeeper.GetAllBalances(ctx, lucky) require.Len(suite.T(), balances, 2) @@ -342,10 +342,6 @@ func (suite *CustomMessengerTestSuite) TestForceTransferMsg() { forceReceiver = keeper.RandomAccountAddress(suite.T()) // We don't care what this address is ) - codeID := suite.StoreTestCode(suite.ctx, suite.contractOwner, "../testdata/reflect.wasm") - suite.contractAddress = suite.InstantiateTestContract(suite.ctx, suite.contractOwner, codeID) - suite.Require().NotEmpty(suite.contractAddress) - senderAddress := suite.ChainA.SenderAccounts[0].SenderAccount.GetAddress() coinsAmnt := sdk.NewCoins(sdk.NewCoin(params.DefaultDenom, sdk.NewInt(int64(20_000_000)))) bankKeeper := suite.neutron.BankKeeper @@ -363,7 +359,8 @@ func (suite *CustomMessengerTestSuite) TestForceTransferMsg() { }, } - suite.executeCustomMsg(suite.contractAddress, fullMsg) + _, _, err = suite.executeNeutronMsg(suite.contractAddress, fullMsg) + suite.NoError(err) sunDenom := fmt.Sprintf("factory/%s/%s", suite.contractAddress.String(), fullMsg.CreateDenom.Subdenom) @@ -378,7 +375,8 @@ func (suite *CustomMessengerTestSuite) TestForceTransferMsg() { }, } - suite.executeCustomMsg(suite.contractAddress, fullMsg) + _, _, err = suite.executeNeutronMsg(suite.contractAddress, fullMsg) + suite.NoError(err) balances = neutron.BankKeeper.GetAllBalances(ctx, lucky) require.Len(suite.T(), balances, 1) @@ -397,7 +395,8 @@ func (suite *CustomMessengerTestSuite) TestForceTransferMsg() { }, } - suite.executeCustomMsg(suite.contractAddress, fullMsg) + _, _, err = suite.executeNeutronMsg(suite.contractAddress, fullMsg) + suite.NoError(err) balancesLucky := neutron.BankKeeper.GetAllBalances(ctx, lucky) require.Len(suite.T(), balancesLucky, 0) @@ -415,44 +414,34 @@ func (suite *CustomMessengerTestSuite) TestUpdateInterchainQuery() { suite.TestRegisterInterchainQuery() // Craft UpdateInterchainQuery message - msg, err := json.Marshal(bindings.NeutronMsg{ + msg := bindings.NeutronMsg{ UpdateInterchainQuery: &bindings.UpdateInterchainQuery{ QueryId: 1, NewKeys: nil, NewUpdatePeriod: 111, }, - }) - suite.NoError(err) + } // Dispatch UpdateInterchainQuery message - events, data, err := suite.messenger.DispatchMsg(suite.ctx, suite.contractAddress, suite.Path.EndpointA.ChannelConfig.PortID, types.CosmosMsg{ - Custom: msg, - }) + data, _, err := suite.executeNeutronMsg(suite.contractAddress, msg) suite.NoError(err) - suite.Nil(events) - suite.Equal([][]byte{[]byte(`{}`)}, data) + suite.Nil(data) } func (suite *CustomMessengerTestSuite) TestUpdateInterchainQueryFailed() { // Craft UpdateInterchainQuery message - msg, err := json.Marshal(bindings.NeutronMsg{ + msg := bindings.NeutronMsg{ UpdateInterchainQuery: &bindings.UpdateInterchainQuery{ QueryId: 1, NewKeys: nil, NewUpdatePeriod: 1, }, - }) - suite.NoError(err) + } // Dispatch UpdateInterchainQuery message - owner, err := sdk.AccAddressFromBech32(testutil.TestOwnerAddress) - suite.NoError(err) - events, data, err := suite.messenger.DispatchMsg(suite.ctx, owner, suite.Path.EndpointA.ChannelConfig.PortID, types.CosmosMsg{ - Custom: msg, - }) + data, _, err := suite.executeNeutronMsg(suite.contractAddress, msg) expectedErrMsg := "failed to update interchain query: failed to update interchain query: failed to get query by query id: there is no query with id: 1" suite.Require().ErrorContains(err, expectedErrMsg) - suite.Nil(events) suite.Nil(data) } @@ -461,50 +450,34 @@ func (suite *CustomMessengerTestSuite) TestRemoveInterchainQuery() { suite.TestRegisterInterchainQuery() // Craft RemoveInterchainQuery message - msg, err := json.Marshal(bindings.NeutronMsg{ + msg := bindings.NeutronMsg{ RemoveInterchainQuery: &bindings.RemoveInterchainQuery{ QueryId: 1, }, - }) - suite.NoError(err) + } // Dispatch RemoveInterchainQuery message + data, _, err := suite.executeNeutronMsg(suite.contractAddress, msg) suite.NoError(err) - events, data, err := suite.messenger.DispatchMsg(suite.ctx, suite.contractAddress, suite.Path.EndpointA.ChannelConfig.PortID, types.CosmosMsg{ - Custom: msg, - }) - suite.NoError(err) - suite.Nil(events) - suite.Equal([][]byte{[]byte(`{}`)}, data) + suite.Nil(data) } func (suite *CustomMessengerTestSuite) TestRemoveInterchainQueryFailed() { // Craft RemoveInterchainQuery message - msg, err := json.Marshal(bindings.NeutronMsg{ + msg := bindings.NeutronMsg{ RemoveInterchainQuery: &bindings.RemoveInterchainQuery{ QueryId: 1, }, - }) - suite.NoError(err) + } // Dispatch RemoveInterchainQuery message - owner, err := sdk.AccAddressFromBech32(testutil.TestOwnerAddress) - suite.NoError(err) - events, data, err := suite.messenger.DispatchMsg(suite.ctx, owner, suite.Path.EndpointA.ChannelConfig.PortID, types.CosmosMsg{ - Custom: msg, - }) + data, _, err := suite.executeNeutronMsg(suite.contractAddress, msg) expectedErrMsg := "failed to remove interchain query: failed to remove interchain query: failed to get query by query id: there is no query with id: 1" suite.Require().ErrorContains(err, expectedErrMsg) - suite.Nil(events) suite.Nil(data) } func (suite *CustomMessengerTestSuite) TestSubmitTx() { - // Store code and instantiate reflect contract - codeID := suite.StoreTestCode(suite.ctx, suite.contractOwner, "../testdata/reflect.wasm") - suite.contractAddress = suite.InstantiateTestContract(suite.ctx, suite.contractOwner, codeID) - suite.Require().NotEmpty(suite.contractAddress) - senderAddress := suite.ChainA.SenderAccounts[0].SenderAccount.GetAddress() coinsAmnt := sdk.NewCoins(sdk.NewCoin(params.DefaultDenom, sdk.NewInt(int64(10_000_000)))) bankKeeper := suite.neutron.BankKeeper @@ -514,40 +487,27 @@ func (suite *CustomMessengerTestSuite) TestSubmitTx() { err = testutil.SetupICAPath(suite.Path, suite.contractAddress.String()) suite.Require().NoError(err) - events, data, err := suite.messenger.DispatchMsg( - suite.ctx, + _, _, err = suite.executeNeutronMsg( suite.contractAddress, - suite.Path.EndpointA.ChannelConfig.PortID, - types.CosmosMsg{ - Custom: suite.craftMarshaledMsgSubmitTxWithNumMsgs(1), - }, + suite.craftMarshaledMsgSubmitTxWithNumMsgs(1), ) suite.NoError(err) - var response bindings.SubmitTxResponse - err = json.Unmarshal(data[0], &response) - suite.NoError(err) - suite.Nil(events) - suite.Equal(uint64(1), response.SequenceId) - suite.Equal("channel-2", response.Channel) + // huh? + //var response bindings.SubmitTxResponse + //err = json.Unmarshal(data, &response) + //suite.NoError(err) + //suite.Equal(uint64(1), response.SequenceId) + //suite.Equal("channel-2", response.Channel) } func (suite *CustomMessengerTestSuite) TestSubmitTxTooMuchTxs() { - // Store code and instantiate reflect contract - codeID := suite.StoreTestCode(suite.ctx, suite.contractOwner, "../testdata/reflect.wasm") - suite.contractAddress = suite.InstantiateTestContract(suite.ctx, suite.contractOwner, codeID) - suite.Require().NotEmpty(suite.contractAddress) - err := testutil.SetupICAPath(suite.Path, suite.contractAddress.String()) suite.Require().NoError(err) - _, _, err = suite.messenger.DispatchMsg( - suite.ctx, + _, _, err = suite.executeNeutronMsg( suite.contractAddress, - suite.Path.EndpointA.ChannelConfig.PortID, - types.CosmosMsg{ - Custom: suite.craftMarshaledMsgSubmitTxWithNumMsgs(20), - }, + suite.craftMarshaledMsgSubmitTxWithNumMsgs(20), ) suite.ErrorContains(err, "MsgSubmitTx contains more messages than allowed") } @@ -556,6 +516,10 @@ func (suite *CustomMessengerTestSuite) TestSoftwareUpgradeProposal() { // Set admin so that we can execute this proposal without permission error suite.neutron.AdminmoduleKeeper.SetAdmin(suite.ctx, suite.contractAddress.String()) + codeID := suite.StoreTestCode(suite.ctx, suite.contractOwner, "../testdata/reflect.wasm") + anotherContract := suite.InstantiateTestContract(suite.ctx, suite.contractOwner, codeID) + suite.Require().NotEqual(anotherContract, suite.contractAddress) + executeMsg := fmt.Sprintf(` { "@type": "/cosmos.upgrade.v1beta1.MsgSoftwareUpgrade", @@ -568,7 +532,7 @@ func (suite *CustomMessengerTestSuite) TestSoftwareUpgradeProposal() { } `, suite.neutron.BankKeeper.GetAuthority()) // Craft SubmitAdminProposal message - msg, err := json.Marshal(bindings.NeutronMsg{ + msg := bindings.NeutronMsg{ SubmitAdminProposal: &bindings.SubmitAdminProposal{ AdminProposal: bindings.AdminProposal{ ProposalExecuteMessage: &bindings.ProposalExecuteMessage{ @@ -576,28 +540,21 @@ func (suite *CustomMessengerTestSuite) TestSoftwareUpgradeProposal() { }, }, }, - }) - suite.NoError(err) + } // Dispatch SubmitAdminProposal message - events, data, err := suite.messenger.DispatchMsg(suite.ctx, suite.contractAddress, suite.Path.EndpointA.ChannelConfig.PortID, types.CosmosMsg{ - Custom: msg, - }) + _, _, err := suite.executeNeutronMsg(suite.contractAddress, msg) suite.NoError(err) - suite.Nil(events) - expected, err := json.Marshal(&admintypes.MsgSubmitProposalResponse{ - ProposalId: 1, - }) - suite.NoError(err) - suite.Equal([][]uint8{expected}, data) + // huh? + //expected, err := json.Marshal(&admintypes.MsgSubmitProposalResponse{ + // ProposalId: 1, + //}) + //suite.NoError(err) + //suite.Equal([][]uint8{expected}, data) // Test with other proposer that is not admin should return failure - otherAddress, err := sdk.AccAddressFromBech32("neutron13jrwrtsyjjuynlug65r76r2zvfw5xjcq6532h2") - suite.NoError(err) - _, _, err = suite.messenger.DispatchMsg(suite.ctx, otherAddress, suite.Path.EndpointA.ChannelConfig.PortID, types.CosmosMsg{ - Custom: msg, - }) + _, _, err = suite.executeNeutronMsg(anotherContract, msg) suite.Error(err) // Check CancelSubmitAdminProposal @@ -609,24 +566,22 @@ func (suite *CustomMessengerTestSuite) TestSoftwareUpgradeProposal() { } `, suite.neutron.BankKeeper.GetAuthority()) // Craft CancelSubmitAdminProposal message - msg, err = json.Marshal(bindings.NeutronMsg{ + msg = bindings.NeutronMsg{ SubmitAdminProposal: &bindings.SubmitAdminProposal{ AdminProposal: bindings.AdminProposal{ProposalExecuteMessage: &bindings.ProposalExecuteMessage{Message: executeMsg}}, }, - }) - suite.NoError(err) + } // Dispatch SubmitAdminProposal message - events, data, err = suite.messenger.DispatchMsg(suite.ctx, suite.contractAddress, suite.Path.EndpointA.ChannelConfig.PortID, types.CosmosMsg{ - Custom: msg, - }) - suite.NoError(err) - suite.Nil(events) - expected, err = json.Marshal(&admintypes.MsgSubmitProposalResponse{ - ProposalId: 2, - }) + _, _, err = suite.executeNeutronMsg(suite.contractAddress, msg) suite.NoError(err) - suite.Equal([][]uint8{expected}, data) + + // huh? + //expected, err = json.Marshal(&admintypes.MsgSubmitProposalResponse{ + // ProposalId: 2, + //}) + //suite.NoError(err) + //suite.Equal([][]uint8{expected}, data) } func (suite *CustomMessengerTestSuite) TestTooMuchProposals() { @@ -670,11 +625,6 @@ func (suite *CustomMessengerTestSuite) TestTooMuchProposals() { } func (suite *CustomMessengerTestSuite) TestNoProposals() { - // Store code and instantiate reflect contract - codeID := suite.StoreTestCode(suite.ctx, suite.contractOwner, "../testdata/reflect.wasm") - suite.contractAddress = suite.InstantiateTestContract(suite.ctx, suite.contractOwner, codeID) - suite.Require().NotEmpty(suite.contractAddress) - err := testutil.SetupICAPath(suite.Path, suite.contractAddress.String()) suite.Require().NoError(err) @@ -695,16 +645,11 @@ func (suite *CustomMessengerTestSuite) TestNoProposals() { } func (suite *CustomMessengerTestSuite) TestAddRemoveSchedule() { - // Store code and instantiate reflect contract - codeID := suite.StoreTestCode(suite.ctx, suite.contractOwner, "../testdata/reflect.wasm") - suite.contractAddress = suite.InstantiateTestContract(suite.ctx, suite.contractOwner, codeID) - suite.Require().NotEmpty(suite.contractAddress) - // Set admin so that we can execute this proposal without permission error suite.neutron.AdminmoduleKeeper.SetAdmin(suite.ctx, suite.contractAddress.String()) // Craft AddSchedule message - msg, err := json.Marshal(bindings.NeutronMsg{ + msg := bindings.NeutronMsg{ AddSchedule: &bindings.AddSchedule{ Name: "schedule1", Period: 5, @@ -715,44 +660,35 @@ func (suite *CustomMessengerTestSuite) TestAddRemoveSchedule() { }, }, }, - }) - suite.NoError(err) + } // Dispatch AddSchedule message - events, data, err := suite.messenger.DispatchMsg(suite.ctx, suite.contractAddress, suite.Path.EndpointA.ChannelConfig.PortID, types.CosmosMsg{ - Custom: msg, - }) - suite.NoError(err) - suite.Nil(events) - expected, err := json.Marshal(&bindings.AddScheduleResponse{}) + _, _, err := suite.executeNeutronMsg(suite.contractAddress, msg) suite.NoError(err) - suite.Equal([][]uint8{expected}, data) + + // Huh? + //expected, err := json.Marshal(&bindings.AddScheduleResponse{}) + //suite.NoError(err) + //suite.Equal([][]uint8{expected}, data) // Craft RemoveSchedule message - msg, err = json.Marshal(bindings.NeutronMsg{ + msg = bindings.NeutronMsg{ RemoveSchedule: &bindings.RemoveSchedule{ Name: "schedule1", }, - }) - suite.NoError(err) + } // Dispatch AddSchedule message - events, data, err = suite.messenger.DispatchMsg(suite.ctx, suite.contractAddress, suite.Path.EndpointA.ChannelConfig.PortID, types.CosmosMsg{ - Custom: msg, - }) - suite.NoError(err) - suite.Nil(events) - expected, err = json.Marshal(&bindings.RemoveScheduleResponse{}) + _, _, err = suite.executeNeutronMsg(suite.contractAddress, msg) suite.NoError(err) - suite.Equal([][]uint8{expected}, data) + + // huh? + //expected, err = json.Marshal(&bindings.RemoveScheduleResponse{}) + //suite.NoError(err) + //suite.Equal([][]uint8{expected}, data) } func (suite *CustomMessengerTestSuite) TestResubmitFailureAck() { - // Store code and instantiate reflect contract - codeID := suite.StoreTestCode(suite.ctx, suite.contractOwner, "../testdata/reflect.wasm") - suite.contractAddress = suite.InstantiateTestContract(suite.ctx, suite.contractOwner, codeID) - suite.Require().NotEmpty(suite.contractAddress) - // Add failure packet := ibcchanneltypes.Packet{} ack := ibcchanneltypes.Acknowledgement{ @@ -764,30 +700,23 @@ func (suite *CustomMessengerTestSuite) TestResubmitFailureAck() { suite.messenger.ContractmanagerKeeper.AddContractFailure(suite.ctx, suite.contractAddress.String(), payload, "test error") // Craft message - msg, err := json.Marshal(bindings.NeutronMsg{ + msg := bindings.NeutronMsg{ ResubmitFailure: &bindings.ResubmitFailure{ FailureId: failureID, }, - }) - suite.NoError(err) + } // Dispatch - events, data, err := suite.messenger.DispatchMsg(suite.ctx, suite.contractAddress, suite.Path.EndpointA.ChannelConfig.PortID, types.CosmosMsg{ - Custom: msg, - }) - suite.NoError(err) - suite.Nil(events) - expected, err := json.Marshal(&bindings.ResubmitFailureResponse{}) + _, _, err = suite.executeNeutronMsg(suite.contractAddress, msg) suite.NoError(err) - suite.Equal([][]uint8{expected}, data) + + // huh? + //expected, err := json.Marshal(&bindings.ResubmitFailureResponse{}) + //suite.NoError(err) + //suite.Equal([][]uint8{expected}, data) } func (suite *CustomMessengerTestSuite) TestResubmitFailureTimeout() { - // Store code and instantiate reflect contract - codeID := suite.StoreTestCode(suite.ctx, suite.contractOwner, "../testdata/reflect.wasm") - suite.contractAddress = suite.InstantiateTestContract(suite.ctx, suite.contractOwner, codeID) - suite.Require().NotEmpty(suite.contractAddress) - // Add failure packet := ibcchanneltypes.Packet{} payload, err := keeper2.PrepareSudoCallbackMessage(packet, nil) @@ -796,30 +725,23 @@ func (suite *CustomMessengerTestSuite) TestResubmitFailureTimeout() { suite.messenger.ContractmanagerKeeper.AddContractFailure(suite.ctx, suite.contractAddress.String(), payload, "test error") // Craft message - msg, err := json.Marshal(bindings.NeutronMsg{ + msg := bindings.NeutronMsg{ ResubmitFailure: &bindings.ResubmitFailure{ FailureId: failureID, }, - }) - suite.NoError(err) + } // Dispatch - events, data, err := suite.messenger.DispatchMsg(suite.ctx, suite.contractAddress, suite.Path.EndpointA.ChannelConfig.PortID, types.CosmosMsg{ - Custom: msg, - }) - suite.NoError(err) - suite.Nil(events) - expected, err := json.Marshal(&bindings.ResubmitFailureResponse{FailureId: failureID}) + _, _, err = suite.executeNeutronMsg(suite.contractAddress, msg) suite.NoError(err) - suite.Equal([][]uint8{expected}, data) + + // huh? + //expected, err := json.Marshal(&bindings.ResubmitFailureResponse{FailureId: failureID}) + //suite.NoError(err) + //suite.Equal([][]uint8{expected}, data) } func (suite *CustomMessengerTestSuite) TestResubmitFailureFromDifferentContract() { - // Store code and instantiate reflect contract - codeID := suite.StoreTestCode(suite.ctx, suite.contractOwner, "../testdata/reflect.wasm") - suite.contractAddress = suite.InstantiateTestContract(suite.ctx, suite.contractOwner, codeID) - suite.Require().NotEmpty(suite.contractAddress) - // Add failure packet := ibcchanneltypes.Packet{} ack := ibcchanneltypes.Acknowledgement{ @@ -831,34 +753,49 @@ func (suite *CustomMessengerTestSuite) TestResubmitFailureFromDifferentContract( suite.messenger.ContractmanagerKeeper.AddContractFailure(suite.ctx, testutil.TestOwnerAddress, payload, "test error") // Craft message - msg, err := json.Marshal(bindings.NeutronMsg{ + msg := bindings.NeutronMsg{ ResubmitFailure: &bindings.ResubmitFailure{ FailureId: failureID, }, - }) - suite.NoError(err) + } // Dispatch - _, _, err = suite.messenger.DispatchMsg(suite.ctx, suite.contractAddress, suite.Path.EndpointA.ChannelConfig.PortID, types.CosmosMsg{ - Custom: msg, - }) + _, _, err = suite.executeNeutronMsg(suite.contractAddress, msg) suite.ErrorContains(err, "no failure found to resubmit: not found") } -func (suite *CustomMessengerTestSuite) executeCustomMsg(owner sdk.AccAddress, fullMsg bindings.NeutronMsg) (result [][]byte, msg []byte) { - msg, err := json.Marshal(fullMsg) - suite.NoError(err) +func (suite *CustomMessengerTestSuite) executeCustomMsg(contractAddress sdk.AccAddress, fullMsg json.RawMessage) (data []byte, msg []byte, err error) { + customMsg := types.CosmosMsg{ + Custom: fullMsg, + } - events, result, err := suite.messenger.DispatchMsg(suite.ctx, owner, suite.Path.EndpointA.ChannelConfig.PortID, types.CosmosMsg{ - Custom: msg, - }) + type ExecuteMsg struct { + ReflectMsg struct { + Msgs []types.CosmosMsg `json:"msgs"` + } `json:"reflect_msg"` + } + + execMsg := ExecuteMsg{ReflectMsg: struct { + Msgs []types.CosmosMsg `json:"msgs"` + }(struct{ Msgs []types.CosmosMsg }{Msgs: []types.CosmosMsg{customMsg}})} + + msg, err = json.Marshal(execMsg) suite.NoError(err) - suite.Nil(events) + + data, err = suite.contractKeeper.Execute(suite.ctx, contractAddress, suite.contractOwner, msg, nil) return } -func (suite *CustomMessengerTestSuite) craftMarshaledMsgSubmitTxWithNumMsgs(numMsgs int) (result []byte) { +func (suite *CustomMessengerTestSuite) executeNeutronMsg(contractAddress sdk.AccAddress, fullMsg bindings.NeutronMsg) (data []byte, msg []byte, err error) { + + fullMsgBz, err := json.Marshal(fullMsg) + suite.NoError(err) + + return suite.executeCustomMsg(contractAddress, fullMsgBz) +} + +func (suite *CustomMessengerTestSuite) craftMarshaledMsgSubmitTxWithNumMsgs(numMsgs int) bindings.NeutronMsg { msg := bindings.ProtobufAny{ TypeURL: "/cosmos.staking.v1beta1.MsgDelegate", Value: []byte{26, 10, 10, 5, 115, 116, 97, 107, 101, 18, 1, 48}, @@ -867,10 +804,8 @@ func (suite *CustomMessengerTestSuite) craftMarshaledMsgSubmitTxWithNumMsgs(numM for i := 0; i < numMsgs; i++ { msgs = append(msgs, msg) } - result, err := json.Marshal(struct { - SubmitTx bindings.SubmitTx `json:"submit_tx"` - }{ - SubmitTx: bindings.SubmitTx{ + result := bindings.NeutronMsg{ + SubmitTx: &bindings.SubmitTx{ ConnectionId: suite.Path.EndpointA.ConnectionID, InterchainAccountId: testutil.TestInterchainID, Msgs: msgs, @@ -882,9 +817,8 @@ func (suite *CustomMessengerTestSuite) craftMarshaledMsgSubmitTxWithNumMsgs(numM TimeoutFee: sdk.NewCoins(sdk.NewCoin(params.DefaultDenom, sdk.NewInt(1000))), }, }, - }) - suite.NoError(err) - return + } + return result } func TestMessengerTestSuite(t *testing.T) { diff --git a/wasmbinding/testdata/reflect.wasm b/wasmbinding/testdata/reflect.wasm index ab380cbe2cc26037f84fa79510241d33430f4b8f..23acc12ff3eb0792d512838f822e0cd913eab4d8 100644 GIT binary patch literal 411173 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 z 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 From 6988dc225ab449610febcc97bd40378f60d77850 Mon Sep 17 00:00:00 2001 From: pr0n00gler Date: Wed, 7 Feb 2024 23:47:39 +0200 Subject: [PATCH 3/8] lint --- wasmbinding/test/custom_message_test.go | 46 ++++++++++++------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/wasmbinding/test/custom_message_test.go b/wasmbinding/test/custom_message_test.go index 562ce1501..a90294171 100644 --- a/wasmbinding/test/custom_message_test.go +++ b/wasmbinding/test/custom_message_test.go @@ -198,7 +198,8 @@ func (suite *CustomMessengerTestSuite) TestSetDenomMetadataMsg() { { Denom: sunDenom, Exponent: 0, - Aliases: []string{"sun"}}, + Aliases: []string{"sun"}, + }, }, Base: sunDenom, Display: sunDenom, @@ -494,11 +495,11 @@ func (suite *CustomMessengerTestSuite) TestSubmitTx() { suite.NoError(err) // huh? - //var response bindings.SubmitTxResponse - //err = json.Unmarshal(data, &response) - //suite.NoError(err) - //suite.Equal(uint64(1), response.SequenceId) - //suite.Equal("channel-2", response.Channel) + // var response bindings.SubmitTxResponse + // err = json.Unmarshal(data, &response) + // suite.NoError(err) + // suite.Equal(uint64(1), response.SequenceId) + // suite.Equal("channel-2", response.Channel) } func (suite *CustomMessengerTestSuite) TestSubmitTxTooMuchTxs() { @@ -547,7 +548,7 @@ func (suite *CustomMessengerTestSuite) TestSoftwareUpgradeProposal() { suite.NoError(err) // huh? - //expected, err := json.Marshal(&admintypes.MsgSubmitProposalResponse{ + // expected, err := json.Marshal(&admintypes.MsgSubmitProposalResponse{ // ProposalId: 1, //}) //suite.NoError(err) @@ -577,7 +578,7 @@ func (suite *CustomMessengerTestSuite) TestSoftwareUpgradeProposal() { suite.NoError(err) // huh? - //expected, err = json.Marshal(&admintypes.MsgSubmitProposalResponse{ + // expected, err = json.Marshal(&admintypes.MsgSubmitProposalResponse{ // ProposalId: 2, //}) //suite.NoError(err) @@ -667,9 +668,9 @@ func (suite *CustomMessengerTestSuite) TestAddRemoveSchedule() { suite.NoError(err) // Huh? - //expected, err := json.Marshal(&bindings.AddScheduleResponse{}) - //suite.NoError(err) - //suite.Equal([][]uint8{expected}, data) + // expected, err := json.Marshal(&bindings.AddScheduleResponse{}) + // suite.NoError(err) + // suite.Equal([][]uint8{expected}, data) // Craft RemoveSchedule message msg = bindings.NeutronMsg{ @@ -683,9 +684,9 @@ func (suite *CustomMessengerTestSuite) TestAddRemoveSchedule() { suite.NoError(err) // huh? - //expected, err = json.Marshal(&bindings.RemoveScheduleResponse{}) - //suite.NoError(err) - //suite.Equal([][]uint8{expected}, data) + // expected, err = json.Marshal(&bindings.RemoveScheduleResponse{}) + // suite.NoError(err) + // suite.Equal([][]uint8{expected}, data) } func (suite *CustomMessengerTestSuite) TestResubmitFailureAck() { @@ -711,9 +712,9 @@ func (suite *CustomMessengerTestSuite) TestResubmitFailureAck() { suite.NoError(err) // huh? - //expected, err := json.Marshal(&bindings.ResubmitFailureResponse{}) - //suite.NoError(err) - //suite.Equal([][]uint8{expected}, data) + // expected, err := json.Marshal(&bindings.ResubmitFailureResponse{}) + // suite.NoError(err) + // suite.Equal([][]uint8{expected}, data) } func (suite *CustomMessengerTestSuite) TestResubmitFailureTimeout() { @@ -736,9 +737,9 @@ func (suite *CustomMessengerTestSuite) TestResubmitFailureTimeout() { suite.NoError(err) // huh? - //expected, err := json.Marshal(&bindings.ResubmitFailureResponse{FailureId: failureID}) - //suite.NoError(err) - //suite.Equal([][]uint8{expected}, data) + // expected, err := json.Marshal(&bindings.ResubmitFailureResponse{FailureId: failureID}) + // suite.NoError(err) + // suite.Equal([][]uint8{expected}, data) } func (suite *CustomMessengerTestSuite) TestResubmitFailureFromDifferentContract() { @@ -764,7 +765,7 @@ func (suite *CustomMessengerTestSuite) TestResubmitFailureFromDifferentContract( suite.ErrorContains(err, "no failure found to resubmit: not found") } -func (suite *CustomMessengerTestSuite) executeCustomMsg(contractAddress sdk.AccAddress, fullMsg json.RawMessage) (data []byte, msg []byte, err error) { +func (suite *CustomMessengerTestSuite) executeCustomMsg(contractAddress sdk.AccAddress, fullMsg json.RawMessage) (data, msg []byte, err error) { customMsg := types.CosmosMsg{ Custom: fullMsg, } @@ -787,8 +788,7 @@ func (suite *CustomMessengerTestSuite) executeCustomMsg(contractAddress sdk.AccA return } -func (suite *CustomMessengerTestSuite) executeNeutronMsg(contractAddress sdk.AccAddress, fullMsg bindings.NeutronMsg) (data []byte, msg []byte, err error) { - +func (suite *CustomMessengerTestSuite) executeNeutronMsg(contractAddress sdk.AccAddress, fullMsg bindings.NeutronMsg) (data, msg []byte, err error) { fullMsgBz, err := json.Marshal(fullMsg) suite.NoError(err) From 3c3ef36f62bbc0007c8856d6519c7fb75ca03c2a Mon Sep 17 00:00:00 2001 From: pr0n00gler Date: Thu, 8 Feb 2024 23:55:05 +0200 Subject: [PATCH 4/8] fix tests which gets data from contracts execution --- wasmbinding/test/custom_message_test.go | 140 +++++++++++------------- wasmbinding/testdata/reflect.wasm | Bin 411173 -> 422710 bytes 2 files changed, 66 insertions(+), 74 deletions(-) diff --git a/wasmbinding/test/custom_message_test.go b/wasmbinding/test/custom_message_test.go index a90294171..980ea49f8 100644 --- a/wasmbinding/test/custom_message_test.go +++ b/wasmbinding/test/custom_message_test.go @@ -5,7 +5,8 @@ import ( "fmt" "testing" - types2 "github.com/CosmWasm/wasmd/x/wasm/types" + wasmtypes "github.com/CosmWasm/wasmd/x/wasm/types" + admintypes "github.com/cosmos/admin-module/x/adminmodule/types" banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" keeper2 "github.com/neutron-org/neutron/v2/x/contractmanager/keeper" @@ -49,7 +50,7 @@ type CustomMessengerTestSuite struct { messenger *wasmbinding.CustomMessenger contractOwner sdk.AccAddress contractAddress sdk.AccAddress - contractKeeper types2.ContractOpsKeeper + contractKeeper wasmtypes.ContractOpsKeeper } func (suite *CustomMessengerTestSuite) SetupTest() { @@ -104,9 +105,8 @@ func (suite *CustomMessengerTestSuite) TestRegisterInterchainAccount() { suite.NoError(err) // Dispatch RegisterInterchainAccount message - data, _, err := suite.executeNeutronMsg(suite.contractAddress, msg) + _, err = suite.executeNeutronMsg(suite.contractAddress, msg) suite.NoError(err) - suite.Nil(data) } func (suite *CustomMessengerTestSuite) TestRegisterInterchainAccountLongID() { @@ -153,7 +153,7 @@ func (suite *CustomMessengerTestSuite) TestRegisterInterchainQuery() { } // Dispatch RegisterInterchainQuery message - _, _, err = suite.executeNeutronMsg(suite.contractAddress, msg) + _, err = suite.executeNeutronMsg(suite.contractAddress, msg) suite.NoError(err) suite.Equal(uint64(1), suite.neutron.InterchainQueriesKeeper.GetLastRegisteredQueryKey(suite.ctx)) } @@ -171,8 +171,9 @@ func (suite *CustomMessengerTestSuite) TestCreateDenomMsg() { }, } - data, _, _ := suite.executeNeutronMsg(suite.contractAddress, fullMsg) - suite.Nil(data) + data, err := suite.executeNeutronMsg(suite.contractAddress, fullMsg) + suite.NoError(err) + suite.Empty(data) } func (suite *CustomMessengerTestSuite) TestSetDenomMetadataMsg() { @@ -187,8 +188,8 @@ func (suite *CustomMessengerTestSuite) TestSetDenomMetadataMsg() { Subdenom: "SUN", }, } - data, _, err := suite.executeNeutronMsg(suite.contractAddress, fullMsg) - suite.Nil(data) + data, err := suite.executeNeutronMsg(suite.contractAddress, fullMsg) + suite.Empty(data) suite.NoError(err) sunDenom := fmt.Sprintf("factory/%s/%s", suite.contractAddress.String(), fullMsg.CreateDenom.Subdenom) @@ -233,8 +234,8 @@ func (suite *CustomMessengerTestSuite) TestSetDenomMetadataMsg() { } ` - data, _, err = suite.executeCustomMsg(suite.contractAddress, json.RawMessage(metaMsgBz)) - suite.Nil(data) + data, err = suite.executeCustomMsg(suite.contractAddress, json.RawMessage(metaMsgBz)) + suite.Empty(data) suite.NoError(err) metaFromBank, ok := bankKeeper.GetDenomMetaData(suite.ctx, sunDenom) @@ -266,7 +267,7 @@ func (suite *CustomMessengerTestSuite) TestMintMsg() { }, } - _, _, err = suite.executeNeutronMsg(suite.contractAddress, fullMsg) + _, err = suite.executeNeutronMsg(suite.contractAddress, fullMsg) suite.NoError(err) sunDenom := fmt.Sprintf("factory/%s/%s", suite.contractAddress.String(), fullMsg.CreateDenom.Subdenom) @@ -282,7 +283,7 @@ func (suite *CustomMessengerTestSuite) TestMintMsg() { }, } - _, _, err = suite.executeNeutronMsg(suite.contractAddress, fullMsg) + _, err = suite.executeNeutronMsg(suite.contractAddress, fullMsg) suite.NoError(err) balances = neutron.BankKeeper.GetAllBalances(ctx, lucky) @@ -293,7 +294,7 @@ func (suite *CustomMessengerTestSuite) TestMintMsg() { require.Equal(suite.T(), sunDenom, coin.Denom) // mint the same denom again - _, _, err = suite.executeNeutronMsg(suite.contractAddress, fullMsg) + _, err = suite.executeNeutronMsg(suite.contractAddress, fullMsg) suite.NoError(err) balances = neutron.BankKeeper.GetAllBalances(ctx, lucky) @@ -310,7 +311,7 @@ func (suite *CustomMessengerTestSuite) TestMintMsg() { Subdenom: "MOON", }, } - _, _, err = suite.executeNeutronMsg(suite.contractAddress, fullMsg) + _, err = suite.executeNeutronMsg(suite.contractAddress, fullMsg) suite.NoError(err) moonDenom := fmt.Sprintf("factory/%s/%s", suite.contractAddress.String(), fullMsg.CreateDenom.Subdenom) @@ -324,7 +325,7 @@ func (suite *CustomMessengerTestSuite) TestMintMsg() { }, } - _, _, err = suite.executeNeutronMsg(suite.contractAddress, fullMsg) + _, err = suite.executeNeutronMsg(suite.contractAddress, fullMsg) suite.NoError(err) balances = neutron.BankKeeper.GetAllBalances(ctx, lucky) @@ -360,7 +361,7 @@ func (suite *CustomMessengerTestSuite) TestForceTransferMsg() { }, } - _, _, err = suite.executeNeutronMsg(suite.contractAddress, fullMsg) + _, err = suite.executeNeutronMsg(suite.contractAddress, fullMsg) suite.NoError(err) sunDenom := fmt.Sprintf("factory/%s/%s", suite.contractAddress.String(), fullMsg.CreateDenom.Subdenom) @@ -376,7 +377,7 @@ func (suite *CustomMessengerTestSuite) TestForceTransferMsg() { }, } - _, _, err = suite.executeNeutronMsg(suite.contractAddress, fullMsg) + _, err = suite.executeNeutronMsg(suite.contractAddress, fullMsg) suite.NoError(err) balances = neutron.BankKeeper.GetAllBalances(ctx, lucky) @@ -396,7 +397,7 @@ func (suite *CustomMessengerTestSuite) TestForceTransferMsg() { }, } - _, _, err = suite.executeNeutronMsg(suite.contractAddress, fullMsg) + _, err = suite.executeNeutronMsg(suite.contractAddress, fullMsg) suite.NoError(err) balancesLucky := neutron.BankKeeper.GetAllBalances(ctx, lucky) @@ -424,9 +425,8 @@ func (suite *CustomMessengerTestSuite) TestUpdateInterchainQuery() { } // Dispatch UpdateInterchainQuery message - data, _, err := suite.executeNeutronMsg(suite.contractAddress, msg) + _, err := suite.executeNeutronMsg(suite.contractAddress, msg) suite.NoError(err) - suite.Nil(data) } func (suite *CustomMessengerTestSuite) TestUpdateInterchainQueryFailed() { @@ -440,10 +440,10 @@ func (suite *CustomMessengerTestSuite) TestUpdateInterchainQueryFailed() { } // Dispatch UpdateInterchainQuery message - data, _, err := suite.executeNeutronMsg(suite.contractAddress, msg) + data, err := suite.executeNeutronMsg(suite.contractAddress, msg) expectedErrMsg := "failed to update interchain query: failed to update interchain query: failed to get query by query id: there is no query with id: 1" suite.Require().ErrorContains(err, expectedErrMsg) - suite.Nil(data) + suite.Empty(data) } func (suite *CustomMessengerTestSuite) TestRemoveInterchainQuery() { @@ -458,9 +458,8 @@ func (suite *CustomMessengerTestSuite) TestRemoveInterchainQuery() { } // Dispatch RemoveInterchainQuery message - data, _, err := suite.executeNeutronMsg(suite.contractAddress, msg) + _, err := suite.executeNeutronMsg(suite.contractAddress, msg) suite.NoError(err) - suite.Nil(data) } func (suite *CustomMessengerTestSuite) TestRemoveInterchainQueryFailed() { @@ -472,10 +471,10 @@ func (suite *CustomMessengerTestSuite) TestRemoveInterchainQueryFailed() { } // Dispatch RemoveInterchainQuery message - data, _, err := suite.executeNeutronMsg(suite.contractAddress, msg) + data, err := suite.executeNeutronMsg(suite.contractAddress, msg) expectedErrMsg := "failed to remove interchain query: failed to remove interchain query: failed to get query by query id: there is no query with id: 1" suite.Require().ErrorContains(err, expectedErrMsg) - suite.Nil(data) + suite.Empty(data) } func (suite *CustomMessengerTestSuite) TestSubmitTx() { @@ -488,25 +487,24 @@ func (suite *CustomMessengerTestSuite) TestSubmitTx() { err = testutil.SetupICAPath(suite.Path, suite.contractAddress.String()) suite.Require().NoError(err) - _, _, err = suite.executeNeutronMsg( + data, err := suite.executeNeutronMsg( suite.contractAddress, suite.craftMarshaledMsgSubmitTxWithNumMsgs(1), ) suite.NoError(err) - // huh? - // var response bindings.SubmitTxResponse - // err = json.Unmarshal(data, &response) - // suite.NoError(err) - // suite.Equal(uint64(1), response.SequenceId) - // suite.Equal("channel-2", response.Channel) + var response bindings.SubmitTxResponse + err = json.Unmarshal(data, &response) + suite.NoError(err) + suite.Equal(uint64(1), response.SequenceId) + suite.Equal("channel-2", response.Channel) } func (suite *CustomMessengerTestSuite) TestSubmitTxTooMuchTxs() { err := testutil.SetupICAPath(suite.Path, suite.contractAddress.String()) suite.Require().NoError(err) - _, _, err = suite.executeNeutronMsg( + _, err = suite.executeNeutronMsg( suite.contractAddress, suite.craftMarshaledMsgSubmitTxWithNumMsgs(20), ) @@ -544,18 +542,17 @@ func (suite *CustomMessengerTestSuite) TestSoftwareUpgradeProposal() { } // Dispatch SubmitAdminProposal message - _, _, err := suite.executeNeutronMsg(suite.contractAddress, msg) + data, err := suite.executeNeutronMsg(suite.contractAddress, msg) suite.NoError(err) - // huh? - // expected, err := json.Marshal(&admintypes.MsgSubmitProposalResponse{ - // ProposalId: 1, - //}) - //suite.NoError(err) - //suite.Equal([][]uint8{expected}, data) + expected, err := json.Marshal(&admintypes.MsgSubmitProposalResponse{ + ProposalId: 1, + }) + suite.NoError(err) + suite.Equal(expected, data) // Test with other proposer that is not admin should return failure - _, _, err = suite.executeNeutronMsg(anotherContract, msg) + _, err = suite.executeNeutronMsg(anotherContract, msg) suite.Error(err) // Check CancelSubmitAdminProposal @@ -574,15 +571,14 @@ func (suite *CustomMessengerTestSuite) TestSoftwareUpgradeProposal() { } // Dispatch SubmitAdminProposal message - _, _, err = suite.executeNeutronMsg(suite.contractAddress, msg) + data, err = suite.executeNeutronMsg(suite.contractAddress, msg) suite.NoError(err) - // huh? - // expected, err = json.Marshal(&admintypes.MsgSubmitProposalResponse{ - // ProposalId: 2, - //}) - //suite.NoError(err) - //suite.Equal([][]uint8{expected}, data) + expected, err = json.Marshal(&admintypes.MsgSubmitProposalResponse{ + ProposalId: 2, + }) + suite.NoError(err) + suite.Equal(expected, data) } func (suite *CustomMessengerTestSuite) TestTooMuchProposals() { @@ -664,13 +660,12 @@ func (suite *CustomMessengerTestSuite) TestAddRemoveSchedule() { } // Dispatch AddSchedule message - _, _, err := suite.executeNeutronMsg(suite.contractAddress, msg) + data, err := suite.executeNeutronMsg(suite.contractAddress, msg) suite.NoError(err) - // Huh? - // expected, err := json.Marshal(&bindings.AddScheduleResponse{}) - // suite.NoError(err) - // suite.Equal([][]uint8{expected}, data) + expected, err := json.Marshal(&bindings.AddScheduleResponse{}) + suite.NoError(err) + suite.Equal(expected, data) // Craft RemoveSchedule message msg = bindings.NeutronMsg{ @@ -680,13 +675,12 @@ func (suite *CustomMessengerTestSuite) TestAddRemoveSchedule() { } // Dispatch AddSchedule message - _, _, err = suite.executeNeutronMsg(suite.contractAddress, msg) + data, err = suite.executeNeutronMsg(suite.contractAddress, msg) suite.NoError(err) - // huh? - // expected, err = json.Marshal(&bindings.RemoveScheduleResponse{}) - // suite.NoError(err) - // suite.Equal([][]uint8{expected}, data) + expected, err = json.Marshal(&bindings.RemoveScheduleResponse{}) + suite.NoError(err) + suite.Equal(expected, data) } func (suite *CustomMessengerTestSuite) TestResubmitFailureAck() { @@ -708,13 +702,12 @@ func (suite *CustomMessengerTestSuite) TestResubmitFailureAck() { } // Dispatch - _, _, err = suite.executeNeutronMsg(suite.contractAddress, msg) + data, err := suite.executeNeutronMsg(suite.contractAddress, msg) suite.NoError(err) - // huh? - // expected, err := json.Marshal(&bindings.ResubmitFailureResponse{}) - // suite.NoError(err) - // suite.Equal([][]uint8{expected}, data) + expected, err := json.Marshal(&bindings.ResubmitFailureResponse{}) + suite.NoError(err) + suite.Equal(expected, data) } func (suite *CustomMessengerTestSuite) TestResubmitFailureTimeout() { @@ -733,13 +726,12 @@ func (suite *CustomMessengerTestSuite) TestResubmitFailureTimeout() { } // Dispatch - _, _, err = suite.executeNeutronMsg(suite.contractAddress, msg) + data, err := suite.executeNeutronMsg(suite.contractAddress, msg) suite.NoError(err) - // huh? - // expected, err := json.Marshal(&bindings.ResubmitFailureResponse{FailureId: failureID}) - // suite.NoError(err) - // suite.Equal([][]uint8{expected}, data) + expected, err := json.Marshal(&bindings.ResubmitFailureResponse{FailureId: failureID}) + suite.NoError(err) + suite.Equal(expected, data) } func (suite *CustomMessengerTestSuite) TestResubmitFailureFromDifferentContract() { @@ -761,11 +753,11 @@ func (suite *CustomMessengerTestSuite) TestResubmitFailureFromDifferentContract( } // Dispatch - _, _, err = suite.executeNeutronMsg(suite.contractAddress, msg) + _, err = suite.executeNeutronMsg(suite.contractAddress, msg) suite.ErrorContains(err, "no failure found to resubmit: not found") } -func (suite *CustomMessengerTestSuite) executeCustomMsg(contractAddress sdk.AccAddress, fullMsg json.RawMessage) (data, msg []byte, err error) { +func (suite *CustomMessengerTestSuite) executeCustomMsg(contractAddress sdk.AccAddress, fullMsg json.RawMessage) (data []byte, err error) { customMsg := types.CosmosMsg{ Custom: fullMsg, } @@ -780,7 +772,7 @@ func (suite *CustomMessengerTestSuite) executeCustomMsg(contractAddress sdk.AccA Msgs []types.CosmosMsg `json:"msgs"` }(struct{ Msgs []types.CosmosMsg }{Msgs: []types.CosmosMsg{customMsg}})} - msg, err = json.Marshal(execMsg) + msg, err := json.Marshal(execMsg) suite.NoError(err) data, err = suite.contractKeeper.Execute(suite.ctx, contractAddress, suite.contractOwner, msg, nil) @@ -788,7 +780,7 @@ func (suite *CustomMessengerTestSuite) executeCustomMsg(contractAddress sdk.AccA return } -func (suite *CustomMessengerTestSuite) executeNeutronMsg(contractAddress sdk.AccAddress, fullMsg bindings.NeutronMsg) (data, msg []byte, err error) { +func (suite *CustomMessengerTestSuite) executeNeutronMsg(contractAddress sdk.AccAddress, fullMsg bindings.NeutronMsg) (data []byte, err error) { fullMsgBz, err := json.Marshal(fullMsg) suite.NoError(err) diff --git a/wasmbinding/testdata/reflect.wasm b/wasmbinding/testdata/reflect.wasm index 23acc12ff3eb0792d512838f822e0cd913eab4d8..174232f4b63e9248ea5719711dfc9cc8ace8254e 100644 GIT binary patch delta 88223 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 delta 77913 zcmdSCcYIXE`!AlE*-hVMLqdQQ*o2lqLhnr$2t~ReA{`W!-W60Ni1d=c0fwH$1|mo> zU{FD#qJnfq1*9YbA#`kjNV)H4=A7Mt__?3&{r&DAS6}3uotZOd=6RlZ`po&Lu*^I2 z%4ApJVySJhk<2%TaK`My$4}UO@Snr@mAi~k(K)BT5Nyh^ji37jP4RK()79@33-ui_ zc*Ll&lekaNkdfoY4;(pu$iVS~eZFLVgC`DtW&&=%X7(`?29KTOvzyt*O?Y;c&mQJC zV#xDjsoA&8Id<@v2}8yX9@l^5;0fc$jvDE6oB0nMK77}ig7 z4I47@c{C3zUN-i5dhWInW{)U+n}rV>a+ApJFrlEIto4yTlrv!9Qeg z^0#>we~Z7)=kVG5o*LH=Y(7uJQ-}EiK8@eS@HX-LOtMvcI-kMk@?$)e-(i{TXMR8& z6Pau({=LPfiPyzFzF5$^W{WvJ#9B531+&C*u|ljAt57i=|2`HUiEUyF?zW=Em*OjN zMw}3*#A$I>d?%*cbgOgXinuCP*sh7|;#YA{EVC`Q1^#lR)Z(0SehpaY?>v|VxqMwV zmvH{ZgN%VeiAI|LY2WR_C&;@6Er^%A!=clkKeL=Z}w53Ar48st8NhVJ_K-C(GDRu=Bh;*ayV;VkzxrgJK} zjZxM$1f!hgI>j)}=i{HEkq^8w0W<&UN}|!PLQeoB@3&|0d&gD!?Ps*F*cD}uU8{=G z47=8Z<=87@zBh7`69xk?hLISD##<8s)trPXxm1*2wOk`>$lUE3it!Zr40X=6IWU0) z-Uq*T`wS(-CGei{oGt?Z%oK-@i#yYdhDmKITvVk#4jwFu&8qpZ;Xk5jBedprjCfzo@%pJQ4sUC_^EYEn?dJd) zd!1h~>zj2Z5|~EUyU#8gqwDA3=?V>A!PA)yjuUOX(n!(9spQs1eq-PGkGadwWq0`{ za92E|O9CcG*9sUHBZL`Mt0fv8TxE^UO{TIm<8YG~@V8OZ9<0b%*tC350e5kC!ceq5 zZR~7Xk{59qwt`0(7n_dLb)|>8?9L+j!3G{J53b<;#@uEJcy>#(s=?~nTY#?JdEU6x ztW9*54d8J5#ED=Y%%S>_gWw%{gO7>+%3`LF;5zV1%}rQwDW* zcbB0XTij>U;(P_3bOSAzw(((`@}cTUe=Ow|J}m;BnK@_MRAB6;5zwv&yJ8Gz*A4e^ zPqj8~w_B+1a=v>!g&LqRr(cH@VcuTsyv{5&j&=RRER5*pX`0#Hx;2t|==z_~>aV8; zm~AtAzGU`g^y@RjEUel$%X(LM{~&Ib4j$OUy5-MKVdbvy;BrAOA2+MVeS*v4j@D_m zze^81Mgg7T9*MQVIcy-efl_=>mGddbvRce9H*k56vmhs(@2pdS5c%$YtMGq^c@ z8=lFY@oeA?3mSaU47bsL=17zun3)&}#t$eJ`8fbpccvf6M{$0~tQ!Grye;ECS zmC7kUJDdU7_2M zz2@aJcHL;aU=yZvX~96v{1S`_>7Dp*+{mw2(m0;}B>T;%u`o$-#FfUag`w;X!+%kt zGoP4OJ{yX^MQkXRv3pUiM711_dJ0b~c5s5lIne456({hcEZ!fjS1sDCdDw0gQ^C{5 zV_0{~jbvS%&8hgj@tx5lGRx-RinG~*uom}7aJ3+CwPuSuN9ZaD4+v9FMb_eE@Y#cl zzsLH2YsuSekI{B%67DA~jl(PC(j=D}C&?y%rygSm46yky8eiLZuw3KJ(#54!BZz7I zR`Y16c}N49oerM3Nk*fyz0zdG`4}&;V!o^=%QAW|8-%}~Eo+W(++Wt09WnYYf1V$e z#@EYV#z5RFUZo#9SH$4Qi4{vr7vcp8JfFvhxl6Wz^i*Pj#xZAQx3B`hgwM(-x!3UsDm&^UbJO93AJ3`WeI>duP-tub@K$$O7T3 z1RnQwlwc|o<9#vu?2L)}ai|55(?v#|%no>bYNiP^Lb5M_wk@+o{c|)%yEDt?_GuGm zgUSb{6kFR`p2B;!_ZA}cW z``W6wPhHy`i0HCkL>L#=wnRbly3VMaysi$g7&JD{*AeIExTW+ zRp>*ljFRttq4dST6j#ZVu^34pMsohW=h=L)`$iLH9$83}erRae+IautQ&B&h19)jpcbEmn?!uV&)6miAZDF#=4NW2R2qJ ziT4UfT=#u8CQgvR#UmGtfDam>zSRdSy>H?m9=yq(;^3-dXq6ep-A~GR^l0I-ksf`@ zsPt)LW5A}kS~PQ;sYE-~czp2?SrV2?ZF^Xy&e>EsMDaT42OO0kgQ86}D=6SVcT+{0 zhLV6N1u)QmLc9$Pn`Rpx&4zyeoZSQjPBG{ubcQH#TsC3a42|zo(8t)I802@954+{+9%FW=EsPNM(q!K@O){^{je_x>cWSKL{KhY ztSEl~Ce8-v+T6CG3ET%oHe5g_hd+ui+T?@+-B0Dz!QXi~wL!aiIj>Vkt+v!=zZes@ zBnB7nNdEdBk0?te0t5p-;Om|;G~Uzyur3fP><&1e8c% z&NIgCkH_G>!#|0^-`Sr$^*^V;tDwNA|4*oI^QZClFS+~A_lyqP%ajMPGt%;HZhu9z zSZe}W8!o&ax4C@Wm!%Q0y|(v>`2Xz_vy7SBo3I7OuI=qusu8lIepsFW7GYP~#^RbV z)cLt|$Jt8qG$9|`V=pPk$Jw05q8$V4Ipi&;H$3u&Kjf6*MFcU@tZ_; zIj7qhtblx-)f2hhYuQooGlRD1 zZ)ESSjVZ1P*tHT3gUJh_XIa8OlS(4g7@l;_q#tEGv()4N?NF?7;D>N@ruuRisYhy} zv%s7RKfX&E`QD#iVKYqfj#js0u>L{D=HvB@(??sQoJKVKSQ9cH==R$2A6X>Y z(7@a) zp2IJ!GA^AS=zo>U{mk+e`E&T6tBgto+5V{nRO$*qqqgmTd4|n3HvN)Ayr|!~Xk*Hm zwrr8H`^+GJNlmRT?jEja?9A_JxX$_;chC0Mtyj?;6y6`2gR?N=-=~*ud|TMn{}2IL zfXvIE@8ticNioKx^GWR8oOjQE&D!J=Hih#Ka%6y~=7Y7{-CL=UQz1ZS6@Ea4epCpz zmR0yB6$U&1Fmf)m0pb09VJmC0jFy(K*`*zz&m()@Zgxin3#oU@T}?BVvrK<{l?3` zb}#m5B43|jjQ*{2u^v=W=ijMFceMBS?!20Ix!6gW;7+(rFjQK{sAe|zopwq`_Qs?u}x{8vrq(fo^Ffx z1NZ;^*2`LdOGPmiO!})6I@tY}rN8-7@p*&YeidBiwcG1h;ZngG82$flhPSQxy9^p{ z`@3TlWPOmw1yEYK0Ez@Xdci1n=P|7(9YR5AQwbk=XD6g>wY#Hew0EOPN%w&;$@UxS zPA6q(_uV#7a-h_gfl?o(RC3i_kx}8^K0Nd5y&8Jl+fYm%k>vZOQQZ3eMqRuP#eta4 z{rfPPmORFaO()QKe#t~Ol4UJ9&jzq8*_N>cmL|tAxRW#Fe9<)?yG(@K82Dly?qI{qva5R^rH2)t9lHa6V^Gs>xCwT%JJ^0Lhu zS*D#T&dZ8+*3sjr3a}hi4v#xZ&bPA%JXJPN6?v)xTn-`;n=?%wv@_`Y@}`~5z~wbx z23*NyzDyy@=0R2&jVzcMA@Eb(_hlxwj-mv>Czp-vd#^WsWHr?FnFGfRV<5%#F8B z4rKoz6S+2!jrAfZKr1G&QScsMU)Bm@PwJ6^?&6}sW>Nfzk!Gs)7v$z3YozJkk$x1+ zCNa$ZWe0m3<0u!xhC|XDQ}0!k+d>$OHE9oJ4fJ}u4y(gjZ-0<+rc4l`gzL&)l7m9o z7)=S}7l6SePlvLn&_{hIvn)O=Ihagxq?4t9F1I+@D7+oNO34K!n4fH1f`!W`!&n6x zQy2zND8C6~PvR0=f<0ZVX&rR?WeL_wzmJ><^uF+L))Ey@g+Khh1>vj}-uHbtn}|-r zO5!d3BUlo@mm%jzuonD$hCCd>9@BMC;WDHo8*jDzwIm)kpK2G$TCk$rd6DdIMo-Ny z&6-g!drG4`Lk5>&*-eKugI`;Lz@L$--xwK2w5qP!^217jx6 zAm52%T}zP~>YozFpo{vy7-x6EC?f+-I-=PeH&q6wK-YJLK|3Z7IE-MFIa2TpSUel2 zOQCV2G(5%SOmX>nN}cHDXf*4H_g9KxCLbm1*23%C3@-!|KoRho2{R5*eIMJkPWN0a>Ji*FR;JZpzVh)nHSuL}>~=tr=>r}utH)s6+3_q)GduEBSil&r zU_qiBuy{d%;%q$It|xdD#RQ5CDBrEdR6GnJQBYcQt_NMIpV zG@jck|2fQ!WS@5KyI${kaq%YI2@pVwWI+wJe5=)Djb!~qHW)x!oyewP6~O4$-wv#S&5Lp z)C2=m5Sc2!uLV3QZ%A2>5ex5%%x^1d$*#3o1RAostgFne%?9T+ZxtyDKyZjWu{N#V>0Zyt+l|>0 z{h$kP-Q0vl=|ykV|J1~)kM>2Fh{$z8(}x>vY3gm{(v5~Sd$`fUW}Ze#SPs?@bp%Td zk>Xd67~;ss*i;Ph`eQ5#Lkw!pOc$;-#3s#=dr%~k+$_5!QA|{d3x2{9rZg!5e)6lE zg(px|ObW@G2(v0eQB!OR$r`v7$u(0Ft&>_{Ii|^3&}VU3uP^)b<*L3oTe25yL>JQC zU4+ZDmdvk278&ZyeTHlr#3-pU_(>5JW^3eQ10^!c+R2jNw`6_LAjKh2nw^gJBuXA@ z#bTl0_H6~3Q78|$LbgPad@F^Ss&ihD;^Xpk3dBW`yp_UCTOb=1q$<4DS}CdfTU$zM zsza+LS?SCrE45*X=)FrDW;t~M4&`$uNj#+udj~IF(StRRsRj#_&$nfDP_U}4(nCLL ztMyPnj~-fE>7mQit1rmdc9tfVijvx<9y+`o%LRp2cpLQ&WLc`FcPNo+mY z=dZwr`OGcHPNOPlT_O>#$fXUWJdkZYb~-7xR}b`7v#>TEIP?ViA5(NJ&~Z4AwTWOngJBId$QJOPSFukX!XGl>V~!~*N| zQ9aD;V*&IKD3h3UULQ6VkgVO8wF%9FCWMGpNiy+#vB+lkMLJcQ9MX@~z!VAwuzK=P zKehrO9@d{#EkXQADaZk?a#$Q8cw$|DmWqKU4qyqkLMV80Wj|I|&KbaZ=nm3QIc6YR z5<$;Kq>y&(tNBj4%BgCnMq@~v3Z@a)2y&j0 zy9O}?`(&3bwvxDP`UOg5jc1r2?i)PAOmpA6FaZ}Lw8hV`hG=o%8LW{9o{b44C}_Db zbQnAe+Io>}Fp9-kbeI{cc@pR_L1tY1buT4;~E;TO`v)vwC_Q zhtvR1%fq7;9o`$w2I>k}N3O~k`LHqUaXj(S7*#m3g52$Y!ZA724a zgpFm(bRU^0r;@E>6(#zQD^7_OFnjkntlliSWE`vPPYGR0#_Sr$YN7DvI99%_Rfw1Y zR2c*+L=eK-h&`$3nrtwhjpIi%fB9hpn|hdPI-~dh$eESfgcKrk8+o6P2Ap{ZjRaYl4q%^lGC!&ORO3oG5ICdOHc0> zata)n-kF!!Zd7cT$l9n#50Nk6Vy9q--3oSW2uAmjpreRMY!EvmUz(&aku?eCQJTCq z3C1_-US^GnCSQiD=&bzgWgt0CUVNFA!zJ()&{mpEeuWu$+2^mYmH5^7RTiTbR(T5C zfMk_|K)#y!ud)~M8rx)LbASeh$n%rIIu$)E)R!SLXo^)dM6ND&Up>_-e_rlPRm$F- zRF+(mR;n{4&JTeipdeA{CM8nh;8LaEm>%jwQsTWj&sv+Hxtb z(kZT3Q@bgxo&Z;P*kDG>Xj*^p0b0g2lq8gbeT1aA%6dwP1=V<+(fV)wI%qgej(eST z286zR-EyJqrrZzHWx3B!QEVQHfcV{h@xef#YZ`k=qjVd}spPF`tQY#YH;q-%6|?|@ zL9un-VEyrq#cx2U0+ci0LMbtw4Z;1Z(_zRJ%3ae*^`)Ao=%CXK*411KX3y`>VC_)x z=M0Oyte(ryRI2m%nQ&AT=B}H`UMCk()!AsSI!}_7r?W5ziB!!GfGAbauQvpH)pV{RePSAZ1LMQnURY)^RL;A`j1p zxJZ+&7O)Xj2?OAZeuOaX^3VZ1=(4_0TRm7IQF3B|!b4J;r2yT6cf!KM9bbiq>nH*q zZow4_s83C^6rdvIu_}@Y=}IYhA>HB}1TAu9fo~$^L*7n@zMUmYE@a77Jh57p$G}yr zcK!@3eh2i}XbLTQR7vOiY^MBup;CPb)fcl6;I7$XuM^3V{-g=E3($zM12O$RU`v5FXkZdgTv);;E43dXRydKE2|I`y ztxh3g3zJKM$5N+u`zm!xmXNH3rl33xK3PL54XT}F@9PTk`arNPU8Z1#1VYm_O|T*b zYSJ<`psF$u5uqll(dOPe9dPm0CL%*2&}wtPL%<4ymVY&i#mSw^SXgUc_t(_Yu1p1( zoM`9!;KLMT@%21foKO2{rT|h{`|5H=%G%@=&`y=I_A_7u@HUX2z0KOma;w<8sQ%y` zRzu!c#X?N_%=GorXO{27^yz_ojn(WKS|aZ%h~qL^u3Q6lS|szn3-k5J0?@XyKbfh?^|%JlOl0BQvp0F>k$BNEkoaAp>=Ez z!tXzV|8oLAj4}d$!=@Tv{|a!c@uLAQ0q}Y9`kTt^2Gr}xm2ZJ`{{i}I8tSCdUU|o> zN?4$UDp5+Sv~}K9%*3NM3QmB>#W%iYovU*aUg19?c;d$q^f&v?w;=uCBRjw%ubuZnpm$@dCn;8o~)5 zD5Js4Hx~M>GiN$~)4y_$a@oua)l3c5kFqVOE-MDrRT`@48mh}QRIg-PP@QGIYw>0e zR8#HJ-4Rf|zWHIO!umw)jttM!0Lg!}IVsK(v-OeIQkb6jpsmU!uz9P;x|DN2VnKlx zBP_CMM!5AOixKAQ5TyM6BjB}2-uQ^E(^x-*3JTJ!&sAOim0NsaB1k7|ZG$w;lCN&_ zI2aIVQmPAS`0sCH2zbh}e}FFy|CqHdNBSZCPjqG`5Sk$eZU>V%E3>wPd@|&P?W~bN~GGx7kkwA`zCY?vUcBbs=kt}M)bVHYew)1 zy>I(|P~Nw~A0F*}%TzDAAUpnOp`7B_mRDufkHx)jnLl~FZ>gB6>3y3j{&jI6y#BEF zjRNU3v4KaG_pRD73pm#iezkz}2UqcqA`}5Q*Lge<@w8)XzFt9;s;gGeaRuN3$BP^7 zv{+UjSE~BeYt4nHzT6Er^b{(}UD1_RYtC4{K}xx$l0j#o zI2OsZXDv)vZ0qbU(Dqd-B0# z6O9&1s3){kyI`S(;@uWnCSPEAKufcWthNdI>sTfh=znDogWkiWR$o-0-+LKOnJJeP zlfr!?S#U`?YjFR(%)HF10Q|T=sGZA1K+3tCXAXMP6;>1AEx5u6%BKJ8@Nrv7nRt~2 z#}dZ?qY6ii0TFF~ifH>0)3U*}m?odN3f~wtfzb`_Busr6yh(m=6sugVKJPrs4EL|A(hKmG6-&64;p8gy>|IiqtWZu)o4sr^>FL{X`zu4 zfK4>!hTK4a4|ptp6B^A~nR%17#;@}?RkA?zEw4&!;ZG@S%DXn`7CZrkvddpUWWrwx zk+>(%$}jY*NCw_!NhU+V8yx^i3zVQ@)NR&JS5VXqDN?z|Zo|cc8g~i;HNkh-^C}&| zPrF3nH}dm1MCaTw9ik=xeB+e$qM>v~esKp*a*aQg8O*S43KS4XuBbreiV7!#pHSWT zF5Fpa{O}CjWxXN_IO0YgN^3q$A?wL|tf?X=$hkle0BFi2CwO>lE<~r~rh6(B6?Fe$ z(vbu1GrwdaG142&Lg8Tp5cr|RXB{ld` zPq>TqZ$ zvmS7vY-i)&p|SEmbhdK`X4Tiu%UB5)mZ>Ho3){&9cJ8m8@S}WrD_Pc;cLs__`f?SU z^hHiT+_Qe%44>*(oRjta_zqP3>Br|+BWy8BCr6T?*MF&afJPc@Xc*9x@IW!SY=2Ik zH^hX7%US{a-y`YS0o)Twj|}94)MR}?o$&LcFNDB}l;#C;Vr!!_d8yzERF&eu1`$*g z1oCk6kq0B~(m#k-^KvY(z*3D=;2oXfLCnSnY1N*W)G>>i4|6`J;_(lL^5tPCl3m&b ztFd~yYAJa;hzF|RtdHC3-HhscUO*Z5D8n0MQm~pv@ebyKNH9zp%wwmRsQ~+YyyI$X zjtluMp0Rc}%j#G~$k;%oS$eiu%K>H?IGg9`;bz&LVr3ImnXK*L<-z~e{8gYuBYb)x40ZNJ4+^dNg)XxPH7#9~ zWEM5?zNdjIYUD#H37*-tGTR*~R@TKVL+TLPVS5UVsEkcz_bY9xom$O3c;rg1x*#}c== zWh?VQUQCk+-WD&O9>G6A^`moD(n?~7k(oAgvm|eh?ixh$PtgANNZv?$e8_WT>EmbZ zN*_O}eG~cicCm{JnuR3b`qiiWo=&66F%MFbxRszk0A?y&je zMexLk6h}$O5zt9VBn$8aSuvVFO}dKqA*%5d%K6d!5C+;WhF5IxKsWB7IJ?^imKpkC zsvrDf!6jfB;7vO6XueY}Y>7;zgE8FhNJFv@T47-!mM#locqag~Ml2@>GcKcKa1$ON zA1e#?YZe?X%PGwFcUfK=c&J{E_pd_ZKA)H>}o3>(R_;hX!9QsVppj5$DNK-mB1a6Z_qb# zFeynCo4>+c2xFVNDml?eXQ@<4F<1=Y;YVe^O1yL(>fs+%&=72(40I`UmuRHAhA~5U zUtft&0DfJSIXS6t87Ko26e+0tPZD@lUEWdFPUNkDyO$HeebQuRq7r9Y6L~$Q^&^o8 zNVh`U@MNxYUt0c6-S zhR~Cy+}!HPk3w*4_5Z&ROb$ju@QXG6FCh4KjsFtCjpXRs{As}W+uHx%5&TLWh2TAP zECg>e5gb}qAvmEfU#l^{4i&_Pf3B<8aCAKj!T(^x?sy=MV*eyc@$rcBz`Inx%nH!k5xoX4@~jnHgZEl z9KS<5Zg(PP+o=(E{8y|QHs~W+a~X>(bI6(IN6uhcU3FUi zmvZxefE>5H)e^>&l8?nPbj|Om2{|L>{}fN-faR}RTXOOtFDxbYd%duPq6%&JYQ3V! z3ri*Y+bEDjldgu`9zdS#P_>XoJkBXm7^=)T zS*ks!4IaJQ^NNq7Baaqi`4WhYv*0kjR7g7_QKl80a0f<7wa{MZo$4Oqm)6X;?Ri6O zt*+_-YqfJ@o+vY8p~_6|0Nt}tuIzx#>P514M?P8Eex|Ad^`*F?lGI79kp`WtH9|Y5 z$N}|QC$&aoC%##OI~5g_7}vcs??#-U<}v8Z+dK0(uR?8Hv4UHRk0jKCw1fdPHT<}A#u^aMBs&@!PLPp)fe0$TNRKwZ#L z2Blxv;J$ncoICgNS5lsJJ+L;s{AT zH}}2JCNN8lJi(P3c?d;NyN+^|$oSY(e4)nIZj=+gPCTWSM@&y^d1z3cmrwTO6wb@& z$*p{0g!8cVT_=Yf=n0dfP|kjulds#}i!Z=j7Wd-M0W*L1;`M=p+P!(*@HF8HjI)y! z#_8M+#e!bx&1;7N?3gq;Z-GL%&AmmO}e2E>$iZHB3(b)G#IRiS?Ar6 zx1D%<^7FjnK%%8bJPN*IBmUrWAeMDgCQR%}*+?FHh=^F3|Db$D?pFAXG!1CRak9osFwzLRI2WMHO!hwWwkla!n}g_T^AT6#>Kec3>rY z6fY;w4Z|WVl;Oh_9gG^z2jkZd!$JAjIXJ>10y;y5dLA`G5kbxfiwLZqFOE<|kT8#_~BJ*81c4J6JU*$8p-r zuzx%xM1izT;6I}7=L!6r+8(2rgoEr<{mM*-H? zC-Oc?rlRVvy}%wpsuWd!TK<0S56I-C9I_>MS*%<#iI*vsoKsBr(lf*;Y~Ck|Wv%*q zSiQ>+{qwLfh_B z`7G^8N*L;*g7Z`1oyIoR*Db`P0x_k4n31pZQKf(wG8PmLLfseV00)$Xrf?88jaP#r zWC2`ws~-S(C{Y^NckYmBd=$303))wVh?05@4#GJ(gV&X@)A=&Y{rC+2yo{Z}X@4{B zUyvJTaGYL6_mplsawb5NCYQ~GBswdP&g4~f!tcpi^~&tLg$J&tYd z>LWAw#qWcmW$lw70!a2H{}19Rt21x1CB3szv+;)pM}U}u^{ z=I}+bIcSBsw^9-EB&A;(ucF-%c48IGeVd-AWXY5?<>MWeru5}E(|F~^I_riujR6?Q zSxHm}C}K`J=fQV7e+JqtNy#ahe6-&0*YMCGTGS0LtcU5of^;y~*S z{xt|^%witn(O&gS3v*X3hBU&u_;v|jrgitdOQ5^2U&^0A>D{Gjwcu#V<>;X5GAySw z*=-pgg3FF&;M{5Q_%dF_3{9#ilar!MP8FJjQ&ewBj$aOblO{VZS5FLG&impZhDV&; z39tmO;Hx#buzP1rEI(QXdNT5;&Z0dIv$_=adeL!==YW_MVQ+*9D3kY>ugI{VJ>QWTG zkO4NV<6ZJ}1`ovj#SBjfEJ*E$AriuSnq^w$wBc`2CLc)T=-J@8d=@Z|J)hDqi`Rj1 zqjnuVnZ-+c88%7DNm(2RHp$gle58gN7&gV^Bi~ev{Mk2o9lakEJQ@*eMWabjv^aPN zvGRm?%CGzQO^ZeWbSmiimI}8ndCP)#I%t#~)s~|@T)XcZx zB~Oz*-%*Tq`aAqEp!L+dyt3M56hsVFyJ0CXmHsZYc%XZ&a;?-}%jW}_pRa{lQY1U9 z<9c@yv<+mT+qHp6$oX>}@2)tAxw{Ck6rND}fcJnAY%6?^mjcg~@9~lUscA`n7#27k z0KGO`&--9fOV{&?l{`3b(>}?IgauL+$T^AMH_hL&U_I|f__Bfh00ztxK$dOa=k+uu zZ8{M24Y3@=hUB96d0os7hv~=F^oKj}#K9)06{`q!@PbhYwFCY`PF0tB2#gaEO()DfVC*dZBE2pcUak z7ea;ZTL?O2Exc+?JjcDyG3&X_3-KIjEh!G#yo4cUQ3(h{p4oy0S14<4RqAY~ zt=x>VH6Nz5*|A&II$gSzKcTS-O^TA0e%}f%a7I@Ah||FuL+OI#(2scg2T#lm5?~s% zWGR6uJeMa^x&X)Kb61d=R@ONe;erDBO0Lqu_U3Y&wI-Wx<1H|#)NOEL=*{7pdr+DR zagPJr)X9P8w(+@oR2VH8=&yXNMAWX2En1`HPdg3&{uuUhmVEvbxT~||=btF&$i+_- zU%dD!ryR44?R>R)5@$M#7glx_=Br#aJ9s6Gfz&o|BpYTkV+U4kfqVxQxa`{j9p{4l zbq8-+LQT;*)P;yli^pcFc33wqfGsh$El!l=TPpJ=f32#tr+z9UCJN1cNdSfVRFHG zXZihI+z(s?LtyT2iF=V8D)|*pE=QD4@VGJ~&xeBBw1DvQkoi*%{0bh2EI9>jtqxXL zb)TXTbr*CKzpr^LnO$_=p1C|7)-t;Qtw;4vNeEVLh*f)>bRybTF%VsZ(-26gV-$Jj zV{+lwDnBOt8;+B%u_%%>Y;=I<>6H(Hl0E8%eVXlSoO}m09Bg2vX{3dj$JZHhBXs$(#eId_C4xX79vTA zH<0D-@KD+IC{L34`*>4wfB8dygfE!8)79jPWR3kip)oP}$hA285bk2~BvKRdP(lR4 zmly*t`qPmBneV&yE594W^HW47&$R6Lp z-B&0Ve8*SOd;>6F<&&k&*2HF-e$Nx3b)Znq3)~`9N&1Q3gEbV%jPD^b(`4!iUPCT$ z2w%VJ=5y_iSd%GIC8y=9N7Q7N9O29LERUjsG^|EHsL8ziL-EN_)}tbWy+0^22>DTw zLE?{(Bm?0-PiF9gWB~hCzWyT)c=nLN?4L9lI29R`b?8_aVa9=tX&`}Y3+F1qa<@5` zT}OF&!g(>whHK2CnFsIxpa_j~>KQn1AbTAHhbWXlJh|@M9p}>(1B1+`$g=4!CM*#! zOOPnHX`{&6R1M)%Qa1XT*QNvOVW|NZ^tFLB`O43{JZ)-(FhH5o#PmXjJ7dew{4tzl zN<+sp>H><0T#I}hoY0DgLr(C%|2~lM80w!VcsDHjb|=Ba3+3FC%H#3TNnT5*s}w2M zr@8xH?;$0}4HkZppK@C}PVwhVjH8^0YRV}U2;Y0k!gvu-KvL0m8mtAoR!{S|Kz$Tk zQBb^}+-DON@k8KHpY~Z zA-^Eb0{7G}oVMKerVGyA_yy)np)7ZXQzE(h3^xW3aPMXm9(yTmRG0% z6h>$wgRYJZ%gCT0j$&r}nxma`mb*(8aCn3L@XwzZHh0rzdh#J3K5N0DNR^ma@mEPi z`6wc+_^TwM*mFG1#0ttO*0$}Og2SzI#o>S?B7#G=M;r)jbLU!zpJW#Dgc?~;;oImV zgH6-W&(i|j89Y;gO>K+C(0%Dd;L5VxdHxK5H|;#HuZ#>kSvQoppdb*b2>kGQoKGhhUs$f#Q*ZB74QhVAaw&(LgKw zl4f&r$(kO>jhFaBL|BM#7f&ede3`$lyr00~Wh`geu<`Px+r&2(4^S)>Wq@ZFuX+-}%21>~nYh z%FD4>?Y@~syQ2YE+H+KFbM(^R;id)Q|IU|^nUnE5uP=xF0RyH;?)`)7UA~BnQ4GQ4 zc4WTx{gY2biy!}lf3HAxy@B;yC||ijjtzP2hJ^;5KXh8Mn`%~3H~9cPt6K>BC7rXC! z)Y$;UHynSHBwmsy>d2q}#{0brNNe0rVPd2_a)(#z4Uy~%&aDpR)O!}K&40_hn<$sl zCQ3SaNqNx%-KnqPpmI0UK5Yp9D6QWkCx}!N6qKO?+4rsz;cwjKnbC@&PzXAZRwk+H z+)X>siK#qx&%;#ozF);$FZ(LzM?Q*(srV`#Z|*%yQ#p!q0#cp(3P|JcKLSXksocE( zZ}6!p9W6z`k^!Q>0u*U1mXg+(ypmp(3gA-83qh*1sxU`hjf+?iRR=CgL&TxZ0zfGZ zky3KNT^{R4+skRJtGVzfGmV4@PSoVS4VE>wuOQtz+2>i- zmJp_>%R~jyvEI#TGjAdDS{UIdFin8M^>QI`5s+LBXQ zMo_5U4;BpqH1{TD?Q*d2s83*S7H1<5UE1t5%rxQH*K#1Di1OGREf+B73Oy!C}>J0&7GnX`bcwHsGMaI*`Z3J zs{Gw4x?%_&D~m32Ntk#NFTE5dUi6&tGAqctZ#CQO@zoOIp`&XfmE(khss8XaoGBs9 zqie}w5NWzjYK3FB?OAy{QQ*j_2vN_>aK&kyW2%TqIVC~_Vd8TmM6BMtMF+)}BGi)) zohGs)Le#)SuHvGBk*Bk|6fkxna|UfG3lG4^vngP-EGbO+mTgLcizPK(M?MUUXClR` zfJ1(y_yvRfvXr1hRQ*c}I&F7mX>lAc9#lq?Wv zk?enJ9hMkvuNf30T6lkLKpkcP30+P4$BJ-%YF%z@tOy}-om5tkxL#RSP;yeA+MaJwjI%0r4UQU$4OnxgTDqxnM))94O2bXB1qZQ@iuqY0=)S@UGC&)a~Z=+@idA#R-qai;L6Ja>;Jx1!ccxl(+Cg$Is!o zYk9Q1Af-P)NlEBR6;#JBR=_;Y%8eC7_p+J|uY*Vf8&;(7Ua_68vRp+hB&?u{7Jg`_ ztA(FcLLHevnNPsaGNFj(i;BWLeUG->65+M2Bs%%&_oNyJ{)&`2m5O7B7&fp&_Ex=^C~1in)1?G!F;NPTwU`CzHz^RV}$iX+Bg^JxO8fm83^tD>l?lnrkt+<;7jHte&jo))UDV z0^Rc4WHqi+$x3+roh&AK&M?5H*Q_Y;hQ-x9@YaK+O|K+UzpWKjn+>XF!Wn>@no%U-ow(NKm#H`J~}u4p-pKh1XD+7+zLTVsv&B$df+)~;OB`% zP**B{!O!zd@i-yADMK<4c8$DJL$vnQJ;}IOQ6~3^niy;7Sr9FBB+X|Xe)4cBu;snA z#Oo9pQ~M+I6x6!i&cAt2M%57%)LB}`TB&p_b>Dholw46)P$VArqh+mnf_B5=ei<6y zs3&MoLzViXzdDTw+3b)=)@ejK5sh{gLP~iuNYqk}!ot5*U-hxD0eURR-QED44_ziU z5>J6sOl>4ul=0f*Vb2Eel z(NyG>_JG`vMoV%70XZ7%&rL;nKIYYBF_shL=bsHDBE6ic;W{m{YCWaT~W7PIxTp;Q$rx#|{_ z?UU3(RE6{fKnU8f`xI^N15c41n}~S1poJj2Wg{*ReLjj{d!mIP58{h0MQx&82*2g&?691$LT8OI48Z7s^k z;jM)O_=izlTW)MEo>nd}tPb!sONS$c9Q8G2hc+S|Lw@v*t_E#|XZz-wwu)svs$pxq z45yxS#n;UKwM{K~xt;Fpaq$V-Z+~1Qs3RWD-JtZ*EjnU3NN1?reO#2QO!_I6p$H$i z0wm4s4)Zi+1O;@)Nz3+vwm+|KFDk34dY)m_0{Lh1SbITxV(zzx&6Fl%JBYGKm;fU272MdG|z$t ziuK^VQ`AK|Th0ejJT+@I13Fq-rL{bmY2$sAShP9Qg`GfZX81U-lPIZ~lA=SLZrw?= zRk4r&GBSnx3i-H56|0_LiMY92DqTcd1bQ5P zn2{No5mxNwkGbf!47y#|1@O+2oAhNrE|6UcmF{I|qc%R?wn}}$x~I{T*rq5ecNMYK zs4dcG+}Gg$){!27!+Kkw^|nvv;Tgn#<=Czwm4;L-SmcSx{!Vrs&dZizPpBbP$3@N6 zjL=$kpX~pH=n-Xp-^LoN`NbS`%~j~Dh54x*6;;Cc%#ZMpSoV(36Gk?_!$XZdVdQLC zp__O)$oxEwr{j9&mu=LSPhy0#n#+SNc*@bBzQ0_y9R(wn&z*_JW!Fraah7l*2f$^-|V=UvFW4VI&IXSTqG5@J+|!+N%C)32jTY zLtA~lx23Jp(PY+FOAhxI%`gmSA29_0N$=wk>Ds85-}Hf?Es*#6KshX=%ndpRqFrAx zmYtB>`(ivNoRpjU0Rt!HxBbMoNatPBU(Dt@BdDxwHV9Tk0glzhJaE9sAfU2HULRyx zXJ7IizSRTbs3yKg*v#=ZT)$B7@= zJr9%CN|7Pj8|bUGR&3el0WpEc%G!YI_XLex==p-qG*u&+VkQu zI!*JlA($Et1(_%s$p%AVfZ{VEL&f9f`CaKYkAHZfbtYASj%B4n=dfYFIt~cmJ``N0 zP>vY}rMBHLrPShn1&V@)i!}iL`@`Y+LU!+P3kS5R*22Nt+Q~&eQK;6L_IOe#tB$ao zTy&Tlm3%uw;UI8iaU76}*>a?Ea?Ky(D<$uZ7v~6l z_!1_eFXTnhgwO|Zh%cw84hwUEK0%o4J5jXIm}`q)7bdFrCr%QvIuE88ex95JeNo{j zTsD3g{qCOxw^*U9^0HWsS?+!r{4_&GydvljUSsv%$+B$O=#FMCC7QMv}K5FCqY zsa2##0$e>Y`cGaJ162!{DlkhZJoXN!u##=%kdKdqiFi-!a4SwXP zZ~mHs^3$(b&KKG>2hDfs6gA1_Q!F6Ux#|?~m^4L<1}G7{ijeoFh?-Wum$D>42KfGX zY1#2zB$*9K6<=VoNmJp>JuAmg74(sevs0Dr5dFHyLEXXE;h(^%0Mmr$%Sr3-)f06V ze&cDP8z7f9O)SNw(i_UT^4S}vbLF2g5zIPLhGdIiId;0BG_gI?#RxE``ZE->8#F^u z0^9pDL``kq)AlWEVZ0&K&LQ$ZU}2;R<^5$dg?WM(`5ed$S}{`r<@ihsC?s+y_ac0j zS{Qw2c@_p(Ftm4_e>!iL(*IA)N8qB@Y`F6ZWy}KDPHSch3S6vQAnM8JIpR5rqx)g& zkczR9SAznKi|2@%q$8n_EP(@alqK-z9AR$y%huD7Yvw9M=FYVSorwxsE?wrSL8s3v zK4@Ald*+FDI{t_d0QeiyeqF)t06L3Lc>UG%eIIKwlpKJ`)Rg1qix+@X%!mX!CPOw1 z=Aj}AGzEm|^e4t>3fSbAK;d^3B97uv^GHoo^H`f^x%dw$4@QwZjtYv)W5+ET2Wq1a z=00sRh)frhS2inMOxBkgvfe_`%92Ja7Ak2}v{2A@9AXzKY1Cqo#aPH841~*97b!?B zStQ=p{9_v`i0`Es3R2Sz3sS@fi0^%7h)2b8y-B<>c`@{gEE)W+X<9>tRz7~>i&GYh z9O5+5a^Px_Ap0#*6yRDb#^s(|f;3OfS?bHWQmhAs=1avY??~|mW-)b{BL4&H5!{-w z9MZ2yez;uud(Yrvj$e_=X<2TCnplGs;zM0Q2fvX}y|F?~tlrAv6QggrDWSS*rKni@ zvikBRY0$3eYu>p=-p@81p^Jq^=+lSS3>8 zGhDW@?#rulm#h(f9^f9yP{5s%X#w{IDYD>MQ@py4yp$yx%d{*@psE7;_(QKZAzYEo z@urwnjOSV(Qy~l6q)&bgN{aH?$9tw$~Al;Y#?nf7>F$ z>n0KY{kFnY<9CYV$|S<7GUFYQ;C1ql<>cmY^8ELdSXB;qSIi=EEJ5U$?5AnGFc&~I zJkYwdPOLZM*7@*znQ`j^>lixdB@*=cf{a?PKnNloE!VEcibf9PdN8{p`NI3+9xl&s z0Ld2Q8XH6yJ_0Md{tTaHnpD8LyActc2a6!HM#^%V6cDR!60^X)w`>w`Lr^@Ot)Q|z zTTIXr6OJigeOzJ8W^mCW`OId~9qqSmRuPK3o8gebp`{;+B#)ELV)hR@+30xoAs>pF z9w!?W{QaSFvNg!DG;$L0bYA5_vsKB*@3$)X82FL69Id@rr9JR3W1a#?;1A1%=~5_L<|_7ZJQv8rwxVsK z8ZN81i6rgsB4?vD?eWUDNFFed-)MDE{pD@K{OTj6ThqiRf2{mnpML!C#DDu(Nw_AT zcqE*aBS+4NVV{Ts%%S6_O7$~7g?d*gBe#qF<{apgV-PD?1=bhGXb$(bD>bOy4zTkg z`OOZfZ3W1^6Q@%p zDP4oIm@u7>E~*egw|m{i1GLabZ)^9u%0p9!XL#b5=NnNOui^5C;kLiE_D7wNU}ZhlW2;j zGW@8Z4`1aURWJZDC&<^1iHbV@+T=LI?v%6mwqERUWf?a;q4TEDe{VsG#_B?g<4Kak4mEDCXScr08cI=3x3X|Frx~ z*(WiDEcw;Rhn9fVz!MiMzAAh?U!$?>d_RI!<5OZHzM-AF^%O*cUIL9|rF`+ChEN0f zL%tYpMwqhg@uAjU2hwwC_`M3mlVJrMr*KBYM-@e$SzmD7yaG)3f;?7Wd88lDg^XR)%zo>hh}?rAkWdk$88np|;C z=uaiUT!XD@eJX+UCc+7YVD)!O5zH{wyd5bg6^hbYbWw_gwfq*7VmAu~SbW&kLEgVD zh2mX}tyGj#$#dr+`C;Il7u9tIS+e90EIbbf9=2H(At`FETwWwb63+;@AeQ?sBCXdh z4-_G|@%aU@5>W1Y5ze?mdGewdhp#<$y(C&v>!p`OZ4=b_f|xXAj&Zl%n^z=%xgE0Ti!j^P4yZK*jwIcOyQ~@;jV*_|ner;EOoP_jeJaQcWRW zX#JTf5RI#8hHcK6UTAffE%<(zIQ`JYphdN46W)zH`J=Wa6`<~6+}?9Eb!S| zN~zd?(^}Qrzy@hm``&_B$dbKpq2nz1;w=bP_&M;)3YIGUgAx(<+yeB@%07P~JX3I&aB+DtI_$Azii*& z+hw0KTUSP3Pk4O-2oNqp6Bs$EUWl|IZnH(=$iRklY*BC}Tloird2QiH%kZ~ViJY+pucVK` zV(!fS3o%Oyb)CjxgKWEW1=z|x&_sBfJQ-kX9=M$z7f_RJ^79~D4|3v=jZWlwKfu;f z8TV#LRRfnIsyza26j6N@7i9*RN4(O5|s6mO~cRXQF^?6gE2nyWx62n6>^QWlFf2s(Z+$cYUAiBurx@J*$lCb)H% zsI9VjfwBp;-=eLMP%mX~Z>J!2GlojL2LYZ7>fJ91qLOYVI8uj!!9krp_$nBKjRd0W zxnF}|F5?e|DJCp+HYExMnc$A{bXP>A>{l)b^8c6-ZIvgDyyx7s)@^uxl`e&RC%Y&< zR?>^J6!JI=O8Ud%fDYmm*fnGgIt|VOefkhB)4U)w;af?;KKfF7Hmr^*lwAMBW?iGnH7$aBLz7 zs=9W%DkL}~BHl2J5WlPf_Awp&aYYUWH`ub-3Da|ZW&mppQ3~sL>Lu{VwHIk{B3~rs z*d#T`0)`H$%Nt$v&H5HyUtvkU!p;ai`$(LH3_vJaOQs8&k!*A&$B(OZ0wOeIPbX%Li zdf}MPp#(OY-e#he@oF;T&iFKAC;ueB-L^p&~YwJrq;oc13vJ#2+-JmxSA=Vstb% z&)!aDFFVlpHfBTPii%3f_L69Vvaq6r5=zDJUsz5`pj2F=@7ZS%-x8QK3R)-r{tN3D zE=wR=rV??dmyyc;gqK}wY*=3J&1Q`|nxnv@(AeC#z1~ymmM)gbWuRxLu+!v8?XhX> zDr37iWbgqIMG)Z~L2$64$T4}7`Z87TX)0AtE>gAe$y9fnytSC;WAq~N5+A#TlnJ^Z z1GwO{g%86oOof}U7AjmWOnocnH(_Lm@k|p&Cye$sVPvn{C7l((dGR6}RwI*?rf4=O za!uJ>ICX1HFhOc7rZiU(q;WE_eoD<(PQfwN9LD?C}?@yo4qZpuRYXsfXXEf^UI*SXH=1#Tf~ z3-D<|g7hBAjY@6Yx=|e2=}zn>h`el1yi{2FSdhJcsy5m&*~ zH(lsmVpdC*=?9A&*oUfSd-NRpBc#Z1xjMRN{7uNU--AEXH7R-@dT1qGd4Ca|vY|GA+}+sd#JzTgQFwNmR4+!zHi7KKxGjFqVJSXAow^KjA(!Vv>VGuJG}Pxg ze43sQi@UdhYF+Oz#iAEVQBWmjwqe{tPY3eB4fU|K#>eS}VJ4+7Y8gnJW>3 zO8VQ&{=dFGqq8`t+hbZ(DZCw6qVbjJ)`8s>gc;RMrYFq83A5(n#}4eJ_-!k}NohK+ zGp=03a6*%;H#)M;soVcfVhqe{?=o}kf`G3CzN*!tekb;}@h|a7C-z}nZ6W|w&->!F z&g`+Es30uFgf6Tz>ae;CqX(5=>%x+8ISAJ5X)q;QTPzhoO4H~@%NwVaop% z*!%&}rjv#N_f|xEyRs*Y55(JD*_ielR-r~MRE_L1^6UZPo&&^LWoRn96XG_yF#&-7 zXjkHo=YSaAjb&W5;u!=m`y80qCcy&kmTJA)eU+-Fy$Ud-)?Iy1OgZqe{vJd3-4D^93rCtzt8AWk9D2W{gg9cFC z@Soxjo!`WT3nr%d-03clWPUO&)67q=ZfoY32id{=;k{Tl!y}phwB#f_JProEx;L8< z#AKzC{gD$fS)6D+gk_5P*RT))^RJ;;CmCzAR#;D=M%&JP5ZnW!A|b)Sm&lV0#*1tw zZ}xE8)a$}&l?OfLUYJ(6mFa(md6zukf81u$pi%WyI^aLQ52H&s_w;f43RQ>>_+RY9 zapY;Mw6-Bz>+OBnDD&LYBD^1akoHG#G7PLC6XG(Qerz$VS_0dROkoQP zHk%ffsKDO+SqiO~pufwIV`6H5))6Qa^=A`RH||Y0@*ES916bb_35nkBRqI03_aR1_ z=vAWW1K1TXf&LSB9h|-y90u^;)k<^n&b|H5P?fkCS~1V1Z$#5PDUqW zjnZcXI#rdJHiF%(A~3^*(F+V=MzBeU=rs~u>WFxABpZU>7CH*OWF3s8F`}#!Yeq3z zS$u62qf2F?M>9IOn?0J11(FYph7JoMIGQbiGx!RYgNvT-zC!lTb62o-NYL_1=u=-2 z`J0QqS7HD|WuhWPui>nT`29*2f^_^U_70qVSFs1+jJ}#}F;<9+S2I%Q(6YZ{JV~k&lAHEI)hVio)F%Hu27ntT^5$(6N#a(V-?M&l4 zaoc$IhjF%e`UJMZFir~NCYE4cSSyllVrPuw!gDjrG)@$Ey_wx?7{`m(PGWd14&rh$ z+mH~D`5=py`Kuu_4~Uslz#t!pRa01Bz#g2!vgJCwo{yng`h6i9LvCTdNvaAk3!{lH zYE|O);gkbD>E3vVT>7SIBFTTZ4J$DjCdZ*QSelarz{Nf3uIQk_2A7=L!Gq1=TX0YB zDY_Q$8u7xdY#yp!GM!x^?wSe}@T^!pl`T#@DQA_;rsZk|Ta8@D@c*pnmdkE3P8P4t zWhq28B%KwiHR7|P<85I4lj0w@vBjZU5k4z^n8*5y+h?$L&e_beskp}Ntr_g~P_0>? z6?rq+jiFi#mnjB_mbbG9LbaxTR=jpQ0JK(Lon@G~?GBdZoIrE(?JdU5V$s5w#Xbow zR|>bzGkrFD1o&;8joGHe{VFkj4(8WqMgAN%nW5UrVtp>_B+}r}16|4bem)Z^Qnc_)+Y}XmXgDNj%>uX0JmeG|udblXQpIy}kSzu-o$f8Wblmn(_ z*45#Z^>Fb}J{I~t>#QN?h|0G@MfL@Ix$< z)+KB+B8?Wl$fkGaLoE4nYW+_Su?cGOp?Xk}k?Z+I-255vWNcg_xC#kn zq|fl|#Bv9YUh4bvXoZqu4cz#$Z3&hZs>GK|*g_07H$BRJhVPoCEE~QDmtqqCmH1^T zdoUo#O?$D-7ieK9UPealOU1{97)F+g1u>}Dt}Vh-`$ImeyKRUS59wZ-jkaBxcAUxm14Nu zq$UzH`&6X|DFld1a+!Wi0>efE6VfmqlNyH0Q;211Omnel1MYQuVEr5>eV&zWaodM1 zzK@!It|&%T;_dz0;m~p$7JLe};CuCE{2^Vhr4HEe8UpkLb;awYF3<1om1B9F*zq40 zGo<1bL^i0-rDhhG(#n7mB(uYiCsvVUz#|k83i<$|@;T)Bhg+Qbh&AuB>s3T}{wlu> zLCH5OlvMJKRGYs<=idZHXTwqYVSJ-TBI#4e)P>@W&smC2vw0q6mEGjGp3KCAX3R{A>&hJtoco62;m63fRfYhpCrNx^3kDhpmC6j zyb##e`tvQgN1UCv70$#*D<9QJ#FxYe7T z2aSlGZZUE+PZuM@c$irJF-!C-9#Z9&5O-iVm##nX(teFXO%XwXtkNL3>o9nAr;@r? ztO7ZQZ_0)4gF-G$=Tbr-4HZba1__Dq*CVQKHVs3=Y7oK~i1NBlg&IU}L^~xZd7w%<0dOh_%588is{Itm z9t8pb=t@{=8gCflw~ttI7lqDWHF8~Y!2b#6==X~?pRlxyi`4D7T>@s4y;icy`{W~L zsP1;EBm7GI8DneC(Ves`2wHY&bObFc8XsgSZB_(&Sc2+dw+8nxr(V@8S1z{xhoucs zr2MP;1yFJ1W-vBVWI%3eYzBYIQc}-Qx2mH49;&dpD;OK`dnIe0UAwmhxH`DQ$&41T z2r>0rjG+q!)m0Q7WW15gy{@`S2|WBX$%hF0JUIbLr%6r|=SxMO7L=Eg>UC56y^19z zs(xbsNX?@SF=U$aZt-7=4+*ZsN0$vGbuIfjM-=a(kC*6Ah*u&g174#5VoP8wg-_6+ zH%ayFziPbq3E%q2(`mdz6rj70#ORNJNa|~ltrax>fW3vtJittwBHMW6)d8q zt0pM!h>%f%VPUzGYK3_40QAnl1<`n3+t&w*joQYRTg@0Pw3R_bLH5UQ4E z^t}!Wke*PE5EBnV%~~kNVz5lv5aMn~zYHe|)WbHI z6f%!fcpL&^odA-ZWFxeJMBeY}Q8~o-p4QPEhTxXqvlrFYiHX75-T+;U_EAi{^&+!W z9%NUEtd%D+*R%`7h(nlT6^Oh;EVaQIDmK*KMh=-ZS)M%c;vv@De^EU_hXPw-^Z_H; z+g<`poV}SG>ZssSD%0NU1VAAyr|(MoLwt<7oulu?RM~jsUW5;5Zt~d-8Lx5{1Qf{G zv>{9U*w&ycPUJw4ZvX|VGpP#ImF^x~&-TF-0BueL(}pOlC{UX=2LoVQ(nv6`OZ?|c zHULCQIm{aS3kbgmdj(*jl$y9DFptSgmV@e0uoaOF>~-YePDOhwKBx*oiU1Mu*B1~U zVdoPVsk2%x(Z$C!Y*iu5( zW1psuL+u|*tfaN3WL@!#aww^uI$-CVa<$jcAKiws=WU|^nrLmu2Z;zXVn|TIxQ3r{ zs^{cX&25Gvhr-XW%Ly#n{+gU{WGBb+^WwIzS=0Z)JZ9h5tXW3>8^|-!euwm`Xs=7j zgL36la|L{39wYLO;lhd2Uja;8SME6|j+e1?QSW0G+Psh=!tKA4L#$9lA6w}U^+%Au z1mB(uH1+a|djDpjT~2&~$SC_)a>BfldGZh8djueUiDY_noCDB>2;wZ~ZJW)GE z09t%{6i+B_*66|T_ZPRE1!BBy^)05ck^(q$@U5K2-uf+u2|W^DAld{bxaHrn?&hj@ zMNAdTvCfiCk|U1%nmAj&)^m#2w$UevM^Q_nwAnS3~eQnB7Nz=qnV8 zX1*x@j%5=!x=%odJ1eqJU{Sy7keF}+GlH{X*$LKwuQVf`M`!<@;nKJ3xfQ5sO3H=9 z#NH$m6{CA3+rk9kENU*wPO`X^sy_kY3Zw$my<9F#ft36Sh+BdrmR+_W@%~BdP(+XB z;hx%Pii?Oc4}Ky>pJMHD&XQ0^9|f_h=W>q(xAzC`pqRgld%tHrQvM8mjoanX|8H^Y zTPJQyEJq=6FePYpR=4-!Hu0hGIO;T{>qWlG!FM6aAZcO4aC2FS z_~JBc;|sP1Ruhg|cCn_Y|ENhv+WY;$(r8IlnZeRQhC6BE|C_&<5D($QYX+>1bf~ULw;h- z?I(Z{I-U=?%dKH;qYJh}Fx3N&oO~gFY`>d$V%Nl#9dIE;(Lhg#mwv*A$kWB2{{$l` zY&FFG%qG;?q7mrgNbs~M{26=b`8!1NS@iGc#HpXz;5e$p|FKPMy=t3StWV#(eExH- z%#DHk2b^Vn&59l3k+ay8dJgBoI0{t8(_eA?^kTG z|4%G!JDM+=E7Q>`(%^QUsCR)iGUXG0sbb&-HqJP<{Et2@LupqKRXRrJry7XwF0fX~ z>fE76o;!qMnC+@>`{Od#@ zAa#QT${`t6c)nhq-LKzhRc4MX6H(c&Hu5t0Fj=T%?wYxR z^4l@w2zYi04Re_+!Fm9NXpxTEpno$}f_0W2rt9wi#I89agC&PPiD5$?x`thIr)nRW zGlRCl#tq*fy0LU@OGJwA}-TJZQFCWi3r@D*=MgJI7FQ>+T%?K-?~ zkeq~U#1+qyAAZI0ds{;>?238agK>K#>}$O+OoMNl=XY~uCqyvPzv7Ac;cO#IniGlp<~qe0DwoXW3ifcs>`)Lb*5oBn4pkWiDvA8D_G+6IGlH<7p0f zNnPNO0TP_L0F0T#xzAW7=0@-=l(j#cr$=0P*BNMj7XAnbinAg)f+r?c2Ev_Didr)R z+L#y>!PCt>?}~X5JTr=rBSnV>ZLi3Ply$!;7i z4c!=3_R1G9)`?T~__+4vNI@ewR`-!bN7I8ZG{!;72;(laXP99B3m^I@h%C|{&6}kM z@~2S{`QvN{Zk2ID?MTcM_ldpH+}l77XNK3MOw5&$hDrs8tXHxt z8w3l44hRE5gQ7`Ug8`XD5^4vPsnw3llqqhg&l5X4rKmC-BYm$aNlOkxA2U!;03VIb z3-x)rV_g4PeV#hDm z*?j?sQgy)<2&g7yHNHR$;tFl`5Hn5HR=u&-U8AiOlKQWh+JM)CQhZkf-VV;@2E5rd zTgw86C`^)d8-x9zS5dHkRltMwya4`?qt1Z}j5ZJ<;BAgf4kXEN$wMh*6=I(bkO*Q6^sEZ@gPwx;q|9v5Akpyv}gy^?WP5^t7r8O#bLX5x(`o|Oh1 zNP+|qsqQPm;`YB92Q=X?Ba^`~OWpsM2*0H9_K)kNc`1VB)KrcU2T@NF_O%+OQdNI_ zWA06*Y47EmL;Rk?lX-~=8jI9aXny-d=TzRTu?*2?H*u)gn}!h_S`S_ZQA~YbDsNgF zC7$lPe@UXz zY{FCACagnOrEz)=z9fye2lx+ZJhnjq+{7a?ubAi#esQ=7j}p>5Xw_MFhib{23ucsnkK`XAn%NwmCl#ZF%Bk=)X<%=(M>s>>bbTlmnYx=PiIq5 z!NR6|Xu30}WBL_Hj#U)fwCP62tu)=E+0sgzH|*+mnFiUm*q5d-R0^{?MG}!k8d#E2 zIIr5A)6@@nM7OL}pR_t%aUx7*DLw$HBT$1s6bKZ$=4NXZBAdz zrd|}&`tmN~pBcPx5+8OUNBAvMWktia5`~Sgmth8Z`?EJbg|Fi4q03T<4|jhcq^0N1YFXxcxU5f zaa|U_5jnn=#j~6v)W@=TvQG^oi*bpT?wf`5Nq9Mmt@u8R$9Gh#WOczgT5@#{Lk6%$ zMWa`VIW2fg)w=Xr5}hI1+(J&B-)X_+Ekh^^5p zciA4vJ$Qd7)h1EDHK%9N*0tv8y^okSPYa{H1Mt5jY@Ni$ReIILmL;4s74q&JPH+0% zp2O)4uhJZz)l@M*;vMF%G}DN-6$pa8J1z#IJ9whoaQT20*dO5(@=zN|hfmr#bfBYI zblXzBwww-tc5MqC4Nv&A<((V7D7$9`jQ?pJ2s3G$j^j}-TiQYZRf@{CyjMKP(S&No zI+|4sE?u)kjnlOqPsST9Hq(5Ct!r5DQ}xBPc9@bDiIwd@IK21Tj<;0xfeCG(KATm2 ziV%eQY{Uga$kW%J%Xe>?y$azJ@^pJypC8*h^$F_EUNN)-_jOw3bX>YR*}$HSZ9q_j zsAJW*?yN?1P(R(!f%nSLvFKaCq5!m^E%=7d&}jo=04MdcBBCRw7juVol+3WGBk!*6 zc|tNpL9!ACKWe-Wb>wtYf6Gqb*JGl8CoW&21A$-`9IKD;t?0z*CAzCROJPvZ8C?zU zVs++O#8GndshXc6G?igl-~`fbZf?lYK1Ldz<4S`M2T_qdk*#$Xz6P1?@8Xc2Y{DH@ zk`MObhzEjzJs#|%4wTZ>=~84FO(Cyzm83Vi1(RNPDLR%H+?&=Bk#%qK|2G{;Cy*WK zPI0)0lvrnb@N{qr4j}$jZ^D~MoG$aczNgc3`iaP15T8{dp%<4=T7ZXCoyCY=QfS=L zi_3$DXe2}sm8{;fhFA0suAv?)T8LMB^E5|};}WLcSYU7l1Ce1%fl`O4-$;}QgEfY&JSwhE zaV|FX15Kpp9xGD%%dwf9?2pAdJmlV=(~W^+2k?|A9OG2a;ktp;aD2Jsd+g-BwRo{dWxjF$dNJUp0pz>`0;GYbxO zleF1Cm=6PdqaplinuXpzgtu&T&LW5(5{K63KjdKFgnJ600yE0@LDh>@pqkI;~fXss~&7epDPzED_QB{S6hqq(|^4nh_ zz8j(PV`9e$o@H)OApj^G3HZDU@!UwBla2zV>U2pBPGDobBke=jzluMG@#eXJq%C&B z#8soNOqXT765wJ#cAS?Wo zX;ht{+9J)PGhIoL(e_j1kVyv-fxb)WPfe>1$0p4wrGP-f>ny~ttk4v^Y_Juolwi;z4O+{dqaEh_o@hfoOacZ|*;F1j$3~P2_|F16-b>XmQ2~DR)BN!Ac$4)kUjzd1Sd$P9S8S z0~#E}H`#IOijdh4EeO0KbE(cgN9VqS!m&oz--g}YF7gC20~^WAV7#WQ>evviBe+N> zvmh=O;aBstm}7*KwiY^vZ|uAFxSBWVviNI+huNisKKE)fuVoZST#NO;HT1oi{^-=( z@J$DLR$t9qj3}x^1hWJ5kes4vAv^Vcf(D}~Y*mL_qY?$c(BUN5c@Z;)ck_Ql(V_MU zDw9mn93~3DBS0EhAzMvR;$5QX9!eViCrLp+C#j~NS9jPAD(Ul;?T|%OP_b`N1O;I6 zvu5>xx6BO0xHyJq_x*t&W9(fHu~3*JNNVxr0fLNo@Cl@j_pB49tVc(C3QZpPyuB9g?uFGB@9aN97Uh@ zqrc%B^n8xsBI-b7Ayq(UaFCkVDWr3CAxiUCh3tW#3cx5yb9rR_RHMJd7BCsrg}okB zqiV|N8p$C|R%jK0{S{^X)fu1=Vh~NXb&?#HsgZ^WkRPP2Ccj2Rj@lBDB{HizD2pb> zt(KQ-V_irv`KyuDg%Gc)=DVK?39q}5I?7P#p$(dHw<}_#nE4@#3wLbRJfDi;*YTtX zWwwXG*>k^`eI18IKNZ95gNi!ZeDPZu2ux@=#W$HR?zj$WcE0%PIzHR~(FsyjGHjoE z!T2@pZKPfk{ipUO)1rxKFVx;7^_0-p->I~X>8cXbep7p!smHD!*WL{EXwRYJ3b>Op z;wV;LzujD#%i9-^sp!s1Dcl|KN)>Rm_O_B1=k@~aO^{=@{bQ9%D=!H)?W5WoDNVZV zecGEOEw$~f0WS@jKKsbGD)EO{l&4xerTyKNZg=9Sm^+U5F)NRX*T!Mmd{%rujt`5< z`yRATw$GdbMfVlAzkx3>Qfq`kC$?(@h>vgNN0Vy=0p0&n%rJ7H8RCK*)Bp=K zoOYJB6258n8aUWtT68NPjZ8ng6%(bU;*VP~ZN#-JQ~9u-q~|+3$(Ege8sK{ogl%b4 z`Sz2~#4_TF8gbIMU#y?XTi2?<7gMpXb{gf9LhQCHkJ6VHUl`QR5jyV{*U#mtA;!Am zoI7|=BXJutreOqj-x9XkqEalL#T!#gJUffGYZ;^=x1+67M?<#rLe);3L7S`wyx4>f zoz1_&cK-LXF&Wgf*!Tm{qBvm=zmM$5R?g)gwjlbsv>_ZV21DkA0#&`~tP^gR2}R*N zKGyus6y5IR!$rqC`E$m1#YgT$&ocA##QMMSoQ}}?B}-kR^`E$?$bpmYKPqwrw0>Me z^x<8+y?f)uQepj#w{CaYsYBjnGZE}=K01E$1>JadDGC9zuAzW^V*1?}FvQ#9(YtvX zxi8+$o03~`H_uEKZB5AT~)69Vs)h1#BZ8sMIL zcoJo`>K^VRx8xp`_1E|C4()0t#Je{^SqB$N?=trBp-^Nn^j_YNGFo;oPb7ECy*!@W zckfjN9KTl;Q2)M53TSZI0%C&-_}hKFFJ<`FeLTK#O$_7ka*a1CzfW?Y{%7t}r6$Z* zrS_W7JJh0BQjJnY;d~xP**`O1)#K!Ro>+^5jd3G+H3fZs-qb3PEhmQi`G|HWYPaG+ z*@~(c@?0O3MX;&QLYv_dc5@z4?E^pdso|bLX4eH*3O5vDb z3ts>U3U|Z;-ozh_5V4pK``>i7pKK8{r=FnXWN8Dr z*yo}#8W$Ibr{PLJJDfTn-hl{2H_*`$GCHDmbb^kKl+lraXtDkQkRFAVYWGX+PI!nn z5or(dm;Hev;&mSN(=1?6U*-`}je&z;jEs({9ql04Kt?yH9qk|(E2Cqpqf=G&V|3wh zGCnR4FYZ{RDp06hAl_9RTg2B;trjijDb*ElFiezrBnI-(6m~Gg`&g)7QtfC5!(*S$(h;#`M)}4#`Xyx z9n}CvZK%cWM|tlkoyP_VA!3*E+0@_Ty6L6IAVe2`t+ca#1&GCO%5GZ84%r?>iEf0WNINx0v1d4G$f`&Vw zXC$bfDu!($JD&(Z6?5V@I8E;a>~aDi`teXVHJdaIbs7bVgtCCtyt5+Ejs(AgQWLy4 z6s*0Ce8kR;Y^YTBHixQE$qaj!^oc`{@fSzw%(n&dipFF`tqDidnlSU?9**BgPjcaF zi(Dm+wpYoJ1aCCL5~Q9MZI>eq2MxYl&i@moF|4GZed1p$_;H7|bkJ*$^KMDH?ELct zMVQn2{25BKTSTwq`>ex%$nV1|dA5H|-cHnnmR?E2{3pO$DI*qG-n(E(3gfy3JEiW5 zw6i1D9=S0G1fkRL@TPW-%r6L4zoL`t3UwrHWX8Bp@+L7=>8kTivq#p1CszO z&5!}-iwH}onIbv@EsR|TsJ({;@1M9w=0~g13eJn6QLQnHUaQb;4(5r8t9Ua^Z5FTM z&2!2fa9XNPuOpQkCdcR}YC4X@U#`M-%2^S$ns+tNWc2!-l#KB9vD@&Dskfj#_2#kz6pk~jac$tHO+lIWx+Vr;;pl!@jTosf(RYgu% zWI^%^bum3p;H_a4Lgu7EKF=f#%k&h8YyQczZ@7Hr6gptST17}|(IF(vr(|9PxI~i8 zzUvOVXwyy?CY{))*tkVpvjGDiTw^W&+$?-f99qlUhioQ1H*XP**72f-h0hVV+lw6x z)uNyv;yzr*lM>duVK?pu{$7LH4L+L2A{Ot8+c@{suZUk=ZxzY|aeQPXTewL)Q^Y%% zWn09dBA)Dj9xV?J0RjFW@C+CZ%QX^5O=dA_4QGGJMQD}Ud}M%+=>Pu_FDc_*<7eJl2O5@_8xf9lEd-fO(;ax zTC}$vt3FKZ8_5v2jg?jU6y7I!vsSvV!8YjfNerxiKr*1_V$PF1CsLZNQNIT7sU3=c;*XI|`8xju>7>!kdnB70^}is#OQm za|MXm=*B{e8+;265jQ-|)7ot$VM4{yNe6OG;4dYN&n3kxiOEQi8N3{dc`C`A7oX-0 z`#poKJX>g}i6EJbmarS&;d9OLtdlGFbMBxT_+WA}#|PQ&l;YN<5O~oh5%CO999K&~ znp*UuwuCP^o7|XsQ&u1Vj1?vN0b*ImD$ukcjx0^Hlzd$9jFOK<&+zsQmE^nx=D3Cl z+sHdMenuXmX0TXV@1Bzu;xw(hH>3!ih`ezlpOw7M?KBsv+#gm>LG2|@Y{U}Z6M{d> zef~hZz&wG7uCc}>oERNsWz$9`p>be^Ma@Q5^#wG@It@o73B`dBxbzz}*MhIN^e&N` zLGJ46t3g2(0?p4Wo_>}$pyA<-XL(2eGgu&_HuI6$JelW{aPV?xxKxK0+^SI_L~6yV zlOcvoj{~C4SfZIasA_{TPG}+MLj}?Ay%8il{17-;F4euv=_1%V%wvf0yzKVUyI`0q zNO?kb9eP|$15Z-RW6Xx-QzzRqXu&RDa zP@rW&TBxH$Xq^h%&cG)$4RZk^6TTT1edrrlDuu${MJ3W7LL8z9cp5{KKu}E;EeYko zxpO$Agu6E|gER~s0IDFB5{5MB?ssy5eT>&NcvciALl#FsdR}yUBk92bSrUv0(4?Dq zN(iMwQt{;`D1eZ*=Qr{6wo0bTBp7LwwgUvy!XS@#0tvG>p@9%@*l<#=JTHmSn|TtX zG!{eDc;JhkW=};WskN~&NiFBXaZXx4(jw9A4a*&z`X`oT5cZU!UnixM$ZpIcgIyK56eNV zfi`LlcBW3IX^=)VL5-$iT~P^v5cF*@q9}Zx$9B;iYExB z2rXiH*-*5<9)d+n7c~phHAeuN#Q}%FW0y+D6vBtZBPJ>HFg(du&8u7Mrmeh{UsfF5 zvW)6*5pOU371wMA)5w97K(~>H20ikS8;B_(&sH5nZUAf-dA92qKYaw?_LHYnN0A$V zD<{t$9Ybya>>zo{bPTxxuuAe&=ooSXU?<3Pm}30En?3??Re>nPoFNZ|Q1wm+doGZN zLMY~3uqS^rVkm@S@`61D`5?c@F;F=G*cs*S4a ztQj)_&-0?utGsFb=ZVm|7+PI>LX3Qsr#4c{L!g=GX*pUu&LiT%SGjNCQ*y>fqm`2w z^LmgPwWRSq&5$1|DdvJO;g{cT&m)lLE*g)l-Y0E?R5De8)bsP?RHQYt8*T zX_+$=55cr~3^43a6B|OdeRNMXGS?eZ=f}4J{SRTrh!f&7!?QC z!xAFHw1P}BsF9LhgTWc;SY)z+5^$DGw<6tdK#vmwBb?R32PjXvh;|;4lLp;ELT4spQP;x6cHry0T|o0$@H%gV+R{WyS1lM%sv6DpP&HX% zC<0J29Z+)gOPB%m)FJp-+F{Tn=WLIKwDAe`)r_!k1T#j^-gIcWG7 zz{wO&u3RCBVs=efu3dw3Ez>R{qQ0;;{{P z0T~iIXfo6yq5+!C-jy$Ydy6NBQ1#IuB4r0}lvIK4o9)7KjZI&&`gS>eVWocb4j$L{ zg3Kurvm8Z#bY?GZSV@3`fzIQ!Hsq&&7;+)XVO*dKP&EgjA)npBQ(Nn%rRfr0{!#6W z8=vYM3XV9&pNo~12ufM8rTCW}{3WAb;JVb$&2jMprqFbo74;VbBNQHdMYpI4 zBXZv1H<;(16-(dY?NTdIq+;@I@=G)M33$Nd%eRKkr&4pOOWp7;?`td;RqtZQ{o!nRjzx zc*K6EeH=OM0r+Auc#q8Y-aRlAdtI#GgHt!_LI@MHyVtn!Exk$Z9YXR+wGm$$4} zZ9oPM0 znD`NF-zUG1qbD055zF4k;hA?StcSU$P#7Ond#fC8@e?2Lw+-W`;wfePKZdz#vFP~` zOwn|zHOpkGP9!Otf*fAz>{!b6K_5p?)fa&7*PovE+_Lj@Ko2A`EfXOh<2=_g(d%P= zeZyT#P(QlD3(IDCczX+Eo#y$s*!nTQu2bD{ZnZrE(TXK>q*hzRLEd7!oS!z0pG4bF z`FqA0@%yLzIyl!<@H{x5RqzMkjQ@(p7ew%r=pm@~he6GPi0V}%1hhOkC z|AzG-49L{gRgX9d_EL8A9d>nSlnf266&fi+BWs1Ko0ecES0jgT2^(806c>;|Nx4PL zJj5eY!Spt61HvMgX&(kc=&96CvHO~9f3;q$J_Jiayk#%;eZial|A28qOx;)xi7f;6 zs^JZs3{XCC_7E;ZIsJsl`I6s4?&>djT2|Q;fRyGJZu<6INc1uSbf%(biWyNnF;m?^3el0-wdHnH)CfQi~ha-+u z;?98;l{gi)t3W(oiQ{8uu+CMfm@D)fJ|X5CQkmp%w~Nx7o^Qn6-(YFERr1ULHmDTh!1~e2}y1;CO4(FQ(yLB8d@-RG0%Hq z$5EK3?Rr>zc@#O7KP*~)3qfBd27Jq}4D!D6Elv(@4#YOA;!P6D++>viiGbXEawODQ zPORcLr&o7ZFr^*n-k5|1b^WR;+=Ej9VpCs)tR$)CwpBnZ@i+-Kx4rWbk#P*xmKzGh zZO8b1W}bBMy4Z1^W0fyOqrWS<9LLoWN5s|AUIp{Q-ud@NfMA z8V1}iet(@Hj305GoU4zk&qqg|J8<%uy^DUqt_}s$!>R_te|o86=i0Sz z?tk2`!h27X!NK6-$shS+36v_+4UOVnr2Yn}(L#6=>bMyG6Hmd`(6pa;8w~_@s13C3 zC+H}$082o_?6-6NtXk!Y67z*W9PorE6OPh=IdStcC8F*5x%J#G!&JLpx%TGe zVy9&_G2tGytPFBJA=X545guC)a}3Z0hIJV3beMQH#2V`Wh=!ro_PT`>Y4lo1xkx|x zG1Pk4+_GHE53?G^k^YbtLep#D4Go6o^FJ3q8)kV-vv7sTj|M(*EZt>&^BKz(k9K^*1U&9StGmikYuHMQ;lsf0l zan`K5A#1n(uW{BL{~hF`4Xq+_r6pEvbK-cw8h|olh8X>4@Ua2eM$sWb?Q>^w8;`0ovSS-u5zNkMT(&M_- z<#MgYuQ7fTgg?ugndt=I;{6w$^Wa9nouU0Vz>S3e3bClAHEob5+T#j^*Mb`k z_bWt`+X;R*+zxO}xUJw)c0Rb2{K~mE4WE6>)JeBYoIQT})Z3$0sxbLKQLC)>)j zCeNEZW6td2e`Z^81}-Iixs^4rRdRigD;gg4H@yb}=C z9dY#~j40`0HA|bI{dd5nQm4+CH*xyZN#2_#&Ys+{eOGUxnAzGI-|85mJ&67lF44dN zyL#%3Ic?f@_BKbDCq`xcYkhH{we^I#Jw_DeSgB@346fL*eCD|rQJG_15$4eGdeN(m zb-l4s{G*N4DeUV89#L0FiRiZ08*R#CJ+63!Zh@N!w-9a$+_`X*;O4?5 z+Fu2ih&s6Vd|T^dqidsvDtwQ2KZZ+qe+rj~e2?}Yf@{HF36~n<+lIxV9jsi#?wz1A z7z(!@BCdtY;ob;e^oA;%=R-@oq}$5)-bm(#4P6tj)>&Qa!Gr2s#+%l4z8qc(9K9Ci=q89PxU0 zYnu@%X7;cex0=&fwf+5YFW2@f5Jx!P-&nSN_;&5z+gP0FVLfJegukcN4bB@qt+(q( zrg>ab0KE{ubo?TVm-a$)`9Jk3j585dg>Nd&VF!n6&LEuFrSHtCGraeBy*{7!zQ`sj zT?4qp?{RR6{4d6M^zxszx8%{%9Bw@>cs%|U#EjGs1R=AARVv;Q`G z&g9#?*5p~UX3iQVX4+PK>U6+R>x`J`ojv#FTfH~WoH1wC#GB`I^}1a7O~eM<@`V=x zhFGY$i72zJ)bRcAH&p&}wpAcP`&#vU$>|=~R0I-_5#qsqYWC!G(Yddc6}}yC1e2Uz zJiV{A)->ld6_Eq18D@TSaqj@@CbM&fI6MHN^4<)QF%ZmOlpzKUw0b6%W_Vnkkublx zl2>y2pw#-3SXS1dJX)&2U}U@zAQ0)u+`J7%o3Xi1IhFjxYPy0rC$qC zHQ2hl)s7Y(iCn*_^QKOk?7iu4-n%Eyn%UKR5aC3fk@F_cnlgRnokZp{EkxlEkU6xa zB6H)GqGX7b+N?eN)O?NMQgeG}%$(z$GIQ>XNiG+0G5s6Ya^+B~m3dc7kuwyRAxSc#54RL~LxJA8mZE5=)zD1H7Te)Z&B<0RIA-#!sZ&V6O`SQzE7_u}cT{%q znW5GUBj#VN6ua$(OC9#ZR$|U@Yhn24){14uw_Z8InwM1wFUibxa0#gww7UZ?$-{kc zsegXdS`>`{$vWkT!y~MQ4X?>j{kqS@Ip8~4xa;eNKqegg0TUF;KImH`BSq+V@ zJAgz9ey`#8Dt<5Hw-rC)e0#}G$!7H^HQW~FrR>~T#)cqx7a@A$tUzZluw>Ly0?uILjg49BZvH5C0^tzsAb+kL%)b{S8sG@au$Mu%Ga8{6N!1!o~3)z&8!; zj{k5i|JU%7h;`zR)rvo%;{5@DA8P^ptN;S>=WE6PQ7fLI?*$_i0)H?9QMKYdGTvW} zVZ&MgjcR33hyqDaJ2fKZCYU1RClThv|Fc#+`7?sz*Wf#`e^9^^_zo^$EBqu!oeW>b zck^0)l2+rohymAGkKRAw2TFXye)JeY<-@xnUK)^Z`5b&?8gX_$}eWzV9oMf=;?9Ygs_M3BLWQ8>fG%UCrz3<;}+NLy@YwA z)huRlFQxFVflF{t^%7lgwAz}by~K*v1F@L-@FMO1(RHMnZ_+va|PrfZuCs=*> zW`wsF#ssT@xNCwH>8paDh6QRA!rAeU0urgxFP@%Yy%k>8N2xj6`iL15tz5HrUvXff zbzS1RzN(zXa7iJU2AA-j-nV$fO<0a-7TaG{D4`#X1ZY_ZGv_-4aRi*vU%Yj*)i8XN z_K)r_4&99Ldk*|w#INWt+D@`YT=6#ijo?2BmwL|kaA`dG4K7Lj3HV(O#ydcjMZ>F8 ze!l_Yqe!!@8lViyi;dPntYe{8iZ4An+*~_PO-8)cfn6RVzrEUX|U3f--JtPyaPn$tyWgz3HYgZ{sx!9{R1wQf%w~QwYvJ8 zbU8yju4V`y1DAB^8{rb80B-NCm@pI!5hri8I>u~AIQ1$TA&CLD4=L_2)jGr*ZX2bv zvGxe$_>G%;k89f~kvY@Kjky Date: Fri, 9 Feb 2024 20:19:21 +0200 Subject: [PATCH 5/8] fix error message in setDenomMetadata binding --- wasmbinding/message_plugin.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wasmbinding/message_plugin.go b/wasmbinding/message_plugin.go index 4a2bd4bcd..c25b91b6c 100644 --- a/wasmbinding/message_plugin.go +++ b/wasmbinding/message_plugin.go @@ -537,7 +537,7 @@ func PerformForceTransfer(f *tokenfactorykeeper.Keeper, ctx sdk.Context, contrac func (m *CustomMessenger) setDenomMetadata(ctx sdk.Context, contractAddr sdk.AccAddress, setDenomMetadata *bindings.SetDenomMetadata) ([]sdk.Event, [][]byte, error) { err := PerformSetDenomMetadata(m.TokenFactory, ctx, contractAddr, setDenomMetadata) if err != nil { - return nil, nil, errors.Wrap(err, "perform force transfer") + return nil, nil, errors.Wrap(err, "perform set denom metadata") } return nil, nil, nil } From f5a0bf6d9e9f3553ee15b5bf6b79f0260a7605b8 Mon Sep 17 00:00:00 2001 From: pr0n00gler Date: Sat, 10 Feb 2024 16:28:56 +0200 Subject: [PATCH 6/8] * fix tokenfactory unit tests (amount in testcases was not used) * add unit tests for tokenfactory ForceTransfer method --- x/tokenfactory/keeper/admins_test.go | 71 +++++++++++++++++++++++++++- 1 file changed, 69 insertions(+), 2 deletions(-) diff --git a/x/tokenfactory/keeper/admins_test.go b/x/tokenfactory/keeper/admins_test.go index fceee2eae..52a68cbef 100644 --- a/x/tokenfactory/keeper/admins_test.go +++ b/x/tokenfactory/keeper/admins_test.go @@ -112,7 +112,7 @@ func (suite *KeeperTestSuite) TestMintDenom() { } { suite.Run(fmt.Sprintf("Case %s", tc.desc), func() { // Test minting to admins own account - _, err := suite.msgServer.Mint(sdk.WrapSDKContext(suite.ChainA.GetContext()), types.NewMsgMint(tc.admin, sdk.NewInt64Coin(tc.mintDenom, 10))) + _, err := suite.msgServer.Mint(sdk.WrapSDKContext(suite.ChainA.GetContext()), types.NewMsgMint(tc.admin, sdk.NewInt64Coin(tc.mintDenom, tc.amount))) if tc.valid { addr0bal += 10 suite.Require().NoError(err) @@ -174,7 +174,7 @@ func (suite *KeeperTestSuite) TestBurnDenom() { } { suite.Run(fmt.Sprintf("Case %s", tc.desc), func() { // Test minting to admins own account - _, err := suite.msgServer.Burn(sdk.WrapSDKContext(suite.ChainA.GetContext()), types.NewMsgBurn(tc.admin, sdk.NewInt64Coin(tc.burnDenom, 10))) + _, err := suite.msgServer.Burn(sdk.WrapSDKContext(suite.ChainA.GetContext()), types.NewMsgBurn(tc.admin, sdk.NewInt64Coin(tc.burnDenom, tc.amount))) if tc.valid { addr0bal -= 10 suite.Require().NoError(err) @@ -187,6 +187,73 @@ func (suite *KeeperTestSuite) TestBurnDenom() { } } +func (suite *KeeperTestSuite) TestForceTransferDenom() { + addr0bal := int64(0) + addr1bal := int64(0) + suite.Setup() + + // Create a denom. + suite.CreateDefaultDenom(suite.ChainA.GetContext()) + + // mint 10 default token for testAcc[0] + _, err := suite.msgServer.Mint(sdk.WrapSDKContext(suite.ChainA.GetContext()), types.NewMsgMint(suite.TestAccs[0].String(), sdk.NewInt64Coin(suite.defaultDenom, 10))) + suite.NoError(err) + addr0bal += 10 + + for _, tc := range []struct { + desc string + amount int64 + transferDenom string + admin string + valid bool + }{ + { + desc: "denom does not exist", + amount: 10, + transferDenom: "factory/osmo1t7egva48prqmzl59x5ngv4zx0dtrwewc9m7z44/evmos", + admin: suite.TestAccs[0].String(), + valid: false, + }, + { + desc: "force transfer is not by the admin", + amount: 10, + transferDenom: suite.defaultDenom, + admin: suite.TestAccs[1].String(), + valid: false, + }, + { + desc: "force transfer amount is bigger than minted amount", + amount: 1000, + transferDenom: suite.defaultDenom, + admin: suite.TestAccs[0].String(), + valid: false, + }, + { + desc: "success case", + amount: 10, + transferDenom: suite.defaultDenom, + admin: suite.TestAccs[0].String(), + valid: true, + }, + } { + suite.Run(fmt.Sprintf("Case %s", tc.desc), func() { + // Test minting to admins own account + _, err := suite.msgServer.ForceTransfer(sdk.WrapSDKContext(suite.ChainA.GetContext()), types.NewMsgForceTransfer(tc.admin, sdk.NewInt64Coin(tc.transferDenom, tc.amount), suite.TestAccs[0].String(), suite.TestAccs[1].String())) + if tc.valid { + addr0bal -= 10 + addr1bal += 10 + + suite.Require().NoError(err) + suite.Require().True(suite.GetNeutronZoneApp(suite.ChainA).BankKeeper.GetBalance(suite.ChainA.GetContext(), suite.TestAccs[0], suite.defaultDenom).Amount.Int64() == addr0bal, suite.GetNeutronZoneApp(suite.ChainA).BankKeeper.GetBalance(suite.ChainA.GetContext(), suite.TestAccs[0], suite.defaultDenom)) + suite.Require().True(suite.GetNeutronZoneApp(suite.ChainA).BankKeeper.GetBalance(suite.ChainA.GetContext(), suite.TestAccs[1], suite.defaultDenom).Amount.Int64() == addr1bal, suite.GetNeutronZoneApp(suite.ChainA).BankKeeper.GetBalance(suite.ChainA.GetContext(), suite.TestAccs[1], suite.defaultDenom)) + } else { + suite.Require().Error(err) + suite.Require().True(suite.GetNeutronZoneApp(suite.ChainA).BankKeeper.GetBalance(suite.ChainA.GetContext(), suite.TestAccs[0], suite.defaultDenom).Amount.Int64() == addr0bal, suite.GetNeutronZoneApp(suite.ChainA).BankKeeper.GetBalance(suite.ChainA.GetContext(), suite.TestAccs[0], suite.defaultDenom)) + } + }) + } +} + func (suite *KeeperTestSuite) TestChangeAdminDenom() { for _, tc := range []struct { desc string From a2075966ef600329cc285f6c3ed8583fd1788524 Mon Sep 17 00:00:00 2001 From: pr0n00gler Date: Mon, 12 Feb 2024 18:24:50 +0400 Subject: [PATCH 7/8] missing CLI commands for ForceTransfer and SetDenomMetadata messages --- x/tokenfactory/client/cli/tx.go | 115 ++++++++++++++++++++++---------- x/tokenfactory/types/msgs.go | 2 +- 2 files changed, 82 insertions(+), 35 deletions(-) diff --git a/x/tokenfactory/client/cli/tx.go b/x/tokenfactory/client/cli/tx.go index 7fbf57933..a84b4e000 100644 --- a/x/tokenfactory/client/cli/tx.go +++ b/x/tokenfactory/client/cli/tx.go @@ -1,8 +1,11 @@ package cli import ( + "encoding/json" "fmt" + "os" + banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" "github.com/spf13/cobra" "github.com/cosmos/cosmos-sdk/client" @@ -28,9 +31,10 @@ func GetTxCmd() *cobra.Command { NewCreateDenomCmd(), NewMintCmd(), NewBurnCmd(), - // NewForceTransferCmd(), + NewForceTransferCmd(), NewChangeAdminCmd(), NewSetBeforeSendHook(), + NewSetDenomMetadataCmd(), ) return cmd @@ -136,39 +140,82 @@ func NewBurnCmd() *cobra.Command { return cmd } -// // NewForceTransferCmd broadcast MsgForceTransfer -// func NewForceTransferCmd() *cobra.Command { -// cmd := &cobra.Command{ -// Use: "force-transfer [amount] [transfer-from-address] [transfer-to-address] [flags]", -// Short: "Force transfer tokens from one address to another address. Must have admin authority to do so.", -// Args: cobra.ExactArgs(3), -// RunE: func(cmd *cobra.Command, args []string) error { -// clientCtx, err := client.GetClientTxContext(cmd) -// if err != nil { -// return err -// } - -// txf := tx.NewFactoryCLI(clientCtx, cmd.Flags()).WithTxConfig(clientCtx.TxConfig).WithAccountRetriever(clientCtx.AccountRetriever) - -// amount, err := sdk.ParseCoinNormalized(args[0]) -// if err != nil { -// return err -// } - -// msg := types.NewMsgForceTransfer( -// clientCtx.GetFromAddress().String(), -// amount, -// args[1], -// args[2], -// ) - -// return tx.GenerateOrBroadcastTxWithFactory(clientCtx, txf, msg) -// }, -// } - -// flags.AddTxFlagsToCmd(cmd) -// return cmd -// } +// NewForceTransferCmd broadcast MsgForceTransfer +func NewForceTransferCmd() *cobra.Command { + cmd := &cobra.Command{ + Use: "force-transfer [amount] [transfer-from-address] [transfer-to-address] [flags]", + Short: "Force transfer tokens from one address to another address. Must have admin authority to do so.", + Args: cobra.ExactArgs(3), + RunE: func(cmd *cobra.Command, args []string) error { + clientCtx, err := client.GetClientTxContext(cmd) + if err != nil { + return err + } + + txf, err := tx.NewFactoryCLI(clientCtx, cmd.Flags()) + if err != nil { + return err + } + + amount, err := sdk.ParseCoinNormalized(args[0]) + if err != nil { + return err + } + + msg := types.NewMsgForceTransfer( + clientCtx.GetFromAddress().String(), + amount, + args[1], + args[2], + ) + + return tx.GenerateOrBroadcastTxWithFactory(clientCtx, txf.WithTxConfig(clientCtx.TxConfig).WithAccountRetriever(clientCtx.AccountRetriever), msg) + }, + } + + flags.AddTxFlagsToCmd(cmd) + return cmd +} + +// NewSetDenomMetadataCmd broadcast MsgSetDenomMetadata msg +func NewSetDenomMetadataCmd() *cobra.Command { + cmd := &cobra.Command{ + Use: "set-denom-metadata [metadata-file] [flags]", + Short: "Sets a bank metadata for a token denom. Must have admin authority to do so.", + Args: cobra.ExactArgs(1), + RunE: func(cmd *cobra.Command, args []string) error { + clientCtx, err := client.GetClientTxContext(cmd) + if err != nil { + return err + } + + txf, err := tx.NewFactoryCLI(clientCtx, cmd.Flags()) + if err != nil { + return err + } + + metadataBytes, err := os.ReadFile(args[1]) + if err != nil { + return err + } + + var metadata banktypes.Metadata + if err = json.Unmarshal(metadataBytes, &metadata); err != nil { + return err + } + + msg := types.NewMsgSetDenomMetadata( + clientCtx.GetFromAddress().String(), + metadata, + ) + + return tx.GenerateOrBroadcastTxWithFactory(clientCtx, txf.WithTxConfig(clientCtx.TxConfig).WithAccountRetriever(clientCtx.AccountRetriever), msg) + }, + } + + flags.AddTxFlagsToCmd(cmd) + return cmd +} // NewChangeAdminCmd broadcast MsgChangeAdmin func NewChangeAdminCmd() *cobra.Command { diff --git a/x/tokenfactory/types/msgs.go b/x/tokenfactory/types/msgs.go index 4020c3cf2..d7f3ea25e 100644 --- a/x/tokenfactory/types/msgs.go +++ b/x/tokenfactory/types/msgs.go @@ -225,7 +225,7 @@ func (m MsgChangeAdmin) GetSigners() []sdk.AccAddress { var _ sdk.Msg = &MsgSetDenomMetadata{} -// NewMsgChangeAdmin creates a message to burn tokens +// NewMsgSetDenomMetadata creates a message to create metadata for a denom func NewMsgSetDenomMetadata(sender string, metadata banktypes.Metadata) *MsgSetDenomMetadata { return &MsgSetDenomMetadata{ Sender: sender, From becbfee10d965cad5a26ed320a89237d6af846d4 Mon Sep 17 00:00:00 2001 From: pr0n00gler Date: Mon, 12 Feb 2024 18:33:30 +0400 Subject: [PATCH 8/8] fix comment for NewMsgSetDenomMetadata method --- x/tokenfactory/types/msgs.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/x/tokenfactory/types/msgs.go b/x/tokenfactory/types/msgs.go index d7f3ea25e..77190c4ea 100644 --- a/x/tokenfactory/types/msgs.go +++ b/x/tokenfactory/types/msgs.go @@ -225,7 +225,7 @@ func (m MsgChangeAdmin) GetSigners() []sdk.AccAddress { var _ sdk.Msg = &MsgSetDenomMetadata{} -// NewMsgSetDenomMetadata creates a message to create metadata for a denom +// NewMsgSetDenomMetadata creates a message to set a metadata for a denom func NewMsgSetDenomMetadata(sender string, metadata banktypes.Metadata) *MsgSetDenomMetadata { return &MsgSetDenomMetadata{ Sender: sender,