def transact(self): contract_address = get_contract_address( self, self.args.contract_name, "--at is required to specify target contract address") abi = self.args.contract_def["abi"] contract = Contract(self.w3, contract_address, abi) positional_inputs = getattr(self.args, "contract_positional_inputs", []) named_inputs = { name[len("contract_named_input_"):]: value for name, value in self.args.__dict__.items() if name.startswith("contract_named_input_") } gas_price = self.get_gas_price_verbose() txn = contract.build_transaction(self.args.contract_function, self.ident.get_address(), gas_price, *positional_inputs, **named_inputs) if not self.args.yes or self.args.verbose: self._pprint({"transaction": txn}) proceed = self.args.yes or input("Proceed? (y/n): ") == "y" if proceed: receipt = self.ident.transact(txn, self.err_f) events = contract.process_receipt(receipt) self._pprint_receipt_and_events(receipt, events) return receipt, events else: self._error("Cancelled")
def transact_contract_command(self, contract_name, contract_fn, contract_params, is_silent=False): contract_address = get_contract_address(self, contract_name) return self.get_contract_command(contract_name, contract_address, contract_fn, contract_params, is_silent).transact()
def call_contract_command(self, contract_name, contract_fn, contract_params, is_silent=True): contract_address = get_contract_address(self, contract_name) return self.get_contract_command(contract_name, contract_address, contract_fn, contract_params, is_silent).call()
def call(self): contract_address = get_contract_address(self, self.args.contract_name, "--at is required to specify target contract address") abi = self.args.contract_def["abi"] contract = Contract(self.w3, contract_address, abi) positional_inputs = getattr( self.args, "contract_positional_inputs", []) named_inputs = { name[len("contract_named_input_"):]: value for name, value in self.args.__dict__.items() if name.startswith("contract_named_input_") } result = contract.call(self.args.contract_function, *positional_inputs, **named_inputs) self._printout(result) return result
def get_registry_address(self): return get_contract_address(self, "Registry")
def get_mpe_address(self): return get_contract_address(self, "MultiPartyEscrow")