Skip to content

Commit

Permalink
Fix async ack events
Browse files Browse the repository at this point in the history
  • Loading branch information
chipshort committed May 10, 2024
1 parent 6a8b035 commit 3ba0b21
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 6 deletions.
2 changes: 1 addition & 1 deletion x/wasm/ibc.go
Original file line number Diff line number Diff line change
Expand Up @@ -286,7 +286,7 @@ func (i IBCHandler) OnRecvPacket(
ctx.EventManager().EmitEvents(em.Events())
// contract wants async acknowledgement, so store the packet for later
i.keeper.StoreAsyncAckPacket(ctx, packet)
return nil
ack = nil
} else if ack.Success() {
// emit all contract and submessage events on success
ctx.EventManager().EmitEvents(em.Events())
Expand Down
10 changes: 5 additions & 5 deletions x/wasm/keeper/handler_plugin.go
Original file line number Diff line number Diff line change
Expand Up @@ -234,7 +234,7 @@ func (h IBCRawPacketHandler) DispatchMsg(ctx sdk.Context, _ sdk.AccAddress, cont
return nil, nil, nil, errorsmod.Wrap(types.ErrInvalid, "packet")
}

err = h.ics4Wrapper.WriteAcknowledgement(ctx, channelCap, packet, asyncAck{msg.IBC.WriteAcknowledgement.Ack})
err = h.ics4Wrapper.WriteAcknowledgement(ctx, channelCap, packet, asyncAck(msg.IBC.WriteAcknowledgement.Ack))
if err != nil {
return nil, nil, nil, errorsmod.Wrap(err, "acknowledgement")
}
Expand Down Expand Up @@ -262,12 +262,12 @@ func (h IBCRawPacketHandler) DispatchMsg(ctx sdk.Context, _ sdk.AccAddress, cont

var _ ibcexported.Acknowledgement = asyncAck{}

type asyncAck struct {
wasmvmtypes.IBCFullAcknowledgement
}
type asyncAck wasmvmtypes.IBCAcknowledgement

func (w asyncAck) Success() bool {
return w.IBCFullAcknowledgement.Success
// We don't give the contract to supply a success flag because it's not part of the IBC spec.
// Currently, ibc-go also just ignores this flag for `WriteAcknowledgement`.
return true
}

func (w asyncAck) Acknowledgement() []byte {
Expand Down

0 comments on commit 3ba0b21

Please sign in to comment.