@aztec/stdlib 0.0.1-commit.7d4e6cd → 0.0.1-commit.808bf7f90
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/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/utils.d.ts +7 -1
- package/dest/abi/utils.d.ts.map +1 -1
- package/dest/abi/utils.js +7 -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 +62 -62
- 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 +299 -299
- 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 +4 -4
- package/dest/avm/revert_code.d.ts.map +1 -1
- 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 +18 -14
- package/dest/block/block_hash.d.ts.map +1 -1
- package/dest/block/block_hash.js +22 -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 +56 -59
- package/dest/block/l2_block.d.ts.map +1 -1
- package/dest/block/l2_block.js +64 -110
- package/dest/block/l2_block_source.d.ts +84 -39
- package/dest/block/l2_block_source.d.ts.map +1 -1
- package/dest/block/l2_block_source.js +2 -1
- package/dest/block/l2_block_stream/interfaces.d.ts +9 -6
- 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 +37 -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/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 +2 -7
- 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 +43 -19
- package/dest/checkpoint/checkpoint.d.ts.map +1 -1
- package/dest/checkpoint/checkpoint.js +37 -14
- package/dest/checkpoint/checkpoint_data.d.ts +120 -0
- package/dest/checkpoint/checkpoint_data.d.ts.map +1 -0
- package/dest/checkpoint/checkpoint_data.js +26 -0
- package/dest/checkpoint/index.d.ts +2 -1
- package/dest/checkpoint/index.d.ts.map +1 -1
- package/dest/checkpoint/index.js +1 -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/config/index.d.ts +2 -1
- package/dest/config/index.d.ts.map +1 -1
- package/dest/config/index.js +1 -0
- package/dest/config/node-rpc-config.js +1 -1
- package/dest/config/sequencer-config.d.ts +10 -0
- package/dest/config/sequencer-config.d.ts.map +1 -0
- package/dest/config/sequencer-config.js +18 -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.js +4 -4
- 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 +2 -2
- package/dest/contract/contract_class_id.d.ts.map +1 -1
- package/dest/contract/contract_class_id.js +6 -5
- package/dest/contract/contract_deployment_data.d.ts +5 -5
- 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_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/contract/private_function_membership_proof.d.ts +1 -1
- package/dest/contract/private_function_membership_proof.js +1 -1
- 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 +7 -1
- package/dest/epoch-helpers/index.d.ts.map +1 -1
- package/dest/epoch-helpers/index.js +9 -3
- package/dest/errors/proving_error.d.ts +2 -2
- package/dest/errors/proving_error.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/ha-signing/config.d.ts +101 -0
- package/dest/ha-signing/config.d.ts.map +1 -0
- package/dest/ha-signing/config.js +92 -0
- package/dest/ha-signing/index.d.ts +3 -0
- package/dest/ha-signing/index.d.ts.map +1 -0
- package/dest/ha-signing/index.js +2 -0
- package/dest/ha-signing/types.d.ts +85 -0
- package/dest/ha-signing/types.d.ts.map +1 -0
- package/dest/ha-signing/types.js +32 -0
- package/dest/hash/hash.d.ts +2 -1
- package/dest/hash/hash.d.ts.map +1 -1
- package/dest/hash/hash.js +16 -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/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 +23 -15
- package/dest/interfaces/aztec-node-admin.d.ts +101 -28
- package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
- package/dest/interfaces/aztec-node-admin.js +12 -4
- package/dest/interfaces/aztec-node.d.ts +66 -69
- package/dest/interfaces/aztec-node.d.ts.map +1 -1
- package/dest/interfaces/aztec-node.js +10 -16
- package/dest/interfaces/block-builder.d.ts +22 -14
- package/dest/interfaces/block-builder.d.ts.map +1 -1
- package/dest/interfaces/block-builder.js +7 -0
- package/dest/interfaces/configs.d.ts +24 -9
- package/dest/interfaces/configs.d.ts.map +1 -1
- package/dest/interfaces/configs.js +4 -1
- 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 +14 -5
- package/dest/interfaces/l2_logs_source.d.ts.map +1 -1
- package/dest/interfaces/merkle_tree_operations.d.ts +2 -2
- package/dest/interfaces/merkle_tree_operations.d.ts.map +1 -1
- package/dest/interfaces/p2p.d.ts +2 -2
- 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 +15 -1
- package/dest/interfaces/prover-client.d.ts.map +1 -1
- package/dest/interfaces/prover-client.js +12 -1
- package/dest/interfaces/proving-job.d.ts +216 -216
- package/dest/interfaces/slasher.d.ts +9 -1
- package/dest/interfaces/slasher.d.ts.map +1 -1
- package/dest/interfaces/slasher.js +2 -0
- 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 +118 -16
- package/dest/interfaces/validator.d.ts.map +1 -1
- package/dest/interfaces/validator.js +6 -3
- package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts +1 -1
- 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 +16 -6
- package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts +3 -3
- package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts.map +1 -1
- package/dest/kernel/hints/build_nullifier_read_request_hints.js +16 -8
- 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 +25 -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 +7 -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/l1-contracts/slash_factory.d.ts +1 -1
- package/dest/l1-contracts/slash_factory.d.ts.map +1 -1
- package/dest/l1-contracts/slash_factory.js +1 -0
- 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_public_log.d.ts +17 -9
- package/dest/logs/extended_public_log.d.ts.map +1 -1
- package/dest/logs/index.d.ts +2 -1
- package/dest/logs/index.d.ts.map +1 -1
- package/dest/logs/index.js +1 -0
- 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 +20 -17
- package/dest/logs/private_log.d.ts +2 -2
- package/dest/logs/private_log.d.ts.map +1 -1
- package/dest/logs/siloed_tag.d.ts +1 -1
- package/dest/logs/siloed_tag.d.ts.map +1 -1
- package/dest/logs/siloed_tag.js +2 -5
- 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 +6 -1
- package/dest/messaging/l1_to_l2_message.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 +3 -3
- package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -1
- package/dest/messaging/l2_to_l1_membership.js +8 -6
- 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/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 +15 -12
- 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 +23 -8
- package/dest/p2p/block_proposal.d.ts.map +1 -1
- package/dest/p2p/block_proposal.js +26 -10
- package/dest/p2p/checkpoint_attestation.d.ts +6 -1
- package/dest/p2p/checkpoint_attestation.d.ts.map +1 -1
- package/dest/p2p/checkpoint_attestation.js +1 -1
- package/dest/p2p/checkpoint_proposal.d.ts +34 -9
- package/dest/p2p/checkpoint_proposal.d.ts.map +1 -1
- package/dest/p2p/checkpoint_proposal.js +46 -20
- 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/index.d.ts +2 -1
- package/dest/p2p/index.d.ts.map +1 -1
- package/dest/p2p/index.js +1 -0
- 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/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.js +2 -1
- 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 +1 -1
- package/dest/proofs/chonk_proof.d.ts.map +1 -1
- package/dest/proofs/chonk_proof.js +9 -4
- 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/empire.d.ts +1 -1
- package/dest/slashing/empire.d.ts.map +1 -1
- package/dest/slashing/empire.js +2 -0
- 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/tally.d.ts +2 -1
- package/dest/slashing/tally.d.ts.map +1 -1
- package/dest/slashing/tally.js +6 -2
- package/dest/slashing/types.d.ts +7 -3
- package/dest/slashing/types.d.ts.map +1 -1
- package/dest/slashing/types.js +13 -1
- package/dest/stats/stats.d.ts +1 -3
- package/dest/stats/stats.d.ts.map +1 -1
- package/dest/tests/factories.d.ts +2 -4
- package/dest/tests/factories.d.ts.map +1 -1
- package/dest/tests/factories.js +18 -27
- package/dest/tests/jest.js +1 -1
- package/dest/tests/mocks.d.ts +24 -15
- package/dest/tests/mocks.d.ts.map +1 -1
- package/dest/tests/mocks.js +63 -40
- package/dest/timetable/index.d.ts +37 -0
- package/dest/timetable/index.d.ts.map +1 -0
- package/dest/timetable/index.js +39 -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 +14 -2
- package/dest/tx/block_header.d.ts.map +1 -1
- package/dest/tx/block_header.js +6 -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 +4 -1
- package/dest/tx/capsule.d.ts.map +1 -1
- package/dest/tx/execution_payload.d.ts +9 -1
- package/dest/tx/execution_payload.d.ts.map +1 -1
- package/dest/tx/function_data.d.ts +4 -2
- package/dest/tx/function_data.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/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 +3 -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 +23 -2
- package/dest/tx/private_execution_result.d.ts.map +1 -1
- package/dest/tx/private_execution_result.js +1 -1
- 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 +152 -29
- package/dest/tx/profiling.d.ts.map +1 -1
- package/dest/tx/profiling.js +47 -10
- 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/state_reference.d.ts +3 -1
- package/dest/tx/state_reference.d.ts.map +1 -1
- package/dest/tx/tx.d.ts +24 -1
- package/dest/tx/tx.d.ts.map +1 -1
- package/dest/tx/tx.js +6 -3
- 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 +62 -14
- package/dest/tx/tx_receipt.d.ts.map +1 -1
- package/dest/tx/tx_receipt.js +55 -16
- 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 +3 -2
- package/dest/tx/validator/error_texts.d.ts.map +1 -1
- package/dest/tx/validator/error_texts.js +3 -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/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/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/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 +27 -13
- package/src/abi/function_call.ts +25 -3
- package/src/abi/utils.ts +17 -0
- package/src/auth_witness/auth_witness.ts +3 -3
- package/src/block/block_data.ts +26 -0
- package/src/block/block_hash.ts +26 -25
- 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 +102 -150
- package/src/block/l2_block_source.ts +93 -42
- package/src/block/l2_block_stream/interfaces.ts +8 -5
- package/src/block/l2_block_stream/l2_block_stream.ts +45 -37
- package/src/block/l2_block_stream/l2_tips_store_base.ts +2 -2
- package/src/block/test/l2_tips_store_test_suite.ts +4 -9
- package/src/block/validate_block_result.ts +5 -4
- package/src/checkpoint/checkpoint.ts +61 -21
- package/src/checkpoint/checkpoint_data.ts +51 -0
- package/src/checkpoint/index.ts +1 -0
- package/src/checkpoint/published_checkpoint.ts +7 -4
- package/src/config/index.ts +1 -0
- package/src/config/node-rpc-config.ts +1 -1
- package/src/config/sequencer-config.ts +29 -0
- package/src/contract/contract_address.ts +4 -4
- package/src/contract/contract_class.ts +3 -3
- package/src/contract/contract_class_id.ts +6 -5
- package/src/contract/index.ts +0 -2
- package/src/contract/interfaces/node-info.ts +3 -0
- package/src/contract/private_function.ts +3 -4
- package/src/contract/private_function_membership_proof.ts +1 -1
- 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 +13 -1
- package/src/file-store/local.ts +15 -5
- package/src/file-store/s3.ts +12 -3
- package/src/ha-signing/config.ts +149 -0
- package/src/ha-signing/index.ts +18 -0
- package/src/ha-signing/types.ts +112 -0
- package/src/hash/hash.ts +14 -10
- package/src/hash/map_slot.ts +3 -2
- package/src/interfaces/api_limit.ts +1 -0
- package/src/interfaces/archiver.ts +23 -24
- package/src/interfaces/aztec-node-admin.ts +26 -2
- package/src/interfaces/aztec-node.ts +86 -135
- package/src/interfaces/block-builder.ts +41 -23
- package/src/interfaces/configs.ts +13 -4
- package/src/interfaces/l2_logs_source.ts +17 -4
- package/src/interfaces/merkle_tree_operations.ts +1 -1
- package/src/interfaces/p2p.ts +1 -1
- package/src/interfaces/prover-broker.ts +22 -0
- package/src/interfaces/prover-client.ts +22 -0
- package/src/interfaces/slasher.ts +4 -0
- package/src/interfaces/tx_provider.ts +2 -2
- package/src/interfaces/validator.ts +20 -12
- package/src/kernel/hints/build_note_hash_read_request_hints.ts +17 -6
- package/src/kernel/hints/build_nullifier_read_request_hints.ts +17 -14
- 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 +5 -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/l1-contracts/slash_factory.ts +1 -0
- package/src/logs/debug_log_store.ts +54 -0
- package/src/logs/index.ts +1 -0
- package/src/logs/log_id.ts +22 -18
- package/src/logs/siloed_tag.ts +2 -2
- package/src/messaging/l2_to_l1_membership.ts +8 -6
- package/src/messaging/out_hash.ts +60 -29
- package/src/note/index.ts +0 -1
- package/src/note/note_dao.ts +18 -13
- package/src/p2p/attestation_utils.ts +56 -0
- package/src/p2p/block_proposal.ts +36 -15
- package/src/p2p/checkpoint_attestation.ts +6 -1
- package/src/p2p/checkpoint_proposal.ts +74 -24
- package/src/p2p/consensus_payload.ts +25 -17
- package/src/p2p/constants.ts +6 -0
- package/src/p2p/index.ts +1 -0
- package/src/p2p/message_validator.ts +14 -2
- package/src/p2p/signed_txs.ts +6 -1
- package/src/p2p/topic_type.ts +1 -1
- package/src/proofs/chonk_proof.ts +9 -5
- 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/empire.ts +3 -1
- package/src/slashing/helpers.ts +8 -0
- package/src/slashing/tally.ts +8 -2
- package/src/slashing/types.ts +14 -0
- package/src/stats/stats.ts +0 -2
- package/src/tests/factories.ts +23 -43
- package/src/tests/jest.ts +1 -1
- package/src/tests/mocks.ts +90 -55
- package/src/timetable/index.ts +66 -0
- package/src/trees/public_data_leaf.ts +11 -5
- package/src/tx/block_header.ts +12 -4
- package/src/tx/global_variables.ts +3 -3
- package/src/tx/indexed_tx_effect.ts +3 -2
- package/src/tx/private_execution_result.ts +1 -1
- package/src/tx/profiling.ts +51 -9
- package/src/tx/protocol_contracts.ts +2 -2
- package/src/tx/public_simulation_output.ts +4 -0
- package/src/tx/tx.ts +8 -9
- package/src/tx/tx_effect.ts +0 -9
- package/src/tx/tx_receipt.ts +85 -18
- package/src/tx/tx_request.ts +2 -2
- package/src/tx/validator/empty_validator.ts +1 -1
- package/src/tx/validator/error_texts.ts +4 -1
- package/src/tx/validator/tx_validator.ts +1 -1
- package/src/validators/schemas.ts +8 -1
- package/src/validators/types.ts +5 -4
- 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/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/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/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/database-version/index.ts +0 -1
- package/src/note/notes_filter.ts +0 -38
package/src/tests/mocks.ts
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import {
|
|
2
|
-
FIXED_DA_GAS,
|
|
3
|
-
FIXED_L2_GAS,
|
|
4
2
|
MAX_ENQUEUED_CALLS_PER_TX,
|
|
5
|
-
MAX_INCLUDE_BY_TIMESTAMP_DURATION,
|
|
6
3
|
MAX_NULLIFIERS_PER_TX,
|
|
7
4
|
MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX,
|
|
5
|
+
MAX_TX_LIFETIME,
|
|
6
|
+
PRIVATE_TX_L2_GAS_OVERHEAD,
|
|
7
|
+
PUBLIC_TX_L2_GAS_OVERHEAD,
|
|
8
|
+
TX_DA_GAS_OVERHEAD,
|
|
8
9
|
} from '@aztec/constants';
|
|
9
10
|
import { type FieldsOf, makeTuple } from '@aztec/foundation/array';
|
|
10
|
-
import { BlockNumber, CheckpointNumber, SlotNumber } from '@aztec/foundation/branded-types';
|
|
11
|
+
import { BlockNumber, CheckpointNumber, IndexWithinCheckpoint, SlotNumber } from '@aztec/foundation/branded-types';
|
|
11
12
|
import { Buffer32 } from '@aztec/foundation/buffer';
|
|
12
13
|
import { padArrayEnd, times } from '@aztec/foundation/collection';
|
|
13
14
|
import { randomBytes } from '@aztec/foundation/crypto/random';
|
|
@@ -22,8 +23,7 @@ import { AvmCircuitPublicInputs } from '../avm/avm_circuit_public_inputs.js';
|
|
|
22
23
|
import { PublicDataWrite } from '../avm/public_data_write.js';
|
|
23
24
|
import { RevertCode } from '../avm/revert_code.js';
|
|
24
25
|
import { AztecAddress } from '../aztec-address/index.js';
|
|
25
|
-
import {
|
|
26
|
-
import { L2Block } from '../block/l2_block.js';
|
|
26
|
+
import { CheckpointedL2Block, CommitteeAttestation, L2Block } from '../block/index.js';
|
|
27
27
|
import type { CommitteeAttestationsAndSigners } from '../block/proposal/attestations_and_signers.js';
|
|
28
28
|
import { Checkpoint } from '../checkpoint/checkpoint.js';
|
|
29
29
|
import { L1PublishedData } from '../checkpoint/published_checkpoint.js';
|
|
@@ -76,9 +76,9 @@ import {
|
|
|
76
76
|
makeAvmCircuitInputs,
|
|
77
77
|
makeAztecAddress,
|
|
78
78
|
makeBlockHeader,
|
|
79
|
+
makeCheckpointHeader,
|
|
79
80
|
makeGas,
|
|
80
81
|
makeGlobalVariables,
|
|
81
|
-
makeL2BlockHeader,
|
|
82
82
|
makePrivateToPublicAccumulatedData,
|
|
83
83
|
makePrivateToRollupAccumulatedData,
|
|
84
84
|
makeProtocolContracts,
|
|
@@ -98,12 +98,14 @@ export const mockTx = async (
|
|
|
98
98
|
publicCalldataSize = 2,
|
|
99
99
|
feePayer,
|
|
100
100
|
chonkProof = ChonkProof.random(),
|
|
101
|
+
maxFeesPerGas = new GasFees(10, 10),
|
|
101
102
|
maxPriorityFeesPerGas,
|
|
102
103
|
gasUsed = Gas.empty(),
|
|
103
104
|
chainId = Fr.ZERO,
|
|
104
105
|
version = Fr.ZERO,
|
|
105
106
|
vkTreeRoot = Fr.ZERO,
|
|
106
107
|
protocolContractsHash = Fr.ZERO,
|
|
108
|
+
anchorBlockHeader = BlockHeader.empty(),
|
|
107
109
|
}: {
|
|
108
110
|
numberOfNonRevertiblePublicCallRequests?: number;
|
|
109
111
|
numberOfRevertiblePublicCallRequests?: number;
|
|
@@ -112,12 +114,14 @@ export const mockTx = async (
|
|
|
112
114
|
publicCalldataSize?: number;
|
|
113
115
|
feePayer?: AztecAddress;
|
|
114
116
|
chonkProof?: ChonkProof;
|
|
117
|
+
maxFeesPerGas?: GasFees;
|
|
115
118
|
maxPriorityFeesPerGas?: GasFees;
|
|
116
119
|
gasUsed?: Gas;
|
|
117
120
|
chainId?: Fr;
|
|
118
121
|
version?: Fr;
|
|
119
122
|
vkTreeRoot?: Fr;
|
|
120
123
|
protocolContractsHash?: Fr;
|
|
124
|
+
anchorBlockHeader?: BlockHeader;
|
|
121
125
|
} = {},
|
|
122
126
|
) => {
|
|
123
127
|
const totalPublicCallRequests =
|
|
@@ -127,10 +131,8 @@ export const mockTx = async (
|
|
|
127
131
|
const isForPublic = totalPublicCallRequests > 0;
|
|
128
132
|
const data = PrivateKernelTailCircuitPublicInputs.empty();
|
|
129
133
|
const firstNullifier = new Nullifier(new Fr(seed + 1), Fr.ZERO, 0);
|
|
130
|
-
data.constants.
|
|
131
|
-
|
|
132
|
-
maxPriorityFeesPerGas,
|
|
133
|
-
});
|
|
134
|
+
data.constants.anchorBlockHeader = anchorBlockHeader;
|
|
135
|
+
data.constants.txContext.gasSettings = GasSettings.default({ maxFeesPerGas, maxPriorityFeesPerGas });
|
|
134
136
|
data.feePayer = feePayer ?? (await AztecAddress.random());
|
|
135
137
|
data.gasUsed = gasUsed;
|
|
136
138
|
data.constants.txContext.chainId = chainId;
|
|
@@ -138,8 +140,8 @@ export const mockTx = async (
|
|
|
138
140
|
data.constants.vkTreeRoot = vkTreeRoot;
|
|
139
141
|
data.constants.protocolContractsHash = protocolContractsHash;
|
|
140
142
|
|
|
141
|
-
// Set
|
|
142
|
-
data.
|
|
143
|
+
// Set expirationTimestamp to the maximum allowed duration from the current time.
|
|
144
|
+
data.expirationTimestamp = BigInt(Math.floor(Date.now() / 1000) + MAX_TX_LIFETIME);
|
|
143
145
|
|
|
144
146
|
const publicFunctionCalldata: HashedValues[] = [];
|
|
145
147
|
if (!isForPublic) {
|
|
@@ -204,8 +206,11 @@ export async function mockProcessedTx({
|
|
|
204
206
|
feePayer,
|
|
205
207
|
feePaymentPublicDataWrite,
|
|
206
208
|
// The default gasUsed is the tx overhead.
|
|
207
|
-
gasUsed = Gas.from({ daGas: FIXED_DA_GAS, l2Gas: FIXED_L2_GAS }),
|
|
208
209
|
privateOnly = false,
|
|
210
|
+
gasUsed = Gas.from({
|
|
211
|
+
daGas: TX_DA_GAS_OVERHEAD,
|
|
212
|
+
l2Gas: privateOnly ? PRIVATE_TX_L2_GAS_OVERHEAD : PUBLIC_TX_L2_GAS_OVERHEAD,
|
|
213
|
+
}),
|
|
209
214
|
avmAccumulatedData,
|
|
210
215
|
...mockTxOpts
|
|
211
216
|
}: {
|
|
@@ -400,38 +405,47 @@ export async function mockCheckpointAndMessages(
|
|
|
400
405
|
{
|
|
401
406
|
startBlockNumber = BlockNumber(1),
|
|
402
407
|
numBlocks = 1,
|
|
408
|
+
blocks,
|
|
403
409
|
numTxsPerBlock = 1,
|
|
404
410
|
numL1ToL2Messages = 1,
|
|
405
411
|
makeBlockOptions = () => ({}),
|
|
406
412
|
previousArchive,
|
|
413
|
+
maxEffects,
|
|
407
414
|
...options
|
|
408
415
|
}: {
|
|
409
416
|
startBlockNumber?: BlockNumber;
|
|
410
417
|
numBlocks?: number;
|
|
411
418
|
numTxsPerBlock?: number;
|
|
412
419
|
numL1ToL2Messages?: number;
|
|
413
|
-
makeBlockOptions?: (blockNumber: BlockNumber) => Partial<Parameters<typeof
|
|
420
|
+
makeBlockOptions?: (blockNumber: BlockNumber) => Partial<Parameters<typeof L2Block.random>[1]>;
|
|
414
421
|
previousArchive?: AppendOnlyTreeSnapshot;
|
|
422
|
+
blocks?: L2Block[];
|
|
423
|
+
maxEffects?: number;
|
|
415
424
|
} & Partial<Parameters<typeof Checkpoint.random>[1]> &
|
|
416
|
-
Partial<Parameters<typeof
|
|
425
|
+
Partial<Parameters<typeof L2Block.random>[1]> = {},
|
|
417
426
|
) {
|
|
418
|
-
const slotNumber = options.slotNumber ?? SlotNumber(checkpointNumber * 10);
|
|
427
|
+
const slotNumber = options.slotNumber ?? SlotNumber(Number(checkpointNumber) * 10);
|
|
419
428
|
const blocksAndMessages = [];
|
|
420
429
|
// Track the previous block's archive to ensure consecutive blocks have consistent archive roots.
|
|
421
430
|
// The current block's header.lastArchive must equal the previous block's archive.
|
|
422
431
|
let lastArchive: AppendOnlyTreeSnapshot | undefined = previousArchive;
|
|
423
|
-
|
|
432
|
+
// Pass maxEffects via txOptions so it reaches TxEffect.random
|
|
433
|
+
const txOptions = maxEffects !== undefined ? { maxEffects } : {};
|
|
434
|
+
for (let i = 0; i < (blocks?.length ?? numBlocks); i++) {
|
|
424
435
|
const blockNumber = BlockNumber(startBlockNumber + i);
|
|
425
436
|
const { block, messages } = {
|
|
426
|
-
block:
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
437
|
+
block:
|
|
438
|
+
blocks?.[i] ??
|
|
439
|
+
(await L2Block.random(blockNumber, {
|
|
440
|
+
checkpointNumber,
|
|
441
|
+
indexWithinCheckpoint: IndexWithinCheckpoint(i),
|
|
442
|
+
txsPerBlock: numTxsPerBlock,
|
|
443
|
+
txOptions,
|
|
444
|
+
slotNumber,
|
|
445
|
+
...options,
|
|
446
|
+
...makeBlockOptions(blockNumber),
|
|
447
|
+
...(lastArchive ? { lastArchive } : {}),
|
|
448
|
+
})),
|
|
435
449
|
messages: mockL1ToL2Messages(numL1ToL2Messages),
|
|
436
450
|
};
|
|
437
451
|
// Update lastArchive for the next block
|
|
@@ -489,16 +503,17 @@ export interface MakeConsensusPayloadOptions {
|
|
|
489
503
|
signer?: Secp256k1Signer;
|
|
490
504
|
attesterSigner?: Secp256k1Signer;
|
|
491
505
|
proposerSigner?: Secp256k1Signer;
|
|
492
|
-
header?:
|
|
506
|
+
header?: CheckpointHeader;
|
|
493
507
|
archive?: Fr;
|
|
494
508
|
txHashes?: TxHash[];
|
|
495
509
|
txs?: Tx[];
|
|
510
|
+
feeAssetPriceModifier?: bigint;
|
|
496
511
|
}
|
|
497
512
|
|
|
498
513
|
export interface MakeBlockProposalOptions {
|
|
499
514
|
signer?: Secp256k1Signer;
|
|
500
|
-
blockHeader?:
|
|
501
|
-
indexWithinCheckpoint?:
|
|
515
|
+
blockHeader?: BlockHeader;
|
|
516
|
+
indexWithinCheckpoint?: IndexWithinCheckpoint;
|
|
502
517
|
inHash?: Fr;
|
|
503
518
|
archiveRoot?: Fr;
|
|
504
519
|
txHashes?: TxHash[];
|
|
@@ -509,10 +524,11 @@ export interface MakeCheckpointProposalOptions {
|
|
|
509
524
|
signer?: Secp256k1Signer;
|
|
510
525
|
checkpointHeader?: CheckpointHeader;
|
|
511
526
|
archiveRoot?: Fr;
|
|
527
|
+
feeAssetPriceModifier?: bigint;
|
|
512
528
|
/** Options for the lastBlock - if undefined, no lastBlock is included */
|
|
513
529
|
lastBlock?: {
|
|
514
|
-
blockHeader?:
|
|
515
|
-
indexWithinCheckpoint?:
|
|
530
|
+
blockHeader?: BlockHeader;
|
|
531
|
+
indexWithinCheckpoint?: IndexWithinCheckpoint;
|
|
516
532
|
txHashes?: TxHash[];
|
|
517
533
|
txs?: Tx[];
|
|
518
534
|
};
|
|
@@ -523,18 +539,19 @@ const makeAndSignConsensusPayload = (
|
|
|
523
539
|
domainSeparator: SignatureDomainSeparator,
|
|
524
540
|
options?: MakeConsensusPayloadOptions,
|
|
525
541
|
) => {
|
|
526
|
-
const header = options?.header ??
|
|
527
|
-
const { signer = Secp256k1Signer.random(), archive = Fr.random() } = options ?? {};
|
|
542
|
+
const header = options?.header ?? makeCheckpointHeader(1);
|
|
543
|
+
const { signer = Secp256k1Signer.random(), archive = Fr.random(), feeAssetPriceModifier = 0n } = options ?? {};
|
|
528
544
|
|
|
529
545
|
const payload = ConsensusPayload.fromFields({
|
|
530
|
-
header
|
|
546
|
+
header,
|
|
531
547
|
archive,
|
|
548
|
+
feeAssetPriceModifier,
|
|
532
549
|
});
|
|
533
550
|
|
|
534
551
|
const hash = getHashedSignaturePayloadEthSignedMessage(payload, domainSeparator);
|
|
535
552
|
const signature = signer.sign(hash);
|
|
536
553
|
|
|
537
|
-
return { blockNumber: header.
|
|
554
|
+
return { blockNumber: header.slotNumber, payload, signature };
|
|
538
555
|
};
|
|
539
556
|
|
|
540
557
|
export const makeAndSignCommitteeAttestationsAndSigners = (
|
|
@@ -549,9 +566,8 @@ export const makeAndSignCommitteeAttestationsAndSigners = (
|
|
|
549
566
|
};
|
|
550
567
|
|
|
551
568
|
export const makeBlockProposal = (options?: MakeBlockProposalOptions): Promise<BlockProposal> => {
|
|
552
|
-
const
|
|
553
|
-
const
|
|
554
|
-
const indexWithinCheckpoint = options?.indexWithinCheckpoint ?? 0;
|
|
569
|
+
const blockHeader = options?.blockHeader ?? makeBlockHeader(1);
|
|
570
|
+
const indexWithinCheckpoint = options?.indexWithinCheckpoint ?? IndexWithinCheckpoint(0);
|
|
555
571
|
const inHash = options?.inHash ?? Fr.random();
|
|
556
572
|
const archiveRoot = options?.archiveRoot ?? Fr.random();
|
|
557
573
|
const txHashes = options?.txHashes ?? [0, 1, 2, 3, 4, 5].map(() => TxHash.random());
|
|
@@ -565,28 +581,33 @@ export const makeBlockProposal = (options?: MakeBlockProposalOptions): Promise<B
|
|
|
565
581
|
archiveRoot,
|
|
566
582
|
txHashes,
|
|
567
583
|
txs,
|
|
568
|
-
|
|
584
|
+
(_payload, _context) => Promise.resolve(signer.signMessage(_payload)),
|
|
569
585
|
);
|
|
570
586
|
};
|
|
571
587
|
|
|
572
588
|
export const makeCheckpointProposal = (options?: MakeCheckpointProposalOptions): Promise<CheckpointProposal> => {
|
|
573
|
-
const
|
|
574
|
-
const checkpointHeader = options?.checkpointHeader ??
|
|
589
|
+
const blockHeader = options?.lastBlock?.blockHeader ?? makeBlockHeader(1);
|
|
590
|
+
const checkpointHeader = options?.checkpointHeader ?? makeCheckpointHeader(1);
|
|
575
591
|
const archiveRoot = options?.archiveRoot ?? Fr.random();
|
|
592
|
+
const feeAssetPriceModifier = options?.feeAssetPriceModifier ?? 0n;
|
|
576
593
|
const signer = options?.signer ?? Secp256k1Signer.random();
|
|
577
594
|
|
|
578
595
|
// Build lastBlock info if provided
|
|
579
596
|
const lastBlockInfo = options?.lastBlock
|
|
580
597
|
? {
|
|
581
|
-
blockHeader
|
|
582
|
-
indexWithinCheckpoint: options.lastBlock.indexWithinCheckpoint ?? 4, // Last block in a 5-block checkpoint
|
|
598
|
+
blockHeader,
|
|
599
|
+
indexWithinCheckpoint: options.lastBlock.indexWithinCheckpoint ?? IndexWithinCheckpoint(4), // Last block in a 5-block checkpoint
|
|
583
600
|
txHashes: options.lastBlock.txHashes ?? [0, 1, 2, 3, 4, 5].map(() => TxHash.random()),
|
|
584
601
|
txs: options.lastBlock.txs,
|
|
585
602
|
}
|
|
586
603
|
: undefined;
|
|
587
604
|
|
|
588
|
-
return CheckpointProposal.createProposalFromSigner(
|
|
589
|
-
|
|
605
|
+
return CheckpointProposal.createProposalFromSigner(
|
|
606
|
+
checkpointHeader,
|
|
607
|
+
archiveRoot,
|
|
608
|
+
feeAssetPriceModifier,
|
|
609
|
+
lastBlockInfo,
|
|
610
|
+
payload => Promise.resolve(signer.signMessage(payload)),
|
|
590
611
|
);
|
|
591
612
|
};
|
|
592
613
|
|
|
@@ -596,6 +617,7 @@ export const makeCheckpointProposal = (options?: MakeCheckpointProposalOptions):
|
|
|
596
617
|
export type MakeCheckpointAttestationOptions = {
|
|
597
618
|
header?: CheckpointHeader;
|
|
598
619
|
archive?: Fr;
|
|
620
|
+
feeAssetPriceModifier?: bigint;
|
|
599
621
|
attesterSigner?: Secp256k1Signer;
|
|
600
622
|
proposerSigner?: Secp256k1Signer;
|
|
601
623
|
signer?: Secp256k1Signer;
|
|
@@ -605,11 +627,12 @@ export type MakeCheckpointAttestationOptions = {
|
|
|
605
627
|
* Create a checkpoint attestation for testing
|
|
606
628
|
*/
|
|
607
629
|
export const makeCheckpointAttestation = (options: MakeCheckpointAttestationOptions = {}): CheckpointAttestation => {
|
|
608
|
-
const header = options.header ??
|
|
630
|
+
const header = options.header ?? makeCheckpointHeader(1);
|
|
609
631
|
const archive = options.archive ?? Fr.random();
|
|
632
|
+
const feeAssetPriceModifier = options.feeAssetPriceModifier ?? 0n;
|
|
610
633
|
const { signer, attesterSigner = signer, proposerSigner = signer } = options;
|
|
611
634
|
|
|
612
|
-
const payload = new ConsensusPayload(header, archive);
|
|
635
|
+
const payload = new ConsensusPayload(header, archive, feeAssetPriceModifier);
|
|
613
636
|
|
|
614
637
|
// Sign as attester
|
|
615
638
|
const attestationHash = getHashedSignaturePayloadEthSignedMessage(
|
|
@@ -622,7 +645,7 @@ export const makeCheckpointAttestation = (options: MakeCheckpointAttestationOpti
|
|
|
622
645
|
// Sign as proposer - use CheckpointProposal's payload format (serializeToBuffer)
|
|
623
646
|
// This is different from ConsensusPayload's format (ABI encoding)
|
|
624
647
|
const proposalSignerToUse = proposerSigner ?? Secp256k1Signer.random();
|
|
625
|
-
const tempProposal = new CheckpointProposal(header, archive, Signature.empty());
|
|
648
|
+
const tempProposal = new CheckpointProposal(header, archive, feeAssetPriceModifier, Signature.empty());
|
|
626
649
|
const proposalHash = getHashedSignaturePayloadEthSignedMessage(
|
|
627
650
|
tempProposal,
|
|
628
651
|
SignatureDomainSeparator.checkpointProposal,
|
|
@@ -639,7 +662,7 @@ export const makeCheckpointAttestationFromProposal = (
|
|
|
639
662
|
proposal: CheckpointProposal,
|
|
640
663
|
attesterSigner?: Secp256k1Signer,
|
|
641
664
|
): CheckpointAttestation => {
|
|
642
|
-
const payload = new ConsensusPayload(proposal.checkpointHeader, proposal.archive);
|
|
665
|
+
const payload = new ConsensusPayload(proposal.checkpointHeader, proposal.archive, proposal.feeAssetPriceModifier);
|
|
643
666
|
|
|
644
667
|
// Sign as attester
|
|
645
668
|
const attestationHash = getHashedSignaturePayloadEthSignedMessage(
|
|
@@ -663,19 +686,27 @@ export const makeCheckpointAttestationFromCheckpoint = (
|
|
|
663
686
|
): CheckpointAttestation => {
|
|
664
687
|
const header = checkpoint.header;
|
|
665
688
|
const archive = checkpoint.archive.root;
|
|
689
|
+
const feeAssetPriceModifier = checkpoint.feeAssetPriceModifier;
|
|
666
690
|
|
|
667
|
-
return makeCheckpointAttestation({ header, archive, attesterSigner, proposerSigner });
|
|
691
|
+
return makeCheckpointAttestation({ header, archive, feeAssetPriceModifier, attesterSigner, proposerSigner });
|
|
668
692
|
};
|
|
669
693
|
|
|
670
694
|
/**
|
|
671
695
|
* Create a checkpoint attestation from an L2Block
|
|
696
|
+
* Note: This is a compatibility function for tests. L2Block doesn't have a checkpoint header directly.
|
|
672
697
|
*/
|
|
673
698
|
export const makeCheckpointAttestationFromBlock = (
|
|
674
699
|
block: L2Block,
|
|
675
700
|
attesterSigner?: Secp256k1Signer,
|
|
676
701
|
proposerSigner?: Secp256k1Signer,
|
|
677
702
|
): CheckpointAttestation => {
|
|
678
|
-
|
|
703
|
+
// For L2Block, we create a minimal checkpoint header for testing purposes
|
|
704
|
+
const header = CheckpointHeader.empty({
|
|
705
|
+
lastArchiveRoot: block.header.lastArchive.root,
|
|
706
|
+
slotNumber: block.slot,
|
|
707
|
+
timestamp: block.timestamp,
|
|
708
|
+
blockHeadersHash: Fr.ZERO, // Would need to compute from block header hash
|
|
709
|
+
});
|
|
679
710
|
const archive = block.archive.root;
|
|
680
711
|
|
|
681
712
|
return makeCheckpointAttestation({ header, archive, attesterSigner, proposerSigner });
|
|
@@ -684,7 +715,7 @@ export const makeCheckpointAttestationFromBlock = (
|
|
|
684
715
|
export async function randomPublishedL2Block(
|
|
685
716
|
l2BlockNumber: number,
|
|
686
717
|
opts: { signers?: Secp256k1Signer[] } = {},
|
|
687
|
-
): Promise<
|
|
718
|
+
): Promise<CheckpointedL2Block> {
|
|
688
719
|
const block = await L2Block.random(BlockNumber(l2BlockNumber));
|
|
689
720
|
const l1 = L1PublishedData.fromFields({
|
|
690
721
|
blockNumber: BigInt(block.number),
|
|
@@ -693,15 +724,19 @@ export async function randomPublishedL2Block(
|
|
|
693
724
|
});
|
|
694
725
|
|
|
695
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];
|
|
696
731
|
const atts = signers.map(signer =>
|
|
697
732
|
makeCheckpointAttestation({
|
|
698
733
|
signer,
|
|
699
734
|
archive: block.archive.root,
|
|
700
|
-
header:
|
|
735
|
+
header: checkpoint.header,
|
|
701
736
|
}),
|
|
702
737
|
);
|
|
703
738
|
const attestations = atts.map(
|
|
704
739
|
(attestation, i) => new CommitteeAttestation(signers[i].address, attestation.signature),
|
|
705
740
|
);
|
|
706
|
-
return new
|
|
741
|
+
return new CheckpointedL2Block(CheckpointNumber.fromBlockNumber(BlockNumber(l2BlockNumber)), block, l1, attestations);
|
|
707
742
|
}
|
|
@@ -0,0 +1,66 @@
|
|
|
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
|
+
|
|
13
|
+
/** Time budget for checkpoint initialization (sync + proposer check) in seconds */
|
|
14
|
+
export const CHECKPOINT_INITIALIZATION_TIME = 1;
|
|
15
|
+
|
|
16
|
+
/** Time budget for assembling a checkpoint after building the last block in seconds */
|
|
17
|
+
export const CHECKPOINT_ASSEMBLE_TIME = 1;
|
|
18
|
+
|
|
19
|
+
/** Default one-way P2P propagation time for proposals and attestations in seconds */
|
|
20
|
+
export const DEFAULT_P2P_PROPAGATION_TIME = 2;
|
|
21
|
+
|
|
22
|
+
/** Default L1 publishing time (matches Ethereum slot duration on mainnet) in seconds */
|
|
23
|
+
export const DEFAULT_L1_PUBLISHING_TIME = 12;
|
|
24
|
+
|
|
25
|
+
/** Minimum execution time for building a block in seconds */
|
|
26
|
+
export const MIN_EXECUTION_TIME = 2;
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Calculates the maximum number of blocks that can be built in a slot.
|
|
30
|
+
* Used by both the sequencer timetable and p2p gossipsub scoring.
|
|
31
|
+
*
|
|
32
|
+
* @param aztecSlotDurationSec - Aztec slot duration in seconds
|
|
33
|
+
* @param blockDurationSec - Duration per block in seconds (undefined = single block mode)
|
|
34
|
+
* @param opts - Optional overrides for timing constants
|
|
35
|
+
* @returns Maximum number of blocks per slot
|
|
36
|
+
*/
|
|
37
|
+
export function calculateMaxBlocksPerSlot(
|
|
38
|
+
aztecSlotDurationSec: number,
|
|
39
|
+
blockDurationSec: number | undefined,
|
|
40
|
+
opts: {
|
|
41
|
+
checkpointInitializationTime?: number;
|
|
42
|
+
checkpointAssembleTime?: number;
|
|
43
|
+
p2pPropagationTime?: number;
|
|
44
|
+
l1PublishingTime?: number;
|
|
45
|
+
} = {},
|
|
46
|
+
): number {
|
|
47
|
+
if (!blockDurationSec) {
|
|
48
|
+
return 1; // Single block per slot
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
const initOffset = opts.checkpointInitializationTime ?? CHECKPOINT_INITIALIZATION_TIME;
|
|
52
|
+
const assembleTime = opts.checkpointAssembleTime ?? CHECKPOINT_ASSEMBLE_TIME;
|
|
53
|
+
const p2pTime = opts.p2pPropagationTime ?? DEFAULT_P2P_PROPAGATION_TIME;
|
|
54
|
+
const l1Time = opts.l1PublishingTime ?? DEFAULT_L1_PUBLISHING_TIME;
|
|
55
|
+
|
|
56
|
+
// Calculate checkpoint finalization time (assembly + round-trip propagation + L1 publishing)
|
|
57
|
+
const checkpointFinalizationTime = assembleTime + p2pTime * 2 + l1Time;
|
|
58
|
+
|
|
59
|
+
// Time reserved at end for last sub-slot (validator re-execution) + finalization
|
|
60
|
+
const timeReservedAtEnd = blockDurationSec + checkpointFinalizationTime;
|
|
61
|
+
|
|
62
|
+
// Time available for building blocks
|
|
63
|
+
const timeAvailableForBlocks = aztecSlotDurationSec - initOffset - timeReservedAtEnd;
|
|
64
|
+
|
|
65
|
+
return Math.max(1, Math.floor(timeAvailableForBlocks / blockDurationSec));
|
|
66
|
+
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { toBigIntBE, toBufferBE } from '@aztec/foundation/bigint-buffer';
|
|
2
|
+
import { poseidon2Hash } from '@aztec/foundation/crypto/poseidon';
|
|
2
3
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
4
|
import { schemas } from '@aztec/foundation/schemas';
|
|
4
5
|
import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
@@ -81,11 +82,15 @@ export class PublicDataTreeLeafPreimage implements IndexedTreeLeafPreimage {
|
|
|
81
82
|
toHashInputs(): Buffer[] {
|
|
82
83
|
return [
|
|
83
84
|
...this.leaf.toHashInputs(),
|
|
84
|
-
Buffer.from(toBufferBE(this.nextIndex, 32)),
|
|
85
85
|
Buffer.from(this.nextKey.toBuffer()),
|
|
86
|
+
Buffer.from(toBufferBE(this.nextIndex, 32)),
|
|
86
87
|
];
|
|
87
88
|
}
|
|
88
89
|
|
|
90
|
+
hash(): Promise<Fr> {
|
|
91
|
+
return poseidon2Hash(this.toHashInputs());
|
|
92
|
+
}
|
|
93
|
+
|
|
89
94
|
clone(): PublicDataTreeLeafPreimage {
|
|
90
95
|
return new PublicDataTreeLeafPreimage(this.leaf.clone(), this.nextKey, this.nextIndex);
|
|
91
96
|
}
|
|
@@ -104,10 +109,11 @@ export class PublicDataTreeLeafPreimage implements IndexedTreeLeafPreimage {
|
|
|
104
109
|
|
|
105
110
|
static fromBuffer(buffer: Buffer | BufferReader): PublicDataTreeLeafPreimage {
|
|
106
111
|
const reader = BufferReader.asReader(buffer);
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
112
|
+
return new PublicDataTreeLeafPreimage(
|
|
113
|
+
PublicDataTreeLeaf.fromBuffer(reader),
|
|
114
|
+
Fr.fromBuffer(reader),
|
|
115
|
+
toBigIntBE(reader.readBytes(32)),
|
|
116
|
+
);
|
|
111
117
|
}
|
|
112
118
|
|
|
113
119
|
static fromLeaf(leaf: PublicDataTreeLeaf, nextKey: bigint, nextIndex: bigint): PublicDataTreeLeafPreimage {
|
package/src/tx/block_header.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BLOCK_HEADER_LENGTH,
|
|
1
|
+
import { BLOCK_HEADER_LENGTH, DomainSeparator } from '@aztec/constants';
|
|
2
2
|
import { BlockNumber, SlotNumber } from '@aztec/foundation/branded-types';
|
|
3
3
|
import { poseidon2HashWithSeparator } from '@aztec/foundation/crypto/poseidon';
|
|
4
4
|
import { randomInt } from '@aztec/foundation/crypto/random';
|
|
@@ -11,13 +11,14 @@ import type { FieldsOf } from '@aztec/foundation/types';
|
|
|
11
11
|
import { inspect } from 'util';
|
|
12
12
|
import { z } from 'zod';
|
|
13
13
|
|
|
14
|
+
import { BlockHash } from '../block/block_hash.js';
|
|
14
15
|
import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
|
|
15
16
|
import { GlobalVariables } from './global_variables.js';
|
|
16
17
|
import { StateReference } from './state_reference.js';
|
|
17
18
|
|
|
18
19
|
/** A header of an L2 block. */
|
|
19
20
|
export class BlockHeader {
|
|
20
|
-
private _cachedHash?: Promise<
|
|
21
|
+
private _cachedHash?: Promise<BlockHash>;
|
|
21
22
|
|
|
22
23
|
constructor(
|
|
23
24
|
/** Snapshot of archive before the block is applied. */
|
|
@@ -161,13 +162,20 @@ export class BlockHeader {
|
|
|
161
162
|
return BlockHeader.fromBuffer(hexToBuffer(str));
|
|
162
163
|
}
|
|
163
164
|
|
|
164
|
-
hash(): Promise<
|
|
165
|
+
hash(): Promise<BlockHash> {
|
|
165
166
|
if (!this._cachedHash) {
|
|
166
|
-
this._cachedHash = poseidon2HashWithSeparator(this.toFields(),
|
|
167
|
+
this._cachedHash = poseidon2HashWithSeparator(this.toFields(), DomainSeparator.BLOCK_HEADER_HASH).then(
|
|
168
|
+
fr => new BlockHash(fr),
|
|
169
|
+
);
|
|
167
170
|
}
|
|
168
171
|
return this._cachedHash;
|
|
169
172
|
}
|
|
170
173
|
|
|
174
|
+
/** Manually set the hash for this block header if already computed */
|
|
175
|
+
setHash(hashed: Fr) {
|
|
176
|
+
this._cachedHash = Promise.resolve(new BlockHash(hashed));
|
|
177
|
+
}
|
|
178
|
+
|
|
171
179
|
static random(overrides: Partial<FieldsOf<BlockHeader>> & Partial<FieldsOf<GlobalVariables>> = {}): BlockHeader {
|
|
172
180
|
return BlockHeader.from({
|
|
173
181
|
lastArchive: AppendOnlyTreeSnapshot.random(),
|
|
@@ -22,10 +22,10 @@ import { schemas } from '../schemas/index.js';
|
|
|
22
22
|
import type { UInt64 } from '../types/index.js';
|
|
23
23
|
|
|
24
24
|
/**
|
|
25
|
-
* Global variables that are constant across the entire slot.
|
|
26
|
-
*
|
|
25
|
+
* Global variables that are constant across the entire checkpoint (slot).
|
|
26
|
+
* Excludes blockNumber since that varies per block within a checkpoint.
|
|
27
27
|
*/
|
|
28
|
-
export type CheckpointGlobalVariables = Omit<FieldsOf<GlobalVariables>, 'blockNumber'
|
|
28
|
+
export type CheckpointGlobalVariables = Omit<FieldsOf<GlobalVariables>, 'blockNumber'>;
|
|
29
29
|
|
|
30
30
|
/**
|
|
31
31
|
* Global variables of the L2 block.
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { BlockNumber } from '@aztec/foundation/branded-types';
|
|
2
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
2
3
|
import { schemas } from '@aztec/foundation/schemas';
|
|
3
4
|
import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
4
5
|
|
|
5
|
-
import {
|
|
6
|
+
import { BlockHash } from '../block/block_hash.js';
|
|
6
7
|
import { type DataInBlock, dataInBlockSchemaFor, randomDataInBlock } from '../block/in_block.js';
|
|
7
8
|
import { TxEffect } from './tx_effect.js';
|
|
8
9
|
|
|
@@ -26,7 +27,7 @@ export function serializeIndexedTxEffect(effect: IndexedTxEffect): Buffer {
|
|
|
26
27
|
export function deserializeIndexedTxEffect(buffer: Buffer): IndexedTxEffect {
|
|
27
28
|
const reader = BufferReader.asReader(buffer);
|
|
28
29
|
|
|
29
|
-
const l2BlockHash = reader.readObject(
|
|
30
|
+
const l2BlockHash = new BlockHash(reader.readObject(Fr));
|
|
30
31
|
const l2BlockNumber = BlockNumber(reader.readNumber());
|
|
31
32
|
const txIndexInBlock = reader.readNumber();
|
|
32
33
|
const data = reader.readObject(TxEffect);
|
|
@@ -79,7 +79,7 @@ export class CountedContractClassLog implements IsEmpty {
|
|
|
79
79
|
export class PrivateExecutionResult {
|
|
80
80
|
constructor(
|
|
81
81
|
public entrypoint: PrivateCallExecutionResult,
|
|
82
|
-
/** The first non
|
|
82
|
+
/** The first non-revertible nullifier emitted by any private call, or the protocol nullifier if there was none. */
|
|
83
83
|
public firstNullifier: Fr,
|
|
84
84
|
/** An array of calldata for the enqueued public function calls and the teardown function call. */
|
|
85
85
|
public publicFunctionCalldata: HashedValues[],
|
package/src/tx/profiling.ts
CHANGED
|
@@ -6,9 +6,35 @@ import { z } from 'zod';
|
|
|
6
6
|
import type { AztecNode } from '../interfaces/aztec-node.js';
|
|
7
7
|
import { type PrivateExecutionStep, PrivateExecutionStepSchema } from '../kernel/private_kernel_prover_output.js';
|
|
8
8
|
|
|
9
|
-
export type
|
|
9
|
+
export type RoundTripStats = {
|
|
10
|
+
/** Number of round trips (times we blocked waiting for node responses) */
|
|
11
|
+
roundTrips: number;
|
|
12
|
+
/** Total wall-clock time spent waiting on node (excludes parallel overlap) */
|
|
13
|
+
totalBlockingTime: number;
|
|
14
|
+
/** Individual round trip durations */
|
|
15
|
+
roundTripDurations: number[];
|
|
16
|
+
/** Methods called in each round trip (parallel calls grouped together) */
|
|
17
|
+
roundTripMethods: string[][];
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
const RoundTripStatsSchema = z.object({
|
|
21
|
+
roundTrips: z.number(),
|
|
22
|
+
totalBlockingTime: z.number(),
|
|
23
|
+
roundTripDurations: z.array(z.number()),
|
|
24
|
+
roundTripMethods: z.array(z.array(z.string())),
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
export type NodeStats = {
|
|
28
|
+
/** Per-method call stats */
|
|
29
|
+
perMethod: Partial<Record<keyof AztecNode, { times: number[] }>>;
|
|
30
|
+
/** Round trip stats tracking actual blocking waits */
|
|
31
|
+
roundTrips: RoundTripStats;
|
|
32
|
+
};
|
|
10
33
|
|
|
11
|
-
const NodeStatsSchema = z.
|
|
34
|
+
const NodeStatsSchema = z.object({
|
|
35
|
+
perMethod: z.record(z.string(), z.object({ times: z.array(z.number()) })),
|
|
36
|
+
roundTrips: RoundTripStatsSchema,
|
|
37
|
+
});
|
|
12
38
|
|
|
13
39
|
type FunctionTiming = {
|
|
14
40
|
functionName: string;
|
|
@@ -105,7 +131,15 @@ export class TxProfileResult {
|
|
|
105
131
|
},
|
|
106
132
|
],
|
|
107
133
|
{
|
|
108
|
-
nodeRPCCalls: {
|
|
134
|
+
nodeRPCCalls: {
|
|
135
|
+
perMethod: { getBlockHeader: { times: [1] } },
|
|
136
|
+
roundTrips: {
|
|
137
|
+
roundTrips: 1,
|
|
138
|
+
totalBlockingTime: 1,
|
|
139
|
+
roundTripDurations: [1],
|
|
140
|
+
roundTripMethods: [['getBlockHeader']],
|
|
141
|
+
},
|
|
142
|
+
},
|
|
109
143
|
timings: {
|
|
110
144
|
sync: 1,
|
|
111
145
|
proving: 1,
|
|
@@ -123,24 +157,32 @@ export class TxProfileResult {
|
|
|
123
157
|
}
|
|
124
158
|
}
|
|
125
159
|
|
|
126
|
-
export class
|
|
160
|
+
export class UtilityExecutionResult {
|
|
127
161
|
constructor(
|
|
128
162
|
public result: Fr[],
|
|
129
163
|
public stats?: SimulationStats,
|
|
130
164
|
) {}
|
|
131
165
|
|
|
132
|
-
static get schema(): ZodFor<
|
|
166
|
+
static get schema(): ZodFor<UtilityExecutionResult> {
|
|
133
167
|
return z
|
|
134
168
|
.object({
|
|
135
169
|
result: z.array(schemas.Fr),
|
|
136
170
|
stats: optional(SimulationStatsSchema),
|
|
137
171
|
})
|
|
138
|
-
.transform(({ result, stats }) => new
|
|
172
|
+
.transform(({ result, stats }) => new UtilityExecutionResult(result, stats));
|
|
139
173
|
}
|
|
140
174
|
|
|
141
|
-
static random():
|
|
142
|
-
return new
|
|
143
|
-
nodeRPCCalls: {
|
|
175
|
+
static random(): UtilityExecutionResult {
|
|
176
|
+
return new UtilityExecutionResult([Fr.random()], {
|
|
177
|
+
nodeRPCCalls: {
|
|
178
|
+
perMethod: { getBlockHeader: { times: [1] } },
|
|
179
|
+
roundTrips: {
|
|
180
|
+
roundTrips: 1,
|
|
181
|
+
totalBlockingTime: 1,
|
|
182
|
+
roundTripDurations: [1],
|
|
183
|
+
roundTripMethods: [['getBlockHeader']],
|
|
184
|
+
},
|
|
185
|
+
},
|
|
144
186
|
timings: {
|
|
145
187
|
sync: 1,
|
|
146
188
|
publicSimulation: 1,
|