@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,19 +1,19 @@
|
|
|
1
1
|
import { Fr } from '@aztec/foundation/fields';
|
|
2
2
|
import { bufferSchemaFor } from '@aztec/foundation/schemas';
|
|
3
|
-
import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
3
|
+
import { BufferReader, bigintToUInt64BE, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
4
4
|
|
|
5
5
|
import { AztecAddress } from '../aztec-address/index.js';
|
|
6
6
|
import { Gas } from '../gas/gas.js';
|
|
7
7
|
import type { PrivateLog } from '../logs/index.js';
|
|
8
8
|
import { TxConstantData } from '../tx/tx_constant_data.js';
|
|
9
|
-
import {
|
|
9
|
+
import type { UInt64 } from '../types/shared.js';
|
|
10
10
|
import type { ScopedLogHash } from './log_hash.js';
|
|
11
11
|
import { PrivateToPublicAccumulatedData } from './private_to_public_accumulated_data.js';
|
|
12
12
|
import { PrivateToPublicKernelCircuitPublicInputs } from './private_to_public_kernel_circuit_public_inputs.js';
|
|
13
13
|
import { PrivateToRollupAccumulatedData } from './private_to_rollup_accumulated_data.js';
|
|
14
14
|
import { PrivateToRollupKernelCircuitPublicInputs } from './private_to_rollup_kernel_circuit_public_inputs.js';
|
|
15
15
|
import { PublicCallRequest } from './public_call_request.js';
|
|
16
|
-
import { countAccumulatedItems
|
|
16
|
+
import { countAccumulatedItems } from './utils/order_and_comparison.js';
|
|
17
17
|
|
|
18
18
|
export class PartialPrivateTailPublicInputsForPublic {
|
|
19
19
|
constructor(
|
|
@@ -104,7 +104,6 @@ export class PrivateKernelTailCircuitPublicInputs {
|
|
|
104
104
|
* Data which is not modified by the circuits.
|
|
105
105
|
*/
|
|
106
106
|
public constants: TxConstantData,
|
|
107
|
-
public rollupValidationRequests: RollupValidationRequests,
|
|
108
107
|
/**
|
|
109
108
|
* The accumulated gas used after private execution.
|
|
110
109
|
* If the tx has a teardown call request, the teardown gas limits will also be included.
|
|
@@ -114,6 +113,10 @@ export class PrivateKernelTailCircuitPublicInputs {
|
|
|
114
113
|
* The address of the fee payer for the transaction.
|
|
115
114
|
*/
|
|
116
115
|
public feePayer: AztecAddress,
|
|
116
|
+
/**
|
|
117
|
+
* The timestamp by which the transaction must be included in a block.
|
|
118
|
+
*/
|
|
119
|
+
public includeByTimestamp: UInt64,
|
|
117
120
|
|
|
118
121
|
public forPublic?: PartialPrivateTailPublicInputsForPublic,
|
|
119
122
|
public forRollup?: PartialPrivateTailPublicInputsForRollup,
|
|
@@ -141,8 +144,9 @@ export class PrivateKernelTailCircuitPublicInputs {
|
|
|
141
144
|
(this.forPublic?.getSize() ?? 0) +
|
|
142
145
|
(this.forRollup?.getSize() ?? 0) +
|
|
143
146
|
this.constants.getSize() +
|
|
144
|
-
this.
|
|
145
|
-
this.feePayer.size
|
|
147
|
+
this.gasUsed.getSize() +
|
|
148
|
+
this.feePayer.size +
|
|
149
|
+
8 // includeByTimestamp
|
|
146
150
|
);
|
|
147
151
|
}
|
|
148
152
|
|
|
@@ -152,12 +156,12 @@ export class PrivateKernelTailCircuitPublicInputs {
|
|
|
152
156
|
}
|
|
153
157
|
return new PrivateToPublicKernelCircuitPublicInputs(
|
|
154
158
|
this.constants,
|
|
155
|
-
this.rollupValidationRequests,
|
|
156
159
|
this.forPublic.nonRevertibleAccumulatedData,
|
|
157
160
|
this.forPublic.revertibleAccumulatedData,
|
|
158
161
|
this.forPublic.publicTeardownCallRequest,
|
|
159
162
|
this.gasUsed,
|
|
160
163
|
this.feePayer,
|
|
164
|
+
this.includeByTimestamp,
|
|
161
165
|
);
|
|
162
166
|
}
|
|
163
167
|
|
|
@@ -173,10 +177,10 @@ export class PrivateKernelTailCircuitPublicInputs {
|
|
|
173
177
|
);
|
|
174
178
|
return new PrivateToRollupKernelCircuitPublicInputs(
|
|
175
179
|
constants,
|
|
176
|
-
this.rollupValidationRequests,
|
|
177
180
|
this.forRollup.end,
|
|
178
181
|
this.gasUsed,
|
|
179
182
|
this.feePayer,
|
|
183
|
+
this.includeByTimestamp,
|
|
180
184
|
);
|
|
181
185
|
}
|
|
182
186
|
|
|
@@ -217,8 +221,7 @@ export class PrivateKernelTailCircuitPublicInputs {
|
|
|
217
221
|
|
|
218
222
|
getNonEmptyNoteHashes() {
|
|
219
223
|
const noteHashes = this.forPublic
|
|
220
|
-
?
|
|
221
|
-
this.forPublic.nonRevertibleAccumulatedData.noteHashes,
|
|
224
|
+
? this.forPublic.nonRevertibleAccumulatedData.noteHashes.concat(
|
|
222
225
|
this.forPublic.revertibleAccumulatedData.noteHashes,
|
|
223
226
|
)
|
|
224
227
|
: this.forRollup!.end.noteHashes;
|
|
@@ -227,8 +230,7 @@ export class PrivateKernelTailCircuitPublicInputs {
|
|
|
227
230
|
|
|
228
231
|
getNonEmptyNullifiers() {
|
|
229
232
|
const nullifiers = this.forPublic
|
|
230
|
-
?
|
|
231
|
-
this.forPublic.nonRevertibleAccumulatedData.nullifiers,
|
|
233
|
+
? this.forPublic.nonRevertibleAccumulatedData.nullifiers.concat(
|
|
232
234
|
this.forPublic.revertibleAccumulatedData.nullifiers,
|
|
233
235
|
)
|
|
234
236
|
: this.forRollup!.end.nullifiers;
|
|
@@ -237,8 +239,7 @@ export class PrivateKernelTailCircuitPublicInputs {
|
|
|
237
239
|
|
|
238
240
|
getNonEmptyPrivateLogs() {
|
|
239
241
|
const privateLogs = this.forPublic
|
|
240
|
-
?
|
|
241
|
-
this.forPublic.nonRevertibleAccumulatedData.privateLogs,
|
|
242
|
+
? this.forPublic.nonRevertibleAccumulatedData.privateLogs.concat(
|
|
242
243
|
this.forPublic.revertibleAccumulatedData.privateLogs,
|
|
243
244
|
)
|
|
244
245
|
: this.forRollup!.end.privateLogs;
|
|
@@ -247,8 +248,7 @@ export class PrivateKernelTailCircuitPublicInputs {
|
|
|
247
248
|
|
|
248
249
|
getNonEmptyContractClassLogsHashes() {
|
|
249
250
|
const contractClassLogsHashes = this.forPublic
|
|
250
|
-
?
|
|
251
|
-
this.forPublic.nonRevertibleAccumulatedData.contractClassLogsHashes,
|
|
251
|
+
? this.forPublic.nonRevertibleAccumulatedData.contractClassLogsHashes.concat(
|
|
252
252
|
this.forPublic.revertibleAccumulatedData.contractClassLogsHashes,
|
|
253
253
|
)
|
|
254
254
|
: this.forRollup!.end.contractClassLogsHashes;
|
|
@@ -277,9 +277,9 @@ export class PrivateKernelTailCircuitPublicInputs {
|
|
|
277
277
|
const isForPublic = reader.readBoolean();
|
|
278
278
|
return new PrivateKernelTailCircuitPublicInputs(
|
|
279
279
|
reader.readObject(TxConstantData),
|
|
280
|
-
reader.readObject(RollupValidationRequests),
|
|
281
280
|
reader.readObject(Gas),
|
|
282
281
|
reader.readObject(AztecAddress),
|
|
282
|
+
reader.readUInt64(),
|
|
283
283
|
isForPublic ? reader.readObject(PartialPrivateTailPublicInputsForPublic) : undefined,
|
|
284
284
|
!isForPublic ? reader.readObject(PartialPrivateTailPublicInputsForRollup) : undefined,
|
|
285
285
|
);
|
|
@@ -290,9 +290,9 @@ export class PrivateKernelTailCircuitPublicInputs {
|
|
|
290
290
|
return serializeToBuffer(
|
|
291
291
|
isForPublic,
|
|
292
292
|
this.constants,
|
|
293
|
-
this.rollupValidationRequests,
|
|
294
293
|
this.gasUsed,
|
|
295
294
|
this.feePayer,
|
|
295
|
+
bigintToUInt64BE(this.includeByTimestamp),
|
|
296
296
|
isForPublic ? this.forPublic!.toBuffer() : this.forRollup!.toBuffer(),
|
|
297
297
|
);
|
|
298
298
|
}
|
|
@@ -300,9 +300,9 @@ export class PrivateKernelTailCircuitPublicInputs {
|
|
|
300
300
|
static empty() {
|
|
301
301
|
return new PrivateKernelTailCircuitPublicInputs(
|
|
302
302
|
TxConstantData.empty(),
|
|
303
|
-
RollupValidationRequests.empty(),
|
|
304
303
|
Gas.empty(),
|
|
305
304
|
AztecAddress.ZERO,
|
|
305
|
+
0n,
|
|
306
306
|
undefined,
|
|
307
307
|
PartialPrivateTailPublicInputsForRollup.empty(),
|
|
308
308
|
);
|
|
@@ -318,9 +318,9 @@ export class PrivateKernelTailCircuitPublicInputs {
|
|
|
318
318
|
data.nullifiers[0] = Fr.random();
|
|
319
319
|
return new PrivateKernelTailCircuitPublicInputs(
|
|
320
320
|
TxConstantData.empty(),
|
|
321
|
-
RollupValidationRequests.empty(),
|
|
322
321
|
Gas.empty(),
|
|
323
322
|
AztecAddress.ZERO,
|
|
323
|
+
0n,
|
|
324
324
|
undefined,
|
|
325
325
|
new PartialPrivateTailPublicInputsForRollup(data),
|
|
326
326
|
);
|
|
@@ -1,49 +1,49 @@
|
|
|
1
1
|
import { GeneratorIndex, PRIVATE_TO_PUBLIC_KERNEL_CIRCUIT_PUBLIC_INPUTS_LENGTH } from '@aztec/constants';
|
|
2
2
|
import { poseidon2HashWithSeparator } from '@aztec/foundation/crypto';
|
|
3
3
|
import type { Fr } from '@aztec/foundation/fields';
|
|
4
|
-
import { BufferReader, serializeToBuffer, serializeToFields } from '@aztec/foundation/serialize';
|
|
4
|
+
import { BufferReader, bigintToUInt64BE, serializeToBuffer, serializeToFields } from '@aztec/foundation/serialize';
|
|
5
5
|
import { bufferToHex, hexToBuffer } from '@aztec/foundation/string';
|
|
6
6
|
import type { FieldsOf } from '@aztec/foundation/types';
|
|
7
7
|
|
|
8
8
|
import { AztecAddress } from '../aztec-address/index.js';
|
|
9
9
|
import { Gas } from '../gas/gas.js';
|
|
10
10
|
import { TxConstantData } from '../tx/tx_constant_data.js';
|
|
11
|
-
import {
|
|
11
|
+
import type { UInt64 } from '../types/index.js';
|
|
12
12
|
import { PrivateToPublicAccumulatedData } from './private_to_public_accumulated_data.js';
|
|
13
13
|
import { PublicCallRequest } from './public_call_request.js';
|
|
14
14
|
|
|
15
15
|
export class PrivateToPublicKernelCircuitPublicInputs {
|
|
16
16
|
constructor(
|
|
17
17
|
public constants: TxConstantData,
|
|
18
|
-
public rollupValidationRequests: RollupValidationRequests,
|
|
19
18
|
public nonRevertibleAccumulatedData: PrivateToPublicAccumulatedData,
|
|
20
19
|
public revertibleAccumulatedData: PrivateToPublicAccumulatedData,
|
|
21
20
|
public publicTeardownCallRequest: PublicCallRequest,
|
|
22
21
|
public gasUsed: Gas,
|
|
23
22
|
public feePayer: AztecAddress,
|
|
23
|
+
public includeByTimestamp: UInt64,
|
|
24
24
|
) {}
|
|
25
25
|
|
|
26
26
|
toBuffer() {
|
|
27
27
|
return serializeToBuffer(
|
|
28
28
|
this.constants,
|
|
29
|
-
this.rollupValidationRequests,
|
|
30
29
|
this.nonRevertibleAccumulatedData,
|
|
31
30
|
this.revertibleAccumulatedData,
|
|
32
31
|
this.publicTeardownCallRequest,
|
|
33
32
|
this.gasUsed,
|
|
34
33
|
this.feePayer,
|
|
34
|
+
bigintToUInt64BE(this.includeByTimestamp),
|
|
35
35
|
);
|
|
36
36
|
}
|
|
37
37
|
|
|
38
38
|
static getFields(fields: FieldsOf<PrivateToPublicKernelCircuitPublicInputs>) {
|
|
39
39
|
return [
|
|
40
40
|
fields.constants,
|
|
41
|
-
fields.rollupValidationRequests,
|
|
42
41
|
fields.nonRevertibleAccumulatedData,
|
|
43
42
|
fields.revertibleAccumulatedData,
|
|
44
43
|
fields.publicTeardownCallRequest,
|
|
45
44
|
fields.gasUsed,
|
|
46
45
|
fields.feePayer,
|
|
46
|
+
fields.includeByTimestamp,
|
|
47
47
|
] as const;
|
|
48
48
|
}
|
|
49
49
|
|
|
@@ -51,24 +51,24 @@ export class PrivateToPublicKernelCircuitPublicInputs {
|
|
|
51
51
|
const reader = BufferReader.asReader(buffer);
|
|
52
52
|
return new PrivateToPublicKernelCircuitPublicInputs(
|
|
53
53
|
reader.readObject(TxConstantData),
|
|
54
|
-
reader.readObject(RollupValidationRequests),
|
|
55
54
|
reader.readObject(PrivateToPublicAccumulatedData),
|
|
56
55
|
reader.readObject(PrivateToPublicAccumulatedData),
|
|
57
56
|
reader.readObject(PublicCallRequest),
|
|
58
57
|
reader.readObject(Gas),
|
|
59
58
|
reader.readObject(AztecAddress),
|
|
59
|
+
reader.readUInt64(),
|
|
60
60
|
);
|
|
61
61
|
}
|
|
62
62
|
|
|
63
63
|
static empty() {
|
|
64
64
|
return new PrivateToPublicKernelCircuitPublicInputs(
|
|
65
65
|
TxConstantData.empty(),
|
|
66
|
-
RollupValidationRequests.empty(),
|
|
67
66
|
PrivateToPublicAccumulatedData.empty(),
|
|
68
67
|
PrivateToPublicAccumulatedData.empty(),
|
|
69
68
|
PublicCallRequest.empty(),
|
|
70
69
|
Gas.empty(),
|
|
71
70
|
AztecAddress.ZERO,
|
|
71
|
+
0n,
|
|
72
72
|
);
|
|
73
73
|
}
|
|
74
74
|
|
|
@@ -2,14 +2,14 @@ import { GeneratorIndex, PRIVATE_TO_ROLLUP_KERNEL_CIRCUIT_PUBLIC_INPUTS_LENGTH }
|
|
|
2
2
|
import { poseidon2HashWithSeparator } from '@aztec/foundation/crypto';
|
|
3
3
|
import type { Fr } from '@aztec/foundation/fields';
|
|
4
4
|
import { bufferSchemaFor } from '@aztec/foundation/schemas';
|
|
5
|
-
import { BufferReader, serializeToBuffer, serializeToFields } from '@aztec/foundation/serialize';
|
|
5
|
+
import { BufferReader, bigintToUInt64BE, serializeToBuffer, serializeToFields } from '@aztec/foundation/serialize';
|
|
6
6
|
import { bufferToHex, hexToBuffer } from '@aztec/foundation/string';
|
|
7
7
|
import type { FieldsOf } from '@aztec/foundation/types';
|
|
8
8
|
|
|
9
9
|
import { AztecAddress } from '../aztec-address/index.js';
|
|
10
10
|
import { Gas } from '../gas/gas.js';
|
|
11
11
|
import { TxConstantData } from '../tx/tx_constant_data.js';
|
|
12
|
-
import {
|
|
12
|
+
import type { UInt64 } from '../types/index.js';
|
|
13
13
|
import { PrivateToRollupAccumulatedData } from './private_to_rollup_accumulated_data.js';
|
|
14
14
|
|
|
15
15
|
/**
|
|
@@ -22,10 +22,6 @@ export class PrivateToRollupKernelCircuitPublicInputs {
|
|
|
22
22
|
* Data which is not modified by the circuits.
|
|
23
23
|
*/
|
|
24
24
|
public constants: TxConstantData,
|
|
25
|
-
/**
|
|
26
|
-
* Validation requests accumulated from private and public execution to be completed by the rollup.
|
|
27
|
-
*/
|
|
28
|
-
public rollupValidationRequests: RollupValidationRequests,
|
|
29
25
|
/**
|
|
30
26
|
* Data accumulated from both public and private circuits.
|
|
31
27
|
*/
|
|
@@ -38,6 +34,10 @@ export class PrivateToRollupKernelCircuitPublicInputs {
|
|
|
38
34
|
* The address of the fee payer for the transaction.
|
|
39
35
|
*/
|
|
40
36
|
public feePayer: AztecAddress,
|
|
37
|
+
/**
|
|
38
|
+
* The timestamp by which the transaction must be included in a block.
|
|
39
|
+
*/
|
|
40
|
+
public includeByTimestamp: UInt64,
|
|
41
41
|
) {}
|
|
42
42
|
|
|
43
43
|
getNonEmptyNullifiers() {
|
|
@@ -45,7 +45,13 @@ export class PrivateToRollupKernelCircuitPublicInputs {
|
|
|
45
45
|
}
|
|
46
46
|
|
|
47
47
|
toBuffer() {
|
|
48
|
-
return serializeToBuffer(
|
|
48
|
+
return serializeToBuffer(
|
|
49
|
+
this.constants,
|
|
50
|
+
this.end,
|
|
51
|
+
this.gasUsed,
|
|
52
|
+
this.feePayer,
|
|
53
|
+
bigintToUInt64BE(this.includeByTimestamp),
|
|
54
|
+
);
|
|
49
55
|
}
|
|
50
56
|
|
|
51
57
|
/**
|
|
@@ -57,20 +63,20 @@ export class PrivateToRollupKernelCircuitPublicInputs {
|
|
|
57
63
|
const reader = BufferReader.asReader(buffer);
|
|
58
64
|
return new PrivateToRollupKernelCircuitPublicInputs(
|
|
59
65
|
reader.readObject(TxConstantData),
|
|
60
|
-
reader.readObject(RollupValidationRequests),
|
|
61
66
|
reader.readObject(PrivateToRollupAccumulatedData),
|
|
62
67
|
reader.readObject(Gas),
|
|
63
68
|
reader.readObject(AztecAddress),
|
|
69
|
+
reader.readUInt64(),
|
|
64
70
|
);
|
|
65
71
|
}
|
|
66
72
|
|
|
67
73
|
static empty() {
|
|
68
74
|
return new PrivateToRollupKernelCircuitPublicInputs(
|
|
69
75
|
TxConstantData.empty(),
|
|
70
|
-
RollupValidationRequests.empty(),
|
|
71
76
|
PrivateToRollupAccumulatedData.empty(),
|
|
72
77
|
Gas.empty(),
|
|
73
78
|
AztecAddress.ZERO,
|
|
79
|
+
0n,
|
|
74
80
|
);
|
|
75
81
|
}
|
|
76
82
|
|
|
@@ -88,7 +94,7 @@ export class PrivateToRollupKernelCircuitPublicInputs {
|
|
|
88
94
|
}
|
|
89
95
|
|
|
90
96
|
static getFields(fields: FieldsOf<PrivateToRollupKernelCircuitPublicInputs>) {
|
|
91
|
-
return [fields.constants, fields.
|
|
97
|
+
return [fields.constants, fields.end, fields.gasUsed, fields.feePayer, fields.includeByTimestamp] as const;
|
|
92
98
|
}
|
|
93
99
|
|
|
94
100
|
/** Creates an instance from a hex string. */
|
|
@@ -3,17 +3,14 @@ import {
|
|
|
3
3
|
MAX_NOTE_HASH_READ_REQUESTS_PER_TX,
|
|
4
4
|
MAX_NULLIFIER_READ_REQUESTS_PER_TX,
|
|
5
5
|
} from '@aztec/constants';
|
|
6
|
-
import {
|
|
7
|
-
import { arraySerializedSizeOfNonEmpty } from '@aztec/foundation/collection';
|
|
8
|
-
import type { Fr } from '@aztec/foundation/fields';
|
|
9
|
-
import { BufferReader, FieldReader, type Tuple, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
6
|
+
import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
10
7
|
import { bufferToHex, hexToBuffer } from '@aztec/foundation/string';
|
|
11
8
|
|
|
12
9
|
import { inspect } from 'util';
|
|
13
10
|
|
|
14
11
|
import { ScopedKeyValidationRequestAndGenerator } from '../kernel/hints/scoped_key_validation_request_and_generator.js';
|
|
12
|
+
import { ClaimedLengthArray, ClaimedLengthArrayFromBuffer } from './claimed_length_array.js';
|
|
15
13
|
import { ScopedReadRequest } from './hints/read_request.js';
|
|
16
|
-
import { RollupValidationRequests } from './hints/rollup_validation_requests.js';
|
|
17
14
|
import { OptionalNumber } from './utils/optional_number.js';
|
|
18
15
|
|
|
19
16
|
/**
|
|
@@ -21,23 +18,18 @@ import { OptionalNumber } from './utils/optional_number.js';
|
|
|
21
18
|
*/
|
|
22
19
|
export class PrivateValidationRequests {
|
|
23
20
|
constructor(
|
|
24
|
-
/**
|
|
25
|
-
* Validation requests that cannot be fulfilled in the current context (private or public), and must be instead be
|
|
26
|
-
* forwarded to the rollup for it to take care of them.
|
|
27
|
-
*/
|
|
28
|
-
public forRollup: RollupValidationRequests,
|
|
29
21
|
/**
|
|
30
22
|
* All the read requests made in this transaction.
|
|
31
23
|
*/
|
|
32
|
-
public noteHashReadRequests:
|
|
24
|
+
public noteHashReadRequests: ClaimedLengthArray<ScopedReadRequest, typeof MAX_NOTE_HASH_READ_REQUESTS_PER_TX>,
|
|
33
25
|
/**
|
|
34
26
|
* All the nullifier read requests made in this transaction.
|
|
35
27
|
*/
|
|
36
|
-
public nullifierReadRequests:
|
|
28
|
+
public nullifierReadRequests: ClaimedLengthArray<ScopedReadRequest, typeof MAX_NULLIFIER_READ_REQUESTS_PER_TX>,
|
|
37
29
|
/**
|
|
38
30
|
* All the key validation requests made in this transaction.
|
|
39
31
|
*/
|
|
40
|
-
public scopedKeyValidationRequestsAndGenerators:
|
|
32
|
+
public scopedKeyValidationRequestsAndGenerators: ClaimedLengthArray<
|
|
41
33
|
ScopedKeyValidationRequestAndGenerator,
|
|
42
34
|
typeof MAX_KEY_VALIDATION_REQUESTS_PER_TX
|
|
43
35
|
>,
|
|
@@ -51,17 +43,15 @@ export class PrivateValidationRequests {
|
|
|
51
43
|
|
|
52
44
|
getSize() {
|
|
53
45
|
return (
|
|
54
|
-
this.
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
arraySerializedSizeOfNonEmpty(this.scopedKeyValidationRequestsAndGenerators) +
|
|
46
|
+
this.noteHashReadRequests.getSize() +
|
|
47
|
+
this.nullifierReadRequests.getSize() +
|
|
48
|
+
this.scopedKeyValidationRequestsAndGenerators.getSize() +
|
|
58
49
|
this.splitCounter.getSize()
|
|
59
50
|
);
|
|
60
51
|
}
|
|
61
52
|
|
|
62
53
|
toBuffer() {
|
|
63
54
|
return serializeToBuffer(
|
|
64
|
-
this.forRollup,
|
|
65
55
|
this.noteHashReadRequests,
|
|
66
56
|
this.nullifierReadRequests,
|
|
67
57
|
this.scopedKeyValidationRequestsAndGenerators,
|
|
@@ -73,17 +63,6 @@ export class PrivateValidationRequests {
|
|
|
73
63
|
return bufferToHex(this.toBuffer());
|
|
74
64
|
}
|
|
75
65
|
|
|
76
|
-
static fromFields(fields: Fr[] | FieldReader) {
|
|
77
|
-
const reader = FieldReader.asReader(fields);
|
|
78
|
-
return new PrivateValidationRequests(
|
|
79
|
-
reader.readObject(RollupValidationRequests),
|
|
80
|
-
reader.readArray(MAX_NOTE_HASH_READ_REQUESTS_PER_TX, ScopedReadRequest),
|
|
81
|
-
reader.readArray(MAX_NULLIFIER_READ_REQUESTS_PER_TX, ScopedReadRequest),
|
|
82
|
-
reader.readArray(MAX_KEY_VALIDATION_REQUESTS_PER_TX, ScopedKeyValidationRequestAndGenerator),
|
|
83
|
-
reader.readObject(OptionalNumber),
|
|
84
|
-
);
|
|
85
|
-
}
|
|
86
|
-
|
|
87
66
|
/**
|
|
88
67
|
* Deserializes from a buffer or reader, corresponding to a write in cpp.
|
|
89
68
|
* @param buffer - Buffer or reader to read from.
|
|
@@ -92,10 +71,11 @@ export class PrivateValidationRequests {
|
|
|
92
71
|
static fromBuffer(buffer: Buffer | BufferReader) {
|
|
93
72
|
const reader = BufferReader.asReader(buffer);
|
|
94
73
|
return new PrivateValidationRequests(
|
|
95
|
-
reader.readObject(
|
|
96
|
-
reader.
|
|
97
|
-
reader.
|
|
98
|
-
|
|
74
|
+
reader.readObject(ClaimedLengthArrayFromBuffer(ScopedReadRequest, MAX_NOTE_HASH_READ_REQUESTS_PER_TX)),
|
|
75
|
+
reader.readObject(ClaimedLengthArrayFromBuffer(ScopedReadRequest, MAX_NULLIFIER_READ_REQUESTS_PER_TX)),
|
|
76
|
+
reader.readObject(
|
|
77
|
+
ClaimedLengthArrayFromBuffer(ScopedKeyValidationRequestAndGenerator, MAX_KEY_VALIDATION_REQUESTS_PER_TX),
|
|
78
|
+
),
|
|
99
79
|
reader.readObject(OptionalNumber),
|
|
100
80
|
);
|
|
101
81
|
}
|
|
@@ -111,29 +91,18 @@ export class PrivateValidationRequests {
|
|
|
111
91
|
|
|
112
92
|
static empty() {
|
|
113
93
|
return new PrivateValidationRequests(
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
makeTuple(MAX_KEY_VALIDATION_REQUESTS_PER_TX, ScopedKeyValidationRequestAndGenerator.empty),
|
|
94
|
+
ClaimedLengthArray.empty(ScopedReadRequest, MAX_NOTE_HASH_READ_REQUESTS_PER_TX),
|
|
95
|
+
ClaimedLengthArray.empty(ScopedReadRequest, MAX_NULLIFIER_READ_REQUESTS_PER_TX),
|
|
96
|
+
ClaimedLengthArray.empty(ScopedKeyValidationRequestAndGenerator, MAX_KEY_VALIDATION_REQUESTS_PER_TX),
|
|
118
97
|
OptionalNumber.empty(),
|
|
119
98
|
);
|
|
120
99
|
}
|
|
121
100
|
|
|
122
101
|
[inspect.custom]() {
|
|
123
102
|
return `PrivateValidationRequests {
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
.map(h => inspect(h))
|
|
128
|
-
.join(', ')}],
|
|
129
|
-
nullifierReadRequests: [${this.nullifierReadRequests
|
|
130
|
-
.filter(x => !x.isEmpty())
|
|
131
|
-
.map(h => inspect(h))
|
|
132
|
-
.join(', ')}],
|
|
133
|
-
scopedKeyValidationRequestsAndGenerators: [${this.scopedKeyValidationRequestsAndGenerators
|
|
134
|
-
.filter(x => !x.isEmpty())
|
|
135
|
-
.map(h => inspect(h))
|
|
136
|
-
.join(', ')}],
|
|
103
|
+
noteHashReadRequests: ${inspect(this.noteHashReadRequests)},
|
|
104
|
+
nullifierReadRequests: ${inspect(this.nullifierReadRequests)},
|
|
105
|
+
scopedKeyValidationRequestsAndGenerators: ${inspect(this.scopedKeyValidationRequestsAndGenerators)},
|
|
137
106
|
splitCounter: ${this.splitCounter.getSize()}
|
|
138
107
|
`;
|
|
139
108
|
}
|
|
@@ -17,23 +17,6 @@ export function countAccumulatedItems<T extends IsEmpty>(arr: T[]) {
|
|
|
17
17
|
}, 0);
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
-
// Merges two arrays of length N into an array of length N.
|
|
21
|
-
export function mergeAccumulatedData<T extends IsEmpty, N extends number>(
|
|
22
|
-
arr0: Tuple<T, N>,
|
|
23
|
-
arr1: Tuple<T, N>,
|
|
24
|
-
length: N = arr0.length as N, // Need this for ts to infer the return Tuple length.
|
|
25
|
-
): Tuple<T, N> {
|
|
26
|
-
const numNonEmptyItems0 = countAccumulatedItems(arr0);
|
|
27
|
-
const numNonEmptyItems1 = countAccumulatedItems(arr1);
|
|
28
|
-
if (numNonEmptyItems0 + numNonEmptyItems1 > length) {
|
|
29
|
-
throw new Error('Combined non-empty items exceeded the maximum allowed.');
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
const arr = [...arr0] as Tuple<T, N>;
|
|
33
|
-
arr1.slice(0, numNonEmptyItems1).forEach((item, i) => (arr[i + numNonEmptyItems0] = item));
|
|
34
|
-
return arr;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
20
|
// Sort items by a provided compare function. All empty items are padded to the right.
|
|
38
21
|
function genericSort<T extends IsEmpty, N extends number>(
|
|
39
22
|
arr: Tuple<T, N>,
|
|
@@ -61,11 +44,3 @@ export function sortByCounter<T extends Ordered & IsEmpty, N extends number>(
|
|
|
61
44
|
): Tuple<T, N> {
|
|
62
45
|
return genericSort(arr, compareByCounter, ascending);
|
|
63
46
|
}
|
|
64
|
-
|
|
65
|
-
export function isEmptyArray<T extends IsEmpty>(arr: T[]): boolean {
|
|
66
|
-
return arr.every(item => item.isEmpty());
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
export function getNonEmptyItems<T extends IsEmpty>(arr: T[]): T[] {
|
|
70
|
-
return arr.filter(item => !item.isEmpty());
|
|
71
|
-
}
|
|
@@ -13,7 +13,7 @@ import type { PublicKey } from '../keys/public_key.js';
|
|
|
13
13
|
* @returns A derived shared secret.
|
|
14
14
|
* @throws If the publicKey is zero.
|
|
15
15
|
*
|
|
16
|
-
* TODO(#12656): This function is kept around because of the
|
|
16
|
+
* TODO(#12656): This function is kept around because of the utilityGetSharedSecret oracle. Nuke this once returning
|
|
17
17
|
* the app-siloed secret.
|
|
18
18
|
*/
|
|
19
19
|
export async function deriveEcdhSharedSecret(secretKey: GrumpkinScalar, publicKey: PublicKey): Promise<Point> {
|