@aztec/stdlib 5.0.0-private.20260319 → 5.0.0-rc.2
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 +19 -5
- package/dest/abi/buffer.d.ts.map +1 -1
- package/dest/abi/buffer.js +38 -5
- 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 +7 -4
- 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 +42 -12
- package/dest/aztec-address/index.d.ts.map +1 -1
- package/dest/aztec-address/index.js +40 -13
- 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 +201 -356
- package/dest/block/l2_block_source.d.ts.map +1 -1
- package/dest/block/l2_block_source.js +66 -1
- package/dest/block/l2_block_stream/interfaces.d.ts +69 -10
- package/dest/block/l2_block_stream/interfaces.d.ts.map +1 -1
- package/dest/block/l2_block_stream/l2_block_stream.d.ts +29 -7
- package/dest/block/l2_block_stream/l2_block_stream.d.ts.map +1 -1
- package/dest/block/l2_block_stream/l2_block_stream.js +184 -135
- 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 +20 -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 +84 -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 +296 -36
- 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 +5 -1
- package/dest/checkpoint/index.d.ts.map +1 -1
- package/dest/checkpoint/index.js +4 -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/simulation_overrides.d.ts +61 -0
- package/dest/checkpoint/simulation_overrides.d.ts.map +1 -0
- package/dest/checkpoint/simulation_overrides.js +98 -0
- 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_data_source.d.ts +3 -5
- package/dest/contract/interfaces/contract_data_source.d.ts.map +1 -1
- package/dest/contract/interfaces/contract_instance.d.ts +41 -95
- package/dest/contract/interfaces/contract_instance.d.ts.map +1 -1
- package/dest/contract/interfaces/contract_instance.js +4 -2
- package/dest/contract/interfaces/contract_instance_update.d.ts +6 -26
- package/dest/contract/interfaces/contract_instance_update.d.ts.map +1 -1
- package/dest/contract/interfaces/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 +9 -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 +3 -1
- package/dest/file-store/index.d.ts.map +1 -1
- package/dest/file-store/index.js +1 -0
- package/dest/file-store/memory.d.ts +24 -0
- package/dest/file-store/memory.d.ts.map +1 -0
- package/dest/file-store/memory.js +80 -0
- 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 +59 -0
- package/dest/interfaces/aztec-node-debug.d.ts.map +1 -0
- package/dest/interfaces/aztec-node-debug.js +49 -0
- package/dest/interfaces/aztec-node.d.ts +160 -116
- package/dest/interfaces/aztec-node.d.ts.map +1 -1
- package/dest/interfaces/aztec-node.js +350 -74
- 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 +11 -0
- package/dest/interfaces/chain_tips.d.ts.map +1 -0
- package/dest/interfaces/chain_tips.js +6 -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 +12 -8
- package/dest/interfaces/prover-node.d.ts.map +1 -1
- package/dest/interfaces/prover-node.js +37 -16
- 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/hints/read_request.js +1 -1
- 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 +23 -11
- package/dest/kernel/note_hash.js +1 -1
- package/dest/kernel/nullifier.js +1 -1
- 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_log_data.d.ts +1 -1
- package/dest/kernel/private_log_data.d.ts.map +1 -1
- package/dest/kernel/private_log_data.js +1 -1
- 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 +61 -0
- package/dest/logs/app_tagging_secret.d.ts.map +1 -0
- package/dest/logs/app_tagging_secret.js +119 -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 -35
- package/dest/logs/contract_class_log.d.ts.map +1 -1
- package/dest/logs/contract_class_log.js +11 -13
- 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 +4 -16
- package/dest/logs/message_context.d.ts.map +1 -1
- package/dest/logs/message_context.js +1 -48
- package/dest/logs/pending_tagged_log.d.ts +6 -9
- package/dest/logs/pending_tagged_log.d.ts.map +1 -1
- package/dest/logs/pending_tagged_log.js +1 -31
- 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 +16 -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 +36 -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 +27 -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_header.d.ts +8 -3
- package/dest/rollup/checkpoint_header.d.ts.map +1 -1
- package/dest/rollup/checkpoint_header.js +20 -10
- 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 +78 -84
- 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 +17 -63
- package/dest/trees/nullifier_membership_witness.d.ts.map +1 -1
- package/dest/trees/nullifier_membership_witness.js +0 -21
- 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 +19 -71
- package/dest/trees/public_data_witness.d.ts.map +1 -1
- package/dest/trees/public_data_witness.js +0 -27
- 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/execution_payload.d.ts +1 -1
- package/dest/tx/execution_payload.d.ts.map +1 -1
- package/dest/tx/execution_payload.js +1 -1
- 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 +4 -15
- 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 +10 -14
- 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 +38 -5
- 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 +6 -1
- package/src/avm/message_pack.ts +12 -3
- package/src/avm/revert_code.ts +19 -39
- package/src/aztec-address/index.ts +50 -17
- 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 +210 -146
- package/src/block/l2_block_stream/interfaces.ts +65 -9
- package/src/block/l2_block_stream/l2_block_stream.ts +250 -171
- package/src/block/l2_block_stream/l2_tips_memory_store.ts +17 -41
- package/src/block/l2_block_stream/l2_tips_store_base.ts +85 -60
- package/src/block/proposal/attestations_and_signers.ts +32 -17
- package/src/block/test/l2_tips_store_test_suite.ts +271 -22
- 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 +4 -0
- package/src/checkpoint/previous_checkpoint_out_hashes.ts +61 -0
- package/src/checkpoint/simulation_overrides.ts +171 -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_data_source.ts +2 -4
- 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 +20 -4
- package/src/file-store/http.ts +29 -10
- package/src/file-store/index.ts +2 -0
- package/src/file-store/memory.ts +94 -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 +92 -0
- package/src/interfaces/aztec-node.ts +398 -271
- package/src/interfaces/block-builder.ts +4 -0
- package/src/interfaces/block_response.ts +92 -0
- package/src/interfaces/chain_tips.ts +16 -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 +36 -21
- 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/hints/read_request.ts +1 -1
- package/src/kernel/index.ts +4 -0
- package/src/kernel/log_hash.ts +36 -13
- package/src/kernel/note_hash.ts +1 -1
- package/src/kernel/nullifier.ts +1 -1
- 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_log_data.ts +4 -1
- 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 +153 -0
- package/src/logs/app_tagging_secret_kind.ts +21 -0
- package/src/logs/contract_class_log.ts +15 -14
- 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 +6 -50
- package/src/logs/pending_tagged_log.ts +6 -35
- 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_header.ts +16 -2
- 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 +108 -113
- 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 +0 -21
- package/src/trees/public_data_witness.ts +0 -31
- package/src/tx/block_header.ts +10 -5
- package/src/tx/capsule.ts +10 -2
- package/src/tx/execution_payload.ts +2 -1
- package/src/tx/fee_provider.ts +10 -0
- package/src/tx/global_variable_builder.ts +3 -20
- package/src/tx/global_variables.ts +12 -20
- 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>) {
|
|
@@ -93,14 +94,18 @@ export function testL2TipsStore(makeTipsStore: () => Promise<L2TipsStore>) {
|
|
|
93
94
|
return new PublishedCheckpoint(checkpoint, L1PublishedData.random(), []);
|
|
94
95
|
};
|
|
95
96
|
|
|
96
|
-
/** Creates a chain-checkpointed event
|
|
97
|
-
const makeCheckpointedEvent = async (
|
|
98
|
-
const lastBlock =
|
|
97
|
+
/** Creates a thin chain-checkpointed event carrying the block + checkpoint ids of the checkpoint's last block. */
|
|
98
|
+
const makeCheckpointedEvent = async (published: PublishedCheckpoint) => {
|
|
99
|
+
const lastBlock = published.checkpoint.blocks.at(-1)!;
|
|
99
100
|
const blockId: L2BlockId = {
|
|
100
101
|
number: lastBlock.number,
|
|
101
102
|
hash: (await lastBlock.hash()).toString(),
|
|
102
103
|
};
|
|
103
|
-
|
|
104
|
+
const checkpointId = {
|
|
105
|
+
number: published.checkpoint.number,
|
|
106
|
+
hash: published.checkpoint.hash().toString(),
|
|
107
|
+
};
|
|
108
|
+
return { type: 'chain-checkpointed' as const, checkpoint: checkpointId, block: blockId };
|
|
104
109
|
};
|
|
105
110
|
|
|
106
111
|
it('returns zero if no tips are stored', async () => {
|
|
@@ -122,6 +127,71 @@ export function testL2TipsStore(makeTipsStore: () => Promise<L2TipsStore>) {
|
|
|
122
127
|
expect(await tipsStore.getL2BlockHash(3)).toEqual(blockHashes.get(3));
|
|
123
128
|
});
|
|
124
129
|
|
|
130
|
+
it('records the proposed tip number and hash from a chain-proposed event', async () => {
|
|
131
|
+
// chain-proposed is the sole writer of proposed-tip history in tips-only mode: no preceding blocks-added.
|
|
132
|
+
await tipsStore.handleBlockStreamEvent({
|
|
133
|
+
type: 'chain-proposed',
|
|
134
|
+
block: { number: BlockNumber(5), hash: new Fr(500).toString() },
|
|
135
|
+
});
|
|
136
|
+
|
|
137
|
+
const tips = await tipsStore.getL2Tips();
|
|
138
|
+
expect(tips.proposed).toEqual({ number: BlockNumber(5), hash: new Fr(500).toString() });
|
|
139
|
+
// The hash is recorded in the same index the walk-back reads, so it resolves as a sparse anchor.
|
|
140
|
+
expect(await tipsStore.getL2BlockHash(5)).toEqual(new Fr(500).toString());
|
|
141
|
+
});
|
|
142
|
+
|
|
143
|
+
it('serves sparse proposed anchors from chain-proposed events for the walk-back', async () => {
|
|
144
|
+
// Two tip-moving polls in tips-only mode, with no blocks in between (sparse history).
|
|
145
|
+
await tipsStore.handleBlockStreamEvent({
|
|
146
|
+
type: 'chain-proposed',
|
|
147
|
+
block: { number: BlockNumber(4), hash: new Fr(400).toString() },
|
|
148
|
+
});
|
|
149
|
+
await tipsStore.handleBlockStreamEvent({
|
|
150
|
+
type: 'chain-proposed',
|
|
151
|
+
block: { number: BlockNumber(9), hash: new Fr(900).toString() },
|
|
152
|
+
});
|
|
153
|
+
|
|
154
|
+
// Both recorded heights resolve; the heights between them were never seen and stay undefined.
|
|
155
|
+
expect(await tipsStore.getL2BlockHash(4)).toEqual(new Fr(400).toString());
|
|
156
|
+
expect(await tipsStore.getL2BlockHash(9)).toEqual(new Fr(900).toString());
|
|
157
|
+
expect(await tipsStore.getL2BlockHash(6)).toBeUndefined();
|
|
158
|
+
|
|
159
|
+
const tips = await tipsStore.getL2Tips();
|
|
160
|
+
expect(tips.proposed).toEqual({ number: BlockNumber(9), hash: new Fr(900).toString() });
|
|
161
|
+
});
|
|
162
|
+
|
|
163
|
+
it('records block-hash witnesses without moving any tip cursor', async () => {
|
|
164
|
+
// Establish a proposed tip at 9 in tips-only fashion (sole writer of proposed history).
|
|
165
|
+
await tipsStore.handleBlockStreamEvent({
|
|
166
|
+
type: 'chain-proposed',
|
|
167
|
+
block: { number: BlockNumber(9), hash: new Fr(900).toString() },
|
|
168
|
+
});
|
|
169
|
+
|
|
170
|
+
// Record sparse witnesses at heights below the tip (e.g. a consumer materializing per-height state).
|
|
171
|
+
await tipsStore.recordBlockHashes([
|
|
172
|
+
{ number: BlockNumber(4), hash: new Fr(404).toString() },
|
|
173
|
+
{ number: BlockNumber(6), hash: new Fr(606).toString() },
|
|
174
|
+
]);
|
|
175
|
+
|
|
176
|
+
// Each recorded height resolves; an unrecorded gap stays undefined.
|
|
177
|
+
expect(await tipsStore.getL2BlockHash(4)).toEqual(new Fr(404).toString());
|
|
178
|
+
expect(await tipsStore.getL2BlockHash(6)).toEqual(new Fr(606).toString());
|
|
179
|
+
expect(await tipsStore.getL2BlockHash(5)).toBeUndefined();
|
|
180
|
+
|
|
181
|
+
// No tip cursor moved: the proposed tip is still 9, and every other tier is at genesis.
|
|
182
|
+
const tips = await tipsStore.getL2Tips();
|
|
183
|
+
expect(tips.proposed).toEqual({ number: BlockNumber(9), hash: new Fr(900).toString() });
|
|
184
|
+
expect(tips.checkpointed.block).toEqual(makeTip(0));
|
|
185
|
+
expect(tips.proven.block).toEqual(makeTip(0));
|
|
186
|
+
expect(tips.finalized.block).toEqual(makeTip(0));
|
|
187
|
+
});
|
|
188
|
+
|
|
189
|
+
it('skips witnesses with no hash and tolerates an empty list', async () => {
|
|
190
|
+
await tipsStore.recordBlockHashes([]);
|
|
191
|
+
await tipsStore.recordBlockHashes([{ number: BlockNumber(3), hash: '' }]);
|
|
192
|
+
expect(await tipsStore.getL2BlockHash(3)).toBeUndefined();
|
|
193
|
+
});
|
|
194
|
+
|
|
125
195
|
it('checkpoints all proposed blocks', async () => {
|
|
126
196
|
// Propose blocks 1-5
|
|
127
197
|
const blocks = await Promise.all(times(5, i => makeBlock(i + 1)));
|
|
@@ -146,7 +216,11 @@ export function testL2TipsStore(makeTipsStore: () => Promise<L2TipsStore>) {
|
|
|
146
216
|
await tipsStore.handleBlockStreamEvent(await makeCheckpointedEvent(checkpoint1));
|
|
147
217
|
|
|
148
218
|
// Prove up to block 5
|
|
149
|
-
await tipsStore.handleBlockStreamEvent({
|
|
219
|
+
await tipsStore.handleBlockStreamEvent({
|
|
220
|
+
type: 'chain-proven',
|
|
221
|
+
block: makeBlockId(5),
|
|
222
|
+
checkpoint: makeCheckpointIdForBlock(5),
|
|
223
|
+
});
|
|
150
224
|
|
|
151
225
|
const tips = await tipsStore.getL2Tips();
|
|
152
226
|
expect(tips.proposed).toEqual(makeTip(5));
|
|
@@ -166,8 +240,16 @@ export function testL2TipsStore(makeTipsStore: () => Promise<L2TipsStore>) {
|
|
|
166
240
|
await tipsStore.handleBlockStreamEvent(await makeCheckpointedEvent(checkpoint1));
|
|
167
241
|
|
|
168
242
|
// Prove and finalize
|
|
169
|
-
await tipsStore.handleBlockStreamEvent({
|
|
170
|
-
|
|
243
|
+
await tipsStore.handleBlockStreamEvent({
|
|
244
|
+
type: 'chain-proven',
|
|
245
|
+
block: makeBlockId(5),
|
|
246
|
+
checkpoint: makeCheckpointIdForBlock(5),
|
|
247
|
+
});
|
|
248
|
+
await tipsStore.handleBlockStreamEvent({
|
|
249
|
+
type: 'chain-finalized',
|
|
250
|
+
block: makeBlockId(5),
|
|
251
|
+
checkpoint: makeCheckpointIdForBlock(5),
|
|
252
|
+
});
|
|
171
253
|
|
|
172
254
|
const tips = await tipsStore.getL2Tips();
|
|
173
255
|
expect(tips.proposed).toEqual(makeTip(5));
|
|
@@ -222,8 +304,16 @@ export function testL2TipsStore(makeTipsStore: () => Promise<L2TipsStore>) {
|
|
|
222
304
|
await tipsStore.handleBlockStreamEvent(await makeCheckpointedEvent(checkpoint2));
|
|
223
305
|
|
|
224
306
|
// Prove and finalize up to block 3 (checkpoint 1)
|
|
225
|
-
await tipsStore.handleBlockStreamEvent({
|
|
226
|
-
|
|
307
|
+
await tipsStore.handleBlockStreamEvent({
|
|
308
|
+
type: 'chain-proven',
|
|
309
|
+
block: makeBlockId(3),
|
|
310
|
+
checkpoint: makeCheckpointIdForBlock(3),
|
|
311
|
+
});
|
|
312
|
+
await tipsStore.handleBlockStreamEvent({
|
|
313
|
+
type: 'chain-finalized',
|
|
314
|
+
block: makeBlockId(3),
|
|
315
|
+
checkpoint: makeCheckpointIdForBlock(3),
|
|
316
|
+
});
|
|
227
317
|
|
|
228
318
|
// Blocks before finalized should be cleared
|
|
229
319
|
expect(await tipsStore.getL2BlockHash(1)).toBeUndefined();
|
|
@@ -243,7 +333,8 @@ export function testL2TipsStore(makeTipsStore: () => Promise<L2TipsStore>) {
|
|
|
243
333
|
await tipsStore.handleBlockStreamEvent({
|
|
244
334
|
type: 'chain-pruned',
|
|
245
335
|
block: makeBlockId(5),
|
|
246
|
-
|
|
336
|
+
checkpointed: makeTipId(0),
|
|
337
|
+
proven: makeTipId(0),
|
|
247
338
|
});
|
|
248
339
|
|
|
249
340
|
const tips = await tipsStore.getL2Tips();
|
|
@@ -267,7 +358,8 @@ export function testL2TipsStore(makeTipsStore: () => Promise<L2TipsStore>) {
|
|
|
267
358
|
await tipsStore.handleBlockStreamEvent({
|
|
268
359
|
type: 'chain-pruned',
|
|
269
360
|
block: makeTip(0),
|
|
270
|
-
|
|
361
|
+
checkpointed: makeTipId(0),
|
|
362
|
+
proven: makeTipId(0),
|
|
271
363
|
});
|
|
272
364
|
|
|
273
365
|
tips = await tipsStore.getL2Tips();
|
|
@@ -332,7 +424,8 @@ export function testL2TipsStore(makeTipsStore: () => Promise<L2TipsStore>) {
|
|
|
332
424
|
await tipsStore.handleBlockStreamEvent({
|
|
333
425
|
type: 'chain-pruned',
|
|
334
426
|
block: makeBlockId(5),
|
|
335
|
-
|
|
427
|
+
checkpointed: makeTipId(5),
|
|
428
|
+
proven: makeTipId(0),
|
|
336
429
|
});
|
|
337
430
|
|
|
338
431
|
tips = await tipsStore.getL2Tips();
|
|
@@ -396,7 +489,8 @@ export function testL2TipsStore(makeTipsStore: () => Promise<L2TipsStore>) {
|
|
|
396
489
|
await tipsStore.handleBlockStreamEvent({
|
|
397
490
|
type: 'chain-pruned',
|
|
398
491
|
block: makeBlockId(3),
|
|
399
|
-
|
|
492
|
+
checkpointed: makeTipId(3),
|
|
493
|
+
proven: makeTipId(0),
|
|
400
494
|
});
|
|
401
495
|
|
|
402
496
|
tips = await tipsStore.getL2Tips();
|
|
@@ -433,7 +527,11 @@ export function testL2TipsStore(makeTipsStore: () => Promise<L2TipsStore>) {
|
|
|
433
527
|
await tipsStore.handleBlockStreamEvent(await makeCheckpointedEvent(checkpoint1));
|
|
434
528
|
|
|
435
529
|
// Prove up to block 3
|
|
436
|
-
await tipsStore.handleBlockStreamEvent({
|
|
530
|
+
await tipsStore.handleBlockStreamEvent({
|
|
531
|
+
type: 'chain-proven',
|
|
532
|
+
block: makeBlockId(3),
|
|
533
|
+
checkpoint: makeCheckpointIdForBlock(3),
|
|
534
|
+
});
|
|
437
535
|
|
|
438
536
|
let tips = await tipsStore.getL2Tips();
|
|
439
537
|
expect(tips.proposed).toEqual(makeTip(3));
|
|
@@ -474,7 +572,8 @@ export function testL2TipsStore(makeTipsStore: () => Promise<L2TipsStore>) {
|
|
|
474
572
|
await tipsStore.handleBlockStreamEvent({
|
|
475
573
|
type: 'chain-pruned',
|
|
476
574
|
block: makeBlockId(3),
|
|
477
|
-
|
|
575
|
+
checkpointed: makeTipId(3),
|
|
576
|
+
proven: makeTipId(3),
|
|
478
577
|
});
|
|
479
578
|
|
|
480
579
|
tips = await tipsStore.getL2Tips();
|
|
@@ -523,15 +622,165 @@ export function testL2TipsStore(makeTipsStore: () => Promise<L2TipsStore>) {
|
|
|
523
622
|
expect(await tipsStore.getL2BlockHash(7)).not.toEqual(originalHash7);
|
|
524
623
|
});
|
|
525
624
|
|
|
526
|
-
// Regression test for #13142
|
|
527
|
-
|
|
625
|
+
// Regression test for #13142: proving an unseen block number (one with no local block->checkpoint
|
|
626
|
+
// mapping) must not blow up. With per-cursor checkpoint ids, the proven tip resolves to the
|
|
627
|
+
// checkpoint id carried by the event rather than falling back to checkpoint zero.
|
|
628
|
+
it('resolves the proven checkpoint from the carried id when setting proven on an unseen block number', async () => {
|
|
528
629
|
await tipsStore.handleBlockStreamEvent({ type: 'blocks-added', blocks: [await makeBlock(5)] });
|
|
529
|
-
|
|
630
|
+
// Block 3 has no local block->checkpoint mapping, but the event carries a real checkpoint id.
|
|
631
|
+
const carriedCheckpoint: CheckpointId = { number: CheckpointNumber(1), hash: new Fr(42).toString() };
|
|
632
|
+
await tipsStore.handleBlockStreamEvent({
|
|
633
|
+
type: 'chain-proven',
|
|
634
|
+
block: makeBlockId(3),
|
|
635
|
+
checkpoint: carriedCheckpoint,
|
|
636
|
+
});
|
|
530
637
|
|
|
531
638
|
const tips = await tipsStore.getL2Tips();
|
|
532
639
|
expect(tips.proposed).toEqual(makeTip(5));
|
|
533
640
|
expect(tips.proven.block).toEqual(makeTip(3));
|
|
534
|
-
//
|
|
535
|
-
expect(tips.proven.checkpoint
|
|
641
|
+
// Resolved from the carried id, not the (missing) local mapping.
|
|
642
|
+
expect(tips.proven.checkpoint).toEqual(carriedCheckpoint);
|
|
643
|
+
});
|
|
644
|
+
|
|
645
|
+
// proven/finalized resolve to the carried checkpoint id even when the block has no local
|
|
646
|
+
// block->checkpoint mapping (the cursor legitimately leads the locally-checkpointed frontier).
|
|
647
|
+
it('resolves proven and finalized checkpoints from carried ids without a local mapping', async () => {
|
|
648
|
+
await tipsStore.handleBlockStreamEvent({ type: 'blocks-added', blocks: [await makeBlock(7)] });
|
|
649
|
+
const provenCheckpoint: CheckpointId = { number: CheckpointNumber(2), hash: new Fr(101).toString() };
|
|
650
|
+
const finalizedCheckpoint: CheckpointId = { number: CheckpointNumber(1), hash: new Fr(100).toString() };
|
|
651
|
+
await tipsStore.handleBlockStreamEvent({
|
|
652
|
+
type: 'chain-proven',
|
|
653
|
+
block: makeBlockId(5),
|
|
654
|
+
checkpoint: provenCheckpoint,
|
|
655
|
+
});
|
|
656
|
+
await tipsStore.handleBlockStreamEvent({
|
|
657
|
+
type: 'chain-finalized',
|
|
658
|
+
block: makeBlockId(3),
|
|
659
|
+
checkpoint: finalizedCheckpoint,
|
|
660
|
+
});
|
|
661
|
+
|
|
662
|
+
const tips = await tipsStore.getL2Tips();
|
|
663
|
+
expect(tips.proven.checkpoint).toEqual(provenCheckpoint);
|
|
664
|
+
expect(tips.finalized.checkpoint).toEqual(finalizedCheckpoint);
|
|
665
|
+
});
|
|
666
|
+
|
|
667
|
+
// Genuine corruption: a cursor points at a real (non-genesis) block that has a block hash but
|
|
668
|
+
// neither a stored per-cursor checkpoint id nor a block->checkpoint mapping. getL2Tips must throw
|
|
669
|
+
// loudly rather than silently report checkpoint zero. We reach this state by reaching past the
|
|
670
|
+
// event API to place the tip directly, since the normal writers always record an id.
|
|
671
|
+
it('throws when a cursor points at a real block with neither a stored id nor a mapping', async () => {
|
|
672
|
+
// blocks-added records the block hash for block 5 (so getBlockId succeeds) but no checkpoint id.
|
|
673
|
+
await tipsStore.handleBlockStreamEvent({ type: 'blocks-added', blocks: [await makeBlock(5)] });
|
|
674
|
+
// Corrupt the proven cursor to point at block 5 without any id or mapping.
|
|
675
|
+
const internal = tipsStore as unknown as { setTip(tag: L2BlockTag, blockNumber: BlockNumber): Promise<void> };
|
|
676
|
+
await internal.setTip('proven', BlockNumber(5));
|
|
677
|
+
|
|
678
|
+
await expect(tipsStore.getL2Tips()).rejects.toThrow(/checkpoint/i);
|
|
679
|
+
});
|
|
680
|
+
|
|
681
|
+
// Backward prune of a leading cursor: a checkpoint-bearing cursor that legitimately leads the source's
|
|
682
|
+
// confirmed checkpointed tip is clamped down to that tip, resolving to the id the prune event carries
|
|
683
|
+
// (never genesis, never a throw). This is the skipped-history shape where the cursor sits on a block
|
|
684
|
+
// ahead of the checkpointed frontier.
|
|
685
|
+
it('clamps a leading checkpoint cursor down to the source checkpointed tip carried by the prune event', async () => {
|
|
686
|
+
// Checkpoint blocks 1-5 (checkpointed = block 5 / ckpt 1), then add uncheckpointed blocks 6-10.
|
|
687
|
+
const blocks1to5 = await Promise.all(times(5, i => makeBlock(i + 1)));
|
|
688
|
+
await tipsStore.handleBlockStreamEvent({ type: 'blocks-added', blocks: blocks1to5 });
|
|
689
|
+
const checkpoint1 = await makeCheckpoint(1, blocks1to5);
|
|
690
|
+
await tipsStore.handleBlockStreamEvent(await makeCheckpointedEvent(checkpoint1));
|
|
691
|
+
const blocks6to10 = await Promise.all(times(5, i => makeBlock(i + 6)));
|
|
692
|
+
await tipsStore.handleBlockStreamEvent({ type: 'blocks-added', blocks: blocks6to10 });
|
|
693
|
+
|
|
694
|
+
// Advance the proven cursor onto an uncheckpointed block (8) via a carried id, so it LEADS the
|
|
695
|
+
// source checkpointed tip (block 5) and will be clamped down to it on prune.
|
|
696
|
+
await tipsStore.handleBlockStreamEvent({
|
|
697
|
+
type: 'chain-proven',
|
|
698
|
+
block: makeBlockId(8),
|
|
699
|
+
checkpoint: { number: CheckpointNumber(2), hash: new Fr(202).toString() },
|
|
700
|
+
});
|
|
701
|
+
|
|
702
|
+
// Prune to block 7, carrying the source's confirmed checkpointed and proven tips (both block 5 / ckpt 1
|
|
703
|
+
// here, the source's proven tip having rolled back together with its checkpointed tip).
|
|
704
|
+
await tipsStore.handleBlockStreamEvent({
|
|
705
|
+
type: 'chain-pruned',
|
|
706
|
+
block: makeBlockId(7),
|
|
707
|
+
checkpointed: makeTipId(5),
|
|
708
|
+
proven: makeTipId(5),
|
|
709
|
+
});
|
|
710
|
+
|
|
711
|
+
// Must not throw; the proven cursor is clamped to the carried proven tip, resolving to ckpt 1.
|
|
712
|
+
const tips = await tipsStore.getL2Tips();
|
|
713
|
+
expect(tips.proposed).toEqual(makeTip(7));
|
|
714
|
+
expect(tips.proven.block).toEqual(makeTip(5));
|
|
715
|
+
expect(tips.proven.checkpoint.number).toEqual(CheckpointNumber(1));
|
|
716
|
+
});
|
|
717
|
+
|
|
718
|
+
it('keeps the checkpointed tip when pruning to an uncheckpointed block ahead of it', async () => {
|
|
719
|
+
const blocks1to5 = await Promise.all(times(5, i => makeBlock(i + 1)));
|
|
720
|
+
await tipsStore.handleBlockStreamEvent({ type: 'blocks-added', blocks: blocks1to5 });
|
|
721
|
+
const checkpoint1 = await makeCheckpoint(1, blocks1to5);
|
|
722
|
+
await tipsStore.handleBlockStreamEvent(await makeCheckpointedEvent(checkpoint1)); // checkpointed = block 5 / ckpt 1
|
|
723
|
+
|
|
724
|
+
const blocks6to7 = await Promise.all(times(2, i => makeBlock(i + 6)));
|
|
725
|
+
await tipsStore.handleBlockStreamEvent({ type: 'blocks-added', blocks: blocks6to7 }); // proposed = 7
|
|
726
|
+
|
|
727
|
+
// Prune to block 6: an uncheckpointed block AHEAD of the checkpointed tip (block 5). The source
|
|
728
|
+
// checkpointed tip is still block 5 / ckpt 1, so the checkpointed cursor must not move.
|
|
729
|
+
await tipsStore.handleBlockStreamEvent({
|
|
730
|
+
type: 'chain-pruned',
|
|
731
|
+
block: makeBlockId(6),
|
|
732
|
+
checkpointed: makeTipId(5),
|
|
733
|
+
proven: makeTipId(0),
|
|
734
|
+
});
|
|
735
|
+
|
|
736
|
+
const tips = await tipsStore.getL2Tips();
|
|
737
|
+
expect(tips.proposed).toEqual(makeTip(6));
|
|
738
|
+
expect(tips.checkpointed.block).toEqual(makeTip(5));
|
|
739
|
+
expect(tips.checkpointed.checkpoint.number).toEqual(CheckpointNumber(1)); // must NOT be zero
|
|
740
|
+
});
|
|
741
|
+
|
|
742
|
+
// Per-cursor clamping on prune: when the source rolls back its proven tip below its checkpointed tip
|
|
743
|
+
// (e.g. a proof tx dropped by an L1 reorg), the prune event carries both source tips and each local
|
|
744
|
+
// cursor must clamp to its OWN source tip. Clamping the proven cursor onto the (higher) checkpointed
|
|
745
|
+
// tip would transiently report unproven blocks as proven until the corrective chain-proven event lands.
|
|
746
|
+
it('clamps the proven cursor to the source proven tip, separately from the checkpointed cursor, on prune', async () => {
|
|
747
|
+
// Checkpoint blocks 1-15 across three checkpoints (ckpt 1 = 1-5, ckpt 2 = 6-10, ckpt 3 = 11-15).
|
|
748
|
+
const blocks1to5 = await Promise.all(times(5, i => makeBlock(i + 1)));
|
|
749
|
+
await tipsStore.handleBlockStreamEvent({ type: 'blocks-added', blocks: blocks1to5 });
|
|
750
|
+
await tipsStore.handleBlockStreamEvent(await makeCheckpointedEvent(await makeCheckpoint(1, blocks1to5)));
|
|
751
|
+
const blocks6to10 = await Promise.all(times(5, i => makeBlock(i + 6)));
|
|
752
|
+
await tipsStore.handleBlockStreamEvent({ type: 'blocks-added', blocks: blocks6to10 });
|
|
753
|
+
await tipsStore.handleBlockStreamEvent(await makeCheckpointedEvent(await makeCheckpoint(2, blocks6to10)));
|
|
754
|
+
const blocks11to15 = await Promise.all(times(5, i => makeBlock(i + 11)));
|
|
755
|
+
await tipsStore.handleBlockStreamEvent({ type: 'blocks-added', blocks: blocks11to15 });
|
|
756
|
+
await tipsStore.handleBlockStreamEvent(await makeCheckpointedEvent(await makeCheckpoint(3, blocks11to15)));
|
|
757
|
+
|
|
758
|
+
// Prove the whole chain up to block 15 (ckpt 3), so the local proven cursor leads both source tips below.
|
|
759
|
+
await tipsStore.handleBlockStreamEvent({
|
|
760
|
+
type: 'chain-proven',
|
|
761
|
+
block: makeBlockId(15),
|
|
762
|
+
checkpoint: makeCheckpointIdForBlock(15),
|
|
763
|
+
});
|
|
764
|
+
|
|
765
|
+
let tips = await tipsStore.getL2Tips();
|
|
766
|
+
expect(tips.checkpointed.block).toEqual(makeTip(15));
|
|
767
|
+
expect(tips.proven.block).toEqual(makeTip(15));
|
|
768
|
+
|
|
769
|
+
// Prune arrives with the source's proven tip (block 5 / ckpt 1) BELOW its checkpointed tip (block 10 /
|
|
770
|
+
// ckpt 2) and below the local proven cursor (block 15). Each cursor must clamp to its own source tip.
|
|
771
|
+
await tipsStore.handleBlockStreamEvent({
|
|
772
|
+
type: 'chain-pruned',
|
|
773
|
+
block: makeBlockId(10),
|
|
774
|
+
checkpointed: makeTipId(10),
|
|
775
|
+
proven: makeTipId(5),
|
|
776
|
+
});
|
|
777
|
+
|
|
778
|
+
tips = await tipsStore.getL2Tips();
|
|
779
|
+
// The proven cursor lands exactly on the source proven tip, NOT on the (higher) checkpointed tip.
|
|
780
|
+
expect(tips.proven.block).toEqual(makeTip(5));
|
|
781
|
+
expect(tips.proven.checkpoint.number).toEqual(CheckpointNumber(1));
|
|
782
|
+
// The checkpointed cursor lands on the source checkpointed tip.
|
|
783
|
+
expect(tips.checkpointed.block).toEqual(makeTip(10));
|
|
784
|
+
expect(tips.checkpointed.checkpoint.number).toEqual(CheckpointNumber(2));
|
|
536
785
|
});
|
|
537
786
|
}
|
|
@@ -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
|
}),
|