github.com/okex/exchain@v1.8.0/libs/ibc-go/modules/apps/transfer/keeper/hooks.go (about) 1 package keeper 2 3 import ( 4 sdk "github.com/okex/exchain/libs/cosmos-sdk/types" 5 "github.com/okex/exchain/libs/ibc-go/modules/apps/transfer/types" 6 ) 7 8 // SetHooks sets the hooks for the IBC transfer module 9 // It should be called only once during initialization, it panics if called more than once. 10 func (k *Keeper) SetHooks(hooks types.TransferHooks) *Keeper { 11 if k.hooks != nil { 12 panic("cannot set hooks twice") 13 } 14 15 k.hooks = hooks 16 17 return k 18 } 19 20 func (k Keeper) CallAfterSendTransferHooks( 21 ctx sdk.Context, 22 sourcePort, sourceChannel string, 23 token sdk.SysCoin, 24 sender sdk.AccAddress, 25 receiver string, 26 isSource bool) error { 27 if k.hooks != nil { 28 return k.hooks.AfterSendTransfer(ctx, sourcePort, sourceChannel, token, sender, receiver, isSource) 29 } 30 return nil 31 } 32 func (k Keeper) CallAfterRecvTransferHooks( 33 ctx sdk.Context, 34 destPort, destChannel string, 35 token sdk.SysCoin, 36 receiver string, 37 isSource bool) error { 38 if k.hooks != nil { 39 return k.hooks.AfterRecvTransfer(ctx, destPort, destChannel, token, receiver, isSource) 40 } 41 return nil 42 } 43 func (k Keeper) CallAfterRefundTransferHooks( 44 ctx sdk.Context, 45 sourcePort, sourceChannel string, 46 token sdk.SysCoin, 47 sender string, 48 isSource bool) error { 49 if k.hooks != nil { 50 return k.hooks.AfterRefundTransfer(ctx, sourcePort, sourceChannel, token, sender, isSource) 51 } 52 return nil 53 }