@aztec/stdlib 0.0.1-commit.993d240 → 0.0.1-commit.9a89641
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 +32 -7
- package/dest/abi/abi.d.ts.map +1 -1
- package/dest/abi/abi.js +11 -2
- 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 +1 -1
- package/dest/abi/contract_artifact.d.ts.map +1 -1
- package/dest/abi/contract_artifact.js +35 -19
- package/dest/abi/decoder.d.ts +12 -5
- package/dest/abi/decoder.d.ts.map +1 -1
- package/dest/abi/decoder.js +18 -21
- package/dest/abi/function_call.d.ts +17 -8
- package/dest/abi/function_call.d.ts.map +1 -1
- package/dest/abi/function_call.js +28 -9
- package/dest/avm/avm.d.ts +212 -211
- package/dest/avm/avm.d.ts.map +1 -1
- package/dest/avm/avm.js +4 -2
- package/dest/avm/index.d.ts +1 -6
- package/dest/avm/index.d.ts.map +1 -1
- package/dest/avm/index.js +0 -5
- package/dest/aztec-address/index.d.ts +35 -5
- package/dest/aztec-address/index.d.ts.map +1 -1
- package/dest/aztec-address/index.js +32 -8
- package/dest/block/attestation_info.d.ts +1 -1
- package/dest/block/attestation_info.d.ts.map +1 -1
- package/dest/block/attestation_info.js +7 -4
- package/dest/block/l2_block_source.d.ts +57 -28
- package/dest/block/l2_block_source.d.ts.map +1 -1
- package/dest/block/l2_block_source.js +20 -2
- 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 -11
- 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 +24 -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 +175 -151
- package/dest/block/l2_block_stream/l2_tips_memory_store.d.ts +6 -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 +8 -32
- package/dest/block/l2_block_stream/l2_tips_store_base.d.ts +17 -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 +70 -58
- package/dest/block/proposal/attestations_and_signers.d.ts +19 -1
- package/dest/block/proposal/attestations_and_signers.d.ts.map +1 -1
- package/dest/block/proposal/attestations_and_signers.js +47 -7
- 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 +301 -37
- 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.js +2 -2
- package/dest/checkpoint/index.d.ts +2 -1
- package/dest/checkpoint/index.d.ts.map +1 -1
- package/dest/checkpoint/index.js +1 -0
- package/dest/checkpoint/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/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/node-rpc-config.d.ts +1 -1
- package/dest/config/node-rpc-config.d.ts.map +1 -1
- package/dest/config/node-rpc-config.js +1 -1
- package/dest/config/sequencer-config.d.ts +4 -2
- package/dest/config/sequencer-config.d.ts.map +1 -1
- package/dest/config/sequencer-config.js +22 -3
- package/dest/contract/artifact_hash.d.ts +2 -2
- package/dest/contract/artifact_hash.d.ts.map +1 -1
- package/dest/contract/artifact_hash.js +10 -2
- package/dest/contract/contract_address.d.ts +5 -4
- package/dest/contract/contract_address.d.ts.map +1 -1
- package/dest/contract/contract_class.d.ts +1 -1
- package/dest/contract/contract_class.d.ts.map +1 -1
- package/dest/contract/contract_class.js +3 -2
- package/dest/contract/contract_instance.d.ts +16 -2
- package/dest/contract/contract_instance.d.ts.map +1 -1
- package/dest/contract/contract_instance.js +45 -0
- package/dest/contract/index.d.ts +1 -2
- package/dest/contract/index.d.ts.map +1 -1
- package/dest/contract/index.js +0 -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 +71 -10
- package/dest/contract/interfaces/contract_instance.d.ts.map +1 -1
- package/dest/contract/interfaces/contract_instance.js +7 -2
- 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/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/database-version/version_manager.d.ts +18 -4
- package/dest/database-version/version_manager.d.ts.map +1 -1
- package/dest/database-version/version_manager.js +76 -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/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/gas_settings.d.ts +7 -13
- package/dest/gas/gas_settings.d.ts.map +1 -1
- package/dest/gas/gas_settings.js +9 -16
- package/dest/gas/index.d.ts +2 -1
- package/dest/gas/index.d.ts.map +1 -1
- package/dest/gas/index.js +1 -0
- package/dest/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 +19 -5
- package/dest/ha-signing/config.d.ts.map +1 -1
- package/dest/ha-signing/config.js +9 -3
- package/dest/ha-signing/local_config.d.ts +10 -2
- package/dest/ha-signing/local_config.d.ts.map +1 -1
- package/dest/ha-signing/local_config.js +8 -2
- package/dest/hash/hash.d.ts +1 -2
- package/dest/hash/hash.d.ts.map +1 -1
- package/dest/hash/hash.js +0 -7
- package/dest/interfaces/api_limit.d.ts +6 -1
- package/dest/interfaces/api_limit.d.ts.map +1 -1
- package/dest/interfaces/api_limit.js +3 -0
- package/dest/interfaces/archiver.d.ts +12 -7
- package/dest/interfaces/archiver.d.ts.map +1 -1
- package/dest/interfaces/archiver.js +13 -6
- package/dest/interfaces/aztec-node-admin.d.ts +25 -17
- package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
- package/dest/interfaces/aztec-node-admin.js +1 -1
- package/dest/interfaces/aztec-node-debug.d.ts +40 -2
- package/dest/interfaces/aztec-node-debug.d.ts.map +1 -1
- package/dest/interfaces/aztec-node-debug.js +29 -1
- package/dest/interfaces/aztec-node.d.ts +100 -33
- package/dest/interfaces/aztec-node.d.ts.map +1 -1
- package/dest/interfaces/aztec-node.js +72 -23
- package/dest/interfaces/block-builder.d.ts +9 -2
- package/dest/interfaces/block-builder.d.ts.map +1 -1
- package/dest/interfaces/block_response.d.ts +5 -5
- package/dest/interfaces/block_response.d.ts.map +1 -1
- package/dest/interfaces/chain_tips.d.ts +8 -47
- package/dest/interfaces/chain_tips.d.ts.map +1 -1
- package/dest/interfaces/chain_tips.js +1 -6
- package/dest/interfaces/checkpoint_parameter.d.ts +3 -3
- package/dest/interfaces/checkpoint_parameter.d.ts.map +1 -1
- package/dest/interfaces/checkpoint_parameter.js +3 -3
- package/dest/interfaces/checkpoint_response.d.ts +5 -5
- package/dest/interfaces/checkpoint_response.d.ts.map +1 -1
- package/dest/interfaces/client.d.ts +2 -1
- package/dest/interfaces/client.d.ts.map +1 -1
- package/dest/interfaces/configs.d.ts +33 -6
- package/dest/interfaces/configs.d.ts.map +1 -1
- package/dest/interfaces/configs.js +6 -1
- 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/merkle_tree_operations.d.ts +8 -3
- package/dest/interfaces/merkle_tree_operations.d.ts.map +1 -1
- package/dest/interfaces/p2p.d.ts +38 -9
- package/dest/interfaces/p2p.d.ts.map +1 -1
- package/dest/interfaces/p2p.js +14 -2
- package/dest/interfaces/private_kernel_prover.d.ts +71 -12
- package/dest/interfaces/private_kernel_prover.d.ts.map +1 -1
- package/dest/interfaces/prover-client.d.ts +2 -3
- package/dest/interfaces/prover-client.d.ts.map +1 -1
- 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 +24 -17
- package/dest/interfaces/proving-job.d.ts +17 -4
- package/dest/interfaces/proving-job.d.ts.map +1 -1
- package/dest/interfaces/proving-job.js +13 -4
- package/dest/interfaces/server.d.ts +1 -3
- package/dest/interfaces/server.d.ts.map +1 -1
- package/dest/interfaces/server.js +0 -2
- package/dest/interfaces/server_circuit_prover.d.ts +3 -3
- package/dest/interfaces/server_circuit_prover.d.ts.map +1 -1
- package/dest/interfaces/tx_provider.d.ts +5 -1
- package/dest/interfaces/tx_provider.d.ts.map +1 -1
- package/dest/interfaces/validator.d.ts +15 -4
- package/dest/interfaces/validator.d.ts.map +1 -1
- package/dest/interfaces/validator.js +3 -1
- package/dest/interfaces/world_state.d.ts +14 -1
- 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/index.d.ts +1 -2
- package/dest/kernel/hints/index.d.ts.map +1 -1
- package/dest/kernel/hints/index.js +0 -1
- 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 +1 -1
- package/dest/kernel/log_hash.d.ts.map +1 -1
- package/dest/kernel/log_hash.js +2 -2
- package/dest/kernel/note_hash.js +1 -1
- package/dest/kernel/nullifier.js +1 -1
- package/dest/kernel/private_circuit_public_inputs.d.ts +13 -3
- 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 +7 -9
- package/dest/kernel/private_kernel_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_circuit_public_inputs.js +10 -7
- package/dest/kernel/private_kernel_init_2_circuit_private_inputs.d.ts +2 -3
- package/dest/kernel/private_kernel_init_2_circuit_private_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_init_2_circuit_private_inputs.js +3 -5
- package/dest/kernel/private_kernel_init_3_circuit_private_inputs.d.ts +2 -3
- package/dest/kernel/private_kernel_init_3_circuit_private_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_init_3_circuit_private_inputs.js +3 -5
- package/dest/kernel/private_kernel_init_4_circuit_private_inputs.d.ts +24 -0
- package/dest/kernel/private_kernel_init_4_circuit_private_inputs.d.ts.map +1 -0
- package/dest/kernel/private_kernel_init_4_circuit_private_inputs.js +37 -0
- package/dest/kernel/private_kernel_init_5_circuit_private_inputs.d.ts +25 -0
- package/dest/kernel/private_kernel_init_5_circuit_private_inputs.d.ts.map +1 -0
- package/dest/kernel/private_kernel_init_5_circuit_private_inputs.js +39 -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_4_circuit_private_inputs.d.ts +18 -0
- package/dest/kernel/private_kernel_inner_4_circuit_private_inputs.d.ts.map +1 -0
- package/dest/kernel/private_kernel_inner_4_circuit_private_inputs.js +27 -0
- package/dest/kernel/private_kernel_inner_5_circuit_private_inputs.d.ts +19 -0
- package/dest/kernel/private_kernel_inner_5_circuit_private_inputs.d.ts.map +1 -0
- package/dest/kernel/private_kernel_inner_5_circuit_private_inputs.js +29 -0
- package/dest/kernel/private_kernel_prover_output.d.ts +4 -1
- package/dest/kernel/private_kernel_prover_output.d.ts.map +1 -1
- package/dest/kernel/private_kernel_prover_output.js +4 -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_simulated_output.d.ts +1 -7
- package/dest/kernel/private_kernel_simulated_output.d.ts.map +1 -1
- package/dest/kernel/private_kernel_simulated_output.js +2 -1
- 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/utils/index.d.ts +1 -2
- package/dest/kernel/utils/index.d.ts.map +1 -1
- package/dest/kernel/utils/index.js +0 -1
- package/dest/keys/derivation.d.ts +41 -6
- package/dest/keys/derivation.d.ts.map +1 -1
- package/dest/keys/derivation.js +49 -26
- package/dest/logs/app_tagging_secret.d.ts +30 -7
- package/dest/logs/app_tagging_secret.d.ts.map +1 -1
- package/dest/logs/app_tagging_secret.js +46 -39
- package/dest/logs/app_tagging_secret_kind.d.ts +2 -1
- package/dest/logs/app_tagging_secret_kind.d.ts.map +1 -1
- package/dest/logs/app_tagging_secret_kind.js +13 -0
- package/dest/logs/contract_class_log.d.ts +1 -2
- package/dest/logs/contract_class_log.d.ts.map +1 -1
- package/dest/logs/contract_class_log.js +0 -4
- package/dest/logs/log_result.d.ts +3 -3
- package/dest/logs/log_result.d.ts.map +1 -1
- package/dest/logs/logs_query.d.ts +2 -2
- package/dest/logs/message_context.d.ts +4 -13
- package/dest/logs/message_context.d.ts.map +1 -1
- package/dest/logs/message_context.js +1 -62
- package/dest/logs/pending_tagged_log.d.ts +6 -8
- package/dest/logs/pending_tagged_log.d.ts.map +1 -1
- package/dest/logs/pending_tagged_log.js +1 -31
- 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/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 +11 -4
- package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -1
- package/dest/messaging/l2_to_l1_membership.js +22 -7
- package/dest/noir/index.d.ts +3 -3
- package/dest/noir/index.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/checkpoint_attestation.d.ts +10 -1
- package/dest/p2p/checkpoint_attestation.d.ts.map +1 -1
- package/dest/p2p/checkpoint_attestation.js +10 -0
- package/dest/p2p/checkpoint_proposal.d.ts +2 -1
- package/dest/p2p/checkpoint_proposal.d.ts.map +1 -1
- package/dest/p2p/consensus_payload.d.ts +2 -1
- package/dest/p2p/consensus_payload.d.ts.map +1 -1
- package/dest/p2p/index.d.ts +1 -2
- package/dest/p2p/index.d.ts.map +1 -1
- package/dest/p2p/index.js +0 -1
- package/dest/p2p/signature_utils.d.ts +10 -1
- package/dest/p2p/signature_utils.d.ts.map +1 -1
- package/dest/p2p/signature_utils.js +9 -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/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/stats/stats.d.ts +2 -2
- package/dest/stats/stats.d.ts.map +1 -1
- package/dest/tests/factories.d.ts +1 -27
- package/dest/tests/factories.d.ts.map +1 -1
- package/dest/tests/factories.js +10 -45
- package/dest/tests/mocks.d.ts +1 -1
- package/dest/tests/mocks.d.ts.map +1 -1
- package/dest/tests/mocks.js +3 -2
- 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 -87
- package/dest/timetable/index.d.ts.map +1 -1
- package/dest/timetable/index.js +4 -243
- 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/nullifier_membership_witness.d.ts +5 -8
- package/dest/trees/nullifier_membership_witness.d.ts.map +1 -1
- package/dest/trees/nullifier_membership_witness.js +0 -9
- package/dest/trees/public_data_witness.d.ts +7 -17
- package/dest/trees/public_data_witness.d.ts.map +1 -1
- package/dest/trees/public_data_witness.js +0 -27
- 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 +2 -2
- package/dest/tx/fee_provider.d.ts.map +1 -1
- package/dest/tx/global_variable_builder.d.ts +2 -12
- package/dest/tx/global_variable_builder.d.ts.map +1 -1
- package/dest/tx/global_variables.js +2 -2
- package/dest/tx/hashed_values.d.ts +7 -1
- package/dest/tx/hashed_values.d.ts.map +1 -1
- package/dest/tx/hashed_values.js +9 -1
- 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 -2
- package/dest/tx/indexed_tx_effect.d.ts.map +1 -1
- package/dest/tx/indexed_tx_effect.js +8 -4
- package/dest/tx/offchain_effect.js +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 +1 -1
- package/dest/tx/profiling.d.ts.map +1 -1
- package/dest/tx/profiling.js +2 -0
- package/dest/tx/simulated_tx.d.ts +10 -6
- package/dest/tx/simulated_tx.d.ts.map +1 -1
- package/dest/tx/simulated_tx.js +7 -2
- package/dest/tx/tx.d.ts +23 -1
- package/dest/tx/tx.d.ts.map +1 -1
- package/dest/tx/tx.js +32 -3
- package/dest/tx/tx_receipt.d.ts +143 -60
- package/dest/tx/tx_receipt.d.ts.map +1 -1
- package/dest/tx/tx_receipt.js +141 -45
- 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/validators/errors.d.ts +16 -1
- package/dest/validators/errors.d.ts.map +1 -1
- package/dest/validators/errors.js +12 -0
- package/dest/world-state/genesis_data.d.ts +9 -1
- package/dest/world-state/genesis_data.d.ts.map +1 -1
- package/dest/world-state/genesis_data.js +1 -0
- package/dest/world-state/world_state_revision.d.ts +1 -18
- package/dest/world-state/world_state_revision.d.ts.map +1 -1
- package/dest/world-state/world_state_revision.js +0 -20
- package/package.json +8 -8
- package/src/abi/abi.ts +32 -4
- package/src/abi/buffer.ts +13 -1
- package/src/abi/contract_artifact.ts +40 -16
- package/src/abi/decoder.ts +20 -24
- package/src/abi/function_call.ts +19 -7
- package/src/avm/avm.ts +5 -2
- package/src/avm/index.ts +0 -5
- package/src/aztec-address/index.ts +36 -6
- package/src/block/attestation_info.ts +7 -2
- package/src/block/l2_block_source.ts +95 -19
- 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 +98 -10
- package/src/block/l2_block_stream/l2_block_stream.ts +255 -177
- package/src/block/l2_block_stream/l2_tips_memory_store.ts +12 -41
- package/src/block/l2_block_stream/l2_tips_store_base.ts +84 -93
- package/src/block/proposal/attestations_and_signers.ts +53 -7
- package/src/block/test/l2_tips_store_test_suite.ts +275 -28
- package/src/block/validate_block_result.ts +48 -2
- package/src/checkpoint/checkpoint.ts +2 -2
- package/src/checkpoint/index.ts +1 -0
- package/src/checkpoint/simulation_overrides.ts +171 -0
- package/src/checkpoint/validate.ts +16 -6
- package/src/config/index.ts +1 -1
- package/src/config/network-consensus-config.ts +291 -0
- package/src/config/node-rpc-config.ts +2 -1
- package/src/config/sequencer-config.ts +36 -5
- package/src/contract/artifact_hash.ts +15 -3
- package/src/contract/contract_address.ts +4 -3
- package/src/contract/contract_class.ts +3 -2
- package/src/contract/contract_instance.ts +62 -1
- package/src/contract/index.ts +0 -1
- package/src/contract/interfaces/contract_data_source.ts +2 -4
- package/src/contract/interfaces/contract_instance.ts +26 -8
- package/src/contract/interfaces/node-info.ts +11 -0
- package/src/contract/partial_address.ts +8 -2
- package/src/database-version/version_manager.ts +96 -6
- package/src/deserialization/index.ts +35 -2
- 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 +199 -35
- package/src/gas/gas_settings.ts +11 -21
- package/src/gas/index.ts +1 -0
- package/src/gas/tx_gas_limits.ts +123 -0
- package/src/ha-signing/config.ts +23 -5
- package/src/ha-signing/local_config.ts +20 -1
- package/src/hash/hash.ts +0 -8
- package/src/interfaces/api_limit.ts +5 -0
- package/src/interfaces/archiver.ts +22 -9
- package/src/interfaces/aztec-node-admin.ts +1 -1
- package/src/interfaces/aztec-node-debug.ts +54 -2
- package/src/interfaces/aztec-node.ts +175 -49
- package/src/interfaces/block-builder.ts +8 -1
- package/src/interfaces/block_response.ts +4 -4
- package/src/interfaces/chain_tips.ts +8 -16
- package/src/interfaces/checkpoint_parameter.ts +3 -3
- package/src/interfaces/checkpoint_response.ts +4 -4
- package/src/interfaces/client.ts +1 -0
- package/src/interfaces/configs.ts +33 -6
- package/src/interfaces/get_tx_by_hash_options.ts +14 -0
- package/src/interfaces/merkle_tree_operations.ts +8 -2
- package/src/interfaces/p2p.ts +29 -9
- package/src/interfaces/private_kernel_prover.ts +104 -13
- package/src/interfaces/prover-client.ts +1 -3
- package/src/interfaces/prover-node.ts +32 -17
- package/src/interfaces/proving-job.ts +15 -3
- package/src/interfaces/server.ts +0 -2
- package/src/interfaces/server_circuit_prover.ts +2 -2
- package/src/interfaces/tx_provider.ts +4 -0
- package/src/interfaces/validator.ts +11 -0
- package/src/interfaces/world_state.ts +14 -0
- package/src/kernel/hints/find_private_kernel_reset_dimensions.ts +22 -112
- package/src/kernel/hints/index.ts +0 -1
- package/src/kernel/hints/read_request.ts +1 -1
- package/src/kernel/index.ts +5 -1
- package/src/kernel/log_hash.ts +5 -2
- 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 -7
- package/src/kernel/private_kernel_init_2_circuit_private_inputs.ts +0 -3
- package/src/kernel/private_kernel_init_3_circuit_private_inputs.ts +0 -3
- package/src/kernel/private_kernel_init_4_circuit_private_inputs.ts +52 -0
- package/src/kernel/private_kernel_init_5_circuit_private_inputs.ts +55 -0
- package/src/kernel/private_kernel_init_circuit_private_inputs.ts +0 -6
- package/src/kernel/private_kernel_inner_4_circuit_private_inputs.ts +39 -0
- package/src/kernel/private_kernel_inner_5_circuit_private_inputs.ts +42 -0
- package/src/kernel/private_kernel_prover_output.ts +4 -0
- package/src/kernel/private_kernel_reset_dimensions.ts +16 -6
- package/src/kernel/private_kernel_reset_tail_circuit_private_inputs.ts +69 -0
- package/src/kernel/private_kernel_simulated_output.ts +0 -7
- package/src/kernel/private_log_data.ts +4 -1
- package/src/kernel/utils/index.ts +0 -1
- package/src/keys/derivation.ts +69 -24
- package/src/logs/app_tagging_secret.ts +62 -39
- package/src/logs/app_tagging_secret_kind.ts +15 -0
- package/src/logs/contract_class_log.ts +0 -9
- package/src/logs/log_result.ts +2 -2
- package/src/logs/logs_query.ts +2 -2
- package/src/logs/message_context.ts +6 -60
- package/src/logs/pending_tagged_log.ts +6 -33
- package/src/logs/shared_secret_derivation.ts +47 -14
- package/src/messaging/l1_to_l2_message.ts +51 -13
- package/src/messaging/l2_to_l1_membership.ts +28 -11
- package/src/noir/index.ts +2 -1
- package/src/p2p/attestation_utils.ts +8 -1
- package/src/p2p/checkpoint_attestation.ts +12 -0
- package/src/p2p/index.ts +0 -1
- package/src/p2p/signature_utils.ts +9 -0
- package/src/rollup/avm_proof_data.ts +2 -2
- package/src/rollup/checkpoint_header.ts +16 -2
- package/src/stats/stats.ts +6 -2
- package/src/tests/factories.ts +13 -51
- package/src/tests/mocks.ts +7 -2
- 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 -361
- package/src/timetable/proposer_timetable.ts +190 -0
- package/src/timetable/timetable-example.svg +108 -0
- package/src/trees/nullifier_membership_witness.ts +0 -11
- package/src/trees/public_data_witness.ts +0 -31
- package/src/tx/execution_payload.ts +2 -1
- package/src/tx/fee_provider.ts +1 -1
- package/src/tx/global_variable_builder.ts +1 -17
- package/src/tx/global_variables.ts +2 -2
- package/src/tx/hashed_values.ts +11 -6
- package/src/tx/index.ts +0 -1
- package/src/tx/indexed_tx_effect.ts +17 -4
- package/src/tx/offchain_effect.ts +1 -1
- package/src/tx/private_tx_constant_data.ts +25 -2
- package/src/tx/profiling.ts +2 -0
- package/src/tx/simulated_tx.ts +13 -2
- package/src/tx/tx.ts +46 -3
- package/src/tx/tx_receipt.ts +263 -71
- package/src/tx/validator/error_texts.ts +2 -1
- package/src/validators/errors.ts +17 -0
- package/src/world-state/genesis_data.ts +10 -0
- package/src/world-state/world_state_revision.ts +0 -33
- package/dest/avm/contract_storage_read.d.ts +0 -58
- package/dest/avm/contract_storage_read.d.ts.map +0 -1
- package/dest/avm/contract_storage_read.js +0 -65
- package/dest/avm/contract_storage_update_request.d.ts +0 -65
- package/dest/avm/contract_storage_update_request.d.ts.map +0 -1
- package/dest/avm/contract_storage_update_request.js +0 -80
- package/dest/avm/public_call_stack_item_compressed.d.ts +0 -43
- package/dest/avm/public_call_stack_item_compressed.d.ts.map +0 -1
- package/dest/avm/public_call_stack_item_compressed.js +0 -70
- package/dest/avm/public_data_update_request.d.ts +0 -62
- package/dest/avm/public_data_update_request.d.ts.map +0 -1
- package/dest/avm/public_data_update_request.js +0 -67
- package/dest/avm/public_inner_call_request.d.ts +0 -50
- package/dest/avm/public_inner_call_request.d.ts.map +0 -1
- package/dest/avm/public_inner_call_request.js +0 -74
- package/dest/config/pipelining-config.d.ts +0 -15
- package/dest/config/pipelining-config.d.ts.map +0 -1
- package/dest/config/pipelining-config.js +0 -18
- package/dest/contract/deployment_info.d.ts +0 -24
- package/dest/contract/deployment_info.d.ts.map +0 -1
- package/dest/contract/deployment_info.js +0 -3
- 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/prover-coordination.d.ts +0 -15
- package/dest/interfaces/prover-coordination.d.ts.map +0 -1
- package/dest/interfaces/prover-coordination.js +0 -1
- package/dest/kernel/hints/tree_leaf_read_request.d.ts +0 -14
- package/dest/kernel/hints/tree_leaf_read_request.d.ts.map +0 -1
- package/dest/kernel/hints/tree_leaf_read_request.js +0 -33
- 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/kernel/utils/optional_number.d.ts +0 -31
- package/dest/kernel/utils/optional_number.d.ts.map +0 -1
- package/dest/kernel/utils/optional_number.js +0 -42
- package/dest/p2p/interface.d.ts +0 -5
- package/dest/p2p/interface.d.ts.map +0 -1
- package/dest/p2p/interface.js +0 -1
- package/dest/tx/validator/empty_validator.d.ts +0 -5
- package/dest/tx/validator/empty_validator.d.ts.map +0 -1
- package/dest/tx/validator/empty_validator.js +0 -7
- package/src/avm/contract_storage_read.ts +0 -77
- package/src/avm/contract_storage_update_request.ts +0 -93
- package/src/avm/public_call_stack_item_compressed.ts +0 -113
- package/src/avm/public_data_update_request.ts +0 -106
- package/src/avm/public_inner_call_request.ts +0 -85
- package/src/config/pipelining-config.ts +0 -31
- package/src/contract/deployment_info.ts +0 -25
- package/src/interfaces/epoch-prover.ts +0 -72
- package/src/interfaces/prover-coordination.ts +0 -17
- package/src/kernel/hints/tree_leaf_read_request.ts +0 -35
- package/src/kernel/private_kernel_tail_circuit_private_inputs.ts +0 -58
- package/src/kernel/utils/optional_number.ts +0 -50
- package/src/p2p/interface.ts +0 -4
- package/src/tx/validator/empty_validator.ts +0 -7
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
2
|
+
|
|
3
|
+
import { PrivateCallData } from './private_call_data.js';
|
|
4
|
+
import { PrivateKernelData } from './private_kernel_data.js';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Input to the batched private kernel inner circuit, which processes four app calls in a single
|
|
8
|
+
* iteration following a previous kernel.
|
|
9
|
+
*/
|
|
10
|
+
export class PrivateKernelInner4CircuitPrivateInputs {
|
|
11
|
+
constructor(
|
|
12
|
+
public previousKernel: PrivateKernelData,
|
|
13
|
+
public privateCall0: PrivateCallData,
|
|
14
|
+
public privateCall1: PrivateCallData,
|
|
15
|
+
public privateCall2: PrivateCallData,
|
|
16
|
+
public privateCall3: PrivateCallData,
|
|
17
|
+
) {}
|
|
18
|
+
|
|
19
|
+
toBuffer() {
|
|
20
|
+
return serializeToBuffer(
|
|
21
|
+
this.previousKernel,
|
|
22
|
+
this.privateCall0,
|
|
23
|
+
this.privateCall1,
|
|
24
|
+
this.privateCall2,
|
|
25
|
+
this.privateCall3,
|
|
26
|
+
);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
static fromBuffer(buffer: Buffer | BufferReader): PrivateKernelInner4CircuitPrivateInputs {
|
|
30
|
+
const reader = BufferReader.asReader(buffer);
|
|
31
|
+
return new PrivateKernelInner4CircuitPrivateInputs(
|
|
32
|
+
reader.readObject(PrivateKernelData),
|
|
33
|
+
reader.readObject(PrivateCallData),
|
|
34
|
+
reader.readObject(PrivateCallData),
|
|
35
|
+
reader.readObject(PrivateCallData),
|
|
36
|
+
reader.readObject(PrivateCallData),
|
|
37
|
+
);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
2
|
+
|
|
3
|
+
import { PrivateCallData } from './private_call_data.js';
|
|
4
|
+
import { PrivateKernelData } from './private_kernel_data.js';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Input to the batched private kernel inner circuit, which processes five app calls in a single
|
|
8
|
+
* iteration following a previous kernel.
|
|
9
|
+
*/
|
|
10
|
+
export class PrivateKernelInner5CircuitPrivateInputs {
|
|
11
|
+
constructor(
|
|
12
|
+
public previousKernel: PrivateKernelData,
|
|
13
|
+
public privateCall0: PrivateCallData,
|
|
14
|
+
public privateCall1: PrivateCallData,
|
|
15
|
+
public privateCall2: PrivateCallData,
|
|
16
|
+
public privateCall3: PrivateCallData,
|
|
17
|
+
public privateCall4: PrivateCallData,
|
|
18
|
+
) {}
|
|
19
|
+
|
|
20
|
+
toBuffer() {
|
|
21
|
+
return serializeToBuffer(
|
|
22
|
+
this.previousKernel,
|
|
23
|
+
this.privateCall0,
|
|
24
|
+
this.privateCall1,
|
|
25
|
+
this.privateCall2,
|
|
26
|
+
this.privateCall3,
|
|
27
|
+
this.privateCall4,
|
|
28
|
+
);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
static fromBuffer(buffer: Buffer | BufferReader): PrivateKernelInner5CircuitPrivateInputs {
|
|
32
|
+
const reader = BufferReader.asReader(buffer);
|
|
33
|
+
return new PrivateKernelInner5CircuitPrivateInputs(
|
|
34
|
+
reader.readObject(PrivateKernelData),
|
|
35
|
+
reader.readObject(PrivateCallData),
|
|
36
|
+
reader.readObject(PrivateCallData),
|
|
37
|
+
reader.readObject(PrivateCallData),
|
|
38
|
+
reader.readObject(PrivateCallData),
|
|
39
|
+
reader.readObject(PrivateCallData),
|
|
40
|
+
);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { CircuitKind } from '@aztec/bb.js';
|
|
1
2
|
import { bufferSchema, mapSchema } from '@aztec/foundation/schemas';
|
|
2
3
|
import type { WitnessMap } from '@aztec/noir-acvm_js';
|
|
3
4
|
import { serializeWitness } from '@aztec/noir-noirc_abi';
|
|
@@ -15,6 +16,7 @@ export const PrivateExecutionStepSchema = z.object({
|
|
|
15
16
|
bytecode: bufferSchema,
|
|
16
17
|
witness: mapSchema(z.number(), z.string()),
|
|
17
18
|
vk: bufferSchema,
|
|
19
|
+
kind: z.nativeEnum(CircuitKind),
|
|
18
20
|
timings: z.object({
|
|
19
21
|
witgen: z.number(),
|
|
20
22
|
gateCount: z.number().optional(),
|
|
@@ -31,6 +33,7 @@ export interface PrivateExecutionStep {
|
|
|
31
33
|
witness: WitnessMap;
|
|
32
34
|
/* TODO(https://github.com/AztecProtocol/barretenberg/issues/1328) this should get its own proper class. */
|
|
33
35
|
vk: Buffer;
|
|
36
|
+
kind: CircuitKind;
|
|
34
37
|
timings: {
|
|
35
38
|
witgen: number;
|
|
36
39
|
gateCount?: number;
|
|
@@ -64,6 +67,7 @@ export function serializePrivateExecutionSteps(steps: PrivateExecutionStep[]) {
|
|
|
64
67
|
witness: serializeWitness(step.witness),
|
|
65
68
|
vk: step.vk,
|
|
66
69
|
functionName: step.functionName,
|
|
70
|
+
kind: step.kind,
|
|
67
71
|
};
|
|
68
72
|
};
|
|
69
73
|
return new Encoder({ useRecords: false }).pack(steps.map(stepToStruct));
|
|
@@ -68,14 +68,24 @@ export const privateKernelResetDimensionNames: DimensionName[] = [
|
|
|
68
68
|
'PRIVATE_LOG_SILOING',
|
|
69
69
|
];
|
|
70
70
|
|
|
71
|
-
export interface
|
|
72
|
-
|
|
73
|
-
|
|
71
|
+
export interface ResetCatalogEntry {
|
|
72
|
+
name: string;
|
|
73
|
+
dimensions: number[];
|
|
74
|
+
// Measured gate count (circuit_size) of the compiled variant. Used by the selector to pick the
|
|
75
|
+
// cheapest variant that covers the requested dimensions, e.g. if the required dimensions are
|
|
76
|
+
// `6 - 2 - 2` then a variant with capacity `8 - 2 - 2` might be cheaper than one with capacity
|
|
77
|
+
// `6 - 4 - 4`.
|
|
74
78
|
cost: number;
|
|
75
79
|
}
|
|
76
80
|
|
|
77
|
-
// Must match the
|
|
81
|
+
// Must match the shipped private_kernel_reset_config.json, loaded by @aztec/noir-protocol-circuits-types.
|
|
78
82
|
export interface PrivateKernelResetDimensionsConfig {
|
|
79
|
-
|
|
80
|
-
|
|
83
|
+
// Variants used for mid-tx resets that prevent overflow. Never the last kernel in the chain.
|
|
84
|
+
inner: ResetCatalogEntry[];
|
|
85
|
+
// Variants used as the terminal kernel for the rollup-bound private-only path. Each runs
|
|
86
|
+
// final-reset siloing and tail finalisation in one proof.
|
|
87
|
+
finalTail: ResetCatalogEntry[];
|
|
88
|
+
// Terminal variants for the public-bound path (transactions with public function calls). Runs
|
|
89
|
+
// final-reset siloing and tail-to-public partitioning by revertibility in one proof.
|
|
90
|
+
finalTailToPublic: ResetCatalogEntry[];
|
|
81
91
|
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
MAX_KEY_VALIDATION_REQUESTS_PER_TX,
|
|
3
|
+
MAX_NOTE_HASH_READ_REQUESTS_PER_TX,
|
|
4
|
+
MAX_NULLIFIERS_PER_TX,
|
|
5
|
+
MAX_NULLIFIER_READ_REQUESTS_PER_TX,
|
|
6
|
+
} from '@aztec/constants';
|
|
7
|
+
import { bigintToUInt64BE, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
8
|
+
|
|
9
|
+
import type { UInt64 } from '../types/shared.js';
|
|
10
|
+
import type { PrivateKernelResetHints } from './hints/private_kernel_reset_hints.js';
|
|
11
|
+
import type { PaddedSideEffectAmounts, PaddedSideEffects } from './padded_side_effects.js';
|
|
12
|
+
import { kernelStateIsForPublic } from './private_kernel_circuit_public_inputs.js';
|
|
13
|
+
import type { PrivateKernelData } from './private_kernel_data.js';
|
|
14
|
+
import { PrivateKernelResetCircuitPrivateInputsVariants } from './private_kernel_reset_circuit_private_inputs.js';
|
|
15
|
+
import type { PrivateKernelResetDimensions } from './private_kernel_reset_dimensions.js';
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Input to a terminal reset+tail circuit. `isForPublic()` selects the rollup-bound (`reset_tail`)
|
|
19
|
+
* or public-bound (`reset_tail_to_public`) family.
|
|
20
|
+
*/
|
|
21
|
+
export class PrivateKernelResetTailCircuitPrivateInputs {
|
|
22
|
+
constructor(
|
|
23
|
+
public previousKernel: PrivateKernelData,
|
|
24
|
+
public paddedSideEffects: PaddedSideEffects,
|
|
25
|
+
public hints: PrivateKernelResetHints<
|
|
26
|
+
typeof MAX_NOTE_HASH_READ_REQUESTS_PER_TX,
|
|
27
|
+
typeof MAX_NOTE_HASH_READ_REQUESTS_PER_TX,
|
|
28
|
+
typeof MAX_NULLIFIER_READ_REQUESTS_PER_TX,
|
|
29
|
+
typeof MAX_NULLIFIER_READ_REQUESTS_PER_TX,
|
|
30
|
+
typeof MAX_KEY_VALIDATION_REQUESTS_PER_TX,
|
|
31
|
+
typeof MAX_NULLIFIERS_PER_TX
|
|
32
|
+
>,
|
|
33
|
+
public dimensions: PrivateKernelResetDimensions,
|
|
34
|
+
public paddedSideEffectAmounts: PaddedSideEffectAmounts,
|
|
35
|
+
public expirationTimestampUpperBound: UInt64,
|
|
36
|
+
) {}
|
|
37
|
+
|
|
38
|
+
isForPublic() {
|
|
39
|
+
return kernelStateIsForPublic(this.previousKernel.publicInputs);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Returns a dimension-trimmed view of the reset portion of these inputs (without the tail
|
|
44
|
+
* fields). The prover uses this to feed witness generation of the variant matching the chosen
|
|
45
|
+
* dimensions.
|
|
46
|
+
*/
|
|
47
|
+
trimResetToSizes() {
|
|
48
|
+
const hints = this.hints.trimToSizes(
|
|
49
|
+
this.dimensions.NOTE_HASH_PENDING_READ,
|
|
50
|
+
this.dimensions.NOTE_HASH_SETTLED_READ,
|
|
51
|
+
this.dimensions.NULLIFIER_PENDING_READ,
|
|
52
|
+
this.dimensions.NULLIFIER_SETTLED_READ,
|
|
53
|
+
this.dimensions.KEY_VALIDATION,
|
|
54
|
+
this.dimensions.TRANSIENT_DATA_SQUASHING,
|
|
55
|
+
);
|
|
56
|
+
return new PrivateKernelResetCircuitPrivateInputsVariants(this.previousKernel, this.paddedSideEffects, hints);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
toBuffer() {
|
|
60
|
+
return serializeToBuffer(
|
|
61
|
+
this.previousKernel,
|
|
62
|
+
this.paddedSideEffects,
|
|
63
|
+
this.hints,
|
|
64
|
+
this.dimensions,
|
|
65
|
+
this.paddedSideEffectAmounts,
|
|
66
|
+
bigintToUInt64BE(this.expirationTimestampUpperBound),
|
|
67
|
+
);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
@@ -17,10 +17,3 @@ export interface PrivateKernelSimulateOutput<
|
|
|
17
17
|
verificationKey: VerificationKeyData;
|
|
18
18
|
bytecode: Buffer;
|
|
19
19
|
}
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* Represents the output of the circuit simulation process for init and inner private kernel circuit.
|
|
23
|
-
*/
|
|
24
|
-
export type AppCircuitSimulateOutput = {
|
|
25
|
-
verificationKey: VerificationKeyData;
|
|
26
|
-
};
|
|
@@ -85,7 +85,10 @@ export class ScopedPrivateLogData {
|
|
|
85
85
|
|
|
86
86
|
static fromFields(fields: Fr[] | FieldReader) {
|
|
87
87
|
const reader = FieldReader.asReader(fields);
|
|
88
|
-
return new ScopedPrivateLogData(
|
|
88
|
+
return new ScopedPrivateLogData(
|
|
89
|
+
reader.readObject(PrivateLogData),
|
|
90
|
+
AztecAddress.fromFieldUnsafe(reader.readField()),
|
|
91
|
+
);
|
|
89
92
|
}
|
|
90
93
|
|
|
91
94
|
isEmpty() {
|
package/src/keys/derivation.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { DomainSeparator } from '@aztec/constants';
|
|
2
2
|
import { Grumpkin } from '@aztec/foundation/crypto/grumpkin';
|
|
3
3
|
import { poseidon2HashWithSeparator } from '@aztec/foundation/crypto/poseidon';
|
|
4
4
|
import { sha512ToGrumpkinScalar } from '@aztec/foundation/crypto/sha512';
|
|
@@ -11,8 +11,11 @@ import { PublicKey, hashPublicKey } from './public_key.js';
|
|
|
11
11
|
import { PublicKeys } from './public_keys.js';
|
|
12
12
|
import { getKeyGenerator } from './utils.js';
|
|
13
13
|
|
|
14
|
-
export function computeAppNullifierHidingKey(
|
|
15
|
-
|
|
14
|
+
export function computeAppNullifierHidingKey(
|
|
15
|
+
masterNullifierHidingSecretKey: GrumpkinScalar,
|
|
16
|
+
app: AztecAddress,
|
|
17
|
+
): Promise<Fr> {
|
|
18
|
+
return computeAppSecretKey(masterNullifierHidingSecretKey, app, 'n'); // 'n' is the key prefix for nullifier hiding key
|
|
16
19
|
}
|
|
17
20
|
|
|
18
21
|
export function computeAppSecretKey(skM: GrumpkinScalar, app: AztecAddress, keyPrefix: KeyPrefix): Promise<Fr> {
|
|
@@ -27,7 +30,7 @@ export async function computeOvskApp(ovsk: GrumpkinScalar, app: AztecAddress): P
|
|
|
27
30
|
return GrumpkinScalar.fromBuffer(ovskAppFr.toBuffer());
|
|
28
31
|
}
|
|
29
32
|
|
|
30
|
-
export function
|
|
33
|
+
export function deriveMasterNullifierHidingSecretKey(secretKey: Fr): GrumpkinScalar {
|
|
31
34
|
return sha512ToGrumpkinScalar([secretKey, DomainSeparator.NHK_M]);
|
|
32
35
|
}
|
|
33
36
|
|
|
@@ -39,9 +42,12 @@ export function deriveMasterOutgoingViewingSecretKey(secretKey: Fr): GrumpkinSca
|
|
|
39
42
|
return sha512ToGrumpkinScalar([secretKey, DomainSeparator.OVSK_M]);
|
|
40
43
|
}
|
|
41
44
|
|
|
42
|
-
export function
|
|
43
|
-
|
|
44
|
-
|
|
45
|
+
export function deriveMasterMessageSigningSecretKey(secretKey: Fr): GrumpkinScalar {
|
|
46
|
+
return sha512ToGrumpkinScalar([secretKey, DomainSeparator.MSSK_M]);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
export function deriveMasterFallbackSecretKey(secretKey: Fr): GrumpkinScalar {
|
|
50
|
+
return sha512ToGrumpkinScalar([secretKey, DomainSeparator.FBSK_M]);
|
|
45
51
|
}
|
|
46
52
|
|
|
47
53
|
export function computePreaddress(publicKeysHash: Fr, partialAddress: Fr) {
|
|
@@ -85,52 +91,91 @@ export async function computeAddressSecret(preaddress: Fr, ivsk: Fq) {
|
|
|
85
91
|
}
|
|
86
92
|
|
|
87
93
|
export function derivePublicKeyFromSecretKey(secretKey: Fq): Promise<PublicKey> {
|
|
94
|
+
// 0 * G is the point at infinity. The WASM encodes infinity with an out-of-field x coordinate that Point cannot
|
|
95
|
+
// deserialize, so return the point directly instead of calling into it.
|
|
96
|
+
if (secretKey.isZero()) {
|
|
97
|
+
return Promise.resolve(PublicKey.INFINITY);
|
|
98
|
+
}
|
|
88
99
|
return Grumpkin.mul(Grumpkin.generator, secretKey);
|
|
89
100
|
}
|
|
90
101
|
|
|
102
|
+
/**
|
|
103
|
+
* The six master secret keys that fully define an account's privacy keys.
|
|
104
|
+
*/
|
|
105
|
+
export type MasterSecretKeys = {
|
|
106
|
+
masterNullifierHidingSecretKey: GrumpkinScalar;
|
|
107
|
+
masterIncomingViewingSecretKey: GrumpkinScalar;
|
|
108
|
+
masterOutgoingViewingSecretKey: GrumpkinScalar;
|
|
109
|
+
masterTaggingSecretKey: GrumpkinScalar;
|
|
110
|
+
masterMessageSigningSecretKey: GrumpkinScalar;
|
|
111
|
+
masterFallbackSecretKey: GrumpkinScalar;
|
|
112
|
+
};
|
|
113
|
+
|
|
91
114
|
/**
|
|
92
115
|
* Computes secret and public keys and public keys hash from a secret key.
|
|
93
116
|
* @param secretKey - The secret key to derive keys from.
|
|
94
117
|
* @returns The derived keys.
|
|
95
118
|
*/
|
|
96
|
-
export
|
|
119
|
+
export function deriveKeys(secretKey: Fr) {
|
|
97
120
|
// First we derive master secret/hiding keys - we use sha512 here because this derivation will never take place
|
|
98
121
|
// in a circuit
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
122
|
+
return deriveKeysFromMasterSecretKeys({
|
|
123
|
+
masterNullifierHidingSecretKey: deriveMasterNullifierHidingSecretKey(secretKey),
|
|
124
|
+
masterIncomingViewingSecretKey: deriveMasterIncomingViewingSecretKey(secretKey),
|
|
125
|
+
masterOutgoingViewingSecretKey: deriveMasterOutgoingViewingSecretKey(secretKey),
|
|
126
|
+
masterTaggingSecretKey: sha512ToGrumpkinScalar([secretKey, DomainSeparator.TSK_M]),
|
|
127
|
+
masterMessageSigningSecretKey: deriveMasterMessageSigningSecretKey(secretKey),
|
|
128
|
+
masterFallbackSecretKey: deriveMasterFallbackSecretKey(secretKey),
|
|
129
|
+
});
|
|
130
|
+
}
|
|
103
131
|
|
|
104
|
-
|
|
105
|
-
|
|
132
|
+
/**
|
|
133
|
+
* Derives the master public keys and the {@link PublicKeys} struct from a set of master secret keys.
|
|
134
|
+
* @param secretKeys - The master secret keys to derive public keys from.
|
|
135
|
+
* @returns The provided secret keys alongside the derived public keys.
|
|
136
|
+
*/
|
|
137
|
+
export async function deriveKeysFromMasterSecretKeys(secretKeys: MasterSecretKeys) {
|
|
138
|
+
const {
|
|
139
|
+
masterNullifierHidingSecretKey,
|
|
140
|
+
masterIncomingViewingSecretKey,
|
|
141
|
+
masterOutgoingViewingSecretKey,
|
|
142
|
+
masterTaggingSecretKey,
|
|
143
|
+
masterMessageSigningSecretKey,
|
|
144
|
+
masterFallbackSecretKey,
|
|
145
|
+
} = secretKeys;
|
|
146
|
+
|
|
147
|
+
const masterNullifierHidingPublicKey = await derivePublicKeyFromSecretKey(masterNullifierHidingSecretKey);
|
|
106
148
|
const masterIncomingViewingPublicKey = await derivePublicKeyFromSecretKey(masterIncomingViewingSecretKey);
|
|
107
149
|
const masterOutgoingViewingPublicKey = await derivePublicKeyFromSecretKey(masterOutgoingViewingSecretKey);
|
|
108
150
|
const masterTaggingPublicKey = await derivePublicKeyFromSecretKey(masterTaggingSecretKey);
|
|
151
|
+
const masterMessageSigningPublicKey = await derivePublicKeyFromSecretKey(masterMessageSigningSecretKey);
|
|
152
|
+
const masterFallbackPublicKey = await derivePublicKeyFromSecretKey(masterFallbackSecretKey);
|
|
109
153
|
|
|
110
154
|
// The non-owner-visible PublicKeys carries hashes for npk/ovpk/tpk/mspk/fbpk and the raw
|
|
111
|
-
// point only for ivpk_m. The npk/ovpk/tpk raw points are also returned alongside so the key
|
|
112
|
-
// store can persist them under `${account}-{n|ov|t}pk_m` (only their hashes live in publicKeys).
|
|
155
|
+
// point only for ivpk_m. The npk/ovpk/tpk/mspk/fbpk raw points are also returned alongside so the key
|
|
156
|
+
// store can persist them under `${account}-{n|ov|t|ms|fb}pk_m` (only their hashes live in publicKeys).
|
|
113
157
|
// The ivpk_m point isn't returned separately because it already lives in publicKeys.ivpkM.
|
|
114
|
-
//
|
|
115
|
-
// TODO: There isn't a derivation path for the message signing(msk) and fallback(fbk) keys yet. So we just use the the
|
|
116
|
-
// default values for now.
|
|
117
158
|
const publicKeys = new PublicKeys(
|
|
118
|
-
await hashPublicKey(
|
|
159
|
+
await hashPublicKey(masterNullifierHidingPublicKey),
|
|
119
160
|
masterIncomingViewingPublicKey,
|
|
120
161
|
await hashPublicKey(masterOutgoingViewingPublicKey),
|
|
121
162
|
await hashPublicKey(masterTaggingPublicKey),
|
|
122
|
-
|
|
123
|
-
|
|
163
|
+
await hashPublicKey(masterMessageSigningPublicKey),
|
|
164
|
+
await hashPublicKey(masterFallbackPublicKey),
|
|
124
165
|
);
|
|
125
166
|
|
|
126
167
|
return {
|
|
127
|
-
|
|
168
|
+
masterNullifierHidingSecretKey,
|
|
128
169
|
masterIncomingViewingSecretKey,
|
|
129
170
|
masterOutgoingViewingSecretKey,
|
|
130
171
|
masterTaggingSecretKey,
|
|
131
|
-
|
|
172
|
+
masterMessageSigningSecretKey,
|
|
173
|
+
masterFallbackSecretKey,
|
|
174
|
+
masterNullifierHidingPublicKey,
|
|
132
175
|
masterOutgoingViewingPublicKey,
|
|
133
176
|
masterTaggingPublicKey,
|
|
177
|
+
masterMessageSigningPublicKey,
|
|
178
|
+
masterFallbackPublicKey,
|
|
134
179
|
publicKeys,
|
|
135
180
|
};
|
|
136
181
|
}
|
|
@@ -9,6 +9,7 @@ import { AztecAddress } from '../aztec-address/index.js';
|
|
|
9
9
|
import type { CompleteAddress } from '../contract/complete_address.js';
|
|
10
10
|
import { computeAddressSecret, computePreaddress } from '../keys/derivation.js';
|
|
11
11
|
import { AppTaggingSecretKind } from './app_tagging_secret_kind.js';
|
|
12
|
+
import { appSiloEcdhSharedSecretPoint } from './shared_secret_derivation.js';
|
|
12
13
|
|
|
13
14
|
const AppTaggingSecretKindSchema = z.union([
|
|
14
15
|
z.literal(AppTaggingSecretKind.UNCONSTRAINED),
|
|
@@ -30,17 +31,49 @@ export class AppTaggingSecret {
|
|
|
30
31
|
) {}
|
|
31
32
|
|
|
32
33
|
/**
|
|
33
|
-
* Derives
|
|
34
|
-
* secret. Returns undefined if `externalAddress` is an invalid address.
|
|
34
|
+
* Derives an app-siloed, recipient-directional tagging secret from a shared tagging secret point.
|
|
35
35
|
*
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
*
|
|
36
|
+
* App-silos the point via {@link appSiloEcdhSharedSecretPoint}, then directs the result to `recipient`:
|
|
37
|
+
* `h([s_app, recipient])`. The directional step stops a symmetric shared secret (ECDH against an address, or an
|
|
38
|
+
* arbitrary registered point) from colliding bidirectionally, so two parties never share a tag sequence.
|
|
39
|
+
*
|
|
40
|
+
* The point is obtained either via {@link computeSharedTaggingSecret} (an ECDH key exchange against a sender) or
|
|
41
|
+
* registered directly as a pre-shared secret.
|
|
42
|
+
*
|
|
43
|
+
* @param taggingSecretPoint - The shared tagging secret point (ECDH output, or a directly registered pre-shared secret)
|
|
39
44
|
* @param app - Contract address to silo the secret to
|
|
40
45
|
* @param recipient - Recipient of the log. Defines the "direction of the secret".
|
|
41
46
|
* @returns The secret that can be used along with an index to compute a tag to be included in a log.
|
|
42
47
|
*/
|
|
43
|
-
static async
|
|
48
|
+
static async computeDirectional(
|
|
49
|
+
taggingSecretPoint: Point,
|
|
50
|
+
app: AztecAddress,
|
|
51
|
+
recipient: AztecAddress,
|
|
52
|
+
): Promise<AppTaggingSecret> {
|
|
53
|
+
const appSiloedSecret = await appSiloEcdhSharedSecretPoint(taggingSecretPoint, app);
|
|
54
|
+
const directionalAppTaggingSecret = await poseidon2Hash([appSiloedSecret, recipient]);
|
|
55
|
+
|
|
56
|
+
return new AppTaggingSecret(directionalAppTaggingSecret, app);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Derives the bare app-siloed tagging secret from a shared secret point via {@link appSiloEcdhSharedSecretPoint},
|
|
61
|
+
* under the given delivery-mode kind.
|
|
62
|
+
*/
|
|
63
|
+
static async computeAppSiloed(
|
|
64
|
+
taggingSecretPoint: Point,
|
|
65
|
+
app: AztecAddress,
|
|
66
|
+
kind: AppTaggingSecretKind,
|
|
67
|
+
): Promise<AppTaggingSecret> {
|
|
68
|
+
return new AppTaggingSecret(await appSiloEcdhSharedSecretPoint(taggingSecretPoint, app), app, kind);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Derives the tagging secret for `(externalAddress, recipient, app)` by performing an ECDH key exchange against
|
|
73
|
+
* `externalAddress` to obtain the shared point, then siloing and directing it via {@link computeDirectional}.
|
|
74
|
+
* Returns undefined if `externalAddress` is not a valid address.
|
|
75
|
+
*/
|
|
76
|
+
static async computeViaEcdh(
|
|
44
77
|
localAddress: CompleteAddress,
|
|
45
78
|
localIvsk: Fq,
|
|
46
79
|
externalAddress: AztecAddress,
|
|
@@ -52,36 +85,24 @@ export class AppTaggingSecret {
|
|
|
52
85
|
return undefined;
|
|
53
86
|
}
|
|
54
87
|
|
|
55
|
-
|
|
56
|
-
const directionalAppTaggingSecret = await poseidon2Hash([appTaggingSecret, recipient]);
|
|
57
|
-
|
|
58
|
-
return new AppTaggingSecret(directionalAppTaggingSecret, app);
|
|
88
|
+
return AppTaggingSecret.computeDirectional(taggingSecretPoint, app, recipient);
|
|
59
89
|
}
|
|
60
90
|
|
|
61
91
|
toString(): string {
|
|
62
|
-
// TODO(F-680): Migrate stored tagging keys and remove the legacy unconstrained format.
|
|
63
|
-
if (this.kind === AppTaggingSecretKind.UNCONSTRAINED) {
|
|
64
|
-
return `${this.secret.toString()}:${this.app.toString()}`;
|
|
65
|
-
}
|
|
66
92
|
return `${this.kind}:${this.secret.toString()}:${this.app.toString()}`;
|
|
67
93
|
}
|
|
68
94
|
|
|
69
95
|
static fromString(str: string): AppTaggingSecret {
|
|
70
96
|
const parts = str.split(':');
|
|
71
|
-
if (parts.length
|
|
72
|
-
|
|
73
|
-
const [secretStr, appStr] = parts;
|
|
74
|
-
return new AppTaggingSecret(Fr.fromString(secretStr), AztecAddress.fromString(appStr));
|
|
75
|
-
}
|
|
76
|
-
if (parts.length === 3) {
|
|
77
|
-
const [kindStr, secretStr, appStr] = parts;
|
|
78
|
-
return new AppTaggingSecret(
|
|
79
|
-
Fr.fromString(secretStr),
|
|
80
|
-
AztecAddress.fromString(appStr),
|
|
81
|
-
appTaggingSecretKindFromString(kindStr),
|
|
82
|
-
);
|
|
97
|
+
if (parts.length !== 3) {
|
|
98
|
+
throw new Error(`Invalid AppTaggingSecret string: ${str}`);
|
|
83
99
|
}
|
|
84
|
-
|
|
100
|
+
const [kindStr, secretStr, appStr] = parts;
|
|
101
|
+
return new AppTaggingSecret(
|
|
102
|
+
Fr.fromString(secretStr),
|
|
103
|
+
AztecAddress.fromStringUnsafe(appStr),
|
|
104
|
+
appTaggingSecretKindFromString(kindStr),
|
|
105
|
+
);
|
|
85
106
|
}
|
|
86
107
|
}
|
|
87
108
|
|
|
@@ -111,18 +132,17 @@ function appTaggingSecretKindFromString(kind: string): AppTaggingSecretKind {
|
|
|
111
132
|
}
|
|
112
133
|
}
|
|
113
134
|
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
135
|
+
/**
|
|
136
|
+
* Computes the shared tagging secret point between a local address (i.e. one for which the privacy keys are known) and
|
|
137
|
+
* an external one via a Diffie-Hellman key exchange.
|
|
138
|
+
*
|
|
139
|
+
* Returns undefined if `externalAddress` is an invalid address.
|
|
140
|
+
*/
|
|
141
|
+
export async function computeSharedTaggingSecret(
|
|
117
142
|
localAddress: CompleteAddress,
|
|
118
143
|
localIvsk: Fq,
|
|
119
144
|
externalAddress: AztecAddress,
|
|
120
145
|
): Promise<Point | undefined> {
|
|
121
|
-
// Given A (local complete address) -> B (external address) and h == preaddress
|
|
122
|
-
// Compute shared secret as S = (h_A + local_ivsk_A) * Addr_Point_B
|
|
123
|
-
|
|
124
|
-
const knownPreaddress = await computePreaddress(await localAddress.publicKeys.hash(), localAddress.partialAddress);
|
|
125
|
-
|
|
126
146
|
// An invalid address has no corresponding address point
|
|
127
147
|
if (!(await externalAddress.isValid())) {
|
|
128
148
|
return undefined;
|
|
@@ -130,8 +150,11 @@ async function computeSharedTaggingSecret(
|
|
|
130
150
|
|
|
131
151
|
const externalAddressPoint = await externalAddress.toAddressPoint();
|
|
132
152
|
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
153
|
+
const localPreaddress = await computePreaddress(await localAddress.publicKeys.hash(), localAddress.partialAddress);
|
|
154
|
+
const localAddressSecret = await computeAddressSecret(localPreaddress, localIvsk);
|
|
155
|
+
|
|
156
|
+
// For a given local address A and external address B, the shared tagging secret S is (h_A + ivsk_A) * Addr_Point_B
|
|
157
|
+
// (conceptually, in reality we don't use h_A + ivsk_A directly but rather the actual address secret, which is the
|
|
158
|
+
// same but with an optional sign adjustment to prevent A's address point from having a negative y-coordinate).
|
|
159
|
+
return Grumpkin.mul(externalAddressPoint, localAddressSecret);
|
|
137
160
|
}
|
|
@@ -4,3 +4,18 @@ export const AppTaggingSecretKind = {
|
|
|
4
4
|
} as const;
|
|
5
5
|
|
|
6
6
|
export type AppTaggingSecretKind = (typeof AppTaggingSecretKind)[keyof typeof AppTaggingSecretKind];
|
|
7
|
+
|
|
8
|
+
// Keep in sync with aztec::messages::delivery::OnchainDeliveryMode.
|
|
9
|
+
const ONCHAIN_UNCONSTRAINED_DELIVERY_MODE = 2;
|
|
10
|
+
const ONCHAIN_CONSTRAINED_DELIVERY_MODE = 3;
|
|
11
|
+
|
|
12
|
+
export function appTaggingSecretKindFromDeliveryMode(deliveryMode: number): AppTaggingSecretKind {
|
|
13
|
+
switch (deliveryMode) {
|
|
14
|
+
case ONCHAIN_UNCONSTRAINED_DELIVERY_MODE:
|
|
15
|
+
return AppTaggingSecretKind.UNCONSTRAINED;
|
|
16
|
+
case ONCHAIN_CONSTRAINED_DELIVERY_MODE:
|
|
17
|
+
return AppTaggingSecretKind.CONSTRAINED;
|
|
18
|
+
default:
|
|
19
|
+
throw new Error(`Unrecognized delivery mode for tagging: ${deliveryMode}`);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
@@ -138,15 +138,6 @@ export class ContractClassLog {
|
|
|
138
138
|
);
|
|
139
139
|
}
|
|
140
140
|
|
|
141
|
-
static fromFields(fields: Fr[] | FieldReader) {
|
|
142
|
-
const reader = FieldReader.asReader(fields);
|
|
143
|
-
return new ContractClassLog(
|
|
144
|
-
reader.readObject(AztecAddress),
|
|
145
|
-
reader.readObject(ContractClassLogFields),
|
|
146
|
-
reader.readU32(),
|
|
147
|
-
);
|
|
148
|
-
}
|
|
149
|
-
|
|
150
141
|
getEmittedFields() {
|
|
151
142
|
return this.fields.getEmittedFields(this.emittedLength);
|
|
152
143
|
}
|
package/src/logs/log_result.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { BlockNumber, BlockNumberSchema } from '@aztec/foundation/branded-types'
|
|
|
2
2
|
import { times } from '@aztec/foundation/collection';
|
|
3
3
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
4
4
|
import { schemas as foundationSchemas } from '@aztec/foundation/schemas';
|
|
5
|
-
import type {
|
|
5
|
+
import type { PickIfFlag, Prettify } from '@aztec/foundation/types';
|
|
6
6
|
|
|
7
7
|
import { z } from 'zod';
|
|
8
8
|
|
|
@@ -53,7 +53,7 @@ export type LogResultBase = {
|
|
|
53
53
|
* l.nullifiers; // required, not optional
|
|
54
54
|
*/
|
|
55
55
|
export type LogResult<Opts extends LogIncludeOptions = LogIncludeOptions> = Prettify<
|
|
56
|
-
LogResultBase &
|
|
56
|
+
LogResultBase & PickIfFlag<LogIncludeOptions, Opts, 'includeEffects', { noteHashes: Fr[]; nullifiers: Fr[] }>
|
|
57
57
|
>;
|
|
58
58
|
|
|
59
59
|
/** Zod schema for the widest {@link LogResult} shape (all include-gated fields optional). */
|
package/src/logs/logs_query.ts
CHANGED
|
@@ -33,8 +33,8 @@ export type LogsQueryBase = {
|
|
|
33
33
|
*/
|
|
34
34
|
txHash?: TxHash;
|
|
35
35
|
/**
|
|
36
|
-
* Reorg-safety anchor: the latest block hash the caller has synced to.
|
|
37
|
-
*
|
|
36
|
+
* Reorg-safety anchor: the latest block hash the caller has synced to. The call throws if that block is no longer
|
|
37
|
+
* present. Results are capped at that block, and `toBlock` can only narrow the range further, never past it.
|
|
38
38
|
*/
|
|
39
39
|
referenceBlock?: BlockHash;
|
|
40
40
|
/** When set, each log also carries `noteHashes` and all `nullifiers` for note-nonce discovery. */
|