@aztec/stdlib 0.0.1-commit.1142ef1 → 0.0.1-commit.11bf3dd6e
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 +138 -1
- package/dest/abi/abi.d.ts.map +1 -1
- package/dest/abi/abi.js +10 -2
- package/dest/abi/authorization_selector.d.ts +3 -6
- 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/decoder.d.ts +6 -45
- package/dest/abi/decoder.d.ts.map +1 -1
- package/dest/abi/decoder.js +17 -70
- package/dest/abi/encoder.d.ts +1 -1
- package/dest/abi/encoder.d.ts.map +1 -1
- package/dest/abi/encoder.js +64 -7
- package/dest/abi/event_metadata_definition.d.ts +3 -1
- package/dest/abi/event_metadata_definition.d.ts.map +1 -1
- package/dest/abi/event_metadata_definition.js +1 -1
- package/dest/abi/event_selector.d.ts +3 -6
- package/dest/abi/event_selector.d.ts.map +1 -1
- package/dest/abi/function_call.d.ts +47 -9
- package/dest/abi/function_call.d.ts.map +1 -1
- package/dest/abi/function_call.js +20 -3
- package/dest/abi/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 +3 -6
- 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 +20 -1
- package/dest/abi/utils.d.ts.map +1 -1
- package/dest/abi/utils.js +22 -0
- package/dest/auth_witness/auth_witness.d.ts +2 -1
- package/dest/auth_witness/auth_witness.d.ts.map +1 -1
- package/dest/auth_witness/auth_witness.js +3 -3
- package/dest/avm/avm.d.ts +362 -362
- package/dest/avm/avm_accumulated_data.d.ts +30 -3
- package/dest/avm/avm_accumulated_data.d.ts.map +1 -1
- package/dest/avm/avm_circuit_public_inputs.d.ts +9 -9
- package/dest/avm/avm_proving_request.d.ts +465 -465
- package/dest/avm/contract_storage_read.d.ts +13 -1
- package/dest/avm/contract_storage_read.d.ts.map +1 -1
- package/dest/avm/contract_storage_update_request.d.ts +13 -1
- package/dest/avm/contract_storage_update_request.d.ts.map +1 -1
- package/dest/avm/public_call_stack_item_compressed.d.ts +3 -1
- package/dest/avm/public_call_stack_item_compressed.d.ts.map +1 -1
- package/dest/avm/public_data_read.d.ts +10 -1
- package/dest/avm/public_data_read.d.ts.map +1 -1
- package/dest/avm/public_data_update_request.d.ts +10 -1
- package/dest/avm/public_data_update_request.d.ts.map +1 -1
- package/dest/avm/public_data_write.d.ts +7 -1
- package/dest/avm/public_data_write.d.ts.map +1 -1
- package/dest/avm/public_inner_call_request.d.ts +4 -1
- package/dest/avm/public_inner_call_request.d.ts.map +1 -1
- package/dest/avm/revert_code.d.ts +12 -7
- package/dest/avm/revert_code.d.ts.map +1 -1
- package/dest/avm/revert_code.js +16 -21
- package/dest/aztec-address/index.d.ts +3 -6
- package/dest/aztec-address/index.d.ts.map +1 -1
- package/dest/aztec-address/index.js +2 -4
- package/dest/block/block_data.d.ts +52 -0
- package/dest/block/block_data.d.ts.map +1 -0
- package/dest/block/block_data.js +12 -0
- package/dest/block/block_hash.d.ts +20 -15
- package/dest/block/block_hash.d.ts.map +1 -1
- package/dest/block/block_hash.js +23 -20
- package/dest/block/block_parameter.d.ts +4 -3
- package/dest/block/block_parameter.d.ts.map +1 -1
- package/dest/block/block_parameter.js +2 -0
- package/dest/block/body.d.ts +1 -1
- package/dest/block/body.d.ts.map +1 -1
- package/dest/block/body.js +2 -1
- package/dest/block/checkpointed_l2_block.d.ts +20 -137
- package/dest/block/checkpointed_l2_block.d.ts.map +1 -1
- package/dest/block/checkpointed_l2_block.js +7 -45
- package/dest/block/in_block.d.ts +9 -9
- package/dest/block/in_block.d.ts.map +1 -1
- package/dest/block/in_block.js +5 -5
- package/dest/block/index.d.ts +2 -3
- package/dest/block/index.d.ts.map +1 -1
- package/dest/block/index.js +1 -2
- package/dest/block/l2_block.d.ts +64 -59
- package/dest/block/l2_block.d.ts.map +1 -1
- package/dest/block/l2_block.js +73 -109
- package/dest/block/l2_block_info.d.ts +6 -5
- 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 +174 -44
- package/dest/block/l2_block_source.d.ts.map +1 -1
- package/dest/block/l2_block_source.js +3 -1
- package/dest/block/l2_block_stream/interfaces.d.ts +14 -8
- package/dest/block/l2_block_stream/interfaces.d.ts.map +1 -1
- package/dest/block/l2_block_stream/l2_block_stream.d.ts +6 -3
- package/dest/block/l2_block_stream/l2_block_stream.d.ts.map +1 -1
- package/dest/block/l2_block_stream/l2_block_stream.js +47 -34
- package/dest/block/l2_block_stream/l2_tips_store_base.d.ts +3 -3
- 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 +18 -5
- 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 +6 -10
- package/dest/block/validate_block_result.d.ts +1 -1
- package/dest/block/validate_block_result.d.ts.map +1 -1
- package/dest/block/validate_block_result.js +5 -4
- package/dest/checkpoint/checkpoint.d.ts +50 -19
- package/dest/checkpoint/checkpoint.d.ts.map +1 -1
- package/dest/checkpoint/checkpoint.js +53 -17
- package/dest/checkpoint/checkpoint_data.d.ts +186 -0
- package/dest/checkpoint/checkpoint_data.d.ts.map +1 -0
- package/dest/checkpoint/checkpoint_data.js +36 -0
- package/dest/checkpoint/index.d.ts +3 -1
- package/dest/checkpoint/index.d.ts.map +1 -1
- package/dest/checkpoint/index.js +2 -0
- package/dest/checkpoint/published_checkpoint.d.ts +33 -16
- package/dest/checkpoint/published_checkpoint.d.ts.map +1 -1
- package/dest/checkpoint/published_checkpoint.js +5 -5
- package/dest/checkpoint/validate.d.ts +36 -0
- package/dest/checkpoint/validate.d.ts.map +1 -0
- package/dest/checkpoint/validate.js +120 -0
- package/dest/config/chain-config.d.ts +1 -1
- package/dest/config/chain-config.d.ts.map +1 -1
- package/dest/config/chain-config.js +7 -1
- package/dest/config/index.d.ts +3 -1
- package/dest/config/index.d.ts.map +1 -1
- package/dest/config/index.js +2 -0
- package/dest/config/node-rpc-config.js +1 -1
- package/dest/config/pipelining-config.d.ts +19 -0
- package/dest/config/pipelining-config.d.ts.map +1 -0
- package/dest/config/pipelining-config.js +18 -0
- package/dest/config/sequencer-config.d.ts +12 -0
- package/dest/config/sequencer-config.d.ts.map +1 -0
- package/dest/config/sequencer-config.js +31 -0
- package/dest/contract/complete_address.d.ts +4 -1
- package/dest/contract/complete_address.d.ts.map +1 -1
- package/dest/contract/contract_address.d.ts +3 -3
- package/dest/contract/contract_address.js +7 -7
- package/dest/contract/contract_class.d.ts +2 -3
- package/dest/contract/contract_class.d.ts.map +1 -1
- package/dest/contract/contract_class_id.d.ts +3 -3
- package/dest/contract/contract_class_id.d.ts.map +1 -1
- package/dest/contract/contract_class_id.js +7 -6
- package/dest/contract/contract_deployment_data.d.ts +5 -5
- package/dest/contract/index.d.ts +1 -5
- package/dest/contract/index.d.ts.map +1 -1
- package/dest/contract/index.js +0 -4
- package/dest/contract/interfaces/contract_class.d.ts +3 -156
- 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 +16 -16
- package/dest/contract/interfaces/node-info.d.ts +3 -1
- package/dest/contract/interfaces/node-info.d.ts.map +1 -1
- package/dest/contract/interfaces/node-info.js +2 -1
- package/dest/contract/private_function.d.ts +1 -1
- package/dest/contract/private_function.d.ts.map +1 -1
- package/dest/contract/private_function.js +3 -4
- package/dest/database-version/database_version.d.ts +58 -0
- package/dest/database-version/database_version.d.ts.map +1 -0
- package/dest/database-version/database_version.js +69 -0
- package/dest/database-version/version_manager.d.ts +3 -49
- package/dest/database-version/version_manager.d.ts.map +1 -1
- package/dest/database-version/version_manager.js +1 -66
- package/dest/delayed_public_mutable/delayed_public_mutable_values.d.ts +2 -2
- package/dest/delayed_public_mutable/delayed_public_mutable_values.d.ts.map +1 -1
- package/dest/delayed_public_mutable/delayed_public_mutable_values.js +7 -10
- package/dest/deserialization/index.d.ts +11 -0
- package/dest/deserialization/index.d.ts.map +1 -0
- package/dest/deserialization/index.js +10 -0
- package/dest/epoch-helpers/index.d.ts +17 -1
- package/dest/epoch-helpers/index.d.ts.map +1 -1
- package/dest/epoch-helpers/index.js +23 -3
- package/dest/errors/proving_error.d.ts +2 -2
- package/dest/errors/proving_error.d.ts.map +1 -1
- 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/file-store/local.d.ts +3 -3
- package/dest/file-store/local.d.ts.map +1 -1
- package/dest/file-store/local.js +13 -4
- package/dest/file-store/s3.d.ts +1 -1
- package/dest/file-store/s3.d.ts.map +1 -1
- package/dest/file-store/s3.js +11 -3
- package/dest/gas/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_fees.d.ts +1 -1
- package/dest/gas/gas_fees.d.ts.map +1 -1
- package/dest/gas/gas_fees.js +13 -1
- package/dest/gas/gas_settings.d.ts +40 -3
- package/dest/gas/gas_settings.d.ts.map +1 -1
- package/dest/gas/gas_settings.js +50 -6
- package/dest/gas/index.d.ts +2 -1
- package/dest/gas/index.d.ts.map +1 -1
- package/dest/gas/index.js +1 -0
- package/dest/ha-signing/config.d.ts +136 -0
- package/dest/ha-signing/config.d.ts.map +1 -0
- package/dest/ha-signing/config.js +97 -0
- package/dest/ha-signing/index.d.ts +4 -0
- package/dest/ha-signing/index.d.ts.map +1 -0
- package/dest/ha-signing/index.js +3 -0
- package/dest/ha-signing/local_config.d.ts +63 -0
- package/dest/ha-signing/local_config.d.ts.map +1 -0
- package/dest/ha-signing/local_config.js +24 -0
- package/dest/ha-signing/types.d.ts +90 -0
- package/dest/ha-signing/types.d.ts.map +1 -0
- package/dest/ha-signing/types.js +39 -0
- package/dest/hash/hash.d.ts +20 -1
- package/dest/hash/hash.d.ts.map +1 -1
- package/dest/hash/hash.js +45 -10
- package/dest/hash/map_slot.d.ts +1 -1
- package/dest/hash/map_slot.d.ts.map +1 -1
- package/dest/hash/map_slot.js +4 -3
- package/dest/interfaces/allowed_element.d.ts +26 -20
- package/dest/interfaces/allowed_element.d.ts.map +1 -1
- package/dest/interfaces/allowed_element.js +8 -8
- package/dest/interfaces/api_limit.d.ts +2 -1
- package/dest/interfaces/api_limit.d.ts.map +1 -1
- package/dest/interfaces/api_limit.js +1 -0
- package/dest/interfaces/archiver.d.ts +1 -1
- package/dest/interfaces/archiver.d.ts.map +1 -1
- package/dest/interfaces/archiver.js +28 -17
- package/dest/interfaces/aztec-node-admin.d.ts +173 -64
- package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
- package/dest/interfaces/aztec-node-admin.js +15 -7
- package/dest/interfaces/aztec-node-debug.d.ts +21 -0
- package/dest/interfaces/aztec-node-debug.d.ts.map +1 -0
- package/dest/interfaces/aztec-node-debug.js +18 -0
- package/dest/interfaces/aztec-node.d.ts +85 -73
- package/dest/interfaces/aztec-node.d.ts.map +1 -1
- package/dest/interfaces/aztec-node.js +17 -18
- package/dest/interfaces/block-builder.d.ts +53 -18
- package/dest/interfaces/block-builder.d.ts.map +1 -1
- package/dest/interfaces/block-builder.js +16 -2
- package/dest/interfaces/client.d.ts +2 -1
- package/dest/interfaces/client.d.ts.map +1 -1
- package/dest/interfaces/client.js +1 -0
- package/dest/interfaces/configs.d.ts +81 -36
- package/dest/interfaces/configs.d.ts.map +1 -1
- package/dest/interfaces/configs.js +10 -3
- package/dest/interfaces/get_logs_response.d.ts +16 -9
- package/dest/interfaces/get_logs_response.d.ts.map +1 -1
- package/dest/interfaces/l2_logs_source.d.ts +16 -5
- package/dest/interfaces/l2_logs_source.d.ts.map +1 -1
- package/dest/interfaces/merkle_tree_operations.d.ts +13 -22
- package/dest/interfaces/merkle_tree_operations.d.ts.map +1 -1
- package/dest/interfaces/p2p.d.ts +4 -9
- package/dest/interfaces/p2p.d.ts.map +1 -1
- package/dest/interfaces/prover-broker.d.ts +16 -1
- package/dest/interfaces/prover-broker.d.ts.map +1 -1
- package/dest/interfaces/prover-broker.js +4 -1
- package/dest/interfaces/prover-client.d.ts +20 -1
- package/dest/interfaces/prover-client.d.ts.map +1 -1
- package/dest/interfaces/prover-client.js +18 -4
- package/dest/interfaces/proving-job.d.ts +50 -50
- package/dest/interfaces/slasher.d.ts +9 -10
- package/dest/interfaces/slasher.d.ts.map +1 -1
- package/dest/interfaces/slasher.js +2 -2
- package/dest/interfaces/tx_provider.d.ts +3 -3
- package/dest/interfaces/tx_provider.d.ts.map +1 -1
- package/dest/interfaces/validator.d.ts +208 -55
- package/dest/interfaces/validator.d.ts.map +1 -1
- package/dest/interfaces/validator.js +11 -5
- package/dest/interfaces/world_state.d.ts +5 -4
- package/dest/interfaces/world_state.d.ts.map +1 -1
- package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts +3 -3
- package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts.map +1 -1
- package/dest/kernel/hints/build_note_hash_read_request_hints.js +29 -16
- package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts +4 -4
- package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts.map +1 -1
- package/dest/kernel/hints/build_nullifier_read_request_hints.js +28 -17
- package/dest/kernel/hints/build_transient_data_hints.d.ts +5 -2
- package/dest/kernel/hints/build_transient_data_hints.d.ts.map +1 -1
- package/dest/kernel/hints/build_transient_data_hints.js +9 -3
- package/dest/kernel/hints/index.d.ts +2 -2
- package/dest/kernel/hints/index.js +2 -2
- package/dest/kernel/hints/key_validation_hint.d.ts +2 -1
- package/dest/kernel/hints/key_validation_hint.d.ts.map +1 -1
- package/dest/kernel/hints/key_validation_request.d.ts +2 -1
- package/dest/kernel/hints/key_validation_request.d.ts.map +1 -1
- package/dest/kernel/hints/key_validation_request_and_separator.d.ts +24 -0
- package/dest/kernel/hints/key_validation_request_and_separator.d.ts.map +1 -0
- package/dest/kernel/hints/{key_validation_request_and_generator.js → key_validation_request_and_separator.js} +12 -15
- package/dest/kernel/hints/private_kernel_reset_hints.d.ts +13 -1
- package/dest/kernel/hints/private_kernel_reset_hints.d.ts.map +1 -1
- package/dest/kernel/hints/read_request.d.ts +7 -1
- package/dest/kernel/hints/read_request.d.ts.map +1 -1
- package/dest/kernel/hints/read_request_hints.d.ts +7 -1
- package/dest/kernel/hints/read_request_hints.d.ts.map +1 -1
- package/dest/kernel/hints/{scoped_key_validation_request_and_generator.d.ts → scoped_key_validation_request_and_separator.d.ts} +8 -8
- package/dest/kernel/hints/{scoped_key_validation_request_and_generator.d.ts.map → scoped_key_validation_request_and_separator.d.ts.map} +1 -1
- package/dest/kernel/hints/{scoped_key_validation_request_and_generator.js → scoped_key_validation_request_and_separator.js} +6 -6
- package/dest/kernel/private_accumulated_data.d.ts +23 -1
- package/dest/kernel/private_accumulated_data.d.ts.map +1 -1
- package/dest/kernel/private_call_data.d.ts +25 -1
- package/dest/kernel/private_call_data.d.ts.map +1 -1
- package/dest/kernel/private_call_request.d.ts +16 -1
- package/dest/kernel/private_call_request.d.ts.map +1 -1
- package/dest/kernel/private_circuit_public_inputs.d.ts +81 -8
- package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_circuit_public_inputs.js +16 -16
- package/dest/kernel/private_kernel_circuit_public_inputs.d.ts +33 -3
- package/dest/kernel/private_kernel_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_circuit_public_inputs.js +4 -4
- package/dest/kernel/private_kernel_data.d.ts +7 -1
- package/dest/kernel/private_kernel_data.d.ts.map +1 -1
- package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts +22 -1
- package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_inner_circuit_private_inputs.d.ts +7 -1
- package/dest/kernel/private_kernel_inner_circuit_private_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_reset_circuit_private_inputs.d.ts +4 -1
- package/dest/kernel/private_kernel_reset_circuit_private_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts +12 -3
- package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_tail_circuit_private_inputs.js +4 -4
- package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts +26 -3
- package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_tail_circuit_public_inputs.js +11 -7
- package/dest/kernel/private_to_avm_accumulated_data.d.ts +2 -2
- package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts +3 -3
- package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_to_public_kernel_circuit_public_inputs.js +7 -7
- package/dest/kernel/private_to_rollup_accumulated_data.d.ts +17 -1
- package/dest/kernel/private_to_rollup_accumulated_data.d.ts.map +1 -1
- package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts +18 -3
- package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.js +7 -7
- package/dest/kernel/private_validation_requests.d.ts +13 -4
- package/dest/kernel/private_validation_requests.d.ts.map +1 -1
- package/dest/kernel/private_validation_requests.js +9 -9
- package/dest/kernel/public_call_request.d.ts +22 -1
- package/dest/kernel/public_call_request.d.ts.map +1 -1
- package/dest/kernel/utils/optional_number.d.ts +7 -1
- package/dest/kernel/utils/optional_number.d.ts.map +1 -1
- package/dest/keys/derivation.d.ts +3 -3
- package/dest/keys/derivation.js +15 -15
- package/dest/keys/key_types.d.ts +3 -3
- package/dest/keys/key_types.d.ts.map +1 -1
- package/dest/keys/public_keys.d.ts +5 -1
- package/dest/keys/public_keys.d.ts.map +1 -1
- package/dest/keys/public_keys.js +2 -2
- package/dest/keys/utils.d.ts +1 -1
- package/dest/keys/utils.d.ts.map +1 -1
- package/dest/keys/utils.js +8 -4
- package/dest/kv-store/config.d.ts +17 -0
- package/dest/kv-store/config.d.ts.map +1 -0
- package/dest/kv-store/config.js +26 -0
- package/dest/kv-store/index.d.ts +2 -0
- package/dest/kv-store/index.d.ts.map +1 -0
- package/dest/kv-store/index.js +1 -0
- 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/debug_log_store.d.ts +30 -0
- package/dest/logs/debug_log_store.d.ts.map +1 -0
- package/dest/logs/debug_log_store.js +30 -0
- package/dest/logs/extended_contract_class_log.d.ts +3 -1
- package/dest/logs/extended_contract_class_log.d.ts.map +1 -1
- package/dest/logs/extended_directional_app_tagging_secret.d.ts +47 -0
- package/dest/logs/extended_directional_app_tagging_secret.d.ts.map +1 -0
- package/dest/logs/{directional_app_tagging_secret.js → extended_directional_app_tagging_secret.js} +35 -20
- package/dest/logs/extended_public_log.d.ts +17 -9
- package/dest/logs/extended_public_log.d.ts.map +1 -1
- package/dest/logs/index.d.ts +4 -2
- package/dest/logs/index.d.ts.map +1 -1
- package/dest/logs/index.js +3 -1
- package/dest/logs/log_filter.d.ts +4 -1
- package/dest/logs/log_filter.d.ts.map +1 -1
- package/dest/logs/log_filter.js +2 -1
- package/dest/logs/log_id.d.ts +21 -14
- package/dest/logs/log_id.d.ts.map +1 -1
- package/dest/logs/log_id.js +19 -17
- package/dest/logs/message_context.d.ts +4 -7
- package/dest/logs/message_context.d.ts.map +1 -1
- package/dest/logs/message_context.js +23 -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 +16 -11
- 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 +2 -2
- package/dest/logs/private_log.d.ts.map +1 -1
- package/dest/logs/public_log.d.ts +4 -3
- package/dest/logs/public_log.d.ts.map +1 -1
- package/dest/logs/public_log.js +2 -1
- 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 +12 -9
- package/dest/logs/siloed_tag.d.ts.map +1 -1
- package/dest/logs/siloed_tag.js +16 -6
- package/dest/logs/tag.d.ts +5 -6
- package/dest/logs/tag.d.ts.map +1 -1
- package/dest/logs/tag.js +5 -1
- package/dest/logs/tagging_index_range.d.ts +40 -0
- package/dest/logs/tagging_index_range.d.ts.map +1 -0
- package/dest/logs/tagging_index_range.js +8 -0
- package/dest/logs/tx_scoped_l2_log.d.ts +3 -1
- package/dest/logs/tx_scoped_l2_log.d.ts.map +1 -1
- package/dest/logs/tx_scoped_l2_log.js +7 -0
- package/dest/messaging/inbox_leaf.d.ts +3 -1
- package/dest/messaging/inbox_leaf.d.ts.map +1 -1
- package/dest/messaging/l1_actor.d.ts +7 -1
- package/dest/messaging/l1_actor.d.ts.map +1 -1
- package/dest/messaging/l1_to_l2_message.d.ts +8 -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/l1_to_l2_message_source.d.ts +4 -2
- package/dest/messaging/l1_to_l2_message_source.d.ts.map +1 -1
- package/dest/messaging/l2_actor.d.ts +7 -1
- package/dest/messaging/l2_actor.d.ts.map +1 -1
- package/dest/messaging/l2_to_l1_membership.d.ts +34 -8
- package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -1
- package/dest/messaging/l2_to_l1_membership.js +77 -32
- package/dest/messaging/out_hash.d.ts +41 -4
- package/dest/messaging/out_hash.d.ts.map +1 -1
- package/dest/messaging/out_hash.js +52 -26
- package/dest/noir/index.d.ts +3 -3
- package/dest/noir/index.d.ts.map +1 -1
- package/dest/note/index.d.ts +1 -2
- package/dest/note/index.d.ts.map +1 -1
- package/dest/note/index.js +0 -1
- package/dest/note/note_dao.d.ts +36 -5
- package/dest/note/note_dao.d.ts.map +1 -1
- package/dest/note/note_dao.js +14 -14
- package/dest/p2p/attestation_utils.d.ts +11 -1
- package/dest/p2p/attestation_utils.d.ts.map +1 -1
- package/dest/p2p/attestation_utils.js +45 -0
- package/dest/p2p/block_proposal.d.ts +26 -13
- package/dest/p2p/block_proposal.d.ts.map +1 -1
- package/dest/p2p/block_proposal.js +29 -18
- package/dest/p2p/checkpoint_attestation.d.ts +9 -6
- package/dest/p2p/checkpoint_attestation.d.ts.map +1 -1
- package/dest/p2p/checkpoint_attestation.js +3 -8
- package/dest/p2p/checkpoint_proposal.d.ts +38 -20
- package/dest/p2p/checkpoint_proposal.d.ts.map +1 -1
- package/dest/p2p/checkpoint_proposal.js +46 -49
- package/dest/p2p/client_type.d.ts +2 -5
- package/dest/p2p/client_type.d.ts.map +1 -1
- package/dest/p2p/client_type.js +0 -7
- package/dest/p2p/consensus_payload.d.ts +15 -5
- package/dest/p2p/consensus_payload.d.ts.map +1 -1
- package/dest/p2p/consensus_payload.js +22 -18
- package/dest/p2p/constants.d.ts +5 -0
- package/dest/p2p/constants.d.ts.map +1 -0
- package/dest/p2p/constants.js +3 -0
- package/dest/p2p/gossipable.d.ts +4 -4
- package/dest/p2p/gossipable.d.ts.map +1 -1
- package/dest/p2p/index.d.ts +2 -2
- package/dest/p2p/index.d.ts.map +1 -1
- package/dest/p2p/index.js +1 -1
- package/dest/p2p/message_validator.d.ts +18 -3
- package/dest/p2p/message_validator.d.ts.map +1 -1
- package/dest/p2p/message_validator.js +2 -1
- package/dest/p2p/peer_error.d.ts +3 -1
- package/dest/p2p/peer_error.d.ts.map +1 -1
- package/dest/p2p/peer_error.js +5 -0
- package/dest/p2p/signed_txs.d.ts +3 -1
- package/dest/p2p/signed_txs.d.ts.map +1 -1
- package/dest/p2p/signed_txs.js +6 -1
- package/dest/p2p/topic_type.d.ts +3 -4
- package/dest/p2p/topic_type.d.ts.map +1 -1
- package/dest/p2p/topic_type.js +7 -23
- package/dest/parity/parity_base_private_inputs.d.ts +3 -1
- package/dest/parity/parity_base_private_inputs.d.ts.map +1 -1
- package/dest/parity/parity_public_inputs.d.ts +4 -1
- package/dest/parity/parity_public_inputs.d.ts.map +1 -1
- package/dest/parity/parity_root_private_inputs.d.ts +2 -1
- package/dest/parity/parity_root_private_inputs.d.ts.map +1 -1
- package/dest/proofs/chonk_proof.d.ts +46 -2
- package/dest/proofs/chonk_proof.d.ts.map +1 -1
- package/dest/proofs/chonk_proof.js +94 -14
- package/dest/proofs/proof.d.ts +4 -1
- package/dest/proofs/proof.d.ts.map +1 -1
- package/dest/proofs/recursive_proof.d.ts +10 -1
- package/dest/proofs/recursive_proof.d.ts.map +1 -1
- package/dest/rollup/base_rollup_hints.d.ts +34 -1
- package/dest/rollup/base_rollup_hints.d.ts.map +1 -1
- package/dest/rollup/block_constant_data.d.ts +12 -1
- package/dest/rollup/block_constant_data.d.ts.map +1 -1
- package/dest/rollup/block_headers_hash.js +1 -1
- package/dest/rollup/block_merge_rollup_private_inputs.d.ts +4 -1
- package/dest/rollup/block_merge_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/block_rollup_public_inputs.d.ts +44 -3
- package/dest/rollup/block_rollup_public_inputs.d.ts.map +1 -1
- package/dest/rollup/block_rollup_public_inputs.js +2 -2
- package/dest/rollup/block_root_rollup_private_inputs.d.ts +64 -1
- package/dest/rollup/block_root_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/checkpoint_constant_data.d.ts +10 -1
- package/dest/rollup/checkpoint_constant_data.d.ts.map +1 -1
- package/dest/rollup/checkpoint_header.d.ts +31 -4
- package/dest/rollup/checkpoint_header.d.ts.map +1 -1
- package/dest/rollup/checkpoint_header.js +23 -7
- package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts +4 -1
- package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/checkpoint_rollup_public_inputs.d.ts +45 -10
- package/dest/rollup/checkpoint_rollup_public_inputs.d.ts.map +1 -1
- package/dest/rollup/checkpoint_rollup_public_inputs.js +11 -7
- package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts +44 -3
- package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/checkpoint_root_rollup_private_inputs.js +13 -2
- package/dest/rollup/epoch_constant_data.d.ts +16 -1
- package/dest/rollup/epoch_constant_data.d.ts.map +1 -1
- package/dest/rollup/root_rollup_private_inputs.d.ts +6 -1
- package/dest/rollup/root_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/root_rollup_public_inputs.d.ts +17 -7
- package/dest/rollup/root_rollup_public_inputs.d.ts.map +1 -1
- package/dest/rollup/root_rollup_public_inputs.js +7 -4
- package/dest/rollup/tree_snapshot_diff_hints.d.ts +24 -1
- package/dest/rollup/tree_snapshot_diff_hints.d.ts.map +1 -1
- package/dest/rollup/tx_merge_rollup_private_inputs.d.ts +4 -1
- package/dest/rollup/tx_merge_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/tx_rollup_public_inputs.d.ts +29 -1
- package/dest/rollup/tx_rollup_public_inputs.d.ts.map +1 -1
- package/dest/schemas/schemas.d.ts +1 -1
- package/dest/slashing/helpers.d.ts +2 -2
- package/dest/slashing/helpers.d.ts.map +1 -1
- package/dest/slashing/helpers.js +6 -0
- 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 +10 -92
- package/dest/slashing/types.d.ts.map +1 -1
- package/dest/slashing/types.js +13 -15
- package/dest/slashing/{tally.d.ts → votes.d.ts} +8 -2
- package/dest/slashing/votes.d.ts.map +1 -0
- package/dest/slashing/{tally.js → votes.js} +35 -3
- package/dest/stats/stats.d.ts +1 -3
- package/dest/stats/stats.d.ts.map +1 -1
- package/dest/tests/factories.d.ts +5 -7
- package/dest/tests/factories.d.ts.map +1 -1
- package/dest/tests/factories.js +37 -55
- package/dest/tests/jest.js +1 -1
- package/dest/tests/mocks.d.ts +26 -15
- package/dest/tests/mocks.d.ts.map +1 -1
- package/dest/tests/mocks.js +85 -62
- package/dest/timetable/index.d.ts +87 -0
- package/dest/timetable/index.d.ts.map +1 -0
- package/dest/timetable/index.js +229 -0
- package/dest/trees/append_only_tree_snapshot.d.ts +13 -1
- package/dest/trees/append_only_tree_snapshot.d.ts.map +1 -1
- package/dest/trees/nullifier_leaf.d.ts +13 -1
- package/dest/trees/nullifier_leaf.d.ts.map +1 -1
- package/dest/trees/nullifier_membership_witness.d.ts +10 -1
- package/dest/trees/nullifier_membership_witness.d.ts.map +1 -1
- package/dest/trees/public_data_leaf.d.ts +17 -1
- package/dest/trees/public_data_leaf.d.ts.map +1 -1
- package/dest/trees/public_data_leaf.js +7 -6
- package/dest/trees/public_data_witness.d.ts +11 -1
- package/dest/trees/public_data_witness.d.ts.map +1 -1
- package/dest/tx/block_header.d.ts +16 -2
- package/dest/tx/block_header.d.ts.map +1 -1
- package/dest/tx/block_header.js +10 -2
- package/dest/tx/call_context.d.ts +13 -1
- package/dest/tx/call_context.d.ts.map +1 -1
- package/dest/tx/capsule.d.ts +9 -2
- package/dest/tx/capsule.d.ts.map +1 -1
- package/dest/tx/capsule.js +9 -3
- package/dest/tx/execution_payload.d.ts +9 -1
- package/dest/tx/execution_payload.d.ts.map +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 -2
- 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 +12 -4
- package/dest/tx/global_variables.d.ts.map +1 -1
- package/dest/tx/hashed_values.d.ts +7 -1
- package/dest/tx/hashed_values.d.ts.map +1 -1
- package/dest/tx/in_tx.d.ts +4 -4
- package/dest/tx/index.d.ts +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 +5 -5
- package/dest/tx/indexed_tx_effect.d.ts.map +1 -1
- package/dest/tx/indexed_tx_effect.js +2 -2
- package/dest/tx/partial_state_reference.d.ts +4 -1
- package/dest/tx/partial_state_reference.d.ts.map +1 -1
- package/dest/tx/private_execution_result.d.ts +27 -6
- package/dest/tx/private_execution_result.d.ts.map +1 -1
- package/dest/tx/private_execution_result.js +7 -7
- package/dest/tx/private_tx_constant_data.d.ts +16 -1
- package/dest/tx/private_tx_constant_data.d.ts.map +1 -1
- package/dest/tx/profiling.d.ts +165 -30
- package/dest/tx/profiling.d.ts.map +1 -1
- package/dest/tx/profiling.js +59 -12
- package/dest/tx/protocol_contracts.d.ts +2 -2
- package/dest/tx/protocol_contracts.d.ts.map +1 -1
- package/dest/tx/protocol_contracts.js +2 -2
- package/dest/tx/public_call_request_with_calldata.d.ts +7 -1
- package/dest/tx/public_call_request_with_calldata.d.ts.map +1 -1
- package/dest/tx/public_simulation_output.d.ts +4 -2
- package/dest/tx/public_simulation_output.d.ts.map +1 -1
- package/dest/tx/public_simulation_output.js +7 -3
- package/dest/tx/simulated_tx.d.ts +116 -5
- package/dest/tx/simulated_tx.d.ts.map +1 -1
- package/dest/tx/simulated_tx.js +7 -4
- package/dest/tx/state_reference.d.ts +3 -1
- package/dest/tx/state_reference.d.ts.map +1 -1
- package/dest/tx/tx.d.ts +31 -7
- package/dest/tx/tx.d.ts.map +1 -1
- package/dest/tx/tx.js +24 -9
- package/dest/tx/tx_context.d.ts +2 -1
- package/dest/tx/tx_context.d.ts.map +1 -1
- package/dest/tx/tx_effect.d.ts +32 -6
- package/dest/tx/tx_effect.d.ts.map +1 -1
- package/dest/tx/tx_effect.js +0 -7
- package/dest/tx/tx_execution_request.d.ts +30 -1
- package/dest/tx/tx_execution_request.d.ts.map +1 -1
- package/dest/tx/tx_hash.d.ts +2 -1
- package/dest/tx/tx_hash.d.ts.map +1 -1
- package/dest/tx/tx_receipt.d.ts +75 -18
- package/dest/tx/tx_receipt.d.ts.map +1 -1
- package/dest/tx/tx_receipt.js +64 -29
- package/dest/tx/tx_request.d.ts +6 -1
- package/dest/tx/tx_request.d.ts.map +1 -1
- package/dest/tx/tx_request.js +2 -2
- package/dest/tx/validator/empty_validator.d.ts +2 -2
- package/dest/tx/validator/empty_validator.d.ts.map +1 -1
- package/dest/tx/validator/error_texts.d.ts +11 -2
- package/dest/tx/validator/error_texts.d.ts.map +1 -1
- package/dest/tx/validator/error_texts.js +13 -1
- package/dest/tx/validator/tx_validator.d.ts +2 -2
- package/dest/tx/validator/tx_validator.d.ts.map +1 -1
- package/dest/types/shared.d.ts +4 -1
- package/dest/types/shared.d.ts.map +1 -1
- package/dest/update-checker/index.d.ts +3 -2
- package/dest/update-checker/index.d.ts.map +1 -1
- package/dest/update-checker/index.js +2 -1
- package/dest/update-checker/package_version.d.ts +3 -0
- package/dest/update-checker/package_version.d.ts.map +1 -0
- package/dest/update-checker/package_version.js +24 -0
- package/dest/update-checker/version_checker.d.ts +25 -0
- package/dest/update-checker/version_checker.d.ts.map +1 -0
- package/dest/update-checker/version_checker.js +50 -0
- package/dest/validators/errors.d.ts +6 -1
- package/dest/validators/errors.d.ts.map +1 -1
- package/dest/validators/errors.js +7 -0
- package/dest/validators/schemas.d.ts +38 -38
- package/dest/validators/schemas.d.ts.map +1 -1
- package/dest/validators/schemas.js +4 -3
- package/dest/validators/types.d.ts +3 -3
- package/dest/validators/types.d.ts.map +1 -1
- package/dest/versioning/versioning.d.ts +4 -2
- package/dest/versioning/versioning.d.ts.map +1 -1
- package/dest/versioning/versioning.js +4 -1
- package/dest/vks/verification_key.d.ts +22 -1
- package/dest/vks/verification_key.d.ts.map +1 -1
- package/dest/vks/vk_data.d.ts +7 -1
- package/dest/vks/vk_data.d.ts.map +1 -1
- package/dest/world-state/genesis_data.d.ts +11 -0
- package/dest/world-state/genesis_data.d.ts.map +1 -0
- package/dest/world-state/genesis_data.js +4 -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/zkpassport/index.d.ts +3 -4
- package/dest/zkpassport/index.d.ts.map +1 -1
- package/dest/zkpassport/index.js +9 -9
- package/package.json +29 -14
- package/src/abi/abi.ts +25 -2
- package/src/abi/authorization_selector.ts +2 -8
- package/src/abi/buffer.ts +25 -4
- package/src/abi/decoder.ts +36 -82
- package/src/abi/encoder.ts +85 -6
- package/src/abi/event_metadata_definition.ts +2 -0
- package/src/abi/event_selector.ts +2 -8
- package/src/abi/function_call.ts +25 -3
- 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 +42 -0
- package/src/auth_witness/auth_witness.ts +3 -3
- package/src/avm/revert_code.ts +26 -25
- package/src/aztec-address/index.ts +4 -10
- package/src/block/block_data.ts +25 -0
- package/src/block/block_hash.ts +32 -24
- package/src/block/block_parameter.ts +4 -2
- package/src/block/body.ts +2 -1
- package/src/block/checkpointed_l2_block.ts +8 -58
- package/src/block/in_block.ts +6 -6
- package/src/block/index.ts +1 -2
- package/src/block/l2_block.ts +112 -148
- package/src/block/l2_block_info.ts +8 -6
- package/src/block/l2_block_source.ts +115 -47
- package/src/block/l2_block_stream/interfaces.ts +14 -7
- package/src/block/l2_block_stream/l2_block_stream.ts +66 -37
- package/src/block/l2_block_stream/l2_tips_store_base.ts +27 -15
- package/src/block/test/l2_tips_store_test_suite.ts +13 -11
- package/src/block/validate_block_result.ts +5 -4
- package/src/checkpoint/checkpoint.ts +82 -23
- package/src/checkpoint/checkpoint_data.ts +87 -0
- package/src/checkpoint/index.ts +2 -0
- package/src/checkpoint/published_checkpoint.ts +7 -4
- package/src/checkpoint/validate.ts +230 -0
- package/src/config/chain-config.ts +7 -1
- package/src/config/index.ts +2 -0
- package/src/config/node-rpc-config.ts +1 -1
- package/src/config/pipelining-config.ts +31 -0
- package/src/config/sequencer-config.ts +47 -0
- package/src/contract/contract_address.ts +7 -7
- package/src/contract/contract_class.ts +3 -3
- package/src/contract/contract_class_id.ts +7 -6
- package/src/contract/index.ts +0 -4
- package/src/contract/interfaces/contract_class.ts +2 -82
- package/src/contract/interfaces/node-info.ts +3 -0
- package/src/contract/private_function.ts +3 -4
- package/src/database-version/database_version.ts +87 -0
- package/src/database-version/version_manager.ts +1 -77
- package/src/delayed_public_mutable/delayed_public_mutable_values.ts +9 -10
- package/src/deserialization/index.ts +21 -0
- package/src/epoch-helpers/index.ts +40 -1
- 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/file-store/local.ts +15 -5
- package/src/file-store/s3.ts +12 -3
- package/src/gas/README.md +154 -0
- package/src/gas/fee_math.ts +120 -0
- package/src/gas/gas_fees.ts +15 -1
- package/src/gas/gas_settings.ts +65 -12
- package/src/gas/index.ts +1 -0
- package/src/ha-signing/config.ts +156 -0
- package/src/ha-signing/index.ts +29 -0
- package/src/ha-signing/local_config.ts +46 -0
- package/src/ha-signing/types.ts +126 -0
- package/src/hash/hash.ts +48 -10
- package/src/hash/map_slot.ts +3 -2
- package/src/interfaces/allowed_element.ts +29 -9
- package/src/interfaces/api_limit.ts +1 -0
- package/src/interfaces/archiver.ts +28 -26
- package/src/interfaces/aztec-node-admin.ts +31 -9
- package/src/interfaces/aztec-node-debug.ts +40 -0
- package/src/interfaces/aztec-node.ts +120 -135
- package/src/interfaces/block-builder.ts +93 -29
- package/src/interfaces/client.ts +1 -0
- package/src/interfaces/configs.ts +37 -11
- package/src/interfaces/l2_logs_source.ts +20 -4
- package/src/interfaces/merkle_tree_operations.ts +12 -21
- package/src/interfaces/p2p.ts +3 -14
- package/src/interfaces/prover-broker.ts +22 -0
- package/src/interfaces/prover-client.ts +32 -5
- package/src/interfaces/slasher.ts +4 -6
- package/src/interfaces/tx_provider.ts +2 -2
- package/src/interfaces/validator.ts +71 -38
- package/src/interfaces/world_state.ts +4 -3
- package/src/kernel/hints/build_note_hash_read_request_hints.ts +31 -24
- package/src/kernel/hints/build_nullifier_read_request_hints.ts +32 -32
- package/src/kernel/hints/build_transient_data_hints.ts +17 -2
- package/src/kernel/hints/index.ts +2 -2
- package/src/kernel/hints/{key_validation_request_and_generator.ts → key_validation_request_and_separator.ts} +12 -15
- package/src/kernel/hints/{scoped_key_validation_request_and_generator.ts → scoped_key_validation_request_and_separator.ts} +10 -10
- package/src/kernel/private_circuit_public_inputs.ts +14 -14
- package/src/kernel/private_kernel_circuit_public_inputs.ts +2 -2
- package/src/kernel/private_kernel_tail_circuit_private_inputs.ts +2 -2
- package/src/kernel/private_kernel_tail_circuit_public_inputs.ts +14 -5
- package/src/kernel/private_to_public_kernel_circuit_public_inputs.ts +5 -5
- package/src/kernel/private_to_rollup_kernel_circuit_public_inputs.ts +5 -5
- package/src/kernel/private_validation_requests.ts +8 -8
- package/src/keys/derivation.ts +15 -15
- package/src/keys/key_types.ts +6 -2
- package/src/keys/public_keys.ts +2 -2
- package/src/keys/utils.ts +8 -4
- package/src/kv-store/config.ts +36 -0
- package/src/kv-store/index.ts +1 -0
- package/src/l1-contracts/index.ts +1 -1
- package/src/logs/debug_log_store.ts +54 -0
- package/src/logs/{directional_app_tagging_secret.ts → extended_directional_app_tagging_secret.ts} +41 -22
- package/src/logs/index.ts +3 -1
- package/src/logs/log_filter.ts +5 -0
- package/src/logs/log_id.ts +21 -18
- package/src/logs/message_context.ts +17 -7
- package/src/logs/pending_tagged_log.ts +1 -3
- package/src/logs/pre_tag.ts +5 -5
- package/src/logs/public_log.ts +4 -2
- package/src/logs/shared_secret_derivation.ts +21 -10
- package/src/logs/siloed_tag.ts +23 -13
- package/src/logs/tag.ts +9 -9
- package/src/logs/tagging_index_range.ts +24 -0
- package/src/logs/tx_scoped_l2_log.ts +16 -0
- package/src/messaging/l1_to_l2_message.ts +12 -9
- package/src/messaging/l1_to_l2_message_source.ts +3 -1
- package/src/messaging/l2_to_l1_membership.ts +106 -39
- package/src/messaging/out_hash.ts +60 -29
- package/src/noir/index.ts +2 -2
- package/src/note/index.ts +0 -1
- package/src/note/note_dao.ts +17 -15
- package/src/p2p/attestation_utils.ts +56 -0
- package/src/p2p/block_proposal.ts +48 -23
- package/src/p2p/checkpoint_attestation.ts +11 -10
- package/src/p2p/checkpoint_proposal.ts +88 -67
- package/src/p2p/client_type.ts +0 -6
- package/src/p2p/consensus_payload.ts +25 -17
- package/src/p2p/constants.ts +6 -0
- package/src/p2p/gossipable.ts +4 -4
- package/src/p2p/index.ts +1 -1
- package/src/p2p/message_validator.ts +14 -2
- package/src/p2p/peer_error.ts +7 -0
- package/src/p2p/signed_txs.ts +6 -1
- package/src/p2p/topic_type.ts +8 -15
- package/src/proofs/chonk_proof.ts +100 -10
- package/src/rollup/block_headers_hash.ts +1 -1
- package/src/rollup/block_rollup_public_inputs.ts +2 -2
- package/src/rollup/checkpoint_header.ts +22 -2
- package/src/rollup/checkpoint_rollup_public_inputs.ts +16 -10
- package/src/rollup/checkpoint_root_rollup_private_inputs.ts +14 -1
- package/src/rollup/root_rollup_public_inputs.ts +11 -8
- package/src/slashing/helpers.ts +8 -0
- package/src/slashing/index.ts +1 -2
- package/src/slashing/serialization.ts +1 -81
- package/src/slashing/types.ts +17 -35
- package/src/slashing/{tally.ts → votes.ts} +41 -2
- package/src/stats/stats.ts +0 -2
- package/src/tests/factories.ts +37 -77
- package/src/tests/jest.ts +1 -1
- package/src/tests/mocks.ts +117 -67
- package/src/timetable/index.ts +346 -0
- package/src/trees/public_data_leaf.ts +11 -5
- package/src/tx/block_header.ts +18 -4
- 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 +3 -3
- package/src/tx/index.ts +1 -0
- package/src/tx/indexed_tx_effect.ts +2 -2
- package/src/tx/private_execution_result.ts +6 -6
- package/src/tx/profiling.ts +60 -9
- package/src/tx/protocol_contracts.ts +2 -2
- package/src/tx/public_simulation_output.ts +4 -0
- package/src/tx/simulated_tx.ts +14 -3
- package/src/tx/tx.ts +30 -22
- package/src/tx/tx_effect.ts +0 -9
- package/src/tx/tx_receipt.ts +98 -29
- package/src/tx/tx_request.ts +2 -2
- package/src/tx/validator/empty_validator.ts +1 -1
- package/src/tx/validator/error_texts.ts +16 -1
- package/src/tx/validator/tx_validator.ts +1 -1
- package/src/update-checker/index.ts +2 -1
- package/src/update-checker/package_version.ts +30 -0
- package/src/update-checker/version_checker.ts +65 -0
- package/src/validators/errors.ts +9 -0
- package/src/validators/schemas.ts +8 -1
- package/src/validators/types.ts +5 -4
- package/src/versioning/versioning.ts +4 -1
- package/src/world-state/genesis_data.ts +15 -0
- package/src/world-state/index.ts +1 -0
- package/src/zkpassport/index.ts +11 -12
- package/dest/block/l2_block_code_to_purge.d.ts +0 -11
- package/dest/block/l2_block_code_to_purge.d.ts.map +0 -1
- package/dest/block/l2_block_code_to_purge.js +0 -55
- package/dest/block/l2_block_header.d.ts +0 -94
- package/dest/block/l2_block_header.d.ts.map +0 -1
- package/dest/block/l2_block_header.js +0 -160
- package/dest/block/l2_block_new.d.ts +0 -134
- package/dest/block/l2_block_new.d.ts.map +0 -1
- package/dest/block/l2_block_new.js +0 -155
- package/dest/contract/contract_class_metadata.d.ts +0 -8
- package/dest/contract/contract_class_metadata.d.ts.map +0 -1
- package/dest/contract/contract_class_metadata.js +0 -1
- package/dest/contract/contract_metadata.d.ts +0 -7
- package/dest/contract/contract_metadata.d.ts.map +0 -1
- package/dest/contract/contract_metadata.js +0 -1
- package/dest/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/database-version/index.d.ts +0 -2
- package/dest/database-version/index.d.ts.map +0 -1
- package/dest/database-version/index.js +0 -1
- package/dest/kernel/hints/key_validation_request_and_generator.d.ts +0 -25
- package/dest/kernel/hints/key_validation_request_and_generator.d.ts.map +0 -1
- package/dest/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 -157
- package/dest/logs/directional_app_tagging_secret.d.ts +0 -40
- package/dest/logs/directional_app_tagging_secret.d.ts.map +0 -1
- package/dest/note/notes_filter.d.ts +0 -27
- package/dest/note/notes_filter.d.ts.map +0 -1
- package/dest/note/notes_filter.js +0 -11
- package/dest/slashing/empire.d.ts +0 -31
- package/dest/slashing/empire.d.ts.map +0 -1
- package/dest/slashing/empire.js +0 -85
- package/dest/slashing/tally.d.ts.map +0 -1
- package/dest/update-checker/update-checker.d.ts +0 -49
- package/dest/update-checker/update-checker.d.ts.map +0 -1
- package/dest/update-checker/update-checker.js +0 -130
- package/src/block/l2_block_code_to_purge.ts +0 -80
- package/src/block/l2_block_header.ts +0 -255
- package/src/block/l2_block_new.ts +0 -211
- package/src/contract/contract_class_metadata.ts +0 -8
- package/src/contract/contract_metadata.ts +0 -7
- package/src/contract/private_function_membership_proof.ts +0 -167
- package/src/contract/utility_function_membership_proof.ts +0 -118
- package/src/database-version/index.ts +0 -1
- package/src/l1-contracts/slash_factory.ts +0 -179
- package/src/note/notes_filter.ts +0 -38
- package/src/slashing/empire.ts +0 -102
- package/src/update-checker/update-checker.ts +0 -166
package/dest/tests/mocks.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { MAX_ENQUEUED_CALLS_PER_TX, MAX_NULLIFIERS_PER_TX, MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX, MAX_TX_LIFETIME, PRIVATE_TX_L2_GAS_OVERHEAD, PUBLIC_TX_L2_GAS_OVERHEAD, TX_DA_GAS_OVERHEAD } from '@aztec/constants';
|
|
2
2
|
import { makeTuple } from '@aztec/foundation/array';
|
|
3
|
-
import { BlockNumber, SlotNumber } from '@aztec/foundation/branded-types';
|
|
3
|
+
import { BlockNumber, CheckpointNumber, IndexWithinCheckpoint, SlotNumber } from '@aztec/foundation/branded-types';
|
|
4
4
|
import { Buffer32 } from '@aztec/foundation/buffer';
|
|
5
5
|
import { padArrayEnd, times } from '@aztec/foundation/collection';
|
|
6
6
|
import { randomBytes } from '@aztec/foundation/crypto/random';
|
|
@@ -12,8 +12,7 @@ import { AvmCircuitPublicInputs } from '../avm/avm_circuit_public_inputs.js';
|
|
|
12
12
|
import { PublicDataWrite } from '../avm/public_data_write.js';
|
|
13
13
|
import { RevertCode } from '../avm/revert_code.js';
|
|
14
14
|
import { AztecAddress } from '../aztec-address/index.js';
|
|
15
|
-
import {
|
|
16
|
-
import { L2Block } from '../block/l2_block.js';
|
|
15
|
+
import { CheckpointedL2Block, CommitteeAttestation, L2Block } from '../block/index.js';
|
|
17
16
|
import { Checkpoint } from '../checkpoint/checkpoint.js';
|
|
18
17
|
import { L1PublishedData } from '../checkpoint/published_checkpoint.js';
|
|
19
18
|
import { computeContractAddressFromInstance } from '../contract/contract_address.js';
|
|
@@ -37,21 +36,24 @@ import { ConsensusPayload } from '../p2p/consensus_payload.js';
|
|
|
37
36
|
import { SignatureDomainSeparator, getHashedSignaturePayloadEthSignedMessage } from '../p2p/signature_utils.js';
|
|
38
37
|
import { ChonkProof } from '../proofs/chonk_proof.js';
|
|
39
38
|
import { ProvingRequestType } from '../proofs/proving_request_type.js';
|
|
39
|
+
import { CheckpointHeader } from '../rollup/checkpoint_header.js';
|
|
40
40
|
import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
|
|
41
|
-
import { GlobalVariables, HashedValues, PrivateCallExecutionResult, PrivateExecutionResult, Tx, TxConstantData, makeProcessedTxFromPrivateOnlyTx, makeProcessedTxFromTxWithPublicCalls } from '../tx/index.js';
|
|
41
|
+
import { BlockHeader, GlobalVariables, HashedValues, PrivateCallExecutionResult, PrivateExecutionResult, Tx, TxConstantData, makeProcessedTxFromPrivateOnlyTx, makeProcessedTxFromTxWithPublicCalls } from '../tx/index.js';
|
|
42
42
|
import { NestedProcessReturnValues, PublicSimulationOutput } from '../tx/public_simulation_output.js';
|
|
43
43
|
import { TxSimulationResult } from '../tx/simulated_tx.js';
|
|
44
44
|
import { TxEffect } from '../tx/tx_effect.js';
|
|
45
45
|
import { TxHash } from '../tx/tx_hash.js';
|
|
46
|
-
import { makeAvmCircuitInputs, makeAztecAddress, makeBlockHeader, makeGas, makeGlobalVariables,
|
|
46
|
+
import { makeAvmCircuitInputs, makeAztecAddress, makeBlockHeader, makeCheckpointHeader, makeGas, makeGlobalVariables, makePrivateToPublicAccumulatedData, makePrivateToRollupAccumulatedData, makeProtocolContracts, makePublicCallRequest, makePublicDataWrite } from './factories.js';
|
|
47
47
|
export const randomTxHash = ()=>TxHash.random();
|
|
48
|
-
export const mockTx = async (seed = 1, { numberOfNonRevertiblePublicCallRequests = MAX_ENQUEUED_CALLS_PER_TX / 2, numberOfRevertiblePublicCallRequests = MAX_ENQUEUED_CALLS_PER_TX / 2, numberOfRevertibleNullifiers = 0, hasPublicTeardownCallRequest = false, publicCalldataSize = 2, feePayer, chonkProof = ChonkProof.random(), maxPriorityFeesPerGas, gasUsed = Gas.empty(), chainId = Fr.ZERO, version = Fr.ZERO, vkTreeRoot = Fr.ZERO, protocolContractsHash = Fr.ZERO } = {})=>{
|
|
48
|
+
export const mockTx = async (seed = 1, { numberOfNonRevertiblePublicCallRequests = MAX_ENQUEUED_CALLS_PER_TX / 2, numberOfRevertiblePublicCallRequests = MAX_ENQUEUED_CALLS_PER_TX / 2, numberOfRevertibleNullifiers = 0, hasPublicTeardownCallRequest = false, publicCalldataSize = 2, feePayer, chonkProof = ChonkProof.random(), gasLimits, maxFeesPerGas = new GasFees(10, 10), maxPriorityFeesPerGas, gasUsed = Gas.empty(), chainId = Fr.ZERO, version = Fr.ZERO, vkTreeRoot = Fr.ZERO, protocolContractsHash = Fr.ZERO, anchorBlockHeader = BlockHeader.empty() } = {})=>{
|
|
49
49
|
const totalPublicCallRequests = numberOfNonRevertiblePublicCallRequests + numberOfRevertiblePublicCallRequests + (hasPublicTeardownCallRequest ? 1 : 0);
|
|
50
50
|
const isForPublic = totalPublicCallRequests > 0;
|
|
51
51
|
const data = PrivateKernelTailCircuitPublicInputs.empty();
|
|
52
52
|
const firstNullifier = new Nullifier(new Fr(seed + 1), Fr.ZERO, 0);
|
|
53
|
-
data.constants.
|
|
54
|
-
|
|
53
|
+
data.constants.anchorBlockHeader = anchorBlockHeader;
|
|
54
|
+
data.constants.txContext.gasSettings = GasSettings.fallback({
|
|
55
|
+
gasLimits,
|
|
56
|
+
maxFeesPerGas,
|
|
55
57
|
maxPriorityFeesPerGas
|
|
56
58
|
});
|
|
57
59
|
data.feePayer = feePayer ?? await AztecAddress.random();
|
|
@@ -60,8 +62,8 @@ export const mockTx = async (seed = 1, { numberOfNonRevertiblePublicCallRequests
|
|
|
60
62
|
data.constants.txContext.version = version;
|
|
61
63
|
data.constants.vkTreeRoot = vkTreeRoot;
|
|
62
64
|
data.constants.protocolContractsHash = protocolContractsHash;
|
|
63
|
-
// Set
|
|
64
|
-
data.
|
|
65
|
+
// Set expirationTimestamp to the maximum allowed duration from the current time.
|
|
66
|
+
data.expirationTimestamp = BigInt(Math.floor(Date.now() / 1000) + MAX_TX_LIFETIME);
|
|
65
67
|
const publicFunctionCalldata = [];
|
|
66
68
|
if (!isForPublic) {
|
|
67
69
|
data.forRollup.end.nullifiers[0] = firstNullifier.value;
|
|
@@ -99,13 +101,13 @@ export const mockTxForRollup = (seed = 1, opts = {})=>mockTx(seed, {
|
|
|
99
101
|
numberOfNonRevertiblePublicCallRequests: 0,
|
|
100
102
|
numberOfRevertiblePublicCallRequests: 0
|
|
101
103
|
});
|
|
102
|
-
/** Mock a processed tx for testing purposes. */ export async function mockProcessedTx({ seed = 1, anchorBlockHeader, db, chainId = Fr.ZERO, version = Fr.ZERO, gasSettings = GasSettings.
|
|
104
|
+
/** Mock a processed tx for testing purposes. */ export async function mockProcessedTx({ seed = 1, anchorBlockHeader, db, chainId = Fr.ZERO, version = Fr.ZERO, gasSettings = GasSettings.fallback({
|
|
103
105
|
maxFeesPerGas: new GasFees(10, 10)
|
|
104
106
|
}), vkTreeRoot = Fr.ZERO, protocolContracts = makeProtocolContracts(seed + 0x100), globalVariables = GlobalVariables.empty(), newL1ToL2Snapshot = AppendOnlyTreeSnapshot.empty(), feePayer, feePaymentPublicDataWrite, // The default gasUsed is the tx overhead.
|
|
105
|
-
gasUsed = Gas.from({
|
|
106
|
-
daGas:
|
|
107
|
-
l2Gas:
|
|
108
|
-
}),
|
|
107
|
+
privateOnly = false, gasUsed = Gas.from({
|
|
108
|
+
daGas: TX_DA_GAS_OVERHEAD,
|
|
109
|
+
l2Gas: privateOnly ? PRIVATE_TX_L2_GAS_OVERHEAD : PUBLIC_TX_L2_GAS_OVERHEAD
|
|
110
|
+
}), avmAccumulatedData, ...mockTxOpts } = {}) {
|
|
109
111
|
seed *= 0x1000; // Avoid clashing with the previous mock values if seed only increases by 1.
|
|
110
112
|
anchorBlockHeader ??= db?.getInitialHeader() ?? makeBlockHeader(seed);
|
|
111
113
|
feePayer ??= makeAztecAddress(seed + 0x100);
|
|
@@ -212,20 +214,29 @@ export function mockL1ToL2Messages(numL1ToL2Messages) {
|
|
|
212
214
|
length: numL1ToL2Messages
|
|
213
215
|
}, ()=>Fr.random());
|
|
214
216
|
}
|
|
215
|
-
export async function mockCheckpointAndMessages(checkpointNumber, { startBlockNumber = BlockNumber(1), numBlocks = 1, numTxsPerBlock = 1, numL1ToL2Messages = 1, makeBlockOptions = ()=>({}), previousArchive, ...options } = {}) {
|
|
216
|
-
const slotNumber = options.slotNumber ?? SlotNumber(checkpointNumber * 10);
|
|
217
|
+
export async function mockCheckpointAndMessages(checkpointNumber, { startBlockNumber = BlockNumber(1), numBlocks = 1, blocks, numTxsPerBlock = 1, numL1ToL2Messages = 1, makeBlockOptions = ()=>({}), previousArchive, maxEffects, ...options } = {}) {
|
|
218
|
+
const slotNumber = options.slotNumber ?? SlotNumber(Number(checkpointNumber) * 10);
|
|
219
|
+
const globals = GlobalVariables.random({
|
|
220
|
+
slotNumber,
|
|
221
|
+
...options
|
|
222
|
+
});
|
|
217
223
|
const blocksAndMessages = [];
|
|
218
224
|
// Track the previous block's archive to ensure consecutive blocks have consistent archive roots.
|
|
219
225
|
// The current block's header.lastArchive must equal the previous block's archive.
|
|
220
226
|
let lastArchive = previousArchive;
|
|
221
|
-
|
|
227
|
+
// Pass maxEffects via txOptions so it reaches TxEffect.random
|
|
228
|
+
const txOptions = maxEffects !== undefined ? {
|
|
229
|
+
maxEffects
|
|
230
|
+
} : {};
|
|
231
|
+
for(let i = 0; i < (blocks?.length ?? numBlocks); i++){
|
|
222
232
|
const blockNumber = BlockNumber(startBlockNumber + i);
|
|
223
233
|
const { block, messages } = {
|
|
224
|
-
block: await
|
|
234
|
+
block: blocks?.[i] ?? await L2Block.random(blockNumber, {
|
|
235
|
+
...globals,
|
|
225
236
|
checkpointNumber,
|
|
226
|
-
indexWithinCheckpoint: i,
|
|
237
|
+
indexWithinCheckpoint: IndexWithinCheckpoint(i),
|
|
227
238
|
txsPerBlock: numTxsPerBlock,
|
|
228
|
-
|
|
239
|
+
txOptions,
|
|
229
240
|
...options,
|
|
230
241
|
...makeBlockOptions(blockNumber),
|
|
231
242
|
...lastArchive ? {
|
|
@@ -243,17 +254,17 @@ export async function mockCheckpointAndMessages(checkpointNumber, { startBlockNu
|
|
|
243
254
|
}
|
|
244
255
|
const messages = blocksAndMessages[0].messages;
|
|
245
256
|
const inHash = computeInHashFromL1ToL2Messages(messages);
|
|
257
|
+
const firstBlockLastArchive = blocksAndMessages[0].block.header.lastArchive;
|
|
246
258
|
const checkpoint = await Checkpoint.random(checkpointNumber, {
|
|
247
259
|
numBlocks: 0,
|
|
248
|
-
slotNumber,
|
|
249
260
|
inHash,
|
|
250
|
-
...options
|
|
261
|
+
...options,
|
|
262
|
+
...globals,
|
|
263
|
+
lastArchive: firstBlockLastArchive,
|
|
264
|
+
lastArchiveRoot: firstBlockLastArchive.root,
|
|
265
|
+
archive: lastArchive
|
|
251
266
|
});
|
|
252
267
|
checkpoint.blocks = blocksAndMessages.map(({ block })=>block);
|
|
253
|
-
// Set the checkpoint's archive to match the last block's archive for proper chaining.
|
|
254
|
-
// When the archiver reconstructs checkpoints from L1, it uses the checkpoint's archive root
|
|
255
|
-
// from the L1 event to set the last block's archive. Without this, the archive chain breaks.
|
|
256
|
-
checkpoint.archive = lastArchive;
|
|
257
268
|
// Return lastArchive so callers can chain it across multiple checkpoints
|
|
258
269
|
return {
|
|
259
270
|
checkpoint,
|
|
@@ -291,16 +302,17 @@ export const randomDeployedContract = async ()=>{
|
|
|
291
302
|
};
|
|
292
303
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
293
304
|
const makeAndSignConsensusPayload = (domainSeparator, options)=>{
|
|
294
|
-
const header = options?.header ??
|
|
295
|
-
const { signer = Secp256k1Signer.random(), archive = Fr.random() } = options ?? {};
|
|
305
|
+
const header = options?.header ?? makeCheckpointHeader(1);
|
|
306
|
+
const { signer = Secp256k1Signer.random(), archive = Fr.random(), feeAssetPriceModifier = 0n } = options ?? {};
|
|
296
307
|
const payload = ConsensusPayload.fromFields({
|
|
297
|
-
header
|
|
298
|
-
archive
|
|
308
|
+
header,
|
|
309
|
+
archive,
|
|
310
|
+
feeAssetPriceModifier
|
|
299
311
|
});
|
|
300
312
|
const hash = getHashedSignaturePayloadEthSignedMessage(payload, domainSeparator);
|
|
301
313
|
const signature = signer.sign(hash);
|
|
302
314
|
return {
|
|
303
|
-
blockNumber: header.
|
|
315
|
+
blockNumber: header.slotNumber,
|
|
304
316
|
payload,
|
|
305
317
|
signature
|
|
306
318
|
};
|
|
@@ -310,9 +322,8 @@ export const makeAndSignCommitteeAttestationsAndSigners = (attestationsAndSigner
|
|
|
310
322
|
return signer.sign(hash);
|
|
311
323
|
};
|
|
312
324
|
export const makeBlockProposal = (options)=>{
|
|
313
|
-
const
|
|
314
|
-
const
|
|
315
|
-
const indexWithinCheckpoint = options?.indexWithinCheckpoint ?? 0;
|
|
325
|
+
const blockHeader = options?.blockHeader ?? makeBlockHeader(1);
|
|
326
|
+
const indexWithinCheckpoint = options?.indexWithinCheckpoint ?? IndexWithinCheckpoint(0);
|
|
316
327
|
const inHash = options?.inHash ?? Fr.random();
|
|
317
328
|
const archiveRoot = options?.archiveRoot ?? Fr.random();
|
|
318
329
|
const txHashes = options?.txHashes ?? [
|
|
@@ -325,36 +336,33 @@ export const makeBlockProposal = (options)=>{
|
|
|
325
336
|
].map(()=>TxHash.random());
|
|
326
337
|
const txs = options?.txs;
|
|
327
338
|
const signer = options?.signer ?? Secp256k1Signer.random();
|
|
328
|
-
return BlockProposal.createProposalFromSigner(blockHeader, indexWithinCheckpoint, inHash, archiveRoot, txHashes, txs, (
|
|
339
|
+
return BlockProposal.createProposalFromSigner(blockHeader, CheckpointNumber(1), indexWithinCheckpoint, inHash, archiveRoot, txHashes, txs, (_payload, _context)=>Promise.resolve(signer.signMessage(_payload)));
|
|
329
340
|
};
|
|
330
|
-
export const makeCheckpointProposal = (options)=>{
|
|
331
|
-
const
|
|
332
|
-
const checkpointHeader = options?.checkpointHeader ?? l2BlockHeader.toCheckpointHeader();
|
|
341
|
+
export const makeCheckpointProposal = async (options)=>{
|
|
342
|
+
const checkpointHeader = options?.checkpointHeader ?? makeCheckpointHeader(1);
|
|
333
343
|
const archiveRoot = options?.archiveRoot ?? Fr.random();
|
|
344
|
+
const feeAssetPriceModifier = options?.feeAssetPriceModifier ?? 0n;
|
|
334
345
|
const signer = options?.signer ?? Secp256k1Signer.random();
|
|
335
|
-
// Build
|
|
336
|
-
const
|
|
337
|
-
blockHeader:
|
|
338
|
-
indexWithinCheckpoint: options.lastBlock.indexWithinCheckpoint ?? 4,
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
].map(()=>TxHash.random()),
|
|
347
|
-
txs: options.lastBlock.txs
|
|
348
|
-
} : undefined;
|
|
349
|
-
return CheckpointProposal.createProposalFromSigner(checkpointHeader, archiveRoot, lastBlockInfo, (payload)=>Promise.resolve(signer.signMessage(payload)));
|
|
346
|
+
// Build a signed block proposal if lastBlock options are provided
|
|
347
|
+
const lastBlockProposal = options?.lastBlock ? await makeBlockProposal({
|
|
348
|
+
blockHeader: options.lastBlock.blockHeader,
|
|
349
|
+
indexWithinCheckpoint: options.lastBlock.indexWithinCheckpoint ?? IndexWithinCheckpoint(4),
|
|
350
|
+
inHash: checkpointHeader.inHash,
|
|
351
|
+
archiveRoot,
|
|
352
|
+
txHashes: options.lastBlock.txHashes,
|
|
353
|
+
txs: options.lastBlock.txs,
|
|
354
|
+
signer
|
|
355
|
+
}) : undefined;
|
|
356
|
+
return CheckpointProposal.createProposalFromSigner(checkpointHeader, archiveRoot, CheckpointNumber(1), feeAssetPriceModifier, lastBlockProposal, (payload)=>Promise.resolve(signer.signMessage(payload)));
|
|
350
357
|
};
|
|
351
358
|
/**
|
|
352
359
|
* Create a checkpoint attestation for testing
|
|
353
360
|
*/ export const makeCheckpointAttestation = (options = {})=>{
|
|
354
|
-
const header = options.header ??
|
|
361
|
+
const header = options.header ?? makeCheckpointHeader(1);
|
|
355
362
|
const archive = options.archive ?? Fr.random();
|
|
363
|
+
const feeAssetPriceModifier = options.feeAssetPriceModifier ?? 0n;
|
|
356
364
|
const { signer, attesterSigner = signer, proposerSigner = signer } = options;
|
|
357
|
-
const payload = new ConsensusPayload(header, archive);
|
|
365
|
+
const payload = new ConsensusPayload(header, archive, feeAssetPriceModifier);
|
|
358
366
|
// Sign as attester
|
|
359
367
|
const attestationHash = getHashedSignaturePayloadEthSignedMessage(payload, SignatureDomainSeparator.checkpointAttestation);
|
|
360
368
|
const attestationSigner = attesterSigner ?? Secp256k1Signer.random();
|
|
@@ -362,7 +370,7 @@ export const makeCheckpointProposal = (options)=>{
|
|
|
362
370
|
// Sign as proposer - use CheckpointProposal's payload format (serializeToBuffer)
|
|
363
371
|
// This is different from ConsensusPayload's format (ABI encoding)
|
|
364
372
|
const proposalSignerToUse = proposerSigner ?? Secp256k1Signer.random();
|
|
365
|
-
const tempProposal = new CheckpointProposal(header, archive, Signature.empty());
|
|
373
|
+
const tempProposal = new CheckpointProposal(header, archive, feeAssetPriceModifier, Signature.empty());
|
|
366
374
|
const proposalHash = getHashedSignaturePayloadEthSignedMessage(tempProposal, SignatureDomainSeparator.checkpointProposal);
|
|
367
375
|
const proposerSignature = proposalSignerToUse.sign(proposalHash);
|
|
368
376
|
return new CheckpointAttestation(payload, attestationSignature, proposerSignature);
|
|
@@ -370,7 +378,7 @@ export const makeCheckpointProposal = (options)=>{
|
|
|
370
378
|
/**
|
|
371
379
|
* Create a checkpoint attestation from a checkpoint proposal
|
|
372
380
|
*/ export const makeCheckpointAttestationFromProposal = (proposal, attesterSigner)=>{
|
|
373
|
-
const payload = new ConsensusPayload(proposal.checkpointHeader, proposal.archive);
|
|
381
|
+
const payload = new ConsensusPayload(proposal.checkpointHeader, proposal.archive, proposal.feeAssetPriceModifier);
|
|
374
382
|
// Sign as attester
|
|
375
383
|
const attestationHash = getHashedSignaturePayloadEthSignedMessage(payload, SignatureDomainSeparator.checkpointAttestation);
|
|
376
384
|
const attestationSigner = attesterSigner ?? Secp256k1Signer.random();
|
|
@@ -383,17 +391,26 @@ export const makeCheckpointProposal = (options)=>{
|
|
|
383
391
|
*/ export const makeCheckpointAttestationFromCheckpoint = (checkpoint, attesterSigner, proposerSigner)=>{
|
|
384
392
|
const header = checkpoint.header;
|
|
385
393
|
const archive = checkpoint.archive.root;
|
|
394
|
+
const feeAssetPriceModifier = checkpoint.feeAssetPriceModifier;
|
|
386
395
|
return makeCheckpointAttestation({
|
|
387
396
|
header,
|
|
388
397
|
archive,
|
|
398
|
+
feeAssetPriceModifier,
|
|
389
399
|
attesterSigner,
|
|
390
400
|
proposerSigner
|
|
391
401
|
});
|
|
392
402
|
};
|
|
393
403
|
/**
|
|
394
404
|
* Create a checkpoint attestation from an L2Block
|
|
405
|
+
* Note: This is a compatibility function for tests. L2Block doesn't have a checkpoint header directly.
|
|
395
406
|
*/ export const makeCheckpointAttestationFromBlock = (block, attesterSigner, proposerSigner)=>{
|
|
396
|
-
|
|
407
|
+
// For L2Block, we create a minimal checkpoint header for testing purposes
|
|
408
|
+
const header = CheckpointHeader.empty({
|
|
409
|
+
lastArchiveRoot: block.header.lastArchive.root,
|
|
410
|
+
slotNumber: block.slot,
|
|
411
|
+
timestamp: block.timestamp,
|
|
412
|
+
blockHeadersHash: Fr.ZERO
|
|
413
|
+
});
|
|
397
414
|
const archive = block.archive.root;
|
|
398
415
|
return makeCheckpointAttestation({
|
|
399
416
|
header,
|
|
@@ -410,11 +427,17 @@ export async function randomPublishedL2Block(l2BlockNumber, opts = {}) {
|
|
|
410
427
|
blockHash: Buffer32.random().toString()
|
|
411
428
|
});
|
|
412
429
|
const signers = opts.signers ?? times(3, ()=>Secp256k1Signer.random());
|
|
430
|
+
const checkpoint = await Checkpoint.random(CheckpointNumber.fromBlockNumber(BlockNumber(l2BlockNumber)), {
|
|
431
|
+
numBlocks: 0
|
|
432
|
+
});
|
|
433
|
+
checkpoint.blocks = [
|
|
434
|
+
block
|
|
435
|
+
];
|
|
413
436
|
const atts = signers.map((signer)=>makeCheckpointAttestation({
|
|
414
437
|
signer,
|
|
415
438
|
archive: block.archive.root,
|
|
416
|
-
header:
|
|
439
|
+
header: checkpoint.header
|
|
417
440
|
}));
|
|
418
441
|
const attestations = atts.map((attestation, i)=>new CommitteeAttestation(signers[i].address, attestation.signature));
|
|
419
|
-
return new
|
|
442
|
+
return new CheckpointedL2Block(CheckpointNumber.fromBlockNumber(BlockNumber(l2BlockNumber)), block, l1, attestations);
|
|
420
443
|
}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Timetable constants used for sequencer timing calculations.
|
|
3
|
+
* These define the time budgets for various phases of block production.
|
|
4
|
+
*
|
|
5
|
+
* The sequencer slot is divided into phases:
|
|
6
|
+
* 1. Checkpoint initialization (sync + proposer check)
|
|
7
|
+
* 2. Block building (execution)
|
|
8
|
+
* 3. Checkpoint assembly
|
|
9
|
+
* 4. P2P propagation for proposal and attestations (round-trip)
|
|
10
|
+
* 5. L1 publishing
|
|
11
|
+
*/
|
|
12
|
+
/** Time budget for checkpoint initialization (sync + proposer check) in seconds */
|
|
13
|
+
export declare const CHECKPOINT_INITIALIZATION_TIME = 1;
|
|
14
|
+
/** Time budget for assembling a checkpoint after building the last block in seconds */
|
|
15
|
+
export declare const CHECKPOINT_ASSEMBLE_TIME = 1;
|
|
16
|
+
/** Default one-way P2P propagation time for proposals and attestations in seconds */
|
|
17
|
+
export declare const DEFAULT_P2P_PROPAGATION_TIME = 2;
|
|
18
|
+
/** Default L1 publishing time (matches Ethereum slot duration on mainnet) in seconds */
|
|
19
|
+
export declare const DEFAULT_L1_PUBLISHING_TIME = 12;
|
|
20
|
+
/** Minimum execution time for building a block in seconds */
|
|
21
|
+
export declare const MIN_EXECUTION_TIME = 2;
|
|
22
|
+
export type CheckpointTimingConfig = {
|
|
23
|
+
aztecSlotDuration: number;
|
|
24
|
+
ethereumSlotDuration?: number;
|
|
25
|
+
blockDuration?: number;
|
|
26
|
+
checkpointAssembleTime?: number;
|
|
27
|
+
checkpointInitializationTime?: number;
|
|
28
|
+
l1PublishingTime?: number;
|
|
29
|
+
minExecutionTime?: number;
|
|
30
|
+
p2pPropagationTime?: number;
|
|
31
|
+
pipelining?: boolean;
|
|
32
|
+
};
|
|
33
|
+
export interface CheckpointTiming {
|
|
34
|
+
readonly aztecSlotDuration: number;
|
|
35
|
+
readonly blockDuration: number | undefined;
|
|
36
|
+
readonly checkpointAssembleTime: number;
|
|
37
|
+
readonly checkpointInitializationTime: number;
|
|
38
|
+
readonly l1PublishingTime: number;
|
|
39
|
+
readonly minExecutionTime: number;
|
|
40
|
+
readonly p2pPropagationTime: number;
|
|
41
|
+
readonly checkpointFinalizationTime: number;
|
|
42
|
+
readonly pipeliningAttestationGracePeriod: number;
|
|
43
|
+
readonly timeReservedAtEnd: number;
|
|
44
|
+
readonly minimumBuildSlotWork: number;
|
|
45
|
+
readonly initializeDeadline: number;
|
|
46
|
+
readonly checkpointAssemblyDeadline: number;
|
|
47
|
+
readonly checkpointAttestationStartDeadline: number;
|
|
48
|
+
readonly checkpointAttestationDeadline: number;
|
|
49
|
+
readonly checkpointPublishingDeadline: number;
|
|
50
|
+
calculateMaxBlocksPerSlot(): number;
|
|
51
|
+
}
|
|
52
|
+
export interface PipelinedCheckpointTiming extends CheckpointTiming {
|
|
53
|
+
readonly proposalWindowIntoTargetSlot: number;
|
|
54
|
+
readonly attestationWindowIntoTargetSlot: number;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Creates a checkpoint timing model for the requested scheduling mode.
|
|
58
|
+
*
|
|
59
|
+
* Most callers should use this factory and depend only on the shared
|
|
60
|
+
* `CheckpointTiming` interface. The returned implementation is selected from
|
|
61
|
+
* `opts.pipelining`.
|
|
62
|
+
*/
|
|
63
|
+
export declare function createCheckpointTimingModel(opts: CheckpointTimingConfig): CheckpointTiming;
|
|
64
|
+
/**
|
|
65
|
+
* Creates a pipelined checkpoint timing model with target-slot window accessors.
|
|
66
|
+
*
|
|
67
|
+
* Use this when the caller specifically needs the pipelined-only timing surface,
|
|
68
|
+
* such as proposal or attestation acceptance windows into the target slot.
|
|
69
|
+
*/
|
|
70
|
+
export declare function createPipelinedCheckpointTimingModel(opts: Omit<CheckpointTimingConfig, 'pipelining'>): PipelinedCheckpointTiming;
|
|
71
|
+
/**
|
|
72
|
+
* Calculates the maximum number of blocks that can be built in a slot.
|
|
73
|
+
* Used by both the sequencer timetable and p2p gossipsub scoring.
|
|
74
|
+
*
|
|
75
|
+
* @param aztecSlotDurationSec - Aztec slot duration in seconds
|
|
76
|
+
* @param blockDurationSec - Duration per block in seconds (undefined = single block mode)
|
|
77
|
+
* @param opts - Optional overrides for timing constants
|
|
78
|
+
* @returns Maximum number of blocks per slot
|
|
79
|
+
*/
|
|
80
|
+
export declare function calculateMaxBlocksPerSlot(aztecSlotDurationSec: number, blockDurationSec: number | undefined, opts?: {
|
|
81
|
+
checkpointInitializationTime?: number;
|
|
82
|
+
checkpointAssembleTime?: number;
|
|
83
|
+
p2pPropagationTime?: number;
|
|
84
|
+
l1PublishingTime?: number;
|
|
85
|
+
pipelining?: boolean;
|
|
86
|
+
}): number;
|
|
87
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90aW1ldGFibGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7R0FVRztBQUVILG1GQUFtRjtBQUNuRixlQUFPLE1BQU0sOEJBQThCLElBQUksQ0FBQztBQUVoRCx1RkFBdUY7QUFDdkYsZUFBTyxNQUFNLHdCQUF3QixJQUFJLENBQUM7QUFFMUMscUZBQXFGO0FBQ3JGLGVBQU8sTUFBTSw0QkFBNEIsSUFBSSxDQUFDO0FBRTlDLHdGQUF3RjtBQUN4RixlQUFPLE1BQU0sMEJBQTBCLEtBQUssQ0FBQztBQUU3Qyw2REFBNkQ7QUFDN0QsZUFBTyxNQUFNLGtCQUFrQixJQUFJLENBQUM7QUFFcEMsTUFBTSxNQUFNLHNCQUFzQixHQUFHO0lBQ25DLGlCQUFpQixFQUFFLE1BQU0sQ0FBQztJQUMxQixvQkFBb0IsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUM5QixhQUFhLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDdkIsc0JBQXNCLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDaEMsNEJBQTRCLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDdEMsZ0JBQWdCLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDMUIsZ0JBQWdCLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDMUIsa0JBQWtCLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDNUIsVUFBVSxDQUFDLEVBQUUsT0FBTyxDQUFDO0NBQ3RCLENBQUM7QUFFRixNQUFNLFdBQVcsZ0JBQWdCO0lBQy9CLFFBQVEsQ0FBQyxpQkFBaUIsRUFBRSxNQUFNLENBQUM7SUFDbkMsUUFBUSxDQUFDLGFBQWEsRUFBRSxNQUFNLEdBQUcsU0FBUyxDQUFDO0lBQzNDLFFBQVEsQ0FBQyxzQkFBc0IsRUFBRSxNQUFNLENBQUM7SUFDeEMsUUFBUSxDQUFDLDRCQUE0QixFQUFFLE1BQU0sQ0FBQztJQUM5QyxRQUFRLENBQUMsZ0JBQWdCLEVBQUUsTUFBTSxDQUFDO0lBQ2xDLFFBQVEsQ0FBQyxnQkFBZ0IsRUFBRSxNQUFNLENBQUM7SUFDbEMsUUFBUSxDQUFDLGtCQUFrQixFQUFFLE1BQU0sQ0FBQztJQUNwQyxRQUFRLENBQUMsMEJBQTBCLEVBQUUsTUFBTSxDQUFDO0lBQzVDLFFBQVEsQ0FBQyxnQ0FBZ0MsRUFBRSxNQUFNLENBQUM7SUFDbEQsUUFBUSxDQUFDLGlCQUFpQixFQUFFLE1BQU0sQ0FBQztJQUNuQyxRQUFRLENBQUMsb0JBQW9CLEVBQUUsTUFBTSxDQUFDO0lBQ3RDLFFBQVEsQ0FBQyxrQkFBa0IsRUFBRSxNQUFNLENBQUM7SUFDcEMsUUFBUSxDQUFDLDBCQUEwQixFQUFFLE1BQU0sQ0FBQztJQUM1QyxRQUFRLENBQUMsa0NBQWtDLEVBQUUsTUFBTSxDQUFDO0lBQ3BELFFBQVEsQ0FBQyw2QkFBNkIsRUFBRSxNQUFNLENBQUM7SUFDL0MsUUFBUSxDQUFDLDRCQUE0QixFQUFFLE1BQU0sQ0FBQztJQUU5Qyx5QkFBeUIsSUFBSSxNQUFNLENBQUM7Q0FDckM7QUFFRCxNQUFNLFdBQVcseUJBQTBCLFNBQVEsZ0JBQWdCO0lBQ2pFLFFBQVEsQ0FBQyw0QkFBNEIsRUFBRSxNQUFNLENBQUM7SUFDOUMsUUFBUSxDQUFDLCtCQUErQixFQUFFLE1BQU0sQ0FBQztDQUNsRDtBQThJRDs7Ozs7O0dBTUc7QUFDSCx3QkFBZ0IsMkJBQTJCLENBQUMsSUFBSSxFQUFFLHNCQUFzQixHQUFHLGdCQUFnQixDQVMxRjtBQUVEOzs7OztHQUtHO0FBQ0gsd0JBQWdCLG9DQUFvQyxDQUNsRCxJQUFJLEVBQUUsSUFBSSxDQUFDLHNCQUFzQixFQUFFLFlBQVksQ0FBQyxHQUMvQyx5QkFBeUIsQ0FPM0I7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILHdCQUFnQix5QkFBeUIsQ0FDdkMsb0JBQW9CLEVBQUUsTUFBTSxFQUM1QixnQkFBZ0IsRUFBRSxNQUFNLEdBQUcsU0FBUyxFQUNwQyxJQUFJLEdBQUU7SUFDSiw0QkFBNEIsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUN0QyxzQkFBc0IsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUNoQyxrQkFBa0IsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUM1QixnQkFBZ0IsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUMxQixVQUFVLENBQUMsRUFBRSxPQUFPLENBQUM7Q0FDakIsR0FDTCxNQUFNLENBVVIifQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/timetable/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,mFAAmF;AACnF,eAAO,MAAM,8BAA8B,IAAI,CAAC;AAEhD,uFAAuF;AACvF,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAE1C,qFAAqF;AACrF,eAAO,MAAM,4BAA4B,IAAI,CAAC;AAE9C,wFAAwF;AACxF,eAAO,MAAM,0BAA0B,KAAK,CAAC;AAE7C,6DAA6D;AAC7D,eAAO,MAAM,kBAAkB,IAAI,CAAC;AAEpC,MAAM,MAAM,sBAAsB,GAAG;IACnC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3C,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,4BAA4B,EAAE,MAAM,CAAC;IAC9C,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,0BAA0B,EAAE,MAAM,CAAC;IAC5C,QAAQ,CAAC,gCAAgC,EAAE,MAAM,CAAC;IAClD,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,0BAA0B,EAAE,MAAM,CAAC;IAC5C,QAAQ,CAAC,kCAAkC,EAAE,MAAM,CAAC;IACpD,QAAQ,CAAC,6BAA6B,EAAE,MAAM,CAAC;IAC/C,QAAQ,CAAC,4BAA4B,EAAE,MAAM,CAAC;IAE9C,yBAAyB,IAAI,MAAM,CAAC;CACrC;AAED,MAAM,WAAW,yBAA0B,SAAQ,gBAAgB;IACjE,QAAQ,CAAC,4BAA4B,EAAE,MAAM,CAAC;IAC9C,QAAQ,CAAC,+BAA+B,EAAE,MAAM,CAAC;CAClD;AA8ID;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,sBAAsB,GAAG,gBAAgB,CAS1F;AAED;;;;;GAKG;AACH,wBAAgB,oCAAoC,CAClD,IAAI,EAAE,IAAI,CAAC,sBAAsB,EAAE,YAAY,CAAC,GAC/C,yBAAyB,CAO3B;AAED;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CACvC,oBAAoB,EAAE,MAAM,EAC5B,gBAAgB,EAAE,MAAM,GAAG,SAAS,EACpC,IAAI,GAAE;IACJ,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,UAAU,CAAC,EAAE,OAAO,CAAC;CACjB,GACL,MAAM,CAUR"}
|
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Timetable constants used for sequencer timing calculations.
|
|
3
|
+
* These define the time budgets for various phases of block production.
|
|
4
|
+
*
|
|
5
|
+
* The sequencer slot is divided into phases:
|
|
6
|
+
* 1. Checkpoint initialization (sync + proposer check)
|
|
7
|
+
* 2. Block building (execution)
|
|
8
|
+
* 3. Checkpoint assembly
|
|
9
|
+
* 4. P2P propagation for proposal and attestations (round-trip)
|
|
10
|
+
* 5. L1 publishing
|
|
11
|
+
*/ /** Time budget for checkpoint initialization (sync + proposer check) in seconds */ export const CHECKPOINT_INITIALIZATION_TIME = 1;
|
|
12
|
+
/** Time budget for assembling a checkpoint after building the last block in seconds */ export const CHECKPOINT_ASSEMBLE_TIME = 1;
|
|
13
|
+
/** Default one-way P2P propagation time for proposals and attestations in seconds */ export const DEFAULT_P2P_PROPAGATION_TIME = 2;
|
|
14
|
+
/** Default L1 publishing time (matches Ethereum slot duration on mainnet) in seconds */ export const DEFAULT_L1_PUBLISHING_TIME = 12;
|
|
15
|
+
/** Minimum execution time for building a block in seconds */ export const MIN_EXECUTION_TIME = 2;
|
|
16
|
+
/**
|
|
17
|
+
* Shared base for checkpoint timing implementations.
|
|
18
|
+
*
|
|
19
|
+
* This class owns the common inputs and formulas used by both pipelined and
|
|
20
|
+
* non-pipelined scheduling. Variant-specific deadline math is delegated to the
|
|
21
|
+
* concrete subclasses below.
|
|
22
|
+
*/ class BaseCheckpointTiming {
|
|
23
|
+
aztecSlotDuration;
|
|
24
|
+
blockDuration;
|
|
25
|
+
checkpointAssembleTime;
|
|
26
|
+
checkpointInitializationTime;
|
|
27
|
+
l1PublishingTime;
|
|
28
|
+
minExecutionTime;
|
|
29
|
+
p2pPropagationTime;
|
|
30
|
+
constructor(opts){
|
|
31
|
+
this.aztecSlotDuration = opts.aztecSlotDuration;
|
|
32
|
+
this.blockDuration = opts.blockDuration;
|
|
33
|
+
this.checkpointAssembleTime = opts.checkpointAssembleTime ?? CHECKPOINT_ASSEMBLE_TIME;
|
|
34
|
+
this.checkpointInitializationTime = opts.checkpointInitializationTime ?? CHECKPOINT_INITIALIZATION_TIME;
|
|
35
|
+
this.l1PublishingTime = opts.l1PublishingTime ?? DEFAULT_L1_PUBLISHING_TIME;
|
|
36
|
+
this.minExecutionTime = opts.minExecutionTime ?? MIN_EXECUTION_TIME;
|
|
37
|
+
this.p2pPropagationTime = opts.p2pPropagationTime ?? DEFAULT_P2P_PROPAGATION_TIME;
|
|
38
|
+
}
|
|
39
|
+
get checkpointFinalizationTime() {
|
|
40
|
+
// Allow enough time to
|
|
41
|
+
// - build the checkpoint
|
|
42
|
+
// - Round-trip over p2p
|
|
43
|
+
// - Publish to L1
|
|
44
|
+
return this.checkpointAssembleTime + this.p2pPropagationTime * 2 + this.l1PublishingTime;
|
|
45
|
+
}
|
|
46
|
+
get pipeliningAttestationGracePeriod() {
|
|
47
|
+
// Allow enough time to
|
|
48
|
+
// - build the block
|
|
49
|
+
// - pass it back over p2p
|
|
50
|
+
return (this.blockDuration ?? 0) + this.p2pPropagationTime;
|
|
51
|
+
}
|
|
52
|
+
get initializeDeadline() {
|
|
53
|
+
return this.aztecSlotDuration - this.minimumBuildSlotWork;
|
|
54
|
+
}
|
|
55
|
+
get checkpointAttestationStartDeadline() {
|
|
56
|
+
return this.checkpointAssemblyDeadline;
|
|
57
|
+
}
|
|
58
|
+
calculateMaxBlocksPerSlot() {
|
|
59
|
+
if (!this.blockDuration) {
|
|
60
|
+
return 1;
|
|
61
|
+
}
|
|
62
|
+
const timeAvailableForBlocks = this.aztecSlotDuration - this.checkpointInitializationTime - this.timeReservedAtEnd;
|
|
63
|
+
return Math.floor(timeAvailableForBlocks / this.blockDuration);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Checkpoint timing model for the non-pipelined sequencer flow.
|
|
68
|
+
*
|
|
69
|
+
* In this mode, checkpoint assembly, attestation collection, and L1 publishing
|
|
70
|
+
* must all complete within the current Aztec slot.
|
|
71
|
+
*/ class StandardCheckpointTimingModel extends BaseCheckpointTiming {
|
|
72
|
+
get timeReservedAtEnd() {
|
|
73
|
+
return (this.blockDuration ?? 0) + this.checkpointFinalizationTime;
|
|
74
|
+
}
|
|
75
|
+
get minimumBuildSlotWork() {
|
|
76
|
+
return this.checkpointInitializationTime + this.minExecutionTime * 2 + this.checkpointFinalizationTime;
|
|
77
|
+
}
|
|
78
|
+
get checkpointAssemblyDeadline() {
|
|
79
|
+
return this.aztecSlotDuration - this.l1PublishingTime - 2 * this.p2pPropagationTime;
|
|
80
|
+
}
|
|
81
|
+
get checkpointAttestationDeadline() {
|
|
82
|
+
return this.aztecSlotDuration - this.l1PublishingTime;
|
|
83
|
+
}
|
|
84
|
+
get checkpointPublishingDeadline() {
|
|
85
|
+
return this.aztecSlotDuration - this.l1PublishingTime;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Checkpoint timing model for proposer pipelining.
|
|
90
|
+
*
|
|
91
|
+
* In this mode, the build work still starts in the current slot, but checkpoint
|
|
92
|
+
* assembly and attestation collection can extend into the target slot. The extra
|
|
93
|
+
* target-slot window getters are intended for consumers such as P2P validators
|
|
94
|
+
* that need to validate pipelined messages against wallclock time.
|
|
95
|
+
*/ class PipelinedCheckpointTimingModel extends BaseCheckpointTiming {
|
|
96
|
+
get proposalWindowIntoTargetSlot() {
|
|
97
|
+
// Allow the p2p propagation time to receive a checkpoint proposal from leader
|
|
98
|
+
return this.p2pPropagationTime;
|
|
99
|
+
}
|
|
100
|
+
get attestationWindowIntoTargetSlot() {
|
|
101
|
+
return this.aztecSlotDuration - this.l1PublishingTime;
|
|
102
|
+
}
|
|
103
|
+
get timeReservedAtEnd() {
|
|
104
|
+
return this.checkpointAssembleTime + this.p2pPropagationTime;
|
|
105
|
+
}
|
|
106
|
+
get minimumBuildSlotWork() {
|
|
107
|
+
return this.checkpointInitializationTime + this.minExecutionTime * 2;
|
|
108
|
+
}
|
|
109
|
+
get checkpointAssemblyDeadline() {
|
|
110
|
+
// Allow enough time to
|
|
111
|
+
// - build all blocks
|
|
112
|
+
// - receive attestations
|
|
113
|
+
return this.aztecSlotDuration + this.pipeliningAttestationGracePeriod;
|
|
114
|
+
}
|
|
115
|
+
get checkpointAttestationDeadline() {
|
|
116
|
+
// Allowed to be into the next wallclock slot minus the allocated l1 publishing time
|
|
117
|
+
return this.aztecSlotDuration * 2 - this.l1PublishingTime;
|
|
118
|
+
}
|
|
119
|
+
get checkpointPublishingDeadline() {
|
|
120
|
+
// Allowed to be into the next wallclock slot minus the allocated l1 Publishing time
|
|
121
|
+
return this.aztecSlotDuration * 2 - this.l1PublishingTime;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Creates a checkpoint timing model for the requested scheduling mode.
|
|
126
|
+
*
|
|
127
|
+
* Most callers should use this factory and depend only on the shared
|
|
128
|
+
* `CheckpointTiming` interface. The returned implementation is selected from
|
|
129
|
+
* `opts.pipelining`.
|
|
130
|
+
*/ export function createCheckpointTimingModel(opts) {
|
|
131
|
+
validateCheckpointTimingConfig(opts);
|
|
132
|
+
const normalizedOpts = normalizeCheckpointTimingConfig(opts);
|
|
133
|
+
const timing = normalizedOpts.pipelining ? new PipelinedCheckpointTimingModel(normalizedOpts) : new StandardCheckpointTimingModel(normalizedOpts);
|
|
134
|
+
validateCheckpointTimingModel(timing);
|
|
135
|
+
return timing;
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Creates a pipelined checkpoint timing model with target-slot window accessors.
|
|
139
|
+
*
|
|
140
|
+
* Use this when the caller specifically needs the pipelined-only timing surface,
|
|
141
|
+
* such as proposal or attestation acceptance windows into the target slot.
|
|
142
|
+
*/ export function createPipelinedCheckpointTimingModel(opts) {
|
|
143
|
+
validateCheckpointTimingConfig(opts);
|
|
144
|
+
const normalizedOpts = normalizeCheckpointTimingConfig(opts);
|
|
145
|
+
const timing = new PipelinedCheckpointTimingModel(normalizedOpts);
|
|
146
|
+
validateCheckpointTimingModel(timing);
|
|
147
|
+
return timing;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Calculates the maximum number of blocks that can be built in a slot.
|
|
151
|
+
* Used by both the sequencer timetable and p2p gossipsub scoring.
|
|
152
|
+
*
|
|
153
|
+
* @param aztecSlotDurationSec - Aztec slot duration in seconds
|
|
154
|
+
* @param blockDurationSec - Duration per block in seconds (undefined = single block mode)
|
|
155
|
+
* @param opts - Optional overrides for timing constants
|
|
156
|
+
* @returns Maximum number of blocks per slot
|
|
157
|
+
*/ export function calculateMaxBlocksPerSlot(aztecSlotDurationSec, blockDurationSec, opts = {}) {
|
|
158
|
+
return createCheckpointTimingModel({
|
|
159
|
+
aztecSlotDuration: aztecSlotDurationSec,
|
|
160
|
+
blockDuration: blockDurationSec,
|
|
161
|
+
checkpointAssembleTime: opts.checkpointAssembleTime,
|
|
162
|
+
checkpointInitializationTime: opts.checkpointInitializationTime,
|
|
163
|
+
l1PublishingTime: opts.l1PublishingTime,
|
|
164
|
+
p2pPropagationTime: opts.p2pPropagationTime,
|
|
165
|
+
pipelining: opts.pipelining
|
|
166
|
+
}).calculateMaxBlocksPerSlot();
|
|
167
|
+
}
|
|
168
|
+
function assertNonNegative(name, value) {
|
|
169
|
+
if (value < 0) {
|
|
170
|
+
throw new Error(`${name} must be non-negative (got ${value})`);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
function validateCheckpointTimingConfig(opts) {
|
|
174
|
+
if (opts.aztecSlotDuration <= 0) {
|
|
175
|
+
throw new Error(`aztecSlotDuration must be positive (got ${opts.aztecSlotDuration})`);
|
|
176
|
+
}
|
|
177
|
+
if (opts.ethereumSlotDuration !== undefined && opts.ethereumSlotDuration <= 0) {
|
|
178
|
+
throw new Error(`ethereumSlotDuration must be positive when provided (got ${opts.ethereumSlotDuration})`);
|
|
179
|
+
}
|
|
180
|
+
if (opts.blockDuration !== undefined && opts.blockDuration <= 0) {
|
|
181
|
+
throw new Error(`blockDuration must be positive when provided (got ${opts.blockDuration})`);
|
|
182
|
+
}
|
|
183
|
+
if (opts.minExecutionTime !== undefined && opts.minExecutionTime <= 0) {
|
|
184
|
+
throw new Error(`minExecutionTime must be positive when provided (got ${opts.minExecutionTime})`);
|
|
185
|
+
}
|
|
186
|
+
if (opts.checkpointAssembleTime !== undefined) {
|
|
187
|
+
assertNonNegative('checkpointAssembleTime', opts.checkpointAssembleTime);
|
|
188
|
+
}
|
|
189
|
+
if (opts.checkpointInitializationTime !== undefined) {
|
|
190
|
+
assertNonNegative('checkpointInitializationTime', opts.checkpointInitializationTime);
|
|
191
|
+
}
|
|
192
|
+
if (opts.l1PublishingTime !== undefined) {
|
|
193
|
+
assertNonNegative('l1PublishingTime', opts.l1PublishingTime);
|
|
194
|
+
}
|
|
195
|
+
if (opts.p2pPropagationTime !== undefined) {
|
|
196
|
+
assertNonNegative('p2pPropagationTime', opts.p2pPropagationTime);
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
function normalizeCheckpointTimingConfig(opts) {
|
|
200
|
+
let checkpointAssembleTime = opts.checkpointAssembleTime ?? CHECKPOINT_ASSEMBLE_TIME;
|
|
201
|
+
let checkpointInitializationTime = opts.checkpointInitializationTime ?? CHECKPOINT_INITIALIZATION_TIME;
|
|
202
|
+
let minExecutionTime = opts.minExecutionTime ?? MIN_EXECUTION_TIME;
|
|
203
|
+
let p2pPropagationTime = opts.p2pPropagationTime ?? DEFAULT_P2P_PROPAGATION_TIME;
|
|
204
|
+
if (opts.ethereumSlotDuration !== undefined && opts.ethereumSlotDuration < 8) {
|
|
205
|
+
p2pPropagationTime = 0;
|
|
206
|
+
checkpointAssembleTime = 0.5;
|
|
207
|
+
checkpointInitializationTime = 0.5;
|
|
208
|
+
minExecutionTime = 1;
|
|
209
|
+
}
|
|
210
|
+
if (opts.blockDuration !== undefined && minExecutionTime > opts.blockDuration) {
|
|
211
|
+
minExecutionTime = opts.blockDuration;
|
|
212
|
+
}
|
|
213
|
+
return {
|
|
214
|
+
...opts,
|
|
215
|
+
checkpointAssembleTime,
|
|
216
|
+
checkpointInitializationTime,
|
|
217
|
+
minExecutionTime,
|
|
218
|
+
p2pPropagationTime
|
|
219
|
+
};
|
|
220
|
+
}
|
|
221
|
+
function validateCheckpointTimingModel(model) {
|
|
222
|
+
if (model.blockDuration === undefined) {
|
|
223
|
+
return;
|
|
224
|
+
}
|
|
225
|
+
const timeAvailableForBlocks = model.aztecSlotDuration - model.checkpointInitializationTime - model.timeReservedAtEnd;
|
|
226
|
+
if (timeAvailableForBlocks < model.blockDuration) {
|
|
227
|
+
throw new Error(`Invalid timing configuration: only ${timeAvailableForBlocks}s available for block building, which is less than one blockDuration (${model.blockDuration}s).`);
|
|
228
|
+
}
|
|
229
|
+
}
|
|
@@ -9,7 +9,19 @@ import type { UInt32 } from '../types/shared.js';
|
|
|
9
9
|
* Used in circuits to verify that tree insertions are performed correctly.
|
|
10
10
|
*/
|
|
11
11
|
export declare class AppendOnlyTreeSnapshot {
|
|
12
|
+
/**
|
|
13
|
+
* Root of the append only tree when taking the snapshot.
|
|
14
|
+
*/
|
|
12
15
|
root: Fr;
|
|
16
|
+
/**
|
|
17
|
+
* Index of the next available leaf in the append only tree.
|
|
18
|
+
*
|
|
19
|
+
* Note: We include the next available leaf index in the snapshot so that the snapshot can be used to verify that
|
|
20
|
+
* the insertion was performed at the correct place. If we only verified tree root then it could happen that
|
|
21
|
+
* some leaves would get overwritten and the tree root check would still pass.
|
|
22
|
+
* TLDR: We need to store the next available leaf index to ensure that the "append only" property was
|
|
23
|
+
* preserved when verifying state transitions.
|
|
24
|
+
*/
|
|
13
25
|
nextAvailableLeafIndex: UInt32;
|
|
14
26
|
constructor(
|
|
15
27
|
/**
|
|
@@ -61,4 +73,4 @@ export declare class AppendOnlyTreeSnapshot {
|
|
|
61
73
|
equals(other: this): boolean;
|
|
62
74
|
static random(): AppendOnlyTreeSnapshot;
|
|
63
75
|
}
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwZW5kX29ubHlfdHJlZV9zbmFwc2hvdC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3RyZWVzL2FwcGVuZF9vbmx5X3RyZWVfc25hcHNob3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXBELE9BQU8sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFxQixNQUFNLDZCQUE2QixDQUFDO0FBRzNGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUV4QixPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVqRDs7OztHQUlHO0FBQ0gscUJBQWEsc0JBQXNCO0lBRS9COztPQUVHO0lBQ0ksSUFBSSxFQUFFLEVBQUU7SUFDZjs7Ozs7Ozs7T0FRRztJQUNJLHNCQUFzQixFQUFFLE1BQU07SUFkdkM7SUFDRTs7T0FFRztJQUNJLElBQUksRUFBRSxFQUFFO0lBQ2Y7Ozs7Ozs7O09BUUc7SUFDSSxzQkFBc0IsRUFBRSxNQUFNLEVBQ25DO0lBRUosTUFBTSxLQUFLLE1BQU07Ozs7Ozs7Ozs7OztPQU9oQjtJQUVELE9BQU8sV0FFTjtJQUVELFFBQVEsNEJBRVA7SUFFRCxRQUFRLElBQUksRUFBRSxFQUFFLENBRWY7SUFFRCxRQUFRLElBQUksTUFBTSxDQUVqQjtJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxZQUFZLEdBQUcsc0JBQXNCLENBR3ZFO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxHQUFHLHNCQUFzQixDQUVyRDtJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLEVBQUUsRUFBRSxHQUFHLFdBQVcsR0FBRyxzQkFBc0IsQ0FJcEU7SUFFRCxLQUFLLElBQUksQ0FBQyxLQUFLLE1BQU0sRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUUvQjtJQUVELE1BQU0sQ0FBQyxLQUFLLDJCQUVYO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsTUFBTSxDQUFDLGVBQWUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxHQUFHLHNCQUFzQixDQUV2RDtJQUVELE9BQU8sSUFBSSxPQUFPLENBRWpCO0lBRUQsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFdBSWY7SUFFTSxNQUFNLENBQUMsS0FBSyxFQUFFLElBQUksV0FFeEI7SUFFRCxNQUFNLENBQUMsTUFBTSwyQkFFWjtDQUNGIn0=
|