@aztec/stdlib 5.0.0-private.20260319 → 5.0.0-rc.1
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 +142 -1081
- package/dest/abi/abi.d.ts.map +1 -1
- package/dest/abi/abi.js +41 -18
- package/dest/abi/authorization_selector.d.ts +4 -7
- package/dest/abi/authorization_selector.d.ts.map +1 -1
- package/dest/abi/buffer.d.ts +14 -4
- package/dest/abi/buffer.d.ts.map +1 -1
- package/dest/abi/buffer.js +25 -4
- package/dest/abi/contract_artifact.d.ts +14 -1
- package/dest/abi/contract_artifact.d.ts.map +1 -1
- package/dest/abi/contract_artifact.js +31 -7
- package/dest/abi/decoder.d.ts +5 -44
- package/dest/abi/decoder.d.ts.map +1 -1
- package/dest/abi/decoder.js +12 -67
- package/dest/abi/encoder.d.ts +1 -1
- package/dest/abi/encoder.d.ts.map +1 -1
- package/dest/abi/encoder.js +32 -6
- package/dest/abi/event_selector.d.ts +4 -7
- 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/function_selector.d.ts +3 -6
- package/dest/abi/function_selector.d.ts.map +1 -1
- package/dest/abi/function_selector.js +2 -4
- package/dest/abi/function_signature_decoder.d.ts +43 -0
- package/dest/abi/function_signature_decoder.d.ts.map +1 -0
- package/dest/abi/function_signature_decoder.js +66 -0
- package/dest/abi/index.d.ts +2 -1
- package/dest/abi/index.d.ts.map +1 -1
- package/dest/abi/index.js +1 -0
- package/dest/abi/note_selector.d.ts +4 -7
- package/dest/abi/note_selector.d.ts.map +1 -1
- package/dest/abi/note_selector.js +1 -3
- package/dest/abi/selector.d.ts +2 -2
- package/dest/abi/selector.d.ts.map +1 -1
- package/dest/abi/selector.js +1 -1
- package/dest/abi/utils.d.ts +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 +5 -21
- package/dest/avm/revert_code.d.ts.map +1 -1
- package/dest/avm/revert_code.js +12 -30
- package/dest/aztec-address/index.d.ts +8 -8
- package/dest/aztec-address/index.d.ts.map +1 -1
- package/dest/aztec-address/index.js +9 -6
- 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 +13 -38
- package/dest/block/block_data.d.ts.map +1 -1
- package/dest/block/block_data.js +2 -2
- package/dest/block/block_hash.d.ts +11 -10
- package/dest/block/block_hash.d.ts.map +1 -1
- package/dest/block/block_hash.js +10 -9
- 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 +10 -29
- package/dest/block/l2_block_info.d.ts.map +1 -1
- package/dest/block/l2_block_info.js +6 -5
- package/dest/block/l2_block_source.d.ts +216 -357
- package/dest/block/l2_block_source.d.ts.map +1 -1
- package/dest/block/l2_block_source.js +67 -1
- package/dest/block/l2_block_stream/interfaces.d.ts +46 -7
- package/dest/block/l2_block_stream/interfaces.d.ts.map +1 -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 +57 -21
- package/dest/block/l2_block_stream/l2_tips_memory_store.d.ts +8 -12
- 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 +11 -32
- package/dest/block/l2_block_stream/l2_tips_store_base.d.ts +12 -18
- 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 +66 -40
- 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.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 +202 -33
- package/dest/checkpoint/checkpoint.d.ts +30 -96
- package/dest/checkpoint/checkpoint.d.ts.map +1 -1
- package/dest/checkpoint/checkpoint.js +11 -3
- package/dest/checkpoint/checkpoint_data.d.ts +68 -91
- package/dest/checkpoint/checkpoint_data.d.ts.map +1 -1
- package/dest/checkpoint/checkpoint_data.js +12 -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/checkpoint/validate.d.ts +11 -3
- package/dest/checkpoint/validate.d.ts.map +1 -1
- package/dest/checkpoint/validate.js +9 -6
- 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 +13 -12
- package/dest/config/index.d.ts +2 -2
- package/dest/config/index.d.ts.map +1 -1
- package/dest/config/index.js +1 -1
- package/dest/config/network-consensus-config.d.ts +72 -0
- package/dest/config/network-consensus-config.d.ts.map +1 -0
- package/dest/config/network-consensus-config.js +231 -0
- package/dest/config/sequencer-config.d.ts +7 -3
- package/dest/config/sequencer-config.d.ts.map +1 -1
- package/dest/config/sequencer-config.js +38 -5
- 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/index.d.ts +1 -3
- package/dest/contract/index.d.ts.map +1 -1
- package/dest/contract/index.js +0 -2
- package/dest/contract/interfaces/contract_class.d.ts +17 -241
- package/dest/contract/interfaces/contract_class.d.ts.map +1 -1
- package/dest/contract/interfaces/contract_class.js +1 -28
- 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/node-info.d.ts +11 -1
- package/dest/contract/interfaces/node-info.d.ts.map +1 -1
- package/dest/contract/interfaces/node-info.js +7 -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/contract/private_function.d.ts +1 -1
- package/dest/contract/private_function.d.ts.map +1 -1
- package/dest/contract/private_function.js +2 -4
- 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/deserialization/index.d.ts +35 -3
- package/dest/deserialization/index.d.ts.map +1 -1
- package/dest/deserialization/index.js +32 -1
- package/dest/epoch-helpers/index.d.ts +10 -22
- package/dest/epoch-helpers/index.d.ts.map +1 -1
- package/dest/epoch-helpers/index.js +12 -0
- package/dest/file-store/factory.d.ts +4 -3
- package/dest/file-store/factory.d.ts.map +1 -1
- package/dest/file-store/factory.js +2 -2
- package/dest/file-store/http.d.ts +9 -2
- package/dest/file-store/http.d.ts.map +1 -1
- package/dest/file-store/http.js +20 -9
- package/dest/file-store/index.d.ts +2 -1
- package/dest/file-store/index.d.ts.map +1 -1
- package/dest/gas/fee_math.d.ts +49 -0
- package/dest/gas/fee_math.d.ts.map +1 -0
- package/dest/gas/fee_math.js +80 -0
- 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 +13 -14
- package/dest/gas/gas_fees.d.ts.map +1 -1
- package/dest/gas/gas_fees.js +17 -4
- package/dest/gas/gas_settings.d.ts +60 -86
- package/dest/gas/gas_settings.d.ts.map +1 -1
- package/dest/gas/gas_settings.js +49 -9
- package/dest/gas/index.d.ts +3 -1
- package/dest/gas/index.d.ts.map +1 -1
- package/dest/gas/index.js +2 -0
- package/dest/gas/tx_gas_limits.d.ts +72 -0
- package/dest/gas/tx_gas_limits.d.ts.map +1 -0
- package/dest/gas/tx_gas_limits.js +85 -0
- package/dest/ha-signing/config.d.ts +11 -75
- package/dest/ha-signing/config.d.ts.map +1 -1
- package/dest/ha-signing/config.js +9 -18
- package/dest/ha-signing/index.d.ts +2 -2
- package/dest/ha-signing/index.d.ts.map +1 -1
- package/dest/ha-signing/index.js +1 -1
- 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/ha-signing/types.d.ts +37 -32
- package/dest/ha-signing/types.d.ts.map +1 -1
- package/dest/ha-signing/types.js +13 -6
- package/dest/hash/hash.d.ts +19 -1
- package/dest/hash/hash.d.ts.map +1 -1
- package/dest/hash/hash.js +39 -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 +20 -32
- package/dest/interfaces/archiver.d.ts.map +1 -1
- package/dest/interfaces/archiver.js +215 -70
- package/dest/interfaces/aztec-node-admin.d.ts +71 -305
- package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
- package/dest/interfaces/aztec-node-admin.js +60 -17
- package/dest/interfaces/aztec-node-debug.d.ts +34 -0
- package/dest/interfaces/aztec-node-debug.d.ts.map +1 -0
- package/dest/interfaces/aztec-node-debug.js +29 -0
- package/dest/interfaces/aztec-node.d.ts +156 -112
- package/dest/interfaces/aztec-node.d.ts.map +1 -1
- package/dest/interfaces/aztec-node.js +354 -71
- package/dest/interfaces/block-builder.d.ts +5 -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 +9 -2
- package/dest/interfaces/client.d.ts.map +1 -1
- package/dest/interfaces/client.js +7 -1
- package/dest/interfaces/configs.d.ts +63 -134
- package/dest/interfaces/configs.d.ts.map +1 -1
- package/dest/interfaces/configs.js +13 -2
- package/dest/interfaces/get_tx_by_hash_options.d.ts +9 -0
- package/dest/interfaces/get_tx_by_hash_options.d.ts.map +1 -0
- package/dest/interfaces/get_tx_by_hash_options.js +4 -0
- 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 +4 -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 +46 -7
- package/dest/interfaces/p2p.d.ts.map +1 -1
- package/dest/interfaces/p2p.js +41 -6
- 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 +7 -29
- package/dest/interfaces/prover-client.d.ts.map +1 -1
- package/dest/interfaces/prover-client.js +0 -3
- package/dest/interfaces/prover-node.d.ts +8 -3
- package/dest/interfaces/prover-node.d.ts.map +1 -1
- package/dest/interfaces/prover-node.js +30 -14
- package/dest/interfaces/proving-job-source.js +24 -4
- package/dest/interfaces/proving-job.d.ts +763 -5814
- 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 -2
- package/dest/interfaces/server.d.ts.map +1 -1
- package/dest/interfaces/server.js +5 -1
- package/dest/interfaces/slasher.d.ts +25 -65
- package/dest/interfaces/slasher.d.ts.map +1 -1
- package/dest/interfaces/slasher.js +8 -4
- 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 +55 -248
- package/dest/interfaces/validator.d.ts.map +1 -1
- package/dest/interfaces/validator.js +8 -2
- 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/l1-contracts/index.d.ts +2 -2
- package/dest/l1-contracts/index.d.ts.map +1 -1
- package/dest/l1-contracts/index.js +1 -1
- package/dest/logs/app_tagging_secret.d.ts +46 -0
- package/dest/logs/app_tagging_secret.d.ts.map +1 -0
- package/dest/logs/app_tagging_secret.js +109 -0
- 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 +6 -8
- package/dest/logs/message_context.d.ts.map +1 -1
- package/dest/logs/message_context.js +27 -9
- package/dest/logs/pending_tagged_log.d.ts +2 -3
- package/dest/logs/pending_tagged_log.d.ts.map +1 -1
- package/dest/logs/pending_tagged_log.js +2 -2
- package/dest/logs/pre_tag.d.ts +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/shared_secret_derivation.d.ts +11 -10
- package/dest/logs/shared_secret_derivation.d.ts.map +1 -1
- package/dest/logs/shared_secret_derivation.js +15 -9
- package/dest/logs/siloed_tag.d.ts +8 -7
- package/dest/logs/siloed_tag.d.ts.map +1 -1
- package/dest/logs/siloed_tag.js +13 -3
- package/dest/logs/tag.d.ts +5 -6
- package/dest/logs/tag.d.ts.map +1 -1
- package/dest/logs/tag.js +4 -0
- 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/l1_to_l2_message.d.ts +3 -2
- package/dest/messaging/l1_to_l2_message.d.ts.map +1 -1
- package/dest/messaging/l1_to_l2_message.js +11 -13
- package/dest/messaging/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/note/note_dao.d.ts +1 -1
- package/dest/note/note_dao.d.ts.map +1 -1
- package/dest/note/note_dao.js +1 -4
- package/dest/p2p/block_proposal.d.ts +31 -14
- package/dest/p2p/block_proposal.d.ts.map +1 -1
- package/dest/p2p/block_proposal.js +57 -39
- package/dest/p2p/checkpoint_attestation.d.ts +15 -9
- package/dest/p2p/checkpoint_attestation.d.ts.map +1 -1
- package/dest/p2p/checkpoint_attestation.js +23 -24
- package/dest/p2p/checkpoint_proposal.d.ts +35 -16
- package/dest/p2p/checkpoint_proposal.d.ts.map +1 -1
- package/dest/p2p/checkpoint_proposal.js +59 -51
- 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/gossipable.d.ts +4 -4
- package/dest/p2p/gossipable.d.ts.map +1 -1
- 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 +57 -7
- package/dest/proofs/chonk_proof.d.ts.map +1 -1
- package/dest/proofs/chonk_proof.js +112 -15
- package/dest/proofs/recursive_proof.d.ts +2 -2
- package/dest/proofs/recursive_proof.d.ts.map +1 -1
- package/dest/rollup/block_headers_hash.d.ts +1 -1
- package/dest/rollup/block_headers_hash.d.ts.map +1 -1
- package/dest/rollup/block_headers_hash.js +8 -2
- 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/index.d.ts +2 -3
- package/dest/slashing/index.d.ts.map +1 -1
- package/dest/slashing/index.js +1 -2
- package/dest/slashing/serialization.d.ts +2 -6
- package/dest/slashing/serialization.d.ts.map +1 -1
- package/dest/slashing/serialization.js +0 -60
- package/dest/slashing/types.d.ts +18 -112
- package/dest/slashing/types.d.ts.map +1 -1
- package/dest/slashing/types.js +16 -24
- package/dest/slashing/{tally.d.ts → votes.d.ts} +1 -1
- package/dest/slashing/{tally.d.ts.map → votes.d.ts.map} +1 -1
- package/dest/slashing/{tally.js → votes.js} +1 -1
- 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 +25 -32
- package/dest/tests/factories.d.ts.map +1 -1
- package/dest/tests/factories.js +85 -82
- package/dest/tests/mocks.d.ts +8 -5
- package/dest/tests/mocks.d.ts.map +1 -1
- package/dest/tests/mocks.js +45 -56
- package/dest/timetable/budgets.d.ts +57 -0
- package/dest/timetable/budgets.d.ts.map +1 -0
- package/dest/timetable/budgets.js +56 -0
- package/dest/timetable/build_proposer_timetable.d.ts +21 -0
- package/dest/timetable/build_proposer_timetable.d.ts.map +1 -0
- package/dest/timetable/build_proposer_timetable.js +17 -0
- package/dest/timetable/consensus_timetable.d.ts +70 -0
- package/dest/timetable/consensus_timetable.d.ts.map +1 -0
- package/dest/timetable/consensus_timetable.js +89 -0
- package/dest/timetable/index.d.ts +5 -37
- package/dest/timetable/index.d.ts.map +1 -1
- package/dest/timetable/index.js +4 -39
- package/dest/timetable/proposer_timetable.d.ts +106 -0
- package/dest/timetable/proposer_timetable.d.ts.map +1 -0
- package/dest/timetable/proposer_timetable.js +132 -0
- 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 +19 -42
- package/dest/trees/nullifier_leaf.d.ts.map +1 -1
- package/dest/trees/nullifier_leaf.js +3 -0
- 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 +5 -4
- package/dest/tx/block_header.d.ts.map +1 -1
- package/dest/tx/block_header.js +7 -4
- 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 +7 -3
- package/dest/tx/capsule.d.ts.map +1 -1
- package/dest/tx/capsule.js +9 -3
- package/dest/tx/fee_provider.d.ts +10 -0
- package/dest/tx/fee_provider.d.ts.map +1 -0
- package/dest/tx/fee_provider.js +1 -0
- package/dest/tx/function_data.d.ts +4 -10
- package/dest/tx/function_data.d.ts.map +1 -1
- package/dest/tx/global_variable_builder.d.ts +3 -4
- package/dest/tx/global_variable_builder.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/index.d.ts +2 -1
- package/dest/tx/index.d.ts.map +1 -1
- package/dest/tx/index.js +1 -0
- 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 +9 -6
- 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 +64 -1143
- package/dest/tx/simulated_tx.d.ts.map +1 -1
- package/dest/tx/simulated_tx.js +13 -11
- 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 +22 -13
- package/dest/tx/tx.d.ts.map +1 -1
- package/dest/tx/tx.js +44 -22
- 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 -63
- package/dest/tx/tx_receipt.d.ts.map +1 -1
- package/dest/tx/tx_receipt.js +143 -60
- package/dest/tx/validator/error_texts.d.ts +6 -2
- package/dest/tx/validator/error_texts.d.ts.map +1 -1
- package/dest/tx/validator/error_texts.js +7 -1
- package/dest/tx/validator/tx_validator.d.ts +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 -12
- package/dest/types/shared.d.ts.map +1 -1
- package/dest/types/shared.js +6 -12
- 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 +4 -139
- package/dest/vks/verification_key.d.ts.map +1 -1
- package/dest/vks/verification_key.js +5 -126
- package/dest/world-state/genesis_data.d.ts +13 -0
- package/dest/world-state/genesis_data.d.ts.map +1 -0
- package/dest/world-state/genesis_data.js +7 -0
- package/dest/world-state/index.d.ts +2 -1
- package/dest/world-state/index.d.ts.map +1 -1
- package/dest/world-state/index.js +1 -0
- package/dest/world-state/world_state_revision.d.ts +15 -26
- package/dest/world-state/world_state_revision.d.ts.map +1 -1
- package/dest/world-state/world_state_revision.js +7 -1
- package/package.json +12 -11
- package/src/abi/abi.ts +78 -21
- package/src/abi/authorization_selector.ts +2 -8
- package/src/abi/buffer.ts +25 -4
- package/src/abi/contract_artifact.ts +30 -6
- package/src/abi/decoder.ts +23 -78
- package/src/abi/encoder.ts +42 -6
- package/src/abi/event_selector.ts +2 -8
- package/src/abi/function_selector.ts +4 -13
- package/src/abi/function_signature_decoder.ts +77 -0
- package/src/abi/index.ts +1 -0
- package/src/abi/note_selector.ts +3 -12
- package/src/abi/selector.ts +1 -1
- 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 +19 -39
- package/src/aztec-address/index.ts +15 -12
- package/src/block/attestation_info.ts +11 -11
- package/src/block/block_data.ts +3 -4
- package/src/block/block_hash.ts +21 -14
- package/src/block/block_parameter.ts +72 -4
- package/src/block/index.ts +0 -1
- package/src/block/l2_block_info.ts +8 -6
- package/src/block/l2_block_source.ts +216 -147
- package/src/block/l2_block_stream/interfaces.ts +42 -6
- package/src/block/l2_block_stream/l2_block_stream.ts +60 -31
- package/src/block/l2_block_stream/l2_tips_memory_store.ts +17 -41
- package/src/block/l2_block_stream/l2_tips_store_base.ts +64 -60
- package/src/block/proposal/attestations_and_signers.ts +32 -17
- package/src/block/test/l2_tips_store_test_suite.ts +198 -18
- package/src/checkpoint/checkpoint.ts +13 -3
- package/src/checkpoint/checkpoint_data.ts +44 -4
- 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/checkpoint/validate.ts +16 -6
- package/src/config/chain-config.ts +13 -16
- package/src/config/index.ts +1 -1
- package/src/config/network-consensus-config.ts +302 -0
- package/src/config/sequencer-config.ts +68 -9
- 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/index.ts +0 -2
- package/src/contract/interfaces/contract_class.ts +2 -82
- package/src/contract/interfaces/contract_instance.ts +6 -2
- package/src/contract/interfaces/node-info.ts +11 -0
- package/src/contract/private_function.ts +3 -1
- package/src/database-version/version_manager.ts +17 -0
- package/src/deserialization/index.ts +35 -2
- package/src/epoch-helpers/index.ts +24 -0
- package/src/file-store/factory.ts +13 -4
- package/src/file-store/http.ts +29 -10
- package/src/file-store/index.ts +1 -0
- package/src/gas/README.md +123 -0
- package/src/gas/fee_math.ts +120 -0
- package/src/gas/gas.ts +8 -3
- package/src/gas/gas_fees.ts +26 -13
- package/src/gas/gas_settings.ts +63 -15
- package/src/gas/index.ts +2 -0
- package/src/gas/tx_gas_limits.ts +123 -0
- package/src/ha-signing/config.ts +14 -18
- package/src/ha-signing/index.ts +3 -1
- package/src/ha-signing/local_config.ts +2 -2
- package/src/ha-signing/types.ts +48 -34
- package/src/hash/hash.ts +34 -2
- package/src/interfaces/api_limit.ts +1 -1
- package/src/interfaces/archiver.ts +88 -93
- package/src/interfaces/aztec-node-admin.ts +36 -21
- package/src/interfaces/aztec-node-debug.ts +55 -0
- package/src/interfaces/aztec-node.ts +389 -259
- package/src/interfaces/block-builder.ts +4 -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 +8 -1
- package/src/interfaces/configs.ts +64 -7
- package/src/interfaces/get_tx_by_hash_options.ts +14 -0
- 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 +3 -2
- package/src/interfaces/p2p-bootstrap.ts +2 -2
- package/src/interfaces/p2p.ts +59 -19
- package/src/interfaces/private_kernel_prover.ts +88 -0
- package/src/interfaces/prover-agent.ts +1 -1
- package/src/interfaces/prover-client.ts +3 -8
- package/src/interfaces/prover-node.ts +19 -12
- 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 -1
- package/src/interfaces/slasher.ts +17 -10
- package/src/interfaces/tx_provider.ts +6 -0
- package/src/interfaces/validator.ts +45 -15
- 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/l1-contracts/index.ts +1 -1
- package/src/logs/app_tagging_secret.ts +137 -0
- 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 +22 -8
- package/src/logs/pending_tagged_log.ts +1 -3
- 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/shared_secret_derivation.ts +21 -10
- package/src/logs/siloed_tag.ts +20 -11
- package/src/logs/tag.ts +8 -8
- 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/l1_to_l2_message.ts +12 -9
- 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/note/note_dao.ts +1 -4
- package/src/p2p/block_proposal.ts +111 -36
- package/src/p2p/checkpoint_attestation.ts +27 -31
- package/src/p2p/checkpoint_proposal.ts +128 -73
- package/src/p2p/consensus_payload.ts +59 -28
- package/src/p2p/gossipable.ts +4 -4
- 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 +132 -12
- package/src/rollup/block_headers_hash.ts +11 -2
- 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/index.ts +1 -2
- package/src/slashing/serialization.ts +1 -81
- package/src/slashing/types.ts +24 -49
- package/src/slashing/{tally.ts → votes.ts} +1 -1
- package/src/stats/stats.ts +4 -0
- package/src/tests/factories.ts +109 -111
- package/src/tests/mocks.ts +72 -71
- package/src/timetable/README.md +609 -0
- package/src/timetable/budgets.ts +87 -0
- package/src/timetable/build_proposer_timetable.ts +42 -0
- package/src/timetable/consensus_timetable.ts +126 -0
- package/src/timetable/index.ts +4 -66
- package/src/timetable/proposer_timetable.ts +190 -0
- package/src/timetable/timetable-example.svg +108 -0
- package/src/trees/append_only_tree_snapshot.ts +8 -3
- package/src/trees/nullifier_leaf.ts +4 -0
- package/src/trees/nullifier_membership_witness.ts +2 -12
- package/src/tx/block_header.ts +10 -5
- package/src/tx/capsule.ts +10 -2
- package/src/tx/fee_provider.ts +10 -0
- package/src/tx/global_variable_builder.ts +2 -3
- package/src/tx/global_variables.ts +10 -18
- package/src/tx/hashed_values.ts +8 -3
- package/src/tx/index.ts +1 -0
- package/src/tx/indexed_tx_effect.ts +18 -6
- 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 +22 -21
- package/src/tx/state_reference.ts +9 -4
- package/src/tx/tree_snapshots.ts +9 -4
- package/src/tx/tx.ts +60 -24
- 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 +265 -85
- package/src/tx/validator/error_texts.ts +10 -1
- package/src/tx/validator/tx_validator.ts +1 -5
- package/src/types/shared.ts +8 -13
- 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/vks/verification_key.ts +5 -184
- package/src/world-state/genesis_data.ts +27 -0
- package/src/world-state/index.ts +1 -0
- package/src/world-state/world_state_revision.ts +9 -1
- package/dest/abi/mocked_keys.d.ts +0 -2
- package/dest/abi/mocked_keys.d.ts.map +0 -1
- package/dest/abi/mocked_keys.js +0 -1
- 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/contract/private_function_membership_proof.d.ts +0 -32
- package/dest/contract/private_function_membership_proof.d.ts.map +0 -1
- package/dest/contract/private_function_membership_proof.js +0 -124
- package/dest/contract/utility_function_membership_proof.d.ts +0 -27
- package/dest/contract/utility_function_membership_proof.d.ts.map +0 -1
- package/dest/contract/utility_function_membership_proof.js +0 -87
- package/dest/interfaces/epoch-prover.d.ts +0 -57
- package/dest/interfaces/epoch-prover.d.ts.map +0 -1
- package/dest/interfaces/epoch-prover.js +0 -1
- 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/l1-contracts/slash_factory.d.ts +0 -45
- package/dest/l1-contracts/slash_factory.d.ts.map +0 -1
- package/dest/l1-contracts/slash_factory.js +0 -158
- 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_directional_app_tagging_secret.js +0 -72
- 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 -94
- 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/dest/slashing/empire.d.ts +0 -31
- package/dest/slashing/empire.d.ts.map +0 -1
- package/dest/slashing/empire.js +0 -87
- package/src/abi/mocked_keys.ts +0 -2
- package/src/block/checkpointed_l2_block.ts +0 -70
- package/src/config/pipelining-config.ts +0 -31
- package/src/contract/private_function_membership_proof.ts +0 -167
- package/src/contract/utility_function_membership_proof.ts +0 -118
- package/src/interfaces/epoch-prover.ts +0 -72
- package/src/interfaces/get_logs_response.ts +0 -35
- package/src/l1-contracts/slash_factory.ts +0 -180
- package/src/logs/extended_contract_class_log.ts +0 -87
- package/src/logs/extended_directional_app_tagging_secret.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 -125
- package/src/logs/tx_scoped_l2_log.ts +0 -114
- package/src/slashing/empire.ts +0 -104
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { GENESIS_BLOCK_HEADER_HASH } from '@aztec/constants';
|
|
2
1
|
import { BlockNumber, CheckpointNumber } from '@aztec/foundation/branded-types';
|
|
3
2
|
import { times } from '@aztec/foundation/collection';
|
|
4
3
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
@@ -7,12 +6,14 @@ import {
|
|
|
7
6
|
GENESIS_CHECKPOINT_HEADER_HASH,
|
|
8
7
|
L2Block,
|
|
9
8
|
type L2BlockId,
|
|
9
|
+
type L2BlockTag,
|
|
10
10
|
type L2TipId,
|
|
11
11
|
} from '@aztec/stdlib/block';
|
|
12
12
|
import { Checkpoint, L1PublishedData, PublishedCheckpoint } from '@aztec/stdlib/checkpoint';
|
|
13
13
|
|
|
14
|
-
import {
|
|
14
|
+
import { expect } from 'vitest';
|
|
15
15
|
|
|
16
|
+
import { GENESIS_BLOCK_HEADER_HASH } from '../block_hash.js';
|
|
16
17
|
import type { L2TipsStore } from '../l2_block_stream/index.js';
|
|
17
18
|
|
|
18
19
|
export function testL2TipsStore(makeTipsStore: () => Promise<L2TipsStore>) {
|
|
@@ -146,7 +147,11 @@ export function testL2TipsStore(makeTipsStore: () => Promise<L2TipsStore>) {
|
|
|
146
147
|
await tipsStore.handleBlockStreamEvent(await makeCheckpointedEvent(checkpoint1));
|
|
147
148
|
|
|
148
149
|
// Prove up to block 5
|
|
149
|
-
await tipsStore.handleBlockStreamEvent({
|
|
150
|
+
await tipsStore.handleBlockStreamEvent({
|
|
151
|
+
type: 'chain-proven',
|
|
152
|
+
block: makeBlockId(5),
|
|
153
|
+
checkpoint: makeCheckpointIdForBlock(5),
|
|
154
|
+
});
|
|
150
155
|
|
|
151
156
|
const tips = await tipsStore.getL2Tips();
|
|
152
157
|
expect(tips.proposed).toEqual(makeTip(5));
|
|
@@ -166,8 +171,16 @@ export function testL2TipsStore(makeTipsStore: () => Promise<L2TipsStore>) {
|
|
|
166
171
|
await tipsStore.handleBlockStreamEvent(await makeCheckpointedEvent(checkpoint1));
|
|
167
172
|
|
|
168
173
|
// Prove and finalize
|
|
169
|
-
await tipsStore.handleBlockStreamEvent({
|
|
170
|
-
|
|
174
|
+
await tipsStore.handleBlockStreamEvent({
|
|
175
|
+
type: 'chain-proven',
|
|
176
|
+
block: makeBlockId(5),
|
|
177
|
+
checkpoint: makeCheckpointIdForBlock(5),
|
|
178
|
+
});
|
|
179
|
+
await tipsStore.handleBlockStreamEvent({
|
|
180
|
+
type: 'chain-finalized',
|
|
181
|
+
block: makeBlockId(5),
|
|
182
|
+
checkpoint: makeCheckpointIdForBlock(5),
|
|
183
|
+
});
|
|
171
184
|
|
|
172
185
|
const tips = await tipsStore.getL2Tips();
|
|
173
186
|
expect(tips.proposed).toEqual(makeTip(5));
|
|
@@ -222,8 +235,16 @@ export function testL2TipsStore(makeTipsStore: () => Promise<L2TipsStore>) {
|
|
|
222
235
|
await tipsStore.handleBlockStreamEvent(await makeCheckpointedEvent(checkpoint2));
|
|
223
236
|
|
|
224
237
|
// Prove and finalize up to block 3 (checkpoint 1)
|
|
225
|
-
await tipsStore.handleBlockStreamEvent({
|
|
226
|
-
|
|
238
|
+
await tipsStore.handleBlockStreamEvent({
|
|
239
|
+
type: 'chain-proven',
|
|
240
|
+
block: makeBlockId(3),
|
|
241
|
+
checkpoint: makeCheckpointIdForBlock(3),
|
|
242
|
+
});
|
|
243
|
+
await tipsStore.handleBlockStreamEvent({
|
|
244
|
+
type: 'chain-finalized',
|
|
245
|
+
block: makeBlockId(3),
|
|
246
|
+
checkpoint: makeCheckpointIdForBlock(3),
|
|
247
|
+
});
|
|
227
248
|
|
|
228
249
|
// Blocks before finalized should be cleared
|
|
229
250
|
expect(await tipsStore.getL2BlockHash(1)).toBeUndefined();
|
|
@@ -243,7 +264,8 @@ export function testL2TipsStore(makeTipsStore: () => Promise<L2TipsStore>) {
|
|
|
243
264
|
await tipsStore.handleBlockStreamEvent({
|
|
244
265
|
type: 'chain-pruned',
|
|
245
266
|
block: makeBlockId(5),
|
|
246
|
-
|
|
267
|
+
checkpointed: makeTipId(0),
|
|
268
|
+
proven: makeTipId(0),
|
|
247
269
|
});
|
|
248
270
|
|
|
249
271
|
const tips = await tipsStore.getL2Tips();
|
|
@@ -267,7 +289,8 @@ export function testL2TipsStore(makeTipsStore: () => Promise<L2TipsStore>) {
|
|
|
267
289
|
await tipsStore.handleBlockStreamEvent({
|
|
268
290
|
type: 'chain-pruned',
|
|
269
291
|
block: makeTip(0),
|
|
270
|
-
|
|
292
|
+
checkpointed: makeTipId(0),
|
|
293
|
+
proven: makeTipId(0),
|
|
271
294
|
});
|
|
272
295
|
|
|
273
296
|
tips = await tipsStore.getL2Tips();
|
|
@@ -332,7 +355,8 @@ export function testL2TipsStore(makeTipsStore: () => Promise<L2TipsStore>) {
|
|
|
332
355
|
await tipsStore.handleBlockStreamEvent({
|
|
333
356
|
type: 'chain-pruned',
|
|
334
357
|
block: makeBlockId(5),
|
|
335
|
-
|
|
358
|
+
checkpointed: makeTipId(5),
|
|
359
|
+
proven: makeTipId(0),
|
|
336
360
|
});
|
|
337
361
|
|
|
338
362
|
tips = await tipsStore.getL2Tips();
|
|
@@ -396,7 +420,8 @@ export function testL2TipsStore(makeTipsStore: () => Promise<L2TipsStore>) {
|
|
|
396
420
|
await tipsStore.handleBlockStreamEvent({
|
|
397
421
|
type: 'chain-pruned',
|
|
398
422
|
block: makeBlockId(3),
|
|
399
|
-
|
|
423
|
+
checkpointed: makeTipId(3),
|
|
424
|
+
proven: makeTipId(0),
|
|
400
425
|
});
|
|
401
426
|
|
|
402
427
|
tips = await tipsStore.getL2Tips();
|
|
@@ -433,7 +458,11 @@ export function testL2TipsStore(makeTipsStore: () => Promise<L2TipsStore>) {
|
|
|
433
458
|
await tipsStore.handleBlockStreamEvent(await makeCheckpointedEvent(checkpoint1));
|
|
434
459
|
|
|
435
460
|
// Prove up to block 3
|
|
436
|
-
await tipsStore.handleBlockStreamEvent({
|
|
461
|
+
await tipsStore.handleBlockStreamEvent({
|
|
462
|
+
type: 'chain-proven',
|
|
463
|
+
block: makeBlockId(3),
|
|
464
|
+
checkpoint: makeCheckpointIdForBlock(3),
|
|
465
|
+
});
|
|
437
466
|
|
|
438
467
|
let tips = await tipsStore.getL2Tips();
|
|
439
468
|
expect(tips.proposed).toEqual(makeTip(3));
|
|
@@ -474,7 +503,8 @@ export function testL2TipsStore(makeTipsStore: () => Promise<L2TipsStore>) {
|
|
|
474
503
|
await tipsStore.handleBlockStreamEvent({
|
|
475
504
|
type: 'chain-pruned',
|
|
476
505
|
block: makeBlockId(3),
|
|
477
|
-
|
|
506
|
+
checkpointed: makeTipId(3),
|
|
507
|
+
proven: makeTipId(3),
|
|
478
508
|
});
|
|
479
509
|
|
|
480
510
|
tips = await tipsStore.getL2Tips();
|
|
@@ -523,15 +553,165 @@ export function testL2TipsStore(makeTipsStore: () => Promise<L2TipsStore>) {
|
|
|
523
553
|
expect(await tipsStore.getL2BlockHash(7)).not.toEqual(originalHash7);
|
|
524
554
|
});
|
|
525
555
|
|
|
526
|
-
// Regression test for #13142
|
|
527
|
-
|
|
556
|
+
// Regression test for #13142: proving an unseen block number (one with no local block->checkpoint
|
|
557
|
+
// mapping) must not blow up. With per-cursor checkpoint ids, the proven tip resolves to the
|
|
558
|
+
// checkpoint id carried by the event rather than falling back to checkpoint zero.
|
|
559
|
+
it('resolves the proven checkpoint from the carried id when setting proven on an unseen block number', async () => {
|
|
528
560
|
await tipsStore.handleBlockStreamEvent({ type: 'blocks-added', blocks: [await makeBlock(5)] });
|
|
529
|
-
|
|
561
|
+
// Block 3 has no local block->checkpoint mapping, but the event carries a real checkpoint id.
|
|
562
|
+
const carriedCheckpoint: CheckpointId = { number: CheckpointNumber(1), hash: new Fr(42).toString() };
|
|
563
|
+
await tipsStore.handleBlockStreamEvent({
|
|
564
|
+
type: 'chain-proven',
|
|
565
|
+
block: makeBlockId(3),
|
|
566
|
+
checkpoint: carriedCheckpoint,
|
|
567
|
+
});
|
|
530
568
|
|
|
531
569
|
const tips = await tipsStore.getL2Tips();
|
|
532
570
|
expect(tips.proposed).toEqual(makeTip(5));
|
|
533
571
|
expect(tips.proven.block).toEqual(makeTip(3));
|
|
534
|
-
//
|
|
535
|
-
expect(tips.proven.checkpoint
|
|
572
|
+
// Resolved from the carried id, not the (missing) local mapping.
|
|
573
|
+
expect(tips.proven.checkpoint).toEqual(carriedCheckpoint);
|
|
574
|
+
});
|
|
575
|
+
|
|
576
|
+
// proven/finalized resolve to the carried checkpoint id even when the block has no local
|
|
577
|
+
// block->checkpoint mapping (the cursor legitimately leads the locally-checkpointed frontier).
|
|
578
|
+
it('resolves proven and finalized checkpoints from carried ids without a local mapping', async () => {
|
|
579
|
+
await tipsStore.handleBlockStreamEvent({ type: 'blocks-added', blocks: [await makeBlock(7)] });
|
|
580
|
+
const provenCheckpoint: CheckpointId = { number: CheckpointNumber(2), hash: new Fr(101).toString() };
|
|
581
|
+
const finalizedCheckpoint: CheckpointId = { number: CheckpointNumber(1), hash: new Fr(100).toString() };
|
|
582
|
+
await tipsStore.handleBlockStreamEvent({
|
|
583
|
+
type: 'chain-proven',
|
|
584
|
+
block: makeBlockId(5),
|
|
585
|
+
checkpoint: provenCheckpoint,
|
|
586
|
+
});
|
|
587
|
+
await tipsStore.handleBlockStreamEvent({
|
|
588
|
+
type: 'chain-finalized',
|
|
589
|
+
block: makeBlockId(3),
|
|
590
|
+
checkpoint: finalizedCheckpoint,
|
|
591
|
+
});
|
|
592
|
+
|
|
593
|
+
const tips = await tipsStore.getL2Tips();
|
|
594
|
+
expect(tips.proven.checkpoint).toEqual(provenCheckpoint);
|
|
595
|
+
expect(tips.finalized.checkpoint).toEqual(finalizedCheckpoint);
|
|
596
|
+
});
|
|
597
|
+
|
|
598
|
+
// Genuine corruption: a cursor points at a real (non-genesis) block that has a block hash but
|
|
599
|
+
// neither a stored per-cursor checkpoint id nor a block->checkpoint mapping. getL2Tips must throw
|
|
600
|
+
// loudly rather than silently report checkpoint zero. We reach this state by reaching past the
|
|
601
|
+
// event API to place the tip directly, since the normal writers always record an id.
|
|
602
|
+
it('throws when a cursor points at a real block with neither a stored id nor a mapping', async () => {
|
|
603
|
+
// blocks-added records the block hash for block 5 (so getBlockId succeeds) but no checkpoint id.
|
|
604
|
+
await tipsStore.handleBlockStreamEvent({ type: 'blocks-added', blocks: [await makeBlock(5)] });
|
|
605
|
+
// Corrupt the proven cursor to point at block 5 without any id or mapping.
|
|
606
|
+
const internal = tipsStore as unknown as { setTip(tag: L2BlockTag, blockNumber: BlockNumber): Promise<void> };
|
|
607
|
+
await internal.setTip('proven', BlockNumber(5));
|
|
608
|
+
|
|
609
|
+
await expect(tipsStore.getL2Tips()).rejects.toThrow(/checkpoint/i);
|
|
610
|
+
});
|
|
611
|
+
|
|
612
|
+
// Backward prune of a leading cursor: a checkpoint-bearing cursor that legitimately leads the source's
|
|
613
|
+
// confirmed checkpointed tip is clamped down to that tip, resolving to the id the prune event carries
|
|
614
|
+
// (never genesis, never a throw). This is the skipped-history shape where the cursor sits on a block
|
|
615
|
+
// ahead of the checkpointed frontier.
|
|
616
|
+
it('clamps a leading checkpoint cursor down to the source checkpointed tip carried by the prune event', async () => {
|
|
617
|
+
// Checkpoint blocks 1-5 (checkpointed = block 5 / ckpt 1), then add uncheckpointed blocks 6-10.
|
|
618
|
+
const blocks1to5 = await Promise.all(times(5, i => makeBlock(i + 1)));
|
|
619
|
+
await tipsStore.handleBlockStreamEvent({ type: 'blocks-added', blocks: blocks1to5 });
|
|
620
|
+
const checkpoint1 = await makeCheckpoint(1, blocks1to5);
|
|
621
|
+
await tipsStore.handleBlockStreamEvent(await makeCheckpointedEvent(checkpoint1));
|
|
622
|
+
const blocks6to10 = await Promise.all(times(5, i => makeBlock(i + 6)));
|
|
623
|
+
await tipsStore.handleBlockStreamEvent({ type: 'blocks-added', blocks: blocks6to10 });
|
|
624
|
+
|
|
625
|
+
// Advance the proven cursor onto an uncheckpointed block (8) via a carried id, so it LEADS the
|
|
626
|
+
// source checkpointed tip (block 5) and will be clamped down to it on prune.
|
|
627
|
+
await tipsStore.handleBlockStreamEvent({
|
|
628
|
+
type: 'chain-proven',
|
|
629
|
+
block: makeBlockId(8),
|
|
630
|
+
checkpoint: { number: CheckpointNumber(2), hash: new Fr(202).toString() },
|
|
631
|
+
});
|
|
632
|
+
|
|
633
|
+
// Prune to block 7, carrying the source's confirmed checkpointed and proven tips (both block 5 / ckpt 1
|
|
634
|
+
// here, the source's proven tip having rolled back together with its checkpointed tip).
|
|
635
|
+
await tipsStore.handleBlockStreamEvent({
|
|
636
|
+
type: 'chain-pruned',
|
|
637
|
+
block: makeBlockId(7),
|
|
638
|
+
checkpointed: makeTipId(5),
|
|
639
|
+
proven: makeTipId(5),
|
|
640
|
+
});
|
|
641
|
+
|
|
642
|
+
// Must not throw; the proven cursor is clamped to the carried proven tip, resolving to ckpt 1.
|
|
643
|
+
const tips = await tipsStore.getL2Tips();
|
|
644
|
+
expect(tips.proposed).toEqual(makeTip(7));
|
|
645
|
+
expect(tips.proven.block).toEqual(makeTip(5));
|
|
646
|
+
expect(tips.proven.checkpoint.number).toEqual(CheckpointNumber(1));
|
|
647
|
+
});
|
|
648
|
+
|
|
649
|
+
it('keeps the checkpointed tip when pruning to an uncheckpointed block ahead of it', async () => {
|
|
650
|
+
const blocks1to5 = await Promise.all(times(5, i => makeBlock(i + 1)));
|
|
651
|
+
await tipsStore.handleBlockStreamEvent({ type: 'blocks-added', blocks: blocks1to5 });
|
|
652
|
+
const checkpoint1 = await makeCheckpoint(1, blocks1to5);
|
|
653
|
+
await tipsStore.handleBlockStreamEvent(await makeCheckpointedEvent(checkpoint1)); // checkpointed = block 5 / ckpt 1
|
|
654
|
+
|
|
655
|
+
const blocks6to7 = await Promise.all(times(2, i => makeBlock(i + 6)));
|
|
656
|
+
await tipsStore.handleBlockStreamEvent({ type: 'blocks-added', blocks: blocks6to7 }); // proposed = 7
|
|
657
|
+
|
|
658
|
+
// Prune to block 6: an uncheckpointed block AHEAD of the checkpointed tip (block 5). The source
|
|
659
|
+
// checkpointed tip is still block 5 / ckpt 1, so the checkpointed cursor must not move.
|
|
660
|
+
await tipsStore.handleBlockStreamEvent({
|
|
661
|
+
type: 'chain-pruned',
|
|
662
|
+
block: makeBlockId(6),
|
|
663
|
+
checkpointed: makeTipId(5),
|
|
664
|
+
proven: makeTipId(0),
|
|
665
|
+
});
|
|
666
|
+
|
|
667
|
+
const tips = await tipsStore.getL2Tips();
|
|
668
|
+
expect(tips.proposed).toEqual(makeTip(6));
|
|
669
|
+
expect(tips.checkpointed.block).toEqual(makeTip(5));
|
|
670
|
+
expect(tips.checkpointed.checkpoint.number).toEqual(CheckpointNumber(1)); // must NOT be zero
|
|
671
|
+
});
|
|
672
|
+
|
|
673
|
+
// Per-cursor clamping on prune: when the source rolls back its proven tip below its checkpointed tip
|
|
674
|
+
// (e.g. a proof tx dropped by an L1 reorg), the prune event carries both source tips and each local
|
|
675
|
+
// cursor must clamp to its OWN source tip. Clamping the proven cursor onto the (higher) checkpointed
|
|
676
|
+
// tip would transiently report unproven blocks as proven until the corrective chain-proven event lands.
|
|
677
|
+
it('clamps the proven cursor to the source proven tip, separately from the checkpointed cursor, on prune', async () => {
|
|
678
|
+
// Checkpoint blocks 1-15 across three checkpoints (ckpt 1 = 1-5, ckpt 2 = 6-10, ckpt 3 = 11-15).
|
|
679
|
+
const blocks1to5 = await Promise.all(times(5, i => makeBlock(i + 1)));
|
|
680
|
+
await tipsStore.handleBlockStreamEvent({ type: 'blocks-added', blocks: blocks1to5 });
|
|
681
|
+
await tipsStore.handleBlockStreamEvent(await makeCheckpointedEvent(await makeCheckpoint(1, blocks1to5)));
|
|
682
|
+
const blocks6to10 = await Promise.all(times(5, i => makeBlock(i + 6)));
|
|
683
|
+
await tipsStore.handleBlockStreamEvent({ type: 'blocks-added', blocks: blocks6to10 });
|
|
684
|
+
await tipsStore.handleBlockStreamEvent(await makeCheckpointedEvent(await makeCheckpoint(2, blocks6to10)));
|
|
685
|
+
const blocks11to15 = await Promise.all(times(5, i => makeBlock(i + 11)));
|
|
686
|
+
await tipsStore.handleBlockStreamEvent({ type: 'blocks-added', blocks: blocks11to15 });
|
|
687
|
+
await tipsStore.handleBlockStreamEvent(await makeCheckpointedEvent(await makeCheckpoint(3, blocks11to15)));
|
|
688
|
+
|
|
689
|
+
// Prove the whole chain up to block 15 (ckpt 3), so the local proven cursor leads both source tips below.
|
|
690
|
+
await tipsStore.handleBlockStreamEvent({
|
|
691
|
+
type: 'chain-proven',
|
|
692
|
+
block: makeBlockId(15),
|
|
693
|
+
checkpoint: makeCheckpointIdForBlock(15),
|
|
694
|
+
});
|
|
695
|
+
|
|
696
|
+
let tips = await tipsStore.getL2Tips();
|
|
697
|
+
expect(tips.checkpointed.block).toEqual(makeTip(15));
|
|
698
|
+
expect(tips.proven.block).toEqual(makeTip(15));
|
|
699
|
+
|
|
700
|
+
// Prune arrives with the source's proven tip (block 5 / ckpt 1) BELOW its checkpointed tip (block 10 /
|
|
701
|
+
// ckpt 2) and below the local proven cursor (block 15). Each cursor must clamp to its own source tip.
|
|
702
|
+
await tipsStore.handleBlockStreamEvent({
|
|
703
|
+
type: 'chain-pruned',
|
|
704
|
+
block: makeBlockId(10),
|
|
705
|
+
checkpointed: makeTipId(10),
|
|
706
|
+
proven: makeTipId(5),
|
|
707
|
+
});
|
|
708
|
+
|
|
709
|
+
tips = await tipsStore.getL2Tips();
|
|
710
|
+
// The proven cursor lands exactly on the source proven tip, NOT on the (higher) checkpointed tip.
|
|
711
|
+
expect(tips.proven.block).toEqual(makeTip(5));
|
|
712
|
+
expect(tips.proven.checkpoint.number).toEqual(CheckpointNumber(1));
|
|
713
|
+
// The checkpointed cursor lands on the source checkpointed tip.
|
|
714
|
+
expect(tips.checkpointed.block).toEqual(makeTip(10));
|
|
715
|
+
expect(tips.checkpointed.checkpoint.number).toEqual(CheckpointNumber(2));
|
|
536
716
|
});
|
|
537
717
|
}
|
|
@@ -14,7 +14,7 @@ import type { FieldsOf } from '@aztec/foundation/types';
|
|
|
14
14
|
import { z } from 'zod';
|
|
15
15
|
|
|
16
16
|
import { L2Block } from '../block/l2_block.js';
|
|
17
|
-
import {
|
|
17
|
+
import { MAX_CAPACITY_BLOCKS_PER_CHECKPOINT } from '../deserialization/index.js';
|
|
18
18
|
import { computeCheckpointOutHash } from '../messaging/out_hash.js';
|
|
19
19
|
import { CheckpointHeader } from '../rollup/checkpoint_header.js';
|
|
20
20
|
import { schemas } from '../schemas/schemas.js';
|
|
@@ -68,7 +68,7 @@ export class Checkpoint {
|
|
|
68
68
|
const reader = BufferReader.asReader(buf);
|
|
69
69
|
const archive = reader.readObject(AppendOnlyTreeSnapshot);
|
|
70
70
|
const header = reader.readObject(CheckpointHeader);
|
|
71
|
-
const blocks = reader.readVector(L2Block,
|
|
71
|
+
const blocks = reader.readVector(L2Block, MAX_CAPACITY_BLOCKS_PER_CHECKPOINT);
|
|
72
72
|
const number = CheckpointNumber(reader.readNumber());
|
|
73
73
|
const feeAssetPriceModifier = reader.readInt256();
|
|
74
74
|
return new Checkpoint(archive, header, blocks, number, feeAssetPriceModifier);
|
|
@@ -100,7 +100,16 @@ export class Checkpoint {
|
|
|
100
100
|
* checkpoints up to and including this one in the epoch.
|
|
101
101
|
*/
|
|
102
102
|
public getCheckpointOutHash(): Fr {
|
|
103
|
-
|
|
103
|
+
return Checkpoint.getCheckpointOutHash(this.blocks);
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* Returns the out hash computed from all l2-to-l1 messages in this checkpoint.
|
|
108
|
+
* Note: This value is different from the out hash in the header, which is the **accumulated** out hash over all
|
|
109
|
+
* checkpoints up to and including this one in the epoch.
|
|
110
|
+
*/
|
|
111
|
+
static getCheckpointOutHash(blocks: L2Block[]): Fr {
|
|
112
|
+
const msgs = blocks.map(block => block.body.txEffects.map(txEffect => txEffect.l2ToL1Msgs));
|
|
104
113
|
return computeCheckpointOutHash(msgs);
|
|
105
114
|
}
|
|
106
115
|
|
|
@@ -165,6 +174,7 @@ export class Checkpoint {
|
|
|
165
174
|
let lastArchive = previousArchive;
|
|
166
175
|
for (let i = 0; i < numBlocks; i++) {
|
|
167
176
|
const block = await L2Block.random(BlockNumber(startBlockNumber + i), {
|
|
177
|
+
checkpointNumber,
|
|
168
178
|
indexWithinCheckpoint: IndexWithinCheckpoint(i),
|
|
169
179
|
...options,
|
|
170
180
|
...(lastArchive ? { lastArchive } : {}),
|
|
@@ -14,18 +14,56 @@ import { CheckpointHeader } from '../rollup/checkpoint_header.js';
|
|
|
14
14
|
import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
|
|
15
15
|
import { L1PublishedData } from './published_checkpoint.js';
|
|
16
16
|
|
|
17
|
-
/**
|
|
18
|
-
export type
|
|
17
|
+
/** Base type for checkpoint data */
|
|
18
|
+
export type CommonCheckpointData = {
|
|
19
19
|
checkpointNumber: CheckpointNumber;
|
|
20
20
|
header: CheckpointHeader;
|
|
21
|
-
archive: AppendOnlyTreeSnapshot;
|
|
22
|
-
checkpointOutHash: Fr;
|
|
23
21
|
startBlock: BlockNumber;
|
|
24
22
|
blockCount: number;
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
/** Data stored with checkpoint data after publishing on l1 */
|
|
26
|
+
export type L1EnrichedCheckpointData = {
|
|
25
27
|
attestations: CommitteeAttestation[];
|
|
26
28
|
l1: L1PublishedData;
|
|
27
29
|
};
|
|
28
30
|
|
|
31
|
+
/** Data stored alongside checkpoint data in storage */
|
|
32
|
+
export type StorageEnrichedCheckpointData = {
|
|
33
|
+
archive: AppendOnlyTreeSnapshot;
|
|
34
|
+
checkpointOutHash: Fr;
|
|
35
|
+
/** Fee asset price modifier in basis points. Defaults to 0 (no change) when not explicitly set. */
|
|
36
|
+
feeAssetPriceModifier: bigint;
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
/** Data stored only with proposed checkpoint data */
|
|
40
|
+
export type ProposedOnlyCheckpointData = {
|
|
41
|
+
totalManaUsed: bigint;
|
|
42
|
+
feeAssetPriceModifier: bigint;
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
/** Lightweight checkpoint metadata without full block data. */
|
|
46
|
+
export type CheckpointData = CommonCheckpointData & StorageEnrichedCheckpointData & L1EnrichedCheckpointData;
|
|
47
|
+
|
|
48
|
+
/** Input for setting a proposed checkpoint. The archive and checkpointOutHash are computed
|
|
49
|
+
* internally by the block store from the stored blocks. */
|
|
50
|
+
export type ProposedCheckpointInput = CommonCheckpointData & ProposedOnlyCheckpointData;
|
|
51
|
+
|
|
52
|
+
/** Full data for a proposed checkpoint (proposed but not yet L1-confirmed).
|
|
53
|
+
* Includes fee-relevant fields used during pipelining to compute the fee header override. */
|
|
54
|
+
export type ProposedCheckpointData = ProposedCheckpointInput & StorageEnrichedCheckpointData;
|
|
55
|
+
|
|
56
|
+
export const ProposedCheckpointDataSchema = z.object({
|
|
57
|
+
checkpointNumber: CheckpointNumberSchema,
|
|
58
|
+
header: CheckpointHeader.schema,
|
|
59
|
+
archive: AppendOnlyTreeSnapshot.schema,
|
|
60
|
+
checkpointOutHash: schemas.Fr,
|
|
61
|
+
startBlock: BlockNumberSchema,
|
|
62
|
+
blockCount: z.number(),
|
|
63
|
+
totalManaUsed: schemas.BigInt,
|
|
64
|
+
feeAssetPriceModifier: schemas.BigInt,
|
|
65
|
+
});
|
|
66
|
+
|
|
29
67
|
export const CheckpointDataSchema = z
|
|
30
68
|
.object({
|
|
31
69
|
checkpointNumber: CheckpointNumberSchema,
|
|
@@ -34,6 +72,7 @@ export const CheckpointDataSchema = z
|
|
|
34
72
|
checkpointOutHash: schemas.Fr,
|
|
35
73
|
startBlock: BlockNumberSchema,
|
|
36
74
|
blockCount: schemas.Integer,
|
|
75
|
+
feeAssetPriceModifier: schemas.BigInt,
|
|
37
76
|
attestations: z.array(CommitteeAttestation.schema),
|
|
38
77
|
l1: L1PublishedData.schema,
|
|
39
78
|
})
|
|
@@ -45,6 +84,7 @@ export const CheckpointDataSchema = z
|
|
|
45
84
|
checkpointOutHash: obj.checkpointOutHash,
|
|
46
85
|
startBlock: obj.startBlock,
|
|
47
86
|
blockCount: obj.blockCount,
|
|
87
|
+
feeAssetPriceModifier: obj.feeAssetPriceModifier,
|
|
48
88
|
attestations: obj.attestations,
|
|
49
89
|
l1: obj.l1,
|
|
50
90
|
}),
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
import type { CheckpointNumber, SlotNumber } from '@aztec/foundation/branded-types';
|
|
2
|
+
import type { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Outcome of attempting to re-execute a checkpoint proposal locally.
|
|
6
|
+
*
|
|
7
|
+
* - `valid` — re-execution succeeded and the computed checkpoint matched the proposal.
|
|
8
|
+
* - `invalid` — the proposal disagreed with the computed checkpoint, or violated a deterministic
|
|
9
|
+
* constraint (limits, signatures, etc).
|
|
10
|
+
* - `unvalidated` — the local node could not complete validation for non-deterministic reasons
|
|
11
|
+
* (missing blocks/txs, timeouts, infra errors). Treated as proposer-fault for
|
|
12
|
+
* slashing but surfaced separately for telemetry.
|
|
13
|
+
*/
|
|
14
|
+
export type ReexecutionOutcome = 'valid' | 'invalid' | 'unvalidated';
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Tracks two pieces of per-slot state collected during proposal handling:
|
|
18
|
+
*
|
|
19
|
+
* 1. Whether each block proposal's transactions were successfully collected locally
|
|
20
|
+
* (keyed by `slot` + `indexWithinCheckpoint`). Consumed by the data-withholding watcher.
|
|
21
|
+
* 2. The outcome of locally re-executing each checkpoint proposal (keyed by
|
|
22
|
+
* `(checkpointNumber, archiveRoot)` and by `slot`). Consumed by the data-withholding
|
|
23
|
+
* watcher (via `hasReexecuted`) and the sentinel (via `getOutcomeForSlot`).
|
|
24
|
+
*
|
|
25
|
+
* Both pieces of state live on the same per-slot `Entry`, so cleanup via `removeBefore`
|
|
26
|
+
* naturally drops everything for a pruned slot in one step.
|
|
27
|
+
*/
|
|
28
|
+
interface Entry {
|
|
29
|
+
// Set by recordOutcome — these may be undefined until the checkpoint proposal has been
|
|
30
|
+
// evaluated. recordTxsCollected may create an Entry before any of them are known.
|
|
31
|
+
checkpointNumber: CheckpointNumber | undefined;
|
|
32
|
+
archiveRoot: string | undefined;
|
|
33
|
+
outcome: ReexecutionOutcome | undefined;
|
|
34
|
+
|
|
35
|
+
slot: SlotNumber;
|
|
36
|
+
|
|
37
|
+
// Per block-proposal at this slot: indexWithinCheckpoint → true (collected) | false (failed to collect).
|
|
38
|
+
txsCollected: Map<number, boolean>;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
export class CheckpointReexecutionTracker {
|
|
42
|
+
private readonly byCheckpoint = new Map<CheckpointNumber, Map<string, Entry>>();
|
|
43
|
+
private readonly bySlot = new Map<SlotNumber, Entry>();
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Record the outcome of evaluating a checkpoint proposal.
|
|
47
|
+
* @param slot - Slot the proposal was for. Always required.
|
|
48
|
+
* @param archiveRoot - Archive root in the proposal.
|
|
49
|
+
* @param outcome - Outcome of evaluation.
|
|
50
|
+
* @param checkpointNumber - Checkpoint number, if known. Required for `valid` outcomes; optional
|
|
51
|
+
* for `invalid`/`unvalidated` because some early rejections fire before blocks are loaded.
|
|
52
|
+
*/
|
|
53
|
+
public recordOutcome(
|
|
54
|
+
slot: SlotNumber,
|
|
55
|
+
archiveRoot: Fr,
|
|
56
|
+
outcome: ReexecutionOutcome,
|
|
57
|
+
checkpointNumber?: CheckpointNumber,
|
|
58
|
+
): void {
|
|
59
|
+
const archiveRootStr = archiveRoot.toString();
|
|
60
|
+
|
|
61
|
+
// Preserve any per-block txsCollected already accumulated for this slot.
|
|
62
|
+
const existing = this.bySlot.get(slot);
|
|
63
|
+
const entry: Entry = {
|
|
64
|
+
checkpointNumber,
|
|
65
|
+
archiveRoot: archiveRootStr,
|
|
66
|
+
slot,
|
|
67
|
+
outcome,
|
|
68
|
+
txsCollected: existing?.txsCollected ?? new Map(),
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
if (checkpointNumber !== undefined) {
|
|
72
|
+
let archives = this.byCheckpoint.get(checkpointNumber);
|
|
73
|
+
if (!archives) {
|
|
74
|
+
archives = new Map();
|
|
75
|
+
this.byCheckpoint.set(checkpointNumber, archives);
|
|
76
|
+
}
|
|
77
|
+
archives.set(archiveRootStr, entry);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
this.bySlot.set(slot, entry);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* Record whether the local node successfully collected the transactions for a block proposal.
|
|
85
|
+
* Called from the validator's proposal handler immediately after tx collection completes
|
|
86
|
+
* (regardless of whether re-execution will subsequently succeed). The data-withholding
|
|
87
|
+
* watcher consults these records as an authoritative signal: tx availability now is too
|
|
88
|
+
* weak (txs may have been evicted from the mempool by the time the watcher runs), but a
|
|
89
|
+
* record that the txs *were* available at proposal time still vouches for the proposer.
|
|
90
|
+
*
|
|
91
|
+
* @param slot - Slot the block proposal was for.
|
|
92
|
+
* @param indexWithinCheckpoint - Index of the block within its enclosing checkpoint.
|
|
93
|
+
* @param collected - True if every tx in the proposal was collected locally before deadline.
|
|
94
|
+
*/
|
|
95
|
+
public recordTxsCollected(slot: SlotNumber, indexWithinCheckpoint: number, collected: boolean): void {
|
|
96
|
+
let entry = this.bySlot.get(slot);
|
|
97
|
+
if (!entry) {
|
|
98
|
+
entry = {
|
|
99
|
+
checkpointNumber: undefined,
|
|
100
|
+
archiveRoot: undefined,
|
|
101
|
+
slot,
|
|
102
|
+
outcome: undefined,
|
|
103
|
+
txsCollected: new Map(),
|
|
104
|
+
};
|
|
105
|
+
this.bySlot.set(slot, entry);
|
|
106
|
+
}
|
|
107
|
+
entry.txsCollected.set(indexWithinCheckpoint, collected);
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* Returns true if the given (checkpoint number, archive root) has been successfully
|
|
112
|
+
* re-executed locally (outcome `valid`).
|
|
113
|
+
*/
|
|
114
|
+
public hasReexecuted(checkpointNumber: CheckpointNumber, archiveRoot: Fr): boolean {
|
|
115
|
+
return this.byCheckpoint.get(checkpointNumber)?.get(archiveRoot.toString())?.outcome === 'valid';
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
/** Returns the recorded outcome for a given slot, or undefined if no proposal was evaluated. */
|
|
119
|
+
public getOutcomeForSlot(slot: SlotNumber): ReexecutionOutcome | undefined {
|
|
120
|
+
return this.bySlot.get(slot)?.outcome;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* Returns the recorded tx-collection result for a block proposal at the given slot and
|
|
125
|
+
* `indexWithinCheckpoint`, or `undefined` if no record exists.
|
|
126
|
+
*
|
|
127
|
+
* Three-valued by design:
|
|
128
|
+
* - `true` — we collected every tx for this block proposal before the deadline.
|
|
129
|
+
* - `false` — we tried and failed (missing txs at the deadline).
|
|
130
|
+
* - `undefined` — no record (e.g. we never saw the block proposal). Callers should fall
|
|
131
|
+
* back to a current-state check (e.g. mempool probe) for this case.
|
|
132
|
+
*/
|
|
133
|
+
public getTxsCollectedRecord(slot: SlotNumber, indexWithinCheckpoint: number): boolean | undefined {
|
|
134
|
+
return this.bySlot.get(slot)?.txsCollected.get(indexWithinCheckpoint);
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
/** Drops entries for checkpoints with `number < checkpointNumber`. */
|
|
138
|
+
public removeBefore(checkpointNumber: CheckpointNumber): void {
|
|
139
|
+
// Track the highest slot among checkpoints we're pruning. Once we know it, any slot
|
|
140
|
+
// strictly below that watermark is older than the most recently pruned checkpoint and
|
|
141
|
+
// can be dropped from `bySlot` too — including slot-only entries (no checkpoint number)
|
|
142
|
+
// which would otherwise leak, because removing by checkpoint number can't reach them.
|
|
143
|
+
let maxRemovedSlot: SlotNumber | undefined;
|
|
144
|
+
for (const [n, archives] of this.byCheckpoint) {
|
|
145
|
+
if (n < checkpointNumber) {
|
|
146
|
+
for (const entry of archives.values()) {
|
|
147
|
+
// Only drop the slot index if it still points at the entry we're removing.
|
|
148
|
+
if (this.bySlot.get(entry.slot) === entry) {
|
|
149
|
+
this.bySlot.delete(entry.slot);
|
|
150
|
+
}
|
|
151
|
+
if (maxRemovedSlot === undefined || entry.slot > maxRemovedSlot) {
|
|
152
|
+
maxRemovedSlot = entry.slot;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
this.byCheckpoint.delete(n);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
if (maxRemovedSlot !== undefined) {
|
|
160
|
+
for (const slot of [...this.bySlot.keys()]) {
|
|
161
|
+
if (slot < maxRemovedSlot) {
|
|
162
|
+
this.bySlot.delete(slot);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { Buffer32 } from '@aztec/foundation/buffer';
|
|
2
|
+
import type { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
|
+
|
|
4
|
+
import { ConsensusPayload } from '../p2p/consensus_payload.js';
|
|
5
|
+
import { type CoordinationSignatureContext, getHashedSignaturePayloadTypedData } from '../p2p/signature_utils.js';
|
|
6
|
+
import { CheckpointHeader } from '../rollup/checkpoint_header.js';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Computes the EIP-712 payload digest for a checkpoint proposal — the digest validators sign
|
|
10
|
+
* and the L1 contract verifies during `propose()`. Mirrors `ProposeLib.digest(ProposePayload)` on L1.
|
|
11
|
+
*
|
|
12
|
+
* The result is the same `bytes32` that gets stored in `tempCheckpointLogs[checkpointNumber].payloadDigest`,
|
|
13
|
+
* so this helper is also reused when constructing simulation state overrides for pipelined proposals.
|
|
14
|
+
*/
|
|
15
|
+
export function computeCheckpointPayloadDigest(args: {
|
|
16
|
+
header: CheckpointHeader;
|
|
17
|
+
archiveRoot: Fr;
|
|
18
|
+
feeAssetPriceModifier: bigint;
|
|
19
|
+
signatureContext: CoordinationSignatureContext;
|
|
20
|
+
}): Buffer32 {
|
|
21
|
+
const consensusPayload = new ConsensusPayload(
|
|
22
|
+
args.header,
|
|
23
|
+
args.archiveRoot,
|
|
24
|
+
args.feeAssetPriceModifier,
|
|
25
|
+
args.signatureContext,
|
|
26
|
+
);
|
|
27
|
+
return getHashedSignaturePayloadTypedData(consensusPayload);
|
|
28
|
+
}
|
package/src/checkpoint/index.ts
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
export * from './checkpoint.js';
|
|
2
2
|
export * from './checkpoint_data.js';
|
|
3
3
|
export * from './checkpoint_info.js';
|
|
4
|
+
export * from './checkpoint_reexecution_tracker.js';
|
|
5
|
+
export * from './digest.js';
|
|
6
|
+
export * from './previous_checkpoint_out_hashes.js';
|
|
4
7
|
export * from './published_checkpoint.js';
|
|
5
8
|
export * from './validate.js';
|