github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/x/token/handler_ibc.go (about) 1 package token 2 3 import ( 4 "fmt" 5 6 sdk "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/types" 7 "github.com/fibonacci-chain/fbc/libs/tendermint/libs/log" 8 "github.com/fibonacci-chain/fbc/x/token/types" 9 ) 10 11 type WalletTokenTransfer interface { 12 sdk.Msg 13 GetFrom() sdk.AccAddress 14 GetTo() sdk.AccAddress 15 GetAmount() []sdk.DecCoin 16 } 17 18 func handleWalletMsgSend(ctx sdk.Context, keeper Keeper, msg types.MsgSend, logger log.Logger) (*sdk.Result, error) { 19 if !keeper.bankKeeper.GetSendEnabled(ctx) { 20 return types.ErrSendDisabled().Result() 21 } 22 err := keeper.SendCoinsFromAccountToAccount(ctx, msg.FromAddress, msg.ToAddress, msg.Amount) 23 if err != nil { 24 return types.ErrSendCoinsFromAccountToAccountFailed(err.Error()).Result() 25 } 26 27 var name = "handleMsgSend" 28 if logger != nil { 29 logger.Debug(fmt.Sprintf("BlockHeight<%d>, handler<%s>\n"+ 30 " msg<From:%s,To:%s,Amount:%s>\n"+ 31 " result<Owner have enough fibos to send a tx>\n", 32 ctx.BlockHeight(), name, 33 msg.FromAddress, msg.ToAddress, msg.Amount)) 34 } 35 36 ctx.EventManager().EmitEvent( 37 sdk.NewEvent(sdk.EventTypeMessage, sdk.NewAttribute(sdk.AttributeKeyModule, types.ModuleName)), 38 ) 39 40 return &sdk.Result{Events: ctx.EventManager().Events()}, nil 41 }