Skip to content

Commit a5caa15

Browse files
committed
Apply mkt hour conditions when starting a new round + Add min/max participants
1 parent f7680f3 commit a5caa15

File tree

26 files changed

+392
-226
lines changed

26 files changed

+392
-226
lines changed

api-spec/openapi/swagger/ark/v1/admin.openapi.json

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1035,6 +1035,14 @@
10351035
"type": "integer",
10361036
"format": "int64"
10371037
},
1038+
"roundMaxParticipantsCount": {
1039+
"type": "integer",
1040+
"format": "int64"
1041+
},
1042+
"roundMinParticipantsCount": {
1043+
"type": "integer",
1044+
"format": "int64"
1045+
},
10381046
"startTime": {
10391047
"type": "integer",
10401048
"format": "int64"

api-spec/protobuf/ark/v1/admin.proto

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,8 @@ message MarketHourConfig {
160160
int64 end_time = 2;
161161
int64 period = 3;
162162
int64 round_interval = 4;
163+
int64 round_min_participants_count = 5;
164+
int64 round_max_participants_count = 6;
163165
}
164166

165167
message IntentInput {

api-spec/protobuf/gen/ark/v1/admin.pb.go

Lines changed: 27 additions & 9 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

api-spec/protobuf/gen/ark/v1/indexer.pb.rgw.go

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

cmd/arkd/commands.go

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,8 @@ var (
139139
Usage: "Update the market hour configuration",
140140
Flags: []cli.Flag{
141141
marketHourStartDateFlag, marketHourEndDateFlag,
142-
marketHourRoundIntervalFlag, marketHourPeriodFlag,
142+
marketHourPeriodFlag, marketHourRoundIntervalFlag,
143+
marketHourRoundMinParticipantsCountFlag, marketHourRoundMaxParticipantsCountFlag,
143144
},
144145
Action: updateMarketHourAction,
145146
}
@@ -563,8 +564,10 @@ func updateMarketHourAction(ctx *cli.Context) error {
563564
baseURL := ctx.String(urlFlagName)
564565
startDate := ctx.String(marketHourStartDateFlagName)
565566
endDate := ctx.String(marketHourEndDateFlagName)
566-
roundInterval := ctx.Uint(marketHourRoundIntervalFlagName)
567567
period := ctx.Uint(marketHourPeriodFlagName)
568+
roundInterval := ctx.Uint(marketHourRoundIntervalFlagName)
569+
roundMinParticipantsCount := ctx.Uint(marketHourRoundMinParticipantsCountFlagName)
570+
roundMaxParticipantsCount := ctx.Uint(marketHourRoundMaxParticipantsCountFlagName)
568571

569572
if ctx.IsSet(marketHourStartDateFlagName) != ctx.IsSet(marketHourEndDateFlagName) {
570573
return fmt.Errorf("--start-date and --end-date must be set together")
@@ -595,6 +598,12 @@ func updateMarketHourAction(ctx *cli.Context) error {
595598
if period > 0 {
596599
mhConfig["period"] = strconv.Itoa(int(period))
597600
}
601+
if roundMinParticipantsCount > 0 {
602+
mhConfig["roundMinParticipantsCount"] = strconv.Itoa(int(roundMinParticipantsCount))
603+
}
604+
if roundMaxParticipantsCount > 0 {
605+
mhConfig["roundMaxParticipantsCount"] = strconv.Itoa(int(roundMaxParticipantsCount))
606+
}
598607
bodyMap := map[string]map[string]string{"config": mhConfig}
599608
body, err := json.Marshal(bodyMap)
600609
if err != nil {

cmd/arkd/flags.go

Lines changed: 30 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -10,26 +10,28 @@ import (
1010
)
1111

1212
const (
13-
urlFlagName = "url"
14-
datadirFlagName = "datadir"
15-
macaroonFlagName = "macaroon"
16-
passwordFlagName = "password"
17-
dbPathFlagName = "datadir"
18-
mnemonicFlagName = "mnemonic"
19-
gapLimitFlagName = "addr-gap-limit"
20-
amountFlagName = "amount"
21-
quantityFlagName = "quantity"
22-
addressFlagName = "address"
23-
intentIdsFlagName = "ids"
24-
roundIdFlagName = "id"
25-
beforeDateFlagName = "before-date"
26-
afterDateFlagName = "after-date"
27-
marketHourStartDateFlagName = "start-date"
28-
marketHourEndDateFlagName = "end-date"
29-
marketHourRoundIntervalFlagName = "round-interval"
30-
marketHourPeriodFlagName = "period"
31-
signerKeyFlagName = "signer-prvkey"
32-
signerUrlFlagName = "signer-url"
13+
urlFlagName = "url"
14+
datadirFlagName = "datadir"
15+
macaroonFlagName = "macaroon"
16+
passwordFlagName = "password"
17+
dbPathFlagName = "datadir"
18+
mnemonicFlagName = "mnemonic"
19+
gapLimitFlagName = "addr-gap-limit"
20+
amountFlagName = "amount"
21+
quantityFlagName = "quantity"
22+
addressFlagName = "address"
23+
intentIdsFlagName = "ids"
24+
roundIdFlagName = "id"
25+
beforeDateFlagName = "before-date"
26+
afterDateFlagName = "after-date"
27+
marketHourStartDateFlagName = "start-date"
28+
marketHourEndDateFlagName = "end-date"
29+
marketHourRoundIntervalFlagName = "round-interval"
30+
marketHourPeriodFlagName = "period"
31+
marketHourRoundMinParticipantsCountFlagName = "round-min-participants"
32+
marketHourRoundMaxParticipantsCountFlagName = "round-max-participants"
33+
signerKeyFlagName = "signer-prvkey"
34+
signerUrlFlagName = "signer-url"
3335

3436
dateFormat = time.DateOnly
3537
marketHourDateFormat = time.DateTime
@@ -135,6 +137,14 @@ var (
135137
Name: marketHourPeriodFlagName,
136138
Usage: "the market hour period in minutes, ie the interval between a market hour and the next one",
137139
}
140+
marketHourRoundMinParticipantsCountFlag = &cli.IntFlag{
141+
Name: marketHourRoundMinParticipantsCountFlagName,
142+
Usage: "the min number of participants per round during a market hour",
143+
}
144+
marketHourRoundMaxParticipantsCountFlag = &cli.IntFlag{
145+
Name: marketHourRoundMaxParticipantsCountFlagName,
146+
Usage: "the max number of participants per round during a market hour",
147+
}
138148
signerKeyFlag = &cli.StringFlag{
139149
Name: signerKeyFlagName,
140150
Usage: "the private key to be loaded to arkd wallet and used as signer",

0 commit comments

Comments
 (0)