@aztec/stdlib 0.0.1-commit.e6bd8901 → 0.0.1-commit.ec7ac5448
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 +138 -1
- package/dest/abi/abi.d.ts.map +1 -1
- package/dest/abi/abi.js +10 -2
- package/dest/abi/buffer.d.ts +14 -4
- package/dest/abi/buffer.d.ts.map +1 -1
- package/dest/abi/buffer.js +25 -4
- package/dest/abi/decoder.d.ts +6 -45
- package/dest/abi/decoder.d.ts.map +1 -1
- package/dest/abi/decoder.js +17 -70
- package/dest/abi/encoder.d.ts +1 -1
- package/dest/abi/encoder.d.ts.map +1 -1
- package/dest/abi/encoder.js +37 -6
- package/dest/abi/event_metadata_definition.d.ts +3 -1
- package/dest/abi/event_metadata_definition.d.ts.map +1 -1
- package/dest/abi/event_metadata_definition.js +1 -1
- package/dest/abi/function_call.d.ts +39 -9
- package/dest/abi/function_call.d.ts.map +1 -1
- package/dest/abi/function_call.js +20 -3
- package/dest/abi/function_selector.js +1 -1
- package/dest/abi/function_signature_decoder.d.ts +43 -0
- package/dest/abi/function_signature_decoder.d.ts.map +1 -0
- package/dest/abi/function_signature_decoder.js +66 -0
- package/dest/abi/index.d.ts +2 -1
- package/dest/abi/index.d.ts.map +1 -1
- package/dest/abi/index.js +1 -0
- package/dest/abi/selector.d.ts +2 -2
- package/dest/abi/selector.d.ts.map +1 -1
- package/dest/abi/selector.js +1 -1
- package/dest/abi/utils.d.ts +14 -1
- package/dest/abi/utils.d.ts.map +1 -1
- package/dest/abi/utils.js +15 -0
- package/dest/auth_witness/auth_witness.js +3 -3
- package/dest/avm/avm_proving_request.d.ts +166 -166
- package/dest/avm/revert_code.d.ts +9 -4
- package/dest/avm/revert_code.d.ts.map +1 -1
- package/dest/avm/revert_code.js +16 -21
- package/dest/block/block_data.d.ts +52 -0
- package/dest/block/block_data.d.ts.map +1 -0
- package/dest/block/block_data.js +12 -0
- package/dest/block/block_hash.d.ts +16 -18
- package/dest/block/block_hash.d.ts.map +1 -1
- package/dest/block/block_hash.js +21 -31
- package/dest/block/block_parameter.d.ts +4 -4
- package/dest/block/block_parameter.d.ts.map +1 -1
- package/dest/block/block_parameter.js +2 -2
- package/dest/block/in_block.d.ts +9 -9
- package/dest/block/in_block.d.ts.map +1 -1
- package/dest/block/in_block.js +5 -5
- package/dest/block/index.d.ts +2 -1
- package/dest/block/index.d.ts.map +1 -1
- package/dest/block/index.js +1 -0
- package/dest/block/l2_block.d.ts +11 -2
- package/dest/block/l2_block.d.ts.map +1 -1
- package/dest/block/l2_block.js +12 -2
- package/dest/block/l2_block_source.d.ts +117 -12
- 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_block_stream.d.ts +1 -1
- package/dest/block/l2_block_stream/l2_block_stream.d.ts.map +1 -1
- package/dest/block/l2_block_stream/l2_block_stream.js +10 -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 +17 -4
- 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 +3 -2
- package/dest/checkpoint/checkpoint.d.ts +28 -7
- package/dest/checkpoint/checkpoint.d.ts.map +1 -1
- package/dest/checkpoint/checkpoint.js +41 -17
- package/dest/checkpoint/checkpoint_data.d.ts +186 -0
- package/dest/checkpoint/checkpoint_data.d.ts.map +1 -0
- package/dest/checkpoint/checkpoint_data.js +36 -0
- package/dest/checkpoint/index.d.ts +3 -1
- package/dest/checkpoint/index.d.ts.map +1 -1
- package/dest/checkpoint/index.js +2 -0
- package/dest/checkpoint/published_checkpoint.d.ts +17 -2
- package/dest/checkpoint/published_checkpoint.d.ts.map +1 -1
- package/dest/checkpoint/published_checkpoint.js +1 -2
- package/dest/checkpoint/validate.d.ts +36 -0
- package/dest/checkpoint/validate.d.ts.map +1 -0
- package/dest/checkpoint/validate.js +120 -0
- package/dest/config/index.d.ts +3 -1
- package/dest/config/index.d.ts.map +1 -1
- package/dest/config/index.js +2 -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 +12 -0
- package/dest/config/sequencer-config.d.ts.map +1 -0
- package/dest/config/sequencer-config.js +31 -0
- package/dest/contract/contract_address.d.ts +3 -3
- package/dest/contract/contract_address.js +7 -7
- package/dest/contract/contract_class.d.ts +2 -3
- package/dest/contract/contract_class.d.ts.map +1 -1
- package/dest/contract/contract_class_id.d.ts +3 -3
- package/dest/contract/contract_class_id.d.ts.map +1 -1
- package/dest/contract/contract_class_id.js +7 -6
- 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/interfaces/node-info.d.ts +3 -1
- package/dest/contract/interfaces/node-info.d.ts.map +1 -1
- package/dest/contract/interfaces/node-info.js +2 -1
- package/dest/contract/private_function.js +2 -2
- package/dest/database-version/database_version.d.ts +58 -0
- package/dest/database-version/database_version.d.ts.map +1 -0
- package/dest/database-version/database_version.js +69 -0
- package/dest/database-version/version_manager.d.ts +2 -50
- package/dest/database-version/version_manager.d.ts.map +1 -1
- package/dest/database-version/version_manager.js +1 -66
- package/dest/epoch-helpers/index.d.ts +17 -1
- package/dest/epoch-helpers/index.d.ts.map +1 -1
- package/dest/epoch-helpers/index.js +22 -2
- 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/file-store/local.d.ts +3 -3
- package/dest/file-store/local.d.ts.map +1 -1
- package/dest/file-store/local.js +13 -4
- package/dest/file-store/s3.d.ts +1 -1
- package/dest/file-store/s3.d.ts.map +1 -1
- package/dest/file-store/s3.js +11 -3
- package/dest/gas/gas_fees.d.ts +1 -1
- package/dest/gas/gas_fees.d.ts.map +1 -1
- package/dest/gas/gas_fees.js +13 -1
- package/dest/gas/gas_settings.d.ts +40 -3
- package/dest/gas/gas_settings.d.ts.map +1 -1
- package/dest/gas/gas_settings.js +50 -6
- 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 +85 -0
- package/dest/ha-signing/types.d.ts.map +1 -0
- package/dest/ha-signing/types.js +32 -0
- package/dest/hash/hash.d.ts +20 -1
- package/dest/hash/hash.d.ts.map +1 -1
- package/dest/hash/hash.js +45 -10
- package/dest/hash/map_slot.d.ts +1 -1
- package/dest/hash/map_slot.d.ts.map +1 -1
- package/dest/hash/map_slot.js +4 -3
- package/dest/interfaces/allowed_element.d.ts +26 -20
- package/dest/interfaces/allowed_element.d.ts.map +1 -1
- package/dest/interfaces/allowed_element.js +8 -8
- package/dest/interfaces/archiver.d.ts +1 -1
- package/dest/interfaces/archiver.d.ts.map +1 -1
- package/dest/interfaces/archiver.js +14 -5
- package/dest/interfaces/aztec-node-admin.d.ts +124 -45
- package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
- package/dest/interfaces/aztec-node-admin.js +15 -7
- package/dest/interfaces/aztec-node-debug.d.ts +21 -0
- package/dest/interfaces/aztec-node-debug.d.ts.map +1 -0
- package/dest/interfaces/aztec-node-debug.js +18 -0
- package/dest/interfaces/aztec-node.d.ts +45 -60
- package/dest/interfaces/aztec-node.d.ts.map +1 -1
- package/dest/interfaces/aztec-node.js +11 -12
- package/dest/interfaces/block-builder.d.ts +44 -11
- package/dest/interfaces/block-builder.d.ts.map +1 -1
- package/dest/interfaces/block-builder.js +16 -2
- package/dest/interfaces/client.d.ts +2 -1
- package/dest/interfaces/client.d.ts.map +1 -1
- package/dest/interfaces/client.js +1 -0
- package/dest/interfaces/configs.d.ts +77 -32
- package/dest/interfaces/configs.d.ts.map +1 -1
- package/dest/interfaces/configs.js +10 -3
- package/dest/interfaces/get_logs_response.d.ts +15 -8
- package/dest/interfaces/get_logs_response.d.ts.map +1 -1
- 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 +10 -20
- package/dest/interfaces/merkle_tree_operations.d.ts.map +1 -1
- package/dest/interfaces/p2p.d.ts +4 -9
- package/dest/interfaces/p2p.d.ts.map +1 -1
- package/dest/interfaces/prover-broker.d.ts +16 -1
- package/dest/interfaces/prover-broker.d.ts.map +1 -1
- package/dest/interfaces/prover-broker.js +4 -1
- package/dest/interfaces/prover-client.d.ts +11 -1
- package/dest/interfaces/prover-client.d.ts.map +1 -1
- package/dest/interfaces/prover-client.js +12 -1
- package/dest/interfaces/proving-job.d.ts +202 -202
- package/dest/interfaces/slasher.d.ts +9 -10
- package/dest/interfaces/slasher.d.ts.map +1 -1
- package/dest/interfaces/slasher.js +2 -2
- package/dest/interfaces/validator.d.ts +151 -54
- package/dest/interfaces/validator.d.ts.map +1 -1
- package/dest/interfaces/validator.js +11 -5
- package/dest/interfaces/world_state.d.ts +5 -4
- package/dest/interfaces/world_state.d.ts.map +1 -1
- package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts +3 -3
- package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts.map +1 -1
- package/dest/kernel/hints/build_note_hash_read_request_hints.js +13 -10
- package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts +3 -3
- package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts.map +1 -1
- package/dest/kernel/hints/build_nullifier_read_request_hints.js +13 -10
- package/dest/kernel/hints/build_transient_data_hints.d.ts +5 -2
- package/dest/kernel/hints/build_transient_data_hints.d.ts.map +1 -1
- package/dest/kernel/hints/build_transient_data_hints.js +9 -3
- package/dest/kernel/hints/index.d.ts +2 -2
- package/dest/kernel/hints/index.js +2 -2
- package/dest/kernel/hints/key_validation_request_and_separator.d.ts +24 -0
- package/dest/kernel/hints/key_validation_request_and_separator.d.ts.map +1 -0
- package/dest/kernel/hints/{key_validation_request_and_generator.js → key_validation_request_and_separator.js} +12 -15
- package/dest/kernel/hints/{scoped_key_validation_request_and_generator.d.ts → scoped_key_validation_request_and_separator.d.ts} +8 -8
- package/dest/kernel/hints/{scoped_key_validation_request_and_generator.d.ts.map → scoped_key_validation_request_and_separator.d.ts.map} +1 -1
- package/dest/kernel/hints/{scoped_key_validation_request_and_generator.js → scoped_key_validation_request_and_separator.js} +6 -6
- package/dest/kernel/private_circuit_public_inputs.d.ts +9 -9
- package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_circuit_public_inputs.js +16 -16
- package/dest/kernel/private_kernel_circuit_public_inputs.d.ts +3 -3
- package/dest/kernel/private_kernel_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_circuit_public_inputs.js +4 -4
- package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts +3 -3
- package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_tail_circuit_private_inputs.js +4 -4
- package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts +4 -3
- package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_tail_circuit_public_inputs.js +11 -7
- package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts +3 -3
- package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_to_public_kernel_circuit_public_inputs.js +7 -7
- package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts +3 -3
- package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.js +7 -7
- package/dest/kernel/private_validation_requests.d.ts +3 -3
- package/dest/kernel/private_validation_requests.js +9 -9
- package/dest/keys/derivation.d.ts +3 -3
- package/dest/keys/derivation.js +15 -15
- package/dest/keys/key_types.d.ts +3 -3
- package/dest/keys/key_types.d.ts.map +1 -1
- package/dest/keys/public_keys.js +2 -2
- package/dest/keys/utils.d.ts +1 -1
- package/dest/keys/utils.d.ts.map +1 -1
- package/dest/keys/utils.js +8 -4
- 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/debug_log_store.d.ts +30 -0
- package/dest/logs/debug_log_store.d.ts.map +1 -0
- package/dest/logs/debug_log_store.js +30 -0
- package/dest/logs/extended_directional_app_tagging_secret.d.ts +47 -0
- package/dest/logs/extended_directional_app_tagging_secret.d.ts.map +1 -0
- package/dest/logs/{directional_app_tagging_secret.js → extended_directional_app_tagging_secret.js} +35 -20
- package/dest/logs/extended_public_log.d.ts +13 -7
- package/dest/logs/extended_public_log.d.ts.map +1 -1
- package/dest/logs/index.d.ts +4 -2
- package/dest/logs/index.d.ts.map +1 -1
- package/dest/logs/index.js +3 -1
- package/dest/logs/log_filter.d.ts +4 -1
- package/dest/logs/log_filter.d.ts.map +1 -1
- package/dest/logs/log_filter.js +2 -1
- package/dest/logs/log_id.d.ts +17 -14
- package/dest/logs/log_id.d.ts.map +1 -1
- package/dest/logs/log_id.js +20 -17
- package/dest/logs/message_context.d.ts +4 -7
- package/dest/logs/message_context.d.ts.map +1 -1
- package/dest/logs/message_context.js +23 -9
- package/dest/logs/pending_tagged_log.d.ts +2 -3
- package/dest/logs/pending_tagged_log.d.ts.map +1 -1
- package/dest/logs/pending_tagged_log.js +2 -2
- package/dest/logs/pre_tag.d.ts +16 -11
- package/dest/logs/pre_tag.d.ts.map +1 -1
- package/dest/logs/pre_tag.js +2 -2
- package/dest/logs/private_log.d.ts +2 -2
- package/dest/logs/private_log.d.ts.map +1 -1
- package/dest/logs/public_log.d.ts +4 -3
- package/dest/logs/public_log.d.ts.map +1 -1
- package/dest/logs/public_log.js +2 -1
- package/dest/logs/shared_secret_derivation.d.ts +11 -10
- package/dest/logs/shared_secret_derivation.d.ts.map +1 -1
- package/dest/logs/shared_secret_derivation.js +15 -9
- package/dest/logs/siloed_tag.d.ts +8 -3
- package/dest/logs/siloed_tag.d.ts.map +1 -1
- package/dest/logs/siloed_tag.js +12 -6
- package/dest/logs/tag.js +1 -1
- package/dest/logs/tagging_index_range.d.ts +40 -0
- package/dest/logs/tagging_index_range.d.ts.map +1 -0
- package/dest/logs/tagging_index_range.js +8 -0
- package/dest/logs/tx_scoped_l2_log.d.ts +3 -1
- package/dest/logs/tx_scoped_l2_log.d.ts.map +1 -1
- package/dest/logs/tx_scoped_l2_log.js +7 -0
- package/dest/messaging/l1_to_l2_message.d.ts +3 -2
- package/dest/messaging/l1_to_l2_message.d.ts.map +1 -1
- package/dest/messaging/l1_to_l2_message.js +11 -13
- 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/messaging/l2_to_l1_membership.d.ts +34 -8
- package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -1
- package/dest/messaging/l2_to_l1_membership.js +72 -29
- package/dest/noir/index.d.ts +3 -3
- package/dest/noir/index.d.ts.map +1 -1
- package/dest/note/index.d.ts +1 -2
- package/dest/note/index.d.ts.map +1 -1
- package/dest/note/index.js +0 -1
- package/dest/note/note_dao.d.ts +1 -1
- package/dest/note/note_dao.d.ts.map +1 -1
- package/dest/note/note_dao.js +1 -4
- package/dest/p2p/attestation_utils.d.ts +11 -1
- package/dest/p2p/attestation_utils.d.ts.map +1 -1
- package/dest/p2p/attestation_utils.js +45 -0
- package/dest/p2p/block_proposal.d.ts +11 -4
- package/dest/p2p/block_proposal.d.ts.map +1 -1
- package/dest/p2p/block_proposal.js +2 -4
- package/dest/p2p/checkpoint_attestation.d.ts +2 -1
- package/dest/p2p/checkpoint_attestation.d.ts.map +1 -1
- package/dest/p2p/checkpoint_attestation.js +1 -1
- package/dest/p2p/checkpoint_proposal.d.ts +27 -13
- package/dest/p2p/checkpoint_proposal.d.ts.map +1 -1
- package/dest/p2p/checkpoint_proposal.js +30 -38
- package/dest/p2p/client_type.d.ts +2 -5
- package/dest/p2p/client_type.d.ts.map +1 -1
- package/dest/p2p/client_type.js +0 -7
- package/dest/p2p/consensus_payload.d.ts +12 -3
- package/dest/p2p/consensus_payload.d.ts.map +1 -1
- package/dest/p2p/consensus_payload.js +22 -15
- package/dest/p2p/constants.d.ts +3 -1
- package/dest/p2p/constants.d.ts.map +1 -1
- package/dest/p2p/constants.js +1 -0
- package/dest/p2p/index.d.ts +1 -2
- package/dest/p2p/index.d.ts.map +1 -1
- package/dest/p2p/index.js +0 -1
- package/dest/p2p/peer_error.d.ts +3 -1
- package/dest/p2p/peer_error.d.ts.map +1 -1
- package/dest/p2p/peer_error.js +5 -0
- package/dest/p2p/topic_type.d.ts +3 -4
- package/dest/p2p/topic_type.d.ts.map +1 -1
- package/dest/p2p/topic_type.js +7 -24
- 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 +85 -10
- package/dest/rollup/checkpoint_header.d.ts +2 -2
- package/dest/rollup/checkpoint_header.js +2 -2
- package/dest/rollup/checkpoint_rollup_public_inputs.d.ts +6 -6
- package/dest/rollup/checkpoint_rollup_public_inputs.d.ts.map +1 -1
- package/dest/rollup/checkpoint_rollup_public_inputs.js +2 -2
- package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts +2 -2
- package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/root_rollup_public_inputs.d.ts +6 -6
- package/dest/rollup/root_rollup_public_inputs.d.ts.map +1 -1
- package/dest/rollup/root_rollup_public_inputs.js +3 -3
- package/dest/slashing/helpers.d.ts +2 -2
- package/dest/slashing/helpers.d.ts.map +1 -1
- package/dest/slashing/helpers.js +6 -0
- 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 +10 -92
- package/dest/slashing/types.d.ts.map +1 -1
- package/dest/slashing/types.js +13 -15
- package/dest/slashing/{tally.d.ts → votes.d.ts} +8 -2
- package/dest/slashing/votes.d.ts.map +1 -0
- package/dest/slashing/{tally.js → votes.js} +35 -3
- package/dest/stats/stats.d.ts +1 -3
- package/dest/stats/stats.d.ts.map +1 -1
- package/dest/tests/factories.d.ts +4 -4
- package/dest/tests/factories.d.ts.map +1 -1
- package/dest/tests/factories.js +32 -41
- package/dest/tests/mocks.d.ts +12 -3
- package/dest/tests/mocks.d.ts.map +1 -1
- package/dest/tests/mocks.js +46 -40
- package/dest/timetable/index.d.ts +87 -0
- package/dest/timetable/index.d.ts.map +1 -0
- package/dest/timetable/index.js +229 -0
- package/dest/trees/public_data_leaf.d.ts +2 -1
- package/dest/trees/public_data_leaf.d.ts.map +1 -1
- package/dest/trees/public_data_leaf.js +7 -6
- package/dest/tx/block_header.d.ts +5 -2
- package/dest/tx/block_header.d.ts.map +1 -1
- package/dest/tx/block_header.js +8 -3
- package/dest/tx/capsule.d.ts +6 -2
- package/dest/tx/capsule.d.ts.map +1 -1
- package/dest/tx/capsule.js +9 -3
- package/dest/tx/global_variable_builder.d.ts +3 -2
- package/dest/tx/global_variable_builder.d.ts.map +1 -1
- package/dest/tx/global_variables.d.ts +4 -4
- package/dest/tx/global_variables.d.ts.map +1 -1
- package/dest/tx/in_tx.d.ts +3 -3
- package/dest/tx/indexed_tx_effect.d.ts +5 -5
- package/dest/tx/indexed_tx_effect.d.ts.map +1 -1
- package/dest/tx/indexed_tx_effect.js +3 -2
- package/dest/tx/private_execution_result.d.ts +6 -6
- package/dest/tx/private_execution_result.d.ts.map +1 -1
- package/dest/tx/private_execution_result.js +6 -6
- package/dest/tx/profiling.d.ts +17 -5
- package/dest/tx/profiling.d.ts.map +1 -1
- package/dest/tx/profiling.js +15 -5
- package/dest/tx/protocol_contracts.d.ts +1 -1
- package/dest/tx/protocol_contracts.d.ts.map +1 -1
- package/dest/tx/protocol_contracts.js +2 -2
- package/dest/tx/public_simulation_output.d.ts +4 -2
- package/dest/tx/public_simulation_output.d.ts.map +1 -1
- package/dest/tx/public_simulation_output.js +7 -3
- package/dest/tx/simulated_tx.d.ts +116 -5
- package/dest/tx/simulated_tx.d.ts.map +1 -1
- package/dest/tx/simulated_tx.js +7 -4
- package/dest/tx/tx.d.ts +6 -5
- package/dest/tx/tx.d.ts.map +1 -1
- package/dest/tx/tx.js +18 -6
- package/dest/tx/tx_receipt.d.ts +33 -10
- package/dest/tx/tx_receipt.d.ts.map +1 -1
- package/dest/tx/tx_receipt.js +25 -21
- package/dest/tx/tx_request.js +2 -2
- package/dest/tx/validator/empty_validator.d.ts +2 -2
- package/dest/tx/validator/empty_validator.d.ts.map +1 -1
- package/dest/tx/validator/error_texts.d.ts +10 -2
- package/dest/tx/validator/error_texts.d.ts.map +1 -1
- package/dest/tx/validator/error_texts.js +11 -1
- package/dest/tx/validator/tx_validator.d.ts +2 -2
- package/dest/tx/validator/tx_validator.d.ts.map +1 -1
- package/dest/update-checker/index.d.ts +3 -2
- package/dest/update-checker/index.d.ts.map +1 -1
- package/dest/update-checker/index.js +2 -1
- package/dest/update-checker/package_version.d.ts +3 -0
- package/dest/update-checker/package_version.d.ts.map +1 -0
- package/dest/update-checker/package_version.js +24 -0
- package/dest/update-checker/version_checker.d.ts +25 -0
- package/dest/update-checker/version_checker.d.ts.map +1 -0
- package/dest/update-checker/version_checker.js +50 -0
- package/dest/validators/errors.d.ts +6 -1
- package/dest/validators/errors.d.ts.map +1 -1
- package/dest/validators/errors.js +7 -0
- package/dest/validators/schemas.d.ts +30 -30
- package/dest/validators/schemas.d.ts.map +1 -1
- package/dest/validators/schemas.js +4 -3
- package/dest/validators/types.d.ts +3 -3
- package/dest/validators/types.d.ts.map +1 -1
- package/dest/versioning/versioning.d.ts +4 -2
- package/dest/versioning/versioning.d.ts.map +1 -1
- package/dest/versioning/versioning.js +4 -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 +26 -13
- package/src/abi/abi.ts +25 -2
- package/src/abi/buffer.ts +25 -4
- package/src/abi/decoder.ts +36 -82
- package/src/abi/encoder.ts +49 -6
- package/src/abi/event_metadata_definition.ts +2 -0
- package/src/abi/function_call.ts +25 -3
- package/src/abi/function_selector.ts +1 -1
- package/src/abi/function_signature_decoder.ts +77 -0
- package/src/abi/index.ts +1 -0
- package/src/abi/selector.ts +1 -1
- package/src/abi/utils.ts +25 -0
- package/src/auth_witness/auth_witness.ts +3 -3
- package/src/avm/revert_code.ts +26 -25
- package/src/block/block_data.ts +26 -0
- package/src/block/block_hash.ts +26 -47
- package/src/block/block_parameter.ts +3 -3
- package/src/block/in_block.ts +6 -6
- package/src/block/index.ts +1 -0
- package/src/block/l2_block.ts +15 -2
- package/src/block/l2_block_source.ts +51 -11
- package/src/block/l2_block_stream/l2_block_stream.ts +21 -0
- package/src/block/l2_block_stream/l2_tips_store_base.ts +24 -12
- package/src/block/test/l2_tips_store_test_suite.ts +8 -1
- package/src/checkpoint/checkpoint.ts +54 -17
- package/src/checkpoint/checkpoint_data.ts +87 -0
- package/src/checkpoint/index.ts +2 -0
- package/src/checkpoint/published_checkpoint.ts +3 -1
- package/src/checkpoint/validate.ts +230 -0
- package/src/config/index.ts +2 -0
- package/src/config/pipelining-config.ts +31 -0
- package/src/config/sequencer-config.ts +47 -0
- package/src/contract/contract_address.ts +7 -7
- package/src/contract/contract_class.ts +3 -3
- package/src/contract/contract_class_id.ts +7 -6
- package/src/contract/index.ts +0 -2
- package/src/contract/interfaces/contract_class.ts +2 -82
- package/src/contract/interfaces/node-info.ts +3 -0
- package/src/contract/private_function.ts +2 -2
- package/src/database-version/database_version.ts +87 -0
- package/src/database-version/version_manager.ts +1 -77
- package/src/epoch-helpers/index.ts +39 -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/file-store/local.ts +15 -5
- package/src/file-store/s3.ts +12 -3
- package/src/gas/README.md +123 -0
- package/src/gas/gas_fees.ts +15 -1
- package/src/gas/gas_settings.ts +65 -12
- package/src/ha-signing/config.ts +156 -0
- package/src/ha-signing/index.ts +27 -0
- package/src/ha-signing/local_config.ts +46 -0
- package/src/ha-signing/types.ts +112 -0
- package/src/hash/hash.ts +48 -10
- package/src/hash/map_slot.ts +3 -2
- package/src/interfaces/allowed_element.ts +29 -9
- package/src/interfaces/archiver.ts +14 -5
- package/src/interfaces/aztec-node-admin.ts +31 -9
- package/src/interfaces/aztec-node-debug.ts +40 -0
- package/src/interfaces/aztec-node.ts +67 -99
- package/src/interfaces/block-builder.ts +68 -11
- package/src/interfaces/client.ts +1 -0
- package/src/interfaces/configs.ts +36 -8
- package/src/interfaces/l2_logs_source.ts +4 -1
- package/src/interfaces/merkle_tree_operations.ts +9 -19
- package/src/interfaces/p2p.ts +3 -14
- package/src/interfaces/prover-broker.ts +22 -0
- package/src/interfaces/prover-client.ts +15 -0
- package/src/interfaces/slasher.ts +4 -6
- package/src/interfaces/validator.ts +57 -33
- package/src/interfaces/world_state.ts +4 -3
- package/src/kernel/hints/build_note_hash_read_request_hints.ts +14 -18
- package/src/kernel/hints/build_nullifier_read_request_hints.ts +15 -18
- package/src/kernel/hints/build_transient_data_hints.ts +17 -2
- package/src/kernel/hints/index.ts +2 -2
- package/src/kernel/hints/{key_validation_request_and_generator.ts → key_validation_request_and_separator.ts} +12 -15
- package/src/kernel/hints/{scoped_key_validation_request_and_generator.ts → scoped_key_validation_request_and_separator.ts} +10 -10
- package/src/kernel/private_circuit_public_inputs.ts +14 -14
- package/src/kernel/private_kernel_circuit_public_inputs.ts +2 -2
- package/src/kernel/private_kernel_tail_circuit_private_inputs.ts +2 -2
- package/src/kernel/private_kernel_tail_circuit_public_inputs.ts +14 -5
- package/src/kernel/private_to_public_kernel_circuit_public_inputs.ts +5 -5
- package/src/kernel/private_to_rollup_kernel_circuit_public_inputs.ts +5 -5
- package/src/kernel/private_validation_requests.ts +8 -8
- package/src/keys/derivation.ts +15 -15
- package/src/keys/key_types.ts +6 -2
- package/src/keys/public_keys.ts +2 -2
- package/src/keys/utils.ts +8 -4
- 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/debug_log_store.ts +54 -0
- package/src/logs/{directional_app_tagging_secret.ts → extended_directional_app_tagging_secret.ts} +41 -22
- package/src/logs/index.ts +3 -1
- package/src/logs/log_filter.ts +5 -0
- package/src/logs/log_id.ts +22 -18
- package/src/logs/message_context.ts +17 -7
- package/src/logs/pending_tagged_log.ts +1 -3
- package/src/logs/pre_tag.ts +5 -5
- package/src/logs/public_log.ts +4 -2
- package/src/logs/shared_secret_derivation.ts +21 -10
- package/src/logs/siloed_tag.ts +15 -4
- package/src/logs/tag.ts +1 -1
- package/src/logs/tagging_index_range.ts +24 -0
- package/src/logs/tx_scoped_l2_log.ts +16 -0
- package/src/messaging/l1_to_l2_message.ts +12 -9
- package/src/messaging/l1_to_l2_message_source.ts +3 -1
- package/src/messaging/l2_to_l1_membership.ts +101 -36
- package/src/noir/index.ts +2 -2
- package/src/note/index.ts +0 -1
- package/src/note/note_dao.ts +1 -4
- package/src/p2p/attestation_utils.ts +56 -0
- package/src/p2p/block_proposal.ts +10 -5
- package/src/p2p/checkpoint_attestation.ts +6 -1
- package/src/p2p/checkpoint_proposal.ts +61 -52
- package/src/p2p/client_type.ts +0 -6
- package/src/p2p/consensus_payload.ts +25 -12
- package/src/p2p/constants.ts +3 -0
- package/src/p2p/index.ts +0 -1
- package/src/p2p/peer_error.ts +7 -0
- package/src/p2p/topic_type.ts +8 -15
- package/src/proofs/chonk_proof.ts +91 -5
- package/src/rollup/checkpoint_header.ts +2 -2
- package/src/rollup/checkpoint_rollup_public_inputs.ts +5 -5
- package/src/rollup/root_rollup_public_inputs.ts +7 -7
- package/src/slashing/helpers.ts +8 -0
- package/src/slashing/index.ts +1 -2
- package/src/slashing/serialization.ts +1 -81
- package/src/slashing/types.ts +17 -35
- package/src/slashing/{tally.ts → votes.ts} +41 -2
- package/src/stats/stats.ts +0 -2
- package/src/tests/factories.ts +31 -51
- package/src/tests/mocks.ts +63 -33
- package/src/timetable/index.ts +346 -0
- package/src/trees/public_data_leaf.ts +11 -5
- package/src/tx/block_header.ts +14 -5
- package/src/tx/capsule.ts +10 -2
- package/src/tx/global_variable_builder.ts +2 -0
- package/src/tx/global_variables.ts +3 -3
- package/src/tx/indexed_tx_effect.ts +3 -2
- package/src/tx/private_execution_result.ts +5 -5
- package/src/tx/profiling.ts +14 -5
- package/src/tx/protocol_contracts.ts +2 -2
- package/src/tx/public_simulation_output.ts +4 -0
- package/src/tx/simulated_tx.ts +14 -3
- package/src/tx/tx.ts +20 -11
- package/src/tx/tx_receipt.ts +32 -20
- package/src/tx/tx_request.ts +2 -2
- package/src/tx/validator/empty_validator.ts +1 -1
- package/src/tx/validator/error_texts.ts +13 -1
- package/src/tx/validator/tx_validator.ts +1 -1
- package/src/update-checker/index.ts +2 -1
- package/src/update-checker/package_version.ts +30 -0
- package/src/update-checker/version_checker.ts +65 -0
- package/src/validators/errors.ts +9 -0
- package/src/validators/schemas.ts +8 -1
- package/src/validators/types.ts +5 -4
- package/src/versioning/versioning.ts +4 -1
- package/src/world-state/genesis_data.ts +15 -0
- package/src/world-state/index.ts +1 -0
- 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/database-version/index.d.ts +0 -2
- package/dest/database-version/index.d.ts.map +0 -1
- package/dest/database-version/index.js +0 -1
- package/dest/kernel/hints/key_validation_request_and_generator.d.ts +0 -30
- package/dest/kernel/hints/key_validation_request_and_generator.d.ts.map +0 -1
- package/dest/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 -157
- package/dest/logs/directional_app_tagging_secret.d.ts +0 -40
- package/dest/logs/directional_app_tagging_secret.d.ts.map +0 -1
- package/dest/note/notes_filter.d.ts +0 -27
- package/dest/note/notes_filter.d.ts.map +0 -1
- package/dest/note/notes_filter.js +0 -11
- package/dest/slashing/empire.d.ts +0 -31
- package/dest/slashing/empire.d.ts.map +0 -1
- package/dest/slashing/empire.js +0 -85
- package/dest/slashing/tally.d.ts.map +0 -1
- package/dest/update-checker/update-checker.d.ts +0 -49
- package/dest/update-checker/update-checker.d.ts.map +0 -1
- package/dest/update-checker/update-checker.js +0 -130
- package/src/contract/private_function_membership_proof.ts +0 -167
- package/src/contract/utility_function_membership_proof.ts +0 -118
- package/src/database-version/index.ts +0 -1
- package/src/l1-contracts/slash_factory.ts +0 -179
- package/src/note/notes_filter.ts +0 -38
- package/src/slashing/empire.ts +0 -102
- package/src/update-checker/update-checker.ts +0 -166
package/dest/tests/mocks.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { MAX_ENQUEUED_CALLS_PER_TX, MAX_NULLIFIERS_PER_TX, MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX, MAX_TX_LIFETIME, PRIVATE_TX_L2_GAS_OVERHEAD, PUBLIC_TX_L2_GAS_OVERHEAD, TX_DA_GAS_OVERHEAD } from '@aztec/constants';
|
|
2
2
|
import { makeTuple } from '@aztec/foundation/array';
|
|
3
3
|
import { BlockNumber, CheckpointNumber, IndexWithinCheckpoint, SlotNumber } from '@aztec/foundation/branded-types';
|
|
4
4
|
import { Buffer32 } from '@aztec/foundation/buffer';
|
|
@@ -38,20 +38,22 @@ import { ChonkProof } from '../proofs/chonk_proof.js';
|
|
|
38
38
|
import { ProvingRequestType } from '../proofs/proving_request_type.js';
|
|
39
39
|
import { CheckpointHeader } from '../rollup/checkpoint_header.js';
|
|
40
40
|
import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
|
|
41
|
-
import { GlobalVariables, HashedValues, PrivateCallExecutionResult, PrivateExecutionResult, Tx, TxConstantData, makeProcessedTxFromPrivateOnlyTx, makeProcessedTxFromTxWithPublicCalls } from '../tx/index.js';
|
|
41
|
+
import { BlockHeader, GlobalVariables, HashedValues, PrivateCallExecutionResult, PrivateExecutionResult, Tx, TxConstantData, makeProcessedTxFromPrivateOnlyTx, makeProcessedTxFromTxWithPublicCalls } from '../tx/index.js';
|
|
42
42
|
import { NestedProcessReturnValues, PublicSimulationOutput } from '../tx/public_simulation_output.js';
|
|
43
43
|
import { TxSimulationResult } from '../tx/simulated_tx.js';
|
|
44
44
|
import { TxEffect } from '../tx/tx_effect.js';
|
|
45
45
|
import { TxHash } from '../tx/tx_hash.js';
|
|
46
46
|
import { makeAvmCircuitInputs, makeAztecAddress, makeBlockHeader, makeCheckpointHeader, makeGas, makeGlobalVariables, makePrivateToPublicAccumulatedData, makePrivateToRollupAccumulatedData, makeProtocolContracts, makePublicCallRequest, makePublicDataWrite } from './factories.js';
|
|
47
47
|
export const randomTxHash = ()=>TxHash.random();
|
|
48
|
-
export const mockTx = async (seed = 1, { numberOfNonRevertiblePublicCallRequests = MAX_ENQUEUED_CALLS_PER_TX / 2, numberOfRevertiblePublicCallRequests = MAX_ENQUEUED_CALLS_PER_TX / 2, numberOfRevertibleNullifiers = 0, hasPublicTeardownCallRequest = false, publicCalldataSize = 2, feePayer, chonkProof = ChonkProof.random(), maxPriorityFeesPerGas, gasUsed = Gas.empty(), chainId = Fr.ZERO, version = Fr.ZERO, vkTreeRoot = Fr.ZERO, protocolContractsHash = Fr.ZERO } = {})=>{
|
|
48
|
+
export const mockTx = async (seed = 1, { numberOfNonRevertiblePublicCallRequests = MAX_ENQUEUED_CALLS_PER_TX / 2, numberOfRevertiblePublicCallRequests = MAX_ENQUEUED_CALLS_PER_TX / 2, numberOfRevertibleNullifiers = 0, hasPublicTeardownCallRequest = false, publicCalldataSize = 2, feePayer, chonkProof = ChonkProof.random(), gasLimits, maxFeesPerGas = new GasFees(10, 10), maxPriorityFeesPerGas, gasUsed = Gas.empty(), chainId = Fr.ZERO, version = Fr.ZERO, vkTreeRoot = Fr.ZERO, protocolContractsHash = Fr.ZERO, anchorBlockHeader = BlockHeader.empty() } = {})=>{
|
|
49
49
|
const totalPublicCallRequests = numberOfNonRevertiblePublicCallRequests + numberOfRevertiblePublicCallRequests + (hasPublicTeardownCallRequest ? 1 : 0);
|
|
50
50
|
const isForPublic = totalPublicCallRequests > 0;
|
|
51
51
|
const data = PrivateKernelTailCircuitPublicInputs.empty();
|
|
52
52
|
const firstNullifier = new Nullifier(new Fr(seed + 1), Fr.ZERO, 0);
|
|
53
|
-
data.constants.
|
|
54
|
-
|
|
53
|
+
data.constants.anchorBlockHeader = anchorBlockHeader;
|
|
54
|
+
data.constants.txContext.gasSettings = GasSettings.fallback({
|
|
55
|
+
gasLimits,
|
|
56
|
+
maxFeesPerGas,
|
|
55
57
|
maxPriorityFeesPerGas
|
|
56
58
|
});
|
|
57
59
|
data.feePayer = feePayer ?? await AztecAddress.random();
|
|
@@ -60,8 +62,8 @@ export const mockTx = async (seed = 1, { numberOfNonRevertiblePublicCallRequests
|
|
|
60
62
|
data.constants.txContext.version = version;
|
|
61
63
|
data.constants.vkTreeRoot = vkTreeRoot;
|
|
62
64
|
data.constants.protocolContractsHash = protocolContractsHash;
|
|
63
|
-
// Set
|
|
64
|
-
data.
|
|
65
|
+
// Set expirationTimestamp to the maximum allowed duration from the current time.
|
|
66
|
+
data.expirationTimestamp = BigInt(Math.floor(Date.now() / 1000) + MAX_TX_LIFETIME);
|
|
65
67
|
const publicFunctionCalldata = [];
|
|
66
68
|
if (!isForPublic) {
|
|
67
69
|
data.forRollup.end.nullifiers[0] = firstNullifier.value;
|
|
@@ -99,13 +101,13 @@ export const mockTxForRollup = (seed = 1, opts = {})=>mockTx(seed, {
|
|
|
99
101
|
numberOfNonRevertiblePublicCallRequests: 0,
|
|
100
102
|
numberOfRevertiblePublicCallRequests: 0
|
|
101
103
|
});
|
|
102
|
-
/** Mock a processed tx for testing purposes. */ export async function mockProcessedTx({ seed = 1, anchorBlockHeader, db, chainId = Fr.ZERO, version = Fr.ZERO, gasSettings = GasSettings.
|
|
104
|
+
/** Mock a processed tx for testing purposes. */ export async function mockProcessedTx({ seed = 1, anchorBlockHeader, db, chainId = Fr.ZERO, version = Fr.ZERO, gasSettings = GasSettings.fallback({
|
|
103
105
|
maxFeesPerGas: new GasFees(10, 10)
|
|
104
106
|
}), vkTreeRoot = Fr.ZERO, protocolContracts = makeProtocolContracts(seed + 0x100), globalVariables = GlobalVariables.empty(), newL1ToL2Snapshot = AppendOnlyTreeSnapshot.empty(), feePayer, feePaymentPublicDataWrite, // The default gasUsed is the tx overhead.
|
|
105
|
-
gasUsed = Gas.from({
|
|
106
|
-
daGas:
|
|
107
|
-
l2Gas:
|
|
108
|
-
}),
|
|
107
|
+
privateOnly = false, gasUsed = Gas.from({
|
|
108
|
+
daGas: TX_DA_GAS_OVERHEAD,
|
|
109
|
+
l2Gas: privateOnly ? PRIVATE_TX_L2_GAS_OVERHEAD : PUBLIC_TX_L2_GAS_OVERHEAD
|
|
110
|
+
}), avmAccumulatedData, ...mockTxOpts } = {}) {
|
|
109
111
|
seed *= 0x1000; // Avoid clashing with the previous mock values if seed only increases by 1.
|
|
110
112
|
anchorBlockHeader ??= db?.getInitialHeader() ?? makeBlockHeader(seed);
|
|
111
113
|
feePayer ??= makeAztecAddress(seed + 0x100);
|
|
@@ -214,6 +216,10 @@ export function mockL1ToL2Messages(numL1ToL2Messages) {
|
|
|
214
216
|
}
|
|
215
217
|
export async function mockCheckpointAndMessages(checkpointNumber, { startBlockNumber = BlockNumber(1), numBlocks = 1, blocks, numTxsPerBlock = 1, numL1ToL2Messages = 1, makeBlockOptions = ()=>({}), previousArchive, maxEffects, ...options } = {}) {
|
|
216
218
|
const slotNumber = options.slotNumber ?? SlotNumber(Number(checkpointNumber) * 10);
|
|
219
|
+
const globals = GlobalVariables.random({
|
|
220
|
+
slotNumber,
|
|
221
|
+
...options
|
|
222
|
+
});
|
|
217
223
|
const blocksAndMessages = [];
|
|
218
224
|
// Track the previous block's archive to ensure consecutive blocks have consistent archive roots.
|
|
219
225
|
// The current block's header.lastArchive must equal the previous block's archive.
|
|
@@ -226,11 +232,11 @@ export async function mockCheckpointAndMessages(checkpointNumber, { startBlockNu
|
|
|
226
232
|
const blockNumber = BlockNumber(startBlockNumber + i);
|
|
227
233
|
const { block, messages } = {
|
|
228
234
|
block: blocks?.[i] ?? await L2Block.random(blockNumber, {
|
|
235
|
+
...globals,
|
|
229
236
|
checkpointNumber,
|
|
230
237
|
indexWithinCheckpoint: IndexWithinCheckpoint(i),
|
|
231
238
|
txsPerBlock: numTxsPerBlock,
|
|
232
239
|
txOptions,
|
|
233
|
-
slotNumber,
|
|
234
240
|
...options,
|
|
235
241
|
...makeBlockOptions(blockNumber),
|
|
236
242
|
...lastArchive ? {
|
|
@@ -248,17 +254,17 @@ export async function mockCheckpointAndMessages(checkpointNumber, { startBlockNu
|
|
|
248
254
|
}
|
|
249
255
|
const messages = blocksAndMessages[0].messages;
|
|
250
256
|
const inHash = computeInHashFromL1ToL2Messages(messages);
|
|
257
|
+
const firstBlockLastArchive = blocksAndMessages[0].block.header.lastArchive;
|
|
251
258
|
const checkpoint = await Checkpoint.random(checkpointNumber, {
|
|
252
259
|
numBlocks: 0,
|
|
253
|
-
slotNumber,
|
|
254
260
|
inHash,
|
|
255
|
-
...options
|
|
261
|
+
...options,
|
|
262
|
+
...globals,
|
|
263
|
+
lastArchive: firstBlockLastArchive,
|
|
264
|
+
lastArchiveRoot: firstBlockLastArchive.root,
|
|
265
|
+
archive: lastArchive
|
|
256
266
|
});
|
|
257
267
|
checkpoint.blocks = blocksAndMessages.map(({ block })=>block);
|
|
258
|
-
// Set the checkpoint's archive to match the last block's archive for proper chaining.
|
|
259
|
-
// When the archiver reconstructs checkpoints from L1, it uses the checkpoint's archive root
|
|
260
|
-
// from the L1 event to set the last block's archive. Without this, the archive chain breaks.
|
|
261
|
-
checkpoint.archive = lastArchive;
|
|
262
268
|
// Return lastArchive so callers can chain it across multiple checkpoints
|
|
263
269
|
return {
|
|
264
270
|
checkpoint,
|
|
@@ -297,10 +303,11 @@ export const randomDeployedContract = async ()=>{
|
|
|
297
303
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
298
304
|
const makeAndSignConsensusPayload = (domainSeparator, options)=>{
|
|
299
305
|
const header = options?.header ?? makeCheckpointHeader(1);
|
|
300
|
-
const { signer = Secp256k1Signer.random(), archive = Fr.random() } = options ?? {};
|
|
306
|
+
const { signer = Secp256k1Signer.random(), archive = Fr.random(), feeAssetPriceModifier = 0n } = options ?? {};
|
|
301
307
|
const payload = ConsensusPayload.fromFields({
|
|
302
308
|
header,
|
|
303
|
-
archive
|
|
309
|
+
archive,
|
|
310
|
+
feeAssetPriceModifier
|
|
304
311
|
});
|
|
305
312
|
const hash = getHashedSignaturePayloadEthSignedMessage(payload, domainSeparator);
|
|
306
313
|
const signature = signer.sign(hash);
|
|
@@ -331,34 +338,31 @@ export const makeBlockProposal = (options)=>{
|
|
|
331
338
|
const signer = options?.signer ?? Secp256k1Signer.random();
|
|
332
339
|
return BlockProposal.createProposalFromSigner(blockHeader, indexWithinCheckpoint, inHash, archiveRoot, txHashes, txs, (_payload, _context)=>Promise.resolve(signer.signMessage(_payload)));
|
|
333
340
|
};
|
|
334
|
-
export const makeCheckpointProposal = (options)=>{
|
|
335
|
-
const blockHeader = options?.lastBlock?.blockHeader ?? makeBlockHeader(1);
|
|
341
|
+
export const makeCheckpointProposal = async (options)=>{
|
|
336
342
|
const checkpointHeader = options?.checkpointHeader ?? makeCheckpointHeader(1);
|
|
337
343
|
const archiveRoot = options?.archiveRoot ?? Fr.random();
|
|
344
|
+
const feeAssetPriceModifier = options?.feeAssetPriceModifier ?? 0n;
|
|
338
345
|
const signer = options?.signer ?? Secp256k1Signer.random();
|
|
339
|
-
// Build
|
|
340
|
-
const
|
|
341
|
-
blockHeader,
|
|
346
|
+
// Build a signed block proposal if lastBlock options are provided
|
|
347
|
+
const lastBlockProposal = options?.lastBlock ? await makeBlockProposal({
|
|
348
|
+
blockHeader: options.lastBlock.blockHeader,
|
|
342
349
|
indexWithinCheckpoint: options.lastBlock.indexWithinCheckpoint ?? IndexWithinCheckpoint(4),
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
].map(()=>TxHash.random()),
|
|
351
|
-
txs: options.lastBlock.txs
|
|
352
|
-
} : undefined;
|
|
353
|
-
return CheckpointProposal.createProposalFromSigner(checkpointHeader, archiveRoot, lastBlockInfo, (payload)=>Promise.resolve(signer.signMessage(payload)));
|
|
350
|
+
inHash: checkpointHeader.inHash,
|
|
351
|
+
archiveRoot,
|
|
352
|
+
txHashes: options.lastBlock.txHashes,
|
|
353
|
+
txs: options.lastBlock.txs,
|
|
354
|
+
signer
|
|
355
|
+
}) : undefined;
|
|
356
|
+
return CheckpointProposal.createProposalFromSigner(checkpointHeader, archiveRoot, feeAssetPriceModifier, lastBlockProposal, (payload)=>Promise.resolve(signer.signMessage(payload)));
|
|
354
357
|
};
|
|
355
358
|
/**
|
|
356
359
|
* Create a checkpoint attestation for testing
|
|
357
360
|
*/ export const makeCheckpointAttestation = (options = {})=>{
|
|
358
361
|
const header = options.header ?? makeCheckpointHeader(1);
|
|
359
362
|
const archive = options.archive ?? Fr.random();
|
|
363
|
+
const feeAssetPriceModifier = options.feeAssetPriceModifier ?? 0n;
|
|
360
364
|
const { signer, attesterSigner = signer, proposerSigner = signer } = options;
|
|
361
|
-
const payload = new ConsensusPayload(header, archive);
|
|
365
|
+
const payload = new ConsensusPayload(header, archive, feeAssetPriceModifier);
|
|
362
366
|
// Sign as attester
|
|
363
367
|
const attestationHash = getHashedSignaturePayloadEthSignedMessage(payload, SignatureDomainSeparator.checkpointAttestation);
|
|
364
368
|
const attestationSigner = attesterSigner ?? Secp256k1Signer.random();
|
|
@@ -366,7 +370,7 @@ export const makeCheckpointProposal = (options)=>{
|
|
|
366
370
|
// Sign as proposer - use CheckpointProposal's payload format (serializeToBuffer)
|
|
367
371
|
// This is different from ConsensusPayload's format (ABI encoding)
|
|
368
372
|
const proposalSignerToUse = proposerSigner ?? Secp256k1Signer.random();
|
|
369
|
-
const tempProposal = new CheckpointProposal(header, archive, Signature.empty());
|
|
373
|
+
const tempProposal = new CheckpointProposal(header, archive, feeAssetPriceModifier, Signature.empty());
|
|
370
374
|
const proposalHash = getHashedSignaturePayloadEthSignedMessage(tempProposal, SignatureDomainSeparator.checkpointProposal);
|
|
371
375
|
const proposerSignature = proposalSignerToUse.sign(proposalHash);
|
|
372
376
|
return new CheckpointAttestation(payload, attestationSignature, proposerSignature);
|
|
@@ -374,7 +378,7 @@ export const makeCheckpointProposal = (options)=>{
|
|
|
374
378
|
/**
|
|
375
379
|
* Create a checkpoint attestation from a checkpoint proposal
|
|
376
380
|
*/ export const makeCheckpointAttestationFromProposal = (proposal, attesterSigner)=>{
|
|
377
|
-
const payload = new ConsensusPayload(proposal.checkpointHeader, proposal.archive);
|
|
381
|
+
const payload = new ConsensusPayload(proposal.checkpointHeader, proposal.archive, proposal.feeAssetPriceModifier);
|
|
378
382
|
// Sign as attester
|
|
379
383
|
const attestationHash = getHashedSignaturePayloadEthSignedMessage(payload, SignatureDomainSeparator.checkpointAttestation);
|
|
380
384
|
const attestationSigner = attesterSigner ?? Secp256k1Signer.random();
|
|
@@ -387,9 +391,11 @@ export const makeCheckpointProposal = (options)=>{
|
|
|
387
391
|
*/ export const makeCheckpointAttestationFromCheckpoint = (checkpoint, attesterSigner, proposerSigner)=>{
|
|
388
392
|
const header = checkpoint.header;
|
|
389
393
|
const archive = checkpoint.archive.root;
|
|
394
|
+
const feeAssetPriceModifier = checkpoint.feeAssetPriceModifier;
|
|
390
395
|
return makeCheckpointAttestation({
|
|
391
396
|
header,
|
|
392
397
|
archive,
|
|
398
|
+
feeAssetPriceModifier,
|
|
393
399
|
attesterSigner,
|
|
394
400
|
proposerSigner
|
|
395
401
|
});
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Timetable constants used for sequencer timing calculations.
|
|
3
|
+
* These define the time budgets for various phases of block production.
|
|
4
|
+
*
|
|
5
|
+
* The sequencer slot is divided into phases:
|
|
6
|
+
* 1. Checkpoint initialization (sync + proposer check)
|
|
7
|
+
* 2. Block building (execution)
|
|
8
|
+
* 3. Checkpoint assembly
|
|
9
|
+
* 4. P2P propagation for proposal and attestations (round-trip)
|
|
10
|
+
* 5. L1 publishing
|
|
11
|
+
*/
|
|
12
|
+
/** Time budget for checkpoint initialization (sync + proposer check) in seconds */
|
|
13
|
+
export declare const CHECKPOINT_INITIALIZATION_TIME = 1;
|
|
14
|
+
/** Time budget for assembling a checkpoint after building the last block in seconds */
|
|
15
|
+
export declare const CHECKPOINT_ASSEMBLE_TIME = 1;
|
|
16
|
+
/** Default one-way P2P propagation time for proposals and attestations in seconds */
|
|
17
|
+
export declare const DEFAULT_P2P_PROPAGATION_TIME = 2;
|
|
18
|
+
/** Default L1 publishing time (matches Ethereum slot duration on mainnet) in seconds */
|
|
19
|
+
export declare const DEFAULT_L1_PUBLISHING_TIME = 12;
|
|
20
|
+
/** Minimum execution time for building a block in seconds */
|
|
21
|
+
export declare const MIN_EXECUTION_TIME = 2;
|
|
22
|
+
export type CheckpointTimingConfig = {
|
|
23
|
+
aztecSlotDuration: number;
|
|
24
|
+
ethereumSlotDuration?: number;
|
|
25
|
+
blockDuration?: number;
|
|
26
|
+
checkpointAssembleTime?: number;
|
|
27
|
+
checkpointInitializationTime?: number;
|
|
28
|
+
l1PublishingTime?: number;
|
|
29
|
+
minExecutionTime?: number;
|
|
30
|
+
p2pPropagationTime?: number;
|
|
31
|
+
pipelining?: boolean;
|
|
32
|
+
};
|
|
33
|
+
export interface CheckpointTiming {
|
|
34
|
+
readonly aztecSlotDuration: number;
|
|
35
|
+
readonly blockDuration: number | undefined;
|
|
36
|
+
readonly checkpointAssembleTime: number;
|
|
37
|
+
readonly checkpointInitializationTime: number;
|
|
38
|
+
readonly l1PublishingTime: number;
|
|
39
|
+
readonly minExecutionTime: number;
|
|
40
|
+
readonly p2pPropagationTime: number;
|
|
41
|
+
readonly checkpointFinalizationTime: number;
|
|
42
|
+
readonly pipeliningAttestationGracePeriod: number;
|
|
43
|
+
readonly timeReservedAtEnd: number;
|
|
44
|
+
readonly minimumBuildSlotWork: number;
|
|
45
|
+
readonly initializeDeadline: number;
|
|
46
|
+
readonly checkpointAssemblyDeadline: number;
|
|
47
|
+
readonly checkpointAttestationStartDeadline: number;
|
|
48
|
+
readonly checkpointAttestationDeadline: number;
|
|
49
|
+
readonly checkpointPublishingDeadline: number;
|
|
50
|
+
calculateMaxBlocksPerSlot(): number;
|
|
51
|
+
}
|
|
52
|
+
export interface PipelinedCheckpointTiming extends CheckpointTiming {
|
|
53
|
+
readonly proposalWindowIntoTargetSlot: number;
|
|
54
|
+
readonly attestationWindowIntoTargetSlot: number;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Creates a checkpoint timing model for the requested scheduling mode.
|
|
58
|
+
*
|
|
59
|
+
* Most callers should use this factory and depend only on the shared
|
|
60
|
+
* `CheckpointTiming` interface. The returned implementation is selected from
|
|
61
|
+
* `opts.pipelining`.
|
|
62
|
+
*/
|
|
63
|
+
export declare function createCheckpointTimingModel(opts: CheckpointTimingConfig): CheckpointTiming;
|
|
64
|
+
/**
|
|
65
|
+
* Creates a pipelined checkpoint timing model with target-slot window accessors.
|
|
66
|
+
*
|
|
67
|
+
* Use this when the caller specifically needs the pipelined-only timing surface,
|
|
68
|
+
* such as proposal or attestation acceptance windows into the target slot.
|
|
69
|
+
*/
|
|
70
|
+
export declare function createPipelinedCheckpointTimingModel(opts: Omit<CheckpointTimingConfig, 'pipelining'>): PipelinedCheckpointTiming;
|
|
71
|
+
/**
|
|
72
|
+
* Calculates the maximum number of blocks that can be built in a slot.
|
|
73
|
+
* Used by both the sequencer timetable and p2p gossipsub scoring.
|
|
74
|
+
*
|
|
75
|
+
* @param aztecSlotDurationSec - Aztec slot duration in seconds
|
|
76
|
+
* @param blockDurationSec - Duration per block in seconds (undefined = single block mode)
|
|
77
|
+
* @param opts - Optional overrides for timing constants
|
|
78
|
+
* @returns Maximum number of blocks per slot
|
|
79
|
+
*/
|
|
80
|
+
export declare function calculateMaxBlocksPerSlot(aztecSlotDurationSec: number, blockDurationSec: number | undefined, opts?: {
|
|
81
|
+
checkpointInitializationTime?: number;
|
|
82
|
+
checkpointAssembleTime?: number;
|
|
83
|
+
p2pPropagationTime?: number;
|
|
84
|
+
l1PublishingTime?: number;
|
|
85
|
+
pipelining?: boolean;
|
|
86
|
+
}): number;
|
|
87
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90aW1ldGFibGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7R0FVRztBQUVILG1GQUFtRjtBQUNuRixlQUFPLE1BQU0sOEJBQThCLElBQUksQ0FBQztBQUVoRCx1RkFBdUY7QUFDdkYsZUFBTyxNQUFNLHdCQUF3QixJQUFJLENBQUM7QUFFMUMscUZBQXFGO0FBQ3JGLGVBQU8sTUFBTSw0QkFBNEIsSUFBSSxDQUFDO0FBRTlDLHdGQUF3RjtBQUN4RixlQUFPLE1BQU0sMEJBQTBCLEtBQUssQ0FBQztBQUU3Qyw2REFBNkQ7QUFDN0QsZUFBTyxNQUFNLGtCQUFrQixJQUFJLENBQUM7QUFFcEMsTUFBTSxNQUFNLHNCQUFzQixHQUFHO0lBQ25DLGlCQUFpQixFQUFFLE1BQU0sQ0FBQztJQUMxQixvQkFBb0IsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUM5QixhQUFhLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDdkIsc0JBQXNCLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDaEMsNEJBQTRCLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDdEMsZ0JBQWdCLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDMUIsZ0JBQWdCLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDMUIsa0JBQWtCLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDNUIsVUFBVSxDQUFDLEVBQUUsT0FBTyxDQUFDO0NBQ3RCLENBQUM7QUFFRixNQUFNLFdBQVcsZ0JBQWdCO0lBQy9CLFFBQVEsQ0FBQyxpQkFBaUIsRUFBRSxNQUFNLENBQUM7SUFDbkMsUUFBUSxDQUFDLGFBQWEsRUFBRSxNQUFNLEdBQUcsU0FBUyxDQUFDO0lBQzNDLFFBQVEsQ0FBQyxzQkFBc0IsRUFBRSxNQUFNLENBQUM7SUFDeEMsUUFBUSxDQUFDLDRCQUE0QixFQUFFLE1BQU0sQ0FBQztJQUM5QyxRQUFRLENBQUMsZ0JBQWdCLEVBQUUsTUFBTSxDQUFDO0lBQ2xDLFFBQVEsQ0FBQyxnQkFBZ0IsRUFBRSxNQUFNLENBQUM7SUFDbEMsUUFBUSxDQUFDLGtCQUFrQixFQUFFLE1BQU0sQ0FBQztJQUNwQyxRQUFRLENBQUMsMEJBQTBCLEVBQUUsTUFBTSxDQUFDO0lBQzVDLFFBQVEsQ0FBQyxnQ0FBZ0MsRUFBRSxNQUFNLENBQUM7SUFDbEQsUUFBUSxDQUFDLGlCQUFpQixFQUFFLE1BQU0sQ0FBQztJQUNuQyxRQUFRLENBQUMsb0JBQW9CLEVBQUUsTUFBTSxDQUFDO0lBQ3RDLFFBQVEsQ0FBQyxrQkFBa0IsRUFBRSxNQUFNLENBQUM7SUFDcEMsUUFBUSxDQUFDLDBCQUEwQixFQUFFLE1BQU0sQ0FBQztJQUM1QyxRQUFRLENBQUMsa0NBQWtDLEVBQUUsTUFBTSxDQUFDO0lBQ3BELFFBQVEsQ0FBQyw2QkFBNkIsRUFBRSxNQUFNLENBQUM7SUFDL0MsUUFBUSxDQUFDLDRCQUE0QixFQUFFLE1BQU0sQ0FBQztJQUU5Qyx5QkFBeUIsSUFBSSxNQUFNLENBQUM7Q0FDckM7QUFFRCxNQUFNLFdBQVcseUJBQTBCLFNBQVEsZ0JBQWdCO0lBQ2pFLFFBQVEsQ0FBQyw0QkFBNEIsRUFBRSxNQUFNLENBQUM7SUFDOUMsUUFBUSxDQUFDLCtCQUErQixFQUFFLE1BQU0sQ0FBQztDQUNsRDtBQThJRDs7Ozs7O0dBTUc7QUFDSCx3QkFBZ0IsMkJBQTJCLENBQUMsSUFBSSxFQUFFLHNCQUFzQixHQUFHLGdCQUFnQixDQVMxRjtBQUVEOzs7OztHQUtHO0FBQ0gsd0JBQWdCLG9DQUFvQyxDQUNsRCxJQUFJLEVBQUUsSUFBSSxDQUFDLHNCQUFzQixFQUFFLFlBQVksQ0FBQyxHQUMvQyx5QkFBeUIsQ0FPM0I7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILHdCQUFnQix5QkFBeUIsQ0FDdkMsb0JBQW9CLEVBQUUsTUFBTSxFQUM1QixnQkFBZ0IsRUFBRSxNQUFNLEdBQUcsU0FBUyxFQUNwQyxJQUFJLEdBQUU7SUFDSiw0QkFBNEIsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUN0QyxzQkFBc0IsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUNoQyxrQkFBa0IsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUM1QixnQkFBZ0IsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUMxQixVQUFVLENBQUMsRUFBRSxPQUFPLENBQUM7Q0FDakIsR0FDTCxNQUFNLENBVVIifQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/timetable/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,mFAAmF;AACnF,eAAO,MAAM,8BAA8B,IAAI,CAAC;AAEhD,uFAAuF;AACvF,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAE1C,qFAAqF;AACrF,eAAO,MAAM,4BAA4B,IAAI,CAAC;AAE9C,wFAAwF;AACxF,eAAO,MAAM,0BAA0B,KAAK,CAAC;AAE7C,6DAA6D;AAC7D,eAAO,MAAM,kBAAkB,IAAI,CAAC;AAEpC,MAAM,MAAM,sBAAsB,GAAG;IACnC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3C,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,4BAA4B,EAAE,MAAM,CAAC;IAC9C,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,0BAA0B,EAAE,MAAM,CAAC;IAC5C,QAAQ,CAAC,gCAAgC,EAAE,MAAM,CAAC;IAClD,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,0BAA0B,EAAE,MAAM,CAAC;IAC5C,QAAQ,CAAC,kCAAkC,EAAE,MAAM,CAAC;IACpD,QAAQ,CAAC,6BAA6B,EAAE,MAAM,CAAC;IAC/C,QAAQ,CAAC,4BAA4B,EAAE,MAAM,CAAC;IAE9C,yBAAyB,IAAI,MAAM,CAAC;CACrC;AAED,MAAM,WAAW,yBAA0B,SAAQ,gBAAgB;IACjE,QAAQ,CAAC,4BAA4B,EAAE,MAAM,CAAC;IAC9C,QAAQ,CAAC,+BAA+B,EAAE,MAAM,CAAC;CAClD;AA8ID;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,sBAAsB,GAAG,gBAAgB,CAS1F;AAED;;;;;GAKG;AACH,wBAAgB,oCAAoC,CAClD,IAAI,EAAE,IAAI,CAAC,sBAAsB,EAAE,YAAY,CAAC,GAC/C,yBAAyB,CAO3B;AAED;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CACvC,oBAAoB,EAAE,MAAM,EAC5B,gBAAgB,EAAE,MAAM,GAAG,SAAS,EACpC,IAAI,GAAE;IACJ,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,UAAU,CAAC,EAAE,OAAO,CAAC;CACjB,GACL,MAAM,CAUR"}
|
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Timetable constants used for sequencer timing calculations.
|
|
3
|
+
* These define the time budgets for various phases of block production.
|
|
4
|
+
*
|
|
5
|
+
* The sequencer slot is divided into phases:
|
|
6
|
+
* 1. Checkpoint initialization (sync + proposer check)
|
|
7
|
+
* 2. Block building (execution)
|
|
8
|
+
* 3. Checkpoint assembly
|
|
9
|
+
* 4. P2P propagation for proposal and attestations (round-trip)
|
|
10
|
+
* 5. L1 publishing
|
|
11
|
+
*/ /** Time budget for checkpoint initialization (sync + proposer check) in seconds */ export const CHECKPOINT_INITIALIZATION_TIME = 1;
|
|
12
|
+
/** Time budget for assembling a checkpoint after building the last block in seconds */ export const CHECKPOINT_ASSEMBLE_TIME = 1;
|
|
13
|
+
/** Default one-way P2P propagation time for proposals and attestations in seconds */ export const DEFAULT_P2P_PROPAGATION_TIME = 2;
|
|
14
|
+
/** Default L1 publishing time (matches Ethereum slot duration on mainnet) in seconds */ export const DEFAULT_L1_PUBLISHING_TIME = 12;
|
|
15
|
+
/** Minimum execution time for building a block in seconds */ export const MIN_EXECUTION_TIME = 2;
|
|
16
|
+
/**
|
|
17
|
+
* Shared base for checkpoint timing implementations.
|
|
18
|
+
*
|
|
19
|
+
* This class owns the common inputs and formulas used by both pipelined and
|
|
20
|
+
* non-pipelined scheduling. Variant-specific deadline math is delegated to the
|
|
21
|
+
* concrete subclasses below.
|
|
22
|
+
*/ class BaseCheckpointTiming {
|
|
23
|
+
aztecSlotDuration;
|
|
24
|
+
blockDuration;
|
|
25
|
+
checkpointAssembleTime;
|
|
26
|
+
checkpointInitializationTime;
|
|
27
|
+
l1PublishingTime;
|
|
28
|
+
minExecutionTime;
|
|
29
|
+
p2pPropagationTime;
|
|
30
|
+
constructor(opts){
|
|
31
|
+
this.aztecSlotDuration = opts.aztecSlotDuration;
|
|
32
|
+
this.blockDuration = opts.blockDuration;
|
|
33
|
+
this.checkpointAssembleTime = opts.checkpointAssembleTime ?? CHECKPOINT_ASSEMBLE_TIME;
|
|
34
|
+
this.checkpointInitializationTime = opts.checkpointInitializationTime ?? CHECKPOINT_INITIALIZATION_TIME;
|
|
35
|
+
this.l1PublishingTime = opts.l1PublishingTime ?? DEFAULT_L1_PUBLISHING_TIME;
|
|
36
|
+
this.minExecutionTime = opts.minExecutionTime ?? MIN_EXECUTION_TIME;
|
|
37
|
+
this.p2pPropagationTime = opts.p2pPropagationTime ?? DEFAULT_P2P_PROPAGATION_TIME;
|
|
38
|
+
}
|
|
39
|
+
get checkpointFinalizationTime() {
|
|
40
|
+
// Allow enough time to
|
|
41
|
+
// - build the checkpoint
|
|
42
|
+
// - Round-trip over p2p
|
|
43
|
+
// - Publish to L1
|
|
44
|
+
return this.checkpointAssembleTime + this.p2pPropagationTime * 2 + this.l1PublishingTime;
|
|
45
|
+
}
|
|
46
|
+
get pipeliningAttestationGracePeriod() {
|
|
47
|
+
// Allow enough time to
|
|
48
|
+
// - build the block
|
|
49
|
+
// - pass it back over p2p
|
|
50
|
+
return (this.blockDuration ?? 0) + this.p2pPropagationTime;
|
|
51
|
+
}
|
|
52
|
+
get initializeDeadline() {
|
|
53
|
+
return this.aztecSlotDuration - this.minimumBuildSlotWork;
|
|
54
|
+
}
|
|
55
|
+
get checkpointAttestationStartDeadline() {
|
|
56
|
+
return this.checkpointAssemblyDeadline;
|
|
57
|
+
}
|
|
58
|
+
calculateMaxBlocksPerSlot() {
|
|
59
|
+
if (!this.blockDuration) {
|
|
60
|
+
return 1;
|
|
61
|
+
}
|
|
62
|
+
const timeAvailableForBlocks = this.aztecSlotDuration - this.checkpointInitializationTime - this.timeReservedAtEnd;
|
|
63
|
+
return Math.floor(timeAvailableForBlocks / this.blockDuration);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Checkpoint timing model for the non-pipelined sequencer flow.
|
|
68
|
+
*
|
|
69
|
+
* In this mode, checkpoint assembly, attestation collection, and L1 publishing
|
|
70
|
+
* must all complete within the current Aztec slot.
|
|
71
|
+
*/ class StandardCheckpointTimingModel extends BaseCheckpointTiming {
|
|
72
|
+
get timeReservedAtEnd() {
|
|
73
|
+
return (this.blockDuration ?? 0) + this.checkpointFinalizationTime;
|
|
74
|
+
}
|
|
75
|
+
get minimumBuildSlotWork() {
|
|
76
|
+
return this.checkpointInitializationTime + this.minExecutionTime * 2 + this.checkpointFinalizationTime;
|
|
77
|
+
}
|
|
78
|
+
get checkpointAssemblyDeadline() {
|
|
79
|
+
return this.aztecSlotDuration - this.l1PublishingTime - 2 * this.p2pPropagationTime;
|
|
80
|
+
}
|
|
81
|
+
get checkpointAttestationDeadline() {
|
|
82
|
+
return this.aztecSlotDuration - this.l1PublishingTime;
|
|
83
|
+
}
|
|
84
|
+
get checkpointPublishingDeadline() {
|
|
85
|
+
return this.aztecSlotDuration - this.l1PublishingTime;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Checkpoint timing model for proposer pipelining.
|
|
90
|
+
*
|
|
91
|
+
* In this mode, the build work still starts in the current slot, but checkpoint
|
|
92
|
+
* assembly and attestation collection can extend into the target slot. The extra
|
|
93
|
+
* target-slot window getters are intended for consumers such as P2P validators
|
|
94
|
+
* that need to validate pipelined messages against wallclock time.
|
|
95
|
+
*/ class PipelinedCheckpointTimingModel extends BaseCheckpointTiming {
|
|
96
|
+
get proposalWindowIntoTargetSlot() {
|
|
97
|
+
// Allow the p2p propagation time to receive a checkpoint proposal from leader
|
|
98
|
+
return this.p2pPropagationTime;
|
|
99
|
+
}
|
|
100
|
+
get attestationWindowIntoTargetSlot() {
|
|
101
|
+
return this.aztecSlotDuration - this.l1PublishingTime;
|
|
102
|
+
}
|
|
103
|
+
get timeReservedAtEnd() {
|
|
104
|
+
return this.checkpointAssembleTime + this.p2pPropagationTime;
|
|
105
|
+
}
|
|
106
|
+
get minimumBuildSlotWork() {
|
|
107
|
+
return this.checkpointInitializationTime + this.minExecutionTime * 2;
|
|
108
|
+
}
|
|
109
|
+
get checkpointAssemblyDeadline() {
|
|
110
|
+
// Allow enough time to
|
|
111
|
+
// - build all blocks
|
|
112
|
+
// - receive attestations
|
|
113
|
+
return this.aztecSlotDuration + this.pipeliningAttestationGracePeriod;
|
|
114
|
+
}
|
|
115
|
+
get checkpointAttestationDeadline() {
|
|
116
|
+
// Allowed to be into the next wallclock slot minus the allocated l1 publishing time
|
|
117
|
+
return this.aztecSlotDuration * 2 - this.l1PublishingTime;
|
|
118
|
+
}
|
|
119
|
+
get checkpointPublishingDeadline() {
|
|
120
|
+
// Allowed to be into the next wallclock slot minus the allocated l1 Publishing time
|
|
121
|
+
return this.aztecSlotDuration * 2 - this.l1PublishingTime;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Creates a checkpoint timing model for the requested scheduling mode.
|
|
126
|
+
*
|
|
127
|
+
* Most callers should use this factory and depend only on the shared
|
|
128
|
+
* `CheckpointTiming` interface. The returned implementation is selected from
|
|
129
|
+
* `opts.pipelining`.
|
|
130
|
+
*/ export function createCheckpointTimingModel(opts) {
|
|
131
|
+
validateCheckpointTimingConfig(opts);
|
|
132
|
+
const normalizedOpts = normalizeCheckpointTimingConfig(opts);
|
|
133
|
+
const timing = normalizedOpts.pipelining ? new PipelinedCheckpointTimingModel(normalizedOpts) : new StandardCheckpointTimingModel(normalizedOpts);
|
|
134
|
+
validateCheckpointTimingModel(timing);
|
|
135
|
+
return timing;
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Creates a pipelined checkpoint timing model with target-slot window accessors.
|
|
139
|
+
*
|
|
140
|
+
* Use this when the caller specifically needs the pipelined-only timing surface,
|
|
141
|
+
* such as proposal or attestation acceptance windows into the target slot.
|
|
142
|
+
*/ export function createPipelinedCheckpointTimingModel(opts) {
|
|
143
|
+
validateCheckpointTimingConfig(opts);
|
|
144
|
+
const normalizedOpts = normalizeCheckpointTimingConfig(opts);
|
|
145
|
+
const timing = new PipelinedCheckpointTimingModel(normalizedOpts);
|
|
146
|
+
validateCheckpointTimingModel(timing);
|
|
147
|
+
return timing;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Calculates the maximum number of blocks that can be built in a slot.
|
|
151
|
+
* Used by both the sequencer timetable and p2p gossipsub scoring.
|
|
152
|
+
*
|
|
153
|
+
* @param aztecSlotDurationSec - Aztec slot duration in seconds
|
|
154
|
+
* @param blockDurationSec - Duration per block in seconds (undefined = single block mode)
|
|
155
|
+
* @param opts - Optional overrides for timing constants
|
|
156
|
+
* @returns Maximum number of blocks per slot
|
|
157
|
+
*/ export function calculateMaxBlocksPerSlot(aztecSlotDurationSec, blockDurationSec, opts = {}) {
|
|
158
|
+
return createCheckpointTimingModel({
|
|
159
|
+
aztecSlotDuration: aztecSlotDurationSec,
|
|
160
|
+
blockDuration: blockDurationSec,
|
|
161
|
+
checkpointAssembleTime: opts.checkpointAssembleTime,
|
|
162
|
+
checkpointInitializationTime: opts.checkpointInitializationTime,
|
|
163
|
+
l1PublishingTime: opts.l1PublishingTime,
|
|
164
|
+
p2pPropagationTime: opts.p2pPropagationTime,
|
|
165
|
+
pipelining: opts.pipelining
|
|
166
|
+
}).calculateMaxBlocksPerSlot();
|
|
167
|
+
}
|
|
168
|
+
function assertNonNegative(name, value) {
|
|
169
|
+
if (value < 0) {
|
|
170
|
+
throw new Error(`${name} must be non-negative (got ${value})`);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
function validateCheckpointTimingConfig(opts) {
|
|
174
|
+
if (opts.aztecSlotDuration <= 0) {
|
|
175
|
+
throw new Error(`aztecSlotDuration must be positive (got ${opts.aztecSlotDuration})`);
|
|
176
|
+
}
|
|
177
|
+
if (opts.ethereumSlotDuration !== undefined && opts.ethereumSlotDuration <= 0) {
|
|
178
|
+
throw new Error(`ethereumSlotDuration must be positive when provided (got ${opts.ethereumSlotDuration})`);
|
|
179
|
+
}
|
|
180
|
+
if (opts.blockDuration !== undefined && opts.blockDuration <= 0) {
|
|
181
|
+
throw new Error(`blockDuration must be positive when provided (got ${opts.blockDuration})`);
|
|
182
|
+
}
|
|
183
|
+
if (opts.minExecutionTime !== undefined && opts.minExecutionTime <= 0) {
|
|
184
|
+
throw new Error(`minExecutionTime must be positive when provided (got ${opts.minExecutionTime})`);
|
|
185
|
+
}
|
|
186
|
+
if (opts.checkpointAssembleTime !== undefined) {
|
|
187
|
+
assertNonNegative('checkpointAssembleTime', opts.checkpointAssembleTime);
|
|
188
|
+
}
|
|
189
|
+
if (opts.checkpointInitializationTime !== undefined) {
|
|
190
|
+
assertNonNegative('checkpointInitializationTime', opts.checkpointInitializationTime);
|
|
191
|
+
}
|
|
192
|
+
if (opts.l1PublishingTime !== undefined) {
|
|
193
|
+
assertNonNegative('l1PublishingTime', opts.l1PublishingTime);
|
|
194
|
+
}
|
|
195
|
+
if (opts.p2pPropagationTime !== undefined) {
|
|
196
|
+
assertNonNegative('p2pPropagationTime', opts.p2pPropagationTime);
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
function normalizeCheckpointTimingConfig(opts) {
|
|
200
|
+
let checkpointAssembleTime = opts.checkpointAssembleTime ?? CHECKPOINT_ASSEMBLE_TIME;
|
|
201
|
+
let checkpointInitializationTime = opts.checkpointInitializationTime ?? CHECKPOINT_INITIALIZATION_TIME;
|
|
202
|
+
let minExecutionTime = opts.minExecutionTime ?? MIN_EXECUTION_TIME;
|
|
203
|
+
let p2pPropagationTime = opts.p2pPropagationTime ?? DEFAULT_P2P_PROPAGATION_TIME;
|
|
204
|
+
if (opts.ethereumSlotDuration !== undefined && opts.ethereumSlotDuration < 8) {
|
|
205
|
+
p2pPropagationTime = 0;
|
|
206
|
+
checkpointAssembleTime = 0.5;
|
|
207
|
+
checkpointInitializationTime = 0.5;
|
|
208
|
+
minExecutionTime = 1;
|
|
209
|
+
}
|
|
210
|
+
if (opts.blockDuration !== undefined && minExecutionTime > opts.blockDuration) {
|
|
211
|
+
minExecutionTime = opts.blockDuration;
|
|
212
|
+
}
|
|
213
|
+
return {
|
|
214
|
+
...opts,
|
|
215
|
+
checkpointAssembleTime,
|
|
216
|
+
checkpointInitializationTime,
|
|
217
|
+
minExecutionTime,
|
|
218
|
+
p2pPropagationTime
|
|
219
|
+
};
|
|
220
|
+
}
|
|
221
|
+
function validateCheckpointTimingModel(model) {
|
|
222
|
+
if (model.blockDuration === undefined) {
|
|
223
|
+
return;
|
|
224
|
+
}
|
|
225
|
+
const timeAvailableForBlocks = model.aztecSlotDuration - model.checkpointInitializationTime - model.timeReservedAtEnd;
|
|
226
|
+
if (timeAvailableForBlocks < model.blockDuration) {
|
|
227
|
+
throw new Error(`Invalid timing configuration: only ${timeAvailableForBlocks}s available for block building, which is less than one blockDuration (${model.blockDuration}s).`);
|
|
228
|
+
}
|
|
229
|
+
}
|
|
@@ -94,6 +94,7 @@ export declare class PublicDataTreeLeafPreimage implements IndexedTreeLeafPreima
|
|
|
94
94
|
asLeaf(): PublicDataTreeLeaf;
|
|
95
95
|
toBuffer(): Buffer;
|
|
96
96
|
toHashInputs(): Buffer[];
|
|
97
|
+
hash(): Promise<Fr>;
|
|
97
98
|
clone(): PublicDataTreeLeafPreimage;
|
|
98
99
|
static random(): PublicDataTreeLeafPreimage;
|
|
99
100
|
static empty(): PublicDataTreeLeafPreimage;
|
|
@@ -155,4 +156,4 @@ export declare class PublicDataTreeLeaf implements IndexedTreeLeaf {
|
|
|
155
156
|
*/
|
|
156
157
|
static fromPlainObject(obj: any): PublicDataTreeLeaf;
|
|
157
158
|
}
|
|
158
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
159
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2RhdGFfbGVhZi5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3RyZWVzL3B1YmxpY19kYXRhX2xlYWYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXBELE9BQU8sRUFBRSxZQUFZLEVBQXFCLE1BQU0sNkJBQTZCLENBQUM7QUFDOUUsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLHVCQUF1QixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFeEYsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUV4Qjs7O0dBR0c7QUFDSCxxQkFBYSwwQkFBMkIsWUFBVyx1QkFBdUI7SUFFdEU7O09BRUc7SUFDSSxJQUFJLEVBQUUsa0JBQWtCO0lBQy9COztPQUVHO0lBQ0ksT0FBTyxFQUFFLEVBQUU7SUFDbEI7O09BRUc7SUFDSSxTQUFTLEVBQUUsTUFBTTtJQVoxQjtJQUNFOztPQUVHO0lBQ0ksSUFBSSxFQUFFLGtCQUFrQjtJQUMvQjs7T0FFRztJQUNJLE9BQU8sRUFBRSxFQUFFO0lBQ2xCOztPQUVHO0lBQ0ksU0FBUyxFQUFFLE1BQU0sRUFDdEI7SUFFSixNQUFNLEtBQUssTUFBTTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQVFoQjtJQUVEOzs7Ozs7T0FNRztJQUNILE1BQU0sQ0FBQyxlQUFlLENBQUMsR0FBRyxFQUFFLEdBQUcsR0FBRywwQkFBMEIsQ0FTM0Q7SUFFRCxNQUFNLEtBQUssVUFBVTs7Ozs7Ozs7Ozs7O09BRXBCO0lBRUQsTUFBTSxJQUFJLE1BQU0sQ0FFZjtJQUVELFVBQVUsSUFBSSxNQUFNLENBRW5CO0lBRUQsWUFBWSxJQUFJLE1BQU0sQ0FFckI7SUFFRCxNQUFNLElBQUksa0JBQWtCLENBRTNCO0lBRUQsUUFBUSxJQUFJLE1BQU0sQ0FFakI7SUFFRCxZQUFZLElBQUksTUFBTSxFQUFFLENBTXZCO0lBRUQsSUFBSSxJQUFJLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FFbEI7SUFFRCxLQUFLLElBQUksMEJBQTBCLENBRWxDO0lBRUQsTUFBTSxDQUFDLE1BQU0sK0JBTVo7SUFFRCxNQUFNLENBQUMsS0FBSyxJQUFJLDBCQUEwQixDQUV6QztJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxZQUFZLEdBQUcsMEJBQTBCLENBTzNFO0lBRUQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsa0JBQWtCLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxHQUFHLDBCQUEwQixDQUV4RztJQUVELE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLDBCQUEwQixHQUFHLDBCQUEwQixDQUU3RTtDQUNGO0FBRUQ7O0dBRUc7QUFDSCxxQkFBYSxrQkFBbUIsWUFBVyxlQUFlO0lBRXREOztPQUVHO0lBQ0ksSUFBSSxFQUFFLEVBQUU7SUFDZjs7T0FFRztJQUNJLEtBQUssRUFBRSxFQUFFO0lBUmxCO0lBQ0U7O09BRUc7SUFDSSxJQUFJLEVBQUUsRUFBRTtJQUNmOztPQUVHO0lBQ0ksS0FBSyxFQUFFLEVBQUUsRUFDZDtJQUVKLE1BQU0sSUFBSSxNQUFNLENBRWY7SUFFRCxRQUFRLDRCQUVQO0lBRUQsS0FBSyxJQUFJLGtCQUFrQixDQUUxQjtJQUVELFlBQVksSUFBSSxNQUFNLEVBQUUsQ0FFdkI7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsWUFBWSxzQkFHOUM7SUFFRCxNQUFNLENBQUMsT0FBTyxFQUFFLGtCQUFrQixHQUFHLE9BQU8sQ0FFM0M7SUFFRCxRQUFRLElBQUksTUFBTSxDQUVqQjtJQUVELE9BQU8sSUFBSSxPQUFPLENBRWpCO0lBRUQsUUFBUSxDQUFDLE9BQU8sRUFBRSxrQkFBa0IsR0FBRyxrQkFBa0IsQ0FLeEQ7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxNQUFNLEdBQUcsa0JBQWtCLENBRWpEO0lBRUQsTUFBTSxDQUFDLEtBQUssSUFBSSxrQkFBa0IsQ0FFakM7SUFFRCxNQUFNLEtBQUssTUFBTTs7Ozs7Ozs7Ozs7O09BT2hCO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsTUFBTSxDQUFDLGVBQWUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxHQUFHLGtCQUFrQixDQUtuRDtDQUNGIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public_data_leaf.d.ts","sourceRoot":"","sources":["../../src/trees/public_data_leaf.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"public_data_leaf.d.ts","sourceRoot":"","sources":["../../src/trees/public_data_leaf.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAC9E,OAAO,KAAK,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAExF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;GAGG;AACH,qBAAa,0BAA2B,YAAW,uBAAuB;IAEtE;;OAEG;IACI,IAAI,EAAE,kBAAkB;IAC/B;;OAEG;IACI,OAAO,EAAE,EAAE;IAClB;;OAEG;IACI,SAAS,EAAE,MAAM;IAZ1B;IACE;;OAEG;IACI,IAAI,EAAE,kBAAkB;IAC/B;;OAEG;IACI,OAAO,EAAE,EAAE;IAClB;;OAEG;IACI,SAAS,EAAE,MAAM,EACtB;IAEJ,MAAM,KAAK,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAQhB;IAED;;;;;;OAMG;IACH,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,GAAG,GAAG,0BAA0B,CAS3D;IAED,MAAM,KAAK,UAAU;;;;;;;;;;;;OAEpB;IAED,MAAM,IAAI,MAAM,CAEf;IAED,UAAU,IAAI,MAAM,CAEnB;IAED,YAAY,IAAI,MAAM,CAErB;IAED,MAAM,IAAI,kBAAkB,CAE3B;IAED,QAAQ,IAAI,MAAM,CAEjB;IAED,YAAY,IAAI,MAAM,EAAE,CAMvB;IAED,IAAI,IAAI,OAAO,CAAC,EAAE,CAAC,CAElB;IAED,KAAK,IAAI,0BAA0B,CAElC;IAED,MAAM,CAAC,MAAM,+BAMZ;IAED,MAAM,CAAC,KAAK,IAAI,0BAA0B,CAEzC;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,0BAA0B,CAO3E;IAED,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,0BAA0B,CAExG;IAED,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,0BAA0B,GAAG,0BAA0B,CAE7E;CACF;AAED;;GAEG;AACH,qBAAa,kBAAmB,YAAW,eAAe;IAEtD;;OAEG;IACI,IAAI,EAAE,EAAE;IACf;;OAEG;IACI,KAAK,EAAE,EAAE;IARlB;IACE;;OAEG;IACI,IAAI,EAAE,EAAE;IACf;;OAEG;IACI,KAAK,EAAE,EAAE,EACd;IAEJ,MAAM,IAAI,MAAM,CAEf;IAED,QAAQ,4BAEP;IAED,KAAK,IAAI,kBAAkB,CAE1B;IAED,YAAY,IAAI,MAAM,EAAE,CAEvB;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,sBAG9C;IAED,MAAM,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAE3C;IAED,QAAQ,IAAI,MAAM,CAEjB;IAED,OAAO,IAAI,OAAO,CAEjB;IAED,QAAQ,CAAC,OAAO,EAAE,kBAAkB,GAAG,kBAAkB,CAKxD;IAED,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB,CAEjD;IAED,MAAM,CAAC,KAAK,IAAI,kBAAkB,CAEjC;IAED,MAAM,KAAK,MAAM;;;;;;;;;;;;OAOhB;IAED;;;;;;OAMG;IACH,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,GAAG,GAAG,kBAAkB,CAKnD;CACF"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { toBigIntBE, toBufferBE } from '@aztec/foundation/bigint-buffer';
|
|
2
|
+
import { poseidon2Hash } from '@aztec/foundation/crypto/poseidon';
|
|
2
3
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
4
|
import { schemas } from '@aztec/foundation/schemas';
|
|
4
5
|
import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
@@ -61,10 +62,13 @@ import { z } from 'zod';
|
|
|
61
62
|
toHashInputs() {
|
|
62
63
|
return [
|
|
63
64
|
...this.leaf.toHashInputs(),
|
|
64
|
-
Buffer.from(
|
|
65
|
-
Buffer.from(this.
|
|
65
|
+
Buffer.from(this.nextKey.toBuffer()),
|
|
66
|
+
Buffer.from(toBufferBE(this.nextIndex, 32))
|
|
66
67
|
];
|
|
67
68
|
}
|
|
69
|
+
hash() {
|
|
70
|
+
return poseidon2Hash(this.toHashInputs());
|
|
71
|
+
}
|
|
68
72
|
clone() {
|
|
69
73
|
return new PublicDataTreeLeafPreimage(this.leaf.clone(), this.nextKey, this.nextIndex);
|
|
70
74
|
}
|
|
@@ -76,10 +80,7 @@ import { z } from 'zod';
|
|
|
76
80
|
}
|
|
77
81
|
static fromBuffer(buffer) {
|
|
78
82
|
const reader = BufferReader.asReader(buffer);
|
|
79
|
-
|
|
80
|
-
const nextIndex = toBigIntBE(reader.readBytes(32));
|
|
81
|
-
const nextSlot = Fr.fromBuffer(reader);
|
|
82
|
-
return new PublicDataTreeLeafPreimage(value, nextSlot, nextIndex);
|
|
83
|
+
return new PublicDataTreeLeafPreimage(PublicDataTreeLeaf.fromBuffer(reader), Fr.fromBuffer(reader), toBigIntBE(reader.readBytes(32)));
|
|
83
84
|
}
|
|
84
85
|
static fromLeaf(leaf, nextKey, nextIndex) {
|
|
85
86
|
return new PublicDataTreeLeafPreimage(leaf, new Fr(nextKey), nextIndex);
|
|
@@ -4,6 +4,7 @@ import { type ZodFor } from '@aztec/foundation/schemas';
|
|
|
4
4
|
import { BufferReader, FieldReader } from '@aztec/foundation/serialize';
|
|
5
5
|
import type { FieldsOf } from '@aztec/foundation/types';
|
|
6
6
|
import { inspect } from 'util';
|
|
7
|
+
import { BlockHash } from '../block/block_hash.js';
|
|
7
8
|
import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
|
|
8
9
|
import { GlobalVariables } from './global_variables.js';
|
|
9
10
|
import { StateReference } from './state_reference.js';
|
|
@@ -60,9 +61,11 @@ export declare class BlockHeader {
|
|
|
60
61
|
*/
|
|
61
62
|
toString(): `0x${string}`;
|
|
62
63
|
static fromString(str: string): BlockHeader;
|
|
63
|
-
hash(): Promise<
|
|
64
|
+
hash(): Promise<BlockHash>;
|
|
64
65
|
/** Manually set the hash for this block header if already computed */
|
|
65
66
|
setHash(hashed: Fr): void;
|
|
67
|
+
/** Recomputes the cached hash. Used for testing when header fields are mutated via unfreeze. */
|
|
68
|
+
recomputeHash(): Promise<BlockHash>;
|
|
66
69
|
static random(overrides?: Partial<FieldsOf<BlockHeader>> & Partial<FieldsOf<GlobalVariables>>): BlockHeader;
|
|
67
70
|
toInspect(): {
|
|
68
71
|
lastArchive: `0x${string}`;
|
|
@@ -90,4 +93,4 @@ export declare class BlockHeader {
|
|
|
90
93
|
[inspect.custom](): string;
|
|
91
94
|
equals(other: this): boolean;
|
|
92
95
|
}
|
|
93
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2tfaGVhZGVyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHgvYmxvY2tfaGVhZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFHMUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBVyxNQUFNLDJCQUEyQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUF3QyxNQUFNLDZCQUE2QixDQUFDO0FBRTlHLE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXhELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ25ELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFdEQsK0JBQStCO0FBQy9CLHFCQUFhLFdBQVc7SUFJcEIsdURBQXVEO2FBQ3ZDLFdBQVcsRUFBRSxzQkFBc0I7SUFDbkQsdUJBQXVCO2FBQ1AsS0FBSyxFQUFFLGNBQWM7SUFDckM7OztPQUdHO2FBQ2EsY0FBYyxFQUFFLEVBQUU7SUFDbEMsdUNBQXVDO2FBQ3ZCLGVBQWUsRUFBRSxlQUFlO0lBQ2hELG1FQUFtRTthQUNuRCxTQUFTLEVBQUUsRUFBRTtJQUM3Qix3RUFBd0U7YUFDeEQsYUFBYSxFQUFFLEVBQUU7SUFqQm5DLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBcUI7SUFFekM7SUFDRSx1REFBdUQ7SUFDdkMsV0FBVyxFQUFFLHNCQUFzQjtJQUNuRCx1QkFBdUI7SUFDUCxLQUFLLEVBQUUsY0FBYztJQUNyQzs7O09BR0c7SUFDYSxjQUFjLEVBQUUsRUFBRTtJQUNsQyx1Q0FBdUM7SUFDdkIsZUFBZSxFQUFFLGVBQWU7SUFDaEQsbUVBQW1FO0lBQ25ELFNBQVMsRUFBRSxFQUFFO0lBQzdCLHdFQUF3RTtJQUN4RCxhQUFhLEVBQUUsRUFBRSxFQUMvQjtJQUVKLE1BQU0sS0FBSyxNQUFNLElBQUksTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQVd2QztJQUVELE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxXQUFXLENBQUMsa0ZBUzdDO0lBRUQsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLFdBQVcsQ0FBQyxlQUV4QztJQUVELE9BQU8sSUFBSSxVQUFVLENBRXBCO0lBRUQsY0FBYyxJQUFJLFdBQVcsQ0FFNUI7SUFFRCxPQUFPLFdBU047SUFFRCxRQUFRLDRCQUVQO0lBRUQsUUFBUSxJQUFJLEVBQUUsRUFBRSxDQU1mO0lBRUQsS0FBSyxJQUFJLFdBQVcsQ0FFbkI7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsWUFBWSxHQUFHLFdBQVcsQ0FXNUQ7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsR0FBRyxXQUFXLEdBQUcsV0FBVyxDQVd6RDtJQUVELE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQU0sR0FBRyxXQUFXLENBVXJFO0lBRUQsT0FBTyxJQUFJLE9BQU8sQ0FTakI7SUFFRDs7O09BR0c7SUFDSSxRQUFRLGtCQUVkO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxHQUFHLFdBQVcsQ0FFMUM7SUFFRCxJQUFJLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQU96QjtJQUVELHNFQUFzRTtJQUN0RSxPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUUsUUFFakI7SUFFRCxnR0FBZ0c7SUFDaEcsYUFBYSxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FHbEM7SUFFRCxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsR0FBRSxPQUFPLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsQ0FBTSxHQUFHLFdBQVcsQ0FVOUc7SUFFRCxTQUFTOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O01BU1I7SUFFRCxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsV0FZZjtJQUVNLE1BQU0sQ0FBQyxLQUFLLEVBQUUsSUFBSSxHQUFHLE9BQU8sQ0FTbEM7Q0FDRiJ9
|