@aztec/stdlib 0.0.1-commit.7d4e6cd → 0.0.1-commit.7ffbba4
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/decoder.d.ts +2 -2
- package/dest/abi/decoder.d.ts.map +1 -1
- package/dest/abi/decoder.js +7 -5
- 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 +47 -9
- package/dest/abi/function_call.d.ts.map +1 -1
- package/dest/abi/function_call.js +20 -3
- package/dest/abi/utils.d.ts +20 -1
- package/dest/abi/utils.d.ts.map +1 -1
- package/dest/abi/utils.js +22 -0
- package/dest/auth_witness/auth_witness.d.ts +2 -1
- package/dest/auth_witness/auth_witness.d.ts.map +1 -1
- package/dest/auth_witness/auth_witness.js +3 -3
- package/dest/avm/avm.d.ts +362 -362
- package/dest/avm/avm_accumulated_data.d.ts +30 -3
- package/dest/avm/avm_accumulated_data.d.ts.map +1 -1
- package/dest/avm/avm_circuit_public_inputs.d.ts +9 -9
- package/dest/avm/avm_proving_request.d.ts +465 -465
- package/dest/avm/contract_storage_read.d.ts +13 -1
- package/dest/avm/contract_storage_read.d.ts.map +1 -1
- package/dest/avm/contract_storage_update_request.d.ts +13 -1
- package/dest/avm/contract_storage_update_request.d.ts.map +1 -1
- package/dest/avm/public_call_stack_item_compressed.d.ts +3 -1
- package/dest/avm/public_call_stack_item_compressed.d.ts.map +1 -1
- package/dest/avm/public_data_read.d.ts +10 -1
- package/dest/avm/public_data_read.d.ts.map +1 -1
- package/dest/avm/public_data_update_request.d.ts +10 -1
- package/dest/avm/public_data_update_request.d.ts.map +1 -1
- package/dest/avm/public_data_write.d.ts +7 -1
- package/dest/avm/public_data_write.d.ts.map +1 -1
- package/dest/avm/public_inner_call_request.d.ts +4 -1
- package/dest/avm/public_inner_call_request.d.ts.map +1 -1
- package/dest/avm/revert_code.d.ts +19 -4
- package/dest/avm/revert_code.d.ts.map +1 -1
- package/dest/avm/revert_code.js +15 -5
- 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 +18 -14
- package/dest/block/block_hash.d.ts.map +1 -1
- package/dest/block/block_hash.js +22 -20
- package/dest/block/block_parameter.d.ts +4 -3
- package/dest/block/block_parameter.d.ts.map +1 -1
- package/dest/block/block_parameter.js +2 -0
- package/dest/block/body.d.ts +1 -1
- package/dest/block/body.d.ts.map +1 -1
- package/dest/block/body.js +2 -1
- package/dest/block/checkpointed_l2_block.d.ts +20 -137
- package/dest/block/checkpointed_l2_block.d.ts.map +1 -1
- package/dest/block/checkpointed_l2_block.js +7 -45
- 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 -3
- package/dest/block/index.d.ts.map +1 -1
- package/dest/block/index.js +1 -2
- package/dest/block/l2_block.d.ts +64 -59
- package/dest/block/l2_block.d.ts.map +1 -1
- package/dest/block/l2_block.js +73 -109
- package/dest/block/l2_block_source.d.ts +89 -39
- package/dest/block/l2_block_source.d.ts.map +1 -1
- package/dest/block/l2_block_source.js +2 -1
- package/dest/block/l2_block_stream/interfaces.d.ts +9 -6
- package/dest/block/l2_block_stream/interfaces.d.ts.map +1 -1
- package/dest/block/l2_block_stream/l2_block_stream.d.ts +6 -3
- package/dest/block/l2_block_stream/l2_block_stream.d.ts.map +1 -1
- package/dest/block/l2_block_stream/l2_block_stream.js +47 -34
- package/dest/block/l2_block_stream/l2_tips_store_base.d.ts +3 -3
- package/dest/block/l2_block_stream/l2_tips_store_base.d.ts.map +1 -1
- 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 +2 -7
- package/dest/block/validate_block_result.d.ts +1 -1
- package/dest/block/validate_block_result.d.ts.map +1 -1
- package/dest/block/validate_block_result.js +5 -4
- package/dest/checkpoint/checkpoint.d.ts +44 -19
- package/dest/checkpoint/checkpoint.d.ts.map +1 -1
- package/dest/checkpoint/checkpoint.js +45 -17
- package/dest/checkpoint/checkpoint_data.d.ts +120 -0
- package/dest/checkpoint/checkpoint_data.d.ts.map +1 -0
- package/dest/checkpoint/checkpoint_data.js +26 -0
- package/dest/checkpoint/index.d.ts +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 +33 -16
- package/dest/checkpoint/published_checkpoint.d.ts.map +1 -1
- package/dest/checkpoint/published_checkpoint.js +5 -5
- 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 +2 -1
- package/dest/config/index.d.ts.map +1 -1
- package/dest/config/index.js +1 -0
- package/dest/config/node-rpc-config.js +1 -1
- 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 +24 -0
- package/dest/contract/complete_address.d.ts +4 -1
- package/dest/contract/complete_address.d.ts.map +1 -1
- package/dest/contract/contract_address.js +4 -4
- package/dest/contract/contract_class.d.ts +2 -3
- package/dest/contract/contract_class.d.ts.map +1 -1
- package/dest/contract/contract_class_id.d.ts +2 -2
- package/dest/contract/contract_class_id.d.ts.map +1 -1
- package/dest/contract/contract_class_id.js +6 -5
- package/dest/contract/contract_deployment_data.d.ts +5 -5
- 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_instance.d.ts +16 -16
- 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.d.ts +1 -1
- package/dest/contract/private_function.d.ts.map +1 -1
- package/dest/contract/private_function.js +3 -4
- package/dest/contract/private_function_membership_proof.d.ts +1 -1
- package/dest/contract/private_function_membership_proof.js +1 -1
- 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 +3 -49
- package/dest/database-version/version_manager.d.ts.map +1 -1
- package/dest/database-version/version_manager.js +1 -66
- package/dest/delayed_public_mutable/delayed_public_mutable_values.d.ts +2 -2
- package/dest/delayed_public_mutable/delayed_public_mutable_values.d.ts.map +1 -1
- package/dest/delayed_public_mutable/delayed_public_mutable_values.js +7 -10
- package/dest/deserialization/index.d.ts +11 -0
- package/dest/deserialization/index.d.ts.map +1 -0
- package/dest/deserialization/index.js +10 -0
- package/dest/epoch-helpers/index.d.ts +7 -1
- package/dest/epoch-helpers/index.d.ts.map +1 -1
- package/dest/epoch-helpers/index.js +9 -3
- package/dest/errors/proving_error.d.ts +2 -2
- package/dest/errors/proving_error.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 +4 -1
- 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 +2 -1
- package/dest/hash/hash.d.ts.map +1 -1
- package/dest/hash/hash.js +16 -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/api_limit.d.ts +2 -1
- package/dest/interfaces/api_limit.d.ts.map +1 -1
- package/dest/interfaces/api_limit.js +1 -0
- package/dest/interfaces/archiver.d.ts +1 -1
- package/dest/interfaces/archiver.d.ts.map +1 -1
- package/dest/interfaces/archiver.js +24 -15
- package/dest/interfaces/aztec-node-admin.d.ts +164 -51
- package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
- package/dest/interfaces/aztec-node-admin.js +12 -4
- package/dest/interfaces/aztec-node.d.ts +75 -73
- package/dest/interfaces/aztec-node.d.ts.map +1 -1
- package/dest/interfaces/aztec-node.js +13 -18
- package/dest/interfaces/block-builder.d.ts +30 -16
- package/dest/interfaces/block-builder.d.ts.map +1 -1
- package/dest/interfaces/block-builder.js +14 -2
- package/dest/interfaces/configs.d.ts +76 -36
- package/dest/interfaces/configs.d.ts.map +1 -1
- package/dest/interfaces/configs.js +9 -3
- package/dest/interfaces/get_logs_response.d.ts +16 -9
- package/dest/interfaces/get_logs_response.d.ts.map +1 -1
- package/dest/interfaces/l2_logs_source.d.ts +14 -5
- package/dest/interfaces/l2_logs_source.d.ts.map +1 -1
- package/dest/interfaces/merkle_tree_operations.d.ts +2 -2
- package/dest/interfaces/merkle_tree_operations.d.ts.map +1 -1
- package/dest/interfaces/p2p.d.ts +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 +15 -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 +216 -216
- package/dest/interfaces/slasher.d.ts +9 -1
- package/dest/interfaces/slasher.d.ts.map +1 -1
- package/dest/interfaces/slasher.js +2 -0
- package/dest/interfaces/tx_provider.d.ts +3 -3
- package/dest/interfaces/tx_provider.d.ts.map +1 -1
- package/dest/interfaces/validator.d.ts +203 -39
- package/dest/interfaces/validator.d.ts.map +1 -1
- package/dest/interfaces/validator.js +11 -4
- 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 +29 -16
- package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts +4 -4
- package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts.map +1 -1
- package/dest/kernel/hints/build_nullifier_read_request_hints.js +28 -17
- 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_hint.d.ts +2 -1
- package/dest/kernel/hints/key_validation_hint.d.ts.map +1 -1
- package/dest/kernel/hints/key_validation_request.d.ts +2 -1
- package/dest/kernel/hints/key_validation_request.d.ts.map +1 -1
- 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/private_kernel_reset_hints.d.ts +13 -1
- package/dest/kernel/hints/private_kernel_reset_hints.d.ts.map +1 -1
- package/dest/kernel/hints/read_request.d.ts +7 -1
- package/dest/kernel/hints/read_request.d.ts.map +1 -1
- package/dest/kernel/hints/read_request_hints.d.ts +7 -1
- package/dest/kernel/hints/read_request_hints.d.ts.map +1 -1
- 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_accumulated_data.d.ts +23 -1
- package/dest/kernel/private_accumulated_data.d.ts.map +1 -1
- package/dest/kernel/private_call_data.d.ts +25 -1
- package/dest/kernel/private_call_data.d.ts.map +1 -1
- package/dest/kernel/private_call_request.d.ts +16 -1
- package/dest/kernel/private_call_request.d.ts.map +1 -1
- package/dest/kernel/private_circuit_public_inputs.d.ts +81 -8
- 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 +33 -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_data.d.ts +7 -1
- package/dest/kernel/private_kernel_data.d.ts.map +1 -1
- package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts +22 -1
- package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_inner_circuit_private_inputs.d.ts +7 -1
- package/dest/kernel/private_kernel_inner_circuit_private_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_reset_circuit_private_inputs.d.ts +4 -1
- package/dest/kernel/private_kernel_reset_circuit_private_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts +12 -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 +26 -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_avm_accumulated_data.d.ts +2 -2
- 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_accumulated_data.d.ts +17 -1
- package/dest/kernel/private_to_rollup_accumulated_data.d.ts.map +1 -1
- package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts +18 -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 +13 -4
- package/dest/kernel/private_validation_requests.d.ts.map +1 -1
- package/dest/kernel/private_validation_requests.js +9 -9
- package/dest/kernel/public_call_request.d.ts +22 -1
- package/dest/kernel/public_call_request.d.ts.map +1 -1
- package/dest/kernel/utils/optional_number.d.ts +7 -1
- package/dest/kernel/utils/optional_number.d.ts.map +1 -1
- 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.d.ts +5 -1
- package/dest/keys/public_keys.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/slash_factory.d.ts +1 -1
- package/dest/l1-contracts/slash_factory.d.ts.map +1 -1
- package/dest/l1-contracts/slash_factory.js +1 -0
- 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_contract_class_log.d.ts +3 -1
- package/dest/logs/extended_contract_class_log.d.ts.map +1 -1
- 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} +23 -15
- package/dest/logs/extended_public_log.d.ts +17 -9
- package/dest/logs/extended_public_log.d.ts.map +1 -1
- package/dest/logs/index.d.ts +3 -2
- package/dest/logs/index.d.ts.map +1 -1
- package/dest/logs/index.js +2 -1
- package/dest/logs/log_id.d.ts +21 -14
- package/dest/logs/log_id.d.ts.map +1 -1
- package/dest/logs/log_id.js +20 -17
- 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/siloed_tag.d.ts +5 -3
- package/dest/logs/siloed_tag.d.ts.map +1 -1
- package/dest/logs/siloed_tag.js +8 -6
- package/dest/logs/tag.js +1 -1
- package/dest/messaging/inbox_leaf.d.ts +3 -1
- package/dest/messaging/inbox_leaf.d.ts.map +1 -1
- package/dest/messaging/l1_actor.d.ts +7 -1
- package/dest/messaging/l1_actor.d.ts.map +1 -1
- package/dest/messaging/l1_to_l2_message.d.ts +6 -1
- package/dest/messaging/l1_to_l2_message.d.ts.map +1 -1
- package/dest/messaging/l2_actor.d.ts +7 -1
- package/dest/messaging/l2_actor.d.ts.map +1 -1
- package/dest/messaging/l2_to_l1_membership.d.ts +3 -3
- package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -1
- package/dest/messaging/l2_to_l1_membership.js +8 -6
- package/dest/messaging/out_hash.d.ts +41 -4
- package/dest/messaging/out_hash.d.ts.map +1 -1
- package/dest/messaging/out_hash.js +52 -26
- 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 +36 -5
- package/dest/note/note_dao.d.ts.map +1 -1
- package/dest/note/note_dao.js +15 -12
- 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 +23 -8
- package/dest/p2p/block_proposal.d.ts.map +1 -1
- package/dest/p2p/block_proposal.js +26 -10
- package/dest/p2p/checkpoint_attestation.d.ts +6 -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 +34 -14
- package/dest/p2p/checkpoint_proposal.d.ts.map +1 -1
- package/dest/p2p/checkpoint_proposal.js +46 -32
- 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 +15 -5
- package/dest/p2p/consensus_payload.d.ts.map +1 -1
- package/dest/p2p/consensus_payload.js +22 -18
- package/dest/p2p/constants.d.ts +5 -0
- package/dest/p2p/constants.d.ts.map +1 -0
- package/dest/p2p/constants.js +3 -0
- package/dest/p2p/index.d.ts +2 -2
- package/dest/p2p/index.d.ts.map +1 -1
- package/dest/p2p/index.js +1 -1
- package/dest/p2p/message_validator.d.ts +18 -3
- package/dest/p2p/message_validator.d.ts.map +1 -1
- package/dest/p2p/message_validator.js +2 -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/signed_txs.d.ts +3 -1
- package/dest/p2p/signed_txs.d.ts.map +1 -1
- package/dest/p2p/signed_txs.js +6 -1
- 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 -23
- package/dest/parity/parity_base_private_inputs.d.ts +3 -1
- package/dest/parity/parity_base_private_inputs.d.ts.map +1 -1
- package/dest/parity/parity_public_inputs.d.ts +4 -1
- package/dest/parity/parity_public_inputs.d.ts.map +1 -1
- package/dest/parity/parity_root_private_inputs.d.ts +2 -1
- package/dest/parity/parity_root_private_inputs.d.ts.map +1 -1
- package/dest/proofs/chonk_proof.d.ts +1 -1
- package/dest/proofs/chonk_proof.d.ts.map +1 -1
- package/dest/proofs/chonk_proof.js +9 -4
- package/dest/proofs/proof.d.ts +4 -1
- package/dest/proofs/proof.d.ts.map +1 -1
- package/dest/proofs/recursive_proof.d.ts +10 -1
- package/dest/proofs/recursive_proof.d.ts.map +1 -1
- package/dest/rollup/base_rollup_hints.d.ts +34 -1
- package/dest/rollup/base_rollup_hints.d.ts.map +1 -1
- package/dest/rollup/block_constant_data.d.ts +12 -1
- package/dest/rollup/block_constant_data.d.ts.map +1 -1
- package/dest/rollup/block_headers_hash.js +1 -1
- package/dest/rollup/block_merge_rollup_private_inputs.d.ts +4 -1
- package/dest/rollup/block_merge_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/block_rollup_public_inputs.d.ts +44 -3
- package/dest/rollup/block_rollup_public_inputs.d.ts.map +1 -1
- package/dest/rollup/block_rollup_public_inputs.js +2 -2
- package/dest/rollup/block_root_rollup_private_inputs.d.ts +64 -1
- package/dest/rollup/block_root_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/checkpoint_constant_data.d.ts +10 -1
- package/dest/rollup/checkpoint_constant_data.d.ts.map +1 -1
- package/dest/rollup/checkpoint_header.d.ts +31 -4
- package/dest/rollup/checkpoint_header.d.ts.map +1 -1
- package/dest/rollup/checkpoint_header.js +23 -7
- package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts +4 -1
- package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/checkpoint_rollup_public_inputs.d.ts +45 -10
- package/dest/rollup/checkpoint_rollup_public_inputs.d.ts.map +1 -1
- package/dest/rollup/checkpoint_rollup_public_inputs.js +11 -7
- package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts +44 -3
- package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/checkpoint_root_rollup_private_inputs.js +13 -2
- package/dest/rollup/epoch_constant_data.d.ts +16 -1
- package/dest/rollup/epoch_constant_data.d.ts.map +1 -1
- package/dest/rollup/root_rollup_private_inputs.d.ts +6 -1
- package/dest/rollup/root_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/root_rollup_public_inputs.d.ts +17 -7
- package/dest/rollup/root_rollup_public_inputs.d.ts.map +1 -1
- package/dest/rollup/root_rollup_public_inputs.js +7 -4
- package/dest/rollup/tree_snapshot_diff_hints.d.ts +24 -1
- package/dest/rollup/tree_snapshot_diff_hints.d.ts.map +1 -1
- package/dest/rollup/tx_merge_rollup_private_inputs.d.ts +4 -1
- package/dest/rollup/tx_merge_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/tx_rollup_public_inputs.d.ts +29 -1
- package/dest/rollup/tx_rollup_public_inputs.d.ts.map +1 -1
- package/dest/schemas/schemas.d.ts +1 -1
- package/dest/slashing/empire.d.ts +1 -1
- package/dest/slashing/empire.d.ts.map +1 -1
- package/dest/slashing/empire.js +2 -0
- package/dest/slashing/helpers.d.ts +2 -2
- package/dest/slashing/helpers.d.ts.map +1 -1
- package/dest/slashing/helpers.js +6 -0
- package/dest/slashing/tally.d.ts +8 -2
- package/dest/slashing/tally.d.ts.map +1 -1
- package/dest/slashing/tally.js +35 -3
- package/dest/slashing/types.d.ts +7 -3
- package/dest/slashing/types.d.ts.map +1 -1
- package/dest/slashing/types.js +13 -1
- package/dest/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 +26 -27
- package/dest/tests/jest.js +1 -1
- package/dest/tests/mocks.d.ts +26 -15
- package/dest/tests/mocks.d.ts.map +1 -1
- package/dest/tests/mocks.js +75 -47
- package/dest/timetable/index.d.ts +37 -0
- package/dest/timetable/index.d.ts.map +1 -0
- package/dest/timetable/index.js +39 -0
- package/dest/trees/append_only_tree_snapshot.d.ts +13 -1
- package/dest/trees/append_only_tree_snapshot.d.ts.map +1 -1
- package/dest/trees/nullifier_leaf.d.ts +13 -1
- package/dest/trees/nullifier_leaf.d.ts.map +1 -1
- package/dest/trees/nullifier_membership_witness.d.ts +10 -1
- package/dest/trees/nullifier_membership_witness.d.ts.map +1 -1
- package/dest/trees/public_data_leaf.d.ts +17 -1
- package/dest/trees/public_data_leaf.d.ts.map +1 -1
- package/dest/trees/public_data_leaf.js +7 -6
- package/dest/trees/public_data_witness.d.ts +11 -1
- package/dest/trees/public_data_witness.d.ts.map +1 -1
- package/dest/tx/block_header.d.ts +16 -2
- package/dest/tx/block_header.d.ts.map +1 -1
- package/dest/tx/block_header.js +10 -2
- package/dest/tx/call_context.d.ts +13 -1
- package/dest/tx/call_context.d.ts.map +1 -1
- package/dest/tx/capsule.d.ts +4 -1
- package/dest/tx/capsule.d.ts.map +1 -1
- package/dest/tx/execution_payload.d.ts +9 -1
- package/dest/tx/execution_payload.d.ts.map +1 -1
- package/dest/tx/function_data.d.ts +4 -2
- package/dest/tx/function_data.d.ts.map +1 -1
- package/dest/tx/global_variables.d.ts +12 -4
- package/dest/tx/global_variables.d.ts.map +1 -1
- package/dest/tx/hashed_values.d.ts +7 -1
- package/dest/tx/hashed_values.d.ts.map +1 -1
- package/dest/tx/in_tx.d.ts +4 -4
- 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/partial_state_reference.d.ts +4 -1
- package/dest/tx/partial_state_reference.d.ts.map +1 -1
- package/dest/tx/private_execution_result.d.ts +23 -2
- package/dest/tx/private_execution_result.d.ts.map +1 -1
- package/dest/tx/private_execution_result.js +1 -1
- package/dest/tx/private_tx_constant_data.d.ts +16 -1
- package/dest/tx/private_tx_constant_data.d.ts.map +1 -1
- package/dest/tx/profiling.d.ts +152 -29
- package/dest/tx/profiling.d.ts.map +1 -1
- package/dest/tx/profiling.js +47 -10
- package/dest/tx/protocol_contracts.d.ts +2 -2
- package/dest/tx/protocol_contracts.d.ts.map +1 -1
- package/dest/tx/protocol_contracts.js +2 -2
- package/dest/tx/public_call_request_with_calldata.d.ts +7 -1
- package/dest/tx/public_call_request_with_calldata.d.ts.map +1 -1
- 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 +5 -2
- package/dest/tx/simulated_tx.d.ts.map +1 -1
- package/dest/tx/simulated_tx.js +4 -1
- package/dest/tx/state_reference.d.ts +3 -1
- package/dest/tx/state_reference.d.ts.map +1 -1
- package/dest/tx/tx.d.ts +29 -5
- package/dest/tx/tx.d.ts.map +1 -1
- package/dest/tx/tx.js +24 -9
- package/dest/tx/tx_context.d.ts +2 -1
- package/dest/tx/tx_context.d.ts.map +1 -1
- package/dest/tx/tx_effect.d.ts +32 -6
- package/dest/tx/tx_effect.d.ts.map +1 -1
- package/dest/tx/tx_effect.js +0 -7
- package/dest/tx/tx_execution_request.d.ts +30 -1
- package/dest/tx/tx_execution_request.d.ts.map +1 -1
- package/dest/tx/tx_hash.d.ts +2 -1
- package/dest/tx/tx_hash.d.ts.map +1 -1
- package/dest/tx/tx_receipt.d.ts +62 -14
- package/dest/tx/tx_receipt.d.ts.map +1 -1
- package/dest/tx/tx_receipt.js +55 -16
- package/dest/tx/tx_request.d.ts +6 -1
- package/dest/tx/tx_request.d.ts.map +1 -1
- 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 +7 -2
- package/dest/tx/validator/error_texts.d.ts.map +1 -1
- package/dest/tx/validator/error_texts.js +7 -1
- package/dest/tx/validator/tx_validator.d.ts +2 -2
- package/dest/tx/validator/tx_validator.d.ts.map +1 -1
- package/dest/types/shared.d.ts +4 -1
- package/dest/types/shared.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 +11 -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/schemas.d.ts +38 -38
- 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/vks/verification_key.d.ts +22 -1
- package/dest/vks/verification_key.d.ts.map +1 -1
- package/dest/vks/vk_data.d.ts +7 -1
- package/dest/vks/vk_data.d.ts.map +1 -1
- package/dest/zkpassport/index.d.ts +3 -4
- package/dest/zkpassport/index.d.ts.map +1 -1
- package/dest/zkpassport/index.js +9 -9
- package/package.json +29 -14
- package/src/abi/decoder.ts +15 -6
- 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/utils.ts +42 -0
- package/src/auth_witness/auth_witness.ts +3 -3
- package/src/avm/revert_code.ts +15 -0
- package/src/block/block_data.ts +26 -0
- package/src/block/block_hash.ts +26 -25
- package/src/block/block_parameter.ts +4 -2
- package/src/block/body.ts +2 -1
- package/src/block/checkpointed_l2_block.ts +8 -58
- package/src/block/in_block.ts +6 -6
- package/src/block/index.ts +1 -2
- package/src/block/l2_block.ts +112 -148
- package/src/block/l2_block_source.ts +99 -42
- package/src/block/l2_block_stream/interfaces.ts +8 -5
- package/src/block/l2_block_stream/l2_block_stream.ts +66 -37
- package/src/block/l2_block_stream/l2_tips_store_base.ts +2 -2
- package/src/block/test/l2_tips_store_test_suite.ts +4 -9
- package/src/block/validate_block_result.ts +5 -4
- package/src/checkpoint/checkpoint.ts +72 -23
- package/src/checkpoint/checkpoint_data.ts +51 -0
- package/src/checkpoint/index.ts +2 -0
- package/src/checkpoint/published_checkpoint.ts +7 -4
- package/src/checkpoint/validate.ts +230 -0
- package/src/config/index.ts +1 -0
- package/src/config/node-rpc-config.ts +1 -1
- package/src/config/sequencer-config.ts +37 -0
- package/src/contract/contract_address.ts +4 -4
- package/src/contract/contract_class.ts +3 -3
- package/src/contract/contract_class_id.ts +6 -5
- package/src/contract/index.ts +0 -2
- package/src/contract/interfaces/node-info.ts +3 -0
- package/src/contract/private_function.ts +3 -4
- package/src/contract/private_function_membership_proof.ts +1 -1
- package/src/database-version/database_version.ts +87 -0
- package/src/database-version/version_manager.ts +1 -77
- package/src/delayed_public_mutable/delayed_public_mutable_values.ts +9 -10
- package/src/deserialization/index.ts +21 -0
- package/src/epoch-helpers/index.ts +13 -1
- package/src/file-store/local.ts +15 -5
- package/src/file-store/s3.ts +12 -3
- package/src/gas/gas_fees.ts +7 -1
- 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 +14 -10
- package/src/hash/map_slot.ts +3 -2
- package/src/interfaces/allowed_element.ts +29 -9
- package/src/interfaces/api_limit.ts +1 -0
- package/src/interfaces/archiver.ts +24 -24
- package/src/interfaces/aztec-node-admin.ts +26 -2
- package/src/interfaces/aztec-node.ts +100 -139
- package/src/interfaces/block-builder.ts +64 -26
- package/src/interfaces/configs.ts +34 -11
- package/src/interfaces/l2_logs_source.ts +17 -4
- package/src/interfaces/merkle_tree_operations.ts +1 -1
- package/src/interfaces/p2p.ts +3 -14
- package/src/interfaces/prover-broker.ts +22 -0
- package/src/interfaces/prover-client.ts +22 -0
- package/src/interfaces/slasher.ts +4 -0
- package/src/interfaces/tx_provider.ts +2 -2
- package/src/interfaces/validator.ts +61 -31
- package/src/kernel/hints/build_note_hash_read_request_hints.ts +31 -24
- package/src/kernel/hints/build_nullifier_read_request_hints.ts +32 -32
- 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/slash_factory.ts +1 -0
- package/src/logs/debug_log_store.ts +54 -0
- package/src/logs/{directional_app_tagging_secret.ts → extended_directional_app_tagging_secret.ts} +24 -16
- package/src/logs/index.ts +2 -1
- package/src/logs/log_id.ts +22 -18
- package/src/logs/pre_tag.ts +5 -5
- package/src/logs/public_log.ts +4 -2
- package/src/logs/siloed_tag.ts +10 -4
- package/src/logs/tag.ts +1 -1
- package/src/messaging/l2_to_l1_membership.ts +8 -6
- package/src/messaging/out_hash.ts +60 -29
- package/src/note/index.ts +0 -1
- package/src/note/note_dao.ts +18 -13
- package/src/p2p/attestation_utils.ts +56 -0
- package/src/p2p/block_proposal.ts +36 -15
- package/src/p2p/checkpoint_attestation.ts +6 -1
- package/src/p2p/checkpoint_proposal.ts +74 -41
- package/src/p2p/client_type.ts +0 -6
- package/src/p2p/consensus_payload.ts +25 -17
- package/src/p2p/constants.ts +6 -0
- package/src/p2p/index.ts +1 -1
- package/src/p2p/message_validator.ts +14 -2
- package/src/p2p/peer_error.ts +7 -0
- package/src/p2p/signed_txs.ts +6 -1
- package/src/p2p/topic_type.ts +8 -15
- package/src/proofs/chonk_proof.ts +9 -5
- package/src/rollup/block_headers_hash.ts +1 -1
- package/src/rollup/block_rollup_public_inputs.ts +2 -2
- package/src/rollup/checkpoint_header.ts +22 -2
- package/src/rollup/checkpoint_rollup_public_inputs.ts +16 -10
- package/src/rollup/checkpoint_root_rollup_private_inputs.ts +14 -1
- package/src/rollup/root_rollup_public_inputs.ts +11 -8
- package/src/slashing/empire.ts +3 -1
- package/src/slashing/helpers.ts +8 -0
- package/src/slashing/tally.ts +41 -2
- package/src/slashing/types.ts +14 -0
- package/src/stats/stats.ts +0 -2
- package/src/tests/factories.ts +32 -43
- package/src/tests/jest.ts +1 -1
- package/src/tests/mocks.ts +106 -60
- package/src/timetable/index.ts +66 -0
- package/src/trees/public_data_leaf.ts +11 -5
- package/src/tx/block_header.ts +18 -4
- package/src/tx/global_variables.ts +3 -3
- package/src/tx/indexed_tx_effect.ts +3 -2
- package/src/tx/private_execution_result.ts +1 -1
- package/src/tx/profiling.ts +51 -9
- package/src/tx/protocol_contracts.ts +2 -2
- package/src/tx/public_simulation_output.ts +4 -0
- package/src/tx/simulated_tx.ts +8 -1
- package/src/tx/tx.ts +28 -20
- package/src/tx/tx_effect.ts +0 -9
- package/src/tx/tx_receipt.ts +85 -18
- package/src/tx/tx_request.ts +2 -2
- package/src/tx/validator/empty_validator.ts +1 -1
- package/src/tx/validator/error_texts.ts +8 -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 +17 -0
- package/src/update-checker/version_checker.ts +65 -0
- package/src/validators/schemas.ts +8 -1
- package/src/validators/types.ts +5 -4
- package/src/zkpassport/index.ts +11 -12
- package/dest/block/l2_block_code_to_purge.d.ts +0 -11
- package/dest/block/l2_block_code_to_purge.d.ts.map +0 -1
- package/dest/block/l2_block_code_to_purge.js +0 -55
- package/dest/block/l2_block_header.d.ts +0 -94
- package/dest/block/l2_block_header.d.ts.map +0 -1
- package/dest/block/l2_block_header.js +0 -160
- package/dest/block/l2_block_new.d.ts +0 -134
- package/dest/block/l2_block_new.d.ts.map +0 -1
- package/dest/block/l2_block_new.js +0 -155
- package/dest/contract/contract_class_metadata.d.ts +0 -8
- package/dest/contract/contract_class_metadata.d.ts.map +0 -1
- package/dest/contract/contract_class_metadata.js +0 -1
- package/dest/contract/contract_metadata.d.ts +0 -7
- package/dest/contract/contract_metadata.d.ts.map +0 -1
- package/dest/contract/contract_metadata.js +0 -1
- 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 -25
- package/dest/kernel/hints/key_validation_request_and_generator.d.ts.map +0 -1
- 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/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/block/l2_block_code_to_purge.ts +0 -80
- package/src/block/l2_block_header.ts +0 -255
- package/src/block/l2_block_new.ts +0 -211
- package/src/contract/contract_class_metadata.ts +0 -8
- package/src/contract/contract_metadata.ts +0 -7
- package/src/database-version/index.ts +0 -1
- package/src/note/notes_filter.ts +0 -38
- package/src/update-checker/update-checker.ts +0 -166
package/src/block/l2_block.ts
CHANGED
|
@@ -1,44 +1,67 @@
|
|
|
1
|
-
import { type BlockBlobData, encodeBlockBlobData
|
|
2
|
-
import {
|
|
1
|
+
import { type BlockBlobData, encodeBlockBlobData } from '@aztec/blob-lib/encoding';
|
|
2
|
+
import { DA_GAS_PER_FIELD } from '@aztec/constants';
|
|
3
|
+
import {
|
|
4
|
+
BlockNumber,
|
|
5
|
+
CheckpointNumber,
|
|
6
|
+
CheckpointNumberSchema,
|
|
7
|
+
IndexWithinCheckpoint,
|
|
8
|
+
IndexWithinCheckpointSchema,
|
|
9
|
+
SlotNumber,
|
|
10
|
+
} from '@aztec/foundation/branded-types';
|
|
3
11
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
4
12
|
import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
5
|
-
import { bufferToHex, hexToBuffer } from '@aztec/foundation/string';
|
|
6
13
|
|
|
7
14
|
import { z } from 'zod';
|
|
8
15
|
|
|
9
|
-
import {
|
|
16
|
+
import type { PrivateLog } from '../logs/private_log.js';
|
|
10
17
|
import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
|
|
11
|
-
import
|
|
18
|
+
import { BlockHeader } from '../tx/block_header.js';
|
|
19
|
+
import type { BlockHash } from './block_hash.js';
|
|
12
20
|
import { Body } from './body.js';
|
|
13
|
-
import { makeAppendOnlyTreeSnapshot, makeL2BlockHeader } from './l2_block_code_to_purge.js';
|
|
14
|
-
import { L2BlockHeader } from './l2_block_header.js';
|
|
15
21
|
import type { L2BlockInfo } from './l2_block_info.js';
|
|
16
|
-
import { L2BlockNew } from './l2_block_new.js';
|
|
17
22
|
|
|
18
23
|
/**
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
* @deprecated Use `L2BlockNew` instead.
|
|
24
|
+
* An L2 block with a header and a body.
|
|
22
25
|
*/
|
|
23
26
|
export class L2Block {
|
|
24
27
|
constructor(
|
|
25
28
|
/** Snapshot of archive tree after the block is applied. */
|
|
26
29
|
public archive: AppendOnlyTreeSnapshot,
|
|
27
|
-
/**
|
|
28
|
-
public header:
|
|
30
|
+
/** Header of the block. */
|
|
31
|
+
public header: BlockHeader,
|
|
29
32
|
/** L2 block body. */
|
|
30
33
|
public body: Body,
|
|
31
|
-
|
|
34
|
+
/** Number of the checkpoint that the block belongs to. */
|
|
35
|
+
public checkpointNumber: CheckpointNumber,
|
|
36
|
+
/** Index of the block within the checkpoint. */
|
|
37
|
+
public indexWithinCheckpoint: IndexWithinCheckpoint,
|
|
32
38
|
) {}
|
|
33
39
|
|
|
40
|
+
get number(): BlockNumber {
|
|
41
|
+
return this.header.globalVariables.blockNumber;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
get slot(): SlotNumber {
|
|
45
|
+
return this.header.globalVariables.slotNumber;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
get timestamp(): bigint {
|
|
49
|
+
return this.header.globalVariables.timestamp;
|
|
50
|
+
}
|
|
51
|
+
|
|
34
52
|
static get schema() {
|
|
35
53
|
return z
|
|
36
54
|
.object({
|
|
37
55
|
archive: AppendOnlyTreeSnapshot.schema,
|
|
38
|
-
header:
|
|
56
|
+
header: BlockHeader.schema,
|
|
39
57
|
body: Body.schema,
|
|
58
|
+
checkpointNumber: CheckpointNumberSchema,
|
|
59
|
+
indexWithinCheckpoint: IndexWithinCheckpointSchema,
|
|
40
60
|
})
|
|
41
|
-
.transform(
|
|
61
|
+
.transform(
|
|
62
|
+
({ archive, header, body, checkpointNumber, indexWithinCheckpoint }) =>
|
|
63
|
+
new L2Block(archive, header, body, checkpointNumber, indexWithinCheckpoint),
|
|
64
|
+
);
|
|
42
65
|
}
|
|
43
66
|
|
|
44
67
|
/**
|
|
@@ -47,11 +70,13 @@ export class L2Block {
|
|
|
47
70
|
*/
|
|
48
71
|
static fromBuffer(buf: Buffer | BufferReader) {
|
|
49
72
|
const reader = BufferReader.asReader(buf);
|
|
50
|
-
const header = reader.readObject(
|
|
73
|
+
const header = reader.readObject(BlockHeader);
|
|
51
74
|
const archive = reader.readObject(AppendOnlyTreeSnapshot);
|
|
52
75
|
const body = reader.readObject(Body);
|
|
76
|
+
const checkpointNumber = CheckpointNumber(reader.readNumber());
|
|
77
|
+
const indexWithinCheckpoint = IndexWithinCheckpoint(reader.readNumber());
|
|
53
78
|
|
|
54
|
-
return new L2Block(archive, header, body);
|
|
79
|
+
return new L2Block(archive, header, body, checkpointNumber, indexWithinCheckpoint);
|
|
55
80
|
}
|
|
56
81
|
|
|
57
82
|
/**
|
|
@@ -59,152 +84,39 @@ export class L2Block {
|
|
|
59
84
|
* @returns A serialized L2 block as a Buffer.
|
|
60
85
|
*/
|
|
61
86
|
toBuffer() {
|
|
62
|
-
return serializeToBuffer(this.header, this.archive, this.body);
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
/**
|
|
66
|
-
* Deserializes L2 block from a buffer.
|
|
67
|
-
* @param str - A serialized L2 block.
|
|
68
|
-
* @returns Deserialized L2 block.
|
|
69
|
-
*/
|
|
70
|
-
static fromString(str: string): L2Block {
|
|
71
|
-
return L2Block.fromBuffer(hexToBuffer(str));
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
/**
|
|
75
|
-
* Serializes a block to a string.
|
|
76
|
-
* @returns A serialized L2 block as a string.
|
|
77
|
-
*/
|
|
78
|
-
toString(): string {
|
|
79
|
-
return bufferToHex(this.toBuffer());
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
/**
|
|
83
|
-
* Creates an L2 block containing random data.
|
|
84
|
-
* @param l2BlockNum - The number of the L2 block.
|
|
85
|
-
* @param txsPerBlock - The number of transactions to include in the block.
|
|
86
|
-
* @param numPublicCallsPerTx - The number of public function calls to include in each transaction.
|
|
87
|
-
* @param numPublicLogsPerCall - The number of public logs per 1 public function invocation.
|
|
88
|
-
* @param inHash - The hash of the L1 to L2 messages subtree which got inserted in this block.
|
|
89
|
-
* @returns The L2 block.
|
|
90
|
-
*/
|
|
91
|
-
static async random(
|
|
92
|
-
l2BlockNum: BlockNumber,
|
|
93
|
-
txsPerBlock = 4,
|
|
94
|
-
numPublicCallsPerTx = 3,
|
|
95
|
-
numPublicLogsPerCall = 1,
|
|
96
|
-
inHash: Fr | undefined = undefined,
|
|
97
|
-
slotNumber: number | undefined = undefined,
|
|
98
|
-
maxEffects: number | undefined = undefined,
|
|
99
|
-
): Promise<L2Block> {
|
|
100
|
-
const body = await Body.random({ txsPerBlock, numPublicCallsPerTx, numPublicLogsPerCall, maxEffects });
|
|
101
|
-
|
|
102
|
-
return new L2Block(
|
|
103
|
-
makeAppendOnlyTreeSnapshot(l2BlockNum + 1),
|
|
104
|
-
makeL2BlockHeader(0, l2BlockNum, slotNumber ?? l2BlockNum, { inHash }),
|
|
105
|
-
body,
|
|
106
|
-
);
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
/**
|
|
110
|
-
* Creates an L2 block containing empty data.
|
|
111
|
-
* @returns The L2 block.
|
|
112
|
-
*/
|
|
113
|
-
static empty(): L2Block {
|
|
114
|
-
return new L2Block(AppendOnlyTreeSnapshot.empty(), L2BlockHeader.empty(), Body.empty());
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
get number(): BlockNumber {
|
|
118
|
-
return this.header.getBlockNumber();
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
get slot(): SlotNumber {
|
|
122
|
-
return this.header.getSlot();
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
get timestamp(): bigint {
|
|
126
|
-
return this.header.globalVariables.timestamp;
|
|
87
|
+
return serializeToBuffer(this.header, this.archive, this.body, this.checkpointNumber, this.indexWithinCheckpoint);
|
|
127
88
|
}
|
|
128
89
|
|
|
129
90
|
/**
|
|
130
91
|
* Returns the block's hash (hash of block header).
|
|
131
92
|
* @returns The block's hash.
|
|
132
93
|
*/
|
|
133
|
-
public
|
|
134
|
-
|
|
135
|
-
this.blockHash = await this.getBlockHeader().hash();
|
|
136
|
-
}
|
|
137
|
-
return this.blockHash;
|
|
94
|
+
public hash(): Promise<BlockHash> {
|
|
95
|
+
return this.header.hash();
|
|
138
96
|
}
|
|
139
97
|
|
|
140
98
|
/**
|
|
141
|
-
*
|
|
142
|
-
*
|
|
143
|
-
*
|
|
99
|
+
* Checks if this block equals another block.
|
|
100
|
+
* @param other - The other block to compare with.
|
|
101
|
+
* @returns True if both blocks are equal.
|
|
144
102
|
*/
|
|
145
|
-
public
|
|
146
|
-
return
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
public toL2Block(args: { checkpointNumber?: CheckpointNumber; indexWithinCheckpoint?: number } = {}): L2BlockNew {
|
|
155
|
-
return new L2BlockNew(
|
|
156
|
-
this.archive,
|
|
157
|
-
this.getBlockHeader(),
|
|
158
|
-
this.body,
|
|
159
|
-
args?.checkpointNumber ?? CheckpointNumber.fromBlockNumber(this.number),
|
|
160
|
-
args?.indexWithinCheckpoint ?? 0,
|
|
103
|
+
public equals(other: this): boolean {
|
|
104
|
+
return (
|
|
105
|
+
this.archive.equals(other.archive) &&
|
|
106
|
+
this.header.equals(other.header) &&
|
|
107
|
+
this.body.equals(other.body) &&
|
|
108
|
+
this.checkpointNumber === other.checkpointNumber &&
|
|
109
|
+
this.indexWithinCheckpoint === other.indexWithinCheckpoint
|
|
161
110
|
);
|
|
162
111
|
}
|
|
163
112
|
|
|
164
|
-
public toCheckpoint() {
|
|
165
|
-
return new Checkpoint(
|
|
166
|
-
this.archive,
|
|
167
|
-
this.getCheckpointHeader(),
|
|
168
|
-
[this.toL2Block()],
|
|
169
|
-
CheckpointNumber.fromBlockNumber(this.number),
|
|
170
|
-
);
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
static fromCheckpoint(checkpoint: Checkpoint) {
|
|
174
|
-
const checkpointHeader = checkpoint.header;
|
|
175
|
-
const block = checkpoint.blocks.at(-1)!;
|
|
176
|
-
const header = new L2BlockHeader(
|
|
177
|
-
new AppendOnlyTreeSnapshot(checkpointHeader.lastArchiveRoot, block.number),
|
|
178
|
-
checkpointHeader.blobsHash,
|
|
179
|
-
checkpointHeader.inHash,
|
|
180
|
-
block.header.state,
|
|
181
|
-
block.header.globalVariables,
|
|
182
|
-
block.header.totalFees,
|
|
183
|
-
checkpointHeader.totalManaUsed,
|
|
184
|
-
block.header.spongeBlobHash,
|
|
185
|
-
checkpointHeader.blockHeadersHash,
|
|
186
|
-
);
|
|
187
|
-
return new L2Block(checkpoint.archive, header, block.body);
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
/**
|
|
191
|
-
* @deprecated
|
|
192
|
-
* This only works when there's one block per checkpoint.
|
|
193
|
-
* TODO(#17027): Remove this method from L2Block and create a dedicated Checkpoint class.
|
|
194
|
-
*/
|
|
195
|
-
public getCheckpointBlobFields() {
|
|
196
|
-
const blockBlobData = this.toBlockBlobData();
|
|
197
|
-
return encodeCheckpointBlobDataFromBlocks([blockBlobData]);
|
|
198
|
-
}
|
|
199
|
-
|
|
200
113
|
public toBlobFields(): Fr[] {
|
|
201
114
|
const blockBlobData = this.toBlockBlobData();
|
|
202
115
|
return encodeBlockBlobData(blockBlobData);
|
|
203
116
|
}
|
|
204
117
|
|
|
205
118
|
public toBlockBlobData(): BlockBlobData {
|
|
206
|
-
|
|
207
|
-
const isFirstBlock = true;
|
|
119
|
+
const isFirstBlock = this.indexWithinCheckpoint === 0;
|
|
208
120
|
return {
|
|
209
121
|
blockEndMarker: {
|
|
210
122
|
numTxs: this.body.txEffects.length,
|
|
@@ -227,6 +139,48 @@ export class L2Block {
|
|
|
227
139
|
};
|
|
228
140
|
}
|
|
229
141
|
|
|
142
|
+
static empty(header?: BlockHeader) {
|
|
143
|
+
return new L2Block(
|
|
144
|
+
AppendOnlyTreeSnapshot.empty(),
|
|
145
|
+
header ?? BlockHeader.empty(),
|
|
146
|
+
Body.empty(),
|
|
147
|
+
CheckpointNumber(0),
|
|
148
|
+
IndexWithinCheckpoint(0),
|
|
149
|
+
);
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
/**
|
|
153
|
+
* Creates an L2 block containing random data.
|
|
154
|
+
* @param l2BlockNum - The number of the L2 block.
|
|
155
|
+
* @param txsPerBlock - The number of transactions to include in the block.
|
|
156
|
+
* @param numPublicCallsPerTx - The number of public function calls to include in each transaction.
|
|
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
|
+
* @returns The L2 block.
|
|
160
|
+
*/
|
|
161
|
+
static async random(
|
|
162
|
+
blockNumber: BlockNumber,
|
|
163
|
+
{
|
|
164
|
+
checkpointNumber = CheckpointNumber(Number(blockNumber)),
|
|
165
|
+
indexWithinCheckpoint = IndexWithinCheckpoint(0),
|
|
166
|
+
txsPerBlock = 1,
|
|
167
|
+
txOptions = {},
|
|
168
|
+
makeTxOptions,
|
|
169
|
+
...blockHeaderOverrides
|
|
170
|
+
}: {
|
|
171
|
+
checkpointNumber?: CheckpointNumber;
|
|
172
|
+
indexWithinCheckpoint?: IndexWithinCheckpoint;
|
|
173
|
+
txsPerBlock?: number;
|
|
174
|
+
txOptions?: Partial<Parameters<typeof Body.random>[0]>;
|
|
175
|
+
makeTxOptions?: (txIndex: number) => Partial<Parameters<typeof Body.random>[0]>;
|
|
176
|
+
} & Partial<Parameters<typeof BlockHeader.random>[0]> = {},
|
|
177
|
+
): Promise<L2Block> {
|
|
178
|
+
const archive = new AppendOnlyTreeSnapshot(Fr.random(), blockNumber + 1);
|
|
179
|
+
const header = BlockHeader.random({ ...blockHeaderOverrides, blockNumber });
|
|
180
|
+
const body = await Body.random({ txsPerBlock, makeTxOptions, ...txOptions });
|
|
181
|
+
return new L2Block(archive, header, body, checkpointNumber, indexWithinCheckpoint);
|
|
182
|
+
}
|
|
183
|
+
|
|
230
184
|
/**
|
|
231
185
|
* Returns stats used for logging.
|
|
232
186
|
* @returns Stats on tx count, number, and log size and count.
|
|
@@ -254,9 +208,12 @@ export class L2Block {
|
|
|
254
208
|
};
|
|
255
209
|
}
|
|
256
210
|
|
|
211
|
+
getPrivateLogs(): PrivateLog[] {
|
|
212
|
+
return this.body.txEffects.map(txEffect => txEffect.privateLogs).flat();
|
|
213
|
+
}
|
|
214
|
+
|
|
257
215
|
toBlockInfo(): L2BlockInfo {
|
|
258
216
|
return {
|
|
259
|
-
blockHash: this.blockHash,
|
|
260
217
|
archive: this.archive.root,
|
|
261
218
|
lastArchive: this.header.lastArchive.root,
|
|
262
219
|
blockNumber: this.number,
|
|
@@ -266,7 +223,14 @@ export class L2Block {
|
|
|
266
223
|
};
|
|
267
224
|
}
|
|
268
225
|
|
|
269
|
-
|
|
270
|
-
|
|
226
|
+
/**
|
|
227
|
+
* Compute how much DA gas this block uses.
|
|
228
|
+
*
|
|
229
|
+
* @remarks This assumes DA gas is computed solely based on the number of blob fields in transactions.
|
|
230
|
+
* This may change in the future, but we cannot access the actual DA gas used in a block since it's not exposed
|
|
231
|
+
* in the L2BlockHeader, so we have to rely on recomputing it.
|
|
232
|
+
*/
|
|
233
|
+
computeDAGasUsed(): number {
|
|
234
|
+
return this.body.txEffects.reduce((total, txEffect) => total + txEffect.getNumBlobFields(), 0) * DA_GAS_PER_FIELD;
|
|
271
235
|
}
|
|
272
236
|
}
|
|
@@ -13,6 +13,7 @@ import type { TypedEventEmitter } from '@aztec/foundation/types';
|
|
|
13
13
|
import { z } from 'zod';
|
|
14
14
|
|
|
15
15
|
import type { Checkpoint } from '../checkpoint/checkpoint.js';
|
|
16
|
+
import type { CheckpointData } from '../checkpoint/checkpoint_data.js';
|
|
16
17
|
import type { PublishedCheckpoint } from '../checkpoint/published_checkpoint.js';
|
|
17
18
|
import type { L1RollupConstants } from '../epoch-helpers/index.js';
|
|
18
19
|
import { CheckpointHeader } from '../rollup/checkpoint_header.js';
|
|
@@ -20,9 +21,10 @@ import type { BlockHeader } from '../tx/block_header.js';
|
|
|
20
21
|
import type { IndexedTxEffect } from '../tx/indexed_tx_effect.js';
|
|
21
22
|
import type { TxHash } from '../tx/tx_hash.js';
|
|
22
23
|
import type { TxReceipt } from '../tx/tx_receipt.js';
|
|
23
|
-
import
|
|
24
|
+
import type { BlockData } from './block_data.js';
|
|
25
|
+
import type { BlockHash } from './block_hash.js';
|
|
26
|
+
import type { CheckpointedL2Block } from './checkpointed_l2_block.js';
|
|
24
27
|
import type { L2Block } from './l2_block.js';
|
|
25
|
-
import type { L2BlockNew } from './l2_block_new.js';
|
|
26
28
|
import type { ValidateCheckpointNegativeResult, ValidateCheckpointResult } from './validate_block_result.js';
|
|
27
29
|
|
|
28
30
|
/**
|
|
@@ -47,12 +49,32 @@ export interface L2BlockSource {
|
|
|
47
49
|
*/
|
|
48
50
|
getBlockNumber(): Promise<BlockNumber>;
|
|
49
51
|
|
|
52
|
+
/**
|
|
53
|
+
* Gets the number of the latest L2 checkpoint processed by the block source implementation.
|
|
54
|
+
* @returns The number of the latest L2 checkpoint processed by the block source implementation.
|
|
55
|
+
*/
|
|
56
|
+
getCheckpointNumber(): Promise<CheckpointNumber>;
|
|
57
|
+
|
|
50
58
|
/**
|
|
51
59
|
* Gets the number of the latest L2 block proven seen by the block source implementation.
|
|
52
60
|
* @returns The number of the latest L2 block proven seen by the block source implementation.
|
|
53
61
|
*/
|
|
54
62
|
getProvenBlockNumber(): Promise<BlockNumber>;
|
|
55
63
|
|
|
64
|
+
/**
|
|
65
|
+
* Gets the number of the latest L2 block checkpointed seen by the block source implementation.
|
|
66
|
+
* @returns The number of the latest L2 block checkpointed seen by the block source implementation.
|
|
67
|
+
*/
|
|
68
|
+
getCheckpointedL2BlockNumber(): Promise<BlockNumber>;
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Computes the finalized block number based on the proven block number.
|
|
72
|
+
* A block is considered finalized when it's 2 epochs behind the proven block.
|
|
73
|
+
* TODO(#13569): Compute proper finalized block number based on L1 finalized block.
|
|
74
|
+
* @returns The finalized block number.
|
|
75
|
+
*/
|
|
76
|
+
getFinalizedL2BlockNumber(): Promise<BlockNumber>;
|
|
77
|
+
|
|
56
78
|
/**
|
|
57
79
|
* Gets an l2 block header.
|
|
58
80
|
* @param number - The block number to return or 'latest' for the most recent one.
|
|
@@ -68,15 +90,15 @@ export interface L2BlockSource {
|
|
|
68
90
|
*/
|
|
69
91
|
getCheckpointedBlock(number: BlockNumber): Promise<CheckpointedL2Block | undefined>;
|
|
70
92
|
|
|
71
|
-
getCheckpointedBlocks(from: BlockNumber, limit: number
|
|
93
|
+
getCheckpointedBlocks(from: BlockNumber, limit: number): Promise<CheckpointedL2Block[]>;
|
|
72
94
|
|
|
73
95
|
/**
|
|
74
|
-
* Retrieves a collection of
|
|
75
|
-
* @param checkpointNumber The first checkpoint to be retrieved
|
|
76
|
-
* @param limit The number of checkpoints to be retrieved
|
|
77
|
-
* @returns The collection of complete checkpoints
|
|
96
|
+
* Retrieves a collection of checkpoints.
|
|
97
|
+
* @param checkpointNumber The first checkpoint to be retrieved.
|
|
98
|
+
* @param limit The number of checkpoints to be retrieved.
|
|
99
|
+
* @returns The collection of complete checkpoints.
|
|
78
100
|
*/
|
|
79
|
-
|
|
101
|
+
getCheckpoints(checkpointNumber: CheckpointNumber, limit: number): Promise<PublishedCheckpoint[]>;
|
|
80
102
|
|
|
81
103
|
/**
|
|
82
104
|
* Gets the checkpoints for a given epoch
|
|
@@ -84,12 +106,18 @@ export interface L2BlockSource {
|
|
|
84
106
|
*/
|
|
85
107
|
getCheckpointsForEpoch(epochNumber: EpochNumber): Promise<Checkpoint[]>;
|
|
86
108
|
|
|
109
|
+
/**
|
|
110
|
+
* Gets lightweight checkpoint metadata for a given epoch, without fetching full block data.
|
|
111
|
+
* @param epochNumber - Epoch for which we want checkpoint data
|
|
112
|
+
*/
|
|
113
|
+
getCheckpointsDataForEpoch(epochNumber: EpochNumber): Promise<CheckpointData[]>;
|
|
114
|
+
|
|
87
115
|
/**
|
|
88
116
|
* Gets a block header by its hash.
|
|
89
117
|
* @param blockHash - The block hash to retrieve.
|
|
90
118
|
* @returns The requested block header (or undefined if not found).
|
|
91
119
|
*/
|
|
92
|
-
getBlockHeaderByHash(blockHash:
|
|
120
|
+
getBlockHeaderByHash(blockHash: BlockHash): Promise<BlockHeader | undefined>;
|
|
93
121
|
|
|
94
122
|
/**
|
|
95
123
|
* Gets a block header by its archive root.
|
|
@@ -98,12 +126,40 @@ export interface L2BlockSource {
|
|
|
98
126
|
*/
|
|
99
127
|
getBlockHeaderByArchive(archive: Fr): Promise<BlockHeader | undefined>;
|
|
100
128
|
|
|
129
|
+
/**
|
|
130
|
+
* Gets block metadata (without tx data) by block number.
|
|
131
|
+
* @param number - The block number to retrieve.
|
|
132
|
+
* @returns The requested block data (or undefined if not found).
|
|
133
|
+
*/
|
|
134
|
+
getBlockData(number: BlockNumber): Promise<BlockData | undefined>;
|
|
135
|
+
|
|
136
|
+
/**
|
|
137
|
+
* Gets block metadata (without tx data) by archive root.
|
|
138
|
+
* @param archive - The archive root to retrieve.
|
|
139
|
+
* @returns The requested block data (or undefined if not found).
|
|
140
|
+
*/
|
|
141
|
+
getBlockDataByArchive(archive: Fr): Promise<BlockData | undefined>;
|
|
142
|
+
|
|
101
143
|
/**
|
|
102
144
|
* Gets an L2 block by block number.
|
|
103
145
|
* @param number - The block number to return.
|
|
104
146
|
* @returns The requested L2 block (or undefined if not found).
|
|
105
147
|
*/
|
|
106
|
-
|
|
148
|
+
getL2Block(number: BlockNumber): Promise<L2Block | undefined>;
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* Gets an L2 block by its hash.
|
|
152
|
+
* @param blockHash - The block hash to retrieve.
|
|
153
|
+
* @returns The requested L2 block (or undefined if not found).
|
|
154
|
+
*/
|
|
155
|
+
getL2BlockByHash(blockHash: BlockHash): Promise<L2Block | undefined>;
|
|
156
|
+
|
|
157
|
+
/**
|
|
158
|
+
* Gets an L2 block by its archive root.
|
|
159
|
+
* @param archive - The archive root to retrieve.
|
|
160
|
+
* @returns The requested L2 block (or undefined if not found).
|
|
161
|
+
*/
|
|
162
|
+
getL2BlockByArchive(archive: Fr): Promise<L2Block | undefined>;
|
|
107
163
|
|
|
108
164
|
/**
|
|
109
165
|
* Gets a tx effect.
|
|
@@ -130,11 +186,11 @@ export interface L2BlockSource {
|
|
|
130
186
|
getL2EpochNumber(): Promise<EpochNumber | undefined>;
|
|
131
187
|
|
|
132
188
|
/**
|
|
133
|
-
* Returns all block headers for a given epoch.
|
|
189
|
+
* Returns all checkpointed block headers for a given epoch.
|
|
134
190
|
* @dev Use this method only with recent epochs, since it walks the block list backwards.
|
|
135
191
|
* @param epochNumber - The epoch number to return headers for.
|
|
136
192
|
*/
|
|
137
|
-
|
|
193
|
+
getCheckpointedBlockHeadersForEpoch(epochNumber: EpochNumber): Promise<BlockHeader[]>;
|
|
138
194
|
|
|
139
195
|
/**
|
|
140
196
|
* Returns whether the given epoch is completed on L1, based on the current L1 and L2 block numbers.
|
|
@@ -179,46 +235,44 @@ export interface L2BlockSource {
|
|
|
179
235
|
* Gets an l2 block. If a negative number is passed, the block returned is the most recent.
|
|
180
236
|
* @param number - The block number to return (inclusive).
|
|
181
237
|
* @returns The requested L2 block.
|
|
182
|
-
* @deprecated Use getL2BlockNew instead.
|
|
183
238
|
*/
|
|
184
239
|
getBlock(number: BlockNumber): Promise<L2Block | undefined>;
|
|
185
240
|
|
|
186
|
-
getL2BlockNew(number: BlockNumber): Promise<L2BlockNew | undefined>;
|
|
187
|
-
|
|
188
|
-
getL2BlocksNew(from: BlockNumber, limit: number, proven?: boolean): Promise<L2BlockNew[]>;
|
|
189
|
-
|
|
190
241
|
/**
|
|
191
|
-
* Returns all blocks for a given epoch.
|
|
242
|
+
* Returns all checkpointed blocks for a given epoch.
|
|
192
243
|
* @dev Use this method only with recent epochs, since it walks the block list backwards.
|
|
193
244
|
* @param epochNumber - The epoch number to return blocks for.
|
|
194
245
|
*/
|
|
195
|
-
|
|
246
|
+
getCheckpointedBlocksForEpoch(epochNumber: EpochNumber): Promise<CheckpointedL2Block[]>;
|
|
196
247
|
|
|
197
248
|
/**
|
|
198
|
-
*
|
|
249
|
+
* Returns all blocks for a given slot.
|
|
250
|
+
* @dev Use this method only with recent slots, since it walks the block list backwards.
|
|
251
|
+
* @param slotNumber - The slot number to return blocks for.
|
|
252
|
+
*/
|
|
253
|
+
getBlocksForSlot(slotNumber: SlotNumber): Promise<L2Block[]>;
|
|
254
|
+
|
|
255
|
+
/**
|
|
256
|
+
* Gets a checkpointed block by its block hash.
|
|
199
257
|
* @param blockHash - The block hash to retrieve.
|
|
200
258
|
* @returns The requested block (or undefined if not found).
|
|
201
259
|
*/
|
|
202
|
-
|
|
260
|
+
getCheckpointedBlockByHash(blockHash: BlockHash): Promise<CheckpointedL2Block | undefined>;
|
|
203
261
|
|
|
204
262
|
/**
|
|
205
|
-
* Gets a
|
|
263
|
+
* Gets a checkpointed block by its archive root.
|
|
206
264
|
* @param archive - The archive root to retrieve.
|
|
207
265
|
* @returns The requested block (or undefined if not found).
|
|
208
266
|
*/
|
|
209
|
-
|
|
267
|
+
getCheckpointedBlockByArchive(archive: Fr): Promise<CheckpointedL2Block | undefined>;
|
|
210
268
|
|
|
211
269
|
/**
|
|
212
270
|
* Gets up to `limit` amount of L2 blocks starting from `from`.
|
|
213
271
|
* @param from - Number of the first block to return (inclusive).
|
|
214
272
|
* @param limit - The maximum number of blocks to return.
|
|
215
|
-
* @param proven - If true, only return blocks that have been proven.
|
|
216
273
|
* @returns The requested L2 blocks.
|
|
217
274
|
*/
|
|
218
|
-
getBlocks(from: BlockNumber, limit: number
|
|
219
|
-
|
|
220
|
-
/** Equivalent to getBlocks but includes publish data. */
|
|
221
|
-
getPublishedBlocks(from: BlockNumber, limit: number, proven?: boolean): Promise<PublishedL2Block[]>;
|
|
275
|
+
getBlocks(from: BlockNumber, limit: number): Promise<L2Block[]>;
|
|
222
276
|
}
|
|
223
277
|
|
|
224
278
|
/**
|
|
@@ -230,7 +284,7 @@ export interface L2BlockSink {
|
|
|
230
284
|
* @param block - The L2 block to add.
|
|
231
285
|
* @throws If block number is not incremental (i.e., not exactly one more than the last stored block).
|
|
232
286
|
*/
|
|
233
|
-
addBlock(block:
|
|
287
|
+
addBlock(block: L2Block): Promise<void>;
|
|
234
288
|
}
|
|
235
289
|
|
|
236
290
|
/**
|
|
@@ -238,12 +292,15 @@ export interface L2BlockSink {
|
|
|
238
292
|
* see L2BlockSourceEvents for the events emitted.
|
|
239
293
|
*/
|
|
240
294
|
export type ArchiverEmitter = TypedEventEmitter<{
|
|
241
|
-
[L2BlockSourceEvents.
|
|
295
|
+
[L2BlockSourceEvents.L2PruneUnproven]: (args: L2PruneUnprovenEvent) => void;
|
|
296
|
+
[L2BlockSourceEvents.L2PruneUncheckpointed]: (args: L2PruneUncheckpointedEvent) => void;
|
|
242
297
|
[L2BlockSourceEvents.L2BlockProven]: (args: L2BlockProvenEvent) => void;
|
|
243
298
|
[L2BlockSourceEvents.InvalidAttestationsCheckpointDetected]: (args: InvalidCheckpointDetectedEvent) => void;
|
|
244
299
|
[L2BlockSourceEvents.L2BlocksCheckpointed]: (args: L2CheckpointEvent) => void;
|
|
245
300
|
}>;
|
|
246
|
-
export interface L2BlockSourceEventEmitter extends L2BlockSource
|
|
301
|
+
export interface L2BlockSourceEventEmitter extends L2BlockSource {
|
|
302
|
+
events: ArchiverEmitter;
|
|
303
|
+
}
|
|
247
304
|
|
|
248
305
|
/**
|
|
249
306
|
* Identifier for L2 block tags.
|
|
@@ -254,13 +311,6 @@ export interface L2BlockSourceEventEmitter extends L2BlockSource, ArchiverEmitte
|
|
|
254
311
|
*/
|
|
255
312
|
export type L2BlockTag = 'proposed' | 'checkpointed' | 'proven' | 'finalized';
|
|
256
313
|
|
|
257
|
-
/**
|
|
258
|
-
* Reason for L2 block prune.
|
|
259
|
-
* - uncheckpointed: L2 blocks were pruned due to a failure to checkpoint.
|
|
260
|
-
* - unproven: L2 blocks were pruned due to a failure to prove.
|
|
261
|
-
*/
|
|
262
|
-
export type L2BlockPruneReason = 'uncheckpointed' | 'unproven';
|
|
263
|
-
|
|
264
314
|
/** Tips of the L2 chain. */
|
|
265
315
|
export type L2Tips = {
|
|
266
316
|
proposed: L2BlockId;
|
|
@@ -314,7 +364,8 @@ export const L2TipsSchema = z.object({
|
|
|
314
364
|
});
|
|
315
365
|
|
|
316
366
|
export enum L2BlockSourceEvents {
|
|
317
|
-
|
|
367
|
+
L2PruneUnproven = 'l2PruneUnproven',
|
|
368
|
+
L2PruneUncheckpointed = 'l2PruneUncheckpointed',
|
|
318
369
|
L2BlockProven = 'l2BlockProven',
|
|
319
370
|
L2BlocksCheckpointed = 'l2BlocksCheckpointed',
|
|
320
371
|
InvalidAttestationsCheckpointDetected = 'invalidCheckpointDetected',
|
|
@@ -327,10 +378,16 @@ export type L2BlockProvenEvent = {
|
|
|
327
378
|
epochNumber: EpochNumber;
|
|
328
379
|
};
|
|
329
380
|
|
|
330
|
-
export type
|
|
331
|
-
type: '
|
|
381
|
+
export type L2PruneUnprovenEvent = {
|
|
382
|
+
type: 'l2PruneUnproven';
|
|
332
383
|
epochNumber: EpochNumber;
|
|
333
|
-
blocks:
|
|
384
|
+
blocks: L2Block[];
|
|
385
|
+
};
|
|
386
|
+
|
|
387
|
+
export type L2PruneUncheckpointedEvent = {
|
|
388
|
+
type: 'l2PruneUncheckpointed';
|
|
389
|
+
slotNumber: SlotNumber;
|
|
390
|
+
blocks: L2Block[];
|
|
334
391
|
};
|
|
335
392
|
|
|
336
393
|
export type L2CheckpointEvent = {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { PublishedCheckpoint } from '../../checkpoint/published_checkpoint.js';
|
|
2
|
-
import type {
|
|
3
|
-
import type { CheckpointId, L2BlockId,
|
|
2
|
+
import type { L2Block } from '../l2_block.js';
|
|
3
|
+
import type { CheckpointId, L2BlockId, L2Tips } from '../l2_block_source.js';
|
|
4
4
|
|
|
5
5
|
/** Interface to the local view of the chain. Implemented by world-state and l2-tips-store. */
|
|
6
6
|
export interface L2BlockStreamLocalDataProvider {
|
|
@@ -16,16 +16,19 @@ export interface L2BlockStreamEventHandler {
|
|
|
16
16
|
export type L2BlockStreamEvent =
|
|
17
17
|
| /** Emits blocks added to the chain. */ {
|
|
18
18
|
type: 'blocks-added';
|
|
19
|
-
blocks:
|
|
19
|
+
blocks: L2Block[];
|
|
20
20
|
}
|
|
21
21
|
| /** Emits checkpoints published to L1. */ {
|
|
22
22
|
type: 'chain-checkpointed';
|
|
23
23
|
checkpoint: PublishedCheckpoint;
|
|
24
24
|
block: L2BlockId;
|
|
25
25
|
}
|
|
26
|
-
| /**
|
|
26
|
+
| /**
|
|
27
|
+
* Reports last correct block (new tip of the proposed chain). Note that this is not necessarily the anchor block
|
|
28
|
+
* that will be used in the transaction - if the chain has already moved past the reorg, we'll also see blocks-added
|
|
29
|
+
* events that will push the anchor block forward.
|
|
30
|
+
*/ {
|
|
27
31
|
type: 'chain-pruned';
|
|
28
|
-
reason: L2BlockPruneReason;
|
|
29
32
|
block: L2BlockId;
|
|
30
33
|
checkpoint: CheckpointId;
|
|
31
34
|
}
|