@aztec/stdlib 0.0.1-commit.8afd444 → 0.0.1-commit.934299a21
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/function_call.d.ts +39 -9
- package/dest/abi/function_call.d.ts.map +1 -1
- package/dest/abi/function_call.js +20 -3
- package/dest/auth_witness/auth_witness.js +3 -3
- package/dest/block/block_data.d.ts +52 -0
- package/dest/block/block_data.d.ts.map +1 -0
- package/dest/block/block_data.js +12 -0
- package/dest/block/in_block.js +1 -1
- package/dest/block/index.d.ts +2 -1
- package/dest/block/index.d.ts.map +1 -1
- package/dest/block/index.js +1 -0
- package/dest/block/l2_block_source.d.ts +20 -1
- package/dest/block/l2_block_source.d.ts.map +1 -1
- package/dest/checkpoint/checkpoint.d.ts +21 -7
- package/dest/checkpoint/checkpoint.d.ts.map +1 -1
- package/dest/checkpoint/checkpoint.js +24 -13
- package/dest/checkpoint/checkpoint_data.d.ts +120 -0
- package/dest/checkpoint/checkpoint_data.d.ts.map +1 -0
- package/dest/checkpoint/checkpoint_data.js +26 -0
- package/dest/checkpoint/index.d.ts +2 -1
- package/dest/checkpoint/index.d.ts.map +1 -1
- package/dest/checkpoint/index.js +1 -0
- package/dest/checkpoint/published_checkpoint.d.ts +17 -2
- package/dest/checkpoint/published_checkpoint.d.ts.map +1 -1
- package/dest/checkpoint/published_checkpoint.js +1 -2
- package/dest/config/index.d.ts +2 -1
- package/dest/config/index.d.ts.map +1 -1
- package/dest/config/index.js +1 -0
- package/dest/config/sequencer-config.d.ts +10 -0
- package/dest/config/sequencer-config.d.ts.map +1 -0
- package/dest/config/sequencer-config.js +18 -0
- package/dest/contract/contract_address.js +4 -4
- package/dest/contract/contract_class.d.ts +2 -3
- package/dest/contract/contract_class.d.ts.map +1 -1
- package/dest/contract/contract_class_id.d.ts +1 -1
- package/dest/contract/contract_class_id.d.ts.map +1 -1
- package/dest/contract/contract_class_id.js +5 -4
- package/dest/contract/interfaces/node-info.d.ts +3 -1
- package/dest/contract/interfaces/node-info.d.ts.map +1 -1
- package/dest/contract/interfaces/node-info.js +2 -1
- package/dest/contract/private_function.js +2 -2
- package/dest/epoch-helpers/index.d.ts +5 -1
- package/dest/epoch-helpers/index.d.ts.map +1 -1
- package/dest/epoch-helpers/index.js +4 -2
- package/dest/file-store/local.d.ts +3 -3
- package/dest/file-store/local.d.ts.map +1 -1
- package/dest/file-store/local.js +13 -4
- package/dest/file-store/s3.d.ts +1 -1
- package/dest/file-store/s3.d.ts.map +1 -1
- package/dest/file-store/s3.js +11 -3
- package/dest/ha-signing/config.d.ts +101 -0
- package/dest/ha-signing/config.d.ts.map +1 -0
- package/dest/ha-signing/config.js +92 -0
- package/dest/ha-signing/index.d.ts +3 -0
- package/dest/ha-signing/index.d.ts.map +1 -0
- package/dest/ha-signing/index.js +2 -0
- package/dest/ha-signing/types.d.ts +85 -0
- package/dest/ha-signing/types.d.ts.map +1 -0
- package/dest/ha-signing/types.js +32 -0
- package/dest/hash/hash.d.ts +2 -1
- package/dest/hash/hash.d.ts.map +1 -1
- package/dest/hash/hash.js +16 -10
- package/dest/hash/map_slot.js +2 -2
- package/dest/interfaces/archiver.d.ts +1 -1
- package/dest/interfaces/archiver.d.ts.map +1 -1
- package/dest/interfaces/archiver.js +5 -0
- package/dest/interfaces/aztec-node-admin.d.ts +39 -2
- package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
- package/dest/interfaces/aztec-node-admin.js +9 -3
- package/dest/interfaces/aztec-node.d.ts +1 -1
- package/dest/interfaces/block-builder.d.ts +2 -2
- package/dest/interfaces/block-builder.d.ts.map +1 -1
- package/dest/interfaces/configs.d.ts +17 -2
- package/dest/interfaces/configs.d.ts.map +1 -1
- package/dest/interfaces/configs.js +4 -1
- package/dest/interfaces/get_logs_response.d.ts +8 -1
- package/dest/interfaces/get_logs_response.d.ts.map +1 -1
- package/dest/interfaces/merkle_tree_operations.d.ts +2 -2
- package/dest/interfaces/merkle_tree_operations.d.ts.map +1 -1
- package/dest/interfaces/p2p.d.ts +2 -2
- package/dest/interfaces/p2p.d.ts.map +1 -1
- package/dest/interfaces/proving-job.d.ts +168 -168
- package/dest/interfaces/slasher.d.ts +9 -1
- package/dest/interfaces/slasher.d.ts.map +1 -1
- package/dest/interfaces/slasher.js +2 -0
- package/dest/interfaces/validator.d.ts +18 -4
- package/dest/interfaces/validator.d.ts.map +1 -1
- package/dest/interfaces/validator.js +5 -2
- package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts +3 -3
- 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 +13 -10
- package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts +3 -3
- package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts.map +1 -1
- package/dest/kernel/hints/build_nullifier_read_request_hints.js +13 -10
- package/dest/kernel/hints/build_transient_data_hints.d.ts +5 -2
- package/dest/kernel/hints/build_transient_data_hints.d.ts.map +1 -1
- package/dest/kernel/hints/build_transient_data_hints.js +9 -3
- package/dest/kernel/hints/index.d.ts +2 -2
- package/dest/kernel/hints/index.js +2 -2
- package/dest/kernel/hints/key_validation_request_and_separator.d.ts +24 -0
- package/dest/kernel/hints/key_validation_request_and_separator.d.ts.map +1 -0
- package/dest/kernel/hints/{key_validation_request_and_generator.js → key_validation_request_and_separator.js} +12 -15
- package/dest/kernel/hints/{scoped_key_validation_request_and_generator.d.ts → scoped_key_validation_request_and_separator.d.ts} +8 -8
- package/dest/kernel/hints/{scoped_key_validation_request_and_generator.d.ts.map → scoped_key_validation_request_and_separator.d.ts.map} +1 -1
- package/dest/kernel/hints/{scoped_key_validation_request_and_generator.js → scoped_key_validation_request_and_separator.js} +6 -6
- package/dest/kernel/private_circuit_public_inputs.d.ts +9 -9
- package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_circuit_public_inputs.js +16 -16
- package/dest/kernel/private_kernel_circuit_public_inputs.d.ts +3 -3
- package/dest/kernel/private_kernel_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_circuit_public_inputs.js +4 -4
- package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts +3 -3
- package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_tail_circuit_private_inputs.js +4 -4
- package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts +3 -3
- package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_tail_circuit_public_inputs.js +7 -7
- package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts +3 -3
- 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 +7 -7
- package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts +3 -3
- 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 +7 -7
- package/dest/kernel/private_validation_requests.d.ts +3 -3
- package/dest/kernel/private_validation_requests.js +9 -9
- package/dest/keys/derivation.js +8 -8
- package/dest/keys/key_types.d.ts +3 -3
- package/dest/keys/key_types.d.ts.map +1 -1
- package/dest/keys/public_keys.js +2 -2
- package/dest/keys/utils.js +5 -5
- package/dest/logs/debug_log_store.d.ts +30 -0
- package/dest/logs/debug_log_store.d.ts.map +1 -0
- package/dest/logs/debug_log_store.js +30 -0
- package/dest/logs/extended_public_log.d.ts +7 -1
- package/dest/logs/extended_public_log.d.ts.map +1 -1
- package/dest/logs/index.d.ts +2 -1
- package/dest/logs/index.d.ts.map +1 -1
- package/dest/logs/index.js +1 -0
- package/dest/logs/log_id.d.ts +10 -7
- package/dest/logs/log_id.d.ts.map +1 -1
- package/dest/logs/log_id.js +15 -13
- package/dest/logs/private_log.d.ts +2 -2
- package/dest/logs/private_log.d.ts.map +1 -1
- package/dest/logs/siloed_tag.d.ts +1 -1
- package/dest/logs/siloed_tag.d.ts.map +1 -1
- package/dest/logs/siloed_tag.js +2 -6
- package/dest/messaging/l2_to_l1_membership.d.ts +2 -2
- package/dest/messaging/l2_to_l1_membership.js +3 -3
- package/dest/note/index.d.ts +1 -2
- package/dest/note/index.d.ts.map +1 -1
- package/dest/note/index.js +0 -1
- package/dest/p2p/attestation_utils.d.ts +11 -1
- package/dest/p2p/attestation_utils.d.ts.map +1 -1
- package/dest/p2p/attestation_utils.js +45 -0
- package/dest/p2p/block_proposal.d.ts +2 -2
- package/dest/p2p/block_proposal.d.ts.map +1 -1
- package/dest/p2p/block_proposal.js +2 -4
- package/dest/p2p/checkpoint_attestation.d.ts +2 -1
- package/dest/p2p/checkpoint_attestation.d.ts.map +1 -1
- package/dest/p2p/checkpoint_attestation.js +1 -1
- package/dest/p2p/checkpoint_proposal.d.ts +18 -6
- package/dest/p2p/checkpoint_proposal.d.ts.map +1 -1
- package/dest/p2p/checkpoint_proposal.js +30 -16
- package/dest/p2p/consensus_payload.d.ts +12 -3
- package/dest/p2p/consensus_payload.d.ts.map +1 -1
- package/dest/p2p/consensus_payload.js +22 -15
- package/dest/p2p/constants.d.ts +3 -1
- package/dest/p2p/constants.d.ts.map +1 -1
- package/dest/p2p/constants.js +1 -0
- package/dest/rollup/checkpoint_header.d.ts +2 -2
- package/dest/rollup/checkpoint_header.js +2 -2
- package/dest/rollup/checkpoint_rollup_public_inputs.d.ts +6 -6
- package/dest/rollup/checkpoint_rollup_public_inputs.d.ts.map +1 -1
- package/dest/rollup/checkpoint_rollup_public_inputs.js +2 -2
- package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts +2 -2
- package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/root_rollup_public_inputs.d.ts +6 -6
- package/dest/rollup/root_rollup_public_inputs.d.ts.map +1 -1
- package/dest/rollup/root_rollup_public_inputs.js +3 -3
- package/dest/slashing/empire.d.ts +1 -1
- package/dest/slashing/empire.d.ts.map +1 -1
- package/dest/slashing/empire.js +2 -0
- package/dest/slashing/helpers.d.ts +2 -2
- package/dest/slashing/helpers.d.ts.map +1 -1
- package/dest/slashing/helpers.js +6 -0
- package/dest/slashing/tally.d.ts +2 -1
- package/dest/slashing/tally.d.ts.map +1 -1
- package/dest/slashing/tally.js +6 -2
- package/dest/slashing/types.d.ts +7 -3
- package/dest/slashing/types.d.ts.map +1 -1
- package/dest/slashing/types.js +13 -1
- package/dest/tests/factories.js +13 -13
- package/dest/tests/mocks.d.ts +5 -2
- package/dest/tests/mocks.d.ts.map +1 -1
- package/dest/tests/mocks.js +18 -13
- package/dest/timetable/index.d.ts +37 -0
- package/dest/timetable/index.d.ts.map +1 -0
- package/dest/timetable/index.js +39 -0
- package/dest/trees/public_data_leaf.d.ts +2 -1
- package/dest/trees/public_data_leaf.d.ts.map +1 -1
- package/dest/trees/public_data_leaf.js +7 -6
- package/dest/tx/block_header.js +2 -2
- package/dest/tx/global_variables.d.ts +4 -4
- package/dest/tx/global_variables.d.ts.map +1 -1
- package/dest/tx/profiling.d.ts +4 -4
- package/dest/tx/profiling.d.ts.map +1 -1
- package/dest/tx/profiling.js +3 -3
- package/dest/tx/protocol_contracts.d.ts +1 -1
- package/dest/tx/protocol_contracts.d.ts.map +1 -1
- package/dest/tx/protocol_contracts.js +2 -2
- package/dest/tx/public_simulation_output.d.ts +4 -2
- package/dest/tx/public_simulation_output.d.ts.map +1 -1
- package/dest/tx/public_simulation_output.js +7 -3
- package/dest/tx/tx_receipt.d.ts +16 -2
- package/dest/tx/tx_receipt.d.ts.map +1 -1
- package/dest/tx/tx_receipt.js +11 -3
- package/dest/tx/tx_request.js +2 -2
- package/dest/tx/validator/empty_validator.d.ts +2 -2
- package/dest/tx/validator/empty_validator.d.ts.map +1 -1
- package/dest/tx/validator/error_texts.d.ts +1 -1
- package/dest/tx/validator/error_texts.js +1 -1
- package/dest/tx/validator/tx_validator.d.ts +2 -2
- package/dest/tx/validator/tx_validator.d.ts.map +1 -1
- package/dest/validators/schemas.d.ts +30 -30
- package/dest/validators/schemas.d.ts.map +1 -1
- package/dest/validators/schemas.js +4 -3
- package/dest/validators/types.d.ts +3 -3
- package/dest/validators/types.d.ts.map +1 -1
- package/package.json +22 -11
- package/src/abi/function_call.ts +25 -3
- package/src/auth_witness/auth_witness.ts +3 -3
- package/src/block/block_data.ts +26 -0
- package/src/block/in_block.ts +1 -1
- package/src/block/index.ts +1 -0
- package/src/block/l2_block_source.ts +22 -0
- package/src/checkpoint/checkpoint.ts +32 -14
- package/src/checkpoint/checkpoint_data.ts +51 -0
- package/src/checkpoint/index.ts +1 -0
- package/src/checkpoint/published_checkpoint.ts +3 -1
- package/src/config/index.ts +1 -0
- package/src/config/sequencer-config.ts +29 -0
- package/src/contract/contract_address.ts +4 -4
- package/src/contract/contract_class.ts +3 -3
- package/src/contract/contract_class_id.ts +5 -4
- package/src/contract/interfaces/node-info.ts +3 -0
- package/src/contract/private_function.ts +2 -2
- package/src/epoch-helpers/index.ts +3 -0
- package/src/file-store/local.ts +15 -5
- package/src/file-store/s3.ts +12 -3
- package/src/ha-signing/config.ts +149 -0
- package/src/ha-signing/index.ts +18 -0
- package/src/ha-signing/types.ts +112 -0
- package/src/hash/hash.ts +14 -10
- package/src/hash/map_slot.ts +2 -2
- package/src/interfaces/archiver.ts +5 -0
- package/src/interfaces/aztec-node-admin.ts +23 -0
- package/src/interfaces/aztec-node.ts +1 -1
- package/src/interfaces/block-builder.ts +1 -0
- package/src/interfaces/configs.ts +12 -1
- package/src/interfaces/merkle_tree_operations.ts +1 -1
- package/src/interfaces/p2p.ts +1 -1
- package/src/interfaces/slasher.ts +4 -0
- package/src/interfaces/validator.ts +12 -2
- package/src/kernel/hints/build_note_hash_read_request_hints.ts +14 -18
- package/src/kernel/hints/build_nullifier_read_request_hints.ts +15 -18
- package/src/kernel/hints/build_transient_data_hints.ts +17 -2
- package/src/kernel/hints/index.ts +2 -2
- package/src/kernel/hints/{key_validation_request_and_generator.ts → key_validation_request_and_separator.ts} +12 -15
- package/src/kernel/hints/{scoped_key_validation_request_and_generator.ts → scoped_key_validation_request_and_separator.ts} +10 -10
- package/src/kernel/private_circuit_public_inputs.ts +14 -14
- package/src/kernel/private_kernel_circuit_public_inputs.ts +2 -2
- package/src/kernel/private_kernel_tail_circuit_private_inputs.ts +2 -2
- package/src/kernel/private_kernel_tail_circuit_public_inputs.ts +5 -5
- package/src/kernel/private_to_public_kernel_circuit_public_inputs.ts +5 -5
- package/src/kernel/private_to_rollup_kernel_circuit_public_inputs.ts +5 -5
- package/src/kernel/private_validation_requests.ts +8 -8
- package/src/keys/derivation.ts +8 -8
- package/src/keys/key_types.ts +6 -2
- package/src/keys/public_keys.ts +2 -2
- package/src/keys/utils.ts +5 -5
- package/src/logs/debug_log_store.ts +54 -0
- package/src/logs/index.ts +1 -0
- package/src/logs/log_id.ts +15 -12
- package/src/logs/siloed_tag.ts +2 -3
- package/src/messaging/l2_to_l1_membership.ts +3 -3
- package/src/note/index.ts +0 -1
- package/src/p2p/attestation_utils.ts +56 -0
- package/src/p2p/block_proposal.ts +1 -3
- package/src/p2p/checkpoint_attestation.ts +6 -1
- package/src/p2p/checkpoint_proposal.ts +46 -14
- package/src/p2p/consensus_payload.ts +25 -12
- package/src/p2p/constants.ts +3 -0
- package/src/rollup/checkpoint_header.ts +2 -2
- package/src/rollup/checkpoint_rollup_public_inputs.ts +5 -5
- package/src/rollup/root_rollup_public_inputs.ts +7 -7
- package/src/slashing/empire.ts +3 -1
- package/src/slashing/helpers.ts +8 -0
- package/src/slashing/tally.ts +8 -2
- package/src/slashing/types.ts +14 -0
- package/src/tests/factories.ts +17 -17
- package/src/tests/mocks.ts +28 -13
- package/src/timetable/index.ts +66 -0
- package/src/trees/public_data_leaf.ts +11 -5
- package/src/tx/block_header.ts +2 -2
- package/src/tx/global_variables.ts +3 -3
- package/src/tx/profiling.ts +5 -5
- package/src/tx/protocol_contracts.ts +2 -2
- package/src/tx/public_simulation_output.ts +4 -0
- package/src/tx/tx_receipt.ts +10 -0
- package/src/tx/tx_request.ts +2 -2
- package/src/tx/validator/empty_validator.ts +1 -1
- package/src/tx/validator/error_texts.ts +1 -1
- package/src/tx/validator/tx_validator.ts +1 -1
- package/src/validators/schemas.ts +8 -1
- package/src/validators/types.ts +5 -4
- package/dest/kernel/hints/key_validation_request_and_generator.d.ts +0 -30
- package/dest/kernel/hints/key_validation_request_and_generator.d.ts.map +0 -1
- package/dest/note/notes_filter.d.ts +0 -27
- package/dest/note/notes_filter.d.ts.map +0 -1
- package/dest/note/notes_filter.js +0 -11
- package/src/note/notes_filter.ts +0 -38
|
@@ -14,6 +14,8 @@ export interface SlasherConfig {
|
|
|
14
14
|
slashDataWithholdingPenalty: bigint;
|
|
15
15
|
slashInactivityPenalty: bigint;
|
|
16
16
|
slashBroadcastedInvalidBlockPenalty: bigint;
|
|
17
|
+
slashDuplicateProposalPenalty: bigint;
|
|
18
|
+
slashDuplicateAttestationPenalty: bigint;
|
|
17
19
|
slashProposeInvalidAttestationsPenalty: bigint;
|
|
18
20
|
slashAttestDescendantOfInvalidPenalty: bigint;
|
|
19
21
|
slashUnknownPenalty: bigint;
|
|
@@ -34,6 +36,8 @@ export declare const SlasherConfigSchema: z.ZodObject<{
|
|
|
34
36
|
slashInactivityConsecutiveEpochThreshold: z.ZodNumber;
|
|
35
37
|
slashInactivityPenalty: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodBigInt>;
|
|
36
38
|
slashProposeInvalidAttestationsPenalty: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodBigInt>;
|
|
39
|
+
slashDuplicateProposalPenalty: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodBigInt>;
|
|
40
|
+
slashDuplicateAttestationPenalty: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodBigInt>;
|
|
37
41
|
slashAttestDescendantOfInvalidPenalty: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodBigInt>;
|
|
38
42
|
slashUnknownPenalty: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodBigInt>;
|
|
39
43
|
slashOffenseExpirationRounds: z.ZodNumber;
|
|
@@ -54,6 +58,8 @@ export declare const SlasherConfigSchema: z.ZodObject<{
|
|
|
54
58
|
slashInactivityConsecutiveEpochThreshold: number;
|
|
55
59
|
slashInactivityPenalty: bigint;
|
|
56
60
|
slashProposeInvalidAttestationsPenalty: bigint;
|
|
61
|
+
slashDuplicateProposalPenalty: bigint;
|
|
62
|
+
slashDuplicateAttestationPenalty: bigint;
|
|
57
63
|
slashAttestDescendantOfInvalidPenalty: bigint;
|
|
58
64
|
slashUnknownPenalty: bigint;
|
|
59
65
|
slashOffenseExpirationRounds: number;
|
|
@@ -74,6 +80,8 @@ export declare const SlasherConfigSchema: z.ZodObject<{
|
|
|
74
80
|
slashInactivityConsecutiveEpochThreshold: number;
|
|
75
81
|
slashInactivityPenalty: string | number | bigint;
|
|
76
82
|
slashProposeInvalidAttestationsPenalty: string | number | bigint;
|
|
83
|
+
slashDuplicateProposalPenalty: string | number | bigint;
|
|
84
|
+
slashDuplicateAttestationPenalty: string | number | bigint;
|
|
77
85
|
slashAttestDescendantOfInvalidPenalty: string | number | bigint;
|
|
78
86
|
slashUnknownPenalty: string | number | bigint;
|
|
79
87
|
slashOffenseExpirationRounds: number;
|
|
@@ -83,4 +91,4 @@ export declare const SlasherConfigSchema: z.ZodObject<{
|
|
|
83
91
|
slashExecuteRoundsLookBack: number;
|
|
84
92
|
slashSelfAllowed?: boolean | undefined;
|
|
85
93
|
}>;
|
|
86
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
94
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xhc2hlci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ludGVyZmFjZXMvc2xhc2hlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUdoRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBRXhCLE1BQU0sTUFBTSxpQkFBaUIsR0FBRyxRQUFRLEdBQUcsT0FBTyxDQUFDO0FBRW5ELE1BQU0sV0FBVyxhQUFhO0lBQzVCLG9CQUFvQixDQUFDLEVBQUUsVUFBVSxDQUFDO0lBQ2xDLHlCQUF5QixFQUFFLE1BQU0sQ0FBQztJQUNsQyx5QkFBeUIsRUFBRSxNQUFNLENBQUM7SUFDbEMsZ0JBQWdCLENBQUMsRUFBRSxPQUFPLENBQUM7SUFDM0IscUJBQXFCLEVBQUUsVUFBVSxFQUFFLENBQUM7SUFDcEMsb0JBQW9CLEVBQUUsVUFBVSxFQUFFLENBQUM7SUFDbkMsK0JBQStCLEVBQUUsTUFBTSxDQUFDO0lBQ3hDLHdDQUF3QyxFQUFFLE1BQU0sQ0FBQztJQUNqRCxpQkFBaUIsRUFBRSxNQUFNLENBQUM7SUFDMUIsMkJBQTJCLEVBQUUsTUFBTSxDQUFDO0lBQ3BDLHNCQUFzQixFQUFFLE1BQU0sQ0FBQztJQUMvQixtQ0FBbUMsRUFBRSxNQUFNLENBQUM7SUFDNUMsNkJBQTZCLEVBQUUsTUFBTSxDQUFDO0lBQ3RDLGdDQUFnQyxFQUFFLE1BQU0sQ0FBQztJQUN6QyxzQ0FBc0MsRUFBRSxNQUFNLENBQUM7SUFDL0MscUNBQXFDLEVBQUUsTUFBTSxDQUFDO0lBQzlDLG1CQUFtQixFQUFFLE1BQU0sQ0FBQztJQUM1Qiw0QkFBNEIsRUFBRSxNQUFNLENBQUM7SUFDckMsbUJBQW1CLEVBQUUsTUFBTSxDQUFDO0lBQzVCLHVCQUF1QixFQUFFLE1BQU0sQ0FBQztJQUNoQywwQkFBMEIsRUFBRSxNQUFNLENBQUM7Q0FDcEM7QUFFRCxlQUFPLE1BQU0sbUJBQW1COzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUF3Qi9CLENBQUMifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slasher.d.ts","sourceRoot":"","sources":["../../src/interfaces/slasher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAGhE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEnD,MAAM,WAAW,aAAa;IAC5B,oBAAoB,CAAC,EAAE,UAAU,CAAC;IAClC,yBAAyB,EAAE,MAAM,CAAC;IAClC,yBAAyB,EAAE,MAAM,CAAC;IAClC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,qBAAqB,EAAE,UAAU,EAAE,CAAC;IACpC,oBAAoB,EAAE,UAAU,EAAE,CAAC;IACnC,+BAA+B,EAAE,MAAM,CAAC;IACxC,wCAAwC,EAAE,MAAM,CAAC;IACjD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,2BAA2B,EAAE,MAAM,CAAC;IACpC,sBAAsB,EAAE,MAAM,CAAC;IAC/B,mCAAmC,EAAE,MAAM,CAAC;IAC5C,sCAAsC,EAAE,MAAM,CAAC;IAC/C,qCAAqC,EAAE,MAAM,CAAC;IAC9C,mBAAmB,EAAE,MAAM,CAAC;IAC5B,4BAA4B,EAAE,MAAM,CAAC;IACrC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,uBAAuB,EAAE,MAAM,CAAC;IAChC,0BAA0B,EAAE,MAAM,CAAC;CACpC;AAED,eAAO,MAAM,mBAAmB
|
|
1
|
+
{"version":3,"file":"slasher.d.ts","sourceRoot":"","sources":["../../src/interfaces/slasher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAGhE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEnD,MAAM,WAAW,aAAa;IAC5B,oBAAoB,CAAC,EAAE,UAAU,CAAC;IAClC,yBAAyB,EAAE,MAAM,CAAC;IAClC,yBAAyB,EAAE,MAAM,CAAC;IAClC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,qBAAqB,EAAE,UAAU,EAAE,CAAC;IACpC,oBAAoB,EAAE,UAAU,EAAE,CAAC;IACnC,+BAA+B,EAAE,MAAM,CAAC;IACxC,wCAAwC,EAAE,MAAM,CAAC;IACjD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,2BAA2B,EAAE,MAAM,CAAC;IACpC,sBAAsB,EAAE,MAAM,CAAC;IAC/B,mCAAmC,EAAE,MAAM,CAAC;IAC5C,6BAA6B,EAAE,MAAM,CAAC;IACtC,gCAAgC,EAAE,MAAM,CAAC;IACzC,sCAAsC,EAAE,MAAM,CAAC;IAC/C,qCAAqC,EAAE,MAAM,CAAC;IAC9C,mBAAmB,EAAE,MAAM,CAAC;IAC5B,4BAA4B,EAAE,MAAM,CAAC;IACrC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,uBAAuB,EAAE,MAAM,CAAC;IAChC,0BAA0B,EAAE,MAAM,CAAC;CACpC;AAED,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwB/B,CAAC"}
|
|
@@ -12,6 +12,8 @@ export const SlasherConfigSchema = zodFor()(z.object({
|
|
|
12
12
|
slashInactivityConsecutiveEpochThreshold: z.number(),
|
|
13
13
|
slashInactivityPenalty: schemas.BigInt,
|
|
14
14
|
slashProposeInvalidAttestationsPenalty: schemas.BigInt,
|
|
15
|
+
slashDuplicateProposalPenalty: schemas.BigInt,
|
|
16
|
+
slashDuplicateAttestationPenalty: schemas.BigInt,
|
|
15
17
|
slashAttestDescendantOfInvalidPenalty: schemas.BigInt,
|
|
16
18
|
slashUnknownPenalty: schemas.BigInt,
|
|
17
19
|
slashOffenseExpirationRounds: z.number(),
|
|
@@ -7,10 +7,10 @@ import type { SequencerConfig, SlasherConfig } from '@aztec/stdlib/interfaces/se
|
|
|
7
7
|
import type { BlockProposal, BlockProposalOptions, CheckpointAttestation, CheckpointLastBlockData, CheckpointProposal, CheckpointProposalOptions } from '@aztec/stdlib/p2p';
|
|
8
8
|
import type { CheckpointHeader } from '@aztec/stdlib/rollup';
|
|
9
9
|
import type { BlockHeader, Tx } from '@aztec/stdlib/tx';
|
|
10
|
-
import { type ValidatorHASignerConfig } from '@aztec/validator-ha-signer/config';
|
|
11
10
|
import type { PeerId } from '@libp2p/interface';
|
|
12
11
|
import { z } from 'zod';
|
|
13
12
|
import type { CommitteeAttestationsAndSigners } from '../block/index.js';
|
|
13
|
+
import { type ValidatorHASignerConfig } from '../ha-signing/index.js';
|
|
14
14
|
/**
|
|
15
15
|
* Validator client configuration
|
|
16
16
|
*/
|
|
@@ -35,8 +35,10 @@ export type ValidatorClientConfig = ValidatorHASignerConfig & {
|
|
|
35
35
|
skipCheckpointProposalValidation?: boolean;
|
|
36
36
|
/** Skip pushing re-executed blocks to archiver (default: false) */
|
|
37
37
|
skipPushProposedBlocksToArchiver?: boolean;
|
|
38
|
+
/** Agree to attest to equivocated checkpoint proposals (for testing purposes only) */
|
|
39
|
+
attestToEquivocatedProposals?: boolean;
|
|
38
40
|
};
|
|
39
|
-
export type ValidatorClientFullConfig = ValidatorClientConfig & Pick<SequencerConfig, 'txPublicSetupAllowList' | 'broadcastInvalidBlockProposal'> & Pick<SlasherConfig, 'slashBroadcastedInvalidBlockPenalty'> & {
|
|
41
|
+
export type ValidatorClientFullConfig = ValidatorClientConfig & Pick<SequencerConfig, 'txPublicSetupAllowList' | 'broadcastInvalidBlockProposal'> & Pick<SlasherConfig, 'slashBroadcastedInvalidBlockPenalty' | 'slashDuplicateProposalPenalty' | 'slashDuplicateAttestationPenalty'> & {
|
|
40
42
|
/**
|
|
41
43
|
* Whether transactions are disabled for this node
|
|
42
44
|
* @remarks This should match the property in P2PConfig. It's not picked from there to avoid circular dependencies.
|
|
@@ -72,6 +74,7 @@ export declare const ValidatorClientConfigSchema: z.ZodObject<{
|
|
|
72
74
|
fishermanMode: z.ZodOptional<z.ZodBoolean>;
|
|
73
75
|
skipCheckpointProposalValidation: z.ZodOptional<z.ZodBoolean>;
|
|
74
76
|
skipPushProposedBlocksToArchiver: z.ZodOptional<z.ZodBoolean>;
|
|
77
|
+
attestToEquivocatedProposals: z.ZodOptional<z.ZodBoolean>;
|
|
75
78
|
}, "strip", z.ZodTypeAny, {
|
|
76
79
|
haSigningEnabled: boolean;
|
|
77
80
|
l1Contracts: {
|
|
@@ -96,6 +99,7 @@ export declare const ValidatorClientConfigSchema: z.ZodObject<{
|
|
|
96
99
|
fishermanMode?: boolean | undefined;
|
|
97
100
|
skipCheckpointProposalValidation?: boolean | undefined;
|
|
98
101
|
skipPushProposedBlocksToArchiver?: boolean | undefined;
|
|
102
|
+
attestToEquivocatedProposals?: boolean | undefined;
|
|
99
103
|
}, {
|
|
100
104
|
haSigningEnabled: boolean;
|
|
101
105
|
l1Contracts: {
|
|
@@ -120,6 +124,7 @@ export declare const ValidatorClientConfigSchema: z.ZodObject<{
|
|
|
120
124
|
fishermanMode?: boolean | undefined;
|
|
121
125
|
skipCheckpointProposalValidation?: boolean | undefined;
|
|
122
126
|
skipPushProposedBlocksToArchiver?: boolean | undefined;
|
|
127
|
+
attestToEquivocatedProposals?: boolean | undefined;
|
|
123
128
|
}>;
|
|
124
129
|
export declare const ValidatorClientFullConfigSchema: z.ZodObject<{
|
|
125
130
|
haSigningEnabled: z.ZodBoolean;
|
|
@@ -150,6 +155,7 @@ export declare const ValidatorClientFullConfigSchema: z.ZodObject<{
|
|
|
150
155
|
fishermanMode: z.ZodOptional<z.ZodBoolean>;
|
|
151
156
|
skipCheckpointProposalValidation: z.ZodOptional<z.ZodBoolean>;
|
|
152
157
|
skipPushProposedBlocksToArchiver: z.ZodOptional<z.ZodBoolean>;
|
|
158
|
+
attestToEquivocatedProposals: z.ZodOptional<z.ZodBoolean>;
|
|
153
159
|
} & {
|
|
154
160
|
txPublicSetupAllowList: z.ZodOptional<z.ZodArray<z.ZodUnion<[z.ZodObject<{
|
|
155
161
|
address: import("@aztec/foundation/schemas").ZodFor<import("../aztec-address/index.js").AztecAddress>;
|
|
@@ -184,6 +190,8 @@ export declare const ValidatorClientFullConfigSchema: z.ZodObject<{
|
|
|
184
190
|
}>]>, "many">>;
|
|
185
191
|
broadcastInvalidBlockProposal: z.ZodOptional<z.ZodBoolean>;
|
|
186
192
|
slashBroadcastedInvalidBlockPenalty: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodBigInt>;
|
|
193
|
+
slashDuplicateProposalPenalty: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodBigInt>;
|
|
194
|
+
slashDuplicateAttestationPenalty: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodBigInt>;
|
|
187
195
|
disableTransactions: z.ZodOptional<z.ZodBoolean>;
|
|
188
196
|
}, "strip", z.ZodTypeAny, {
|
|
189
197
|
haSigningEnabled: boolean;
|
|
@@ -209,6 +217,7 @@ export declare const ValidatorClientFullConfigSchema: z.ZodObject<{
|
|
|
209
217
|
fishermanMode?: boolean | undefined;
|
|
210
218
|
skipCheckpointProposalValidation?: boolean | undefined;
|
|
211
219
|
skipPushProposedBlocksToArchiver?: boolean | undefined;
|
|
220
|
+
attestToEquivocatedProposals?: boolean | undefined;
|
|
212
221
|
txPublicSetupAllowList?: ({
|
|
213
222
|
address: import("../aztec-address/index.js").AztecAddress;
|
|
214
223
|
selector: import("../abi/function_selector.js").FunctionSelector;
|
|
@@ -222,6 +231,8 @@ export declare const ValidatorClientFullConfigSchema: z.ZodObject<{
|
|
|
222
231
|
})[] | undefined;
|
|
223
232
|
broadcastInvalidBlockProposal?: boolean | undefined;
|
|
224
233
|
slashBroadcastedInvalidBlockPenalty: bigint;
|
|
234
|
+
slashDuplicateProposalPenalty: bigint;
|
|
235
|
+
slashDuplicateAttestationPenalty: bigint;
|
|
225
236
|
disableTransactions?: boolean | undefined;
|
|
226
237
|
}, {
|
|
227
238
|
haSigningEnabled: boolean;
|
|
@@ -247,6 +258,7 @@ export declare const ValidatorClientFullConfigSchema: z.ZodObject<{
|
|
|
247
258
|
fishermanMode?: boolean | undefined;
|
|
248
259
|
skipCheckpointProposalValidation?: boolean | undefined;
|
|
249
260
|
skipPushProposedBlocksToArchiver?: boolean | undefined;
|
|
261
|
+
attestToEquivocatedProposals?: boolean | undefined;
|
|
250
262
|
txPublicSetupAllowList?: ({
|
|
251
263
|
address?: any;
|
|
252
264
|
selector?: any;
|
|
@@ -260,6 +272,8 @@ export declare const ValidatorClientFullConfigSchema: z.ZodObject<{
|
|
|
260
272
|
})[] | undefined;
|
|
261
273
|
broadcastInvalidBlockProposal?: boolean | undefined;
|
|
262
274
|
slashBroadcastedInvalidBlockPenalty: string | number | bigint;
|
|
275
|
+
slashDuplicateProposalPenalty: string | number | bigint;
|
|
276
|
+
slashDuplicateAttestationPenalty: string | number | bigint;
|
|
263
277
|
disableTransactions?: boolean | undefined;
|
|
264
278
|
}>;
|
|
265
279
|
export type CreateCheckpointProposalLastBlockData = Omit<CheckpointLastBlockData, 'txHashes'> & {
|
|
@@ -270,7 +284,7 @@ export interface Validator {
|
|
|
270
284
|
updateConfig(config: Partial<ValidatorClientFullConfig>): void;
|
|
271
285
|
createBlockProposal(blockHeader: BlockHeader, indexWithinCheckpoint: number, inHash: Fr, archive: Fr, txs: Tx[], proposerAddress: EthAddress | undefined, options: BlockProposalOptions): Promise<BlockProposal | undefined>;
|
|
272
286
|
/** Creates a checkpoint proposal for the last block in a checkpoint */
|
|
273
|
-
createCheckpointProposal(checkpointHeader: CheckpointHeader, archive: Fr, lastBlockInfo: CreateCheckpointProposalLastBlockData | undefined, proposerAddress: EthAddress | undefined, options: CheckpointProposalOptions): Promise<CheckpointProposal>;
|
|
287
|
+
createCheckpointProposal(checkpointHeader: CheckpointHeader, archive: Fr, feeAssetPriceModifier: bigint, lastBlockInfo: CreateCheckpointProposalLastBlockData | undefined, proposerAddress: EthAddress | undefined, options: CheckpointProposalOptions): Promise<CheckpointProposal>;
|
|
274
288
|
/**
|
|
275
289
|
* Validate a block proposal from a peer.
|
|
276
290
|
* Note: Validators do NOT attest to individual blocks - attestations are only for checkpoint proposals.
|
|
@@ -289,4 +303,4 @@ export interface Validator {
|
|
|
289
303
|
collectAttestations(proposal: CheckpointProposal, required: number, deadline: Date): Promise<CheckpointAttestation[]>;
|
|
290
304
|
signAttestationsAndSigners(attestationsAndSigners: CommitteeAttestationsAndSigners, proposer: EthAddress, slot: SlotNumber, blockNumber: BlockNumber | CheckpointNumber): Promise<Signature>;
|
|
291
305
|
}
|
|
292
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
306
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9yLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW50ZXJmYWNlcy92YWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLFVBQVUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2pHLE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzVELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRCxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRSxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUVqRSxPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdEYsT0FBTyxLQUFLLEVBQ1YsYUFBYSxFQUNiLG9CQUFvQixFQUNwQixxQkFBcUIsRUFDckIsdUJBQXVCLEVBQ3ZCLGtCQUFrQixFQUNsQix5QkFBeUIsRUFDMUIsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzdELE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxFQUFFLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUV4RCxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBRXhCLE9BQU8sS0FBSyxFQUFFLCtCQUErQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDekUsT0FBTyxFQUFFLEtBQUssdUJBQXVCLEVBQWlDLE1BQU0sd0JBQXdCLENBQUM7QUFHckc7O0dBRUc7QUFDSCxNQUFNLE1BQU0scUJBQXFCLEdBQUcsdUJBQXVCLEdBQUc7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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../src/interfaces/validator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AACjG,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAEjE,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AACtF,OAAO,KAAK,EACV,aAAa,EACb,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,EACvB,kBAAkB,EAClB,yBAAyB,EAC1B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../src/interfaces/validator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { schemas, zodFor } from '@aztec/foundation/schemas';
|
|
2
|
-
import { ValidatorHASignerConfigSchema } from '@aztec/validator-ha-signer/config';
|
|
3
2
|
import { z } from 'zod';
|
|
3
|
+
import { ValidatorHASignerConfigSchema } from '../ha-signing/index.js';
|
|
4
4
|
import { AllowedElementSchema } from './allowed_element.js';
|
|
5
5
|
export const ValidatorClientConfigSchema = zodFor()(ValidatorHASignerConfigSchema.extend({
|
|
6
6
|
validatorAddresses: z.array(schemas.EthAddress).optional(),
|
|
@@ -11,11 +11,14 @@ export const ValidatorClientConfigSchema = zodFor()(ValidatorHASignerConfigSchem
|
|
|
11
11
|
alwaysReexecuteBlockProposals: z.boolean().optional(),
|
|
12
12
|
fishermanMode: z.boolean().optional(),
|
|
13
13
|
skipCheckpointProposalValidation: z.boolean().optional(),
|
|
14
|
-
skipPushProposedBlocksToArchiver: z.boolean().optional()
|
|
14
|
+
skipPushProposedBlocksToArchiver: z.boolean().optional(),
|
|
15
|
+
attestToEquivocatedProposals: z.boolean().optional()
|
|
15
16
|
}));
|
|
16
17
|
export const ValidatorClientFullConfigSchema = zodFor()(ValidatorClientConfigSchema.extend({
|
|
17
18
|
txPublicSetupAllowList: z.array(AllowedElementSchema).optional(),
|
|
18
19
|
broadcastInvalidBlockProposal: z.boolean().optional(),
|
|
19
20
|
slashBroadcastedInvalidBlockPenalty: schemas.BigInt,
|
|
21
|
+
slashDuplicateProposalPenalty: schemas.BigInt,
|
|
22
|
+
slashDuplicateAttestationPenalty: schemas.BigInt,
|
|
20
23
|
disableTransactions: z.boolean().optional()
|
|
21
24
|
}));
|
|
@@ -6,11 +6,11 @@ import type { ScopedNoteHash } from '../note_hash.js';
|
|
|
6
6
|
import type { ScopedReadRequest } from './read_request.js';
|
|
7
7
|
import { ReadRequestResetActions } from './read_request_hints.js';
|
|
8
8
|
export declare function isValidNoteHashReadRequest(readRequest: ScopedReadRequest, noteHash: ScopedNoteHash): boolean;
|
|
9
|
-
export declare function getNoteHashReadRequestResetActions(noteHashReadRequests: ClaimedLengthArray<ScopedReadRequest, typeof MAX_NOTE_HASH_READ_REQUESTS_PER_TX>, noteHashes: ClaimedLengthArray<ScopedNoteHash, typeof MAX_NOTE_HASHES_PER_TX
|
|
9
|
+
export declare function getNoteHashReadRequestResetActions(noteHashReadRequests: ClaimedLengthArray<ScopedReadRequest, typeof MAX_NOTE_HASH_READ_REQUESTS_PER_TX>, noteHashes: ClaimedLengthArray<ScopedNoteHash, typeof MAX_NOTE_HASHES_PER_TX>): ReadRequestResetActions<typeof MAX_NOTE_HASH_READ_REQUESTS_PER_TX>;
|
|
10
10
|
export declare function buildNoteHashReadRequestHintsFromResetActions<PENDING extends number, SETTLED extends number>(oracle: {
|
|
11
11
|
getNoteHashMembershipWitness(noteHash: Fr): Promise<MembershipWitness<typeof NOTE_HASH_TREE_HEIGHT> | undefined>;
|
|
12
12
|
}, noteHashReadRequests: ClaimedLengthArray<ScopedReadRequest, typeof MAX_NOTE_HASH_READ_REQUESTS_PER_TX>, noteHashes: ClaimedLengthArray<ScopedNoteHash, typeof MAX_NOTE_HASHES_PER_TX>, resetActions: ReadRequestResetActions<typeof MAX_NOTE_HASH_READ_REQUESTS_PER_TX>, maxPending?: PENDING, maxSettled?: SETTLED): Promise<import("./note_hash_read_request_hints.js").NoteHashReadRequestHints<PENDING, SETTLED>>;
|
|
13
13
|
export declare function buildNoteHashReadRequestHints<PENDING extends number, SETTLED extends number>(oracle: {
|
|
14
14
|
getNoteHashMembershipWitness(noteHash: Fr): Promise<MembershipWitness<typeof NOTE_HASH_TREE_HEIGHT>>;
|
|
15
|
-
}, noteHashReadRequests: ClaimedLengthArray<ScopedReadRequest, typeof MAX_NOTE_HASH_READ_REQUESTS_PER_TX>, noteHashes: ClaimedLengthArray<ScopedNoteHash, typeof MAX_NOTE_HASHES_PER_TX>,
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
15
|
+
}, noteHashReadRequests: ClaimedLengthArray<ScopedReadRequest, typeof MAX_NOTE_HASH_READ_REQUESTS_PER_TX>, noteHashes: ClaimedLengthArray<ScopedNoteHash, typeof MAX_NOTE_HASHES_PER_TX>, maxPending?: PENDING, maxSettled?: SETTLED): Promise<import("./note_hash_read_request_hints.js").NoteHashReadRequestHints<PENDING, SETTLED>>;
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGRfbm90ZV9oYXNoX3JlYWRfcmVxdWVzdF9oaW50cy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2tlcm5lbC9oaW50cy9idWlsZF9ub3RlX2hhc2hfcmVhZF9yZXF1ZXN0X2hpbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxLQUFLLHNCQUFzQixFQUMzQixrQ0FBa0MsRUFDbEMsS0FBSyxxQkFBcUIsRUFDM0IsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEtBQUssRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN6RCxPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRWpFLE9BQU8sS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDckUsT0FBTyxLQUFLLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFdEQsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMzRCxPQUFPLEVBQTBDLHVCQUF1QixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFMUcsd0JBQWdCLDBCQUEwQixDQUFDLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQUUsY0FBYyxXQU1sRztBQUVELHdCQUFnQixrQ0FBa0MsQ0FDaEQsb0JBQW9CLEVBQUUsa0JBQWtCLENBQUMsaUJBQWlCLEVBQUUsT0FBTyxrQ0FBa0MsQ0FBQyxFQUN0RyxVQUFVLEVBQUUsa0JBQWtCLENBQUMsY0FBYyxFQUFFLE9BQU8sc0JBQXNCLENBQUMsR0FDNUUsdUJBQXVCLENBQUMsT0FBTyxrQ0FBa0MsQ0FBQyxDQWdDcEU7QUFFRCx3QkFBc0IsNkNBQTZDLENBQUMsT0FBTyxTQUFTLE1BQU0sRUFBRSxPQUFPLFNBQVMsTUFBTSxFQUNoSCxNQUFNLEVBQUU7SUFDTiw0QkFBNEIsQ0FBQyxRQUFRLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLHFCQUFxQixDQUFDLEdBQUcsU0FBUyxDQUFDLENBQUM7Q0FDbEgsRUFDRCxvQkFBb0IsRUFBRSxrQkFBa0IsQ0FBQyxpQkFBaUIsRUFBRSxPQUFPLGtDQUFrQyxDQUFDLEVBQ3RHLFVBQVUsRUFBRSxrQkFBa0IsQ0FBQyxjQUFjLEVBQUUsT0FBTyxzQkFBc0IsQ0FBQyxFQUM3RSxZQUFZLEVBQUUsdUJBQXVCLENBQUMsT0FBTyxrQ0FBa0MsQ0FBQyxFQUNoRixVQUFVLEdBQUUsT0FBdUQsRUFDbkUsVUFBVSxHQUFFLE9BQXVELG1HQXVDcEU7QUFFRCx3QkFBc0IsNkJBQTZCLENBQUMsT0FBTyxTQUFTLE1BQU0sRUFBRSxPQUFPLFNBQVMsTUFBTSxFQUNoRyxNQUFNLEVBQUU7SUFDTiw0QkFBNEIsQ0FBQyxRQUFRLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLHFCQUFxQixDQUFDLENBQUMsQ0FBQztDQUN0RyxFQUNELG9CQUFvQixFQUFFLGtCQUFrQixDQUFDLGlCQUFpQixFQUFFLE9BQU8sa0NBQWtDLENBQUMsRUFDdEcsVUFBVSxFQUFFLGtCQUFrQixDQUFDLGNBQWMsRUFBRSxPQUFPLHNCQUFzQixDQUFDLEVBQzdFLFVBQVUsR0FBRSxPQUF1RCxFQUNuRSxVQUFVLEdBQUUsT0FBdUQsbUdBV3BFIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build_note_hash_read_request_hints.d.ts","sourceRoot":"","sources":["../../../src/kernel/hints/build_note_hash_read_request_hints.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,sBAAsB,EAC3B,kCAAkC,EAClC,KAAK,qBAAqB,EAC3B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAA0C,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"build_note_hash_read_request_hints.d.ts","sourceRoot":"","sources":["../../../src/kernel/hints/build_note_hash_read_request_hints.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,sBAAsB,EAC3B,kCAAkC,EAClC,KAAK,qBAAqB,EAC3B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAA0C,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAE1G,wBAAgB,0BAA0B,CAAC,WAAW,EAAE,iBAAiB,EAAE,QAAQ,EAAE,cAAc,WAMlG;AAED,wBAAgB,kCAAkC,CAChD,oBAAoB,EAAE,kBAAkB,CAAC,iBAAiB,EAAE,OAAO,kCAAkC,CAAC,EACtG,UAAU,EAAE,kBAAkB,CAAC,cAAc,EAAE,OAAO,sBAAsB,CAAC,GAC5E,uBAAuB,CAAC,OAAO,kCAAkC,CAAC,CAgCpE;AAED,wBAAsB,6CAA6C,CAAC,OAAO,SAAS,MAAM,EAAE,OAAO,SAAS,MAAM,EAChH,MAAM,EAAE;IACN,4BAA4B,CAAC,QAAQ,EAAE,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,OAAO,qBAAqB,CAAC,GAAG,SAAS,CAAC,CAAC;CAClH,EACD,oBAAoB,EAAE,kBAAkB,CAAC,iBAAiB,EAAE,OAAO,kCAAkC,CAAC,EACtG,UAAU,EAAE,kBAAkB,CAAC,cAAc,EAAE,OAAO,sBAAsB,CAAC,EAC7E,YAAY,EAAE,uBAAuB,CAAC,OAAO,kCAAkC,CAAC,EAChF,UAAU,GAAE,OAAuD,EACnE,UAAU,GAAE,OAAuD,mGAuCpE;AAED,wBAAsB,6BAA6B,CAAC,OAAO,SAAS,MAAM,EAAE,OAAO,SAAS,MAAM,EAChG,MAAM,EAAE;IACN,4BAA4B,CAAC,QAAQ,EAAE,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,OAAO,qBAAqB,CAAC,CAAC,CAAC;CACtG,EACD,oBAAoB,EAAE,kBAAkB,CAAC,iBAAiB,EAAE,OAAO,kCAAkC,CAAC,EACtG,UAAU,EAAE,kBAAkB,CAAC,cAAc,EAAE,OAAO,sBAAsB,CAAC,EAC7E,UAAU,GAAE,OAAuD,EACnE,UAAU,GAAE,OAAuD,mGAWpE"}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { MAX_NOTE_HASH_READ_REQUESTS_PER_TX } from '@aztec/constants';
|
|
2
2
|
import { NoteHashReadRequestHintsBuilder } from './note_hash_read_request_hints.js';
|
|
3
3
|
import { PendingReadHint, ReadRequestActionEnum, ReadRequestResetActions } from './read_request_hints.js';
|
|
4
|
-
import { ScopedValueCache } from './scoped_value_cache.js';
|
|
5
4
|
export function isValidNoteHashReadRequest(readRequest, noteHash) {
|
|
6
5
|
return noteHash.value.equals(readRequest.value) && noteHash.contractAddress.equals(readRequest.contractAddress) && readRequest.counter > noteHash.counter;
|
|
7
6
|
}
|
|
8
|
-
export function getNoteHashReadRequestResetActions(noteHashReadRequests, noteHashes
|
|
7
|
+
export function getNoteHashReadRequestResetActions(noteHashReadRequests, noteHashes) {
|
|
9
8
|
const resetActions = ReadRequestResetActions.empty(MAX_NOTE_HASH_READ_REQUESTS_PER_TX);
|
|
10
9
|
const noteHashMap = new Map();
|
|
11
10
|
noteHashes.getActiveItems().forEach((noteHash, index)=>{
|
|
@@ -17,15 +16,19 @@ export function getNoteHashReadRequestResetActions(noteHashReadRequests, noteHas
|
|
|
17
16
|
});
|
|
18
17
|
noteHashMap.set(value, arr);
|
|
19
18
|
});
|
|
20
|
-
const futureNoteHashMap = new ScopedValueCache(futureNoteHashes);
|
|
21
19
|
for(let i = 0; i < noteHashReadRequests.claimedLength; ++i){
|
|
22
20
|
const readRequest = noteHashReadRequests.array[i];
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
resetActions.actions[i] = ReadRequestActionEnum.READ_AS_PENDING;
|
|
26
|
-
resetActions.pendingReadHints.push(new PendingReadHint(i, pendingNoteHash.index));
|
|
27
|
-
} else if (!futureNoteHashMap.get(readRequest).find((futureNoteHash)=>isValidNoteHashReadRequest(readRequest, futureNoteHash))) {
|
|
21
|
+
if (readRequest.contractAddress.isZero()) {
|
|
22
|
+
// Settled read: empty contract address means resolve against the note hash tree.
|
|
28
23
|
resetActions.actions[i] = ReadRequestActionEnum.READ_AS_SETTLED;
|
|
24
|
+
} else {
|
|
25
|
+
// Pending read: non-empty contract address means match against a pending note hash.
|
|
26
|
+
const pendingNoteHash = noteHashMap.get(readRequest.value.toBigInt())?.find((n)=>isValidNoteHashReadRequest(readRequest, n.noteHash));
|
|
27
|
+
if (pendingNoteHash) {
|
|
28
|
+
resetActions.actions[i] = ReadRequestActionEnum.READ_AS_PENDING;
|
|
29
|
+
resetActions.pendingReadHints.push(new PendingReadHint(i, pendingNoteHash.index));
|
|
30
|
+
}
|
|
31
|
+
// Otherwise, the read request may be resolved by a future note hash. Leave as NOOP.
|
|
29
32
|
}
|
|
30
33
|
}
|
|
31
34
|
return resetActions;
|
|
@@ -67,7 +70,7 @@ export async function buildNoteHashReadRequestHintsFromResetActions(oracle, note
|
|
|
67
70
|
});
|
|
68
71
|
return builder.toHints();
|
|
69
72
|
}
|
|
70
|
-
export async function buildNoteHashReadRequestHints(oracle, noteHashReadRequests, noteHashes,
|
|
71
|
-
const resetActions = getNoteHashReadRequestResetActions(noteHashReadRequests, noteHashes
|
|
73
|
+
export async function buildNoteHashReadRequestHints(oracle, noteHashReadRequests, noteHashes, maxPending = MAX_NOTE_HASH_READ_REQUESTS_PER_TX, maxSettled = MAX_NOTE_HASH_READ_REQUESTS_PER_TX) {
|
|
74
|
+
const resetActions = getNoteHashReadRequestResetActions(noteHashReadRequests, noteHashes);
|
|
72
75
|
return await buildNoteHashReadRequestHintsFromResetActions(oracle, noteHashReadRequests, noteHashes, resetActions, maxPending, maxSettled);
|
|
73
76
|
}
|
|
@@ -11,12 +11,12 @@ interface NullifierMembershipWitnessWithPreimage {
|
|
|
11
11
|
membershipWitness: MembershipWitness<typeof NULLIFIER_TREE_HEIGHT>;
|
|
12
12
|
leafPreimage: NullifierLeafPreimage;
|
|
13
13
|
}
|
|
14
|
-
export declare function getNullifierReadRequestResetActions(nullifierReadRequests: ClaimedLengthArray<ScopedReadRequest, typeof MAX_NULLIFIER_READ_REQUESTS_PER_TX>, nullifiers: ClaimedLengthArray<ScopedNullifier, typeof MAX_NULLIFIERS_PER_TX
|
|
14
|
+
export declare function getNullifierReadRequestResetActions(nullifierReadRequests: ClaimedLengthArray<ScopedReadRequest, typeof MAX_NULLIFIER_READ_REQUESTS_PER_TX>, nullifiers: ClaimedLengthArray<ScopedNullifier, typeof MAX_NULLIFIERS_PER_TX>): ReadRequestResetActions<typeof MAX_NULLIFIER_READ_REQUESTS_PER_TX>;
|
|
15
15
|
export declare function buildNullifierReadRequestHintsFromResetActions<PENDING extends number, SETTLED extends number>(oracle: {
|
|
16
16
|
getNullifierMembershipWitness(nullifier: Fr): Promise<NullifierMembershipWitnessWithPreimage>;
|
|
17
17
|
}, nullifierReadRequests: ClaimedLengthArray<ScopedReadRequest, typeof MAX_NULLIFIER_READ_REQUESTS_PER_TX>, resetActions: ReadRequestResetActions<typeof MAX_NULLIFIER_READ_REQUESTS_PER_TX>, maxPending?: PENDING, maxSettled?: SETTLED): Promise<import("./nullifier_read_request_hints.js").NullifierReadRequestHints<PENDING, SETTLED>>;
|
|
18
18
|
export declare function buildNullifierReadRequestHints<PENDING extends number, SETTLED extends number>(oracle: {
|
|
19
19
|
getNullifierMembershipWitness(nullifier: Fr): Promise<NullifierMembershipWitnessWithPreimage>;
|
|
20
|
-
}, nullifierReadRequests: ClaimedLengthArray<ScopedReadRequest, typeof MAX_NULLIFIER_READ_REQUESTS_PER_TX>, nullifiers: ClaimedLengthArray<ScopedNullifier, typeof MAX_NULLIFIERS_PER_TX>,
|
|
20
|
+
}, nullifierReadRequests: ClaimedLengthArray<ScopedReadRequest, typeof MAX_NULLIFIER_READ_REQUESTS_PER_TX>, nullifiers: ClaimedLengthArray<ScopedNullifier, typeof MAX_NULLIFIERS_PER_TX>, maxPending?: PENDING, maxSettled?: SETTLED): Promise<import("./nullifier_read_request_hints.js").NullifierReadRequestHints<PENDING, SETTLED>>;
|
|
21
21
|
export {};
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGRfbnVsbGlmaWVyX3JlYWRfcmVxdWVzdF9oaW50cy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2tlcm5lbC9oaW50cy9idWlsZF9udWxsaWZpZXJfcmVhZF9yZXF1ZXN0X2hpbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxLQUFLLHFCQUFxQixFQUMxQixrQ0FBa0MsRUFDbEMsS0FBSyxxQkFBcUIsRUFDM0IsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEtBQUssRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN6RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUU1RCxPQUFPLEtBQUssRUFBRSxxQkFBcUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzNFLE9BQU8sS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDckUsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdEQsT0FBTyxFQUEwQyx1QkFBdUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTFHLHdCQUFnQiwyQkFBMkIsQ0FBQyxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLGVBQWUsV0FNckc7QUFFRCxVQUFVLHNDQUFzQztJQUM5QyxpQkFBaUIsRUFBRSxpQkFBaUIsQ0FBQyxPQUFPLHFCQUFxQixDQUFDLENBQUM7SUFDbkUsWUFBWSxFQUFFLHFCQUFxQixDQUFDO0NBQ3JDO0FBRUQsd0JBQWdCLG1DQUFtQyxDQUNqRCxxQkFBcUIsRUFBRSxrQkFBa0IsQ0FBQyxpQkFBaUIsRUFBRSxPQUFPLGtDQUFrQyxDQUFDLEVBQ3ZHLFVBQVUsRUFBRSxrQkFBa0IsQ0FBQyxlQUFlLEVBQUUsT0FBTyxxQkFBcUIsQ0FBQyxHQUM1RSx1QkFBdUIsQ0FBQyxPQUFPLGtDQUFrQyxDQUFDLENBZ0NwRTtBQUVELHdCQUFzQiw4Q0FBOEMsQ0FBQyxPQUFPLFNBQVMsTUFBTSxFQUFFLE9BQU8sU0FBUyxNQUFNLEVBQ2pILE1BQU0sRUFBRTtJQUNOLDZCQUE2QixDQUFDLFNBQVMsRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLHNDQUFzQyxDQUFDLENBQUM7Q0FDL0YsRUFDRCxxQkFBcUIsRUFBRSxrQkFBa0IsQ0FBQyxpQkFBaUIsRUFBRSxPQUFPLGtDQUFrQyxDQUFDLEVBQ3ZHLFlBQVksRUFBRSx1QkFBdUIsQ0FBQyxPQUFPLGtDQUFrQyxDQUFDLEVBQ2hGLFVBQVUsR0FBRSxPQUF1RCxFQUNuRSxVQUFVLEdBQUUsT0FBdUQsb0dBK0JwRTtBQUVELHdCQUFzQiw4QkFBOEIsQ0FBQyxPQUFPLFNBQVMsTUFBTSxFQUFFLE9BQU8sU0FBUyxNQUFNLEVBQ2pHLE1BQU0sRUFBRTtJQUNOLDZCQUE2QixDQUFDLFNBQVMsRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLHNDQUFzQyxDQUFDLENBQUM7Q0FDL0YsRUFDRCxxQkFBcUIsRUFBRSxrQkFBa0IsQ0FBQyxpQkFBaUIsRUFBRSxPQUFPLGtDQUFrQyxDQUFDLEVBQ3ZHLFVBQVUsRUFBRSxrQkFBa0IsQ0FBQyxlQUFlLEVBQUUsT0FBTyxxQkFBcUIsQ0FBQyxFQUM3RSxVQUFVLEdBQUUsT0FBdUQsRUFDbkUsVUFBVSxHQUFFLE9BQXVELG9HQVVwRSJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build_nullifier_read_request_hints.d.ts","sourceRoot":"","sources":["../../../src/kernel/hints/build_nullifier_read_request_hints.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,qBAAqB,EAC1B,kCAAkC,EAClC,KAAK,qBAAqB,EAC3B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAA0C,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"build_nullifier_read_request_hints.d.ts","sourceRoot":"","sources":["../../../src/kernel/hints/build_nullifier_read_request_hints.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,qBAAqB,EAC1B,kCAAkC,EAClC,KAAK,qBAAqB,EAC3B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAA0C,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAE1G,wBAAgB,2BAA2B,CAAC,WAAW,EAAE,iBAAiB,EAAE,SAAS,EAAE,eAAe,WAMrG;AAED,UAAU,sCAAsC;IAC9C,iBAAiB,EAAE,iBAAiB,CAAC,OAAO,qBAAqB,CAAC,CAAC;IACnE,YAAY,EAAE,qBAAqB,CAAC;CACrC;AAED,wBAAgB,mCAAmC,CACjD,qBAAqB,EAAE,kBAAkB,CAAC,iBAAiB,EAAE,OAAO,kCAAkC,CAAC,EACvG,UAAU,EAAE,kBAAkB,CAAC,eAAe,EAAE,OAAO,qBAAqB,CAAC,GAC5E,uBAAuB,CAAC,OAAO,kCAAkC,CAAC,CAgCpE;AAED,wBAAsB,8CAA8C,CAAC,OAAO,SAAS,MAAM,EAAE,OAAO,SAAS,MAAM,EACjH,MAAM,EAAE;IACN,6BAA6B,CAAC,SAAS,EAAE,EAAE,GAAG,OAAO,CAAC,sCAAsC,CAAC,CAAC;CAC/F,EACD,qBAAqB,EAAE,kBAAkB,CAAC,iBAAiB,EAAE,OAAO,kCAAkC,CAAC,EACvG,YAAY,EAAE,uBAAuB,CAAC,OAAO,kCAAkC,CAAC,EAChF,UAAU,GAAE,OAAuD,EACnE,UAAU,GAAE,OAAuD,oGA+BpE;AAED,wBAAsB,8BAA8B,CAAC,OAAO,SAAS,MAAM,EAAE,OAAO,SAAS,MAAM,EACjG,MAAM,EAAE;IACN,6BAA6B,CAAC,SAAS,EAAE,EAAE,GAAG,OAAO,CAAC,sCAAsC,CAAC,CAAC;CAC/F,EACD,qBAAqB,EAAE,kBAAkB,CAAC,iBAAiB,EAAE,OAAO,kCAAkC,CAAC,EACvG,UAAU,EAAE,kBAAkB,CAAC,eAAe,EAAE,OAAO,qBAAqB,CAAC,EAC7E,UAAU,GAAE,OAAuD,EACnE,UAAU,GAAE,OAAuD,oGAUpE"}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { MAX_NULLIFIER_READ_REQUESTS_PER_TX } from '@aztec/constants';
|
|
2
2
|
import { NullifierReadRequestHintsBuilder } from './nullifier_read_request_hints.js';
|
|
3
3
|
import { PendingReadHint, ReadRequestActionEnum, ReadRequestResetActions } from './read_request_hints.js';
|
|
4
|
-
import { ScopedValueCache } from './scoped_value_cache.js';
|
|
5
4
|
export function isValidNullifierReadRequest(readRequest, nullifier) {
|
|
6
5
|
return readRequest.value.equals(nullifier.value) && nullifier.contractAddress.equals(readRequest.contractAddress) && readRequest.counter > nullifier.counter;
|
|
7
6
|
}
|
|
8
|
-
export function getNullifierReadRequestResetActions(nullifierReadRequests, nullifiers
|
|
7
|
+
export function getNullifierReadRequestResetActions(nullifierReadRequests, nullifiers) {
|
|
9
8
|
const resetActions = ReadRequestResetActions.empty(MAX_NULLIFIER_READ_REQUESTS_PER_TX);
|
|
10
9
|
const nullifierMap = new Map();
|
|
11
10
|
nullifiers.getActiveItems().forEach((nullifier, index)=>{
|
|
@@ -17,15 +16,19 @@ export function getNullifierReadRequestResetActions(nullifierReadRequests, nulli
|
|
|
17
16
|
});
|
|
18
17
|
nullifierMap.set(value, arr);
|
|
19
18
|
});
|
|
20
|
-
const futureNullifiersMap = new ScopedValueCache(futureNullifiers);
|
|
21
19
|
for(let i = 0; i < nullifierReadRequests.claimedLength; ++i){
|
|
22
20
|
const readRequest = nullifierReadRequests.array[i];
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
resetActions.actions[i] = ReadRequestActionEnum.READ_AS_PENDING;
|
|
26
|
-
resetActions.pendingReadHints.push(new PendingReadHint(i, pendingNullifier.index));
|
|
27
|
-
} else if (!futureNullifiersMap.get(readRequest).some((futureNullifier)=>isValidNullifierReadRequest(readRequest, futureNullifier))) {
|
|
21
|
+
if (readRequest.contractAddress.isZero()) {
|
|
22
|
+
// Settled read: empty contract address means resolve against the nullifier tree.
|
|
28
23
|
resetActions.actions[i] = ReadRequestActionEnum.READ_AS_SETTLED;
|
|
24
|
+
} else {
|
|
25
|
+
// Pending read: non-empty contract address means match against a pending nullifier.
|
|
26
|
+
const pendingNullifier = nullifierMap.get(readRequest.value.toBigInt())?.find(({ nullifier })=>isValidNullifierReadRequest(readRequest, nullifier));
|
|
27
|
+
if (pendingNullifier) {
|
|
28
|
+
resetActions.actions[i] = ReadRequestActionEnum.READ_AS_PENDING;
|
|
29
|
+
resetActions.pendingReadHints.push(new PendingReadHint(i, pendingNullifier.index));
|
|
30
|
+
}
|
|
31
|
+
// Otherwise, the read request may be resolved by a future nullifier. Leave as NOOP.
|
|
29
32
|
}
|
|
30
33
|
}
|
|
31
34
|
return resetActions;
|
|
@@ -54,7 +57,7 @@ export async function buildNullifierReadRequestHintsFromResetActions(oracle, nul
|
|
|
54
57
|
}
|
|
55
58
|
return builder.toHints();
|
|
56
59
|
}
|
|
57
|
-
export async function buildNullifierReadRequestHints(oracle, nullifierReadRequests, nullifiers,
|
|
58
|
-
const resetActions = getNullifierReadRequestResetActions(nullifierReadRequests, nullifiers
|
|
60
|
+
export async function buildNullifierReadRequestHints(oracle, nullifierReadRequests, nullifiers, maxPending = MAX_NULLIFIER_READ_REQUESTS_PER_TX, maxSettled = MAX_NULLIFIER_READ_REQUESTS_PER_TX) {
|
|
61
|
+
const resetActions = getNullifierReadRequestResetActions(nullifierReadRequests, nullifiers);
|
|
59
62
|
return await buildNullifierReadRequestHintsFromResetActions(oracle, nullifierReadRequests, resetActions, maxPending, maxSettled);
|
|
60
63
|
}
|
|
@@ -2,10 +2,13 @@ import type { Tuple } from '@aztec/foundation/serialize';
|
|
|
2
2
|
import type { ClaimedLengthArray } from '../claimed_length_array.js';
|
|
3
3
|
import type { ScopedNoteHash } from '../note_hash.js';
|
|
4
4
|
import type { ScopedNullifier } from '../nullifier.js';
|
|
5
|
+
import type { PrivateLogData, ScopedPrivateLogData } from '../private_log_data.js';
|
|
5
6
|
import type { ScopedReadRequest } from './read_request.js';
|
|
6
7
|
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>, splitCounter: number): {
|
|
8
|
+
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[], futureLogs: PrivateLogData[], noteHashNullifierCounterMap: Map<number, number>, splitCounter: number): {
|
|
8
9
|
numTransientData: number;
|
|
9
10
|
hints: Tuple<TransientDataSquashingHint, NULLIFIERS_LEN>;
|
|
10
11
|
};
|
|
11
|
-
|
|
12
|
+
/** Counts private logs that are linked to squashed note hashes and would be removed along with them. */
|
|
13
|
+
export declare function countSquashedLogs<NOTE_HASHES_LEN extends number, LOGS_LEN extends number>(noteHashes: ClaimedLengthArray<ScopedNoteHash, NOTE_HASHES_LEN>, privateLogs: ClaimedLengthArray<ScopedPrivateLogData, LOGS_LEN>, squashingHints: TransientDataSquashingHint[]): number;
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGRfdHJhbnNpZW50X2RhdGFfaGludHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9rZXJuZWwvaGludHMvYnVpbGRfdHJhbnNpZW50X2RhdGFfaGludHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFekQsT0FBTyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNyRSxPQUFPLEtBQUssRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN0RCxPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEtBQUssRUFBRSxjQUFjLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUduRixPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRTNELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBRWhGLHdCQUFnQix1QkFBdUIsQ0FBQyxlQUFlLFNBQVMsTUFBTSxFQUFFLGNBQWMsU0FBUyxNQUFNLEVBQ25HLFVBQVUsRUFBRSxrQkFBa0IsQ0FBQyxjQUFjLEVBQUUsZUFBZSxDQUFDLEVBQy9ELFVBQVUsRUFBRSxrQkFBa0IsQ0FBQyxlQUFlLEVBQUUsY0FBYyxDQUFDLEVBQy9ELG1CQUFtQixFQUFFLGlCQUFpQixFQUFFLEVBQ3hDLG9CQUFvQixFQUFFLGlCQUFpQixFQUFFLEVBQ3pDLFVBQVUsRUFBRSxjQUFjLEVBQUUsRUFDNUIsMkJBQTJCLEVBQUUsR0FBRyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsRUFDaEQsWUFBWSxFQUFFLE1BQU0sR0FDbkI7SUFBRSxnQkFBZ0IsRUFBRSxNQUFNLENBQUM7SUFBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLDBCQUEwQixFQUFFLGNBQWMsQ0FBQyxDQUFBO0NBQUUsQ0E4RHhGO0FBRUQsd0dBQXdHO0FBQ3hHLHdCQUFnQixpQkFBaUIsQ0FBQyxlQUFlLFNBQVMsTUFBTSxFQUFFLFFBQVEsU0FBUyxNQUFNLEVBQ3ZGLFVBQVUsRUFBRSxrQkFBa0IsQ0FBQyxjQUFjLEVBQUUsZUFBZSxDQUFDLEVBQy9ELFdBQVcsRUFBRSxrQkFBa0IsQ0FBQyxvQkFBb0IsRUFBRSxRQUFRLENBQUMsRUFDL0QsY0FBYyxFQUFFLDBCQUEwQixFQUFFLEdBQzNDLE1BQU0sQ0FHUiJ9
|
|
@@ -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,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACrE,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;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAGnF,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,UAAU,EAAE,cAAc,EAAE,EAC5B,2BAA2B,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAChD,YAAY,EAAE,MAAM,GACnB;IAAE,gBAAgB,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,KAAK,CAAC,0BAA0B,EAAE,cAAc,CAAC,CAAA;CAAE,CA8DxF;AAED,wGAAwG;AACxG,wBAAgB,iBAAiB,CAAC,eAAe,SAAS,MAAM,EAAE,QAAQ,SAAS,MAAM,EACvF,UAAU,EAAE,kBAAkB,CAAC,cAAc,EAAE,eAAe,CAAC,EAC/D,WAAW,EAAE,kBAAkB,CAAC,oBAAoB,EAAE,QAAQ,CAAC,EAC/D,cAAc,EAAE,0BAA0B,EAAE,GAC3C,MAAM,CAGR"}
|
|
@@ -3,17 +3,19 @@ import { isValidNoteHashReadRequest } from './build_note_hash_read_request_hints
|
|
|
3
3
|
import { isValidNullifierReadRequest } from './build_nullifier_read_request_hints.js';
|
|
4
4
|
import { ScopedValueCache } from './scoped_value_cache.js';
|
|
5
5
|
import { TransientDataSquashingHint } from './transient_data_squashing_hint.js';
|
|
6
|
-
export function buildTransientDataHints(noteHashes, nullifiers, futureNoteHashReads, futureNullifierReads, noteHashNullifierCounterMap, splitCounter) {
|
|
6
|
+
export function buildTransientDataHints(noteHashes, nullifiers, futureNoteHashReads, futureNullifierReads, futureLogs, noteHashNullifierCounterMap, splitCounter) {
|
|
7
7
|
const futureNoteHashReadsMap = new ScopedValueCache(futureNoteHashReads);
|
|
8
8
|
const futureNullifierReadsMap = new ScopedValueCache(futureNullifierReads);
|
|
9
|
+
const futureLogNoteHashCounters = new Set(futureLogs.filter((l)=>l.noteHashCounter > 0).map((l)=>l.noteHashCounter));
|
|
9
10
|
const nullifierIndexMap = new Map();
|
|
10
11
|
nullifiers.getActiveItems().forEach((n, i)=>nullifierIndexMap.set(n.counter, i));
|
|
11
12
|
const hints = [];
|
|
12
13
|
for(let noteHashIndex = 0; noteHashIndex < noteHashes.claimedLength; noteHashIndex++){
|
|
13
14
|
const noteHash = noteHashes.array[noteHashIndex];
|
|
14
15
|
const noteHashNullifierCounter = noteHashNullifierCounterMap.get(noteHash.counter);
|
|
15
|
-
// The note hash might not be linked to a nullifier or it might be read in the future
|
|
16
|
-
|
|
16
|
+
// The note hash might not be linked to a nullifier, or it might be read in the future, or a future log might be
|
|
17
|
+
// linked to it.
|
|
18
|
+
if (!noteHashNullifierCounter || futureNoteHashReadsMap.get(noteHash).find((read)=>isValidNoteHashReadRequest(read, noteHash)) || futureLogNoteHashCounters.has(noteHash.counter)) {
|
|
17
19
|
continue;
|
|
18
20
|
}
|
|
19
21
|
const nullifierIndex = nullifierIndexMap.get(noteHashNullifierCounter);
|
|
@@ -48,3 +50,7 @@ export function buildTransientDataHints(noteHashes, nullifiers, futureNoteHashRe
|
|
|
48
50
|
hints: padArrayEnd(hints, noActionHint, nullifiers.array.length)
|
|
49
51
|
};
|
|
50
52
|
}
|
|
53
|
+
/** Counts private logs that are linked to squashed note hashes and would be removed along with them. */ export function countSquashedLogs(noteHashes, privateLogs, squashingHints) {
|
|
54
|
+
const squashedNoteHashCounters = new Set(squashingHints.map((h)=>noteHashes.array[h.noteHashIndex].counter));
|
|
55
|
+
return privateLogs.getActiveItems().filter((l)=>squashedNoteHashCounters.has(l.inner.noteHashCounter)).length;
|
|
56
|
+
}
|
|
@@ -6,10 +6,10 @@ export * from './note_hash_read_request_hints.js';
|
|
|
6
6
|
export * from './nullifier_read_request_hints.js';
|
|
7
7
|
export * from './read_request_hints.js';
|
|
8
8
|
export * from './key_validation_hint.js';
|
|
9
|
-
export * from './
|
|
9
|
+
export * from './key_validation_request_and_separator.js';
|
|
10
10
|
export * from './read_request.js';
|
|
11
11
|
export * from './key_validation_request.js';
|
|
12
|
-
export * from './
|
|
12
|
+
export * from './scoped_key_validation_request_and_separator.js';
|
|
13
13
|
export * from './transient_data_squashing_hint.js';
|
|
14
14
|
export * from './private_kernel_reset_hints.js';
|
|
15
15
|
export * from './tree_leaf_read_request.js';
|
|
@@ -6,10 +6,10 @@ export * from './note_hash_read_request_hints.js';
|
|
|
6
6
|
export * from './nullifier_read_request_hints.js';
|
|
7
7
|
export * from './read_request_hints.js';
|
|
8
8
|
export * from './key_validation_hint.js';
|
|
9
|
-
export * from './
|
|
9
|
+
export * from './key_validation_request_and_separator.js';
|
|
10
10
|
export * from './read_request.js';
|
|
11
11
|
export * from './key_validation_request.js';
|
|
12
|
-
export * from './
|
|
12
|
+
export * from './scoped_key_validation_request_and_separator.js';
|
|
13
13
|
export * from './transient_data_squashing_hint.js';
|
|
14
14
|
export * from './private_kernel_reset_hints.js';
|
|
15
15
|
export * from './tree_leaf_read_request.js';
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
2
|
+
import { BufferReader, FieldReader } from '@aztec/foundation/serialize';
|
|
3
|
+
import { KeyValidationRequest } from './key_validation_request.js';
|
|
4
|
+
/**
|
|
5
|
+
* Request for validating keys used in the app, along with a domain separator for the key type.
|
|
6
|
+
*/
|
|
7
|
+
export declare class KeyValidationRequestAndSeparator {
|
|
8
|
+
/** The key validation request. */
|
|
9
|
+
readonly request: KeyValidationRequest;
|
|
10
|
+
/** Domain separator for the key type, used along with sk_m to derive the sk_app stored in the request. */
|
|
11
|
+
readonly keyTypeDomainSeparator: Fr;
|
|
12
|
+
constructor(
|
|
13
|
+
/** The key validation request. */
|
|
14
|
+
request: KeyValidationRequest,
|
|
15
|
+
/** Domain separator for the key type, used along with sk_m to derive the sk_app stored in the request. */
|
|
16
|
+
keyTypeDomainSeparator: Fr);
|
|
17
|
+
toBuffer(): Buffer<ArrayBufferLike>;
|
|
18
|
+
static fromBuffer(buffer: Buffer | BufferReader): KeyValidationRequestAndSeparator;
|
|
19
|
+
toFields(): Fr[];
|
|
20
|
+
static fromFields(fields: Fr[] | FieldReader): KeyValidationRequestAndSeparator;
|
|
21
|
+
isEmpty(): boolean;
|
|
22
|
+
static empty(): KeyValidationRequestAndSeparator;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5X3ZhbGlkYXRpb25fcmVxdWVzdF9hbmRfc2VwYXJhdG9yLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMva2VybmVsL2hpbnRzL2tleV92YWxpZGF0aW9uX3JlcXVlc3RfYW5kX3NlcGFyYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQXFCLE1BQU0sNkJBQTZCLENBQUM7QUFFM0YsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFbkU7O0dBRUc7QUFDSCxxQkFBYSxnQ0FBZ0M7SUFFekMsa0NBQWtDO2FBQ2xCLE9BQU8sRUFBRSxvQkFBb0I7SUFDN0MsMEdBQTBHO2FBQzFGLHNCQUFzQixFQUFFLEVBQUU7SUFKNUM7SUFDRSxrQ0FBa0M7SUFDbEIsT0FBTyxFQUFFLG9CQUFvQjtJQUM3QywwR0FBMEc7SUFDMUYsc0JBQXNCLEVBQUUsRUFBRSxFQUN4QztJQUVKLFFBQVEsNEJBRVA7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsWUFBWSxvQ0FHOUM7SUFFRCxRQUFRLElBQUksRUFBRSxFQUFFLENBUWY7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsR0FBRyxXQUFXLEdBQUcsZ0NBQWdDLENBRzlFO0lBRUQsT0FBTyxZQUVOO0lBRUQsTUFBTSxDQUFDLEtBQUsscUNBRVg7Q0FDRiJ9
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"key_validation_request_and_separator.d.ts","sourceRoot":"","sources":["../../../src/kernel/hints/key_validation_request_and_separator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAqB,MAAM,6BAA6B,CAAC;AAE3F,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAEnE;;GAEG;AACH,qBAAa,gCAAgC;IAEzC,kCAAkC;aAClB,OAAO,EAAE,oBAAoB;IAC7C,0GAA0G;aAC1F,sBAAsB,EAAE,EAAE;IAJ5C;IACE,kCAAkC;IAClB,OAAO,EAAE,oBAAoB;IAC7C,0GAA0G;IAC1F,sBAAsB,EAAE,EAAE,EACxC;IAEJ,QAAQ,4BAEP;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,oCAG9C;IAED,QAAQ,IAAI,EAAE,EAAE,CAQf;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW,GAAG,gCAAgC,CAG9E;IAED,OAAO,YAEN;IAED,MAAM,CAAC,KAAK,qCAEX;CACF"}
|
|
@@ -3,42 +3,39 @@ import { Fr } from '@aztec/foundation/curves/bn254';
|
|
|
3
3
|
import { BufferReader, FieldReader, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
4
4
|
import { KeyValidationRequest } from './key_validation_request.js';
|
|
5
5
|
/**
|
|
6
|
-
* Request for validating keys used in the app
|
|
7
|
-
*/ export class
|
|
6
|
+
* Request for validating keys used in the app, along with a domain separator for the key type.
|
|
7
|
+
*/ export class KeyValidationRequestAndSeparator {
|
|
8
8
|
request;
|
|
9
|
-
|
|
10
|
-
constructor(/** The key validation request. */ request, /**
|
|
11
|
-
* The generator index which can be used along with sk_m to derive the sk_app stored in the request.
|
|
12
|
-
* Note: This generator constrains that a correct key type gets validated in the kernel.
|
|
13
|
-
*/ skAppGenerator){
|
|
9
|
+
keyTypeDomainSeparator;
|
|
10
|
+
constructor(/** The key validation request. */ request, /** Domain separator for the key type, used along with sk_m to derive the sk_app stored in the request. */ keyTypeDomainSeparator){
|
|
14
11
|
this.request = request;
|
|
15
|
-
this.
|
|
12
|
+
this.keyTypeDomainSeparator = keyTypeDomainSeparator;
|
|
16
13
|
}
|
|
17
14
|
toBuffer() {
|
|
18
|
-
return serializeToBuffer(this.request, this.
|
|
15
|
+
return serializeToBuffer(this.request, this.keyTypeDomainSeparator);
|
|
19
16
|
}
|
|
20
17
|
static fromBuffer(buffer) {
|
|
21
18
|
const reader = BufferReader.asReader(buffer);
|
|
22
|
-
return new
|
|
19
|
+
return new KeyValidationRequestAndSeparator(reader.readObject(KeyValidationRequest), Fr.fromBuffer(reader));
|
|
23
20
|
}
|
|
24
21
|
toFields() {
|
|
25
22
|
const fields = [
|
|
26
23
|
...this.request.toFields(),
|
|
27
|
-
this.
|
|
24
|
+
this.keyTypeDomainSeparator
|
|
28
25
|
];
|
|
29
26
|
if (fields.length !== KEY_VALIDATION_REQUEST_AND_GENERATOR_LENGTH) {
|
|
30
|
-
throw new Error(`Invalid number of fields for
|
|
27
|
+
throw new Error(`Invalid number of fields for KeyValidationRequestAndSeparator. Expected ${KEY_VALIDATION_REQUEST_AND_GENERATOR_LENGTH}, got ${fields.length}`);
|
|
31
28
|
}
|
|
32
29
|
return fields;
|
|
33
30
|
}
|
|
34
31
|
static fromFields(fields) {
|
|
35
32
|
const reader = FieldReader.asReader(fields);
|
|
36
|
-
return new
|
|
33
|
+
return new KeyValidationRequestAndSeparator(KeyValidationRequest.fromFields(reader), reader.readField());
|
|
37
34
|
}
|
|
38
35
|
isEmpty() {
|
|
39
|
-
return this.request.isEmpty() && this.
|
|
36
|
+
return this.request.isEmpty() && this.keyTypeDomainSeparator.isZero();
|
|
40
37
|
}
|
|
41
38
|
static empty() {
|
|
42
|
-
return new
|
|
39
|
+
return new KeyValidationRequestAndSeparator(KeyValidationRequest.empty(), Fr.ZERO);
|
|
43
40
|
}
|
|
44
41
|
}
|