@aztec/stdlib 0.0.1-commit.181e2d196 → 0.0.1-commit.189eedb3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dest/abi/abi.d.ts +142 -1081
- package/dest/abi/abi.d.ts.map +1 -1
- package/dest/abi/abi.js +41 -18
- package/dest/abi/authorization_selector.d.ts +4 -7
- package/dest/abi/authorization_selector.d.ts.map +1 -1
- package/dest/abi/buffer.d.ts +14 -4
- package/dest/abi/buffer.d.ts.map +1 -1
- package/dest/abi/buffer.js +25 -4
- package/dest/abi/contract_artifact.d.ts +1 -1
- package/dest/abi/contract_artifact.d.ts.map +1 -1
- package/dest/abi/contract_artifact.js +14 -7
- package/dest/abi/decoder.d.ts +6 -45
- package/dest/abi/decoder.d.ts.map +1 -1
- package/dest/abi/decoder.js +17 -67
- package/dest/abi/encoder.d.ts +1 -1
- package/dest/abi/encoder.d.ts.map +1 -1
- package/dest/abi/encoder.js +60 -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 +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 +14 -1
- package/dest/abi/utils.d.ts.map +1 -1
- package/dest/abi/utils.js +16 -1
- package/dest/auth_witness/auth_witness.d.ts +2 -2
- package/dest/auth_witness/auth_witness.d.ts.map +1 -1
- package/dest/avm/avm.d.ts +1756 -10463
- package/dest/avm/avm.d.ts.map +1 -1
- package/dest/avm/avm.js +6 -3
- package/dest/avm/avm_accumulated_data.d.ts +22 -86
- package/dest/avm/avm_accumulated_data.d.ts.map +1 -1
- package/dest/avm/avm_circuit_public_inputs.d.ts +180 -932
- package/dest/avm/avm_circuit_public_inputs.d.ts.map +1 -1
- package/dest/avm/avm_proving_request.d.ts +653 -5446
- package/dest/avm/avm_proving_request.d.ts.map +1 -1
- package/dest/avm/message_pack.js +12 -3
- package/dest/avm/public_data_write.d.ts +6 -12
- package/dest/avm/public_data_write.d.ts.map +1 -1
- package/dest/avm/revert_code.d.ts +5 -21
- package/dest/avm/revert_code.d.ts.map +1 -1
- package/dest/avm/revert_code.js +12 -30
- package/dest/aztec-address/index.d.ts +8 -8
- package/dest/aztec-address/index.d.ts.map +1 -1
- package/dest/aztec-address/index.js +9 -6
- package/dest/block/attestation_info.d.ts +3 -2
- package/dest/block/attestation_info.d.ts.map +1 -1
- package/dest/block/attestation_info.js +7 -5
- package/dest/block/block_data.d.ts +13 -38
- package/dest/block/block_data.d.ts.map +1 -1
- package/dest/block/block_data.js +2 -2
- package/dest/block/block_hash.d.ts +11 -10
- package/dest/block/block_hash.d.ts.map +1 -1
- package/dest/block/block_hash.js +10 -9
- package/dest/block/block_parameter.d.ts +37 -4
- package/dest/block/block_parameter.d.ts.map +1 -1
- package/dest/block/block_parameter.js +53 -2
- package/dest/block/in_block.d.ts +5 -24
- package/dest/block/in_block.d.ts.map +1 -1
- package/dest/block/index.d.ts +1 -2
- package/dest/block/index.d.ts.map +1 -1
- package/dest/block/index.js +0 -1
- package/dest/block/l2_block.d.ts +21 -41
- package/dest/block/l2_block.d.ts.map +1 -1
- package/dest/block/l2_block.js +12 -2
- 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 +215 -356
- package/dest/block/l2_block_source.d.ts.map +1 -1
- package/dest/block/l2_block_source.js +67 -1
- package/dest/block/l2_block_stream/interfaces.d.ts +6 -3
- package/dest/block/l2_block_stream/interfaces.d.ts.map +1 -1
- package/dest/block/l2_block_stream/l2_block_stream.d.ts +2 -2
- package/dest/block/l2_block_stream/l2_block_stream.d.ts.map +1 -1
- package/dest/block/l2_block_stream/l2_block_stream.js +44 -17
- package/dest/block/l2_block_stream/l2_tips_memory_store.d.ts +3 -1
- package/dest/block/l2_block_stream/l2_tips_memory_store.d.ts.map +1 -1
- package/dest/block/l2_block_stream/l2_tips_memory_store.js +3 -0
- package/dest/block/l2_block_stream/l2_tips_store_base.d.ts +4 -1
- package/dest/block/l2_block_stream/l2_tips_store_base.d.ts.map +1 -1
- package/dest/block/l2_block_stream/l2_tips_store_base.js +43 -11
- 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 +5 -4
- package/dest/checkpoint/checkpoint.d.ts +31 -96
- package/dest/checkpoint/checkpoint.d.ts.map +1 -1
- package/dest/checkpoint/checkpoint.js +18 -5
- 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/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 +4 -9
- package/dest/config/chain-config.d.ts.map +1 -1
- package/dest/config/chain-config.js +13 -12
- package/dest/config/sequencer-config.d.ts +4 -2
- package/dest/config/sequencer-config.d.ts.map +1 -1
- package/dest/config/sequencer-config.js +18 -5
- package/dest/contract/complete_address.d.ts +3 -2
- package/dest/contract/complete_address.d.ts.map +1 -1
- package/dest/contract/complete_address.js +6 -2
- package/dest/contract/contract_address.d.ts +6 -6
- package/dest/contract/contract_address.d.ts.map +1 -1
- package/dest/contract/contract_address.js +6 -5
- package/dest/contract/contract_class_id.d.ts +2 -2
- package/dest/contract/contract_class_id.js +2 -2
- package/dest/contract/contract_deployment_data.d.ts +15 -61
- package/dest/contract/contract_deployment_data.d.ts.map +1 -1
- package/dest/contract/contract_instance.d.ts +4 -2
- package/dest/contract/contract_instance.d.ts.map +1 -1
- package/dest/contract/contract_instance.js +10 -3
- package/dest/contract/index.d.ts +1 -3
- package/dest/contract/index.d.ts.map +1 -1
- package/dest/contract/index.js +0 -2
- package/dest/contract/interfaces/contract_class.d.ts +17 -241
- package/dest/contract/interfaces/contract_class.d.ts.map +1 -1
- package/dest/contract/interfaces/contract_class.js +1 -28
- package/dest/contract/interfaces/contract_instance.d.ts +41 -95
- package/dest/contract/interfaces/contract_instance.d.ts.map +1 -1
- package/dest/contract/interfaces/contract_instance.js +4 -2
- package/dest/contract/interfaces/contract_instance_update.d.ts +6 -26
- package/dest/contract/interfaces/contract_instance_update.d.ts.map +1 -1
- package/dest/contract/interfaces/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/epoch-helpers/index.d.ts +12 -20
- package/dest/epoch-helpers/index.d.ts.map +1 -1
- package/dest/epoch-helpers/index.js +16 -2
- package/dest/file-store/factory.d.ts +4 -3
- package/dest/file-store/factory.d.ts.map +1 -1
- package/dest/file-store/factory.js +2 -2
- package/dest/file-store/http.d.ts +9 -2
- package/dest/file-store/http.d.ts.map +1 -1
- package/dest/file-store/http.js +20 -9
- package/dest/file-store/index.d.ts +2 -1
- package/dest/file-store/index.d.ts.map +1 -1
- package/dest/gas/fee_math.d.ts +49 -0
- package/dest/gas/fee_math.d.ts.map +1 -0
- package/dest/gas/fee_math.js +80 -0
- package/dest/gas/gas.d.ts +9 -14
- package/dest/gas/gas.d.ts.map +1 -1
- package/dest/gas/gas.js +6 -3
- package/dest/gas/gas_fees.d.ts +13 -14
- package/dest/gas/gas_fees.d.ts.map +1 -1
- package/dest/gas/gas_fees.js +17 -4
- package/dest/gas/gas_settings.d.ts +66 -86
- package/dest/gas/gas_settings.d.ts.map +1 -1
- package/dest/gas/gas_settings.js +56 -9
- 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 +28 -57
- package/dest/ha-signing/config.d.ts.map +1 -1
- package/dest/ha-signing/config.js +24 -28
- package/dest/ha-signing/index.d.ts +4 -3
- package/dest/ha-signing/index.d.ts.map +1 -1
- package/dest/ha-signing/index.js +3 -2
- package/dest/ha-signing/local_config.d.ts +32 -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 +37 -32
- package/dest/ha-signing/types.d.ts.map +1 -1
- package/dest/ha-signing/types.js +13 -6
- package/dest/hash/hash.d.ts +34 -1
- package/dest/hash/hash.d.ts.map +1 -1
- package/dest/hash/hash.js +63 -2
- package/dest/interfaces/allowed_element.d.ts +16 -16
- package/dest/interfaces/allowed_element.d.ts.map +1 -1
- package/dest/interfaces/allowed_element.js +8 -2
- package/dest/interfaces/api_limit.d.ts +1 -1
- package/dest/interfaces/api_limit.js +1 -1
- package/dest/interfaces/archiver.d.ts +22 -32
- package/dest/interfaces/archiver.d.ts.map +1 -1
- package/dest/interfaces/archiver.js +214 -69
- package/dest/interfaces/aztec-node-admin.d.ts +80 -258
- package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
- package/dest/interfaces/aztec-node-admin.js +59 -16
- 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 +21 -0
- package/dest/interfaces/aztec-node.d.ts +114 -105
- package/dest/interfaces/aztec-node.d.ts.map +1 -1
- package/dest/interfaces/aztec-node.js +311 -68
- package/dest/interfaces/block-builder.d.ts +40 -11
- package/dest/interfaces/block-builder.d.ts.map +1 -1
- package/dest/interfaces/block-builder.js +12 -5
- package/dest/interfaces/block_response.d.ts +90 -0
- package/dest/interfaces/block_response.d.ts.map +1 -0
- package/dest/interfaces/block_response.js +30 -0
- package/dest/interfaces/chain_tips.d.ts +50 -0
- package/dest/interfaces/chain_tips.d.ts.map +1 -0
- package/dest/interfaces/chain_tips.js +11 -0
- package/dest/interfaces/checkpoint_parameter.d.ts +14 -0
- package/dest/interfaces/checkpoint_parameter.d.ts.map +1 -0
- package/dest/interfaces/checkpoint_parameter.js +18 -0
- package/dest/interfaces/checkpoint_response.d.ts +122 -0
- package/dest/interfaces/checkpoint_response.d.ts.map +1 -0
- package/dest/interfaces/checkpoint_response.js +26 -0
- package/dest/interfaces/client.d.ts +8 -2
- package/dest/interfaces/client.d.ts.map +1 -1
- package/dest/interfaces/client.js +7 -1
- package/dest/interfaces/configs.d.ts +56 -105
- package/dest/interfaces/configs.d.ts.map +1 -1
- package/dest/interfaces/configs.js +12 -2
- 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 -34
- 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 +20 -23
- package/dest/interfaces/merkle_tree_operations.d.ts.map +1 -1
- package/dest/interfaces/p2p-bootstrap.js +8 -2
- package/dest/interfaces/p2p.d.ts +15 -5
- package/dest/interfaces/p2p.d.ts.map +1 -1
- package/dest/interfaces/p2p.js +28 -5
- package/dest/interfaces/private_kernel_prover.d.ts +62 -2
- package/dest/interfaces/private_kernel_prover.d.ts.map +1 -1
- package/dest/interfaces/prover-agent.d.ts +5 -23
- package/dest/interfaces/prover-agent.d.ts.map +1 -1
- package/dest/interfaces/prover-agent.js +4 -1
- package/dest/interfaces/prover-client.d.ts +9 -25
- package/dest/interfaces/prover-client.d.ts.map +1 -1
- package/dest/interfaces/prover-client.js +7 -4
- package/dest/interfaces/prover-node.js +22 -8
- package/dest/interfaces/proving-job-source.js +24 -4
- package/dest/interfaces/proving-job.d.ts +742 -5793
- package/dest/interfaces/proving-job.d.ts.map +1 -1
- package/dest/interfaces/proving-job.js +1 -1
- package/dest/interfaces/public_storage_override.d.ts +22 -0
- package/dest/interfaces/public_storage_override.d.ts.map +1 -0
- package/dest/interfaces/public_storage_override.js +7 -0
- package/dest/interfaces/server.d.ts +6 -1
- package/dest/interfaces/server.d.ts.map +1 -1
- package/dest/interfaces/server.js +5 -0
- package/dest/interfaces/slasher.d.ts +25 -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 +70 -191
- package/dest/interfaces/validator.d.ts.map +1 -1
- package/dest/interfaces/validator.js +12 -5
- package/dest/interfaces/world_state.d.ts +6 -5
- package/dest/interfaces/world_state.d.ts.map +1 -1
- package/dest/kernel/hints/key_validation_request.d.ts +12 -8
- package/dest/kernel/hints/key_validation_request.d.ts.map +1 -1
- package/dest/kernel/hints/key_validation_request.js +20 -18
- package/dest/kernel/index.d.ts +5 -1
- package/dest/kernel/index.d.ts.map +1 -1
- package/dest/kernel/index.js +4 -0
- package/dest/kernel/log_hash.d.ts +6 -2
- package/dest/kernel/log_hash.d.ts.map +1 -1
- package/dest/kernel/log_hash.js +21 -9
- package/dest/kernel/private_circuit_public_inputs.d.ts +2 -2
- package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_circuit_public_inputs.d.ts +2 -2
- package/dest/kernel/private_kernel_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_init_2_circuit_private_inputs.d.ts +23 -0
- package/dest/kernel/private_kernel_init_2_circuit_private_inputs.d.ts.map +1 -0
- package/dest/kernel/private_kernel_init_2_circuit_private_inputs.js +35 -0
- package/dest/kernel/private_kernel_init_3_circuit_private_inputs.d.ts +24 -0
- package/dest/kernel/private_kernel_init_3_circuit_private_inputs.d.ts.map +1 -0
- package/dest/kernel/private_kernel_init_3_circuit_private_inputs.js +37 -0
- package/dest/kernel/private_kernel_inner_2_circuit_private_inputs.d.ts +16 -0
- package/dest/kernel/private_kernel_inner_2_circuit_private_inputs.d.ts.map +1 -0
- package/dest/kernel/private_kernel_inner_2_circuit_private_inputs.js +23 -0
- package/dest/kernel/private_kernel_inner_3_circuit_private_inputs.d.ts +17 -0
- package/dest/kernel/private_kernel_inner_3_circuit_private_inputs.d.ts.map +1 -0
- package/dest/kernel/private_kernel_inner_3_circuit_private_inputs.js +25 -0
- package/dest/kernel/private_kernel_prover_output.d.ts +3 -29
- package/dest/kernel/private_kernel_prover_output.d.ts.map +1 -1
- package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts +10 -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 +26 -7
- package/dest/kernel/private_to_avm_accumulated_data.d.ts +25 -69
- package/dest/kernel/private_to_avm_accumulated_data.d.ts.map +1 -1
- package/dest/kernel/private_to_avm_accumulated_data.js +11 -5
- package/dest/kernel/private_to_public_accumulated_data.d.ts +4 -3
- package/dest/kernel/private_to_public_accumulated_data.d.ts.map +1 -1
- package/dest/kernel/private_to_public_accumulated_data.js +6 -3
- package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts +5 -4
- package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_to_public_kernel_circuit_public_inputs.js +7 -3
- package/dest/kernel/private_to_rollup_accumulated_data.d.ts +5 -4
- package/dest/kernel/private_to_rollup_accumulated_data.d.ts.map +1 -1
- package/dest/kernel/private_to_rollup_accumulated_data.js +6 -3
- package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts +5 -4
- package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.js +7 -3
- package/dest/kernel/public_call_request.d.ts +15 -30
- package/dest/kernel/public_call_request.d.ts.map +1 -1
- package/dest/kernel/public_call_request.js +16 -7
- package/dest/keys/derivation.d.ts +6 -2
- package/dest/keys/derivation.d.ts.map +1 -1
- package/dest/keys/derivation.js +16 -6
- package/dest/keys/public_key.d.ts +22 -3
- package/dest/keys/public_key.d.ts.map +1 -1
- package/dest/keys/public_key.js +20 -1
- package/dest/keys/public_keys.d.ts +55 -82
- package/dest/keys/public_keys.d.ts.map +1 -1
- package/dest/keys/public_keys.js +102 -74
- package/dest/kv-store/config.d.ts +14 -0
- package/dest/kv-store/config.d.ts.map +1 -0
- package/dest/kv-store/config.js +21 -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/app_tagging_secret.d.ts +46 -0
- package/dest/logs/app_tagging_secret.d.ts.map +1 -0
- package/dest/logs/app_tagging_secret.js +109 -0
- package/dest/logs/app_tagging_secret_kind.d.ts +7 -0
- package/dest/logs/app_tagging_secret_kind.d.ts.map +1 -0
- package/dest/logs/app_tagging_secret_kind.js +17 -0
- package/dest/logs/contract_class_log.d.ts +16 -34
- package/dest/logs/contract_class_log.d.ts.map +1 -1
- package/dest/logs/contract_class_log.js +11 -9
- package/dest/logs/index.d.ts +8 -7
- package/dest/logs/index.d.ts.map +1 -1
- package/dest/logs/index.js +7 -6
- package/dest/logs/log_cursor.d.ts +51 -0
- package/dest/logs/log_cursor.d.ts.map +1 -0
- package/dest/logs/log_cursor.js +82 -0
- package/dest/logs/log_result.d.ts +54 -0
- package/dest/logs/log_result.d.ts.map +1 -0
- package/dest/logs/log_result.js +56 -0
- package/dest/logs/logs_query.d.ts +82 -0
- package/dest/logs/logs_query.d.ts.map +1 -0
- package/dest/logs/logs_query.js +50 -0
- package/dest/logs/message_context.d.ts +6 -8
- package/dest/logs/message_context.d.ts.map +1 -1
- package/dest/logs/message_context.js +27 -9
- package/dest/logs/pending_tagged_log.d.ts +2 -3
- package/dest/logs/pending_tagged_log.d.ts.map +1 -1
- package/dest/logs/pending_tagged_log.js +2 -2
- package/dest/logs/pre_tag.d.ts +11 -24
- package/dest/logs/pre_tag.d.ts.map +1 -1
- package/dest/logs/pre_tag.js +2 -2
- package/dest/logs/private_log.d.ts +7 -12
- package/dest/logs/private_log.d.ts.map +1 -1
- package/dest/logs/private_log.js +6 -3
- package/dest/logs/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/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 +22 -0
- package/dest/logs/tagging_index_range.d.ts.map +1 -0
- package/dest/logs/tagging_index_range.js +8 -0
- 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/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_to_l1_membership.d.ts +70 -7
- package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -1
- package/dest/messaging/l2_to_l1_membership.js +130 -27
- package/dest/messaging/l2_to_l1_message.d.ts +38 -112
- package/dest/messaging/l2_to_l1_message.d.ts.map +1 -1
- package/dest/messaging/l2_to_l1_message.js +21 -12
- package/dest/noir/index.d.ts +5 -3
- package/dest/noir/index.d.ts.map +1 -1
- package/dest/note/note.d.ts +2 -2
- package/dest/note/note.d.ts.map +1 -1
- package/dest/note/note_dao.d.ts +1 -1
- package/dest/note/note_dao.d.ts.map +1 -1
- package/dest/note/note_dao.js +1 -4
- package/dest/p2p/block_proposal.d.ts +31 -14
- package/dest/p2p/block_proposal.d.ts.map +1 -1
- package/dest/p2p/block_proposal.js +57 -39
- package/dest/p2p/checkpoint_attestation.d.ts +15 -9
- package/dest/p2p/checkpoint_attestation.d.ts.map +1 -1
- package/dest/p2p/checkpoint_attestation.js +23 -24
- package/dest/p2p/checkpoint_proposal.d.ts +35 -21
- package/dest/p2p/checkpoint_proposal.d.ts.map +1 -1
- package/dest/p2p/checkpoint_proposal.js +59 -61
- package/dest/p2p/consensus_payload.d.ts +26 -20
- package/dest/p2p/consensus_payload.d.ts.map +1 -1
- package/dest/p2p/consensus_payload.js +38 -19
- package/dest/p2p/gossipable.d.ts +4 -4
- package/dest/p2p/gossipable.d.ts.map +1 -1
- package/dest/p2p/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/signature_utils.d.ts +28 -19
- package/dest/p2p/signature_utils.d.ts.map +1 -1
- package/dest/p2p/signature_utils.js +118 -21
- package/dest/p2p/signed_txs.d.ts +15 -13
- package/dest/p2p/signed_txs.d.ts.map +1 -1
- package/dest/p2p/signed_txs.js +26 -24
- package/dest/parity/parity_base_private_inputs.d.ts +8 -4
- package/dest/parity/parity_base_private_inputs.d.ts.map +1 -1
- package/dest/parity/parity_base_private_inputs.js +7 -5
- package/dest/parity/parity_public_inputs.d.ts +8 -4
- package/dest/parity/parity_public_inputs.d.ts.map +1 -1
- package/dest/parity/parity_public_inputs.js +6 -3
- package/dest/parity/parity_root_private_inputs.d.ts +2 -2
- package/dest/parity/parity_root_private_inputs.d.ts.map +1 -1
- package/dest/proofs/chonk_proof.d.ts +57 -7
- package/dest/proofs/chonk_proof.d.ts.map +1 -1
- package/dest/proofs/chonk_proof.js +112 -15
- package/dest/proofs/recursive_proof.d.ts +2 -2
- package/dest/proofs/recursive_proof.d.ts.map +1 -1
- package/dest/rollup/block_headers_hash.d.ts +1 -1
- package/dest/rollup/block_headers_hash.d.ts.map +1 -1
- package/dest/rollup/block_headers_hash.js +8 -2
- package/dest/rollup/block_merge_rollup_private_inputs.d.ts +2 -2
- package/dest/rollup/block_merge_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/block_rollup_public_inputs.d.ts +12 -2
- package/dest/rollup/block_rollup_public_inputs.d.ts.map +1 -1
- package/dest/rollup/block_rollup_public_inputs.js +12 -0
- package/dest/rollup/block_root_rollup_private_inputs.d.ts +6 -6
- package/dest/rollup/block_root_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts +2 -2
- package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/checkpoint_rollup_public_inputs.d.ts +9 -2
- package/dest/rollup/checkpoint_rollup_public_inputs.d.ts.map +1 -1
- package/dest/rollup/checkpoint_rollup_public_inputs.js +9 -0
- package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts +5 -5
- package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/private_tx_base_rollup_private_inputs.d.ts +2 -2
- package/dest/rollup/private_tx_base_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/public_chonk_verifier_private_inputs.d.ts +2 -2
- package/dest/rollup/public_chonk_verifier_private_inputs.d.ts.map +1 -1
- package/dest/rollup/public_chonk_verifier_public_inputs.d.ts +2 -2
- package/dest/rollup/public_chonk_verifier_public_inputs.d.ts.map +1 -1
- package/dest/rollup/public_tx_base_rollup_private_inputs.d.ts +2 -2
- package/dest/rollup/public_tx_base_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/root_rollup_private_inputs.d.ts +2 -2
- package/dest/rollup/root_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/root_rollup_public_inputs.d.ts +2 -2
- package/dest/rollup/root_rollup_public_inputs.d.ts.map +1 -1
- package/dest/rollup/tx_merge_rollup_private_inputs.d.ts +2 -2
- package/dest/rollup/tx_merge_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/tx_rollup_public_inputs.d.ts +2 -2
- package/dest/rollup/tx_rollup_public_inputs.d.ts.map +1 -1
- package/dest/schemas/schemas.d.ts +32 -78
- package/dest/schemas/schemas.d.ts.map +1 -1
- package/dest/schemas/schemas.js +2 -2
- package/dest/slashing/helpers.d.ts +2 -2
- package/dest/slashing/helpers.d.ts.map +1 -1
- package/dest/slashing/helpers.js +10 -7
- package/dest/slashing/index.d.ts +2 -3
- package/dest/slashing/index.d.ts.map +1 -1
- package/dest/slashing/index.js +1 -2
- package/dest/slashing/serialization.d.ts +2 -6
- package/dest/slashing/serialization.d.ts.map +1 -1
- package/dest/slashing/serialization.js +0 -60
- package/dest/slashing/types.d.ts +18 -112
- package/dest/slashing/types.d.ts.map +1 -1
- package/dest/slashing/types.js +16 -24
- package/dest/slashing/{tally.d.ts → votes.d.ts} +5 -6
- package/dest/slashing/votes.d.ts.map +1 -0
- package/dest/slashing/{tally.js → votes.js} +19 -10
- package/dest/snapshots/types.d.ts +15 -78
- package/dest/snapshots/types.d.ts.map +1 -1
- package/dest/stats/stats.d.ts +2 -2
- package/dest/stats/stats.d.ts.map +1 -1
- package/dest/tests/factories.d.ts +25 -32
- package/dest/tests/factories.d.ts.map +1 -1
- package/dest/tests/factories.js +82 -82
- package/dest/tests/mocks.d.ts +11 -6
- package/dest/tests/mocks.d.ts.map +1 -1
- package/dest/tests/mocks.js +55 -62
- package/dest/timetable/index.d.ts +48 -1
- package/dest/timetable/index.d.ts.map +1 -1
- package/dest/timetable/index.js +184 -14
- package/dest/trees/append_only_tree_snapshot.d.ts +9 -14
- package/dest/trees/append_only_tree_snapshot.d.ts.map +1 -1
- package/dest/trees/append_only_tree_snapshot.js +6 -3
- package/dest/trees/nullifier_leaf.d.ts +19 -42
- package/dest/trees/nullifier_leaf.d.ts.map +1 -1
- package/dest/trees/nullifier_leaf.js +3 -0
- package/dest/trees/nullifier_membership_witness.d.ts +16 -59
- package/dest/trees/nullifier_membership_witness.d.ts.map +1 -1
- package/dest/trees/nullifier_membership_witness.js +2 -14
- package/dest/trees/public_data_leaf.d.ts +21 -53
- package/dest/trees/public_data_leaf.d.ts.map +1 -1
- package/dest/trees/public_data_witness.d.ts +16 -58
- package/dest/trees/public_data_witness.d.ts.map +1 -1
- package/dest/tx/block_header.d.ts +7 -4
- package/dest/tx/block_header.d.ts.map +1 -1
- package/dest/tx/block_header.js +11 -4
- package/dest/tx/call_context.d.ts +4 -14
- package/dest/tx/call_context.d.ts.map +1 -1
- package/dest/tx/capsule.d.ts +7 -3
- package/dest/tx/capsule.d.ts.map +1 -1
- package/dest/tx/capsule.js +9 -3
- package/dest/tx/fee_provider.d.ts +10 -0
- package/dest/tx/fee_provider.d.ts.map +1 -0
- package/dest/tx/fee_provider.js +1 -0
- package/dest/tx/function_data.d.ts +4 -10
- package/dest/tx/function_data.d.ts.map +1 -1
- package/dest/tx/global_variable_builder.d.ts +3 -4
- package/dest/tx/global_variable_builder.d.ts.map +1 -1
- package/dest/tx/global_variables.d.ts +16 -49
- package/dest/tx/global_variables.d.ts.map +1 -1
- package/dest/tx/global_variables.js +8 -12
- package/dest/tx/hashed_values.d.ts +4 -3
- package/dest/tx/hashed_values.d.ts.map +1 -1
- package/dest/tx/hashed_values.js +6 -3
- package/dest/tx/in_tx.d.ts +5 -17
- package/dest/tx/in_tx.d.ts.map +1 -1
- package/dest/tx/index.d.ts +2 -1
- package/dest/tx/index.d.ts.map +1 -1
- package/dest/tx/index.js +1 -0
- package/dest/tx/indexed_tx_effect.d.ts +8 -19
- package/dest/tx/indexed_tx_effect.d.ts.map +1 -1
- package/dest/tx/indexed_tx_effect.js +9 -6
- package/dest/tx/partial_state_reference.d.ts +22 -65
- package/dest/tx/partial_state_reference.d.ts.map +1 -1
- package/dest/tx/partial_state_reference.js +6 -3
- package/dest/tx/private_execution_result.d.ts +11 -21
- package/dest/tx/private_execution_result.d.ts.map +1 -1
- package/dest/tx/private_execution_result.js +6 -6
- package/dest/tx/profiling.d.ts +67 -353
- package/dest/tx/profiling.d.ts.map +1 -1
- package/dest/tx/profiling.js +17 -7
- 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 +68 -1144
- package/dest/tx/simulated_tx.d.ts.map +1 -1
- package/dest/tx/simulated_tx.js +17 -12
- 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 +19 -17
- package/dest/tx/tx.d.ts.map +1 -1
- package/dest/tx/tx.js +48 -29
- 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 +145 -59
- package/dest/tx/tx_receipt.d.ts.map +1 -1
- package/dest/tx/tx_receipt.js +144 -58
- package/dest/tx/validator/error_texts.d.ts +8 -1
- package/dest/tx/validator/error_texts.d.ts.map +1 -1
- package/dest/tx/validator/error_texts.js +9 -0
- 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 +4 -2
- package/dest/update-checker/index.d.ts.map +1 -1
- package/dest/update-checker/index.js +3 -1
- package/dest/update-checker/package_version.d.ts +6 -0
- package/dest/update-checker/package_version.d.ts.map +1 -0
- package/dest/update-checker/package_version.js +13 -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 +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.d.ts +4 -2
- package/dest/versioning/versioning.d.ts.map +1 -1
- package/dest/versioning/versioning.js +5 -2
- 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 +11 -39
- package/dest/world-state/world_state_revision.d.ts.map +1 -1
- package/dest/world-state/world_state_revision.js +7 -21
- package/package.json +14 -12
- package/src/abi/abi.ts +78 -21
- package/src/abi/authorization_selector.ts +2 -8
- package/src/abi/buffer.ts +25 -4
- package/src/abi/contract_artifact.ts +11 -6
- package/src/abi/decoder.ts +36 -79
- package/src/abi/encoder.ts +83 -7
- package/src/abi/event_metadata_definition.ts +2 -0
- 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 +31 -4
- package/src/avm/avm.ts +5 -0
- package/src/avm/message_pack.ts +12 -3
- package/src/avm/revert_code.ts +19 -39
- package/src/aztec-address/index.ts +15 -12
- package/src/block/attestation_info.ts +11 -11
- package/src/block/block_data.ts +3 -4
- package/src/block/block_hash.ts +21 -14
- package/src/block/block_parameter.ts +72 -4
- package/src/block/index.ts +0 -1
- package/src/block/l2_block.ts +13 -1
- package/src/block/l2_block_info.ts +8 -6
- package/src/block/l2_block_source.ts +213 -144
- package/src/block/l2_block_stream/interfaces.ts +6 -2
- package/src/block/l2_block_stream/l2_block_stream.ts +39 -28
- package/src/block/l2_block_stream/l2_tips_memory_store.ts +5 -0
- package/src/block/l2_block_stream/l2_tips_store_base.ts +53 -19
- package/src/block/proposal/attestations_and_signers.ts +32 -17
- package/src/block/test/l2_tips_store_test_suite.ts +10 -3
- package/src/checkpoint/checkpoint.ts +23 -4
- 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/validate.ts +230 -0
- package/src/config/chain-config.ts +13 -16
- package/src/config/sequencer-config.ts +34 -6
- package/src/contract/complete_address.ts +7 -3
- package/src/contract/contract_address.ts +7 -7
- package/src/contract/contract_class_id.ts +2 -2
- package/src/contract/contract_instance.ts +11 -2
- package/src/contract/index.ts +0 -2
- package/src/contract/interfaces/contract_class.ts +2 -82
- package/src/contract/interfaces/contract_instance.ts +6 -2
- package/src/contract/private_function.ts +3 -1
- package/src/database-version/version_manager.ts +17 -0
- package/src/epoch-helpers/index.ts +27 -0
- package/src/file-store/factory.ts +13 -4
- package/src/file-store/http.ts +29 -10
- package/src/file-store/index.ts +1 -0
- package/src/gas/README.md +154 -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 +73 -15
- package/src/gas/index.ts +1 -0
- package/src/ha-signing/config.ts +56 -53
- package/src/ha-signing/index.ts +12 -1
- package/src/ha-signing/local_config.ts +46 -0
- package/src/ha-signing/types.ts +48 -34
- package/src/hash/hash.ts +63 -2
- package/src/interfaces/allowed_element.ts +28 -4
- package/src/interfaces/api_limit.ts +1 -1
- package/src/interfaces/archiver.ts +89 -92
- package/src/interfaces/aztec-node-admin.ts +35 -20
- package/src/interfaces/aztec-node-debug.ts +40 -0
- package/src/interfaces/aztec-node.ts +313 -245
- package/src/interfaces/block-builder.ts +58 -13
- package/src/interfaces/block_response.ts +92 -0
- package/src/interfaces/chain_tips.ts +24 -0
- package/src/interfaces/checkpoint_parameter.ts +20 -0
- package/src/interfaces/checkpoint_response.ts +84 -0
- package/src/interfaces/client.ts +7 -1
- package/src/interfaces/configs.ts +54 -4
- package/src/interfaces/l1_publish_info.ts +40 -0
- package/src/interfaces/l2_logs_source.ts +13 -39
- package/src/interfaces/merkle_tree_operations.ts +20 -22
- package/src/interfaces/p2p-bootstrap.ts +2 -2
- package/src/interfaces/p2p.ts +35 -15
- package/src/interfaces/private_kernel_prover.ts +88 -0
- package/src/interfaces/prover-agent.ts +1 -1
- package/src/interfaces/prover-client.ts +10 -5
- package/src/interfaces/prover-node.ts +7 -7
- package/src/interfaces/proving-job-source.ts +4 -4
- package/src/interfaces/proving-job.ts +3 -3
- package/src/interfaces/public_storage_override.ts +26 -0
- package/src/interfaces/server.ts +5 -0
- package/src/interfaces/slasher.ts +17 -10
- package/src/interfaces/tx_provider.ts +6 -0
- package/src/interfaces/validator.ts +78 -38
- package/src/interfaces/world_state.ts +5 -4
- package/src/kernel/hints/key_validation_request.ts +18 -16
- package/src/kernel/index.ts +4 -0
- package/src/kernel/log_hash.ts +29 -9
- package/src/kernel/private_kernel_init_2_circuit_private_inputs.ts +49 -0
- package/src/kernel/private_kernel_init_3_circuit_private_inputs.ts +52 -0
- package/src/kernel/private_kernel_inner_2_circuit_private_inputs.ts +29 -0
- package/src/kernel/private_kernel_inner_3_circuit_private_inputs.ts +31 -0
- package/src/kernel/private_kernel_tail_circuit_public_inputs.ts +38 -14
- package/src/kernel/private_to_avm_accumulated_data.ts +16 -5
- package/src/kernel/private_to_public_accumulated_data.ts +9 -3
- package/src/kernel/private_to_public_kernel_circuit_public_inputs.ts +10 -4
- package/src/kernel/private_to_rollup_accumulated_data.ts +8 -3
- package/src/kernel/private_to_rollup_kernel_circuit_public_inputs.ts +9 -9
- package/src/kernel/public_call_request.ts +22 -7
- package/src/keys/derivation.ts +21 -9
- package/src/keys/public_key.ts +26 -2
- package/src/keys/public_keys.ts +124 -110
- package/src/kv-store/config.ts +29 -0
- package/src/kv-store/index.ts +1 -0
- package/src/l1-contracts/index.ts +1 -1
- package/src/logs/app_tagging_secret.ts +137 -0
- package/src/logs/app_tagging_secret_kind.ts +21 -0
- package/src/logs/contract_class_log.ts +15 -5
- package/src/logs/index.ts +7 -6
- package/src/logs/log_cursor.ts +110 -0
- package/src/logs/log_result.ts +104 -0
- package/src/logs/logs_query.ts +138 -0
- package/src/logs/message_context.ts +22 -8
- package/src/logs/pending_tagged_log.ts +1 -3
- package/src/logs/pre_tag.ts +3 -6
- package/src/logs/private_log.ts +9 -3
- package/src/logs/public_log.ts +4 -2
- 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 +18 -0
- 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/l1_to_l2_message_source.ts +3 -1
- package/src/messaging/l2_to_l1_membership.ts +189 -35
- package/src/messaging/l2_to_l1_message.ts +29 -9
- package/src/noir/index.ts +4 -2
- package/src/note/note_dao.ts +1 -4
- package/src/p2p/block_proposal.ts +111 -36
- package/src/p2p/checkpoint_attestation.ts +27 -31
- package/src/p2p/checkpoint_proposal.ts +126 -85
- package/src/p2p/consensus_payload.ts +59 -28
- package/src/p2p/gossipable.ts +4 -4
- package/src/p2p/peer_error.ts +7 -0
- package/src/p2p/signature_utils.ts +110 -25
- package/src/p2p/signed_txs.ts +46 -28
- package/src/parity/parity_base_private_inputs.ts +10 -4
- package/src/parity/parity_public_inputs.ts +9 -2
- package/src/proofs/chonk_proof.ts +132 -12
- package/src/rollup/block_headers_hash.ts +11 -2
- package/src/rollup/block_rollup_public_inputs.ts +13 -0
- package/src/rollup/checkpoint_rollup_public_inputs.ts +10 -0
- package/src/schemas/schemas.ts +6 -1
- package/src/slashing/helpers.ts +13 -9
- package/src/slashing/index.ts +1 -2
- package/src/slashing/serialization.ts +1 -81
- package/src/slashing/types.ts +24 -49
- package/src/slashing/{tally.ts → votes.ts} +22 -4
- package/src/stats/stats.ts +4 -0
- package/src/tests/factories.ts +103 -111
- package/src/tests/mocks.ts +83 -76
- package/src/timetable/index.ts +251 -13
- package/src/trees/append_only_tree_snapshot.ts +8 -3
- package/src/trees/nullifier_leaf.ts +4 -0
- package/src/trees/nullifier_membership_witness.ts +2 -12
- package/src/tx/block_header.ts +16 -5
- package/src/tx/capsule.ts +10 -2
- package/src/tx/fee_provider.ts +10 -0
- package/src/tx/global_variable_builder.ts +2 -3
- package/src/tx/global_variables.ts +10 -18
- package/src/tx/hashed_values.ts +8 -3
- package/src/tx/index.ts +1 -0
- package/src/tx/indexed_tx_effect.ts +18 -6
- package/src/tx/partial_state_reference.ts +8 -3
- package/src/tx/private_execution_result.ts +5 -5
- package/src/tx/profiling.ts +15 -6
- 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 +30 -22
- package/src/tx/state_reference.ts +9 -4
- package/src/tx/tree_snapshots.ts +9 -4
- package/src/tx/tx.ts +63 -35
- 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 +267 -82
- package/src/tx/validator/error_texts.ts +11 -0
- 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 +3 -1
- package/src/update-checker/package_version.ts +17 -0
- package/src/update-checker/version_checker.ts +65 -0
- package/src/validators/errors.ts +9 -0
- package/src/validators/schemas.ts +6 -4
- package/src/validators/types.ts +21 -2
- package/src/versioning/versioning.ts +5 -2
- 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 -34
- package/dest/abi/mocked_keys.d.ts +0 -2
- package/dest/abi/mocked_keys.d.ts.map +0 -1
- package/dest/abi/mocked_keys.js +0 -1
- package/dest/block/checkpointed_l2_block.d.ts +0 -150
- package/dest/block/checkpointed_l2_block.d.ts.map +0 -1
- package/dest/block/checkpointed_l2_block.js +0 -46
- package/dest/contract/private_function_membership_proof.d.ts +0 -32
- package/dest/contract/private_function_membership_proof.d.ts.map +0 -1
- package/dest/contract/private_function_membership_proof.js +0 -124
- package/dest/contract/utility_function_membership_proof.d.ts +0 -27
- package/dest/contract/utility_function_membership_proof.d.ts.map +0 -1
- package/dest/contract/utility_function_membership_proof.js +0 -87
- package/dest/interfaces/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 -22
- package/dest/logs/log_filter.d.ts.map +0 -1
- package/dest/logs/log_filter.js +0 -11
- package/dest/logs/log_id.d.ts +0 -85
- package/dest/logs/log_id.d.ts.map +0 -1
- package/dest/logs/log_id.js +0 -94
- package/dest/logs/tx_scoped_l2_log.d.ts +0 -49
- package/dest/logs/tx_scoped_l2_log.d.ts.map +0 -1
- package/dest/logs/tx_scoped_l2_log.js +0 -70
- package/dest/slashing/empire.d.ts +0 -31
- package/dest/slashing/empire.d.ts.map +0 -1
- package/dest/slashing/empire.js +0 -87
- package/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/abi/mocked_keys.ts +0 -2
- package/src/block/checkpointed_l2_block.ts +0 -70
- package/src/contract/private_function_membership_proof.ts +0 -167
- package/src/contract/utility_function_membership_proof.ts +0 -118
- package/src/interfaces/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 -31
- package/src/logs/log_id.ts +0 -125
- package/src/logs/tx_scoped_l2_log.ts +0 -98
- package/src/slashing/empire.ts +0 -104
- package/src/update-checker/update-checker.ts +0 -166
package/src/tests/mocks.ts
CHANGED
|
@@ -14,8 +14,11 @@ import { padArrayEnd, times } from '@aztec/foundation/collection';
|
|
|
14
14
|
import { randomBytes } from '@aztec/foundation/crypto/random';
|
|
15
15
|
import { Secp256k1Signer } from '@aztec/foundation/crypto/secp256k1-signer';
|
|
16
16
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
17
|
+
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
17
18
|
import { Signature } from '@aztec/foundation/eth-signature';
|
|
18
19
|
|
|
20
|
+
import { type TypedDataDefinition, hashTypedData } from 'viem';
|
|
21
|
+
|
|
19
22
|
import type { ContractArtifact } from '../abi/abi.js';
|
|
20
23
|
import { PublicTxEffect } from '../avm/avm.js';
|
|
21
24
|
import type { AvmAccumulatedData } from '../avm/avm_accumulated_data.js';
|
|
@@ -23,10 +26,9 @@ import { AvmCircuitPublicInputs } from '../avm/avm_circuit_public_inputs.js';
|
|
|
23
26
|
import { PublicDataWrite } from '../avm/public_data_write.js';
|
|
24
27
|
import { RevertCode } from '../avm/revert_code.js';
|
|
25
28
|
import { AztecAddress } from '../aztec-address/index.js';
|
|
26
|
-
import {
|
|
29
|
+
import { L2Block } from '../block/index.js';
|
|
27
30
|
import type { CommitteeAttestationsAndSigners } from '../block/proposal/attestations_and_signers.js';
|
|
28
31
|
import { Checkpoint } from '../checkpoint/checkpoint.js';
|
|
29
|
-
import { L1PublishedData } from '../checkpoint/published_checkpoint.js';
|
|
30
32
|
import { computeContractAddressFromInstance } from '../contract/contract_address.js';
|
|
31
33
|
import { getContractClassFromArtifact } from '../contract/contract_class.js';
|
|
32
34
|
import { SerializableContractInstance } from '../contract/contract_instance.js';
|
|
@@ -51,7 +53,7 @@ import { BlockProposal } from '../p2p/block_proposal.js';
|
|
|
51
53
|
import { CheckpointAttestation } from '../p2p/checkpoint_attestation.js';
|
|
52
54
|
import { CheckpointProposal } from '../p2p/checkpoint_proposal.js';
|
|
53
55
|
import { ConsensusPayload } from '../p2p/consensus_payload.js';
|
|
54
|
-
import {
|
|
56
|
+
import { type CoordinationSignatureContext, getHashedSignaturePayloadTypedData } from '../p2p/signature_utils.js';
|
|
55
57
|
import { ChonkProof } from '../proofs/chonk_proof.js';
|
|
56
58
|
import { ProvingRequestType } from '../proofs/proving_request_type.js';
|
|
57
59
|
import { CheckpointHeader } from '../rollup/checkpoint_header.js';
|
|
@@ -72,6 +74,7 @@ import { NestedProcessReturnValues, PublicSimulationOutput } from '../tx/public_
|
|
|
72
74
|
import { TxSimulationResult } from '../tx/simulated_tx.js';
|
|
73
75
|
import { TxEffect } from '../tx/tx_effect.js';
|
|
74
76
|
import { TxHash } from '../tx/tx_hash.js';
|
|
77
|
+
import { DEV_VERSION } from '../update-checker/dev_version.js';
|
|
75
78
|
import {
|
|
76
79
|
makeAvmCircuitInputs,
|
|
77
80
|
makeAztecAddress,
|
|
@@ -86,6 +89,15 @@ import {
|
|
|
86
89
|
makePublicDataWrite,
|
|
87
90
|
} from './factories.js';
|
|
88
91
|
|
|
92
|
+
export const TEST_COORDINATION_SIGNATURE_CONTEXT: CoordinationSignatureContext = {
|
|
93
|
+
chainId: 31337,
|
|
94
|
+
rollupAddress: EthAddress.fromNumber(1),
|
|
95
|
+
};
|
|
96
|
+
|
|
97
|
+
function signTypedData(signer: Secp256k1Signer, typedData: TypedDataDefinition): Signature {
|
|
98
|
+
return signer.sign(Buffer32.fromString(hashTypedData(typedData)));
|
|
99
|
+
}
|
|
100
|
+
|
|
89
101
|
export const randomTxHash = (): TxHash => TxHash.random();
|
|
90
102
|
|
|
91
103
|
export const mockTx = async (
|
|
@@ -98,6 +110,7 @@ export const mockTx = async (
|
|
|
98
110
|
publicCalldataSize = 2,
|
|
99
111
|
feePayer,
|
|
100
112
|
chonkProof = ChonkProof.random(),
|
|
113
|
+
gasLimits,
|
|
101
114
|
maxFeesPerGas = new GasFees(10, 10),
|
|
102
115
|
maxPriorityFeesPerGas,
|
|
103
116
|
gasUsed = Gas.empty(),
|
|
@@ -114,6 +127,7 @@ export const mockTx = async (
|
|
|
114
127
|
publicCalldataSize?: number;
|
|
115
128
|
feePayer?: AztecAddress;
|
|
116
129
|
chonkProof?: ChonkProof;
|
|
130
|
+
gasLimits?: Gas;
|
|
117
131
|
maxFeesPerGas?: GasFees;
|
|
118
132
|
maxPriorityFeesPerGas?: GasFees;
|
|
119
133
|
gasUsed?: Gas;
|
|
@@ -132,7 +146,7 @@ export const mockTx = async (
|
|
|
132
146
|
const data = PrivateKernelTailCircuitPublicInputs.empty();
|
|
133
147
|
const firstNullifier = new Nullifier(new Fr(seed + 1), Fr.ZERO, 0);
|
|
134
148
|
data.constants.anchorBlockHeader = anchorBlockHeader;
|
|
135
|
-
data.constants.txContext.gasSettings = GasSettings.
|
|
149
|
+
data.constants.txContext.gasSettings = GasSettings.fallback({ gasLimits, maxFeesPerGas, maxPriorityFeesPerGas });
|
|
136
150
|
data.feePayer = feePayer ?? (await AztecAddress.random());
|
|
137
151
|
data.gasUsed = gasUsed;
|
|
138
152
|
data.constants.txContext.chainId = chainId;
|
|
@@ -198,7 +212,7 @@ export async function mockProcessedTx({
|
|
|
198
212
|
db,
|
|
199
213
|
chainId = Fr.ZERO,
|
|
200
214
|
version = Fr.ZERO,
|
|
201
|
-
gasSettings = GasSettings.
|
|
215
|
+
gasSettings = GasSettings.fallback({ maxFeesPerGas: new GasFees(10, 10) }),
|
|
202
216
|
vkTreeRoot = Fr.ZERO,
|
|
203
217
|
protocolContracts = makeProtocolContracts(seed + 0x100),
|
|
204
218
|
globalVariables = GlobalVariables.empty(),
|
|
@@ -425,10 +439,13 @@ export async function mockCheckpointAndMessages(
|
|
|
425
439
|
Partial<Parameters<typeof L2Block.random>[1]> = {},
|
|
426
440
|
) {
|
|
427
441
|
const slotNumber = options.slotNumber ?? SlotNumber(Number(checkpointNumber) * 10);
|
|
442
|
+
const globals = GlobalVariables.random({ slotNumber, ...options });
|
|
428
443
|
const blocksAndMessages = [];
|
|
444
|
+
|
|
429
445
|
// Track the previous block's archive to ensure consecutive blocks have consistent archive roots.
|
|
430
446
|
// The current block's header.lastArchive must equal the previous block's archive.
|
|
431
447
|
let lastArchive: AppendOnlyTreeSnapshot | undefined = previousArchive;
|
|
448
|
+
|
|
432
449
|
// Pass maxEffects via txOptions so it reaches TxEffect.random
|
|
433
450
|
const txOptions = maxEffects !== undefined ? { maxEffects } : {};
|
|
434
451
|
for (let i = 0; i < (blocks?.length ?? numBlocks); i++) {
|
|
@@ -437,11 +454,11 @@ export async function mockCheckpointAndMessages(
|
|
|
437
454
|
block:
|
|
438
455
|
blocks?.[i] ??
|
|
439
456
|
(await L2Block.random(blockNumber, {
|
|
457
|
+
...globals,
|
|
440
458
|
checkpointNumber,
|
|
441
459
|
indexWithinCheckpoint: IndexWithinCheckpoint(i),
|
|
442
460
|
txsPerBlock: numTxsPerBlock,
|
|
443
461
|
txOptions,
|
|
444
|
-
slotNumber,
|
|
445
462
|
...options,
|
|
446
463
|
...makeBlockOptions(blockNumber),
|
|
447
464
|
...(lastArchive ? { lastArchive } : {}),
|
|
@@ -455,12 +472,18 @@ export async function mockCheckpointAndMessages(
|
|
|
455
472
|
|
|
456
473
|
const messages = blocksAndMessages[0].messages;
|
|
457
474
|
const inHash = computeInHashFromL1ToL2Messages(messages);
|
|
458
|
-
const
|
|
475
|
+
const firstBlockLastArchive = blocksAndMessages[0].block.header.lastArchive;
|
|
476
|
+
const checkpoint = await Checkpoint.random(checkpointNumber, {
|
|
477
|
+
numBlocks: 0,
|
|
478
|
+
inHash,
|
|
479
|
+
...options,
|
|
480
|
+
...globals,
|
|
481
|
+
lastArchive: firstBlockLastArchive,
|
|
482
|
+
lastArchiveRoot: firstBlockLastArchive.root,
|
|
483
|
+
archive: lastArchive,
|
|
484
|
+
});
|
|
485
|
+
|
|
459
486
|
checkpoint.blocks = blocksAndMessages.map(({ block }) => block);
|
|
460
|
-
// Set the checkpoint's archive to match the last block's archive for proper chaining.
|
|
461
|
-
// When the archiver reconstructs checkpoints from L1, it uses the checkpoint's archive root
|
|
462
|
-
// from the L1 event to set the last block's archive. Without this, the archive chain breaks.
|
|
463
|
-
checkpoint.archive = lastArchive!;
|
|
464
487
|
|
|
465
488
|
// Return lastArchive so callers can chain it across multiple checkpoints
|
|
466
489
|
return { checkpoint, messages, lastArchive };
|
|
@@ -468,6 +491,7 @@ export async function mockCheckpointAndMessages(
|
|
|
468
491
|
|
|
469
492
|
export const randomContractArtifact = (): ContractArtifact => ({
|
|
470
493
|
name: randomBytes(4).toString('hex'),
|
|
494
|
+
aztecVersion: DEV_VERSION,
|
|
471
495
|
functions: [],
|
|
472
496
|
nonDispatchPublicFunctions: [],
|
|
473
497
|
outputs: {
|
|
@@ -508,6 +532,7 @@ export interface MakeConsensusPayloadOptions {
|
|
|
508
532
|
txHashes?: TxHash[];
|
|
509
533
|
txs?: Tx[];
|
|
510
534
|
feeAssetPriceModifier?: bigint;
|
|
535
|
+
signatureContext?: CoordinationSignatureContext;
|
|
511
536
|
}
|
|
512
537
|
|
|
513
538
|
export interface MakeBlockProposalOptions {
|
|
@@ -518,6 +543,7 @@ export interface MakeBlockProposalOptions {
|
|
|
518
543
|
archiveRoot?: Fr;
|
|
519
544
|
txHashes?: TxHash[];
|
|
520
545
|
txs?: Tx[];
|
|
546
|
+
signatureContext?: CoordinationSignatureContext;
|
|
521
547
|
}
|
|
522
548
|
|
|
523
549
|
export interface MakeCheckpointProposalOptions {
|
|
@@ -525,6 +551,7 @@ export interface MakeCheckpointProposalOptions {
|
|
|
525
551
|
checkpointHeader?: CheckpointHeader;
|
|
526
552
|
archiveRoot?: Fr;
|
|
527
553
|
feeAssetPriceModifier?: bigint;
|
|
554
|
+
signatureContext?: CoordinationSignatureContext;
|
|
528
555
|
/** Options for the lastBlock - if undefined, no lastBlock is included */
|
|
529
556
|
lastBlock?: {
|
|
530
557
|
blockHeader?: BlockHeader;
|
|
@@ -535,10 +562,7 @@ export interface MakeCheckpointProposalOptions {
|
|
|
535
562
|
}
|
|
536
563
|
|
|
537
564
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
538
|
-
const makeAndSignConsensusPayload = (
|
|
539
|
-
domainSeparator: SignatureDomainSeparator,
|
|
540
|
-
options?: MakeConsensusPayloadOptions,
|
|
541
|
-
) => {
|
|
565
|
+
const makeAndSignConsensusPayload = (options?: MakeConsensusPayloadOptions) => {
|
|
542
566
|
const header = options?.header ?? makeCheckpointHeader(1);
|
|
543
567
|
const { signer = Secp256k1Signer.random(), archive = Fr.random(), feeAssetPriceModifier = 0n } = options ?? {};
|
|
544
568
|
|
|
@@ -546,9 +570,10 @@ const makeAndSignConsensusPayload = (
|
|
|
546
570
|
header,
|
|
547
571
|
archive,
|
|
548
572
|
feeAssetPriceModifier,
|
|
573
|
+
signatureContext: TEST_COORDINATION_SIGNATURE_CONTEXT,
|
|
549
574
|
});
|
|
550
575
|
|
|
551
|
-
const hash =
|
|
576
|
+
const hash = getHashedSignaturePayloadTypedData(payload);
|
|
552
577
|
const signature = signer.sign(hash);
|
|
553
578
|
|
|
554
579
|
return { blockNumber: header.slotNumber, payload, signature };
|
|
@@ -558,10 +583,7 @@ export const makeAndSignCommitteeAttestationsAndSigners = (
|
|
|
558
583
|
attestationsAndSigners: CommitteeAttestationsAndSigners,
|
|
559
584
|
signer: Secp256k1Signer = Secp256k1Signer.random(),
|
|
560
585
|
) => {
|
|
561
|
-
const hash =
|
|
562
|
-
attestationsAndSigners,
|
|
563
|
-
SignatureDomainSeparator.attestationsAndSigners,
|
|
564
|
-
);
|
|
586
|
+
const hash = getHashedSignaturePayloadTypedData(attestationsAndSigners);
|
|
565
587
|
return signer.sign(hash);
|
|
566
588
|
};
|
|
567
589
|
|
|
@@ -573,41 +595,51 @@ export const makeBlockProposal = (options?: MakeBlockProposalOptions): Promise<B
|
|
|
573
595
|
const txHashes = options?.txHashes ?? [0, 1, 2, 3, 4, 5].map(() => TxHash.random());
|
|
574
596
|
const txs = options?.txs;
|
|
575
597
|
const signer = options?.signer ?? Secp256k1Signer.random();
|
|
598
|
+
const signatureContext = options?.signatureContext ?? TEST_COORDINATION_SIGNATURE_CONTEXT;
|
|
576
599
|
|
|
577
600
|
return BlockProposal.createProposalFromSigner(
|
|
578
601
|
blockHeader,
|
|
602
|
+
CheckpointNumber(1),
|
|
579
603
|
indexWithinCheckpoint,
|
|
580
604
|
inHash,
|
|
581
605
|
archiveRoot,
|
|
582
606
|
txHashes,
|
|
583
607
|
txs,
|
|
584
|
-
|
|
608
|
+
signatureContext,
|
|
609
|
+
(typedData, _context) => Promise.resolve(signTypedData(signer, typedData)),
|
|
610
|
+
(typedData, _context) => Promise.resolve(signTypedData(signer, typedData)),
|
|
585
611
|
);
|
|
586
612
|
};
|
|
587
613
|
|
|
588
|
-
export const makeCheckpointProposal = (options?: MakeCheckpointProposalOptions): Promise<CheckpointProposal> => {
|
|
589
|
-
const blockHeader = options?.lastBlock?.blockHeader ?? makeBlockHeader(1);
|
|
614
|
+
export const makeCheckpointProposal = async (options?: MakeCheckpointProposalOptions): Promise<CheckpointProposal> => {
|
|
590
615
|
const checkpointHeader = options?.checkpointHeader ?? makeCheckpointHeader(1);
|
|
591
616
|
const archiveRoot = options?.archiveRoot ?? Fr.random();
|
|
592
617
|
const feeAssetPriceModifier = options?.feeAssetPriceModifier ?? 0n;
|
|
593
618
|
const signer = options?.signer ?? Secp256k1Signer.random();
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
619
|
+
const signatureContext = options?.signatureContext ?? TEST_COORDINATION_SIGNATURE_CONTEXT;
|
|
620
|
+
|
|
621
|
+
// Build a signed block proposal if lastBlock options are provided
|
|
622
|
+
const lastBlockProposal = options?.lastBlock
|
|
623
|
+
? await makeBlockProposal({
|
|
624
|
+
blockHeader: options.lastBlock.blockHeader,
|
|
625
|
+
indexWithinCheckpoint: options.lastBlock.indexWithinCheckpoint ?? IndexWithinCheckpoint(4),
|
|
626
|
+
inHash: checkpointHeader.inHash,
|
|
627
|
+
archiveRoot,
|
|
628
|
+
txHashes: options.lastBlock.txHashes,
|
|
601
629
|
txs: options.lastBlock.txs,
|
|
602
|
-
|
|
630
|
+
signer,
|
|
631
|
+
signatureContext,
|
|
632
|
+
})
|
|
603
633
|
: undefined;
|
|
604
634
|
|
|
605
635
|
return CheckpointProposal.createProposalFromSigner(
|
|
606
636
|
checkpointHeader,
|
|
607
637
|
archiveRoot,
|
|
638
|
+
CheckpointNumber(1),
|
|
608
639
|
feeAssetPriceModifier,
|
|
609
|
-
|
|
610
|
-
|
|
640
|
+
lastBlockProposal,
|
|
641
|
+
signatureContext,
|
|
642
|
+
typedData => Promise.resolve(signTypedData(signer, typedData)),
|
|
611
643
|
);
|
|
612
644
|
};
|
|
613
645
|
|
|
@@ -621,6 +653,7 @@ export type MakeCheckpointAttestationOptions = {
|
|
|
621
653
|
attesterSigner?: Secp256k1Signer;
|
|
622
654
|
proposerSigner?: Secp256k1Signer;
|
|
623
655
|
signer?: Secp256k1Signer;
|
|
656
|
+
signatureContext?: CoordinationSignatureContext;
|
|
624
657
|
};
|
|
625
658
|
|
|
626
659
|
/**
|
|
@@ -630,26 +663,27 @@ export const makeCheckpointAttestation = (options: MakeCheckpointAttestationOpti
|
|
|
630
663
|
const header = options.header ?? makeCheckpointHeader(1);
|
|
631
664
|
const archive = options.archive ?? Fr.random();
|
|
632
665
|
const feeAssetPriceModifier = options.feeAssetPriceModifier ?? 0n;
|
|
666
|
+
const signatureContext = options.signatureContext ?? TEST_COORDINATION_SIGNATURE_CONTEXT;
|
|
633
667
|
const { signer, attesterSigner = signer, proposerSigner = signer } = options;
|
|
634
668
|
|
|
635
|
-
const payload = new ConsensusPayload(header, archive, feeAssetPriceModifier);
|
|
669
|
+
const payload = new ConsensusPayload(header, archive, feeAssetPriceModifier, signatureContext);
|
|
636
670
|
|
|
637
671
|
// Sign as attester
|
|
638
|
-
const attestationHash =
|
|
639
|
-
payload,
|
|
640
|
-
SignatureDomainSeparator.checkpointAttestation,
|
|
641
|
-
);
|
|
672
|
+
const attestationHash = getHashedSignaturePayloadTypedData(payload);
|
|
642
673
|
const attestationSigner = attesterSigner ?? Secp256k1Signer.random();
|
|
643
674
|
const attestationSignature = attestationSigner.sign(attestationHash);
|
|
644
675
|
|
|
645
676
|
// Sign as proposer - use CheckpointProposal's payload format (serializeToBuffer)
|
|
646
677
|
// This is different from ConsensusPayload's format (ABI encoding)
|
|
647
678
|
const proposalSignerToUse = proposerSigner ?? Secp256k1Signer.random();
|
|
648
|
-
const tempProposal = new CheckpointProposal(
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
679
|
+
const tempProposal = new CheckpointProposal(
|
|
680
|
+
header,
|
|
681
|
+
archive,
|
|
682
|
+
feeAssetPriceModifier,
|
|
683
|
+
Signature.empty(),
|
|
684
|
+
signatureContext,
|
|
652
685
|
);
|
|
686
|
+
const proposalHash = getHashedSignaturePayloadTypedData(tempProposal);
|
|
653
687
|
const proposerSignature = proposalSignerToUse.sign(proposalHash);
|
|
654
688
|
|
|
655
689
|
return new CheckpointAttestation(payload, attestationSignature, proposerSignature);
|
|
@@ -662,13 +696,15 @@ export const makeCheckpointAttestationFromProposal = (
|
|
|
662
696
|
proposal: CheckpointProposal,
|
|
663
697
|
attesterSigner?: Secp256k1Signer,
|
|
664
698
|
): CheckpointAttestation => {
|
|
665
|
-
const payload = new ConsensusPayload(
|
|
699
|
+
const payload = new ConsensusPayload(
|
|
700
|
+
proposal.checkpointHeader,
|
|
701
|
+
proposal.archive,
|
|
702
|
+
proposal.feeAssetPriceModifier,
|
|
703
|
+
proposal.signatureContext,
|
|
704
|
+
);
|
|
666
705
|
|
|
667
706
|
// Sign as attester
|
|
668
|
-
const attestationHash =
|
|
669
|
-
payload,
|
|
670
|
-
SignatureDomainSeparator.checkpointAttestation,
|
|
671
|
-
);
|
|
707
|
+
const attestationHash = getHashedSignaturePayloadTypedData(payload);
|
|
672
708
|
const attestationSigner = attesterSigner ?? Secp256k1Signer.random();
|
|
673
709
|
const attestationSignature = attestationSigner.sign(attestationHash);
|
|
674
710
|
|
|
@@ -711,32 +747,3 @@ export const makeCheckpointAttestationFromBlock = (
|
|
|
711
747
|
|
|
712
748
|
return makeCheckpointAttestation({ header, archive, attesterSigner, proposerSigner });
|
|
713
749
|
};
|
|
714
|
-
|
|
715
|
-
export async function randomPublishedL2Block(
|
|
716
|
-
l2BlockNumber: number,
|
|
717
|
-
opts: { signers?: Secp256k1Signer[] } = {},
|
|
718
|
-
): Promise<CheckpointedL2Block> {
|
|
719
|
-
const block = await L2Block.random(BlockNumber(l2BlockNumber));
|
|
720
|
-
const l1 = L1PublishedData.fromFields({
|
|
721
|
-
blockNumber: BigInt(block.number),
|
|
722
|
-
timestamp: block.header.globalVariables.timestamp,
|
|
723
|
-
blockHash: Buffer32.random().toString(),
|
|
724
|
-
});
|
|
725
|
-
|
|
726
|
-
const signers = opts.signers ?? times(3, () => Secp256k1Signer.random());
|
|
727
|
-
const checkpoint = await Checkpoint.random(CheckpointNumber.fromBlockNumber(BlockNumber(l2BlockNumber)), {
|
|
728
|
-
numBlocks: 0,
|
|
729
|
-
});
|
|
730
|
-
checkpoint.blocks = [block];
|
|
731
|
-
const atts = signers.map(signer =>
|
|
732
|
-
makeCheckpointAttestation({
|
|
733
|
-
signer,
|
|
734
|
-
archive: block.archive.root,
|
|
735
|
-
header: checkpoint.header,
|
|
736
|
-
}),
|
|
737
|
-
);
|
|
738
|
-
const attestations = atts.map(
|
|
739
|
-
(attestation, i) => new CommitteeAttestation(signers[i].address, attestation.signature),
|
|
740
|
-
);
|
|
741
|
-
return new CheckpointedL2Block(CheckpointNumber.fromBlockNumber(BlockNumber(l2BlockNumber)), block, l1, attestations);
|
|
742
|
-
}
|
package/src/timetable/index.ts
CHANGED
|
@@ -25,6 +25,179 @@ export const DEFAULT_L1_PUBLISHING_TIME = 12;
|
|
|
25
25
|
/** Minimum execution time for building a block in seconds */
|
|
26
26
|
export const MIN_EXECUTION_TIME = 2;
|
|
27
27
|
|
|
28
|
+
export type CheckpointTimingConfig = {
|
|
29
|
+
aztecSlotDuration: number;
|
|
30
|
+
ethereumSlotDuration?: number;
|
|
31
|
+
blockDuration?: number;
|
|
32
|
+
checkpointAssembleTime?: number;
|
|
33
|
+
checkpointInitializationTime?: number;
|
|
34
|
+
l1PublishingTime?: number;
|
|
35
|
+
minExecutionTime?: number;
|
|
36
|
+
p2pPropagationTime?: number;
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
export interface CheckpointTiming {
|
|
40
|
+
readonly aztecSlotDuration: number;
|
|
41
|
+
readonly blockDuration: number | undefined;
|
|
42
|
+
readonly checkpointAssembleTime: number;
|
|
43
|
+
readonly checkpointInitializationTime: number;
|
|
44
|
+
readonly l1PublishingTime: number;
|
|
45
|
+
readonly minExecutionTime: number;
|
|
46
|
+
readonly p2pPropagationTime: number;
|
|
47
|
+
readonly checkpointFinalizationTime: number;
|
|
48
|
+
readonly pipeliningAttestationGracePeriod: number;
|
|
49
|
+
readonly timeReservedAtEnd: number;
|
|
50
|
+
readonly minimumBuildSlotWork: number;
|
|
51
|
+
readonly initializeDeadline: number;
|
|
52
|
+
readonly checkpointAssemblyDeadline: number;
|
|
53
|
+
readonly checkpointAttestationStartDeadline: number;
|
|
54
|
+
readonly checkpointAttestationDeadline: number;
|
|
55
|
+
readonly checkpointPublishingDeadline: number;
|
|
56
|
+
|
|
57
|
+
calculateMaxBlocksPerSlot(): number;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
export interface PipelinedCheckpointTiming extends CheckpointTiming {
|
|
61
|
+
readonly proposalWindowIntoTargetSlot: number;
|
|
62
|
+
readonly attestationWindowIntoTargetSlot: number;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Checkpoint timing model for proposer pipelining.
|
|
67
|
+
*
|
|
68
|
+
* The build work starts at the wall-clock slot boundary and the checkpoint
|
|
69
|
+
* proposal is broadcast early enough that attestations complete by the end of
|
|
70
|
+
* the build slot. L1 submission can then be sent at the boundary of the target
|
|
71
|
+
* slot. The target-slot window getters are intended for consumers such as P2P
|
|
72
|
+
* validators that need to validate pipelined messages against wallclock time.
|
|
73
|
+
*/
|
|
74
|
+
class CheckpointTimingModel implements PipelinedCheckpointTiming {
|
|
75
|
+
public readonly aztecSlotDuration: number;
|
|
76
|
+
public readonly blockDuration: number | undefined;
|
|
77
|
+
public readonly checkpointAssembleTime: number;
|
|
78
|
+
public readonly checkpointInitializationTime: number;
|
|
79
|
+
public readonly l1PublishingTime: number;
|
|
80
|
+
public readonly minExecutionTime: number;
|
|
81
|
+
public readonly p2pPropagationTime: number;
|
|
82
|
+
private readonly ethereumSlotDuration: number;
|
|
83
|
+
|
|
84
|
+
constructor(opts: CheckpointTimingConfig) {
|
|
85
|
+
this.aztecSlotDuration = opts.aztecSlotDuration;
|
|
86
|
+
this.blockDuration = opts.blockDuration;
|
|
87
|
+
|
|
88
|
+
this.checkpointAssembleTime = opts.checkpointAssembleTime ?? CHECKPOINT_ASSEMBLE_TIME;
|
|
89
|
+
this.checkpointInitializationTime = opts.checkpointInitializationTime ?? CHECKPOINT_INITIALIZATION_TIME;
|
|
90
|
+
this.l1PublishingTime = opts.l1PublishingTime ?? DEFAULT_L1_PUBLISHING_TIME;
|
|
91
|
+
this.minExecutionTime = opts.minExecutionTime ?? MIN_EXECUTION_TIME;
|
|
92
|
+
this.p2pPropagationTime = opts.p2pPropagationTime ?? DEFAULT_P2P_PROPAGATION_TIME;
|
|
93
|
+
this.ethereumSlotDuration = opts.ethereumSlotDuration ?? this.l1PublishingTime;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
public get checkpointFinalizationTime(): number {
|
|
97
|
+
// Allow enough time to
|
|
98
|
+
// - build the checkpoint
|
|
99
|
+
// - Round-trip over p2p
|
|
100
|
+
// - Publish to L1
|
|
101
|
+
return this.checkpointAssembleTime + this.p2pPropagationTime * 2 + this.l1PublishingTime;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
public get proposalWindowIntoTargetSlot(): number {
|
|
105
|
+
// Proposals no longer spill into the target slot: they are broadcast early
|
|
106
|
+
// enough in the build slot that attestations complete before the boundary.
|
|
107
|
+
// Any residual tolerance into the target slot is covered by clock disparity.
|
|
108
|
+
return 0;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
public get attestationWindowIntoTargetSlot(): number {
|
|
112
|
+
// Span from the target-slot start to the L1 publish deadline (12s before the last L1 block of
|
|
113
|
+
// the target slot). The p2p layer accepts slot-N attestations until right before the publish
|
|
114
|
+
// deadline so the proposer can keep collecting useful attestations up to the latest moment the
|
|
115
|
+
// checkpoint can still land on L1 in the target slot.
|
|
116
|
+
return Math.max(0, this.aztecSlotDuration - 2 * this.ethereumSlotDuration);
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
public get pipeliningAttestationGracePeriod(): number {
|
|
120
|
+
// Under the early-pipelining regime attestations complete inside the build slot itself. Local
|
|
121
|
+
// networks can publish much faster than the Ethereum slot geometry, so they may use the target
|
|
122
|
+
// slot attestation window without moving the L1 publish cutoff.
|
|
123
|
+
return this.l1PublishingTime < this.ethereumSlotDuration ? this.attestationWindowIntoTargetSlot : 0;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
public get timeReservedAtEnd(): number {
|
|
127
|
+
// Reserve enough time at the end of the build slot for:
|
|
128
|
+
// - assembling and broadcasting the checkpoint proposal
|
|
129
|
+
// - round-trip p2p propagation (proposal out, attestations back)
|
|
130
|
+
// - validators re-executing the last block
|
|
131
|
+
return this.checkpointAssembleTime + 2 * this.p2pPropagationTime + (this.blockDuration ?? 0);
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
public get minimumBuildSlotWork(): number {
|
|
135
|
+
return this.checkpointInitializationTime + this.minExecutionTime * 2;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
public get initializeDeadline(): number {
|
|
139
|
+
return this.aztecSlotDuration - this.minimumBuildSlotWork;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
public get checkpointAssemblyDeadline(): number {
|
|
143
|
+
// Allow enough time to build all blocks and receive attestations. With
|
|
144
|
+
// `pipeliningAttestationGracePeriod = 0` this equals `aztecSlotDuration`.
|
|
145
|
+
return this.aztecSlotDuration + this.pipeliningAttestationGracePeriod;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
public get checkpointAttestationStartDeadline(): number {
|
|
149
|
+
return this.checkpointAssemblyDeadline;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
public get checkpointAttestationDeadline(): number {
|
|
153
|
+
// L1 publish deadline — 12s (one Ethereum slot) before the last L1 block of the target L2 slot;
|
|
154
|
+
// the latest the checkpoint can be submitted and still land on L1 in the target slot. This is an
|
|
155
|
+
// L1-geometry bound (ethereumSlotDuration), matching the publisher's send lead in sendRequestsAt
|
|
156
|
+
// (which also targets one Ethereum slot before the target slot start).
|
|
157
|
+
return this.aztecSlotDuration * 2 - this.ethereumSlotDuration;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
public get checkpointPublishingDeadline(): number {
|
|
161
|
+
// L1 publish deadline — 12s (one Ethereum slot) before the last L1 block of the target L2 slot;
|
|
162
|
+
// the latest the checkpoint can be submitted and still land on L1 in the target slot.
|
|
163
|
+
return this.aztecSlotDuration * 2 - this.ethereumSlotDuration;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
public calculateMaxBlocksPerSlot(): number {
|
|
167
|
+
if (!this.blockDuration) {
|
|
168
|
+
return 1;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
const timeAvailableForBlocks = this.aztecSlotDuration - this.checkpointInitializationTime - this.timeReservedAtEnd;
|
|
172
|
+
return Math.floor(timeAvailableForBlocks / this.blockDuration);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
/**
|
|
177
|
+
* Creates a checkpoint timing model.
|
|
178
|
+
*
|
|
179
|
+
* Most callers should use this factory and depend only on the shared
|
|
180
|
+
* `CheckpointTiming` interface.
|
|
181
|
+
*/
|
|
182
|
+
export function createCheckpointTimingModel(opts: CheckpointTimingConfig): CheckpointTiming {
|
|
183
|
+
return createPipelinedCheckpointTimingModel(opts);
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
/**
|
|
187
|
+
* Creates a checkpoint timing model exposing the target-slot window accessors.
|
|
188
|
+
*
|
|
189
|
+
* Use this when the caller specifically needs the pipelined timing surface, such
|
|
190
|
+
* as proposal or attestation acceptance windows into the target slot.
|
|
191
|
+
*/
|
|
192
|
+
export function createPipelinedCheckpointTimingModel(opts: CheckpointTimingConfig): PipelinedCheckpointTiming {
|
|
193
|
+
validateCheckpointTimingConfig(opts);
|
|
194
|
+
const normalizedOpts = normalizeCheckpointTimingConfig(opts);
|
|
195
|
+
|
|
196
|
+
const timing = new CheckpointTimingModel(normalizedOpts);
|
|
197
|
+
validateCheckpointTimingModel(timing);
|
|
198
|
+
return timing;
|
|
199
|
+
}
|
|
200
|
+
|
|
28
201
|
/**
|
|
29
202
|
* Calculates the maximum number of blocks that can be built in a slot.
|
|
30
203
|
* Used by both the sequencer timetable and p2p gossipsub scoring.
|
|
@@ -44,23 +217,88 @@ export function calculateMaxBlocksPerSlot(
|
|
|
44
217
|
l1PublishingTime?: number;
|
|
45
218
|
} = {},
|
|
46
219
|
): number {
|
|
47
|
-
|
|
48
|
-
|
|
220
|
+
return createCheckpointTimingModel({
|
|
221
|
+
aztecSlotDuration: aztecSlotDurationSec,
|
|
222
|
+
blockDuration: blockDurationSec,
|
|
223
|
+
checkpointAssembleTime: opts.checkpointAssembleTime,
|
|
224
|
+
checkpointInitializationTime: opts.checkpointInitializationTime,
|
|
225
|
+
l1PublishingTime: opts.l1PublishingTime,
|
|
226
|
+
p2pPropagationTime: opts.p2pPropagationTime,
|
|
227
|
+
}).calculateMaxBlocksPerSlot();
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
function assertNonNegative(name: string, value: number): void {
|
|
231
|
+
if (value < 0) {
|
|
232
|
+
throw new Error(`${name} must be non-negative (got ${value})`);
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
function validateCheckpointTimingConfig(opts: CheckpointTimingConfig): void {
|
|
237
|
+
if (opts.aztecSlotDuration <= 0) {
|
|
238
|
+
throw new Error(`aztecSlotDuration must be positive (got ${opts.aztecSlotDuration})`);
|
|
49
239
|
}
|
|
50
240
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
241
|
+
if (opts.ethereumSlotDuration !== undefined && opts.ethereumSlotDuration <= 0) {
|
|
242
|
+
throw new Error(`ethereumSlotDuration must be positive when provided (got ${opts.ethereumSlotDuration})`);
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
if (opts.blockDuration !== undefined && opts.blockDuration <= 0) {
|
|
246
|
+
throw new Error(`blockDuration must be positive when provided (got ${opts.blockDuration})`);
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
if (opts.minExecutionTime !== undefined && opts.minExecutionTime <= 0) {
|
|
250
|
+
throw new Error(`minExecutionTime must be positive when provided (got ${opts.minExecutionTime})`);
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
if (opts.checkpointAssembleTime !== undefined) {
|
|
254
|
+
assertNonNegative('checkpointAssembleTime', opts.checkpointAssembleTime);
|
|
255
|
+
}
|
|
256
|
+
if (opts.checkpointInitializationTime !== undefined) {
|
|
257
|
+
assertNonNegative('checkpointInitializationTime', opts.checkpointInitializationTime);
|
|
258
|
+
}
|
|
259
|
+
if (opts.l1PublishingTime !== undefined) {
|
|
260
|
+
assertNonNegative('l1PublishingTime', opts.l1PublishingTime);
|
|
261
|
+
}
|
|
262
|
+
if (opts.p2pPropagationTime !== undefined) {
|
|
263
|
+
assertNonNegative('p2pPropagationTime', opts.p2pPropagationTime);
|
|
264
|
+
}
|
|
265
|
+
}
|
|
55
266
|
|
|
56
|
-
|
|
57
|
-
|
|
267
|
+
function normalizeCheckpointTimingConfig(opts: CheckpointTimingConfig): CheckpointTimingConfig {
|
|
268
|
+
let checkpointAssembleTime = opts.checkpointAssembleTime ?? CHECKPOINT_ASSEMBLE_TIME;
|
|
269
|
+
let checkpointInitializationTime = opts.checkpointInitializationTime ?? CHECKPOINT_INITIALIZATION_TIME;
|
|
270
|
+
let minExecutionTime = opts.minExecutionTime ?? MIN_EXECUTION_TIME;
|
|
271
|
+
let p2pPropagationTime = opts.p2pPropagationTime ?? DEFAULT_P2P_PROPAGATION_TIME;
|
|
58
272
|
|
|
59
|
-
|
|
60
|
-
|
|
273
|
+
if (opts.ethereumSlotDuration !== undefined && opts.ethereumSlotDuration < 8) {
|
|
274
|
+
p2pPropagationTime = 0;
|
|
275
|
+
checkpointAssembleTime = 0.5;
|
|
276
|
+
checkpointInitializationTime = 0.5;
|
|
277
|
+
minExecutionTime = 1;
|
|
278
|
+
}
|
|
61
279
|
|
|
62
|
-
|
|
63
|
-
|
|
280
|
+
if (opts.blockDuration !== undefined && minExecutionTime > opts.blockDuration) {
|
|
281
|
+
minExecutionTime = opts.blockDuration;
|
|
282
|
+
}
|
|
64
283
|
|
|
65
|
-
return
|
|
284
|
+
return {
|
|
285
|
+
...opts,
|
|
286
|
+
checkpointAssembleTime,
|
|
287
|
+
checkpointInitializationTime,
|
|
288
|
+
minExecutionTime,
|
|
289
|
+
p2pPropagationTime,
|
|
290
|
+
};
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
function validateCheckpointTimingModel(model: CheckpointTiming): void {
|
|
294
|
+
if (model.blockDuration === undefined) {
|
|
295
|
+
return;
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
const timeAvailableForBlocks = model.aztecSlotDuration - model.checkpointInitializationTime - model.timeReservedAtEnd;
|
|
299
|
+
if (timeAvailableForBlocks < model.blockDuration) {
|
|
300
|
+
throw new Error(
|
|
301
|
+
`Invalid timing configuration: only ${timeAvailableForBlocks}s available for block building, which is less than one blockDuration (${model.blockDuration}s).`,
|
|
302
|
+
);
|
|
303
|
+
}
|
|
66
304
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
2
2
|
import { schemas } from '@aztec/foundation/schemas';
|
|
3
|
-
import { BufferReader, FieldReader,
|
|
3
|
+
import { BufferReader, BufferSink, FieldReader, serializeToSink } from '@aztec/foundation/serialize';
|
|
4
4
|
import { bufferToHex, hexToBuffer } from '@aztec/foundation/string';
|
|
5
5
|
|
|
6
6
|
import { inspect } from 'util';
|
|
@@ -44,8 +44,13 @@ export class AppendOnlyTreeSnapshot {
|
|
|
44
44
|
return this.root.size + 4;
|
|
45
45
|
}
|
|
46
46
|
|
|
47
|
-
toBuffer()
|
|
48
|
-
|
|
47
|
+
toBuffer(): Buffer;
|
|
48
|
+
toBuffer(sink: BufferSink): void;
|
|
49
|
+
toBuffer(sink?: BufferSink): Buffer | void {
|
|
50
|
+
if (!sink) {
|
|
51
|
+
return BufferSink.serialize(this);
|
|
52
|
+
}
|
|
53
|
+
serializeToSink(sink, this.root, this.nextAvailableLeafIndex);
|
|
49
54
|
}
|
|
50
55
|
|
|
51
56
|
toFields(): Fr[] {
|
|
@@ -86,6 +86,10 @@ export class NullifierLeafPreimage implements IndexedTreeLeafPreimage {
|
|
|
86
86
|
];
|
|
87
87
|
}
|
|
88
88
|
|
|
89
|
+
isEmpty(): boolean {
|
|
90
|
+
return this.leaf.isEmpty() && this.nextKey.isZero() && this.nextIndex === 0n;
|
|
91
|
+
}
|
|
92
|
+
|
|
89
93
|
toFields(): Fr[] {
|
|
90
94
|
return this.toHashInputs().map(buf => Fr.fromBuffer(buf));
|
|
91
95
|
}
|