@aztec/stdlib 0.0.1-commit.fcb71a6 → 0.0.1-commit.ff7989d6c
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/contract_artifact.d.ts +2 -2
- package/dest/abi/contract_artifact.d.ts.map +1 -1
- package/dest/abi/contract_artifact.js +1 -1
- package/dest/abi/function_call.d.ts +47 -9
- package/dest/abi/function_call.d.ts.map +1 -1
- package/dest/abi/function_call.js +20 -3
- package/dest/abi/selector.js +3 -1
- 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_accumulated_data.js +5 -2
- package/dest/avm/avm_circuit_public_inputs.d.ts +9 -9
- package/dest/avm/avm_circuit_public_inputs.js +3 -1
- 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_update_request.js +3 -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/public_inner_call_request.js +3 -1
- package/dest/avm/revert_code.d.ts +4 -4
- package/dest/avm/revert_code.d.ts.map +1 -1
- package/dest/avm/revert_code.js +3 -1
- package/dest/aztec-address/index.js +4 -2
- package/dest/block/attestation_info.d.ts +5 -5
- package/dest/block/attestation_info.d.ts.map +1 -1
- package/dest/block/attestation_info.js +4 -4
- package/dest/block/block_data.d.ts +52 -0
- package/dest/block/block_data.d.ts.map +1 -0
- package/dest/block/block_data.js +12 -0
- package/dest/block/block_hash.d.ts +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 +5 -2
- 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 +57 -57
- package/dest/block/l2_block.d.ts.map +1 -1
- package/dest/block/l2_block.js +64 -108
- package/dest/block/l2_block_source.d.ts +317 -68
- package/dest/block/l2_block_source.d.ts.map +1 -1
- package/dest/block/l2_block_source.js +25 -6
- package/dest/block/l2_block_stream/index.d.ts +2 -1
- package/dest/block/l2_block_stream/index.d.ts.map +1 -1
- package/dest/block/l2_block_stream/index.js +1 -0
- package/dest/block/l2_block_stream/interfaces.d.ts +15 -5
- package/dest/block/l2_block_stream/interfaces.d.ts.map +1 -1
- package/dest/block/l2_block_stream/l2_block_stream.d.ts +8 -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 +106 -31
- package/dest/block/l2_block_stream/l2_tips_memory_store.d.ts +24 -16
- 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 +55 -61
- package/dest/block/l2_block_stream/l2_tips_store_base.d.ts +49 -0
- package/dest/block/l2_block_stream/l2_tips_store_base.d.ts.map +1 -0
- package/dest/block/l2_block_stream/l2_tips_store_base.js +179 -0
- 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 +478 -38
- package/dest/block/validate_block_result.d.ts +24 -24
- package/dest/block/validate_block_result.d.ts.map +1 -1
- package/dest/block/validate_block_result.js +18 -17
- package/dest/checkpoint/checkpoint.d.ts +43 -19
- package/dest/checkpoint/checkpoint.d.ts.map +1 -1
- package/dest/checkpoint/checkpoint.js +38 -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/checkpoint_info.d.ts +32 -3
- package/dest/checkpoint/checkpoint_info.d.ts.map +1 -1
- package/dest/checkpoint/checkpoint_info.js +34 -1
- package/dest/checkpoint/index.d.ts +3 -1
- package/dest/checkpoint/index.d.ts.map +1 -1
- package/dest/checkpoint/index.js +2 -0
- package/dest/checkpoint/published_checkpoint.d.ts +33 -16
- package/dest/checkpoint/published_checkpoint.d.ts.map +1 -1
- package/dest/checkpoint/published_checkpoint.js +5 -5
- package/dest/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 -64
- 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/gas/gas.js +3 -1
- package/dest/gas/gas_fees.js +3 -1
- 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 +3 -1
- package/dest/interfaces/api_limit.d.ts.map +1 -1
- package/dest/interfaces/api_limit.js +2 -0
- package/dest/interfaces/archiver.d.ts +6 -6
- package/dest/interfaces/archiver.d.ts.map +1 -1
- package/dest/interfaces/archiver.js +27 -17
- package/dest/interfaces/aztec-node-admin.d.ts +111 -32
- package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
- package/dest/interfaces/aztec-node-admin.js +14 -6
- package/dest/interfaces/aztec-node.d.ts +75 -77
- package/dest/interfaces/aztec-node.d.ts.map +1 -1
- package/dest/interfaces/aztec-node.js +15 -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 +28 -8
- package/dest/interfaces/configs.d.ts.map +1 -1
- package/dest/interfaces/configs.js +5 -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 +7 -9
- package/dest/interfaces/p2p.d.ts.map +1 -1
- package/dest/interfaces/p2p.js +3 -4
- 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 +52 -52
- package/dest/interfaces/proving-job.d.ts.map +1 -1
- package/dest/interfaces/proving-job.js +1 -7
- package/dest/interfaces/server_circuit_prover.d.ts +4 -3
- package/dest/interfaces/server_circuit_prover.d.ts.map +1 -1
- 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 +155 -19
- package/dest/interfaces/validator.d.ts.map +1 -1
- package/dest/interfaces/validator.js +8 -3
- package/dest/kernel/claimed_length_array.js +3 -1
- package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts +6 -5
- 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 +19 -10
- 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/hints/transient_data_squashing_hint.js +3 -1
- package/dest/kernel/log_hash.js +3 -1
- 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_log_data.js +5 -2
- package/dest/kernel/private_to_avm_accumulated_data.d.ts +2 -2
- package/dest/kernel/private_to_avm_accumulated_data.js +5 -2
- package/dest/kernel/private_to_public_accumulated_data.js +3 -1
- 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_accumulated_data.js +3 -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 +12 -10
- package/dest/kernel/public_call_request.d.ts +22 -1
- package/dest/kernel/public_call_request.d.ts.map +1 -1
- package/dest/kernel/public_call_request.js +5 -2
- 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/contract_class_log.js +3 -1
- 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/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/private_log.js +3 -1
- package/dest/logs/public_log.js +3 -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/in_hash.d.ts +4 -2
- package/dest/messaging/in_hash.d.ts.map +1 -1
- package/dest/messaging/in_hash.js +3 -1
- 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 +88 -6
- package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -1
- package/dest/messaging/l2_to_l1_membership.js +160 -42
- package/dest/messaging/out_hash.d.ts +41 -3
- package/dest/messaging/out_hash.d.ts.map +1 -1
- package/dest/messaging/out_hash.js +54 -19
- 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 +3 -3
- package/dest/p2p/attestation_utils.d.ts.map +1 -1
- package/dest/p2p/attestation_utils.js +1 -1
- package/dest/p2p/block_proposal.d.ts +102 -23
- package/dest/p2p/block_proposal.d.ts.map +1 -1
- package/dest/p2p/block_proposal.js +138 -39
- package/dest/p2p/checkpoint_attestation.d.ts +82 -0
- package/dest/p2p/checkpoint_attestation.d.ts.map +1 -0
- package/dest/p2p/{block_attestation.js → checkpoint_attestation.js} +22 -19
- package/dest/p2p/checkpoint_proposal.d.ts +179 -0
- package/dest/p2p/checkpoint_proposal.d.ts.map +1 -0
- package/dest/p2p/checkpoint_proposal.js +243 -0
- package/dest/p2p/consensus_payload.d.ts +20 -11
- package/dest/p2p/consensus_payload.d.ts.map +1 -1
- package/dest/p2p/consensus_payload.js +24 -19
- package/dest/p2p/constants.d.ts +5 -0
- package/dest/p2p/constants.d.ts.map +1 -0
- package/dest/p2p/constants.js +3 -0
- package/dest/p2p/gossipable.d.ts +4 -3
- package/dest/p2p/gossipable.d.ts.map +1 -1
- package/dest/p2p/gossipable.js +16 -5
- package/dest/p2p/index.d.ts +5 -2
- package/dest/p2p/index.d.ts.map +1 -1
- package/dest/p2p/index.js +4 -1
- package/dest/p2p/message_validator.d.ts +18 -3
- package/dest/p2p/message_validator.d.ts.map +1 -1
- package/dest/p2p/message_validator.js +2 -1
- package/dest/p2p/signature_utils.d.ts +5 -3
- package/dest/p2p/signature_utils.d.ts.map +1 -1
- package/dest/p2p/signature_utils.js +3 -1
- package/dest/p2p/signed_txs.d.ts +42 -0
- package/dest/p2p/signed_txs.d.ts.map +1 -0
- package/dest/p2p/signed_txs.js +75 -0
- package/dest/p2p/topic_type.d.ts +3 -2
- package/dest/p2p/topic_type.d.ts.map +1 -1
- package/dest/p2p/topic_type.js +10 -3
- 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 +47 -11
- package/dest/rollup/block_rollup_public_inputs.d.ts.map +1 -1
- package/dest/rollup/block_rollup_public_inputs.js +8 -12
- 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_constant_data.js +3 -1
- package/dest/rollup/checkpoint_header.d.ts +43 -13
- package/dest/rollup/checkpoint_header.d.ts.map +1 -1
- package/dest/rollup/checkpoint_header.js +50 -20
- 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 +46 -6
- package/dest/rollup/checkpoint_rollup_public_inputs.d.ts.map +1 -1
- package/dest/rollup/checkpoint_rollup_public_inputs.js +11 -3
- 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 +21 -6
- package/dest/rollup/root_rollup_public_inputs.d.ts.map +1 -1
- package/dest/rollup/root_rollup_public_inputs.js +10 -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 +16 -10
- package/dest/tests/factories.d.ts.map +1 -1
- package/dest/tests/factories.js +71 -36
- package/dest/tests/jest.js +1 -1
- package/dest/tests/mocks.d.ts +77 -19
- package/dest/tests/mocks.d.ts.map +1 -1
- package/dest/tests/mocks.js +133 -62
- 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/append_only_tree_snapshot.js +3 -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 +9 -3
- package/dest/tx/call_context.d.ts +13 -1
- package/dest/tx/call_context.d.ts.map +1 -1
- package/dest/tx/call_context.js +3 -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_variable_builder.d.ts +2 -2
- package/dest/tx/global_variable_builder.d.ts.map +1 -1
- package/dest/tx/global_variables.d.ts +12 -4
- package/dest/tx/global_variables.d.ts.map +1 -1
- package/dest/tx/global_variables.js +3 -1
- package/dest/tx/hashed_values.d.ts +7 -1
- package/dest/tx/hashed_values.d.ts.map +1 -1
- package/dest/tx/in_tx.d.ts +4 -4
- package/dest/tx/index.d.ts +1 -2
- package/dest/tx/index.d.ts.map +1 -1
- package/dest/tx/index.js +0 -1
- 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 -6
- package/dest/tx/private_execution_result.d.ts.map +1 -1
- package/dest/tx/private_execution_result.js +4 -21
- 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_call_request_with_calldata.js +3 -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/state_reference.js +3 -1
- package/dest/tx/tree_snapshots.js +3 -1
- package/dest/tx/tx.d.ts +24 -1
- package/dest/tx/tx.d.ts.map +1 -1
- package/dest/tx/tx.js +9 -4
- 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 +3 -8
- 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_execution_request.js +6 -2
- 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 +47 -13
- package/dest/tx/tx_receipt.d.ts.map +1 -1
- package/dest/tx/tx_receipt.js +46 -15
- 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/contract_artifact.ts +10 -10
- 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/attestation_info.ts +9 -6
- 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 -149
- package/src/block/l2_block_source.ts +145 -44
- package/src/block/l2_block_stream/index.ts +1 -0
- package/src/block/l2_block_stream/interfaces.ts +15 -4
- package/src/block/l2_block_stream/l2_block_stream.ts +130 -39
- package/src/block/l2_block_stream/l2_tips_memory_store.ts +62 -56
- package/src/block/l2_block_stream/l2_tips_store_base.ts +226 -0
- package/src/block/test/l2_tips_store_test_suite.ts +480 -36
- package/src/block/validate_block_result.ts +40 -35
- package/src/checkpoint/checkpoint.ts +62 -21
- package/src/checkpoint/checkpoint_data.ts +51 -0
- package/src/checkpoint/checkpoint_info.ts +45 -2
- package/src/checkpoint/index.ts +2 -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 +2 -0
- package/src/interfaces/archiver.ts +31 -24
- package/src/interfaces/aztec-node-admin.ts +31 -4
- package/src/interfaces/aztec-node.ts +110 -129
- package/src/interfaces/block-builder.ts +41 -23
- package/src/interfaces/configs.ts +15 -1
- package/src/interfaces/l2_logs_source.ts +17 -4
- package/src/interfaces/merkle_tree_operations.ts +1 -1
- package/src/interfaces/p2p.ts +8 -12
- package/src/interfaces/prover-broker.ts +22 -0
- package/src/interfaces/prover-client.ts +22 -0
- package/src/interfaces/proving-job.ts +2 -11
- package/src/interfaces/server_circuit_prover.ts +3 -2
- package/src/interfaces/slasher.ts +4 -0
- package/src/interfaces/tx_provider.ts +2 -2
- package/src/interfaces/validator.ts +73 -15
- package/src/kernel/hints/build_note_hash_read_request_hints.ts +20 -12
- 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/log_id.ts +22 -18
- package/src/logs/siloed_tag.ts +2 -2
- package/src/messaging/in_hash.ts +3 -1
- package/src/messaging/l2_to_l1_membership.ts +178 -52
- package/src/messaging/out_hash.ts +62 -21
- package/src/note/index.ts +0 -1
- package/src/note/note_dao.ts +18 -13
- package/src/p2p/attestation_utils.ts +3 -3
- package/src/p2p/block_proposal.ts +211 -46
- package/src/p2p/{block_attestation.ts → checkpoint_attestation.ts} +36 -25
- package/src/p2p/checkpoint_proposal.ts +387 -0
- package/src/p2p/consensus_payload.ts +29 -18
- package/src/p2p/constants.ts +6 -0
- package/src/p2p/gossipable.ts +14 -4
- package/src/p2p/index.ts +4 -1
- package/src/p2p/message_validator.ts +14 -2
- package/src/p2p/signature_utils.ts +3 -1
- package/src/p2p/signed_txs.ts +88 -0
- package/src/p2p/topic_type.ts +4 -3
- 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 +5 -11
- package/src/rollup/checkpoint_header.ts +64 -21
- package/src/rollup/checkpoint_rollup_public_inputs.ts +17 -5
- package/src/rollup/checkpoint_root_rollup_private_inputs.ts +14 -1
- package/src/rollup/root_rollup_public_inputs.ts +16 -7
- 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 +70 -54
- package/src/tests/jest.ts +1 -1
- package/src/tests/mocks.ts +228 -95
- 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_variable_builder.ts +1 -1
- package/src/tx/global_variables.ts +3 -3
- package/src/tx/index.ts +0 -1
- package/src/tx/indexed_tx_effect.ts +3 -2
- package/src/tx/private_execution_result.ts +1 -16
- 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 +10 -9
- package/src/tx/tx_effect.ts +0 -9
- package/src/tx/tx_execution_request.ts +2 -0
- package/src/tx/tx_receipt.ts +75 -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 -12
- package/dest/block/l2_block_code_to_purge.d.ts.map +0 -1
- package/dest/block/l2_block_code_to_purge.js +0 -61
- package/dest/block/l2_block_header.d.ts +0 -98
- package/dest/block/l2_block_header.d.ts.map +0 -1
- package/dest/block/l2_block_header.js +0 -153
- package/dest/block/l2_block_new.d.ts +0 -135
- package/dest/block/l2_block_new.d.ts.map +0 -1
- package/dest/block/l2_block_new.js +0 -152
- 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/dest/p2p/block_attestation.d.ts +0 -80
- package/dest/p2p/block_attestation.d.ts.map +0 -1
- package/dest/tx/content_commitment.d.ts +0 -49
- package/dest/tx/content_commitment.d.ts.map +0 -1
- package/dest/tx/content_commitment.js +0 -90
- package/src/block/l2_block_code_to_purge.ts +0 -88
- package/src/block/l2_block_header.ts +0 -246
- package/src/block/l2_block_new.ts +0 -207
- 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/tx/content_commitment.ts +0 -113
package/src/tests/mocks.ts
CHANGED
|
@@ -2,26 +2,27 @@ import {
|
|
|
2
2
|
FIXED_DA_GAS,
|
|
3
3
|
FIXED_L2_GAS,
|
|
4
4
|
MAX_ENQUEUED_CALLS_PER_TX,
|
|
5
|
-
MAX_INCLUDE_BY_TIMESTAMP_DURATION,
|
|
6
5
|
MAX_NULLIFIERS_PER_TX,
|
|
7
6
|
MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX,
|
|
7
|
+
MAX_TX_LIFETIME,
|
|
8
8
|
} from '@aztec/constants';
|
|
9
|
-
import { makeTuple } from '@aztec/foundation/array';
|
|
10
|
-
import { BlockNumber, CheckpointNumber, SlotNumber } from '@aztec/foundation/branded-types';
|
|
9
|
+
import { type FieldsOf, makeTuple } from '@aztec/foundation/array';
|
|
10
|
+
import { BlockNumber, CheckpointNumber, IndexWithinCheckpoint, SlotNumber } from '@aztec/foundation/branded-types';
|
|
11
11
|
import { Buffer32 } from '@aztec/foundation/buffer';
|
|
12
12
|
import { padArrayEnd, times } from '@aztec/foundation/collection';
|
|
13
13
|
import { randomBytes } from '@aztec/foundation/crypto/random';
|
|
14
14
|
import { Secp256k1Signer } from '@aztec/foundation/crypto/secp256k1-signer';
|
|
15
15
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
16
|
+
import { Signature } from '@aztec/foundation/eth-signature';
|
|
16
17
|
|
|
17
18
|
import type { ContractArtifact } from '../abi/abi.js';
|
|
18
19
|
import { PublicTxEffect } from '../avm/avm.js';
|
|
20
|
+
import type { AvmAccumulatedData } from '../avm/avm_accumulated_data.js';
|
|
19
21
|
import { AvmCircuitPublicInputs } from '../avm/avm_circuit_public_inputs.js';
|
|
20
22
|
import { PublicDataWrite } from '../avm/public_data_write.js';
|
|
21
23
|
import { RevertCode } from '../avm/revert_code.js';
|
|
22
24
|
import { AztecAddress } from '../aztec-address/index.js';
|
|
23
|
-
import {
|
|
24
|
-
import { L2Block } from '../block/l2_block.js';
|
|
25
|
+
import { CheckpointedL2Block, CommitteeAttestation, L2Block } from '../block/index.js';
|
|
25
26
|
import type { CommitteeAttestationsAndSigners } from '../block/proposal/attestations_and_signers.js';
|
|
26
27
|
import { Checkpoint } from '../checkpoint/checkpoint.js';
|
|
27
28
|
import { L1PublishedData } from '../checkpoint/published_checkpoint.js';
|
|
@@ -45,12 +46,14 @@ import { PrivateToAvmAccumulatedData } from '../kernel/private_to_avm_accumulate
|
|
|
45
46
|
import { PrivateToPublicAccumulatedDataBuilder } from '../kernel/private_to_public_accumulated_data_builder.js';
|
|
46
47
|
import { PublicCallRequestArrayLengths } from '../kernel/public_call_request.js';
|
|
47
48
|
import { computeInHashFromL1ToL2Messages } from '../messaging/in_hash.js';
|
|
48
|
-
import { BlockAttestation } from '../p2p/block_attestation.js';
|
|
49
49
|
import { BlockProposal } from '../p2p/block_proposal.js';
|
|
50
|
+
import { CheckpointAttestation } from '../p2p/checkpoint_attestation.js';
|
|
51
|
+
import { CheckpointProposal } from '../p2p/checkpoint_proposal.js';
|
|
50
52
|
import { ConsensusPayload } from '../p2p/consensus_payload.js';
|
|
51
53
|
import { SignatureDomainSeparator, getHashedSignaturePayloadEthSignedMessage } from '../p2p/signature_utils.js';
|
|
52
54
|
import { ChonkProof } from '../proofs/chonk_proof.js';
|
|
53
55
|
import { ProvingRequestType } from '../proofs/proving_request_type.js';
|
|
56
|
+
import { CheckpointHeader } from '../rollup/checkpoint_header.js';
|
|
54
57
|
import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
|
|
55
58
|
import {
|
|
56
59
|
BlockHeader,
|
|
@@ -72,9 +75,9 @@ import {
|
|
|
72
75
|
makeAvmCircuitInputs,
|
|
73
76
|
makeAztecAddress,
|
|
74
77
|
makeBlockHeader,
|
|
78
|
+
makeCheckpointHeader,
|
|
75
79
|
makeGas,
|
|
76
80
|
makeGlobalVariables,
|
|
77
|
-
makeL2BlockHeader,
|
|
78
81
|
makePrivateToPublicAccumulatedData,
|
|
79
82
|
makePrivateToRollupAccumulatedData,
|
|
80
83
|
makeProtocolContracts,
|
|
@@ -94,12 +97,14 @@ export const mockTx = async (
|
|
|
94
97
|
publicCalldataSize = 2,
|
|
95
98
|
feePayer,
|
|
96
99
|
chonkProof = ChonkProof.random(),
|
|
100
|
+
maxFeesPerGas = new GasFees(10, 10),
|
|
97
101
|
maxPriorityFeesPerGas,
|
|
98
102
|
gasUsed = Gas.empty(),
|
|
99
103
|
chainId = Fr.ZERO,
|
|
100
104
|
version = Fr.ZERO,
|
|
101
105
|
vkTreeRoot = Fr.ZERO,
|
|
102
106
|
protocolContractsHash = Fr.ZERO,
|
|
107
|
+
anchorBlockHeader = BlockHeader.empty(),
|
|
103
108
|
}: {
|
|
104
109
|
numberOfNonRevertiblePublicCallRequests?: number;
|
|
105
110
|
numberOfRevertiblePublicCallRequests?: number;
|
|
@@ -108,12 +113,14 @@ export const mockTx = async (
|
|
|
108
113
|
publicCalldataSize?: number;
|
|
109
114
|
feePayer?: AztecAddress;
|
|
110
115
|
chonkProof?: ChonkProof;
|
|
116
|
+
maxFeesPerGas?: GasFees;
|
|
111
117
|
maxPriorityFeesPerGas?: GasFees;
|
|
112
118
|
gasUsed?: Gas;
|
|
113
119
|
chainId?: Fr;
|
|
114
120
|
version?: Fr;
|
|
115
121
|
vkTreeRoot?: Fr;
|
|
116
122
|
protocolContractsHash?: Fr;
|
|
123
|
+
anchorBlockHeader?: BlockHeader;
|
|
117
124
|
} = {},
|
|
118
125
|
) => {
|
|
119
126
|
const totalPublicCallRequests =
|
|
@@ -123,10 +130,8 @@ export const mockTx = async (
|
|
|
123
130
|
const isForPublic = totalPublicCallRequests > 0;
|
|
124
131
|
const data = PrivateKernelTailCircuitPublicInputs.empty();
|
|
125
132
|
const firstNullifier = new Nullifier(new Fr(seed + 1), Fr.ZERO, 0);
|
|
126
|
-
data.constants.
|
|
127
|
-
|
|
128
|
-
maxPriorityFeesPerGas,
|
|
129
|
-
});
|
|
133
|
+
data.constants.anchorBlockHeader = anchorBlockHeader;
|
|
134
|
+
data.constants.txContext.gasSettings = GasSettings.default({ maxFeesPerGas, maxPriorityFeesPerGas });
|
|
130
135
|
data.feePayer = feePayer ?? (await AztecAddress.random());
|
|
131
136
|
data.gasUsed = gasUsed;
|
|
132
137
|
data.constants.txContext.chainId = chainId;
|
|
@@ -134,8 +139,8 @@ export const mockTx = async (
|
|
|
134
139
|
data.constants.vkTreeRoot = vkTreeRoot;
|
|
135
140
|
data.constants.protocolContractsHash = protocolContractsHash;
|
|
136
141
|
|
|
137
|
-
// Set
|
|
138
|
-
data.
|
|
142
|
+
// Set expirationTimestamp to the maximum allowed duration from the current time.
|
|
143
|
+
data.expirationTimestamp = BigInt(Math.floor(Date.now() / 1000) + MAX_TX_LIFETIME);
|
|
139
144
|
|
|
140
145
|
const publicFunctionCalldata: HashedValues[] = [];
|
|
141
146
|
if (!isForPublic) {
|
|
@@ -202,6 +207,7 @@ export async function mockProcessedTx({
|
|
|
202
207
|
// The default gasUsed is the tx overhead.
|
|
203
208
|
gasUsed = Gas.from({ daGas: FIXED_DA_GAS, l2Gas: FIXED_L2_GAS }),
|
|
204
209
|
privateOnly = false,
|
|
210
|
+
avmAccumulatedData,
|
|
205
211
|
...mockTxOpts
|
|
206
212
|
}: {
|
|
207
213
|
seed?: number;
|
|
@@ -213,6 +219,7 @@ export async function mockProcessedTx({
|
|
|
213
219
|
protocolContracts?: ProtocolContracts;
|
|
214
220
|
feePaymentPublicDataWrite?: PublicDataWrite;
|
|
215
221
|
privateOnly?: boolean;
|
|
222
|
+
avmAccumulatedData?: Partial<FieldsOf<AvmAccumulatedData>>;
|
|
216
223
|
} & Parameters<typeof mockTx>[1] = {}) {
|
|
217
224
|
seed *= 0x1000; // Avoid clashing with the previous mock values if seed only increases by 1.
|
|
218
225
|
anchorBlockHeader ??= db?.getInitialHeader() ?? makeBlockHeader(seed);
|
|
@@ -292,19 +299,22 @@ export async function mockProcessedTx({
|
|
|
292
299
|
avmOutput.previousRevertibleAccumulatedDataArrayLengths =
|
|
293
300
|
avmOutput.previousRevertibleAccumulatedData.getArrayLengths();
|
|
294
301
|
// Assign final data emitted from avm.
|
|
295
|
-
avmOutput.accumulatedData.noteHashes = revertibleData.noteHashes;
|
|
296
|
-
avmOutput.accumulatedData.nullifiers =
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
302
|
+
avmOutput.accumulatedData.noteHashes = avmAccumulatedData?.noteHashes ?? revertibleData.noteHashes;
|
|
303
|
+
avmOutput.accumulatedData.nullifiers =
|
|
304
|
+
avmAccumulatedData?.nullifiers ??
|
|
305
|
+
padArrayEnd(
|
|
306
|
+
nonRevertibleData.nullifiers.concat(revertibleData.nullifiers).filter(n => !n.isEmpty()),
|
|
307
|
+
Fr.ZERO,
|
|
308
|
+
MAX_NULLIFIERS_PER_TX,
|
|
309
|
+
);
|
|
310
|
+
avmOutput.accumulatedData.l2ToL1Msgs = avmAccumulatedData?.l2ToL1Msgs ?? revertibleData.l2ToL1Msgs;
|
|
311
|
+
avmOutput.accumulatedData.publicDataWrites =
|
|
312
|
+
avmAccumulatedData?.publicDataWrites ??
|
|
313
|
+
makeTuple(
|
|
314
|
+
MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX,
|
|
315
|
+
i => (i === 0 ? feePaymentPublicDataWrite : new PublicDataWrite(new Fr(i), new Fr(i + 10))),
|
|
316
|
+
seed + 0x2000,
|
|
317
|
+
);
|
|
308
318
|
avmOutput.accumulatedDataArrayLengths = avmOutput.accumulatedData.getArrayLengths();
|
|
309
319
|
avmOutput.gasSettings = gasSettings;
|
|
310
320
|
// Note: The fee is computed from the tx's gas used, which only includes the gas used in private. But this shouldn't
|
|
@@ -353,7 +363,6 @@ const emptyPrivateCallExecutionResult = () =>
|
|
|
353
363
|
Buffer.from(''),
|
|
354
364
|
new Map(),
|
|
355
365
|
PrivateCircuitPublicInputs.empty(),
|
|
356
|
-
new Map(),
|
|
357
366
|
[],
|
|
358
367
|
new Map(),
|
|
359
368
|
[],
|
|
@@ -392,38 +401,47 @@ export async function mockCheckpointAndMessages(
|
|
|
392
401
|
{
|
|
393
402
|
startBlockNumber = BlockNumber(1),
|
|
394
403
|
numBlocks = 1,
|
|
404
|
+
blocks,
|
|
395
405
|
numTxsPerBlock = 1,
|
|
396
406
|
numL1ToL2Messages = 1,
|
|
397
407
|
makeBlockOptions = () => ({}),
|
|
398
408
|
previousArchive,
|
|
409
|
+
maxEffects,
|
|
399
410
|
...options
|
|
400
411
|
}: {
|
|
401
412
|
startBlockNumber?: BlockNumber;
|
|
402
413
|
numBlocks?: number;
|
|
403
414
|
numTxsPerBlock?: number;
|
|
404
415
|
numL1ToL2Messages?: number;
|
|
405
|
-
makeBlockOptions?: (blockNumber: BlockNumber) => Partial<Parameters<typeof
|
|
416
|
+
makeBlockOptions?: (blockNumber: BlockNumber) => Partial<Parameters<typeof L2Block.random>[1]>;
|
|
406
417
|
previousArchive?: AppendOnlyTreeSnapshot;
|
|
418
|
+
blocks?: L2Block[];
|
|
419
|
+
maxEffects?: number;
|
|
407
420
|
} & Partial<Parameters<typeof Checkpoint.random>[1]> &
|
|
408
|
-
Partial<Parameters<typeof
|
|
421
|
+
Partial<Parameters<typeof L2Block.random>[1]> = {},
|
|
409
422
|
) {
|
|
410
|
-
const slotNumber = options.slotNumber ?? SlotNumber(checkpointNumber * 10);
|
|
423
|
+
const slotNumber = options.slotNumber ?? SlotNumber(Number(checkpointNumber) * 10);
|
|
411
424
|
const blocksAndMessages = [];
|
|
412
425
|
// Track the previous block's archive to ensure consecutive blocks have consistent archive roots.
|
|
413
426
|
// The current block's header.lastArchive must equal the previous block's archive.
|
|
414
427
|
let lastArchive: AppendOnlyTreeSnapshot | undefined = previousArchive;
|
|
415
|
-
|
|
428
|
+
// Pass maxEffects via txOptions so it reaches TxEffect.random
|
|
429
|
+
const txOptions = maxEffects !== undefined ? { maxEffects } : {};
|
|
430
|
+
for (let i = 0; i < (blocks?.length ?? numBlocks); i++) {
|
|
416
431
|
const blockNumber = BlockNumber(startBlockNumber + i);
|
|
417
432
|
const { block, messages } = {
|
|
418
|
-
block:
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
433
|
+
block:
|
|
434
|
+
blocks?.[i] ??
|
|
435
|
+
(await L2Block.random(blockNumber, {
|
|
436
|
+
checkpointNumber,
|
|
437
|
+
indexWithinCheckpoint: IndexWithinCheckpoint(i),
|
|
438
|
+
txsPerBlock: numTxsPerBlock,
|
|
439
|
+
txOptions,
|
|
440
|
+
slotNumber,
|
|
441
|
+
...options,
|
|
442
|
+
...makeBlockOptions(blockNumber),
|
|
443
|
+
...(lastArchive ? { lastArchive } : {}),
|
|
444
|
+
})),
|
|
427
445
|
messages: mockL1ToL2Messages(numL1ToL2Messages),
|
|
428
446
|
};
|
|
429
447
|
// Update lastArchive for the next block
|
|
@@ -481,28 +499,55 @@ export interface MakeConsensusPayloadOptions {
|
|
|
481
499
|
signer?: Secp256k1Signer;
|
|
482
500
|
attesterSigner?: Secp256k1Signer;
|
|
483
501
|
proposerSigner?: Secp256k1Signer;
|
|
484
|
-
header?:
|
|
502
|
+
header?: CheckpointHeader;
|
|
485
503
|
archive?: Fr;
|
|
486
504
|
txHashes?: TxHash[];
|
|
487
505
|
txs?: Tx[];
|
|
506
|
+
feeAssetPriceModifier?: bigint;
|
|
488
507
|
}
|
|
489
508
|
|
|
509
|
+
export interface MakeBlockProposalOptions {
|
|
510
|
+
signer?: Secp256k1Signer;
|
|
511
|
+
blockHeader?: BlockHeader;
|
|
512
|
+
indexWithinCheckpoint?: IndexWithinCheckpoint;
|
|
513
|
+
inHash?: Fr;
|
|
514
|
+
archiveRoot?: Fr;
|
|
515
|
+
txHashes?: TxHash[];
|
|
516
|
+
txs?: Tx[];
|
|
517
|
+
}
|
|
518
|
+
|
|
519
|
+
export interface MakeCheckpointProposalOptions {
|
|
520
|
+
signer?: Secp256k1Signer;
|
|
521
|
+
checkpointHeader?: CheckpointHeader;
|
|
522
|
+
archiveRoot?: Fr;
|
|
523
|
+
feeAssetPriceModifier?: bigint;
|
|
524
|
+
/** Options for the lastBlock - if undefined, no lastBlock is included */
|
|
525
|
+
lastBlock?: {
|
|
526
|
+
blockHeader?: BlockHeader;
|
|
527
|
+
indexWithinCheckpoint?: IndexWithinCheckpoint;
|
|
528
|
+
txHashes?: TxHash[];
|
|
529
|
+
txs?: Tx[];
|
|
530
|
+
};
|
|
531
|
+
}
|
|
532
|
+
|
|
533
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
490
534
|
const makeAndSignConsensusPayload = (
|
|
491
535
|
domainSeparator: SignatureDomainSeparator,
|
|
492
536
|
options?: MakeConsensusPayloadOptions,
|
|
493
537
|
) => {
|
|
494
|
-
const header = options?.header ??
|
|
495
|
-
const { signer = Secp256k1Signer.random(), archive = Fr.random() } = options ?? {};
|
|
538
|
+
const header = options?.header ?? makeCheckpointHeader(1);
|
|
539
|
+
const { signer = Secp256k1Signer.random(), archive = Fr.random(), feeAssetPriceModifier = 0n } = options ?? {};
|
|
496
540
|
|
|
497
541
|
const payload = ConsensusPayload.fromFields({
|
|
498
|
-
header
|
|
542
|
+
header,
|
|
499
543
|
archive,
|
|
544
|
+
feeAssetPriceModifier,
|
|
500
545
|
});
|
|
501
546
|
|
|
502
547
|
const hash = getHashedSignaturePayloadEthSignedMessage(payload, domainSeparator);
|
|
503
548
|
const signature = signer.sign(hash);
|
|
504
549
|
|
|
505
|
-
return { blockNumber: header.
|
|
550
|
+
return { blockNumber: header.slotNumber, payload, signature };
|
|
506
551
|
};
|
|
507
552
|
|
|
508
553
|
export const makeAndSignCommitteeAttestationsAndSigners = (
|
|
@@ -516,79 +561,157 @@ export const makeAndSignCommitteeAttestationsAndSigners = (
|
|
|
516
561
|
return signer.sign(hash);
|
|
517
562
|
};
|
|
518
563
|
|
|
519
|
-
export const makeBlockProposal = (options?:
|
|
520
|
-
const
|
|
564
|
+
export const makeBlockProposal = (options?: MakeBlockProposalOptions): Promise<BlockProposal> => {
|
|
565
|
+
const blockHeader = options?.blockHeader ?? makeBlockHeader(1);
|
|
566
|
+
const indexWithinCheckpoint = options?.indexWithinCheckpoint ?? IndexWithinCheckpoint(0);
|
|
567
|
+
const inHash = options?.inHash ?? Fr.random();
|
|
568
|
+
const archiveRoot = options?.archiveRoot ?? Fr.random();
|
|
521
569
|
const txHashes = options?.txHashes ?? [0, 1, 2, 3, 4, 5].map(() => TxHash.random());
|
|
522
|
-
|
|
570
|
+
const txs = options?.txs;
|
|
571
|
+
const signer = options?.signer ?? Secp256k1Signer.random();
|
|
572
|
+
|
|
573
|
+
return BlockProposal.createProposalFromSigner(
|
|
574
|
+
blockHeader,
|
|
575
|
+
indexWithinCheckpoint,
|
|
576
|
+
inHash,
|
|
577
|
+
archiveRoot,
|
|
578
|
+
txHashes,
|
|
579
|
+
txs,
|
|
580
|
+
(_payload, _context) => Promise.resolve(signer.signMessage(_payload)),
|
|
581
|
+
);
|
|
582
|
+
};
|
|
583
|
+
|
|
584
|
+
export const makeCheckpointProposal = (options?: MakeCheckpointProposalOptions): Promise<CheckpointProposal> => {
|
|
585
|
+
const blockHeader = options?.lastBlock?.blockHeader ?? makeBlockHeader(1);
|
|
586
|
+
const checkpointHeader = options?.checkpointHeader ?? makeCheckpointHeader(1);
|
|
587
|
+
const archiveRoot = options?.archiveRoot ?? Fr.random();
|
|
588
|
+
const feeAssetPriceModifier = options?.feeAssetPriceModifier ?? 0n;
|
|
589
|
+
const signer = options?.signer ?? Secp256k1Signer.random();
|
|
590
|
+
|
|
591
|
+
// Build lastBlock info if provided
|
|
592
|
+
const lastBlockInfo = options?.lastBlock
|
|
593
|
+
? {
|
|
594
|
+
blockHeader,
|
|
595
|
+
indexWithinCheckpoint: options.lastBlock.indexWithinCheckpoint ?? IndexWithinCheckpoint(4), // Last block in a 5-block checkpoint
|
|
596
|
+
txHashes: options.lastBlock.txHashes ?? [0, 1, 2, 3, 4, 5].map(() => TxHash.random()),
|
|
597
|
+
txs: options.lastBlock.txs,
|
|
598
|
+
}
|
|
599
|
+
: undefined;
|
|
600
|
+
|
|
601
|
+
return CheckpointProposal.createProposalFromSigner(
|
|
602
|
+
checkpointHeader,
|
|
603
|
+
archiveRoot,
|
|
604
|
+
feeAssetPriceModifier,
|
|
605
|
+
lastBlockInfo,
|
|
606
|
+
payload => Promise.resolve(signer.signMessage(payload)),
|
|
607
|
+
);
|
|
523
608
|
};
|
|
524
609
|
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
610
|
+
/**
|
|
611
|
+
* Options for creating a checkpoint attestation
|
|
612
|
+
*/
|
|
613
|
+
export type MakeCheckpointAttestationOptions = {
|
|
614
|
+
header?: CheckpointHeader;
|
|
615
|
+
archive?: Fr;
|
|
616
|
+
feeAssetPriceModifier?: bigint;
|
|
617
|
+
attesterSigner?: Secp256k1Signer;
|
|
618
|
+
proposerSigner?: Secp256k1Signer;
|
|
619
|
+
signer?: Secp256k1Signer;
|
|
620
|
+
};
|
|
529
621
|
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
622
|
+
/**
|
|
623
|
+
* Create a checkpoint attestation for testing
|
|
624
|
+
*/
|
|
625
|
+
export const makeCheckpointAttestation = (options: MakeCheckpointAttestationOptions = {}): CheckpointAttestation => {
|
|
626
|
+
const header = options.header ?? makeCheckpointHeader(1);
|
|
627
|
+
const archive = options.archive ?? Fr.random();
|
|
628
|
+
const feeAssetPriceModifier = options.feeAssetPriceModifier ?? 0n;
|
|
629
|
+
const { signer, attesterSigner = signer, proposerSigner = signer } = options;
|
|
630
|
+
|
|
631
|
+
const payload = new ConsensusPayload(header, archive, feeAssetPriceModifier);
|
|
632
|
+
|
|
633
|
+
// Sign as attester
|
|
634
|
+
const attestationHash = getHashedSignaturePayloadEthSignedMessage(
|
|
635
|
+
payload,
|
|
636
|
+
SignatureDomainSeparator.checkpointAttestation,
|
|
637
|
+
);
|
|
638
|
+
const attestationSigner = attesterSigner ?? Secp256k1Signer.random();
|
|
639
|
+
const attestationSignature = attestationSigner.sign(attestationHash);
|
|
640
|
+
|
|
641
|
+
// Sign as proposer - use CheckpointProposal's payload format (serializeToBuffer)
|
|
642
|
+
// This is different from ConsensusPayload's format (ABI encoding)
|
|
643
|
+
const proposalSignerToUse = proposerSigner ?? Secp256k1Signer.random();
|
|
644
|
+
const tempProposal = new CheckpointProposal(header, archive, feeAssetPriceModifier, Signature.empty());
|
|
645
|
+
const proposalHash = getHashedSignaturePayloadEthSignedMessage(
|
|
646
|
+
tempProposal,
|
|
647
|
+
SignatureDomainSeparator.checkpointProposal,
|
|
648
|
+
);
|
|
649
|
+
const proposerSignature = proposalSignerToUse.sign(proposalHash);
|
|
534
650
|
|
|
535
|
-
return
|
|
651
|
+
return new CheckpointAttestation(payload, attestationSignature, proposerSignature);
|
|
536
652
|
};
|
|
537
653
|
|
|
538
|
-
|
|
539
|
-
|
|
654
|
+
/**
|
|
655
|
+
* Create a checkpoint attestation from a checkpoint proposal
|
|
656
|
+
*/
|
|
657
|
+
export const makeCheckpointAttestationFromProposal = (
|
|
658
|
+
proposal: CheckpointProposal,
|
|
540
659
|
attesterSigner?: Secp256k1Signer,
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
const header = checkpoint.header;
|
|
544
|
-
const archive = checkpoint.archive.root;
|
|
660
|
+
): CheckpointAttestation => {
|
|
661
|
+
const payload = new ConsensusPayload(proposal.checkpointHeader, proposal.archive, proposal.feeAssetPriceModifier);
|
|
545
662
|
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
663
|
+
// Sign as attester
|
|
664
|
+
const attestationHash = getHashedSignaturePayloadEthSignedMessage(
|
|
665
|
+
payload,
|
|
666
|
+
SignatureDomainSeparator.checkpointAttestation,
|
|
667
|
+
);
|
|
668
|
+
const attestationSigner = attesterSigner ?? Secp256k1Signer.random();
|
|
669
|
+
const attestationSignature = attestationSigner.sign(attestationHash);
|
|
550
670
|
|
|
551
|
-
|
|
671
|
+
// Use the proposal's signature as the proposer signature
|
|
672
|
+
return new CheckpointAttestation(payload, attestationSignature, proposal.signature);
|
|
552
673
|
};
|
|
553
674
|
|
|
554
|
-
|
|
555
|
-
|
|
675
|
+
/**
|
|
676
|
+
* Create a checkpoint attestation from a checkpoint
|
|
677
|
+
*/
|
|
678
|
+
export const makeCheckpointAttestationFromCheckpoint = (
|
|
679
|
+
checkpoint: Checkpoint,
|
|
556
680
|
attesterSigner?: Secp256k1Signer,
|
|
557
681
|
proposerSigner?: Secp256k1Signer,
|
|
558
|
-
):
|
|
559
|
-
const header =
|
|
560
|
-
const archive =
|
|
561
|
-
|
|
562
|
-
const payload = ConsensusPayload.fromFields({
|
|
563
|
-
header: header.toCheckpointHeader(),
|
|
564
|
-
archive,
|
|
565
|
-
});
|
|
682
|
+
): CheckpointAttestation => {
|
|
683
|
+
const header = checkpoint.header;
|
|
684
|
+
const archive = checkpoint.archive.root;
|
|
685
|
+
const feeAssetPriceModifier = checkpoint.feeAssetPriceModifier;
|
|
566
686
|
|
|
567
|
-
return
|
|
687
|
+
return makeCheckpointAttestation({ header, archive, feeAssetPriceModifier, attesterSigner, proposerSigner });
|
|
568
688
|
};
|
|
569
689
|
|
|
570
|
-
|
|
571
|
-
|
|
690
|
+
/**
|
|
691
|
+
* Create a checkpoint attestation from an L2Block
|
|
692
|
+
* Note: This is a compatibility function for tests. L2Block doesn't have a checkpoint header directly.
|
|
693
|
+
*/
|
|
694
|
+
export const makeCheckpointAttestationFromBlock = (
|
|
695
|
+
block: L2Block,
|
|
572
696
|
attesterSigner?: Secp256k1Signer,
|
|
573
697
|
proposerSigner?: Secp256k1Signer,
|
|
574
|
-
):
|
|
575
|
-
//
|
|
576
|
-
const
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
const
|
|
583
|
-
const proposerSignature = proposalSignerToUse.sign(proposalHash);
|
|
698
|
+
): CheckpointAttestation => {
|
|
699
|
+
// For L2Block, we create a minimal checkpoint header for testing purposes
|
|
700
|
+
const header = CheckpointHeader.empty({
|
|
701
|
+
lastArchiveRoot: block.header.lastArchive.root,
|
|
702
|
+
slotNumber: block.slot,
|
|
703
|
+
timestamp: block.timestamp,
|
|
704
|
+
blockHeadersHash: Fr.ZERO, // Would need to compute from block header hash
|
|
705
|
+
});
|
|
706
|
+
const archive = block.archive.root;
|
|
584
707
|
|
|
585
|
-
return
|
|
708
|
+
return makeCheckpointAttestation({ header, archive, attesterSigner, proposerSigner });
|
|
586
709
|
};
|
|
587
710
|
|
|
588
711
|
export async function randomPublishedL2Block(
|
|
589
712
|
l2BlockNumber: number,
|
|
590
713
|
opts: { signers?: Secp256k1Signer[] } = {},
|
|
591
|
-
): Promise<
|
|
714
|
+
): Promise<CheckpointedL2Block> {
|
|
592
715
|
const block = await L2Block.random(BlockNumber(l2BlockNumber));
|
|
593
716
|
const l1 = L1PublishedData.fromFields({
|
|
594
717
|
blockNumber: BigInt(block.number),
|
|
@@ -597,9 +720,19 @@ export async function randomPublishedL2Block(
|
|
|
597
720
|
});
|
|
598
721
|
|
|
599
722
|
const signers = opts.signers ?? times(3, () => Secp256k1Signer.random());
|
|
600
|
-
const
|
|
723
|
+
const checkpoint = await Checkpoint.random(CheckpointNumber.fromBlockNumber(BlockNumber(l2BlockNumber)), {
|
|
724
|
+
numBlocks: 0,
|
|
725
|
+
});
|
|
726
|
+
checkpoint.blocks = [block];
|
|
727
|
+
const atts = signers.map(signer =>
|
|
728
|
+
makeCheckpointAttestation({
|
|
729
|
+
signer,
|
|
730
|
+
archive: block.archive.root,
|
|
731
|
+
header: checkpoint.header,
|
|
732
|
+
}),
|
|
733
|
+
);
|
|
601
734
|
const attestations = atts.map(
|
|
602
735
|
(attestation, i) => new CommitteeAttestation(signers[i].address, attestation.signature),
|
|
603
736
|
);
|
|
604
|
-
return new
|
|
737
|
+
return new CheckpointedL2Block(CheckpointNumber.fromBlockNumber(BlockNumber(l2BlockNumber)), block, l1, attestations);
|
|
605
738
|
}
|
|
@@ -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(),
|