From 74d8e3a59b859e420ff862a29a0495fc308d6b37 Mon Sep 17 00:00:00 2001 From: Christoph Otter Date: Thu, 29 Feb 2024 15:51:35 +0100 Subject: [PATCH 01/20] Add source chain callback support --- x/wasm/ibc.go | 109 +++++++++++++++++++++++ x/wasm/keeper/relay.go | 34 +++++++ x/wasm/keeper/wasmtesting/mock_engine.go | 50 ++++++----- x/wasm/types/exported_keepers.go | 5 ++ x/wasm/types/wasmer_engine.go | 15 ++++ 5 files changed, 192 insertions(+), 21 deletions(-) diff --git a/x/wasm/ibc.go b/x/wasm/ibc.go index f58e0dd644..9977b29f75 100644 --- a/x/wasm/ibc.go +++ b/x/wasm/ibc.go @@ -5,6 +5,7 @@ import ( wasmvmtypes "github.com/CosmWasm/wasmvm/v2/types" capabilitytypes "github.com/cosmos/ibc-go/modules/capability/types" + clienttypes "github.com/cosmos/ibc-go/v8/modules/core/02-client/types" //nolint:staticcheck channeltypes "github.com/cosmos/ibc-go/v8/modules/core/04-channel/types" porttypes "github.com/cosmos/ibc-go/v8/modules/core/05-port/types" host "github.com/cosmos/ibc-go/v8/modules/core/24-host" @@ -326,6 +327,114 @@ func (i IBCHandler) OnTimeoutPacket(ctx sdk.Context, packet channeltypes.Packet, return nil } +// IBCSendPacketCallback implements the IBC Callbacks ContractKeeper interface +// see https://github.com/cosmos/ibc-go/blob/main/docs/architecture/adr-008-app-caller-cbs.md#contractkeeper +func (i IBCHandler) IBCSendPacketCallback( + cachedCtx sdk.Context, + sourcePort string, + sourceChannel string, + timeoutHeight clienttypes.Height, + timeoutTimestamp uint64, + packetData []byte, + contractAddress, + packetSenderAddress string, +) error { + _, err := validateSender(contractAddress, packetSenderAddress) + if err != nil { + return err + } + + // no-op, since we are not interested in this callback + return nil +} + +// IBCOnAcknowledgementPacketCallback implements the IBC Callbacks ContractKeeper interface +// see https://github.com/cosmos/ibc-go/blob/main/docs/architecture/adr-008-app-caller-cbs.md#contractkeeper +func (i IBCHandler) IBCOnAcknowledgementPacketCallback( + cachedCtx sdk.Context, + packet channeltypes.Packet, + acknowledgement []byte, + relayer sdk.AccAddress, + contractAddress, + packetSenderAddress string, +) error { + contractAddr, err := validateSender(contractAddress, packetSenderAddress) + if err != nil { + return err + } + + msg := wasmvmtypes.IBCSourceChainCallbackMsg{ + Acknowledgement: &wasmvmtypes.IBCPacketAckMsg{ + Acknowledgement: wasmvmtypes.IBCAcknowledgement{Data: acknowledgement}, + OriginalPacket: newIBCPacket(packet), + Relayer: relayer.String(), + }, + } + err = i.keeper.IBCSourceChainCallback(cachedCtx, contractAddr, msg) + if err != nil { + return errorsmod.Wrap(err, "on source chain callback ack") + } + + return nil +} + +// IBCOnTimeoutPacketCallback implements the IBC Callbacks ContractKeeper interface +// see https://github.com/cosmos/ibc-go/blob/main/docs/architecture/adr-008-app-caller-cbs.md#contractkeeper +func (i IBCHandler) IBCOnTimeoutPacketCallback( + cachedCtx sdk.Context, + packet channeltypes.Packet, + relayer sdk.AccAddress, + contractAddress, + packetSenderAddress string, +) error { + contractAddr, err := validateSender(contractAddress, packetSenderAddress) + if err != nil { + return err + } + + msg := wasmvmtypes.IBCSourceChainCallbackMsg{ + Timeout: &wasmvmtypes.IBCPacketTimeoutMsg{ + Packet: newIBCPacket(packet), + Relayer: relayer.String(), + }, + } + err = i.keeper.IBCSourceChainCallback(cachedCtx, contractAddr, msg) + if err != nil { + return errorsmod.Wrap(err, "on source chain callback timeout") + } + return nil +} + +// IBCReceivePacketCallback implements the IBC Callbacks ContractKeeper interface +// see https://github.com/cosmos/ibc-go/blob/main/docs/architecture/adr-008-app-caller-cbs.md#contractkeeper +func (i IBCHandler) IBCReceivePacketCallback( + cachedCtx sdk.Context, + packet ibcexported.PacketI, + ack ibcexported.Acknowledgement, + contractAddress string, +) error { + // no-op for now, but will be supported in the future + return nil +} + +func validateSender(contractAddr string, senderAddr string) (sdk.AccAddress, error) { + contractAddress, err := sdk.AccAddressFromBech32(contractAddr) + if err != nil { + return nil, errorsmod.Wrapf(err, "contract address") + } + senderAddress, err := sdk.AccAddressFromBech32(senderAddr) + if err != nil { + return nil, errorsmod.Wrapf(err, "packet sender address") + } + + // We only allow the contract that sent the message to receive source chain callbacks for it. + if !contractAddress.Equals(senderAddress) { + return nil, errorsmod.Wrapf(types.ErrExecuteFailed, "contract address %s does not match packet sender %s", contractAddr, senderAddress) + } + + return contractAddress, nil +} + func newIBCPacket(packet channeltypes.Packet) wasmvmtypes.IBCPacket { timeout := wasmvmtypes.IBCTimeout{ Timestamp: packet.TimeoutTimestamp, diff --git a/x/wasm/keeper/relay.go b/x/wasm/keeper/relay.go index 65cb51dbf4..4bb26fa107 100644 --- a/x/wasm/keeper/relay.go +++ b/x/wasm/keeper/relay.go @@ -270,6 +270,40 @@ func (k Keeper) OnTimeoutPacket( return k.handleIBCBasicContractResponse(ctx, contractAddr, contractInfo.IBCPortID, res.Ok) } +// IBCSourceChainCallback calls the contract to let it know the packet triggered by its +// IBC-callbacks-enabled message either timed out or was acknowledged. +func (k Keeper) IBCSourceChainCallback( + ctx sdk.Context, + contractAddr sdk.AccAddress, + msg wasmvmtypes.IBCSourceChainCallbackMsg, +) error { + defer telemetry.MeasureSince(time.Now(), "wasm", "contract", "ibc-source-chain-callback") + + contractInfo, codeInfo, prefixStore, err := k.contractInstance(ctx, contractAddr) + if err != nil { + return err + } + + env := types.NewEnv(ctx, contractAddr) + querier := k.newQueryHandler(ctx, contractAddr) + + gasLeft := k.runtimeGasForContract(ctx) + res, gasUsed, execErr := k.wasmVM.IBCSourceChainCallback(codeInfo.CodeHash, env, msg, prefixStore, cosmwasmAPI, querier, ctx.GasMeter(), gasLeft, costJSONDeserialization) + k.consumeRuntimeGas(ctx, gasUsed) + if execErr != nil { + return errorsmod.Wrap(types.ErrExecuteFailed, execErr.Error()) + } + if res == nil { + // If this gets executed, that's a bug in wasmvm + return errorsmod.Wrap(types.ErrVMError, "internal wasmvm error") + } + if res.Err != "" { + return types.MarkErrorDeterministic(errorsmod.Wrap(types.ErrExecuteFailed, res.Err)) + } + + return k.handleIBCBasicContractResponse(ctx, contractAddr, contractInfo.IBCPortID, res.Ok) +} + func (k Keeper) handleIBCBasicContractResponse(ctx sdk.Context, addr sdk.AccAddress, id string, res *wasmvmtypes.IBCBasicResponse) error { _, err := k.handleContractResponse(ctx, addr, id, res.Messages, res.Attributes, nil, res.Events) return err diff --git a/x/wasm/keeper/wasmtesting/mock_engine.go b/x/wasm/keeper/wasmtesting/mock_engine.go index f35386d7fd..ef6596c6ec 100644 --- a/x/wasm/keeper/wasmtesting/mock_engine.go +++ b/x/wasm/keeper/wasmtesting/mock_engine.go @@ -22,27 +22,28 @@ var _ types.WasmEngine = &MockWasmEngine{} // MockWasmEngine implements types.WasmEngine for testing purpose. One or multiple messages can be stubbed. // Without a stub function a panic is thrown. type MockWasmEngine struct { - StoreCodeFn func(codeID wasmvm.WasmCode, gasLimit uint64) (wasmvm.Checksum, uint64, error) - StoreCodeUncheckedFn func(codeID wasmvm.WasmCode) (wasmvm.Checksum, error) - AnalyzeCodeFn func(codeID wasmvm.Checksum) (*wasmvmtypes.AnalysisReport, error) - InstantiateFn func(codeID wasmvm.Checksum, env wasmvmtypes.Env, info wasmvmtypes.MessageInfo, initMsg []byte, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.ContractResult, uint64, error) - ExecuteFn func(codeID wasmvm.Checksum, env wasmvmtypes.Env, info wasmvmtypes.MessageInfo, executeMsg []byte, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.ContractResult, uint64, error) - QueryFn func(codeID wasmvm.Checksum, env wasmvmtypes.Env, queryMsg []byte, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.QueryResult, uint64, error) - MigrateFn func(codeID wasmvm.Checksum, env wasmvmtypes.Env, migrateMsg []byte, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.ContractResult, uint64, error) - SudoFn func(codeID wasmvm.Checksum, env wasmvmtypes.Env, sudoMsg []byte, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.ContractResult, uint64, error) - ReplyFn func(codeID wasmvm.Checksum, env wasmvmtypes.Env, reply wasmvmtypes.Reply, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.ContractResult, uint64, error) - GetCodeFn func(codeID wasmvm.Checksum) (wasmvm.WasmCode, error) - CleanupFn func() - IBCChannelOpenFn func(codeID wasmvm.Checksum, env wasmvmtypes.Env, msg wasmvmtypes.IBCChannelOpenMsg, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.IBCChannelOpenResult, uint64, error) - IBCChannelConnectFn func(codeID wasmvm.Checksum, env wasmvmtypes.Env, msg wasmvmtypes.IBCChannelConnectMsg, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.IBCBasicResult, uint64, error) - IBCChannelCloseFn func(codeID wasmvm.Checksum, env wasmvmtypes.Env, msg wasmvmtypes.IBCChannelCloseMsg, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.IBCBasicResult, uint64, error) - IBCPacketReceiveFn func(codeID wasmvm.Checksum, env wasmvmtypes.Env, msg wasmvmtypes.IBCPacketReceiveMsg, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.IBCReceiveResult, uint64, error) - IBCPacketAckFn func(codeID wasmvm.Checksum, env wasmvmtypes.Env, msg wasmvmtypes.IBCPacketAckMsg, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.IBCBasicResult, uint64, error) - IBCPacketTimeoutFn func(codeID wasmvm.Checksum, env wasmvmtypes.Env, msg wasmvmtypes.IBCPacketTimeoutMsg, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.IBCBasicResult, uint64, error) - PinFn func(checksum wasmvm.Checksum) error - UnpinFn func(checksum wasmvm.Checksum) error - GetMetricsFn func() (*wasmvmtypes.Metrics, error) - GetPinMetricsFn func() (*wasmvmtypes.PinnedMetrics, error) + StoreCodeFn func(codeID wasmvm.WasmCode, gasLimit uint64) (wasmvm.Checksum, uint64, error) + StoreCodeUncheckedFn func(codeID wasmvm.WasmCode) (wasmvm.Checksum, error) + AnalyzeCodeFn func(codeID wasmvm.Checksum) (*wasmvmtypes.AnalysisReport, error) + InstantiateFn func(codeID wasmvm.Checksum, env wasmvmtypes.Env, info wasmvmtypes.MessageInfo, initMsg []byte, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.ContractResult, uint64, error) + ExecuteFn func(codeID wasmvm.Checksum, env wasmvmtypes.Env, info wasmvmtypes.MessageInfo, executeMsg []byte, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.ContractResult, uint64, error) + QueryFn func(codeID wasmvm.Checksum, env wasmvmtypes.Env, queryMsg []byte, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.QueryResult, uint64, error) + MigrateFn func(codeID wasmvm.Checksum, env wasmvmtypes.Env, migrateMsg []byte, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.ContractResult, uint64, error) + SudoFn func(codeID wasmvm.Checksum, env wasmvmtypes.Env, sudoMsg []byte, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.ContractResult, uint64, error) + ReplyFn func(codeID wasmvm.Checksum, env wasmvmtypes.Env, reply wasmvmtypes.Reply, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.ContractResult, uint64, error) + GetCodeFn func(codeID wasmvm.Checksum) (wasmvm.WasmCode, error) + CleanupFn func() + IBCChannelOpenFn func(codeID wasmvm.Checksum, env wasmvmtypes.Env, msg wasmvmtypes.IBCChannelOpenMsg, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.IBCChannelOpenResult, uint64, error) + IBCChannelConnectFn func(codeID wasmvm.Checksum, env wasmvmtypes.Env, msg wasmvmtypes.IBCChannelConnectMsg, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.IBCBasicResult, uint64, error) + IBCChannelCloseFn func(codeID wasmvm.Checksum, env wasmvmtypes.Env, msg wasmvmtypes.IBCChannelCloseMsg, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.IBCBasicResult, uint64, error) + IBCPacketReceiveFn func(codeID wasmvm.Checksum, env wasmvmtypes.Env, msg wasmvmtypes.IBCPacketReceiveMsg, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.IBCReceiveResult, uint64, error) + IBCPacketAckFn func(codeID wasmvm.Checksum, env wasmvmtypes.Env, msg wasmvmtypes.IBCPacketAckMsg, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.IBCBasicResult, uint64, error) + IBCPacketTimeoutFn func(codeID wasmvm.Checksum, env wasmvmtypes.Env, msg wasmvmtypes.IBCPacketTimeoutMsg, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.IBCBasicResult, uint64, error) + IBCSourceChainCallbackFn func(codeID wasmvm.Checksum, env wasmvmtypes.Env, msg wasmvmtypes.IBCSourceChainCallbackMsg, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.IBCBasicResult, uint64, error) + PinFn func(checksum wasmvm.Checksum) error + UnpinFn func(checksum wasmvm.Checksum) error + GetMetricsFn func() (*wasmvmtypes.Metrics, error) + GetPinMetricsFn func() (*wasmvmtypes.PinnedMetrics, error) } func (m *MockWasmEngine) IBCChannelOpen(codeID wasmvm.Checksum, env wasmvmtypes.Env, msg wasmvmtypes.IBCChannelOpenMsg, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.IBCChannelOpenResult, uint64, error) { @@ -87,6 +88,13 @@ func (m *MockWasmEngine) IBCPacketTimeout(codeID wasmvm.Checksum, env wasmvmtype return m.IBCPacketTimeoutFn(codeID, env, msg, store, goapi, querier, gasMeter, gasLimit, deserCost) } +func (m MockWasmEngine) IBCSourceChainCallback(codeID wasmvm.Checksum, env wasmvmtypes.Env, msg wasmvmtypes.IBCSourceChainCallbackMsg, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.IBCBasicResult, uint64, error) { + if m.IBCSourceChainCallbackFn == nil { + panic("not expected to be called") + } + return m.IBCSourceChainCallbackFn(codeID, env, msg, store, goapi, querier, gasMeter, gasLimit, deserCost) +} + func (m *MockWasmEngine) StoreCode(codeID wasmvm.WasmCode, gasLimit uint64) (wasmvm.Checksum, uint64, error) { if m.StoreCodeFn == nil { panic("not supposed to be called!") diff --git a/x/wasm/types/exported_keepers.go b/x/wasm/types/exported_keepers.go index cbe0d734f1..4d8586ab88 100644 --- a/x/wasm/types/exported_keepers.go +++ b/x/wasm/types/exported_keepers.go @@ -116,6 +116,11 @@ type IBCContractKeeper interface { contractAddr sdk.AccAddress, msg wasmvmtypes.IBCPacketTimeoutMsg, ) error + IBCSourceChainCallback( + ctx sdk.Context, + contractAddr sdk.AccAddress, + msg wasmvmtypes.IBCSourceChainCallbackMsg, + ) error // ClaimCapability allows the transfer module to claim a capability // that IBC module passes to it ClaimCapability(ctx sdk.Context, cap *capabilitytypes.Capability, name string) error diff --git a/x/wasm/types/wasmer_engine.go b/x/wasm/types/wasmer_engine.go index fb53494353..7769575420 100644 --- a/x/wasm/types/wasmer_engine.go +++ b/x/wasm/types/wasmer_engine.go @@ -233,6 +233,21 @@ type WasmEngine interface { deserCost wasmvmtypes.UFraction, ) (*wasmvmtypes.IBCBasicResult, uint64, error) + // IBCSourceChainCallback is available on IBC-callbacks-enabled contracts and is called when an + // IBC-callbacks-enabled IBC message previously sent by this contract is either acknowledged or + // times out. + IBCSourceChainCallback( + checksum wasmvm.Checksum, + env wasmvmtypes.Env, + msg wasmvmtypes.IBCSourceChainCallbackMsg, + store wasmvm.KVStore, + goapi wasmvm.GoAPI, + querier wasmvm.Querier, + gasMeter wasmvm.GasMeter, + gasLimit uint64, + deserCost wasmvmtypes.UFraction, + ) (*wasmvmtypes.IBCBasicResult, uint64, error) + // Pin pins a code to an in-memory cache, such that is // always loaded quickly when executed. // Pin is idempotent. From f22ea8cc8471da85a50bbee842e1aa7100c3b5c3 Mon Sep 17 00:00:00 2001 From: Christoph Otter Date: Mon, 4 Mar 2024 17:01:42 +0100 Subject: [PATCH 02/20] Add ibc callbacks test --- tests/e2e/README.md | 2 +- tests/e2e/ibc_callbacks_test.go | 122 ++++++++++++++++++++++++++ tests/e2e/testdata/ibc_callbacks.wasm | Bin 0 -> 222490 bytes 3 files changed, 123 insertions(+), 1 deletion(-) create mode 100644 tests/e2e/ibc_callbacks_test.go create mode 100644 tests/e2e/testdata/ibc_callbacks.wasm diff --git a/tests/e2e/README.md b/tests/e2e/README.md index dae38fe2df..b72bc4a1dc 100644 --- a/tests/e2e/README.md +++ b/tests/e2e/README.md @@ -1,3 +1,3 @@ # End To End Testing - e2e -Scenario tests that run against on or multiple chain instances. +Scenario tests that run against one or multiple chain instances. diff --git a/tests/e2e/ibc_callbacks_test.go b/tests/e2e/ibc_callbacks_test.go new file mode 100644 index 0000000000..3383ead295 --- /dev/null +++ b/tests/e2e/ibc_callbacks_test.go @@ -0,0 +1,122 @@ +package e2e + +import ( + "encoding/json" + "testing" + + wasmvmtypes "github.com/CosmWasm/wasmvm/v2/types" + ibcfee "github.com/cosmos/ibc-go/v8/modules/apps/29-fee/types" + ibctransfertypes "github.com/cosmos/ibc-go/v8/modules/apps/transfer/types" + channeltypes "github.com/cosmos/ibc-go/v8/modules/core/04-channel/types" + ibctesting "github.com/cosmos/ibc-go/v8/testing" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + + sdkmath "cosmossdk.io/math" + + sdk "github.com/cosmos/cosmos-sdk/types" + + "github.com/CosmWasm/wasmd/app" + wasmibctesting "github.com/CosmWasm/wasmd/x/wasm/ibctesting" + "github.com/CosmWasm/wasmd/x/wasm/types" +) + +func TestIBCCallbacks(t *testing.T) { + // scenario: + // given two chains + // with an ics-20 channel established + // and an ibc-callbacks contract deployed on chain A + // when the ibc-callbacks contract sends an IBCMsg::Transfer to chain B + // then the contract should receive a callback with the result + marshaler := app.MakeEncodingConfig(t).Codec + coord := wasmibctesting.NewCoordinator(t, 2) + chainA := coord.GetChain(wasmibctesting.GetChainID(1)) + chainB := coord.GetChain(wasmibctesting.GetChainID(2)) + + actorChainA := sdk.AccAddress(chainA.SenderPrivKey.PubKey().Address()) + actorChainB := sdk.AccAddress(chainB.SenderPrivKey.PubKey().Address()) + oneToken := sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, sdkmath.NewInt(1))) + + path := wasmibctesting.NewPath(chainA, chainB) + path.EndpointA.ChannelConfig = &ibctesting.ChannelConfig{ + PortID: ibctransfertypes.PortID, + Version: string(marshaler.MustMarshalJSON(&ibcfee.Metadata{FeeVersion: ibcfee.Version, AppVersion: ibctransfertypes.Version})), + Order: channeltypes.UNORDERED, + } + path.EndpointB.ChannelConfig = &ibctesting.ChannelConfig{ + PortID: ibctransfertypes.PortID, + Version: string(marshaler.MustMarshalJSON(&ibcfee.Metadata{FeeVersion: ibcfee.Version, AppVersion: ibctransfertypes.Version})), + Order: channeltypes.UNORDERED, + } + // with an ics-20 transfer channel setup between both chains + coord.Setup(path) + + // with an ibc-callbacks contract deployed on chain A + codeID := chainA.StoreCodeFile("./testdata/ibc_callbacks.wasm").CodeID + contractAddr := chainA.InstantiateContract(codeID, []byte(`{}`)) + require.NotEmpty(t, contractAddr) + + // ExecuteMsg is the ibc-callbacks contract's execute msg + type ExecuteMsg struct { + ToAddress string `json:"to_address"` + ChannelID string `json:"channel_id"` + TimeoutSeconds wasmvmtypes.Uint64 `json:"timeout_seconds"` + } + contractMsg := ExecuteMsg{ + ToAddress: actorChainB.String(), + ChannelID: path.EndpointA.ChannelID, + TimeoutSeconds: 100, + } + contractMsgBz, err := json.Marshal(contractMsg) + require.NoError(t, err) + + // when the contract sends an IBCMsg::Transfer to chain B + execMsg := types.MsgExecuteContract{ + Sender: actorChainA.String(), + Contract: contractAddr.String(), + Msg: contractMsgBz, + Funds: oneToken, + } + _, err = chainA.SendMsgs(&execMsg) + require.NoError(t, err) + + // and the packet is relayed + require.NoError(t, coord.RelayAndAckPendingPackets(path)) + + // then the contract should receive a callback with the ack result + type QueryMsg struct { + CallbackStats struct{} `json:"callback_stats"` + } + type QueryResp struct { + IBCAckCallbacks []wasmvmtypes.IBCPacketAckMsg `json:"ibc_ack_callbacks"` + IBCTimeoutCallbacks []wasmvmtypes.IBCPacketTimeoutMsg `json:"ibc_timeout_callbacks"` + // TODO: receive callback + } + var response QueryResp + chainA.SmartQuery(contractAddr.String(), QueryMsg{CallbackStats: struct{}{}}, &response) + assert.Len(t, response.IBCAckCallbacks, 1) + assert.Empty(t, response.IBCTimeoutCallbacks) + + var ack ibcfee.IncentivizedAcknowledgement + err = json.Unmarshal(response.IBCAckCallbacks[0].Acknowledgement.Data, &ack) + require.NoError(t, err) + assert.Equal(t, []byte(`{"result":"AQ=="}`), ack.AppAcknowledgement) // ics20 success ack + + // now the same, but with a timeout: + contractMsg.TimeoutSeconds = 1 + contractMsgBz, err = json.Marshal(contractMsg) + require.NoError(t, err) + + // when the contract sends an IBCMsg::Transfer to chain B + execMsg.Msg = contractMsgBz + _, err = chainA.SendMsgs(&execMsg) + require.NoError(t, err) + + // and the packet times out + require.NoError(t, coord.TimeoutPendingPackets(path)) + + // then the contract should receive a callback with the timeout result + chainA.SmartQuery(contractAddr.String(), QueryMsg{CallbackStats: struct{}{}}, &response) + assert.Len(t, response.IBCAckCallbacks, 1) + assert.Len(t, response.IBCTimeoutCallbacks, 1) +} diff --git a/tests/e2e/testdata/ibc_callbacks.wasm b/tests/e2e/testdata/ibc_callbacks.wasm new file mode 100644 index 0000000000000000000000000000000000000000..1654a2047651dce68b7d8826d15b303c4aceb840 GIT binary patch literal 222490 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

damRwH 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 N&3Ga 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 G|NjFVwNqgL literal 0 HcmV?d00001 From 74ba17562c4cd5c0adf88987ef6ad55b8c3d5330 Mon Sep 17 00:00:00 2001 From: Christoph Otter Date: Tue, 5 Mar 2024 18:45:24 +0100 Subject: [PATCH 03/20] Add ibc callbacks middleware --- app/app.go | 27 +++++++++++++++++++-------- go.mod | 1 + go.sum | 2 ++ 3 files changed, 22 insertions(+), 8 deletions(-) diff --git a/app/app.go b/app/app.go index 2545a2ef6d..fa117f7f72 100644 --- a/app/app.go +++ b/app/app.go @@ -12,6 +12,7 @@ import ( tmproto "github.com/cometbft/cometbft/proto/tendermint/types" dbm "github.com/cosmos/cosmos-db" "github.com/cosmos/gogoproto/proto" + ibccallbacks "github.com/cosmos/ibc-go/modules/apps/callbacks" "github.com/cosmos/ibc-go/modules/capability" capabilitykeeper "github.com/cosmos/ibc-go/modules/capability/keeper" capabilitytypes "github.com/cosmos/ibc-go/modules/capability/types" @@ -141,6 +142,10 @@ const appName = "WasmApp" var ( NodeDir = ".wasmd" Bech32Prefix = "wasm" + // MaxIBCCallbackGas is the maximum gas that an IBC callback can use. + // If the callback uses more gas, it will be out of gas and will not be reverted. + // This is passed to the callbacks middleware + MaxIBCCallbackGas = uint64(1000000) ) // These constants are derived from the above variables. @@ -650,10 +655,10 @@ func NewWasmApp( wasmOpts..., ) - // Create Transfer Stack - var transferStack porttypes.IBCModule - transferStack = transfer.NewIBCModule(app.TransferKeeper) - transferStack = ibcfee.NewIBCMiddleware(transferStack, app.IBCFeeKeeper) + // Create fee enabled wasm ibc Stack + var wasmStack porttypes.IBCModule + wasmStackIBCHandler := wasm.NewIBCHandler(app.WasmKeeper, app.IBCKeeper.ChannelKeeper, app.IBCFeeKeeper) + wasmStack = ibcfee.NewIBCMiddleware(wasmStackIBCHandler, app.IBCFeeKeeper) // Create Interchain Accounts Stack // SendPacket, since it is originating from the application to core IBC: @@ -664,6 +669,9 @@ func NewWasmApp( var noAuthzModule porttypes.IBCModule icaControllerStack = icacontroller.NewIBCMiddleware(noAuthzModule, app.ICAControllerKeeper) icaControllerStack = ibcfee.NewIBCMiddleware(icaControllerStack, app.IBCFeeKeeper) + icaControllerStack = ibccallbacks.NewIBCMiddleware(icaControllerStack, app.IBCFeeKeeper, wasmStackIBCHandler, MaxIBCCallbackGas) + // Since the callbacks middleware itself is an ics4wrapper, it needs to be passed to the ica controller keeper + app.ICAControllerKeeper.WithICS4Wrapper(icaControllerStack.(porttypes.ICS4Wrapper)) // RecvPacket, message that originates from core IBC and goes down to app, the flow is: // channel.RecvPacket -> fee.OnRecvPacket -> icaHost.OnRecvPacket @@ -671,10 +679,13 @@ func NewWasmApp( icaHostStack = icahost.NewIBCModule(app.ICAHostKeeper) icaHostStack = ibcfee.NewIBCMiddleware(icaHostStack, app.IBCFeeKeeper) - // Create fee enabled wasm ibc Stack - var wasmStack porttypes.IBCModule - wasmStack = wasm.NewIBCHandler(app.WasmKeeper, app.IBCKeeper.ChannelKeeper, app.IBCFeeKeeper) - wasmStack = ibcfee.NewIBCMiddleware(wasmStack, app.IBCFeeKeeper) + // Create Transfer Stack + var transferStack porttypes.IBCModule + transferStack = transfer.NewIBCModule(app.TransferKeeper) + transferStack = ibcfee.NewIBCMiddleware(transferStack, app.IBCFeeKeeper) + transferStack = ibccallbacks.NewIBCMiddleware(transferStack, app.IBCFeeKeeper, wasmStackIBCHandler, MaxIBCCallbackGas) + // Since the callbacks middleware itself is an ics4wrapper, it needs to be passed to the ica controller keeper + app.TransferKeeper.WithICS4Wrapper(transferStack.(porttypes.ICS4Wrapper)) // Create static IBC router, add app routes, then set and seal it ibcRouter := porttypes.NewRouter(). diff --git a/go.mod b/go.mod index 55b7dc6672..7cd7a49eff 100644 --- a/go.mod +++ b/go.mod @@ -84,6 +84,7 @@ require ( github.com/cometbft/cometbft-db v0.9.1 // indirect github.com/cosmos/btcutil v1.0.5 // indirect github.com/cosmos/go-bip39 v1.0.0 // indirect + github.com/cosmos/ibc-go/modules/apps/callbacks v0.2.1-0.20231113120333-342c00b0f8bd // indirect github.com/cosmos/ledger-cosmos-go v0.13.3 // indirect github.com/creachadair/atomicfile v0.3.1 // indirect github.com/creachadair/tomledit v0.0.24 // indirect diff --git a/go.sum b/go.sum index 03f5de0cee..32ee3b3169 100644 --- a/go.sum +++ b/go.sum @@ -364,6 +364,8 @@ github.com/cosmos/gogoproto v1.5.0 h1:SDVwzEqZDDBoslaeZg+dGE55hdzHfgUA40pEanMh52 github.com/cosmos/gogoproto v1.5.0/go.mod h1:iUM31aofn3ymidYG6bUR5ZFrk+Om8p5s754eMUcyp8I= github.com/cosmos/iavl v1.2.0 h1:kVxTmjTh4k0Dh1VNL046v6BXqKziqMDzxo93oh3kOfM= github.com/cosmos/iavl v1.2.0/go.mod h1:HidWWLVAtODJqFD6Hbne2Y0q3SdxByJepHUOeoH4LiI= +github.com/cosmos/ibc-go/modules/apps/callbacks v0.2.1-0.20231113120333-342c00b0f8bd h1:Lx+/5dZ/nN6qPXP2Ofog6u1fmlkCFA1ElcOconnofEM= +github.com/cosmos/ibc-go/modules/apps/callbacks v0.2.1-0.20231113120333-342c00b0f8bd/go.mod h1:JWfpWVKJKiKtd53/KbRoKfxWl8FsT2GPcNezTOk0o5Q= github.com/cosmos/ibc-go/modules/capability v1.0.0 h1:r/l++byFtn7jHYa09zlAdSeevo8ci1mVZNO9+V0xsLE= github.com/cosmos/ibc-go/modules/capability v1.0.0/go.mod h1:D81ZxzjZAe0ZO5ambnvn1qedsFQ8lOwtqicG6liLBco= github.com/cosmos/ibc-go/v8 v8.3.2 h1:8X1oHHKt2Bh9hcExWS89rntLaCKZp2EjFTUSxKlPhGI= From 7a26e7c475b58d69530c7f75e3e3dc6b197538c7 Mon Sep 17 00:00:00 2001 From: Christoph Otter Date: Wed, 6 Mar 2024 10:39:30 +0100 Subject: [PATCH 04/20] Format --- x/wasm/ibc.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/x/wasm/ibc.go b/x/wasm/ibc.go index 9977b29f75..6676f398c7 100644 --- a/x/wasm/ibc.go +++ b/x/wasm/ibc.go @@ -417,7 +417,7 @@ func (i IBCHandler) IBCReceivePacketCallback( return nil } -func validateSender(contractAddr string, senderAddr string) (sdk.AccAddress, error) { +func validateSender(contractAddr, senderAddr string) (sdk.AccAddress, error) { contractAddress, err := sdk.AccAddressFromBech32(contractAddr) if err != nil { return nil, errorsmod.Wrapf(err, "contract address") From b3f591e63fefcca44855a87bb6a9786dea782b7a Mon Sep 17 00:00:00 2001 From: Christoph Otter Date: Fri, 8 Mar 2024 16:51:49 +0100 Subject: [PATCH 05/20] Use improved ibc callbacks wiring --- app/app.go | 12 ++++++++---- tests/e2e/ibc_callbacks_test.go | 6 ++---- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/app/app.go b/app/app.go index fa117f7f72..167b89dcd0 100644 --- a/app/app.go +++ b/app/app.go @@ -668,10 +668,13 @@ func NewWasmApp( // see https://medium.com/the-interchain-foundation/ibc-go-v6-changes-to-interchain-accounts-and-how-it-impacts-your-chain-806c185300d7 var noAuthzModule porttypes.IBCModule icaControllerStack = icacontroller.NewIBCMiddleware(noAuthzModule, app.ICAControllerKeeper) - icaControllerStack = ibcfee.NewIBCMiddleware(icaControllerStack, app.IBCFeeKeeper) + // app.ICAAuthModule = icaControllerStack.(ibcmock.IBCModule) + icaControllerStack = icacontroller.NewIBCMiddleware(icaControllerStack, app.ICAControllerKeeper) icaControllerStack = ibccallbacks.NewIBCMiddleware(icaControllerStack, app.IBCFeeKeeper, wasmStackIBCHandler, MaxIBCCallbackGas) + icaICS4Wrapper := icaControllerStack.(porttypes.ICS4Wrapper) + icaControllerStack = ibcfee.NewIBCMiddleware(icaControllerStack, app.IBCFeeKeeper) // Since the callbacks middleware itself is an ics4wrapper, it needs to be passed to the ica controller keeper - app.ICAControllerKeeper.WithICS4Wrapper(icaControllerStack.(porttypes.ICS4Wrapper)) + app.ICAControllerKeeper.WithICS4Wrapper(icaICS4Wrapper) // RecvPacket, message that originates from core IBC and goes down to app, the flow is: // channel.RecvPacket -> fee.OnRecvPacket -> icaHost.OnRecvPacket @@ -682,10 +685,11 @@ func NewWasmApp( // Create Transfer Stack var transferStack porttypes.IBCModule transferStack = transfer.NewIBCModule(app.TransferKeeper) - transferStack = ibcfee.NewIBCMiddleware(transferStack, app.IBCFeeKeeper) transferStack = ibccallbacks.NewIBCMiddleware(transferStack, app.IBCFeeKeeper, wasmStackIBCHandler, MaxIBCCallbackGas) + transferICS4Wrapper := transferStack.(porttypes.ICS4Wrapper) + transferStack = ibcfee.NewIBCMiddleware(transferStack, app.IBCFeeKeeper) // Since the callbacks middleware itself is an ics4wrapper, it needs to be passed to the ica controller keeper - app.TransferKeeper.WithICS4Wrapper(transferStack.(porttypes.ICS4Wrapper)) + app.TransferKeeper.WithICS4Wrapper(transferICS4Wrapper) // Create static IBC router, add app routes, then set and seal it ibcRouter := porttypes.NewRouter(). diff --git a/tests/e2e/ibc_callbacks_test.go b/tests/e2e/ibc_callbacks_test.go index 3383ead295..3aa000a6d3 100644 --- a/tests/e2e/ibc_callbacks_test.go +++ b/tests/e2e/ibc_callbacks_test.go @@ -97,10 +97,8 @@ func TestIBCCallbacks(t *testing.T) { assert.Len(t, response.IBCAckCallbacks, 1) assert.Empty(t, response.IBCTimeoutCallbacks) - var ack ibcfee.IncentivizedAcknowledgement - err = json.Unmarshal(response.IBCAckCallbacks[0].Acknowledgement.Data, &ack) - require.NoError(t, err) - assert.Equal(t, []byte(`{"result":"AQ=="}`), ack.AppAcknowledgement) // ics20 success ack + // and the ack result should be the ics20 success ack + assert.Equal(t, []byte(`{"result":"AQ=="}`), response.IBCAckCallbacks[0].Acknowledgement.Data) // now the same, but with a timeout: contractMsg.TimeoutSeconds = 1 From c4f30830887222b371d3a09de7f89a73e1088726 Mon Sep 17 00:00:00 2001 From: Christoph Otter Date: Mon, 8 Apr 2024 15:04:36 +0200 Subject: [PATCH 06/20] Add destination chain callback support --- tests/e2e/ibc_callbacks_test.go | 51 +++++++++++++++------- tests/e2e/testdata/ibc_callbacks.wasm | Bin 222490 -> 225005 bytes x/wasm/ibc.go | 36 +++++++++++----- x/wasm/keeper/relay.go | 34 +++++++++++++++ x/wasm/keeper/wasmtesting/mock_engine.go | 52 +++++++++++++---------- x/wasm/types/exported_keepers.go | 5 +++ x/wasm/types/wasmer_engine.go | 15 +++++++ 7 files changed, 146 insertions(+), 47 deletions(-) diff --git a/tests/e2e/ibc_callbacks_test.go b/tests/e2e/ibc_callbacks_test.go index 3aa000a6d3..174018c4d5 100644 --- a/tests/e2e/ibc_callbacks_test.go +++ b/tests/e2e/ibc_callbacks_test.go @@ -34,7 +34,6 @@ func TestIBCCallbacks(t *testing.T) { chainB := coord.GetChain(wasmibctesting.GetChainID(2)) actorChainA := sdk.AccAddress(chainA.SenderPrivKey.PubKey().Address()) - actorChainB := sdk.AccAddress(chainB.SenderPrivKey.PubKey().Address()) oneToken := sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, sdkmath.NewInt(1))) path := wasmibctesting.NewPath(chainA, chainB) @@ -52,9 +51,14 @@ func TestIBCCallbacks(t *testing.T) { coord.Setup(path) // with an ibc-callbacks contract deployed on chain A - codeID := chainA.StoreCodeFile("./testdata/ibc_callbacks.wasm").CodeID - contractAddr := chainA.InstantiateContract(codeID, []byte(`{}`)) - require.NotEmpty(t, contractAddr) + codeIDonA := chainA.StoreCodeFile("./testdata/ibc_callbacks.wasm").CodeID + contractAddrA := chainA.InstantiateContract(codeIDonA, []byte(`{}`)) + require.NotEmpty(t, contractAddrA) + + // and on chain B + codeIDonB := chainB.StoreCodeFile("./testdata/ibc_callbacks.wasm").CodeID + contractAddrB := chainB.InstantiateContract(codeIDonB, []byte(`{}`)) + require.NotEmpty(t, contractAddrB) // ExecuteMsg is the ibc-callbacks contract's execute msg type ExecuteMsg struct { @@ -63,17 +67,17 @@ func TestIBCCallbacks(t *testing.T) { TimeoutSeconds wasmvmtypes.Uint64 `json:"timeout_seconds"` } contractMsg := ExecuteMsg{ - ToAddress: actorChainB.String(), + ToAddress: contractAddrB.String(), ChannelID: path.EndpointA.ChannelID, TimeoutSeconds: 100, } contractMsgBz, err := json.Marshal(contractMsg) require.NoError(t, err) - // when the contract sends an IBCMsg::Transfer to chain B + // when the contract on chain A sends an IBCMsg::Transfer to the contract on chain B execMsg := types.MsgExecuteContract{ Sender: actorChainA.String(), - Contract: contractAddr.String(), + Contract: contractAddrA.String(), Msg: contractMsgBz, Funds: oneToken, } @@ -83,19 +87,29 @@ func TestIBCCallbacks(t *testing.T) { // and the packet is relayed require.NoError(t, coord.RelayAndAckPendingPackets(path)) - // then the contract should receive a callback with the ack result + // then the contract on chain B should receive a receive callback type QueryMsg struct { CallbackStats struct{} `json:"callback_stats"` } type QueryResp struct { - IBCAckCallbacks []wasmvmtypes.IBCPacketAckMsg `json:"ibc_ack_callbacks"` - IBCTimeoutCallbacks []wasmvmtypes.IBCPacketTimeoutMsg `json:"ibc_timeout_callbacks"` - // TODO: receive callback + IBCAckCallbacks []wasmvmtypes.IBCPacketAckMsg `json:"ibc_ack_callbacks"` + IBCTimeoutCallbacks []wasmvmtypes.IBCPacketTimeoutMsg `json:"ibc_timeout_callbacks"` + IBCDestinationCallbacks []wasmvmtypes.IBCDestinationChainCallbackMsg `json:"ibc_destination_callbacks"` } var response QueryResp - chainA.SmartQuery(contractAddr.String(), QueryMsg{CallbackStats: struct{}{}}, &response) + chainB.SmartQuery(contractAddrB.String(), QueryMsg{CallbackStats: struct{}{}}, &response) + assert.Empty(t, response.IBCAckCallbacks) + assert.Empty(t, response.IBCTimeoutCallbacks) + assert.Len(t, response.IBCDestinationCallbacks, 1) + + // and the receive callback should contain the ack + assert.Equal(t, []byte("{\"result\":\"AQ==\"}"), response.IBCDestinationCallbacks[0].Ack.Data) + + // and the contract on chain A should receive a callback with the ack + chainA.SmartQuery(contractAddrA.String(), QueryMsg{CallbackStats: struct{}{}}, &response) assert.Len(t, response.IBCAckCallbacks, 1) assert.Empty(t, response.IBCTimeoutCallbacks) + assert.Empty(t, response.IBCDestinationCallbacks) // and the ack result should be the ics20 success ack assert.Equal(t, []byte(`{"result":"AQ=="}`), response.IBCAckCallbacks[0].Acknowledgement.Data) @@ -113,8 +127,15 @@ func TestIBCCallbacks(t *testing.T) { // and the packet times out require.NoError(t, coord.TimeoutPendingPackets(path)) - // then the contract should receive a callback with the timeout result - chainA.SmartQuery(contractAddr.String(), QueryMsg{CallbackStats: struct{}{}}, &response) - assert.Len(t, response.IBCAckCallbacks, 1) + // then the contract on chain B should not receive anything + chainB.SmartQuery(contractAddrB.String(), QueryMsg{CallbackStats: struct{}{}}, &response) + assert.Empty(t, response.IBCAckCallbacks) + assert.Empty(t, response.IBCTimeoutCallbacks) + assert.Len(t, response.IBCDestinationCallbacks, 1) // same as before + + // then the contract on chain A should receive a callback with the timeout result + chainA.SmartQuery(contractAddrA.String(), QueryMsg{CallbackStats: struct{}{}}, &response) + assert.Len(t, response.IBCAckCallbacks, 1) // same as before assert.Len(t, response.IBCTimeoutCallbacks, 1) + assert.Empty(t, response.IBCDestinationCallbacks) } diff --git a/tests/e2e/testdata/ibc_callbacks.wasm b/tests/e2e/testdata/ibc_callbacks.wasm index 1654a2047651dce68b7d8826d15b303c4aceb840..2f042bdd8e5e2f47ce81067775e8ac7221a99d16 100644 GIT binary patch literal 225005 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μ^3mD{fMl(7F6; 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 G`Tjp?41#L_ literal 222490 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

damRwH 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 N&3Ga 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 G|NjFVwNqgL diff --git a/x/wasm/ibc.go b/x/wasm/ibc.go index 6676f398c7..3360531139 100644 --- a/x/wasm/ibc.go +++ b/x/wasm/ibc.go @@ -413,7 +413,22 @@ func (i IBCHandler) IBCReceivePacketCallback( ack ibcexported.Acknowledgement, contractAddress string, ) error { - // no-op for now, but will be supported in the future + // sender validation makes no sense here, as the receiver is never the sender + contractAddr, err := sdk.AccAddressFromBech32(contractAddress) + if err != nil { + return err + } + + msg := wasmvmtypes.IBCDestinationChainCallbackMsg{ + Ack: wasmvmtypes.IBCAcknowledgement{Data: ack.Acknowledgement()}, + Packet: newIBCPacket(packet), + } + + err = i.keeper.IBCDestinationChainCallback(cachedCtx, contractAddr, msg) + if err != nil { + return errorsmod.Wrap(err, "on destination chain callback") + } + return nil } @@ -435,22 +450,23 @@ func validateSender(contractAddr, senderAddr string) (sdk.AccAddress, error) { return contractAddress, nil } -func newIBCPacket(packet channeltypes.Packet) wasmvmtypes.IBCPacket { +func newIBCPacket(packet ibcexported.PacketI) wasmvmtypes.IBCPacket { timeout := wasmvmtypes.IBCTimeout{ - Timestamp: packet.TimeoutTimestamp, + Timestamp: packet.GetTimeoutTimestamp(), } - if !packet.TimeoutHeight.IsZero() { + timeoutHeight := packet.GetTimeoutHeight() + if !timeoutHeight.IsZero() { timeout.Block = &wasmvmtypes.IBCTimeoutBlock{ - Height: packet.TimeoutHeight.RevisionHeight, - Revision: packet.TimeoutHeight.RevisionNumber, + Height: timeoutHeight.GetRevisionHeight(), + Revision: timeoutHeight.GetRevisionNumber(), } } return wasmvmtypes.IBCPacket{ - Data: packet.Data, - Src: wasmvmtypes.IBCEndpoint{ChannelID: packet.SourceChannel, PortID: packet.SourcePort}, - Dest: wasmvmtypes.IBCEndpoint{ChannelID: packet.DestinationChannel, PortID: packet.DestinationPort}, - Sequence: packet.Sequence, + Data: packet.GetData(), + Src: wasmvmtypes.IBCEndpoint{ChannelID: packet.GetSourceChannel(), PortID: packet.GetSourcePort()}, + Dest: wasmvmtypes.IBCEndpoint{ChannelID: packet.GetDestChannel(), PortID: packet.GetDestPort()}, + Sequence: packet.GetSequence(), Timeout: timeout, } } diff --git a/x/wasm/keeper/relay.go b/x/wasm/keeper/relay.go index 4bb26fa107..96842b6b0b 100644 --- a/x/wasm/keeper/relay.go +++ b/x/wasm/keeper/relay.go @@ -304,6 +304,40 @@ func (k Keeper) IBCSourceChainCallback( return k.handleIBCBasicContractResponse(ctx, contractAddr, contractInfo.IBCPortID, res.Ok) } +// IBCDestinationChainCallback calls the contract to let it know that it received a packet of an +// IBC-callbacks-enabled message that was acknowledged. +func (k Keeper) IBCDestinationChainCallback( + ctx sdk.Context, + contractAddr sdk.AccAddress, + msg wasmvmtypes.IBCDestinationChainCallbackMsg, +) error { + defer telemetry.MeasureSince(time.Now(), "wasm", "contract", "ibc-destination-chain-callback") + + contractInfo, codeInfo, prefixStore, err := k.contractInstance(ctx, contractAddr) + if err != nil { + return err + } + + env := types.NewEnv(ctx, contractAddr) + querier := k.newQueryHandler(ctx, contractAddr) + + gasLeft := k.runtimeGasForContract(ctx) + res, gasUsed, execErr := k.wasmVM.IBCDestinationChainCallback(codeInfo.CodeHash, env, msg, prefixStore, cosmwasmAPI, querier, ctx.GasMeter(), gasLeft, costJSONDeserialization) + k.consumeRuntimeGas(ctx, gasUsed) + if execErr != nil { + return errorsmod.Wrap(types.ErrExecuteFailed, execErr.Error()) + } + if res == nil { + // If this gets executed, that's a bug in wasmvm + return errorsmod.Wrap(types.ErrVMError, "internal wasmvm error") + } + if res.Err != "" { + return types.MarkErrorDeterministic(errorsmod.Wrap(types.ErrExecuteFailed, res.Err)) + } + + return k.handleIBCBasicContractResponse(ctx, contractAddr, contractInfo.IBCPortID, res.Ok) +} + func (k Keeper) handleIBCBasicContractResponse(ctx sdk.Context, addr sdk.AccAddress, id string, res *wasmvmtypes.IBCBasicResponse) error { _, err := k.handleContractResponse(ctx, addr, id, res.Messages, res.Attributes, nil, res.Events) return err diff --git a/x/wasm/keeper/wasmtesting/mock_engine.go b/x/wasm/keeper/wasmtesting/mock_engine.go index ef6596c6ec..adf7afcd1a 100644 --- a/x/wasm/keeper/wasmtesting/mock_engine.go +++ b/x/wasm/keeper/wasmtesting/mock_engine.go @@ -22,28 +22,29 @@ var _ types.WasmEngine = &MockWasmEngine{} // MockWasmEngine implements types.WasmEngine for testing purpose. One or multiple messages can be stubbed. // Without a stub function a panic is thrown. type MockWasmEngine struct { - StoreCodeFn func(codeID wasmvm.WasmCode, gasLimit uint64) (wasmvm.Checksum, uint64, error) - StoreCodeUncheckedFn func(codeID wasmvm.WasmCode) (wasmvm.Checksum, error) - AnalyzeCodeFn func(codeID wasmvm.Checksum) (*wasmvmtypes.AnalysisReport, error) - InstantiateFn func(codeID wasmvm.Checksum, env wasmvmtypes.Env, info wasmvmtypes.MessageInfo, initMsg []byte, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.ContractResult, uint64, error) - ExecuteFn func(codeID wasmvm.Checksum, env wasmvmtypes.Env, info wasmvmtypes.MessageInfo, executeMsg []byte, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.ContractResult, uint64, error) - QueryFn func(codeID wasmvm.Checksum, env wasmvmtypes.Env, queryMsg []byte, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.QueryResult, uint64, error) - MigrateFn func(codeID wasmvm.Checksum, env wasmvmtypes.Env, migrateMsg []byte, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.ContractResult, uint64, error) - SudoFn func(codeID wasmvm.Checksum, env wasmvmtypes.Env, sudoMsg []byte, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.ContractResult, uint64, error) - ReplyFn func(codeID wasmvm.Checksum, env wasmvmtypes.Env, reply wasmvmtypes.Reply, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.ContractResult, uint64, error) - GetCodeFn func(codeID wasmvm.Checksum) (wasmvm.WasmCode, error) - CleanupFn func() - IBCChannelOpenFn func(codeID wasmvm.Checksum, env wasmvmtypes.Env, msg wasmvmtypes.IBCChannelOpenMsg, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.IBCChannelOpenResult, uint64, error) - IBCChannelConnectFn func(codeID wasmvm.Checksum, env wasmvmtypes.Env, msg wasmvmtypes.IBCChannelConnectMsg, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.IBCBasicResult, uint64, error) - IBCChannelCloseFn func(codeID wasmvm.Checksum, env wasmvmtypes.Env, msg wasmvmtypes.IBCChannelCloseMsg, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.IBCBasicResult, uint64, error) - IBCPacketReceiveFn func(codeID wasmvm.Checksum, env wasmvmtypes.Env, msg wasmvmtypes.IBCPacketReceiveMsg, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.IBCReceiveResult, uint64, error) - IBCPacketAckFn func(codeID wasmvm.Checksum, env wasmvmtypes.Env, msg wasmvmtypes.IBCPacketAckMsg, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.IBCBasicResult, uint64, error) - IBCPacketTimeoutFn func(codeID wasmvm.Checksum, env wasmvmtypes.Env, msg wasmvmtypes.IBCPacketTimeoutMsg, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.IBCBasicResult, uint64, error) - IBCSourceChainCallbackFn func(codeID wasmvm.Checksum, env wasmvmtypes.Env, msg wasmvmtypes.IBCSourceChainCallbackMsg, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.IBCBasicResult, uint64, error) - PinFn func(checksum wasmvm.Checksum) error - UnpinFn func(checksum wasmvm.Checksum) error - GetMetricsFn func() (*wasmvmtypes.Metrics, error) - GetPinMetricsFn func() (*wasmvmtypes.PinnedMetrics, error) + StoreCodeFn func(codeID wasmvm.WasmCode, gasLimit uint64) (wasmvm.Checksum, uint64, error) + StoreCodeUncheckedFn func(codeID wasmvm.WasmCode) (wasmvm.Checksum, error) + AnalyzeCodeFn func(codeID wasmvm.Checksum) (*wasmvmtypes.AnalysisReport, error) + InstantiateFn func(codeID wasmvm.Checksum, env wasmvmtypes.Env, info wasmvmtypes.MessageInfo, initMsg []byte, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.ContractResult, uint64, error) + ExecuteFn func(codeID wasmvm.Checksum, env wasmvmtypes.Env, info wasmvmtypes.MessageInfo, executeMsg []byte, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.ContractResult, uint64, error) + QueryFn func(codeID wasmvm.Checksum, env wasmvmtypes.Env, queryMsg []byte, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.QueryResult, uint64, error) + MigrateFn func(codeID wasmvm.Checksum, env wasmvmtypes.Env, migrateMsg []byte, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.ContractResult, uint64, error) + SudoFn func(codeID wasmvm.Checksum, env wasmvmtypes.Env, sudoMsg []byte, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.ContractResult, uint64, error) + ReplyFn func(codeID wasmvm.Checksum, env wasmvmtypes.Env, reply wasmvmtypes.Reply, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.ContractResult, uint64, error) + GetCodeFn func(codeID wasmvm.Checksum) (wasmvm.WasmCode, error) + CleanupFn func() + IBCChannelOpenFn func(codeID wasmvm.Checksum, env wasmvmtypes.Env, msg wasmvmtypes.IBCChannelOpenMsg, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.IBCChannelOpenResult, uint64, error) + IBCChannelConnectFn func(codeID wasmvm.Checksum, env wasmvmtypes.Env, msg wasmvmtypes.IBCChannelConnectMsg, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.IBCBasicResult, uint64, error) + IBCChannelCloseFn func(codeID wasmvm.Checksum, env wasmvmtypes.Env, msg wasmvmtypes.IBCChannelCloseMsg, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.IBCBasicResult, uint64, error) + IBCPacketReceiveFn func(codeID wasmvm.Checksum, env wasmvmtypes.Env, msg wasmvmtypes.IBCPacketReceiveMsg, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.IBCReceiveResult, uint64, error) + IBCPacketAckFn func(codeID wasmvm.Checksum, env wasmvmtypes.Env, msg wasmvmtypes.IBCPacketAckMsg, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.IBCBasicResult, uint64, error) + IBCPacketTimeoutFn func(codeID wasmvm.Checksum, env wasmvmtypes.Env, msg wasmvmtypes.IBCPacketTimeoutMsg, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.IBCBasicResult, uint64, error) + IBCSourceChainCallbackFn func(codeID wasmvm.Checksum, env wasmvmtypes.Env, msg wasmvmtypes.IBCSourceChainCallbackMsg, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.IBCBasicResult, uint64, error) + IBCDestinationChainCallbackFn func(codeID wasmvm.Checksum, env wasmvmtypes.Env, msg wasmvmtypes.IBCDestinationChainCallbackMsg, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.IBCBasicResult, uint64, error) + PinFn func(checksum wasmvm.Checksum) error + UnpinFn func(checksum wasmvm.Checksum) error + GetMetricsFn func() (*wasmvmtypes.Metrics, error) + GetPinMetricsFn func() (*wasmvmtypes.PinnedMetrics, error) } func (m *MockWasmEngine) IBCChannelOpen(codeID wasmvm.Checksum, env wasmvmtypes.Env, msg wasmvmtypes.IBCChannelOpenMsg, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.IBCChannelOpenResult, uint64, error) { @@ -95,6 +96,13 @@ func (m MockWasmEngine) IBCSourceChainCallback(codeID wasmvm.Checksum, env wasmv return m.IBCSourceChainCallbackFn(codeID, env, msg, store, goapi, querier, gasMeter, gasLimit, deserCost) } +func (m MockWasmEngine) IBCDestinationChainCallback(codeID wasmvm.Checksum, env wasmvmtypes.Env, msg wasmvmtypes.IBCDestinationChainCallbackMsg, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.IBCBasicResult, uint64, error) { + if m.IBCDestinationChainCallbackFn == nil { + panic("not expected to be called") + } + return m.IBCDestinationChainCallbackFn(codeID, env, msg, store, goapi, querier, gasMeter, gasLimit, deserCost) +} + func (m *MockWasmEngine) StoreCode(codeID wasmvm.WasmCode, gasLimit uint64) (wasmvm.Checksum, uint64, error) { if m.StoreCodeFn == nil { panic("not supposed to be called!") diff --git a/x/wasm/types/exported_keepers.go b/x/wasm/types/exported_keepers.go index 4d8586ab88..f45e30dee9 100644 --- a/x/wasm/types/exported_keepers.go +++ b/x/wasm/types/exported_keepers.go @@ -121,6 +121,11 @@ type IBCContractKeeper interface { contractAddr sdk.AccAddress, msg wasmvmtypes.IBCSourceChainCallbackMsg, ) error + IBCDestinationChainCallback( + ctx sdk.Context, + contractAddr sdk.AccAddress, + msg wasmvmtypes.IBCDestinationChainCallbackMsg, + ) error // ClaimCapability allows the transfer module to claim a capability // that IBC module passes to it ClaimCapability(ctx sdk.Context, cap *capabilitytypes.Capability, name string) error diff --git a/x/wasm/types/wasmer_engine.go b/x/wasm/types/wasmer_engine.go index 7769575420..9fe79c2ef6 100644 --- a/x/wasm/types/wasmer_engine.go +++ b/x/wasm/types/wasmer_engine.go @@ -248,6 +248,21 @@ type WasmEngine interface { deserCost wasmvmtypes.UFraction, ) (*wasmvmtypes.IBCBasicResult, uint64, error) + // IBCSourceChainCallback is available on IBC-callbacks-enabled contracts and is called when an + // IBC-callbacks-enabled IBC message previously sent by this contract is either acknowledged or + // times out. + IBCDestinationChainCallback( + checksum wasmvm.Checksum, + env wasmvmtypes.Env, + msg wasmvmtypes.IBCDestinationChainCallbackMsg, + store wasmvm.KVStore, + goapi wasmvm.GoAPI, + querier wasmvm.Querier, + gasMeter wasmvm.GasMeter, + gasLimit uint64, + deserCost wasmvmtypes.UFraction, + ) (*wasmvmtypes.IBCBasicResult, uint64, error) + // Pin pins a code to an in-memory cache, such that is // always loaded quickly when executed. // Pin is idempotent. From a49d46ca1ef81e1c2692751c1b6712735471d40e Mon Sep 17 00:00:00 2001 From: Christoph Otter Date: Wed, 10 Apr 2024 16:34:16 +0200 Subject: [PATCH 07/20] Add test --- tests/e2e/ibc_callbacks_test.go | 67 +++++++++++++++++++++++++++++++-- 1 file changed, 63 insertions(+), 4 deletions(-) diff --git a/tests/e2e/ibc_callbacks_test.go b/tests/e2e/ibc_callbacks_test.go index 174018c4d5..6f67d9856a 100644 --- a/tests/e2e/ibc_callbacks_test.go +++ b/tests/e2e/ibc_callbacks_test.go @@ -1,8 +1,10 @@ -package e2e +package e2e_test import ( "encoding/json" + "fmt" "testing" + "time" wasmvmtypes "github.com/CosmWasm/wasmvm/v2/types" ibcfee "github.com/cosmos/ibc-go/v8/modules/apps/29-fee/types" @@ -17,6 +19,7 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" "github.com/CosmWasm/wasmd/app" + "github.com/CosmWasm/wasmd/tests/e2e" wasmibctesting "github.com/CosmWasm/wasmd/x/wasm/ibctesting" "github.com/CosmWasm/wasmd/x/wasm/types" ) @@ -25,9 +28,10 @@ func TestIBCCallbacks(t *testing.T) { // scenario: // given two chains // with an ics-20 channel established - // and an ibc-callbacks contract deployed on chain A - // when the ibc-callbacks contract sends an IBCMsg::Transfer to chain B - // then the contract should receive a callback with the result + // and an ibc-callbacks contract deployed on chain A and B each + // when the contract on A sends an IBCMsg::Transfer to the contract on B + // then the contract on B should receive a destination chain callback + // and the contract on A should receive a source chain callback with the result (ack or timeout) marshaler := app.MakeEncodingConfig(t).Codec coord := wasmibctesting.NewCoordinator(t, 2) chainA := coord.GetChain(wasmibctesting.GetChainID(1)) @@ -139,3 +143,58 @@ func TestIBCCallbacks(t *testing.T) { assert.Len(t, response.IBCTimeoutCallbacks, 1) assert.Empty(t, response.IBCDestinationCallbacks) } + +func TestIBCCallbacksWithoutEntrypoints(t *testing.T) { + // scenario: + // given two chains + // with an ics-20 channel established + // and a reflect contract deployed on chain A and B each + // when the contract on A sends an IBCMsg::Transfer to the contract on B + // then the VM should try to call the callback on B and fail gracefully + // and should try to call the callback on A and fail gracefully + marshaler := app.MakeEncodingConfig(t).Codec + coord := wasmibctesting.NewCoordinator(t, 2) + chainA := coord.GetChain(wasmibctesting.GetChainID(1)) + chainB := coord.GetChain(wasmibctesting.GetChainID(2)) + + oneToken := sdk.NewCoin(sdk.DefaultBondDenom, sdkmath.NewInt(1)) + + path := wasmibctesting.NewPath(chainA, chainB) + path.EndpointA.ChannelConfig = &ibctesting.ChannelConfig{ + PortID: ibctransfertypes.PortID, + Version: string(marshaler.MustMarshalJSON(&ibcfee.Metadata{FeeVersion: ibcfee.Version, AppVersion: ibctransfertypes.Version})), + Order: channeltypes.UNORDERED, + } + path.EndpointB.ChannelConfig = &ibctesting.ChannelConfig{ + PortID: ibctransfertypes.PortID, + Version: string(marshaler.MustMarshalJSON(&ibcfee.Metadata{FeeVersion: ibcfee.Version, AppVersion: ibctransfertypes.Version})), + Order: channeltypes.UNORDERED, + } + // with an ics-20 transfer channel setup between both chains + coord.Setup(path) + + // with a reflect contract deployed on chain A and B + contractAddrA := e2e.InstantiateReflectContract(t, chainA) + chainA.Fund(contractAddrA, oneToken.Amount) + contractAddrB := e2e.InstantiateReflectContract(t, chainA) + + // when the contract on A sends an IBCMsg::Transfer to the contract on B + memo := fmt.Sprintf(`{"src_callback":{"address":"%v"},"dest_callback":{"address":"%v"}}`, contractAddrA.String(), contractAddrB.String()) + e2e.MustExecViaReflectContract(t, chainA, contractAddrA, wasmvmtypes.CosmosMsg{ + IBC: &wasmvmtypes.IBCMsg{ + Transfer: &wasmvmtypes.TransferMsg{ + ToAddress: contractAddrB.String(), + ChannelID: path.EndpointA.ChannelID, + Amount: wasmvmtypes.NewCoin(oneToken.Amount.Uint64(), oneToken.Denom), + Timeout: wasmvmtypes.IBCTimeout{ + Timestamp: uint64(chainA.LastHeader.GetTime().Add(time.Second * 100).UnixNano()), + }, + Memo: memo, + }, + }, + }) + + // and the packet is relayed without problems + require.NoError(t, coord.RelayAndAckPendingPackets(path)) + assert.Empty(t, chainA.PendingSendPackets) +} From 1fc5ab63ddc3f9efd78678ac3a730970091fa018 Mon Sep 17 00:00:00 2001 From: Christoph Otter Date: Tue, 16 Apr 2024 16:33:27 +0200 Subject: [PATCH 08/20] Update ibc_callbacks contract --- tests/e2e/ibc_callbacks_test.go | 6 +++--- tests/e2e/testdata/ibc_callbacks.wasm | Bin 225005 -> 233235 bytes x/wasm/ibc.go | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/e2e/ibc_callbacks_test.go b/tests/e2e/ibc_callbacks_test.go index 6f67d9856a..b3f1b7751e 100644 --- a/tests/e2e/ibc_callbacks_test.go +++ b/tests/e2e/ibc_callbacks_test.go @@ -66,9 +66,9 @@ func TestIBCCallbacks(t *testing.T) { // ExecuteMsg is the ibc-callbacks contract's execute msg type ExecuteMsg struct { - ToAddress string `json:"to_address"` - ChannelID string `json:"channel_id"` - TimeoutSeconds wasmvmtypes.Uint64 `json:"timeout_seconds"` + ToAddress string `json:"to_address"` + ChannelID string `json:"channel_id"` + TimeoutSeconds uint32 `json:"timeout_seconds"` } contractMsg := ExecuteMsg{ ToAddress: contractAddrB.String(), diff --git a/tests/e2e/testdata/ibc_callbacks.wasm b/tests/e2e/testdata/ibc_callbacks.wasm index 2f042bdd8e5e2f47ce81067775e8ac7221a99d16..48cb125bc41ece4525cf9d3e447807b913137d9a 100644 GIT binary patch literal 233235 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

EJwv?CISyuA;3tFk1y6~)vc&cQx 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 literal 225005 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μ^3mD{fMl(7F6; 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 G`Tjp?41#L_ diff --git a/x/wasm/ibc.go b/x/wasm/ibc.go index 3360531139..a79de9e5a6 100644 --- a/x/wasm/ibc.go +++ b/x/wasm/ibc.go @@ -420,7 +420,7 @@ func (i IBCHandler) IBCReceivePacketCallback( } msg := wasmvmtypes.IBCDestinationChainCallbackMsg{ - Ack: wasmvmtypes.IBCAcknowledgement{Data: ack.Acknowledgement()}, + Ack: wasmvmtypes.IBCFullAcknowledgement{Data: ack.Acknowledgement(), Success: ack.Success()}, Packet: newIBCPacket(packet), } From 627141a52c400ed8fd67e23f6af1333a38494feb Mon Sep 17 00:00:00 2001 From: Christoph Otter Date: Tue, 23 Apr 2024 13:50:50 +0200 Subject: [PATCH 09/20] Update wasmvm --- x/wasm/ibc.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/x/wasm/ibc.go b/x/wasm/ibc.go index a79de9e5a6..723596768a 100644 --- a/x/wasm/ibc.go +++ b/x/wasm/ibc.go @@ -364,7 +364,7 @@ func (i IBCHandler) IBCOnAcknowledgementPacketCallback( } msg := wasmvmtypes.IBCSourceChainCallbackMsg{ - Acknowledgement: &wasmvmtypes.IBCPacketAckMsg{ + Acknowledgement: &wasmvmtypes.IBCAckCallbackMsg{ Acknowledgement: wasmvmtypes.IBCAcknowledgement{Data: acknowledgement}, OriginalPacket: newIBCPacket(packet), Relayer: relayer.String(), @@ -393,7 +393,7 @@ func (i IBCHandler) IBCOnTimeoutPacketCallback( } msg := wasmvmtypes.IBCSourceChainCallbackMsg{ - Timeout: &wasmvmtypes.IBCPacketTimeoutMsg{ + Timeout: &wasmvmtypes.IBCTimeoutCallbackMsg{ Packet: newIBCPacket(packet), Relayer: relayer.String(), }, From fafb28084c9823742f57917665054c6085651b09 Mon Sep 17 00:00:00 2001 From: Christoph Otter Date: Tue, 30 Apr 2024 17:09:20 +0200 Subject: [PATCH 10/20] Simplify validateSender --- x/wasm/ibc.go | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/x/wasm/ibc.go b/x/wasm/ibc.go index 723596768a..c4dea3dc79 100644 --- a/x/wasm/ibc.go +++ b/x/wasm/ibc.go @@ -2,6 +2,7 @@ package wasm import ( "math" + "strings" wasmvmtypes "github.com/CosmWasm/wasmvm/v2/types" capabilitytypes "github.com/cosmos/ibc-go/modules/capability/types" @@ -433,19 +434,15 @@ func (i IBCHandler) IBCReceivePacketCallback( } func validateSender(contractAddr, senderAddr string) (sdk.AccAddress, error) { + // We only allow the contract that sent the message to receive source chain callbacks for it. + if !strings.EqualFold(contractAddr, senderAddr) { + return nil, errorsmod.Wrapf(types.ErrExecuteFailed, "contract address %s does not match packet sender %s", contractAddr, senderAddr) + } + contractAddress, err := sdk.AccAddressFromBech32(contractAddr) if err != nil { return nil, errorsmod.Wrapf(err, "contract address") } - senderAddress, err := sdk.AccAddressFromBech32(senderAddr) - if err != nil { - return nil, errorsmod.Wrapf(err, "packet sender address") - } - - // We only allow the contract that sent the message to receive source chain callbacks for it. - if !contractAddress.Equals(senderAddress) { - return nil, errorsmod.Wrapf(types.ErrExecuteFailed, "contract address %s does not match packet sender %s", contractAddr, senderAddress) - } return contractAddress, nil } From 58248621eda45dddd814949d3f1194d0e7728f01 Mon Sep 17 00:00:00 2001 From: Christoph Otter Date: Tue, 30 Apr 2024 17:24:04 +0200 Subject: [PATCH 11/20] Use table test --- tests/e2e/ibc_callbacks_test.go | 144 ++++++++++++++++++-------------- 1 file changed, 80 insertions(+), 64 deletions(-) diff --git a/tests/e2e/ibc_callbacks_test.go b/tests/e2e/ibc_callbacks_test.go index b3f1b7751e..5028c69e80 100644 --- a/tests/e2e/ibc_callbacks_test.go +++ b/tests/e2e/ibc_callbacks_test.go @@ -70,28 +70,6 @@ func TestIBCCallbacks(t *testing.T) { ChannelID string `json:"channel_id"` TimeoutSeconds uint32 `json:"timeout_seconds"` } - contractMsg := ExecuteMsg{ - ToAddress: contractAddrB.String(), - ChannelID: path.EndpointA.ChannelID, - TimeoutSeconds: 100, - } - contractMsgBz, err := json.Marshal(contractMsg) - require.NoError(t, err) - - // when the contract on chain A sends an IBCMsg::Transfer to the contract on chain B - execMsg := types.MsgExecuteContract{ - Sender: actorChainA.String(), - Contract: contractAddrA.String(), - Msg: contractMsgBz, - Funds: oneToken, - } - _, err = chainA.SendMsgs(&execMsg) - require.NoError(t, err) - - // and the packet is relayed - require.NoError(t, coord.RelayAndAckPendingPackets(path)) - - // then the contract on chain B should receive a receive callback type QueryMsg struct { CallbackStats struct{} `json:"callback_stats"` } @@ -100,48 +78,86 @@ func TestIBCCallbacks(t *testing.T) { IBCTimeoutCallbacks []wasmvmtypes.IBCPacketTimeoutMsg `json:"ibc_timeout_callbacks"` IBCDestinationCallbacks []wasmvmtypes.IBCDestinationChainCallbackMsg `json:"ibc_destination_callbacks"` } - var response QueryResp - chainB.SmartQuery(contractAddrB.String(), QueryMsg{CallbackStats: struct{}{}}, &response) - assert.Empty(t, response.IBCAckCallbacks) - assert.Empty(t, response.IBCTimeoutCallbacks) - assert.Len(t, response.IBCDestinationCallbacks, 1) - - // and the receive callback should contain the ack - assert.Equal(t, []byte("{\"result\":\"AQ==\"}"), response.IBCDestinationCallbacks[0].Ack.Data) - - // and the contract on chain A should receive a callback with the ack - chainA.SmartQuery(contractAddrA.String(), QueryMsg{CallbackStats: struct{}{}}, &response) - assert.Len(t, response.IBCAckCallbacks, 1) - assert.Empty(t, response.IBCTimeoutCallbacks) - assert.Empty(t, response.IBCDestinationCallbacks) - - // and the ack result should be the ics20 success ack - assert.Equal(t, []byte(`{"result":"AQ=="}`), response.IBCAckCallbacks[0].Acknowledgement.Data) - - // now the same, but with a timeout: - contractMsg.TimeoutSeconds = 1 - contractMsgBz, err = json.Marshal(contractMsg) - require.NoError(t, err) - - // when the contract sends an IBCMsg::Transfer to chain B - execMsg.Msg = contractMsgBz - _, err = chainA.SendMsgs(&execMsg) - require.NoError(t, err) - - // and the packet times out - require.NoError(t, coord.TimeoutPendingPackets(path)) - - // then the contract on chain B should not receive anything - chainB.SmartQuery(contractAddrB.String(), QueryMsg{CallbackStats: struct{}{}}, &response) - assert.Empty(t, response.IBCAckCallbacks) - assert.Empty(t, response.IBCTimeoutCallbacks) - assert.Len(t, response.IBCDestinationCallbacks, 1) // same as before - - // then the contract on chain A should receive a callback with the timeout result - chainA.SmartQuery(contractAddrA.String(), QueryMsg{CallbackStats: struct{}{}}, &response) - assert.Len(t, response.IBCAckCallbacks, 1) // same as before - assert.Len(t, response.IBCTimeoutCallbacks, 1) - assert.Empty(t, response.IBCDestinationCallbacks) + + specs := map[string]struct { + contractMsg ExecuteMsg + // expAck is true if the packet is relayed, false if it times out + expAck bool + }{ + "success": { + contractMsg: ExecuteMsg{ + ToAddress: contractAddrB.String(), + ChannelID: path.EndpointA.ChannelID, + TimeoutSeconds: 100, + }, + expAck: true, + }, + "timeout": { + contractMsg: ExecuteMsg{ + ToAddress: contractAddrB.String(), + ChannelID: path.EndpointA.ChannelID, + TimeoutSeconds: 1, + }, + expAck: false, + }, + } + + for name, spec := range specs { + t.Run(name, func(t *testing.T) { + contractMsgBz, err := json.Marshal(spec.contractMsg) + require.NoError(t, err) + + // when the contract on chain A sends an IBCMsg::Transfer to the contract on chain B + execMsg := types.MsgExecuteContract{ + Sender: actorChainA.String(), + Contract: contractAddrA.String(), + Msg: contractMsgBz, + Funds: oneToken, + } + _, err = chainA.SendMsgs(&execMsg) + require.NoError(t, err) + + if spec.expAck { + // and the packet is relayed + require.NoError(t, coord.RelayAndAckPendingPackets(path)) + + // then the contract on chain B should receive a receive callback + var response QueryResp + chainB.SmartQuery(contractAddrB.String(), QueryMsg{CallbackStats: struct{}{}}, &response) + assert.Empty(t, response.IBCAckCallbacks) + assert.Empty(t, response.IBCTimeoutCallbacks) + assert.Len(t, response.IBCDestinationCallbacks, 1) + + // and the receive callback should contain the ack + assert.Equal(t, []byte("{\"result\":\"AQ==\"}"), response.IBCDestinationCallbacks[0].Ack.Data) + + // and the contract on chain A should receive a callback with the ack + chainA.SmartQuery(contractAddrA.String(), QueryMsg{CallbackStats: struct{}{}}, &response) + assert.Len(t, response.IBCAckCallbacks, 1) + assert.Empty(t, response.IBCTimeoutCallbacks) + assert.Empty(t, response.IBCDestinationCallbacks) + + // and the ack result should be the ics20 success ack + assert.Equal(t, []byte(`{"result":"AQ=="}`), response.IBCAckCallbacks[0].Acknowledgement.Data) + } else { + // and the packet times out + require.NoError(t, coord.TimeoutPendingPackets(path)) + + // then the contract on chain B should not receive anything + var response QueryResp + chainB.SmartQuery(contractAddrB.String(), QueryMsg{CallbackStats: struct{}{}}, &response) + assert.Empty(t, response.IBCAckCallbacks) + assert.Empty(t, response.IBCTimeoutCallbacks) + assert.Len(t, response.IBCDestinationCallbacks, 1) // same as before + + // and the contract on chain A should receive a callback with the timeout result + chainA.SmartQuery(contractAddrA.String(), QueryMsg{CallbackStats: struct{}{}}, &response) + assert.Len(t, response.IBCAckCallbacks, 1) // same as before + assert.Len(t, response.IBCTimeoutCallbacks, 1) + assert.Empty(t, response.IBCDestinationCallbacks) + } + }) + } } func TestIBCCallbacksWithoutEntrypoints(t *testing.T) { From bd785da4bf4e655ae3bc72a03559d424ef18bdb1 Mon Sep 17 00:00:00 2001 From: Christoph Otter Date: Fri, 10 May 2024 16:43:00 +0200 Subject: [PATCH 12/20] Update IBC Callbacks naming --- x/wasm/ibc.go | 14 +++--- x/wasm/keeper/relay.go | 16 +++---- x/wasm/keeper/wasmtesting/mock_engine.go | 58 ++++++++++++------------ x/wasm/types/exported_keepers.go | 8 ++-- x/wasm/types/wasmer_engine.go | 12 ++--- 5 files changed, 54 insertions(+), 54 deletions(-) diff --git a/x/wasm/ibc.go b/x/wasm/ibc.go index c4dea3dc79..4af8099649 100644 --- a/x/wasm/ibc.go +++ b/x/wasm/ibc.go @@ -364,14 +364,14 @@ func (i IBCHandler) IBCOnAcknowledgementPacketCallback( return err } - msg := wasmvmtypes.IBCSourceChainCallbackMsg{ + msg := wasmvmtypes.IBCSourceCallbackMsg{ Acknowledgement: &wasmvmtypes.IBCAckCallbackMsg{ Acknowledgement: wasmvmtypes.IBCAcknowledgement{Data: acknowledgement}, OriginalPacket: newIBCPacket(packet), Relayer: relayer.String(), }, } - err = i.keeper.IBCSourceChainCallback(cachedCtx, contractAddr, msg) + err = i.keeper.IBCSourceCallback(cachedCtx, contractAddr, msg) if err != nil { return errorsmod.Wrap(err, "on source chain callback ack") } @@ -393,13 +393,13 @@ func (i IBCHandler) IBCOnTimeoutPacketCallback( return err } - msg := wasmvmtypes.IBCSourceChainCallbackMsg{ + msg := wasmvmtypes.IBCSourceCallbackMsg{ Timeout: &wasmvmtypes.IBCTimeoutCallbackMsg{ Packet: newIBCPacket(packet), Relayer: relayer.String(), }, } - err = i.keeper.IBCSourceChainCallback(cachedCtx, contractAddr, msg) + err = i.keeper.IBCSourceCallback(cachedCtx, contractAddr, msg) if err != nil { return errorsmod.Wrap(err, "on source chain callback timeout") } @@ -420,12 +420,12 @@ func (i IBCHandler) IBCReceivePacketCallback( return err } - msg := wasmvmtypes.IBCDestinationChainCallbackMsg{ - Ack: wasmvmtypes.IBCFullAcknowledgement{Data: ack.Acknowledgement(), Success: ack.Success()}, + msg := wasmvmtypes.IBCDestinationCallbackMsg{ + Ack: wasmvmtypes.IBCAcknowledgement{Data: ack.Acknowledgement()}, Packet: newIBCPacket(packet), } - err = i.keeper.IBCDestinationChainCallback(cachedCtx, contractAddr, msg) + err = i.keeper.IBCDestinationCallback(cachedCtx, contractAddr, msg) if err != nil { return errorsmod.Wrap(err, "on destination chain callback") } diff --git a/x/wasm/keeper/relay.go b/x/wasm/keeper/relay.go index 96842b6b0b..a12293197b 100644 --- a/x/wasm/keeper/relay.go +++ b/x/wasm/keeper/relay.go @@ -270,12 +270,12 @@ func (k Keeper) OnTimeoutPacket( return k.handleIBCBasicContractResponse(ctx, contractAddr, contractInfo.IBCPortID, res.Ok) } -// IBCSourceChainCallback calls the contract to let it know the packet triggered by its +// IBCSourceCallback calls the contract to let it know the packet triggered by its // IBC-callbacks-enabled message either timed out or was acknowledged. -func (k Keeper) IBCSourceChainCallback( +func (k Keeper) IBCSourceCallback( ctx sdk.Context, contractAddr sdk.AccAddress, - msg wasmvmtypes.IBCSourceChainCallbackMsg, + msg wasmvmtypes.IBCSourceCallbackMsg, ) error { defer telemetry.MeasureSince(time.Now(), "wasm", "contract", "ibc-source-chain-callback") @@ -288,7 +288,7 @@ func (k Keeper) IBCSourceChainCallback( querier := k.newQueryHandler(ctx, contractAddr) gasLeft := k.runtimeGasForContract(ctx) - res, gasUsed, execErr := k.wasmVM.IBCSourceChainCallback(codeInfo.CodeHash, env, msg, prefixStore, cosmwasmAPI, querier, ctx.GasMeter(), gasLeft, costJSONDeserialization) + res, gasUsed, execErr := k.wasmVM.IBCSourceCallback(codeInfo.CodeHash, env, msg, prefixStore, cosmwasmAPI, querier, ctx.GasMeter(), gasLeft, costJSONDeserialization) k.consumeRuntimeGas(ctx, gasUsed) if execErr != nil { return errorsmod.Wrap(types.ErrExecuteFailed, execErr.Error()) @@ -304,12 +304,12 @@ func (k Keeper) IBCSourceChainCallback( return k.handleIBCBasicContractResponse(ctx, contractAddr, contractInfo.IBCPortID, res.Ok) } -// IBCDestinationChainCallback calls the contract to let it know that it received a packet of an +// IBCDestinationCallback calls the contract to let it know that it received a packet of an // IBC-callbacks-enabled message that was acknowledged. -func (k Keeper) IBCDestinationChainCallback( +func (k Keeper) IBCDestinationCallback( ctx sdk.Context, contractAddr sdk.AccAddress, - msg wasmvmtypes.IBCDestinationChainCallbackMsg, + msg wasmvmtypes.IBCDestinationCallbackMsg, ) error { defer telemetry.MeasureSince(time.Now(), "wasm", "contract", "ibc-destination-chain-callback") @@ -322,7 +322,7 @@ func (k Keeper) IBCDestinationChainCallback( querier := k.newQueryHandler(ctx, contractAddr) gasLeft := k.runtimeGasForContract(ctx) - res, gasUsed, execErr := k.wasmVM.IBCDestinationChainCallback(codeInfo.CodeHash, env, msg, prefixStore, cosmwasmAPI, querier, ctx.GasMeter(), gasLeft, costJSONDeserialization) + res, gasUsed, execErr := k.wasmVM.IBCDestinationCallback(codeInfo.CodeHash, env, msg, prefixStore, cosmwasmAPI, querier, ctx.GasMeter(), gasLeft, costJSONDeserialization) k.consumeRuntimeGas(ctx, gasUsed) if execErr != nil { return errorsmod.Wrap(types.ErrExecuteFailed, execErr.Error()) diff --git a/x/wasm/keeper/wasmtesting/mock_engine.go b/x/wasm/keeper/wasmtesting/mock_engine.go index adf7afcd1a..14a3976d1a 100644 --- a/x/wasm/keeper/wasmtesting/mock_engine.go +++ b/x/wasm/keeper/wasmtesting/mock_engine.go @@ -22,29 +22,29 @@ var _ types.WasmEngine = &MockWasmEngine{} // MockWasmEngine implements types.WasmEngine for testing purpose. One or multiple messages can be stubbed. // Without a stub function a panic is thrown. type MockWasmEngine struct { - StoreCodeFn func(codeID wasmvm.WasmCode, gasLimit uint64) (wasmvm.Checksum, uint64, error) - StoreCodeUncheckedFn func(codeID wasmvm.WasmCode) (wasmvm.Checksum, error) - AnalyzeCodeFn func(codeID wasmvm.Checksum) (*wasmvmtypes.AnalysisReport, error) - InstantiateFn func(codeID wasmvm.Checksum, env wasmvmtypes.Env, info wasmvmtypes.MessageInfo, initMsg []byte, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.ContractResult, uint64, error) - ExecuteFn func(codeID wasmvm.Checksum, env wasmvmtypes.Env, info wasmvmtypes.MessageInfo, executeMsg []byte, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.ContractResult, uint64, error) - QueryFn func(codeID wasmvm.Checksum, env wasmvmtypes.Env, queryMsg []byte, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.QueryResult, uint64, error) - MigrateFn func(codeID wasmvm.Checksum, env wasmvmtypes.Env, migrateMsg []byte, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.ContractResult, uint64, error) - SudoFn func(codeID wasmvm.Checksum, env wasmvmtypes.Env, sudoMsg []byte, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.ContractResult, uint64, error) - ReplyFn func(codeID wasmvm.Checksum, env wasmvmtypes.Env, reply wasmvmtypes.Reply, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.ContractResult, uint64, error) - GetCodeFn func(codeID wasmvm.Checksum) (wasmvm.WasmCode, error) - CleanupFn func() - IBCChannelOpenFn func(codeID wasmvm.Checksum, env wasmvmtypes.Env, msg wasmvmtypes.IBCChannelOpenMsg, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.IBCChannelOpenResult, uint64, error) - IBCChannelConnectFn func(codeID wasmvm.Checksum, env wasmvmtypes.Env, msg wasmvmtypes.IBCChannelConnectMsg, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.IBCBasicResult, uint64, error) - IBCChannelCloseFn func(codeID wasmvm.Checksum, env wasmvmtypes.Env, msg wasmvmtypes.IBCChannelCloseMsg, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.IBCBasicResult, uint64, error) - IBCPacketReceiveFn func(codeID wasmvm.Checksum, env wasmvmtypes.Env, msg wasmvmtypes.IBCPacketReceiveMsg, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.IBCReceiveResult, uint64, error) - IBCPacketAckFn func(codeID wasmvm.Checksum, env wasmvmtypes.Env, msg wasmvmtypes.IBCPacketAckMsg, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.IBCBasicResult, uint64, error) - IBCPacketTimeoutFn func(codeID wasmvm.Checksum, env wasmvmtypes.Env, msg wasmvmtypes.IBCPacketTimeoutMsg, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.IBCBasicResult, uint64, error) - IBCSourceChainCallbackFn func(codeID wasmvm.Checksum, env wasmvmtypes.Env, msg wasmvmtypes.IBCSourceChainCallbackMsg, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.IBCBasicResult, uint64, error) - IBCDestinationChainCallbackFn func(codeID wasmvm.Checksum, env wasmvmtypes.Env, msg wasmvmtypes.IBCDestinationChainCallbackMsg, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.IBCBasicResult, uint64, error) - PinFn func(checksum wasmvm.Checksum) error - UnpinFn func(checksum wasmvm.Checksum) error - GetMetricsFn func() (*wasmvmtypes.Metrics, error) - GetPinMetricsFn func() (*wasmvmtypes.PinnedMetrics, error) + StoreCodeFn func(codeID wasmvm.WasmCode, gasLimit uint64) (wasmvm.Checksum, uint64, error) + StoreCodeUncheckedFn func(codeID wasmvm.WasmCode) (wasmvm.Checksum, error) + AnalyzeCodeFn func(codeID wasmvm.Checksum) (*wasmvmtypes.AnalysisReport, error) + InstantiateFn func(codeID wasmvm.Checksum, env wasmvmtypes.Env, info wasmvmtypes.MessageInfo, initMsg []byte, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.ContractResult, uint64, error) + ExecuteFn func(codeID wasmvm.Checksum, env wasmvmtypes.Env, info wasmvmtypes.MessageInfo, executeMsg []byte, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.ContractResult, uint64, error) + QueryFn func(codeID wasmvm.Checksum, env wasmvmtypes.Env, queryMsg []byte, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.QueryResult, uint64, error) + MigrateFn func(codeID wasmvm.Checksum, env wasmvmtypes.Env, migrateMsg []byte, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.ContractResult, uint64, error) + SudoFn func(codeID wasmvm.Checksum, env wasmvmtypes.Env, sudoMsg []byte, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.ContractResult, uint64, error) + ReplyFn func(codeID wasmvm.Checksum, env wasmvmtypes.Env, reply wasmvmtypes.Reply, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.ContractResult, uint64, error) + GetCodeFn func(codeID wasmvm.Checksum) (wasmvm.WasmCode, error) + CleanupFn func() + IBCChannelOpenFn func(codeID wasmvm.Checksum, env wasmvmtypes.Env, msg wasmvmtypes.IBCChannelOpenMsg, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.IBCChannelOpenResult, uint64, error) + IBCChannelConnectFn func(codeID wasmvm.Checksum, env wasmvmtypes.Env, msg wasmvmtypes.IBCChannelConnectMsg, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.IBCBasicResult, uint64, error) + IBCChannelCloseFn func(codeID wasmvm.Checksum, env wasmvmtypes.Env, msg wasmvmtypes.IBCChannelCloseMsg, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.IBCBasicResult, uint64, error) + IBCPacketReceiveFn func(codeID wasmvm.Checksum, env wasmvmtypes.Env, msg wasmvmtypes.IBCPacketReceiveMsg, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.IBCReceiveResult, uint64, error) + IBCPacketAckFn func(codeID wasmvm.Checksum, env wasmvmtypes.Env, msg wasmvmtypes.IBCPacketAckMsg, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.IBCBasicResult, uint64, error) + IBCPacketTimeoutFn func(codeID wasmvm.Checksum, env wasmvmtypes.Env, msg wasmvmtypes.IBCPacketTimeoutMsg, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.IBCBasicResult, uint64, error) + IBCSourceCallbackFn func(codeID wasmvm.Checksum, env wasmvmtypes.Env, msg wasmvmtypes.IBCSourceCallbackMsg, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.IBCBasicResult, uint64, error) + IBCDestinationCallbackFn func(codeID wasmvm.Checksum, env wasmvmtypes.Env, msg wasmvmtypes.IBCDestinationCallbackMsg, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.IBCBasicResult, uint64, error) + PinFn func(checksum wasmvm.Checksum) error + UnpinFn func(checksum wasmvm.Checksum) error + GetMetricsFn func() (*wasmvmtypes.Metrics, error) + GetPinMetricsFn func() (*wasmvmtypes.PinnedMetrics, error) } func (m *MockWasmEngine) IBCChannelOpen(codeID wasmvm.Checksum, env wasmvmtypes.Env, msg wasmvmtypes.IBCChannelOpenMsg, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.IBCChannelOpenResult, uint64, error) { @@ -89,18 +89,18 @@ func (m *MockWasmEngine) IBCPacketTimeout(codeID wasmvm.Checksum, env wasmvmtype return m.IBCPacketTimeoutFn(codeID, env, msg, store, goapi, querier, gasMeter, gasLimit, deserCost) } -func (m MockWasmEngine) IBCSourceChainCallback(codeID wasmvm.Checksum, env wasmvmtypes.Env, msg wasmvmtypes.IBCSourceChainCallbackMsg, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.IBCBasicResult, uint64, error) { - if m.IBCSourceChainCallbackFn == nil { +func (m MockWasmEngine) IBCSourceCallback(codeID wasmvm.Checksum, env wasmvmtypes.Env, msg wasmvmtypes.IBCSourceCallbackMsg, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.IBCBasicResult, uint64, error) { + if m.IBCSourceCallbackFn == nil { panic("not expected to be called") } - return m.IBCSourceChainCallbackFn(codeID, env, msg, store, goapi, querier, gasMeter, gasLimit, deserCost) + return m.IBCSourceCallbackFn(codeID, env, msg, store, goapi, querier, gasMeter, gasLimit, deserCost) } -func (m MockWasmEngine) IBCDestinationChainCallback(codeID wasmvm.Checksum, env wasmvmtypes.Env, msg wasmvmtypes.IBCDestinationChainCallbackMsg, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.IBCBasicResult, uint64, error) { - if m.IBCDestinationChainCallbackFn == nil { +func (m MockWasmEngine) IBCDestinationCallback(codeID wasmvm.Checksum, env wasmvmtypes.Env, msg wasmvmtypes.IBCDestinationCallbackMsg, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, gasMeter wasmvm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.IBCBasicResult, uint64, error) { + if m.IBCDestinationCallbackFn == nil { panic("not expected to be called") } - return m.IBCDestinationChainCallbackFn(codeID, env, msg, store, goapi, querier, gasMeter, gasLimit, deserCost) + return m.IBCDestinationCallbackFn(codeID, env, msg, store, goapi, querier, gasMeter, gasLimit, deserCost) } func (m *MockWasmEngine) StoreCode(codeID wasmvm.WasmCode, gasLimit uint64) (wasmvm.Checksum, uint64, error) { diff --git a/x/wasm/types/exported_keepers.go b/x/wasm/types/exported_keepers.go index f45e30dee9..0ece2c0207 100644 --- a/x/wasm/types/exported_keepers.go +++ b/x/wasm/types/exported_keepers.go @@ -116,15 +116,15 @@ type IBCContractKeeper interface { contractAddr sdk.AccAddress, msg wasmvmtypes.IBCPacketTimeoutMsg, ) error - IBCSourceChainCallback( + IBCSourceCallback( ctx sdk.Context, contractAddr sdk.AccAddress, - msg wasmvmtypes.IBCSourceChainCallbackMsg, + msg wasmvmtypes.IBCSourceCallbackMsg, ) error - IBCDestinationChainCallback( + IBCDestinationCallback( ctx sdk.Context, contractAddr sdk.AccAddress, - msg wasmvmtypes.IBCDestinationChainCallbackMsg, + msg wasmvmtypes.IBCDestinationCallbackMsg, ) error // ClaimCapability allows the transfer module to claim a capability // that IBC module passes to it diff --git a/x/wasm/types/wasmer_engine.go b/x/wasm/types/wasmer_engine.go index 9fe79c2ef6..31114e67cb 100644 --- a/x/wasm/types/wasmer_engine.go +++ b/x/wasm/types/wasmer_engine.go @@ -233,13 +233,13 @@ type WasmEngine interface { deserCost wasmvmtypes.UFraction, ) (*wasmvmtypes.IBCBasicResult, uint64, error) - // IBCSourceChainCallback is available on IBC-callbacks-enabled contracts and is called when an + // IBCSourceCallback is available on IBC-callbacks-enabled contracts and is called when an // IBC-callbacks-enabled IBC message previously sent by this contract is either acknowledged or // times out. - IBCSourceChainCallback( + IBCSourceCallback( checksum wasmvm.Checksum, env wasmvmtypes.Env, - msg wasmvmtypes.IBCSourceChainCallbackMsg, + msg wasmvmtypes.IBCSourceCallbackMsg, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, @@ -248,13 +248,13 @@ type WasmEngine interface { deserCost wasmvmtypes.UFraction, ) (*wasmvmtypes.IBCBasicResult, uint64, error) - // IBCSourceChainCallback is available on IBC-callbacks-enabled contracts and is called when an + // IBCSourceCallback is available on IBC-callbacks-enabled contracts and is called when an // IBC-callbacks-enabled IBC message previously sent by this contract is either acknowledged or // times out. - IBCDestinationChainCallback( + IBCDestinationCallback( checksum wasmvm.Checksum, env wasmvmtypes.Env, - msg wasmvmtypes.IBCDestinationChainCallbackMsg, + msg wasmvmtypes.IBCDestinationCallbackMsg, store wasmvm.KVStore, goapi wasmvm.GoAPI, querier wasmvm.Querier, From 1a1809c2beef3cd8f923f788fec83cf14ec4e5cb Mon Sep 17 00:00:00 2001 From: Christoph Otter Date: Fri, 10 May 2024 16:43:20 +0200 Subject: [PATCH 13/20] Fix ibc_callbacks test --- tests/e2e/ibc_callbacks_test.go | 43 ++++++++++++++++---------- tests/e2e/testdata/ibc_callbacks.wasm | Bin 233235 -> 231737 bytes 2 files changed, 26 insertions(+), 17 deletions(-) diff --git a/tests/e2e/ibc_callbacks_test.go b/tests/e2e/ibc_callbacks_test.go index 5028c69e80..03d438c08d 100644 --- a/tests/e2e/ibc_callbacks_test.go +++ b/tests/e2e/ibc_callbacks_test.go @@ -56,27 +56,26 @@ func TestIBCCallbacks(t *testing.T) { // with an ibc-callbacks contract deployed on chain A codeIDonA := chainA.StoreCodeFile("./testdata/ibc_callbacks.wasm").CodeID - contractAddrA := chainA.InstantiateContract(codeIDonA, []byte(`{}`)) - require.NotEmpty(t, contractAddrA) // and on chain B codeIDonB := chainB.StoreCodeFile("./testdata/ibc_callbacks.wasm").CodeID - contractAddrB := chainB.InstantiateContract(codeIDonB, []byte(`{}`)) - require.NotEmpty(t, contractAddrB) - // ExecuteMsg is the ibc-callbacks contract's execute msg - type ExecuteMsg struct { + type TransferExecMsg struct { ToAddress string `json:"to_address"` ChannelID string `json:"channel_id"` TimeoutSeconds uint32 `json:"timeout_seconds"` } + // ExecuteMsg is the ibc-callbacks contract's execute msg + type ExecuteMsg struct { + Transfer *TransferExecMsg `json:"transfer"` + } type QueryMsg struct { CallbackStats struct{} `json:"callback_stats"` } type QueryResp struct { - IBCAckCallbacks []wasmvmtypes.IBCPacketAckMsg `json:"ibc_ack_callbacks"` - IBCTimeoutCallbacks []wasmvmtypes.IBCPacketTimeoutMsg `json:"ibc_timeout_callbacks"` - IBCDestinationCallbacks []wasmvmtypes.IBCDestinationChainCallbackMsg `json:"ibc_destination_callbacks"` + IBCAckCallbacks []wasmvmtypes.IBCPacketAckMsg `json:"ibc_ack_callbacks"` + IBCTimeoutCallbacks []wasmvmtypes.IBCPacketTimeoutMsg `json:"ibc_timeout_callbacks"` + IBCDestinationCallbacks []wasmvmtypes.IBCDestinationCallbackMsg `json:"ibc_destination_callbacks"` } specs := map[string]struct { @@ -86,17 +85,19 @@ func TestIBCCallbacks(t *testing.T) { }{ "success": { contractMsg: ExecuteMsg{ - ToAddress: contractAddrB.String(), - ChannelID: path.EndpointA.ChannelID, - TimeoutSeconds: 100, + Transfer: &TransferExecMsg{ + ChannelID: path.EndpointA.ChannelID, + TimeoutSeconds: 100, + }, }, expAck: true, }, "timeout": { contractMsg: ExecuteMsg{ - ToAddress: contractAddrB.String(), - ChannelID: path.EndpointA.ChannelID, - TimeoutSeconds: 1, + Transfer: &TransferExecMsg{ + ChannelID: path.EndpointA.ChannelID, + TimeoutSeconds: 1, + }, }, expAck: false, }, @@ -104,6 +105,14 @@ func TestIBCCallbacks(t *testing.T) { for name, spec := range specs { t.Run(name, func(t *testing.T) { + contractAddrA := chainA.InstantiateContract(codeIDonA, []byte(`{}`)) + require.NotEmpty(t, contractAddrA) + contractAddrB := chainB.InstantiateContract(codeIDonB, []byte(`{}`)) + require.NotEmpty(t, contractAddrB) + + if spec.contractMsg.Transfer != nil && spec.contractMsg.Transfer.ToAddress == "" { + spec.contractMsg.Transfer.ToAddress = contractAddrB.String() + } contractMsgBz, err := json.Marshal(spec.contractMsg) require.NoError(t, err) @@ -148,11 +157,11 @@ func TestIBCCallbacks(t *testing.T) { chainB.SmartQuery(contractAddrB.String(), QueryMsg{CallbackStats: struct{}{}}, &response) assert.Empty(t, response.IBCAckCallbacks) assert.Empty(t, response.IBCTimeoutCallbacks) - assert.Len(t, response.IBCDestinationCallbacks, 1) // same as before + assert.Empty(t, response.IBCDestinationCallbacks) // and the contract on chain A should receive a callback with the timeout result chainA.SmartQuery(contractAddrA.String(), QueryMsg{CallbackStats: struct{}{}}, &response) - assert.Len(t, response.IBCAckCallbacks, 1) // same as before + assert.Empty(t, response.IBCAckCallbacks) assert.Len(t, response.IBCTimeoutCallbacks, 1) assert.Empty(t, response.IBCDestinationCallbacks) } diff --git a/tests/e2e/testdata/ibc_callbacks.wasm b/tests/e2e/testdata/ibc_callbacks.wasm index 48cb125bc41ece4525cf9d3e447807b913137d9a..63519505aa2d7742653caa375a12758dbccb45f8 100644 GIT binary patch delta 64025 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 #fsi5Otf6$Z)ABK*qMXBr+DqGx~VH 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 delta 67507 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 LzqR Date: Fri, 10 May 2024 18:37:44 +0200 Subject: [PATCH 14/20] Move max callback gas --- app/app.go | 8 ++------ x/wasm/ibc.go | 5 +++++ 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/app/app.go b/app/app.go index 167b89dcd0..85cd58d8bd 100644 --- a/app/app.go +++ b/app/app.go @@ -142,10 +142,6 @@ const appName = "WasmApp" var ( NodeDir = ".wasmd" Bech32Prefix = "wasm" - // MaxIBCCallbackGas is the maximum gas that an IBC callback can use. - // If the callback uses more gas, it will be out of gas and will not be reverted. - // This is passed to the callbacks middleware - MaxIBCCallbackGas = uint64(1000000) ) // These constants are derived from the above variables. @@ -670,7 +666,7 @@ func NewWasmApp( icaControllerStack = icacontroller.NewIBCMiddleware(noAuthzModule, app.ICAControllerKeeper) // app.ICAAuthModule = icaControllerStack.(ibcmock.IBCModule) icaControllerStack = icacontroller.NewIBCMiddleware(icaControllerStack, app.ICAControllerKeeper) - icaControllerStack = ibccallbacks.NewIBCMiddleware(icaControllerStack, app.IBCFeeKeeper, wasmStackIBCHandler, MaxIBCCallbackGas) + icaControllerStack = ibccallbacks.NewIBCMiddleware(icaControllerStack, app.IBCFeeKeeper, wasmStackIBCHandler, wasm.DefaultMaxIBCCallbackGas) icaICS4Wrapper := icaControllerStack.(porttypes.ICS4Wrapper) icaControllerStack = ibcfee.NewIBCMiddleware(icaControllerStack, app.IBCFeeKeeper) // Since the callbacks middleware itself is an ics4wrapper, it needs to be passed to the ica controller keeper @@ -685,7 +681,7 @@ func NewWasmApp( // Create Transfer Stack var transferStack porttypes.IBCModule transferStack = transfer.NewIBCModule(app.TransferKeeper) - transferStack = ibccallbacks.NewIBCMiddleware(transferStack, app.IBCFeeKeeper, wasmStackIBCHandler, MaxIBCCallbackGas) + transferStack = ibccallbacks.NewIBCMiddleware(transferStack, app.IBCFeeKeeper, wasmStackIBCHandler, wasm.DefaultMaxIBCCallbackGas) transferICS4Wrapper := transferStack.(porttypes.ICS4Wrapper) transferStack = ibcfee.NewIBCMiddleware(transferStack, app.IBCFeeKeeper) // Since the callbacks middleware itself is an ics4wrapper, it needs to be passed to the ica controller keeper diff --git a/x/wasm/ibc.go b/x/wasm/ibc.go index 4af8099649..90abd56f38 100644 --- a/x/wasm/ibc.go +++ b/x/wasm/ibc.go @@ -20,6 +20,11 @@ import ( "github.com/CosmWasm/wasmd/x/wasm/types" ) +// DefaultMaxIBCCallbackGas is the default value of maximum gas that an IBC callback can use. +// If the callback uses more gas, it will be out of gas and will not be reverted. +// Pass this to the callbacks middleware or choose a custom value. +const DefaultMaxIBCCallbackGas = uint64(1000000) + var _ porttypes.IBCModule = IBCHandler{} // internal interface that is implemented by ibc middleware From 5073516564ab435aa610d852347dcdfc58c795d6 Mon Sep 17 00:00:00 2001 From: Christoph Otter Date: Tue, 2 Jul 2024 10:28:04 +0200 Subject: [PATCH 15/20] Fix lint --- x/wasm/ibc.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/x/wasm/ibc.go b/x/wasm/ibc.go index 90abd56f38..fac16145db 100644 --- a/x/wasm/ibc.go +++ b/x/wasm/ibc.go @@ -6,7 +6,7 @@ import ( wasmvmtypes "github.com/CosmWasm/wasmvm/v2/types" capabilitytypes "github.com/cosmos/ibc-go/modules/capability/types" - clienttypes "github.com/cosmos/ibc-go/v8/modules/core/02-client/types" //nolint:staticcheck + clienttypes "github.com/cosmos/ibc-go/v8/modules/core/02-client/types" channeltypes "github.com/cosmos/ibc-go/v8/modules/core/04-channel/types" porttypes "github.com/cosmos/ibc-go/v8/modules/core/05-port/types" host "github.com/cosmos/ibc-go/v8/modules/core/24-host" From ffa3319eb18bd2ef71999ca41bf4908715d75ffb Mon Sep 17 00:00:00 2001 From: Christoph Otter Date: Tue, 2 Jul 2024 10:52:10 +0200 Subject: [PATCH 16/20] Formatting --- x/wasm/ibc.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/x/wasm/ibc.go b/x/wasm/ibc.go index fac16145db..563a5d516f 100644 --- a/x/wasm/ibc.go +++ b/x/wasm/ibc.go @@ -6,7 +6,7 @@ import ( wasmvmtypes "github.com/CosmWasm/wasmvm/v2/types" capabilitytypes "github.com/cosmos/ibc-go/modules/capability/types" - clienttypes "github.com/cosmos/ibc-go/v8/modules/core/02-client/types" + clienttypes "github.com/cosmos/ibc-go/v8/modules/core/02-client/types" channeltypes "github.com/cosmos/ibc-go/v8/modules/core/04-channel/types" porttypes "github.com/cosmos/ibc-go/v8/modules/core/05-port/types" host "github.com/cosmos/ibc-go/v8/modules/core/24-host" From 068c164dd64dfa1bec9ace9a8933e3da7c4e4b36 Mon Sep 17 00:00:00 2001 From: Christoph Otter Date: Thu, 4 Jul 2024 16:28:33 +0200 Subject: [PATCH 17/20] Use number separators Co-authored-by: Simon Warta <2603011+webmaster128@users.noreply.github.com> --- x/wasm/ibc.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/x/wasm/ibc.go b/x/wasm/ibc.go index 563a5d516f..d812cd9c99 100644 --- a/x/wasm/ibc.go +++ b/x/wasm/ibc.go @@ -23,7 +23,7 @@ import ( // DefaultMaxIBCCallbackGas is the default value of maximum gas that an IBC callback can use. // If the callback uses more gas, it will be out of gas and will not be reverted. // Pass this to the callbacks middleware or choose a custom value. -const DefaultMaxIBCCallbackGas = uint64(1000000) +const DefaultMaxIBCCallbackGas = uint64(1_000_000) var _ porttypes.IBCModule = IBCHandler{} From f96609546cbd3734f2efc081b7e6a09b34d45e31 Mon Sep 17 00:00:00 2001 From: Christoph Otter Date: Thu, 4 Jul 2024 16:26:54 +0200 Subject: [PATCH 18/20] Improve DefaultMaxIBCCallbackGas doc comment --- x/wasm/ibc.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/x/wasm/ibc.go b/x/wasm/ibc.go index d812cd9c99..3a237552e1 100644 --- a/x/wasm/ibc.go +++ b/x/wasm/ibc.go @@ -21,7 +21,8 @@ import ( ) // DefaultMaxIBCCallbackGas is the default value of maximum gas that an IBC callback can use. -// If the callback uses more gas, it will be out of gas and will not be reverted. +// If the callback uses more gas, it will be out of gas and the contract state changes will be reverted, +// but the transaction will be committed. // Pass this to the callbacks middleware or choose a custom value. const DefaultMaxIBCCallbackGas = uint64(1_000_000) From bc4b59d43301e556c428875c82e40403eb1bfce3 Mon Sep 17 00:00:00 2001 From: Christoph Otter Date: Thu, 4 Jul 2024 16:31:05 +0200 Subject: [PATCH 19/20] Use addresses for comparison --- x/wasm/ibc.go | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/x/wasm/ibc.go b/x/wasm/ibc.go index 3a237552e1..b0311f5227 100644 --- a/x/wasm/ibc.go +++ b/x/wasm/ibc.go @@ -2,7 +2,6 @@ package wasm import ( "math" - "strings" wasmvmtypes "github.com/CosmWasm/wasmvm/v2/types" capabilitytypes "github.com/cosmos/ibc-go/modules/capability/types" @@ -440,15 +439,19 @@ func (i IBCHandler) IBCReceivePacketCallback( } func validateSender(contractAddr, senderAddr string) (sdk.AccAddress, error) { - // We only allow the contract that sent the message to receive source chain callbacks for it. - if !strings.EqualFold(contractAddr, senderAddr) { - return nil, errorsmod.Wrapf(types.ErrExecuteFailed, "contract address %s does not match packet sender %s", contractAddr, senderAddr) - } - contractAddress, err := sdk.AccAddressFromBech32(contractAddr) if err != nil { return nil, errorsmod.Wrapf(err, "contract address") } + senderAddress, err := sdk.AccAddressFromBech32(senderAddr) + if err != nil { + return nil, errorsmod.Wrapf(err, "packet sender address") + } + + // We only allow the contract that sent the message to receive source chain callbacks for it. + if !contractAddress.Equals(senderAddress) { + return nil, errorsmod.Wrapf(types.ErrExecuteFailed, "contract address %s does not match packet sender %s", contractAddr, senderAddress) + } return contractAddress, nil } From 98b91e77af6b1b5d724ca8bb862c32670123cbb1 Mon Sep 17 00:00:00 2001 From: Christoph Otter Date: Thu, 4 Jul 2024 16:54:29 +0200 Subject: [PATCH 20/20] go mod tidy --- go.mod | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/go.mod b/go.mod index 7cd7a49eff..90d55fd641 100644 --- a/go.mod +++ b/go.mod @@ -45,6 +45,7 @@ require ( cosmossdk.io/x/upgrade v0.1.3 github.com/cometbft/cometbft v0.38.9 github.com/cosmos/cosmos-db v1.0.2 + github.com/cosmos/ibc-go/modules/apps/callbacks v0.2.1-0.20231113120333-342c00b0f8bd github.com/cosmos/ibc-go/modules/capability v1.0.0 github.com/cosmos/ibc-go/v8 v8.3.2 github.com/distribution/reference v0.5.0 @@ -84,7 +85,6 @@ require ( github.com/cometbft/cometbft-db v0.9.1 // indirect github.com/cosmos/btcutil v1.0.5 // indirect github.com/cosmos/go-bip39 v1.0.0 // indirect - github.com/cosmos/ibc-go/modules/apps/callbacks v0.2.1-0.20231113120333-342c00b0f8bd // indirect github.com/cosmos/ledger-cosmos-go v0.13.3 // indirect github.com/creachadair/atomicfile v0.3.1 // indirect github.com/creachadair/tomledit v0.0.24 // indirect