コード例 #1
0
def latest_block_based_cache_middleware():
    return construct_latest_block_based_cache_middleware(
        cache_class=dict,
        average_block_time_sample_size=1,
        default_average_block_time=0.1,
        rpc_whitelist={'fake_endpoint'},
    )
コード例 #2
0
def latest_block_based_cache_middleware():
    return construct_latest_block_based_cache_middleware(
        cache_class=dict,
        average_block_time_sample_size=1,
        default_average_block_time=0.1,
        rpc_whitelist={'fake_endpoint'},
    )
コード例 #3
0
def test_latest_block_cache_middleware_does_not_cache_get_latest_block(
        w3_base, block_data_middleware, result_generator_middleware):
    w3 = w3_base
    w3.middleware_onion.add(block_data_middleware)
    w3.middleware_onion.add(result_generator_middleware)

    current_block_hash = w3.eth.get_block('latest')['hash']

    def cache_class():
        return {
            generate_cache_key((current_block_hash, 'eth_getBlockByNumber', [
                'latest'
            ])): {
                'result': 'value-a'
            },
        }

    w3.middleware_onion.add(
        construct_latest_block_based_cache_middleware(
            cache_class=cache_class,
            rpc_whitelist={'eth_getBlockByNumber'},
        ))

    assert w3.manager.request_blocking('eth_getBlockByNumber',
                                       ['latest']) != 'value-a'
コード例 #4
0
def test_latest_block_based_cache_middleware_pulls_from_cache(
        w3_base, block_data_middleware, result_generator_middleware):
    w3 = w3_base
    w3.middleware_stack.add(block_data_middleware)
    w3.middleware_stack.add(result_generator_middleware)

    current_block_hash = w3.eth.getBlock('latest')['hash']

    def cache_class():
        return {
            generate_cache_key((current_block_hash, 'fake_endpoint', [1])): {
                'result': 'value-a'
            },
        }

    w3.middleware_stack.add(
        construct_latest_block_based_cache_middleware(
            cache_class=cache_class,
            rpc_whitelist={'fake_endpoint'},
        ))

    assert w3.manager.request_blocking('fake_endpoint', [1]) == 'value-a'
コード例 #5
0
def test_latest_block_based_cache_middleware_pulls_from_cache(
        w3_base,
        block_data_middleware,
        result_generator_middleware):
    w3 = w3_base
    w3.middleware_stack.add(block_data_middleware)
    w3.middleware_stack.add(result_generator_middleware)

    current_block_hash = w3.eth.getBlock('latest')['hash']

    def cache_class():
        return {
            generate_cache_key(
                (current_block_hash, 'fake_endpoint', [1])
            ): {'result': 'value-a'},
        }

    w3.middleware_stack.add(construct_latest_block_based_cache_middleware(
        cache_class=cache_class,
        rpc_whitelist={'fake_endpoint'},
    ))

    assert w3.manager.request_blocking('fake_endpoint', [1]) == 'value-a'