package auction import ( "fmt" time "time" errorsmod "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" ) var ( _ sdk.Msg = &MsgCreateAuction{} _ sdk.Msg = &MsgCommitBid{} _ sdk.Msg = &MsgRevealBid{} ) // NewMsgCreateAuction is the constructor function for MsgCreateAuction. func NewMsgCreateAuction( commitsDuration time.Duration, revealsDuration time.Duration, commitFee sdk.Coin, revealFee sdk.Coin, minimumBid sdk.Coin, maxPrice sdk.Coin, numProviders int32, kind string, signer sdk.AccAddress, ) MsgCreateAuction { fmt.Print(signer.String()) return MsgCreateAuction{ CommitsDuration: commitsDuration, RevealsDuration: revealsDuration, CommitFee: commitFee, RevealFee: revealFee, MinimumBid: minimumBid, MaxPrice: maxPrice, Kind: kind, NumProviders: numProviders, Signer: signer.String(), } } // NewMsgCommitBid is the constructor function for MsgCommitBid. func NewMsgCommitBid(auctionId string, commitHash string, signer sdk.AccAddress) MsgCommitBid { return MsgCommitBid{ AuctionId: auctionId, CommitHash: commitHash, Signer: signer.String(), } } // ValidateBasic Implements Msg. func (msg MsgCreateAuction) ValidateBasic() error { if msg.Signer == "" { return errorsmod.Wrap(sdkerrors.ErrInvalidAddress, msg.Signer) } if msg.CommitsDuration <= 0 { return errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "commit phase duration invalid.") } if msg.RevealsDuration <= 0 { return errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "reveal phase duration invalid.") } if msg.Kind == AuctionKindVickrey && !msg.MinimumBid.IsPositive() { return errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "minimum bid should be greater than zero.") } if msg.Kind == AuctionKindProvider && !msg.MaxPrice.IsPositive() { return errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "maximum price should be greater than zero.") } return nil } // ValidateBasic Implements Msg. func (msg MsgCommitBid) ValidateBasic() error { if msg.Signer == "" { return errorsmod.Wrap(sdkerrors.ErrInvalidAddress, "invalid signer address") } if msg.AuctionId == "" { return errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "invalid auction id") } if msg.CommitHash == "" { return errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "invalid commit hash") } return nil } // NewMsgRevealBid is the constructor function for MsgRevealBid. func NewMsgRevealBid(auctionId string, reveal string, signer sdk.AccAddress) MsgRevealBid { return MsgRevealBid{ AuctionId: auctionId, Reveal: reveal, Signer: signer.String(), } } // ValidateBasic Implements Msg. func (msg MsgRevealBid) ValidateBasic() error { if msg.Signer == "" { return errorsmod.Wrap(sdkerrors.ErrInvalidAddress, "invalid signer address") } if msg.AuctionId == "" { return errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "invalid auction id") } if msg.Reveal == "" { return errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "invalid reveal data") } return nil }