@aztec/pxe 0.0.0-test.1 → 0.0.1-commit.017a351
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 +73 -0
- package/dest/bin/index.d.ts +2 -3
- package/dest/bin/index.d.ts.map +1 -1
- package/dest/bin/index.js +1 -28
- package/dest/bin/oracle_version_helpers.d.ts +26 -0
- package/dest/bin/oracle_version_helpers.d.ts.map +1 -0
- package/dest/bin/oracle_version_helpers.js +93 -0
- package/dest/block_synchronizer/block_stream_source.d.ts +10 -0
- package/dest/block_synchronizer/block_stream_source.d.ts.map +1 -0
- package/dest/block_synchronizer/block_stream_source.js +62 -0
- package/dest/block_synchronizer/block_synchronizer.d.ts +49 -0
- package/dest/block_synchronizer/block_synchronizer.d.ts.map +1 -0
- package/dest/block_synchronizer/block_synchronizer.js +173 -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 +20 -25
- package/dest/config/index.d.ts.map +1 -1
- package/dest/config/index.js +35 -35
- 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 +119 -0
- package/dest/contract_function_simulator/contract_function_simulator.d.ts.map +1 -0
- package/dest/contract_function_simulator/contract_function_simulator.js +480 -0
- package/dest/contract_function_simulator/ephemeral_array_service.d.ts +28 -0
- package/dest/contract_function_simulator/ephemeral_array_service.d.ts.map +1 -0
- package/dest/contract_function_simulator/ephemeral_array_service.js +78 -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 +12 -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 +30 -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 +26 -0
- package/dest/contract_function_simulator/index.d.ts.map +1 -0
- package/dest/contract_function_simulator/index.js +23 -0
- package/dest/contract_function_simulator/noir-structs/bounded_vec.d.ts +48 -0
- package/dest/contract_function_simulator/noir-structs/bounded_vec.d.ts.map +1 -0
- package/dest/contract_function_simulator/noir-structs/bounded_vec.js +45 -0
- package/dest/contract_function_simulator/noir-structs/ephemeral_array.d.ts +37 -0
- package/dest/contract_function_simulator/noir-structs/ephemeral_array.d.ts.map +1 -0
- package/dest/contract_function_simulator/noir-structs/ephemeral_array.js +59 -0
- package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts +20 -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 +39 -0
- package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts +26 -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 +57 -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 +63 -0
- package/dest/contract_function_simulator/noir-structs/note_data.d.ts +27 -0
- package/dest/contract_function_simulator/noir-structs/note_data.d.ts.map +1 -0
- package/dest/contract_function_simulator/noir-structs/note_data.js +3 -0
- package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts +22 -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 +47 -0
- package/dest/contract_function_simulator/noir-structs/option.d.ts +61 -0
- package/dest/contract_function_simulator/noir-structs/option.d.ts.map +1 -0
- package/dest/contract_function_simulator/noir-structs/option.js +62 -0
- package/dest/contract_function_simulator/noir-structs/provided_secret.d.ts +11 -0
- package/dest/contract_function_simulator/noir-structs/provided_secret.d.ts.map +1 -0
- package/dest/contract_function_simulator/noir-structs/provided_secret.js +24 -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 +25 -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 +89 -0
- package/dest/contract_function_simulator/oracle/oracle.d.ts.map +1 -0
- package/dest/contract_function_simulator/oracle/oracle.js +552 -0
- package/dest/contract_function_simulator/oracle/oracle_registry.d.ts +127 -0
- package/dest/contract_function_simulator/oracle/oracle_registry.d.ts.map +1 -0
- package/dest/contract_function_simulator/oracle/oracle_registry.js +786 -0
- package/dest/contract_function_simulator/oracle/oracle_type_mappings.d.ts +139 -0
- package/dest/contract_function_simulator/oracle/oracle_type_mappings.d.ts.map +1 -0
- package/dest/contract_function_simulator/oracle/oracle_type_mappings.js +560 -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 +89 -0
- package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts +212 -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 +457 -0
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts +283 -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 +654 -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 +68 -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 +51 -0
- package/dest/contract_logging.d.ts +27 -0
- package/dest/contract_logging.d.ts.map +1 -0
- package/dest/contract_logging.js +38 -0
- package/dest/contract_sync/contract_sync_service.d.ts +42 -0
- package/dest/contract_sync/contract_sync_service.d.ts.map +1 -0
- package/dest/contract_sync/contract_sync_service.js +135 -0
- package/dest/contract_sync/helpers.d.ts +27 -0
- package/dest/contract_sync/helpers.d.ts.map +1 -0
- package/dest/contract_sync/helpers.js +53 -0
- package/dest/debug/pxe_debug_utils.d.ts +40 -0
- package/dest/debug/pxe_debug_utils.d.ts.map +1 -0
- package/dest/debug/pxe_debug_utils.js +42 -0
- package/dest/entrypoints/client/bundle/index.d.ts +6 -3
- package/dest/entrypoints/client/bundle/index.d.ts.map +1 -1
- package/dest/entrypoints/client/bundle/index.js +4 -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 +51 -14
- package/dest/entrypoints/client/lazy/index.d.ts +6 -3
- package/dest/entrypoints/client/lazy/index.d.ts.map +1 -1
- package/dest/entrypoints/client/lazy/index.js +4 -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 +51 -14
- package/dest/entrypoints/pxe_creation_options.d.ts +26 -0
- package/dest/entrypoints/pxe_creation_options.d.ts.map +1 -0
- package/dest/entrypoints/pxe_creation_options.js +3 -0
- package/dest/entrypoints/server/index.d.ts +10 -4
- package/dest/entrypoints/server/index.d.ts.map +1 -1
- package/dest/entrypoints/server/index.js +8 -3
- package/dest/entrypoints/server/utils.d.ts +9 -16
- package/dest/entrypoints/server/utils.d.ts.map +1 -1
- package/dest/entrypoints/server/utils.js +62 -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 +24 -0
- package/dest/events/event_service.d.ts.map +1 -0
- package/dest/events/event_service.js +77 -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 +10 -0
- package/dest/events/private_event_filter_validator.d.ts.map +1 -0
- package/dest/events/private_event_filter_validator.js +53 -0
- package/dest/hooks/authorize_utility_call.d.ts +41 -0
- package/dest/hooks/authorize_utility_call.d.ts.map +1 -0
- package/dest/hooks/authorize_utility_call.js +4 -0
- package/dest/hooks/execution_hooks.d.ts +42 -0
- package/dest/hooks/execution_hooks.d.ts.map +1 -0
- package/dest/hooks/execution_hooks.js +9 -0
- package/dest/hooks/index.d.ts +4 -0
- package/dest/hooks/index.d.ts.map +1 -0
- package/dest/hooks/index.js +1 -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 +29 -0
- package/dest/logs/log_service.d.ts.map +1 -0
- package/dest/logs/log_service.js +172 -0
- package/dest/messages/message_context_service.d.ts +17 -0
- package/dest/messages/message_context_service.d.ts.map +1 -0
- package/dest/messages/message_context_service.js +55 -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 +70 -0
- package/dest/notes/note_service.d.ts.map +1 -0
- package/dest/notes/note_service.js +172 -0
- package/dest/notes_filter.d.ts +24 -0
- package/dest/notes_filter.d.ts.map +1 -0
- package/dest/notes_filter.js +4 -0
- package/dest/oracle_version.d.ts +4 -0
- package/dest/oracle_version.d.ts.map +1 -0
- package/dest/oracle_version.js +21 -0
- package/dest/private_kernel/batch_planner.d.ts +47 -0
- package/dest/private_kernel/batch_planner.d.ts.map +1 -0
- package/dest/private_kernel/batch_planner.js +104 -0
- package/dest/private_kernel/hints/compute_tx_expiration_timestamp.d.ts +4 -0
- package/dest/private_kernel/hints/compute_tx_expiration_timestamp.d.ts.map +1 -0
- package/dest/private_kernel/hints/compute_tx_expiration_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 +29 -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 +338 -0
- package/dest/private_kernel/hints/test_utils.d.ts +122 -0
- package/dest/private_kernel/hints/test_utils.d.ts.map +1 -0
- package/dest/private_kernel/hints/test_utils.js +202 -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 +49 -0
- package/dest/private_kernel/private_kernel_execution_prover.d.ts.map +1 -0
- package/dest/private_kernel/private_kernel_execution_prover.js +386 -0
- package/dest/private_kernel/private_kernel_oracle.d.ts +63 -0
- package/dest/private_kernel/private_kernel_oracle.d.ts.map +1 -0
- package/dest/private_kernel/private_kernel_oracle.js +98 -0
- package/dest/pxe.d.ts +300 -0
- package/dest/pxe.d.ts.map +1 -0
- package/dest/pxe.js +839 -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/backwards_compatibility_tests/kv_store_snapshot.d.ts +42 -0
- package/dest/storage/backwards_compatibility_tests/kv_store_snapshot.d.ts.map +1 -0
- package/dest/storage/backwards_compatibility_tests/kv_store_snapshot.js +93 -0
- package/dest/storage/backwards_compatibility_tests/schema_tests.d.ts +15 -0
- package/dest/storage/backwards_compatibility_tests/schema_tests.d.ts.map +1 -0
- package/dest/storage/backwards_compatibility_tests/schema_tests.js +591 -0
- package/dest/storage/backwards_compatibility_tests/store_spy.d.ts +19 -0
- package/dest/storage/backwards_compatibility_tests/store_spy.d.ts.map +1 -0
- package/dest/storage/backwards_compatibility_tests/store_spy.js +63 -0
- package/dest/storage/capsule_store/capsule_service.d.ts +21 -0
- package/dest/storage/capsule_store/capsule_service.d.ts.map +1 -0
- package/dest/storage/capsule_store/capsule_service.js +50 -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 +261 -0
- package/dest/storage/capsule_store/index.d.ts +3 -0
- package/dest/storage/capsule_store/index.d.ts.map +1 -0
- package/dest/storage/capsule_store/index.js +2 -0
- package/dest/storage/contract_store/contract_store.d.ts +93 -0
- package/dest/storage/contract_store/contract_store.d.ts.map +1 -0
- package/dest/storage/contract_store/contract_store.js +292 -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 +343 -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/open_pxe_stores.d.ts +33 -0
- package/dest/storage/open_pxe_stores.d.ts.map +1 -0
- package/dest/storage/open_pxe_stores.js +27 -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 +276 -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 +78 -0
- package/dest/storage/tagging_store/sender_tagging_store.d.ts.map +1 -0
- package/dest/storage/tagging_store/sender_tagging_store.js +374 -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 +48 -0
- package/dest/tagging/get_all_logs_by_tags.d.ts.map +1 -0
- package/dest/tagging/get_all_logs_by_tags.js +59 -0
- package/dest/tagging/index.d.ts +18 -0
- package/dest/tagging/index.d.ts.map +1 -0
- package/dest/tagging/index.js +16 -0
- package/dest/tagging/persist_sender_tagging_index_ranges.d.ts +29 -0
- package/dest/tagging/persist_sender_tagging_index_ranges.d.ts.map +1 -0
- package/dest/tagging/persist_sender_tagging_index_ranges.js +42 -0
- package/dest/tagging/recipient_sync/sync_tagged_private_logs.d.ts +56 -0
- package/dest/tagging/recipient_sync/sync_tagged_private_logs.d.ts.map +1 -0
- package/dest/tagging/recipient_sync/sync_tagged_private_logs.js +163 -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/reconcile_tagging_index_ranges.d.ts +36 -0
- package/dest/tagging/reconcile_tagging_index_ranges.d.ts.map +1 -0
- package/dest/tagging/reconcile_tagging_index_ranges.js +74 -0
- package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts +16 -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 +92 -0
- package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts +17 -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 +60 -0
- package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts +19 -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 +72 -0
- package/package.json +48 -33
- package/src/bin/check_oracle_version.ts +88 -0
- package/src/bin/index.ts +1 -38
- package/src/bin/oracle_version_helpers.ts +121 -0
- package/src/block_synchronizer/block_stream_source.ts +81 -0
- package/src/block_synchronizer/block_synchronizer.ts +200 -0
- package/src/block_synchronizer/index.ts +1 -0
- package/src/config/index.ts +48 -56
- 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 +888 -0
- package/src/contract_function_simulator/ephemeral_array_service.ts +110 -0
- package/src/contract_function_simulator/execution_note_cache.ts +252 -0
- package/src/contract_function_simulator/execution_tagging_index_cache.ts +33 -0
- package/src/contract_function_simulator/hashed_values_cache.ts +47 -0
- package/src/contract_function_simulator/index.ts +63 -0
- package/src/contract_function_simulator/noir-structs/bounded_vec.ts +55 -0
- package/src/contract_function_simulator/noir-structs/ephemeral_array.ts +66 -0
- package/src/contract_function_simulator/noir-structs/event_validation_request.ts +52 -0
- package/src/contract_function_simulator/noir-structs/log_retrieval_request.ts +61 -0
- package/src/contract_function_simulator/noir-structs/log_retrieval_response.ts +66 -0
- package/src/contract_function_simulator/noir-structs/note_data.ts +27 -0
- package/src/contract_function_simulator/noir-structs/note_validation_request.ts +59 -0
- package/src/contract_function_simulator/noir-structs/option.ts +69 -0
- package/src/contract_function_simulator/noir-structs/provided_secret.ts +27 -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 +21 -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 +711 -0
- package/src/contract_function_simulator/oracle/oracle_registry.ts +585 -0
- package/src/contract_function_simulator/oracle/oracle_type_mappings.ts +553 -0
- package/src/contract_function_simulator/oracle/private_execution.ts +141 -0
- package/src/contract_function_simulator/oracle/private_execution_oracle.ts +667 -0
- package/src/contract_function_simulator/oracle/utility_execution_oracle.ts +967 -0
- package/src/contract_function_simulator/pick_notes.ts +160 -0
- package/src/contract_function_simulator/proxied_contract_data_source.ts +60 -0
- package/src/contract_logging.ts +52 -0
- package/src/contract_sync/contract_sync_service.ts +189 -0
- package/src/contract_sync/helpers.ts +86 -0
- package/src/debug/pxe_debug_utils.ts +85 -0
- package/src/entrypoints/client/bundle/index.ts +5 -2
- package/src/entrypoints/client/bundle/utils.ts +47 -35
- package/src/entrypoints/client/lazy/index.ts +5 -2
- package/src/entrypoints/client/lazy/utils.ts +48 -31
- package/src/entrypoints/pxe_creation_options.ts +28 -0
- package/src/entrypoints/server/index.ts +9 -3
- package/src/entrypoints/server/utils.ts +65 -56
- package/src/{pxe_service/error_enriching.ts → error_enriching.ts} +40 -39
- package/src/events/event_service.ts +119 -0
- package/src/events/index.ts +1 -0
- package/src/events/private_event_filter_validator.ts +66 -0
- package/src/hooks/authorize_utility_call.ts +44 -0
- package/src/hooks/execution_hooks.ts +48 -0
- package/src/hooks/index.ts +7 -0
- package/src/job_coordinator/job_coordinator.ts +150 -0
- package/src/logs/log_service.ts +237 -0
- package/src/messages/message_context_service.ts +62 -0
- package/src/notes/index.ts +1 -0
- package/src/notes/note_service.ts +230 -0
- package/src/notes_filter.ts +24 -0
- package/src/oracle_version.ts +22 -0
- package/src/private_kernel/batch_planner.ts +169 -0
- package/src/private_kernel/hints/compute_tx_expiration_timestamp.ts +58 -0
- package/src/private_kernel/hints/index.ts +2 -0
- package/src/private_kernel/hints/private_kernel_reset_private_inputs_builder.ts +542 -0
- package/src/private_kernel/hints/test_utils.ts +318 -0
- package/src/private_kernel/index.ts +2 -0
- package/src/private_kernel/private_kernel_execution_prover.ts +598 -0
- package/src/private_kernel/private_kernel_oracle.ts +162 -0
- package/src/pxe.ts +1305 -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/anchor_block_store/anchor_block_store.ts +33 -0
- package/src/storage/anchor_block_store/index.ts +1 -0
- package/src/storage/backwards_compatibility_tests/__snapshots__/AddressStore.json +22 -0
- package/src/storage/backwards_compatibility_tests/__snapshots__/AnchorBlockStore.json +3 -0
- package/src/storage/backwards_compatibility_tests/__snapshots__/CapsuleStore.json +16 -0
- package/src/storage/backwards_compatibility_tests/__snapshots__/ContractStore.json +28 -0
- package/src/storage/backwards_compatibility_tests/__snapshots__/KeyStore.json +52 -0
- package/src/storage/backwards_compatibility_tests/__snapshots__/L2TipsKVStore.json +46 -0
- package/src/storage/backwards_compatibility_tests/__snapshots__/NoteStore.json +36 -0
- package/src/storage/backwards_compatibility_tests/__snapshots__/PrivateEventStore.json +44 -0
- package/src/storage/backwards_compatibility_tests/__snapshots__/RecipientTaggingStore.json +18 -0
- package/src/storage/backwards_compatibility_tests/__snapshots__/SenderAddressBookStore.json +16 -0
- package/src/storage/backwards_compatibility_tests/__snapshots__/SenderTaggingStore.json +22 -0
- package/src/storage/backwards_compatibility_tests/__snapshots__/opened_stores.json +97 -0
- package/src/storage/backwards_compatibility_tests/kv_store_snapshot.ts +122 -0
- package/src/storage/backwards_compatibility_tests/schema_tests.ts +712 -0
- package/src/storage/backwards_compatibility_tests/store_spy.ts +73 -0
- package/src/storage/capsule_store/capsule_service.ts +90 -0
- package/src/storage/capsule_store/capsule_store.ts +333 -0
- package/src/storage/capsule_store/index.ts +2 -0
- package/src/storage/contract_store/contract_store.ts +408 -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 +415 -0
- package/src/storage/note_store/stored_note.ts +48 -0
- package/src/storage/open_pxe_stores.ts +49 -0
- package/src/storage/private_event_store/private_event_store.ts +388 -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 +476 -0
- package/src/tagging/constants.ts +10 -0
- package/src/tagging/get_all_logs_by_tags.ts +120 -0
- package/src/tagging/index.ts +20 -0
- package/src/tagging/persist_sender_tagging_index_ranges.ts +57 -0
- package/src/tagging/recipient_sync/sync_tagged_private_logs.ts +240 -0
- package/src/tagging/recipient_sync/utils/find_highest_indexes.ts +34 -0
- package/src/tagging/reconcile_tagging_index_ranges.ts +102 -0
- package/src/tagging/sender_sync/sync_sender_tagging_indexes.ts +134 -0
- package/src/tagging/sender_sync/utils/get_status_change_of_pending.ts +66 -0
- package/src/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.ts +84 -0
- 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/entrypoints/client/pxe_creation_options.js +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/entrypoints/client/pxe_creation_options.ts +0 -7
- package/src/kernel_oracle/index.ts +0 -117
- package/src/kernel_prover/hints/build_private_kernel_reset_private_inputs.ts +0 -472
- 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/sync_data_provider/sync_data_provider.ts +0 -40
- 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
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import type { BlockHash } from '@aztec/stdlib/block';
|
|
2
|
+
import type { AztecNode } from '@aztec/stdlib/interfaces/server';
|
|
3
|
+
import { type AppTaggingSecret, SiloedTag } from '@aztec/stdlib/logs';
|
|
4
|
+
import { TxHash } from '@aztec/stdlib/tx';
|
|
5
|
+
|
|
6
|
+
import type { SenderTaggingStore } from '../../../storage/tagging_store/sender_tagging_store.js';
|
|
7
|
+
import { getAllPrivateLogsByTags } from '../../get_all_logs_by_tags.js';
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Loads tagging indexes from the Aztec node and stores them in the tagging data provider.
|
|
11
|
+
* @remarks This function is one of two places by which a pending index can get to the tagging data provider. The other
|
|
12
|
+
* place is when a tx is being sent from this PXE.
|
|
13
|
+
* @param extendedSecret - The app tagging secret whose indexes are being synced.
|
|
14
|
+
* @param start - The starting index (inclusive) of the window to process.
|
|
15
|
+
* @param end - The ending index (exclusive) of the window to process.
|
|
16
|
+
* @param aztecNode - The Aztec node instance to query for logs.
|
|
17
|
+
* @param taggingStore - The data provider to store pending indexes.
|
|
18
|
+
* @param anchorBlockHash - Hash of a block to use as reference block when querying node.
|
|
19
|
+
* @param jobId - Job identifier, used to keep writes in-memory until they can be persisted in a data integrity
|
|
20
|
+
* preserving way.
|
|
21
|
+
*/
|
|
22
|
+
export async function loadAndStoreNewTaggingIndexes(
|
|
23
|
+
extendedSecret: AppTaggingSecret,
|
|
24
|
+
start: number,
|
|
25
|
+
end: number,
|
|
26
|
+
aztecNode: AztecNode,
|
|
27
|
+
taggingStore: SenderTaggingStore,
|
|
28
|
+
anchorBlockHash: BlockHash,
|
|
29
|
+
jobId: string,
|
|
30
|
+
) {
|
|
31
|
+
// We compute the tags for the current window of indexes
|
|
32
|
+
const siloedTagsForWindow = await Promise.all(
|
|
33
|
+
Array.from({ length: end - start }, (_, i) => SiloedTag.compute({ extendedSecret, index: start + i })),
|
|
34
|
+
);
|
|
35
|
+
|
|
36
|
+
const txsForTags = await getTxsContainingTags(siloedTagsForWindow, aztecNode, anchorBlockHash);
|
|
37
|
+
const txIndexesMap = getTxIndexesMap(txsForTags, start, siloedTagsForWindow.length);
|
|
38
|
+
|
|
39
|
+
// Now we iterate over the map, construct the tagging index ranges and store them in the db.
|
|
40
|
+
for (const [txHashStr, indexes] of txIndexesMap.entries()) {
|
|
41
|
+
const txHash = TxHash.fromString(txHashStr);
|
|
42
|
+
const ranges = [{ extendedSecret, lowestIndex: Math.min(...indexes), highestIndex: Math.max(...indexes) }];
|
|
43
|
+
await taggingStore.storePendingIndexes(ranges, txHash, jobId);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
// Returns txs that used the given tags. A tag might have been used in multiple txs and for this reason we return
|
|
48
|
+
// an array for each tag.
|
|
49
|
+
async function getTxsContainingTags(
|
|
50
|
+
tags: SiloedTag[],
|
|
51
|
+
aztecNode: AztecNode,
|
|
52
|
+
anchorBlockHash: BlockHash,
|
|
53
|
+
): Promise<TxHash[][]> {
|
|
54
|
+
// We use the utility function below to retrieve all logs for the tags across all pages, so we don't need to handle
|
|
55
|
+
// pagination here. Sender sync only needs `txHash` from each log, so we leave `includeEffects` off.
|
|
56
|
+
const allLogs = await getAllPrivateLogsByTags(aztecNode, tags, anchorBlockHash);
|
|
57
|
+
return allLogs.map(logs => logs.map(log => log.txHash));
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
// Returns a map of txHash to all indexes for that txHash.
|
|
61
|
+
function getTxIndexesMap(txHashesForTags: TxHash[][], start: number, count: number): Map<string, number[]> {
|
|
62
|
+
if (txHashesForTags.length !== count) {
|
|
63
|
+
throw new Error(`Number of tx hashes arrays does not match number of tags. ${txHashesForTags.length} !== ${count}`);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
const indexesMap = new Map<string, number[]>();
|
|
67
|
+
// Iterate over indexes
|
|
68
|
+
for (let i = 0; i < txHashesForTags.length; i++) {
|
|
69
|
+
const taggingIndex = start + i;
|
|
70
|
+
const txHashesForTag = txHashesForTags[i];
|
|
71
|
+
// iterate over tx hashes that used that index (tag)
|
|
72
|
+
for (const txHash of txHashesForTag) {
|
|
73
|
+
const key = txHash.toString();
|
|
74
|
+
const existing = indexesMap.get(key);
|
|
75
|
+
// Add the index to the tx's indexes
|
|
76
|
+
if (existing) {
|
|
77
|
+
existing.push(taggingIndex);
|
|
78
|
+
} else {
|
|
79
|
+
indexesMap.set(key, [taggingIndex]);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
return indexesMap;
|
|
84
|
+
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import type { Logger } from '@aztec/foundation/log';
|
|
2
|
-
import type { PrivateKernelProver } from '@aztec/stdlib/interfaces/client';
|
|
3
|
-
export type PXECreationOptions = {
|
|
4
|
-
loggers: {
|
|
5
|
-
store?: Logger;
|
|
6
|
-
pxe?: Logger;
|
|
7
|
-
prover?: Logger;
|
|
8
|
-
};
|
|
9
|
-
prover?: PrivateKernelProver;
|
|
10
|
-
};
|
|
11
|
-
//# sourceMappingURL=pxe_creation_options.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pxe_creation_options.d.ts","sourceRoot":"","sources":["../../../src/entrypoints/client/pxe_creation_options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAE3E,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3D,MAAM,CAAC,EAAE,mBAAmB,CAAC;CAC9B,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { };
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import { type NOTE_HASH_TREE_HEIGHT } from '@aztec/constants';
|
|
2
|
-
import type { Fr, GrumpkinScalar, Point } from '@aztec/foundation/fields';
|
|
3
|
-
import { MembershipWitness } from '@aztec/foundation/trees';
|
|
4
|
-
import type { KeyStore } from '@aztec/key-store';
|
|
5
|
-
import type { FunctionSelector } from '@aztec/stdlib/abi';
|
|
6
|
-
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
7
|
-
import type { L2BlockNumber } from '@aztec/stdlib/block';
|
|
8
|
-
import type { AztecNode } from '@aztec/stdlib/interfaces/client';
|
|
9
|
-
import { UpdatedClassIdHints } from '@aztec/stdlib/kernel';
|
|
10
|
-
import type { NullifierMembershipWitness } from '@aztec/stdlib/trees';
|
|
11
|
-
import type { VerificationKeyAsFields } from '@aztec/stdlib/vks';
|
|
12
|
-
import type { ContractDataProvider } from '../storage/contract_data_provider/contract_data_provider.js';
|
|
13
|
-
import type { ProvingDataOracle } from './../kernel_prover/proving_data_oracle.js';
|
|
14
|
-
/**
|
|
15
|
-
* A data oracle that provides information needed for simulating a transaction.
|
|
16
|
-
*/
|
|
17
|
-
export declare class KernelOracle implements ProvingDataOracle {
|
|
18
|
-
private contractDataProvider;
|
|
19
|
-
private keyStore;
|
|
20
|
-
private node;
|
|
21
|
-
private blockNumber;
|
|
22
|
-
private log;
|
|
23
|
-
constructor(contractDataProvider: ContractDataProvider, keyStore: KeyStore, node: AztecNode, blockNumber?: L2BlockNumber, log?: import("@aztec/foundation/log").Logger);
|
|
24
|
-
getContractAddressPreimage(address: AztecAddress): Promise<{
|
|
25
|
-
version: 1;
|
|
26
|
-
salt: Fr;
|
|
27
|
-
deployer: AztecAddress;
|
|
28
|
-
currentContractClassId: Fr;
|
|
29
|
-
originalContractClassId: Fr;
|
|
30
|
-
initializationHash: Fr;
|
|
31
|
-
publicKeys: import("@aztec/aztec.js").PublicKeys;
|
|
32
|
-
address: AztecAddress;
|
|
33
|
-
saltedInitializationHash: Fr;
|
|
34
|
-
}>;
|
|
35
|
-
getContractClassIdPreimage(contractClassId: Fr): Promise<import("@aztec/stdlib/contract").ContractClassIdPreimage>;
|
|
36
|
-
getFunctionMembershipWitness(contractClassId: Fr, selector: FunctionSelector): Promise<MembershipWitness<5>>;
|
|
37
|
-
getVkMembershipWitness(vk: VerificationKeyAsFields): Promise<MembershipWitness<6>>;
|
|
38
|
-
getNoteHashMembershipWitness(leafIndex: bigint): Promise<MembershipWitness<typeof NOTE_HASH_TREE_HEIGHT>>;
|
|
39
|
-
getNullifierMembershipWitness(nullifier: Fr): Promise<NullifierMembershipWitness | undefined>;
|
|
40
|
-
getNoteHashTreeRoot(): Promise<Fr>;
|
|
41
|
-
getMasterSecretKey(masterPublicKey: Point): Promise<GrumpkinScalar>;
|
|
42
|
-
getDebugFunctionName(contractAddress: AztecAddress, selector: FunctionSelector): Promise<string>;
|
|
43
|
-
getUpdatedClassIdHints(contractAddress: AztecAddress): Promise<UpdatedClassIdHints>;
|
|
44
|
-
}
|
|
45
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/kernel_oracle/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,qBAAqB,EAA2C,MAAM,kBAAkB,CAAC;AACvG,OAAO,KAAK,EAAE,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAG1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAGjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAE3D,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AACtE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAEjE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6DAA6D,CAAC;AACxG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAInF;;GAEG;AACH,qBAAa,YAAa,YAAW,iBAAiB;IAElD,OAAO,CAAC,oBAAoB;IAC5B,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,GAAG;gBAJH,oBAAoB,EAAE,oBAAoB,EAC1C,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,SAAS,EACf,WAAW,GAAE,aAAwB,EACrC,GAAG,yCAAoC;IAGpC,0BAA0B,CAAC,OAAO,EAAE,YAAY;;;;;;;;;;;IAQhD,0BAA0B,CAAC,eAAe,EAAE,EAAE;IAK9C,4BAA4B,CAAC,eAAe,EAAE,EAAE,EAAE,QAAQ,EAAE,gBAAgB;IAIlF,sBAAsB,CAAC,EAAE,EAAE,uBAAuB;IAKnD,4BAA4B,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,OAAO,qBAAqB,CAAC,CAAC;IAS/G,6BAA6B,CAAC,SAAS,EAAE,EAAE,GAAG,OAAO,CAAC,0BAA0B,GAAG,SAAS,CAAC;IAIvF,mBAAmB,IAAI,OAAO,CAAC,EAAE,CAAC;IAQjC,kBAAkB,CAAC,eAAe,EAAE,KAAK,GAAG,OAAO,CAAC,cAAc,CAAC;IAInE,oBAAoB,CAAC,eAAe,EAAE,YAAY,EAAE,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC;IAI1F,sBAAsB,CAAC,eAAe,EAAE,YAAY,GAAG,OAAO,CAAC,mBAAmB,CAAC;CA6BjG"}
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
import { PUBLIC_DATA_TREE_HEIGHT, VK_TREE_HEIGHT } from '@aztec/constants';
|
|
2
|
-
import { createLogger } from '@aztec/foundation/log';
|
|
3
|
-
import { MembershipWitness } from '@aztec/foundation/trees';
|
|
4
|
-
import { getVKIndex, getVKSiblingPath } from '@aztec/noir-protocol-circuits-types/vk-tree';
|
|
5
|
-
import { ProtocolContractAddress } from '@aztec/protocol-contracts';
|
|
6
|
-
import { computeContractClassIdPreimage, computeSaltedInitializationHash } from '@aztec/stdlib/contract';
|
|
7
|
-
import { computePublicDataTreeLeafSlot } from '@aztec/stdlib/hash';
|
|
8
|
-
import { UpdatedClassIdHints } from '@aztec/stdlib/kernel';
|
|
9
|
-
import { SharedMutableValues, SharedMutableValuesWithHash } from '@aztec/stdlib/shared-mutable';
|
|
10
|
-
// TODO: Block number should not be "latest".
|
|
11
|
-
// It should be fixed at the time the proof is being simulated. I.e., it should be the same as the value defined in the constant data.
|
|
12
|
-
/**
|
|
13
|
-
* A data oracle that provides information needed for simulating a transaction.
|
|
14
|
-
*/ export class KernelOracle {
|
|
15
|
-
contractDataProvider;
|
|
16
|
-
keyStore;
|
|
17
|
-
node;
|
|
18
|
-
blockNumber;
|
|
19
|
-
log;
|
|
20
|
-
constructor(contractDataProvider, keyStore, node, blockNumber = 'latest', log = createLogger('pxe:kernel_oracle')){
|
|
21
|
-
this.contractDataProvider = contractDataProvider;
|
|
22
|
-
this.keyStore = keyStore;
|
|
23
|
-
this.node = node;
|
|
24
|
-
this.blockNumber = blockNumber;
|
|
25
|
-
this.log = log;
|
|
26
|
-
}
|
|
27
|
-
async getContractAddressPreimage(address) {
|
|
28
|
-
const instance = await this.contractDataProvider.getContractInstance(address);
|
|
29
|
-
return {
|
|
30
|
-
saltedInitializationHash: await computeSaltedInitializationHash(instance),
|
|
31
|
-
...instance
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
async getContractClassIdPreimage(contractClassId) {
|
|
35
|
-
const contractClass = await this.contractDataProvider.getContractClass(contractClassId);
|
|
36
|
-
return computeContractClassIdPreimage(contractClass);
|
|
37
|
-
}
|
|
38
|
-
async getFunctionMembershipWitness(contractClassId, selector) {
|
|
39
|
-
return await this.contractDataProvider.getFunctionMembershipWitness(contractClassId, selector);
|
|
40
|
-
}
|
|
41
|
-
getVkMembershipWitness(vk) {
|
|
42
|
-
const leafIndex = getVKIndex(vk);
|
|
43
|
-
return Promise.resolve(new MembershipWitness(VK_TREE_HEIGHT, BigInt(leafIndex), getVKSiblingPath(leafIndex)));
|
|
44
|
-
}
|
|
45
|
-
async getNoteHashMembershipWitness(leafIndex) {
|
|
46
|
-
const path = await this.node.getNoteHashSiblingPath(this.blockNumber, leafIndex);
|
|
47
|
-
return new MembershipWitness(path.pathSize, leafIndex, path.toFields());
|
|
48
|
-
}
|
|
49
|
-
getNullifierMembershipWitness(nullifier) {
|
|
50
|
-
return this.node.getNullifierMembershipWitness(this.blockNumber, nullifier);
|
|
51
|
-
}
|
|
52
|
-
async getNoteHashTreeRoot() {
|
|
53
|
-
const header = await this.node.getBlockHeader(this.blockNumber);
|
|
54
|
-
if (!header) {
|
|
55
|
-
throw new Error(`No block header found for block number ${this.blockNumber}`);
|
|
56
|
-
}
|
|
57
|
-
return header.state.partial.noteHashTree.root;
|
|
58
|
-
}
|
|
59
|
-
getMasterSecretKey(masterPublicKey) {
|
|
60
|
-
return this.keyStore.getMasterSecretKey(masterPublicKey);
|
|
61
|
-
}
|
|
62
|
-
getDebugFunctionName(contractAddress, selector) {
|
|
63
|
-
return this.contractDataProvider.getDebugFunctionName(contractAddress, selector);
|
|
64
|
-
}
|
|
65
|
-
async getUpdatedClassIdHints(contractAddress) {
|
|
66
|
-
const { sharedMutableSlot, sharedMutableHashSlot } = await SharedMutableValuesWithHash.getContractUpdateSlots(contractAddress);
|
|
67
|
-
const hashLeafSlot = await computePublicDataTreeLeafSlot(ProtocolContractAddress.ContractInstanceDeployer, sharedMutableHashSlot);
|
|
68
|
-
const updatedClassIdWitness = await this.node.getPublicDataTreeWitness(this.blockNumber, hashLeafSlot);
|
|
69
|
-
if (!updatedClassIdWitness) {
|
|
70
|
-
throw new Error(`No public data tree witness found for ${hashLeafSlot}`);
|
|
71
|
-
}
|
|
72
|
-
const readStorage = (storageSlot)=>this.node.getPublicStorageAt(this.blockNumber, ProtocolContractAddress.ContractInstanceDeployer, storageSlot);
|
|
73
|
-
const sharedMutableValues = await SharedMutableValues.readFromTree(sharedMutableSlot, readStorage);
|
|
74
|
-
return new UpdatedClassIdHints(new MembershipWitness(PUBLIC_DATA_TREE_HEIGHT, updatedClassIdWitness.index, updatedClassIdWitness.siblingPath.toTuple()), updatedClassIdWitness.leafPreimage, sharedMutableValues);
|
|
75
|
-
}
|
|
76
|
-
}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { type PrivateKernelCircuitPublicInputs, PrivateKernelResetCircuitPrivateInputs, type PrivateKernelSimulateOutput } from '@aztec/stdlib/kernel';
|
|
2
|
-
import { type PrivateCallExecutionResult } from '@aztec/stdlib/tx';
|
|
3
|
-
import type { ProvingDataOracle } from '../proving_data_oracle.js';
|
|
4
|
-
export declare class PrivateKernelResetPrivateInputsBuilder {
|
|
5
|
-
private previousKernelOutput;
|
|
6
|
-
private executionStack;
|
|
7
|
-
private noteHashNullifierCounterMap;
|
|
8
|
-
private validationRequestsSplitCounter;
|
|
9
|
-
private previousKernel;
|
|
10
|
-
private nextIteration?;
|
|
11
|
-
private noteHashResetStates;
|
|
12
|
-
private nullifierResetStates;
|
|
13
|
-
private numTransientData?;
|
|
14
|
-
private transientDataIndexHints;
|
|
15
|
-
private requestedDimensions;
|
|
16
|
-
constructor(previousKernelOutput: PrivateKernelSimulateOutput<PrivateKernelCircuitPublicInputs>, executionStack: PrivateCallExecutionResult[], noteHashNullifierCounterMap: Map<number, number>, validationRequestsSplitCounter: number);
|
|
17
|
-
needsReset(): boolean;
|
|
18
|
-
build(oracle: ProvingDataOracle, noteHashLeafIndexMap: Map<bigint, bigint>): Promise<PrivateKernelResetCircuitPrivateInputs>;
|
|
19
|
-
private reduceReadRequestStates;
|
|
20
|
-
private needsResetNoteHashReadRequests;
|
|
21
|
-
private needsResetNullifierReadRequests;
|
|
22
|
-
private needsResetNullifierKeys;
|
|
23
|
-
private needsResetTransientData;
|
|
24
|
-
private needsSiloNoteHashes;
|
|
25
|
-
private needsSiloNullifiers;
|
|
26
|
-
private needsSiloPrivateLogs;
|
|
27
|
-
}
|
|
28
|
-
//# sourceMappingURL=build_private_kernel_reset_private_inputs.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"build_private_kernel_reset_private_inputs.d.ts","sourceRoot":"","sources":["../../../src/kernel_prover/hints/build_private_kernel_reset_private_inputs.ts"],"names":[],"mappings":"AAeA,OAAO,EAGL,KAAK,gCAAgC,EAErC,sCAAsC,EAGtC,KAAK,2BAA2B,EAkBjC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,KAAK,0BAA0B,EAAiB,MAAM,kBAAkB,CAAC;AAElF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAiDnE,qBAAa,sCAAsC;IAY/C,OAAO,CAAC,oBAAoB;IAC5B,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,2BAA2B;IACnC,OAAO,CAAC,8BAA8B;IAdxC,OAAO,CAAC,cAAc,CAAmC;IAEzD,OAAO,CAAC,aAAa,CAAC,CAA6B;IAEnD,OAAO,CAAC,mBAAmB,CAAoE;IAC/F,OAAO,CAAC,oBAAoB,CAAoE;IAChG,OAAO,CAAC,gBAAgB,CAAC,CAAS;IAClC,OAAO,CAAC,uBAAuB,CAA8D;IAC7F,OAAO,CAAC,mBAAmB,CAA+B;gBAGhD,oBAAoB,EAAE,2BAA2B,CAAC,gCAAgC,CAAC,EACnF,cAAc,EAAE,0BAA0B,EAAE,EAC5C,2BAA2B,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAChD,8BAA8B,EAAE,MAAM;IAahD,UAAU,IAAI,OAAO;IAwBf,KAAK,CAAC,MAAM,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IAgEhF,OAAO,CAAC,uBAAuB;IA2B/B,OAAO,CAAC,8BAA8B;IAoDtC,OAAO,CAAC,+BAA+B;IAoDvC,OAAO,CAAC,uBAAuB;IAiB/B,OAAO,CAAC,uBAAuB;IAmE/B,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,mBAAmB;IAgB3B,OAAO,CAAC,oBAAoB;CAmB7B"}
|
|
@@ -1,270 +0,0 @@
|
|
|
1
|
-
import { MAX_KEY_VALIDATION_REQUESTS_PER_TX, MAX_NOTE_HASHES_PER_TX, MAX_NOTE_HASH_READ_REQUESTS_PER_TX, MAX_NULLIFIERS_PER_TX, MAX_NULLIFIER_READ_REQUESTS_PER_TX, NULLIFIER_TREE_HEIGHT, VK_TREE_HEIGHT } from '@aztec/constants';
|
|
2
|
-
import { makeTuple } from '@aztec/foundation/array';
|
|
3
|
-
import { padArrayEnd } from '@aztec/foundation/collection';
|
|
4
|
-
import { assertLength } from '@aztec/foundation/serialize';
|
|
5
|
-
import { MembershipWitness } from '@aztec/foundation/trees';
|
|
6
|
-
import { privateKernelResetDimensionsConfig } from '@aztec/noir-protocol-circuits-types/client';
|
|
7
|
-
import { KeyValidationHint, PrivateKernelData, PrivateKernelResetCircuitPrivateInputs, PrivateKernelResetDimensions, PrivateKernelResetHints, ReadRequestResetStates, ReadRequestState, ScopedNoteHash, ScopedNullifier, ScopedReadRequest, TransientDataIndexHint, buildNoteHashReadRequestHintsFromResetStates, buildNullifierReadRequestHintsFromResetStates, buildTransientDataHints, countAccumulatedItems, findPrivateKernelResetDimensions, getNonEmptyItems, getNoteHashReadRequestResetStates, getNullifierReadRequestResetStates, privateKernelResetDimensionNames } from '@aztec/stdlib/kernel';
|
|
8
|
-
import { collectNested } from '@aztec/stdlib/tx';
|
|
9
|
-
function collectNestedReadRequests(executionStack, extractReadRequests) {
|
|
10
|
-
return collectNested(executionStack, (executionResult)=>{
|
|
11
|
-
const nonEmptyReadRequests = getNonEmptyItems(extractReadRequests(executionResult));
|
|
12
|
-
return nonEmptyReadRequests.map((readRequest)=>new ScopedReadRequest(readRequest, executionResult.publicInputs.callContext.contractAddress));
|
|
13
|
-
});
|
|
14
|
-
}
|
|
15
|
-
function getNullifierMembershipWitnessResolver(oracle) {
|
|
16
|
-
return async (nullifier)=>{
|
|
17
|
-
const res = await oracle.getNullifierMembershipWitness(nullifier);
|
|
18
|
-
if (!res) {
|
|
19
|
-
throw new Error(`Cannot find the leaf for nullifier ${nullifier}.`);
|
|
20
|
-
}
|
|
21
|
-
const { index, siblingPath, leafPreimage } = res;
|
|
22
|
-
return {
|
|
23
|
-
membershipWitness: new MembershipWitness(NULLIFIER_TREE_HEIGHT, index, siblingPath.toTuple()),
|
|
24
|
-
leafPreimage
|
|
25
|
-
};
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
async function getMasterSecretKeysAndAppKeyGenerators(keyValidationRequests, oracle) {
|
|
29
|
-
const keysHints = [];
|
|
30
|
-
for(let i = 0; i < keyValidationRequests.length; ++i){
|
|
31
|
-
const request = keyValidationRequests[i].request;
|
|
32
|
-
if (request.isEmpty()) {
|
|
33
|
-
break;
|
|
34
|
-
}
|
|
35
|
-
const secretKeys = await oracle.getMasterSecretKey(request.request.pkM);
|
|
36
|
-
keysHints.push(new KeyValidationHint(secretKeys, i));
|
|
37
|
-
}
|
|
38
|
-
return padArrayEnd(keysHints, KeyValidationHint.nada(MAX_KEY_VALIDATION_REQUESTS_PER_TX), MAX_KEY_VALIDATION_REQUESTS_PER_TX);
|
|
39
|
-
}
|
|
40
|
-
export class PrivateKernelResetPrivateInputsBuilder {
|
|
41
|
-
previousKernelOutput;
|
|
42
|
-
executionStack;
|
|
43
|
-
noteHashNullifierCounterMap;
|
|
44
|
-
validationRequestsSplitCounter;
|
|
45
|
-
previousKernel;
|
|
46
|
-
// If there's no next iteration, it's the final reset.
|
|
47
|
-
nextIteration;
|
|
48
|
-
noteHashResetStates;
|
|
49
|
-
nullifierResetStates;
|
|
50
|
-
numTransientData;
|
|
51
|
-
transientDataIndexHints;
|
|
52
|
-
requestedDimensions;
|
|
53
|
-
constructor(previousKernelOutput, executionStack, noteHashNullifierCounterMap, validationRequestsSplitCounter){
|
|
54
|
-
this.previousKernelOutput = previousKernelOutput;
|
|
55
|
-
this.executionStack = executionStack;
|
|
56
|
-
this.noteHashNullifierCounterMap = noteHashNullifierCounterMap;
|
|
57
|
-
this.validationRequestsSplitCounter = validationRequestsSplitCounter;
|
|
58
|
-
this.previousKernel = previousKernelOutput.publicInputs;
|
|
59
|
-
this.requestedDimensions = PrivateKernelResetDimensions.empty();
|
|
60
|
-
this.noteHashResetStates = ReadRequestResetStates.empty(MAX_NOTE_HASH_READ_REQUESTS_PER_TX);
|
|
61
|
-
this.nullifierResetStates = ReadRequestResetStates.empty(MAX_NULLIFIER_READ_REQUESTS_PER_TX);
|
|
62
|
-
this.transientDataIndexHints = makeTuple(MAX_NULLIFIERS_PER_TX, ()=>new TransientDataIndexHint(MAX_NULLIFIERS_PER_TX, MAX_NOTE_HASHES_PER_TX));
|
|
63
|
-
this.nextIteration = executionStack[this.executionStack.length - 1]?.publicInputs;
|
|
64
|
-
}
|
|
65
|
-
needsReset() {
|
|
66
|
-
const fns = [
|
|
67
|
-
()=>this.needsResetNoteHashReadRequests(),
|
|
68
|
-
()=>this.needsResetNullifierReadRequests(),
|
|
69
|
-
()=>this.needsResetNullifierKeys(),
|
|
70
|
-
()=>this.needsResetTransientData()
|
|
71
|
-
];
|
|
72
|
-
if (this.nextIteration) {
|
|
73
|
-
// If there's a next iteration, reset is needed only when data of a dimension is about to overflow.
|
|
74
|
-
// fns are executed until a dimension that needs reset is found.
|
|
75
|
-
return fns.some((fn)=>fn());
|
|
76
|
-
} else {
|
|
77
|
-
// Siloing is only needed after processing all iterations.
|
|
78
|
-
fns.push(...[
|
|
79
|
-
()=>this.needsSiloNoteHashes(),
|
|
80
|
-
()=>this.needsSiloNullifiers(),
|
|
81
|
-
()=>this.needsSiloPrivateLogs()
|
|
82
|
-
]);
|
|
83
|
-
// If there's no next iteration, reset is needed when any of the dimension has non empty data.
|
|
84
|
-
// All the fns should to be executed so that data in all dimensions will be reset.
|
|
85
|
-
const result = fns.map((fn)=>fn());
|
|
86
|
-
return result.some((r)=>r);
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
async build(oracle, noteHashLeafIndexMap) {
|
|
90
|
-
if (privateKernelResetDimensionNames.every((name)=>!this.requestedDimensions[name])) {
|
|
91
|
-
throw new Error('Reset is not required.');
|
|
92
|
-
}
|
|
93
|
-
const isInner = !!this.nextIteration;
|
|
94
|
-
// "final" reset must be done at most once.
|
|
95
|
-
// Because the code that silo note hashes can't be run repeatedly.
|
|
96
|
-
// The dimensions found must be big enough to reset all values, i.e. empty remainder.
|
|
97
|
-
const allowRemainder = isInner;
|
|
98
|
-
const dimensions = findPrivateKernelResetDimensions(this.requestedDimensions, privateKernelResetDimensionsConfig, isInner, allowRemainder);
|
|
99
|
-
const previousVkMembershipWitness = await oracle.getVkMembershipWitness(this.previousKernelOutput.verificationKey);
|
|
100
|
-
const previousKernelData = new PrivateKernelData(this.previousKernelOutput.publicInputs, this.previousKernelOutput.verificationKey, Number(previousVkMembershipWitness.leafIndex), assertLength(previousVkMembershipWitness.siblingPath, VK_TREE_HEIGHT));
|
|
101
|
-
this.reduceReadRequestStates(this.noteHashResetStates, dimensions.NOTE_HASH_PENDING_AMOUNT, dimensions.NOTE_HASH_SETTLED_AMOUNT);
|
|
102
|
-
this.reduceReadRequestStates(this.nullifierResetStates, dimensions.NULLIFIER_PENDING_AMOUNT, dimensions.NULLIFIER_SETTLED_AMOUNT);
|
|
103
|
-
return new PrivateKernelResetCircuitPrivateInputs(previousKernelData, new PrivateKernelResetHints(await buildNoteHashReadRequestHintsFromResetStates(oracle, this.previousKernel.validationRequests.noteHashReadRequests, this.previousKernel.end.noteHashes, this.noteHashResetStates, noteHashLeafIndexMap), await buildNullifierReadRequestHintsFromResetStates({
|
|
104
|
-
getNullifierMembershipWitness: getNullifierMembershipWitnessResolver(oracle)
|
|
105
|
-
}, this.previousKernel.validationRequests.nullifierReadRequests, this.nullifierResetStates), await getMasterSecretKeysAndAppKeyGenerators(this.previousKernel.validationRequests.scopedKeyValidationRequestsAndGenerators, oracle), this.transientDataIndexHints, this.validationRequestsSplitCounter), dimensions);
|
|
106
|
-
}
|
|
107
|
-
reduceReadRequestStates(resetStates, maxPending, maxSettled) {
|
|
108
|
-
let numPending = 0;
|
|
109
|
-
let numSettled = 0;
|
|
110
|
-
for(let i = 0; i < resetStates.states.length; i++){
|
|
111
|
-
const state = resetStates.states[i];
|
|
112
|
-
if (state === ReadRequestState.PENDING) {
|
|
113
|
-
if (numPending < maxPending) {
|
|
114
|
-
numPending++;
|
|
115
|
-
} else {
|
|
116
|
-
resetStates.states[i] = ReadRequestState.NADA;
|
|
117
|
-
}
|
|
118
|
-
} else if (state === ReadRequestState.SETTLED) {
|
|
119
|
-
if (numSettled < maxSettled) {
|
|
120
|
-
numSettled++;
|
|
121
|
-
} else {
|
|
122
|
-
resetStates.states[i] = ReadRequestState.NADA;
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
resetStates.pendingReadHints = resetStates.pendingReadHints.slice(0, maxPending);
|
|
127
|
-
}
|
|
128
|
-
needsResetNoteHashReadRequests(forceResetAll = false) {
|
|
129
|
-
const numCurr = countAccumulatedItems(this.previousKernel.validationRequests.noteHashReadRequests);
|
|
130
|
-
const numNext = this.nextIteration ? countAccumulatedItems(this.nextIteration.noteHashReadRequests) : 0;
|
|
131
|
-
const maxAmountToKeep = !this.nextIteration || forceResetAll ? 0 : MAX_NOTE_HASH_READ_REQUESTS_PER_TX;
|
|
132
|
-
if (numCurr + numNext <= maxAmountToKeep) {
|
|
133
|
-
return false;
|
|
134
|
-
}
|
|
135
|
-
const futureNoteHashes = collectNested(this.executionStack, (executionResult)=>{
|
|
136
|
-
const nonEmptyNoteHashes = getNonEmptyItems(executionResult.publicInputs.noteHashes);
|
|
137
|
-
return nonEmptyNoteHashes.map((noteHash)=>new ScopedNoteHash(noteHash, executionResult.publicInputs.callContext.contractAddress));
|
|
138
|
-
});
|
|
139
|
-
const resetStates = getNoteHashReadRequestResetStates(this.previousKernel.validationRequests.noteHashReadRequests, this.previousKernel.end.noteHashes, futureNoteHashes);
|
|
140
|
-
const numPendingReads = resetStates.pendingReadHints.length;
|
|
141
|
-
const numSettledReads = resetStates.states.reduce((accum, state)=>accum + (state === ReadRequestState.SETTLED ? 1 : 0), 0);
|
|
142
|
-
if (!this.nextIteration) {
|
|
143
|
-
this.noteHashResetStates = resetStates;
|
|
144
|
-
this.requestedDimensions.NOTE_HASH_PENDING_AMOUNT = numPendingReads;
|
|
145
|
-
this.requestedDimensions.NOTE_HASH_SETTLED_AMOUNT = numSettledReads;
|
|
146
|
-
} else {
|
|
147
|
-
// Pick only one dimension to reset if next iteration is not empty.
|
|
148
|
-
if (numPendingReads > numSettledReads) {
|
|
149
|
-
this.requestedDimensions.NOTE_HASH_PENDING_AMOUNT = numPendingReads;
|
|
150
|
-
this.noteHashResetStates.states = assertLength(resetStates.states.map((state)=>state === ReadRequestState.PENDING ? state : ReadRequestState.NADA), MAX_NOTE_HASH_READ_REQUESTS_PER_TX);
|
|
151
|
-
this.noteHashResetStates.pendingReadHints = resetStates.pendingReadHints;
|
|
152
|
-
} else {
|
|
153
|
-
this.requestedDimensions.NOTE_HASH_SETTLED_AMOUNT = numSettledReads;
|
|
154
|
-
this.noteHashResetStates.states = assertLength(resetStates.states.map((state)=>state === ReadRequestState.SETTLED ? state : ReadRequestState.NADA), MAX_NOTE_HASH_READ_REQUESTS_PER_TX);
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
return true;
|
|
158
|
-
}
|
|
159
|
-
needsResetNullifierReadRequests(forceResetAll = false) {
|
|
160
|
-
const numCurr = countAccumulatedItems(this.previousKernel.validationRequests.nullifierReadRequests);
|
|
161
|
-
const numNext = this.nextIteration ? countAccumulatedItems(this.nextIteration.nullifierReadRequests) : 0;
|
|
162
|
-
const maxAmountToKeep = !this.nextIteration || forceResetAll ? 0 : MAX_NULLIFIER_READ_REQUESTS_PER_TX;
|
|
163
|
-
if (numCurr + numNext <= maxAmountToKeep) {
|
|
164
|
-
return false;
|
|
165
|
-
}
|
|
166
|
-
const futureNullifiers = collectNested(this.executionStack, (executionResult)=>{
|
|
167
|
-
const nonEmptyNullifiers = getNonEmptyItems(executionResult.publicInputs.nullifiers);
|
|
168
|
-
return nonEmptyNullifiers.map((nullifier)=>new ScopedNullifier(nullifier, executionResult.publicInputs.callContext.contractAddress));
|
|
169
|
-
});
|
|
170
|
-
const resetStates = getNullifierReadRequestResetStates(this.previousKernel.validationRequests.nullifierReadRequests, this.previousKernel.end.nullifiers, futureNullifiers);
|
|
171
|
-
const numPendingReads = resetStates.pendingReadHints.length;
|
|
172
|
-
const numSettledReads = resetStates.states.reduce((accum, state)=>accum + (state === ReadRequestState.SETTLED ? 1 : 0), 0);
|
|
173
|
-
if (!this.nextIteration) {
|
|
174
|
-
this.nullifierResetStates = resetStates;
|
|
175
|
-
this.requestedDimensions.NULLIFIER_PENDING_AMOUNT = numPendingReads;
|
|
176
|
-
this.requestedDimensions.NULLIFIER_SETTLED_AMOUNT = numSettledReads;
|
|
177
|
-
} else {
|
|
178
|
-
// Pick only one dimension to reset if next iteration is not empty.
|
|
179
|
-
if (numPendingReads > numSettledReads) {
|
|
180
|
-
this.requestedDimensions.NULLIFIER_PENDING_AMOUNT = numPendingReads;
|
|
181
|
-
this.nullifierResetStates.states = assertLength(resetStates.states.map((state)=>state === ReadRequestState.PENDING ? state : ReadRequestState.NADA), MAX_NULLIFIER_READ_REQUESTS_PER_TX);
|
|
182
|
-
this.nullifierResetStates.pendingReadHints = resetStates.pendingReadHints;
|
|
183
|
-
} else {
|
|
184
|
-
this.requestedDimensions.NULLIFIER_SETTLED_AMOUNT = numSettledReads;
|
|
185
|
-
this.nullifierResetStates.states = assertLength(resetStates.states.map((state)=>state === ReadRequestState.SETTLED ? state : ReadRequestState.NADA), MAX_NULLIFIER_READ_REQUESTS_PER_TX);
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
return true;
|
|
189
|
-
}
|
|
190
|
-
needsResetNullifierKeys() {
|
|
191
|
-
const numCurr = countAccumulatedItems(this.previousKernel.validationRequests.scopedKeyValidationRequestsAndGenerators);
|
|
192
|
-
const numNext = this.nextIteration ? countAccumulatedItems(this.nextIteration.keyValidationRequestsAndGenerators) : 0;
|
|
193
|
-
const maxAmountToKeep = !this.nextIteration ? 0 : MAX_KEY_VALIDATION_REQUESTS_PER_TX;
|
|
194
|
-
if (numCurr + numNext <= maxAmountToKeep) {
|
|
195
|
-
return false;
|
|
196
|
-
}
|
|
197
|
-
this.requestedDimensions.NULLIFIER_KEYS = numCurr;
|
|
198
|
-
return true;
|
|
199
|
-
}
|
|
200
|
-
needsResetTransientData() {
|
|
201
|
-
// Initialize this to 0 so that needsSilo can be run.
|
|
202
|
-
this.numTransientData = 0;
|
|
203
|
-
const nextAccumNoteHashes = countAccumulatedItems(this.previousKernel.end.noteHashes) + countAccumulatedItems(this.nextIteration?.noteHashes ?? []);
|
|
204
|
-
const noteHashWillOverflow = nextAccumNoteHashes > MAX_NOTE_HASHES_PER_TX;
|
|
205
|
-
const nextAccumNullifiers = countAccumulatedItems(this.previousKernel.end.nullifiers) + countAccumulatedItems(this.nextIteration?.nullifiers ?? []);
|
|
206
|
-
const nullifierWillOverflow = nextAccumNullifiers > MAX_NULLIFIERS_PER_TX;
|
|
207
|
-
if (this.nextIteration && !noteHashWillOverflow && !nullifierWillOverflow) {
|
|
208
|
-
return false;
|
|
209
|
-
}
|
|
210
|
-
const futureNoteHashReads = collectNestedReadRequests(this.executionStack, (executionResult)=>executionResult.publicInputs.noteHashReadRequests);
|
|
211
|
-
const futureNullifierReads = collectNestedReadRequests(this.executionStack, (executionResult)=>executionResult.publicInputs.nullifierReadRequests);
|
|
212
|
-
if (this.nextIteration) {
|
|
213
|
-
// If it's not the final reset, only one dimension will be reset at a time.
|
|
214
|
-
// The note hashes and nullifiers for the remaining read requests can't be squashed.
|
|
215
|
-
futureNoteHashReads.push(...this.previousKernel.validationRequests.noteHashReadRequests.filter((r)=>!r.isEmpty()));
|
|
216
|
-
futureNullifierReads.push(...this.previousKernel.validationRequests.nullifierReadRequests.filter((r)=>!r.isEmpty()));
|
|
217
|
-
}
|
|
218
|
-
const { numTransientData, hints: transientDataIndexHints } = buildTransientDataHints(this.previousKernel.end.noteHashes, this.previousKernel.end.nullifiers, futureNoteHashReads, futureNullifierReads, this.noteHashNullifierCounterMap, this.validationRequestsSplitCounter, MAX_NOTE_HASHES_PER_TX, MAX_NULLIFIERS_PER_TX);
|
|
219
|
-
if (this.nextIteration && !numTransientData) {
|
|
220
|
-
const forceResetAll = true;
|
|
221
|
-
const canClearReadRequests = noteHashWillOverflow && this.needsResetNoteHashReadRequests(forceResetAll) || nullifierWillOverflow && this.needsResetNullifierReadRequests(forceResetAll);
|
|
222
|
-
if (!canClearReadRequests) {
|
|
223
|
-
const overflownData = noteHashWillOverflow ? 'note hashes' : 'nullifiers';
|
|
224
|
-
throw new Error(`Number of ${overflownData} exceeds the limit.`);
|
|
225
|
-
}
|
|
226
|
-
// Clearing the read requests might not be enough to squash the overflown data.
|
|
227
|
-
// In this case, the next iteration will fail at the above check.
|
|
228
|
-
return true;
|
|
229
|
-
}
|
|
230
|
-
this.numTransientData = numTransientData;
|
|
231
|
-
this.transientDataIndexHints = transientDataIndexHints;
|
|
232
|
-
this.requestedDimensions.TRANSIENT_DATA_AMOUNT = numTransientData;
|
|
233
|
-
return numTransientData > 0;
|
|
234
|
-
}
|
|
235
|
-
needsSiloNoteHashes() {
|
|
236
|
-
if (this.numTransientData === undefined) {
|
|
237
|
-
throw new Error('`needsResetTransientData` must be run before `needsSiloNoteHashes`.');
|
|
238
|
-
}
|
|
239
|
-
const numNoteHashes = this.previousKernel.end.noteHashes.filter((n)=>!n.contractAddress.isZero()).length;
|
|
240
|
-
const numToSilo = Math.max(0, numNoteHashes - this.numTransientData);
|
|
241
|
-
this.requestedDimensions.NOTE_HASH_SILOING_AMOUNT = numToSilo;
|
|
242
|
-
return numToSilo > 0;
|
|
243
|
-
}
|
|
244
|
-
needsSiloNullifiers() {
|
|
245
|
-
if (this.numTransientData === undefined) {
|
|
246
|
-
throw new Error('`needsResetTransientData` must be run before `needsSiloNullifiers`.');
|
|
247
|
-
}
|
|
248
|
-
const numNullifiers = this.previousKernel.end.nullifiers.filter((n)=>!n.contractAddress.isZero()).length;
|
|
249
|
-
const numToSilo = Math.max(0, numNullifiers - this.numTransientData);
|
|
250
|
-
// Include the first nullifier if there's something to silo.
|
|
251
|
-
// The reset circuit checks that capped_size must be greater than or equal to all non-empty nullifiers.
|
|
252
|
-
// Which includes the first nullifier, even though its contract address is always zero and doesn't need siloing.
|
|
253
|
-
const cappedSize = numToSilo ? numToSilo + 1 : 0;
|
|
254
|
-
this.requestedDimensions.NULLIFIER_SILOING_AMOUNT = cappedSize;
|
|
255
|
-
return numToSilo > 0;
|
|
256
|
-
}
|
|
257
|
-
needsSiloPrivateLogs() {
|
|
258
|
-
if (this.numTransientData === undefined) {
|
|
259
|
-
throw new Error('`needsResetTransientData` must be run before `needsSiloPrivateLogs`.');
|
|
260
|
-
}
|
|
261
|
-
const privateLogs = this.previousKernel.end.privateLogs;
|
|
262
|
-
const numLogs = privateLogs.filter((l)=>!l.contractAddress.isZero()).length;
|
|
263
|
-
const noteHashes = this.previousKernel.end.noteHashes;
|
|
264
|
-
const squashedNoteHashCounters = this.transientDataIndexHints.filter((h)=>h.noteHashIndex < noteHashes.length).map((h)=>noteHashes[h.noteHashIndex].counter);
|
|
265
|
-
const numSquashedLogs = privateLogs.filter((l)=>squashedNoteHashCounters.includes(l.inner.noteHashCounter)).length;
|
|
266
|
-
const numToSilo = numLogs - numSquashedLogs;
|
|
267
|
-
this.requestedDimensions.PRIVATE_LOG_SILOING_AMOUNT = numToSilo;
|
|
268
|
-
return numToSilo > 0;
|
|
269
|
-
}
|
|
270
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/kernel_prover/hints/index.ts"],"names":[],"mappings":"AAAA,cAAc,gDAAgD,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './build_private_kernel_reset_private_inputs.js';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/kernel_prover/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC"}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import type { PrivateKernelProver } from '@aztec/stdlib/interfaces/client';
|
|
2
|
-
import { type PrivateKernelSimulateOutput, type PrivateKernelTailCircuitPublicInputs } from '@aztec/stdlib/kernel';
|
|
3
|
-
import { type PrivateExecutionResult, TxRequest } from '@aztec/stdlib/tx';
|
|
4
|
-
import type { ProvingDataOracle } from './proving_data_oracle.js';
|
|
5
|
-
export type ProvingConfig = {
|
|
6
|
-
simulate: boolean;
|
|
7
|
-
skipFeeEnforcement: boolean;
|
|
8
|
-
profile: boolean;
|
|
9
|
-
};
|
|
10
|
-
/**
|
|
11
|
-
* The KernelProver class is responsible for generating kernel proofs.
|
|
12
|
-
* It takes a transaction request, its signature, and the simulation result as inputs, and outputs a proof
|
|
13
|
-
* along with output notes. The class interacts with a ProvingDataOracle to fetch membership witnesses and
|
|
14
|
-
* constructs private call data based on the execution results.
|
|
15
|
-
*/
|
|
16
|
-
export declare class KernelProver {
|
|
17
|
-
private oracle;
|
|
18
|
-
private proofCreator;
|
|
19
|
-
private fakeProofs;
|
|
20
|
-
private log;
|
|
21
|
-
constructor(oracle: ProvingDataOracle, proofCreator: PrivateKernelProver, fakeProofs?: boolean);
|
|
22
|
-
/**
|
|
23
|
-
* Generate a proof for a given transaction request and execution result.
|
|
24
|
-
* The function iterates through the nested executions in the execution result, creates private call data,
|
|
25
|
-
* and generates a proof using the provided ProofCreator instance. It also maintains an index of new notes
|
|
26
|
-
* created during the execution and returns them as a part of the KernelProverOutput.
|
|
27
|
-
*
|
|
28
|
-
* @param txRequest - The authenticated transaction request object.
|
|
29
|
-
* @param executionResult - The execution result object containing nested executions and preimages.
|
|
30
|
-
* @param profile - Set true to profile the gate count for each circuit
|
|
31
|
-
* @returns A Promise that resolves to a KernelProverOutput object containing proof, public inputs, and output notes.
|
|
32
|
-
* TODO(#7368) this should be refactored to not recreate the ACIR bytecode now that it operates on a program stack
|
|
33
|
-
*/
|
|
34
|
-
prove(txRequest: TxRequest, executionResult: PrivateExecutionResult, { simulate, skipFeeEnforcement, profile }?: ProvingConfig): Promise<PrivateKernelSimulateOutput<PrivateKernelTailCircuitPublicInputs>>;
|
|
35
|
-
private createPrivateCallData;
|
|
36
|
-
private isPrivateOnly;
|
|
37
|
-
}
|
|
38
|
-
//# sourceMappingURL=kernel_prover.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"kernel_prover.d.ts","sourceRoot":"","sources":["../../src/kernel_prover/kernel_prover.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAML,KAAK,2BAA2B,EAEhC,KAAK,oCAAoC,EAE1C,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAEL,KAAK,sBAAsB,EAC3B,SAAS,EAMV,MAAM,kBAAkB,CAAC;AAM1B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AASlE,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,EAAE,OAAO,CAAC;IAClB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF;;;;;GAKG;AACH,qBAAa,YAAY;IAIrB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,UAAU;IALpB,OAAO,CAAC,GAAG,CAAqC;gBAGtC,MAAM,EAAE,iBAAiB,EACzB,YAAY,EAAE,mBAAmB,EACjC,UAAU,UAAQ;IAG5B;;;;;;;;;;;OAWG;IACG,KAAK,CACT,SAAS,EAAE,SAAS,EACpB,eAAe,EAAE,sBAAsB,EACvC,EAAE,QAAQ,EAAE,kBAAkB,EAAE,OAAO,EAAE,GAAE,aAI1C,GACA,OAAO,CAAC,2BAA2B,CAAC,oCAAoC,CAAC,CAAC;YA4M/D,qBAAqB;IA4CnC,OAAO,CAAC,aAAa;CAYtB"}
|