@@ -127,13 +127,14 @@ func (im IBCMiddleware) OnRecvPacket(ctx sdk.Context, packet channeltypes.Packet
127127
128128``` go
129129func (k Keeper ) HandleMigratedTokenDeposit (ctx context .Context , msg *types .MsgInitiateTokenDeposit ) (handled bool , err error ) {
130- // 1. Get migration info for this bridge and L1 denom
130+ l1Denom := msg. Amount . Denom
131131 migrationInfo , err := k.GetMigrationInfo (ctx, msg.BridgeId , l1Denom)
132132 if err != nil && errors.Is (err, collections.ErrNotFound ) {
133133 return false , nil // Not configured for migration
134+ } else if err != nil {
135+ return false , err
134136 }
135-
136- // 2. Encode bridge hook data in memo
137+
137138 memo := " forwarded from ophost module"
138139 if len (msg.Data ) > 0 {
139140 memoBz , err := json.Marshal (&types.MigratedTokenDepositMemo {
@@ -144,20 +145,20 @@ func (k Keeper) HandleMigratedTokenDeposit(ctx context.Context, msg *types.MsgIn
144145 }
145146 memo = string (memoBz)
146147 }
147-
148- // 3. Create IBC transfer message
148+
149+ // Create IBC transfer message
149150 transferMsg := transfertypes.NewMsgTransfer (
150151 migrationInfo.IbcPortId ,
151152 migrationInfo.IbcChannelId ,
152153 msg.Amount ,
153154 msg.Sender ,
154155 msg.To ,
155156 clienttypes.NewHeight (0 , 0 ),
156- uint64 (sdk.UnwrapSDKContext (ctx).BlockTime ().UnixNano ())+transfertypes.DefaultRelativePacketTimeoutTimestamp ,
157+ uint64 (sdk.UnwrapSDKContext (ctx).BlockTime ().UnixNano ())+transfertypes.DefaultRelativePacketTimeoutTimestamp , // nolint:gosec
157158 memo,
158159 )
159-
160- // 4. Route IBC transfer via message router
160+
161+ // Route IBC transfer via message router
161162 sdkCtx := sdk.UnwrapSDKContext (ctx)
162163 if handler := k.msgRouter .Handler (transferMsg); handler == nil {
163164 return false , errorsmod.Wrap (sdkerrors.ErrNotFound , sdk.MsgTypeURL (transferMsg))
@@ -166,7 +167,7 @@ func (k Keeper) HandleMigratedTokenDeposit(ctx context.Context, msg *types.MsgIn
166167 } else {
167168 sdkCtx.EventManager ().EmitEvents (res.GetEvents ())
168169 }
169-
170+
170171 return true , nil
171172}
172173```
@@ -175,30 +176,25 @@ func (k Keeper) HandleMigratedTokenDeposit(ctx context.Context, msg *types.MsgIn
175176
176177``` go
177178func (k Keeper ) HandleMigratedTokenWithdrawal (ctx context .Context , msg *types .MsgFinalizeTokenWithdrawal ) (handled bool , err error ) {
178- // 1. Get migration info for this bridge and L1 denom
179179 l1Denom := msg.Amount .Denom
180180 migrationInfo , err := k.GetMigrationInfo (ctx, msg.BridgeId , l1Denom)
181181 if err != nil && errors.Is (err, collections.ErrNotFound ) {
182- return false , nil // Not configured for migration, fall back to bridge withdrawal
182+ return false , nil // Not configured for migration
183183 } else if err != nil {
184184 return false , err
185185 }
186-
187- // 2. Get IBC escrow address from migration info
186+
188187 transferEscrowAddress := transfertypes.GetEscrowAddress (migrationInfo.IbcPortId , migrationInfo.IbcChannelId )
189-
190- // 3. Convert receiver address string to bytes
191188 receiver , err := k.authKeeper .AddressCodec ().StringToBytes (msg.To )
192189 if err != nil {
193190 return false , err
194191 }
195-
196- // 4. Transfer tokens from IBC escrow to receiver
192+
197193 withdrawnFunds := sdk.NewCoins (msg.Amount )
198194 if err := k.bankKeeper .SendCoins (ctx, transferEscrowAddress, receiver, withdrawnFunds); err != nil {
199195 return false , err
200196 }
201-
197+
202198 return true , nil
203199}
204200```
0 commit comments