feat: add interactive deployment and switch to poetry #2
@ -50,7 +50,6 @@ ExtraArgs = {"skip_gen": str, "skip_deploy": str, "target": str, "path": str, "p
|
||||
|
||||
|
||||
def execute(config: Config, eargs: ExtraArgs):
|
||||
print(f"eargs: {eargs}")
|
||||
directory = eargs.path
|
||||
target = eargs.target
|
||||
skip_gen = eargs.skip_gen
|
||||
@ -66,8 +65,12 @@ def execute(config: Config, eargs: ExtraArgs):
|
||||
|
||||
print(contract)
|
||||
|
||||
print(f"Meta: {config.get('META_URL')}")
|
||||
print(f"ChainSpec: {config.get('CHAIN_SPEC', contract.network.chain_spec(target))}")
|
||||
print(f"RPC: {config.get('RPC_PROVIDER')}\n")
|
||||
|
||||
if not skip_deploy:
|
||||
ready_to_deploy = input("Ready to deploy? (y/n): ")
|
||||
ready_to_deploy = input("Are you ready to Deploy? (y/n): ")
|
||||
if ready_to_deploy == "y":
|
||||
deploy_contract(
|
||||
config=config,
|
||||
@ -76,7 +79,7 @@ def execute(config: Config, eargs: ExtraArgs):
|
||||
)
|
||||
print("Deployed")
|
||||
else:
|
||||
print("Not deploying")
|
||||
print("Skipping deployment")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
@ -3,25 +3,25 @@ import importlib
|
||||
import json
|
||||
import logging
|
||||
import os
|
||||
from typing import List, TYPE_CHECKING
|
||||
from typing import TYPE_CHECKING, List
|
||||
|
||||
import requests
|
||||
from chainlib.chain import ChainSpec
|
||||
from chainlib.cli.config import Config
|
||||
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.helpers import init_writers_from_config
|
||||
from cic.contract.network import Network
|
||||
|
||||
# Local Modules
|
||||
from cic.contract.processor import ContractProcessor
|
||||
from cic.writers import HTTPWriter, KeyedWriterFactory, MetadataWriter, OutputWriter
|
||||
|
||||
# external imports
|
||||
from cic_types.ext.metadata import MetadataRequestsHandler
|
||||
from cic_types.ext.metadata.signer import Signer as MetadataSigner
|
||||
from chainlib.cli.config import Config
|
||||
from chainlib.chain import ChainSpec
|
||||
|
||||
# Local Modules
|
||||
from cic.contract.processor import ContractProcessor
|
||||
from cic.contract.components.attachment import Attachment
|
||||
from cic.contract.components.meta import Meta
|
||||
from cic.contract.network import Network
|
||||
from cic.contract.components.proof import Proof
|
||||
from cic.contract.components.token import Token
|
||||
from cic.contract.helpers import init_writers_from_config
|
||||
from cic.writers import HTTPWriter, KeyedWriterFactory, OutputWriter, MetadataWriter
|
||||
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
@ -45,12 +45,12 @@ class Contract:
|
||||
|
||||
def __str__(self):
|
||||
s = ""
|
||||
s += f"[cic.header]\nversion = {self.proof.version()}\n"
|
||||
s += f"[cic.token]\n{self.token}"
|
||||
s += f"[cic.proof]\n{self.proof}"
|
||||
s += f"[cic.meta]\n{self.meta}"
|
||||
s += f"[cic.attachment]\n{self.attachment}"
|
||||
s += f"[cic.network]\n{self.network}"
|
||||
s += f"\n[cic.header]\nversion = {self.proof.version()}\n\n"
|
||||
s += f"[cic.token]\n{self.token}\n"
|
||||
s += f"[cic.proof]\n{self.proof}\n"
|
||||
s += f"[cic.meta]\n{self.meta}\n"
|
||||
s += f"[cic.attachment]\n{self.attachment}\n"
|
||||
s += f"[cic.network]\n{self.network}\n"
|
||||
return s
|
||||
|
||||
|
||||
@ -76,10 +76,10 @@ def generate_contract(
|
||||
) -> Contract:
|
||||
if os.path.exists(directory):
|
||||
contine = input(
|
||||
"Directory already exists, Would you like to delete it? (y/n): "
|
||||
f"Directory {directory} already exists, Would you like to delete it? (y/n): "
|
||||
)
|
||||
if contine.lower() != "y":
|
||||
print("Trying to load existing contract")
|
||||
log.debug("Trying to load existing contract")
|
||||
return load_contract(directory)
|
||||
else:
|
||||
print(f"Deleted {directory}")
|
||||
@ -117,6 +117,8 @@ def generate_contract(
|
||||
cmd_mod = importlib.import_module(modname)
|
||||
signer_hint = config.get("WALLET_KEY_FILE")
|
||||
keys = cmd_mod.list_keys(config, signer_hint)
|
||||
if len(keys) > 1:
|
||||
print(f"More than one key found, please select one:")
|
||||
for idx, key in enumerate(keys):
|
||||
print(f"{idx} - {key} ")
|
||||
selecting_key = True
|
||||
@ -127,6 +129,8 @@ def generate_contract(
|
||||
selecting_key = False
|
||||
else:
|
||||
print("Invalid key, try again")
|
||||
else:
|
||||
key_account_address = keys[0]
|
||||
|
||||
m = importlib.import_module(f"cic.ext.{target}.start")
|
||||
m.extension_start(
|
||||
@ -134,7 +138,7 @@ def generate_contract(
|
||||
registry_address=config.get("CIC_REGISTRY_ADDRESS"),
|
||||
chain_spec=ChainSpec.from_chain_str(config.get("CHAIN_SPEC")),
|
||||
rpc_provider=config.get("RPC_PROVIDER"),
|
||||
key_account_address=key_account_address
|
||||
key_account_address=key_account_address,
|
||||
)
|
||||
network.load()
|
||||
|
||||
@ -197,7 +201,6 @@ def deploy_contract(
|
||||
chain_spec = cn.chain_spec
|
||||
config.add(chain_spec, "CHAIN_SPEC", exists_ok=True)
|
||||
log.debug(f"using CHAIN_SPEC: {str(chain_spec)} from network")
|
||||
print(chain_spec)
|
||||
|
||||
signer_hint = config.get("WALLET_KEY_FILE")
|
||||
(rpc, signer) = cmd_mod.parse_adapter(config, signer_hint)
|
||||
|
@ -132,10 +132,12 @@ class Network(Data):
|
||||
def __str__(self):
|
||||
s = ''
|
||||
for resource in self.resources.keys():
|
||||
chainspec = ChainSpec.from_dict(self.resources[resource]['chain_spec'])
|
||||
s += f'{resource}.chain_spec: {str(chainspec)}\n'
|
||||
for content_key in self.resources[resource]['contents'].keys():
|
||||
content_value = self.resources[resource]['contents'][content_key]
|
||||
if content_value is None:
|
||||
content_value = ''
|
||||
s += f'{resource}.{content_key} = {content_value}\n'
|
||||
s += f'{resource}.contents.{content_key} = {json.dumps(content_value, indent=4, sort_keys=True)}\n'
|
||||
|
||||
return s
|
||||
|
Loading…
Reference in New Issue
Block a user