Add methods for creating auctions and add auction tests #28
@ -40,7 +40,8 @@ message Params {
|
||||
(gogoproto.moretags) = "json:\"reveal_fee\" yaml:\"reveal_fee\""
|
||||
];
|
||||
|
||||
// Minimum acceptable bid amount (for vickrey auctions)
|
||||
// Minimum acceptable bid amount
|
||||
// Only applicable in vickrey auctions
|
||||
cosmos.base.v1beta1.Coin minimum_bid = 5 [
|
||||
(gogoproto.nullable) = false,
|
||||
(gogoproto.moretags) = "json:\"minimum_bid\" yaml:\"minimum_bid\""
|
||||
@ -53,7 +54,7 @@ message Auction {
|
||||
|
||||
string id = 1;
|
||||
|
||||
// Auction's kind (vickrey | provider)
|
||||
// Auction kind (vickrey | provider)
|
||||
string kind = 2 [ (gogoproto.moretags) = "json:\"kind\" yaml:\"kind\"" ];
|
||||
|
||||
string status = 3;
|
||||
@ -93,34 +94,42 @@ message Auction {
|
||||
(gogoproto.moretags) = "json:\"reveal_fee\" yaml:\"reveal_fee\""
|
||||
];
|
||||
|
||||
// Minimum acceptable bid amount for a valid commit (for vickrey auctions)
|
||||
// Minimum acceptable bid amount for a valid commit
|
||||
// Only applicable in vickrey auctions
|
||||
cosmos.base.v1beta1.Coin minimum_bid = 10 [
|
||||
(gogoproto.nullable) = false,
|
||||
(gogoproto.moretags) = "json:\"minimum_bid\" yaml:\"minimum_bid\""
|
||||
];
|
||||
|
||||
// Winner's address for Vickrey auctions, can be multiple for provider auctions
|
||||
// Addresses of the winners
|
||||
// (single winner for vickrey auction)
|
||||
// (multiple winners for provider auctions)
|
||||
repeated string winner_addresses = 11;
|
||||
|
||||
// Winning bids, i.e., the best bids
|
||||
// Winning bids, i.e. the best bids
|
||||
repeated cosmos.base.v1beta1.Coin winning_bids = 12 [
|
||||
(gogoproto.nullable) = false,
|
||||
(gogoproto.moretags) = "json:\"winning_bids\" yaml:\"winning_bids\""
|
||||
];
|
||||
|
||||
// Amount the winner pays (vickrey auction) or is paid (provider auction)
|
||||
// Auction winning price
|
||||
// vickrey auction: second highest bid, paid by the winner
|
||||
// provider auction: higest bid amongst winning_bids, paid by auction creator
|
||||
// to each winner
|
||||
cosmos.base.v1beta1.Coin winning_price = 13 [
|
||||
(gogoproto.nullable) = false,
|
||||
(gogoproto.moretags) = "json:\"winning_price\" yaml:\"winning_price\""
|
||||
];
|
||||
|
||||
// Maximum acceptable bid amount (for provider auctions)
|
||||
// Maximum acceptable bid amount for a valid commit
|
||||
// Only applicable in provider auctions
|
||||
cosmos.base.v1beta1.Coin max_price = 14 [
|
||||
(gogoproto.nullable) = false,
|
||||
(gogoproto.moretags) = "json:\"max_price\" yaml:\"max_price\""
|
||||
];
|
||||
|
||||
// Number of providers to be selected
|
||||
// Number of desired providers (num of auction winners)
|
||||
// Only applicable in provider auctions
|
||||
int32 num_providers = 15;
|
||||
}
|
||||
|
||||
|
@ -41,52 +41,55 @@ message MsgCreateAuction {
|
||||
option (gogoproto.goproto_getters) = false;
|
||||
option (cosmos.msg.v1.signer) = "signer";
|
||||
|
||||
// Address of the signer
|
||||
string signer = 1
|
||||
[ (gogoproto.moretags) = "json:\"signer\" yaml:\"signer\"" ];
|
||||
|
||||
// Auction kind (vickrey | provider)
|
||||
string kind = 2 [ (gogoproto.moretags) = "json:\"kind\" yaml:\"kind\"" ];
|
||||
|
||||
// Duration of the commits phase in seconds
|
||||
google.protobuf.Duration commits_duration = 1 [
|
||||
google.protobuf.Duration commits_duration = 3 [
|
||||
(gogoproto.nullable) = false,
|
||||
(gogoproto.stdduration) = true,
|
||||
(gogoproto.moretags) = "json:\"commits_duration\" yaml:\"commits_duration\""
|
||||
];
|
||||
|
||||
// Duration of the reveals phase in seconds
|
||||
google.protobuf.Duration reveals_duration = 2 [
|
||||
google.protobuf.Duration reveals_duration = 4 [
|
||||
(gogoproto.nullable) = false,
|
||||
(gogoproto.stdduration) = true,
|
||||
(gogoproto.moretags) = "json:\"reveals_duration\" yaml:\"reveals_duration\""
|
||||
];
|
||||
|
||||
// Commit fees
|
||||
cosmos.base.v1beta1.Coin commit_fee = 3 [
|
||||
cosmos.base.v1beta1.Coin commit_fee = 5 [
|
||||
(gogoproto.nullable) = false,
|
||||
(gogoproto.moretags) = "json:\"commit_fee\" yaml:\"commit_fee\""
|
||||
];
|
||||
|
||||
// Reveal fees
|
||||
cosmos.base.v1beta1.Coin reveal_fee = 4 [
|
||||
cosmos.base.v1beta1.Coin reveal_fee = 6 [
|
||||
(gogoproto.nullable) = false,
|
||||
(gogoproto.moretags) = "json:\"reveal_fee\" yaml:\"reveal_fee\""
|
||||
];
|
||||
|
||||
// Minimum acceptable bid amount (for vickrey auctions)
|
||||
cosmos.base.v1beta1.Coin minimum_bid = 5 [
|
||||
// Minimum acceptable bid amount
|
||||
// Only applicable in vickrey auctions
|
||||
cosmos.base.v1beta1.Coin minimum_bid = 7 [
|
||||
(gogoproto.nullable) = false,
|
||||
(gogoproto.moretags) = "json:\"minimum_bid\" yaml:\"minimum_bid\""
|
||||
];
|
||||
|
||||
// Address of the signer
|
||||
string signer = 6
|
||||
[ (gogoproto.moretags) = "json:\"signer\" yaml:\"signer\"" ];
|
||||
|
||||
// Auction's kind (vickrey | provider)
|
||||
string kind = 7 [ (gogoproto.moretags) = "json:\"kind\" yaml:\"kind\"" ];
|
||||
|
||||
// Maximum acceptable bid amount (for provider auctions)
|
||||
// Maximum acceptable bid amount
|
||||
// Only applicable in provider auctions
|
||||
cosmos.base.v1beta1.Coin max_price = 8 [
|
||||
(gogoproto.nullable) = false,
|
||||
(gogoproto.moretags) = "json:\"max_price\" yaml:\"max_price\""
|
||||
];
|
||||
|
||||
// Number of providers to be selected
|
||||
// Number of desired providers (num of auction winners)
|
||||
// Only applicable in provider auctions
|
||||
int32 num_providers = 9;
|
||||
}
|
||||
|
||||
|
@ -17,14 +17,17 @@ export interface Params {
|
||||
commitFee?: Coin;
|
||||
/** Reveal fees */
|
||||
revealFee?: Coin;
|
||||
/** Minimum acceptable bid amount */
|
||||
/**
|
||||
* Minimum acceptable bid amount
|
||||
* Only applicable in vickrey auctions
|
||||
*/
|
||||
minimumBid?: Coin;
|
||||
}
|
||||
|
||||
/** Auction represents a sealed-bid on-chain auction */
|
||||
export interface Auction {
|
||||
id: string;
|
||||
/** Auction's kind (vickrey | provider) */
|
||||
/** Auction kind (vickrey | provider) */
|
||||
kind: string;
|
||||
status: string;
|
||||
/** Address of the creator of the auction */
|
||||
@ -41,17 +44,35 @@ export interface Auction {
|
||||
*/
|
||||
commitFee?: Coin;
|
||||
revealFee?: Coin;
|
||||
/** Minimum acceptable bid amount for a valid commit */
|
||||
/**
|
||||
* Minimum acceptable bid amount for a valid commit
|
||||
* Only applicable in vickrey auctions
|
||||
*/
|
||||
minimumBid?: Coin;
|
||||
/** Addresses of the winners (one for vickrey auctions and can be multiple for provider auctions) */
|
||||
/**
|
||||
* Addresses of the winners
|
||||
* (single winner for vickrey auction)
|
||||
* (multiple winners for provider auctions)
|
||||
*/
|
||||
winnerAddresses: string[];
|
||||
/** Winning bids, i.e., the best bids */
|
||||
/** Winning bids, i.e. the best bids */
|
||||
winningBids: Coin[];
|
||||
/** Amount the winner pays, i.e. the second best bid */
|
||||
/**
|
||||
* Auction winning price
|
||||
* vickrey auction: second highest bid, paid by the winner
|
||||
* provider auction: higest bid amongst winning_bids, paid by auction creator
|
||||
* to each winner
|
||||
*/
|
||||
winningPrice?: Coin;
|
||||
/** Maximum acceptable bid amount for a valid commit for service provider auctions */
|
||||
/**
|
||||
* Maximum acceptable bid amount for a valid commit
|
||||
* Only applicable in provider auctions
|
||||
*/
|
||||
maxPrice?: Coin;
|
||||
/** Number of providers to be selected */
|
||||
/**
|
||||
* Number of desired providers (num of auction winners)
|
||||
* Only applicable in provider auctions
|
||||
*/
|
||||
numProviders: number;
|
||||
}
|
||||
|
||||
|
@ -9,6 +9,10 @@ export const protobufPackage = "cerc.auction.v1";
|
||||
|
||||
/** MsgCreateAuction defines a create auction message */
|
||||
export interface MsgCreateAuction {
|
||||
/** Address of the signer */
|
||||
signer: string;
|
||||
/** Auction kind (vickrey | provider) */
|
||||
kind: string;
|
||||
/** Duration of the commits phase in seconds */
|
||||
commitsDuration?: Duration;
|
||||
/** Duration of the reveals phase in seconds */
|
||||
@ -17,15 +21,20 @@ export interface MsgCreateAuction {
|
||||
commitFee?: Coin;
|
||||
/** Reveal fees */
|
||||
revealFee?: Coin;
|
||||
/** Minimum acceptable bid amount */
|
||||
/**
|
||||
* Minimum acceptable bid amount
|
||||
* Only applicable in vickrey auctions
|
||||
*/
|
||||
minimumBid?: Coin;
|
||||
/** Address of the signer */
|
||||
signer: string;
|
||||
/** Auction's kind (vickrey | provider) */
|
||||
kind: string;
|
||||
/** Maximum acceptable bid amount (for service provider auctions) */
|
||||
/**
|
||||
* Maximum acceptable bid amount
|
||||
* Only applicable in provider auctions
|
||||
*/
|
||||
maxPrice?: Coin;
|
||||
/** Number of providers to be selected */
|
||||
/**
|
||||
* Number of desired providers (num of auction winners)
|
||||
* Only applicable in provider auctions
|
||||
*/
|
||||
numProviders: number;
|
||||
}
|
||||
|
||||
@ -90,13 +99,13 @@ export interface MsgUpdateParamsResponse {}
|
||||
|
||||
function createBaseMsgCreateAuction(): MsgCreateAuction {
|
||||
return {
|
||||
signer: "",
|
||||
kind: "",
|
||||
commitsDuration: undefined,
|
||||
revealsDuration: undefined,
|
||||
commitFee: undefined,
|
||||
revealFee: undefined,
|
||||
minimumBid: undefined,
|
||||
signer: "",
|
||||
kind: "",
|
||||
maxPrice: undefined,
|
||||
numProviders: 0,
|
||||
};
|
||||
@ -107,32 +116,32 @@ export const MsgCreateAuction = {
|
||||
message: MsgCreateAuction,
|
||||
writer: _m0.Writer = _m0.Writer.create()
|
||||
): _m0.Writer {
|
||||
if (message.signer !== "") {
|
||||
writer.uint32(10).string(message.signer);
|
||||
}
|
||||
if (message.kind !== "") {
|
||||
writer.uint32(18).string(message.kind);
|
||||
}
|
||||
if (message.commitsDuration !== undefined) {
|
||||
Duration.encode(
|
||||
message.commitsDuration,
|
||||
writer.uint32(10).fork()
|
||||
writer.uint32(26).fork()
|
||||
).ldelim();
|
||||
}
|
||||
if (message.revealsDuration !== undefined) {
|
||||
Duration.encode(
|
||||
message.revealsDuration,
|
||||
writer.uint32(18).fork()
|
||||
writer.uint32(34).fork()
|
||||
).ldelim();
|
||||
}
|
||||
if (message.commitFee !== undefined) {
|
||||
Coin.encode(message.commitFee, writer.uint32(26).fork()).ldelim();
|
||||
Coin.encode(message.commitFee, writer.uint32(42).fork()).ldelim();
|
||||
}
|
||||
if (message.revealFee !== undefined) {
|
||||
Coin.encode(message.revealFee, writer.uint32(34).fork()).ldelim();
|
||||
Coin.encode(message.revealFee, writer.uint32(50).fork()).ldelim();
|
||||
}
|
||||
if (message.minimumBid !== undefined) {
|
||||
Coin.encode(message.minimumBid, writer.uint32(42).fork()).ldelim();
|
||||
}
|
||||
if (message.signer !== "") {
|
||||
writer.uint32(50).string(message.signer);
|
||||
}
|
||||
if (message.kind !== "") {
|
||||
writer.uint32(58).string(message.kind);
|
||||
Coin.encode(message.minimumBid, writer.uint32(58).fork()).ldelim();
|
||||
}
|
||||
if (message.maxPrice !== undefined) {
|
||||
Coin.encode(message.maxPrice, writer.uint32(66).fork()).ldelim();
|
||||
@ -151,26 +160,26 @@ export const MsgCreateAuction = {
|
||||
const tag = reader.uint32();
|
||||
switch (tag >>> 3) {
|
||||
case 1:
|
||||
message.commitsDuration = Duration.decode(reader, reader.uint32());
|
||||
break;
|
||||
case 2:
|
||||
message.revealsDuration = Duration.decode(reader, reader.uint32());
|
||||
break;
|
||||
case 3:
|
||||
message.commitFee = Coin.decode(reader, reader.uint32());
|
||||
break;
|
||||
case 4:
|
||||
message.revealFee = Coin.decode(reader, reader.uint32());
|
||||
break;
|
||||
case 5:
|
||||
message.minimumBid = Coin.decode(reader, reader.uint32());
|
||||
break;
|
||||
case 6:
|
||||
message.signer = reader.string();
|
||||
break;
|
||||
case 7:
|
||||
case 2:
|
||||
message.kind = reader.string();
|
||||
break;
|
||||
case 3:
|
||||
message.commitsDuration = Duration.decode(reader, reader.uint32());
|
||||
break;
|
||||
case 4:
|
||||
message.revealsDuration = Duration.decode(reader, reader.uint32());
|
||||
break;
|
||||
case 5:
|
||||
message.commitFee = Coin.decode(reader, reader.uint32());
|
||||
break;
|
||||
case 6:
|
||||
message.revealFee = Coin.decode(reader, reader.uint32());
|
||||
break;
|
||||
case 7:
|
||||
message.minimumBid = Coin.decode(reader, reader.uint32());
|
||||
break;
|
||||
case 8:
|
||||
message.maxPrice = Coin.decode(reader, reader.uint32());
|
||||
break;
|
||||
@ -187,6 +196,8 @@ export const MsgCreateAuction = {
|
||||
|
||||
fromJSON(object: any): MsgCreateAuction {
|
||||
return {
|
||||
signer: isSet(object.signer) ? String(object.signer) : "",
|
||||
kind: isSet(object.kind) ? String(object.kind) : "",
|
||||
commitsDuration: isSet(object.commitsDuration)
|
||||
? Duration.fromJSON(object.commitsDuration)
|
||||
: undefined,
|
||||
@ -202,8 +213,6 @@ export const MsgCreateAuction = {
|
||||
minimumBid: isSet(object.minimumBid)
|
||||
? Coin.fromJSON(object.minimumBid)
|
||||
: undefined,
|
||||
signer: isSet(object.signer) ? String(object.signer) : "",
|
||||
kind: isSet(object.kind) ? String(object.kind) : "",
|
||||
maxPrice: isSet(object.maxPrice)
|
||||
? Coin.fromJSON(object.maxPrice)
|
||||
: undefined,
|
||||
@ -215,6 +224,8 @@ export const MsgCreateAuction = {
|
||||
|
||||
toJSON(message: MsgCreateAuction): unknown {
|
||||
const obj: any = {};
|
||||
message.signer !== undefined && (obj.signer = message.signer);
|
||||
message.kind !== undefined && (obj.kind = message.kind);
|
||||
message.commitsDuration !== undefined &&
|
||||
(obj.commitsDuration = message.commitsDuration
|
||||
? Duration.toJSON(message.commitsDuration)
|
||||
@ -235,8 +246,6 @@ export const MsgCreateAuction = {
|
||||
(obj.minimumBid = message.minimumBid
|
||||
? Coin.toJSON(message.minimumBid)
|
||||
: undefined);
|
||||
message.signer !== undefined && (obj.signer = message.signer);
|
||||
message.kind !== undefined && (obj.kind = message.kind);
|
||||
message.maxPrice !== undefined &&
|
||||
(obj.maxPrice = message.maxPrice
|
||||
? Coin.toJSON(message.maxPrice)
|
||||
@ -250,6 +259,8 @@ export const MsgCreateAuction = {
|
||||
object: I
|
||||
): MsgCreateAuction {
|
||||
const message = createBaseMsgCreateAuction();
|
||||
message.signer = object.signer ?? "";
|
||||
message.kind = object.kind ?? "";
|
||||
message.commitsDuration =
|
||||
object.commitsDuration !== undefined && object.commitsDuration !== null
|
||||
? Duration.fromPartial(object.commitsDuration)
|
||||
@ -270,8 +281,6 @@ export const MsgCreateAuction = {
|
||||
object.minimumBid !== undefined && object.minimumBid !== null
|
||||
? Coin.fromPartial(object.minimumBid)
|
||||
: undefined;
|
||||
message.signer = object.signer ?? "";
|
||||
message.kind = object.kind ?? "";
|
||||
message.maxPrice =
|
||||
object.maxPrice !== undefined && object.maxPrice !== null
|
||||
? Coin.fromPartial(object.maxPrice)
|
||||
|
Loading…
Reference in New Issue
Block a user