def test_channel_with_self(raiden_network, settle_timeout, blockchain_type): app0, = raiden_network # pylint: disable=unbalanced-tuple-unpacking token_address = app0.raiden.chain.default_registry.token_addresses()[0] assert len(app0.raiden.token_to_channelgraph[token_address].address_to_channel) == 0 graph0 = app0.raiden.chain.manager_by_token(token_address) with pytest.raises(SamePeerAddress) as excinfo: graph0.new_netting_channel( app0.raiden.address, app0.raiden.address, settle_timeout, ) assert 'Peer1 and peer2 must not be equal' in str(excinfo.value) if blockchain_type == 'tester': with pytest.raises(TransactionFailed): graph0.proxy.newChannel(app0.raiden.address, settle_timeout) else: tx = graph0.proxy.newChannel(app0.raiden.address, settle_timeout) # wait to make sure we get the receipt wait_until_block(app0.raiden.chain, app0.raiden.chain.block_number() + 5) assert check_transaction_threw(app0.raiden.chain.client, tx) is True
def test_transact_throws_opcode(deploy_client, blockchain_backend): """ The receipt status field of a transaction that threw is 0x0 """ contract_proxy = deploy_rpc_test_contract(deploy_client) address = contract_proxy.address assert deploy_client.eth_getCode(address) != '0x' gas = min(contract_proxy.fail.estimate_gas(), deploy_client.gaslimit()) transaction_hex = contract_proxy.fail.transact(startgas=gas) transaction = transaction_hex.decode('hex') deploy_client.poll(transaction) assert check_transaction_threw(deploy_client, transaction_hex), 'must not be empty'
def test_transact_opcode_oog(deploy_client, blockchain_backend): """ The receipt status field of a transaction that did NOT throw is 0x0. """ contract_proxy = deploy_rpc_test_contract(deploy_client) address = contract_proxy.address assert deploy_client.eth_getCode(address) != '0x' gas = min(contract_proxy.loop.estimate_gas(1000) // 2, deploy_client.gaslimit) transaction_hex = contract_proxy.loop.transact(1000, startgas=gas) transaction = transaction_hex.decode('hex') deploy_client.poll(transaction) assert check_transaction_threw(deploy_client, transaction_hex), 'must not be empty'
def test_transact_opcode(deploy_client, blockchain_backend): """ The receipt status field of a transaction that did not throw is 0x1 """ contract_proxy = deploy_rpc_test_contract(deploy_client) address = contract_proxy.address assert deploy_client.eth_getCode(address) != '0x' gas = contract_proxy.ret.estimate_gas() * 2 transaction_hex = contract_proxy.ret.transact(startgas=gas) transaction = transaction_hex.decode('hex') deploy_client.poll(transaction) assert check_transaction_threw(deploy_client, transaction_hex) is None, 'must be empty'
def test_transact_throws_opcode(deploy_client, blockchain_backend): """ The last opcode of a transaction that threw is not STOP. """ contract_proxy = deploy_rpc_test_contract(deploy_client) address = contract_proxy.address assert deploy_client.eth_getCode(address) != '0x' gas = contract_proxy.fail.estimate_gas() transaction_hex = contract_proxy.fail.transact(startgas=gas) transaction = transaction_hex.decode('hex') deploy_client.poll(transaction) assert check_transaction_threw(deploy_client, transaction_hex), 'must not be empty'