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)