@aztec/stdlib 0.0.1-commit.9ef841308 → 0.0.1-commit.a5db02d
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dest/abi/abi.d.ts +121 -1197
- package/dest/abi/abi.d.ts.map +1 -1
- package/dest/abi/abi.js +31 -16
- package/dest/abi/authorization_selector.d.ts +4 -7
- package/dest/abi/authorization_selector.d.ts.map +1 -1
- package/dest/abi/buffer.d.ts +6 -2
- package/dest/abi/buffer.d.ts.map +1 -1
- package/dest/abi/buffer.js +13 -1
- package/dest/abi/contract_artifact.d.ts +14 -1
- package/dest/abi/contract_artifact.d.ts.map +1 -1
- package/dest/abi/contract_artifact.js +31 -7
- package/dest/abi/encoder.d.ts +1 -1
- package/dest/abi/encoder.d.ts.map +1 -1
- package/dest/abi/encoder.js +32 -6
- package/dest/abi/event_selector.d.ts +4 -7
- package/dest/abi/event_selector.d.ts.map +1 -1
- package/dest/abi/function_call.d.ts +7 -25
- package/dest/abi/function_call.d.ts.map +1 -1
- package/dest/abi/function_selector.d.ts +3 -6
- package/dest/abi/function_selector.d.ts.map +1 -1
- package/dest/abi/function_selector.js +1 -3
- package/dest/abi/note_selector.d.ts +4 -7
- package/dest/abi/note_selector.d.ts.map +1 -1
- package/dest/abi/note_selector.js +1 -3
- package/dest/abi/selector.d.ts +2 -2
- package/dest/abi/selector.d.ts.map +1 -1
- package/dest/abi/selector.js +1 -1
- package/dest/abi/utils.d.ts +1 -1
- package/dest/abi/utils.d.ts.map +1 -1
- package/dest/abi/utils.js +1 -1
- package/dest/auth_witness/auth_witness.d.ts +2 -2
- package/dest/auth_witness/auth_witness.d.ts.map +1 -1
- package/dest/avm/avm.d.ts +1756 -10463
- package/dest/avm/avm.d.ts.map +1 -1
- package/dest/avm/avm.js +7 -4
- package/dest/avm/avm_accumulated_data.d.ts +22 -86
- package/dest/avm/avm_accumulated_data.d.ts.map +1 -1
- package/dest/avm/avm_circuit_public_inputs.d.ts +180 -932
- package/dest/avm/avm_circuit_public_inputs.d.ts.map +1 -1
- package/dest/avm/avm_proving_request.d.ts +653 -5446
- package/dest/avm/avm_proving_request.d.ts.map +1 -1
- package/dest/avm/message_pack.js +12 -3
- package/dest/avm/public_data_write.d.ts +6 -12
- package/dest/avm/public_data_write.d.ts.map +1 -1
- package/dest/avm/revert_code.d.ts +5 -21
- package/dest/avm/revert_code.d.ts.map +1 -1
- package/dest/avm/revert_code.js +12 -30
- package/dest/aztec-address/index.d.ts +42 -12
- package/dest/aztec-address/index.d.ts.map +1 -1
- package/dest/aztec-address/index.js +40 -13
- package/dest/block/attestation_info.d.ts +3 -2
- package/dest/block/attestation_info.d.ts.map +1 -1
- package/dest/block/attestation_info.js +10 -5
- package/dest/block/block_data.d.ts +13 -38
- package/dest/block/block_data.d.ts.map +1 -1
- package/dest/block/block_data.js +2 -2
- package/dest/block/block_hash.d.ts +11 -10
- package/dest/block/block_hash.d.ts.map +1 -1
- package/dest/block/block_hash.js +10 -9
- package/dest/block/block_parameter.d.ts +37 -4
- package/dest/block/block_parameter.d.ts.map +1 -1
- package/dest/block/block_parameter.js +53 -2
- package/dest/block/in_block.d.ts +5 -24
- package/dest/block/in_block.d.ts.map +1 -1
- package/dest/block/index.d.ts +1 -2
- package/dest/block/index.d.ts.map +1 -1
- package/dest/block/index.js +0 -1
- package/dest/block/l2_block.d.ts +13 -41
- package/dest/block/l2_block.d.ts.map +1 -1
- package/dest/block/l2_block_info.d.ts +10 -29
- package/dest/block/l2_block_info.d.ts.map +1 -1
- package/dest/block/l2_block_info.js +6 -5
- package/dest/block/l2_block_source.d.ts +228 -354
- package/dest/block/l2_block_source.d.ts.map +1 -1
- package/dest/block/l2_block_source.js +81 -1
- package/dest/block/l2_block_stream/event_driven_l2_block_stream.d.ts +39 -0
- package/dest/block/l2_block_stream/event_driven_l2_block_stream.d.ts.map +1 -0
- package/dest/block/l2_block_stream/event_driven_l2_block_stream.js +165 -0
- 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 +83 -10
- package/dest/block/l2_block_stream/interfaces.d.ts.map +1 -1
- package/dest/block/l2_block_stream/interfaces.js +25 -1
- package/dest/block/l2_block_stream/l2_block_stream.d.ts +23 -15
- package/dest/block/l2_block_stream/l2_block_stream.d.ts.map +1 -1
- package/dest/block/l2_block_stream/l2_block_stream.js +159 -135
- package/dest/block/l2_block_stream/l2_tips_memory_store.d.ts +8 -12
- package/dest/block/l2_block_stream/l2_tips_memory_store.d.ts.map +1 -1
- package/dest/block/l2_block_stream/l2_tips_memory_store.js +11 -32
- package/dest/block/l2_block_stream/l2_tips_store_base.d.ts +20 -18
- package/dest/block/l2_block_stream/l2_tips_store_base.d.ts.map +1 -1
- package/dest/block/l2_block_stream/l2_tips_store_base.js +84 -40
- package/dest/block/proposal/attestations_and_signers.d.ts +37 -30
- package/dest/block/proposal/attestations_and_signers.d.ts.map +1 -1
- package/dest/block/proposal/attestations_and_signers.js +73 -25
- package/dest/block/proposal/committee_attestation.d.ts +6 -12
- package/dest/block/proposal/committee_attestation.d.ts.map +1 -1
- package/dest/block/test/l2_tips_store_test_suite.d.ts +1 -1
- package/dest/block/test/l2_tips_store_test_suite.d.ts.map +1 -1
- package/dest/block/test/l2_tips_store_test_suite.js +296 -36
- package/dest/block/validate_block_result.d.ts +16 -1
- package/dest/block/validate_block_result.d.ts.map +1 -1
- package/dest/block/validate_block_result.js +18 -3
- package/dest/checkpoint/checkpoint.d.ts +30 -96
- package/dest/checkpoint/checkpoint.d.ts.map +1 -1
- package/dest/checkpoint/checkpoint.js +11 -3
- package/dest/checkpoint/checkpoint_data.d.ts +68 -91
- package/dest/checkpoint/checkpoint_data.d.ts.map +1 -1
- package/dest/checkpoint/checkpoint_data.js +12 -0
- package/dest/checkpoint/checkpoint_info.d.ts +7 -23
- package/dest/checkpoint/checkpoint_info.d.ts.map +1 -1
- package/dest/checkpoint/checkpoint_reexecution_tracker.d.ts +60 -0
- package/dest/checkpoint/checkpoint_reexecution_tracker.d.ts.map +1 -0
- package/dest/checkpoint/checkpoint_reexecution_tracker.js +108 -0
- package/dest/checkpoint/digest.d.ts +18 -0
- package/dest/checkpoint/digest.d.ts.map +1 -0
- package/dest/checkpoint/digest.js +12 -0
- package/dest/checkpoint/index.d.ts +5 -1
- package/dest/checkpoint/index.d.ts.map +1 -1
- package/dest/checkpoint/index.js +4 -0
- package/dest/checkpoint/previous_checkpoint_out_hashes.d.ts +33 -0
- package/dest/checkpoint/previous_checkpoint_out_hashes.d.ts.map +1 -0
- package/dest/checkpoint/previous_checkpoint_out_hashes.js +45 -0
- package/dest/checkpoint/published_checkpoint.d.ts +42 -194
- package/dest/checkpoint/published_checkpoint.d.ts.map +1 -1
- package/dest/checkpoint/simulation_overrides.d.ts +61 -0
- package/dest/checkpoint/simulation_overrides.d.ts.map +1 -0
- package/dest/checkpoint/simulation_overrides.js +98 -0
- package/dest/checkpoint/validate.d.ts +11 -3
- package/dest/checkpoint/validate.d.ts.map +1 -1
- package/dest/checkpoint/validate.js +9 -6
- package/dest/config/chain-config.d.ts +4 -9
- package/dest/config/chain-config.d.ts.map +1 -1
- package/dest/config/chain-config.js +13 -12
- package/dest/config/index.d.ts +2 -2
- package/dest/config/index.d.ts.map +1 -1
- package/dest/config/index.js +1 -1
- package/dest/config/network-consensus-config.d.ts +72 -0
- package/dest/config/network-consensus-config.d.ts.map +1 -0
- package/dest/config/network-consensus-config.js +223 -0
- package/dest/config/sequencer-config.d.ts +7 -3
- package/dest/config/sequencer-config.d.ts.map +1 -1
- package/dest/config/sequencer-config.js +38 -5
- package/dest/contract/complete_address.d.ts +3 -2
- package/dest/contract/complete_address.d.ts.map +1 -1
- package/dest/contract/complete_address.js +6 -2
- package/dest/contract/contract_address.d.ts +9 -8
- package/dest/contract/contract_address.d.ts.map +1 -1
- package/dest/contract/contract_address.js +5 -4
- package/dest/contract/contract_deployment_data.d.ts +15 -61
- package/dest/contract/contract_deployment_data.d.ts.map +1 -1
- package/dest/contract/contract_instance.d.ts +19 -3
- package/dest/contract/contract_instance.d.ts.map +1 -1
- package/dest/contract/contract_instance.js +55 -3
- package/dest/contract/interfaces/contract_class.d.ts +15 -86
- package/dest/contract/interfaces/contract_class.d.ts.map +1 -1
- package/dest/contract/interfaces/contract_data_source.d.ts +3 -5
- package/dest/contract/interfaces/contract_data_source.d.ts.map +1 -1
- package/dest/contract/interfaces/contract_instance.d.ts +111 -104
- package/dest/contract/interfaces/contract_instance.d.ts.map +1 -1
- package/dest/contract/interfaces/contract_instance.js +11 -4
- package/dest/contract/interfaces/contract_instance_update.d.ts +6 -26
- package/dest/contract/interfaces/contract_instance_update.d.ts.map +1 -1
- package/dest/contract/interfaces/node-info.d.ts +11 -1
- package/dest/contract/interfaces/node-info.d.ts.map +1 -1
- package/dest/contract/interfaces/node-info.js +7 -1
- package/dest/contract/interfaces/protocol_contract_addresses.d.ts +2 -12
- package/dest/contract/interfaces/protocol_contract_addresses.d.ts.map +1 -1
- package/dest/contract/partial_address.d.ts +9 -3
- package/dest/contract/partial_address.d.ts.map +1 -1
- package/dest/contract/partial_address.js +8 -2
- package/dest/contract/private_function.d.ts +1 -1
- package/dest/contract/private_function.d.ts.map +1 -1
- package/dest/contract/private_function.js +2 -4
- package/dest/database-version/database_version.d.ts +5 -11
- package/dest/database-version/database_version.d.ts.map +1 -1
- package/dest/database-version/version_manager.d.ts +22 -4
- package/dest/database-version/version_manager.d.ts.map +1 -1
- package/dest/database-version/version_manager.js +87 -6
- package/dest/deserialization/index.d.ts +35 -3
- package/dest/deserialization/index.d.ts.map +1 -1
- package/dest/deserialization/index.js +32 -1
- package/dest/epoch-helpers/index.d.ts +6 -22
- package/dest/epoch-helpers/index.d.ts.map +1 -1
- package/dest/epoch-helpers/index.js +3 -0
- package/dest/file-store/factory.d.ts +1 -1
- package/dest/file-store/factory.d.ts.map +1 -1
- package/dest/file-store/factory.js +7 -0
- package/dest/file-store/index.d.ts +2 -1
- package/dest/file-store/index.d.ts.map +1 -1
- package/dest/file-store/index.js +1 -0
- package/dest/file-store/memory.d.ts +24 -0
- package/dest/file-store/memory.d.ts.map +1 -0
- package/dest/file-store/memory.js +80 -0
- package/dest/gas/fee_math.d.ts +49 -0
- package/dest/gas/fee_math.d.ts.map +1 -0
- package/dest/gas/fee_math.js +80 -0
- package/dest/gas/gas.d.ts +9 -14
- package/dest/gas/gas.d.ts.map +1 -1
- package/dest/gas/gas.js +6 -3
- package/dest/gas/gas_fees.d.ts +13 -14
- package/dest/gas/gas_fees.d.ts.map +1 -1
- package/dest/gas/gas_fees.js +17 -4
- package/dest/gas/gas_settings.d.ts +60 -86
- package/dest/gas/gas_settings.d.ts.map +1 -1
- package/dest/gas/gas_settings.js +49 -9
- package/dest/gas/index.d.ts +3 -1
- package/dest/gas/index.d.ts.map +1 -1
- package/dest/gas/index.js +2 -0
- package/dest/gas/tx_gas_limits.d.ts +72 -0
- package/dest/gas/tx_gas_limits.d.ts.map +1 -0
- package/dest/gas/tx_gas_limits.js +85 -0
- package/dest/ha-signing/config.d.ts +29 -79
- package/dest/ha-signing/config.d.ts.map +1 -1
- package/dest/ha-signing/config.js +18 -21
- package/dest/ha-signing/index.d.ts +2 -2
- package/dest/ha-signing/index.d.ts.map +1 -1
- package/dest/ha-signing/index.js +1 -1
- package/dest/ha-signing/local_config.d.ts +12 -35
- package/dest/ha-signing/local_config.d.ts.map +1 -1
- package/dest/ha-signing/local_config.js +9 -3
- package/dest/ha-signing/types.d.ts +37 -32
- package/dest/ha-signing/types.d.ts.map +1 -1
- package/dest/ha-signing/types.js +13 -6
- package/dest/hash/hash.d.ts +16 -2
- package/dest/hash/hash.d.ts.map +1 -1
- package/dest/hash/hash.js +34 -9
- package/dest/interfaces/allowed_element.d.ts +4 -28
- package/dest/interfaces/allowed_element.d.ts.map +1 -1
- package/dest/interfaces/api_limit.d.ts +1 -1
- package/dest/interfaces/api_limit.js +1 -1
- package/dest/interfaces/archiver.d.ts +27 -32
- package/dest/interfaces/archiver.d.ts.map +1 -1
- package/dest/interfaces/archiver.js +216 -70
- package/dest/interfaces/aztec-node-admin.d.ts +74 -302
- package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
- package/dest/interfaces/aztec-node-admin.js +60 -17
- package/dest/interfaces/aztec-node-debug.d.ts +59 -0
- package/dest/interfaces/aztec-node-debug.d.ts.map +1 -0
- package/dest/interfaces/aztec-node-debug.js +49 -0
- package/dest/interfaces/aztec-node.d.ts +160 -116
- package/dest/interfaces/aztec-node.d.ts.map +1 -1
- package/dest/interfaces/aztec-node.js +350 -74
- package/dest/interfaces/block-builder.d.ts +5 -1
- package/dest/interfaces/block-builder.d.ts.map +1 -1
- package/dest/interfaces/block_response.d.ts +90 -0
- package/dest/interfaces/block_response.d.ts.map +1 -0
- package/dest/interfaces/block_response.js +30 -0
- package/dest/interfaces/chain_tips.d.ts +11 -0
- package/dest/interfaces/chain_tips.d.ts.map +1 -0
- package/dest/interfaces/chain_tips.js +6 -0
- package/dest/interfaces/checkpoint_parameter.d.ts +14 -0
- package/dest/interfaces/checkpoint_parameter.d.ts.map +1 -0
- package/dest/interfaces/checkpoint_parameter.js +18 -0
- package/dest/interfaces/checkpoint_response.d.ts +122 -0
- package/dest/interfaces/checkpoint_response.d.ts.map +1 -0
- package/dest/interfaces/checkpoint_response.js +26 -0
- package/dest/interfaces/client.d.ts +9 -2
- package/dest/interfaces/client.d.ts.map +1 -1
- package/dest/interfaces/client.js +7 -1
- package/dest/interfaces/configs.d.ts +66 -134
- package/dest/interfaces/configs.d.ts.map +1 -1
- package/dest/interfaces/configs.js +14 -2
- package/dest/interfaces/get_tx_by_hash_options.d.ts +9 -0
- package/dest/interfaces/get_tx_by_hash_options.d.ts.map +1 -0
- package/dest/interfaces/get_tx_by_hash_options.js +4 -0
- package/dest/interfaces/l1_publish_info.d.ts +29 -0
- package/dest/interfaces/l1_publish_info.d.ts.map +1 -0
- package/dest/interfaces/l1_publish_info.js +26 -0
- package/dest/interfaces/l2_logs_source.d.ts +14 -36
- package/dest/interfaces/l2_logs_source.d.ts.map +1 -1
- package/dest/interfaces/l2_logs_source.js +5 -0
- package/dest/interfaces/merkle_tree_operations.d.ts +4 -3
- package/dest/interfaces/merkle_tree_operations.d.ts.map +1 -1
- package/dest/interfaces/p2p-bootstrap.js +8 -2
- package/dest/interfaces/p2p.d.ts +46 -7
- package/dest/interfaces/p2p.d.ts.map +1 -1
- package/dest/interfaces/p2p.js +41 -6
- package/dest/interfaces/private_kernel_prover.d.ts +69 -11
- package/dest/interfaces/private_kernel_prover.d.ts.map +1 -1
- package/dest/interfaces/prover-agent.d.ts +5 -23
- package/dest/interfaces/prover-agent.d.ts.map +1 -1
- package/dest/interfaces/prover-agent.js +4 -1
- package/dest/interfaces/prover-client.d.ts +7 -29
- package/dest/interfaces/prover-client.d.ts.map +1 -1
- package/dest/interfaces/prover-client.js +0 -3
- package/dest/interfaces/prover-node.d.ts +12 -8
- package/dest/interfaces/prover-node.d.ts.map +1 -1
- package/dest/interfaces/prover-node.js +37 -16
- package/dest/interfaces/proving-job-source.js +24 -4
- package/dest/interfaces/proving-job.d.ts +740 -5778
- package/dest/interfaces/proving-job.d.ts.map +1 -1
- package/dest/interfaces/proving-job.js +14 -5
- package/dest/interfaces/public_storage_override.d.ts +22 -0
- package/dest/interfaces/public_storage_override.d.ts.map +1 -0
- package/dest/interfaces/public_storage_override.js +7 -0
- package/dest/interfaces/server.d.ts +6 -2
- package/dest/interfaces/server.d.ts.map +1 -1
- package/dest/interfaces/server.js +5 -1
- package/dest/interfaces/server_circuit_prover.d.ts +3 -3
- package/dest/interfaces/server_circuit_prover.d.ts.map +1 -1
- package/dest/interfaces/slasher.d.ts +25 -65
- package/dest/interfaces/slasher.d.ts.map +1 -1
- package/dest/interfaces/slasher.js +8 -4
- package/dest/interfaces/tx_provider.d.ts +6 -1
- package/dest/interfaces/tx_provider.d.ts.map +1 -1
- package/dest/interfaces/validator.d.ts +58 -239
- package/dest/interfaces/validator.d.ts.map +1 -1
- package/dest/interfaces/validator.js +8 -1
- package/dest/interfaces/world_state.d.ts +15 -2
- package/dest/interfaces/world_state.d.ts.map +1 -1
- package/dest/kernel/hints/find_private_kernel_reset_dimensions.d.ts +8 -2
- package/dest/kernel/hints/find_private_kernel_reset_dimensions.d.ts.map +1 -1
- package/dest/kernel/hints/find_private_kernel_reset_dimensions.js +12 -74
- package/dest/kernel/hints/key_validation_request.d.ts +12 -8
- package/dest/kernel/hints/key_validation_request.d.ts.map +1 -1
- package/dest/kernel/hints/key_validation_request.js +20 -18
- package/dest/kernel/hints/read_request.js +1 -1
- package/dest/kernel/index.d.ts +6 -2
- package/dest/kernel/index.d.ts.map +1 -1
- package/dest/kernel/index.js +5 -1
- package/dest/kernel/log_hash.d.ts +6 -2
- package/dest/kernel/log_hash.d.ts.map +1 -1
- package/dest/kernel/log_hash.js +23 -11
- package/dest/kernel/note_hash.js +1 -1
- package/dest/kernel/nullifier.js +1 -1
- package/dest/kernel/private_circuit_public_inputs.d.ts +14 -4
- package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_circuit_public_inputs.js +14 -7
- package/dest/kernel/private_context_inputs.d.ts +4 -3
- package/dest/kernel/private_context_inputs.d.ts.map +1 -1
- package/dest/kernel/private_context_inputs.js +7 -3
- package/dest/kernel/private_kernel_circuit_public_inputs.d.ts +8 -2
- package/dest/kernel/private_kernel_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_circuit_public_inputs.js +7 -0
- package/dest/kernel/private_kernel_init_2_circuit_private_inputs.d.ts +22 -0
- package/dest/kernel/private_kernel_init_2_circuit_private_inputs.d.ts.map +1 -0
- package/dest/kernel/private_kernel_init_2_circuit_private_inputs.js +33 -0
- package/dest/kernel/private_kernel_init_3_circuit_private_inputs.d.ts +23 -0
- package/dest/kernel/private_kernel_init_3_circuit_private_inputs.d.ts.map +1 -0
- package/dest/kernel/private_kernel_init_3_circuit_private_inputs.js +35 -0
- package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts +1 -9
- package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_init_circuit_private_inputs.js +2 -6
- package/dest/kernel/private_kernel_inner_2_circuit_private_inputs.d.ts +16 -0
- package/dest/kernel/private_kernel_inner_2_circuit_private_inputs.d.ts.map +1 -0
- package/dest/kernel/private_kernel_inner_2_circuit_private_inputs.js +23 -0
- package/dest/kernel/private_kernel_inner_3_circuit_private_inputs.d.ts +17 -0
- package/dest/kernel/private_kernel_inner_3_circuit_private_inputs.d.ts.map +1 -0
- package/dest/kernel/private_kernel_inner_3_circuit_private_inputs.js +25 -0
- package/dest/kernel/private_kernel_prover_output.d.ts +3 -29
- package/dest/kernel/private_kernel_prover_output.d.ts.map +1 -1
- package/dest/kernel/private_kernel_reset_dimensions.d.ts +7 -8
- package/dest/kernel/private_kernel_reset_dimensions.d.ts.map +1 -1
- package/dest/kernel/private_kernel_reset_tail_circuit_private_inputs.d.ts +29 -0
- package/dest/kernel/private_kernel_reset_tail_circuit_private_inputs.d.ts.map +1 -0
- package/dest/kernel/private_kernel_reset_tail_circuit_private_inputs.js +36 -0
- package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts +9 -6
- package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_tail_circuit_public_inputs.js +22 -7
- package/dest/kernel/private_log_data.d.ts +1 -1
- package/dest/kernel/private_log_data.d.ts.map +1 -1
- package/dest/kernel/private_log_data.js +1 -1
- package/dest/kernel/private_to_avm_accumulated_data.d.ts +25 -69
- package/dest/kernel/private_to_avm_accumulated_data.d.ts.map +1 -1
- package/dest/kernel/private_to_avm_accumulated_data.js +11 -5
- package/dest/kernel/private_to_public_accumulated_data.d.ts +4 -3
- package/dest/kernel/private_to_public_accumulated_data.d.ts.map +1 -1
- package/dest/kernel/private_to_public_accumulated_data.js +6 -3
- package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts +5 -4
- package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_to_public_kernel_circuit_public_inputs.js +7 -3
- package/dest/kernel/private_to_rollup_accumulated_data.d.ts +5 -4
- package/dest/kernel/private_to_rollup_accumulated_data.d.ts.map +1 -1
- package/dest/kernel/private_to_rollup_accumulated_data.js +6 -3
- package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts +5 -4
- package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.js +7 -3
- package/dest/kernel/public_call_request.d.ts +15 -30
- package/dest/kernel/public_call_request.d.ts.map +1 -1
- package/dest/kernel/public_call_request.js +16 -7
- package/dest/keys/derivation.d.ts +45 -6
- package/dest/keys/derivation.d.ts.map +1 -1
- package/dest/keys/derivation.js +55 -22
- package/dest/keys/public_key.d.ts +22 -3
- package/dest/keys/public_key.d.ts.map +1 -1
- package/dest/keys/public_key.js +20 -1
- package/dest/keys/public_keys.d.ts +55 -82
- package/dest/keys/public_keys.d.ts.map +1 -1
- package/dest/keys/public_keys.js +102 -74
- package/dest/kv-store/config.d.ts +3 -6
- package/dest/kv-store/config.d.ts.map +1 -1
- package/dest/kv-store/config.js +2 -7
- package/dest/l1-contracts/index.d.ts +2 -2
- package/dest/l1-contracts/index.d.ts.map +1 -1
- package/dest/l1-contracts/index.js +1 -1
- package/dest/logs/app_tagging_secret.d.ts +69 -0
- package/dest/logs/app_tagging_secret.d.ts.map +1 -0
- package/dest/logs/app_tagging_secret.js +116 -0
- package/dest/logs/app_tagging_secret_kind.d.ts +7 -0
- package/dest/logs/app_tagging_secret_kind.d.ts.map +1 -0
- package/dest/logs/app_tagging_secret_kind.js +17 -0
- package/dest/logs/contract_class_log.d.ts +16 -35
- package/dest/logs/contract_class_log.d.ts.map +1 -1
- package/dest/logs/contract_class_log.js +11 -13
- package/dest/logs/index.d.ts +7 -9
- package/dest/logs/index.d.ts.map +1 -1
- package/dest/logs/index.js +6 -8
- package/dest/logs/log_cursor.d.ts +51 -0
- package/dest/logs/log_cursor.d.ts.map +1 -0
- package/dest/logs/log_cursor.js +82 -0
- package/dest/logs/log_result.d.ts +54 -0
- package/dest/logs/log_result.d.ts.map +1 -0
- package/dest/logs/log_result.js +56 -0
- package/dest/logs/logs_query.d.ts +82 -0
- package/dest/logs/logs_query.d.ts.map +1 -0
- package/dest/logs/logs_query.js +50 -0
- package/dest/logs/pre_tag.d.ts +11 -24
- package/dest/logs/pre_tag.d.ts.map +1 -1
- package/dest/logs/pre_tag.js +2 -2
- package/dest/logs/private_log.d.ts +7 -12
- package/dest/logs/private_log.d.ts.map +1 -1
- package/dest/logs/private_log.js +6 -3
- package/dest/logs/query_all_logs_by_tags.d.ts +24 -0
- package/dest/logs/query_all_logs_by_tags.d.ts.map +1 -0
- package/dest/logs/query_all_logs_by_tags.js +64 -0
- package/dest/logs/shared_secret_derivation.d.ts +29 -6
- package/dest/logs/shared_secret_derivation.d.ts.map +1 -1
- package/dest/logs/shared_secret_derivation.js +44 -11
- package/dest/logs/siloed_tag.d.ts +5 -7
- package/dest/logs/siloed_tag.d.ts.map +1 -1
- package/dest/logs/siloed_tag.js +7 -1
- package/dest/logs/tag.d.ts +5 -6
- package/dest/logs/tag.d.ts.map +1 -1
- package/dest/logs/tag.js +4 -0
- package/dest/logs/tagging_index_range.d.ts +13 -31
- package/dest/logs/tagging_index_range.d.ts.map +1 -1
- package/dest/logs/tagging_index_range.js +2 -2
- package/dest/messaging/append_l1_to_l2_messages.d.ts +9 -0
- package/dest/messaging/append_l1_to_l2_messages.d.ts.map +1 -0
- package/dest/messaging/append_l1_to_l2_messages.js +12 -0
- package/dest/messaging/index.d.ts +2 -1
- package/dest/messaging/index.d.ts.map +1 -1
- package/dest/messaging/index.js +1 -0
- package/dest/messaging/l1_to_l2_message.d.ts +23 -2
- package/dest/messaging/l1_to_l2_message.d.ts.map +1 -1
- package/dest/messaging/l1_to_l2_message.js +36 -11
- package/dest/messaging/l2_to_l1_membership.d.ts +43 -6
- package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -1
- package/dest/messaging/l2_to_l1_membership.js +72 -12
- package/dest/messaging/l2_to_l1_message.d.ts +38 -112
- package/dest/messaging/l2_to_l1_message.d.ts.map +1 -1
- package/dest/messaging/l2_to_l1_message.js +21 -12
- package/dest/noir/index.d.ts +3 -1
- package/dest/noir/index.d.ts.map +1 -1
- package/dest/note/note.d.ts +2 -2
- package/dest/note/note.d.ts.map +1 -1
- package/dest/p2p/attestation_utils.d.ts +1 -1
- package/dest/p2p/attestation_utils.d.ts.map +1 -1
- package/dest/p2p/attestation_utils.js +8 -1
- package/dest/p2p/block_proposal.d.ts +31 -14
- package/dest/p2p/block_proposal.d.ts.map +1 -1
- package/dest/p2p/block_proposal.js +57 -39
- package/dest/p2p/checkpoint_attestation.d.ts +24 -9
- package/dest/p2p/checkpoint_attestation.d.ts.map +1 -1
- package/dest/p2p/checkpoint_attestation.js +33 -24
- package/dest/p2p/checkpoint_proposal.d.ts +36 -16
- package/dest/p2p/checkpoint_proposal.d.ts.map +1 -1
- package/dest/p2p/checkpoint_proposal.js +59 -51
- package/dest/p2p/consensus_payload.d.ts +27 -20
- package/dest/p2p/consensus_payload.d.ts.map +1 -1
- package/dest/p2p/consensus_payload.js +38 -19
- package/dest/p2p/gossipable.d.ts +4 -4
- package/dest/p2p/gossipable.d.ts.map +1 -1
- package/dest/p2p/signature_utils.d.ts +35 -17
- package/dest/p2p/signature_utils.d.ts.map +1 -1
- package/dest/p2p/signature_utils.js +125 -20
- package/dest/p2p/signed_txs.d.ts +15 -13
- package/dest/p2p/signed_txs.d.ts.map +1 -1
- package/dest/p2p/signed_txs.js +26 -24
- package/dest/parity/parity_base_private_inputs.d.ts +8 -4
- package/dest/parity/parity_base_private_inputs.d.ts.map +1 -1
- package/dest/parity/parity_base_private_inputs.js +7 -5
- package/dest/parity/parity_public_inputs.d.ts +8 -4
- package/dest/parity/parity_public_inputs.d.ts.map +1 -1
- package/dest/parity/parity_public_inputs.js +6 -3
- package/dest/parity/parity_root_private_inputs.d.ts +2 -2
- package/dest/parity/parity_root_private_inputs.d.ts.map +1 -1
- package/dest/proofs/chonk_proof.d.ts +17 -11
- package/dest/proofs/chonk_proof.d.ts.map +1 -1
- package/dest/proofs/chonk_proof.js +44 -22
- package/dest/proofs/recursive_proof.d.ts +2 -2
- package/dest/proofs/recursive_proof.d.ts.map +1 -1
- package/dest/rollup/avm_proof_data.d.ts +3 -3
- package/dest/rollup/avm_proof_data.d.ts.map +1 -1
- package/dest/rollup/block_headers_hash.d.ts +1 -1
- package/dest/rollup/block_headers_hash.d.ts.map +1 -1
- package/dest/rollup/block_headers_hash.js +8 -2
- package/dest/rollup/block_merge_rollup_private_inputs.d.ts +2 -2
- package/dest/rollup/block_merge_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/block_rollup_public_inputs.d.ts +12 -2
- package/dest/rollup/block_rollup_public_inputs.d.ts.map +1 -1
- package/dest/rollup/block_rollup_public_inputs.js +12 -0
- package/dest/rollup/block_root_rollup_private_inputs.d.ts +6 -6
- package/dest/rollup/block_root_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/checkpoint_header.d.ts +8 -3
- package/dest/rollup/checkpoint_header.d.ts.map +1 -1
- package/dest/rollup/checkpoint_header.js +20 -10
- package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts +2 -2
- package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/checkpoint_rollup_public_inputs.d.ts +9 -2
- package/dest/rollup/checkpoint_rollup_public_inputs.d.ts.map +1 -1
- package/dest/rollup/checkpoint_rollup_public_inputs.js +9 -0
- package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts +5 -5
- package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/private_tx_base_rollup_private_inputs.d.ts +2 -2
- package/dest/rollup/private_tx_base_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/public_chonk_verifier_private_inputs.d.ts +2 -2
- package/dest/rollup/public_chonk_verifier_private_inputs.d.ts.map +1 -1
- package/dest/rollup/public_chonk_verifier_public_inputs.d.ts +2 -2
- package/dest/rollup/public_chonk_verifier_public_inputs.d.ts.map +1 -1
- package/dest/rollup/public_tx_base_rollup_private_inputs.d.ts +2 -2
- package/dest/rollup/public_tx_base_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/root_rollup_private_inputs.d.ts +2 -2
- package/dest/rollup/root_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/root_rollup_public_inputs.d.ts +2 -2
- package/dest/rollup/root_rollup_public_inputs.d.ts.map +1 -1
- package/dest/rollup/tx_merge_rollup_private_inputs.d.ts +2 -2
- package/dest/rollup/tx_merge_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/tx_rollup_public_inputs.d.ts +2 -2
- package/dest/rollup/tx_rollup_public_inputs.d.ts.map +1 -1
- package/dest/schemas/schemas.d.ts +32 -78
- package/dest/schemas/schemas.d.ts.map +1 -1
- package/dest/schemas/schemas.js +2 -2
- package/dest/slashing/helpers.d.ts +2 -2
- package/dest/slashing/helpers.d.ts.map +1 -1
- package/dest/slashing/helpers.js +10 -7
- package/dest/slashing/index.d.ts +2 -3
- package/dest/slashing/index.d.ts.map +1 -1
- package/dest/slashing/index.js +1 -2
- package/dest/slashing/serialization.d.ts +2 -6
- package/dest/slashing/serialization.d.ts.map +1 -1
- package/dest/slashing/serialization.js +0 -60
- package/dest/slashing/types.d.ts +18 -112
- package/dest/slashing/types.d.ts.map +1 -1
- package/dest/slashing/types.js +16 -24
- package/dest/slashing/{tally.d.ts → votes.d.ts} +1 -1
- package/dest/slashing/{tally.d.ts.map → votes.d.ts.map} +1 -1
- package/dest/slashing/{tally.js → votes.js} +1 -1
- package/dest/snapshots/types.d.ts +15 -78
- package/dest/snapshots/types.d.ts.map +1 -1
- package/dest/stats/stats.d.ts +2 -2
- package/dest/stats/stats.d.ts.map +1 -1
- package/dest/tests/factories.d.ts +24 -29
- package/dest/tests/factories.d.ts.map +1 -1
- package/dest/tests/factories.js +81 -59
- package/dest/tests/mocks.d.ts +8 -5
- package/dest/tests/mocks.d.ts.map +1 -1
- package/dest/tests/mocks.js +45 -56
- package/dest/timetable/budgets.d.ts +57 -0
- package/dest/timetable/budgets.d.ts.map +1 -0
- package/dest/timetable/budgets.js +56 -0
- package/dest/timetable/build_proposer_timetable.d.ts +21 -0
- package/dest/timetable/build_proposer_timetable.d.ts.map +1 -0
- package/dest/timetable/build_proposer_timetable.js +17 -0
- package/dest/timetable/consensus_timetable.d.ts +70 -0
- package/dest/timetable/consensus_timetable.d.ts.map +1 -0
- package/dest/timetable/consensus_timetable.js +89 -0
- package/dest/timetable/index.d.ts +5 -37
- package/dest/timetable/index.d.ts.map +1 -1
- package/dest/timetable/index.js +4 -39
- package/dest/timetable/proposer_timetable.d.ts +106 -0
- package/dest/timetable/proposer_timetable.d.ts.map +1 -0
- package/dest/timetable/proposer_timetable.js +132 -0
- package/dest/trees/append_only_tree_snapshot.d.ts +9 -14
- package/dest/trees/append_only_tree_snapshot.d.ts.map +1 -1
- package/dest/trees/append_only_tree_snapshot.js +6 -3
- package/dest/trees/nullifier_leaf.d.ts +19 -42
- package/dest/trees/nullifier_leaf.d.ts.map +1 -1
- package/dest/trees/nullifier_leaf.js +3 -0
- package/dest/trees/nullifier_membership_witness.d.ts +17 -63
- package/dest/trees/nullifier_membership_witness.d.ts.map +1 -1
- package/dest/trees/nullifier_membership_witness.js +0 -21
- package/dest/trees/public_data_leaf.d.ts +21 -53
- package/dest/trees/public_data_leaf.d.ts.map +1 -1
- package/dest/trees/public_data_witness.d.ts +19 -71
- package/dest/trees/public_data_witness.d.ts.map +1 -1
- package/dest/trees/public_data_witness.js +0 -27
- package/dest/tx/block_header.d.ts +5 -4
- package/dest/tx/block_header.d.ts.map +1 -1
- package/dest/tx/block_header.js +7 -4
- package/dest/tx/call_context.d.ts +4 -14
- package/dest/tx/call_context.d.ts.map +1 -1
- package/dest/tx/capsule.d.ts +2 -2
- package/dest/tx/capsule.d.ts.map +1 -1
- package/dest/tx/execution_payload.d.ts +1 -1
- package/dest/tx/execution_payload.d.ts.map +1 -1
- package/dest/tx/execution_payload.js +1 -1
- package/dest/tx/fee_provider.d.ts +10 -0
- package/dest/tx/fee_provider.d.ts.map +1 -0
- package/dest/tx/fee_provider.js +1 -0
- package/dest/tx/function_data.d.ts +4 -10
- package/dest/tx/function_data.d.ts.map +1 -1
- package/dest/tx/global_variable_builder.d.ts +4 -15
- package/dest/tx/global_variable_builder.d.ts.map +1 -1
- package/dest/tx/global_variables.d.ts +16 -49
- package/dest/tx/global_variables.d.ts.map +1 -1
- package/dest/tx/global_variables.js +10 -14
- package/dest/tx/hashed_values.d.ts +4 -3
- package/dest/tx/hashed_values.d.ts.map +1 -1
- package/dest/tx/hashed_values.js +6 -3
- package/dest/tx/in_tx.d.ts +5 -17
- package/dest/tx/in_tx.d.ts.map +1 -1
- package/dest/tx/index.d.ts +2 -1
- package/dest/tx/index.d.ts.map +1 -1
- package/dest/tx/index.js +1 -0
- package/dest/tx/indexed_tx_effect.d.ts +8 -19
- package/dest/tx/indexed_tx_effect.d.ts.map +1 -1
- package/dest/tx/indexed_tx_effect.js +9 -6
- package/dest/tx/partial_state_reference.d.ts +22 -65
- package/dest/tx/partial_state_reference.d.ts.map +1 -1
- package/dest/tx/partial_state_reference.js +6 -3
- package/dest/tx/private_execution_result.d.ts +6 -16
- package/dest/tx/private_execution_result.d.ts.map +1 -1
- package/dest/tx/private_tx_constant_data.d.ts +18 -2
- package/dest/tx/private_tx_constant_data.d.ts.map +1 -1
- package/dest/tx/private_tx_constant_data.js +13 -4
- package/dest/tx/profiling.d.ts +54 -352
- package/dest/tx/profiling.d.ts.map +1 -1
- package/dest/tx/profiling.js +4 -4
- package/dest/tx/protocol_contracts.d.ts +5 -9
- package/dest/tx/protocol_contracts.d.ts.map +1 -1
- package/dest/tx/proven_tx.d.ts +30 -74
- package/dest/tx/proven_tx.d.ts.map +1 -1
- package/dest/tx/proven_tx.js +6 -0
- package/dest/tx/public_call_request_with_calldata.d.ts +4 -3
- package/dest/tx/public_call_request_with_calldata.d.ts.map +1 -1
- package/dest/tx/public_call_request_with_calldata.js +6 -3
- package/dest/tx/simulated_tx.d.ts +73 -1256
- package/dest/tx/simulated_tx.d.ts.map +1 -1
- package/dest/tx/simulated_tx.js +13 -11
- package/dest/tx/state_reference.d.ts +30 -117
- package/dest/tx/state_reference.d.ts.map +1 -1
- package/dest/tx/state_reference.js +6 -4
- package/dest/tx/tree_snapshots.d.ts +27 -84
- package/dest/tx/tree_snapshots.d.ts.map +1 -1
- package/dest/tx/tree_snapshots.js +6 -4
- package/dest/tx/tx.d.ts +22 -13
- package/dest/tx/tx.d.ts.map +1 -1
- package/dest/tx/tx.js +44 -22
- package/dest/tx/tx_constant_data.d.ts +4 -3
- package/dest/tx/tx_constant_data.d.ts.map +1 -1
- package/dest/tx/tx_constant_data.js +6 -3
- package/dest/tx/tx_context.d.ts +32 -131
- package/dest/tx/tx_context.d.ts.map +1 -1
- package/dest/tx/tx_context.js +6 -6
- package/dest/tx/tx_hash.d.ts +6 -4
- package/dest/tx/tx_hash.d.ts.map +1 -1
- package/dest/tx/tx_hash.js +13 -5
- package/dest/tx/tx_receipt.d.ts +144 -63
- package/dest/tx/tx_receipt.d.ts.map +1 -1
- package/dest/tx/tx_receipt.js +143 -60
- package/dest/tx/validator/error_texts.d.ts +2 -2
- package/dest/tx/validator/error_texts.d.ts.map +1 -1
- package/dest/tx/validator/error_texts.js +1 -1
- package/dest/tx/validator/tx_validator.d.ts +5 -27
- package/dest/tx/validator/tx_validator.d.ts.map +1 -1
- package/dest/tx/validator/tx_validator.js +0 -4
- package/dest/types/shared.d.ts +4 -12
- package/dest/types/shared.d.ts.map +1 -1
- package/dest/types/shared.js +6 -12
- package/dest/update-checker/dev_version.d.ts +3 -0
- package/dest/update-checker/dev_version.d.ts.map +1 -0
- package/dest/update-checker/dev_version.js +1 -0
- package/dest/update-checker/index.d.ts +2 -1
- package/dest/update-checker/index.d.ts.map +1 -1
- package/dest/update-checker/index.js +1 -0
- package/dest/update-checker/package_version.d.ts +6 -3
- package/dest/update-checker/package_version.d.ts.map +1 -1
- package/dest/update-checker/package_version.js +8 -19
- package/dest/validators/schemas.d.ts +147 -614
- package/dest/validators/schemas.d.ts.map +1 -1
- package/dest/validators/schemas.js +6 -4
- package/dest/validators/types.d.ts +20 -3
- package/dest/validators/types.d.ts.map +1 -1
- package/dest/versioning/versioning.js +1 -1
- package/dest/vks/verification_key.d.ts +4 -139
- package/dest/vks/verification_key.d.ts.map +1 -1
- package/dest/vks/verification_key.js +5 -126
- package/dest/world-state/genesis_data.d.ts +21 -0
- package/dest/world-state/genesis_data.d.ts.map +1 -0
- package/dest/world-state/genesis_data.js +8 -0
- package/dest/world-state/index.d.ts +2 -1
- package/dest/world-state/index.d.ts.map +1 -1
- package/dest/world-state/index.js +1 -0
- package/dest/world-state/world_state_revision.d.ts +15 -26
- package/dest/world-state/world_state_revision.d.ts.map +1 -1
- package/dest/world-state/world_state_revision.js +7 -1
- package/package.json +12 -11
- package/src/abi/abi.ts +53 -19
- package/src/abi/authorization_selector.ts +2 -8
- package/src/abi/buffer.ts +13 -1
- package/src/abi/contract_artifact.ts +30 -6
- package/src/abi/encoder.ts +42 -6
- package/src/abi/event_selector.ts +2 -8
- package/src/abi/function_selector.ts +3 -12
- package/src/abi/note_selector.ts +3 -12
- package/src/abi/selector.ts +1 -1
- package/src/abi/utils.ts +6 -4
- package/src/avm/avm.ts +6 -1
- package/src/avm/message_pack.ts +12 -3
- package/src/avm/revert_code.ts +19 -39
- package/src/aztec-address/index.ts +50 -17
- package/src/block/attestation_info.ts +16 -11
- package/src/block/block_data.ts +3 -4
- package/src/block/block_hash.ts +21 -14
- package/src/block/block_parameter.ts +72 -4
- package/src/block/index.ts +0 -1
- package/src/block/l2_block_info.ts +8 -6
- package/src/block/l2_block_source.ts +258 -144
- package/src/block/l2_block_stream/event_driven_l2_block_stream.ts +207 -0
- package/src/block/l2_block_stream/index.ts +1 -0
- package/src/block/l2_block_stream/interfaces.ts +99 -9
- package/src/block/l2_block_stream/l2_block_stream.ts +229 -177
- package/src/block/l2_block_stream/l2_tips_memory_store.ts +17 -41
- package/src/block/l2_block_stream/l2_tips_store_base.ts +85 -60
- package/src/block/proposal/attestations_and_signers.ts +85 -24
- package/src/block/test/l2_tips_store_test_suite.ts +271 -22
- package/src/block/validate_block_result.ts +48 -2
- package/src/checkpoint/checkpoint.ts +13 -3
- package/src/checkpoint/checkpoint_data.ts +44 -4
- package/src/checkpoint/checkpoint_reexecution_tracker.ts +167 -0
- package/src/checkpoint/digest.ts +28 -0
- package/src/checkpoint/index.ts +4 -0
- package/src/checkpoint/previous_checkpoint_out_hashes.ts +61 -0
- package/src/checkpoint/simulation_overrides.ts +171 -0
- package/src/checkpoint/validate.ts +16 -6
- package/src/config/chain-config.ts +13 -16
- package/src/config/index.ts +1 -1
- package/src/config/network-consensus-config.ts +291 -0
- package/src/config/sequencer-config.ts +68 -9
- package/src/contract/complete_address.ts +7 -3
- package/src/contract/contract_address.ts +10 -9
- package/src/contract/contract_instance.ts +73 -3
- package/src/contract/interfaces/contract_data_source.ts +2 -4
- package/src/contract/interfaces/contract_instance.ts +32 -10
- package/src/contract/interfaces/node-info.ts +11 -0
- package/src/contract/partial_address.ts +8 -2
- package/src/contract/private_function.ts +3 -1
- package/src/database-version/version_manager.ts +113 -6
- package/src/deserialization/index.ts +35 -2
- package/src/epoch-helpers/index.ts +5 -0
- package/src/file-store/factory.ts +7 -0
- package/src/file-store/index.ts +1 -0
- package/src/file-store/memory.ts +94 -0
- package/src/gas/README.md +230 -35
- package/src/gas/fee_math.ts +120 -0
- package/src/gas/gas.ts +8 -3
- package/src/gas/gas_fees.ts +26 -13
- package/src/gas/gas_settings.ts +63 -15
- package/src/gas/index.ts +2 -0
- package/src/gas/tx_gas_limits.ts +123 -0
- package/src/ha-signing/config.ts +37 -23
- package/src/ha-signing/index.ts +3 -1
- package/src/ha-signing/local_config.ts +21 -2
- package/src/ha-signing/types.ts +48 -34
- package/src/hash/hash.ts +29 -10
- package/src/interfaces/api_limit.ts +1 -1
- package/src/interfaces/archiver.ts +96 -93
- package/src/interfaces/aztec-node-admin.ts +36 -21
- package/src/interfaces/aztec-node-debug.ts +92 -0
- package/src/interfaces/aztec-node.ts +398 -271
- package/src/interfaces/block-builder.ts +4 -0
- package/src/interfaces/block_response.ts +92 -0
- package/src/interfaces/chain_tips.ts +16 -0
- package/src/interfaces/checkpoint_parameter.ts +20 -0
- package/src/interfaces/checkpoint_response.ts +84 -0
- package/src/interfaces/client.ts +8 -1
- package/src/interfaces/configs.ts +67 -7
- package/src/interfaces/get_tx_by_hash_options.ts +14 -0
- package/src/interfaces/l1_publish_info.ts +40 -0
- package/src/interfaces/l2_logs_source.ts +13 -42
- package/src/interfaces/merkle_tree_operations.ts +3 -2
- package/src/interfaces/p2p-bootstrap.ts +2 -2
- package/src/interfaces/p2p.ts +59 -19
- package/src/interfaces/private_kernel_prover.ts +98 -12
- package/src/interfaces/prover-agent.ts +1 -1
- package/src/interfaces/prover-client.ts +3 -8
- package/src/interfaces/prover-node.ts +36 -21
- package/src/interfaces/proving-job-source.ts +4 -4
- package/src/interfaces/proving-job.ts +18 -6
- package/src/interfaces/public_storage_override.ts +26 -0
- package/src/interfaces/server.ts +5 -1
- package/src/interfaces/server_circuit_prover.ts +2 -2
- package/src/interfaces/slasher.ts +17 -10
- package/src/interfaces/tx_provider.ts +6 -0
- package/src/interfaces/validator.ts +44 -10
- package/src/interfaces/world_state.ts +15 -1
- package/src/kernel/hints/find_private_kernel_reset_dimensions.ts +22 -112
- package/src/kernel/hints/key_validation_request.ts +18 -16
- package/src/kernel/hints/read_request.ts +1 -1
- package/src/kernel/index.ts +5 -1
- package/src/kernel/log_hash.ts +36 -13
- package/src/kernel/note_hash.ts +1 -1
- package/src/kernel/nullifier.ts +1 -1
- package/src/kernel/private_circuit_public_inputs.ts +12 -1
- package/src/kernel/private_context_inputs.ts +10 -3
- package/src/kernel/private_kernel_circuit_public_inputs.ts +9 -0
- package/src/kernel/private_kernel_init_2_circuit_private_inputs.ts +46 -0
- package/src/kernel/private_kernel_init_3_circuit_private_inputs.ts +49 -0
- package/src/kernel/private_kernel_init_circuit_private_inputs.ts +0 -6
- package/src/kernel/private_kernel_inner_2_circuit_private_inputs.ts +29 -0
- package/src/kernel/private_kernel_inner_3_circuit_private_inputs.ts +31 -0
- package/src/kernel/private_kernel_reset_dimensions.ts +15 -5
- package/src/kernel/private_kernel_reset_tail_circuit_private_inputs.ts +69 -0
- package/src/kernel/private_kernel_tail_circuit_public_inputs.ts +29 -14
- package/src/kernel/private_log_data.ts +4 -1
- package/src/kernel/private_to_avm_accumulated_data.ts +16 -5
- package/src/kernel/private_to_public_accumulated_data.ts +9 -3
- package/src/kernel/private_to_public_kernel_circuit_public_inputs.ts +10 -4
- package/src/kernel/private_to_rollup_accumulated_data.ts +8 -3
- package/src/kernel/private_to_rollup_kernel_circuit_public_inputs.ts +9 -9
- package/src/kernel/public_call_request.ts +22 -7
- package/src/keys/derivation.ts +79 -22
- package/src/keys/public_key.ts +26 -2
- package/src/keys/public_keys.ts +124 -110
- package/src/kv-store/config.ts +3 -10
- package/src/l1-contracts/index.ts +1 -1
- package/src/logs/app_tagging_secret.ts +160 -0
- package/src/logs/app_tagging_secret_kind.ts +21 -0
- package/src/logs/contract_class_log.ts +15 -14
- package/src/logs/index.ts +6 -8
- package/src/logs/log_cursor.ts +110 -0
- package/src/logs/log_result.ts +104 -0
- package/src/logs/logs_query.ts +138 -0
- package/src/logs/pre_tag.ts +3 -6
- package/src/logs/private_log.ts +9 -3
- package/src/logs/query_all_logs_by_tags.ts +98 -0
- package/src/logs/shared_secret_derivation.ts +47 -14
- package/src/logs/siloed_tag.ts +14 -10
- package/src/logs/tag.ts +8 -8
- package/src/logs/tagging_index_range.ts +4 -10
- package/src/messaging/append_l1_to_l2_messages.ts +21 -0
- package/src/messaging/index.ts +1 -0
- package/src/messaging/l1_to_l2_message.ts +51 -13
- package/src/messaging/l2_to_l1_membership.ts +108 -19
- package/src/messaging/l2_to_l1_message.ts +29 -9
- package/src/noir/index.ts +2 -0
- package/src/p2p/attestation_utils.ts +8 -1
- package/src/p2p/block_proposal.ts +111 -36
- package/src/p2p/checkpoint_attestation.ts +38 -30
- package/src/p2p/checkpoint_proposal.ts +128 -73
- package/src/p2p/consensus_payload.ts +59 -28
- package/src/p2p/gossipable.ts +4 -4
- package/src/p2p/signature_utils.ts +117 -23
- package/src/p2p/signed_txs.ts +46 -28
- package/src/parity/parity_base_private_inputs.ts +10 -4
- package/src/parity/parity_public_inputs.ts +9 -2
- package/src/proofs/chonk_proof.ts +49 -15
- package/src/rollup/avm_proof_data.ts +2 -2
- package/src/rollup/block_headers_hash.ts +11 -2
- package/src/rollup/block_rollup_public_inputs.ts +13 -0
- package/src/rollup/checkpoint_header.ts +16 -2
- package/src/rollup/checkpoint_rollup_public_inputs.ts +10 -0
- package/src/schemas/schemas.ts +6 -1
- package/src/slashing/helpers.ts +13 -9
- package/src/slashing/index.ts +1 -2
- package/src/slashing/serialization.ts +1 -81
- package/src/slashing/types.ts +24 -49
- package/src/slashing/{tally.ts → votes.ts} +1 -1
- package/src/stats/stats.ts +6 -2
- package/src/tests/factories.ts +111 -86
- package/src/tests/mocks.ts +72 -71
- package/src/timetable/README.md +609 -0
- package/src/timetable/budgets.ts +87 -0
- package/src/timetable/build_proposer_timetable.ts +42 -0
- package/src/timetable/consensus_timetable.ts +126 -0
- package/src/timetable/index.ts +4 -66
- package/src/timetable/proposer_timetable.ts +190 -0
- package/src/timetable/timetable-example.svg +108 -0
- package/src/trees/append_only_tree_snapshot.ts +8 -3
- package/src/trees/nullifier_leaf.ts +4 -0
- package/src/trees/nullifier_membership_witness.ts +0 -21
- package/src/trees/public_data_witness.ts +0 -31
- package/src/tx/block_header.ts +10 -5
- package/src/tx/execution_payload.ts +2 -1
- package/src/tx/fee_provider.ts +10 -0
- package/src/tx/global_variable_builder.ts +3 -20
- package/src/tx/global_variables.ts +12 -20
- package/src/tx/hashed_values.ts +8 -3
- package/src/tx/index.ts +1 -0
- package/src/tx/indexed_tx_effect.ts +18 -6
- package/src/tx/partial_state_reference.ts +8 -3
- package/src/tx/private_tx_constant_data.ts +25 -2
- package/src/tx/profiling.ts +4 -4
- package/src/tx/proven_tx.ts +6 -0
- package/src/tx/public_call_request_with_calldata.ts +8 -3
- package/src/tx/simulated_tx.ts +22 -21
- package/src/tx/state_reference.ts +9 -4
- package/src/tx/tree_snapshots.ts +9 -4
- package/src/tx/tx.ts +60 -24
- package/src/tx/tx_constant_data.ts +8 -3
- package/src/tx/tx_context.ts +8 -3
- package/src/tx/tx_hash.ts +20 -5
- package/src/tx/tx_receipt.ts +265 -85
- package/src/tx/validator/error_texts.ts +2 -1
- package/src/tx/validator/tx_validator.ts +1 -5
- package/src/types/shared.ts +8 -13
- package/src/update-checker/dev_version.ts +2 -0
- package/src/update-checker/index.ts +1 -0
- package/src/update-checker/package_version.ts +10 -23
- package/src/validators/schemas.ts +6 -4
- package/src/validators/types.ts +21 -2
- package/src/versioning/versioning.ts +1 -1
- package/src/vks/verification_key.ts +5 -184
- package/src/world-state/genesis_data.ts +37 -0
- package/src/world-state/index.ts +1 -0
- package/src/world-state/world_state_revision.ts +9 -1
- package/dest/abi/mocked_keys.d.ts +0 -2
- package/dest/abi/mocked_keys.d.ts.map +0 -1
- package/dest/abi/mocked_keys.js +0 -1
- package/dest/block/checkpointed_l2_block.d.ts +0 -150
- package/dest/block/checkpointed_l2_block.d.ts.map +0 -1
- package/dest/block/checkpointed_l2_block.js +0 -46
- package/dest/config/pipelining-config.d.ts +0 -19
- package/dest/config/pipelining-config.d.ts.map +0 -1
- package/dest/config/pipelining-config.js +0 -18
- package/dest/interfaces/epoch-prover.d.ts +0 -57
- package/dest/interfaces/epoch-prover.d.ts.map +0 -1
- package/dest/interfaces/epoch-prover.js +0 -1
- package/dest/interfaces/get_logs_response.d.ts +0 -97
- package/dest/interfaces/get_logs_response.d.ts.map +0 -1
- package/dest/interfaces/get_logs_response.js +0 -12
- package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts +0 -47
- package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts.map +0 -1
- package/dest/kernel/private_kernel_tail_circuit_private_inputs.js +0 -38
- package/dest/l1-contracts/slash_factory.d.ts +0 -45
- package/dest/l1-contracts/slash_factory.d.ts.map +0 -1
- package/dest/l1-contracts/slash_factory.js +0 -158
- package/dest/logs/extended_contract_class_log.d.ts +0 -51
- package/dest/logs/extended_contract_class_log.d.ts.map +0 -1
- package/dest/logs/extended_contract_class_log.js +0 -67
- package/dest/logs/extended_directional_app_tagging_secret.d.ts +0 -47
- package/dest/logs/extended_directional_app_tagging_secret.d.ts.map +0 -1
- package/dest/logs/extended_directional_app_tagging_secret.js +0 -72
- package/dest/logs/extended_public_log.d.ts +0 -106
- package/dest/logs/extended_public_log.d.ts.map +0 -1
- package/dest/logs/extended_public_log.js +0 -73
- package/dest/logs/log_filter.d.ts +0 -25
- package/dest/logs/log_filter.d.ts.map +0 -1
- package/dest/logs/log_filter.js +0 -12
- package/dest/logs/log_id.d.ts +0 -85
- package/dest/logs/log_id.d.ts.map +0 -1
- package/dest/logs/log_id.js +0 -94
- package/dest/logs/message_context.d.ts +0 -26
- package/dest/logs/message_context.d.ts.map +0 -1
- package/dest/logs/message_context.js +0 -70
- package/dest/logs/pending_tagged_log.d.ts +0 -13
- package/dest/logs/pending_tagged_log.d.ts.map +0 -1
- package/dest/logs/pending_tagged_log.js +0 -34
- package/dest/logs/tx_scoped_l2_log.d.ts +0 -51
- package/dest/logs/tx_scoped_l2_log.d.ts.map +0 -1
- package/dest/logs/tx_scoped_l2_log.js +0 -77
- package/dest/slashing/empire.d.ts +0 -31
- package/dest/slashing/empire.d.ts.map +0 -1
- package/dest/slashing/empire.js +0 -87
- package/src/abi/mocked_keys.ts +0 -2
- package/src/block/checkpointed_l2_block.ts +0 -70
- package/src/config/pipelining-config.ts +0 -31
- package/src/interfaces/epoch-prover.ts +0 -72
- package/src/interfaces/get_logs_response.ts +0 -35
- package/src/kernel/private_kernel_tail_circuit_private_inputs.ts +0 -58
- package/src/l1-contracts/slash_factory.ts +0 -180
- package/src/logs/extended_contract_class_log.ts +0 -87
- package/src/logs/extended_directional_app_tagging_secret.ts +0 -87
- package/src/logs/extended_public_log.ts +0 -94
- package/src/logs/log_filter.ts +0 -36
- package/src/logs/log_id.ts +0 -125
- package/src/logs/message_context.ts +0 -72
- package/src/logs/pending_tagged_log.ts +0 -39
- package/src/logs/tx_scoped_l2_log.ts +0 -114
- package/src/slashing/empire.ts +0 -104
package/src/gas/gas_settings.ts
CHANGED
|
@@ -1,12 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
DEFAULT_DA_GAS_LIMIT,
|
|
3
|
-
DEFAULT_L2_GAS_LIMIT,
|
|
4
|
-
DEFAULT_TEARDOWN_DA_GAS_LIMIT,
|
|
5
|
-
DEFAULT_TEARDOWN_L2_GAS_LIMIT,
|
|
6
|
-
GAS_SETTINGS_LENGTH,
|
|
7
|
-
} from '@aztec/constants';
|
|
1
|
+
import { GAS_SETTINGS_LENGTH, MAX_PROCESSABLE_DA_GAS_PER_CHECKPOINT, MAX_PROCESSABLE_L2_GAS } from '@aztec/constants';
|
|
8
2
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
9
|
-
import { BufferReader,
|
|
3
|
+
import { BufferReader, BufferSink, FieldReader, serializeToFields, serializeToSink } from '@aztec/foundation/serialize';
|
|
10
4
|
import type { FieldsOf } from '@aztec/foundation/types';
|
|
11
5
|
|
|
12
6
|
import { z } from 'zod';
|
|
@@ -14,6 +8,14 @@ import { z } from 'zod';
|
|
|
14
8
|
import { Gas, GasDimensions } from './gas.js';
|
|
15
9
|
import { GasFees } from './gas_fees.js';
|
|
16
10
|
|
|
11
|
+
// For gas estimation, we use intentionally high limits above what the network can process,
|
|
12
|
+
// so the simulation runs without hitting gas caps. Since teardown gas is counted towards total,
|
|
13
|
+
// the total estimation limit is teardown + max processable.
|
|
14
|
+
export const GAS_ESTIMATION_TEARDOWN_L2_GAS_LIMIT = MAX_PROCESSABLE_L2_GAS;
|
|
15
|
+
export const GAS_ESTIMATION_L2_GAS_LIMIT = GAS_ESTIMATION_TEARDOWN_L2_GAS_LIMIT + MAX_PROCESSABLE_L2_GAS;
|
|
16
|
+
export const GAS_ESTIMATION_TEARDOWN_DA_GAS_LIMIT = MAX_PROCESSABLE_DA_GAS_PER_CHECKPOINT;
|
|
17
|
+
export const GAS_ESTIMATION_DA_GAS_LIMIT = GAS_ESTIMATION_TEARDOWN_DA_GAS_LIMIT + MAX_PROCESSABLE_DA_GAS_PER_CHECKPOINT;
|
|
18
|
+
|
|
17
19
|
// docs:start:gas_settings_vars
|
|
18
20
|
/** Gas usage and fees limits set by the transaction sender for different dimensions and phases. */
|
|
19
21
|
export class GasSettings {
|
|
@@ -95,18 +97,59 @@ export class GasSettings {
|
|
|
95
97
|
return new GasSettings(Gas.empty(), Gas.empty(), GasFees.empty(), GasFees.empty());
|
|
96
98
|
}
|
|
97
99
|
|
|
98
|
-
/**
|
|
99
|
-
|
|
100
|
+
/**
|
|
101
|
+
* Fills in gas limits high enough for transactions to be included in most cases.
|
|
102
|
+
* Callers must supply `gasLimits` — typically the most a single tx may declare on the network
|
|
103
|
+
* (`min(per-tx max, per-block allocation)`), i.e. a node's advertised `txsLimits.gas`. Since teardown gas
|
|
104
|
+
* is reserved from gasLimits during private execution (see gas_meter.nr), the effective gas available for
|
|
105
|
+
* app logic is gasLimits - teardownGasLimits - privateOverhead; the teardown default is derived from the
|
|
106
|
+
* effective total so it always stays below it.
|
|
107
|
+
* These values won't work if:
|
|
108
|
+
* - Teardown consumes more than the arbitrarily assigned fallback limits
|
|
109
|
+
* - The rest of the transaction consumes more than the remaining gas after teardown
|
|
110
|
+
* - The DA gas limit is too low for the transaction, while still within the checkpoint limit
|
|
111
|
+
*/
|
|
112
|
+
static fallback(overrides: {
|
|
113
|
+
gasLimits: Gas;
|
|
114
|
+
teardownGasLimits?: Gas;
|
|
115
|
+
maxFeesPerGas: GasFees;
|
|
116
|
+
maxPriorityFeesPerGas?: GasFees;
|
|
117
|
+
}) {
|
|
118
|
+
const gasLimits = overrides.gasLimits;
|
|
119
|
+
const teardownGasLimits =
|
|
120
|
+
overrides.teardownGasLimits ?? new Gas(Math.floor(gasLimits.daGas / 2), Math.floor(gasLimits.l2Gas / 8));
|
|
121
|
+
return GasSettings.from({
|
|
122
|
+
gasLimits,
|
|
123
|
+
teardownGasLimits,
|
|
124
|
+
maxFeesPerGas: overrides.maxFeesPerGas,
|
|
125
|
+
maxPriorityFeesPerGas: overrides.maxPriorityFeesPerGas ?? GasFees.empty(),
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
/**
|
|
130
|
+
* Gas settings for simulation/estimation only.
|
|
131
|
+
* Since teardown gas is reserved upfront from gasLimits during private execution (see gas_meter.nr),
|
|
132
|
+
* the effective gas available for app logic is gasLimits - teardownGasLimits - privateOverhead.
|
|
133
|
+
* To ensure estimation never hits gas caps, we set both limits above what the protocol allows:
|
|
134
|
+
* teardown gets MAX_PROCESSABLE and gasLimits gets teardown + MAX_PROCESSABLE, so the full
|
|
135
|
+
* processable amount remains available for each phase independently. To be used in conjunction
|
|
136
|
+
* with skipTxValidation: true during public simulation, or the node would reject the transaction
|
|
137
|
+
* outright due to gas limits being above protocol max.
|
|
138
|
+
*/
|
|
139
|
+
static forEstimation(overrides: {
|
|
100
140
|
gasLimits?: Gas;
|
|
101
141
|
teardownGasLimits?: Gas;
|
|
102
142
|
maxFeesPerGas: GasFees;
|
|
103
143
|
maxPriorityFeesPerGas?: GasFees;
|
|
104
144
|
}) {
|
|
105
145
|
return GasSettings.from({
|
|
106
|
-
gasLimits: overrides.gasLimits ?? {
|
|
146
|
+
gasLimits: overrides.gasLimits ?? {
|
|
147
|
+
l2Gas: GAS_ESTIMATION_L2_GAS_LIMIT,
|
|
148
|
+
daGas: GAS_ESTIMATION_DA_GAS_LIMIT,
|
|
149
|
+
},
|
|
107
150
|
teardownGasLimits: overrides.teardownGasLimits ?? {
|
|
108
|
-
l2Gas:
|
|
109
|
-
daGas:
|
|
151
|
+
l2Gas: GAS_ESTIMATION_TEARDOWN_L2_GAS_LIMIT,
|
|
152
|
+
daGas: GAS_ESTIMATION_TEARDOWN_DA_GAS_LIMIT,
|
|
110
153
|
},
|
|
111
154
|
maxFeesPerGas: overrides.maxFeesPerGas,
|
|
112
155
|
maxPriorityFeesPerGas: overrides.maxPriorityFeesPerGas ?? GasFees.empty(),
|
|
@@ -141,8 +184,13 @@ export class GasSettings {
|
|
|
141
184
|
);
|
|
142
185
|
}
|
|
143
186
|
|
|
144
|
-
toBuffer()
|
|
145
|
-
|
|
187
|
+
toBuffer(): Buffer;
|
|
188
|
+
toBuffer(sink: BufferSink): void;
|
|
189
|
+
toBuffer(sink?: BufferSink): Buffer | void {
|
|
190
|
+
if (!sink) {
|
|
191
|
+
return BufferSink.serialize(this);
|
|
192
|
+
}
|
|
193
|
+
serializeToSink(sink, ...GasSettings.getFields(this));
|
|
146
194
|
}
|
|
147
195
|
|
|
148
196
|
static fromFields(fields: Fr[] | FieldReader): GasSettings {
|
package/src/gas/index.ts
CHANGED
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import {
|
|
2
|
+
NUM_BLOCK_END_BLOB_FIELDS,
|
|
3
|
+
NUM_CHECKPOINT_END_MARKER_FIELDS,
|
|
4
|
+
NUM_FIRST_BLOCK_END_BLOB_FIELDS,
|
|
5
|
+
} from '@aztec/blob-lib/encoding';
|
|
6
|
+
import {
|
|
7
|
+
BLOBS_PER_CHECKPOINT,
|
|
8
|
+
DA_GAS_PER_FIELD,
|
|
9
|
+
FIELDS_PER_BLOB,
|
|
10
|
+
MAX_PROCESSABLE_L2_GAS,
|
|
11
|
+
MAX_TX_DA_GAS,
|
|
12
|
+
} from '@aztec/constants';
|
|
13
|
+
|
|
14
|
+
import { type ProposerTimetableConfig, buildProposerTimetable } from '../timetable/build_proposer_timetable.js';
|
|
15
|
+
import type { SlotTimingConstants } from '../timetable/consensus_timetable.js';
|
|
16
|
+
import { Gas } from './gas.js';
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Network-minimum per-block budget multiplier for L2 gas and tx-count allocation. A block packer must
|
|
20
|
+
* grant at least this share of the even per-block split to a single tx; operators may configure a higher
|
|
21
|
+
* multiplier (more generous), but not a lower one — enforced at sequencer startup. Also used as the default
|
|
22
|
+
* for `SequencerConfig.perBlockAllocationMultiplier`.
|
|
23
|
+
*/
|
|
24
|
+
export const MIN_PER_BLOCK_ALLOCATION_MULTIPLIER = 1.2;
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Network-minimum per-block budget multiplier for DA gas, applied in place of the general
|
|
28
|
+
* {@link MIN_PER_BLOCK_ALLOCATION_MULTIPLIER}. Higher than the general multiplier so the largest tx we
|
|
29
|
+
* want to support — a maximal contract class registration (~97k DA gas) — fits a single block under v5
|
|
30
|
+
* mainnet geometry (72s slots, 6s blocks → 10 blocks per checkpoint). A builder may configure a higher
|
|
31
|
+
* multiplier but never a lower one. Also used as the default for
|
|
32
|
+
* `SequencerConfig.perBlockDAAllocationMultiplier`.
|
|
33
|
+
*/
|
|
34
|
+
export const MIN_PER_BLOCK_DA_ALLOCATION_MULTIPLIER = 1.5;
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* The DA gas budget available to tx data within a checkpoint of `maxBlocksPerCheckpoint` blocks. This is the
|
|
38
|
+
* raw blob capacity (`BLOBS_PER_CHECKPOINT * FIELDS_PER_BLOB * DA_GAS_PER_FIELD`) minus the fields the blob
|
|
39
|
+
* encoding reserves for overhead that no tx pays DA gas for:
|
|
40
|
+
*
|
|
41
|
+
* - one checkpoint-end marker field (`NUM_CHECKPOINT_END_MARKER_FIELDS`),
|
|
42
|
+
* - the first block's block-end fields (`NUM_FIRST_BLOCK_END_BLOB_FIELDS`, 7), and
|
|
43
|
+
* - `NUM_BLOCK_END_BLOB_FIELDS` (6) for each of the `blocks - 1` subsequent blocks.
|
|
44
|
+
*
|
|
45
|
+
* Subtracting the overhead for every block (not just the first) keeps the network DA admission limit at or
|
|
46
|
+
* below the builder's first-block blob-field cap at every geometry. The builder is the MOST generous for the
|
|
47
|
+
* first block — it only reserves that block's own block-end overhead — so being conservative here (assuming
|
|
48
|
+
* the checkpoint is full of blocks, each spending its share) is what guarantees admitted ⇒ buildable: a tx
|
|
49
|
+
* admitted under this budget always fits the first block's blob-field cap, regardless of how many blocks the
|
|
50
|
+
* builder ends up packing.
|
|
51
|
+
*
|
|
52
|
+
* @param maxBlocksPerCheckpoint - Number of blocks the checkpoint may contain; clamped to at least 1.
|
|
53
|
+
*/
|
|
54
|
+
export function getDaCheckpointBudgetForTxs(maxBlocksPerCheckpoint: number): number {
|
|
55
|
+
const blocks = Math.max(1, maxBlocksPerCheckpoint);
|
|
56
|
+
// Clamp at zero: for absurd geometries (blocks greater than ~4094) the per-block overhead alone exceeds the
|
|
57
|
+
// raw blob capacity, which would otherwise yield a negative advertised DA budget.
|
|
58
|
+
const fields = Math.max(
|
|
59
|
+
0,
|
|
60
|
+
BLOBS_PER_CHECKPOINT * FIELDS_PER_BLOB -
|
|
61
|
+
NUM_CHECKPOINT_END_MARKER_FIELDS -
|
|
62
|
+
NUM_FIRST_BLOCK_END_BLOB_FIELDS -
|
|
63
|
+
(blocks - 1) * NUM_BLOCK_END_BLOB_FIELDS,
|
|
64
|
+
);
|
|
65
|
+
return fields * DA_GAS_PER_FIELD;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* Computes the maximum gas a single tx may declare on a network: the smaller of the per-tx protocol
|
|
70
|
+
* maximum and the per-block allocation a proposer grants to the first block of a checkpoint. The per-block
|
|
71
|
+
* allocation mirrors `CheckpointBuilder.capLimitsByCheckpointBudgets`
|
|
72
|
+
* (`ceil(checkpointBudget / maxBlocksPerCheckpoint * multiplier)`) using the network-minimum multipliers, so
|
|
73
|
+
* a tx declaring this much is admissible into a block under that geometry.
|
|
74
|
+
*
|
|
75
|
+
* This is a *network* limit: a function of network-wide constants only (timetable-derived
|
|
76
|
+
* blocks-per-checkpoint, checkpoint budgets, the network-minimum multipliers). It must NOT depend on a
|
|
77
|
+
* node's local restrictiveness — its multipliers configured above the network minimum, or its
|
|
78
|
+
* `maxDABlockGas` / `validateMaxDABlockGas` caps — because those make a node stricter at block-building
|
|
79
|
+
* time but cannot define what the network considers a valid tx for relay. The same value is advertised by
|
|
80
|
+
* `getNodeInfo` and enforced by the RPC/gossip/pool gas validators.
|
|
81
|
+
*
|
|
82
|
+
* The DA budget is {@link getDaCheckpointBudgetForTxs} evaluated at the clamped blocks-per-checkpoint — the
|
|
83
|
+
* raw blob capacity net of encoding overhead for every block — so the admission limit is consistent with the
|
|
84
|
+
* builder's blob-field cap.
|
|
85
|
+
*
|
|
86
|
+
* @param manaCheckpointBudget - L2 (mana) budget per checkpoint (`rollupManaLimit`).
|
|
87
|
+
*/
|
|
88
|
+
export function computeNetworkTxGasLimits(opts: { maxBlocksPerCheckpoint: number; manaCheckpointBudget: number }): Gas {
|
|
89
|
+
const blocks = Math.max(1, opts.maxBlocksPerCheckpoint);
|
|
90
|
+
const daBudget = getDaCheckpointBudgetForTxs(blocks);
|
|
91
|
+
|
|
92
|
+
// Clamp by the whole-checkpoint budget too: at small block counts the per-block share scaled by the
|
|
93
|
+
// multiplier can exceed the checkpoint budget itself (e.g. at blocks=1 a >1 multiplier overshoots), which
|
|
94
|
+
// would admit a tx no builder can ever pack — the builder caps each block by the remaining budget. Clamping
|
|
95
|
+
// by the budget makes "admitted ⇒ buildable" unconditional. (For DA the per-tx maximum always binds first,
|
|
96
|
+
// so the budget clamp is currently moot, but it keeps the invariant explicit.)
|
|
97
|
+
const daGas = Math.min(
|
|
98
|
+
MAX_TX_DA_GAS,
|
|
99
|
+
daBudget,
|
|
100
|
+
Math.ceil((daBudget / blocks) * MIN_PER_BLOCK_DA_ALLOCATION_MULTIPLIER),
|
|
101
|
+
);
|
|
102
|
+
const l2Gas = Math.min(
|
|
103
|
+
MAX_PROCESSABLE_L2_GAS,
|
|
104
|
+
opts.manaCheckpointBudget,
|
|
105
|
+
Math.ceil((opts.manaCheckpointBudget / blocks) * MIN_PER_BLOCK_ALLOCATION_MULTIPLIER),
|
|
106
|
+
);
|
|
107
|
+
|
|
108
|
+
return new Gas(daGas, l2Gas);
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* Network tx gas limits derived from a sequencer/p2p config and the L1 slot-timing + mana constants. The
|
|
113
|
+
* single source of truth shared by `getNodeInfo` (advertising) and the RPC/gossip/pool gas validators
|
|
114
|
+
* (enforcing), so a node never rejects a tx it advertised as admissible. Always uses the network-minimum
|
|
115
|
+
* multipliers, never the node's (possibly higher) configured multipliers.
|
|
116
|
+
*/
|
|
117
|
+
export function getNetworkTxGasLimits(
|
|
118
|
+
config: ProposerTimetableConfig,
|
|
119
|
+
l1Constants: SlotTimingConstants & { rollupManaLimit: number },
|
|
120
|
+
): Gas {
|
|
121
|
+
const maxBlocksPerCheckpoint = buildProposerTimetable(config, l1Constants).getMaxBlocksPerCheckpoint();
|
|
122
|
+
return computeNetworkTxGasLimits({ maxBlocksPerCheckpoint, manaCheckpointBudget: l1Constants.rollupManaLimit });
|
|
123
|
+
}
|
package/src/ha-signing/config.ts
CHANGED
|
@@ -1,13 +1,18 @@
|
|
|
1
|
-
import
|
|
1
|
+
import {
|
|
2
|
+
type L1ContractAddresses,
|
|
3
|
+
pickL1ContractAddressMappings,
|
|
4
|
+
pickL1ContractAddressesSchema,
|
|
5
|
+
} from '@aztec/ethereum/l1-contract-addresses';
|
|
2
6
|
import {
|
|
3
7
|
type ConfigMappingsType,
|
|
8
|
+
SecretValue,
|
|
4
9
|
booleanConfigHelper,
|
|
5
10
|
getConfigFromMappings,
|
|
6
11
|
getDefaultConfig,
|
|
7
12
|
numberConfigHelper,
|
|
8
13
|
optionalNumberConfigHelper,
|
|
14
|
+
secretStringConfigHelper,
|
|
9
15
|
} from '@aztec/foundation/config';
|
|
10
|
-
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
11
16
|
import type { ZodFor } from '@aztec/foundation/schemas';
|
|
12
17
|
|
|
13
18
|
import { z } from 'zod';
|
|
@@ -15,31 +20,32 @@ import { z } from 'zod';
|
|
|
15
20
|
/**
|
|
16
21
|
* Base signing protection configuration shared by both HA (Postgres) and local (LMDB) signers.
|
|
17
22
|
*/
|
|
18
|
-
export
|
|
19
|
-
/** L1 contract addresses (rollup address required) */
|
|
20
|
-
l1Contracts: Pick<L1ContractAddresses, 'rollupAddress'>;
|
|
23
|
+
export type BaseSignerConfig = {
|
|
21
24
|
/** Unique identifier for this node */
|
|
22
25
|
nodeId: string;
|
|
23
26
|
/** How long to wait between polls when a duty is being signed (ms) */
|
|
24
27
|
pollingIntervalMs: number;
|
|
25
|
-
/**
|
|
26
|
-
|
|
28
|
+
/**
|
|
29
|
+
* How long (ms) to wait for a peer node's in-progress signing before giving up and treating the
|
|
30
|
+
* duty as already handled. This is the cross-node wait/poll timeout, distinct from
|
|
31
|
+
* signerCallTimeoutMs (the hard upper bound on this node's own signer call).
|
|
32
|
+
*/
|
|
33
|
+
peerSigningTimeoutMs: number;
|
|
34
|
+
/**
|
|
35
|
+
* Hard upper bound (ms) on a single signer call made by this node. If the (possibly remote)
|
|
36
|
+
* signer does not return within this time, the call is aborted, the duty lock is released, and
|
|
37
|
+
* signing fails so it can be safely retried. The effective value is clamped to
|
|
38
|
+
* maxStuckDutiesAgeMs / 2 at construction, so a slow signer's lock is always released before
|
|
39
|
+
* stuck-duty cleanup could reclaim it. Defaults to 30_000 when unset.
|
|
40
|
+
*/
|
|
41
|
+
signerCallTimeoutMs?: number;
|
|
27
42
|
/** Maximum age of a stuck duty in ms (defaults to 2x hardcoded Aztec slot duration if not set) */
|
|
28
43
|
maxStuckDutiesAgeMs?: number;
|
|
29
44
|
/** Optional: clean up old duties after this many hours (disabled if not set) */
|
|
30
45
|
cleanupOldDutiesAfterHours?: number;
|
|
31
|
-
}
|
|
46
|
+
} & Pick<L1ContractAddresses, 'rollupAddress'>;
|
|
32
47
|
|
|
33
48
|
export const baseSignerConfigMappings: ConfigMappingsType<BaseSignerConfig> = {
|
|
34
|
-
l1Contracts: {
|
|
35
|
-
description: 'L1 contract addresses (rollup address required)',
|
|
36
|
-
nested: {
|
|
37
|
-
rollupAddress: {
|
|
38
|
-
description: 'The Ethereum address of the rollup contract (must be set programmatically)',
|
|
39
|
-
parseEnv: (val: string) => EthAddress.fromString(val),
|
|
40
|
-
},
|
|
41
|
-
},
|
|
42
|
-
},
|
|
43
49
|
nodeId: {
|
|
44
50
|
env: 'VALIDATOR_HA_NODE_ID',
|
|
45
51
|
description: 'The unique identifier for this node',
|
|
@@ -50,11 +56,16 @@ export const baseSignerConfigMappings: ConfigMappingsType<BaseSignerConfig> = {
|
|
|
50
56
|
description: 'The number of ms to wait between polls when a duty is being signed',
|
|
51
57
|
...numberConfigHelper(100),
|
|
52
58
|
},
|
|
53
|
-
|
|
59
|
+
peerSigningTimeoutMs: {
|
|
54
60
|
env: 'VALIDATOR_HA_SIGNING_TIMEOUT_MS',
|
|
55
|
-
description:
|
|
61
|
+
description: "How long to wait for a peer node's in-progress signing before giving up",
|
|
56
62
|
...numberConfigHelper(3_000),
|
|
57
63
|
},
|
|
64
|
+
signerCallTimeoutMs: {
|
|
65
|
+
env: 'VALIDATOR_SIGNER_CALL_TIMEOUT_MS',
|
|
66
|
+
description: 'Hard upper bound in ms on a single signer call before it is aborted (default 30000)',
|
|
67
|
+
...numberConfigHelper(30_000),
|
|
68
|
+
},
|
|
58
69
|
maxStuckDutiesAgeMs: {
|
|
59
70
|
env: 'VALIDATOR_HA_MAX_STUCK_DUTIES_AGE_MS',
|
|
60
71
|
description: 'The maximum age of a stuck duty in ms (defaults to 2x Aztec slot duration)',
|
|
@@ -65,15 +76,17 @@ export const baseSignerConfigMappings: ConfigMappingsType<BaseSignerConfig> = {
|
|
|
65
76
|
description: 'Optional: clean up old duties after this many hours (disabled if not set)',
|
|
66
77
|
...optionalNumberConfigHelper(),
|
|
67
78
|
},
|
|
79
|
+
...pickL1ContractAddressMappings('rollupAddress'),
|
|
68
80
|
};
|
|
69
81
|
|
|
70
82
|
export const BaseSignerConfigSchema = z.object({
|
|
71
|
-
l1Contracts: z.object({ rollupAddress: z.instanceof(EthAddress) }),
|
|
72
83
|
nodeId: z.string(),
|
|
73
84
|
pollingIntervalMs: z.number().min(0),
|
|
74
|
-
|
|
85
|
+
peerSigningTimeoutMs: z.number().min(0),
|
|
86
|
+
signerCallTimeoutMs: z.number().min(0).optional(),
|
|
75
87
|
maxStuckDutiesAgeMs: z.number().min(0).optional(),
|
|
76
88
|
cleanupOldDutiesAfterHours: z.number().min(0).optional(),
|
|
89
|
+
...pickL1ContractAddressesSchema('rollupAddress'),
|
|
77
90
|
}) satisfies ZodFor<BaseSignerConfig>;
|
|
78
91
|
|
|
79
92
|
/**
|
|
@@ -88,7 +101,7 @@ export interface ValidatorHASignerConfig extends BaseSignerConfig {
|
|
|
88
101
|
* PostgreSQL connection string
|
|
89
102
|
* Format: postgresql://user:password@host:port/database
|
|
90
103
|
*/
|
|
91
|
-
databaseUrl?: string
|
|
104
|
+
databaseUrl?: SecretValue<string>;
|
|
92
105
|
/** Maximum number of clients in the pool (default: 10) */
|
|
93
106
|
poolMaxCount?: number;
|
|
94
107
|
/** Minimum number of clients in the pool (default: 0) */
|
|
@@ -110,6 +123,7 @@ export const validatorHASignerConfigMappings: ConfigMappingsType<ValidatorHASign
|
|
|
110
123
|
env: 'VALIDATOR_HA_DATABASE_URL',
|
|
111
124
|
description:
|
|
112
125
|
'PostgreSQL connection string for validator HA signer (format: postgresql://user:password@host:port/database)',
|
|
126
|
+
...secretStringConfigHelper(),
|
|
113
127
|
},
|
|
114
128
|
poolMaxCount: {
|
|
115
129
|
env: 'VALIDATOR_HA_POOL_MAX',
|
|
@@ -148,7 +162,7 @@ export function getConfigEnvVars(): ValidatorHASignerConfig {
|
|
|
148
162
|
|
|
149
163
|
export const ValidatorHASignerConfigSchema = BaseSignerConfigSchema.extend({
|
|
150
164
|
haSigningEnabled: z.boolean(),
|
|
151
|
-
databaseUrl: z.string().optional(),
|
|
165
|
+
databaseUrl: SecretValue.schema(z.string()).optional(),
|
|
152
166
|
poolMaxCount: z.number().min(0).optional(),
|
|
153
167
|
poolMinCount: z.number().min(0).optional(),
|
|
154
168
|
poolIdleTimeoutMs: z.number().min(0).optional(),
|
package/src/ha-signing/index.ts
CHANGED
|
@@ -16,12 +16,14 @@ export {
|
|
|
16
16
|
} from './local_config.js';
|
|
17
17
|
export {
|
|
18
18
|
DutyType,
|
|
19
|
+
type AttestationSigningContext,
|
|
19
20
|
type BlockProposalSigningContext,
|
|
21
|
+
type CheckpointProposalSigningContext,
|
|
20
22
|
type HAProtectedSigningContext,
|
|
21
23
|
type NoHAProtectionSigningContext,
|
|
22
|
-
type OtherSigningContext,
|
|
23
24
|
type SigningContext,
|
|
24
25
|
type VoteSigningContext,
|
|
25
26
|
getBlockNumberFromSigningContext,
|
|
27
|
+
getCheckpointNumberFromSigningContext,
|
|
26
28
|
isHAProtectedContext,
|
|
27
29
|
} from './types.js';
|
|
@@ -1,4 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
type ConfigMappingsType,
|
|
3
|
+
booleanConfigHelper,
|
|
4
|
+
getConfigFromMappings,
|
|
5
|
+
optionalNumberConfigHelper,
|
|
6
|
+
} from '@aztec/foundation/config';
|
|
2
7
|
import { zodFor } from '@aztec/foundation/schemas';
|
|
3
8
|
import { type DataStoreConfig, dataConfigMappings } from '@aztec/stdlib/kv-store';
|
|
4
9
|
|
|
@@ -17,6 +22,12 @@ export type LocalSignerConfig = BaseSignerConfig &
|
|
|
17
22
|
DataStoreConfig & {
|
|
18
23
|
/** Maximum size of the local signing-protection LMDB store in KB. Overwrites the general dataStoreMapSizeKb. */
|
|
19
24
|
signingProtectionMapSizeKb?: number;
|
|
25
|
+
/**
|
|
26
|
+
* Allow local signing protection to run against an ephemeral store when no data directory is set.
|
|
27
|
+
* Without this, a missing data directory fails startup, since ephemeral protection does not survive
|
|
28
|
+
* restarts. Intended for dev/test networks only; production validators must persist to disk.
|
|
29
|
+
*/
|
|
30
|
+
allowEphemeralSigningProtection?: boolean;
|
|
20
31
|
};
|
|
21
32
|
|
|
22
33
|
export const localSignerConfigMappings: ConfigMappingsType<LocalSignerConfig> = {
|
|
@@ -26,7 +37,14 @@ export const localSignerConfigMappings: ConfigMappingsType<LocalSignerConfig> =
|
|
|
26
37
|
env: 'SIGNING_PROTECTION_MAP_SIZE_KB',
|
|
27
38
|
description:
|
|
28
39
|
'Maximum size of the local signing-protection LMDB store in KB. Overwrites the general dataStoreMapSizeKb.',
|
|
29
|
-
|
|
40
|
+
...optionalNumberConfigHelper(),
|
|
41
|
+
},
|
|
42
|
+
allowEphemeralSigningProtection: {
|
|
43
|
+
env: 'VALIDATOR_ALLOW_EPHEMERAL_SIGNING_PROTECTION',
|
|
44
|
+
description:
|
|
45
|
+
'Allow local signing protection to run against an ephemeral store when no data directory is set (dev/test only). ' +
|
|
46
|
+
'Ephemeral protection does not survive restarts, so this is unsafe for production validators.',
|
|
47
|
+
...booleanConfigHelper(false),
|
|
30
48
|
},
|
|
31
49
|
};
|
|
32
50
|
|
|
@@ -35,6 +53,7 @@ export const LocalSignerConfigSchema = zodFor<LocalSignerConfig>()(
|
|
|
35
53
|
dataDirectory: z.string().optional(),
|
|
36
54
|
dataStoreMapSizeKb: z.number(),
|
|
37
55
|
signingProtectionMapSizeKb: z.number().optional(),
|
|
56
|
+
allowEphemeralSigningProtection: z.boolean().optional(),
|
|
38
57
|
}),
|
|
39
58
|
);
|
|
40
59
|
|
package/src/ha-signing/types.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
BlockNumber,
|
|
3
|
-
|
|
3
|
+
CheckpointNumber,
|
|
4
4
|
type IndexWithinCheckpoint,
|
|
5
5
|
type SlotNumber,
|
|
6
6
|
} from '@aztec/foundation/branded-types';
|
|
@@ -20,40 +20,40 @@ export enum DutyType {
|
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
/**
|
|
23
|
-
*
|
|
23
|
+
* Signing context for block proposals.
|
|
24
|
+
* Includes both the block number and the checkpoint number the block belongs to.
|
|
24
25
|
*/
|
|
25
|
-
interface
|
|
26
|
-
/** Slot number for this duty */
|
|
26
|
+
export interface BlockProposalSigningContext {
|
|
27
27
|
slot: SlotNumber;
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
blockNumber: BlockNumber | CheckpointNumber;
|
|
28
|
+
blockNumber: BlockNumber;
|
|
29
|
+
checkpointNumber: CheckpointNumber;
|
|
30
|
+
/** Block index within checkpoint (0, 1, 2...). Required for block proposals. */
|
|
31
|
+
blockIndexWithinCheckpoint: IndexWithinCheckpoint;
|
|
32
|
+
dutyType: DutyType.BLOCK_PROPOSAL;
|
|
34
33
|
}
|
|
35
34
|
|
|
36
35
|
/**
|
|
37
|
-
* Signing context for
|
|
38
|
-
*
|
|
36
|
+
* Signing context for checkpoint proposals.
|
|
37
|
+
* Includes the checkpoint number being proposed, but not a block number.
|
|
39
38
|
*/
|
|
40
|
-
export interface
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
dutyType: DutyType.
|
|
39
|
+
export interface CheckpointProposalSigningContext {
|
|
40
|
+
slot: SlotNumber;
|
|
41
|
+
checkpointNumber: CheckpointNumber;
|
|
42
|
+
dutyType: DutyType.CHECKPOINT_PROPOSAL;
|
|
44
43
|
}
|
|
45
44
|
|
|
46
45
|
/**
|
|
47
|
-
* Signing context for
|
|
48
|
-
*
|
|
46
|
+
* Signing context for attestation duties (checkpoint attestations).
|
|
47
|
+
* Includes the checkpoint number when available (from proposal validation).
|
|
49
48
|
*/
|
|
50
|
-
export interface
|
|
51
|
-
|
|
49
|
+
export interface AttestationSigningContext {
|
|
50
|
+
slot: SlotNumber;
|
|
51
|
+
checkpointNumber: CheckpointNumber;
|
|
52
|
+
dutyType: DutyType.ATTESTATION | DutyType.ATTESTATIONS_AND_SIGNERS;
|
|
52
53
|
}
|
|
53
54
|
|
|
54
55
|
/**
|
|
55
56
|
* Signing context for governance/slashing votes which only need slot for HA protection.
|
|
56
|
-
* blockNumber is not applicable (internally always 0).
|
|
57
57
|
*/
|
|
58
58
|
export interface VoteSigningContext {
|
|
59
59
|
slot: SlotNumber;
|
|
@@ -69,18 +69,23 @@ export interface NoHAProtectionSigningContext {
|
|
|
69
69
|
}
|
|
70
70
|
|
|
71
71
|
/**
|
|
72
|
-
* Signing contexts that require HA protection (excludes AUTH_REQUEST).
|
|
72
|
+
* Signing contexts that require HA protection (excludes AUTH_REQUEST and TXS).
|
|
73
73
|
* Used by the HA signer's signWithProtection method.
|
|
74
74
|
*/
|
|
75
|
-
export type HAProtectedSigningContext =
|
|
75
|
+
export type HAProtectedSigningContext =
|
|
76
|
+
| BlockProposalSigningContext
|
|
77
|
+
| CheckpointProposalSigningContext
|
|
78
|
+
| AttestationSigningContext
|
|
79
|
+
| VoteSigningContext;
|
|
76
80
|
|
|
77
81
|
/**
|
|
78
82
|
* Context required for slashing protection during signing operations.
|
|
79
83
|
* Uses discriminated union to enforce type safety:
|
|
80
|
-
* - BLOCK_PROPOSAL duties
|
|
81
|
-
* -
|
|
82
|
-
* -
|
|
83
|
-
* -
|
|
84
|
+
* - BLOCK_PROPOSAL duties have blockNumber, checkpointNumber, and blockIndexWithinCheckpoint
|
|
85
|
+
* - CHECKPOINT_PROPOSAL duties have checkpointNumber
|
|
86
|
+
* - ATTESTATION/ATTESTATIONS_AND_SIGNERS duties have only slot
|
|
87
|
+
* - Vote duties have only slot
|
|
88
|
+
* - AUTH_REQUEST and TXS duties don't need HA protection
|
|
84
89
|
*/
|
|
85
90
|
export type SigningContext = HAProtectedSigningContext | NoHAProtectionSigningContext;
|
|
86
91
|
|
|
@@ -94,19 +99,28 @@ export function isHAProtectedContext(context: SigningContext): context is HAProt
|
|
|
94
99
|
|
|
95
100
|
/**
|
|
96
101
|
* Gets the block number from a signing context.
|
|
97
|
-
*
|
|
98
|
-
* - Other duties: returns the blockNumber from the context
|
|
102
|
+
* Only BLOCK_PROPOSAL duties carry a block number; all others return BlockNumber(0).
|
|
99
103
|
*/
|
|
100
|
-
export function getBlockNumberFromSigningContext(context: HAProtectedSigningContext): BlockNumber
|
|
101
|
-
|
|
104
|
+
export function getBlockNumberFromSigningContext(context: HAProtectedSigningContext): BlockNumber {
|
|
105
|
+
if (context.dutyType === DutyType.BLOCK_PROPOSAL) {
|
|
106
|
+
return context.blockNumber;
|
|
107
|
+
}
|
|
108
|
+
return BlockNumber(0);
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* Gets the checkpoint number from a signing context.
|
|
113
|
+
* BLOCK_PROPOSAL, CHECKPOINT_PROPOSAL, ATTESTATION, and ATTESTATIONS_AND_SIGNERS duties carry a checkpoint number;
|
|
114
|
+
* vote duties return CheckpointNumber(0).
|
|
115
|
+
*/
|
|
116
|
+
export function getCheckpointNumberFromSigningContext(context: HAProtectedSigningContext): CheckpointNumber {
|
|
102
117
|
if (
|
|
103
118
|
context.dutyType === DutyType.BLOCK_PROPOSAL ||
|
|
104
119
|
context.dutyType === DutyType.CHECKPOINT_PROPOSAL ||
|
|
105
120
|
context.dutyType === DutyType.ATTESTATION ||
|
|
106
121
|
context.dutyType === DutyType.ATTESTATIONS_AND_SIGNERS
|
|
107
122
|
) {
|
|
108
|
-
return context.
|
|
123
|
+
return context.checkpointNumber;
|
|
109
124
|
}
|
|
110
|
-
|
|
111
|
-
return BlockNumber(0);
|
|
125
|
+
return CheckpointNumber(0);
|
|
112
126
|
}
|
package/src/hash/hash.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DomainSeparator
|
|
1
|
+
import { DomainSeparator } from '@aztec/constants';
|
|
2
2
|
import { poseidon2Hash, poseidon2HashWithSeparator } from '@aztec/foundation/crypto/poseidon';
|
|
3
3
|
import { sha256ToField } from '@aztec/foundation/crypto/sha256';
|
|
4
4
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
@@ -6,6 +6,21 @@ import type { EthAddress } from '@aztec/foundation/eth-address';
|
|
|
6
6
|
|
|
7
7
|
import { AztecAddress } from '../aztec-address/index.js';
|
|
8
8
|
|
|
9
|
+
/** Computes a Poseidon2 merkle tree internal node hash for append-only trees (note-hash, L1->L2, archive). */
|
|
10
|
+
export function computeMerkleHash(left: Fr, right: Fr): Promise<Fr> {
|
|
11
|
+
return poseidon2HashWithSeparator([left, right], DomainSeparator.MERKLE_HASH);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
/** Merkle-node hasher for the nullifier tree's sibling paths. */
|
|
15
|
+
export function computeNullifierMerkleHash(left: Fr, right: Fr): Promise<Fr> {
|
|
16
|
+
return poseidon2HashWithSeparator([left, right], DomainSeparator.NULLIFIER_MERKLE);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/** Merkle-node hasher for the public-data tree's sibling paths. */
|
|
20
|
+
export function computePublicDataMerkleHash(left: Fr, right: Fr): Promise<Fr> {
|
|
21
|
+
return poseidon2HashWithSeparator([left, right], DomainSeparator.PUBLIC_DATA_MERKLE);
|
|
22
|
+
}
|
|
23
|
+
|
|
9
24
|
/**
|
|
10
25
|
* Computes a hash of a given verification key.
|
|
11
26
|
* @param keyAsFields - The verification key as fields.
|
|
@@ -95,7 +110,7 @@ export async function computeSiloedPublicInitializationNullifier(contract: Aztec
|
|
|
95
110
|
* @dev Must match the implementation in noir-protocol-circuits/crates/types/src/hash.nr > compute_protocol_nullifier
|
|
96
111
|
*/
|
|
97
112
|
export function computeProtocolNullifier(txRequestHash: Fr): Promise<Fr> {
|
|
98
|
-
return siloNullifier(AztecAddress.
|
|
113
|
+
return siloNullifier(AztecAddress.NULL_MSG_SENDER, txRequestHash);
|
|
99
114
|
}
|
|
100
115
|
|
|
101
116
|
/** Domain-separates a raw log tag with the given domain separator. */
|
|
@@ -103,6 +118,18 @@ export function computeLogTag(rawTag: number | bigint | boolean | Fr | Buffer, d
|
|
|
103
118
|
return poseidon2HashWithSeparator([new Fr(rawTag)], domSep);
|
|
104
119
|
}
|
|
105
120
|
|
|
121
|
+
/**
|
|
122
|
+
* Computes the commitment of a private event from its preimage.
|
|
123
|
+
* @param randomness - Random value emitted alongside the event to prevent preimage brute-forcing.
|
|
124
|
+
* @param eventSelector - Event selector as an Fr.
|
|
125
|
+
* @param content - Serialized event content.
|
|
126
|
+
*
|
|
127
|
+
* @dev Must match the implementation in aztec-nr/aztec/src/event/event_interface.nr > compute_private_serialized_event_commitment
|
|
128
|
+
*/
|
|
129
|
+
export function computePrivateEventCommitment(randomness: Fr, eventSelector: Fr, content: Fr[]): Promise<Fr> {
|
|
130
|
+
return poseidon2HashWithSeparator([randomness, eventSelector, ...content], DomainSeparator.EVENT_COMMITMENT);
|
|
131
|
+
}
|
|
132
|
+
|
|
106
133
|
export function computeSiloedPrivateLogFirstField(contract: AztecAddress, field: Fr): Promise<Fr> {
|
|
107
134
|
return poseidon2HashWithSeparator([contract, field], DomainSeparator.PRIVATE_LOG_FIRST_FIELD);
|
|
108
135
|
}
|
|
@@ -161,14 +188,6 @@ export function computeSecretHash(secret: Fr): Promise<Fr> {
|
|
|
161
188
|
return poseidon2HashWithSeparator([secret], DomainSeparator.SECRET_HASH);
|
|
162
189
|
}
|
|
163
190
|
|
|
164
|
-
export async function computeL1ToL2MessageNullifier(contract: AztecAddress, messageHash: Fr, secret: Fr) {
|
|
165
|
-
const innerMessageNullifier = await poseidon2HashWithSeparator(
|
|
166
|
-
[messageHash, secret],
|
|
167
|
-
DomainSeparator.MESSAGE_NULLIFIER,
|
|
168
|
-
);
|
|
169
|
-
return siloNullifier(contract, innerMessageNullifier);
|
|
170
|
-
}
|
|
171
|
-
|
|
172
191
|
/**
|
|
173
192
|
* Calculates a siloed hash of a scoped l2 to l1 message.
|
|
174
193
|
* @returns Fr containing 248 bits of information of sha256 hash.
|