コード例 #1
0
    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")
コード例 #2
0
 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()
コード例 #3
0
 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()
コード例 #4
0
ファイル: commands.py プロジェクト: rajeevbbqq/snet-cli
    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
コード例 #5
0
 def get_registry_address(self):
     return get_contract_address(self, "Registry")
コード例 #6
0
 def get_mpe_address(self):
     return get_contract_address(self, "MultiPartyEscrow")