예제 #1
0
def add_prefix_nodes_and_verify(state,
                                prefix,
                                keys_suffices=None,
                                extra_nodes=False):
    keys_suffices = keys_suffices if keys_suffices else [
        1, 4, 10, 11, 24, 99, 100
    ]
    key_vals = {
        '{}{}'.format(prefix, k).encode(): str(random.randint(3000,
                                                              5000)).encode()
        for k in keys_suffices
    }
    for k, v in key_vals.items():
        state.set(k, v)

    prefix_prf, val = state.generate_state_proof_for_keys_with_prefix(
        prefix.encode(), get_value=True)
    encoded_key_values = dict(
        PruningState.encode_kv_for_verification(k, v)
        for k, v in key_vals.items())
    if extra_nodes:
        assert val.items() >= encoded_key_values.items()
    else:
        assert val == encoded_key_values

    assert PruningState.verify_state_proof_multi(state.headHash, key_vals,
                                                 prefix_prf)
def add_prefix_nodes_and_verify(state, prefix, keys_suffices=None):
    keys_suffices = keys_suffices if keys_suffices else [
        1, 4, 10, 11, 24, 99, 100
    ]
    key_vals = {
        '{}{}'.format(prefix, k).encode(): str(random.randint(3000,
                                                              5000)).encode()
        for k in keys_suffices
    }
    for k, v in key_vals.items():
        state.set(k, v)

    prefix_prf = state.generate_state_proof_for_key_prfx(prefix.encode())
    assert PruningState.verify_state_proof_multi(state.headHash, key_vals,
                                                 prefix_prf)
def add_prefix_nodes_and_verify(state, prefix, keys_suffices=None, extra_nodes=False):
    keys_suffices = keys_suffices if keys_suffices else [1, 4, 10, 11, 24, 99, 100]
    key_vals = {'{}{}'.format(prefix, k).encode():
                str(random.randint(3000, 5000)).encode() for k in keys_suffices}
    for k, v in key_vals.items():
        state.set(k, v)

    prefix_prf, val = state.generate_state_proof_for_keys_with_prefix(prefix.encode(), get_value=True)
    encoded_key_values = dict(PruningState.encode_kv_for_verification(k, v) for k, v in key_vals.items())
    if extra_nodes:
        assert val.items() >= encoded_key_values.items()
    else:
        assert val == encoded_key_values

    assert PruningState.verify_state_proof_multi(state.headHash, key_vals,
                                                 prefix_prf)