@aztec/stdlib 1.2.0 → 2.0.0-nightly.20250813
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dest/abi/abi.d.ts +0 -67
- package/dest/abi/abi.d.ts.map +1 -1
- package/dest/abi/abi.js +1 -14
- package/dest/abi/authorization_selector.d.ts +52 -0
- package/dest/abi/authorization_selector.d.ts.map +1 -0
- package/dest/abi/authorization_selector.js +70 -0
- package/dest/abi/contract_artifact.d.ts.map +1 -1
- package/dest/abi/contract_artifact.js +0 -40
- package/dest/abi/decoder.d.ts.map +1 -1
- package/dest/abi/decoder.js +3 -6
- package/dest/abi/index.d.ts +1 -0
- package/dest/abi/index.d.ts.map +1 -1
- package/dest/abi/index.js +1 -0
- package/dest/avm/avm.d.ts +278 -412
- package/dest/avm/avm.d.ts.map +1 -1
- package/dest/avm/avm.js +12 -12
- package/dest/avm/avm_proving_request.d.ts +160 -186
- package/dest/avm/avm_proving_request.d.ts.map +1 -1
- package/dest/block/l2_block.d.ts +8 -0
- package/dest/block/l2_block.d.ts.map +1 -1
- package/dest/block/l2_block.js +9 -0
- package/dest/block/l2_block_source.d.ts +446 -2
- package/dest/block/l2_block_source.d.ts.map +1 -1
- package/dest/block/l2_block_source.js +29 -0
- package/dest/block/proposal/committee_attestation.d.ts +3 -1
- package/dest/block/proposal/committee_attestation.d.ts.map +1 -1
- package/dest/block/proposal/committee_attestation.js +3 -0
- package/dest/block/published_l2_block.d.ts +2 -1
- package/dest/block/published_l2_block.d.ts.map +1 -1
- package/dest/block/published_l2_block.js +6 -1
- package/dest/contract/contract_instance.d.ts +3 -3
- package/dest/contract/contract_instance.d.ts.map +1 -1
- package/dest/contract/contract_instance.js +3 -3
- package/dest/contract/interfaces/contract_class.d.ts +2 -2
- package/dest/contract/interfaces/protocol_contract_addresses.d.ts +9 -9
- package/dest/contract/interfaces/protocol_contract_addresses.d.ts.map +1 -1
- package/dest/contract/interfaces/protocol_contract_addresses.js +4 -4
- package/dest/contract/private_function_membership_proof.d.ts +1 -1
- package/dest/contract/private_function_membership_proof.js +1 -1
- package/dest/contract/utility_function_membership_proof.d.ts +1 -1
- package/dest/contract/utility_function_membership_proof.js +1 -1
- package/dest/delayed_public_mutable/delayed_public_mutable_values.d.ts +20 -0
- package/dest/delayed_public_mutable/delayed_public_mutable_values.d.ts.map +1 -0
- package/dest/{shared_mutable/shared_mutable_values.js → delayed_public_mutable/delayed_public_mutable_values.js} +9 -9
- package/dest/{shared_mutable/shared_mutable_values_with_hash.d.ts → delayed_public_mutable/delayed_public_mutable_values_with_hash.d.ts} +6 -6
- package/dest/delayed_public_mutable/delayed_public_mutable_values_with_hash.d.ts.map +1 -0
- package/dest/delayed_public_mutable/delayed_public_mutable_values_with_hash.js +30 -0
- package/dest/delayed_public_mutable/index.d.ts +5 -0
- package/dest/delayed_public_mutable/index.d.ts.map +1 -0
- package/dest/delayed_public_mutable/index.js +4 -0
- package/dest/delayed_public_mutable/scheduled_delay_change.d.ts.map +1 -0
- package/dest/delayed_public_mutable/scheduled_value_change.d.ts.map +1 -0
- package/dest/gas/gas.d.ts +1 -0
- package/dest/gas/gas.d.ts.map +1 -1
- package/dest/gas/gas.js +3 -0
- package/dest/hash/hash.d.ts.map +1 -1
- package/dest/hash/hash.js +1 -4
- package/dest/interfaces/archiver.d.ts.map +1 -1
- package/dest/interfaces/archiver.js +4 -2
- package/dest/interfaces/aztec-node-admin.d.ts +211 -8
- package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
- package/dest/interfaces/aztec-node-admin.js +9 -3
- package/dest/interfaces/configs.d.ts +27 -0
- package/dest/interfaces/configs.d.ts.map +1 -1
- package/dest/interfaces/configs.js +6 -1
- package/dest/interfaces/get_logs_response.d.ts +1 -1
- package/dest/interfaces/proving-job.d.ts +166 -192
- package/dest/interfaces/proving-job.d.ts.map +1 -1
- package/dest/interfaces/pxe.d.ts +3 -1
- package/dest/interfaces/pxe.d.ts.map +1 -1
- package/dest/interfaces/pxe.js +1 -1
- package/dest/interfaces/server.d.ts +4 -2
- package/dest/interfaces/server.d.ts.map +1 -1
- package/dest/interfaces/server.js +4 -2
- package/dest/interfaces/slasher.d.ts +86 -0
- package/dest/interfaces/slasher.d.ts.map +1 -0
- package/dest/interfaces/slasher.js +23 -0
- package/dest/interfaces/tx_provider.d.ts +24 -0
- package/dest/interfaces/tx_provider.d.ts.map +1 -0
- package/dest/kernel/claimed_length_array.d.ts +34 -0
- package/dest/kernel/claimed_length_array.d.ts.map +1 -0
- package/dest/kernel/claimed_length_array.js +58 -0
- package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts +6 -6
- package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts.map +1 -1
- package/dest/kernel/hints/build_note_hash_read_request_hints.js +18 -20
- package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts +7 -10
- package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts.map +1 -1
- package/dest/kernel/hints/build_nullifier_read_request_hints.js +17 -32
- package/dest/kernel/hints/build_transient_data_hints.d.ts +4 -3
- package/dest/kernel/hints/build_transient_data_hints.d.ts.map +1 -1
- package/dest/kernel/hints/build_transient_data_hints.js +9 -10
- package/dest/kernel/hints/index.d.ts +1 -2
- package/dest/kernel/hints/index.d.ts.map +1 -1
- package/dest/kernel/hints/index.js +1 -2
- package/dest/kernel/hints/note_hash_read_request_hints.d.ts.map +1 -1
- package/dest/kernel/hints/note_hash_read_request_hints.js +4 -4
- package/dest/kernel/hints/nullifier_read_request_hints.d.ts.map +1 -1
- package/dest/kernel/hints/nullifier_read_request_hints.js +4 -4
- package/dest/kernel/hints/private_kernel_reset_hints.d.ts +5 -5
- package/dest/kernel/hints/private_kernel_reset_hints.d.ts.map +1 -1
- package/dest/kernel/hints/private_kernel_reset_hints.js +9 -9
- package/dest/kernel/hints/read_request_hints.d.ts +17 -17
- package/dest/kernel/hints/read_request_hints.d.ts.map +1 -1
- package/dest/kernel/hints/read_request_hints.js +28 -28
- package/dest/kernel/hints/{transient_data_index_hint.d.ts → transient_data_squashing_hint.d.ts} +5 -5
- package/dest/kernel/hints/transient_data_squashing_hint.d.ts.map +1 -0
- package/dest/kernel/hints/{transient_data_index_hint.js → transient_data_squashing_hint.js} +5 -5
- package/dest/kernel/index.d.ts +1 -0
- package/dest/kernel/index.d.ts.map +1 -1
- package/dest/kernel/index.js +1 -0
- package/dest/kernel/private_accumulated_data.d.ts +16 -15
- package/dest/kernel/private_accumulated_data.d.ts.map +1 -1
- package/dest/kernel/private_accumulated_data.js +3 -3
- package/dest/kernel/private_call_data.d.ts +4 -4
- package/dest/kernel/private_call_data.d.ts.map +1 -1
- package/dest/kernel/private_call_data.js +2 -2
- package/dest/kernel/private_circuit_public_inputs.d.ts +26 -25
- package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_circuit_public_inputs.js +33 -15
- package/dest/kernel/private_kernel_circuit_public_inputs.d.ts +9 -0
- package/dest/kernel/private_kernel_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_circuit_public_inputs.js +8 -4
- package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts +10 -1
- package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_tail_circuit_private_inputs.js +9 -6
- package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts +11 -4
- package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_tail_circuit_public_inputs.js +20 -18
- package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts +4 -4
- package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_to_public_kernel_circuit_public_inputs.js +9 -10
- package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts +11 -11
- package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.js +11 -12
- package/dest/kernel/private_validation_requests.d.ts +8 -20
- package/dest/kernel/private_validation_requests.d.ts.map +1 -1
- package/dest/kernel/private_validation_requests.js +9 -21
- package/dest/kernel/utils/order_and_comparison.d.ts +0 -3
- package/dest/kernel/utils/order_and_comparison.d.ts.map +1 -1
- package/dest/kernel/utils/order_and_comparison.js +0 -19
- package/dest/logs/extended_public_log.d.ts +1 -1
- package/dest/logs/shared_secret_derivation.d.ts +1 -1
- package/dest/logs/shared_secret_derivation.js +1 -1
- package/dest/messaging/l2_to_l1_membership.d.ts +4 -1
- package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -1
- package/dest/messaging/l2_to_l1_membership.js +49 -54
- package/dest/messaging/l2_to_l1_message.d.ts +2 -0
- package/dest/messaging/l2_to_l1_message.d.ts.map +1 -1
- package/dest/messaging/l2_to_l1_message.js +7 -0
- package/dest/note/notes_filter.d.ts +5 -2
- package/dest/note/notes_filter.d.ts.map +1 -1
- package/dest/note/notes_filter.js +1 -1
- package/dest/p2p/attestation_utils.d.ts +10 -0
- package/dest/p2p/attestation_utils.d.ts.map +1 -0
- package/dest/p2p/attestation_utils.js +21 -0
- package/dest/p2p/block_attestation.d.ts +3 -4
- package/dest/p2p/block_attestation.d.ts.map +1 -1
- package/dest/p2p/block_attestation.js +3 -4
- package/dest/p2p/block_proposal.d.ts +8 -1
- package/dest/p2p/block_proposal.d.ts.map +1 -1
- package/dest/p2p/block_proposal.js +21 -8
- package/dest/p2p/consensus_payload.d.ts +3 -11
- package/dest/p2p/consensus_payload.d.ts.map +1 -1
- package/dest/p2p/consensus_payload.js +13 -22
- package/dest/p2p/index.d.ts +1 -0
- package/dest/p2p/index.d.ts.map +1 -1
- package/dest/p2p/index.js +1 -0
- package/dest/p2p/topic_type.d.ts.map +1 -1
- package/dest/p2p/topic_type.js +5 -3
- package/dest/rollup/block_root_rollup.d.ts +1 -1
- package/dest/slashing/index.d.ts +51 -0
- package/dest/slashing/index.d.ts.map +1 -0
- package/dest/slashing/index.js +54 -0
- package/dest/stats/stats.d.ts +2 -2
- package/dest/stats/stats.d.ts.map +1 -1
- package/dest/tests/factories.d.ts +0 -2
- package/dest/tests/factories.d.ts.map +1 -1
- package/dest/tests/factories.js +25 -24
- package/dest/tests/mocks.d.ts +2 -0
- package/dest/tests/mocks.d.ts.map +1 -1
- package/dest/tests/mocks.js +31 -22
- package/dest/tx/index.d.ts +0 -1
- package/dest/tx/index.d.ts.map +1 -1
- package/dest/tx/index.js +0 -1
- package/dest/tx/private_execution_result.d.ts +2 -2
- package/dest/tx/private_execution_result.d.ts.map +1 -1
- package/dest/tx/private_execution_result.js +11 -11
- package/dest/tx/processed_tx.d.ts +2 -2
- package/dest/tx/processed_tx.d.ts.map +1 -1
- package/dest/tx/processed_tx.js +4 -4
- package/dest/tx/proven_tx.d.ts +1 -1
- package/dest/tx/proven_tx.d.ts.map +1 -1
- package/dest/tx/proven_tx.js +7 -3
- package/dest/tx/simulated_tx.d.ts +11 -17
- package/dest/tx/simulated_tx.d.ts.map +1 -1
- package/dest/tx/simulated_tx.js +12 -12
- package/dest/tx/tx.d.ts +25 -25
- package/dest/tx/tx.d.ts.map +1 -1
- package/dest/tx/tx.js +60 -48
- package/dest/tx/tx_effect.d.ts +2 -2
- package/dest/tx/tx_effect.d.ts.map +1 -1
- package/dest/tx/tx_effect.js +3 -18
- package/dest/tx/tx_execution_request.js +2 -2
- package/dest/tx/tx_hash.d.ts +7 -0
- package/dest/tx/tx_hash.d.ts.map +1 -1
- package/dest/tx/tx_hash.js +19 -1
- package/dest/tx/tx_request.d.ts +5 -5
- package/dest/tx/tx_request.d.ts.map +1 -1
- package/dest/tx/tx_request.js +7 -7
- package/dest/tx/validator/error_texts.d.ts +1 -0
- package/dest/tx/validator/error_texts.d.ts.map +1 -1
- package/dest/tx/validator/error_texts.js +1 -0
- package/dest/tx/validator/tx_validator.d.ts +6 -4
- package/dest/tx/validator/tx_validator.d.ts.map +1 -1
- package/dest/tx/validator/tx_validator.js +3 -0
- package/dest/versioning/versioning.d.ts.map +1 -1
- package/dest/vks/verification_key.d.ts.map +1 -1
- package/dest/vks/verification_key.js +4 -4
- package/package.json +10 -9
- package/src/abi/abi.ts +0 -38
- package/src/abi/authorization_selector.ts +95 -0
- package/src/abi/contract_artifact.ts +0 -49
- package/src/abi/decoder.ts +3 -6
- package/src/abi/index.ts +1 -0
- package/src/avm/avm.ts +7 -9
- package/src/block/l2_block.ts +18 -0
- package/src/block/l2_block_source.ts +70 -1
- package/src/block/proposal/committee_attestation.ts +5 -1
- package/src/block/published_l2_block.ts +14 -5
- package/src/contract/contract_instance.ts +3 -3
- package/src/contract/interfaces/protocol_contract_addresses.ts +5 -10
- package/src/contract/private_function_membership_proof.ts +1 -1
- package/src/contract/utility_function_membership_proof.ts +1 -1
- package/src/{shared_mutable/shared_mutable_values.ts → delayed_public_mutable/delayed_public_mutable_values.ts} +10 -10
- package/src/delayed_public_mutable/delayed_public_mutable_values_with_hash.ts +38 -0
- package/src/delayed_public_mutable/index.ts +4 -0
- package/src/gas/gas.ts +4 -0
- package/src/hash/hash.ts +1 -4
- package/src/interfaces/archiver.ts +3 -1
- package/src/interfaces/aztec-node-admin.ts +19 -8
- package/src/interfaces/configs.ts +17 -0
- package/src/interfaces/pxe.ts +4 -2
- package/src/interfaces/server.ts +4 -2
- package/src/interfaces/slasher.ts +49 -0
- package/src/interfaces/tx_provider.ts +16 -0
- package/src/kernel/claimed_length_array.ts +104 -0
- package/src/kernel/hints/build_note_hash_read_request_hints.ts +28 -30
- package/src/kernel/hints/build_nullifier_read_request_hints.ts +28 -59
- package/src/kernel/hints/build_transient_data_hints.ts +12 -14
- package/src/kernel/hints/index.ts +1 -2
- package/src/kernel/hints/note_hash_read_request_hints.ts +4 -16
- package/src/kernel/hints/nullifier_read_request_hints.ts +4 -16
- package/src/kernel/hints/private_kernel_reset_hints.ts +7 -7
- package/src/kernel/hints/read_request_hints.ts +22 -22
- package/src/kernel/hints/{transient_data_index_hint.ts → transient_data_squashing_hint.ts} +5 -5
- package/src/kernel/index.ts +1 -0
- package/src/kernel/private_accumulated_data.ts +23 -23
- package/src/kernel/private_call_data.ts +3 -3
- package/src/kernel/private_circuit_public_inputs.ts +92 -68
- package/src/kernel/private_kernel_circuit_public_inputs.ts +9 -1
- package/src/kernel/private_kernel_tail_circuit_private_inputs.ts +13 -4
- package/src/kernel/private_kernel_tail_circuit_public_inputs.ts +20 -20
- package/src/kernel/private_to_public_kernel_circuit_public_inputs.ts +7 -7
- package/src/kernel/private_to_rollup_kernel_circuit_public_inputs.ts +16 -10
- package/src/kernel/private_validation_requests.ts +19 -50
- package/src/kernel/utils/order_and_comparison.ts +0 -25
- package/src/logs/shared_secret_derivation.ts +1 -1
- package/src/messaging/l2_to_l1_membership.ts +76 -85
- package/src/messaging/l2_to_l1_message.ts +9 -0
- package/src/note/notes_filter.ts +6 -3
- package/src/p2p/attestation_utils.ts +35 -0
- package/src/p2p/block_attestation.ts +3 -4
- package/src/p2p/block_proposal.ts +23 -5
- package/src/p2p/consensus_payload.ts +10 -29
- package/src/p2p/index.ts +1 -0
- package/src/p2p/topic_type.ts +3 -1
- package/src/slashing/index.ts +74 -0
- package/src/stats/stats.ts +2 -2
- package/src/tests/factories.ts +37 -27
- package/src/tests/mocks.ts +24 -22
- package/src/tx/index.ts +0 -1
- package/src/tx/private_execution_result.ts +11 -9
- package/src/tx/processed_tx.ts +6 -6
- package/src/tx/proven_tx.ts +7 -8
- package/src/tx/simulated_tx.ts +13 -19
- package/src/tx/tx.ts +70 -57
- package/src/tx/tx_effect.ts +5 -20
- package/src/tx/tx_execution_request.ts +2 -2
- package/src/tx/tx_hash.ts +21 -1
- package/src/tx/tx_request.ts +7 -6
- package/src/tx/validator/error_texts.ts +1 -0
- package/src/tx/validator/tx_validator.ts +5 -0
- package/src/versioning/versioning.ts +0 -3
- package/src/vks/verification_key.ts +4 -7
- package/dest/interfaces/tx-collector.d.ts +0 -15
- package/dest/interfaces/tx-collector.d.ts.map +0 -1
- package/dest/kernel/hints/rollup_validation_requests.d.ts +0 -34
- package/dest/kernel/hints/rollup_validation_requests.d.ts.map +0 -1
- package/dest/kernel/hints/rollup_validation_requests.js +0 -55
- package/dest/kernel/hints/transient_data_index_hint.d.ts.map +0 -1
- package/dest/shared_mutable/index.d.ts +0 -5
- package/dest/shared_mutable/index.d.ts.map +0 -1
- package/dest/shared_mutable/index.js +0 -4
- package/dest/shared_mutable/scheduled_delay_change.d.ts.map +0 -1
- package/dest/shared_mutable/scheduled_value_change.d.ts.map +0 -1
- package/dest/shared_mutable/shared_mutable_values.d.ts +0 -20
- package/dest/shared_mutable/shared_mutable_values.d.ts.map +0 -1
- package/dest/shared_mutable/shared_mutable_values_with_hash.d.ts.map +0 -1
- package/dest/shared_mutable/shared_mutable_values_with_hash.js +0 -30
- package/dest/tx/include_by_timestamp.d.ts +0 -54
- package/dest/tx/include_by_timestamp.d.ts.map +0 -1
- package/dest/tx/include_by_timestamp.js +0 -72
- package/src/interfaces/tx-collector.ts +0 -17
- package/src/kernel/hints/rollup_validation_requests.ts +0 -71
- package/src/shared_mutable/index.ts +0 -4
- package/src/shared_mutable/shared_mutable_values_with_hash.ts +0 -38
- package/src/tx/include_by_timestamp.ts +0 -90
- /package/dest/{shared_mutable → delayed_public_mutable}/scheduled_delay_change.d.ts +0 -0
- /package/dest/{shared_mutable → delayed_public_mutable}/scheduled_delay_change.js +0 -0
- /package/dest/{shared_mutable → delayed_public_mutable}/scheduled_value_change.d.ts +0 -0
- /package/dest/{shared_mutable → delayed_public_mutable}/scheduled_value_change.js +0 -0
- /package/dest/interfaces/{tx-collector.js → tx_provider.js} +0 -0
- /package/src/{shared_mutable → delayed_public_mutable}/scheduled_delay_change.ts +0 -0
- /package/src/{shared_mutable → delayed_public_mutable}/scheduled_value_change.ts +0 -0
|
@@ -1,20 +1,15 @@
|
|
|
1
1
|
import { MAX_NULLIFIER_READ_REQUESTS_PER_TX } from '@aztec/constants';
|
|
2
|
-
import { padArrayEnd } from '@aztec/foundation/collection';
|
|
3
|
-
import { AztecAddress } from '../../aztec-address/index.js';
|
|
4
2
|
import { siloNullifier } from '../../hash/hash.js';
|
|
5
|
-
import { Nullifier } from '../nullifier.js';
|
|
6
|
-
import { countAccumulatedItems, getNonEmptyItems } from '../utils/order_and_comparison.js';
|
|
7
3
|
import { NullifierReadRequestHintsBuilder } from './nullifier_read_request_hints.js';
|
|
8
|
-
import {
|
|
9
|
-
import { PendingReadHint, ReadRequestResetStates, ReadRequestState } from './read_request_hints.js';
|
|
4
|
+
import { PendingReadHint, ReadRequestActionEnum, ReadRequestResetActions } from './read_request_hints.js';
|
|
10
5
|
import { ScopedValueCache } from './scoped_value_cache.js';
|
|
11
6
|
export function isValidNullifierReadRequest(readRequest, nullifier) {
|
|
12
7
|
return readRequest.value.equals(nullifier.value) && nullifier.contractAddress.equals(readRequest.contractAddress) && readRequest.counter > nullifier.counter;
|
|
13
8
|
}
|
|
14
|
-
export function
|
|
15
|
-
const
|
|
9
|
+
export function getNullifierReadRequestResetActions(nullifierReadRequests, nullifiers, futureNullifiers) {
|
|
10
|
+
const resetActions = ReadRequestResetActions.empty(MAX_NULLIFIER_READ_REQUESTS_PER_TX);
|
|
16
11
|
const nullifierMap = new Map();
|
|
17
|
-
|
|
12
|
+
nullifiers.getActiveItems().forEach((nullifier, index)=>{
|
|
18
13
|
const value = nullifier.value.toBigInt();
|
|
19
14
|
const arr = nullifierMap.get(value) ?? [];
|
|
20
15
|
arr.push({
|
|
@@ -24,27 +19,26 @@ export function getNullifierReadRequestResetStates(nullifierReadRequests, nullif
|
|
|
24
19
|
nullifierMap.set(value, arr);
|
|
25
20
|
});
|
|
26
21
|
const futureNullifiersMap = new ScopedValueCache(futureNullifiers);
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
const readRequest = nullifierReadRequests[i];
|
|
22
|
+
for(let i = 0; i < nullifierReadRequests.claimedLength; ++i){
|
|
23
|
+
const readRequest = nullifierReadRequests.array[i];
|
|
30
24
|
const pendingNullifier = nullifierMap.get(readRequest.value.toBigInt())?.find(({ nullifier })=>isValidNullifierReadRequest(readRequest, nullifier));
|
|
31
25
|
if (pendingNullifier !== undefined) {
|
|
32
|
-
|
|
33
|
-
|
|
26
|
+
resetActions.actions[i] = ReadRequestActionEnum.READ_AS_PENDING;
|
|
27
|
+
resetActions.pendingReadHints.push(new PendingReadHint(i, pendingNullifier.index));
|
|
34
28
|
} else if (!futureNullifiersMap.get(readRequest).some((futureNullifier)=>isValidNullifierReadRequest(readRequest, futureNullifier))) {
|
|
35
|
-
|
|
29
|
+
resetActions.actions[i] = ReadRequestActionEnum.READ_AS_SETTLED;
|
|
36
30
|
}
|
|
37
31
|
}
|
|
38
|
-
return
|
|
32
|
+
return resetActions;
|
|
39
33
|
}
|
|
40
|
-
export async function
|
|
34
|
+
export async function buildNullifierReadRequestHintsFromResetActions(oracle, nullifierReadRequests, resetActions, maxPending = MAX_NULLIFIER_READ_REQUESTS_PER_TX, maxSettled = MAX_NULLIFIER_READ_REQUESTS_PER_TX, siloed = false) {
|
|
41
35
|
const builder = new NullifierReadRequestHintsBuilder(maxPending, maxSettled);
|
|
42
|
-
|
|
36
|
+
resetActions.pendingReadHints.forEach((hint)=>{
|
|
43
37
|
builder.addPendingReadRequest(hint.readRequestIndex, hint.pendingValueIndex);
|
|
44
38
|
});
|
|
45
|
-
for(let i = 0; i <
|
|
46
|
-
if (
|
|
47
|
-
const readRequest = nullifierReadRequests[i];
|
|
39
|
+
for(let i = 0; i < resetActions.actions.length; i++){
|
|
40
|
+
if (resetActions.actions[i] === ReadRequestActionEnum.READ_AS_SETTLED) {
|
|
41
|
+
const readRequest = nullifierReadRequests.array[i];
|
|
48
42
|
const siloedValue = siloed ? readRequest.value : await siloNullifier(readRequest.contractAddress, readRequest.value);
|
|
49
43
|
const membershipWitnessWithPreimage = await oracle.getNullifierMembershipWitness(siloedValue);
|
|
50
44
|
builder.addSettledReadRequest(i, membershipWitnessWithPreimage.membershipWitness, membershipWitnessWithPreimage.leafPreimage);
|
|
@@ -53,15 +47,6 @@ export async function buildNullifierReadRequestHintsFromResetStates(oracle, null
|
|
|
53
47
|
return builder.toHints();
|
|
54
48
|
}
|
|
55
49
|
export async function buildNullifierReadRequestHints(oracle, nullifierReadRequests, nullifiers, futureNullifiers, maxPending = MAX_NULLIFIER_READ_REQUESTS_PER_TX, maxSettled = MAX_NULLIFIER_READ_REQUESTS_PER_TX, siloed = false) {
|
|
56
|
-
const
|
|
57
|
-
return await
|
|
58
|
-
}
|
|
59
|
-
export async function buildSiloedNullifierReadRequestHints(oracle, nullifierReadRequests, nullifiers, maxPending = MAX_NULLIFIER_READ_REQUESTS_PER_TX, maxSettled = MAX_NULLIFIER_READ_REQUESTS_PER_TX) {
|
|
60
|
-
// Nullifiers outputted from public kernels are already siloed while read requests are not.
|
|
61
|
-
// Siloing the read request values and set the contract addresses to zero to find the matching nullifier contexts.
|
|
62
|
-
const nonEmptyNullifierReadRequests = getNonEmptyItems(nullifierReadRequests);
|
|
63
|
-
const readRequests = await Promise.all(nonEmptyNullifierReadRequests.map(async (r)=>new ReadRequest(await siloNullifier(r.contractAddress, r.value), r.counter).scope(AztecAddress.ZERO)));
|
|
64
|
-
const siloedReadRequests = padArrayEnd(readRequests, ScopedReadRequest.empty(), MAX_NULLIFIER_READ_REQUESTS_PER_TX);
|
|
65
|
-
const scopedNullifiers = nullifiers.map((n)=>new Nullifier(n.value, n.counter, n.noteHash).scope(AztecAddress.ZERO));
|
|
66
|
-
return buildNullifierReadRequestHints(oracle, siloedReadRequests, scopedNullifiers, [], maxPending, maxSettled, true);
|
|
50
|
+
const resetActions = getNullifierReadRequestResetActions(nullifierReadRequests, nullifiers, futureNullifiers);
|
|
51
|
+
return await buildNullifierReadRequestHintsFromResetActions(oracle, nullifierReadRequests, resetActions, maxPending, maxSettled, siloed);
|
|
67
52
|
}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import type { Tuple } from '@aztec/foundation/serialize';
|
|
2
|
+
import type { ClaimedLengthArray } from '../claimed_length_array.js';
|
|
2
3
|
import type { ScopedNoteHash } from '../note_hash.js';
|
|
3
4
|
import type { ScopedNullifier } from '../nullifier.js';
|
|
4
5
|
import type { ScopedReadRequest } from './read_request.js';
|
|
5
|
-
import {
|
|
6
|
-
export declare function buildTransientDataHints<NOTE_HASHES_LEN extends number, NULLIFIERS_LEN extends number>(noteHashes:
|
|
6
|
+
import { TransientDataSquashingHint } from './transient_data_squashing_hint.js';
|
|
7
|
+
export declare function buildTransientDataHints<NOTE_HASHES_LEN extends number, NULLIFIERS_LEN extends number>(noteHashes: ClaimedLengthArray<ScopedNoteHash, NOTE_HASHES_LEN>, nullifiers: ClaimedLengthArray<ScopedNullifier, NULLIFIERS_LEN>, futureNoteHashReads: ScopedReadRequest[], futureNullifierReads: ScopedReadRequest[], noteHashNullifierCounterMap: Map<number, number>, validationRequestsSplitCounter: number): {
|
|
7
8
|
numTransientData: number;
|
|
8
|
-
hints: Tuple<
|
|
9
|
+
hints: Tuple<TransientDataSquashingHint, NULLIFIERS_LEN>;
|
|
9
10
|
};
|
|
10
11
|
//# sourceMappingURL=build_transient_data_hints.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build_transient_data_hints.d.ts","sourceRoot":"","sources":["../../../src/kernel/hints/build_transient_data_hints.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAEzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"build_transient_data_hints.d.ts","sourceRoot":"","sources":["../../../src/kernel/hints/build_transient_data_hints.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAEzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAGvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,OAAO,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAEhF,wBAAgB,uBAAuB,CAAC,eAAe,SAAS,MAAM,EAAE,cAAc,SAAS,MAAM,EACnG,UAAU,EAAE,kBAAkB,CAAC,cAAc,EAAE,eAAe,CAAC,EAC/D,UAAU,EAAE,kBAAkB,CAAC,eAAe,EAAE,cAAc,CAAC,EAC/D,mBAAmB,EAAE,iBAAiB,EAAE,EACxC,oBAAoB,EAAE,iBAAiB,EAAE,EACzC,2BAA2B,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAChD,8BAA8B,EAAE,MAAM,GACrC;IAAE,gBAAgB,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,KAAK,CAAC,0BAA0B,EAAE,cAAc,CAAC,CAAA;CAAE,CA2DxF"}
|
|
@@ -1,18 +1,16 @@
|
|
|
1
1
|
import { padArrayEnd } from '@aztec/foundation/collection';
|
|
2
|
-
import { countAccumulatedItems } from '../utils/order_and_comparison.js';
|
|
3
2
|
import { isValidNoteHashReadRequest } from './build_note_hash_read_request_hints.js';
|
|
4
3
|
import { isValidNullifierReadRequest } from './build_nullifier_read_request_hints.js';
|
|
5
4
|
import { ScopedValueCache } from './scoped_value_cache.js';
|
|
6
|
-
import {
|
|
7
|
-
export function buildTransientDataHints(noteHashes, nullifiers, futureNoteHashReads, futureNullifierReads, noteHashNullifierCounterMap, validationRequestsSplitCounter
|
|
5
|
+
import { TransientDataSquashingHint } from './transient_data_squashing_hint.js';
|
|
6
|
+
export function buildTransientDataHints(noteHashes, nullifiers, futureNoteHashReads, futureNullifierReads, noteHashNullifierCounterMap, validationRequestsSplitCounter) {
|
|
8
7
|
const futureNoteHashReadsMap = new ScopedValueCache(futureNoteHashReads);
|
|
9
8
|
const futureNullifierReadsMap = new ScopedValueCache(futureNullifierReads);
|
|
10
9
|
const nullifierIndexMap = new Map();
|
|
11
|
-
nullifiers.forEach((n, i)=>nullifierIndexMap.set(n.counter, i));
|
|
10
|
+
nullifiers.getActiveItems().forEach((n, i)=>nullifierIndexMap.set(n.counter, i));
|
|
12
11
|
const hints = [];
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
const noteHash = noteHashes[noteHashIndex];
|
|
12
|
+
for(let noteHashIndex = 0; noteHashIndex < noteHashes.claimedLength; noteHashIndex++){
|
|
13
|
+
const noteHash = noteHashes.array[noteHashIndex];
|
|
16
14
|
const noteHashNullifierCounter = noteHashNullifierCounterMap.get(noteHash.counter);
|
|
17
15
|
// The note hash might not be linked to a nullifier or it might be read in the future
|
|
18
16
|
if (!noteHashNullifierCounter || futureNoteHashReadsMap.get(noteHash).find((read)=>isValidNoteHashReadRequest(read, noteHash))) {
|
|
@@ -23,7 +21,7 @@ export function buildTransientDataHints(noteHashes, nullifiers, futureNoteHashRe
|
|
|
23
21
|
if (nullifierIndex === undefined) {
|
|
24
22
|
continue;
|
|
25
23
|
}
|
|
26
|
-
const nullifier = nullifiers[nullifierIndex];
|
|
24
|
+
const nullifier = nullifiers.array[nullifierIndex];
|
|
27
25
|
// Cannot nullify a non-revertible note hash with a revertible nullifier.
|
|
28
26
|
if (noteHash.counter < validationRequestsSplitCounter && nullifier.counter >= validationRequestsSplitCounter) {
|
|
29
27
|
continue;
|
|
@@ -42,10 +40,11 @@ export function buildTransientDataHints(noteHashes, nullifiers, futureNoteHashRe
|
|
|
42
40
|
if (futureNullifierReadsMap.get(nullifier).find((read)=>isValidNullifierReadRequest(read, nullifier))) {
|
|
43
41
|
continue;
|
|
44
42
|
}
|
|
45
|
-
hints.push(new
|
|
43
|
+
hints.push(new TransientDataSquashingHint(nullifierIndex, noteHashIndex));
|
|
46
44
|
}
|
|
45
|
+
const noActionHint = new TransientDataSquashingHint(nullifiers.array.length, noteHashes.array.length);
|
|
47
46
|
return {
|
|
48
47
|
numTransientData: hints.length,
|
|
49
|
-
hints: padArrayEnd(hints,
|
|
48
|
+
hints: padArrayEnd(hints, noActionHint, nullifiers.array.length)
|
|
50
49
|
};
|
|
51
50
|
}
|
|
@@ -10,8 +10,7 @@ export * from './key_validation_request_and_generator.js';
|
|
|
10
10
|
export * from './read_request.js';
|
|
11
11
|
export * from './key_validation_request.js';
|
|
12
12
|
export * from './scoped_key_validation_request_and_generator.js';
|
|
13
|
-
export * from './
|
|
14
|
-
export * from './transient_data_index_hint.js';
|
|
13
|
+
export * from './transient_data_squashing_hint.js';
|
|
15
14
|
export * from './private_kernel_reset_hints.js';
|
|
16
15
|
export * from './tree_leaf_read_request.js';
|
|
17
16
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/kernel/hints/index.ts"],"names":[],"mappings":"AAAA,cAAc,yCAAyC,CAAC;AACxD,cAAc,yCAAyC,CAAC;AACxD,cAAc,iCAAiC,CAAC;AAChD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,mCAAmC,CAAC;AAClD,cAAc,mCAAmC,CAAC;AAClD,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2CAA2C,CAAC;AAC1D,cAAc,mBAAmB,CAAC;AAClC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kDAAkD,CAAC;AACjE,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/kernel/hints/index.ts"],"names":[],"mappings":"AAAA,cAAc,yCAAyC,CAAC;AACxD,cAAc,yCAAyC,CAAC;AACxD,cAAc,iCAAiC,CAAC;AAChD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,mCAAmC,CAAC;AAClD,cAAc,mCAAmC,CAAC;AAClD,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2CAA2C,CAAC;AAC1D,cAAc,mBAAmB,CAAC;AAClC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kDAAkD,CAAC;AACjE,cAAc,oCAAoC,CAAC;AACnD,cAAc,iCAAiC,CAAC;AAChD,cAAc,6BAA6B,CAAC"}
|
|
@@ -10,7 +10,6 @@ export * from './key_validation_request_and_generator.js';
|
|
|
10
10
|
export * from './read_request.js';
|
|
11
11
|
export * from './key_validation_request.js';
|
|
12
12
|
export * from './scoped_key_validation_request_and_generator.js';
|
|
13
|
-
export * from './
|
|
14
|
-
export * from './transient_data_index_hint.js';
|
|
13
|
+
export * from './transient_data_squashing_hint.js';
|
|
15
14
|
export * from './private_kernel_reset_hints.js';
|
|
16
15
|
export * from './tree_leaf_read_request.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"note_hash_read_request_hints.d.ts","sourceRoot":"","sources":["../../../src/kernel/hints/note_hash_read_request_hints.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kCAAkC,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAE7F,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,OAAO,
|
|
1
|
+
{"version":3,"file":"note_hash_read_request_hints.d.ts","sourceRoot":"","sources":["../../../src/kernel/hints/note_hash_read_request_hints.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kCAAkC,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAE7F,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,OAAO,EAAsC,qBAAqB,EAAmB,MAAM,yBAAyB,CAAC;AAErH,KAAK,iBAAiB,GAAG,EAAE,CAAC;AAE5B,MAAM,MAAM,wBAAwB,CAAC,OAAO,SAAS,MAAM,EAAE,OAAO,SAAS,MAAM,IAAI,qBAAqB,CAC1G,OAAO,kCAAkC,EACzC,OAAO,EACP,OAAO,EACP,OAAO,qBAAqB,EAC5B,iBAAiB,CAClB,CAAC;AAEF,wBAAgB,kCAAkC,CAAC,OAAO,SAAS,MAAM,EAAE,OAAO,SAAS,MAAM,EAC/F,MAAM,EAAE,MAAM,GAAG,YAAY,EAC7B,UAAU,EAAE,OAAO,EACnB,UAAU,EAAE,OAAO,GAClB,wBAAwB,CAAC,OAAO,EAAE,OAAO,CAAC,CAS5C;AAED,qBAAa,+BAA+B,CAAC,OAAO,SAAS,MAAM,EAAE,OAAO,SAAS,MAAM;aAMvE,UAAU,EAAE,OAAO;aACnB,UAAU,EAAE,OAAO;IANrC,OAAO,CAAC,KAAK,CAA6C;IACnD,mBAAmB,SAAK;IACxB,mBAAmB,SAAK;gBAGb,UAAU,EAAE,OAAO,EACnB,UAAU,EAAE,OAAO;IAWrC,MAAM,CAAC,KAAK,CAAC,OAAO,SAAS,MAAM,EAAE,OAAO,SAAS,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO;IAIrG,qBAAqB,CAAC,gBAAgB,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;IASrE,qBAAqB,CACnB,gBAAgB,EAAE,MAAM,EACxB,iBAAiB,EAAE,iBAAiB,CAAC,OAAO,qBAAqB,CAAC,EAClE,KAAK,EAAE,iBAAiB;IAc1B,OAAO;CAGR"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { MAX_NOTE_HASH_READ_REQUESTS_PER_TX, NOTE_HASH_TREE_HEIGHT } from '@aztec/constants';
|
|
2
2
|
import { makeTuple } from '@aztec/foundation/array';
|
|
3
3
|
import { Fr } from '@aztec/foundation/fields';
|
|
4
|
-
import { PendingReadHint,
|
|
4
|
+
import { PendingReadHint, ReadRequestAction, ReadRequestResetHints, SettledReadHint } from './read_request_hints.js';
|
|
5
5
|
export function noteHashReadRequestHintsFromBuffer(buffer, numPending, numSettled) {
|
|
6
6
|
return ReadRequestResetHints.fromBuffer(buffer, MAX_NOTE_HASH_READ_REQUESTS_PER_TX, numPending, numSettled, NOTE_HASH_TREE_HEIGHT, Fr);
|
|
7
7
|
}
|
|
@@ -16,7 +16,7 @@ export class NoteHashReadRequestHintsBuilder {
|
|
|
16
16
|
this.maxSettled = maxSettled;
|
|
17
17
|
this.numPendingReadHints = 0;
|
|
18
18
|
this.numSettledReadHints = 0;
|
|
19
|
-
this.hints = new ReadRequestResetHints(makeTuple(MAX_NOTE_HASH_READ_REQUESTS_PER_TX,
|
|
19
|
+
this.hints = new ReadRequestResetHints(makeTuple(MAX_NOTE_HASH_READ_REQUESTS_PER_TX, ReadRequestAction.skip), makeTuple(maxPending, ()=>PendingReadHint.nada(MAX_NOTE_HASH_READ_REQUESTS_PER_TX)), makeTuple(maxSettled, ()=>SettledReadHint.nada(MAX_NOTE_HASH_READ_REQUESTS_PER_TX, NOTE_HASH_TREE_HEIGHT, Fr.zero)));
|
|
20
20
|
}
|
|
21
21
|
static empty(maxPending, maxSettled) {
|
|
22
22
|
return new NoteHashReadRequestHintsBuilder(maxPending, maxSettled).toHints();
|
|
@@ -25,7 +25,7 @@ export class NoteHashReadRequestHintsBuilder {
|
|
|
25
25
|
if (this.numPendingReadHints === this.maxPending) {
|
|
26
26
|
throw new Error('Cannot add more pending read request.');
|
|
27
27
|
}
|
|
28
|
-
this.hints.
|
|
28
|
+
this.hints.readRequestActions[readRequestIndex] = ReadRequestAction.readAsPending(this.numPendingReadHints);
|
|
29
29
|
this.hints.pendingReadHints[this.numPendingReadHints] = new PendingReadHint(readRequestIndex, noteHashIndex);
|
|
30
30
|
this.numPendingReadHints++;
|
|
31
31
|
}
|
|
@@ -33,7 +33,7 @@ export class NoteHashReadRequestHintsBuilder {
|
|
|
33
33
|
if (this.numSettledReadHints === this.maxSettled) {
|
|
34
34
|
throw new Error('Cannot add more settled read request.');
|
|
35
35
|
}
|
|
36
|
-
this.hints.
|
|
36
|
+
this.hints.readRequestActions[readRequestIndex] = ReadRequestAction.readAsSettled(this.numSettledReadHints);
|
|
37
37
|
this.hints.settledReadHints[this.numSettledReadHints] = new SettledReadHint(readRequestIndex, membershipWitness, value);
|
|
38
38
|
this.numSettledReadHints++;
|
|
39
39
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nullifier_read_request_hints.d.ts","sourceRoot":"","sources":["../../../src/kernel/hints/nullifier_read_request_hints.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kCAAkC,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAE7F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAGnF,OAAO,
|
|
1
|
+
{"version":3,"file":"nullifier_read_request_hints.d.ts","sourceRoot":"","sources":["../../../src/kernel/hints/nullifier_read_request_hints.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kCAAkC,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAE7F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAGnF,OAAO,EAAsC,qBAAqB,EAAmB,MAAM,yBAAyB,CAAC;AAErH,MAAM,MAAM,yBAAyB,CAAC,OAAO,SAAS,MAAM,EAAE,OAAO,SAAS,MAAM,IAAI,qBAAqB,CAC3G,OAAO,kCAAkC,EACzC,OAAO,EACP,OAAO,EACP,OAAO,qBAAqB,EAC5B,gBAAgB,CACjB,CAAC;AAEF,wBAAgB,mCAAmC,CAAC,OAAO,SAAS,MAAM,EAAE,OAAO,SAAS,MAAM,EAChG,MAAM,EAAE,MAAM,GAAG,YAAY,EAC7B,eAAe,EAAE,OAAO,EACxB,eAAe,EAAE,OAAO,GACvB,yBAAyB,CAAC,OAAO,EAAE,OAAO,CAAC,CAS7C;AAED,qBAAa,gCAAgC,CAAC,OAAO,SAAS,MAAM,EAAE,OAAO,SAAS,MAAM;aAMxE,UAAU,EAAE,OAAO;aACnB,UAAU,EAAE,OAAO;IANrC,OAAO,CAAC,KAAK,CAA8C;IAC3D,OAAO,CAAC,mBAAmB,CAAK;IAChC,OAAO,CAAC,mBAAmB,CAAK;gBAGd,UAAU,EAAE,OAAO,EACnB,UAAU,EAAE,OAAO;IAWrC,MAAM,CAAC,KAAK,CAAC,OAAO,SAAS,MAAM,EAAE,OAAO,SAAS,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO;IAIrG,qBAAqB,CAAC,gBAAgB,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM;IAUtE,qBAAqB,CACnB,gBAAgB,EAAE,MAAM,EACxB,iBAAiB,EAAE,iBAAiB,CAAC,OAAO,qBAAqB,CAAC,EAClE,YAAY,EAAE,gBAAgB;IAchC,OAAO;CAGR"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { MAX_NULLIFIER_READ_REQUESTS_PER_TX, NULLIFIER_TREE_HEIGHT } from '@aztec/constants';
|
|
2
2
|
import { makeTuple } from '@aztec/foundation/array';
|
|
3
3
|
import { NullifierLeafPreimage } from '../../trees/index.js';
|
|
4
|
-
import { PendingReadHint,
|
|
4
|
+
import { PendingReadHint, ReadRequestAction, ReadRequestResetHints, SettledReadHint } from './read_request_hints.js';
|
|
5
5
|
export function nullifierReadRequestHintsFromBuffer(buffer, numPendingReads, numSettledReads) {
|
|
6
6
|
return ReadRequestResetHints.fromBuffer(buffer, MAX_NULLIFIER_READ_REQUESTS_PER_TX, numPendingReads, numSettledReads, NULLIFIER_TREE_HEIGHT, NullifierLeafPreimage);
|
|
7
7
|
}
|
|
@@ -16,7 +16,7 @@ export class NullifierReadRequestHintsBuilder {
|
|
|
16
16
|
this.maxSettled = maxSettled;
|
|
17
17
|
this.numPendingReadHints = 0;
|
|
18
18
|
this.numSettledReadHints = 0;
|
|
19
|
-
this.hints = new ReadRequestResetHints(makeTuple(MAX_NULLIFIER_READ_REQUESTS_PER_TX,
|
|
19
|
+
this.hints = new ReadRequestResetHints(makeTuple(MAX_NULLIFIER_READ_REQUESTS_PER_TX, ReadRequestAction.skip), makeTuple(maxPending, ()=>PendingReadHint.nada(MAX_NULLIFIER_READ_REQUESTS_PER_TX)), makeTuple(maxSettled, ()=>SettledReadHint.nada(MAX_NULLIFIER_READ_REQUESTS_PER_TX, NULLIFIER_TREE_HEIGHT, NullifierLeafPreimage.empty)));
|
|
20
20
|
}
|
|
21
21
|
static empty(maxPending, maxSettled) {
|
|
22
22
|
return new NullifierReadRequestHintsBuilder(maxPending, maxSettled).toHints();
|
|
@@ -25,7 +25,7 @@ export class NullifierReadRequestHintsBuilder {
|
|
|
25
25
|
if (this.numPendingReadHints === this.maxPending) {
|
|
26
26
|
throw new Error('Cannot add more pending read request.');
|
|
27
27
|
}
|
|
28
|
-
this.hints.
|
|
28
|
+
this.hints.readRequestActions[readRequestIndex] = ReadRequestAction.readAsPending(this.numPendingReadHints);
|
|
29
29
|
this.hints.pendingReadHints[this.numPendingReadHints] = new PendingReadHint(readRequestIndex, nullifierIndex);
|
|
30
30
|
this.numPendingReadHints++;
|
|
31
31
|
}
|
|
@@ -33,7 +33,7 @@ export class NullifierReadRequestHintsBuilder {
|
|
|
33
33
|
if (this.numSettledReadHints === this.maxSettled) {
|
|
34
34
|
throw new Error('Cannot add more settled read request.');
|
|
35
35
|
}
|
|
36
|
-
this.hints.
|
|
36
|
+
this.hints.readRequestActions[readRequestIndex] = ReadRequestAction.readAsSettled(this.numSettledReadHints);
|
|
37
37
|
this.hints.settledReadHints[this.numSettledReadHints] = new SettledReadHint(readRequestIndex, membershipWitness, leafPreimage);
|
|
38
38
|
this.numSettledReadHints++;
|
|
39
39
|
}
|
|
@@ -2,7 +2,7 @@ import { BufferReader, type Tuple } from '@aztec/foundation/serialize';
|
|
|
2
2
|
import { KeyValidationHint } from './key_validation_hint.js';
|
|
3
3
|
import { type NoteHashReadRequestHints } from './note_hash_read_request_hints.js';
|
|
4
4
|
import { type NullifierReadRequestHints } from './nullifier_read_request_hints.js';
|
|
5
|
-
import {
|
|
5
|
+
import { TransientDataSquashingHint } from './transient_data_squashing_hint.js';
|
|
6
6
|
export declare class PrivateKernelResetHints<NH_RR_PENDING extends number, NH_RR_SETTLED extends number, NLL_RR_PENDING extends number, NLL_RR_SETTLED extends number, KEY_VALIDATION_HINTS_LEN extends number, TRANSIENT_DATA_HINTS_LEN extends number> {
|
|
7
7
|
/**
|
|
8
8
|
* Contains hints for the transient read requests to localize corresponding commitments.
|
|
@@ -19,7 +19,7 @@ export declare class PrivateKernelResetHints<NH_RR_PENDING extends number, NH_RR
|
|
|
19
19
|
/**
|
|
20
20
|
* Contains hints for the transient note hashes to locate corresponding nullifiers.
|
|
21
21
|
*/
|
|
22
|
-
|
|
22
|
+
transientDataSquashingHints: Tuple<TransientDataSquashingHint, TRANSIENT_DATA_HINTS_LEN>;
|
|
23
23
|
/**
|
|
24
24
|
* The "final" minRevertibleSideEffectCounter of a tx, to split the data for squashing.
|
|
25
25
|
* Not the minRevertibleSideEffectCounter at the point the reset circuit is run.
|
|
@@ -41,19 +41,19 @@ export declare class PrivateKernelResetHints<NH_RR_PENDING extends number, NH_RR
|
|
|
41
41
|
/**
|
|
42
42
|
* Contains hints for the transient note hashes to locate corresponding nullifiers.
|
|
43
43
|
*/
|
|
44
|
-
|
|
44
|
+
transientDataSquashingHints: Tuple<TransientDataSquashingHint, TRANSIENT_DATA_HINTS_LEN>,
|
|
45
45
|
/**
|
|
46
46
|
* The "final" minRevertibleSideEffectCounter of a tx, to split the data for squashing.
|
|
47
47
|
* Not the minRevertibleSideEffectCounter at the point the reset circuit is run.
|
|
48
48
|
*/
|
|
49
49
|
validationRequestsSplitCounter: number);
|
|
50
50
|
toBuffer(): Buffer<ArrayBufferLike>;
|
|
51
|
-
trimToSizes(numNoteHashReadRequestPending: number, numNoteHashReadRequestSettled: number, numNullifierReadRequestPending: number, numNullifierReadRequestSettled: number, numKeyValidationHints: number,
|
|
51
|
+
trimToSizes(numNoteHashReadRequestPending: number, numNoteHashReadRequestSettled: number, numNullifierReadRequestPending: number, numNullifierReadRequestSettled: number, numKeyValidationHints: number, numTransientDataSquashingHints: number): PrivateKernelResetHints<number, number, number, number, number, number>;
|
|
52
52
|
/**
|
|
53
53
|
* Deserializes from a buffer or reader.
|
|
54
54
|
* @param buffer - Buffer or reader to read from.
|
|
55
55
|
* @returns The deserialized instance.
|
|
56
56
|
*/
|
|
57
|
-
static fromBuffer<NH_RR_PENDING extends number, NH_RR_SETTLED extends number, NLL_RR_PENDING extends number, NLL_RR_SETTLED extends number, KEY_VALIDATION_HINTS_LEN extends number, TRANSIENT_DATA_HINTS_LEN extends number>(buffer: Buffer | BufferReader, numNoteHashReadRequestPending: NH_RR_PENDING, numNoteHashReadRequestSettled: NH_RR_SETTLED, numNullifierReadRequestPending: NLL_RR_PENDING, numNullifierReadRequestSettled: NLL_RR_SETTLED, numKeyValidationHints: KEY_VALIDATION_HINTS_LEN,
|
|
57
|
+
static fromBuffer<NH_RR_PENDING extends number, NH_RR_SETTLED extends number, NLL_RR_PENDING extends number, NLL_RR_SETTLED extends number, KEY_VALIDATION_HINTS_LEN extends number, TRANSIENT_DATA_HINTS_LEN extends number>(buffer: Buffer | BufferReader, numNoteHashReadRequestPending: NH_RR_PENDING, numNoteHashReadRequestSettled: NH_RR_SETTLED, numNullifierReadRequestPending: NLL_RR_PENDING, numNullifierReadRequestSettled: NLL_RR_SETTLED, numKeyValidationHints: KEY_VALIDATION_HINTS_LEN, numTransientDataSquashingHints: TRANSIENT_DATA_HINTS_LEN): PrivateKernelResetHints<NH_RR_PENDING, NH_RR_SETTLED, NLL_RR_PENDING, NLL_RR_SETTLED, KEY_VALIDATION_HINTS_LEN, TRANSIENT_DATA_HINTS_LEN>;
|
|
58
58
|
}
|
|
59
59
|
//# sourceMappingURL=private_kernel_reset_hints.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"private_kernel_reset_hints.d.ts","sourceRoot":"","sources":["../../../src/kernel/hints/private_kernel_reset_hints.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,KAAK,KAAK,EAAqB,MAAM,6BAA6B,CAAC;AAE1F,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,KAAK,wBAAwB,EAAsC,MAAM,mCAAmC,CAAC;AACtH,OAAO,EAAE,KAAK,yBAAyB,EAAuC,MAAM,mCAAmC,CAAC;AACxH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"private_kernel_reset_hints.d.ts","sourceRoot":"","sources":["../../../src/kernel/hints/private_kernel_reset_hints.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,KAAK,KAAK,EAAqB,MAAM,6BAA6B,CAAC;AAE1F,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,KAAK,wBAAwB,EAAsC,MAAM,mCAAmC,CAAC;AACtH,OAAO,EAAE,KAAK,yBAAyB,EAAuC,MAAM,mCAAmC,CAAC;AACxH,OAAO,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAEhF,qBAAa,uBAAuB,CAClC,aAAa,SAAS,MAAM,EAC5B,aAAa,SAAS,MAAM,EAC5B,cAAc,SAAS,MAAM,EAC7B,cAAc,SAAS,MAAM,EAC7B,wBAAwB,SAAS,MAAM,EACvC,wBAAwB,SAAS,MAAM;IAGrC;;OAEG;IACI,wBAAwB,EAAE,wBAAwB,CAAC,aAAa,EAAE,aAAa,CAAC;IACvF;;OAEG;IACI,yBAAyB,EAAE,yBAAyB,CAAC,cAAc,EAAE,cAAc,CAAC;IAC3F;;OAEG;IACI,kBAAkB,EAAE,KAAK,CAAC,iBAAiB,EAAE,wBAAwB,CAAC;IAC7E;;OAEG;IACI,2BAA2B,EAAE,KAAK,CAAC,0BAA0B,EAAE,wBAAwB,CAAC;IAC/F;;;OAGG;IACI,8BAA8B,EAAE,MAAM;;IApB7C;;OAEG;IACI,wBAAwB,EAAE,wBAAwB,CAAC,aAAa,EAAE,aAAa,CAAC;IACvF;;OAEG;IACI,yBAAyB,EAAE,yBAAyB,CAAC,cAAc,EAAE,cAAc,CAAC;IAC3F;;OAEG;IACI,kBAAkB,EAAE,KAAK,CAAC,iBAAiB,EAAE,wBAAwB,CAAC;IAC7E;;OAEG;IACI,2BAA2B,EAAE,KAAK,CAAC,0BAA0B,EAAE,wBAAwB,CAAC;IAC/F;;;OAGG;IACI,8BAA8B,EAAE,MAAM;IAG/C,QAAQ;IAUR,WAAW,CACT,6BAA6B,EAAE,MAAM,EACrC,6BAA6B,EAAE,MAAM,EACrC,8BAA8B,EAAE,MAAM,EACtC,8BAA8B,EAAE,MAAM,EACtC,qBAAqB,EAAE,MAAM,EAC7B,8BAA8B,EAAE,MAAM;IAqBxC;;;;OAIG;IACH,MAAM,CAAC,UAAU,CACf,aAAa,SAAS,MAAM,EAC5B,aAAa,SAAS,MAAM,EAC5B,cAAc,SAAS,MAAM,EAC7B,cAAc,SAAS,MAAM,EAC7B,wBAAwB,SAAS,MAAM,EACvC,wBAAwB,SAAS,MAAM,EAEvC,MAAM,EAAE,MAAM,GAAG,YAAY,EAC7B,6BAA6B,EAAE,aAAa,EAC5C,6BAA6B,EAAE,aAAa,EAC5C,8BAA8B,EAAE,cAAc,EAC9C,8BAA8B,EAAE,cAAc,EAC9C,qBAAqB,EAAE,wBAAwB,EAC/C,8BAA8B,EAAE,wBAAwB,GACvD,uBAAuB,CACxB,aAAa,EACb,aAAa,EACb,cAAc,EACd,cAAc,EACd,wBAAwB,EACxB,wBAAwB,CACzB;CAgBF"}
|
|
@@ -2,12 +2,12 @@ import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
|
2
2
|
import { KeyValidationHint } from './key_validation_hint.js';
|
|
3
3
|
import { noteHashReadRequestHintsFromBuffer } from './note_hash_read_request_hints.js';
|
|
4
4
|
import { nullifierReadRequestHintsFromBuffer } from './nullifier_read_request_hints.js';
|
|
5
|
-
import {
|
|
5
|
+
import { TransientDataSquashingHint } from './transient_data_squashing_hint.js';
|
|
6
6
|
export class PrivateKernelResetHints {
|
|
7
7
|
noteHashReadRequestHints;
|
|
8
8
|
nullifierReadRequestHints;
|
|
9
9
|
keyValidationHints;
|
|
10
|
-
|
|
10
|
+
transientDataSquashingHints;
|
|
11
11
|
validationRequestsSplitCounter;
|
|
12
12
|
constructor(/**
|
|
13
13
|
* Contains hints for the transient read requests to localize corresponding commitments.
|
|
@@ -17,36 +17,36 @@ export class PrivateKernelResetHints {
|
|
|
17
17
|
* Contains hints for key validation request.
|
|
18
18
|
*/ keyValidationHints, /**
|
|
19
19
|
* Contains hints for the transient note hashes to locate corresponding nullifiers.
|
|
20
|
-
*/
|
|
20
|
+
*/ transientDataSquashingHints, /**
|
|
21
21
|
* The "final" minRevertibleSideEffectCounter of a tx, to split the data for squashing.
|
|
22
22
|
* Not the minRevertibleSideEffectCounter at the point the reset circuit is run.
|
|
23
23
|
*/ validationRequestsSplitCounter){
|
|
24
24
|
this.noteHashReadRequestHints = noteHashReadRequestHints;
|
|
25
25
|
this.nullifierReadRequestHints = nullifierReadRequestHints;
|
|
26
26
|
this.keyValidationHints = keyValidationHints;
|
|
27
|
-
this.
|
|
27
|
+
this.transientDataSquashingHints = transientDataSquashingHints;
|
|
28
28
|
this.validationRequestsSplitCounter = validationRequestsSplitCounter;
|
|
29
29
|
}
|
|
30
30
|
toBuffer() {
|
|
31
|
-
return serializeToBuffer(this.noteHashReadRequestHints, this.nullifierReadRequestHints, this.keyValidationHints, this.
|
|
31
|
+
return serializeToBuffer(this.noteHashReadRequestHints, this.nullifierReadRequestHints, this.keyValidationHints, this.transientDataSquashingHints, this.validationRequestsSplitCounter);
|
|
32
32
|
}
|
|
33
|
-
trimToSizes(numNoteHashReadRequestPending, numNoteHashReadRequestSettled, numNullifierReadRequestPending, numNullifierReadRequestSettled, numKeyValidationHints,
|
|
33
|
+
trimToSizes(numNoteHashReadRequestPending, numNoteHashReadRequestSettled, numNullifierReadRequestPending, numNullifierReadRequestSettled, numKeyValidationHints, numTransientDataSquashingHints) {
|
|
34
34
|
// Noir does not allow empty arrays. So we make the minimum array size 1.
|
|
35
35
|
// There is a constant for each dimension, coded in the circuit that indicates how many hints should be applied.
|
|
36
36
|
// The circuit is selected based on the dimension sizes, not the hint array sizes created here.
|
|
37
37
|
const useSize = (num)=>Math.max(num, 1);
|
|
38
|
-
return new PrivateKernelResetHints(this.noteHashReadRequestHints.trimToSizes(useSize(numNoteHashReadRequestPending), useSize(numNoteHashReadRequestSettled)), this.nullifierReadRequestHints.trimToSizes(useSize(numNullifierReadRequestPending), useSize(numNullifierReadRequestSettled)), this.keyValidationHints.slice(0, useSize(numKeyValidationHints)), this.
|
|
38
|
+
return new PrivateKernelResetHints(this.noteHashReadRequestHints.trimToSizes(useSize(numNoteHashReadRequestPending), useSize(numNoteHashReadRequestSettled)), this.nullifierReadRequestHints.trimToSizes(useSize(numNullifierReadRequestPending), useSize(numNullifierReadRequestSettled)), this.keyValidationHints.slice(0, useSize(numKeyValidationHints)), this.transientDataSquashingHints.slice(0, useSize(numTransientDataSquashingHints)), this.validationRequestsSplitCounter);
|
|
39
39
|
}
|
|
40
40
|
/**
|
|
41
41
|
* Deserializes from a buffer or reader.
|
|
42
42
|
* @param buffer - Buffer or reader to read from.
|
|
43
43
|
* @returns The deserialized instance.
|
|
44
|
-
*/ static fromBuffer(buffer, numNoteHashReadRequestPending, numNoteHashReadRequestSettled, numNullifierReadRequestPending, numNullifierReadRequestSettled, numKeyValidationHints,
|
|
44
|
+
*/ static fromBuffer(buffer, numNoteHashReadRequestPending, numNoteHashReadRequestSettled, numNullifierReadRequestPending, numNullifierReadRequestSettled, numKeyValidationHints, numTransientDataSquashingHints) {
|
|
45
45
|
const reader = BufferReader.asReader(buffer);
|
|
46
46
|
return new PrivateKernelResetHints(reader.readObject({
|
|
47
47
|
fromBuffer: (buf)=>noteHashReadRequestHintsFromBuffer(buf, numNoteHashReadRequestPending, numNoteHashReadRequestSettled)
|
|
48
48
|
}), reader.readObject({
|
|
49
49
|
fromBuffer: (buf)=>nullifierReadRequestHintsFromBuffer(buf, numNullifierReadRequestPending, numNullifierReadRequestSettled)
|
|
50
|
-
}), reader.readArray(numKeyValidationHints, KeyValidationHint), reader.readArray(
|
|
50
|
+
}), reader.readArray(numKeyValidationHints, KeyValidationHint), reader.readArray(numTransientDataSquashingHints, TransientDataSquashingHint), reader.readNumber());
|
|
51
51
|
}
|
|
52
52
|
}
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import { BufferReader, type Bufferable, type Tuple } from '@aztec/foundation/serialize';
|
|
2
2
|
import { MembershipWitness } from '@aztec/foundation/trees';
|
|
3
|
-
export declare enum
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
export declare enum ReadRequestActionEnum {
|
|
4
|
+
SKIP = 0,
|
|
5
|
+
READ_AS_PENDING = 1,
|
|
6
|
+
READ_AS_SETTLED = 2
|
|
7
7
|
}
|
|
8
|
-
export declare class
|
|
9
|
-
|
|
8
|
+
export declare class ReadRequestAction {
|
|
9
|
+
action: ReadRequestActionEnum;
|
|
10
10
|
hintIndex: number;
|
|
11
|
-
constructor(
|
|
12
|
-
static
|
|
13
|
-
static
|
|
14
|
-
static
|
|
15
|
-
static fromBuffer(buffer: Buffer | BufferReader):
|
|
11
|
+
constructor(action: ReadRequestActionEnum, hintIndex: number);
|
|
12
|
+
static skip(): ReadRequestAction;
|
|
13
|
+
static readAsPending(hintIndex: number): ReadRequestAction;
|
|
14
|
+
static readAsSettled(hintIndex: number): ReadRequestAction;
|
|
15
|
+
static fromBuffer(buffer: Buffer | BufferReader): ReadRequestAction;
|
|
16
16
|
toBuffer(): Buffer<ArrayBufferLike>;
|
|
17
17
|
}
|
|
18
18
|
export declare class PendingReadHint {
|
|
@@ -38,7 +38,7 @@ export declare class SettledReadHint<TREE_HEIGHT extends number, LEAF_PREIMAGE e
|
|
|
38
38
|
* Hints for read request reset circuit.
|
|
39
39
|
*/
|
|
40
40
|
export declare class ReadRequestResetHints<READ_REQUEST_LEN extends number, PENDING_READ_HINTS_LEN extends number, SETTLED_READ_HINTS_LEN extends number, TREE_HEIGHT extends number, LEAF_PREIMAGE extends Bufferable> {
|
|
41
|
-
|
|
41
|
+
readRequestActions: Tuple<ReadRequestAction, READ_REQUEST_LEN>;
|
|
42
42
|
/**
|
|
43
43
|
* The hints for read requests reading pending values.
|
|
44
44
|
*/
|
|
@@ -47,7 +47,7 @@ export declare class ReadRequestResetHints<READ_REQUEST_LEN extends number, PEND
|
|
|
47
47
|
* The hints for read requests reading settled values.
|
|
48
48
|
*/
|
|
49
49
|
settledReadHints: Tuple<SettledReadHint<TREE_HEIGHT, LEAF_PREIMAGE>, SETTLED_READ_HINTS_LEN>;
|
|
50
|
-
constructor(
|
|
50
|
+
constructor(readRequestActions: Tuple<ReadRequestAction, READ_REQUEST_LEN>,
|
|
51
51
|
/**
|
|
52
52
|
* The hints for read requests reading pending values.
|
|
53
53
|
*/
|
|
@@ -67,10 +67,10 @@ export declare class ReadRequestResetHints<READ_REQUEST_LEN extends number, PEND
|
|
|
67
67
|
}): ReadRequestResetHints<READ_REQUEST_LEN, PENDING_READ_HINTS_LEN, SETTLED_READ_HINTS_LEN, TREE_HEIGHT, LEAF_PREIMAGE>;
|
|
68
68
|
toBuffer(): Buffer<ArrayBufferLike>;
|
|
69
69
|
}
|
|
70
|
-
export declare class
|
|
71
|
-
|
|
70
|
+
export declare class ReadRequestResetActions<NUM_READS extends number> {
|
|
71
|
+
actions: Tuple<ReadRequestActionEnum, NUM_READS>;
|
|
72
72
|
pendingReadHints: PendingReadHint[];
|
|
73
|
-
constructor(
|
|
74
|
-
static empty<NUM_READS extends number>(numReads: NUM_READS):
|
|
73
|
+
constructor(actions: Tuple<ReadRequestActionEnum, NUM_READS>, pendingReadHints: PendingReadHint[]);
|
|
74
|
+
static empty<NUM_READS extends number>(numReads: NUM_READS): ReadRequestResetActions<NUM_READS>;
|
|
75
75
|
}
|
|
76
76
|
//# sourceMappingURL=read_request_hints.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read_request_hints.d.ts","sourceRoot":"","sources":["../../../src/kernel/hints/read_request_hints.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,KAAK,UAAU,EAAE,KAAK,KAAK,EAAqB,MAAM,6BAA6B,CAAC;AAC3G,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,oBAAY,
|
|
1
|
+
{"version":3,"file":"read_request_hints.d.ts","sourceRoot":"","sources":["../../../src/kernel/hints/read_request_hints.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,34 +1,34 @@
|
|
|
1
1
|
import { makeTuple } from '@aztec/foundation/array';
|
|
2
2
|
import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
3
3
|
import { MembershipWitness } from '@aztec/foundation/trees';
|
|
4
|
-
export var
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
return
|
|
4
|
+
export var ReadRequestActionEnum = /*#__PURE__*/ function(ReadRequestActionEnum) {
|
|
5
|
+
ReadRequestActionEnum[ReadRequestActionEnum["SKIP"] = 0] = "SKIP";
|
|
6
|
+
ReadRequestActionEnum[ReadRequestActionEnum["READ_AS_PENDING"] = 1] = "READ_AS_PENDING";
|
|
7
|
+
ReadRequestActionEnum[ReadRequestActionEnum["READ_AS_SETTLED"] = 2] = "READ_AS_SETTLED";
|
|
8
|
+
return ReadRequestActionEnum;
|
|
9
9
|
}({});
|
|
10
|
-
export class
|
|
11
|
-
|
|
10
|
+
export class ReadRequestAction {
|
|
11
|
+
action;
|
|
12
12
|
hintIndex;
|
|
13
|
-
constructor(
|
|
14
|
-
this.
|
|
13
|
+
constructor(action, hintIndex){
|
|
14
|
+
this.action = action;
|
|
15
15
|
this.hintIndex = hintIndex;
|
|
16
16
|
}
|
|
17
|
-
static
|
|
18
|
-
return new
|
|
17
|
+
static skip() {
|
|
18
|
+
return new ReadRequestAction(0, 0);
|
|
19
19
|
}
|
|
20
|
-
static
|
|
21
|
-
return new
|
|
20
|
+
static readAsPending(hintIndex) {
|
|
21
|
+
return new ReadRequestAction(1, hintIndex);
|
|
22
22
|
}
|
|
23
|
-
static
|
|
24
|
-
return new
|
|
23
|
+
static readAsSettled(hintIndex) {
|
|
24
|
+
return new ReadRequestAction(2, hintIndex);
|
|
25
25
|
}
|
|
26
26
|
static fromBuffer(buffer) {
|
|
27
27
|
const reader = BufferReader.asReader(buffer);
|
|
28
|
-
return new
|
|
28
|
+
return new ReadRequestAction(reader.readNumber(), reader.readNumber());
|
|
29
29
|
}
|
|
30
30
|
toBuffer() {
|
|
31
|
-
return serializeToBuffer(this.
|
|
31
|
+
return serializeToBuffer(this.action, this.hintIndex);
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
34
|
export class PendingReadHint {
|
|
@@ -72,20 +72,20 @@ export class SettledReadHint {
|
|
|
72
72
|
/**
|
|
73
73
|
* Hints for read request reset circuit.
|
|
74
74
|
*/ export class ReadRequestResetHints {
|
|
75
|
-
|
|
75
|
+
readRequestActions;
|
|
76
76
|
pendingReadHints;
|
|
77
77
|
settledReadHints;
|
|
78
|
-
constructor(
|
|
78
|
+
constructor(readRequestActions, /**
|
|
79
79
|
* The hints for read requests reading pending values.
|
|
80
80
|
*/ pendingReadHints, /**
|
|
81
81
|
* The hints for read requests reading settled values.
|
|
82
82
|
*/ settledReadHints){
|
|
83
|
-
this.
|
|
83
|
+
this.readRequestActions = readRequestActions;
|
|
84
84
|
this.pendingReadHints = pendingReadHints;
|
|
85
85
|
this.settledReadHints = settledReadHints;
|
|
86
86
|
}
|
|
87
87
|
trimToSizes(numPendingReads, numSettledReads) {
|
|
88
|
-
return new ReadRequestResetHints(this.
|
|
88
|
+
return new ReadRequestResetHints(this.readRequestActions, this.pendingReadHints.slice(0, numPendingReads), this.settledReadHints.slice(0, numSettledReads));
|
|
89
89
|
}
|
|
90
90
|
/**
|
|
91
91
|
* Deserializes from a buffer or reader.
|
|
@@ -93,22 +93,22 @@ export class SettledReadHint {
|
|
|
93
93
|
* @returns The deserialized instance.
|
|
94
94
|
*/ static fromBuffer(buffer, readRequestLen, numPendingReads, numSettledReads, treeHeight, leafPreimageFromBuffer) {
|
|
95
95
|
const reader = BufferReader.asReader(buffer);
|
|
96
|
-
return new ReadRequestResetHints(reader.readArray(readRequestLen,
|
|
96
|
+
return new ReadRequestResetHints(reader.readArray(readRequestLen, ReadRequestAction), reader.readArray(numPendingReads, PendingReadHint), reader.readArray(numSettledReads, {
|
|
97
97
|
fromBuffer: (r)=>SettledReadHint.fromBuffer(r, treeHeight, leafPreimageFromBuffer)
|
|
98
98
|
}));
|
|
99
99
|
}
|
|
100
100
|
toBuffer() {
|
|
101
|
-
return serializeToBuffer(this.
|
|
101
|
+
return serializeToBuffer(this.readRequestActions, this.pendingReadHints, this.settledReadHints);
|
|
102
102
|
}
|
|
103
103
|
}
|
|
104
|
-
export class
|
|
105
|
-
|
|
104
|
+
export class ReadRequestResetActions {
|
|
105
|
+
actions;
|
|
106
106
|
pendingReadHints;
|
|
107
|
-
constructor(
|
|
108
|
-
this.
|
|
107
|
+
constructor(actions, pendingReadHints){
|
|
108
|
+
this.actions = actions;
|
|
109
109
|
this.pendingReadHints = pendingReadHints;
|
|
110
110
|
}
|
|
111
111
|
static empty(numReads) {
|
|
112
|
-
return new
|
|
112
|
+
return new ReadRequestResetActions(makeTuple(numReads, ()=>0), []);
|
|
113
113
|
}
|
|
114
114
|
}
|
package/dest/kernel/hints/{transient_data_index_hint.d.ts → transient_data_squashing_hint.d.ts}
RENAMED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import { Fr } from '@aztec/foundation/fields';
|
|
2
2
|
import { BufferReader, FieldReader } from '@aztec/foundation/serialize';
|
|
3
3
|
import { inspect } from 'util';
|
|
4
|
-
export declare class
|
|
4
|
+
export declare class TransientDataSquashingHint {
|
|
5
5
|
nullifierIndex: number;
|
|
6
6
|
noteHashIndex: number;
|
|
7
7
|
constructor(nullifierIndex: number, noteHashIndex: number);
|
|
8
8
|
toFields(): Fr[];
|
|
9
|
-
static fromFields(fields: Fr[] | FieldReader):
|
|
9
|
+
static fromFields(fields: Fr[] | FieldReader): TransientDataSquashingHint;
|
|
10
10
|
isEmpty(): boolean;
|
|
11
|
-
static empty():
|
|
11
|
+
static empty(): TransientDataSquashingHint;
|
|
12
12
|
toBuffer(): Buffer;
|
|
13
|
-
static fromBuffer(buffer: Buffer | BufferReader):
|
|
13
|
+
static fromBuffer(buffer: Buffer | BufferReader): TransientDataSquashingHint;
|
|
14
14
|
toString(): string;
|
|
15
15
|
[inspect.custom](): string;
|
|
16
16
|
}
|
|
17
|
-
//# sourceMappingURL=
|
|
17
|
+
//# sourceMappingURL=transient_data_squashing_hint.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transient_data_squashing_hint.d.ts","sourceRoot":"","sources":["../../../src/kernel/hints/transient_data_squashing_hint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,WAAW,EAAqB,MAAM,6BAA6B,CAAC;AAE3F,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAE/B,qBAAa,0BAA0B;IAE5B,cAAc,EAAE,MAAM;IACtB,aAAa,EAAE,MAAM;gBADrB,cAAc,EAAE,MAAM,EACtB,aAAa,EAAE,MAAM;IAG9B,QAAQ,IAAI,EAAE,EAAE;IAIhB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW;IAK5C,OAAO;IAIP,MAAM,CAAC,KAAK;IAIZ,QAAQ,IAAI,MAAM;IAIlB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY;IAK/C,QAAQ,IAAI,MAAM;IAIlB,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM;CAG3B"}
|