@aztec/stdlib 6.0.0-nightly.20260810 → 6.0.0-nightly.20260821
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 +4 -3
- package/dest/abi/abi.d.ts.map +1 -1
- package/dest/abi/abi.js +5 -1
- package/dest/abi/contract_artifact.d.ts +7 -2
- package/dest/abi/contract_artifact.d.ts.map +1 -1
- package/dest/abi/contract_artifact.js +18 -19
- package/dest/avm/avm.d.ts +3 -2
- package/dest/avm/avm.d.ts.map +1 -1
- package/dest/avm/avm.js +9 -3
- package/dest/avm/avm_proving_request.d.ts +70 -70
- package/dest/block/l2_block.d.ts +1 -2
- package/dest/block/l2_block.d.ts.map +1 -1
- package/dest/block/l2_block.js +2 -3
- package/dest/block/l2_block_source.d.ts +3 -6
- package/dest/block/l2_block_source.d.ts.map +1 -1
- package/dest/block/l2_block_stream/event_driven_l2_block_stream.d.ts +11 -20
- package/dest/block/l2_block_stream/event_driven_l2_block_stream.d.ts.map +1 -1
- package/dest/block/l2_block_stream/event_driven_l2_block_stream.js +12 -116
- package/dest/checkpoint/checkpoint_data.d.ts +14 -2
- package/dest/checkpoint/checkpoint_data.d.ts.map +1 -1
- package/dest/checkpoint/checkpoint_data.js +2 -1
- 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/previous_checkpoint_inbox_rolling_hash.d.ts +21 -0
- package/dest/checkpoint/previous_checkpoint_inbox_rolling_hash.d.ts.map +1 -0
- package/dest/checkpoint/previous_checkpoint_inbox_rolling_hash.js +34 -0
- package/dest/checkpoint/simulation_overrides.d.ts +2 -2
- package/dest/checkpoint/simulation_overrides.d.ts.map +1 -1
- package/dest/checkpoint/simulation_overrides.js +11 -8
- package/dest/config/network-consensus-config.d.ts +4 -3
- package/dest/config/network-consensus-config.d.ts.map +1 -1
- package/dest/config/network-consensus-config.js +9 -4
- package/dest/config/node-rpc-config.d.ts +13 -1
- package/dest/config/node-rpc-config.d.ts.map +1 -1
- package/dest/config/node-rpc-config.js +34 -1
- package/dest/deserialization/index.d.ts +17 -17
- package/dest/deserialization/index.d.ts.map +1 -1
- package/dest/deserialization/index.js +18 -18
- package/dest/gas/gas_settings.d.ts +17 -5
- package/dest/gas/gas_settings.d.ts.map +1 -1
- package/dest/gas/gas_settings.js +4 -4
- package/dest/gas/tx_gas_limits.d.ts +3 -4
- package/dest/gas/tx_gas_limits.d.ts.map +1 -1
- package/dest/gas/tx_gas_limits.js +4 -5
- package/dest/interfaces/archiver.d.ts +2 -2
- package/dest/interfaces/archiver.d.ts.map +1 -1
- package/dest/interfaces/archiver.js +32 -5
- package/dest/interfaces/aztec-node-admin.d.ts +2 -1
- package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
- package/dest/interfaces/aztec-node.d.ts +22 -4
- package/dest/interfaces/aztec-node.d.ts.map +1 -1
- package/dest/interfaces/aztec-node.js +11 -9
- package/dest/interfaces/block-builder.d.ts +11 -2
- package/dest/interfaces/block-builder.d.ts.map +1 -1
- package/dest/interfaces/configs.d.ts +7 -1
- package/dest/interfaces/configs.d.ts.map +1 -1
- package/dest/interfaces/configs.js +2 -1
- package/dest/interfaces/p2p.d.ts +18 -1
- package/dest/interfaces/p2p.d.ts.map +1 -1
- package/dest/interfaces/p2p.js +8 -0
- package/dest/interfaces/proving-job.d.ts +17 -42
- package/dest/interfaces/proving-job.d.ts.map +1 -1
- package/dest/interfaces/proving-job.js +16 -47
- package/dest/interfaces/server_circuit_prover.d.ts +8 -15
- package/dest/interfaces/server_circuit_prover.d.ts.map +1 -1
- package/dest/interfaces/validator.d.ts +7 -7
- package/dest/interfaces/validator.d.ts.map +1 -1
- package/dest/messaging/append_l1_to_l2_messages.d.ts +5 -5
- package/dest/messaging/append_l1_to_l2_messages.d.ts.map +1 -1
- package/dest/messaging/append_l1_to_l2_messages.js +4 -8
- package/dest/messaging/inbox_bucket.d.ts +77 -0
- package/dest/messaging/inbox_bucket.d.ts.map +1 -0
- package/dest/messaging/inbox_bucket.js +73 -0
- package/dest/messaging/inbox_consumption.d.ts +55 -0
- package/dest/messaging/inbox_consumption.d.ts.map +1 -0
- package/dest/messaging/inbox_consumption.js +53 -0
- package/dest/messaging/inbox_rolling_hash.d.ts +16 -0
- package/dest/messaging/inbox_rolling_hash.d.ts.map +1 -0
- package/dest/messaging/inbox_rolling_hash.js +23 -0
- package/dest/messaging/index.d.ts +6 -3
- package/dest/messaging/index.d.ts.map +1 -1
- package/dest/messaging/index.js +5 -2
- package/dest/messaging/l1_to_l2_message_bundle.d.ts +31 -0
- package/dest/messaging/l1_to_l2_message_bundle.d.ts.map +1 -0
- package/dest/messaging/l1_to_l2_message_bundle.js +51 -0
- package/dest/messaging/l1_to_l2_message_source.d.ts +44 -10
- package/dest/messaging/l1_to_l2_message_source.d.ts.map +1 -1
- package/dest/messaging/l1_to_l2_message_sponge.d.ts +40 -0
- package/dest/messaging/l1_to_l2_message_sponge.d.ts.map +1 -0
- package/dest/messaging/l1_to_l2_message_sponge.js +56 -0
- package/dest/noir/index.d.ts +3 -3
- package/dest/noir/index.d.ts.map +1 -1
- package/dest/p2p/block_proposal.d.ts +24 -9
- package/dest/p2p/block_proposal.d.ts.map +1 -1
- package/dest/p2p/block_proposal.js +42 -20
- package/dest/p2p/checkpoint_attestation.d.ts +1 -1
- package/dest/p2p/checkpoint_proposal.d.ts +13 -3
- package/dest/p2p/checkpoint_proposal.d.ts.map +1 -1
- package/dest/p2p/checkpoint_proposal.js +26 -8
- package/dest/p2p/consensus_payload.d.ts +1 -1
- package/dest/p2p/index.d.ts +2 -1
- package/dest/p2p/index.d.ts.map +1 -1
- package/dest/p2p/index.js +1 -0
- package/dest/p2p/validated_proposal.d.ts +35 -0
- package/dest/p2p/validated_proposal.d.ts.map +1 -0
- package/dest/p2p/validated_proposal.js +17 -0
- package/dest/p2p/wire_compat_fixtures.d.ts +7 -0
- package/dest/p2p/wire_compat_fixtures.d.ts.map +1 -0
- package/dest/p2p/wire_compat_fixtures.js +14 -0
- package/dest/parity/inbox_parity_private_inputs.d.ts +61 -0
- package/dest/parity/inbox_parity_private_inputs.d.ts.map +1 -0
- package/dest/parity/inbox_parity_private_inputs.js +79 -0
- package/dest/parity/index.d.ts +2 -3
- package/dest/parity/index.d.ts.map +1 -1
- package/dest/parity/index.js +1 -2
- package/dest/parity/parity_public_inputs.d.ts +15 -14
- package/dest/parity/parity_public_inputs.d.ts.map +1 -1
- package/dest/parity/parity_public_inputs.js +13 -15
- package/dest/proofs/proving_request_type.d.ts +11 -14
- package/dest/proofs/proving_request_type.d.ts.map +1 -1
- package/dest/proofs/proving_request_type.js +10 -13
- package/dest/rollup/block_constant_data.d.ts +8 -8
- package/dest/rollup/block_constant_data.js +4 -4
- package/dest/rollup/block_rollup_public_inputs.d.ts +18 -6
- package/dest/rollup/block_rollup_public_inputs.d.ts.map +1 -1
- package/dest/rollup/block_rollup_public_inputs.js +14 -7
- package/dest/rollup/block_root_rollup_private_inputs.d.ts +109 -113
- package/dest/rollup/block_root_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/block_root_rollup_private_inputs.js +79 -130
- package/dest/rollup/checkpoint_header.d.ts +14 -6
- package/dest/rollup/checkpoint_header.d.ts.map +1 -1
- package/dest/rollup/checkpoint_header.js +18 -14
- package/dest/rollup/checkpoint_rollup_public_inputs.d.ts +22 -2
- package/dest/rollup/checkpoint_rollup_public_inputs.d.ts.map +1 -1
- package/dest/rollup/checkpoint_rollup_public_inputs.js +14 -3
- package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts +27 -6
- package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/checkpoint_root_rollup_private_inputs.js +17 -4
- package/dest/rollup/root_rollup_public_inputs.d.ts +10 -2
- package/dest/rollup/root_rollup_public_inputs.d.ts.map +1 -1
- package/dest/rollup/root_rollup_public_inputs.js +9 -3
- package/dest/stats/stats.d.ts +2 -2
- package/dest/stats/stats.d.ts.map +1 -1
- package/dest/tests/factories.d.ts +7 -7
- package/dest/tests/factories.d.ts.map +1 -1
- package/dest/tests/factories.js +26 -22
- package/dest/tests/fixtures.d.ts +1 -1
- package/dest/tests/fixtures.d.ts.map +1 -1
- package/dest/tests/fixtures.js +2 -0
- package/dest/tests/mocks.d.ts +4 -2
- package/dest/tests/mocks.d.ts.map +1 -1
- package/dest/tests/mocks.js +4 -7
- package/dest/tx/state_reference.d.ts +5 -2
- package/dest/tx/state_reference.d.ts.map +1 -1
- package/dest/tx/state_reference.js +5 -5
- package/package.json +8 -8
- package/src/abi/abi.ts +7 -2
- package/src/abi/contract_artifact.ts +20 -23
- package/src/avm/avm.ts +11 -1
- package/src/block/l2_block.ts +2 -3
- package/src/block/l2_block_source.ts +2 -5
- package/src/block/l2_block_stream/event_driven_l2_block_stream.ts +17 -143
- package/src/checkpoint/checkpoint_data.ts +14 -1
- package/src/checkpoint/index.ts +1 -0
- package/src/checkpoint/previous_checkpoint_inbox_rolling_hash.ts +46 -0
- package/src/checkpoint/simulation_overrides.ts +11 -8
- package/src/config/network-consensus-config.ts +17 -4
- package/src/config/node-rpc-config.ts +51 -1
- package/src/deserialization/index.ts +18 -18
- package/src/gas/README.md +4 -3
- package/src/gas/gas_settings.ts +7 -3
- package/src/gas/tx_gas_limits.ts +4 -12
- package/src/interfaces/archiver.ts +19 -2
- package/src/interfaces/aztec-node.ts +33 -12
- package/src/interfaces/block-builder.ts +10 -1
- package/src/interfaces/configs.ts +6 -0
- package/src/interfaces/p2p.ts +21 -0
- package/src/interfaces/proving-job.ts +19 -70
- package/src/interfaces/server_circuit_prover.ts +13 -37
- package/src/interfaces/validator.ts +6 -5
- package/src/kernel/private_kernel_reset_dimensions.ts +1 -1
- package/src/messaging/append_l1_to_l2_messages.ts +5 -13
- package/src/messaging/inbox_bucket.ts +125 -0
- package/src/messaging/inbox_consumption.ts +74 -0
- package/src/messaging/inbox_rolling_hash.ts +24 -0
- package/src/messaging/index.ts +5 -2
- package/src/messaging/l1_to_l2_message_bundle.ts +65 -0
- package/src/messaging/l1_to_l2_message_source.ts +48 -10
- package/src/messaging/l1_to_l2_message_sponge.ts +69 -0
- package/src/noir/index.ts +1 -2
- package/src/p2p/block_proposal.ts +41 -28
- package/src/p2p/checkpoint_proposal.ts +31 -6
- package/src/p2p/index.ts +1 -0
- package/src/p2p/validated_proposal.ts +43 -0
- package/src/p2p/wire_compat_fixtures.ts +23 -0
- package/src/parity/inbox_parity_private_inputs.ts +116 -0
- package/src/parity/index.ts +1 -2
- package/src/parity/parity_public_inputs.ts +12 -14
- package/src/proofs/proving_request_type.ts +2 -5
- package/src/rollup/block_constant_data.ts +4 -4
- package/src/rollup/block_rollup_public_inputs.ts +14 -5
- package/src/rollup/block_root_rollup_private_inputs.ts +117 -153
- package/src/rollup/checkpoint_header.ts +17 -13
- package/src/rollup/checkpoint_rollup_public_inputs.ts +15 -0
- package/src/rollup/checkpoint_root_rollup_private_inputs.ts +16 -3
- package/src/rollup/root_rollup_public_inputs.ts +10 -0
- package/src/stats/stats.ts +4 -5
- package/src/tests/factories.ts +38 -32
- package/src/tests/fixtures.ts +3 -0
- package/src/tests/mocks.ts +6 -7
- package/src/tx/state_reference.ts +5 -12
- package/dest/messaging/in_hash.d.ts +0 -6
- package/dest/messaging/in_hash.d.ts.map +0 -1
- package/dest/messaging/in_hash.js +0 -10
- package/dest/messaging/inbox_leaf.d.ts +0 -25
- package/dest/messaging/inbox_leaf.d.ts.map +0 -1
- package/dest/messaging/inbox_leaf.js +0 -42
- package/dest/parity/parity_base_private_inputs.d.ts +0 -39
- package/dest/parity/parity_base_private_inputs.d.ts.map +0 -1
- package/dest/parity/parity_base_private_inputs.js +0 -51
- package/dest/parity/parity_root_private_inputs.d.ts +0 -39
- package/dest/parity/parity_root_private_inputs.d.ts.map +0 -1
- package/dest/parity/parity_root_private_inputs.js +0 -46
- package/src/messaging/in_hash.ts +0 -12
- package/src/messaging/inbox_leaf.ts +0 -44
- package/src/parity/parity_base_private_inputs.ts +0 -71
- package/src/parity/parity_root_private_inputs.ts +0 -64
package/dest/tests/factories.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { makeBlobAccumulator, makeFinalBlobAccumulator, makeFinalBlobBatchingChallenges, makeSpongeBlob } from '@aztec/blob-lib/testing';
|
|
2
|
-
import { ARCHIVE_HEIGHT, AVM_V2_PROOF_LENGTH_IN_FIELDS, CHONK_PROOF_LENGTH, CONTRACT_CLASS_LOG_SIZE_IN_FIELDS,
|
|
2
|
+
import { ARCHIVE_HEIGHT, AVM_V2_PROOF_LENGTH_IN_FIELDS, CHONK_PROOF_LENGTH, CONTRACT_CLASS_LOG_SIZE_IN_FIELDS, INBOX_PARITY_SIZE_SMALL, L1_TO_L2_MSG_TREE_HEIGHT, MAX_CHECKPOINTS_PER_EPOCH, MAX_CONTRACT_CLASS_LOGS_PER_TX, MAX_ENQUEUED_CALLS_PER_CALL, MAX_ENQUEUED_CALLS_PER_TX, MAX_KEY_VALIDATION_REQUESTS_PER_CALL, MAX_L1_TO_L2_MSGS_PER_BLOCK, MAX_L1_TO_L2_MSGS_PER_CHECKPOINT, MAX_L2_TO_L1_MSGS_PER_CALL, MAX_L2_TO_L1_MSGS_PER_TX, MAX_NOTE_HASHES_PER_CALL, MAX_NOTE_HASHES_PER_TX, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL, MAX_NULLIFIERS_PER_CALL, MAX_NULLIFIERS_PER_TX, MAX_NULLIFIER_READ_REQUESTS_PER_CALL, MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL, MAX_PRIVATE_LOGS_PER_CALL, MAX_PRIVATE_LOGS_PER_TX, MAX_PROCESSABLE_L2_GAS, MAX_PROTOCOL_CONTRACTS, MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX, MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX, NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, NOTE_HASH_SUBTREE_ROOT_SIBLING_PATH_LENGTH, NULLIFIER_SUBTREE_ROOT_SIBLING_PATH_LENGTH, NULLIFIER_TREE_HEIGHT, PRIVATE_LOG_SIZE_IN_FIELDS, PUBLIC_DATA_TREE_HEIGHT, RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, VK_TREE_HEIGHT } from '@aztec/constants';
|
|
3
3
|
import { makeTuple } from '@aztec/foundation/array';
|
|
4
4
|
import { BlockNumber, CheckpointNumber, SlotNumber } from '@aztec/foundation/branded-types';
|
|
5
5
|
import { compact } from '@aztec/foundation/collection';
|
|
@@ -34,10 +34,11 @@ import { AppTaggingSecret } from '../logs/app_tagging_secret.js';
|
|
|
34
34
|
import { ContractClassLog, ContractClassLogFields } from '../logs/index.js';
|
|
35
35
|
import { PrivateLog } from '../logs/private_log.js';
|
|
36
36
|
import { FlatPublicLogs, PublicLog } from '../logs/public_log.js';
|
|
37
|
+
import { L1ToL2MessageBundle } from '../messaging/l1_to_l2_message_bundle.js';
|
|
38
|
+
import { L1ToL2MessageSponge } from '../messaging/l1_to_l2_message_sponge.js';
|
|
37
39
|
import { CountedL2ToL1Message, L2ToL1Message, ScopedL2ToL1Message } from '../messaging/l2_to_l1_message.js';
|
|
38
|
-
import {
|
|
40
|
+
import { InboxParityPrivateInputs } from '../parity/inbox_parity_private_inputs.js';
|
|
39
41
|
import { ParityPublicInputs } from '../parity/parity_public_inputs.js';
|
|
40
|
-
import { ParityRootPrivateInputs } from '../parity/parity_root_private_inputs.js';
|
|
41
42
|
import { ProofData, ProofDataForFixedVk } from '../proofs/index.js';
|
|
42
43
|
import { Proof } from '../proofs/proof.js';
|
|
43
44
|
import { makeRecursiveProof } from '../proofs/recursive_proof.js';
|
|
@@ -45,7 +46,7 @@ import { PrivateBaseRollupHints, PublicBaseRollupHints } from '../rollup/base_ro
|
|
|
45
46
|
import { BlockConstantData } from '../rollup/block_constant_data.js';
|
|
46
47
|
import { BlockMergeRollupPrivateInputs } from '../rollup/block_merge_rollup_private_inputs.js';
|
|
47
48
|
import { BlockRollupPublicInputs } from '../rollup/block_rollup_public_inputs.js';
|
|
48
|
-
import {
|
|
49
|
+
import { BlockRootRollupPrivateInputs, BlockRootSingleTxRollupPrivateInputs } from '../rollup/block_root_rollup_private_inputs.js';
|
|
49
50
|
import { CheckpointConstantData } from '../rollup/checkpoint_constant_data.js';
|
|
50
51
|
import { CheckpointHeader } from '../rollup/checkpoint_header.js';
|
|
51
52
|
import { CheckpointRollupPublicInputs, FeeRecipient } from '../rollup/checkpoint_rollup_public_inputs.js';
|
|
@@ -117,8 +118,6 @@ function makePublicLog(seed) {
|
|
|
117
118
|
* Creates a default instance of gas settings. No seed value is used to ensure we allocate a sensible amount of gas for testing.
|
|
118
119
|
*/ export function makeGasSettings() {
|
|
119
120
|
return GasSettings.fallback({
|
|
120
|
-
// Arbitrary daGas pinned to the pre-existing fixture value so avm_inputs.testdata.bin (consumed by
|
|
121
|
-
// the C++ vm2 tests) stays byte-stable; teardown derives to the same values the old fallback produced.
|
|
122
121
|
gasLimits: new Gas(196_608, MAX_PROCESSABLE_L2_GAS),
|
|
123
122
|
maxFeesPerGas: new GasFees(10, 10)
|
|
124
123
|
});
|
|
@@ -398,19 +397,24 @@ function makeEpochConstantData(seed = 1) {
|
|
|
398
397
|
* @param blockNumber - The block number to use for generating the block merge or block root rollup circuit public inputs.
|
|
399
398
|
* @returns A block merge or block root rollup circuit public inputs.
|
|
400
399
|
*/ export function makeBlockRollupPublicInputs(seed = 0) {
|
|
401
|
-
return new BlockRollupPublicInputs(makeCheckpointConstantData(seed + 0x100), makeAppendOnlyTreeSnapshot(seed + 0x200), makeAppendOnlyTreeSnapshot(seed + 0x300), makeStateReference(seed + 0x400), makeStateReference(seed + 0x500), makeSpongeBlob(seed + 0x600), makeSpongeBlob(seed + 0x700), BigInt(seed + 0x800), fr(seed + 0x820),
|
|
400
|
+
return new BlockRollupPublicInputs(makeCheckpointConstantData(seed + 0x100), makeAppendOnlyTreeSnapshot(seed + 0x200), makeAppendOnlyTreeSnapshot(seed + 0x300), makeStateReference(seed + 0x400), makeStateReference(seed + 0x500), makeSpongeBlob(seed + 0x600), makeSpongeBlob(seed + 0x700), BigInt(seed + 0x800), fr(seed + 0x820), makeL1ToL2MessageSponge(seed + 0x835), makeL1ToL2MessageSponge(seed + 0x838), fr(seed + 0x840), fr(seed + 0x850), fr(seed + 0x860));
|
|
401
|
+
}
|
|
402
|
+
export function makeL1ToL2MessageSponge(seed = 0) {
|
|
403
|
+
return new L1ToL2MessageSponge(makeSpongeBlob(seed).sponge, seed % (INBOX_PARITY_SIZE_SMALL + 1));
|
|
402
404
|
}
|
|
403
405
|
export function makeCheckpointRollupPublicInputs(seed = 0) {
|
|
404
|
-
return new CheckpointRollupPublicInputs(makeEpochConstantData(seed), makeAppendOnlyTreeSnapshot(seed + 0x100), makeAppendOnlyTreeSnapshot(seed + 0x200), makeAppendOnlyTreeSnapshot(seed + 0x300), makeAppendOnlyTreeSnapshot(seed + 0x350), makeTuple(MAX_CHECKPOINTS_PER_EPOCH, ()=>fr(seed), 0x400), makeTuple(MAX_CHECKPOINTS_PER_EPOCH, ()=>makeFeeRecipient(seed), 0x500), makeBlobAccumulator(seed + 0x600), makeBlobAccumulator(seed + 0x700), makeFinalBlobBatchingChallenges(seed + 0x800));
|
|
406
|
+
return new CheckpointRollupPublicInputs(makeEpochConstantData(seed), makeAppendOnlyTreeSnapshot(seed + 0x100), makeAppendOnlyTreeSnapshot(seed + 0x200), makeAppendOnlyTreeSnapshot(seed + 0x300), makeAppendOnlyTreeSnapshot(seed + 0x350), fr(seed + 0x360), fr(seed + 0x370), makeTuple(MAX_CHECKPOINTS_PER_EPOCH, ()=>fr(seed), 0x400), makeTuple(MAX_CHECKPOINTS_PER_EPOCH, ()=>makeFeeRecipient(seed), 0x500), makeBlobAccumulator(seed + 0x600), makeBlobAccumulator(seed + 0x700), makeFinalBlobBatchingChallenges(seed + 0x800));
|
|
405
407
|
}
|
|
406
408
|
export function makeParityPublicInputs(seed = 0) {
|
|
407
|
-
return new ParityPublicInputs(new Fr(BigInt(seed +
|
|
408
|
-
}
|
|
409
|
-
export function makeParityBasePrivateInputs(seed = 0) {
|
|
410
|
-
return new ParityBasePrivateInputs(makeTuple(NUM_MSGS_PER_BASE_PARITY, fr, seed + 0x3000), new Fr(seed + 0x4000), new Fr(seed + 0x5000));
|
|
409
|
+
return new ParityPublicInputs(new Fr(BigInt(seed + 0x400)), new Fr(BigInt(seed + 0x500)), makeL1ToL2MessageSponge(seed + 0x580), new Fr(BigInt(seed + 0x800)));
|
|
411
410
|
}
|
|
412
|
-
export function
|
|
413
|
-
|
|
411
|
+
export function makeInboxParityPrivateInputs(seed = 0) {
|
|
412
|
+
const size = INBOX_PARITY_SIZE_SMALL;
|
|
413
|
+
const numMsgs = seed % (size + 1);
|
|
414
|
+
const messages = Array.from({
|
|
415
|
+
length: size
|
|
416
|
+
}, (_, i)=>i < numMsgs ? fr(i + seed + 0x3000) : Fr.ZERO);
|
|
417
|
+
return new InboxParityPrivateInputs(size, messages, numMsgs, new Fr(seed + 0x3500), new Fr(seed + 0x5000));
|
|
414
418
|
}
|
|
415
419
|
/**
|
|
416
420
|
* Makes root rollup public inputs.
|
|
@@ -418,7 +422,7 @@ export function makeParityRootPrivateInputs(seed = 0) {
|
|
|
418
422
|
* @param blockNumber - The block number to use in the global variables of a header.
|
|
419
423
|
* @returns A root rollup public inputs.
|
|
420
424
|
*/ export function makeRootRollupPublicInputs(seed = 0) {
|
|
421
|
-
return new RootRollupPublicInputs(fr(seed + 0x100), fr(seed + 0x200), fr(seed + 0x300), makeTuple(MAX_CHECKPOINTS_PER_EPOCH, ()=>fr(seed), 0x400), makeTuple(MAX_CHECKPOINTS_PER_EPOCH, ()=>makeFeeRecipient(seed), 0x500), makeEpochConstantData(seed + 0x600), makeFinalBlobAccumulator(seed + 0x700));
|
|
425
|
+
return new RootRollupPublicInputs(fr(seed + 0x100), fr(seed + 0x200), fr(seed + 0x300), fr(seed + 0x320), fr(seed + 0x340), makeTuple(MAX_CHECKPOINTS_PER_EPOCH, ()=>fr(seed), 0x400), makeTuple(MAX_CHECKPOINTS_PER_EPOCH, ()=>makeFeeRecipient(seed), 0x500), makeEpochConstantData(seed + 0x600), makeFinalBlobAccumulator(seed + 0x700));
|
|
422
426
|
}
|
|
423
427
|
export function makeBlockHeader(seed = 0, overrides = {}) {
|
|
424
428
|
return BlockHeader.from({
|
|
@@ -436,7 +440,7 @@ export function makeCheckpointHeader(seed = 0, overrides = {}) {
|
|
|
436
440
|
lastArchiveRoot: fr(seed + 0x100),
|
|
437
441
|
blockHeadersHash: fr(seed + 0x150),
|
|
438
442
|
blobsHash: fr(seed + 0x200),
|
|
439
|
-
|
|
443
|
+
inboxRollingHash: fr(seed + 0x215),
|
|
440
444
|
epochOutHash: fr(seed + 0x220),
|
|
441
445
|
slotNumber: SlotNumber(seed + 0x300),
|
|
442
446
|
timestamp: BigInt(seed + 0x400),
|
|
@@ -453,10 +457,10 @@ export function makeCheckpointHeader(seed = 0, overrides = {}) {
|
|
|
453
457
|
* @param seed - The seed to use for generating the state reference.
|
|
454
458
|
* @returns A state reference.
|
|
455
459
|
*/ export function makeStateReference(seed = 0) {
|
|
456
|
-
return new StateReference(makeAppendOnlyTreeSnapshot(
|
|
460
|
+
return new StateReference(makeAppendOnlyTreeSnapshot(MAX_L1_TO_L2_MSGS_PER_CHECKPOINT * seed), makePartialStateReference(seed + 1));
|
|
457
461
|
}
|
|
458
462
|
function makeTreeSnapshots(seed = 0) {
|
|
459
|
-
return new TreeSnapshots(makeAppendOnlyTreeSnapshot(seed *
|
|
463
|
+
return new TreeSnapshots(makeAppendOnlyTreeSnapshot(seed * MAX_L1_TO_L2_MSGS_PER_CHECKPOINT), makeAppendOnlyTreeSnapshot((seed + 0x10) * MAX_NOTE_HASHES_PER_TX), makeAppendOnlyTreeSnapshot((seed + 0x20) * MAX_NULLIFIERS_PER_TX), makeAppendOnlyTreeSnapshot((seed + 0x30) * MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX));
|
|
460
464
|
}
|
|
461
465
|
/**
|
|
462
466
|
* Makes arbitrary L2 to L1 message.
|
|
@@ -486,14 +490,14 @@ export function makeTxMergeRollupPrivateInputs(seed = 0) {
|
|
|
486
490
|
makeProofData(seed + 0x1000, makeTxRollupPublicInputs)
|
|
487
491
|
]);
|
|
488
492
|
}
|
|
489
|
-
export function
|
|
490
|
-
return new
|
|
493
|
+
export function makeBlockRootRollupPrivateInputs(seed = 0) {
|
|
494
|
+
return new BlockRootRollupPrivateInputs([
|
|
491
495
|
makeProofData(seed + 0x1000, makeTxRollupPublicInputs),
|
|
492
496
|
makeProofData(seed + 0x2000, makeTxRollupPublicInputs)
|
|
493
|
-
], makeAppendOnlyTreeSnapshot(seed + 0x3000), makeSiblingPath(seed + 0x4000,
|
|
497
|
+
], new L1ToL2MessageBundle(makeArray(MAX_L1_TO_L2_MSGS_PER_BLOCK, fr, seed + 0x2500), MAX_L1_TO_L2_MSGS_PER_BLOCK), makeAppendOnlyTreeSnapshot(seed + 0x3000), makeL1ToL2MessageSponge(seed + 0x3500), makeSiblingPath(seed + 0x4000, L1_TO_L2_MSG_TREE_HEIGHT), makeSiblingPath(seed + 0x5000, ARCHIVE_HEIGHT));
|
|
494
498
|
}
|
|
495
499
|
export function makeBlockRootSingleTxRollupPrivateInputs(seed = 0) {
|
|
496
|
-
return new BlockRootSingleTxRollupPrivateInputs(makeProofData(seed + 0x1000, makeTxRollupPublicInputs), makeSiblingPath(seed + 0x4000, ARCHIVE_HEIGHT));
|
|
500
|
+
return new BlockRootSingleTxRollupPrivateInputs(makeProofData(seed + 0x1000, makeTxRollupPublicInputs), new L1ToL2MessageBundle(makeArray(MAX_L1_TO_L2_MSGS_PER_BLOCK, fr, seed + 0x2500), 0), makeAppendOnlyTreeSnapshot(seed + 0x2800), makeL1ToL2MessageSponge(seed + 0x3000), makeSiblingPath(seed + 0x4000, L1_TO_L2_MSG_TREE_HEIGHT), makeSiblingPath(seed + 0x5000, ARCHIVE_HEIGHT));
|
|
497
501
|
}
|
|
498
502
|
/**
|
|
499
503
|
* Makes arbitrary block merge rollup inputs.
|
package/dest/tests/fixtures.d.ts
CHANGED
|
@@ -3,4 +3,4 @@ export declare function getBenchmarkContractArtifact(): ContractArtifact;
|
|
|
3
3
|
export declare function getTestContractArtifact(): ContractArtifact;
|
|
4
4
|
export declare function getTokenContractArtifact(): ContractArtifact;
|
|
5
5
|
export declare function getPathToFixture(name: string): string;
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4dHVyZXMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0cy9maXh0dXJlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEVBQUUsS0FBSyxnQkFBZ0IsRUFBd0IsTUFBTSxpQkFBaUIsQ0FBQztBQU85RSx3QkFBZ0IsNEJBQTRCLElBQUksZ0JBQWdCLENBSS9EO0FBR0Qsd0JBQWdCLHVCQUF1QixJQUFJLGdCQUFnQixDQUkxRDtBQUdELHdCQUFnQix3QkFBd0IsSUFBSSxnQkFBZ0IsQ0FJM0Q7QUFFRCx3QkFBZ0IsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLE1BQU0sVUFFNUMifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fixtures.d.ts","sourceRoot":"","sources":["../../src/tests/fixtures.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,gBAAgB,EAAwB,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"fixtures.d.ts","sourceRoot":"","sources":["../../src/tests/fixtures.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,gBAAgB,EAAwB,MAAM,iBAAiB,CAAC;AAO9E,wBAAgB,4BAA4B,IAAI,gBAAgB,CAI/D;AAGD,wBAAgB,uBAAuB,IAAI,gBAAgB,CAI1D;AAGD,wBAAgB,wBAAwB,IAAI,gBAAgB,CAI3D;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,UAE5C"}
|
package/dest/tests/fixtures.js
CHANGED
|
@@ -2,6 +2,8 @@ import { readFileSync } from 'fs';
|
|
|
2
2
|
import { dirname, resolve } from 'path';
|
|
3
3
|
import { fileURLToPath } from 'url';
|
|
4
4
|
import { loadContractArtifact } from '../abi/index.js';
|
|
5
|
+
// The fixtures are gitignored copies of noir-contracts build outputs, read via fs below.
|
|
6
|
+
// @dependency ../../fixtures/*.json
|
|
5
7
|
// Copied from the build output for the contract `Benchmarking` in noir-contracts
|
|
6
8
|
export function getBenchmarkContractArtifact() {
|
|
7
9
|
const path = getPathToFixture('Benchmarking.test.json');
|
package/dest/tests/mocks.d.ts
CHANGED
|
@@ -15,6 +15,7 @@ import { Gas } from '../gas/gas.js';
|
|
|
15
15
|
import { GasFees } from '../gas/gas_fees.js';
|
|
16
16
|
import { GasSettings } from '../gas/gas_settings.js';
|
|
17
17
|
import type { MerkleTreeReadOperations } from '../interfaces/merkle_tree_operations.js';
|
|
18
|
+
import { InboxBucketRef } from '../messaging/inbox_bucket.js';
|
|
18
19
|
import { BlockProposal } from '../p2p/block_proposal.js';
|
|
19
20
|
import { CheckpointAttestation } from '../p2p/checkpoint_attestation.js';
|
|
20
21
|
import { CheckpointProposal } from '../p2p/checkpoint_proposal.js';
|
|
@@ -115,11 +116,11 @@ export interface MakeBlockProposalOptions {
|
|
|
115
116
|
signer?: Secp256k1Signer;
|
|
116
117
|
blockHeader?: BlockHeader;
|
|
117
118
|
indexWithinCheckpoint?: IndexWithinCheckpoint;
|
|
118
|
-
inHash?: Fr;
|
|
119
119
|
archiveRoot?: Fr;
|
|
120
120
|
txHashes?: TxHash[];
|
|
121
121
|
txs?: Tx[];
|
|
122
122
|
signatureContext?: CoordinationSignatureContext;
|
|
123
|
+
bucketRef?: InboxBucketRef;
|
|
123
124
|
}
|
|
124
125
|
export interface MakeCheckpointProposalOptions {
|
|
125
126
|
signer?: Secp256k1Signer;
|
|
@@ -133,6 +134,7 @@ export interface MakeCheckpointProposalOptions {
|
|
|
133
134
|
indexWithinCheckpoint?: IndexWithinCheckpoint;
|
|
134
135
|
txHashes?: TxHash[];
|
|
135
136
|
txs?: Tx[];
|
|
137
|
+
bucketRef?: InboxBucketRef;
|
|
136
138
|
};
|
|
137
139
|
}
|
|
138
140
|
export declare const makeAndSignCommitteeAttestationsAndSigners: (attestationsAndSigners: CommitteeAttestationsAndSigners, signer?: Secp256k1Signer) => Signature;
|
|
@@ -167,4 +169,4 @@ export declare const makeCheckpointAttestationFromCheckpoint: (checkpoint: Check
|
|
|
167
169
|
* Note: This is a compatibility function for tests. L2Block doesn't have a checkpoint header directly.
|
|
168
170
|
*/
|
|
169
171
|
export declare const makeCheckpointAttestationFromBlock: (block: L2Block, attesterSigner?: Secp256k1Signer | undefined, proposerSigner?: Secp256k1Signer | undefined) => CheckpointAttestation;
|
|
170
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
172
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ja3MuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0cy9tb2Nrcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFXQSxPQUFPLEVBQUUsS0FBSyxRQUFRLEVBQWEsTUFBTSx5QkFBeUIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLHFCQUFxQixFQUFjLE1BQU0saUNBQWlDLENBQUM7QUFJbkgsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUVwRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFJNUQsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdEQsT0FBTyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUV6RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM1QyxPQUFPLEtBQUssRUFBRSwrQkFBK0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3JHLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUl6RCxPQUFPLEtBQUssRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXhFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVyRCxPQUFPLEtBQUssRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFD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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mocks.d.ts","sourceRoot":"","sources":["../../src/tests/mocks.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,KAAK,QAAQ,EAAa,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,qBAAqB,EAAc,MAAM,iCAAiC,CAAC;AAInH,OAAO,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;AAC5E,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAEpD,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAI5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEtD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEzE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE9D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,+CAA+C,CAAC;AACrG,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAIzD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AAExE,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"mocks.d.ts","sourceRoot":"","sources":["../../src/tests/mocks.ts"],"names":[],"mappings":"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"}
|
package/dest/tests/mocks.js
CHANGED
|
@@ -29,7 +29,6 @@ import { PartialPrivateTailPublicInputsForPublic, PrivateKernelTailCircuitPublic
|
|
|
29
29
|
import { PrivateToAvmAccumulatedData } from '../kernel/private_to_avm_accumulated_data.js';
|
|
30
30
|
import { PrivateToPublicAccumulatedDataBuilder } from '../kernel/private_to_public_accumulated_data_builder.js';
|
|
31
31
|
import { PublicCallRequestArrayLengths } from '../kernel/public_call_request.js';
|
|
32
|
-
import { computeInHashFromL1ToL2Messages } from '../messaging/in_hash.js';
|
|
33
32
|
import { BlockProposal } from '../p2p/block_proposal.js';
|
|
34
33
|
import { CheckpointAttestation } from '../p2p/checkpoint_attestation.js';
|
|
35
34
|
import { CheckpointProposal } from '../p2p/checkpoint_proposal.js';
|
|
@@ -263,11 +262,9 @@ export async function mockCheckpointAndMessages(checkpointNumber, { startBlockNu
|
|
|
263
262
|
});
|
|
264
263
|
}
|
|
265
264
|
const messages = blocksAndMessages[0].messages;
|
|
266
|
-
const inHash = computeInHashFromL1ToL2Messages(messages);
|
|
267
265
|
const firstBlockLastArchive = blocksAndMessages[0].block.header.lastArchive;
|
|
268
266
|
const checkpoint = await Checkpoint.random(checkpointNumber, {
|
|
269
267
|
numBlocks: 0,
|
|
270
|
-
inHash,
|
|
271
268
|
...options,
|
|
272
269
|
...globals,
|
|
273
270
|
lastArchive: firstBlockLastArchive,
|
|
@@ -336,7 +333,6 @@ export const makeAndSignCommitteeAttestationsAndSigners = (attestationsAndSigner
|
|
|
336
333
|
export const makeBlockProposal = (options)=>{
|
|
337
334
|
const blockHeader = options?.blockHeader ?? makeBlockHeader(1);
|
|
338
335
|
const indexWithinCheckpoint = options?.indexWithinCheckpoint ?? IndexWithinCheckpoint(0);
|
|
339
|
-
const inHash = options?.inHash ?? Fr.random();
|
|
340
336
|
const archiveRoot = options?.archiveRoot ?? Fr.random();
|
|
341
337
|
const txHashes = options?.txHashes ?? [
|
|
342
338
|
0,
|
|
@@ -349,7 +345,8 @@ export const makeBlockProposal = (options)=>{
|
|
|
349
345
|
const txs = options?.txs;
|
|
350
346
|
const signer = options?.signer ?? Secp256k1Signer.random();
|
|
351
347
|
const signatureContext = options?.signatureContext ?? TEST_COORDINATION_SIGNATURE_CONTEXT;
|
|
352
|
-
|
|
348
|
+
const bucketRef = options?.bucketRef;
|
|
349
|
+
return BlockProposal.createProposalFromSigner(blockHeader, CheckpointNumber(1), indexWithinCheckpoint, archiveRoot, txHashes, txs, signatureContext, (typedData, _context)=>Promise.resolve(signTypedData(signer, typedData)), (typedData, _context)=>Promise.resolve(signTypedData(signer, typedData)), bucketRef);
|
|
353
350
|
};
|
|
354
351
|
export const makeCheckpointProposal = async (options)=>{
|
|
355
352
|
const checkpointHeader = options?.checkpointHeader ?? makeCheckpointHeader(1);
|
|
@@ -361,12 +358,12 @@ export const makeCheckpointProposal = async (options)=>{
|
|
|
361
358
|
const lastBlockProposal = options?.lastBlock ? await makeBlockProposal({
|
|
362
359
|
blockHeader: options.lastBlock.blockHeader,
|
|
363
360
|
indexWithinCheckpoint: options.lastBlock.indexWithinCheckpoint ?? IndexWithinCheckpoint(4),
|
|
364
|
-
inHash: checkpointHeader.inHash,
|
|
365
361
|
archiveRoot,
|
|
366
362
|
txHashes: options.lastBlock.txHashes,
|
|
367
363
|
txs: options.lastBlock.txs,
|
|
368
364
|
signer,
|
|
369
|
-
signatureContext
|
|
365
|
+
signatureContext,
|
|
366
|
+
bucketRef: options.lastBlock.bucketRef
|
|
370
367
|
}) : undefined;
|
|
371
368
|
return CheckpointProposal.createProposalFromSigner(checkpointHeader, archiveRoot, CheckpointNumber(1), feeAssetPriceModifier, lastBlockProposal, signatureContext, (typedData)=>Promise.resolve(signTypedData(signer, typedData)));
|
|
372
369
|
};
|
|
@@ -76,10 +76,13 @@ export declare class StateReference {
|
|
|
76
76
|
publicDataTree: `0x${string}`;
|
|
77
77
|
};
|
|
78
78
|
/**
|
|
79
|
-
* Validates the trees
|
|
79
|
+
* Validates the partial-state trees have the expected number of leaves (multiple of number of insertions per tx).
|
|
80
|
+
*
|
|
81
|
+
* The L1-to-L2 message tree is not checked: it grows by real message counts at compact (unaligned)
|
|
82
|
+
* indices, so its next-available leaf index is no longer a multiple of any per-block subtree size.
|
|
80
83
|
*/
|
|
81
84
|
validate(): void;
|
|
82
85
|
[inspect.custom](): string;
|
|
83
86
|
equals(other: this): boolean;
|
|
84
87
|
}
|
|
85
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
88
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGVfcmVmZXJlbmNlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHgvc3RhdGVfcmVmZXJlbmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBbUIsTUFBTSw2QkFBNkIsQ0FBQztBQUNyRyxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV4RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFFeEIsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDL0UsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFckU7O0dBRUc7QUFDSCxxQkFBYSxjQUFjO0lBRXZCLDZDQUE2QztJQUN0QyxpQkFBaUIsRUFBRSxzQkFBc0I7SUFDaEQsMENBQTBDO0lBQ25DLE9BQU8sRUFBRSxxQkFBcUI7SUFKdkM7SUFDRSw2Q0FBNkM7SUFDdEMsaUJBQWlCLEVBQUUsc0JBQXNCO0lBQ2hELDBDQUEwQztJQUNuQyxPQUFPLEVBQUUscUJBQXFCLEVBQ25DO0lBRUosTUFBTSxLQUFLLE1BQU07Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O1FBT2hCO0lBRUQsT0FBTyxXQUVOO0lBRUQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLGNBQWMsQ0FBQyw0REFFaEQ7SUFFRCxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsY0FBYyxDQUFDLGtCQUUzQztJQUdELFFBQVEsSUFBSSxNQUFNLENBQUM7SUFDbkIsUUFBUSxDQUFDLElBQUksRUFBRSxVQUFVLEdBQUcsSUFBSSxDQUFDO0lBUWpDLFFBQVEsSUFBSSxFQUFFLEVBQUUsQ0FRZjtJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxZQUFZLEdBQUcsY0FBYyxDQUcvRDtJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLEVBQUUsRUFBRSxHQUFHLFdBQVcsR0FBRyxjQUFjLENBTzVEO0lBRUQsTUFBTSxDQUFDLEtBQUssSUFBSSxjQUFjLENBRTdCO0lBRUQsTUFBTSxDQUFDLE1BQU0sSUFBSSxjQUFjLENBRTlCO0lBRUQsS0FBSyxJQUFJLENBQUMsVUFBVSxDQUFDLHNCQUFzQixDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsVUFBVSxDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FFakc7SUFFRCxPQUFPLElBQUksT0FBTyxDQUVqQjtJQUVELFNBQVM7Ozs7O01BT1I7SUFFRDs7Ozs7T0FLRztJQUNJLFFBQVEsU0FXZDtJQUVELENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxXQU9mO0lBRU0sTUFBTSxDQUFDLEtBQUssRUFBRSxJQUFJLEdBQUcsT0FBTyxDQUVsQztDQUNGIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state_reference.d.ts","sourceRoot":"","sources":["../../src/tx/state_reference.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"state_reference.d.ts","sourceRoot":"","sources":["../../src/tx/state_reference.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAmB,MAAM,6BAA6B,CAAC;AACrG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAErE;;GAEG;AACH,qBAAa,cAAc;IAEvB,6CAA6C;IACtC,iBAAiB,EAAE,sBAAsB;IAChD,0CAA0C;IACnC,OAAO,EAAE,qBAAqB;IAJvC;IACE,6CAA6C;IACtC,iBAAiB,EAAE,sBAAsB;IAChD,0CAA0C;IACnC,OAAO,EAAE,qBAAqB,EACnC;IAEJ,MAAM,KAAK,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAOhB;IAED,OAAO,WAEN;IAED,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,cAAc,CAAC,4DAEhD;IAED,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,cAAc,CAAC,kBAE3C;IAGD,QAAQ,IAAI,MAAM,CAAC;IACnB,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;IAQjC,QAAQ,IAAI,EAAE,EAAE,CAQf;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,cAAc,CAG/D;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW,GAAG,cAAc,CAO5D;IAED,MAAM,CAAC,KAAK,IAAI,cAAc,CAE7B;IAED,MAAM,CAAC,MAAM,IAAI,cAAc,CAE9B;IAED,KAAK,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC,EAAE,UAAU,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC,CAEjG;IAED,OAAO,IAAI,OAAO,CAEjB;IAED,SAAS;;;;;MAOR;IAED;;;;;OAKG;IACI,QAAQ,SAWd;IAED,CAAC,OAAO,CAAC,MAAM,CAAC,WAOf;IAEM,MAAM,CAAC,KAAK,EAAE,IAAI,GAAG,OAAO,CAElC;CACF"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
var _computedKey;
|
|
2
|
-
import { MAX_NOTE_HASHES_PER_TX, MAX_NULLIFIERS_PER_TX,
|
|
2
|
+
import { MAX_NOTE_HASHES_PER_TX, MAX_NULLIFIERS_PER_TX, STATE_REFERENCE_LENGTH } from '@aztec/constants';
|
|
3
3
|
import { BufferReader, BufferSink, FieldReader, serializeToSink } from '@aztec/foundation/serialize';
|
|
4
4
|
import { inspect } from 'util';
|
|
5
5
|
import { z } from 'zod';
|
|
@@ -85,11 +85,11 @@ _computedKey = inspect.custom;
|
|
|
85
85
|
};
|
|
86
86
|
}
|
|
87
87
|
/**
|
|
88
|
-
* Validates the trees
|
|
88
|
+
* Validates the partial-state trees have the expected number of leaves (multiple of number of insertions per tx).
|
|
89
|
+
*
|
|
90
|
+
* The L1-to-L2 message tree is not checked: it grows by real message counts at compact (unaligned)
|
|
91
|
+
* indices, so its next-available leaf index is no longer a multiple of any per-block subtree size.
|
|
89
92
|
*/ validate() {
|
|
90
|
-
if (this.l1ToL2MessageTree.nextAvailableLeafIndex % NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP !== 0) {
|
|
91
|
-
throw new Error(`Invalid L1 to L2 message tree next available leaf index ${this.l1ToL2MessageTree.nextAvailableLeafIndex} (must be a multiple of ${NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP})`);
|
|
92
|
-
}
|
|
93
93
|
if (this.partial.noteHashTree.nextAvailableLeafIndex % MAX_NOTE_HASHES_PER_TX !== 0) {
|
|
94
94
|
throw new Error(`Invalid note hash tree next available leaf index ${this.partial.noteHashTree.nextAvailableLeafIndex} (must be a multiple of ${MAX_NOTE_HASHES_PER_TX})`);
|
|
95
95
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/stdlib",
|
|
3
|
-
"version": "6.0.0-nightly.
|
|
3
|
+
"version": "6.0.0-nightly.20260821",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"inherits": [
|
|
6
6
|
"../package.common.json",
|
|
@@ -92,13 +92,13 @@
|
|
|
92
92
|
},
|
|
93
93
|
"dependencies": {
|
|
94
94
|
"@aws-sdk/client-s3": "^3.892.0",
|
|
95
|
-
"@aztec/bb.js": "6.0.0-nightly.
|
|
96
|
-
"@aztec/blob-lib": "6.0.0-nightly.
|
|
97
|
-
"@aztec/constants": "6.0.0-nightly.
|
|
98
|
-
"@aztec/ethereum": "6.0.0-nightly.
|
|
99
|
-
"@aztec/foundation": "6.0.0-nightly.
|
|
100
|
-
"@aztec/l1-artifacts": "6.0.0-nightly.
|
|
101
|
-
"@aztec/noir-noirc_abi": "6.0.0-nightly.
|
|
95
|
+
"@aztec/bb.js": "6.0.0-nightly.20260819",
|
|
96
|
+
"@aztec/blob-lib": "6.0.0-nightly.20260821",
|
|
97
|
+
"@aztec/constants": "6.0.0-nightly.20260821",
|
|
98
|
+
"@aztec/ethereum": "6.0.0-nightly.20260821",
|
|
99
|
+
"@aztec/foundation": "6.0.0-nightly.20260821",
|
|
100
|
+
"@aztec/l1-artifacts": "6.0.0-nightly.20260819",
|
|
101
|
+
"@aztec/noir-noirc_abi": "6.0.0-nightly.20260819",
|
|
102
102
|
"@google-cloud/storage": "^7.15.0",
|
|
103
103
|
"axios": "^1.15.1",
|
|
104
104
|
"json-stringify-deterministic": "1.0.12",
|
package/src/abi/abi.ts
CHANGED
|
@@ -47,6 +47,11 @@ export const AbiValueSchema: z.ZodType<AbiValue> = z.discriminatedUnion('kind',
|
|
|
47
47
|
}),
|
|
48
48
|
]);
|
|
49
49
|
|
|
50
|
+
export const AbiNamedValueSchema: z.ZodType<AbiNamedValue> = z.object({
|
|
51
|
+
name: z.string(),
|
|
52
|
+
value: AbiValueSchema,
|
|
53
|
+
});
|
|
54
|
+
|
|
50
55
|
export type TypedStructFieldValue<T> = { name: string; value: T };
|
|
51
56
|
|
|
52
57
|
export interface StructValue {
|
|
@@ -389,7 +394,7 @@ export interface ContractArtifact {
|
|
|
389
394
|
/** The outputs of the contract. */
|
|
390
395
|
outputs: {
|
|
391
396
|
structs: Record<string, AbiType[]>;
|
|
392
|
-
globals: Record<string,
|
|
397
|
+
globals: Record<string, AbiNamedValue[]>;
|
|
393
398
|
};
|
|
394
399
|
|
|
395
400
|
/** Storage layout */
|
|
@@ -418,7 +423,7 @@ export const ContractArtifactSchema = zodFor<ContractArtifact>()(
|
|
|
418
423
|
}
|
|
419
424
|
return structs;
|
|
420
425
|
}),
|
|
421
|
-
globals: z.record(z.string(), z.array(
|
|
426
|
+
globals: z.record(z.string(), z.array(AbiNamedValueSchema)),
|
|
422
427
|
}),
|
|
423
428
|
storageLayout: z.record(z.string(), z.object({ slot: schemas.Fr })),
|
|
424
429
|
fileMap: z.record(
|
|
@@ -249,14 +249,14 @@ function hasKernelFunctionInputs(params: ABIParameter[]): boolean {
|
|
|
249
249
|
/**
|
|
250
250
|
* Generates a storage layout for the contract artifact.
|
|
251
251
|
* @param contractName - The name of the compiled Noir contract.
|
|
252
|
-
* @param globals - The
|
|
252
|
+
* @param globals - The globals exported by the contract.
|
|
253
253
|
* @returns A storage layout for the contract.
|
|
254
254
|
*/
|
|
255
|
-
function getStorageLayout(contractName: string, globals: Record<string,
|
|
255
|
+
function getStorageLayout(contractName: string, globals: Record<string, AbiNamedValue[]>) {
|
|
256
256
|
// If another contract is imported by the main contract, its storage layout its going to also show up here.
|
|
257
257
|
// The layout export includes the contract name, so here we can find the one that belongs to the current one and
|
|
258
258
|
// ignore the rest.
|
|
259
|
-
const storageExports = globals.storage ?? [];
|
|
259
|
+
const storageExports = globals.storage?.map(entry => entry.value) ?? [];
|
|
260
260
|
const storageForContract = storageExports.find((storageExport): storageExport is StructValue => {
|
|
261
261
|
if (storageExport.kind !== 'struct') {
|
|
262
262
|
return false;
|
|
@@ -286,20 +286,19 @@ function getStorageLayout(contractName: string, globals: Record<string, AbiValue
|
|
|
286
286
|
}, {});
|
|
287
287
|
}
|
|
288
288
|
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
function
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
globals
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
};
|
|
289
|
+
/**
|
|
290
|
+
* Returns the globals exported by the contract under an `#[abi(tag)]` attribute, keyed by global name.
|
|
291
|
+
* An unknown tag yields an empty record. Throws if two globals under the same tag share a name.
|
|
292
|
+
*/
|
|
293
|
+
export function getGlobalsByTag(artifact: ContractArtifact, tag: string): Record<string, AbiValue> {
|
|
294
|
+
const globals = new Map<string, AbiValue>();
|
|
295
|
+
for (const entry of artifact.outputs.globals[tag] ?? []) {
|
|
296
|
+
if (globals.has(entry.name)) {
|
|
297
|
+
throw new Error(`Duplicate global '${entry.name}' exported under #[abi(${tag})] in contract ${artifact.name}`);
|
|
298
|
+
}
|
|
299
|
+
globals.set(entry.name, entry.value);
|
|
300
|
+
}
|
|
301
|
+
return Object.fromEntries(globals);
|
|
303
302
|
}
|
|
304
303
|
|
|
305
304
|
/**
|
|
@@ -312,7 +311,6 @@ function generateContractArtifact(contract: NoirCompiledContract): ContractArtif
|
|
|
312
311
|
if (!contract.transpiled) {
|
|
313
312
|
throw new Error("Contract's public bytecode has not been transpiled");
|
|
314
313
|
}
|
|
315
|
-
const outputs = normalizeContractOutputs(contract.outputs);
|
|
316
314
|
return ContractArtifactSchema.parse({
|
|
317
315
|
name: contract.name,
|
|
318
316
|
aztecVersion: contract.aztec_version,
|
|
@@ -320,8 +318,8 @@ function generateContractArtifact(contract: NoirCompiledContract): ContractArtif
|
|
|
320
318
|
nonDispatchPublicFunctions: contract.functions
|
|
321
319
|
.filter(f => !retainBytecode(f))
|
|
322
320
|
.map(f => generateFunctionAbi(f, contract)),
|
|
323
|
-
outputs,
|
|
324
|
-
storageLayout: getStorageLayout(contract.name, outputs.globals),
|
|
321
|
+
outputs: contract.outputs,
|
|
322
|
+
storageLayout: getStorageLayout(contract.name, contract.outputs.globals),
|
|
325
323
|
fileMap: contract.file_map,
|
|
326
324
|
});
|
|
327
325
|
} catch (err) {
|
|
@@ -336,7 +334,6 @@ function generateContractArtifact(contract: NoirCompiledContract): ContractArtif
|
|
|
336
334
|
*/
|
|
337
335
|
function generateContractArtifactForPublic(contract: NoirCompiledContract): ContractArtifact {
|
|
338
336
|
try {
|
|
339
|
-
const outputs = normalizeContractOutputs(contract.outputs);
|
|
340
337
|
return ContractArtifactSchema.parse({
|
|
341
338
|
name: contract.name,
|
|
342
339
|
aztecVersion: contract.aztec_version,
|
|
@@ -344,8 +341,8 @@ function generateContractArtifactForPublic(contract: NoirCompiledContract): Cont
|
|
|
344
341
|
nonDispatchPublicFunctions: contract.functions
|
|
345
342
|
.filter(f => !retainBytecode(f))
|
|
346
343
|
.map(f => generateFunctionAbi(f, contract)),
|
|
347
|
-
outputs,
|
|
348
|
-
storageLayout: getStorageLayout(contract.name, outputs.globals),
|
|
344
|
+
outputs: contract.outputs,
|
|
345
|
+
storageLayout: getStorageLayout(contract.name, contract.outputs.globals),
|
|
349
346
|
fileMap: contract.file_map,
|
|
350
347
|
});
|
|
351
348
|
} catch (err) {
|
package/src/avm/avm.ts
CHANGED
|
@@ -1281,6 +1281,9 @@ export class PublicTxResult {
|
|
|
1281
1281
|
// For the proving request.
|
|
1282
1282
|
public hints: AvmExecutionHints | undefined,
|
|
1283
1283
|
public publicInputs: AvmCircuitPublicInputs | undefined,
|
|
1284
|
+
// Simulation statistics keyed by stat name, with stringified values.
|
|
1285
|
+
// E.g. "total_instructions_executed" -> AVM instructions executed by the tx, across all enqueued and nested calls.
|
|
1286
|
+
public stats: Record<string, string> = {},
|
|
1284
1287
|
) {}
|
|
1285
1288
|
|
|
1286
1289
|
static empty() {
|
|
@@ -1309,12 +1312,17 @@ export class PublicTxResult {
|
|
|
1309
1312
|
publicTxEffect: PublicTxEffect.schema,
|
|
1310
1313
|
callStackMetadata: z.union([CallStackMetadata.schema.array(), NestedProcessReturnValues.schema.array()]),
|
|
1311
1314
|
logs: NullishToUndefined(DebugLog.schema.array()),
|
|
1315
|
+
// Missing/null coalesces to an empty map.
|
|
1316
|
+
stats: z
|
|
1317
|
+
.record(z.string(), z.string())
|
|
1318
|
+
.nullish()
|
|
1319
|
+
.transform(v => v ?? {}),
|
|
1312
1320
|
// For the proving request.
|
|
1313
1321
|
publicInputs: NullishToUndefined(AvmCircuitPublicInputs.schema),
|
|
1314
1322
|
hints: NullishToUndefined(AvmExecutionHints.schema),
|
|
1315
1323
|
})
|
|
1316
1324
|
.transform(
|
|
1317
|
-
({ gasUsed, revertCode, publicTxEffect, callStackMetadata, logs, hints, publicInputs }) =>
|
|
1325
|
+
({ gasUsed, revertCode, publicTxEffect, callStackMetadata, logs, hints, publicInputs, stats }) =>
|
|
1318
1326
|
new PublicTxResult(
|
|
1319
1327
|
gasUsed,
|
|
1320
1328
|
revertCode as RevertCode,
|
|
@@ -1323,6 +1331,7 @@ export class PublicTxResult {
|
|
|
1323
1331
|
logs,
|
|
1324
1332
|
hints,
|
|
1325
1333
|
publicInputs,
|
|
1334
|
+
stats,
|
|
1326
1335
|
),
|
|
1327
1336
|
);
|
|
1328
1337
|
}
|
|
@@ -1343,6 +1352,7 @@ export class PublicTxResult {
|
|
|
1343
1352
|
obj.logs?.map(DebugLog.fromPlainObject),
|
|
1344
1353
|
obj.hints ? AvmExecutionHints.fromPlainObject(obj.hints) : undefined,
|
|
1345
1354
|
obj.publicInputs ? AvmCircuitPublicInputs.fromPlainObject(obj.publicInputs) : undefined,
|
|
1355
|
+
obj.stats ?? {},
|
|
1346
1356
|
);
|
|
1347
1357
|
}
|
|
1348
1358
|
|
package/src/block/l2_block.ts
CHANGED
|
@@ -116,7 +116,6 @@ export class L2Block {
|
|
|
116
116
|
}
|
|
117
117
|
|
|
118
118
|
public toBlockBlobData(): BlockBlobData {
|
|
119
|
-
const isFirstBlock = this.indexWithinCheckpoint === 0;
|
|
120
119
|
return {
|
|
121
120
|
blockEndMarker: {
|
|
122
121
|
numTxs: this.body.txEffects.length,
|
|
@@ -134,7 +133,8 @@ export class L2Block {
|
|
|
134
133
|
noteHashRoot: this.header.state.partial.noteHashTree.root,
|
|
135
134
|
nullifierRoot: this.header.state.partial.nullifierTree.root,
|
|
136
135
|
publicDataRoot: this.header.state.partial.publicDataTree.root,
|
|
137
|
-
|
|
136
|
+
// Every block carries its own post-bundle l1-to-l2 message tree root.
|
|
137
|
+
l1ToL2MessageRoot: this.header.state.l1ToL2MessageTree.root,
|
|
138
138
|
txs: this.body.toTxBlobData(),
|
|
139
139
|
};
|
|
140
140
|
}
|
|
@@ -155,7 +155,6 @@ export class L2Block {
|
|
|
155
155
|
* @param txsPerBlock - The number of transactions to include in the block.
|
|
156
156
|
* @param numPublicCallsPerTx - The number of public function calls to include in each transaction.
|
|
157
157
|
* @param numPublicLogsPerCall - The number of public logs per 1 public function invocation.
|
|
158
|
-
* @param inHash - The hash of the L1 to L2 messages subtree which got inserted in this block.
|
|
159
158
|
* @returns The L2 block.
|
|
160
159
|
*/
|
|
161
160
|
static async random(
|
|
@@ -457,19 +457,16 @@ export enum L2BlockSourceEvents {
|
|
|
457
457
|
|
|
458
458
|
/**
|
|
459
459
|
* Aggregate event emitted once per committed archiver sync pass that mutated local state. Carries the chain tips
|
|
460
|
-
* before and after the pass
|
|
461
|
-
*
|
|
460
|
+
* before and after the pass; consumers compare `fromTips` and `toTips` to learn what moved, and read any data they
|
|
461
|
+
* need from the source itself.
|
|
462
462
|
*
|
|
463
463
|
* This is an optimization signal that lets a block stream reconcile immediately on an archiver update rather than
|
|
464
464
|
* waiting for its next poll. Polling remains the correctness fallback, so a missed event only affects latency.
|
|
465
|
-
* `blocksAdded` are hydrated blocks already in hand from the sync pass, so a triggered sync that is caught up to
|
|
466
|
-
* `fromTips` can reuse them (and `toTips`) instead of re-reading the store.
|
|
467
465
|
*/
|
|
468
466
|
export type L2BlockSourceUpdatedEvent = {
|
|
469
467
|
type: 'l2BlockSourceUpdated';
|
|
470
468
|
fromTips: L2Tips;
|
|
471
469
|
toTips: L2Tips;
|
|
472
|
-
blocksAdded: readonly L2Block[];
|
|
473
470
|
};
|
|
474
471
|
|
|
475
472
|
export type L2BlockProvenEvent = {
|