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  }