@aztec/stdlib 0.0.1-commit.b2a5d0dd1 → 0.0.1-commit.b3d3157a
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dest/abi/abi.d.ts +121 -1197
- package/dest/abi/abi.d.ts.map +1 -1
- package/dest/abi/abi.js +31 -16
- package/dest/abi/authorization_selector.d.ts +2 -2
- package/dest/abi/authorization_selector.d.ts.map +1 -1
- package/dest/abi/contract_artifact.d.ts +1 -1
- package/dest/abi/contract_artifact.d.ts.map +1 -1
- package/dest/abi/contract_artifact.js +14 -7
- package/dest/abi/event_selector.d.ts +2 -2
- package/dest/abi/event_selector.d.ts.map +1 -1
- package/dest/abi/function_call.d.ts +7 -25
- package/dest/abi/function_call.d.ts.map +1 -1
- package/dest/abi/note_selector.d.ts +2 -2
- package/dest/abi/note_selector.d.ts.map +1 -1
- package/dest/abi/utils.d.ts +1 -1
- package/dest/abi/utils.d.ts.map +1 -1
- package/dest/abi/utils.js +1 -1
- package/dest/auth_witness/auth_witness.d.ts +2 -2
- package/dest/auth_witness/auth_witness.d.ts.map +1 -1
- package/dest/avm/avm.d.ts +1756 -10463
- package/dest/avm/avm.d.ts.map +1 -1
- package/dest/avm/avm.js +6 -3
- package/dest/avm/avm_accumulated_data.d.ts +22 -86
- package/dest/avm/avm_accumulated_data.d.ts.map +1 -1
- package/dest/avm/avm_circuit_public_inputs.d.ts +180 -932
- package/dest/avm/avm_circuit_public_inputs.d.ts.map +1 -1
- package/dest/avm/avm_proving_request.d.ts +653 -5446
- package/dest/avm/avm_proving_request.d.ts.map +1 -1
- package/dest/avm/message_pack.js +12 -3
- package/dest/avm/public_data_write.d.ts +6 -12
- package/dest/avm/public_data_write.d.ts.map +1 -1
- package/dest/avm/revert_code.d.ts +1 -7
- package/dest/avm/revert_code.d.ts.map +1 -1
- package/dest/avm/revert_code.js +0 -3
- package/dest/aztec-address/index.d.ts +6 -3
- package/dest/aztec-address/index.d.ts.map +1 -1
- package/dest/aztec-address/index.js +7 -2
- package/dest/block/attestation_info.d.ts +3 -2
- package/dest/block/attestation_info.d.ts.map +1 -1
- package/dest/block/attestation_info.js +7 -5
- package/dest/block/block_data.d.ts +9 -34
- package/dest/block/block_data.d.ts.map +1 -1
- package/dest/block/block_parameter.d.ts +37 -4
- package/dest/block/block_parameter.d.ts.map +1 -1
- package/dest/block/block_parameter.js +53 -2
- package/dest/block/in_block.d.ts +5 -24
- package/dest/block/in_block.d.ts.map +1 -1
- package/dest/block/index.d.ts +1 -2
- package/dest/block/index.d.ts.map +1 -1
- package/dest/block/index.js +0 -1
- package/dest/block/l2_block.d.ts +13 -41
- package/dest/block/l2_block.d.ts.map +1 -1
- package/dest/block/l2_block_info.d.ts +7 -27
- package/dest/block/l2_block_info.d.ts.map +1 -1
- package/dest/block/l2_block_source.d.ts +199 -425
- package/dest/block/l2_block_source.d.ts.map +1 -1
- package/dest/block/l2_block_source.js +66 -1
- package/dest/block/l2_block_stream/l2_block_stream.d.ts +2 -2
- package/dest/block/l2_block_stream/l2_block_stream.d.ts.map +1 -1
- package/dest/block/l2_block_stream/l2_block_stream.js +44 -17
- package/dest/block/l2_block_stream/l2_tips_memory_store.d.ts +3 -1
- 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 +3 -0
- package/dest/block/l2_block_stream/l2_tips_store_base.d.ts +4 -1
- package/dest/block/l2_block_stream/l2_tips_store_base.d.ts.map +1 -1
- package/dest/block/l2_block_stream/l2_tips_store_base.js +26 -7
- package/dest/block/proposal/attestations_and_signers.d.ts +19 -30
- package/dest/block/proposal/attestations_and_signers.d.ts.map +1 -1
- package/dest/block/proposal/attestations_and_signers.js +26 -18
- package/dest/block/proposal/committee_attestation.d.ts +6 -12
- package/dest/block/proposal/committee_attestation.d.ts.map +1 -1
- package/dest/block/test/l2_tips_store_test_suite.js +1 -1
- package/dest/checkpoint/checkpoint.d.ts +24 -96
- package/dest/checkpoint/checkpoint.d.ts.map +1 -1
- package/dest/checkpoint/checkpoint_data.d.ts +40 -129
- package/dest/checkpoint/checkpoint_data.d.ts.map +1 -1
- package/dest/checkpoint/checkpoint_data.js +2 -0
- package/dest/checkpoint/checkpoint_info.d.ts +7 -23
- package/dest/checkpoint/checkpoint_info.d.ts.map +1 -1
- package/dest/checkpoint/checkpoint_reexecution_tracker.d.ts +60 -0
- package/dest/checkpoint/checkpoint_reexecution_tracker.d.ts.map +1 -0
- package/dest/checkpoint/checkpoint_reexecution_tracker.js +108 -0
- package/dest/checkpoint/digest.d.ts +18 -0
- package/dest/checkpoint/digest.d.ts.map +1 -0
- package/dest/checkpoint/digest.js +12 -0
- package/dest/checkpoint/index.d.ts +4 -1
- package/dest/checkpoint/index.d.ts.map +1 -1
- package/dest/checkpoint/index.js +3 -0
- package/dest/checkpoint/previous_checkpoint_out_hashes.d.ts +33 -0
- package/dest/checkpoint/previous_checkpoint_out_hashes.d.ts.map +1 -0
- package/dest/checkpoint/previous_checkpoint_out_hashes.js +45 -0
- package/dest/checkpoint/published_checkpoint.d.ts +42 -194
- package/dest/checkpoint/published_checkpoint.d.ts.map +1 -1
- package/dest/config/chain-config.d.ts +4 -9
- package/dest/config/chain-config.d.ts.map +1 -1
- package/dest/config/chain-config.js +6 -11
- package/dest/config/index.d.ts +1 -2
- package/dest/config/index.d.ts.map +1 -1
- package/dest/config/index.js +0 -1
- package/dest/config/sequencer-config.d.ts +5 -3
- package/dest/config/sequencer-config.d.ts.map +1 -1
- package/dest/config/sequencer-config.js +13 -6
- package/dest/contract/complete_address.d.ts +3 -2
- package/dest/contract/complete_address.d.ts.map +1 -1
- package/dest/contract/complete_address.js +6 -2
- package/dest/contract/contract_address.d.ts +5 -5
- package/dest/contract/contract_address.d.ts.map +1 -1
- package/dest/contract/contract_address.js +5 -4
- package/dest/contract/contract_deployment_data.d.ts +15 -61
- package/dest/contract/contract_deployment_data.d.ts.map +1 -1
- package/dest/contract/contract_instance.d.ts +4 -2
- package/dest/contract/contract_instance.d.ts.map +1 -1
- package/dest/contract/contract_instance.js +10 -3
- package/dest/contract/interfaces/contract_class.d.ts +15 -86
- package/dest/contract/interfaces/contract_class.d.ts.map +1 -1
- package/dest/contract/interfaces/contract_instance.d.ts +41 -95
- package/dest/contract/interfaces/contract_instance.d.ts.map +1 -1
- package/dest/contract/interfaces/contract_instance.js +4 -2
- package/dest/contract/interfaces/contract_instance_update.d.ts +6 -26
- package/dest/contract/interfaces/contract_instance_update.d.ts.map +1 -1
- package/dest/contract/interfaces/protocol_contract_addresses.d.ts +2 -12
- package/dest/contract/interfaces/protocol_contract_addresses.d.ts.map +1 -1
- package/dest/database-version/database_version.d.ts +5 -11
- package/dest/database-version/database_version.d.ts.map +1 -1
- package/dest/database-version/version_manager.d.ts +6 -2
- package/dest/database-version/version_manager.d.ts.map +1 -1
- package/dest/database-version/version_manager.js +12 -1
- package/dest/epoch-helpers/index.d.ts +4 -22
- package/dest/epoch-helpers/index.d.ts.map +1 -1
- package/dest/gas/gas.d.ts +9 -14
- package/dest/gas/gas.d.ts.map +1 -1
- package/dest/gas/gas.js +6 -3
- package/dest/gas/gas_fees.d.ts +9 -14
- package/dest/gas/gas_fees.d.ts.map +1 -1
- package/dest/gas/gas_fees.js +7 -3
- package/dest/gas/gas_settings.d.ts +27 -84
- package/dest/gas/gas_settings.d.ts.map +1 -1
- package/dest/gas/gas_settings.js +6 -3
- package/dest/ha-signing/config.d.ts +9 -73
- package/dest/ha-signing/config.d.ts.map +1 -1
- package/dest/ha-signing/config.js +5 -15
- package/dest/ha-signing/local_config.d.ts +3 -34
- package/dest/ha-signing/local_config.d.ts.map +1 -1
- package/dest/ha-signing/local_config.js +2 -2
- package/dest/hash/hash.d.ts +1 -1
- package/dest/hash/hash.d.ts.map +1 -1
- package/dest/hash/hash.js +2 -2
- package/dest/interfaces/allowed_element.d.ts +4 -28
- package/dest/interfaces/allowed_element.d.ts.map +1 -1
- package/dest/interfaces/api_limit.d.ts +1 -1
- package/dest/interfaces/api_limit.js +1 -1
- package/dest/interfaces/archiver.d.ts +16 -36
- package/dest/interfaces/archiver.d.ts.map +1 -1
- package/dest/interfaces/archiver.js +211 -71
- package/dest/interfaces/aztec-node-admin.d.ts +62 -292
- package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
- package/dest/interfaces/aztec-node-admin.js +57 -14
- package/dest/interfaces/aztec-node-debug.js +4 -1
- package/dest/interfaces/aztec-node.d.ts +100 -106
- package/dest/interfaces/aztec-node.d.ts.map +1 -1
- package/dest/interfaces/aztec-node.js +308 -70
- package/dest/interfaces/block-builder.d.ts +3 -1
- package/dest/interfaces/block-builder.d.ts.map +1 -1
- package/dest/interfaces/block_response.d.ts +90 -0
- package/dest/interfaces/block_response.d.ts.map +1 -0
- package/dest/interfaces/block_response.js +30 -0
- package/dest/interfaces/chain_tips.d.ts +50 -0
- package/dest/interfaces/chain_tips.d.ts.map +1 -0
- package/dest/interfaces/chain_tips.js +11 -0
- package/dest/interfaces/checkpoint_parameter.d.ts +14 -0
- package/dest/interfaces/checkpoint_parameter.d.ts.map +1 -0
- package/dest/interfaces/checkpoint_parameter.js +18 -0
- package/dest/interfaces/checkpoint_response.d.ts +122 -0
- package/dest/interfaces/checkpoint_response.d.ts.map +1 -0
- package/dest/interfaces/checkpoint_response.js +26 -0
- package/dest/interfaces/client.d.ts +7 -2
- package/dest/interfaces/client.d.ts.map +1 -1
- package/dest/interfaces/client.js +6 -1
- package/dest/interfaces/configs.d.ts +41 -130
- package/dest/interfaces/configs.d.ts.map +1 -1
- package/dest/interfaces/configs.js +9 -1
- package/dest/interfaces/l1_publish_info.d.ts +29 -0
- package/dest/interfaces/l1_publish_info.d.ts.map +1 -0
- package/dest/interfaces/l1_publish_info.js +26 -0
- package/dest/interfaces/l2_logs_source.d.ts +14 -36
- package/dest/interfaces/l2_logs_source.d.ts.map +1 -1
- package/dest/interfaces/l2_logs_source.js +5 -0
- package/dest/interfaces/merkle_tree_operations.d.ts +9 -3
- package/dest/interfaces/merkle_tree_operations.d.ts.map +1 -1
- package/dest/interfaces/p2p-bootstrap.js +8 -2
- package/dest/interfaces/p2p.d.ts +15 -5
- package/dest/interfaces/p2p.d.ts.map +1 -1
- package/dest/interfaces/p2p.js +28 -5
- package/dest/interfaces/private_kernel_prover.d.ts +62 -2
- package/dest/interfaces/private_kernel_prover.d.ts.map +1 -1
- package/dest/interfaces/prover-agent.d.ts +5 -23
- package/dest/interfaces/prover-agent.d.ts.map +1 -1
- package/dest/interfaces/prover-agent.js +4 -1
- package/dest/interfaces/prover-client.d.ts +6 -27
- package/dest/interfaces/prover-client.d.ts.map +1 -1
- package/dest/interfaces/prover-node.js +22 -8
- package/dest/interfaces/proving-job-source.js +24 -4
- package/dest/interfaces/proving-job.d.ts +725 -5776
- package/dest/interfaces/proving-job.d.ts.map +1 -1
- package/dest/interfaces/proving-job.js +1 -1
- package/dest/interfaces/public_storage_override.d.ts +22 -0
- package/dest/interfaces/public_storage_override.d.ts.map +1 -0
- package/dest/interfaces/public_storage_override.js +7 -0
- package/dest/interfaces/server.d.ts +6 -1
- package/dest/interfaces/server.d.ts.map +1 -1
- package/dest/interfaces/server.js +5 -0
- package/dest/interfaces/slasher.d.ts +25 -56
- package/dest/interfaces/slasher.d.ts.map +1 -1
- package/dest/interfaces/slasher.js +8 -2
- package/dest/interfaces/tx_provider.d.ts +6 -1
- package/dest/interfaces/tx_provider.d.ts.map +1 -1
- package/dest/interfaces/validator.d.ts +40 -229
- package/dest/interfaces/validator.d.ts.map +1 -1
- package/dest/interfaces/validator.js +5 -0
- package/dest/interfaces/world_state.d.ts +2 -2
- package/dest/interfaces/world_state.d.ts.map +1 -1
- package/dest/kernel/hints/key_validation_request.d.ts +12 -8
- package/dest/kernel/hints/key_validation_request.d.ts.map +1 -1
- package/dest/kernel/hints/key_validation_request.js +20 -18
- package/dest/kernel/index.d.ts +5 -1
- package/dest/kernel/index.d.ts.map +1 -1
- package/dest/kernel/index.js +4 -0
- package/dest/kernel/log_hash.d.ts +6 -2
- package/dest/kernel/log_hash.d.ts.map +1 -1
- package/dest/kernel/log_hash.js +21 -9
- package/dest/kernel/private_circuit_public_inputs.d.ts +2 -2
- package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_circuit_public_inputs.d.ts +2 -2
- package/dest/kernel/private_kernel_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_init_2_circuit_private_inputs.d.ts +23 -0
- package/dest/kernel/private_kernel_init_2_circuit_private_inputs.d.ts.map +1 -0
- package/dest/kernel/private_kernel_init_2_circuit_private_inputs.js +35 -0
- package/dest/kernel/private_kernel_init_3_circuit_private_inputs.d.ts +24 -0
- package/dest/kernel/private_kernel_init_3_circuit_private_inputs.d.ts.map +1 -0
- package/dest/kernel/private_kernel_init_3_circuit_private_inputs.js +37 -0
- package/dest/kernel/private_kernel_inner_2_circuit_private_inputs.d.ts +16 -0
- package/dest/kernel/private_kernel_inner_2_circuit_private_inputs.d.ts.map +1 -0
- package/dest/kernel/private_kernel_inner_2_circuit_private_inputs.js +23 -0
- package/dest/kernel/private_kernel_inner_3_circuit_private_inputs.d.ts +17 -0
- package/dest/kernel/private_kernel_inner_3_circuit_private_inputs.d.ts.map +1 -0
- package/dest/kernel/private_kernel_inner_3_circuit_private_inputs.js +25 -0
- package/dest/kernel/private_kernel_prover_output.d.ts +3 -29
- package/dest/kernel/private_kernel_prover_output.d.ts.map +1 -1
- package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts +9 -6
- package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_tail_circuit_public_inputs.js +22 -7
- package/dest/kernel/private_to_avm_accumulated_data.d.ts +25 -69
- package/dest/kernel/private_to_avm_accumulated_data.d.ts.map +1 -1
- package/dest/kernel/private_to_avm_accumulated_data.js +11 -5
- package/dest/kernel/private_to_public_accumulated_data.d.ts +4 -3
- package/dest/kernel/private_to_public_accumulated_data.d.ts.map +1 -1
- package/dest/kernel/private_to_public_accumulated_data.js +6 -3
- package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts +5 -4
- 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 -3
- package/dest/kernel/private_to_rollup_accumulated_data.d.ts +5 -4
- package/dest/kernel/private_to_rollup_accumulated_data.d.ts.map +1 -1
- package/dest/kernel/private_to_rollup_accumulated_data.js +6 -3
- package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts +5 -4
- 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 -3
- package/dest/kernel/public_call_request.d.ts +15 -30
- package/dest/kernel/public_call_request.d.ts.map +1 -1
- package/dest/kernel/public_call_request.js +16 -7
- package/dest/keys/derivation.d.ts +6 -2
- package/dest/keys/derivation.d.ts.map +1 -1
- package/dest/keys/derivation.js +16 -6
- package/dest/keys/public_key.d.ts +22 -3
- package/dest/keys/public_key.d.ts.map +1 -1
- package/dest/keys/public_key.js +20 -1
- package/dest/keys/public_keys.d.ts +55 -82
- package/dest/keys/public_keys.d.ts.map +1 -1
- package/dest/keys/public_keys.js +102 -74
- package/dest/kv-store/config.d.ts +3 -6
- package/dest/kv-store/config.d.ts.map +1 -1
- package/dest/kv-store/config.js +2 -7
- package/dest/logs/app_tagging_secret.d.ts +46 -0
- package/dest/logs/app_tagging_secret.d.ts.map +1 -0
- package/dest/logs/{extended_directional_app_tagging_secret.js → app_tagging_secret.js} +51 -21
- package/dest/logs/app_tagging_secret_kind.d.ts +7 -0
- package/dest/logs/app_tagging_secret_kind.d.ts.map +1 -0
- package/dest/logs/app_tagging_secret_kind.js +17 -0
- package/dest/logs/contract_class_log.d.ts +16 -34
- package/dest/logs/contract_class_log.d.ts.map +1 -1
- package/dest/logs/contract_class_log.js +11 -9
- package/dest/logs/index.d.ts +7 -7
- package/dest/logs/index.d.ts.map +1 -1
- package/dest/logs/index.js +6 -6
- package/dest/logs/log_cursor.d.ts +51 -0
- package/dest/logs/log_cursor.d.ts.map +1 -0
- package/dest/logs/log_cursor.js +82 -0
- package/dest/logs/log_result.d.ts +54 -0
- package/dest/logs/log_result.d.ts.map +1 -0
- package/dest/logs/log_result.js +56 -0
- package/dest/logs/logs_query.d.ts +82 -0
- package/dest/logs/logs_query.d.ts.map +1 -0
- package/dest/logs/logs_query.js +50 -0
- package/dest/logs/message_context.d.ts +3 -2
- package/dest/logs/message_context.d.ts.map +1 -1
- package/dest/logs/message_context.js +4 -0
- package/dest/logs/pre_tag.d.ts +11 -24
- 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 +7 -12
- package/dest/logs/private_log.d.ts.map +1 -1
- package/dest/logs/private_log.js +6 -3
- package/dest/logs/query_all_logs_by_tags.d.ts +24 -0
- package/dest/logs/query_all_logs_by_tags.d.ts.map +1 -0
- package/dest/logs/query_all_logs_by_tags.js +64 -0
- 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 +3 -1
- package/dest/logs/tagging_index_range.d.ts +13 -31
- package/dest/logs/tagging_index_range.d.ts.map +1 -1
- package/dest/logs/tagging_index_range.js +2 -2
- package/dest/messaging/append_l1_to_l2_messages.d.ts +9 -0
- package/dest/messaging/append_l1_to_l2_messages.d.ts.map +1 -0
- package/dest/messaging/append_l1_to_l2_messages.js +12 -0
- package/dest/messaging/index.d.ts +2 -1
- package/dest/messaging/index.d.ts.map +1 -1
- package/dest/messaging/index.js +1 -0
- package/dest/messaging/l2_to_l1_membership.d.ts +43 -6
- package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -1
- package/dest/messaging/l2_to_l1_membership.js +72 -12
- package/dest/messaging/l2_to_l1_message.d.ts +38 -112
- package/dest/messaging/l2_to_l1_message.d.ts.map +1 -1
- package/dest/messaging/l2_to_l1_message.js +21 -12
- package/dest/noir/index.d.ts +3 -1
- package/dest/noir/index.d.ts.map +1 -1
- package/dest/note/note.d.ts +2 -2
- package/dest/note/note.d.ts.map +1 -1
- package/dest/p2p/block_proposal.d.ts +29 -10
- package/dest/p2p/block_proposal.d.ts.map +1 -1
- package/dest/p2p/block_proposal.js +56 -33
- package/dest/p2p/checkpoint_attestation.d.ts +14 -6
- package/dest/p2p/checkpoint_attestation.d.ts.map +1 -1
- package/dest/p2p/checkpoint_attestation.js +24 -20
- package/dest/p2p/checkpoint_proposal.d.ts +31 -10
- package/dest/p2p/checkpoint_proposal.d.ts.map +1 -1
- package/dest/p2p/checkpoint_proposal.js +58 -31
- package/dest/p2p/consensus_payload.d.ts +26 -20
- package/dest/p2p/consensus_payload.d.ts.map +1 -1
- package/dest/p2p/consensus_payload.js +38 -19
- package/dest/p2p/signature_utils.d.ts +28 -19
- package/dest/p2p/signature_utils.d.ts.map +1 -1
- package/dest/p2p/signature_utils.js +118 -21
- package/dest/p2p/signed_txs.d.ts +15 -13
- package/dest/p2p/signed_txs.d.ts.map +1 -1
- package/dest/p2p/signed_txs.js +26 -24
- package/dest/parity/parity_base_private_inputs.d.ts +8 -4
- package/dest/parity/parity_base_private_inputs.d.ts.map +1 -1
- package/dest/parity/parity_base_private_inputs.js +7 -5
- package/dest/parity/parity_public_inputs.d.ts +8 -4
- package/dest/parity/parity_public_inputs.d.ts.map +1 -1
- package/dest/parity/parity_public_inputs.js +6 -3
- package/dest/parity/parity_root_private_inputs.d.ts +2 -2
- package/dest/parity/parity_root_private_inputs.d.ts.map +1 -1
- package/dest/proofs/chonk_proof.d.ts +17 -11
- package/dest/proofs/chonk_proof.d.ts.map +1 -1
- package/dest/proofs/chonk_proof.js +44 -22
- package/dest/proofs/recursive_proof.d.ts +2 -2
- package/dest/proofs/recursive_proof.d.ts.map +1 -1
- package/dest/rollup/block_merge_rollup_private_inputs.d.ts +2 -2
- package/dest/rollup/block_merge_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/block_rollup_public_inputs.d.ts +12 -2
- package/dest/rollup/block_rollup_public_inputs.d.ts.map +1 -1
- package/dest/rollup/block_rollup_public_inputs.js +12 -0
- package/dest/rollup/block_root_rollup_private_inputs.d.ts +6 -6
- package/dest/rollup/block_root_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts +2 -2
- package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/checkpoint_rollup_public_inputs.d.ts +9 -2
- package/dest/rollup/checkpoint_rollup_public_inputs.d.ts.map +1 -1
- package/dest/rollup/checkpoint_rollup_public_inputs.js +9 -0
- package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts +5 -5
- package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/private_tx_base_rollup_private_inputs.d.ts +2 -2
- package/dest/rollup/private_tx_base_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/public_chonk_verifier_private_inputs.d.ts +2 -2
- package/dest/rollup/public_chonk_verifier_private_inputs.d.ts.map +1 -1
- package/dest/rollup/public_chonk_verifier_public_inputs.d.ts +2 -2
- package/dest/rollup/public_chonk_verifier_public_inputs.d.ts.map +1 -1
- package/dest/rollup/public_tx_base_rollup_private_inputs.d.ts +2 -2
- package/dest/rollup/public_tx_base_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/root_rollup_private_inputs.d.ts +2 -2
- package/dest/rollup/root_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/root_rollup_public_inputs.d.ts +2 -2
- package/dest/rollup/root_rollup_public_inputs.d.ts.map +1 -1
- package/dest/rollup/tx_merge_rollup_private_inputs.d.ts +2 -2
- package/dest/rollup/tx_merge_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/tx_rollup_public_inputs.d.ts +2 -2
- package/dest/rollup/tx_rollup_public_inputs.d.ts.map +1 -1
- package/dest/schemas/schemas.d.ts +32 -78
- package/dest/schemas/schemas.d.ts.map +1 -1
- package/dest/schemas/schemas.js +2 -2
- package/dest/slashing/helpers.d.ts +2 -2
- package/dest/slashing/helpers.d.ts.map +1 -1
- package/dest/slashing/helpers.js +10 -7
- package/dest/slashing/types.d.ts +15 -23
- package/dest/slashing/types.d.ts.map +1 -1
- package/dest/slashing/types.js +16 -10
- package/dest/snapshots/types.d.ts +15 -78
- package/dest/snapshots/types.d.ts.map +1 -1
- package/dest/stats/stats.d.ts +2 -2
- package/dest/stats/stats.d.ts.map +1 -1
- package/dest/tests/factories.d.ts +23 -23
- package/dest/tests/factories.d.ts.map +1 -1
- package/dest/tests/factories.js +70 -47
- package/dest/tests/mocks.d.ts +8 -5
- package/dest/tests/mocks.d.ts.map +1 -1
- package/dest/tests/mocks.js +31 -38
- package/dest/timetable/index.d.ts +7 -10
- package/dest/timetable/index.d.ts.map +1 -1
- package/dest/timetable/index.js +60 -80
- package/dest/trees/append_only_tree_snapshot.d.ts +9 -14
- package/dest/trees/append_only_tree_snapshot.d.ts.map +1 -1
- package/dest/trees/append_only_tree_snapshot.js +6 -3
- package/dest/trees/nullifier_leaf.d.ts +18 -42
- package/dest/trees/nullifier_leaf.d.ts.map +1 -1
- package/dest/trees/nullifier_membership_witness.d.ts +16 -59
- package/dest/trees/nullifier_membership_witness.d.ts.map +1 -1
- package/dest/trees/nullifier_membership_witness.js +2 -14
- package/dest/trees/public_data_leaf.d.ts +21 -53
- package/dest/trees/public_data_leaf.d.ts.map +1 -1
- package/dest/trees/public_data_witness.d.ts +16 -58
- package/dest/trees/public_data_witness.d.ts.map +1 -1
- package/dest/tx/block_header.d.ts +4 -3
- package/dest/tx/block_header.d.ts.map +1 -1
- package/dest/tx/block_header.js +6 -3
- package/dest/tx/call_context.d.ts +4 -14
- package/dest/tx/call_context.d.ts.map +1 -1
- package/dest/tx/capsule.d.ts +2 -2
- package/dest/tx/capsule.d.ts.map +1 -1
- package/dest/tx/function_data.d.ts +4 -10
- package/dest/tx/function_data.d.ts.map +1 -1
- package/dest/tx/global_variables.d.ts +16 -49
- package/dest/tx/global_variables.d.ts.map +1 -1
- package/dest/tx/global_variables.js +8 -12
- package/dest/tx/hashed_values.d.ts +4 -3
- package/dest/tx/hashed_values.d.ts.map +1 -1
- package/dest/tx/hashed_values.js +6 -3
- package/dest/tx/in_tx.d.ts +5 -17
- package/dest/tx/in_tx.d.ts.map +1 -1
- package/dest/tx/indexed_tx_effect.d.ts +8 -19
- package/dest/tx/indexed_tx_effect.d.ts.map +1 -1
- package/dest/tx/indexed_tx_effect.js +8 -4
- package/dest/tx/partial_state_reference.d.ts +22 -65
- package/dest/tx/partial_state_reference.d.ts.map +1 -1
- package/dest/tx/partial_state_reference.js +6 -3
- package/dest/tx/private_execution_result.d.ts +6 -16
- package/dest/tx/private_execution_result.d.ts.map +1 -1
- package/dest/tx/profiling.d.ts +54 -352
- package/dest/tx/profiling.d.ts.map +1 -1
- package/dest/tx/profiling.js +4 -4
- package/dest/tx/protocol_contracts.d.ts +5 -9
- package/dest/tx/protocol_contracts.d.ts.map +1 -1
- package/dest/tx/proven_tx.d.ts +30 -74
- package/dest/tx/proven_tx.d.ts.map +1 -1
- package/dest/tx/proven_tx.js +6 -0
- package/dest/tx/public_call_request_with_calldata.d.ts +4 -3
- package/dest/tx/public_call_request_with_calldata.d.ts.map +1 -1
- package/dest/tx/public_call_request_with_calldata.js +6 -3
- package/dest/tx/simulated_tx.d.ts +62 -1249
- package/dest/tx/simulated_tx.d.ts.map +1 -1
- package/dest/tx/simulated_tx.js +12 -10
- package/dest/tx/state_reference.d.ts +30 -117
- package/dest/tx/state_reference.d.ts.map +1 -1
- package/dest/tx/state_reference.js +6 -4
- package/dest/tx/tree_snapshots.d.ts +27 -84
- package/dest/tx/tree_snapshots.d.ts.map +1 -1
- package/dest/tx/tree_snapshots.js +6 -4
- package/dest/tx/tx.d.ts +12 -11
- package/dest/tx/tx.d.ts.map +1 -1
- package/dest/tx/tx.js +30 -23
- package/dest/tx/tx_constant_data.d.ts +4 -3
- package/dest/tx/tx_constant_data.d.ts.map +1 -1
- package/dest/tx/tx_constant_data.js +6 -3
- package/dest/tx/tx_context.d.ts +32 -131
- package/dest/tx/tx_context.d.ts.map +1 -1
- package/dest/tx/tx_context.js +6 -6
- package/dest/tx/tx_hash.d.ts +6 -4
- package/dest/tx/tx_hash.d.ts.map +1 -1
- package/dest/tx/tx_hash.js +13 -5
- package/dest/tx/tx_receipt.d.ts +144 -67
- package/dest/tx/tx_receipt.d.ts.map +1 -1
- package/dest/tx/tx_receipt.js +141 -51
- package/dest/tx/validator/tx_validator.d.ts +5 -27
- package/dest/tx/validator/tx_validator.d.ts.map +1 -1
- package/dest/tx/validator/tx_validator.js +0 -4
- package/dest/types/shared.d.ts +4 -3
- package/dest/types/shared.d.ts.map +1 -1
- package/dest/types/shared.js +6 -3
- package/dest/update-checker/dev_version.d.ts +3 -0
- package/dest/update-checker/dev_version.d.ts.map +1 -0
- package/dest/update-checker/dev_version.js +1 -0
- package/dest/update-checker/index.d.ts +2 -1
- package/dest/update-checker/index.d.ts.map +1 -1
- package/dest/update-checker/index.js +1 -0
- package/dest/update-checker/package_version.d.ts +6 -3
- package/dest/update-checker/package_version.d.ts.map +1 -1
- package/dest/update-checker/package_version.js +8 -19
- package/dest/validators/schemas.d.ts +147 -614
- package/dest/validators/schemas.d.ts.map +1 -1
- package/dest/validators/schemas.js +6 -4
- package/dest/validators/types.d.ts +20 -3
- package/dest/validators/types.d.ts.map +1 -1
- package/dest/versioning/versioning.js +1 -1
- package/dest/vks/verification_key.d.ts +3 -3
- package/dest/vks/verification_key.d.ts.map +1 -1
- package/dest/world-state/genesis_data.d.ts +3 -1
- package/dest/world-state/genesis_data.d.ts.map +1 -1
- package/dest/world-state/genesis_data.js +3 -0
- package/dest/world-state/world_state_revision.d.ts +4 -39
- package/dest/world-state/world_state_revision.d.ts.map +1 -1
- package/dest/world-state/world_state_revision.js +0 -20
- package/package.json +12 -11
- package/src/abi/abi.ts +53 -19
- package/src/abi/contract_artifact.ts +11 -6
- package/src/abi/utils.ts +6 -4
- package/src/avm/avm.ts +5 -0
- package/src/avm/message_pack.ts +12 -3
- package/src/avm/revert_code.ts +0 -6
- package/src/aztec-address/index.ts +12 -3
- package/src/block/attestation_info.ts +11 -11
- package/src/block/block_parameter.ts +72 -4
- package/src/block/index.ts +0 -1
- package/src/block/l2_block_source.ts +201 -149
- package/src/block/l2_block_stream/l2_block_stream.ts +39 -28
- package/src/block/l2_block_stream/l2_tips_memory_store.ts +5 -0
- package/src/block/l2_block_stream/l2_tips_store_base.ts +29 -7
- package/src/block/proposal/attestations_and_signers.ts +32 -17
- package/src/block/test/l2_tips_store_test_suite.ts +1 -1
- package/src/checkpoint/checkpoint_data.ts +4 -0
- package/src/checkpoint/checkpoint_reexecution_tracker.ts +167 -0
- package/src/checkpoint/digest.ts +28 -0
- package/src/checkpoint/index.ts +3 -0
- package/src/checkpoint/previous_checkpoint_out_hashes.ts +61 -0
- package/src/config/chain-config.ts +6 -15
- package/src/config/index.ts +0 -1
- package/src/config/sequencer-config.ts +25 -7
- package/src/contract/complete_address.ts +7 -3
- package/src/contract/contract_address.ts +6 -6
- package/src/contract/contract_instance.ts +11 -2
- package/src/contract/interfaces/contract_instance.ts +6 -2
- package/src/database-version/version_manager.ts +17 -0
- package/src/gas/gas.ts +8 -3
- package/src/gas/gas_fees.ts +9 -9
- package/src/gas/gas_settings.ts +8 -3
- package/src/ha-signing/config.ts +9 -16
- package/src/ha-signing/local_config.ts +2 -2
- package/src/hash/hash.ts +2 -2
- package/src/interfaces/api_limit.ts +1 -1
- package/src/interfaces/archiver.ts +80 -94
- package/src/interfaces/aztec-node-admin.ts +32 -15
- package/src/interfaces/aztec-node-debug.ts +1 -1
- package/src/interfaces/aztec-node.ts +296 -262
- package/src/interfaces/block-builder.ts +2 -0
- package/src/interfaces/block_response.ts +92 -0
- package/src/interfaces/chain_tips.ts +24 -0
- package/src/interfaces/checkpoint_parameter.ts +20 -0
- package/src/interfaces/checkpoint_response.ts +84 -0
- package/src/interfaces/client.ts +6 -1
- package/src/interfaces/configs.ts +40 -1
- package/src/interfaces/l1_publish_info.ts +40 -0
- package/src/interfaces/l2_logs_source.ts +13 -42
- package/src/interfaces/merkle_tree_operations.ts +9 -2
- package/src/interfaces/p2p-bootstrap.ts +2 -2
- package/src/interfaces/p2p.ts +35 -15
- package/src/interfaces/private_kernel_prover.ts +88 -0
- package/src/interfaces/prover-agent.ts +1 -1
- package/src/interfaces/prover-node.ts +7 -7
- package/src/interfaces/proving-job-source.ts +4 -4
- package/src/interfaces/proving-job.ts +3 -3
- package/src/interfaces/public_storage_override.ts +26 -0
- package/src/interfaces/server.ts +5 -0
- package/src/interfaces/slasher.ts +17 -4
- package/src/interfaces/tx_provider.ts +6 -0
- package/src/interfaces/validator.ts +18 -2
- package/src/interfaces/world_state.ts +1 -1
- package/src/kernel/hints/key_validation_request.ts +18 -16
- package/src/kernel/index.ts +4 -0
- package/src/kernel/log_hash.ts +29 -9
- package/src/kernel/private_kernel_init_2_circuit_private_inputs.ts +49 -0
- package/src/kernel/private_kernel_init_3_circuit_private_inputs.ts +52 -0
- package/src/kernel/private_kernel_inner_2_circuit_private_inputs.ts +29 -0
- package/src/kernel/private_kernel_inner_3_circuit_private_inputs.ts +31 -0
- package/src/kernel/private_kernel_tail_circuit_public_inputs.ts +29 -14
- package/src/kernel/private_to_avm_accumulated_data.ts +16 -5
- package/src/kernel/private_to_public_accumulated_data.ts +9 -3
- package/src/kernel/private_to_public_kernel_circuit_public_inputs.ts +10 -4
- package/src/kernel/private_to_rollup_accumulated_data.ts +8 -3
- package/src/kernel/private_to_rollup_kernel_circuit_public_inputs.ts +9 -9
- package/src/kernel/public_call_request.ts +22 -7
- package/src/keys/derivation.ts +21 -9
- package/src/keys/public_key.ts +26 -2
- package/src/keys/public_keys.ts +124 -110
- package/src/kv-store/config.ts +3 -10
- package/src/logs/{extended_directional_app_tagging_secret.ts → app_tagging_secret.ts} +62 -23
- package/src/logs/app_tagging_secret_kind.ts +21 -0
- package/src/logs/contract_class_log.ts +15 -5
- package/src/logs/index.ts +6 -6
- package/src/logs/log_cursor.ts +110 -0
- package/src/logs/log_result.ts +104 -0
- package/src/logs/logs_query.ts +138 -0
- package/src/logs/message_context.ts +5 -1
- package/src/logs/pre_tag.ts +3 -6
- package/src/logs/private_log.ts +9 -3
- package/src/logs/query_all_logs_by_tags.ts +98 -0
- package/src/logs/siloed_tag.ts +6 -1
- package/src/logs/tagging_index_range.ts +4 -10
- package/src/messaging/append_l1_to_l2_messages.ts +21 -0
- package/src/messaging/index.ts +1 -0
- package/src/messaging/l2_to_l1_membership.ts +108 -19
- package/src/messaging/l2_to_l1_message.ts +29 -9
- package/src/noir/index.ts +2 -0
- package/src/p2p/block_proposal.ts +99 -28
- package/src/p2p/checkpoint_attestation.ts +26 -26
- package/src/p2p/checkpoint_proposal.ts +109 -39
- package/src/p2p/consensus_payload.ts +59 -28
- package/src/p2p/signature_utils.ts +110 -25
- package/src/p2p/signed_txs.ts +46 -28
- package/src/parity/parity_base_private_inputs.ts +10 -4
- package/src/parity/parity_public_inputs.ts +9 -2
- package/src/proofs/chonk_proof.ts +49 -15
- package/src/rollup/block_rollup_public_inputs.ts +13 -0
- package/src/rollup/checkpoint_rollup_public_inputs.ts +10 -0
- package/src/schemas/schemas.ts +6 -1
- package/src/slashing/helpers.ts +13 -9
- package/src/slashing/types.ts +21 -14
- package/src/stats/stats.ts +4 -0
- package/src/tests/factories.ts +97 -68
- package/src/tests/mocks.ts +49 -57
- package/src/timetable/index.ts +63 -105
- package/src/trees/append_only_tree_snapshot.ts +8 -3
- package/src/trees/nullifier_membership_witness.ts +2 -12
- package/src/tx/block_header.ts +8 -3
- package/src/tx/global_variables.ts +10 -18
- package/src/tx/hashed_values.ts +8 -3
- package/src/tx/indexed_tx_effect.ts +17 -4
- package/src/tx/partial_state_reference.ts +8 -3
- package/src/tx/profiling.ts +4 -4
- package/src/tx/proven_tx.ts +6 -0
- package/src/tx/public_call_request_with_calldata.ts +8 -3
- package/src/tx/simulated_tx.ts +18 -21
- package/src/tx/state_reference.ts +9 -4
- package/src/tx/tree_snapshots.ts +9 -4
- package/src/tx/tx.ts +41 -22
- package/src/tx/tx_constant_data.ts +8 -3
- package/src/tx/tx_context.ts +8 -3
- package/src/tx/tx_hash.ts +20 -5
- package/src/tx/tx_receipt.ts +263 -80
- package/src/tx/validator/tx_validator.ts +1 -5
- package/src/types/shared.ts +8 -3
- package/src/update-checker/dev_version.ts +2 -0
- package/src/update-checker/index.ts +1 -0
- package/src/update-checker/package_version.ts +10 -23
- package/src/validators/schemas.ts +6 -4
- package/src/validators/types.ts +21 -2
- package/src/versioning/versioning.ts +1 -1
- package/src/world-state/genesis_data.ts +12 -0
- package/src/world-state/world_state_revision.ts +0 -33
- package/dest/block/checkpointed_l2_block.d.ts +0 -150
- package/dest/block/checkpointed_l2_block.d.ts.map +0 -1
- package/dest/block/checkpointed_l2_block.js +0 -46
- package/dest/config/pipelining-config.d.ts +0 -19
- package/dest/config/pipelining-config.d.ts.map +0 -1
- package/dest/config/pipelining-config.js +0 -18
- package/dest/interfaces/get_logs_response.d.ts +0 -97
- package/dest/interfaces/get_logs_response.d.ts.map +0 -1
- package/dest/interfaces/get_logs_response.js +0 -12
- package/dest/logs/extended_contract_class_log.d.ts +0 -51
- package/dest/logs/extended_contract_class_log.d.ts.map +0 -1
- package/dest/logs/extended_contract_class_log.js +0 -67
- package/dest/logs/extended_directional_app_tagging_secret.d.ts +0 -47
- package/dest/logs/extended_directional_app_tagging_secret.d.ts.map +0 -1
- package/dest/logs/extended_public_log.d.ts +0 -106
- package/dest/logs/extended_public_log.d.ts.map +0 -1
- package/dest/logs/extended_public_log.js +0 -73
- package/dest/logs/log_filter.d.ts +0 -25
- package/dest/logs/log_filter.d.ts.map +0 -1
- package/dest/logs/log_filter.js +0 -12
- package/dest/logs/log_id.d.ts +0 -85
- package/dest/logs/log_id.d.ts.map +0 -1
- package/dest/logs/log_id.js +0 -93
- package/dest/logs/tx_scoped_l2_log.d.ts +0 -51
- package/dest/logs/tx_scoped_l2_log.d.ts.map +0 -1
- package/dest/logs/tx_scoped_l2_log.js +0 -77
- package/src/block/checkpointed_l2_block.ts +0 -70
- package/src/config/pipelining-config.ts +0 -31
- package/src/interfaces/get_logs_response.ts +0 -35
- package/src/logs/extended_contract_class_log.ts +0 -87
- package/src/logs/extended_public_log.ts +0 -94
- package/src/logs/log_filter.ts +0 -36
- package/src/logs/log_id.ts +0 -124
- package/src/logs/tx_scoped_l2_log.ts +0 -114
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
import { NULL_MSG_SENDER_CONTRACT_ADDRESS } from '@aztec/constants';
|
|
1
2
|
import { Fr, fromBuffer } from '@aztec/foundation/curves/bn254';
|
|
2
3
|
import { Point } from '@aztec/foundation/curves/grumpkin';
|
|
3
4
|
import { type ZodFor, bufferSchemaFor, hexSchemaFor } from '@aztec/foundation/schemas';
|
|
4
|
-
import { type BufferReader, FieldReader } from '@aztec/foundation/serialize';
|
|
5
|
+
import { type BufferReader, type BufferSink, FieldReader } from '@aztec/foundation/serialize';
|
|
5
6
|
import { hexToBuffer } from '@aztec/foundation/string';
|
|
6
7
|
|
|
7
8
|
import { inspect } from 'util';
|
|
@@ -41,6 +42,9 @@ export class AztecAddress {
|
|
|
41
42
|
|
|
42
43
|
static ZERO = new AztecAddress(Buffer.alloc(32, 0));
|
|
43
44
|
|
|
45
|
+
/** Null msg sender address. Not part of the protocol contracts tree. */
|
|
46
|
+
static NULL_MSG_SENDER = AztecAddress.fromBigInt(NULL_MSG_SENDER_CONTRACT_ADDRESS);
|
|
47
|
+
|
|
44
48
|
static zero(): AztecAddress {
|
|
45
49
|
return AztecAddress.ZERO;
|
|
46
50
|
}
|
|
@@ -133,8 +137,13 @@ export class AztecAddress {
|
|
|
133
137
|
return Point.fromXAndSign(this.xCoord, true);
|
|
134
138
|
}
|
|
135
139
|
|
|
136
|
-
toBuffer()
|
|
137
|
-
|
|
140
|
+
toBuffer(): Buffer;
|
|
141
|
+
toBuffer(sink: BufferSink): void;
|
|
142
|
+
toBuffer(sink?: BufferSink): Buffer | void {
|
|
143
|
+
if (!sink) {
|
|
144
|
+
return this.xCoord.toBuffer();
|
|
145
|
+
}
|
|
146
|
+
this.xCoord.toBuffer(sink);
|
|
138
147
|
}
|
|
139
148
|
|
|
140
149
|
toBigInt() {
|
|
@@ -3,7 +3,7 @@ import type { EthAddress } from '@aztec/foundation/eth-address';
|
|
|
3
3
|
|
|
4
4
|
import { Checkpoint } from '../checkpoint/checkpoint.js';
|
|
5
5
|
import { ConsensusPayload } from '../p2p/consensus_payload.js';
|
|
6
|
-
import {
|
|
6
|
+
import { type CoordinationSignatureContext, getHashedSignaturePayloadTypedData } from '../p2p/signature_utils.js';
|
|
7
7
|
import type { CommitteeAttestation } from './proposal/committee_attestation.js';
|
|
8
8
|
|
|
9
9
|
/**
|
|
@@ -32,11 +32,14 @@ export type AttestationInfo =
|
|
|
32
32
|
* Extracts attestation information from a published checkpoint.
|
|
33
33
|
* Returns info for each attestation, preserving array indices.
|
|
34
34
|
*/
|
|
35
|
-
export function getAttestationInfoFromPublishedCheckpoint(
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
35
|
+
export function getAttestationInfoFromPublishedCheckpoint(
|
|
36
|
+
block: {
|
|
37
|
+
attestations: CommitteeAttestation[];
|
|
38
|
+
checkpoint: Checkpoint;
|
|
39
|
+
},
|
|
40
|
+
signatureContext: CoordinationSignatureContext,
|
|
41
|
+
): AttestationInfo[] {
|
|
42
|
+
const payload = ConsensusPayload.fromCheckpoint(block.checkpoint, signatureContext);
|
|
40
43
|
return getAttestationInfoFromPayload(payload, block.attestations);
|
|
41
44
|
}
|
|
42
45
|
|
|
@@ -44,10 +47,7 @@ export function getAttestationInfoFromPayload(
|
|
|
44
47
|
payload: ConsensusPayload,
|
|
45
48
|
attestations: CommitteeAttestation[],
|
|
46
49
|
): AttestationInfo[] {
|
|
47
|
-
const hashedPayload =
|
|
48
|
-
payload,
|
|
49
|
-
SignatureDomainSeparator.checkpointAttestation,
|
|
50
|
-
);
|
|
50
|
+
const hashedPayload = getHashedSignaturePayloadTypedData(payload);
|
|
51
51
|
|
|
52
52
|
return attestations.map(attestation => {
|
|
53
53
|
// If signature is empty, check if we have an address directly
|
|
@@ -62,7 +62,7 @@ export function getAttestationInfoFromPayload(
|
|
|
62
62
|
|
|
63
63
|
// Try to recover address from signature
|
|
64
64
|
try {
|
|
65
|
-
const recoveredAddress = recoverAddress(hashedPayload, attestation.signature);
|
|
65
|
+
const recoveredAddress = recoverAddress(hashedPayload, attestation.signature, { allowYParityAsV: true });
|
|
66
66
|
return { address: recoveredAddress, status: 'recovered-from-signature' as const };
|
|
67
67
|
} catch {
|
|
68
68
|
// Signature present but recovery failed
|
|
@@ -1,10 +1,78 @@
|
|
|
1
|
-
import { BlockNumberSchema } from '@aztec/foundation/branded-types';
|
|
1
|
+
import { type BlockNumber, BlockNumberSchema } from '@aztec/foundation/branded-types';
|
|
2
|
+
import type { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
|
+
import { jsonStringify } from '@aztec/foundation/json-rpc';
|
|
4
|
+
import { schemas } from '@aztec/foundation/schemas';
|
|
2
5
|
|
|
3
6
|
import { z } from 'zod';
|
|
4
7
|
|
|
5
8
|
import { BlockHash } from './block_hash.js';
|
|
6
9
|
|
|
7
|
-
export const
|
|
10
|
+
export const BlockTag = ['latest', 'proposed', 'checkpointed', 'proven', 'finalized'] as const;
|
|
8
11
|
|
|
9
|
-
/**
|
|
10
|
-
|
|
12
|
+
/**
|
|
13
|
+
* Tag identifying a block by its position in the chain rather than by an absolute identifier.
|
|
14
|
+
* - `latest` / `proposed`: Latest L2 block proposed (not necessarily checkpointed/proven yet).
|
|
15
|
+
* - `checkpointed`: Latest L2 block whose enclosing checkpoint has been published on L1.
|
|
16
|
+
* - `proven`: Latest L2 block whose enclosing checkpoint has been proven on L1.
|
|
17
|
+
* - `finalized`: Latest L2 block whose proving L1 transaction has reached L1 finality.
|
|
18
|
+
*/
|
|
19
|
+
export type BlockTag = (typeof BlockTag)[number];
|
|
20
|
+
|
|
21
|
+
export const BlockTagWithoutLatestSchema = z.union([
|
|
22
|
+
z.literal('proposed'),
|
|
23
|
+
z.literal('checkpointed'),
|
|
24
|
+
z.literal('proven'),
|
|
25
|
+
z.literal('finalized'),
|
|
26
|
+
]);
|
|
27
|
+
|
|
28
|
+
export const BlockTagSchema: z.ZodType<BlockTag> = z.union([z.literal('latest'), BlockTagWithoutLatestSchema]);
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Object-only form of {@link BlockParameter}. Used as the building block for {@link BlockQuery}.
|
|
32
|
+
*/
|
|
33
|
+
export type NormalizedBlockParameter =
|
|
34
|
+
| { number: BlockNumber }
|
|
35
|
+
| { hash: BlockHash }
|
|
36
|
+
| { archive: Fr }
|
|
37
|
+
| { tag: Exclude<BlockTag, 'latest'> };
|
|
38
|
+
|
|
39
|
+
export const NormalizedBlockParameterSchema: z.ZodType<NormalizedBlockParameter, unknown> = z.union([
|
|
40
|
+
z.object({ number: BlockNumberSchema }).strict(),
|
|
41
|
+
z.object({ hash: BlockHash.schema }).strict(),
|
|
42
|
+
z.object({ archive: schemas.Fr }).strict(),
|
|
43
|
+
z.object({ tag: BlockTagWithoutLatestSchema }).strict(),
|
|
44
|
+
]);
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Selector for a block in RPC calls.
|
|
48
|
+
*
|
|
49
|
+
* Accepts a block number, a {@link BlockHash}, a chain-tip name (e.g. `'proven'`, `'checkpointed'`),
|
|
50
|
+
* `'latest'` (alias for `'proposed'`), or any of the {@link NormalizedBlockParameter} object variants
|
|
51
|
+
* (`{ number }`, `{ hash }`, `{ archive }`, `{ tag }`).
|
|
52
|
+
*/
|
|
53
|
+
export type BlockParameter = NormalizedBlockParameter | BlockNumber | BlockHash | BlockTag;
|
|
54
|
+
|
|
55
|
+
export const BlockParameterSchema: z.ZodType<BlockParameter, unknown> = z.union([
|
|
56
|
+
NormalizedBlockParameterSchema,
|
|
57
|
+
BlockHash.schema,
|
|
58
|
+
BlockTagSchema,
|
|
59
|
+
BlockNumberSchema,
|
|
60
|
+
]);
|
|
61
|
+
|
|
62
|
+
export function inspectBlockParameter(param: BlockParameter) {
|
|
63
|
+
if (typeof param === 'number') {
|
|
64
|
+
return param.toString();
|
|
65
|
+
} else if (typeof param === 'string') {
|
|
66
|
+
return param;
|
|
67
|
+
} else if ('number' in param) {
|
|
68
|
+
return `number=${param.number.toString()}`;
|
|
69
|
+
} else if ('hash' in param) {
|
|
70
|
+
return `hash=${param.hash.toString()}`;
|
|
71
|
+
} else if ('archive' in param) {
|
|
72
|
+
return `archive=${param.archive.toString()}`;
|
|
73
|
+
} else if ('tag' in param) {
|
|
74
|
+
return `tag=${param.tag}`;
|
|
75
|
+
} else {
|
|
76
|
+
return jsonStringify(param);
|
|
77
|
+
}
|
|
78
|
+
}
|
package/src/block/index.ts
CHANGED
|
@@ -6,7 +6,6 @@ export * from './body.js';
|
|
|
6
6
|
export * from './block_parameter.js';
|
|
7
7
|
export * from './l2_block_source.js';
|
|
8
8
|
export * from './block_hash.js';
|
|
9
|
-
export * from './checkpointed_l2_block.js';
|
|
10
9
|
export * from './proposal/index.js';
|
|
11
10
|
export * from './validate_block_result.js';
|
|
12
11
|
export * from './l2_block_info.js';
|
|
@@ -4,29 +4,92 @@ import {
|
|
|
4
4
|
CheckpointNumber,
|
|
5
5
|
CheckpointNumberSchema,
|
|
6
6
|
type EpochNumber,
|
|
7
|
+
EpochNumberSchema,
|
|
7
8
|
type SlotNumber,
|
|
9
|
+
SlotNumberSchema,
|
|
8
10
|
} from '@aztec/foundation/branded-types';
|
|
9
11
|
import type { Fr } from '@aztec/foundation/curves/bn254';
|
|
10
12
|
import type { EthAddress } from '@aztec/foundation/eth-address';
|
|
13
|
+
import { schemas } from '@aztec/foundation/schemas';
|
|
11
14
|
import type { TypedEventEmitter } from '@aztec/foundation/types';
|
|
12
15
|
|
|
13
16
|
import { z } from 'zod';
|
|
14
17
|
|
|
15
|
-
import type {
|
|
16
|
-
import type {
|
|
18
|
+
import type { CheckpointData, ProposedCheckpointData, ProposedCheckpointInput } from '../checkpoint/checkpoint_data.js';
|
|
19
|
+
import type { CheckpointInfo } from '../checkpoint/checkpoint_info.js';
|
|
17
20
|
import type { PublishedCheckpoint } from '../checkpoint/published_checkpoint.js';
|
|
18
21
|
import type { L1RollupConstants } from '../epoch-helpers/index.js';
|
|
22
|
+
import type { L2ToL1MembershipWitness } from '../messaging/l2_to_l1_membership.js';
|
|
19
23
|
import { CheckpointHeader } from '../rollup/checkpoint_header.js';
|
|
20
|
-
import type { BlockHeader } from '../tx/block_header.js';
|
|
21
24
|
import type { IndexedTxEffect } from '../tx/indexed_tx_effect.js';
|
|
22
25
|
import type { TxHash } from '../tx/tx_hash.js';
|
|
23
|
-
import type { TxReceipt } from '../tx/tx_receipt.js';
|
|
24
26
|
import type { BlockData } from './block_data.js';
|
|
25
|
-
import
|
|
26
|
-
import type
|
|
27
|
+
import { BlockHash } from './block_hash.js';
|
|
28
|
+
import { BlockTagWithoutLatestSchema, type NormalizedBlockParameter } from './block_parameter.js';
|
|
27
29
|
import type { L2Block } from './l2_block.js';
|
|
28
30
|
import type { ValidateCheckpointNegativeResult, ValidateCheckpointResult } from './validate_block_result.js';
|
|
29
31
|
|
|
32
|
+
/** Lookup a single block by block number, hash, archive root, or chain-tip tag. */
|
|
33
|
+
export type BlockQuery = NormalizedBlockParameter;
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Query a range of blocks by start/limit or by epoch.
|
|
37
|
+
*
|
|
38
|
+
* The `epoch` variant requires `onlyCheckpointed: true` because epoch boundaries are only
|
|
39
|
+
* meaningful for the checkpointed chain — the proposed chain may include uncheckpointed
|
|
40
|
+
* blocks past the epoch boundary that callers should not receive.
|
|
41
|
+
*/
|
|
42
|
+
export type BlocksQuery =
|
|
43
|
+
| { from: BlockNumber; limit: number; onlyCheckpointed?: boolean }
|
|
44
|
+
| { epoch: EpochNumber; onlyCheckpointed: true };
|
|
45
|
+
|
|
46
|
+
export const BlockQuerySchema: z.ZodType<BlockQuery, unknown> = z.union([
|
|
47
|
+
z.object({ number: BlockNumberSchema }).strict(),
|
|
48
|
+
z.object({ hash: BlockHash.schema }).strict(),
|
|
49
|
+
z.object({ archive: schemas.Fr }).strict(),
|
|
50
|
+
z.object({ tag: BlockTagWithoutLatestSchema }).strict(),
|
|
51
|
+
]);
|
|
52
|
+
|
|
53
|
+
export const BlocksQuerySchema: z.ZodType<BlocksQuery, unknown> = z.union([
|
|
54
|
+
z
|
|
55
|
+
.object({ from: BlockNumberSchema, limit: z.number().int().min(1), onlyCheckpointed: z.boolean().optional() })
|
|
56
|
+
.strict(),
|
|
57
|
+
z.object({ epoch: EpochNumberSchema, onlyCheckpointed: z.literal(true) }).strict(),
|
|
58
|
+
]);
|
|
59
|
+
|
|
60
|
+
/** Lookup a single confirmed checkpoint by checkpoint number, slot, or chain-tip tag. */
|
|
61
|
+
export type CheckpointQuery =
|
|
62
|
+
| { number: CheckpointNumber }
|
|
63
|
+
| { slot: SlotNumber }
|
|
64
|
+
| { tag: 'checkpointed' | 'proven' | 'finalized' };
|
|
65
|
+
|
|
66
|
+
/** Query a range of confirmed checkpoints by start/limit or by epoch. */
|
|
67
|
+
export type CheckpointsQuery = { from: CheckpointNumber; limit: number } | { epoch: EpochNumber };
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Lookup a proposed (archiver-internal, not-yet-L1-confirmed) checkpoint.
|
|
71
|
+
* Distinct from CheckpointQuery because proposed checkpoints have a different shape
|
|
72
|
+
* (no l1, no attestations, but carries totalManaUsed) and live in their own LMDB map.
|
|
73
|
+
*/
|
|
74
|
+
export type ProposedCheckpointQuery = { number: CheckpointNumber } | { slot: SlotNumber } | { tag: 'proposed' };
|
|
75
|
+
|
|
76
|
+
export const CheckpointQuerySchema: z.ZodType<CheckpointQuery, unknown> = z.union([
|
|
77
|
+
z.object({ number: CheckpointNumberSchema }).strict(),
|
|
78
|
+
z.object({ slot: SlotNumberSchema }).strict(),
|
|
79
|
+
z.object({ tag: z.union([z.literal('checkpointed'), z.literal('proven'), z.literal('finalized')]) }).strict(),
|
|
80
|
+
]);
|
|
81
|
+
|
|
82
|
+
export const CheckpointsQuerySchema: z.ZodType<CheckpointsQuery, unknown> = z.union([
|
|
83
|
+
z.object({ from: CheckpointNumberSchema, limit: z.number().int().min(1) }).strict(),
|
|
84
|
+
z.object({ epoch: EpochNumberSchema }).strict(),
|
|
85
|
+
]);
|
|
86
|
+
|
|
87
|
+
export const ProposedCheckpointQuerySchema: z.ZodType<ProposedCheckpointQuery, unknown> = z.union([
|
|
88
|
+
z.object({ number: CheckpointNumberSchema }).strict(),
|
|
89
|
+
z.object({ slot: SlotNumberSchema }).strict(),
|
|
90
|
+
z.object({ tag: z.literal('proposed') }).strict(),
|
|
91
|
+
]);
|
|
92
|
+
|
|
30
93
|
/**
|
|
31
94
|
* Interface of classes allowing for the retrieval of L2 blocks.
|
|
32
95
|
*/
|
|
@@ -50,115 +113,46 @@ export interface L2BlockSource {
|
|
|
50
113
|
getBlockNumber(): Promise<BlockNumber>;
|
|
51
114
|
|
|
52
115
|
/**
|
|
53
|
-
*
|
|
54
|
-
* @
|
|
55
|
-
|
|
56
|
-
getCheckpointNumber(): Promise<CheckpointNumber>;
|
|
57
|
-
|
|
58
|
-
/**
|
|
59
|
-
* Gets the number of the latest L2 block proven seen by the block source implementation.
|
|
60
|
-
* @returns The number of the latest L2 block proven seen by the block source implementation.
|
|
61
|
-
*/
|
|
62
|
-
getProvenBlockNumber(): Promise<BlockNumber>;
|
|
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
|
-
* Returns the finalized L2 block number. A block is finalized when it was proven
|
|
72
|
-
* in an L1 block that has itself been finalized on Ethereum.
|
|
73
|
-
* @returns The finalized block number.
|
|
74
|
-
*/
|
|
75
|
-
getFinalizedL2BlockNumber(): Promise<BlockNumber>;
|
|
76
|
-
|
|
77
|
-
/**
|
|
78
|
-
* Gets an l2 block header.
|
|
79
|
-
* @param number - The block number to return or 'latest' for the most recent one.
|
|
80
|
-
* @returns The requested L2 block header.
|
|
81
|
-
*/
|
|
82
|
-
getBlockHeader(number: BlockNumber | 'latest'): Promise<BlockHeader | undefined>;
|
|
83
|
-
|
|
84
|
-
/**
|
|
85
|
-
* Gets a checkpointed L2 block by block number.
|
|
86
|
-
* Returns undefined if the block doesn't exist or hasn't been checkpointed yet.
|
|
87
|
-
* @param number - The block number to retrieve.
|
|
88
|
-
* @returns The requested checkpointed L2 block (or undefined if not found or not checkpointed).
|
|
89
|
-
*/
|
|
90
|
-
getCheckpointedBlock(number: BlockNumber): Promise<CheckpointedL2Block | undefined>;
|
|
91
|
-
|
|
92
|
-
getCheckpointedBlocks(from: BlockNumber, limit: number): Promise<CheckpointedL2Block[]>;
|
|
93
|
-
|
|
94
|
-
/**
|
|
95
|
-
* Retrieves a collection of checkpoints.
|
|
96
|
-
* @param checkpointNumber The first checkpoint to be retrieved.
|
|
97
|
-
* @param limit The number of checkpoints to be retrieved.
|
|
98
|
-
* @returns The collection of complete checkpoints.
|
|
99
|
-
*/
|
|
100
|
-
getCheckpoints(checkpointNumber: CheckpointNumber, limit: number): Promise<PublishedCheckpoint[]>;
|
|
101
|
-
|
|
102
|
-
/**
|
|
103
|
-
* Gets the checkpoints for a given epoch
|
|
104
|
-
* @param epochNumber - Epoch for which we want checkpoint data
|
|
105
|
-
*/
|
|
106
|
-
getCheckpointsForEpoch(epochNumber: EpochNumber): Promise<Checkpoint[]>;
|
|
107
|
-
|
|
108
|
-
/**
|
|
109
|
-
* Gets lightweight checkpoint metadata for a given epoch, without fetching full block data.
|
|
110
|
-
* @param epochNumber - Epoch for which we want checkpoint data
|
|
111
|
-
*/
|
|
112
|
-
getCheckpointsDataForEpoch(epochNumber: EpochNumber): Promise<CheckpointData[]>;
|
|
113
|
-
|
|
114
|
-
/**
|
|
115
|
-
* Gets a block header by its hash.
|
|
116
|
-
* @param blockHash - The block hash to retrieve.
|
|
117
|
-
* @returns The requested block header (or undefined if not found).
|
|
118
|
-
*/
|
|
119
|
-
getBlockHeaderByHash(blockHash: BlockHash): Promise<BlockHeader | undefined>;
|
|
120
|
-
|
|
121
|
-
/**
|
|
122
|
-
* Gets a block header by its archive root.
|
|
123
|
-
* @param archive - The archive root to retrieve.
|
|
124
|
-
* @returns The requested block header (or undefined if not found).
|
|
116
|
+
* Resolves a {@link BlockQuery} to its concrete L2 block number.
|
|
117
|
+
* @param query - Lookup by block number, hash, archive root, or chain-tip tag.
|
|
118
|
+
* @returns The block number, or undefined if no block matches the query.
|
|
125
119
|
*/
|
|
126
|
-
|
|
120
|
+
getBlockNumber(query: BlockQuery): Promise<BlockNumber | undefined>;
|
|
121
|
+
getBlockNumber(query?: BlockQuery): Promise<BlockNumber | undefined>;
|
|
127
122
|
|
|
128
123
|
/**
|
|
129
|
-
* Gets
|
|
130
|
-
* @
|
|
131
|
-
* @returns The requested block data (or undefined if not found).
|
|
124
|
+
* Gets the number of the latest L2 checkpoint processed by the block source implementation.
|
|
125
|
+
* @returns The number of the latest L2 checkpoint processed by the block source implementation.
|
|
132
126
|
*/
|
|
133
|
-
|
|
127
|
+
getCheckpointNumber(): Promise<CheckpointNumber>;
|
|
134
128
|
|
|
135
129
|
/**
|
|
136
|
-
* Gets
|
|
137
|
-
*
|
|
138
|
-
* @
|
|
130
|
+
* Gets a single confirmed checkpoint matching the given query.
|
|
131
|
+
* Heavy shape: includes nested full `L2Block`s with transaction bodies.
|
|
132
|
+
* @param query - Lookup by checkpoint number, slot, or chain-tip tag.
|
|
139
133
|
*/
|
|
140
|
-
|
|
134
|
+
getCheckpoint(query: CheckpointQuery): Promise<PublishedCheckpoint | undefined>;
|
|
141
135
|
|
|
142
136
|
/**
|
|
143
|
-
* Gets
|
|
144
|
-
*
|
|
145
|
-
* @
|
|
137
|
+
* Gets a collection of confirmed checkpoints matching the given query.
|
|
138
|
+
* Heavy shape: includes nested full `L2Block`s with transaction bodies.
|
|
139
|
+
* @param query - Range by start/limit or by epoch.
|
|
146
140
|
*/
|
|
147
|
-
|
|
141
|
+
getCheckpoints(query: CheckpointsQuery): Promise<PublishedCheckpoint[]>;
|
|
148
142
|
|
|
149
143
|
/**
|
|
150
|
-
* Gets
|
|
151
|
-
*
|
|
152
|
-
* @
|
|
144
|
+
* Gets lightweight checkpoint metadata for a single checkpoint.
|
|
145
|
+
* Cheap passthrough for metadata-only queries (no block body reads).
|
|
146
|
+
* @param query - Lookup by checkpoint number, slot, or chain-tip tag.
|
|
153
147
|
*/
|
|
154
|
-
|
|
148
|
+
getCheckpointData(query: CheckpointQuery): Promise<CheckpointData | undefined>;
|
|
155
149
|
|
|
156
150
|
/**
|
|
157
|
-
* Gets
|
|
158
|
-
*
|
|
159
|
-
* @
|
|
151
|
+
* Gets a collection of lightweight checkpoint metadata entries matching the given query.
|
|
152
|
+
* Cheap passthrough for metadata-only queries (no block body reads).
|
|
153
|
+
* @param query - Range by start/limit or by epoch.
|
|
160
154
|
*/
|
|
161
|
-
|
|
155
|
+
getCheckpointsData(query: CheckpointsQuery): Promise<CheckpointData[]>;
|
|
162
156
|
|
|
163
157
|
/**
|
|
164
158
|
* Gets a tx effect.
|
|
@@ -168,11 +162,21 @@ export interface L2BlockSource {
|
|
|
168
162
|
getTxEffect(txHash: TxHash): Promise<IndexedTxEffect | undefined>;
|
|
169
163
|
|
|
170
164
|
/**
|
|
171
|
-
*
|
|
172
|
-
*
|
|
173
|
-
*
|
|
165
|
+
* Returns the L2-to-L1 membership witness for `message` emitted by tx `txHash`, built against the
|
|
166
|
+
* smallest partial-proof root on the Outbox that covers the tx's checkpoint.
|
|
167
|
+
*
|
|
168
|
+
* The Outbox roots are read lazily, pinned to the node's synced L1 block, so the witness reflects
|
|
169
|
+
* the node's synced view. Returns `undefined` if the tx isn't yet in a block/epoch or no covering
|
|
170
|
+
* root has landed on L1 as of the synced block.
|
|
171
|
+
*
|
|
172
|
+
* Caveat: cached roots that are sealed and L1-finalized are not re-validated. A reorg deeper than
|
|
173
|
+
* L1 finality could leave the node serving a witness against a no-longer-canonical root.
|
|
174
174
|
*/
|
|
175
|
-
|
|
175
|
+
getL2ToL1MembershipWitness(
|
|
176
|
+
txHash: TxHash,
|
|
177
|
+
message: Fr,
|
|
178
|
+
messageIndexInTx?: number,
|
|
179
|
+
): Promise<L2ToL1MembershipWitness | undefined>;
|
|
176
180
|
|
|
177
181
|
/**
|
|
178
182
|
* Returns the last L2 slot number for which we have all L1 data needed to build the next checkpoint.
|
|
@@ -188,13 +192,6 @@ export interface L2BlockSource {
|
|
|
188
192
|
*/
|
|
189
193
|
getSyncedL2EpochNumber(): Promise<EpochNumber | undefined>;
|
|
190
194
|
|
|
191
|
-
/**
|
|
192
|
-
* Returns all checkpointed block headers for a given epoch.
|
|
193
|
-
* @dev Use this method only with recent epochs, since it walks the block list backwards.
|
|
194
|
-
* @param epochNumber - The epoch number to return headers for.
|
|
195
|
-
*/
|
|
196
|
-
getCheckpointedBlockHeadersForEpoch(epochNumber: EpochNumber): Promise<BlockHeader[]>;
|
|
197
|
-
|
|
198
195
|
/**
|
|
199
196
|
* Returns whether the given epoch is completed on L1, based on the current L1 and L2 block numbers.
|
|
200
197
|
* @param epochNumber - The epoch number to check.
|
|
@@ -211,9 +208,22 @@ export interface L2BlockSource {
|
|
|
211
208
|
*/
|
|
212
209
|
getL1Constants(): Promise<L1RollupConstants>;
|
|
213
210
|
|
|
211
|
+
/**
|
|
212
|
+
* Returns true iff `canPruneAtTime` would be true at the latest L1 timestamp inside
|
|
213
|
+
* the L2 slot's window. Computed entirely from local archiver state (no L1 RPC).
|
|
214
|
+
* @param slot - The L2 slot to check.
|
|
215
|
+
*/
|
|
216
|
+
isPruneDueAtSlot(slot: SlotNumber): Promise<boolean>;
|
|
217
|
+
|
|
214
218
|
/** Returns values for the genesis block */
|
|
215
219
|
getGenesisValues(): Promise<{ genesisArchiveRoot: Fr }>;
|
|
216
220
|
|
|
221
|
+
/**
|
|
222
|
+
* Returns the precomputed hash of the genesis block header. Synchronous because the hash
|
|
223
|
+
* is derived from the initial block header at construction time and cached by implementers.
|
|
224
|
+
*/
|
|
225
|
+
getGenesisBlockHash(): BlockHash;
|
|
226
|
+
|
|
217
227
|
/** Latest synced L1 timestamp. */
|
|
218
228
|
getL1Timestamp(): Promise<bigint | undefined>;
|
|
219
229
|
|
|
@@ -229,59 +239,47 @@ export interface L2BlockSource {
|
|
|
229
239
|
*/
|
|
230
240
|
getPendingChainValidationStatus(): Promise<ValidateCheckpointResult>;
|
|
231
241
|
|
|
232
|
-
/**
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
242
|
+
/**
|
|
243
|
+
* Looks up a proposed (archiver-internal, not-yet-L1-confirmed) checkpoint.
|
|
244
|
+
* Returns the latest proposed entry when called with no args or `{ tag: 'proposed' }`.
|
|
245
|
+
* With `{ number }` or `{ slot }`, returns the matching entry or undefined.
|
|
246
|
+
* Never falls back to confirmed checkpoints.
|
|
247
|
+
*/
|
|
248
|
+
getProposedCheckpointData(query?: ProposedCheckpointQuery): Promise<ProposedCheckpointData | undefined>;
|
|
237
249
|
|
|
238
250
|
/** Force a sync. */
|
|
239
251
|
syncImmediate(): Promise<void>;
|
|
240
252
|
|
|
241
|
-
/* Legacy APIS */
|
|
242
|
-
|
|
243
253
|
/**
|
|
244
|
-
* Gets an
|
|
245
|
-
* @param
|
|
246
|
-
* @returns The requested L2 block.
|
|
254
|
+
* Gets an L2 block matching the given query.
|
|
255
|
+
* @param query - Lookup by block number, hash, or archive root.
|
|
247
256
|
*/
|
|
248
|
-
getBlock(
|
|
257
|
+
getBlock(query: BlockQuery): Promise<L2Block | undefined>;
|
|
249
258
|
|
|
250
259
|
/**
|
|
251
|
-
*
|
|
252
|
-
* @
|
|
253
|
-
* @param epochNumber - The epoch number to return blocks for.
|
|
260
|
+
* Gets a collection of L2 blocks matching the given query.
|
|
261
|
+
* @param query - Range by start/limit or by epoch; optionally restricted to checkpointed blocks.
|
|
254
262
|
*/
|
|
255
|
-
|
|
263
|
+
getBlocks(query: BlocksQuery): Promise<L2Block[]>;
|
|
256
264
|
|
|
257
265
|
/**
|
|
258
|
-
*
|
|
259
|
-
* @
|
|
260
|
-
* @param slotNumber - The slot number to return blocks for.
|
|
266
|
+
* Gets block metadata (without tx data) matching the given query.
|
|
267
|
+
* @param query - Lookup by block number, hash, or archive root.
|
|
261
268
|
*/
|
|
262
|
-
|
|
269
|
+
getBlockData(query: BlockQuery): Promise<BlockData | undefined>;
|
|
263
270
|
|
|
264
271
|
/**
|
|
265
|
-
* Gets a
|
|
266
|
-
* @param
|
|
267
|
-
* @returns The requested block (or undefined if not found).
|
|
272
|
+
* Gets a collection of block metadata entries matching the given query.
|
|
273
|
+
* @param query - Range by start/limit or by epoch; optionally restricted to checkpointed blocks.
|
|
268
274
|
*/
|
|
269
|
-
|
|
275
|
+
getBlocksData(query: BlocksQuery): Promise<BlockData[]>;
|
|
270
276
|
|
|
271
277
|
/**
|
|
272
|
-
*
|
|
273
|
-
* @
|
|
274
|
-
* @
|
|
275
|
-
*/
|
|
276
|
-
getCheckpointedBlockByArchive(archive: Fr): Promise<CheckpointedL2Block | undefined>;
|
|
277
|
-
|
|
278
|
-
/**
|
|
279
|
-
* Gets up to `limit` amount of L2 blocks starting from `from`.
|
|
280
|
-
* @param from - Number of the first block to return (inclusive).
|
|
281
|
-
* @param limit - The maximum number of blocks to return.
|
|
282
|
-
* @returns The requested L2 blocks.
|
|
278
|
+
* Returns all blocks for a given slot.
|
|
279
|
+
* @dev Use this method only with recent slots, since it walks the block list backwards.
|
|
280
|
+
* @param slotNumber - The slot number to return blocks for.
|
|
283
281
|
*/
|
|
284
|
-
|
|
282
|
+
getBlocksForSlot(slotNumber: SlotNumber): Promise<L2Block[]>;
|
|
285
283
|
}
|
|
286
284
|
|
|
287
285
|
/**
|
|
@@ -296,6 +294,19 @@ export interface L2BlockSink {
|
|
|
296
294
|
addBlock(block: L2Block): Promise<void>;
|
|
297
295
|
}
|
|
298
296
|
|
|
297
|
+
/**
|
|
298
|
+
* Interface for classes that can receive and store proposed (not-yet-L1-confirmed) checkpoints.
|
|
299
|
+
*/
|
|
300
|
+
export interface ProposedCheckpointSink {
|
|
301
|
+
/**
|
|
302
|
+
* Adds a proposed checkpoint to the store. The archive and checkpointOutHash are computed
|
|
303
|
+
* internally from the already-stored blocks, so every block in the checkpoint must be added
|
|
304
|
+
* (via {@link L2BlockSink.addBlock}) before calling this.
|
|
305
|
+
* @param checkpoint - The proposed checkpoint metadata.
|
|
306
|
+
*/
|
|
307
|
+
addProposedCheckpoint(checkpoint: ProposedCheckpointInput): Promise<void>;
|
|
308
|
+
}
|
|
309
|
+
|
|
299
310
|
/**
|
|
300
311
|
* L2BlockSource that emits events upon pending / proven chain changes.
|
|
301
312
|
* see L2BlockSourceEvents for the events emitted.
|
|
@@ -306,17 +317,28 @@ export type ArchiverEmitter = TypedEventEmitter<{
|
|
|
306
317
|
[L2BlockSourceEvents.L2BlockProven]: (args: L2BlockProvenEvent) => void;
|
|
307
318
|
[L2BlockSourceEvents.InvalidAttestationsCheckpointDetected]: (args: InvalidCheckpointDetectedEvent) => void;
|
|
308
319
|
[L2BlockSourceEvents.L2BlocksCheckpointed]: (args: L2CheckpointEvent) => void;
|
|
320
|
+
[L2BlockSourceEvents.CheckpointEquivocationDetected]: (args: CheckpointEquivocationDetectedEvent) => void;
|
|
321
|
+
[L2BlockSourceEvents.DescendentOfInvalidAttestationsCheckpointDetected]: (
|
|
322
|
+
args: DescendentOfInvalidAttestationsCheckpointEvent,
|
|
323
|
+
) => void;
|
|
309
324
|
}>;
|
|
310
325
|
export interface L2BlockSourceEventEmitter extends L2BlockSource {
|
|
311
326
|
events: ArchiverEmitter;
|
|
312
327
|
}
|
|
313
328
|
|
|
314
329
|
/**
|
|
315
|
-
* Identifier for L2 block tags.
|
|
330
|
+
* Identifier for L2 block tags. Internal counterpart to {@link BlockTag} that exposes
|
|
331
|
+
* the additional `proposedCheckpoint` value (used for the optimistic chain tip on the
|
|
332
|
+
* archiver side) and omits `latest` (which is an alias for `proposed` accepted only at
|
|
333
|
+
* the public RPC surface).
|
|
334
|
+
*
|
|
316
335
|
* - proposed: Latest block proposed on L2.
|
|
317
|
-
* -
|
|
318
|
-
* -
|
|
319
|
-
* -
|
|
336
|
+
* - proposedCheckpoint: Latest block in the most recent proposed checkpoint (archiver-internal).
|
|
337
|
+
* - checkpointed: Latest block whose enclosing checkpoint has been published on L1.
|
|
338
|
+
* - proven: Latest block whose enclosing checkpoint has been proven on L1.
|
|
339
|
+
* - finalized: Latest block whose proving L1 transaction has reached L1 finality.
|
|
340
|
+
*
|
|
341
|
+
* TODO(palla): Remove `proposedCheckpoint` and unify with `proposed`.
|
|
320
342
|
*/
|
|
321
343
|
export type L2BlockTag = 'proposed' | 'proposedCheckpoint' | 'checkpointed' | 'proven' | 'finalized';
|
|
322
344
|
|
|
@@ -380,6 +402,8 @@ export enum L2BlockSourceEvents {
|
|
|
380
402
|
L2BlockProven = 'l2BlockProven',
|
|
381
403
|
L2BlocksCheckpointed = 'l2BlocksCheckpointed',
|
|
382
404
|
InvalidAttestationsCheckpointDetected = 'invalidCheckpointDetected',
|
|
405
|
+
CheckpointEquivocationDetected = 'checkpointEquivocationDetected',
|
|
406
|
+
DescendentOfInvalidAttestationsCheckpointDetected = 'descendentOfInvalidAttestationsCheckpointDetected',
|
|
383
407
|
}
|
|
384
408
|
|
|
385
409
|
export type L2BlockProvenEvent = {
|
|
@@ -410,3 +434,31 @@ export type InvalidCheckpointDetectedEvent = {
|
|
|
410
434
|
type: 'invalidCheckpointDetected';
|
|
411
435
|
validationResult: ValidateCheckpointNegativeResult;
|
|
412
436
|
};
|
|
437
|
+
|
|
438
|
+
/**
|
|
439
|
+
* Emitted when a local proposed checkpoint is found to disagree with the L1-confirmed
|
|
440
|
+
* checkpoint at the same slot. The slot proposer signed both — equivocation.
|
|
441
|
+
*/
|
|
442
|
+
export type CheckpointEquivocationDetectedEvent = {
|
|
443
|
+
type: 'checkpointEquivocationDetected';
|
|
444
|
+
slotNumber: SlotNumber;
|
|
445
|
+
checkpointNumber: CheckpointNumber;
|
|
446
|
+
l1ArchiveRoot: Fr;
|
|
447
|
+
proposedArchiveRoot: Fr;
|
|
448
|
+
};
|
|
449
|
+
|
|
450
|
+
/**
|
|
451
|
+
* Emitted when the archiver observes a checkpoint that builds on a previously-rejected
|
|
452
|
+
* ancestor (typically one with insufficient/invalid attestations). The descendant itself may
|
|
453
|
+
* have valid attestations, but it cannot be ingested because the chain it extends was
|
|
454
|
+
* skipped. The slasher uses this to slash the proposer of the descendant.
|
|
455
|
+
*/
|
|
456
|
+
export type DescendentOfInvalidAttestationsCheckpointEvent = {
|
|
457
|
+
type: 'descendentOfInvalidAttestationsCheckpointDetected';
|
|
458
|
+
/** The descendant checkpoint being rejected. */
|
|
459
|
+
checkpoint: CheckpointInfo;
|
|
460
|
+
/** Archive root of the rejected ancestor this descendant builds on. */
|
|
461
|
+
ancestorArchiveRoot: Fr;
|
|
462
|
+
/** Checkpoint number of the rejected ancestor. */
|
|
463
|
+
ancestorCheckpointNumber: CheckpointNumber;
|
|
464
|
+
};
|