github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/x/vmbridge/types/tx.go (about) 1 package types 2 3 import ( 4 "fmt" 5 6 sdk "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/types" 7 ) 8 9 func (msg MsgSendToEvm) Route() string { 10 return RouterKey 11 } 12 13 func (msg MsgSendToEvm) Type() string { 14 return SendToEvmSubMsgName 15 } 16 17 func (msg MsgSendToEvm) ValidateBasic() error { 18 sender, err := sdk.AccAddressFromBech32(msg.Sender) 19 if err != nil { 20 return ErrMsgSendToEvm(err.Error()) 21 } 22 if !sdk.IsWasmAddress(sender) { 23 return ErrIsNotWasmAddr 24 } 25 26 contract, err := sdk.AccAddressFromBech32(msg.Contract) 27 if err != nil { 28 return ErrMsgSendToEvm(err.Error()) 29 } 30 if sdk.IsWasmAddress(contract) { 31 return ErrIsNotEvmAddr 32 } 33 34 recipient, err := sdk.AccAddressFromBech32(msg.Recipient) 35 if err != nil { 36 return ErrMsgSendToEvm(err.Error()) 37 } 38 if sdk.IsWasmAddress(recipient) { 39 return ErrIsNotEvmAddr 40 } 41 42 if msg.Amount.IsNegative() { 43 return ErrMsgSendToEvm(fmt.Sprintf("negative coin amount: %v", msg.Amount)) 44 } 45 return nil 46 } 47 48 func (msg MsgSendToEvm) GetSignBytes() []byte { 49 panic(fmt.Errorf("MsgSendToEvm can not be sign beacuse it can not exist in tx. It only exist in wasm call")) 50 } 51 52 func (msg MsgSendToEvm) GetSigners() []sdk.AccAddress { 53 senderAddr, err := sdk.AccAddressFromBech32(msg.Sender) 54 if err != nil { // should never happen as valid basic rejects invalid addresses 55 panic(err) 56 } 57 return []sdk.AccAddress{senderAddr} 58 }