feat: add giftable generation
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
@@ -11,7 +11,7 @@ from cic.contract.components.attachment import Attachment
|
||||
from cic.contract.components.meta import Meta
|
||||
from cic.contract.components.proof import Proof
|
||||
from cic.contract.components.token import Token
|
||||
from cic.contract.constants import DMR_CONTRACT_URL
|
||||
from cic.contract.constants import DMR_CONTRACT_URL, GITABLE_CONTRACT_URL
|
||||
from cic.contract.contract import Contract
|
||||
from cic.contract.helpers import download_file
|
||||
from cic.contract.network import Network
|
||||
@@ -59,7 +59,6 @@ def load_contracts_from_csv(config, directory, csv_path: str) -> List[Contract]:
|
||||
targets = ["eth"]
|
||||
os.makedirs(directory)
|
||||
contract_rows = []
|
||||
bin_path = os.path.abspath(download_file(DMR_CONTRACT_URL + ".bin"))
|
||||
with open(csv_path, "rt", encoding="utf-8") as file:
|
||||
csvreader = csv.reader(file, delimiter=",")
|
||||
for idx, row in enumerate(csvreader):
|
||||
@@ -88,22 +87,38 @@ def load_contracts_from_csv(config, directory, csv_path: str) -> List[Contract]:
|
||||
sink_account = contract_row[CSV_Column.sink_account]
|
||||
description = contract_row[CSV_Column.description]
|
||||
|
||||
if token_type != "demurrage":
|
||||
raise Exception(
|
||||
f"Only demurrage tokens are supported at this time. {token_type} is not supported"
|
||||
if token_type == "demurrage":
|
||||
bin_path = os.path.abspath(download_file(DMR_CONTRACT_URL + ".bin"))
|
||||
log.info(f"Generating {token_type} contract for {issuer}")
|
||||
token = Token(
|
||||
directory,
|
||||
name=voucher_name,
|
||||
symbol=symbol,
|
||||
precision=precision,
|
||||
supply=supply,
|
||||
extra_args=[demurrage, period_minutes, sink_account],
|
||||
extra_args_types=["uint256", "uint256", "address"],
|
||||
code=bin_path,
|
||||
)
|
||||
elif token_type == "giftable":
|
||||
bin_path = os.path.abspath(download_file(GITABLE_CONTRACT_URL + ".bin"))
|
||||
token = Token(
|
||||
directory,
|
||||
name=voucher_name,
|
||||
symbol=symbol,
|
||||
precision=precision,
|
||||
supply=supply,
|
||||
extra_args=[],
|
||||
extra_args_types=[],
|
||||
code=bin_path,
|
||||
)
|
||||
else:
|
||||
raise Exception(
|
||||
f"Only demurrage and gitable contracts currently supported at this time. {token_type} is not supported"
|
||||
)
|
||||
if token is None:
|
||||
raise Exception(f"There was an issue building the contract")
|
||||
|
||||
log.info("Generating token")
|
||||
token = Token(
|
||||
directory,
|
||||
name=voucher_name,
|
||||
symbol=symbol,
|
||||
precision=precision,
|
||||
supply=supply,
|
||||
extra_args=[demurrage, period_minutes, sink_account],
|
||||
extra_args_types=["uint256", "uint256", "address"],
|
||||
code=bin_path,
|
||||
)
|
||||
token.start()
|
||||
|
||||
log.info("Generating proof")
|
||||
|
||||
Reference in New Issue
Block a user