save
This commit is contained in:
@@ -1,32 +1,26 @@
|
||||
# standard imports
|
||||
import logging
|
||||
import importlib
|
||||
import os
|
||||
from __future__ import annotations
|
||||
|
||||
# standard imports
|
||||
import importlib
|
||||
import logging
|
||||
import os
|
||||
from typing import TYPE_CHECKING
|
||||
# local imports
|
||||
from cic import Processor, Proof
|
||||
from cic.attachment import Attachment
|
||||
from cic.meta import Meta, MetadataWriter
|
||||
from cic.network import Network
|
||||
from cic.output import HTTPWriter, KeyedWriterFactory
|
||||
from cic.token import Token
|
||||
# external imports
|
||||
from cic_types.ext.metadata import MetadataRequestsHandler
|
||||
from cic.MetaRequestHandler import MetadataRequestsHandler
|
||||
from cic_types.ext.metadata.signer import Signer as MetadataSigner
|
||||
|
||||
# local imports
|
||||
from cic import (
|
||||
Proof,
|
||||
Processor,
|
||||
)
|
||||
from cic.output import (
|
||||
HTTPWriter,
|
||||
KeyedWriterFactory,
|
||||
)
|
||||
from cic.meta import (
|
||||
Meta,
|
||||
MetadataWriter,
|
||||
)
|
||||
from cic.attachment import Attachment
|
||||
from cic.network import Network
|
||||
from cic.token import Token
|
||||
from typing import Optional
|
||||
logg = logging.getLogger(__name__)
|
||||
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from cic.cmd.arg import CmdCtrl
|
||||
from cic.actions.types import Options
|
||||
|
||||
|
||||
|
||||
@@ -47,19 +41,25 @@ def init_writers_from_config(config):
|
||||
return w
|
||||
|
||||
|
||||
def deploy(config, target: str,contract_directory: str, metadata_endpoint: Optional[str], keystore_directory: str, key_file_path: str, gpg_passphrase: str):
|
||||
modname = 'cic.ext.{}'.format(target)
|
||||
def deploy(ctrl: CmdCtrl, target: str, contract_directory: str, keystore_directory: str, options: Options):
|
||||
auth_passphrase=options.auth_passphrase,
|
||||
auth_key_file_path=options.auth_keyfile_path,
|
||||
metadata_endpoint=options.metadata_endpoint,
|
||||
|
||||
modname = f'cic.ext.{target}'
|
||||
cmd_mod = importlib.import_module(modname)
|
||||
|
||||
writers = init_writers_from_config(config)
|
||||
writers = init_writers_from_config(ctrl.config)
|
||||
output_directory = os.path.join(contract_directory, 'out')
|
||||
output_writer_path_meta = output_directory
|
||||
if metadata_endpoint != None:
|
||||
MetadataRequestsHandler.base_url = metadata_endpoint
|
||||
MetadataSigner.gpg_path = os.path.join('/tmp')
|
||||
MetadataSigner.key_file_path = key_file_path
|
||||
MetadataSigner.gpg_passphrase = gpg_passphrase
|
||||
writers['proof'] = KeyedWriterFactory(MetadataWriter, HTTPWriter).new
|
||||
MetadataRequestsHandler.ctrl = ctrl
|
||||
|
||||
MetadataSigner.gpg_path = '/tmp'
|
||||
MetadataSigner.key_file_path = auth_key_file_path # This is a p2p key for add data to meta
|
||||
MetadataSigner.gpg_passphrase = auth_passphrase
|
||||
writers['proof'] = KeyedWriterFactory(MetadataWriter, None).new
|
||||
writers['attachment'] = KeyedWriterFactory(None, HTTPWriter).new
|
||||
writers['meta'] = MetadataWriter
|
||||
output_writer_path_meta = metadata_endpoint
|
||||
@@ -78,18 +78,18 @@ def deploy(config, target: str,contract_directory: str, metadata_endpoint: Optio
|
||||
|
||||
chain_spec = None
|
||||
try:
|
||||
chain_spec = config.get('CHAIN_SPEC')
|
||||
chain_spec = ctrl.config.get('CHAIN_SPEC')
|
||||
except KeyError:
|
||||
chain_spec = cn.chain_spec
|
||||
config.add(chain_spec, 'CHAIN_SPEC', exists_ok=True)
|
||||
ctrl.config.add(chain_spec, 'CHAIN_SPEC', exists_ok=True)
|
||||
logg.debug(f'CHAIN_SPEC config set to {str(chain_spec)}')
|
||||
|
||||
(rpc, signer) = cmd_mod.parse_adapter(config, keystore_directory)
|
||||
(rpc, signer) = cmd_mod.parse_adapter(ctrl.config, keystore_directory)
|
||||
|
||||
ref = cn.resource(target)
|
||||
target_network_reference = cn.resource(target)
|
||||
chain_spec = cn.chain_spec(target)
|
||||
logg.debug('found reference {} chain spec {} for target {}'.format(ref['contents'], chain_spec, target))
|
||||
c = getattr(cmd_mod, 'new')(chain_spec, ref['contents'], cp, signer_hint=signer, rpc=rpc, outputs_writer=writers['ext'](path=output_directory))
|
||||
logg.debug(f'found reference {target_network_reference["contents"]} chain spec {chain_spec} for target {target}')
|
||||
c = getattr(cmd_mod, 'new')(chain_spec, target_network_reference['contents'], cp, signer_hint=signer, rpc=rpc, outputs_writer=writers['ext'](path=output_directory))
|
||||
c.apply_token(ct)
|
||||
|
||||
p = Processor(proof=cp, attachment=ca, metadata=cm, extensions=[c])
|
||||
|
||||
28
cic/actions/types.py
Normal file
28
cic/actions/types.py
Normal file
@@ -0,0 +1,28 @@
|
||||
from collections import namedtuple
|
||||
|
||||
Contract = namedtuple(
|
||||
"Contract",
|
||||
[
|
||||
"token",
|
||||
"proof",
|
||||
"meta",
|
||||
"attachment",
|
||||
"network",
|
||||
],
|
||||
)
|
||||
|
||||
Options = namedtuple(
|
||||
"Options",
|
||||
[
|
||||
"auth_db_path",
|
||||
"auth_keyfile_path",
|
||||
"auth_passphrase",
|
||||
"contract_registry",
|
||||
"key_account",
|
||||
"chain_spec",
|
||||
"rpc_provider",
|
||||
"metadata_endpoint",
|
||||
"wallet_keyfile",
|
||||
"wallet_passphrase",
|
||||
],
|
||||
)
|
||||
Reference in New Issue
Block a user