@aztec/stdlib 0.0.1-commit.8c0b8ff → 0.0.1-commit.8cb2d04d8
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 +191 -26
- package/dest/abi/abi.d.ts.map +1 -1
- package/dest/abi/abi.js +4 -45
- package/dest/abi/authorization_selector.d.ts +3 -6
- package/dest/abi/authorization_selector.d.ts.map +1 -1
- package/dest/abi/encoder.d.ts +1 -1
- package/dest/abi/encoder.d.ts.map +1 -1
- package/dest/abi/encoder.js +32 -6
- package/dest/abi/event_selector.d.ts +3 -6
- package/dest/abi/event_selector.d.ts.map +1 -1
- package/dest/abi/function_selector.d.ts +3 -6
- package/dest/abi/function_selector.d.ts.map +1 -1
- package/dest/abi/function_selector.js +1 -3
- package/dest/abi/note_selector.d.ts +3 -6
- package/dest/abi/note_selector.d.ts.map +1 -1
- package/dest/abi/note_selector.js +1 -3
- package/dest/avm/avm_accumulated_data.js +2 -2
- package/dest/avm/avm_circuit_public_inputs.js +2 -2
- package/dest/aztec-address/index.d.ts +3 -6
- package/dest/aztec-address/index.d.ts.map +1 -1
- package/dest/aztec-address/index.js +2 -4
- package/dest/block/block_data.d.ts +8 -8
- package/dest/block/block_data.d.ts.map +1 -1
- package/dest/block/block_data.js +2 -2
- package/dest/block/block_hash.d.ts +11 -10
- package/dest/block/block_hash.d.ts.map +1 -1
- package/dest/block/block_hash.js +10 -9
- package/dest/block/l2_block_info.d.ts +6 -5
- package/dest/block/l2_block_info.d.ts.map +1 -1
- package/dest/block/l2_block_info.js +6 -5
- package/dest/block/l2_block_source.d.ts +80 -3
- package/dest/block/l2_block_source.d.ts.map +1 -1
- package/dest/block/l2_block_source.js +1 -0
- package/dest/block/l2_block_stream/l2_tips_store_base.d.ts +1 -1
- package/dest/block/l2_block_stream/l2_tips_store_base.d.ts.map +1 -1
- package/dest/block/l2_block_stream/l2_tips_store_base.js +18 -5
- package/dest/block/test/l2_tips_store_test_suite.d.ts +1 -1
- package/dest/block/test/l2_tips_store_test_suite.d.ts.map +1 -1
- package/dest/block/test/l2_tips_store_test_suite.js +4 -3
- package/dest/checkpoint/checkpoint.d.ts +7 -1
- package/dest/checkpoint/checkpoint.d.ts.map +1 -1
- package/dest/checkpoint/checkpoint.js +9 -1
- package/dest/checkpoint/checkpoint_data.d.ts +71 -5
- package/dest/checkpoint/checkpoint_data.d.ts.map +1 -1
- package/dest/checkpoint/checkpoint_data.js +10 -0
- package/dest/config/chain-config.d.ts +1 -1
- package/dest/config/chain-config.d.ts.map +1 -1
- package/dest/config/chain-config.js +7 -1
- 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/pipelining-config.d.ts +19 -0
- package/dest/config/pipelining-config.d.ts.map +1 -0
- package/dest/config/pipelining-config.js +18 -0
- package/dest/config/sequencer-config.d.ts +4 -2
- package/dest/config/sequencer-config.d.ts.map +1 -1
- package/dest/config/sequencer-config.js +11 -3
- package/dest/contract/contract_address.d.ts +3 -3
- package/dest/contract/contract_address.js +3 -3
- package/dest/contract/contract_class_id.d.ts +2 -2
- package/dest/contract/contract_class_id.js +2 -2
- package/dest/contract/index.d.ts +1 -3
- package/dest/contract/index.d.ts.map +1 -1
- package/dest/contract/index.js +0 -2
- package/dest/contract/interfaces/contract_class.d.ts +3 -156
- package/dest/contract/interfaces/contract_class.d.ts.map +1 -1
- package/dest/contract/interfaces/contract_class.js +1 -28
- package/dest/contract/private_function.d.ts +1 -1
- package/dest/contract/private_function.d.ts.map +1 -1
- package/dest/contract/private_function.js +2 -4
- package/dest/epoch-helpers/index.d.ts +3 -1
- package/dest/epoch-helpers/index.d.ts.map +1 -1
- package/dest/epoch-helpers/index.js +3 -0
- package/dest/file-store/factory.d.ts +4 -3
- package/dest/file-store/factory.d.ts.map +1 -1
- package/dest/file-store/factory.js +2 -2
- package/dest/file-store/http.d.ts +9 -2
- package/dest/file-store/http.d.ts.map +1 -1
- package/dest/file-store/http.js +20 -9
- package/dest/file-store/index.d.ts +2 -1
- package/dest/file-store/index.d.ts.map +1 -1
- package/dest/gas/fee_math.d.ts +49 -0
- package/dest/gas/fee_math.d.ts.map +1 -0
- package/dest/gas/fee_math.js +80 -0
- package/dest/gas/gas_fees.d.ts +1 -1
- package/dest/gas/gas_fees.d.ts.map +1 -1
- package/dest/gas/gas_fees.js +10 -1
- package/dest/gas/index.d.ts +2 -1
- package/dest/gas/index.d.ts.map +1 -1
- package/dest/gas/index.js +1 -0
- package/dest/ha-signing/config.d.ts +136 -0
- package/dest/ha-signing/config.d.ts.map +1 -0
- package/dest/ha-signing/config.js +97 -0
- package/dest/ha-signing/index.d.ts +4 -0
- package/dest/ha-signing/index.d.ts.map +1 -0
- package/dest/ha-signing/index.js +3 -0
- package/dest/ha-signing/local_config.d.ts +63 -0
- package/dest/ha-signing/local_config.d.ts.map +1 -0
- package/dest/ha-signing/local_config.js +24 -0
- package/dest/ha-signing/types.d.ts +90 -0
- package/dest/ha-signing/types.d.ts.map +1 -0
- package/dest/ha-signing/types.js +39 -0
- package/dest/hash/hash.d.ts +16 -1
- package/dest/hash/hash.d.ts.map +1 -1
- package/dest/hash/hash.js +32 -0
- package/dest/interfaces/archiver.d.ts +1 -1
- package/dest/interfaces/archiver.d.ts.map +1 -1
- package/dest/interfaces/archiver.js +3 -1
- package/dest/interfaces/aztec-node-admin.d.ts +16 -17
- package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
- package/dest/interfaces/aztec-node-admin.js +3 -3
- package/dest/interfaces/aztec-node.d.ts +10 -1
- package/dest/interfaces/aztec-node.d.ts.map +1 -1
- package/dest/interfaces/aztec-node.js +2 -0
- package/dest/interfaces/l2_logs_source.d.ts +5 -3
- package/dest/interfaces/l2_logs_source.d.ts.map +1 -1
- package/dest/interfaces/merkle_tree_operations.d.ts +4 -3
- package/dest/interfaces/merkle_tree_operations.d.ts.map +1 -1
- package/dest/interfaces/prover-client.d.ts +1 -1
- package/dest/interfaces/prover-client.d.ts.map +1 -1
- package/dest/interfaces/prover-client.js +0 -3
- package/dest/interfaces/proving-job.d.ts +200 -200
- package/dest/interfaces/slasher.d.ts +1 -10
- package/dest/interfaces/slasher.d.ts.map +1 -1
- package/dest/interfaces/slasher.js +0 -2
- package/dest/interfaces/validator.d.ts +45 -36
- package/dest/interfaces/validator.d.ts.map +1 -1
- package/dest/interfaces/validator.js +2 -3
- package/dest/kernel/claimed_length_array.js +1 -1
- package/dest/kernel/hints/private_kernel_reset_hints.d.ts +1 -1
- package/dest/kernel/hints/private_kernel_reset_hints.d.ts.map +1 -1
- package/dest/kernel/padded_side_effects.js +1 -1
- package/dest/kernel/private_to_avm_accumulated_data.js +2 -2
- package/dest/kernel/private_to_public_accumulated_data.js +2 -2
- package/dest/kernel/private_to_rollup_accumulated_data.js +1 -1
- package/dest/kv-store/config.d.ts +17 -0
- package/dest/kv-store/config.d.ts.map +1 -0
- package/dest/kv-store/config.js +26 -0
- package/dest/kv-store/index.d.ts +2 -0
- package/dest/kv-store/index.d.ts.map +1 -0
- package/dest/kv-store/index.js +1 -0
- package/dest/l1-contracts/index.d.ts +2 -2
- package/dest/l1-contracts/index.d.ts.map +1 -1
- package/dest/l1-contracts/index.js +1 -1
- package/dest/logs/log_id.d.ts +1 -1
- package/dest/logs/log_id.d.ts.map +1 -1
- package/dest/logs/log_id.js +1 -2
- package/dest/logs/private_log.js +1 -1
- package/dest/logs/public_log.d.ts +1 -1
- package/dest/logs/public_log.d.ts.map +1 -1
- package/dest/logs/public_log.js +1 -7
- package/dest/logs/siloed_tag.d.ts +5 -7
- package/dest/logs/siloed_tag.d.ts.map +1 -1
- package/dest/logs/siloed_tag.js +4 -0
- package/dest/logs/tag.d.ts +5 -6
- package/dest/logs/tag.d.ts.map +1 -1
- package/dest/logs/tag.js +4 -0
- package/dest/messaging/l1_to_l2_message_source.d.ts +4 -2
- package/dest/messaging/l1_to_l2_message_source.d.ts.map +1 -1
- package/dest/p2p/block_proposal.d.ts +7 -9
- package/dest/p2p/block_proposal.d.ts.map +1 -1
- package/dest/p2p/block_proposal.js +5 -10
- package/dest/p2p/checkpoint_attestation.d.ts +4 -6
- package/dest/p2p/checkpoint_attestation.d.ts.map +1 -1
- package/dest/p2p/checkpoint_attestation.js +2 -7
- package/dest/p2p/checkpoint_proposal.d.ts +9 -11
- package/dest/p2p/checkpoint_proposal.d.ts.map +1 -1
- package/dest/p2p/checkpoint_proposal.js +6 -25
- package/dest/p2p/gossipable.d.ts +4 -4
- package/dest/p2p/gossipable.d.ts.map +1 -1
- package/dest/parity/parity_base_private_inputs.js +1 -1
- package/dest/proofs/chonk_proof.d.ts +46 -2
- package/dest/proofs/chonk_proof.d.ts.map +1 -1
- package/dest/proofs/chonk_proof.js +84 -15
- package/dest/rollup/base_rollup_hints.js +2 -2
- package/dest/rollup/block_headers_hash.d.ts +1 -1
- package/dest/rollup/block_headers_hash.d.ts.map +1 -1
- package/dest/rollup/block_headers_hash.js +8 -2
- package/dest/rollup/block_root_rollup_private_inputs.js +5 -5
- package/dest/rollup/checkpoint_rollup_public_inputs.js +1 -1
- package/dest/rollup/checkpoint_root_rollup_private_inputs.js +3 -3
- package/dest/rollup/root_rollup_public_inputs.js +1 -1
- package/dest/rollup/tree_snapshot_diff_hints.js +2 -2
- package/dest/slashing/index.d.ts +2 -3
- package/dest/slashing/index.d.ts.map +1 -1
- package/dest/slashing/index.js +1 -2
- package/dest/slashing/serialization.d.ts +2 -6
- package/dest/slashing/serialization.d.ts.map +1 -1
- package/dest/slashing/serialization.js +0 -60
- package/dest/slashing/types.d.ts +4 -90
- package/dest/slashing/types.d.ts.map +1 -1
- package/dest/slashing/types.js +0 -14
- package/dest/slashing/{tally.d.ts → votes.d.ts} +1 -1
- package/dest/slashing/{tally.d.ts.map → votes.d.ts.map} +1 -1
- package/dest/slashing/{tally.js → votes.js} +1 -1
- package/dest/tests/factories.d.ts +3 -10
- package/dest/tests/factories.d.ts.map +1 -1
- package/dest/tests/factories.js +11 -34
- package/dest/tests/mocks.d.ts +1 -1
- package/dest/tests/mocks.d.ts.map +1 -1
- package/dest/tests/mocks.js +12 -17
- package/dest/timetable/index.d.ts +51 -1
- package/dest/timetable/index.d.ts.map +1 -1
- package/dest/timetable/index.js +204 -14
- package/dest/trees/nullifier_leaf.d.ts +2 -1
- package/dest/trees/nullifier_leaf.d.ts.map +1 -1
- package/dest/trees/nullifier_leaf.js +3 -0
- package/dest/tx/block_header.d.ts +2 -2
- package/dest/tx/block_header.d.ts.map +1 -1
- package/dest/tx/block_header.js +1 -1
- package/dest/tx/fee_provider.d.ts +10 -0
- package/dest/tx/fee_provider.d.ts.map +1 -0
- package/dest/tx/fee_provider.js +1 -0
- package/dest/tx/global_variable_builder.d.ts +3 -4
- package/dest/tx/global_variable_builder.d.ts.map +1 -1
- package/dest/tx/index.d.ts +2 -1
- package/dest/tx/index.d.ts.map +1 -1
- package/dest/tx/index.js +1 -0
- package/dest/tx/indexed_tx_effect.d.ts +1 -1
- package/dest/tx/indexed_tx_effect.d.ts.map +1 -1
- package/dest/tx/indexed_tx_effect.js +1 -2
- package/dest/tx/protocol_contracts.js +2 -2
- package/dest/tx/simulated_tx.d.ts +151 -26
- package/dest/tx/simulated_tx.d.ts.map +1 -1
- package/dest/tx/tx.d.ts +3 -3
- package/dest/tx/tx.d.ts.map +1 -1
- package/dest/types/shared.d.ts +1 -10
- package/dest/types/shared.d.ts.map +1 -1
- package/dest/types/shared.js +0 -9
- package/dest/vks/verification_key.d.ts +2 -137
- package/dest/vks/verification_key.d.ts.map +1 -1
- package/dest/vks/verification_key.js +5 -126
- package/dest/vks/vk_data.js +1 -1
- package/dest/world-state/genesis_data.d.ts +11 -0
- package/dest/world-state/genesis_data.d.ts.map +1 -0
- package/dest/world-state/genesis_data.js +4 -0
- package/dest/world-state/index.d.ts +2 -1
- package/dest/world-state/index.d.ts.map +1 -1
- package/dest/world-state/index.js +1 -0
- package/package.json +11 -10
- package/src/abi/abi.ts +14 -67
- package/src/abi/authorization_selector.ts +2 -8
- package/src/abi/encoder.ts +42 -6
- package/src/abi/event_selector.ts +2 -8
- package/src/abi/function_selector.ts +3 -12
- package/src/abi/note_selector.ts +3 -12
- package/src/avm/avm_accumulated_data.ts +6 -6
- package/src/avm/avm_circuit_public_inputs.ts +4 -4
- package/src/aztec-address/index.ts +4 -10
- package/src/block/block_data.ts +3 -4
- package/src/block/block_hash.ts +21 -14
- package/src/block/l2_block_info.ts +8 -6
- package/src/block/l2_block_source.ts +10 -2
- package/src/block/l2_block_stream/l2_tips_store_base.ts +25 -13
- package/src/block/test/l2_tips_store_test_suite.ts +9 -2
- package/src/checkpoint/checkpoint.ts +11 -1
- package/src/checkpoint/checkpoint_data.ts +40 -4
- package/src/config/chain-config.ts +7 -1
- package/src/config/index.ts +1 -0
- package/src/config/pipelining-config.ts +31 -0
- package/src/config/sequencer-config.ts +17 -4
- package/src/contract/contract_address.ts +3 -3
- package/src/contract/contract_class_id.ts +2 -2
- package/src/contract/index.ts +0 -2
- package/src/contract/interfaces/contract_class.ts +2 -82
- package/src/contract/private_function.ts +3 -1
- package/src/epoch-helpers/index.ts +5 -0
- package/src/file-store/factory.ts +13 -4
- package/src/file-store/http.ts +29 -10
- package/src/file-store/index.ts +1 -0
- package/src/gas/README.md +31 -0
- package/src/gas/fee_math.ts +120 -0
- package/src/gas/gas_fees.ts +12 -4
- package/src/gas/index.ts +1 -0
- package/src/ha-signing/config.ts +156 -0
- package/src/ha-signing/index.ts +29 -0
- package/src/ha-signing/local_config.ts +46 -0
- package/src/ha-signing/types.ts +126 -0
- package/src/hash/hash.ts +27 -0
- package/src/interfaces/archiver.ts +3 -1
- package/src/interfaces/aztec-node-admin.ts +5 -7
- package/src/interfaces/aztec-node.ts +15 -0
- package/src/interfaces/l2_logs_source.ts +4 -1
- package/src/interfaces/merkle_tree_operations.ts +3 -2
- package/src/interfaces/prover-client.ts +2 -5
- package/src/interfaces/slasher.ts +0 -6
- package/src/interfaces/validator.ts +53 -44
- package/src/kernel/claimed_length_array.ts +2 -2
- package/src/kernel/hints/private_kernel_reset_hints.ts +2 -5
- package/src/kernel/hints/read_request_hints.ts +3 -3
- package/src/kernel/padded_side_effects.ts +3 -3
- package/src/kernel/private_to_avm_accumulated_data.ts +4 -4
- package/src/kernel/private_to_public_accumulated_data.ts +10 -10
- package/src/kernel/private_to_rollup_accumulated_data.ts +5 -5
- package/src/kv-store/config.ts +36 -0
- package/src/kv-store/index.ts +1 -0
- package/src/l1-contracts/index.ts +1 -1
- package/src/logs/log_id.ts +1 -2
- package/src/logs/private_log.ts +1 -1
- package/src/logs/public_log.ts +1 -11
- package/src/logs/siloed_tag.ts +8 -9
- package/src/logs/tag.ts +8 -8
- package/src/messaging/l1_to_l2_message_source.ts +3 -1
- package/src/p2p/block_proposal.ts +14 -10
- package/src/p2p/checkpoint_attestation.ts +5 -9
- package/src/p2p/checkpoint_proposal.ts +22 -37
- package/src/p2p/gossipable.ts +4 -4
- package/src/parity/parity_base_private_inputs.ts +1 -1
- package/src/proofs/chonk_proof.ts +90 -12
- package/src/rollup/base_rollup_hints.ts +2 -2
- package/src/rollup/block_headers_hash.ts +11 -2
- package/src/rollup/block_root_rollup_private_inputs.ts +8 -8
- package/src/rollup/checkpoint_rollup_public_inputs.ts +2 -2
- package/src/rollup/checkpoint_root_rollup_private_inputs.ts +4 -4
- package/src/rollup/root_rollup_public_inputs.ts +2 -2
- package/src/rollup/tree_snapshot_diff_hints.ts +5 -5
- package/src/slashing/index.ts +1 -2
- package/src/slashing/serialization.ts +1 -81
- package/src/slashing/types.ts +3 -35
- package/src/slashing/{tally.ts → votes.ts} +1 -1
- package/src/tests/factories.ts +5 -42
- package/src/tests/mocks.ts +14 -10
- package/src/timetable/index.ts +293 -13
- package/src/trees/nullifier_leaf.ts +4 -0
- package/src/tx/block_header.ts +2 -2
- package/src/tx/fee_provider.ts +10 -0
- package/src/tx/global_variable_builder.ts +2 -3
- package/src/tx/index.ts +1 -0
- package/src/tx/indexed_tx_effect.ts +1 -2
- package/src/tx/protocol_contracts.ts +2 -2
- package/src/tx/tx.ts +2 -2
- package/src/types/shared.ts +0 -10
- package/src/vks/verification_key.ts +5 -184
- package/src/vks/vk_data.ts +1 -1
- package/src/world-state/genesis_data.ts +15 -0
- package/src/world-state/index.ts +1 -0
- package/dest/abi/mocked_keys.d.ts +0 -2
- package/dest/abi/mocked_keys.d.ts.map +0 -1
- package/dest/abi/mocked_keys.js +0 -1
- package/dest/contract/private_function_membership_proof.d.ts +0 -32
- package/dest/contract/private_function_membership_proof.d.ts.map +0 -1
- package/dest/contract/private_function_membership_proof.js +0 -124
- package/dest/contract/utility_function_membership_proof.d.ts +0 -27
- package/dest/contract/utility_function_membership_proof.d.ts.map +0 -1
- package/dest/contract/utility_function_membership_proof.js +0 -87
- package/dest/l1-contracts/slash_factory.d.ts +0 -45
- package/dest/l1-contracts/slash_factory.d.ts.map +0 -1
- package/dest/l1-contracts/slash_factory.js +0 -158
- package/dest/slashing/empire.d.ts +0 -31
- package/dest/slashing/empire.d.ts.map +0 -1
- package/dest/slashing/empire.js +0 -87
- package/src/abi/mocked_keys.ts +0 -2
- package/src/contract/private_function_membership_proof.ts +0 -167
- package/src/contract/utility_function_membership_proof.ts +0 -118
- package/src/l1-contracts/slash_factory.ts +0 -180
- package/src/slashing/empire.ts +0 -104
package/src/hash/hash.ts
CHANGED
|
@@ -6,6 +6,21 @@ import type { EthAddress } from '@aztec/foundation/eth-address';
|
|
|
6
6
|
|
|
7
7
|
import { AztecAddress } from '../aztec-address/index.js';
|
|
8
8
|
|
|
9
|
+
/** Computes a Poseidon2 merkle tree internal node hash for append-only trees (note-hash, L1->L2, archive). */
|
|
10
|
+
export function computeMerkleHash(left: Fr, right: Fr): Promise<Fr> {
|
|
11
|
+
return poseidon2HashWithSeparator([left, right], DomainSeparator.MERKLE_HASH);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
/** Merkle-node hasher for the nullifier tree's sibling paths. */
|
|
15
|
+
export function computeNullifierMerkleHash(left: Fr, right: Fr): Promise<Fr> {
|
|
16
|
+
return poseidon2HashWithSeparator([left, right], DomainSeparator.NULLIFIER_MERKLE);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/** Merkle-node hasher for the public-data tree's sibling paths. */
|
|
20
|
+
export function computePublicDataMerkleHash(left: Fr, right: Fr): Promise<Fr> {
|
|
21
|
+
return poseidon2HashWithSeparator([left, right], DomainSeparator.PUBLIC_DATA_MERKLE);
|
|
22
|
+
}
|
|
23
|
+
|
|
9
24
|
/**
|
|
10
25
|
* Computes a hash of a given verification key.
|
|
11
26
|
* @param keyAsFields - The verification key as fields.
|
|
@@ -103,6 +118,18 @@ export function computeLogTag(rawTag: number | bigint | boolean | Fr | Buffer, d
|
|
|
103
118
|
return poseidon2HashWithSeparator([new Fr(rawTag)], domSep);
|
|
104
119
|
}
|
|
105
120
|
|
|
121
|
+
/**
|
|
122
|
+
* Computes the commitment of a private event from its preimage.
|
|
123
|
+
* @param randomness - Random value emitted alongside the event to prevent preimage brute-forcing.
|
|
124
|
+
* @param eventSelector - Event selector as an Fr.
|
|
125
|
+
* @param content - Serialized event content.
|
|
126
|
+
*
|
|
127
|
+
* @dev Must match the implementation in aztec-nr/aztec/src/event/event_interface.nr > compute_private_serialized_event_commitment
|
|
128
|
+
*/
|
|
129
|
+
export function computePrivateEventCommitment(randomness: Fr, eventSelector: Fr, content: Fr[]): Promise<Fr> {
|
|
130
|
+
return poseidon2HashWithSeparator([randomness, eventSelector, ...content], DomainSeparator.EVENT_COMMITMENT);
|
|
131
|
+
}
|
|
132
|
+
|
|
106
133
|
export function computeSiloedPrivateLogFirstField(contract: AztecAddress, field: Fr): Promise<Fr> {
|
|
107
134
|
return poseidon2HashWithSeparator([contract, field], DomainSeparator.PRIVATE_LOG_FIRST_FIELD);
|
|
108
135
|
}
|
|
@@ -11,7 +11,7 @@ import { L2Block } from '../block/l2_block.js';
|
|
|
11
11
|
import { type L2BlockSource, L2TipsSchema } from '../block/l2_block_source.js';
|
|
12
12
|
import { ValidateCheckpointResultSchema } from '../block/validate_block_result.js';
|
|
13
13
|
import { Checkpoint } from '../checkpoint/checkpoint.js';
|
|
14
|
-
import { CheckpointDataSchema } from '../checkpoint/checkpoint_data.js';
|
|
14
|
+
import { CheckpointDataSchema, ProposedCheckpointDataSchema } from '../checkpoint/checkpoint_data.js';
|
|
15
15
|
import { PublishedCheckpoint } from '../checkpoint/published_checkpoint.js';
|
|
16
16
|
import {
|
|
17
17
|
ContractClassPublicSchema,
|
|
@@ -150,6 +150,8 @@ export const ArchiverApiSchema: ApiSchemaFor<ArchiverApi> = {
|
|
|
150
150
|
.args()
|
|
151
151
|
.returns(z.object({ genesisArchiveRoot: schemas.Fr })),
|
|
152
152
|
getL1Timestamp: z.function().args().returns(schemas.BigInt.optional()),
|
|
153
|
+
getProposedCheckpoint: z.function().args().returns(ProposedCheckpointDataSchema.optional()),
|
|
154
|
+
getProposedCheckpointOnly: z.function().args().returns(ProposedCheckpointDataSchema.optional()),
|
|
153
155
|
syncImmediate: z.function().args().returns(z.void()),
|
|
154
156
|
isPendingChainInvalid: z.function().args().returns(z.boolean()),
|
|
155
157
|
getPendingChainValidationStatus: z.function().args().returns(ValidateCheckpointResultSchema),
|
|
@@ -3,7 +3,8 @@ import { createSafeJsonRpcClient, defaultFetch } from '@aztec/foundation/json-rp
|
|
|
3
3
|
import { z } from 'zod';
|
|
4
4
|
|
|
5
5
|
import type { ApiSchemaFor } from '../schemas/schemas.js';
|
|
6
|
-
import {
|
|
6
|
+
import { optional } from '../schemas/schemas.js';
|
|
7
|
+
import { type Offense, OffenseSchema } from '../slashing/index.js';
|
|
7
8
|
import { type ComponentsVersions, getVersioningResponseHandler } from '../versioning/index.js';
|
|
8
9
|
import { type ArchiverSpecificConfig, ArchiverSpecificConfigSchema } from './archiver.js';
|
|
9
10
|
import { type SequencerConfig, SequencerConfigSchema } from './configs.js';
|
|
@@ -36,8 +37,9 @@ export interface AztecNodeAdmin {
|
|
|
36
37
|
* Pauses syncing and rolls back the database to the target L2 block number.
|
|
37
38
|
* @param targetBlockNumber - The block number to roll back to.
|
|
38
39
|
* @param force - If true, clears the world state db and p2p dbs if rolling back to behind the finalized block.
|
|
40
|
+
* @param resumeSync - If true (default), resumes archiver and world state sync after rollback.
|
|
39
41
|
*/
|
|
40
|
-
rollbackTo(targetBlockNumber: number, force?: boolean): Promise<void>;
|
|
42
|
+
rollbackTo(targetBlockNumber: number, force?: boolean, resumeSync?: boolean): Promise<void>;
|
|
41
43
|
|
|
42
44
|
/** Pauses archiver and world state syncing. */
|
|
43
45
|
pauseSync(): Promise<void>;
|
|
@@ -45,9 +47,6 @@ export interface AztecNodeAdmin {
|
|
|
45
47
|
/** Resumes archiver and world state syncing. */
|
|
46
48
|
resumeSync(): Promise<void>;
|
|
47
49
|
|
|
48
|
-
/** Returns all monitored payloads by the slasher for the current round. */
|
|
49
|
-
getSlashPayloads(): Promise<SlashPayloadRound[]>;
|
|
50
|
-
|
|
51
50
|
/** Returns all offenses applicable for the given round. */
|
|
52
51
|
getSlashOffenses(round: bigint | 'all' | 'current'): Promise<Offense[]>;
|
|
53
52
|
|
|
@@ -100,10 +99,9 @@ export const AztecNodeAdminApiSchema: ApiSchemaFor<AztecNodeAdmin> = {
|
|
|
100
99
|
getConfig: z.function().returns(AztecNodeAdminConfigSchema),
|
|
101
100
|
setConfig: z.function().args(AztecNodeAdminConfigSchema.partial()).returns(z.void()),
|
|
102
101
|
startSnapshotUpload: z.function().args(z.string()).returns(z.void()),
|
|
103
|
-
rollbackTo: z.function().args(z.number()).returns(z.void()),
|
|
102
|
+
rollbackTo: z.function().args(z.number(), optional(z.boolean()), optional(z.boolean())).returns(z.void()),
|
|
104
103
|
pauseSync: z.function().returns(z.void()),
|
|
105
104
|
resumeSync: z.function().returns(z.void()),
|
|
106
|
-
getSlashPayloads: z.function().returns(z.array(SlashPayloadRoundSchema)),
|
|
107
105
|
getSlashOffenses: z
|
|
108
106
|
.function()
|
|
109
107
|
.args(z.union([z.bigint(), z.literal('all'), z.literal('current')]))
|
|
@@ -37,6 +37,7 @@ import {
|
|
|
37
37
|
type ProtocolContractAddresses,
|
|
38
38
|
ProtocolContractAddressesSchema,
|
|
39
39
|
} from '../contract/index.js';
|
|
40
|
+
import { ManaUsageEstimate } from '../gas/fee_math.js';
|
|
40
41
|
import { GasFees } from '../gas/gas_fees.js';
|
|
41
42
|
import { SiloedTag, Tag, TxScopedL2Log } from '../logs/index.js';
|
|
42
43
|
import { type LogFilter, LogFilterSchema } from '../logs/log_filter.js';
|
|
@@ -272,6 +273,15 @@ export interface AztecNode
|
|
|
272
273
|
*/
|
|
273
274
|
getCurrentMinFees(): Promise<GasFees>;
|
|
274
275
|
|
|
276
|
+
/**
|
|
277
|
+
* Returns predicted min fees for the current slot and next N slots.
|
|
278
|
+
* Each entry accounts for the L1 gas oracle transition and congestion growth based on the
|
|
279
|
+
* given mana usage estimate. Defaults to target usage (steady state).
|
|
280
|
+
* @param manaUsage - Expected mana usage per checkpoint (none, target, or limit).
|
|
281
|
+
* @returns An array of GasFees, one per slot in the prediction window.
|
|
282
|
+
*/
|
|
283
|
+
getPredictedMinFees(manaUsage?: ManaUsageEstimate): Promise<GasFees[]>;
|
|
284
|
+
|
|
275
285
|
/**
|
|
276
286
|
* Method to fetch the current max priority fee of txs in the mempool.
|
|
277
287
|
* @returns The current max priority fees.
|
|
@@ -578,6 +588,11 @@ export const AztecNodeApiSchema: ApiSchemaFor<AztecNode> = {
|
|
|
578
588
|
|
|
579
589
|
getCurrentMinFees: z.function().returns(GasFees.schema),
|
|
580
590
|
|
|
591
|
+
getPredictedMinFees: z
|
|
592
|
+
.function()
|
|
593
|
+
.args(optional(z.nativeEnum(ManaUsageEstimate)))
|
|
594
|
+
.returns(z.array(GasFees.schema)),
|
|
595
|
+
|
|
581
596
|
getMaxPriorityFees: z.function().returns(GasFees.schema),
|
|
582
597
|
|
|
583
598
|
getNodeVersion: z.function().returns(z.string()),
|
|
@@ -16,10 +16,11 @@ export interface L2LogsSource {
|
|
|
16
16
|
* array implies no logs match that tag.
|
|
17
17
|
* @param tags - The tags to search for.
|
|
18
18
|
* @param page - The page number (0-indexed) for pagination.
|
|
19
|
+
* @param upToBlockNumber - If set, only return logs from blocks up to and including this block number.
|
|
19
20
|
* @returns An array of log arrays, one per tag. Returns at most 10 logs per tag per page. If 10 logs are returned
|
|
20
21
|
* for a tag, the caller should fetch the next page to check for more logs.
|
|
21
22
|
*/
|
|
22
|
-
getPrivateLogsByTags(tags: SiloedTag[], page?: number): Promise<TxScopedL2Log[][]>;
|
|
23
|
+
getPrivateLogsByTags(tags: SiloedTag[], page?: number, upToBlockNumber?: BlockNumber): Promise<TxScopedL2Log[][]>;
|
|
23
24
|
|
|
24
25
|
/**
|
|
25
26
|
* Gets public logs that match any of the `tags` from the specified contract. For each tag, an array of matching
|
|
@@ -27,6 +28,7 @@ export interface L2LogsSource {
|
|
|
27
28
|
* @param contractAddress - The contract address to search logs for.
|
|
28
29
|
* @param tags - The tags to search for.
|
|
29
30
|
* @param page - The page number (0-indexed) for pagination.
|
|
31
|
+
* @param upToBlockNumber - If set, only return logs from blocks up to and including this block number.
|
|
30
32
|
* @returns An array of log arrays, one per tag. Returns at most 10 logs per tag per page. If 10 logs are returned
|
|
31
33
|
* for a tag, the caller should fetch the next page to check for more logs.
|
|
32
34
|
*/
|
|
@@ -34,6 +36,7 @@ export interface L2LogsSource {
|
|
|
34
36
|
contractAddress: AztecAddress,
|
|
35
37
|
tags: Tag[],
|
|
36
38
|
page?: number,
|
|
39
|
+
upToBlockNumber?: BlockNumber,
|
|
37
40
|
): Promise<TxScopedL2Log[][]>;
|
|
38
41
|
|
|
39
42
|
/**
|
|
@@ -3,6 +3,7 @@ import type { Fr } from '@aztec/foundation/curves/bn254';
|
|
|
3
3
|
import { createLogger } from '@aztec/foundation/log';
|
|
4
4
|
import { type IndexedTreeLeafPreimage, SiblingPath } from '@aztec/foundation/trees';
|
|
5
5
|
|
|
6
|
+
import type { BlockHash } from '../block/block_hash.js';
|
|
6
7
|
import type { MerkleTreeId, TreeHeights } from '../trees/merkle_tree_id.js';
|
|
7
8
|
import type { NullifierLeaf } from '../trees/nullifier_leaf.js';
|
|
8
9
|
import type { PublicDataTreeLeaf } from '../trees/public_data_leaf.js';
|
|
@@ -99,7 +100,7 @@ type LeafTypes = {
|
|
|
99
100
|
[MerkleTreeId.NOTE_HASH_TREE]: Fr;
|
|
100
101
|
[MerkleTreeId.PUBLIC_DATA_TREE]: Buffer;
|
|
101
102
|
[MerkleTreeId.L1_TO_L2_MESSAGE_TREE]: Fr;
|
|
102
|
-
[MerkleTreeId.ARCHIVE]:
|
|
103
|
+
[MerkleTreeId.ARCHIVE]: BlockHash;
|
|
103
104
|
};
|
|
104
105
|
|
|
105
106
|
type LeafValueTypes = {
|
|
@@ -107,7 +108,7 @@ type LeafValueTypes = {
|
|
|
107
108
|
[MerkleTreeId.NOTE_HASH_TREE]: Fr;
|
|
108
109
|
[MerkleTreeId.PUBLIC_DATA_TREE]: PublicDataTreeLeaf;
|
|
109
110
|
[MerkleTreeId.L1_TO_L2_MESSAGE_TREE]: Fr;
|
|
110
|
-
[MerkleTreeId.ARCHIVE]:
|
|
111
|
+
[MerkleTreeId.ARCHIVE]: BlockHash;
|
|
111
112
|
};
|
|
112
113
|
|
|
113
114
|
export type MerkleTreeLeafType<ID extends MerkleTreeId> = LeafTypes[ID];
|
|
@@ -71,7 +71,7 @@ export const proverConfigMappings: ConfigMappingsType<ProverConfig> = {
|
|
|
71
71
|
},
|
|
72
72
|
proverId: {
|
|
73
73
|
env: 'PROVER_ID',
|
|
74
|
-
parseEnv: (val
|
|
74
|
+
parseEnv: (val: string) => parseProverId(val),
|
|
75
75
|
description: 'Hex value that identifies the prover. Defaults to the address used for submitting proofs if not set.',
|
|
76
76
|
},
|
|
77
77
|
proverTestDelayType: {
|
|
@@ -117,10 +117,7 @@ export const proverConfigMappings: ConfigMappingsType<ProverConfig> = {
|
|
|
117
117
|
},
|
|
118
118
|
};
|
|
119
119
|
|
|
120
|
-
function parseProverId(str
|
|
121
|
-
if (!str) {
|
|
122
|
-
return undefined;
|
|
123
|
-
}
|
|
120
|
+
function parseProverId(str: string) {
|
|
124
121
|
return EthAddress.fromString(str);
|
|
125
122
|
}
|
|
126
123
|
|
|
@@ -3,12 +3,8 @@ import { schemas, zodFor } from '@aztec/foundation/schemas';
|
|
|
3
3
|
|
|
4
4
|
import { z } from 'zod';
|
|
5
5
|
|
|
6
|
-
export type SlasherClientType = 'empire' | 'tally';
|
|
7
|
-
|
|
8
6
|
export interface SlasherConfig {
|
|
9
7
|
slashOverridePayload?: EthAddress;
|
|
10
|
-
slashMinPenaltyPercentage: number;
|
|
11
|
-
slashMaxPenaltyPercentage: number;
|
|
12
8
|
slashSelfAllowed?: boolean; // Whether to allow slashes to own validators
|
|
13
9
|
slashValidatorsAlways: EthAddress[]; // Array of validator addresses
|
|
14
10
|
slashValidatorsNever: EthAddress[]; // Array of validator addresses
|
|
@@ -32,8 +28,6 @@ export interface SlasherConfig {
|
|
|
32
28
|
export const SlasherConfigSchema = zodFor<SlasherConfig>()(
|
|
33
29
|
z.object({
|
|
34
30
|
slashOverridePayload: schemas.EthAddress.optional(),
|
|
35
|
-
slashMinPenaltyPercentage: z.number(),
|
|
36
|
-
slashMaxPenaltyPercentage: z.number(),
|
|
37
31
|
slashValidatorsAlways: z.array(schemas.EthAddress),
|
|
38
32
|
slashValidatorsNever: z.array(schemas.EthAddress),
|
|
39
33
|
slashPrunePenalty: schemas.BigInt,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { CheckpointNumber, SlotNumber } from '@aztec/foundation/branded-types';
|
|
2
2
|
import type { SecretValue } from '@aztec/foundation/config';
|
|
3
3
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
4
4
|
import type { EthAddress } from '@aztec/foundation/eth-address';
|
|
@@ -9,69 +9,71 @@ import type {
|
|
|
9
9
|
BlockProposal,
|
|
10
10
|
BlockProposalOptions,
|
|
11
11
|
CheckpointAttestation,
|
|
12
|
-
CheckpointLastBlockData,
|
|
13
12
|
CheckpointProposal,
|
|
14
13
|
CheckpointProposalOptions,
|
|
15
14
|
} from '@aztec/stdlib/p2p';
|
|
16
15
|
import type { CheckpointHeader } from '@aztec/stdlib/rollup';
|
|
17
16
|
import type { BlockHeader, Tx } from '@aztec/stdlib/tx';
|
|
18
|
-
import { type ValidatorHASignerConfig, ValidatorHASignerConfigSchema } from '@aztec/validator-ha-signer/config';
|
|
19
17
|
|
|
20
18
|
import type { PeerId } from '@libp2p/interface';
|
|
21
19
|
import { z } from 'zod';
|
|
22
20
|
|
|
23
21
|
import type { CommitteeAttestationsAndSigners } from '../block/index.js';
|
|
22
|
+
import {
|
|
23
|
+
type LocalSignerConfig,
|
|
24
|
+
LocalSignerConfigSchema,
|
|
25
|
+
type ValidatorHASignerConfig,
|
|
26
|
+
ValidatorHASignerConfigSchema,
|
|
27
|
+
} from '../ha-signing/index.js';
|
|
24
28
|
import { AllowedElementSchema } from './allowed_element.js';
|
|
25
29
|
|
|
26
30
|
/**
|
|
27
31
|
* Validator client configuration
|
|
28
32
|
*/
|
|
29
|
-
export type ValidatorClientConfig = ValidatorHASignerConfig &
|
|
30
|
-
|
|
31
|
-
|
|
33
|
+
export type ValidatorClientConfig = ValidatorHASignerConfig &
|
|
34
|
+
LocalSignerConfig & {
|
|
35
|
+
/** The private keys of the validators participating in attestation duties */
|
|
36
|
+
validatorPrivateKeys?: SecretValue<`0x${string}`[]>;
|
|
32
37
|
|
|
33
|
-
|
|
34
|
-
|
|
38
|
+
/** The addresses of the validators to use with remote signers */
|
|
39
|
+
validatorAddresses?: EthAddress[];
|
|
35
40
|
|
|
36
|
-
|
|
37
|
-
|
|
41
|
+
/** Do not run the validator */
|
|
42
|
+
disableValidator: boolean;
|
|
38
43
|
|
|
39
|
-
|
|
40
|
-
|
|
44
|
+
/** Temporarily disable these specific validator addresses */
|
|
45
|
+
disabledValidators: EthAddress[];
|
|
41
46
|
|
|
42
|
-
|
|
43
|
-
|
|
47
|
+
/** Interval between polling for new attestations from peers */
|
|
48
|
+
attestationPollingIntervalMs: number;
|
|
44
49
|
|
|
45
|
-
|
|
46
|
-
|
|
50
|
+
/** Whether to always reexecute block proposals, even for non-validator nodes or when out of the current committee */
|
|
51
|
+
alwaysReexecuteBlockProposals?: boolean;
|
|
47
52
|
|
|
48
|
-
|
|
49
|
-
|
|
53
|
+
/** Whether to run in fisherman mode: validates all proposals and attestations but does not broadcast attestations or participate in consensus */
|
|
54
|
+
fishermanMode?: boolean;
|
|
50
55
|
|
|
51
|
-
|
|
52
|
-
|
|
56
|
+
/** Skip checkpoint proposal validation and always attest (default: false) */
|
|
57
|
+
skipCheckpointProposalValidation?: boolean;
|
|
53
58
|
|
|
54
|
-
|
|
55
|
-
|
|
59
|
+
/** Skip pushing re-executed blocks to archiver (default: false) */
|
|
60
|
+
skipPushProposedBlocksToArchiver?: boolean;
|
|
56
61
|
|
|
57
|
-
|
|
58
|
-
|
|
62
|
+
/** Agree to attest to equivocated checkpoint proposals (for testing purposes only) */
|
|
63
|
+
attestToEquivocatedProposals?: boolean;
|
|
59
64
|
|
|
60
|
-
|
|
61
|
-
|
|
65
|
+
/** Maximum L2 gas per block for validation. Proposals exceeding this limit are rejected. */
|
|
66
|
+
validateMaxL2BlockGas?: number;
|
|
62
67
|
|
|
63
|
-
|
|
64
|
-
|
|
68
|
+
/** Maximum DA gas per block for validation. Proposals exceeding this limit are rejected. */
|
|
69
|
+
validateMaxDABlockGas?: number;
|
|
65
70
|
|
|
66
|
-
|
|
67
|
-
|
|
71
|
+
/** Maximum transactions per block for validation. Proposals exceeding this limit are rejected. */
|
|
72
|
+
validateMaxTxsPerBlock?: number;
|
|
68
73
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
/** Maximum transactions per checkpoint for validation. Proposals exceeding this limit are rejected. */
|
|
73
|
-
validateMaxTxsPerCheckpoint?: number;
|
|
74
|
-
};
|
|
74
|
+
/** Maximum transactions per checkpoint for validation. Proposals exceeding this limit are rejected. */
|
|
75
|
+
validateMaxTxsPerCheckpoint?: number;
|
|
76
|
+
};
|
|
75
77
|
|
|
76
78
|
export type ValidatorClientFullConfig = ValidatorClientConfig &
|
|
77
79
|
Pick<SequencerConfig, 'txPublicSetupAllowListExtend' | 'broadcastInvalidBlockProposal'> &
|
|
@@ -87,12 +89,11 @@ export type ValidatorClientFullConfig = ValidatorClientConfig &
|
|
|
87
89
|
};
|
|
88
90
|
|
|
89
91
|
export const ValidatorClientConfigSchema = zodFor<Omit<ValidatorClientConfig, 'validatorPrivateKeys'>>()(
|
|
90
|
-
ValidatorHASignerConfigSchema.extend({
|
|
92
|
+
ValidatorHASignerConfigSchema.merge(LocalSignerConfigSchema).extend({
|
|
91
93
|
validatorAddresses: z.array(schemas.EthAddress).optional(),
|
|
92
94
|
disableValidator: z.boolean(),
|
|
93
95
|
disabledValidators: z.array(schemas.EthAddress),
|
|
94
96
|
attestationPollingIntervalMs: z.number().min(0),
|
|
95
|
-
validatorReexecute: z.boolean(),
|
|
96
97
|
alwaysReexecuteBlockProposals: z.boolean().optional(),
|
|
97
98
|
fishermanMode: z.boolean().optional(),
|
|
98
99
|
skipCheckpointProposalValidation: z.boolean().optional(),
|
|
@@ -116,8 +117,6 @@ export const ValidatorClientFullConfigSchema = zodFor<Omit<ValidatorClientFullCo
|
|
|
116
117
|
}),
|
|
117
118
|
);
|
|
118
119
|
|
|
119
|
-
export type CreateCheckpointProposalLastBlockData = Omit<CheckpointLastBlockData, 'txHashes'> & { txs: Tx[] };
|
|
120
|
-
|
|
121
120
|
export interface Validator {
|
|
122
121
|
start(): Promise<void>;
|
|
123
122
|
updateConfig(config: Partial<ValidatorClientFullConfig>): void;
|
|
@@ -125,6 +124,7 @@ export interface Validator {
|
|
|
125
124
|
// Block validation responsibilities
|
|
126
125
|
createBlockProposal(
|
|
127
126
|
blockHeader: BlockHeader,
|
|
127
|
+
checkpointNumber: CheckpointNumber,
|
|
128
128
|
indexWithinCheckpoint: number,
|
|
129
129
|
inHash: Fr,
|
|
130
130
|
archive: Fr,
|
|
@@ -137,8 +137,9 @@ export interface Validator {
|
|
|
137
137
|
createCheckpointProposal(
|
|
138
138
|
checkpointHeader: CheckpointHeader,
|
|
139
139
|
archive: Fr,
|
|
140
|
+
checkpointNumber: CheckpointNumber,
|
|
140
141
|
feeAssetPriceModifier: bigint,
|
|
141
|
-
|
|
142
|
+
lastBlockProposal: BlockProposal | undefined,
|
|
142
143
|
proposerAddress: EthAddress | undefined,
|
|
143
144
|
options: CheckpointProposalOptions,
|
|
144
145
|
): Promise<CheckpointProposal>;
|
|
@@ -162,15 +163,23 @@ export interface Validator {
|
|
|
162
163
|
broadcastBlockProposal(proposal: BlockProposal): Promise<void>;
|
|
163
164
|
|
|
164
165
|
/** Collect own attestations for a checkpoint proposal (used when skipping p2p attestation collection) */
|
|
165
|
-
collectOwnAttestations(
|
|
166
|
+
collectOwnAttestations(
|
|
167
|
+
proposal: CheckpointProposal,
|
|
168
|
+
checkpointNumber: CheckpointNumber,
|
|
169
|
+
): Promise<CheckpointAttestation[]>;
|
|
166
170
|
|
|
167
171
|
/** Collect attestations from the p2p network for a checkpoint proposal */
|
|
168
|
-
collectAttestations(
|
|
172
|
+
collectAttestations(
|
|
173
|
+
proposal: CheckpointProposal,
|
|
174
|
+
required: number,
|
|
175
|
+
deadline: Date,
|
|
176
|
+
checkpointNumber: CheckpointNumber,
|
|
177
|
+
): Promise<CheckpointAttestation[]>;
|
|
169
178
|
|
|
170
179
|
signAttestationsAndSigners(
|
|
171
180
|
attestationsAndSigners: CommitteeAttestationsAndSigners,
|
|
172
181
|
proposer: EthAddress,
|
|
173
182
|
slot: SlotNumber,
|
|
174
|
-
|
|
183
|
+
checkpointNumber: CheckpointNumber,
|
|
175
184
|
): Promise<Signature>;
|
|
176
185
|
}
|
|
@@ -25,7 +25,7 @@ export class ClaimedLengthArray<T extends Serializable, N extends number> {
|
|
|
25
25
|
arrayLength: N,
|
|
26
26
|
): ClaimedLengthArray<T, N> {
|
|
27
27
|
const reader = BufferReader.asReader(buffer);
|
|
28
|
-
const array = reader.readArray(arrayLength, deserializer)
|
|
28
|
+
const array = reader.readArray(arrayLength, deserializer);
|
|
29
29
|
const claimedLength = reader.readNumber();
|
|
30
30
|
return new ClaimedLengthArray(array, claimedLength);
|
|
31
31
|
}
|
|
@@ -42,7 +42,7 @@ export class ClaimedLengthArray<T extends Serializable, N extends number> {
|
|
|
42
42
|
arrayLength: N,
|
|
43
43
|
): ClaimedLengthArray<T, N> {
|
|
44
44
|
const reader = FieldReader.asReader(fields);
|
|
45
|
-
const array = reader.
|
|
45
|
+
const array = reader.readArray(arrayLength, deserializer);
|
|
46
46
|
const claimedLength = reader.readU32();
|
|
47
47
|
return new ClaimedLengthArray(array, claimedLength);
|
|
48
48
|
}
|
|
@@ -105,11 +105,8 @@ export class PrivateKernelResetHints<
|
|
|
105
105
|
fromBuffer: buf =>
|
|
106
106
|
nullifierReadRequestHintsFromBuffer(buf, numNullifierReadRequestPending, numNullifierReadRequestSettled),
|
|
107
107
|
}),
|
|
108
|
-
reader.readArray(numKeyValidationHints, KeyValidationHint)
|
|
109
|
-
reader.readArray(numTransientDataSquashingHints, TransientDataSquashingHint)
|
|
110
|
-
TransientDataSquashingHint,
|
|
111
|
-
TRANSIENT_DATA_HINTS_LEN
|
|
112
|
-
>,
|
|
108
|
+
reader.readArray(numKeyValidationHints, KeyValidationHint),
|
|
109
|
+
reader.readArray(numTransientDataSquashingHints, TransientDataSquashingHint),
|
|
113
110
|
);
|
|
114
111
|
}
|
|
115
112
|
}
|
|
@@ -158,11 +158,11 @@ export class ReadRequestResetHints<
|
|
|
158
158
|
> {
|
|
159
159
|
const reader = BufferReader.asReader(buffer);
|
|
160
160
|
return new ReadRequestResetHints(
|
|
161
|
-
reader.readArray(readRequestLen, ReadRequestAction)
|
|
162
|
-
reader.readArray(numPendingReads, PendingReadHint)
|
|
161
|
+
reader.readArray(readRequestLen, ReadRequestAction),
|
|
162
|
+
reader.readArray(numPendingReads, PendingReadHint),
|
|
163
163
|
reader.readArray(numSettledReads, {
|
|
164
164
|
fromBuffer: r => SettledReadHint.fromBuffer(r, treeHeight, leafPreimageFromBuffer),
|
|
165
|
-
})
|
|
165
|
+
}),
|
|
166
166
|
);
|
|
167
167
|
}
|
|
168
168
|
|
|
@@ -19,9 +19,9 @@ export class PaddedSideEffects {
|
|
|
19
19
|
static fromBuffer(buffer: Buffer | BufferReader) {
|
|
20
20
|
const reader = BufferReader.asReader(buffer);
|
|
21
21
|
return new PaddedSideEffects(
|
|
22
|
-
reader.
|
|
23
|
-
reader.
|
|
24
|
-
reader.
|
|
22
|
+
reader.readArray(MAX_NOTE_HASHES_PER_TX, Fr),
|
|
23
|
+
reader.readArray(MAX_NULLIFIERS_PER_TX, Fr),
|
|
24
|
+
reader.readArray(MAX_PRIVATE_LOGS_PER_TX, PrivateLog),
|
|
25
25
|
);
|
|
26
26
|
}
|
|
27
27
|
|
|
@@ -73,7 +73,7 @@ export class PrivateToAvmAccumulatedData {
|
|
|
73
73
|
return new this(
|
|
74
74
|
reader.readFieldArray(MAX_NOTE_HASHES_PER_TX),
|
|
75
75
|
reader.readFieldArray(MAX_NULLIFIERS_PER_TX),
|
|
76
|
-
reader.
|
|
76
|
+
reader.readArray(MAX_L2_TO_L1_MSGS_PER_TX, ScopedL2ToL1Message),
|
|
77
77
|
);
|
|
78
78
|
}
|
|
79
79
|
|
|
@@ -94,9 +94,9 @@ export class PrivateToAvmAccumulatedData {
|
|
|
94
94
|
static fromBuffer(buffer: Buffer | BufferReader) {
|
|
95
95
|
const reader = BufferReader.asReader(buffer);
|
|
96
96
|
return new PrivateToAvmAccumulatedData(
|
|
97
|
-
reader.
|
|
98
|
-
reader.
|
|
99
|
-
reader.
|
|
97
|
+
reader.readArray(MAX_NOTE_HASHES_PER_TX, Fr),
|
|
98
|
+
reader.readArray(MAX_NULLIFIERS_PER_TX, Fr),
|
|
99
|
+
reader.readArray(MAX_L2_TO_L1_MSGS_PER_TX, ScopedL2ToL1Message),
|
|
100
100
|
);
|
|
101
101
|
}
|
|
102
102
|
|
|
@@ -62,10 +62,10 @@ export class PrivateToPublicAccumulatedData {
|
|
|
62
62
|
return new this(
|
|
63
63
|
reader.readFieldArray(MAX_NOTE_HASHES_PER_TX),
|
|
64
64
|
reader.readFieldArray(MAX_NULLIFIERS_PER_TX),
|
|
65
|
-
reader.
|
|
66
|
-
reader.
|
|
67
|
-
reader.
|
|
68
|
-
reader.
|
|
65
|
+
reader.readArray(MAX_L2_TO_L1_MSGS_PER_TX, ScopedL2ToL1Message),
|
|
66
|
+
reader.readArray(MAX_PRIVATE_LOGS_PER_TX, PrivateLog),
|
|
67
|
+
reader.readArray(MAX_CONTRACT_CLASS_LOGS_PER_TX, ScopedLogHash),
|
|
68
|
+
reader.readArray(MAX_ENQUEUED_CALLS_PER_TX, PublicCallRequest),
|
|
69
69
|
);
|
|
70
70
|
}
|
|
71
71
|
|
|
@@ -76,12 +76,12 @@ export class PrivateToPublicAccumulatedData {
|
|
|
76
76
|
static fromBuffer(buffer: Buffer | BufferReader) {
|
|
77
77
|
const reader = BufferReader.asReader(buffer);
|
|
78
78
|
return new PrivateToPublicAccumulatedData(
|
|
79
|
-
reader.
|
|
80
|
-
reader.
|
|
81
|
-
reader.
|
|
82
|
-
reader.
|
|
83
|
-
reader.
|
|
84
|
-
reader.
|
|
79
|
+
reader.readArray(MAX_NOTE_HASHES_PER_TX, Fr),
|
|
80
|
+
reader.readArray(MAX_NULLIFIERS_PER_TX, Fr),
|
|
81
|
+
reader.readArray(MAX_L2_TO_L1_MSGS_PER_TX, ScopedL2ToL1Message),
|
|
82
|
+
reader.readArray(MAX_PRIVATE_LOGS_PER_TX, PrivateLog),
|
|
83
|
+
reader.readArray(MAX_CONTRACT_CLASS_LOGS_PER_TX, ScopedLogHash),
|
|
84
|
+
reader.readArray(MAX_ENQUEUED_CALLS_PER_TX, PublicCallRequest),
|
|
85
85
|
);
|
|
86
86
|
}
|
|
87
87
|
|
|
@@ -95,11 +95,11 @@ export class PrivateToRollupAccumulatedData {
|
|
|
95
95
|
static fromBuffer(buffer: Buffer | BufferReader): PrivateToRollupAccumulatedData {
|
|
96
96
|
const reader = BufferReader.asReader(buffer);
|
|
97
97
|
return new PrivateToRollupAccumulatedData(
|
|
98
|
-
reader.
|
|
99
|
-
reader.
|
|
100
|
-
reader.
|
|
101
|
-
reader.
|
|
102
|
-
reader.
|
|
98
|
+
reader.readArray(MAX_NOTE_HASHES_PER_TX, Fr),
|
|
99
|
+
reader.readArray(MAX_NULLIFIERS_PER_TX, Fr),
|
|
100
|
+
reader.readArray(MAX_L2_TO_L1_MSGS_PER_TX, ScopedL2ToL1Message),
|
|
101
|
+
reader.readArray(MAX_PRIVATE_LOGS_PER_TX, PrivateLog),
|
|
102
|
+
reader.readArray(MAX_CONTRACT_CLASS_LOGS_PER_TX, ScopedLogHash),
|
|
103
103
|
);
|
|
104
104
|
}
|
|
105
105
|
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { l1ContractAddressesMapping } from '@aztec/ethereum/l1-contract-addresses';
|
|
2
|
+
import { type ConfigMappingsType, getConfigFromMappings, numberConfigHelper } from '@aztec/foundation/config';
|
|
3
|
+
import type { EthAddress } from '@aztec/foundation/eth-address';
|
|
4
|
+
|
|
5
|
+
export type DataStoreConfig = {
|
|
6
|
+
dataDirectory?: string;
|
|
7
|
+
dataStoreMapSizeKb: number;
|
|
8
|
+
l1Contracts?: { rollupAddress: EthAddress };
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
export const dataConfigMappings: ConfigMappingsType<DataStoreConfig> = {
|
|
12
|
+
dataDirectory: {
|
|
13
|
+
env: 'DATA_DIRECTORY',
|
|
14
|
+
description: 'Optional dir to store data. If omitted will store in memory.',
|
|
15
|
+
},
|
|
16
|
+
dataStoreMapSizeKb: {
|
|
17
|
+
env: 'DATA_STORE_MAP_SIZE_KB',
|
|
18
|
+
description: 'The maximum possible size of a data store DB in KB. Can be overridden by component-specific options.',
|
|
19
|
+
...numberConfigHelper(128 * 1_024 * 1_024), // Defaulted to 128 GB
|
|
20
|
+
},
|
|
21
|
+
l1Contracts: {
|
|
22
|
+
description: 'The deployed L1 contract addresses',
|
|
23
|
+
nested: {
|
|
24
|
+
rollupAddress: l1ContractAddressesMapping.rollupAddress,
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Returns the archiver configuration from the environment variables.
|
|
31
|
+
* Note: If an environment variable is not set, the default value is used.
|
|
32
|
+
* @returns The archiver configuration.
|
|
33
|
+
*/
|
|
34
|
+
export function getDataConfigFromEnv(): DataStoreConfig {
|
|
35
|
+
return getConfigFromMappings<DataStoreConfig>(dataConfigMappings);
|
|
36
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './config.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
// No exports.
|
package/src/logs/log_id.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { INITIAL_L2_BLOCK_NUM } from '@aztec/constants';
|
|
2
2
|
import { toBufferBE } from '@aztec/foundation/bigint-buffer';
|
|
3
3
|
import { BlockNumber, BlockNumberSchema } from '@aztec/foundation/branded-types';
|
|
4
|
-
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
5
4
|
import { BufferReader } from '@aztec/foundation/serialize';
|
|
6
5
|
|
|
7
6
|
import { z } from 'zod';
|
|
@@ -83,7 +82,7 @@ export class LogId {
|
|
|
83
82
|
const reader = BufferReader.asReader(buffer);
|
|
84
83
|
|
|
85
84
|
const blockNumber = BlockNumber(reader.readNumber());
|
|
86
|
-
const blockHash =
|
|
85
|
+
const blockHash = BlockHash.fromBuffer(reader);
|
|
87
86
|
const txHash = reader.readObject(TxHash);
|
|
88
87
|
const txIndex = reader.readNumber();
|
|
89
88
|
const logIndex = reader.readNumber();
|
package/src/logs/private_log.ts
CHANGED
|
@@ -73,7 +73,7 @@ export class PrivateLog {
|
|
|
73
73
|
|
|
74
74
|
static fromBuffer(buffer: Buffer | BufferReader) {
|
|
75
75
|
const reader = BufferReader.asReader(buffer);
|
|
76
|
-
return new PrivateLog(reader.
|
|
76
|
+
return new PrivateLog(reader.readArray(PRIVATE_LOG_SIZE_IN_FIELDS, Fr), reader.readNumber());
|
|
77
77
|
}
|
|
78
78
|
|
|
79
79
|
static random(tag = Fr.random()) {
|