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  }