Пример #1
0
def test_pass_name_resolver(w3):
    return_chain_on_mainnet = construct_fixture_middleware({
        'net_version': '1',
    })
    return_balance = construct_fixture_middleware({'eth_getBalance': BALANCE})
    w3.middleware_onion.inject(return_chain_on_mainnet, layer=0)
    w3.middleware_onion.inject(return_balance, layer=0)
    assert w3.eth.getBalance(NAME) == BALANCE
Пример #2
0
def test_fail_name_resolver(w3):
    return_chain_on_mainnet = construct_fixture_middleware({
        'net_version': '2',
    })
    w3.middleware_onion.inject(return_chain_on_mainnet, layer=0)
    with pytest.raises(InvalidAddress, match=r'.*ethereum\.eth.*'):
        w3.eth.getBalance("ethereum.eth")
def test_full_extra_data(web3):
    return_block_with_long_extra_data = construct_fixture_middleware({
        'eth_getBlockByNumber': {
            'extraData': '0x' + 'ff' * 32
        },
    })
    web3.middleware_onion.inject(return_block_with_long_extra_data, layer=0)
    block = web3.eth.getBlock('latest')
    assert block.extraData == b'\xff' * 32
def test_long_extra_data(web3):
    return_block_with_long_extra_data = construct_fixture_middleware({
        'eth_getBlockByNumber': {
            'extraData': '0x' + 'ff' * 33
        },
    })
    web3.middleware_onion.inject(return_block_with_long_extra_data, layer=0)
    with pytest.raises(ValidationError):
        web3.eth.getBlock('latest')
def test_fixture_middleware(w3, method, expected):
    w3.middleware_onion.add(
        construct_fixture_middleware({'test_endpoint': 'value-a'}))

    if isinstance(expected, type) and issubclass(expected, Exception):
        with pytest.raises(expected):
            w3.manager.request_blocking(method, [])
    else:
        actual = w3.manager.request_blocking(method, [])
        assert actual == expected
def test_web3_auto_gethdev():
    assert isinstance(w3.provider, IPCProvider)
    return_block_with_long_extra_data = construct_fixture_middleware({
        'eth_getBlockByNumber': {
            'extraData': '0x' + 'ff' * 33
        },
    })
    w3.middleware_onion.inject(return_block_with_long_extra_data, layer=0)
    block = w3.eth.getBlock('latest')
    assert 'extraData' not in block
    assert block.proofOfAuthorityData == b'\xff' * 33
def test_geth_proof_of_authority(web3):
    return_block_with_long_extra_data = construct_fixture_middleware({
        'eth_getBlockByNumber': {
            'extraData': '0x' + 'ff' * 33
        },
    })
    web3.middleware_onion.inject(geth_poa_middleware, layer=0)
    web3.middleware_onion.inject(return_block_with_long_extra_data, layer=0)
    block = web3.eth.getBlock('latest')
    assert 'extraData' not in block
    assert block.proofOfAuthorityData == b'\xff' * 33