Modify provider auction name

This commit is contained in:
IshaVenikar 2024-09-17 12:48:48 +05:30 committed by Isha Venikar
parent 9e3b2cc0dc
commit fd4fd0b2ca
9 changed files with 23 additions and 24 deletions

View File

@ -3915,7 +3915,7 @@ type Auction struct {
unknownFields protoimpl.UnknownFields unknownFields protoimpl.UnknownFields
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
// Auction's kind (vickrey | service_provider) // Auction's kind (vickrey | provider)
Kind string `protobuf:"bytes,2,opt,name=kind,proto3" json:"kind,omitempty"` Kind string `protobuf:"bytes,2,opt,name=kind,proto3" json:"kind,omitempty"`
Status string `protobuf:"bytes,3,opt,name=status,proto3" json:"status,omitempty"` Status string `protobuf:"bytes,3,opt,name=status,proto3" json:"status,omitempty"`
// Address of the creator of the auction // Address of the creator of the auction
@ -3932,7 +3932,7 @@ type Auction struct {
RevealFee *v1beta1.Coin `protobuf:"bytes,9,opt,name=reveal_fee,json=revealFee,proto3" json:"reveal_fee,omitempty"` RevealFee *v1beta1.Coin `protobuf:"bytes,9,opt,name=reveal_fee,json=revealFee,proto3" json:"reveal_fee,omitempty"`
// Minimum acceptable bid amount for a valid commit // Minimum acceptable bid amount for a valid commit
MinimumBid *v1beta1.Coin `protobuf:"bytes,10,opt,name=minimum_bid,json=minimumBid,proto3" json:"minimum_bid,omitempty"` MinimumBid *v1beta1.Coin `protobuf:"bytes,10,opt,name=minimum_bid,json=minimumBid,proto3" json:"minimum_bid,omitempty"`
// Addresses of the winners (one for vickrey and can be multiple for service_provider) // Addresses of the winners (one for vickrey auctions and can be multiple for provider auctions)
WinnerAddresses []string `protobuf:"bytes,11,rep,name=winner_addresses,json=winnerAddresses,proto3" json:"winner_addresses,omitempty"` WinnerAddresses []string `protobuf:"bytes,11,rep,name=winner_addresses,json=winnerAddresses,proto3" json:"winner_addresses,omitempty"`
// Winning bids, i.e., the best bids // Winning bids, i.e., the best bids
WinningBids []*v1beta1.Coin `protobuf:"bytes,12,rep,name=winning_bids,json=winningBids,proto3" json:"winning_bids,omitempty"` WinningBids []*v1beta1.Coin `protobuf:"bytes,12,rep,name=winning_bids,json=winningBids,proto3" json:"winning_bids,omitempty"`

View File

@ -4311,7 +4311,7 @@ type MsgCreateAuction struct {
MinimumBid *v1beta1.Coin `protobuf:"bytes,5,opt,name=minimum_bid,json=minimumBid,proto3" json:"minimum_bid,omitempty"` MinimumBid *v1beta1.Coin `protobuf:"bytes,5,opt,name=minimum_bid,json=minimumBid,proto3" json:"minimum_bid,omitempty"`
// Address of the signer // Address of the signer
Signer string `protobuf:"bytes,6,opt,name=signer,proto3" json:"signer,omitempty"` Signer string `protobuf:"bytes,6,opt,name=signer,proto3" json:"signer,omitempty"`
// Auction's kind (vickrey | service_provider) // Auction's kind (vickrey | provider)
Kind string `protobuf:"bytes,7,opt,name=kind,proto3" json:"kind,omitempty"` Kind string `protobuf:"bytes,7,opt,name=kind,proto3" json:"kind,omitempty"`
// Maximum acceptable bid amount (for service provider auctions) // Maximum acceptable bid amount (for service provider auctions)
MaxPrice *v1beta1.Coin `protobuf:"bytes,8,opt,name=max_price,json=maxPrice,proto3" json:"max_price,omitempty"` MaxPrice *v1beta1.Coin `protobuf:"bytes,8,opt,name=max_price,json=maxPrice,proto3" json:"max_price,omitempty"`

View File

@ -53,7 +53,7 @@ message Auction {
string id = 1; string id = 1;
// Auction's kind (vickrey | service_provider) // Auction's kind (vickrey | provider)
string kind = 2 [ string kind = 2 [
(gogoproto.moretags) = "json:\"kind\" yaml:\"kind\"" (gogoproto.moretags) = "json:\"kind\" yaml:\"kind\""
]; ];
@ -101,7 +101,7 @@ message Auction {
(gogoproto.moretags) = "json:\"minimum_bid\" yaml:\"minimum_bid\"" (gogoproto.moretags) = "json:\"minimum_bid\" yaml:\"minimum_bid\""
]; ];
// Addresses of the winners (one for vickrey and can be multiple for service_provider) // Addresses of the winners (one for vickrey auctions and can be multiple for provider auctions)
repeated string winner_addresses = 11; repeated string winner_addresses = 11;
// Winning bids, i.e., the best bids // Winning bids, i.e., the best bids
@ -110,7 +110,7 @@ message Auction {
(gogoproto.moretags) = "json:\"winning_bids\" yaml:\"winning_bids\"" (gogoproto.moretags) = "json:\"winning_bids\" yaml:\"winning_bids\""
]; ];
// Amount the winner pays, i.e. the second best bid // Amount the winner pays (vickrey auction) or gets paid (provider auction), i.e. the second best bid
cosmos.base.v1beta1.Coin winning_price = 13 [ cosmos.base.v1beta1.Coin winning_price = 13 [
(gogoproto.nullable) = false, (gogoproto.nullable) = false,
(gogoproto.moretags) = "json:\"winning_price\" yaml:\"winning_price\"" (gogoproto.moretags) = "json:\"winning_price\" yaml:\"winning_price\""

View File

@ -77,7 +77,7 @@ message MsgCreateAuction {
string signer = 6 string signer = 6
[ (gogoproto.moretags) = "json:\"signer\" yaml:\"signer\"" ]; [ (gogoproto.moretags) = "json:\"signer\" yaml:\"signer\"" ];
// Auction's kind (vickrey | service_provider) // Auction's kind (vickrey | provider)
string kind = 7 [ string kind = 7 [
(gogoproto.moretags) = "json:\"kind\" yaml:\"kind\"" (gogoproto.moretags) = "json:\"kind\" yaml:\"kind\""
]; ];

View File

@ -113,7 +113,7 @@ func (m *Params) GetMinimumBid() types.Coin {
// Auction represents a sealed-bid on-chain auction // Auction represents a sealed-bid on-chain auction
type Auction struct { type Auction struct {
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
// Auction's kind (vickrey | service_provider) // Auction's kind (vickrey | provider)
Kind string `protobuf:"bytes,2,opt,name=kind,proto3" json:"kind,omitempty" json:"kind" yaml:"kind"` Kind string `protobuf:"bytes,2,opt,name=kind,proto3" json:"kind,omitempty" json:"kind" yaml:"kind"`
Status string `protobuf:"bytes,3,opt,name=status,proto3" json:"status,omitempty"` Status string `protobuf:"bytes,3,opt,name=status,proto3" json:"status,omitempty"`
// Address of the creator of the auction // Address of the creator of the auction
@ -130,7 +130,7 @@ type Auction struct {
RevealFee types.Coin `protobuf:"bytes,9,opt,name=reveal_fee,json=revealFee,proto3" json:"reveal_fee" json:"reveal_fee" yaml:"reveal_fee"` RevealFee types.Coin `protobuf:"bytes,9,opt,name=reveal_fee,json=revealFee,proto3" json:"reveal_fee" json:"reveal_fee" yaml:"reveal_fee"`
// Minimum acceptable bid amount for a valid commit // Minimum acceptable bid amount for a valid commit
MinimumBid types.Coin `protobuf:"bytes,10,opt,name=minimum_bid,json=minimumBid,proto3" json:"minimum_bid" json:"minimum_bid" yaml:"minimum_bid"` MinimumBid types.Coin `protobuf:"bytes,10,opt,name=minimum_bid,json=minimumBid,proto3" json:"minimum_bid" json:"minimum_bid" yaml:"minimum_bid"`
// Addresses of the winners (one for vickrey and can be multiple for service_provider) // Addresses of the winners (one for vickrey auctions and can be multiple for provider auctions)
WinnerAddresses []string `protobuf:"bytes,11,rep,name=winner_addresses,json=winnerAddresses,proto3" json:"winner_addresses,omitempty"` WinnerAddresses []string `protobuf:"bytes,11,rep,name=winner_addresses,json=winnerAddresses,proto3" json:"winner_addresses,omitempty"`
// Winning bids, i.e., the best bids // Winning bids, i.e., the best bids
WinningBids []types.Coin `protobuf:"bytes,12,rep,name=winning_bids,json=winningBids,proto3" json:"winning_bids" json:"winning_bids" yaml:"winning_bids"` WinningBids []types.Coin `protobuf:"bytes,12,rep,name=winning_bids,json=winningBids,proto3" json:"winning_bids" json:"winning_bids" yaml:"winning_bids"`

View File

@ -341,12 +341,12 @@ func (k Keeper) CreateAuction(ctx sdk.Context, msg auctiontypes.MsgCreateAuction
commitsEndTime := now.Add(msg.CommitsDuration) commitsEndTime := now.Add(msg.CommitsDuration)
revealsEndTime := now.Add(msg.CommitsDuration + msg.RevealsDuration) revealsEndTime := now.Add(msg.CommitsDuration + msg.RevealsDuration)
if msg.Kind == auctiontypes.AuctionKindServiceProvider { if msg.Kind == auctiontypes.AuctionKindProvider {
totalLockedAmount := sdk.NewCoin(msg.MaxPrice.Denom, msg.MaxPrice.Amount.MulRaw(int64(msg.NumProviders))) totalLockedAmount := sdk.NewCoin(msg.MaxPrice.Denom, msg.MaxPrice.Amount.MulRaw(int64(msg.NumProviders)))
sdkErr := k.bankKeeper.SendCoinsFromAccountToModule(ctx, signerAddress, auctiontypes.ModuleName, sdk.NewCoins(totalLockedAmount)) sdkErr := k.bankKeeper.SendCoinsFromAccountToModule(ctx, signerAddress, auctiontypes.ModuleName, sdk.NewCoins(totalLockedAmount))
if sdkErr != nil { if sdkErr != nil {
k.Logger(ctx).Error(fmt.Sprintf("Auction error transferring maximum_bid amount: %v", sdkErr)) k.Logger(ctx).Error(fmt.Sprintf("Auction error transferring maximum price amount: %v", sdkErr))
panic(sdkErr) panic(sdkErr)
} }
} }
@ -531,12 +531,12 @@ func (k Keeper) RevealBid(ctx sdk.Context, msg auctiontypes.MsgRevealBid) (*auct
return nil, errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "Invalid reveal bid amount.") return nil, errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "Invalid reveal bid amount.")
} }
if auction.Kind == "vickrey" && bidAmount.IsLT(auction.MinimumBid) { if auction.Kind == auctiontypes.AuctionKindVickrey && bidAmount.IsLT(auction.MinimumBid) {
return nil, errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "Bid is lower than minimum bid.") return nil, errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "Bid is lower than minimum bid.")
} }
if auction.Kind == "service_provider" && bidAmount.IsGTE(auction.MaxPrice) { if auction.Kind == auctiontypes.AuctionKindProvider && bidAmount.IsGTE(auction.MaxPrice) {
return nil, errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "Bid is lower than minimum bid.") return nil, errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "Bid is higher than maximum price.")
} }
// Lock bid amount. // Lock bid amount.
@ -630,7 +630,7 @@ func (k Keeper) processAuctionPhases(ctx sdk.Context) error {
return err return err
} }
} else { } else {
if err = k.pickServiceProviderAuctionWinners(ctx, auction); err != nil { if err = k.pickProviderAuctionWinners(ctx, auction); err != nil {
return err return err
} }
} }
@ -754,8 +754,8 @@ func (k Keeper) pickAuctionWinner(ctx sdk.Context, auction *auctiontypes.Auction
} }
} }
// Process winner accounts (if nobody bids, there won't be a winner). // Process winner account (if nobody bids, there won't be a winner).
if len(auction.WinnerAddresses) == 0 { if len(auction.WinnerAddresses) == 1 {
winnerAddress, err := sdk.AccAddressFromBech32(auction.WinnerAddresses[0]) winnerAddress, err := sdk.AccAddressFromBech32(auction.WinnerAddresses[0])
if err != nil { if err != nil {
k.Logger(ctx).Error(fmt.Sprintf("Invalid winner address. %v", err)) k.Logger(ctx).Error(fmt.Sprintf("Invalid winner address. %v", err))
@ -799,8 +799,8 @@ func (k Keeper) pickAuctionWinner(ctx sdk.Context, auction *auctiontypes.Auction
return nil return nil
} }
// Pick winner for service_provider auction // Pick winner for provider auction
func (k Keeper) pickServiceProviderAuctionWinners(ctx sdk.Context, auction *auctiontypes.Auction) error { func (k Keeper) pickProviderAuctionWinners(ctx sdk.Context, auction *auctiontypes.Auction) error {
k.Logger(ctx).Info(fmt.Sprintf("Picking auction %s winners.", auction.Id)) k.Logger(ctx).Info(fmt.Sprintf("Picking auction %s winners.", auction.Id))
bids, err := k.GetBids(ctx, auction.Id) bids, err := k.GetBids(ctx, auction.Id)
@ -848,7 +848,6 @@ func (k Keeper) pickServiceProviderAuctionWinners(ctx sdk.Context, auction *auct
} }
auction.WinnerAddresses = winnerAddresses auction.WinnerAddresses = winnerAddresses
auction.WinningBids = winningBids auction.WinningBids = winningBids
auction.WinningPrice = winnerBids[0].BidAmount
if len(winnerBids) > 0 { if len(winnerBids) > 0 {
// The last best bid is the winning price // The last best bid is the winning price

View File

@ -68,7 +68,7 @@ func (msg MsgCreateAuction) ValidateBasic() error {
return errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "minimum bid should be greater than zero.") return errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "minimum bid should be greater than zero.")
} }
if msg.Kind == AuctionKindServiceProvider && !msg.MaxPrice.IsPositive() { if msg.Kind == AuctionKindProvider && !msg.MaxPrice.IsPositive() {
return errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "maximum price should be greater than zero.") return errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "maximum price should be greater than zero.")
} }

View File

@ -50,7 +50,7 @@ type MsgCreateAuction struct {
MinimumBid types.Coin `protobuf:"bytes,5,opt,name=minimum_bid,json=minimumBid,proto3" json:"minimum_bid" json:"minimum_bid" yaml:"minimum_bid"` MinimumBid types.Coin `protobuf:"bytes,5,opt,name=minimum_bid,json=minimumBid,proto3" json:"minimum_bid" json:"minimum_bid" yaml:"minimum_bid"`
// Address of the signer // Address of the signer
Signer string `protobuf:"bytes,6,opt,name=signer,proto3" json:"signer,omitempty" json:"signer" yaml:"signer"` Signer string `protobuf:"bytes,6,opt,name=signer,proto3" json:"signer,omitempty" json:"signer" yaml:"signer"`
// Auction's kind (vickrey | service_provider) // Auction's kind (vickrey | provider)
Kind string `protobuf:"bytes,7,opt,name=kind,proto3" json:"kind,omitempty" json:"kind" yaml:"kind"` Kind string `protobuf:"bytes,7,opt,name=kind,proto3" json:"kind,omitempty" json:"kind" yaml:"kind"`
// Maximum acceptable bid amount (for service provider auctions) // Maximum acceptable bid amount (for service provider auctions)
MaxPrice types.Coin `protobuf:"bytes,8,opt,name=max_price,json=maxPrice,proto3" json:"max_price" json:"max_price" yaml:"max_price"` MaxPrice types.Coin `protobuf:"bytes,8,opt,name=max_price,json=maxPrice,proto3" json:"max_price" json:"max_price" yaml:"max_price"`

View File

@ -31,8 +31,8 @@ const (
// Auction kinds // Auction kinds
const ( const (
AuctionKindVickrey = "vickrey" AuctionKindVickrey = "vickrey"
AuctionKindServiceProvider = "service_provider" AuctionKindProvider = "provider"
) )
// AuctionId simplifies generation of auction ids. // AuctionId simplifies generation of auction ids.