add counterpartyChannelID param to wasm IBCHandler.OnChainOpenAck
This commit is contained in:
@@ -61,7 +61,7 @@ func NewAnteHandler(options HandlerOptions) (sdk.AnteHandler, error) {
|
||||
ante.NewSigVerificationDecorator(options.AccountKeeper, options.SignModeHandler),
|
||||
ante.NewIncrementSequenceDecorator(options.AccountKeeper),
|
||||
ibcante.NewAnteDecorator(options.IBCKeeper),
|
||||
as aa }
|
||||
|
||||
}
|
||||
|
||||
return sdk.ChainAnteDecorators(anteDecorators...), nil
|
||||
}
|
||||
|
||||
@@ -77,16 +77,16 @@ func (i IBCHandler) OnChanOpenTry(
|
||||
portID, channelID string,
|
||||
chanCap *capabilitytypes.Capability,
|
||||
counterParty channeltypes.Counterparty,
|
||||
version, counterpartyVersion string,
|
||||
) error {
|
||||
counterpartyVersion string,
|
||||
) (string, error) {
|
||||
// ensure port, version, capability
|
||||
if err := ValidateChannelParams(channelID); err != nil {
|
||||
return err
|
||||
return "", err
|
||||
}
|
||||
|
||||
contractAddr, err := ContractFromPortID(portID)
|
||||
if err != nil {
|
||||
return sdkerrors.Wrapf(err, "contract port id")
|
||||
return "", sdkerrors.Wrapf(err, "contract port id")
|
||||
}
|
||||
|
||||
msg := wasmvmtypes.IBCChannelOpenMsg{
|
||||
@@ -95,7 +95,7 @@ func (i IBCHandler) OnChanOpenTry(
|
||||
Endpoint: wasmvmtypes.IBCEndpoint{PortID: portID, ChannelID: channelID},
|
||||
CounterpartyEndpoint: wasmvmtypes.IBCEndpoint{PortID: counterParty.PortId, ChannelID: counterParty.ChannelId},
|
||||
Order: order.String(),
|
||||
Version: version,
|
||||
Version: counterpartyVersion,
|
||||
ConnectionID: connectionHops[0], // At the moment this list must be of length 1. In the future multi-hop channels may be supported.
|
||||
},
|
||||
CounterpartyVersion: counterpartyVersion,
|
||||
@@ -104,7 +104,7 @@ func (i IBCHandler) OnChanOpenTry(
|
||||
|
||||
err = i.keeper.OnOpenChannel(ctx, contractAddr, msg)
|
||||
if err != nil {
|
||||
return err
|
||||
return "", err
|
||||
}
|
||||
// Module may have already claimed capability in OnChanOpenInit in the case of crossing hellos
|
||||
// (ie chainA and chainB both call ChanOpenInit before one of them calls ChanOpenTry)
|
||||
@@ -113,10 +113,10 @@ func (i IBCHandler) OnChanOpenTry(
|
||||
if !i.keeper.AuthenticateCapability(ctx, chanCap, host.ChannelCapabilityPath(portID, channelID)) {
|
||||
// Only claim channel capability passed back by IBC module if we do not already own it
|
||||
if err := i.keeper.ClaimCapability(ctx, chanCap, host.ChannelCapabilityPath(portID, channelID)); err != nil {
|
||||
return sdkerrors.Wrap(err, "claim capability")
|
||||
return "", sdkerrors.Wrap(err, "claim capability")
|
||||
}
|
||||
}
|
||||
return nil
|
||||
return counterpartyVersion, nil
|
||||
}
|
||||
|
||||
// OnChanOpenAck implements the IBCModule interface
|
||||
@@ -124,6 +124,7 @@ func (i IBCHandler) OnChanOpenAck(
|
||||
ctx sdk.Context,
|
||||
portID, channelID string,
|
||||
counterpartyVersion string,
|
||||
counterpartyChannelID string,
|
||||
) error {
|
||||
contractAddr, err := ContractFromPortID(portID)
|
||||
if err != nil {
|
||||
@@ -133,6 +134,7 @@ func (i IBCHandler) OnChanOpenAck(
|
||||
if !ok {
|
||||
return sdkerrors.Wrapf(channeltypes.ErrChannelNotFound, "port ID (%s) channel ID (%s)", portID, channelID)
|
||||
}
|
||||
channelInfo.Counterparty.ChannelId = counterpartyChannelID
|
||||
msg := wasmvmtypes.IBCChannelConnectMsg{
|
||||
OpenAck: &wasmvmtypes.IBCOpenAck{
|
||||
Channel: toWasmVMChannel(portID, channelID, channelInfo),
|
||||
|
||||
Reference in New Issue
Block a user