@aztec/stdlib 5.0.0-private.20260318 → 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 +11 -8
- 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 -1
- package/dest/config/index.d.ts.map +1 -1
- package/dest/config/index.js +1 -0
- 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 +6 -6
- package/dest/contract/contract_address.d.ts.map +1 -1
- package/dest/contract/contract_address.js +6 -5
- package/dest/contract/contract_class_id.d.ts +2 -2
- package/dest/contract/contract_class_id.js +2 -2
- 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 +34 -1
- package/dest/hash/hash.d.ts.map +1 -1
- package/dest/hash/hash.js +63 -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 -308
- 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 +30 -7
- package/dest/interfaces/block-builder.d.ts.map +1 -1
- package/dest/interfaces/block-builder.js +1 -4
- 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 -139
- package/dest/interfaces/configs.d.ts.map +1 -1
- package/dest/interfaces/configs.js +13 -3
- 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 +5 -3
- 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 -49
- 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 +18 -8
- package/src/config/chain-config.ts +13 -16
- package/src/config/index.ts +1 -0
- 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 +7 -7
- package/src/contract/contract_class_id.ts +2 -2
- 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 +63 -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 +31 -9
- 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 +63 -11
- 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 +4 -2
- 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 +126 -68
- 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/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 -49
- package/dest/logs/tx_scoped_l2_log.d.ts.map +0 -1
- package/dest/logs/tx_scoped_l2_log.js +0 -70
- 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/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 -98
- package/src/slashing/empire.ts +0 -104
|
@@ -5,116 +5,93 @@ import { CommitteeAttestation } from '../block/proposal/committee_attestation.js
|
|
|
5
5
|
import { CheckpointHeader } from '../rollup/checkpoint_header.js';
|
|
6
6
|
import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
|
|
7
7
|
import { L1PublishedData } from './published_checkpoint.js';
|
|
8
|
-
/**
|
|
9
|
-
export type
|
|
8
|
+
/** Base type for checkpoint data */
|
|
9
|
+
export type CommonCheckpointData = {
|
|
10
10
|
checkpointNumber: CheckpointNumber;
|
|
11
11
|
header: CheckpointHeader;
|
|
12
|
-
archive: AppendOnlyTreeSnapshot;
|
|
13
|
-
checkpointOutHash: Fr;
|
|
14
12
|
startBlock: BlockNumber;
|
|
15
13
|
blockCount: number;
|
|
14
|
+
};
|
|
15
|
+
/** Data stored with checkpoint data after publishing on l1 */
|
|
16
|
+
export type L1EnrichedCheckpointData = {
|
|
16
17
|
attestations: CommitteeAttestation[];
|
|
17
18
|
l1: L1PublishedData;
|
|
18
19
|
};
|
|
19
|
-
|
|
20
|
-
|
|
20
|
+
/** Data stored alongside checkpoint data in storage */
|
|
21
|
+
export type StorageEnrichedCheckpointData = {
|
|
22
|
+
archive: AppendOnlyTreeSnapshot;
|
|
23
|
+
checkpointOutHash: Fr;
|
|
24
|
+
/** Fee asset price modifier in basis points. Defaults to 0 (no change) when not explicitly set. */
|
|
25
|
+
feeAssetPriceModifier: bigint;
|
|
26
|
+
};
|
|
27
|
+
/** Data stored only with proposed checkpoint data */
|
|
28
|
+
export type ProposedOnlyCheckpointData = {
|
|
29
|
+
totalManaUsed: bigint;
|
|
30
|
+
feeAssetPriceModifier: bigint;
|
|
31
|
+
};
|
|
32
|
+
/** Lightweight checkpoint metadata without full block data. */
|
|
33
|
+
export type CheckpointData = CommonCheckpointData & StorageEnrichedCheckpointData & L1EnrichedCheckpointData;
|
|
34
|
+
/** Input for setting a proposed checkpoint. The archive and checkpointOutHash are computed
|
|
35
|
+
* internally by the block store from the stored blocks. */
|
|
36
|
+
export type ProposedCheckpointInput = CommonCheckpointData & ProposedOnlyCheckpointData;
|
|
37
|
+
/** Full data for a proposed checkpoint (proposed but not yet L1-confirmed).
|
|
38
|
+
* Includes fee-relevant fields used during pipelining to compute the fee header override. */
|
|
39
|
+
export type ProposedCheckpointData = ProposedCheckpointInput & StorageEnrichedCheckpointData;
|
|
40
|
+
export declare const ProposedCheckpointDataSchema: z.ZodObject<{
|
|
41
|
+
checkpointNumber: z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodNumber, z.ZodBigInt, z.ZodString]>, z.ZodCoercedNumber<string | number | bigint>>, z.ZodTransform<CheckpointNumber, number>>;
|
|
21
42
|
header: import("@aztec/foundation/schemas").ZodFor<CheckpointHeader>;
|
|
22
|
-
archive: z.
|
|
23
|
-
root: z.ZodType<Fr,
|
|
24
|
-
nextAvailableLeafIndex: z.
|
|
25
|
-
},
|
|
43
|
+
archive: z.ZodPipe<z.ZodObject<{
|
|
44
|
+
root: z.ZodType<Fr, string, z.core.$ZodTypeInternals<Fr, string>>;
|
|
45
|
+
nextAvailableLeafIndex: z.ZodPipe<z.ZodUnion<readonly [z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodCoercedNumber<string | number | bigint>>;
|
|
46
|
+
}, z.core.$strip>, z.ZodTransform<AppendOnlyTreeSnapshot, {
|
|
26
47
|
root: Fr;
|
|
27
48
|
nextAvailableLeafIndex: number;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
},
|
|
49
|
+
}>>;
|
|
50
|
+
checkpointOutHash: z.ZodType<Fr, string, z.core.$ZodTypeInternals<Fr, string>>;
|
|
51
|
+
startBlock: z.ZodPipe<z.ZodUnion<readonly [z.ZodNumber, z.ZodPipe<z.ZodBigInt, z.ZodTransform<number, bigint>>, z.ZodPipe<z.ZodString, z.ZodTransform<number, string>>]>, z.ZodTransform<BlockNumber, number>>;
|
|
52
|
+
blockCount: z.ZodNumber;
|
|
53
|
+
totalManaUsed: z.ZodPipe<z.ZodUnion<readonly [z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodCoercedBigInt<string | number | bigint>>;
|
|
54
|
+
feeAssetPriceModifier: z.ZodPipe<z.ZodUnion<readonly [z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodCoercedBigInt<string | number | bigint>>;
|
|
55
|
+
}, z.core.$strip>;
|
|
56
|
+
export declare const CheckpointDataSchema: z.ZodPipe<z.ZodObject<{
|
|
57
|
+
checkpointNumber: z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodNumber, z.ZodBigInt, z.ZodString]>, z.ZodCoercedNumber<string | number | bigint>>, z.ZodTransform<CheckpointNumber, number>>;
|
|
58
|
+
header: import("@aztec/foundation/schemas").ZodFor<CheckpointHeader>;
|
|
59
|
+
archive: z.ZodPipe<z.ZodObject<{
|
|
60
|
+
root: z.ZodType<Fr, string, z.core.$ZodTypeInternals<Fr, string>>;
|
|
61
|
+
nextAvailableLeafIndex: z.ZodPipe<z.ZodUnion<readonly [z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodCoercedNumber<string | number | bigint>>;
|
|
62
|
+
}, z.core.$strip>, z.ZodTransform<AppendOnlyTreeSnapshot, {
|
|
63
|
+
root: Fr;
|
|
64
|
+
nextAvailableLeafIndex: number;
|
|
65
|
+
}>>;
|
|
66
|
+
checkpointOutHash: z.ZodType<Fr, string, z.core.$ZodTypeInternals<Fr, string>>;
|
|
67
|
+
startBlock: z.ZodPipe<z.ZodUnion<readonly [z.ZodNumber, z.ZodPipe<z.ZodBigInt, z.ZodTransform<number, bigint>>, z.ZodPipe<z.ZodString, z.ZodTransform<number, string>>]>, z.ZodTransform<BlockNumber, number>>;
|
|
68
|
+
blockCount: z.ZodPipe<z.ZodUnion<readonly [z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodCoercedNumber<string | number | bigint>>;
|
|
69
|
+
feeAssetPriceModifier: z.ZodPipe<z.ZodUnion<readonly [z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodCoercedBigInt<string | number | bigint>>;
|
|
70
|
+
attestations: z.ZodArray<z.ZodPipe<z.ZodObject<{
|
|
71
|
+
address: z.ZodType<import("@aztec/foundation/eth-address").EthAddress, string, z.core.$ZodTypeInternals<import("@aztec/foundation/eth-address").EthAddress, string>>;
|
|
72
|
+
signature: z.ZodPipe<z.ZodString & z.ZodType<`0x${string}`, string, z.core.$ZodTypeInternals<`0x${string}`, string>>, z.ZodTransform<import("../block/proposal/committee_attestation.js").Signature, `0x${string}`>>;
|
|
73
|
+
}, z.core.$strip>, z.ZodTransform<CommitteeAttestation, {
|
|
42
74
|
address: import("@aztec/foundation/eth-address").EthAddress;
|
|
43
75
|
signature: import("../block/proposal/committee_attestation.js").Signature;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
address: string;
|
|
49
|
-
signature: string;
|
|
50
|
-
}>, "many">;
|
|
51
|
-
l1: z.ZodEffects<z.ZodObject<{
|
|
52
|
-
blockNumber: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodBigInt>;
|
|
53
|
-
timestamp: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodBigInt>;
|
|
76
|
+
}>>>;
|
|
77
|
+
l1: z.ZodPipe<z.ZodObject<{
|
|
78
|
+
blockNumber: z.ZodPipe<z.ZodUnion<readonly [z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodCoercedBigInt<string | number | bigint>>;
|
|
79
|
+
timestamp: z.ZodPipe<z.ZodUnion<readonly [z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodCoercedBigInt<string | number | bigint>>;
|
|
54
80
|
blockHash: z.ZodString;
|
|
55
|
-
},
|
|
81
|
+
}, z.core.$strip>, z.ZodTransform<L1PublishedData, {
|
|
56
82
|
blockNumber: bigint;
|
|
57
83
|
timestamp: bigint;
|
|
58
84
|
blockHash: string;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
blockHash: string;
|
|
63
|
-
}>, L1PublishedData, {
|
|
64
|
-
blockNumber: string | number | bigint;
|
|
65
|
-
timestamp: string | number | bigint;
|
|
66
|
-
blockHash: string;
|
|
67
|
-
}>;
|
|
68
|
-
}, "strip", z.ZodTypeAny, {
|
|
69
|
-
checkpointNumber: number & {
|
|
70
|
-
_branding: "CheckpointNumber";
|
|
71
|
-
};
|
|
85
|
+
}>>;
|
|
86
|
+
}, z.core.$strip>, z.ZodTransform<CheckpointData, {
|
|
87
|
+
checkpointNumber: CheckpointNumber;
|
|
72
88
|
header: CheckpointHeader;
|
|
73
89
|
archive: AppendOnlyTreeSnapshot;
|
|
74
90
|
checkpointOutHash: Fr;
|
|
75
|
-
startBlock:
|
|
76
|
-
_branding: "BlockNumber";
|
|
77
|
-
};
|
|
91
|
+
startBlock: BlockNumber;
|
|
78
92
|
blockCount: number;
|
|
93
|
+
feeAssetPriceModifier: bigint;
|
|
79
94
|
attestations: CommitteeAttestation[];
|
|
80
95
|
l1: L1PublishedData;
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
header?: any;
|
|
84
|
-
archive: {
|
|
85
|
-
root: string;
|
|
86
|
-
nextAvailableLeafIndex: string | number | bigint;
|
|
87
|
-
};
|
|
88
|
-
checkpointOutHash: string;
|
|
89
|
-
startBlock: string | number | bigint;
|
|
90
|
-
blockCount: string | number | bigint;
|
|
91
|
-
attestations: {
|
|
92
|
-
address: string;
|
|
93
|
-
signature: string;
|
|
94
|
-
}[];
|
|
95
|
-
l1: {
|
|
96
|
-
blockNumber: string | number | bigint;
|
|
97
|
-
timestamp: string | number | bigint;
|
|
98
|
-
blockHash: string;
|
|
99
|
-
};
|
|
100
|
-
}>, CheckpointData, {
|
|
101
|
-
checkpointNumber: string | number | bigint;
|
|
102
|
-
header?: any;
|
|
103
|
-
archive: {
|
|
104
|
-
root: string;
|
|
105
|
-
nextAvailableLeafIndex: string | number | bigint;
|
|
106
|
-
};
|
|
107
|
-
checkpointOutHash: string;
|
|
108
|
-
startBlock: string | number | bigint;
|
|
109
|
-
blockCount: string | number | bigint;
|
|
110
|
-
attestations: {
|
|
111
|
-
address: string;
|
|
112
|
-
signature: string;
|
|
113
|
-
}[];
|
|
114
|
-
l1: {
|
|
115
|
-
blockNumber: string | number | bigint;
|
|
116
|
-
timestamp: string | number | bigint;
|
|
117
|
-
blockHash: string;
|
|
118
|
-
};
|
|
119
|
-
}>;
|
|
120
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2twb2ludF9kYXRhLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2hlY2twb2ludC9jaGVja3BvaW50X2RhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFdBQVcsRUFFWCxnQkFBZ0IsRUFFakIsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6QyxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFHcEQsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUV4QixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNsRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFNUQsK0RBQStEO0FBQy9ELE1BQU0sTUFBTSxjQUFjLEdBQUc7SUFDM0IsZ0JBQWdCLEVBQUUsZ0JBQWdCLENBQUM7SUFDbkMsTUFBTSxFQUFFLGdCQUFnQixDQUFDO0lBQ3pCLE9BQU8sRUFBRSxzQkFBc0IsQ0FBQztJQUNoQyxpQkFBaUIsRUFBRSxFQUFFLENBQUM7SUFDdEIsVUFBVSxFQUFFLFdBQVcsQ0FBQztJQUN4QixVQUFVLEVBQUUsTUFBTSxDQUFDO0lBQ25CLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxDQUFDO0lBQ3JDLEVBQUUsRUFBRSxlQUFlLENBQUM7Q0FDckIsQ0FBQztBQUVGLGVBQU8sTUFBTSxvQkFBb0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFzQjlCLENBQUMifQ==
|
|
96
|
+
}>>;
|
|
97
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2twb2ludF9kYXRhLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2hlY2twb2ludC9jaGVja3BvaW50X2RhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFdBQVcsRUFFWCxnQkFBZ0IsRUFFakIsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6QyxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFHcEQsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUV4QixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNsRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFNUQsb0NBQW9DO0FBQ3BDLE1BQU0sTUFBTSxvQkFBb0IsR0FBRztJQUNqQyxnQkFBZ0IsRUFBRSxnQkFBZ0IsQ0FBQztJQUNuQyxNQUFNLEVBQUUsZ0JBQWdCLENBQUM7SUFDekIsVUFBVSxFQUFFLFdBQVcsQ0FBQztJQUN4QixVQUFVLEVBQUUsTUFBTSxDQUFDO0NBQ3BCLENBQUM7QUFFRiw4REFBOEQ7QUFDOUQsTUFBTSxNQUFNLHdCQUF3QixHQUFHO0lBQ3JDLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxDQUFDO0lBQ3JDLEVBQUUsRUFBRSxlQUFlLENBQUM7Q0FDckIsQ0FBQztBQUVGLHVEQUF1RDtBQUN2RCxNQUFNLE1BQU0sNkJBQTZCLEdBQUc7SUFDMUMsT0FBTyxFQUFFLHNCQUFzQixDQUFDO0lBQ2hDLGlCQUFpQixFQUFFLEVBQUUsQ0FBQztJQUN0QixtR0FBbUc7SUFDbkcscUJBQXFCLEVBQUUsTUFBTSxDQUFDO0NBQy9CLENBQUM7QUFFRixzREFBc0Q7QUFDdEQsTUFBTSxNQUFNLDBCQUEwQixHQUFHO0lBQ3ZDLGFBQWEsRUFBRSxNQUFNLENBQUM7SUFDdEIscUJBQXFCLEVBQUUsTUFBTSxDQUFDO0NBQy9CLENBQUM7QUFFRiwrREFBK0Q7QUFDL0QsTUFBTSxNQUFNLGNBQWMsR0FBRyxvQkFBb0IsR0FBRyw2QkFBNkIsR0FBRyx3QkFBd0IsQ0FBQztBQUU3Rzs0REFDNEQ7QUFDNUQsTUFBTSxNQUFNLHVCQUF1QixHQUFHLG9CQUFvQixHQUFHLDBCQUEwQixDQUFDO0FBRXhGOzhGQUM4RjtBQUM5RixNQUFNLE1BQU0sc0JBQXNCLEdBQUcsdUJBQXVCLEdBQUcsNkJBQTZCLENBQUM7QUFFN0YsZUFBTyxNQUFNLDRCQUE0Qjs7Ozs7Ozs7Ozs7Ozs7O2lCQVN2QyxDQUFDO0FBRUgsZUFBTyxNQUFNLG9CQUFvQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXdCOUIsQ0FBQyJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkpoint_data.d.ts","sourceRoot":"","sources":["../../src/checkpoint/checkpoint_data.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EAEX,gBAAgB,EAEjB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAGpD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAClF,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE5D
|
|
1
|
+
{"version":3,"file":"checkpoint_data.d.ts","sourceRoot":"","sources":["../../src/checkpoint/checkpoint_data.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EAEX,gBAAgB,EAEjB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAGpD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAClF,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE5D,oCAAoC;AACpC,MAAM,MAAM,oBAAoB,GAAG;IACjC,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,MAAM,EAAE,gBAAgB,CAAC;IACzB,UAAU,EAAE,WAAW,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,8DAA8D;AAC9D,MAAM,MAAM,wBAAwB,GAAG;IACrC,YAAY,EAAE,oBAAoB,EAAE,CAAC;IACrC,EAAE,EAAE,eAAe,CAAC;CACrB,CAAC;AAEF,uDAAuD;AACvD,MAAM,MAAM,6BAA6B,GAAG;IAC1C,OAAO,EAAE,sBAAsB,CAAC;IAChC,iBAAiB,EAAE,EAAE,CAAC;IACtB,mGAAmG;IACnG,qBAAqB,EAAE,MAAM,CAAC;CAC/B,CAAC;AAEF,sDAAsD;AACtD,MAAM,MAAM,0BAA0B,GAAG;IACvC,aAAa,EAAE,MAAM,CAAC;IACtB,qBAAqB,EAAE,MAAM,CAAC;CAC/B,CAAC;AAEF,+DAA+D;AAC/D,MAAM,MAAM,cAAc,GAAG,oBAAoB,GAAG,6BAA6B,GAAG,wBAAwB,CAAC;AAE7G;4DAC4D;AAC5D,MAAM,MAAM,uBAAuB,GAAG,oBAAoB,GAAG,0BAA0B,CAAC;AAExF;8FAC8F;AAC9F,MAAM,MAAM,sBAAsB,GAAG,uBAAuB,GAAG,6BAA6B,CAAC;AAE7F,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;iBASvC,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwB9B,CAAC"}
|
|
@@ -5,6 +5,16 @@ import { CommitteeAttestation } from '../block/proposal/committee_attestation.js
|
|
|
5
5
|
import { CheckpointHeader } from '../rollup/checkpoint_header.js';
|
|
6
6
|
import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
|
|
7
7
|
import { L1PublishedData } from './published_checkpoint.js';
|
|
8
|
+
export const ProposedCheckpointDataSchema = z.object({
|
|
9
|
+
checkpointNumber: CheckpointNumberSchema,
|
|
10
|
+
header: CheckpointHeader.schema,
|
|
11
|
+
archive: AppendOnlyTreeSnapshot.schema,
|
|
12
|
+
checkpointOutHash: schemas.Fr,
|
|
13
|
+
startBlock: BlockNumberSchema,
|
|
14
|
+
blockCount: z.number(),
|
|
15
|
+
totalManaUsed: schemas.BigInt,
|
|
16
|
+
feeAssetPriceModifier: schemas.BigInt
|
|
17
|
+
});
|
|
8
18
|
export const CheckpointDataSchema = z.object({
|
|
9
19
|
checkpointNumber: CheckpointNumberSchema,
|
|
10
20
|
header: CheckpointHeader.schema,
|
|
@@ -12,6 +22,7 @@ export const CheckpointDataSchema = z.object({
|
|
|
12
22
|
checkpointOutHash: schemas.Fr,
|
|
13
23
|
startBlock: BlockNumberSchema,
|
|
14
24
|
blockCount: schemas.Integer,
|
|
25
|
+
feeAssetPriceModifier: schemas.BigInt,
|
|
15
26
|
attestations: z.array(CommitteeAttestation.schema),
|
|
16
27
|
l1: L1PublishedData.schema
|
|
17
28
|
}).transform((obj)=>({
|
|
@@ -21,6 +32,7 @@ export const CheckpointDataSchema = z.object({
|
|
|
21
32
|
checkpointOutHash: obj.checkpointOutHash,
|
|
22
33
|
startBlock: obj.startBlock,
|
|
23
34
|
blockCount: obj.blockCount,
|
|
35
|
+
feeAssetPriceModifier: obj.feeAssetPriceModifier,
|
|
24
36
|
attestations: obj.attestations,
|
|
25
37
|
l1: obj.l1
|
|
26
38
|
}));
|
|
@@ -11,28 +11,12 @@ export type CheckpointInfo = {
|
|
|
11
11
|
};
|
|
12
12
|
export declare function randomCheckpointInfo(checkpointNumber?: CheckpointNumber | number): CheckpointInfo;
|
|
13
13
|
export declare const CheckpointInfoSchema: z.ZodObject<{
|
|
14
|
-
archive: z.ZodType<Fr,
|
|
15
|
-
lastArchive: z.ZodType<Fr,
|
|
16
|
-
slotNumber: z.
|
|
17
|
-
checkpointNumber: z.
|
|
18
|
-
timestamp: z.
|
|
19
|
-
},
|
|
20
|
-
archive: Fr;
|
|
21
|
-
lastArchive: Fr;
|
|
22
|
-
slotNumber: number & {
|
|
23
|
-
_branding: "SlotNumber";
|
|
24
|
-
};
|
|
25
|
-
checkpointNumber: number & {
|
|
26
|
-
_branding: "CheckpointNumber";
|
|
27
|
-
};
|
|
28
|
-
timestamp: bigint;
|
|
29
|
-
}, {
|
|
30
|
-
archive: string;
|
|
31
|
-
lastArchive: string;
|
|
32
|
-
slotNumber: string | number | bigint;
|
|
33
|
-
checkpointNumber: string | number | bigint;
|
|
34
|
-
timestamp: string | number | bigint;
|
|
35
|
-
}>;
|
|
14
|
+
archive: z.ZodType<Fr, string, z.core.$ZodTypeInternals<Fr, string>>;
|
|
15
|
+
lastArchive: z.ZodType<Fr, string, z.core.$ZodTypeInternals<Fr, string>>;
|
|
16
|
+
slotNumber: z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodNumber, z.ZodBigInt, z.ZodString]>, z.ZodCoercedNumber<string | number | bigint>>, z.ZodTransform<SlotNumber, number>>;
|
|
17
|
+
checkpointNumber: z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodNumber, z.ZodBigInt, z.ZodString]>, z.ZodCoercedNumber<string | number | bigint>>, z.ZodTransform<CheckpointNumber, number>>;
|
|
18
|
+
timestamp: z.ZodPipe<z.ZodUnion<readonly [z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodCoercedBigInt<string | number | bigint>>;
|
|
19
|
+
}, z.core.$strip>;
|
|
36
20
|
export declare function serializeCheckpointInfo(info: CheckpointInfo): Buffer;
|
|
37
21
|
export declare function deserializeCheckpointInfo(buffer: Buffer | BufferReader): CheckpointInfo;
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2twb2ludF9pbmZvLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2hlY2twb2ludC9jaGVja3BvaW50X2luZm8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGdCQUFnQixFQUVoQixVQUFVLEVBRVgsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6QyxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFcEQsT0FBTyxFQUFFLFlBQVksRUFBcUIsTUFBTSw2QkFBNkIsQ0FBQztBQUU5RSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBRXhCLE1BQU0sTUFBTSxjQUFjLEdBQUc7SUFDM0IsT0FBTyxFQUFFLEVBQUUsQ0FBQztJQUNaLFdBQVcsRUFBRSxFQUFFLENBQUM7SUFDaEIsVUFBVSxFQUFFLFVBQVUsQ0FBQztJQUN2QixnQkFBZ0IsRUFBRSxnQkFBZ0IsQ0FBQztJQUNuQyxTQUFTLEVBQUUsTUFBTSxDQUFDO0NBQ25CLENBQUM7QUFFRix3QkFBZ0Isb0JBQW9CLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxnQkFBZ0IsR0FBRyxNQUFNLEdBQUcsY0FBYyxDQVFqRztBQUVELGVBQU8sTUFBTSxvQkFBb0I7Ozs7OztpQkFNL0IsQ0FBQztBQUVILHdCQUFnQix1QkFBdUIsQ0FBQyxJQUFJLEVBQUUsY0FBYyxHQUFHLE1BQU0sQ0FFcEU7QUFFRCx3QkFBZ0IseUJBQXlCLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxZQUFZLEdBQUcsY0FBYyxDQVN2RiJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkpoint_info.d.ts","sourceRoot":"","sources":["../../src/checkpoint/checkpoint_info.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAEhB,UAAU,EAEX,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAE9E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,EAAE,EAAE,CAAC;IACZ,WAAW,EAAE,EAAE,CAAC;IAChB,UAAU,EAAE,UAAU,CAAC;IACvB,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,wBAAgB,oBAAoB,CAAC,gBAAgB,CAAC,EAAE,gBAAgB,GAAG,MAAM,GAAG,cAAc,CAQjG;AAED,eAAO,MAAM,oBAAoB
|
|
1
|
+
{"version":3,"file":"checkpoint_info.d.ts","sourceRoot":"","sources":["../../src/checkpoint/checkpoint_info.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAEhB,UAAU,EAEX,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAE9E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,EAAE,EAAE,CAAC;IACZ,WAAW,EAAE,EAAE,CAAC;IAChB,UAAU,EAAE,UAAU,CAAC;IACvB,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,wBAAgB,oBAAoB,CAAC,gBAAgB,CAAC,EAAE,gBAAgB,GAAG,MAAM,GAAG,cAAc,CAQjG;AAED,eAAO,MAAM,oBAAoB;;;;;;iBAM/B,CAAC;AAEH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,CAEpE;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,cAAc,CASvF"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import type { CheckpointNumber, SlotNumber } from '@aztec/foundation/branded-types';
|
|
2
|
+
import type { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
|
+
/**
|
|
4
|
+
* Outcome of attempting to re-execute a checkpoint proposal locally.
|
|
5
|
+
*
|
|
6
|
+
* - `valid` — re-execution succeeded and the computed checkpoint matched the proposal.
|
|
7
|
+
* - `invalid` — the proposal disagreed with the computed checkpoint, or violated a deterministic
|
|
8
|
+
* constraint (limits, signatures, etc).
|
|
9
|
+
* - `unvalidated` — the local node could not complete validation for non-deterministic reasons
|
|
10
|
+
* (missing blocks/txs, timeouts, infra errors). Treated as proposer-fault for
|
|
11
|
+
* slashing but surfaced separately for telemetry.
|
|
12
|
+
*/
|
|
13
|
+
export type ReexecutionOutcome = 'valid' | 'invalid' | 'unvalidated';
|
|
14
|
+
export declare class CheckpointReexecutionTracker {
|
|
15
|
+
private readonly byCheckpoint;
|
|
16
|
+
private readonly bySlot;
|
|
17
|
+
/**
|
|
18
|
+
* Record the outcome of evaluating a checkpoint proposal.
|
|
19
|
+
* @param slot - Slot the proposal was for. Always required.
|
|
20
|
+
* @param archiveRoot - Archive root in the proposal.
|
|
21
|
+
* @param outcome - Outcome of evaluation.
|
|
22
|
+
* @param checkpointNumber - Checkpoint number, if known. Required for `valid` outcomes; optional
|
|
23
|
+
* for `invalid`/`unvalidated` because some early rejections fire before blocks are loaded.
|
|
24
|
+
*/
|
|
25
|
+
recordOutcome(slot: SlotNumber, archiveRoot: Fr, outcome: ReexecutionOutcome, checkpointNumber?: CheckpointNumber): void;
|
|
26
|
+
/**
|
|
27
|
+
* Record whether the local node successfully collected the transactions for a block proposal.
|
|
28
|
+
* Called from the validator's proposal handler immediately after tx collection completes
|
|
29
|
+
* (regardless of whether re-execution will subsequently succeed). The data-withholding
|
|
30
|
+
* watcher consults these records as an authoritative signal: tx availability now is too
|
|
31
|
+
* weak (txs may have been evicted from the mempool by the time the watcher runs), but a
|
|
32
|
+
* record that the txs *were* available at proposal time still vouches for the proposer.
|
|
33
|
+
*
|
|
34
|
+
* @param slot - Slot the block proposal was for.
|
|
35
|
+
* @param indexWithinCheckpoint - Index of the block within its enclosing checkpoint.
|
|
36
|
+
* @param collected - True if every tx in the proposal was collected locally before deadline.
|
|
37
|
+
*/
|
|
38
|
+
recordTxsCollected(slot: SlotNumber, indexWithinCheckpoint: number, collected: boolean): void;
|
|
39
|
+
/**
|
|
40
|
+
* Returns true if the given (checkpoint number, archive root) has been successfully
|
|
41
|
+
* re-executed locally (outcome `valid`).
|
|
42
|
+
*/
|
|
43
|
+
hasReexecuted(checkpointNumber: CheckpointNumber, archiveRoot: Fr): boolean;
|
|
44
|
+
/** Returns the recorded outcome for a given slot, or undefined if no proposal was evaluated. */
|
|
45
|
+
getOutcomeForSlot(slot: SlotNumber): ReexecutionOutcome | undefined;
|
|
46
|
+
/**
|
|
47
|
+
* Returns the recorded tx-collection result for a block proposal at the given slot and
|
|
48
|
+
* `indexWithinCheckpoint`, or `undefined` if no record exists.
|
|
49
|
+
*
|
|
50
|
+
* Three-valued by design:
|
|
51
|
+
* - `true` — we collected every tx for this block proposal before the deadline.
|
|
52
|
+
* - `false` — we tried and failed (missing txs at the deadline).
|
|
53
|
+
* - `undefined` — no record (e.g. we never saw the block proposal). Callers should fall
|
|
54
|
+
* back to a current-state check (e.g. mempool probe) for this case.
|
|
55
|
+
*/
|
|
56
|
+
getTxsCollectedRecord(slot: SlotNumber, indexWithinCheckpoint: number): boolean | undefined;
|
|
57
|
+
/** Drops entries for checkpoints with `number < checkpointNumber`. */
|
|
58
|
+
removeBefore(checkpointNumber: CheckpointNumber): void;
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2twb2ludF9yZWV4ZWN1dGlvbl90cmFja2VyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2hlY2twb2ludC9jaGVja3BvaW50X3JlZXhlY3V0aW9uX3RyYWNrZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDcEYsT0FBTyxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFekQ7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxNQUFNLGtCQUFrQixHQUFHLE9BQU8sR0FBRyxTQUFTLEdBQUcsYUFBYSxDQUFDO0FBMkJyRSxxQkFBYSw0QkFBNEI7SUFDdkMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQW1EO0lBQ2hGLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFnQztJQUV2RDs7Ozs7OztPQU9HO0lBQ0ksYUFBYSxDQUNsQixJQUFJLEVBQUUsVUFBVSxFQUNoQixXQUFXLEVBQUUsRUFBRSxFQUNmLE9BQU8sRUFBRSxrQkFBa0IsRUFDM0IsZ0JBQWdCLENBQUMsRUFBRSxnQkFBZ0IsR0FDbEMsSUFBSSxDQXVCTjtJQUVEOzs7Ozs7Ozs7OztPQVdHO0lBQ0ksa0JBQWtCLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE9BQU8sR0FBRyxJQUFJLENBYW5HO0lBRUQ7OztPQUdHO0lBQ0ksYUFBYSxDQUFDLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUVqRjtJQUVELGdHQUFnRztJQUN6RixpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsVUFBVSxHQUFHLGtCQUFrQixHQUFHLFNBQVMsQ0FFekU7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSSxxQkFBcUIsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFLHFCQUFxQixFQUFFLE1BQU0sR0FBRyxPQUFPLEdBQUcsU0FBUyxDQUVqRztJQUVELHNFQUFzRTtJQUMvRCxZQUFZLENBQUMsZ0JBQWdCLEVBQUUsZ0JBQWdCLEdBQUcsSUFBSSxDQTRCNUQ7Q0FDRiJ9
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkpoint_reexecution_tracker.d.ts","sourceRoot":"","sources":["../../src/checkpoint/checkpoint_reexecution_tracker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AACpF,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAEzD;;;;;;;;;GASG;AACH,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,SAAS,GAAG,aAAa,CAAC;AA2BrE,qBAAa,4BAA4B;IACvC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAmD;IAChF,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgC;IAEvD;;;;;;;OAOG;IACI,aAAa,CAClB,IAAI,EAAE,UAAU,EAChB,WAAW,EAAE,EAAE,EACf,OAAO,EAAE,kBAAkB,EAC3B,gBAAgB,CAAC,EAAE,gBAAgB,GAClC,IAAI,CAuBN;IAED;;;;;;;;;;;OAWG;IACI,kBAAkB,CAAC,IAAI,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,IAAI,CAanG;IAED;;;OAGG;IACI,aAAa,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,WAAW,EAAE,EAAE,GAAG,OAAO,CAEjF;IAED,gGAAgG;IACzF,iBAAiB,CAAC,IAAI,EAAE,UAAU,GAAG,kBAAkB,GAAG,SAAS,CAEzE;IAED;;;;;;;;;OASG;IACI,qBAAqB,CAAC,IAAI,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAEjG;IAED,sEAAsE;IAC/D,YAAY,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,IAAI,CA4B5D;CACF"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
export class CheckpointReexecutionTracker {
|
|
2
|
+
byCheckpoint = new Map();
|
|
3
|
+
bySlot = new Map();
|
|
4
|
+
/**
|
|
5
|
+
* Record the outcome of evaluating a checkpoint proposal.
|
|
6
|
+
* @param slot - Slot the proposal was for. Always required.
|
|
7
|
+
* @param archiveRoot - Archive root in the proposal.
|
|
8
|
+
* @param outcome - Outcome of evaluation.
|
|
9
|
+
* @param checkpointNumber - Checkpoint number, if known. Required for `valid` outcomes; optional
|
|
10
|
+
* for `invalid`/`unvalidated` because some early rejections fire before blocks are loaded.
|
|
11
|
+
*/ recordOutcome(slot, archiveRoot, outcome, checkpointNumber) {
|
|
12
|
+
const archiveRootStr = archiveRoot.toString();
|
|
13
|
+
// Preserve any per-block txsCollected already accumulated for this slot.
|
|
14
|
+
const existing = this.bySlot.get(slot);
|
|
15
|
+
const entry = {
|
|
16
|
+
checkpointNumber,
|
|
17
|
+
archiveRoot: archiveRootStr,
|
|
18
|
+
slot,
|
|
19
|
+
outcome,
|
|
20
|
+
txsCollected: existing?.txsCollected ?? new Map()
|
|
21
|
+
};
|
|
22
|
+
if (checkpointNumber !== undefined) {
|
|
23
|
+
let archives = this.byCheckpoint.get(checkpointNumber);
|
|
24
|
+
if (!archives) {
|
|
25
|
+
archives = new Map();
|
|
26
|
+
this.byCheckpoint.set(checkpointNumber, archives);
|
|
27
|
+
}
|
|
28
|
+
archives.set(archiveRootStr, entry);
|
|
29
|
+
}
|
|
30
|
+
this.bySlot.set(slot, entry);
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Record whether the local node successfully collected the transactions for a block proposal.
|
|
34
|
+
* Called from the validator's proposal handler immediately after tx collection completes
|
|
35
|
+
* (regardless of whether re-execution will subsequently succeed). The data-withholding
|
|
36
|
+
* watcher consults these records as an authoritative signal: tx availability now is too
|
|
37
|
+
* weak (txs may have been evicted from the mempool by the time the watcher runs), but a
|
|
38
|
+
* record that the txs *were* available at proposal time still vouches for the proposer.
|
|
39
|
+
*
|
|
40
|
+
* @param slot - Slot the block proposal was for.
|
|
41
|
+
* @param indexWithinCheckpoint - Index of the block within its enclosing checkpoint.
|
|
42
|
+
* @param collected - True if every tx in the proposal was collected locally before deadline.
|
|
43
|
+
*/ recordTxsCollected(slot, indexWithinCheckpoint, collected) {
|
|
44
|
+
let entry = this.bySlot.get(slot);
|
|
45
|
+
if (!entry) {
|
|
46
|
+
entry = {
|
|
47
|
+
checkpointNumber: undefined,
|
|
48
|
+
archiveRoot: undefined,
|
|
49
|
+
slot,
|
|
50
|
+
outcome: undefined,
|
|
51
|
+
txsCollected: new Map()
|
|
52
|
+
};
|
|
53
|
+
this.bySlot.set(slot, entry);
|
|
54
|
+
}
|
|
55
|
+
entry.txsCollected.set(indexWithinCheckpoint, collected);
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Returns true if the given (checkpoint number, archive root) has been successfully
|
|
59
|
+
* re-executed locally (outcome `valid`).
|
|
60
|
+
*/ hasReexecuted(checkpointNumber, archiveRoot) {
|
|
61
|
+
return this.byCheckpoint.get(checkpointNumber)?.get(archiveRoot.toString())?.outcome === 'valid';
|
|
62
|
+
}
|
|
63
|
+
/** Returns the recorded outcome for a given slot, or undefined if no proposal was evaluated. */ getOutcomeForSlot(slot) {
|
|
64
|
+
return this.bySlot.get(slot)?.outcome;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Returns the recorded tx-collection result for a block proposal at the given slot and
|
|
68
|
+
* `indexWithinCheckpoint`, or `undefined` if no record exists.
|
|
69
|
+
*
|
|
70
|
+
* Three-valued by design:
|
|
71
|
+
* - `true` — we collected every tx for this block proposal before the deadline.
|
|
72
|
+
* - `false` — we tried and failed (missing txs at the deadline).
|
|
73
|
+
* - `undefined` — no record (e.g. we never saw the block proposal). Callers should fall
|
|
74
|
+
* back to a current-state check (e.g. mempool probe) for this case.
|
|
75
|
+
*/ getTxsCollectedRecord(slot, indexWithinCheckpoint) {
|
|
76
|
+
return this.bySlot.get(slot)?.txsCollected.get(indexWithinCheckpoint);
|
|
77
|
+
}
|
|
78
|
+
/** Drops entries for checkpoints with `number < checkpointNumber`. */ removeBefore(checkpointNumber) {
|
|
79
|
+
// Track the highest slot among checkpoints we're pruning. Once we know it, any slot
|
|
80
|
+
// strictly below that watermark is older than the most recently pruned checkpoint and
|
|
81
|
+
// can be dropped from `bySlot` too — including slot-only entries (no checkpoint number)
|
|
82
|
+
// which would otherwise leak, because removing by checkpoint number can't reach them.
|
|
83
|
+
let maxRemovedSlot;
|
|
84
|
+
for (const [n, archives] of this.byCheckpoint){
|
|
85
|
+
if (n < checkpointNumber) {
|
|
86
|
+
for (const entry of archives.values()){
|
|
87
|
+
// Only drop the slot index if it still points at the entry we're removing.
|
|
88
|
+
if (this.bySlot.get(entry.slot) === entry) {
|
|
89
|
+
this.bySlot.delete(entry.slot);
|
|
90
|
+
}
|
|
91
|
+
if (maxRemovedSlot === undefined || entry.slot > maxRemovedSlot) {
|
|
92
|
+
maxRemovedSlot = entry.slot;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
this.byCheckpoint.delete(n);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
if (maxRemovedSlot !== undefined) {
|
|
99
|
+
for (const slot of [
|
|
100
|
+
...this.bySlot.keys()
|
|
101
|
+
]){
|
|
102
|
+
if (slot < maxRemovedSlot) {
|
|
103
|
+
this.bySlot.delete(slot);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { Buffer32 } from '@aztec/foundation/buffer';
|
|
2
|
+
import type { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
|
+
import { type CoordinationSignatureContext } from '../p2p/signature_utils.js';
|
|
4
|
+
import { CheckpointHeader } from '../rollup/checkpoint_header.js';
|
|
5
|
+
/**
|
|
6
|
+
* Computes the EIP-712 payload digest for a checkpoint proposal — the digest validators sign
|
|
7
|
+
* and the L1 contract verifies during `propose()`. Mirrors `ProposeLib.digest(ProposePayload)` on L1.
|
|
8
|
+
*
|
|
9
|
+
* The result is the same `bytes32` that gets stored in `tempCheckpointLogs[checkpointNumber].payloadDigest`,
|
|
10
|
+
* so this helper is also reused when constructing simulation state overrides for pipelined proposals.
|
|
11
|
+
*/
|
|
12
|
+
export declare function computeCheckpointPayloadDigest(args: {
|
|
13
|
+
header: CheckpointHeader;
|
|
14
|
+
archiveRoot: Fr;
|
|
15
|
+
feeAssetPriceModifier: bigint;
|
|
16
|
+
signatureContext: CoordinationSignatureContext;
|
|
17
|
+
}): Buffer32;
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlnZXN0LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2hlY2twb2ludC9kaWdlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFHekQsT0FBTyxFQUFFLEtBQUssNEJBQTRCLEVBQXNDLE1BQU0sMkJBQTJCLENBQUM7QUFDbEgsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFbEU7Ozs7OztHQU1HO0FBQ0gsd0JBQWdCLDhCQUE4QixDQUFDLElBQUksRUFBRTtJQUNuRCxNQUFNLEVBQUUsZ0JBQWdCLENBQUM7SUFDekIsV0FBVyxFQUFFLEVBQUUsQ0FBQztJQUNoQixxQkFBcUIsRUFBRSxNQUFNLENBQUM7SUFDOUIsZ0JBQWdCLEVBQUUsNEJBQTRCLENBQUM7Q0FDaEQsR0FBRyxRQUFRLENBUVgifQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"digest.d.ts","sourceRoot":"","sources":["../../src/checkpoint/digest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAGzD,OAAO,EAAE,KAAK,4BAA4B,EAAsC,MAAM,2BAA2B,CAAC;AAClH,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAElE;;;;;;GAMG;AACH,wBAAgB,8BAA8B,CAAC,IAAI,EAAE;IACnD,MAAM,EAAE,gBAAgB,CAAC;IACzB,WAAW,EAAE,EAAE,CAAC;IAChB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,gBAAgB,EAAE,4BAA4B,CAAC;CAChD,GAAG,QAAQ,CAQX"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ConsensusPayload } from '../p2p/consensus_payload.js';
|
|
2
|
+
import { getHashedSignaturePayloadTypedData } from '../p2p/signature_utils.js';
|
|
3
|
+
/**
|
|
4
|
+
* Computes the EIP-712 payload digest for a checkpoint proposal — the digest validators sign
|
|
5
|
+
* and the L1 contract verifies during `propose()`. Mirrors `ProposeLib.digest(ProposePayload)` on L1.
|
|
6
|
+
*
|
|
7
|
+
* The result is the same `bytes32` that gets stored in `tempCheckpointLogs[checkpointNumber].payloadDigest`,
|
|
8
|
+
* so this helper is also reused when constructing simulation state overrides for pipelined proposals.
|
|
9
|
+
*/ export function computeCheckpointPayloadDigest(args) {
|
|
10
|
+
const consensusPayload = new ConsensusPayload(args.header, args.archiveRoot, args.feeAssetPriceModifier, args.signatureContext);
|
|
11
|
+
return getHashedSignaturePayloadTypedData(consensusPayload);
|
|
12
|
+
}
|
|
@@ -1,6 +1,9 @@
|
|
|
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';
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jaGVja3BvaW50L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsZUFBZSxDQUFDIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/checkpoint/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/checkpoint/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qCAAqC,CAAC;AACpD,cAAc,aAAa,CAAC;AAC5B,cAAc,qCAAqC,CAAC;AACpD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,eAAe,CAAC"}
|
package/dest/checkpoint/index.js
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';
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { CheckpointNumber, type EpochNumber } from '@aztec/foundation/branded-types';
|
|
2
|
+
import type { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
|
+
import type { Logger } from '@aztec/foundation/log';
|
|
4
|
+
import type { L2BlockSource } from '../block/l2_block_source.js';
|
|
5
|
+
import { type L1RollupConstants } from '../epoch-helpers/index.js';
|
|
6
|
+
import type { ProposedCheckpointData } from './checkpoint_data.js';
|
|
7
|
+
/**
|
|
8
|
+
* Returns the out hashes (in epoch order) of all checkpoints in `epoch` that precede
|
|
9
|
+
* `checkpointNumber`, used to compute the `epochOutHash` baked into that checkpoint's header.
|
|
10
|
+
*
|
|
11
|
+
* Under proposer pipelining the parent checkpoint may not be confirmed on L1 by the time the
|
|
12
|
+
* builder runs, so the on-chain archiver query (`getCheckpointsData`) is missing it and the
|
|
13
|
+
* resulting `epochOutHash` would diverge from what other validators (and L1) compute after the
|
|
14
|
+
* parent lands. To avoid that, the parent's `checkpointOutHash` is spliced in from the locally
|
|
15
|
+
* known proposed checkpoint when:
|
|
16
|
+
* - pipelining is enabled,
|
|
17
|
+
* - the archiver lookup is genuinely short (its last entry is not already cp `N-1`),
|
|
18
|
+
* - and the proposed cp `N-1` is in the same target epoch (otherwise we're at an epoch boundary
|
|
19
|
+
* and the previous-epoch cps must be excluded).
|
|
20
|
+
*
|
|
21
|
+
* Callers may either pass the already-loaded `proposedCheckpointData` (the proposer has it on
|
|
22
|
+
* hand) or leave it undefined, in which case it's fetched via `getProposedCheckpointData`.
|
|
23
|
+
*/
|
|
24
|
+
export declare function getPreviousCheckpointOutHashes(input: {
|
|
25
|
+
blockSource: Pick<L2BlockSource, 'getCheckpointsData' | 'getProposedCheckpointData'>;
|
|
26
|
+
epoch: EpochNumber;
|
|
27
|
+
checkpointNumber: CheckpointNumber;
|
|
28
|
+
l1Constants: Pick<L1RollupConstants, 'epochDuration'>;
|
|
29
|
+
pipeliningEnabled: boolean;
|
|
30
|
+
proposedCheckpointData?: ProposedCheckpointData;
|
|
31
|
+
log?: Logger;
|
|
32
|
+
}): Promise<Fr[]>;
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJldmlvdXNfY2hlY2twb2ludF9vdXRfaGFzaGVzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2hlY2twb2ludC9wcmV2aW91c19jaGVja3BvaW50X291dF9oYXNoZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLEtBQUssV0FBVyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDckYsT0FBTyxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDekQsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFcEQsT0FBTyxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDakUsT0FBTyxFQUFFLEtBQUssaUJBQWlCLEVBQWtCLE1BQU0sMkJBQTJCLENBQUM7QUFDbkYsT0FBTyxLQUFLLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVuRTs7Ozs7Ozs7Ozs7Ozs7OztHQWdCRztBQUNILHdCQUFzQiw4QkFBOEIsQ0FBQyxLQUFLLEVBQUU7SUFDMUQsV0FBVyxFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsb0JBQW9CLEdBQUcsMkJBQTJCLENBQUMsQ0FBQztJQUNyRixLQUFLLEVBQUUsV0FBVyxDQUFDO0lBQ25CLGdCQUFnQixFQUFFLGdCQUFnQixDQUFDO0lBQ25DLFdBQVcsRUFBRSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsZUFBZSxDQUFDLENBQUM7SUFDdEQsaUJBQWlCLEVBQUUsT0FBTyxDQUFDO0lBQzNCLHNCQUFzQixDQUFDLEVBQUUsc0JBQXNCLENBQUM7SUFDaEQsR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDO0NBQ2QsR0FBRyxPQUFPLENBQUMsRUFBRSxFQUFFLENBQUMsQ0EyQmhCIn0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"previous_checkpoint_out_hashes.d.ts","sourceRoot":"","sources":["../../src/checkpoint/previous_checkpoint_out_hashes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,KAAK,WAAW,EAAE,MAAM,iCAAiC,CAAC;AACrF,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACzD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,KAAK,iBAAiB,EAAkB,MAAM,2BAA2B,CAAC;AACnF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAEnE;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,8BAA8B,CAAC,KAAK,EAAE;IAC1D,WAAW,EAAE,IAAI,CAAC,aAAa,EAAE,oBAAoB,GAAG,2BAA2B,CAAC,CAAC;IACrF,KAAK,EAAE,WAAW,CAAC;IACnB,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,WAAW,EAAE,IAAI,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC;IACtD,iBAAiB,EAAE,OAAO,CAAC;IAC3B,sBAAsB,CAAC,EAAE,sBAAsB,CAAC;IAChD,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,GAAG,OAAO,CAAC,EAAE,EAAE,CAAC,CA2BhB"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { CheckpointNumber } from '@aztec/foundation/branded-types';
|
|
2
|
+
import { getEpochAtSlot } from '../epoch-helpers/index.js';
|
|
3
|
+
/**
|
|
4
|
+
* Returns the out hashes (in epoch order) of all checkpoints in `epoch` that precede
|
|
5
|
+
* `checkpointNumber`, used to compute the `epochOutHash` baked into that checkpoint's header.
|
|
6
|
+
*
|
|
7
|
+
* Under proposer pipelining the parent checkpoint may not be confirmed on L1 by the time the
|
|
8
|
+
* builder runs, so the on-chain archiver query (`getCheckpointsData`) is missing it and the
|
|
9
|
+
* resulting `epochOutHash` would diverge from what other validators (and L1) compute after the
|
|
10
|
+
* parent lands. To avoid that, the parent's `checkpointOutHash` is spliced in from the locally
|
|
11
|
+
* known proposed checkpoint when:
|
|
12
|
+
* - pipelining is enabled,
|
|
13
|
+
* - the archiver lookup is genuinely short (its last entry is not already cp `N-1`),
|
|
14
|
+
* - and the proposed cp `N-1` is in the same target epoch (otherwise we're at an epoch boundary
|
|
15
|
+
* and the previous-epoch cps must be excluded).
|
|
16
|
+
*
|
|
17
|
+
* Callers may either pass the already-loaded `proposedCheckpointData` (the proposer has it on
|
|
18
|
+
* hand) or leave it undefined, in which case it's fetched via `getProposedCheckpointData`.
|
|
19
|
+
*/ export async function getPreviousCheckpointOutHashes(input) {
|
|
20
|
+
const { blockSource, epoch, checkpointNumber, l1Constants, pipeliningEnabled, log } = input;
|
|
21
|
+
const checkpointed = (await blockSource.getCheckpointsData({
|
|
22
|
+
epoch
|
|
23
|
+
})).filter((c)=>c.checkpointNumber < checkpointNumber).sort((a, b)=>a.checkpointNumber - b.checkpointNumber);
|
|
24
|
+
if (!pipeliningEnabled || checkpointNumber === 0) {
|
|
25
|
+
return checkpointed.map((c)=>c.checkpointOutHash);
|
|
26
|
+
}
|
|
27
|
+
const parentCheckpoint = CheckpointNumber(checkpointNumber - 1);
|
|
28
|
+
if (checkpointed.at(-1)?.checkpointNumber === parentCheckpoint) {
|
|
29
|
+
return checkpointed.map((c)=>c.checkpointOutHash);
|
|
30
|
+
}
|
|
31
|
+
const proposedParent = input.proposedCheckpointData ?? await blockSource.getProposedCheckpointData({
|
|
32
|
+
number: parentCheckpoint
|
|
33
|
+
});
|
|
34
|
+
if (!proposedParent || proposedParent.checkpointNumber !== parentCheckpoint) {
|
|
35
|
+
return checkpointed.map((c)=>c.checkpointOutHash);
|
|
36
|
+
}
|
|
37
|
+
if (getEpochAtSlot(proposedParent.header.slotNumber, l1Constants) !== epoch) {
|
|
38
|
+
return checkpointed.map((c)=>c.checkpointOutHash);
|
|
39
|
+
}
|
|
40
|
+
log?.debug(`Splicing pipelined parent cp ${parentCheckpoint} outHash for cp ${checkpointNumber}`);
|
|
41
|
+
return [
|
|
42
|
+
...checkpointed.map((c)=>c.checkpointOutHash),
|
|
43
|
+
proposedParent.checkpointOutHash
|
|
44
|
+
];
|
|
45
|
+
}
|