@aztec/stdlib 0.0.1-commit.fcb71a6 → 0.0.1-commit.ff7989d6c
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/contract_artifact.d.ts +2 -2
- package/dest/abi/contract_artifact.d.ts.map +1 -1
- package/dest/abi/contract_artifact.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/selector.js +3 -1
- package/dest/abi/utils.d.ts +7 -1
- package/dest/abi/utils.d.ts.map +1 -1
- package/dest/abi/utils.js +7 -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 +62 -62
- 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_accumulated_data.js +5 -2
- package/dest/avm/avm_circuit_public_inputs.d.ts +9 -9
- package/dest/avm/avm_circuit_public_inputs.js +3 -1
- package/dest/avm/avm_proving_request.d.ts +299 -299
- 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_update_request.js +3 -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/public_inner_call_request.js +3 -1
- package/dest/avm/revert_code.d.ts +4 -4
- package/dest/avm/revert_code.d.ts.map +1 -1
- package/dest/avm/revert_code.js +3 -1
- package/dest/aztec-address/index.js +4 -2
- package/dest/block/attestation_info.d.ts +5 -5
- package/dest/block/attestation_info.d.ts.map +1 -1
- package/dest/block/attestation_info.js +4 -4
- 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 +5 -2
- 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 +57 -57
- package/dest/block/l2_block.d.ts.map +1 -1
- package/dest/block/l2_block.js +64 -108
- package/dest/block/l2_block_source.d.ts +317 -68
- package/dest/block/l2_block_source.d.ts.map +1 -1
- package/dest/block/l2_block_source.js +25 -6
- package/dest/block/l2_block_stream/index.d.ts +2 -1
- package/dest/block/l2_block_stream/index.d.ts.map +1 -1
- package/dest/block/l2_block_stream/index.js +1 -0
- package/dest/block/l2_block_stream/interfaces.d.ts +15 -5
- package/dest/block/l2_block_stream/interfaces.d.ts.map +1 -1
- package/dest/block/l2_block_stream/l2_block_stream.d.ts +8 -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 +106 -31
- package/dest/block/l2_block_stream/l2_tips_memory_store.d.ts +24 -16
- package/dest/block/l2_block_stream/l2_tips_memory_store.d.ts.map +1 -1
- package/dest/block/l2_block_stream/l2_tips_memory_store.js +55 -61
- package/dest/block/l2_block_stream/l2_tips_store_base.d.ts +49 -0
- package/dest/block/l2_block_stream/l2_tips_store_base.d.ts.map +1 -0
- package/dest/block/l2_block_stream/l2_tips_store_base.js +179 -0
- 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 +478 -38
- package/dest/block/validate_block_result.d.ts +24 -24
- package/dest/block/validate_block_result.d.ts.map +1 -1
- package/dest/block/validate_block_result.js +18 -17
- package/dest/checkpoint/checkpoint.d.ts +43 -19
- package/dest/checkpoint/checkpoint.d.ts.map +1 -1
- package/dest/checkpoint/checkpoint.js +38 -14
- 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/checkpoint_info.d.ts +32 -3
- package/dest/checkpoint/checkpoint_info.d.ts.map +1 -1
- package/dest/checkpoint/checkpoint_info.js +34 -1
- 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/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 +10 -0
- package/dest/config/sequencer-config.d.ts.map +1 -0
- package/dest/config/sequencer-config.js +18 -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 -64
- 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.js +3 -1
- package/dest/gas/gas_fees.js +3 -1
- package/dest/ha-signing/config.d.ts +101 -0
- package/dest/ha-signing/config.d.ts.map +1 -0
- package/dest/ha-signing/config.js +92 -0
- package/dest/ha-signing/index.d.ts +3 -0
- package/dest/ha-signing/index.d.ts.map +1 -0
- package/dest/ha-signing/index.js +2 -0
- package/dest/ha-signing/types.d.ts +85 -0
- package/dest/ha-signing/types.d.ts.map +1 -0
- package/dest/ha-signing/types.js +32 -0
- package/dest/hash/hash.d.ts +2 -1
- package/dest/hash/hash.d.ts.map +1 -1
- package/dest/hash/hash.js +16 -10
- package/dest/hash/map_slot.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/api_limit.d.ts +3 -1
- package/dest/interfaces/api_limit.d.ts.map +1 -1
- package/dest/interfaces/api_limit.js +2 -0
- package/dest/interfaces/archiver.d.ts +6 -6
- package/dest/interfaces/archiver.d.ts.map +1 -1
- package/dest/interfaces/archiver.js +27 -17
- package/dest/interfaces/aztec-node-admin.d.ts +111 -32
- package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
- package/dest/interfaces/aztec-node-admin.js +14 -6
- package/dest/interfaces/aztec-node.d.ts +75 -77
- package/dest/interfaces/aztec-node.d.ts.map +1 -1
- package/dest/interfaces/aztec-node.js +15 -16
- package/dest/interfaces/block-builder.d.ts +22 -14
- package/dest/interfaces/block-builder.d.ts.map +1 -1
- package/dest/interfaces/block-builder.js +7 -0
- package/dest/interfaces/configs.d.ts +28 -8
- package/dest/interfaces/configs.d.ts.map +1 -1
- package/dest/interfaces/configs.js +5 -1
- 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 +7 -9
- package/dest/interfaces/p2p.d.ts.map +1 -1
- package/dest/interfaces/p2p.js +3 -4
- 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 +52 -52
- package/dest/interfaces/proving-job.d.ts.map +1 -1
- package/dest/interfaces/proving-job.js +1 -7
- package/dest/interfaces/server_circuit_prover.d.ts +4 -3
- package/dest/interfaces/server_circuit_prover.d.ts.map +1 -1
- 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 +155 -19
- package/dest/interfaces/validator.d.ts.map +1 -1
- package/dest/interfaces/validator.js +8 -3
- package/dest/kernel/claimed_length_array.js +3 -1
- package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts +6 -5
- 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 +19 -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 +16 -8
- 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/hints/transient_data_squashing_hint.js +3 -1
- package/dest/kernel/log_hash.js +3 -1
- 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 +25 -3
- package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_tail_circuit_public_inputs.js +7 -7
- package/dest/kernel/private_log_data.js +5 -2
- package/dest/kernel/private_to_avm_accumulated_data.d.ts +2 -2
- package/dest/kernel/private_to_avm_accumulated_data.js +5 -2
- package/dest/kernel/private_to_public_accumulated_data.js +3 -1
- 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_accumulated_data.js +3 -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 +12 -10
- package/dest/kernel/public_call_request.d.ts +22 -1
- package/dest/kernel/public_call_request.d.ts.map +1 -1
- package/dest/kernel/public_call_request.js +5 -2
- 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/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/contract_class_log.js +3 -1
- 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_public_log.d.ts +17 -9
- package/dest/logs/extended_public_log.d.ts.map +1 -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/private_log.d.ts +2 -2
- package/dest/logs/private_log.d.ts.map +1 -1
- package/dest/logs/private_log.js +3 -1
- package/dest/logs/public_log.js +3 -1
- package/dest/logs/siloed_tag.d.ts +1 -1
- package/dest/logs/siloed_tag.d.ts.map +1 -1
- package/dest/logs/siloed_tag.js +2 -5
- package/dest/messaging/in_hash.d.ts +4 -2
- package/dest/messaging/in_hash.d.ts.map +1 -1
- package/dest/messaging/in_hash.js +3 -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 +88 -6
- package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -1
- package/dest/messaging/l2_to_l1_membership.js +160 -42
- package/dest/messaging/out_hash.d.ts +41 -3
- package/dest/messaging/out_hash.d.ts.map +1 -1
- package/dest/messaging/out_hash.js +54 -19
- 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 +3 -3
- package/dest/p2p/attestation_utils.d.ts.map +1 -1
- package/dest/p2p/attestation_utils.js +1 -1
- package/dest/p2p/block_proposal.d.ts +102 -23
- package/dest/p2p/block_proposal.d.ts.map +1 -1
- package/dest/p2p/block_proposal.js +138 -39
- package/dest/p2p/checkpoint_attestation.d.ts +82 -0
- package/dest/p2p/checkpoint_attestation.d.ts.map +1 -0
- package/dest/p2p/{block_attestation.js → checkpoint_attestation.js} +22 -19
- package/dest/p2p/checkpoint_proposal.d.ts +179 -0
- package/dest/p2p/checkpoint_proposal.d.ts.map +1 -0
- package/dest/p2p/checkpoint_proposal.js +243 -0
- package/dest/p2p/consensus_payload.d.ts +20 -11
- package/dest/p2p/consensus_payload.d.ts.map +1 -1
- package/dest/p2p/consensus_payload.js +24 -19
- 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/gossipable.d.ts +4 -3
- package/dest/p2p/gossipable.d.ts.map +1 -1
- package/dest/p2p/gossipable.js +16 -5
- package/dest/p2p/index.d.ts +5 -2
- package/dest/p2p/index.d.ts.map +1 -1
- package/dest/p2p/index.js +4 -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/signature_utils.d.ts +5 -3
- package/dest/p2p/signature_utils.d.ts.map +1 -1
- package/dest/p2p/signature_utils.js +3 -1
- package/dest/p2p/signed_txs.d.ts +42 -0
- package/dest/p2p/signed_txs.d.ts.map +1 -0
- package/dest/p2p/signed_txs.js +75 -0
- package/dest/p2p/topic_type.d.ts +3 -2
- package/dest/p2p/topic_type.d.ts.map +1 -1
- package/dest/p2p/topic_type.js +10 -3
- 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 +47 -11
- package/dest/rollup/block_rollup_public_inputs.d.ts.map +1 -1
- package/dest/rollup/block_rollup_public_inputs.js +8 -12
- 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_constant_data.js +3 -1
- package/dest/rollup/checkpoint_header.d.ts +43 -13
- package/dest/rollup/checkpoint_header.d.ts.map +1 -1
- package/dest/rollup/checkpoint_header.js +50 -20
- 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 +46 -6
- package/dest/rollup/checkpoint_rollup_public_inputs.d.ts.map +1 -1
- package/dest/rollup/checkpoint_rollup_public_inputs.js +11 -3
- 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 +21 -6
- package/dest/rollup/root_rollup_public_inputs.d.ts.map +1 -1
- package/dest/rollup/root_rollup_public_inputs.js +10 -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 +2 -1
- package/dest/slashing/tally.d.ts.map +1 -1
- package/dest/slashing/tally.js +6 -2
- package/dest/slashing/types.d.ts +7 -3
- package/dest/slashing/types.d.ts.map +1 -1
- package/dest/slashing/types.js +13 -1
- package/dest/stats/stats.d.ts +1 -3
- package/dest/stats/stats.d.ts.map +1 -1
- package/dest/tests/factories.d.ts +16 -10
- package/dest/tests/factories.d.ts.map +1 -1
- package/dest/tests/factories.js +71 -36
- package/dest/tests/jest.js +1 -1
- package/dest/tests/mocks.d.ts +77 -19
- package/dest/tests/mocks.d.ts.map +1 -1
- package/dest/tests/mocks.js +133 -62
- 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/append_only_tree_snapshot.js +3 -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 +14 -2
- package/dest/tx/block_header.d.ts.map +1 -1
- package/dest/tx/block_header.js +9 -3
- package/dest/tx/call_context.d.ts +13 -1
- package/dest/tx/call_context.d.ts.map +1 -1
- package/dest/tx/call_context.js +3 -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_variable_builder.d.ts +2 -2
- package/dest/tx/global_variable_builder.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/global_variables.js +3 -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/index.d.ts +1 -2
- package/dest/tx/index.d.ts.map +1 -1
- package/dest/tx/index.js +0 -1
- 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 -6
- package/dest/tx/private_execution_result.d.ts.map +1 -1
- package/dest/tx/private_execution_result.js +4 -21
- 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_call_request_with_calldata.js +3 -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/state_reference.d.ts +3 -1
- package/dest/tx/state_reference.d.ts.map +1 -1
- package/dest/tx/state_reference.js +3 -1
- package/dest/tx/tree_snapshots.js +3 -1
- package/dest/tx/tx.d.ts +24 -1
- package/dest/tx/tx.d.ts.map +1 -1
- package/dest/tx/tx.js +9 -4
- 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 +3 -8
- 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_execution_request.js +6 -2
- 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 +47 -13
- package/dest/tx/tx_receipt.d.ts.map +1 -1
- package/dest/tx/tx_receipt.js +46 -15
- 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 +3 -2
- package/dest/tx/validator/error_texts.d.ts.map +1 -1
- package/dest/tx/validator/error_texts.js +3 -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/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 +27 -13
- package/src/abi/contract_artifact.ts +10 -10
- package/src/abi/function_call.ts +25 -3
- package/src/abi/utils.ts +17 -0
- package/src/auth_witness/auth_witness.ts +3 -3
- package/src/block/attestation_info.ts +9 -6
- 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 +102 -149
- package/src/block/l2_block_source.ts +145 -44
- package/src/block/l2_block_stream/index.ts +1 -0
- package/src/block/l2_block_stream/interfaces.ts +15 -4
- package/src/block/l2_block_stream/l2_block_stream.ts +130 -39
- package/src/block/l2_block_stream/l2_tips_memory_store.ts +62 -56
- package/src/block/l2_block_stream/l2_tips_store_base.ts +226 -0
- package/src/block/test/l2_tips_store_test_suite.ts +480 -36
- package/src/block/validate_block_result.ts +40 -35
- package/src/checkpoint/checkpoint.ts +62 -21
- package/src/checkpoint/checkpoint_data.ts +51 -0
- package/src/checkpoint/checkpoint_info.ts +45 -2
- package/src/checkpoint/index.ts +2 -0
- package/src/checkpoint/published_checkpoint.ts +7 -4
- package/src/config/index.ts +1 -0
- package/src/config/node-rpc-config.ts +1 -1
- package/src/config/sequencer-config.ts +29 -0
- package/src/contract/contract_address.ts +4 -4
- package/src/contract/contract_class.ts +3 -3
- package/src/contract/contract_class_id.ts +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/ha-signing/config.ts +149 -0
- package/src/ha-signing/index.ts +18 -0
- package/src/ha-signing/types.ts +112 -0
- package/src/hash/hash.ts +14 -10
- package/src/hash/map_slot.ts +3 -2
- package/src/interfaces/api_limit.ts +2 -0
- package/src/interfaces/archiver.ts +31 -24
- package/src/interfaces/aztec-node-admin.ts +31 -4
- package/src/interfaces/aztec-node.ts +110 -129
- package/src/interfaces/block-builder.ts +41 -23
- package/src/interfaces/configs.ts +15 -1
- package/src/interfaces/l2_logs_source.ts +17 -4
- package/src/interfaces/merkle_tree_operations.ts +1 -1
- package/src/interfaces/p2p.ts +8 -12
- package/src/interfaces/prover-broker.ts +22 -0
- package/src/interfaces/prover-client.ts +22 -0
- package/src/interfaces/proving-job.ts +2 -11
- package/src/interfaces/server_circuit_prover.ts +3 -2
- package/src/interfaces/slasher.ts +4 -0
- package/src/interfaces/tx_provider.ts +2 -2
- package/src/interfaces/validator.ts +73 -15
- package/src/kernel/hints/build_note_hash_read_request_hints.ts +20 -12
- package/src/kernel/hints/build_nullifier_read_request_hints.ts +17 -14
- package/src/kernel/hints/index.ts +2 -2
- package/src/kernel/hints/{key_validation_request_and_generator.ts → key_validation_request_and_separator.ts} +12 -15
- package/src/kernel/hints/{scoped_key_validation_request_and_generator.ts → scoped_key_validation_request_and_separator.ts} +10 -10
- package/src/kernel/private_circuit_public_inputs.ts +14 -14
- package/src/kernel/private_kernel_circuit_public_inputs.ts +2 -2
- package/src/kernel/private_kernel_tail_circuit_private_inputs.ts +2 -2
- package/src/kernel/private_kernel_tail_circuit_public_inputs.ts +5 -5
- package/src/kernel/private_to_public_kernel_circuit_public_inputs.ts +5 -5
- package/src/kernel/private_to_rollup_kernel_circuit_public_inputs.ts +5 -5
- package/src/kernel/private_validation_requests.ts +8 -8
- package/src/keys/derivation.ts +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/l1-contracts/slash_factory.ts +1 -0
- package/src/logs/log_id.ts +22 -18
- package/src/logs/siloed_tag.ts +2 -2
- package/src/messaging/in_hash.ts +3 -1
- package/src/messaging/l2_to_l1_membership.ts +178 -52
- package/src/messaging/out_hash.ts +62 -21
- package/src/note/index.ts +0 -1
- package/src/note/note_dao.ts +18 -13
- package/src/p2p/attestation_utils.ts +3 -3
- package/src/p2p/block_proposal.ts +211 -46
- package/src/p2p/{block_attestation.ts → checkpoint_attestation.ts} +36 -25
- package/src/p2p/checkpoint_proposal.ts +387 -0
- package/src/p2p/consensus_payload.ts +29 -18
- package/src/p2p/constants.ts +6 -0
- package/src/p2p/gossipable.ts +14 -4
- package/src/p2p/index.ts +4 -1
- package/src/p2p/message_validator.ts +14 -2
- package/src/p2p/signature_utils.ts +3 -1
- package/src/p2p/signed_txs.ts +88 -0
- package/src/p2p/topic_type.ts +4 -3
- 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 +5 -11
- package/src/rollup/checkpoint_header.ts +64 -21
- package/src/rollup/checkpoint_rollup_public_inputs.ts +17 -5
- package/src/rollup/checkpoint_root_rollup_private_inputs.ts +14 -1
- package/src/rollup/root_rollup_public_inputs.ts +16 -7
- package/src/slashing/empire.ts +3 -1
- package/src/slashing/helpers.ts +8 -0
- package/src/slashing/tally.ts +8 -2
- package/src/slashing/types.ts +14 -0
- package/src/stats/stats.ts +0 -2
- package/src/tests/factories.ts +70 -54
- package/src/tests/jest.ts +1 -1
- package/src/tests/mocks.ts +228 -95
- package/src/timetable/index.ts +66 -0
- package/src/trees/public_data_leaf.ts +11 -5
- package/src/tx/block_header.ts +12 -4
- package/src/tx/global_variable_builder.ts +1 -1
- package/src/tx/global_variables.ts +3 -3
- package/src/tx/index.ts +0 -1
- package/src/tx/indexed_tx_effect.ts +3 -2
- package/src/tx/private_execution_result.ts +1 -16
- 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/tx.ts +10 -9
- package/src/tx/tx_effect.ts +0 -9
- package/src/tx/tx_execution_request.ts +2 -0
- package/src/tx/tx_receipt.ts +75 -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 +4 -1
- package/src/tx/validator/tx_validator.ts +1 -1
- package/src/validators/schemas.ts +8 -1
- package/src/validators/types.ts +5 -4
- package/src/zkpassport/index.ts +11 -12
- package/dest/block/l2_block_code_to_purge.d.ts +0 -12
- package/dest/block/l2_block_code_to_purge.d.ts.map +0 -1
- package/dest/block/l2_block_code_to_purge.js +0 -61
- package/dest/block/l2_block_header.d.ts +0 -98
- package/dest/block/l2_block_header.d.ts.map +0 -1
- package/dest/block/l2_block_header.js +0 -153
- package/dest/block/l2_block_new.d.ts +0 -135
- package/dest/block/l2_block_new.d.ts.map +0 -1
- package/dest/block/l2_block_new.js +0 -152
- 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/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/p2p/block_attestation.d.ts +0 -80
- package/dest/p2p/block_attestation.d.ts.map +0 -1
- package/dest/tx/content_commitment.d.ts +0 -49
- package/dest/tx/content_commitment.d.ts.map +0 -1
- package/dest/tx/content_commitment.js +0 -90
- package/src/block/l2_block_code_to_purge.ts +0 -88
- package/src/block/l2_block_header.ts +0 -246
- package/src/block/l2_block_new.ts +0 -207
- 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/tx/content_commitment.ts +0 -113
package/src/block/l2_block.ts
CHANGED
|
@@ -1,44 +1,66 @@
|
|
|
1
|
-
import { type BlockBlobData, encodeBlockBlobData
|
|
2
|
-
import {
|
|
1
|
+
import { type BlockBlobData, encodeBlockBlobData } from '@aztec/blob-lib/encoding';
|
|
2
|
+
import {
|
|
3
|
+
BlockNumber,
|
|
4
|
+
CheckpointNumber,
|
|
5
|
+
CheckpointNumberSchema,
|
|
6
|
+
IndexWithinCheckpoint,
|
|
7
|
+
IndexWithinCheckpointSchema,
|
|
8
|
+
SlotNumber,
|
|
9
|
+
} from '@aztec/foundation/branded-types';
|
|
3
10
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
4
11
|
import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
5
|
-
import { bufferToHex, hexToBuffer } from '@aztec/foundation/string';
|
|
6
12
|
|
|
7
13
|
import { z } from 'zod';
|
|
8
14
|
|
|
9
|
-
import {
|
|
15
|
+
import type { PrivateLog } from '../logs/private_log.js';
|
|
10
16
|
import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
|
|
11
|
-
import
|
|
17
|
+
import { BlockHeader } from '../tx/block_header.js';
|
|
18
|
+
import type { BlockHash } from './block_hash.js';
|
|
12
19
|
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
20
|
import type { L2BlockInfo } from './l2_block_info.js';
|
|
16
|
-
import { L2BlockNew } from './l2_block_new.js';
|
|
17
21
|
|
|
18
22
|
/**
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
* @deprecated Use `L2BlockNew` instead.
|
|
23
|
+
* An L2 block with a header and a body.
|
|
22
24
|
*/
|
|
23
25
|
export class L2Block {
|
|
24
26
|
constructor(
|
|
25
27
|
/** Snapshot of archive tree after the block is applied. */
|
|
26
28
|
public archive: AppendOnlyTreeSnapshot,
|
|
27
|
-
/**
|
|
28
|
-
public header:
|
|
29
|
+
/** Header of the block. */
|
|
30
|
+
public header: BlockHeader,
|
|
29
31
|
/** L2 block body. */
|
|
30
32
|
public body: Body,
|
|
31
|
-
|
|
33
|
+
/** Number of the checkpoint that the block belongs to. */
|
|
34
|
+
public checkpointNumber: CheckpointNumber,
|
|
35
|
+
/** Index of the block within the checkpoint. */
|
|
36
|
+
public indexWithinCheckpoint: IndexWithinCheckpoint,
|
|
32
37
|
) {}
|
|
33
38
|
|
|
39
|
+
get number(): BlockNumber {
|
|
40
|
+
return this.header.globalVariables.blockNumber;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
get slot(): SlotNumber {
|
|
44
|
+
return this.header.globalVariables.slotNumber;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
get timestamp(): bigint {
|
|
48
|
+
return this.header.globalVariables.timestamp;
|
|
49
|
+
}
|
|
50
|
+
|
|
34
51
|
static get schema() {
|
|
35
52
|
return z
|
|
36
53
|
.object({
|
|
37
54
|
archive: AppendOnlyTreeSnapshot.schema,
|
|
38
|
-
header:
|
|
55
|
+
header: BlockHeader.schema,
|
|
39
56
|
body: Body.schema,
|
|
57
|
+
checkpointNumber: CheckpointNumberSchema,
|
|
58
|
+
indexWithinCheckpoint: IndexWithinCheckpointSchema,
|
|
40
59
|
})
|
|
41
|
-
.transform(
|
|
60
|
+
.transform(
|
|
61
|
+
({ archive, header, body, checkpointNumber, indexWithinCheckpoint }) =>
|
|
62
|
+
new L2Block(archive, header, body, checkpointNumber, indexWithinCheckpoint),
|
|
63
|
+
);
|
|
42
64
|
}
|
|
43
65
|
|
|
44
66
|
/**
|
|
@@ -47,11 +69,13 @@ export class L2Block {
|
|
|
47
69
|
*/
|
|
48
70
|
static fromBuffer(buf: Buffer | BufferReader) {
|
|
49
71
|
const reader = BufferReader.asReader(buf);
|
|
50
|
-
const header = reader.readObject(
|
|
72
|
+
const header = reader.readObject(BlockHeader);
|
|
51
73
|
const archive = reader.readObject(AppendOnlyTreeSnapshot);
|
|
52
74
|
const body = reader.readObject(Body);
|
|
75
|
+
const checkpointNumber = CheckpointNumber(reader.readNumber());
|
|
76
|
+
const indexWithinCheckpoint = IndexWithinCheckpoint(reader.readNumber());
|
|
53
77
|
|
|
54
|
-
return new L2Block(archive, header, body);
|
|
78
|
+
return new L2Block(archive, header, body, checkpointNumber, indexWithinCheckpoint);
|
|
55
79
|
}
|
|
56
80
|
|
|
57
81
|
/**
|
|
@@ -59,151 +83,39 @@ export class L2Block {
|
|
|
59
83
|
* @returns A serialized L2 block as a Buffer.
|
|
60
84
|
*/
|
|
61
85
|
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;
|
|
86
|
+
return serializeToBuffer(this.header, this.archive, this.body, this.checkpointNumber, this.indexWithinCheckpoint);
|
|
127
87
|
}
|
|
128
88
|
|
|
129
89
|
/**
|
|
130
90
|
* Returns the block's hash (hash of block header).
|
|
131
91
|
* @returns The block's hash.
|
|
132
92
|
*/
|
|
133
|
-
public
|
|
134
|
-
|
|
135
|
-
this.blockHash = await this.getBlockHeader().hash();
|
|
136
|
-
}
|
|
137
|
-
return this.blockHash;
|
|
93
|
+
public hash(): Promise<BlockHash> {
|
|
94
|
+
return this.header.hash();
|
|
138
95
|
}
|
|
139
96
|
|
|
140
97
|
/**
|
|
141
|
-
*
|
|
142
|
-
*
|
|
143
|
-
*
|
|
98
|
+
* Checks if this block equals another block.
|
|
99
|
+
* @param other - The other block to compare with.
|
|
100
|
+
* @returns True if both blocks are equal.
|
|
144
101
|
*/
|
|
145
|
-
public
|
|
146
|
-
return
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
public toL2Block() {
|
|
155
|
-
return new L2BlockNew(
|
|
156
|
-
this.archive,
|
|
157
|
-
this.getBlockHeader(),
|
|
158
|
-
this.body,
|
|
159
|
-
CheckpointNumber.fromBlockNumber(this.number),
|
|
160
|
-
0, // indexWithinCheckpoint
|
|
102
|
+
public equals(other: this): boolean {
|
|
103
|
+
return (
|
|
104
|
+
this.archive.equals(other.archive) &&
|
|
105
|
+
this.header.equals(other.header) &&
|
|
106
|
+
this.body.equals(other.body) &&
|
|
107
|
+
this.checkpointNumber === other.checkpointNumber &&
|
|
108
|
+
this.indexWithinCheckpoint === other.indexWithinCheckpoint
|
|
161
109
|
);
|
|
162
110
|
}
|
|
163
111
|
|
|
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.contentCommitment,
|
|
179
|
-
block.header.state,
|
|
180
|
-
block.header.globalVariables,
|
|
181
|
-
block.header.totalFees,
|
|
182
|
-
checkpointHeader.totalManaUsed,
|
|
183
|
-
block.header.spongeBlobHash,
|
|
184
|
-
checkpointHeader.blockHeadersHash,
|
|
185
|
-
);
|
|
186
|
-
return new L2Block(checkpoint.archive, header, block.body);
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
/**
|
|
190
|
-
* @deprecated
|
|
191
|
-
* This only works when there's one block per checkpoint.
|
|
192
|
-
* TODO(#17027): Remove this method from L2Block and create a dedicated Checkpoint class.
|
|
193
|
-
*/
|
|
194
|
-
public getCheckpointBlobFields() {
|
|
195
|
-
const blockBlobData = this.toBlockBlobData();
|
|
196
|
-
return encodeCheckpointBlobDataFromBlocks([blockBlobData]);
|
|
197
|
-
}
|
|
198
|
-
|
|
199
112
|
public toBlobFields(): Fr[] {
|
|
200
113
|
const blockBlobData = this.toBlockBlobData();
|
|
201
114
|
return encodeBlockBlobData(blockBlobData);
|
|
202
115
|
}
|
|
203
116
|
|
|
204
117
|
public toBlockBlobData(): BlockBlobData {
|
|
205
|
-
|
|
206
|
-
const isFirstBlock = true;
|
|
118
|
+
const isFirstBlock = this.indexWithinCheckpoint === 0;
|
|
207
119
|
return {
|
|
208
120
|
blockEndMarker: {
|
|
209
121
|
numTxs: this.body.txEffects.length,
|
|
@@ -226,6 +138,48 @@ export class L2Block {
|
|
|
226
138
|
};
|
|
227
139
|
}
|
|
228
140
|
|
|
141
|
+
static empty(header?: BlockHeader) {
|
|
142
|
+
return new L2Block(
|
|
143
|
+
AppendOnlyTreeSnapshot.empty(),
|
|
144
|
+
header ?? BlockHeader.empty(),
|
|
145
|
+
Body.empty(),
|
|
146
|
+
CheckpointNumber(0),
|
|
147
|
+
IndexWithinCheckpoint(0),
|
|
148
|
+
);
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
/**
|
|
152
|
+
* Creates an L2 block containing random data.
|
|
153
|
+
* @param l2BlockNum - The number of the L2 block.
|
|
154
|
+
* @param txsPerBlock - The number of transactions to include in the block.
|
|
155
|
+
* @param numPublicCallsPerTx - The number of public function calls to include in each transaction.
|
|
156
|
+
* @param numPublicLogsPerCall - The number of public logs per 1 public function invocation.
|
|
157
|
+
* @param inHash - The hash of the L1 to L2 messages subtree which got inserted in this block.
|
|
158
|
+
* @returns The L2 block.
|
|
159
|
+
*/
|
|
160
|
+
static async random(
|
|
161
|
+
blockNumber: BlockNumber,
|
|
162
|
+
{
|
|
163
|
+
checkpointNumber = CheckpointNumber(Number(blockNumber)),
|
|
164
|
+
indexWithinCheckpoint = IndexWithinCheckpoint(0),
|
|
165
|
+
txsPerBlock = 1,
|
|
166
|
+
txOptions = {},
|
|
167
|
+
makeTxOptions,
|
|
168
|
+
...blockHeaderOverrides
|
|
169
|
+
}: {
|
|
170
|
+
checkpointNumber?: CheckpointNumber;
|
|
171
|
+
indexWithinCheckpoint?: IndexWithinCheckpoint;
|
|
172
|
+
txsPerBlock?: number;
|
|
173
|
+
txOptions?: Partial<Parameters<typeof Body.random>[0]>;
|
|
174
|
+
makeTxOptions?: (txIndex: number) => Partial<Parameters<typeof Body.random>[0]>;
|
|
175
|
+
} & Partial<Parameters<typeof BlockHeader.random>[0]> = {},
|
|
176
|
+
): Promise<L2Block> {
|
|
177
|
+
const archive = new AppendOnlyTreeSnapshot(Fr.random(), blockNumber + 1);
|
|
178
|
+
const header = BlockHeader.random({ blockNumber, ...blockHeaderOverrides });
|
|
179
|
+
const body = await Body.random({ txsPerBlock, makeTxOptions, ...txOptions });
|
|
180
|
+
return new L2Block(archive, header, body, checkpointNumber, indexWithinCheckpoint);
|
|
181
|
+
}
|
|
182
|
+
|
|
229
183
|
/**
|
|
230
184
|
* Returns stats used for logging.
|
|
231
185
|
* @returns Stats on tx count, number, and log size and count.
|
|
@@ -253,9 +207,12 @@ export class L2Block {
|
|
|
253
207
|
};
|
|
254
208
|
}
|
|
255
209
|
|
|
210
|
+
getPrivateLogs(): PrivateLog[] {
|
|
211
|
+
return this.body.txEffects.map(txEffect => txEffect.privateLogs).flat();
|
|
212
|
+
}
|
|
213
|
+
|
|
256
214
|
toBlockInfo(): L2BlockInfo {
|
|
257
215
|
return {
|
|
258
|
-
blockHash: this.blockHash,
|
|
259
216
|
archive: this.archive.root,
|
|
260
217
|
lastArchive: this.header.lastArchive.root,
|
|
261
218
|
blockNumber: this.number,
|
|
@@ -264,8 +221,4 @@ export class L2Block {
|
|
|
264
221
|
timestamp: this.header.globalVariables.timestamp,
|
|
265
222
|
};
|
|
266
223
|
}
|
|
267
|
-
|
|
268
|
-
equals(other: L2Block) {
|
|
269
|
-
return this.archive.equals(other.archive) && this.header.equals(other.header) && this.body.equals(other.body);
|
|
270
|
-
}
|
|
271
224
|
}
|
|
@@ -2,6 +2,7 @@ import {
|
|
|
2
2
|
BlockNumber,
|
|
3
3
|
BlockNumberSchema,
|
|
4
4
|
CheckpointNumber,
|
|
5
|
+
CheckpointNumberSchema,
|
|
5
6
|
type EpochNumber,
|
|
6
7
|
type SlotNumber,
|
|
7
8
|
} from '@aztec/foundation/branded-types';
|
|
@@ -12,16 +13,19 @@ import type { TypedEventEmitter } from '@aztec/foundation/types';
|
|
|
12
13
|
import { z } from 'zod';
|
|
13
14
|
|
|
14
15
|
import type { Checkpoint } from '../checkpoint/checkpoint.js';
|
|
16
|
+
import type { CheckpointData } from '../checkpoint/checkpoint_data.js';
|
|
15
17
|
import type { PublishedCheckpoint } from '../checkpoint/published_checkpoint.js';
|
|
16
18
|
import type { L1RollupConstants } from '../epoch-helpers/index.js';
|
|
19
|
+
import { CheckpointHeader } from '../rollup/checkpoint_header.js';
|
|
17
20
|
import type { BlockHeader } from '../tx/block_header.js';
|
|
18
21
|
import type { IndexedTxEffect } from '../tx/indexed_tx_effect.js';
|
|
19
22
|
import type { TxHash } from '../tx/tx_hash.js';
|
|
20
23
|
import type { TxReceipt } from '../tx/tx_receipt.js';
|
|
21
|
-
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';
|
|
22
27
|
import type { L2Block } from './l2_block.js';
|
|
23
|
-
import type {
|
|
24
|
-
import type { ValidateBlockNegativeResult, ValidateBlockResult } from './validate_block_result.js';
|
|
28
|
+
import type { ValidateCheckpointNegativeResult, ValidateCheckpointResult } from './validate_block_result.js';
|
|
25
29
|
|
|
26
30
|
/**
|
|
27
31
|
* Interface of classes allowing for the retrieval of L2 blocks.
|
|
@@ -51,6 +55,20 @@ export interface L2BlockSource {
|
|
|
51
55
|
*/
|
|
52
56
|
getProvenBlockNumber(): Promise<BlockNumber>;
|
|
53
57
|
|
|
58
|
+
/**
|
|
59
|
+
* Gets the number of the latest L2 block checkpointed seen by the block source implementation.
|
|
60
|
+
* @returns The number of the latest L2 block checkpointed seen by the block source implementation.
|
|
61
|
+
*/
|
|
62
|
+
getCheckpointedL2BlockNumber(): Promise<BlockNumber>;
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Computes the finalized block number based on the proven block number.
|
|
66
|
+
* A block is considered finalized when it's 2 epochs behind the proven block.
|
|
67
|
+
* TODO(#13569): Compute proper finalized block number based on L1 finalized block.
|
|
68
|
+
* @returns The finalized block number.
|
|
69
|
+
*/
|
|
70
|
+
getFinalizedL2BlockNumber(): Promise<BlockNumber>;
|
|
71
|
+
|
|
54
72
|
/**
|
|
55
73
|
* Gets an l2 block header.
|
|
56
74
|
* @param number - The block number to return or 'latest' for the most recent one.
|
|
@@ -66,13 +84,15 @@ export interface L2BlockSource {
|
|
|
66
84
|
*/
|
|
67
85
|
getCheckpointedBlock(number: BlockNumber): Promise<CheckpointedL2Block | undefined>;
|
|
68
86
|
|
|
87
|
+
getCheckpointedBlocks(from: BlockNumber, limit: number): Promise<CheckpointedL2Block[]>;
|
|
88
|
+
|
|
69
89
|
/**
|
|
70
|
-
* Retrieves a collection of
|
|
71
|
-
* @param checkpointNumber The first checkpoint to be retrieved
|
|
72
|
-
* @param limit The number of checkpoints to be retrieved
|
|
73
|
-
* @returns The collection of complete checkpoints
|
|
90
|
+
* Retrieves a collection of checkpoints.
|
|
91
|
+
* @param checkpointNumber The first checkpoint to be retrieved.
|
|
92
|
+
* @param limit The number of checkpoints to be retrieved.
|
|
93
|
+
* @returns The collection of complete checkpoints.
|
|
74
94
|
*/
|
|
75
|
-
|
|
95
|
+
getCheckpoints(checkpointNumber: CheckpointNumber, limit: number): Promise<PublishedCheckpoint[]>;
|
|
76
96
|
|
|
77
97
|
/**
|
|
78
98
|
* Gets the checkpoints for a given epoch
|
|
@@ -80,12 +100,18 @@ export interface L2BlockSource {
|
|
|
80
100
|
*/
|
|
81
101
|
getCheckpointsForEpoch(epochNumber: EpochNumber): Promise<Checkpoint[]>;
|
|
82
102
|
|
|
103
|
+
/**
|
|
104
|
+
* Gets lightweight checkpoint metadata for a given epoch, without fetching full block data.
|
|
105
|
+
* @param epochNumber - Epoch for which we want checkpoint data
|
|
106
|
+
*/
|
|
107
|
+
getCheckpointsDataForEpoch(epochNumber: EpochNumber): Promise<CheckpointData[]>;
|
|
108
|
+
|
|
83
109
|
/**
|
|
84
110
|
* Gets a block header by its hash.
|
|
85
111
|
* @param blockHash - The block hash to retrieve.
|
|
86
112
|
* @returns The requested block header (or undefined if not found).
|
|
87
113
|
*/
|
|
88
|
-
getBlockHeaderByHash(blockHash:
|
|
114
|
+
getBlockHeaderByHash(blockHash: BlockHash): Promise<BlockHeader | undefined>;
|
|
89
115
|
|
|
90
116
|
/**
|
|
91
117
|
* Gets a block header by its archive root.
|
|
@@ -94,12 +120,40 @@ export interface L2BlockSource {
|
|
|
94
120
|
*/
|
|
95
121
|
getBlockHeaderByArchive(archive: Fr): Promise<BlockHeader | undefined>;
|
|
96
122
|
|
|
123
|
+
/**
|
|
124
|
+
* Gets block metadata (without tx data) by block number.
|
|
125
|
+
* @param number - The block number to retrieve.
|
|
126
|
+
* @returns The requested block data (or undefined if not found).
|
|
127
|
+
*/
|
|
128
|
+
getBlockData(number: BlockNumber): Promise<BlockData | undefined>;
|
|
129
|
+
|
|
130
|
+
/**
|
|
131
|
+
* Gets block metadata (without tx data) by archive root.
|
|
132
|
+
* @param archive - The archive root to retrieve.
|
|
133
|
+
* @returns The requested block data (or undefined if not found).
|
|
134
|
+
*/
|
|
135
|
+
getBlockDataByArchive(archive: Fr): Promise<BlockData | undefined>;
|
|
136
|
+
|
|
97
137
|
/**
|
|
98
138
|
* Gets an L2 block by block number.
|
|
99
139
|
* @param number - The block number to return.
|
|
100
140
|
* @returns The requested L2 block (or undefined if not found).
|
|
101
141
|
*/
|
|
102
|
-
|
|
142
|
+
getL2Block(number: BlockNumber): Promise<L2Block | undefined>;
|
|
143
|
+
|
|
144
|
+
/**
|
|
145
|
+
* Gets an L2 block by its hash.
|
|
146
|
+
* @param blockHash - The block hash to retrieve.
|
|
147
|
+
* @returns The requested L2 block (or undefined if not found).
|
|
148
|
+
*/
|
|
149
|
+
getL2BlockByHash(blockHash: BlockHash): Promise<L2Block | undefined>;
|
|
150
|
+
|
|
151
|
+
/**
|
|
152
|
+
* Gets an L2 block by its archive root.
|
|
153
|
+
* @param archive - The archive root to retrieve.
|
|
154
|
+
* @returns The requested L2 block (or undefined if not found).
|
|
155
|
+
*/
|
|
156
|
+
getL2BlockByArchive(archive: Fr): Promise<L2Block | undefined>;
|
|
103
157
|
|
|
104
158
|
/**
|
|
105
159
|
* Gets a tx effect.
|
|
@@ -126,11 +180,11 @@ export interface L2BlockSource {
|
|
|
126
180
|
getL2EpochNumber(): Promise<EpochNumber | undefined>;
|
|
127
181
|
|
|
128
182
|
/**
|
|
129
|
-
* Returns all block headers for a given epoch.
|
|
183
|
+
* Returns all checkpointed block headers for a given epoch.
|
|
130
184
|
* @dev Use this method only with recent epochs, since it walks the block list backwards.
|
|
131
185
|
* @param epochNumber - The epoch number to return headers for.
|
|
132
186
|
*/
|
|
133
|
-
|
|
187
|
+
getCheckpointedBlockHeadersForEpoch(epochNumber: EpochNumber): Promise<BlockHeader[]>;
|
|
134
188
|
|
|
135
189
|
/**
|
|
136
190
|
* Returns whether the given epoch is completed on L1, based on the current L1 and L2 block numbers.
|
|
@@ -161,10 +215,10 @@ export interface L2BlockSource {
|
|
|
161
215
|
isPendingChainInvalid(): Promise<boolean>;
|
|
162
216
|
|
|
163
217
|
/**
|
|
164
|
-
* Returns the status of the pending chain validation. If the chain is invalid, reports the earliest consecutive
|
|
165
|
-
* that is invalid, along with the reason for being invalid, which can be used to trigger an invalidation.
|
|
218
|
+
* Returns the status of the pending chain validation. If the chain is invalid, reports the earliest consecutive
|
|
219
|
+
* checkpoint that is invalid, along with the reason for being invalid, which can be used to trigger an invalidation.
|
|
166
220
|
*/
|
|
167
|
-
getPendingChainValidationStatus(): Promise<
|
|
221
|
+
getPendingChainValidationStatus(): Promise<ValidateCheckpointResult>;
|
|
168
222
|
|
|
169
223
|
/** Force a sync. */
|
|
170
224
|
syncImmediate(): Promise<void>;
|
|
@@ -175,42 +229,44 @@ export interface L2BlockSource {
|
|
|
175
229
|
* Gets an l2 block. If a negative number is passed, the block returned is the most recent.
|
|
176
230
|
* @param number - The block number to return (inclusive).
|
|
177
231
|
* @returns The requested L2 block.
|
|
178
|
-
* @deprecated Use getL2BlockNew instead.
|
|
179
232
|
*/
|
|
180
233
|
getBlock(number: BlockNumber): Promise<L2Block | undefined>;
|
|
181
234
|
|
|
182
235
|
/**
|
|
183
|
-
* Returns all blocks for a given epoch.
|
|
236
|
+
* Returns all checkpointed blocks for a given epoch.
|
|
184
237
|
* @dev Use this method only with recent epochs, since it walks the block list backwards.
|
|
185
238
|
* @param epochNumber - The epoch number to return blocks for.
|
|
186
239
|
*/
|
|
187
|
-
|
|
240
|
+
getCheckpointedBlocksForEpoch(epochNumber: EpochNumber): Promise<CheckpointedL2Block[]>;
|
|
188
241
|
|
|
189
242
|
/**
|
|
190
|
-
*
|
|
243
|
+
* Returns all blocks for a given slot.
|
|
244
|
+
* @dev Use this method only with recent slots, since it walks the block list backwards.
|
|
245
|
+
* @param slotNumber - The slot number to return blocks for.
|
|
246
|
+
*/
|
|
247
|
+
getBlocksForSlot(slotNumber: SlotNumber): Promise<L2Block[]>;
|
|
248
|
+
|
|
249
|
+
/**
|
|
250
|
+
* Gets a checkpointed block by its block hash.
|
|
191
251
|
* @param blockHash - The block hash to retrieve.
|
|
192
252
|
* @returns The requested block (or undefined if not found).
|
|
193
253
|
*/
|
|
194
|
-
|
|
254
|
+
getCheckpointedBlockByHash(blockHash: BlockHash): Promise<CheckpointedL2Block | undefined>;
|
|
195
255
|
|
|
196
256
|
/**
|
|
197
|
-
* Gets a
|
|
257
|
+
* Gets a checkpointed block by its archive root.
|
|
198
258
|
* @param archive - The archive root to retrieve.
|
|
199
259
|
* @returns The requested block (or undefined if not found).
|
|
200
260
|
*/
|
|
201
|
-
|
|
261
|
+
getCheckpointedBlockByArchive(archive: Fr): Promise<CheckpointedL2Block | undefined>;
|
|
202
262
|
|
|
203
263
|
/**
|
|
204
264
|
* Gets up to `limit` amount of L2 blocks starting from `from`.
|
|
205
265
|
* @param from - Number of the first block to return (inclusive).
|
|
206
266
|
* @param limit - The maximum number of blocks to return.
|
|
207
|
-
* @param proven - If true, only return blocks that have been proven.
|
|
208
267
|
* @returns The requested L2 blocks.
|
|
209
268
|
*/
|
|
210
|
-
getBlocks(from: BlockNumber, limit: number
|
|
211
|
-
|
|
212
|
-
/** Equivalent to getBlocks but includes publish data. */
|
|
213
|
-
getPublishedBlocks(from: BlockNumber, limit: number, proven?: boolean): Promise<PublishedL2Block[]>;
|
|
269
|
+
getBlocks(from: BlockNumber, limit: number): Promise<L2Block[]>;
|
|
214
270
|
}
|
|
215
271
|
|
|
216
272
|
/**
|
|
@@ -222,7 +278,7 @@ export interface L2BlockSink {
|
|
|
222
278
|
* @param block - The L2 block to add.
|
|
223
279
|
* @throws If block number is not incremental (i.e., not exactly one more than the last stored block).
|
|
224
280
|
*/
|
|
225
|
-
addBlock(block:
|
|
281
|
+
addBlock(block: L2Block): Promise<void>;
|
|
226
282
|
}
|
|
227
283
|
|
|
228
284
|
/**
|
|
@@ -230,26 +286,42 @@ export interface L2BlockSink {
|
|
|
230
286
|
* see L2BlockSourceEvents for the events emitted.
|
|
231
287
|
*/
|
|
232
288
|
export type ArchiverEmitter = TypedEventEmitter<{
|
|
233
|
-
[L2BlockSourceEvents.
|
|
289
|
+
[L2BlockSourceEvents.L2PruneUnproven]: (args: L2PruneUnprovenEvent) => void;
|
|
290
|
+
[L2BlockSourceEvents.L2PruneUncheckpointed]: (args: L2PruneUncheckpointedEvent) => void;
|
|
234
291
|
[L2BlockSourceEvents.L2BlockProven]: (args: L2BlockProvenEvent) => void;
|
|
235
|
-
[L2BlockSourceEvents.
|
|
292
|
+
[L2BlockSourceEvents.InvalidAttestationsCheckpointDetected]: (args: InvalidCheckpointDetectedEvent) => void;
|
|
293
|
+
[L2BlockSourceEvents.L2BlocksCheckpointed]: (args: L2CheckpointEvent) => void;
|
|
236
294
|
}>;
|
|
237
|
-
export interface L2BlockSourceEventEmitter extends L2BlockSource
|
|
295
|
+
export interface L2BlockSourceEventEmitter extends L2BlockSource {
|
|
296
|
+
events: ArchiverEmitter;
|
|
297
|
+
}
|
|
238
298
|
|
|
239
299
|
/**
|
|
240
300
|
* Identifier for L2 block tags.
|
|
241
|
-
* -
|
|
301
|
+
* - proposed: Latest block proposed on L2.
|
|
302
|
+
* - checkpointed: Checkpointed block on L1.
|
|
242
303
|
* - proven: Proven block on L1.
|
|
243
304
|
* - finalized: Proven block on a finalized L1 block (not implemented, set to proven for now).
|
|
244
305
|
*/
|
|
245
|
-
export type L2BlockTag = '
|
|
306
|
+
export type L2BlockTag = 'proposed' | 'checkpointed' | 'proven' | 'finalized';
|
|
246
307
|
|
|
247
308
|
/** Tips of the L2 chain. */
|
|
248
|
-
export type L2Tips =
|
|
309
|
+
export type L2Tips = {
|
|
310
|
+
proposed: L2BlockId;
|
|
311
|
+
checkpointed: L2TipId;
|
|
312
|
+
proven: L2TipId;
|
|
313
|
+
finalized: L2TipId;
|
|
314
|
+
};
|
|
315
|
+
|
|
316
|
+
export const GENESIS_CHECKPOINT_HEADER_HASH = CheckpointHeader.empty().hash();
|
|
249
317
|
|
|
250
318
|
/** Identifies a block by number and hash. */
|
|
251
319
|
export type L2BlockId = { number: BlockNumber; hash: string };
|
|
252
320
|
|
|
321
|
+
export type CheckpointId = { number: CheckpointNumber; hash: string };
|
|
322
|
+
|
|
323
|
+
export type L2TipId = { block: L2BlockId; checkpoint: CheckpointId };
|
|
324
|
+
|
|
253
325
|
/** Creates an L2 block id */
|
|
254
326
|
export function makeL2BlockId(number: BlockNumber, hash?: string): L2BlockId {
|
|
255
327
|
if (number !== 0 && !hash) {
|
|
@@ -258,21 +330,39 @@ export function makeL2BlockId(number: BlockNumber, hash?: string): L2BlockId {
|
|
|
258
330
|
return { number, hash: hash! };
|
|
259
331
|
}
|
|
260
332
|
|
|
333
|
+
/** Creates an L2 checkpoint id */
|
|
334
|
+
export function makeL2CheckpointId(number: CheckpointNumber, hash: string): CheckpointId {
|
|
335
|
+
return { number, hash };
|
|
336
|
+
}
|
|
337
|
+
|
|
261
338
|
const L2BlockIdSchema = z.object({
|
|
262
339
|
number: BlockNumberSchema,
|
|
263
340
|
hash: z.string(),
|
|
264
341
|
});
|
|
265
342
|
|
|
343
|
+
const L2CheckpointIdSchema = z.object({
|
|
344
|
+
number: CheckpointNumberSchema,
|
|
345
|
+
hash: z.string(),
|
|
346
|
+
});
|
|
347
|
+
|
|
348
|
+
const L2TipIdSchema = z.object({
|
|
349
|
+
block: L2BlockIdSchema,
|
|
350
|
+
checkpoint: L2CheckpointIdSchema,
|
|
351
|
+
});
|
|
352
|
+
|
|
266
353
|
export const L2TipsSchema = z.object({
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
354
|
+
proposed: L2BlockIdSchema,
|
|
355
|
+
checkpointed: L2TipIdSchema,
|
|
356
|
+
proven: L2TipIdSchema,
|
|
357
|
+
finalized: L2TipIdSchema,
|
|
270
358
|
});
|
|
271
359
|
|
|
272
360
|
export enum L2BlockSourceEvents {
|
|
273
|
-
|
|
361
|
+
L2PruneUnproven = 'l2PruneUnproven',
|
|
362
|
+
L2PruneUncheckpointed = 'l2PruneUncheckpointed',
|
|
274
363
|
L2BlockProven = 'l2BlockProven',
|
|
275
|
-
|
|
364
|
+
L2BlocksCheckpointed = 'l2BlocksCheckpointed',
|
|
365
|
+
InvalidAttestationsCheckpointDetected = 'invalidCheckpointDetected',
|
|
276
366
|
}
|
|
277
367
|
|
|
278
368
|
export type L2BlockProvenEvent = {
|
|
@@ -282,13 +372,24 @@ export type L2BlockProvenEvent = {
|
|
|
282
372
|
epochNumber: EpochNumber;
|
|
283
373
|
};
|
|
284
374
|
|
|
285
|
-
export type
|
|
286
|
-
type: '
|
|
375
|
+
export type L2PruneUnprovenEvent = {
|
|
376
|
+
type: 'l2PruneUnproven';
|
|
287
377
|
epochNumber: EpochNumber;
|
|
288
378
|
blocks: L2Block[];
|
|
289
379
|
};
|
|
290
380
|
|
|
291
|
-
export type
|
|
292
|
-
type: '
|
|
293
|
-
|
|
381
|
+
export type L2PruneUncheckpointedEvent = {
|
|
382
|
+
type: 'l2PruneUncheckpointed';
|
|
383
|
+
slotNumber: SlotNumber;
|
|
384
|
+
blocks: L2Block[];
|
|
385
|
+
};
|
|
386
|
+
|
|
387
|
+
export type L2CheckpointEvent = {
|
|
388
|
+
type: 'l2BlocksCheckpointed';
|
|
389
|
+
checkpoint: PublishedCheckpoint;
|
|
390
|
+
};
|
|
391
|
+
|
|
392
|
+
export type InvalidCheckpointDetectedEvent = {
|
|
393
|
+
type: 'invalidCheckpointDetected';
|
|
394
|
+
validationResult: ValidateCheckpointNegativeResult;
|
|
294
395
|
};
|