Esempio n. 1
0
def test_limit_inclusivity_in_query_blockchain_events(
        web3: Web3, wait_for_blocks, token_network_registry_contract):
    query = create_tnr_contract_events_query(
        web3, token_network_registry_contract.address)

    # A new token network has been registered by the `token_network_registry_contract` fixture
    events = query()
    assert len(events) == 1
    event = events[0]
    assert event["event"] == EVENT_TOKEN_NETWORK_CREATED
    registry_event_block = BlockNumber(event["blockNumber"])

    # test to_block is inclusive
    events = query_blockchain_events(
        web3=web3,
        contract_addresses=[token_network_registry_contract.address],
        from_block=BlockNumber(0),
        to_block=BlockNumber(registry_event_block - 1),
    )
    assert len(events) == 0

    events = query_blockchain_events(
        web3=web3,
        contract_addresses=[token_network_registry_contract.address],
        from_block=BlockNumber(0),
        to_block=registry_event_block,
    )
    assert len(events) == 1

    # mine some more blocks
    wait_for_blocks(5)
    current_block_number = web3.eth.block_number
    assert current_block_number > registry_event_block

    # test to_block is inclusive
    events = query_blockchain_events(
        web3=web3,
        contract_addresses=[token_network_registry_contract.address],
        from_block=BlockNumber(registry_event_block + 1),
        to_block=current_block_number,
    )
    assert len(events) == 0

    events = query_blockchain_events(
        web3=web3,
        contract_addresses=[token_network_registry_contract.address],
        from_block=registry_event_block,
        to_block=current_block_number,
    )
    assert len(events) == 1

    # test that querying just one block works
    events = query_blockchain_events(
        web3=web3,
        contract_addresses=[token_network_registry_contract.address],
        from_block=registry_event_block,
        to_block=registry_event_block,
    )
    assert len(events) == 1
Esempio n. 2
0
 def query_callback():
     return query_blockchain_events(
         web3=web3,
         contract_addresses=[contract_address],
         from_block=BlockNumber(0),
         to_block=web3.eth.block_number,
     )
Esempio n. 3
0
 def f():
     return query_blockchain_events(
         web3=web3,
         contract_manager=contract_manager,
         contract_address=contract_address,
         contract_name=CONTRACT_MONITORING_SERVICE,
         topics=[],
         from_block=BlockNumber(0),
         to_block=web3.eth.blockNumber,
     )
Esempio n. 4
0
 def query_callback():
     return query_blockchain_events(
         web3=web3,
         contract_manager=contract_manager,
         contract_address=contract_address,
         contract_name=CONTRACT_TOKEN_NETWORK_REGISTRY,
         topics=[],
         from_block=BlockNumber(0),
         to_block=web3.eth.blockNumber,
     )