Skip to content

Commit

Permalink
Add Tx Msg Validation
Browse files Browse the repository at this point in the history
  • Loading branch information
joelsmith-2019 committed Sep 15, 2023
1 parent bd89c04 commit 0c75d4a
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 2 deletions.
2 changes: 0 additions & 2 deletions x/feepay/client/cli/tx.go
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,6 @@ func NewRegisterFeePayContract() *cobra.Command {
wallet_limit := args[1]
dec_limit, err := strconv.ParseUint(wallet_limit, 10, 64)

// todo bech32 validation

if err != nil {
return err
}
Expand Down
2 changes: 2 additions & 0 deletions x/feepay/types/errors.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,6 @@ var (
ErrWalletExceededUsageLimit = errorsmod.Register(ModuleName, 5, "wallet exceeded usage limit")
ErrContractNotAdmin = errorsmod.Register(ModuleName, 6, "sender is not the contract admin")
ErrContractNotCreator = errorsmod.Register(ModuleName, 7, "sender is not the contract creator")
ErrInvalidWalletLimit = errorsmod.Register(ModuleName, 8, "invalid wallet limit; must be between 0 and 1,000,000")
ErrInvalidJunoFundAmount = errorsmod.Register(ModuleName, 9, "fee pay contracts only accept juno funds")
)
34 changes: 34 additions & 0 deletions x/feepay/types/msg.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,18 @@ func (msg MsgRegisterFeePayContract) Type() string { return TypeMsgRegisterFeePa

// ValidateBasic runs stateless checks on the message
func (msg MsgRegisterFeePayContract) ValidateBasic() error {
if _, err := sdk.AccAddressFromBech32(msg.SenderAddress); err != nil {
return err
}

if _, err := sdk.AccAddressFromBech32(msg.Contract.ContractAddress); err != nil {
return err
}

if msg.Contract.WalletLimit < 0 || msg.Contract.WalletLimit > 1_000_000 {
return ErrInvalidWalletLimit
}

return nil
}

Expand All @@ -48,6 +60,15 @@ func (msg MsgUnregisterFeePayContract) Type() string { return TypeMsgUnregisterF

// ValidateBasic runs stateless checks on the message
func (msg MsgUnregisterFeePayContract) ValidateBasic() error {

if _, err := sdk.AccAddressFromBech32(msg.SenderAddress); err != nil {
return err
}

if _, err := sdk.AccAddressFromBech32(msg.ContractAddress); err != nil {
return err
}

return nil
}

Expand All @@ -70,6 +91,19 @@ func (msg MsgFundFeePayContract) Type() string { return TypeMsgFundFeePayContrac

// ValidateBasic runs stateless checks on the message
func (msg MsgFundFeePayContract) ValidateBasic() error {

if _, err := sdk.AccAddressFromBech32(msg.SenderAddress); err != nil {
return err
}

if _, err := sdk.AccAddressFromBech32(msg.ContractAddress); err != nil {
return err
}

if len(msg.Amount) != 1 {
return ErrInvalidJunoFundAmount
}

return nil
}

Expand Down

0 comments on commit 0c75d4a

Please sign in to comment.