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
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
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