From 2319699c6826c541d494320050a055ce4bed8a63 Mon Sep 17 00:00:00 2001 From: Prathamesh Musale Date: Thu, 26 Sep 2024 12:19:14 +0530 Subject: [PATCH] Add a util method to create a provider auction --- stack_orchestrator/deploy/webapp/util.py | 67 ++++++++++++++++++++++++ 1 file changed, 67 insertions(+) diff --git a/stack_orchestrator/deploy/webapp/util.py b/stack_orchestrator/deploy/webapp/util.py index c6b6a786..e8a74fa5 100644 --- a/stack_orchestrator/deploy/webapp/util.py +++ b/stack_orchestrator/deploy/webapp/util.py @@ -24,6 +24,8 @@ import tempfile import uuid import yaml +AUCTION_KIND_PROVIDER = "provider" +TOKEN_DENOM = "alnt" class AttrDict(dict): def __init__(self, *args, **kwargs): @@ -471,6 +473,57 @@ class LaconicRegistryClient: return AttrDict(json.loads(logged_cmd(self.log_file, *args))) + def create_auction(self, auction): + if auction["kind"] == "provider": + args = [ + "laconic", + "-c", + self.config_file, + "registry", + "auction", + "create", + "--kind", + auction["kind"], + "--commits-duration", + str(auction["commits_duration"]), + "--reveals-duration", + str(auction["reveals_duration"]), + "--denom", + auction["denom"], + "--commit-fee", + str(auction["commit_fee"]), + "--reveal-fee", + str(auction["reveal_fee"]), + "--max-price", + str(auction["max_price"]), + "--num-providers", + str(auction["num_providers"]) + ] + else: + args = [ + "laconic", + "-c", + self.config_file, + "registry", + "auction", + "create", + "--kind", + auction["kind"], + "--commits-duration", + str(auction["commits_duration"]), + "--reveals-duration", + str(auction["reveals_duration"]), + "--denom", + auction["denom"], + "--commit-fee", + str(auction["commit_fee"]), + "--reveal-fee", + str(auction["reveal_fee"]), + "--minimum-bid", + str(auction["minimum_bid"]) + ] + + return json.loads(logged_cmd(self.log_file, *args))["auctionId"] def file_hash(filename): return hashlib.sha1(open(filename).read().encode()).hexdigest() @@ -730,3 +783,17 @@ def skip_by_tag(r, include_tags, exclude_tags): return True return False + +def create_provider_auction(laconic: LaconicRegistryClient, params): + auction_params = { + "kind": AUCTION_KIND_PROVIDER, + "commits_duration": params["commits_duration"], + "reveals_duration": params["reveals_duration"], + "denom": TOKEN_DENOM, + "commit_fee": params["commit_fee"], + "reveal_fee": params["reveal_fee"], + "max_price": params["max_price"], + "num_providers": params["num_providers"], + } + + return laconic.create_auction(auction_params)