示例#1
0
def deploy(bytecode, owner, arguments=None, gas_price=None, gas_limit=None):
    logger.debug("deploy")

    arguments = arguments or []
    gas_limit = gas_limit
    gas_price = gas_price or config.DEFAULT_GAS_PRICE

    url = _get_url("deploy")

    tx_data = bytecode
    for arg in arguments:
        tx_data += f"@{_prepare_argument(arg)}"

    data = {
        "SndAddress": owner.address,
        "Value": "0",
        "GasLimit": gas_limit,
        "GasPrice": gas_price,
        "TxData": tx_data
    }

    raw_response = utils.post_json(url, data)
    logger.debug("Response: %s", raw_response)
    response = _Response(raw_response)
    response.verify()
    return response.tx_hash, response.contract_address
示例#2
0
def execute(contract_address,
            caller,
            function,
            arguments=None,
            gas_price=None,
            gas_limit=None):
    logger.debug(f"execute, address={contract_address}")

    arguments = arguments or []
    gas_limit = gas_limit
    gas_price = gas_price or config.DEFAULT_GAS_PRICE

    url = _get_url("run")

    tx_data = function
    for arg in arguments:
        tx_data += f"@{_prepare_argument(arg)}"

    data = {
        "SndAddress": caller.address,
        "ScAddress": contract_address,
        "Value": "0",
        "GasLimit": gas_limit,
        "GasPrice": gas_price,
        "TxData": tx_data
    }

    raw_response = utils.post_json(url, data)
    logger.debug("Response: %s", raw_response)
    response = _VMOutputResponse(raw_response)
    response.verify()
    return response
示例#3
0
def query(contract_address, function, arguments=None):
    logger.debug(f"query, address={contract_address}")

    arguments = [_prepare_argument(arg) for arg in arguments or []]

    url = _get_url("query")

    data = {
        "ScAddress": contract_address,
        "FuncName": function,
        "Args": arguments
    }

    raw_response = utils.post_json(url, data)
    logger.debug("Response: %s", raw_response)
    response = _VMOutputResponse(raw_response)
    response.verify()
    return response.return_data