@aztec/pxe 0.0.0-test.0 → 0.0.1-commit.023c3e5
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/README.md +5 -5
- package/dest/bin/check_oracle_version.d.ts +2 -0
- package/dest/bin/check_oracle_version.d.ts.map +1 -0
- package/dest/bin/check_oracle_version.js +129 -0
- package/dest/block_synchronizer/block_synchronizer.d.ts +43 -0
- package/dest/block_synchronizer/block_synchronizer.d.ts.map +1 -0
- package/dest/block_synchronizer/block_synchronizer.js +147 -0
- package/dest/block_synchronizer/index.d.ts +2 -0
- package/dest/block_synchronizer/index.d.ts.map +1 -0
- package/dest/block_synchronizer/index.js +1 -0
- package/dest/config/index.d.ts +13 -24
- package/dest/config/index.d.ts.map +1 -1
- package/dest/config/index.js +35 -33
- package/dest/config/package_info.d.ts +1 -1
- package/dest/config/package_info.js +1 -1
- package/dest/contract_function_simulator/benchmarked_node.d.ts +9 -0
- package/dest/contract_function_simulator/benchmarked_node.d.ts.map +1 -0
- package/dest/contract_function_simulator/benchmarked_node.js +77 -0
- package/dest/contract_function_simulator/contract_function_simulator.d.ts +82 -0
- package/dest/contract_function_simulator/contract_function_simulator.d.ts.map +1 -0
- package/dest/contract_function_simulator/contract_function_simulator.js +339 -0
- package/dest/contract_function_simulator/execution_note_cache.d.ts +104 -0
- package/dest/contract_function_simulator/execution_note_cache.d.ts.map +1 -0
- package/dest/contract_function_simulator/execution_note_cache.js +208 -0
- package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts +16 -0
- package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts.map +1 -0
- package/dest/contract_function_simulator/execution_tagging_index_cache.js +26 -0
- package/dest/contract_function_simulator/hashed_values_cache.d.ts +28 -0
- package/dest/contract_function_simulator/hashed_values_cache.d.ts.map +1 -0
- package/dest/contract_function_simulator/hashed_values_cache.js +36 -0
- package/dest/contract_function_simulator/index.d.ts +14 -0
- package/dest/contract_function_simulator/index.d.ts.map +1 -0
- package/dest/contract_function_simulator/index.js +12 -0
- package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts +21 -0
- package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts.map +1 -0
- package/dest/contract_function_simulator/noir-structs/event_validation_request.js +40 -0
- package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts +16 -0
- package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts.map +1 -0
- package/dest/contract_function_simulator/noir-structs/log_retrieval_request.js +26 -0
- package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts +17 -0
- package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts.map +1 -0
- package/dest/contract_function_simulator/noir-structs/log_retrieval_response.js +65 -0
- package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts +24 -0
- package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts.map +1 -0
- package/dest/contract_function_simulator/noir-structs/note_validation_request.js +51 -0
- package/dest/contract_function_simulator/noir-structs/utility_context.d.ts +16 -0
- package/dest/contract_function_simulator/noir-structs/utility_context.d.ts.map +1 -0
- package/dest/contract_function_simulator/noir-structs/utility_context.js +22 -0
- package/dest/contract_function_simulator/oracle/index.d.ts +14 -0
- package/dest/contract_function_simulator/oracle/index.d.ts.map +1 -0
- package/dest/contract_function_simulator/oracle/index.js +2 -0
- package/dest/contract_function_simulator/oracle/interfaces.d.ts +107 -0
- package/dest/contract_function_simulator/oracle/interfaces.d.ts.map +1 -0
- package/dest/contract_function_simulator/oracle/interfaces.js +4 -0
- package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts +19 -0
- package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts.map +1 -0
- package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.js +24 -0
- package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts +28 -0
- package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts.map +1 -0
- package/dest/contract_function_simulator/oracle/note_packing_utils.js +54 -0
- package/dest/contract_function_simulator/oracle/oracle.d.ts +60 -0
- package/dest/contract_function_simulator/oracle/oracle.d.ts.map +1 -0
- package/dest/contract_function_simulator/oracle/oracle.js +356 -0
- package/dest/contract_function_simulator/oracle/private_execution.d.ts +23 -0
- package/dest/contract_function_simulator/oracle/private_execution.d.ts.map +1 -0
- package/dest/contract_function_simulator/oracle/private_execution.js +87 -0
- package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts +239 -0
- package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts.map +1 -0
- package/dest/contract_function_simulator/oracle/private_execution_oracle.js +426 -0
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts +209 -0
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts.map +1 -0
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.js +376 -0
- package/dest/contract_function_simulator/pick_notes.d.ts +85 -0
- package/dest/contract_function_simulator/pick_notes.d.ts.map +1 -0
- package/dest/contract_function_simulator/pick_notes.js +51 -0
- package/dest/contract_function_simulator/proxied_contract_data_source.d.ts +6 -0
- package/dest/contract_function_simulator/proxied_contract_data_source.d.ts.map +1 -0
- package/dest/contract_function_simulator/proxied_contract_data_source.js +80 -0
- package/dest/contract_sync/index.d.ts +23 -0
- package/dest/contract_sync/index.d.ts.map +1 -0
- package/dest/contract_sync/index.js +54 -0
- package/dest/debug/pxe_debug_utils.d.ts +41 -0
- package/dest/debug/pxe_debug_utils.d.ts.map +1 -0
- package/dest/debug/pxe_debug_utils.js +47 -0
- package/dest/entrypoints/client/bundle/index.d.ts +4 -3
- package/dest/entrypoints/client/bundle/index.d.ts.map +1 -1
- package/dest/entrypoints/client/bundle/index.js +2 -2
- package/dest/entrypoints/client/bundle/utils.d.ts +10 -10
- package/dest/entrypoints/client/bundle/utils.d.ts.map +1 -1
- package/dest/entrypoints/client/bundle/utils.js +33 -12
- package/dest/entrypoints/client/lazy/index.d.ts +4 -3
- package/dest/entrypoints/client/lazy/index.d.ts.map +1 -1
- package/dest/entrypoints/client/lazy/index.js +2 -2
- package/dest/entrypoints/client/lazy/utils.d.ts +10 -10
- package/dest/entrypoints/client/lazy/utils.d.ts.map +1 -1
- package/dest/entrypoints/client/lazy/utils.js +33 -12
- package/dest/entrypoints/pxe_creation_options.d.ts +18 -0
- package/dest/entrypoints/pxe_creation_options.d.ts.map +1 -0
- package/dest/entrypoints/server/index.d.ts +8 -4
- package/dest/entrypoints/server/index.d.ts.map +1 -1
- package/dest/entrypoints/server/index.js +6 -3
- package/dest/entrypoints/server/utils.d.ts +8 -16
- package/dest/entrypoints/server/utils.d.ts.map +1 -1
- package/dest/entrypoints/server/utils.js +46 -36
- package/dest/error_enriching.d.ts +11 -0
- package/dest/error_enriching.d.ts.map +1 -0
- package/dest/{pxe_service/error_enriching.js → error_enriching.js} +30 -22
- package/dest/events/event_service.d.ts +15 -0
- package/dest/events/event_service.d.ts.map +1 -0
- package/dest/events/event_service.js +44 -0
- package/dest/events/index.d.ts +2 -0
- package/dest/events/index.d.ts.map +1 -0
- package/dest/events/index.js +1 -0
- package/dest/events/private_event_filter_validator.d.ts +9 -0
- package/dest/events/private_event_filter_validator.d.ts.map +1 -0
- package/dest/events/private_event_filter_validator.js +38 -0
- package/dest/job_coordinator/job_coordinator.d.ts +75 -0
- package/dest/job_coordinator/job_coordinator.d.ts.map +1 -0
- package/dest/job_coordinator/job_coordinator.js +94 -0
- package/dest/logs/log_service.d.ts +28 -0
- package/dest/logs/log_service.d.ts.map +1 -0
- package/dest/logs/log_service.js +125 -0
- package/dest/notes/index.d.ts +2 -0
- package/dest/notes/index.d.ts.map +1 -0
- package/dest/notes/index.js +1 -0
- package/dest/notes/note_service.d.ts +48 -0
- package/dest/notes/note_service.d.ts.map +1 -0
- package/dest/notes/note_service.js +147 -0
- package/dest/oracle_version.d.ts +3 -0
- package/dest/oracle_version.d.ts.map +1 -0
- package/dest/oracle_version.js +11 -0
- package/dest/private_kernel/hints/compute_tx_include_by_timestamp.d.ts +4 -0
- package/dest/private_kernel/hints/compute_tx_include_by_timestamp.d.ts.map +1 -0
- package/dest/private_kernel/hints/compute_tx_include_by_timestamp.js +41 -0
- package/dest/private_kernel/hints/index.d.ts +3 -0
- package/dest/private_kernel/hints/index.d.ts.map +1 -0
- package/dest/private_kernel/hints/index.js +2 -0
- package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.d.ts +28 -0
- package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.d.ts.map +1 -0
- package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.js +277 -0
- package/dest/private_kernel/index.d.ts +3 -0
- package/dest/private_kernel/index.d.ts.map +1 -0
- package/dest/private_kernel/index.js +2 -0
- package/dest/private_kernel/private_kernel_execution_prover.d.ts +45 -0
- package/dest/private_kernel/private_kernel_execution_prover.d.ts.map +1 -0
- package/dest/private_kernel/private_kernel_execution_prover.js +285 -0
- package/dest/private_kernel/private_kernel_oracle.d.ts +59 -0
- package/dest/private_kernel/private_kernel_oracle.d.ts.map +1 -0
- package/dest/private_kernel/private_kernel_oracle.js +92 -0
- package/dest/pxe.d.ts +204 -0
- package/dest/pxe.d.ts.map +1 -0
- package/dest/pxe.js +742 -0
- package/dest/storage/address_store/address_store.d.ts +11 -0
- package/dest/storage/address_store/address_store.d.ts.map +1 -0
- package/dest/storage/{address_data_provider/address_data_provider.js → address_store/address_store.js} +13 -15
- package/dest/storage/address_store/index.d.ts +2 -0
- package/dest/storage/address_store/index.d.ts.map +1 -0
- package/dest/storage/address_store/index.js +1 -0
- package/dest/storage/anchor_block_store/anchor_block_store.d.ts +17 -0
- package/dest/storage/anchor_block_store/anchor_block_store.d.ts.map +1 -0
- package/dest/storage/anchor_block_store/anchor_block_store.js +26 -0
- package/dest/storage/anchor_block_store/index.d.ts +2 -0
- package/dest/storage/anchor_block_store/index.d.ts.map +1 -0
- package/dest/storage/anchor_block_store/index.js +1 -0
- package/dest/storage/capsule_store/capsule_store.d.ts +72 -0
- package/dest/storage/capsule_store/capsule_store.d.ts.map +1 -0
- package/dest/storage/capsule_store/capsule_store.js +253 -0
- package/dest/storage/capsule_store/index.d.ts +2 -0
- package/dest/storage/capsule_store/index.d.ts.map +1 -0
- package/dest/storage/capsule_store/index.js +1 -0
- package/dest/storage/contract_store/contract_store.d.ts +66 -0
- package/dest/storage/contract_store/contract_store.d.ts.map +1 -0
- package/dest/storage/contract_store/contract_store.js +233 -0
- package/dest/storage/contract_store/index.d.ts +2 -0
- package/dest/storage/contract_store/index.d.ts.map +1 -0
- package/dest/storage/contract_store/index.js +1 -0
- package/dest/storage/contract_store/private_functions_tree.d.ts +27 -0
- package/dest/storage/contract_store/private_functions_tree.d.ts.map +1 -0
- package/dest/storage/contract_store/private_functions_tree.js +47 -0
- package/dest/storage/index.d.ts +9 -10
- package/dest/storage/index.d.ts.map +1 -1
- package/dest/storage/index.js +8 -9
- package/dest/storage/metadata.d.ts +2 -0
- package/dest/storage/metadata.d.ts.map +1 -0
- package/dest/storage/metadata.js +1 -0
- package/dest/storage/note_store/index.d.ts +3 -0
- package/dest/storage/note_store/index.d.ts.map +1 -0
- package/dest/storage/note_store/index.js +2 -0
- package/dest/storage/note_store/note_store.d.ts +83 -0
- package/dest/storage/note_store/note_store.d.ts.map +1 -0
- package/dest/storage/note_store/note_store.js +341 -0
- package/dest/storage/note_store/stored_note.d.ts +16 -0
- package/dest/storage/note_store/stored_note.d.ts.map +1 -0
- package/dest/storage/note_store/stored_note.js +43 -0
- package/dest/storage/private_event_store/private_event_store.d.ts +91 -0
- package/dest/storage/private_event_store/private_event_store.d.ts.map +1 -0
- package/dest/storage/private_event_store/private_event_store.js +273 -0
- package/dest/storage/private_event_store/stored_private_event.d.ts +23 -0
- package/dest/storage/private_event_store/stored_private_event.d.ts.map +1 -0
- package/dest/storage/private_event_store/stored_private_event.js +56 -0
- package/dest/storage/tagging_store/index.d.ts +4 -0
- package/dest/storage/tagging_store/index.d.ts.map +1 -0
- package/dest/storage/tagging_store/index.js +3 -0
- package/dest/storage/tagging_store/recipient_tagging_store.d.ts +28 -0
- package/dest/storage/tagging_store/recipient_tagging_store.d.ts.map +1 -0
- package/dest/storage/tagging_store/recipient_tagging_store.js +111 -0
- package/dest/storage/tagging_store/sender_address_book_store.d.ts +14 -0
- package/dest/storage/tagging_store/sender_address_book_store.d.ts.map +1 -0
- package/dest/storage/tagging_store/sender_address_book_store.js +36 -0
- package/dest/storage/tagging_store/sender_tagging_store.d.ts +77 -0
- package/dest/storage/tagging_store/sender_tagging_store.d.ts.map +1 -0
- package/dest/storage/tagging_store/sender_tagging_store.js +348 -0
- package/dest/tagging/constants.d.ts +2 -0
- package/dest/tagging/constants.d.ts.map +1 -0
- package/dest/tagging/constants.js +10 -0
- package/dest/tagging/get_all_logs_by_tags.d.ts +24 -0
- package/dest/tagging/get_all_logs_by_tags.d.ts.map +1 -0
- package/dest/tagging/get_all_logs_by_tags.js +46 -0
- package/dest/tagging/index.d.ts +17 -0
- package/dest/tagging/index.d.ts.map +1 -0
- package/dest/tagging/index.js +15 -0
- package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts +15 -0
- package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts.map +1 -0
- package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.js +99 -0
- package/dest/tagging/recipient_sync/utils/find_highest_indexes.d.ts +12 -0
- package/dest/tagging/recipient_sync/utils/find_highest_indexes.d.ts.map +1 -0
- package/dest/tagging/recipient_sync/utils/find_highest_indexes.js +20 -0
- package/dest/tagging/recipient_sync/utils/load_logs_for_range.d.ts +15 -0
- package/dest/tagging/recipient_sync/utils/load_logs_for_range.d.ts.map +1 -0
- package/dest/tagging/recipient_sync/utils/load_logs_for_range.js +32 -0
- package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts +21 -0
- package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts.map +1 -0
- package/dest/tagging/sender_sync/sync_sender_tagging_indexes.js +74 -0
- package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts +11 -0
- package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts.map +1 -0
- package/dest/tagging/sender_sync/utils/get_status_change_of_pending.js +29 -0
- package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts +21 -0
- package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts.map +1 -0
- package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.js +60 -0
- package/package.json +37 -34
- package/src/bin/check_oracle_version.ts +161 -0
- package/src/block_synchronizer/block_synchronizer.ts +172 -0
- package/src/block_synchronizer/index.ts +1 -0
- package/src/config/index.ts +41 -55
- package/src/config/package_info.ts +1 -1
- package/src/contract_function_simulator/benchmarked_node.ts +103 -0
- package/src/contract_function_simulator/contract_function_simulator.ts +633 -0
- package/src/contract_function_simulator/execution_note_cache.ts +252 -0
- package/src/contract_function_simulator/execution_tagging_index_cache.ts +32 -0
- package/src/contract_function_simulator/hashed_values_cache.ts +47 -0
- package/src/contract_function_simulator/index.ts +13 -0
- package/src/contract_function_simulator/noir-structs/event_validation_request.ts +51 -0
- package/src/contract_function_simulator/noir-structs/log_retrieval_request.ts +28 -0
- package/src/contract_function_simulator/noir-structs/log_retrieval_response.ts +69 -0
- package/src/contract_function_simulator/noir-structs/note_validation_request.ts +64 -0
- package/src/contract_function_simulator/noir-structs/utility_context.ts +23 -0
- package/src/contract_function_simulator/oracle/index.ts +16 -0
- package/src/contract_function_simulator/oracle/interfaces.ts +185 -0
- package/src/contract_function_simulator/oracle/message_load_oracle_inputs.ts +23 -0
- package/src/contract_function_simulator/oracle/note_packing_utils.ts +68 -0
- package/src/contract_function_simulator/oracle/oracle.ts +630 -0
- package/src/contract_function_simulator/oracle/private_execution.ts +141 -0
- package/src/contract_function_simulator/oracle/private_execution_oracle.ts +699 -0
- package/src/contract_function_simulator/oracle/utility_execution_oracle.ts +554 -0
- package/src/contract_function_simulator/pick_notes.ts +141 -0
- package/src/contract_function_simulator/proxied_contract_data_source.ts +83 -0
- package/src/contract_sync/index.ts +98 -0
- package/src/debug/pxe_debug_utils.ts +63 -0
- package/src/entrypoints/client/bundle/index.ts +3 -2
- package/src/entrypoints/client/bundle/utils.ts +35 -36
- package/src/entrypoints/client/lazy/index.ts +3 -2
- package/src/entrypoints/client/lazy/utils.ts +36 -32
- package/src/entrypoints/pxe_creation_options.ts +14 -0
- package/src/entrypoints/server/index.ts +7 -3
- package/src/entrypoints/server/utils.ts +52 -52
- package/src/{pxe_service/error_enriching.ts → error_enriching.ts} +40 -39
- package/src/events/event_service.ts +71 -0
- package/src/events/index.ts +1 -0
- package/src/events/private_event_filter_validator.ts +46 -0
- package/src/job_coordinator/job_coordinator.ts +150 -0
- package/src/logs/log_service.ts +220 -0
- package/src/notes/index.ts +1 -0
- package/src/notes/note_service.ts +195 -0
- package/src/oracle_version.ts +12 -0
- package/src/private_kernel/hints/compute_tx_include_by_timestamp.ts +58 -0
- package/src/private_kernel/hints/index.ts +2 -0
- package/src/{kernel_prover/hints/build_private_kernel_reset_private_inputs.ts → private_kernel/hints/private_kernel_reset_private_inputs_builder.ts} +179 -156
- package/src/private_kernel/index.ts +2 -0
- package/src/private_kernel/private_kernel_execution_prover.ts +433 -0
- package/src/private_kernel/private_kernel_oracle.ts +152 -0
- package/src/pxe.ts +1070 -0
- package/src/storage/{address_data_provider/address_data_provider.ts → address_store/address_store.ts} +15 -21
- package/src/storage/address_store/index.ts +1 -0
- package/src/storage/{sync_data_provider/sync_data_provider.ts → anchor_block_store/anchor_block_store.ts} +10 -17
- package/src/storage/anchor_block_store/index.ts +1 -0
- package/src/storage/capsule_store/capsule_store.ts +315 -0
- package/src/storage/capsule_store/index.ts +1 -0
- package/src/storage/contract_store/contract_store.ts +330 -0
- package/src/storage/contract_store/index.ts +1 -0
- package/src/storage/contract_store/private_functions_tree.ts +67 -0
- package/src/storage/index.ts +8 -10
- package/src/storage/metadata.ts +1 -0
- package/src/storage/note_store/index.ts +2 -0
- package/src/storage/note_store/note_store.ts +411 -0
- package/src/storage/note_store/stored_note.ts +48 -0
- package/src/storage/private_event_store/private_event_store.ts +384 -0
- package/src/storage/private_event_store/stored_private_event.ts +73 -0
- package/src/storage/tagging_store/index.ts +3 -0
- package/src/storage/tagging_store/recipient_tagging_store.ts +139 -0
- package/src/storage/tagging_store/sender_address_book_store.ts +48 -0
- package/src/storage/tagging_store/sender_tagging_store.ts +429 -0
- package/src/tagging/constants.ts +10 -0
- package/src/tagging/get_all_logs_by_tags.ts +68 -0
- package/src/tagging/index.ts +19 -0
- package/src/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.ts +143 -0
- package/src/tagging/recipient_sync/utils/find_highest_indexes.ts +34 -0
- package/src/tagging/recipient_sync/utils/load_logs_for_range.ts +49 -0
- package/src/tagging/sender_sync/sync_sender_tagging_indexes.ts +99 -0
- package/src/tagging/sender_sync/utils/get_status_change_of_pending.ts +36 -0
- package/src/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.ts +84 -0
- package/dest/bin/index.d.ts +0 -3
- package/dest/bin/index.d.ts.map +0 -1
- package/dest/bin/index.js +0 -28
- package/dest/entrypoints/client/pxe_creation_options.d.ts +0 -11
- package/dest/entrypoints/client/pxe_creation_options.d.ts.map +0 -1
- package/dest/kernel_oracle/index.d.ts +0 -45
- package/dest/kernel_oracle/index.d.ts.map +0 -1
- package/dest/kernel_oracle/index.js +0 -76
- package/dest/kernel_prover/hints/build_private_kernel_reset_private_inputs.d.ts +0 -28
- package/dest/kernel_prover/hints/build_private_kernel_reset_private_inputs.d.ts.map +0 -1
- package/dest/kernel_prover/hints/build_private_kernel_reset_private_inputs.js +0 -270
- package/dest/kernel_prover/hints/index.d.ts +0 -2
- package/dest/kernel_prover/hints/index.d.ts.map +0 -1
- package/dest/kernel_prover/hints/index.js +0 -1
- package/dest/kernel_prover/index.d.ts +0 -3
- package/dest/kernel_prover/index.d.ts.map +0 -1
- package/dest/kernel_prover/index.js +0 -2
- package/dest/kernel_prover/kernel_prover.d.ts +0 -38
- package/dest/kernel_prover/kernel_prover.d.ts.map +0 -1
- package/dest/kernel_prover/kernel_prover.js +0 -217
- package/dest/kernel_prover/proving_data_oracle.d.ts +0 -73
- package/dest/kernel_prover/proving_data_oracle.d.ts.map +0 -1
- package/dest/kernel_prover/proving_data_oracle.js +0 -4
- package/dest/note_decryption_utils/add_public_values_to_payload.d.ts +0 -11
- package/dest/note_decryption_utils/add_public_values_to_payload.d.ts.map +0 -1
- package/dest/note_decryption_utils/add_public_values_to_payload.js +0 -47
- package/dest/pxe_http/index.d.ts +0 -2
- package/dest/pxe_http/index.d.ts.map +0 -1
- package/dest/pxe_http/index.js +0 -1
- package/dest/pxe_http/pxe_http_server.d.ts +0 -16
- package/dest/pxe_http/pxe_http_server.d.ts.map +0 -1
- package/dest/pxe_http/pxe_http_server.js +0 -27
- package/dest/pxe_oracle_interface/index.d.ts +0 -159
- package/dest/pxe_oracle_interface/index.d.ts.map +0 -1
- package/dest/pxe_oracle_interface/index.js +0 -692
- package/dest/pxe_oracle_interface/tagging_utils.d.ts +0 -17
- package/dest/pxe_oracle_interface/tagging_utils.d.ts.map +0 -1
- package/dest/pxe_oracle_interface/tagging_utils.js +0 -23
- package/dest/pxe_service/error_enriching.d.ts +0 -11
- package/dest/pxe_service/error_enriching.d.ts.map +0 -1
- package/dest/pxe_service/index.d.ts +0 -3
- package/dest/pxe_service/index.d.ts.map +0 -1
- package/dest/pxe_service/index.js +0 -2
- package/dest/pxe_service/pxe_service.d.ts +0 -111
- package/dest/pxe_service/pxe_service.d.ts.map +0 -1
- package/dest/pxe_service/pxe_service.js +0 -664
- package/dest/storage/address_data_provider/address_data_provider.d.ts +0 -13
- package/dest/storage/address_data_provider/address_data_provider.d.ts.map +0 -1
- package/dest/storage/address_data_provider/index.d.ts +0 -2
- package/dest/storage/address_data_provider/index.d.ts.map +0 -1
- package/dest/storage/address_data_provider/index.js +0 -1
- package/dest/storage/auth_witness_data_provider/auth_witness_data_provider.d.ts +0 -11
- package/dest/storage/auth_witness_data_provider/auth_witness_data_provider.d.ts.map +0 -1
- package/dest/storage/auth_witness_data_provider/auth_witness_data_provider.js +0 -20
- package/dest/storage/auth_witness_data_provider/index.d.ts +0 -2
- package/dest/storage/auth_witness_data_provider/index.d.ts.map +0 -1
- package/dest/storage/auth_witness_data_provider/index.js +0 -1
- package/dest/storage/capsule_data_provider/capsule_data_provider.d.ts +0 -16
- package/dest/storage/capsule_data_provider/capsule_data_provider.d.ts.map +0 -1
- package/dest/storage/capsule_data_provider/capsule_data_provider.js +0 -57
- package/dest/storage/capsule_data_provider/index.d.ts +0 -2
- package/dest/storage/capsule_data_provider/index.d.ts.map +0 -1
- package/dest/storage/capsule_data_provider/index.js +0 -1
- package/dest/storage/contract_data_provider/contract_data_provider.d.ts +0 -109
- package/dest/storage/contract_data_provider/contract_data_provider.d.ts.map +0 -1
- package/dest/storage/contract_data_provider/contract_data_provider.js +0 -183
- package/dest/storage/contract_data_provider/index.d.ts +0 -3
- package/dest/storage/contract_data_provider/index.d.ts.map +0 -1
- package/dest/storage/contract_data_provider/index.js +0 -2
- package/dest/storage/contract_data_provider/private_functions_tree.d.ts +0 -66
- package/dest/storage/contract_data_provider/private_functions_tree.d.ts.map +0 -1
- package/dest/storage/contract_data_provider/private_functions_tree.js +0 -99
- package/dest/storage/data_provider.d.ts +0 -4
- package/dest/storage/data_provider.d.ts.map +0 -1
- package/dest/storage/data_provider.js +0 -1
- package/dest/storage/note_data_provider/index.d.ts +0 -3
- package/dest/storage/note_data_provider/index.d.ts.map +0 -1
- package/dest/storage/note_data_provider/index.js +0 -2
- package/dest/storage/note_data_provider/note_dao.d.ts +0 -106
- package/dest/storage/note_data_provider/note_dao.d.ts.map +0 -1
- package/dest/storage/note_data_provider/note_dao.js +0 -106
- package/dest/storage/note_data_provider/note_data_provider.d.ts +0 -20
- package/dest/storage/note_data_provider/note_data_provider.d.ts.map +0 -1
- package/dest/storage/note_data_provider/note_data_provider.js +0 -249
- package/dest/storage/sync_data_provider/index.d.ts +0 -2
- package/dest/storage/sync_data_provider/index.d.ts.map +0 -1
- package/dest/storage/sync_data_provider/index.js +0 -1
- package/dest/storage/sync_data_provider/sync_data_provider.d.ts +0 -12
- package/dest/storage/sync_data_provider/sync_data_provider.d.ts.map +0 -1
- package/dest/storage/sync_data_provider/sync_data_provider.js +0 -29
- package/dest/storage/tagging_data_provider/index.d.ts +0 -2
- package/dest/storage/tagging_data_provider/index.d.ts.map +0 -1
- package/dest/storage/tagging_data_provider/index.js +0 -1
- package/dest/storage/tagging_data_provider/tagging_data_provider.d.ts +0 -18
- package/dest/storage/tagging_data_provider/tagging_data_provider.d.ts.map +0 -1
- package/dest/storage/tagging_data_provider/tagging_data_provider.js +0 -65
- package/dest/synchronizer/index.d.ts +0 -2
- package/dest/synchronizer/index.d.ts.map +0 -1
- package/dest/synchronizer/index.js +0 -1
- package/dest/synchronizer/synchronizer.d.ts +0 -37
- package/dest/synchronizer/synchronizer.d.ts.map +0 -1
- package/dest/synchronizer/synchronizer.js +0 -103
- package/dest/test/pxe_test_suite.d.ts +0 -3
- package/dest/test/pxe_test_suite.d.ts.map +0 -1
- package/dest/test/pxe_test_suite.js +0 -97
- package/src/bin/index.ts +0 -38
- package/src/entrypoints/client/pxe_creation_options.ts +0 -7
- package/src/kernel_oracle/index.ts +0 -117
- package/src/kernel_prover/hints/index.ts +0 -1
- package/src/kernel_prover/index.ts +0 -2
- package/src/kernel_prover/kernel_prover.ts +0 -351
- package/src/kernel_prover/proving_data_oracle.ts +0 -83
- package/src/note_decryption_utils/add_public_values_to_payload.ts +0 -64
- package/src/pxe_http/index.ts +0 -1
- package/src/pxe_http/pxe_http_server.ts +0 -29
- package/src/pxe_oracle_interface/index.ts +0 -925
- package/src/pxe_oracle_interface/tagging_utils.ts +0 -32
- package/src/pxe_service/index.ts +0 -2
- package/src/pxe_service/pxe_service.ts +0 -949
- package/src/storage/address_data_provider/index.ts +0 -1
- package/src/storage/auth_witness_data_provider/auth_witness_data_provider.ts +0 -34
- package/src/storage/auth_witness_data_provider/index.ts +0 -1
- package/src/storage/capsule_data_provider/capsule_data_provider.ts +0 -80
- package/src/storage/capsule_data_provider/index.ts +0 -1
- package/src/storage/contract_data_provider/contract_data_provider.ts +0 -261
- package/src/storage/contract_data_provider/index.ts +0 -2
- package/src/storage/contract_data_provider/private_functions_tree.ts +0 -131
- package/src/storage/data_provider.ts +0 -3
- package/src/storage/note_data_provider/index.ts +0 -2
- package/src/storage/note_data_provider/note_dao.ts +0 -162
- package/src/storage/note_data_provider/note_data_provider.ts +0 -345
- package/src/storage/sync_data_provider/index.ts +0 -1
- package/src/storage/tagging_data_provider/index.ts +0 -1
- package/src/storage/tagging_data_provider/tagging_data_provider.ts +0 -92
- package/src/synchronizer/index.ts +0 -1
- package/src/synchronizer/synchronizer.ts +0 -121
- package/src/test/pxe_test_suite.ts +0 -111
- /package/dest/entrypoints/{client/pxe_creation_options.js → pxe_creation_options.js} +0 -0
|
@@ -4,17 +4,19 @@ import {
|
|
|
4
4
|
MAX_NOTE_HASH_READ_REQUESTS_PER_TX,
|
|
5
5
|
MAX_NULLIFIERS_PER_TX,
|
|
6
6
|
MAX_NULLIFIER_READ_REQUESTS_PER_TX,
|
|
7
|
+
MAX_PRIVATE_LOGS_PER_TX,
|
|
7
8
|
NULLIFIER_TREE_HEIGHT,
|
|
8
|
-
VK_TREE_HEIGHT,
|
|
9
9
|
} from '@aztec/constants';
|
|
10
10
|
import { makeTuple } from '@aztec/foundation/array';
|
|
11
11
|
import { padArrayEnd } from '@aztec/foundation/collection';
|
|
12
|
-
import type { Fr } from '@aztec/foundation/
|
|
12
|
+
import type { Fr } from '@aztec/foundation/curves/bn254';
|
|
13
13
|
import { type Tuple, assertLength } from '@aztec/foundation/serialize';
|
|
14
14
|
import { MembershipWitness } from '@aztec/foundation/trees';
|
|
15
15
|
import { privateKernelResetDimensionsConfig } from '@aztec/noir-protocol-circuits-types/client';
|
|
16
16
|
import {
|
|
17
|
+
ClaimedLengthArray,
|
|
17
18
|
KeyValidationHint,
|
|
19
|
+
PaddedSideEffects,
|
|
18
20
|
type PrivateCircuitPublicInputs,
|
|
19
21
|
type PrivateKernelCircuitPublicInputs,
|
|
20
22
|
PrivateKernelData,
|
|
@@ -22,41 +24,36 @@ import {
|
|
|
22
24
|
PrivateKernelResetDimensions,
|
|
23
25
|
PrivateKernelResetHints,
|
|
24
26
|
type PrivateKernelSimulateOutput,
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
ReadRequestState,
|
|
27
|
+
ReadRequestActionEnum,
|
|
28
|
+
ReadRequestResetActions,
|
|
28
29
|
type ScopedKeyValidationRequestAndGenerator,
|
|
29
30
|
ScopedNoteHash,
|
|
30
31
|
ScopedNullifier,
|
|
31
32
|
ScopedReadRequest,
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
33
|
+
TransientDataSquashingHint,
|
|
34
|
+
buildNoteHashReadRequestHintsFromResetActions,
|
|
35
|
+
buildNullifierReadRequestHintsFromResetActions,
|
|
35
36
|
buildTransientDataHints,
|
|
36
|
-
countAccumulatedItems,
|
|
37
37
|
findPrivateKernelResetDimensions,
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
getNullifierReadRequestResetStates,
|
|
38
|
+
getNoteHashReadRequestResetActions,
|
|
39
|
+
getNullifierReadRequestResetActions,
|
|
41
40
|
privateKernelResetDimensionNames,
|
|
42
41
|
} from '@aztec/stdlib/kernel';
|
|
43
42
|
import { type PrivateCallExecutionResult, collectNested } from '@aztec/stdlib/tx';
|
|
43
|
+
import { VkData } from '@aztec/stdlib/vks';
|
|
44
44
|
|
|
45
|
-
import type {
|
|
45
|
+
import type { PrivateKernelOracle } from '../private_kernel_oracle.js';
|
|
46
46
|
|
|
47
|
-
function collectNestedReadRequests(
|
|
47
|
+
function collectNestedReadRequests<N extends number>(
|
|
48
48
|
executionStack: PrivateCallExecutionResult[],
|
|
49
|
-
extractReadRequests: (execution: PrivateCallExecutionResult) =>
|
|
49
|
+
extractReadRequests: (execution: PrivateCallExecutionResult) => ClaimedLengthArray<ScopedReadRequest, N>,
|
|
50
50
|
): ScopedReadRequest[] {
|
|
51
51
|
return collectNested(executionStack, executionResult => {
|
|
52
|
-
|
|
53
|
-
return nonEmptyReadRequests.map(
|
|
54
|
-
readRequest => new ScopedReadRequest(readRequest, executionResult.publicInputs.callContext.contractAddress),
|
|
55
|
-
);
|
|
52
|
+
return extractReadRequests(executionResult).getActiveItems();
|
|
56
53
|
});
|
|
57
54
|
}
|
|
58
55
|
|
|
59
|
-
function getNullifierMembershipWitnessResolver(oracle:
|
|
56
|
+
function getNullifierMembershipWitnessResolver(oracle: PrivateKernelOracle) {
|
|
60
57
|
return async (nullifier: Fr) => {
|
|
61
58
|
const res = await oracle.getNullifierMembershipWitness(nullifier);
|
|
62
59
|
if (!res) {
|
|
@@ -72,23 +69,21 @@ function getNullifierMembershipWitnessResolver(oracle: ProvingDataOracle) {
|
|
|
72
69
|
}
|
|
73
70
|
|
|
74
71
|
async function getMasterSecretKeysAndAppKeyGenerators(
|
|
75
|
-
keyValidationRequests:
|
|
76
|
-
|
|
72
|
+
keyValidationRequests: ClaimedLengthArray<
|
|
73
|
+
ScopedKeyValidationRequestAndGenerator,
|
|
74
|
+
typeof MAX_KEY_VALIDATION_REQUESTS_PER_TX
|
|
75
|
+
>,
|
|
76
|
+
numRequestsToVerify: number,
|
|
77
|
+
oracle: PrivateKernelOracle,
|
|
77
78
|
) {
|
|
78
|
-
const
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
}
|
|
84
|
-
const secretKeys = await oracle.getMasterSecretKey(request.request.pkM);
|
|
85
|
-
keysHints.push(new KeyValidationHint(secretKeys, i));
|
|
86
|
-
}
|
|
87
|
-
return padArrayEnd(
|
|
88
|
-
keysHints,
|
|
89
|
-
KeyValidationHint.nada(MAX_KEY_VALIDATION_REQUESTS_PER_TX),
|
|
90
|
-
MAX_KEY_VALIDATION_REQUESTS_PER_TX,
|
|
79
|
+
const numRequestsToProcess = Math.min(keyValidationRequests.claimedLength, numRequestsToVerify);
|
|
80
|
+
const keysHints = await Promise.all(
|
|
81
|
+
keyValidationRequests.array.slice(0, numRequestsToProcess).map(async ({ request }) => {
|
|
82
|
+
const secretKeys = await oracle.getMasterSecretKey(request.request.pkM);
|
|
83
|
+
return new KeyValidationHint(secretKeys);
|
|
84
|
+
}),
|
|
91
85
|
);
|
|
86
|
+
return padArrayEnd(keysHints, KeyValidationHint.empty(), MAX_KEY_VALIDATION_REQUESTS_PER_TX);
|
|
92
87
|
}
|
|
93
88
|
|
|
94
89
|
export class PrivateKernelResetPrivateInputsBuilder {
|
|
@@ -96,25 +91,25 @@ export class PrivateKernelResetPrivateInputsBuilder {
|
|
|
96
91
|
// If there's no next iteration, it's the final reset.
|
|
97
92
|
private nextIteration?: PrivateCircuitPublicInputs;
|
|
98
93
|
|
|
99
|
-
private
|
|
100
|
-
private
|
|
94
|
+
private noteHashResetActions: ReadRequestResetActions<typeof MAX_NOTE_HASH_READ_REQUESTS_PER_TX>;
|
|
95
|
+
private nullifierResetActions: ReadRequestResetActions<typeof MAX_NULLIFIER_READ_REQUESTS_PER_TX>;
|
|
101
96
|
private numTransientData?: number;
|
|
102
|
-
private
|
|
97
|
+
private transientDataSquashingHints: Tuple<TransientDataSquashingHint, typeof MAX_NULLIFIERS_PER_TX>;
|
|
103
98
|
private requestedDimensions: PrivateKernelResetDimensions;
|
|
104
99
|
|
|
105
100
|
constructor(
|
|
106
101
|
private previousKernelOutput: PrivateKernelSimulateOutput<PrivateKernelCircuitPublicInputs>,
|
|
107
102
|
private executionStack: PrivateCallExecutionResult[],
|
|
108
103
|
private noteHashNullifierCounterMap: Map<number, number>,
|
|
109
|
-
private
|
|
104
|
+
private splitCounter: number,
|
|
110
105
|
) {
|
|
111
106
|
this.previousKernel = previousKernelOutput.publicInputs;
|
|
112
107
|
this.requestedDimensions = PrivateKernelResetDimensions.empty();
|
|
113
|
-
this.
|
|
114
|
-
this.
|
|
115
|
-
this.
|
|
108
|
+
this.noteHashResetActions = ReadRequestResetActions.empty(MAX_NOTE_HASH_READ_REQUESTS_PER_TX);
|
|
109
|
+
this.nullifierResetActions = ReadRequestResetActions.empty(MAX_NULLIFIER_READ_REQUESTS_PER_TX);
|
|
110
|
+
this.transientDataSquashingHints = makeTuple(
|
|
116
111
|
MAX_NULLIFIERS_PER_TX,
|
|
117
|
-
() => new
|
|
112
|
+
() => new TransientDataSquashingHint(MAX_NULLIFIERS_PER_TX, MAX_NOTE_HASHES_PER_TX),
|
|
118
113
|
);
|
|
119
114
|
this.nextIteration = executionStack[this.executionStack.length - 1]?.publicInputs;
|
|
120
115
|
}
|
|
@@ -143,7 +138,7 @@ export class PrivateKernelResetPrivateInputsBuilder {
|
|
|
143
138
|
}
|
|
144
139
|
}
|
|
145
140
|
|
|
146
|
-
async build(oracle:
|
|
141
|
+
async build(oracle: PrivateKernelOracle) {
|
|
147
142
|
if (privateKernelResetDimensionNames.every(name => !this.requestedDimensions[name])) {
|
|
148
143
|
throw new Error('Reset is not required.');
|
|
149
144
|
}
|
|
@@ -162,122 +157,142 @@ export class PrivateKernelResetPrivateInputsBuilder {
|
|
|
162
157
|
allowRemainder,
|
|
163
158
|
);
|
|
164
159
|
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
Number(previousVkMembershipWitness.leafIndex),
|
|
170
|
-
assertLength<Fr, typeof VK_TREE_HEIGHT>(previousVkMembershipWitness.siblingPath, VK_TREE_HEIGHT),
|
|
171
|
-
);
|
|
172
|
-
|
|
173
|
-
this.reduceReadRequestStates(
|
|
174
|
-
this.noteHashResetStates,
|
|
175
|
-
dimensions.NOTE_HASH_PENDING_AMOUNT,
|
|
176
|
-
dimensions.NOTE_HASH_SETTLED_AMOUNT,
|
|
160
|
+
this.reduceReadRequestActions(
|
|
161
|
+
this.noteHashResetActions,
|
|
162
|
+
dimensions.NOTE_HASH_PENDING_READ,
|
|
163
|
+
dimensions.NOTE_HASH_SETTLED_READ,
|
|
177
164
|
);
|
|
178
|
-
this.
|
|
179
|
-
this.
|
|
180
|
-
dimensions.
|
|
181
|
-
dimensions.
|
|
165
|
+
this.reduceReadRequestActions(
|
|
166
|
+
this.nullifierResetActions,
|
|
167
|
+
dimensions.NULLIFIER_PENDING_READ,
|
|
168
|
+
dimensions.NULLIFIER_SETTLED_READ,
|
|
182
169
|
);
|
|
183
170
|
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
171
|
+
// Execute all the expensive node querying operations in parallel.
|
|
172
|
+
const [previousVkMembershipWitness, noteHashReadRequestHints, nullifierReadRequestHints, keyValidationHints] =
|
|
173
|
+
await Promise.all([
|
|
174
|
+
oracle.getVkMembershipWitness(this.previousKernelOutput.verificationKey.keyAsFields),
|
|
175
|
+
buildNoteHashReadRequestHintsFromResetActions<
|
|
176
|
+
typeof MAX_NOTE_HASH_READ_REQUESTS_PER_TX,
|
|
177
|
+
typeof MAX_NOTE_HASH_READ_REQUESTS_PER_TX
|
|
178
|
+
>(
|
|
188
179
|
oracle,
|
|
189
180
|
this.previousKernel.validationRequests.noteHashReadRequests,
|
|
190
181
|
this.previousKernel.end.noteHashes,
|
|
191
|
-
this.
|
|
192
|
-
noteHashLeafIndexMap,
|
|
182
|
+
this.noteHashResetActions,
|
|
193
183
|
),
|
|
194
|
-
|
|
184
|
+
buildNullifierReadRequestHintsFromResetActions<
|
|
185
|
+
typeof MAX_NULLIFIER_READ_REQUESTS_PER_TX,
|
|
186
|
+
typeof MAX_NULLIFIER_READ_REQUESTS_PER_TX
|
|
187
|
+
>(
|
|
195
188
|
{ getNullifierMembershipWitness: getNullifierMembershipWitnessResolver(oracle) },
|
|
196
189
|
this.previousKernel.validationRequests.nullifierReadRequests,
|
|
197
|
-
this.
|
|
190
|
+
this.nullifierResetActions,
|
|
198
191
|
),
|
|
199
|
-
|
|
192
|
+
getMasterSecretKeysAndAppKeyGenerators(
|
|
200
193
|
this.previousKernel.validationRequests.scopedKeyValidationRequestsAndGenerators,
|
|
194
|
+
dimensions.KEY_VALIDATION,
|
|
201
195
|
oracle,
|
|
202
196
|
),
|
|
203
|
-
|
|
204
|
-
|
|
197
|
+
]);
|
|
198
|
+
|
|
199
|
+
const vkData = new VkData(
|
|
200
|
+
this.previousKernelOutput.verificationKey,
|
|
201
|
+
Number(previousVkMembershipWitness.leafIndex),
|
|
202
|
+
previousVkMembershipWitness.siblingPath,
|
|
203
|
+
);
|
|
204
|
+
const previousKernelData = new PrivateKernelData(this.previousKernelOutput.publicInputs, vkData);
|
|
205
|
+
|
|
206
|
+
// TODO: Enable padding when we have a better idea what are the final amounts we should pad to.
|
|
207
|
+
const paddedSideEffects = PaddedSideEffects.empty();
|
|
208
|
+
|
|
209
|
+
return new PrivateKernelResetCircuitPrivateInputs(
|
|
210
|
+
previousKernelData,
|
|
211
|
+
paddedSideEffects,
|
|
212
|
+
new PrivateKernelResetHints(
|
|
213
|
+
noteHashReadRequestHints,
|
|
214
|
+
nullifierReadRequestHints,
|
|
215
|
+
keyValidationHints,
|
|
216
|
+
this.transientDataSquashingHints,
|
|
205
217
|
),
|
|
206
218
|
dimensions,
|
|
207
219
|
);
|
|
208
220
|
}
|
|
209
221
|
|
|
210
|
-
private
|
|
211
|
-
|
|
222
|
+
private reduceReadRequestActions<NUM_READS extends number>(
|
|
223
|
+
resetActions: ReadRequestResetActions<NUM_READS>,
|
|
212
224
|
maxPending: number,
|
|
213
225
|
maxSettled: number,
|
|
214
226
|
) {
|
|
215
227
|
let numPending = 0;
|
|
216
228
|
let numSettled = 0;
|
|
217
|
-
for (let i = 0; i <
|
|
218
|
-
const
|
|
219
|
-
if (
|
|
229
|
+
for (let i = 0; i < resetActions.actions.length; i++) {
|
|
230
|
+
const action = resetActions.actions[i];
|
|
231
|
+
if (action === ReadRequestActionEnum.READ_AS_PENDING) {
|
|
220
232
|
if (numPending < maxPending) {
|
|
221
233
|
numPending++;
|
|
222
234
|
} else {
|
|
223
|
-
|
|
235
|
+
resetActions.actions[i] = ReadRequestActionEnum.SKIP;
|
|
224
236
|
}
|
|
225
|
-
} else if (
|
|
237
|
+
} else if (action === ReadRequestActionEnum.READ_AS_SETTLED) {
|
|
226
238
|
if (numSettled < maxSettled) {
|
|
227
239
|
numSettled++;
|
|
228
240
|
} else {
|
|
229
|
-
|
|
241
|
+
resetActions.actions[i] = ReadRequestActionEnum.SKIP;
|
|
230
242
|
}
|
|
231
243
|
}
|
|
232
244
|
}
|
|
233
245
|
|
|
234
|
-
|
|
246
|
+
resetActions.pendingReadHints = resetActions.pendingReadHints.slice(0, maxPending);
|
|
235
247
|
}
|
|
236
248
|
|
|
237
249
|
private needsResetNoteHashReadRequests(forceResetAll = false) {
|
|
238
|
-
const numCurr =
|
|
239
|
-
const numNext = this.nextIteration ?
|
|
250
|
+
const numCurr = this.previousKernel.validationRequests.noteHashReadRequests.claimedLength;
|
|
251
|
+
const numNext = this.nextIteration ? this.nextIteration.noteHashReadRequests.claimedLength : 0;
|
|
240
252
|
const maxAmountToKeep = !this.nextIteration || forceResetAll ? 0 : MAX_NOTE_HASH_READ_REQUESTS_PER_TX;
|
|
241
253
|
if (numCurr + numNext <= maxAmountToKeep) {
|
|
242
254
|
return false;
|
|
243
255
|
}
|
|
244
256
|
|
|
245
257
|
const futureNoteHashes = collectNested(this.executionStack, executionResult => {
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
noteHash => new ScopedNoteHash(noteHash, executionResult.publicInputs.callContext.contractAddress)
|
|
249
|
-
);
|
|
258
|
+
return executionResult.publicInputs.noteHashes
|
|
259
|
+
.getActiveItems()
|
|
260
|
+
.map(noteHash => new ScopedNoteHash(noteHash, executionResult.publicInputs.callContext.contractAddress));
|
|
250
261
|
});
|
|
251
262
|
|
|
252
|
-
const
|
|
263
|
+
const resetActions = getNoteHashReadRequestResetActions(
|
|
253
264
|
this.previousKernel.validationRequests.noteHashReadRequests,
|
|
254
265
|
this.previousKernel.end.noteHashes,
|
|
255
266
|
futureNoteHashes,
|
|
256
267
|
);
|
|
257
268
|
|
|
258
|
-
const numPendingReads =
|
|
259
|
-
const numSettledReads =
|
|
260
|
-
(accum,
|
|
269
|
+
const numPendingReads = resetActions.pendingReadHints.length;
|
|
270
|
+
const numSettledReads = resetActions.actions.reduce(
|
|
271
|
+
(accum, action) => accum + (action === ReadRequestActionEnum.READ_AS_SETTLED ? 1 : 0),
|
|
261
272
|
0,
|
|
262
273
|
);
|
|
263
274
|
|
|
264
275
|
if (!this.nextIteration) {
|
|
265
|
-
this.
|
|
266
|
-
this.requestedDimensions.
|
|
267
|
-
this.requestedDimensions.
|
|
276
|
+
this.noteHashResetActions = resetActions;
|
|
277
|
+
this.requestedDimensions.NOTE_HASH_PENDING_READ = numPendingReads;
|
|
278
|
+
this.requestedDimensions.NOTE_HASH_SETTLED_READ = numSettledReads;
|
|
268
279
|
} else {
|
|
269
280
|
// Pick only one dimension to reset if next iteration is not empty.
|
|
270
281
|
if (numPendingReads > numSettledReads) {
|
|
271
|
-
this.requestedDimensions.
|
|
272
|
-
this.
|
|
273
|
-
|
|
282
|
+
this.requestedDimensions.NOTE_HASH_PENDING_READ = numPendingReads;
|
|
283
|
+
this.noteHashResetActions.actions = assertLength(
|
|
284
|
+
resetActions.actions.map(action =>
|
|
285
|
+
action === ReadRequestActionEnum.READ_AS_PENDING ? action : ReadRequestActionEnum.SKIP,
|
|
286
|
+
),
|
|
274
287
|
MAX_NOTE_HASH_READ_REQUESTS_PER_TX,
|
|
275
288
|
);
|
|
276
|
-
this.
|
|
289
|
+
this.noteHashResetActions.pendingReadHints = resetActions.pendingReadHints;
|
|
277
290
|
} else {
|
|
278
|
-
this.requestedDimensions.
|
|
279
|
-
this.
|
|
280
|
-
|
|
291
|
+
this.requestedDimensions.NOTE_HASH_SETTLED_READ = numSettledReads;
|
|
292
|
+
this.noteHashResetActions.actions = assertLength(
|
|
293
|
+
resetActions.actions.map(action =>
|
|
294
|
+
action === ReadRequestActionEnum.READ_AS_SETTLED ? action : ReadRequestActionEnum.SKIP,
|
|
295
|
+
),
|
|
281
296
|
MAX_NOTE_HASH_READ_REQUESTS_PER_TX,
|
|
282
297
|
);
|
|
283
298
|
}
|
|
@@ -287,49 +302,52 @@ export class PrivateKernelResetPrivateInputsBuilder {
|
|
|
287
302
|
}
|
|
288
303
|
|
|
289
304
|
private needsResetNullifierReadRequests(forceResetAll = false) {
|
|
290
|
-
const numCurr =
|
|
291
|
-
const numNext = this.nextIteration ?
|
|
305
|
+
const numCurr = this.previousKernel.validationRequests.nullifierReadRequests.claimedLength;
|
|
306
|
+
const numNext = this.nextIteration ? this.nextIteration.nullifierReadRequests.claimedLength : 0;
|
|
292
307
|
const maxAmountToKeep = !this.nextIteration || forceResetAll ? 0 : MAX_NULLIFIER_READ_REQUESTS_PER_TX;
|
|
293
308
|
if (numCurr + numNext <= maxAmountToKeep) {
|
|
294
309
|
return false;
|
|
295
310
|
}
|
|
296
311
|
|
|
297
312
|
const futureNullifiers = collectNested(this.executionStack, executionResult => {
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
nullifier => new ScopedNullifier(nullifier, executionResult.publicInputs.callContext.contractAddress)
|
|
301
|
-
);
|
|
313
|
+
return executionResult.publicInputs.nullifiers
|
|
314
|
+
.getActiveItems()
|
|
315
|
+
.map(nullifier => new ScopedNullifier(nullifier, executionResult.publicInputs.callContext.contractAddress));
|
|
302
316
|
});
|
|
303
317
|
|
|
304
|
-
const
|
|
318
|
+
const resetActions = getNullifierReadRequestResetActions(
|
|
305
319
|
this.previousKernel.validationRequests.nullifierReadRequests,
|
|
306
320
|
this.previousKernel.end.nullifiers,
|
|
307
321
|
futureNullifiers,
|
|
308
322
|
);
|
|
309
323
|
|
|
310
|
-
const numPendingReads =
|
|
311
|
-
const numSettledReads =
|
|
312
|
-
(accum,
|
|
324
|
+
const numPendingReads = resetActions.pendingReadHints.length;
|
|
325
|
+
const numSettledReads = resetActions.actions.reduce(
|
|
326
|
+
(accum, action) => accum + (action === ReadRequestActionEnum.READ_AS_SETTLED ? 1 : 0),
|
|
313
327
|
0,
|
|
314
328
|
);
|
|
315
329
|
|
|
316
330
|
if (!this.nextIteration) {
|
|
317
|
-
this.
|
|
318
|
-
this.requestedDimensions.
|
|
319
|
-
this.requestedDimensions.
|
|
331
|
+
this.nullifierResetActions = resetActions;
|
|
332
|
+
this.requestedDimensions.NULLIFIER_PENDING_READ = numPendingReads;
|
|
333
|
+
this.requestedDimensions.NULLIFIER_SETTLED_READ = numSettledReads;
|
|
320
334
|
} else {
|
|
321
335
|
// Pick only one dimension to reset if next iteration is not empty.
|
|
322
336
|
if (numPendingReads > numSettledReads) {
|
|
323
|
-
this.requestedDimensions.
|
|
324
|
-
this.
|
|
325
|
-
|
|
337
|
+
this.requestedDimensions.NULLIFIER_PENDING_READ = numPendingReads;
|
|
338
|
+
this.nullifierResetActions.actions = assertLength(
|
|
339
|
+
resetActions.actions.map(action =>
|
|
340
|
+
action === ReadRequestActionEnum.READ_AS_PENDING ? action : ReadRequestActionEnum.SKIP,
|
|
341
|
+
),
|
|
326
342
|
MAX_NULLIFIER_READ_REQUESTS_PER_TX,
|
|
327
343
|
);
|
|
328
|
-
this.
|
|
344
|
+
this.nullifierResetActions.pendingReadHints = resetActions.pendingReadHints;
|
|
329
345
|
} else {
|
|
330
|
-
this.requestedDimensions.
|
|
331
|
-
this.
|
|
332
|
-
|
|
346
|
+
this.requestedDimensions.NULLIFIER_SETTLED_READ = numSettledReads;
|
|
347
|
+
this.nullifierResetActions.actions = assertLength(
|
|
348
|
+
resetActions.actions.map(action =>
|
|
349
|
+
action === ReadRequestActionEnum.READ_AS_SETTLED ? action : ReadRequestActionEnum.SKIP,
|
|
350
|
+
),
|
|
333
351
|
MAX_NULLIFIER_READ_REQUESTS_PER_TX,
|
|
334
352
|
);
|
|
335
353
|
}
|
|
@@ -339,18 +357,14 @@ export class PrivateKernelResetPrivateInputsBuilder {
|
|
|
339
357
|
}
|
|
340
358
|
|
|
341
359
|
private needsResetNullifierKeys() {
|
|
342
|
-
const numCurr =
|
|
343
|
-
|
|
344
|
-
);
|
|
345
|
-
const numNext = this.nextIteration
|
|
346
|
-
? countAccumulatedItems(this.nextIteration.keyValidationRequestsAndGenerators)
|
|
347
|
-
: 0;
|
|
360
|
+
const numCurr = this.previousKernel.validationRequests.scopedKeyValidationRequestsAndGenerators.claimedLength;
|
|
361
|
+
const numNext = this.nextIteration ? this.nextIteration.keyValidationRequestsAndGenerators.claimedLength : 0;
|
|
348
362
|
const maxAmountToKeep = !this.nextIteration ? 0 : MAX_KEY_VALIDATION_REQUESTS_PER_TX;
|
|
349
363
|
if (numCurr + numNext <= maxAmountToKeep) {
|
|
350
364
|
return false;
|
|
351
365
|
}
|
|
352
366
|
|
|
353
|
-
this.requestedDimensions.
|
|
367
|
+
this.requestedDimensions.KEY_VALIDATION = numCurr;
|
|
354
368
|
|
|
355
369
|
return true;
|
|
356
370
|
}
|
|
@@ -360,14 +374,16 @@ export class PrivateKernelResetPrivateInputsBuilder {
|
|
|
360
374
|
this.numTransientData = 0;
|
|
361
375
|
|
|
362
376
|
const nextAccumNoteHashes =
|
|
363
|
-
|
|
364
|
-
countAccumulatedItems(this.nextIteration?.noteHashes ?? []);
|
|
377
|
+
this.previousKernel.end.noteHashes.claimedLength + (this.nextIteration?.noteHashes.claimedLength ?? 0);
|
|
365
378
|
const noteHashWillOverflow = nextAccumNoteHashes > MAX_NOTE_HASHES_PER_TX;
|
|
366
379
|
const nextAccumNullifiers =
|
|
367
|
-
|
|
368
|
-
countAccumulatedItems(this.nextIteration?.nullifiers ?? []);
|
|
380
|
+
this.previousKernel.end.nullifiers.claimedLength + (this.nextIteration?.nullifiers.claimedLength ?? 0);
|
|
369
381
|
const nullifierWillOverflow = nextAccumNullifiers > MAX_NULLIFIERS_PER_TX;
|
|
370
|
-
|
|
382
|
+
const nextAccumLogs =
|
|
383
|
+
this.previousKernel.end.privateLogs.claimedLength + (this.nextIteration?.privateLogs.claimedLength ?? 0);
|
|
384
|
+
const logsWillOverflow = nextAccumLogs > MAX_PRIVATE_LOGS_PER_TX;
|
|
385
|
+
|
|
386
|
+
if (this.nextIteration && !noteHashWillOverflow && !nullifierWillOverflow && !logsWillOverflow) {
|
|
371
387
|
return false;
|
|
372
388
|
}
|
|
373
389
|
|
|
@@ -379,35 +395,36 @@ export class PrivateKernelResetPrivateInputsBuilder {
|
|
|
379
395
|
this.executionStack,
|
|
380
396
|
executionResult => executionResult.publicInputs.nullifierReadRequests,
|
|
381
397
|
);
|
|
398
|
+
// TODO(#15902): Collect future logs and only allow squashing a note hash when all its logs have been emitted
|
|
399
|
+
// (i.e. none of the future logs are linked to the to-be-squashed note hashes).
|
|
382
400
|
if (this.nextIteration) {
|
|
383
401
|
// If it's not the final reset, only one dimension will be reset at a time.
|
|
384
402
|
// The note hashes and nullifiers for the remaining read requests can't be squashed.
|
|
385
|
-
futureNoteHashReads.push(
|
|
386
|
-
|
|
387
|
-
);
|
|
388
|
-
futureNullifierReads.push(
|
|
389
|
-
...this.previousKernel.validationRequests.nullifierReadRequests.filter(r => !r.isEmpty()),
|
|
390
|
-
);
|
|
403
|
+
futureNoteHashReads.push(...this.previousKernel.validationRequests.noteHashReadRequests.getActiveItems());
|
|
404
|
+
futureNullifierReads.push(...this.previousKernel.validationRequests.nullifierReadRequests.getActiveItems());
|
|
391
405
|
}
|
|
392
406
|
|
|
393
|
-
const { numTransientData, hints:
|
|
407
|
+
const { numTransientData, hints: transientDataSquashingHints } = buildTransientDataHints(
|
|
394
408
|
this.previousKernel.end.noteHashes,
|
|
395
409
|
this.previousKernel.end.nullifiers,
|
|
396
410
|
futureNoteHashReads,
|
|
397
411
|
futureNullifierReads,
|
|
398
412
|
this.noteHashNullifierCounterMap,
|
|
399
|
-
this.
|
|
400
|
-
MAX_NOTE_HASHES_PER_TX,
|
|
401
|
-
MAX_NULLIFIERS_PER_TX,
|
|
413
|
+
this.splitCounter,
|
|
402
414
|
);
|
|
403
415
|
|
|
404
416
|
if (this.nextIteration && !numTransientData) {
|
|
405
417
|
const forceResetAll = true;
|
|
406
418
|
const canClearReadRequests =
|
|
407
419
|
(noteHashWillOverflow && this.needsResetNoteHashReadRequests(forceResetAll)) ||
|
|
408
|
-
(nullifierWillOverflow && this.needsResetNullifierReadRequests(forceResetAll))
|
|
420
|
+
(nullifierWillOverflow && this.needsResetNullifierReadRequests(forceResetAll)) ||
|
|
421
|
+
(logsWillOverflow && this.needsResetNoteHashReadRequests(forceResetAll));
|
|
409
422
|
if (!canClearReadRequests) {
|
|
410
|
-
const overflownData = noteHashWillOverflow
|
|
423
|
+
const overflownData = noteHashWillOverflow
|
|
424
|
+
? 'note hashes'
|
|
425
|
+
: nullifierWillOverflow
|
|
426
|
+
? 'nullifiers'
|
|
427
|
+
: 'private logs';
|
|
411
428
|
throw new Error(`Number of ${overflownData} exceeds the limit.`);
|
|
412
429
|
}
|
|
413
430
|
// Clearing the read requests might not be enough to squash the overflown data.
|
|
@@ -416,8 +433,8 @@ export class PrivateKernelResetPrivateInputsBuilder {
|
|
|
416
433
|
}
|
|
417
434
|
|
|
418
435
|
this.numTransientData = numTransientData;
|
|
419
|
-
this.
|
|
420
|
-
this.requestedDimensions.
|
|
436
|
+
this.transientDataSquashingHints = transientDataSquashingHints;
|
|
437
|
+
this.requestedDimensions.TRANSIENT_DATA_SQUASHING = numTransientData;
|
|
421
438
|
|
|
422
439
|
return numTransientData > 0;
|
|
423
440
|
}
|
|
@@ -427,9 +444,11 @@ export class PrivateKernelResetPrivateInputsBuilder {
|
|
|
427
444
|
throw new Error('`needsResetTransientData` must be run before `needsSiloNoteHashes`.');
|
|
428
445
|
}
|
|
429
446
|
|
|
430
|
-
const numNoteHashes = this.previousKernel.end.noteHashes
|
|
447
|
+
const numNoteHashes = this.previousKernel.end.noteHashes
|
|
448
|
+
.getActiveItems()
|
|
449
|
+
.filter(n => !n.contractAddress.isZero()).length;
|
|
431
450
|
const numToSilo = Math.max(0, numNoteHashes - this.numTransientData);
|
|
432
|
-
this.requestedDimensions.
|
|
451
|
+
this.requestedDimensions.NOTE_HASH_SILOING = numToSilo;
|
|
433
452
|
|
|
434
453
|
return numToSilo > 0;
|
|
435
454
|
}
|
|
@@ -439,13 +458,15 @@ export class PrivateKernelResetPrivateInputsBuilder {
|
|
|
439
458
|
throw new Error('`needsResetTransientData` must be run before `needsSiloNullifiers`.');
|
|
440
459
|
}
|
|
441
460
|
|
|
442
|
-
const numNullifiers = this.previousKernel.end.nullifiers
|
|
461
|
+
const numNullifiers = this.previousKernel.end.nullifiers
|
|
462
|
+
.getActiveItems()
|
|
463
|
+
.filter(n => !n.contractAddress.isZero()).length;
|
|
443
464
|
const numToSilo = Math.max(0, numNullifiers - this.numTransientData);
|
|
444
465
|
// Include the first nullifier if there's something to silo.
|
|
445
466
|
// The reset circuit checks that capped_size must be greater than or equal to all non-empty nullifiers.
|
|
446
467
|
// Which includes the first nullifier, even though its contract address is always zero and doesn't need siloing.
|
|
447
468
|
const cappedSize = numToSilo ? numToSilo + 1 : 0;
|
|
448
|
-
this.requestedDimensions.
|
|
469
|
+
this.requestedDimensions.NULLIFIER_SILOING = cappedSize;
|
|
449
470
|
|
|
450
471
|
return numToSilo > 0;
|
|
451
472
|
}
|
|
@@ -456,16 +477,18 @@ export class PrivateKernelResetPrivateInputsBuilder {
|
|
|
456
477
|
}
|
|
457
478
|
|
|
458
479
|
const privateLogs = this.previousKernel.end.privateLogs;
|
|
459
|
-
const numLogs = privateLogs.filter(l => !l.contractAddress.isZero()).length;
|
|
480
|
+
const numLogs = privateLogs.getActiveItems().filter(l => !l.contractAddress.isZero()).length;
|
|
460
481
|
|
|
461
482
|
const noteHashes = this.previousKernel.end.noteHashes;
|
|
462
|
-
const squashedNoteHashCounters = this.
|
|
463
|
-
.filter(h => h.noteHashIndex < noteHashes.
|
|
464
|
-
.map(h => noteHashes[h.noteHashIndex].counter);
|
|
465
|
-
const numSquashedLogs = privateLogs
|
|
483
|
+
const squashedNoteHashCounters = this.transientDataSquashingHints
|
|
484
|
+
.filter(h => h.noteHashIndex < noteHashes.claimedLength)
|
|
485
|
+
.map(h => noteHashes.array[h.noteHashIndex].counter);
|
|
486
|
+
const numSquashedLogs = privateLogs
|
|
487
|
+
.getActiveItems()
|
|
488
|
+
.filter(l => squashedNoteHashCounters.includes(l.inner.noteHashCounter)).length;
|
|
466
489
|
|
|
467
490
|
const numToSilo = numLogs - numSquashedLogs;
|
|
468
|
-
this.requestedDimensions.
|
|
491
|
+
this.requestedDimensions.PRIVATE_LOG_SILOING = numToSilo;
|
|
469
492
|
|
|
470
493
|
return numToSilo > 0;
|
|
471
494
|
}
|