Skip to content

Commit

Permalink
update codec
Browse files Browse the repository at this point in the history
  • Loading branch information
robert-zaremba committed Dec 5, 2023
1 parent ad5fb45 commit 3fde347
Showing 1 changed file with 11 additions and 12 deletions.
23 changes: 11 additions & 12 deletions x/uibc/uics20/ibc_module.go
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ func NewICS20Module(app porttypes.IBCModule, k quota.KeeperBuilder, cdc codec.JS
// OnRecvPacket is called when a receiver chain receives a packet from SendPacket.
func (im ICS20Module) OnRecvPacket(ctx sdk.Context, packet channeltypes.Packet, relayer sdk.AccAddress,
) exported.Acknowledgement {
ftData, err := im.deserializeFTData(packet)
ftData, err := deserializeFTData(im.cdc, packet)
if err != nil {
return channeltypes.NewErrorAcknowledgement(err)
}
Expand All @@ -50,7 +50,7 @@ func (im ICS20Module) OnRecvPacket(ctx sdk.Context, packet channeltypes.Packet,
}

if ftData.Memo != "" {
msgs, err := deserializeMemoMsgs([]byte(ftData.Memo), im.cdc)
msgs, err := deserializeMemoMsgs(im.cdc, []byte(ftData.Memo))
if err != nil {
// TODO: need to verify if we want to stop the handle the error or revert the ibc transerf
ctx.Logger().Error("can't JSON deserialize ftData Memo, expecting list of Msg", "err", err)
Expand Down Expand Up @@ -87,7 +87,7 @@ func (im ICS20Module) OnTimeoutPacket(ctx sdk.Context, packet channeltypes.Packe
}

func (im ICS20Module) onAckErr(ctx *sdk.Context, packet channeltypes.Packet) {
ftData, err := im.deserializeFTData(packet)
ftData, err := deserializeFTData(im.cdc, packet)
if err != nil {
// we only log error, because we want to propagate the ack to other layers.
ctx.Logger().Error("can't revert quota update", "err", err)
Expand All @@ -96,31 +96,30 @@ func (im ICS20Module) onAckErr(ctx *sdk.Context, packet channeltypes.Packet) {
qk.IBCRevertQuotaUpdate(ftData.Amount, ftData.Denom)
}

func (im ICS20Module) dispatchMemoMsgs(ctx sdk.Context, msgs []sdk.Msg) error {
// runs messages encoded in the ICS20 memo.
// NOTE: storage is forked, and only committed (flushed) if all messages pass and if all
// messages are supported. Otherwise the fork storage is discarded.
func (im ICS20Module) dispatchMemoMsgs(ctx sdk.Context, msgs []sdk.Msg) {
// Caching context so that we don't update the store in case of failure.
cacheCtx, flush := ctx.CacheContext()
// TODO: call flush on success

}

func (im ICS20Module) deserializeFTData(
packet channeltypes.Packet,
func deserializeFTData(cdc codec.JSONCodec, packet channeltypes.Packet,
) (d ics20types.FungibleTokenPacketData, err error) {

if err = im.cdc.UnmarshalJSON(packet.GetData(), &d); err != nil {
if err = cdc.UnmarshalJSON(packet.GetData(), &d); err != nil {
err = errors.Wrap(err,
"cannot unmarshal ICS-20 transfer packet data")
}
return
}

func deserializeMemoMsgs(data []byte, cdc codec.JSONCodec) ([]sdk.Msg, error) {
func deserializeMemoMsgs(cdc codec.JSONCodec, data []byte) ([]sdk.Msg, error) {
var m uibc.ICS20Memo
if err := cdc.UnmarshalJSON(data, &m); err != nil {
return nil, err
}
return tx.GetMsgs(m.Messages, "memo messages")
var msgs = make([]sdk.Msg, len(m.Messages))
// for _, any := range m.Messages {
// }
return msgs, nil
}

0 comments on commit 3fde347

Please sign in to comment.