Esempio n. 1
0
 def execute_contract(self, contract: SmartContract, caller, function,
                      arguments, gas_price, gas_limit, value, chain,
                      version):
     logger.debug("execute_contract: %s", contract.address.bech32())
     tx = contract.execute(caller, function, arguments, gas_price,
                           gas_limit, value, chain, version)
     proxy = self._get_proxy()
     tx_hash = tx.send(proxy)
     return tx_hash
Esempio n. 2
0
def call(args: Any):
    logger.debug("call")
    cli_shared.check_broadcast_args(args)

    contract_address = args.contract
    function = args.function
    arguments = args.arguments
    gas_price = args.gas_price
    gas_limit = args.gas_limit
    value = args.value
    chain = args.chain
    version = args.version

    contract = SmartContract(contract_address)
    sender = _prepare_sender(args)

    tx = contract.execute(sender, function, arguments, gas_price, gas_limit, value, chain, version)
    try:
        result = _send_or_simulate(tx, args)
    finally:
        txdict = tx.to_dump_dict()
        dump_tx_and_result(txdict, result, args)