def deploy(self, path, storage=None, network=default_network, key=None, github_repo_slug=None, github_oauth_token=None, dry_run=False): """ Deploy contract to the specified network. :param path: Path to the .tz file :param storage: Storage in JSON format (not Micheline) :param network: :param key: :param github_repo_slug: :param github_oauth_token: :param dry_run: Set this flag if you just want to see what would happen """ ptz = pytezos.using(shell=network, key=key) print( f'Deploying contract using {ptz.key.public_key_hash()} in the {network}' ) contract = get_contract(path) try: opg = ptz.origination(script=contract.script( initial_storage=storage)).autofill().sign() print(f'Injecting origination operation:') pprint(opg.json_payload()) if dry_run: pprint(opg.preapply()) exit(0) else: opg = opg.inject(_async=False) except RpcError as e: pprint(e) exit(-1) else: originated_contracts = OperationResult.originated_contracts(opg) assert len(originated_contracts) == 1 bcd_link = make_bcd_link(network, originated_contracts[0]) print(f'Contract was successfully deployed: {bcd_link}') if github_repo_slug: deployment = create_deployment(github_repo_slug, github_oauth_token, environment=network) pprint(deployment) status = create_deployment_status( github_repo_slug, github_oauth_token, deployment_id=deployment['id'], state='success', environment=network, environment_url=bcd_link) pprint(status)
def deploy( _ctx, path: str, storage: Optional[str], # pylint: disable=redefined-outer-name network: str, key: Optional[str], github_repo_slug: Optional[str], github_oauth_token: Optional[str], dry_run: bool, ): ptz = pytezos.using(shell=network, key=key) logger.info('Deploying contract using %s in the %s', ptz.key.public_key_hash(), network) contract = get_contract(path) try: opg = ptz.origination(script=contract.script( initial_storage=storage)).autofill().sign() logger.info('Injecting origination operation:') logger.info(pformat(opg.json_payload())) if dry_run: logger.info(pformat(opg.preapply())) sys.exit(0) else: opg = opg.inject(_async=False) except RpcError as e: logger.critical(pformat(e)) sys.exit(-1) else: originated_contracts = OperationResult.originated_contracts(opg) if len(originated_contracts) != 1: raise Exception( 'Operation group must has exactly one originated contract') bcd_link = make_bcd_link(network, originated_contracts[0]) logger.info('Contract was successfully deployed: %s', bcd_link) if github_repo_slug: deployment = create_deployment( github_repo_slug, github_oauth_token, environment=network, ) logger.info(pformat(deployment)) status = create_deployment_status( github_repo_slug, github_oauth_token, deployment_id=deployment['id'], state='success', environment=network, environment_url=bcd_link, ) logger.info(status)