@aztec/pxe 0.0.1-commit.b655e406 → 0.0.1-commit.d1f2d6c
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dest/bin/check_oracle_version.d.ts +1 -1
- package/dest/bin/check_oracle_version.js +105 -15
- 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 +6 -12
- package/dest/config/index.d.ts.map +1 -1
- package/dest/config/index.js +24 -13
- 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 +44 -16
- package/dest/contract_function_simulator/contract_function_simulator.d.ts.map +1 -1
- package/dest/contract_function_simulator/contract_function_simulator.js +78 -38
- package/dest/contract_function_simulator/execution_note_cache.d.ts +25 -14
- package/dest/contract_function_simulator/execution_note_cache.d.ts.map +1 -1
- package/dest/contract_function_simulator/execution_note_cache.js +59 -34
- package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts +2 -2
- package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts.map +1 -1
- package/dest/contract_function_simulator/execution_tagging_index_cache.js +1 -1
- package/dest/contract_function_simulator/hashed_values_cache.d.ts +2 -2
- package/dest/contract_function_simulator/hashed_values_cache.d.ts.map +1 -1
- package/dest/contract_function_simulator/index.d.ts +2 -2
- package/dest/contract_function_simulator/index.d.ts.map +1 -1
- package/dest/contract_function_simulator/index.js +1 -1
- package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts +4 -3
- package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts.map +1 -1
- package/dest/contract_function_simulator/noir-structs/event_validation_request.js +5 -2
- package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts +5 -4
- package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts.map +1 -1
- package/dest/contract_function_simulator/noir-structs/log_retrieval_request.js +7 -6
- package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts +3 -3
- package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts.map +1 -1
- package/dest/contract_function_simulator/noir-structs/log_retrieval_response.js +1 -1
- package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts +6 -4
- package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts.map +1 -1
- package/dest/contract_function_simulator/noir-structs/note_validation_request.js +12 -3
- package/dest/contract_function_simulator/noir-structs/utility_context.d.ts +4 -10
- package/dest/contract_function_simulator/noir-structs/utility_context.d.ts.map +1 -1
- package/dest/contract_function_simulator/noir-structs/utility_context.js +7 -18
- package/dest/contract_function_simulator/oracle/index.d.ts +1 -1
- package/dest/contract_function_simulator/oracle/interfaces.d.ts +27 -17
- package/dest/contract_function_simulator/oracle/interfaces.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts +2 -2
- package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.js +1 -1
- package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts +14 -8
- package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/note_packing_utils.js +16 -11
- package/dest/contract_function_simulator/oracle/oracle.d.ts +12 -9
- package/dest/contract_function_simulator/oracle/oracle.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/oracle.js +67 -39
- package/dest/contract_function_simulator/oracle/private_execution.d.ts +10 -16
- package/dest/contract_function_simulator/oracle/private_execution.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/private_execution.js +28 -18
- package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts +37 -33
- package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/private_execution_oracle.js +59 -49
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts +76 -25
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.js +171 -64
- package/dest/contract_function_simulator/pick_notes.d.ts +2 -2
- package/dest/contract_function_simulator/pick_notes.d.ts.map +1 -1
- package/dest/contract_function_simulator/pick_notes.js +1 -1
- package/dest/contract_function_simulator/proxied_contract_data_source.d.ts +4 -4
- package/dest/contract_function_simulator/proxied_contract_data_source.d.ts.map +1 -1
- package/dest/contract_function_simulator/proxied_contract_data_source.js +23 -5
- package/dest/debug/pxe_debug_utils.d.ts +31 -0
- package/dest/debug/pxe_debug_utils.d.ts.map +1 -0
- package/dest/debug/pxe_debug_utils.js +38 -0
- package/dest/entrypoints/client/bundle/index.d.ts +1 -2
- package/dest/entrypoints/client/bundle/index.d.ts.map +1 -1
- package/dest/entrypoints/client/bundle/index.js +0 -1
- package/dest/entrypoints/client/bundle/utils.d.ts +1 -1
- package/dest/entrypoints/client/bundle/utils.d.ts.map +1 -1
- package/dest/entrypoints/client/bundle/utils.js +13 -4
- package/dest/entrypoints/client/lazy/index.d.ts +1 -2
- package/dest/entrypoints/client/lazy/index.d.ts.map +1 -1
- package/dest/entrypoints/client/lazy/index.js +0 -1
- package/dest/entrypoints/client/lazy/utils.d.ts +1 -1
- package/dest/entrypoints/client/lazy/utils.d.ts.map +1 -1
- package/dest/entrypoints/client/lazy/utils.js +13 -4
- package/dest/entrypoints/pxe_creation_options.d.ts +5 -2
- package/dest/entrypoints/pxe_creation_options.d.ts.map +1 -1
- package/dest/entrypoints/server/index.d.ts +3 -2
- package/dest/entrypoints/server/index.d.ts.map +1 -1
- package/dest/entrypoints/server/index.js +2 -1
- package/dest/entrypoints/server/utils.d.ts +1 -1
- package/dest/entrypoints/server/utils.d.ts.map +1 -1
- package/dest/entrypoints/server/utils.js +13 -20
- package/dest/error_enriching.d.ts +4 -4
- package/dest/error_enriching.d.ts.map +1 -1
- package/dest/error_enriching.js +6 -6
- package/dest/events/event_service.d.ts +16 -0
- package/dest/events/event_service.d.ts.map +1 -0
- package/dest/events/event_service.js +45 -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 +74 -0
- package/dest/job_coordinator/job_coordinator.d.ts.map +1 -0
- package/dest/job_coordinator/job_coordinator.js +93 -0
- package/dest/logs/log_service.d.ts +27 -0
- package/dest/logs/log_service.d.ts.map +1 -0
- package/dest/logs/log_service.js +129 -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 +49 -0
- package/dest/notes/note_service.d.ts.map +1 -0
- package/dest/notes/note_service.js +149 -0
- package/dest/oracle_version.d.ts +3 -3
- package/dest/oracle_version.d.ts.map +1 -1
- package/dest/oracle_version.js +4 -3
- package/dest/private_kernel/hints/compute_tx_include_by_timestamp.d.ts +1 -1
- package/dest/private_kernel/hints/index.d.ts +2 -2
- package/dest/private_kernel/hints/index.d.ts.map +1 -1
- package/dest/private_kernel/hints/index.js +1 -1
- 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/{build_private_kernel_reset_private_inputs.js → private_kernel_reset_private_inputs_builder.js} +19 -13
- package/dest/private_kernel/index.d.ts +1 -1
- package/dest/private_kernel/private_kernel_execution_prover.d.ts +1 -1
- package/dest/private_kernel/private_kernel_execution_prover.d.ts.map +1 -1
- package/dest/private_kernel/private_kernel_execution_prover.js +15 -15
- package/dest/private_kernel/private_kernel_oracle.d.ts +26 -29
- package/dest/private_kernel/private_kernel_oracle.d.ts.map +1 -1
- package/dest/private_kernel/private_kernel_oracle.js +90 -2
- package/dest/pxe.d.ts +54 -83
- package/dest/pxe.d.ts.map +1 -1
- package/dest/pxe.js +193 -241
- 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} +1 -1
- 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 +9 -0
- package/dest/storage/anchor_block_store/anchor_block_store.d.ts.map +1 -0
- package/dest/storage/{sync_data_provider/sync_data_provider.js → anchor_block_store/anchor_block_store.js} +2 -9
- 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 +255 -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_data_provider/contract_data_provider.d.ts → contract_store/contract_store.d.ts} +8 -15
- package/dest/storage/contract_store/contract_store.d.ts.map +1 -0
- package/dest/storage/{contract_data_provider/contract_data_provider.js → contract_store/contract_store.js} +46 -15
- 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_data_provider → contract_store}/private_functions_tree.d.ts +1 -1
- package/dest/storage/contract_store/private_functions_tree.d.ts.map +1 -0
- package/dest/storage/{contract_data_provider → contract_store}/private_functions_tree.js +1 -1
- package/dest/storage/index.d.ts +8 -8
- package/dest/storage/index.d.ts.map +1 -1
- package/dest/storage/index.js +7 -7
- package/dest/storage/metadata.d.ts +1 -1
- 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 +73 -0
- package/dest/storage/note_store/note_store.d.ts.map +1 -0
- package/dest/storage/note_store/note_store.js +303 -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 +250 -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 +99 -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 +30 -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 +278 -0
- package/dest/tagging/constants.d.ts +2 -2
- package/dest/tagging/constants.d.ts.map +1 -1
- package/dest/tagging/constants.js +10 -2
- 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 +16 -6
- package/dest/tagging/index.d.ts.map +1 -1
- package/dest/tagging/index.js +15 -5
- 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 +20 -19
- package/src/bin/check_oracle_version.ts +130 -20
- package/src/block_synchronizer/block_synchronizer.ts +174 -0
- package/src/block_synchronizer/index.ts +1 -0
- package/src/config/index.ts +24 -25
- 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 +127 -42
- package/src/contract_function_simulator/execution_note_cache.ts +58 -28
- package/src/contract_function_simulator/execution_tagging_index_cache.ts +1 -1
- package/src/contract_function_simulator/hashed_values_cache.ts +1 -1
- package/src/contract_function_simulator/index.ts +1 -1
- package/src/contract_function_simulator/noir-structs/event_validation_request.ts +5 -1
- package/src/contract_function_simulator/noir-structs/log_retrieval_request.ts +6 -5
- package/src/contract_function_simulator/noir-structs/log_retrieval_response.ts +2 -2
- package/src/contract_function_simulator/noir-structs/note_validation_request.ts +14 -2
- package/src/contract_function_simulator/noir-structs/utility_context.ts +6 -25
- package/src/contract_function_simulator/oracle/interfaces.ts +40 -15
- package/src/contract_function_simulator/oracle/message_load_oracle_inputs.ts +1 -1
- package/src/contract_function_simulator/oracle/note_packing_utils.ts +30 -14
- package/src/contract_function_simulator/oracle/oracle.ts +86 -41
- package/src/contract_function_simulator/oracle/private_execution.ts +42 -30
- package/src/contract_function_simulator/oracle/private_execution_oracle.ts +139 -60
- package/src/contract_function_simulator/oracle/utility_execution_oracle.ts +260 -70
- package/src/contract_function_simulator/pick_notes.ts +1 -1
- package/src/contract_function_simulator/proxied_contract_data_source.ts +24 -7
- package/src/debug/pxe_debug_utils.ts +49 -0
- package/src/entrypoints/client/bundle/index.ts +0 -1
- package/src/entrypoints/client/bundle/utils.ts +10 -4
- package/src/entrypoints/client/lazy/index.ts +0 -1
- package/src/entrypoints/client/lazy/utils.ts +10 -5
- package/src/entrypoints/pxe_creation_options.ts +4 -1
- package/src/entrypoints/server/index.ts +2 -1
- package/src/entrypoints/server/utils.ts +13 -31
- package/src/error_enriching.ts +7 -15
- package/src/events/event_service.ts +73 -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 +149 -0
- package/src/logs/log_service.ts +221 -0
- package/src/notes/index.ts +1 -0
- package/src/notes/note_service.ts +198 -0
- package/src/oracle_version.ts +4 -3
- package/src/private_kernel/hints/index.ts +1 -1
- package/src/private_kernel/hints/{build_private_kernel_reset_private_inputs.ts → private_kernel_reset_private_inputs_builder.ts} +38 -31
- package/src/private_kernel/private_kernel_execution_prover.ts +15 -21
- package/src/private_kernel/private_kernel_oracle.ts +118 -37
- package/src/pxe.ts +263 -313
- package/src/storage/{address_data_provider/address_data_provider.ts → address_store/address_store.ts} +1 -1
- 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} +2 -11
- 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_data_provider/contract_data_provider.ts → contract_store/contract_store.ts} +65 -20
- package/src/storage/contract_store/index.ts +1 -0
- package/src/storage/{contract_data_provider → contract_store}/private_functions_tree.ts +1 -1
- package/src/storage/index.ts +7 -7
- package/src/storage/note_store/index.ts +2 -0
- package/src/storage/note_store/note_store.ts +381 -0
- package/src/storage/note_store/stored_note.ts +48 -0
- package/src/storage/private_event_store/private_event_store.ts +363 -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 +129 -0
- package/src/storage/tagging_store/sender_address_book_store.ts +42 -0
- package/src/storage/tagging_store/sender_tagging_store.ts +345 -0
- package/src/tagging/constants.ts +10 -2
- package/src/tagging/get_all_logs_by_tags.ts +68 -0
- package/src/tagging/index.ts +18 -5
- 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/contract_function_simulator/execution_data_provider.d.ts +0 -274
- package/dest/contract_function_simulator/execution_data_provider.d.ts.map +0 -1
- package/dest/contract_function_simulator/execution_data_provider.js +0 -14
- package/dest/contract_function_simulator/proxied_node.d.ts +0 -9
- package/dest/contract_function_simulator/proxied_node.d.ts.map +0 -1
- package/dest/contract_function_simulator/proxied_node.js +0 -27
- package/dest/contract_function_simulator/pxe_oracle_interface.d.ts +0 -122
- package/dest/contract_function_simulator/pxe_oracle_interface.d.ts.map +0 -1
- package/dest/contract_function_simulator/pxe_oracle_interface.js +0 -701
- package/dest/private_kernel/hints/build_private_kernel_reset_private_inputs.d.ts +0 -28
- package/dest/private_kernel/hints/build_private_kernel_reset_private_inputs.d.ts.map +0 -1
- package/dest/private_kernel/private_kernel_oracle_impl.d.ts +0 -45
- package/dest/private_kernel/private_kernel_oracle_impl.d.ts.map +0 -1
- package/dest/private_kernel/private_kernel_oracle_impl.js +0 -86
- package/dest/storage/address_data_provider/address_data_provider.d.ts +0 -11
- 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/capsule_data_provider/capsule_data_provider.d.ts +0 -25
- 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 -118
- 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.map +0 -1
- package/dest/storage/contract_data_provider/index.d.ts +0 -2
- package/dest/storage/contract_data_provider/index.d.ts.map +0 -1
- package/dest/storage/contract_data_provider/index.js +0 -1
- package/dest/storage/contract_data_provider/private_functions_tree.d.ts.map +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 -100
- package/dest/storage/note_data_provider/note_dao.d.ts.map +0 -1
- package/dest/storage/note_data_provider/note_dao.js +0 -102
- package/dest/storage/note_data_provider/note_data_provider.d.ts +0 -83
- 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 -308
- package/dest/storage/private_event_data_provider/private_event_data_provider.d.ts +0 -43
- package/dest/storage/private_event_data_provider/private_event_data_provider.d.ts.map +0 -1
- package/dest/storage/private_event_data_provider/private_event_data_provider.js +0 -104
- 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 -10
- package/dest/storage/sync_data_provider/sync_data_provider.d.ts.map +0 -1
- 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 -40
- 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 -89
- 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 -35
- package/dest/synchronizer/synchronizer.d.ts.map +0 -1
- package/dest/synchronizer/synchronizer.js +0 -101
- package/dest/tagging/siloed_tag.d.ts +0 -14
- package/dest/tagging/siloed_tag.d.ts.map +0 -1
- package/dest/tagging/siloed_tag.js +0 -20
- package/dest/tagging/tag.d.ts +0 -12
- package/dest/tagging/tag.d.ts.map +0 -1
- package/dest/tagging/tag.js +0 -17
- package/dest/tagging/utils.d.ts +0 -18
- package/dest/tagging/utils.d.ts.map +0 -1
- package/dest/tagging/utils.js +0 -24
- package/src/contract_function_simulator/execution_data_provider.ts +0 -343
- package/src/contract_function_simulator/proxied_node.ts +0 -33
- package/src/contract_function_simulator/pxe_oracle_interface.ts +0 -1019
- package/src/private_kernel/private_kernel_oracle_impl.ts +0 -132
- package/src/storage/address_data_provider/index.ts +0 -1
- package/src/storage/capsule_data_provider/capsule_data_provider.ts +0 -147
- package/src/storage/capsule_data_provider/index.ts +0 -1
- package/src/storage/contract_data_provider/index.ts +0 -1
- package/src/storage/note_data_provider/index.ts +0 -2
- package/src/storage/note_data_provider/note_dao.ts +0 -154
- package/src/storage/note_data_provider/note_data_provider.ts +0 -393
- package/src/storage/private_event_data_provider/private_event_data_provider.ts +0 -148
- 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 -120
- package/src/synchronizer/index.ts +0 -1
- package/src/synchronizer/synchronizer.ts +0 -120
- package/src/tagging/siloed_tag.ts +0 -22
- package/src/tagging/tag.ts +0 -16
- package/src/tagging/utils.ts +0 -31
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH, PRIVATE_CONTEXT_INPUTS_LENGTH } from '@aztec/constants';
|
|
2
|
-
import { Fr } from '@aztec/foundation/
|
|
2
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
3
|
import { createLogger } from '@aztec/foundation/log';
|
|
4
4
|
import { Timer } from '@aztec/foundation/timer';
|
|
5
5
|
import { ProtocolContractAddress } from '@aztec/protocol-contracts';
|
|
@@ -14,19 +14,20 @@ import {
|
|
|
14
14
|
import {
|
|
15
15
|
type FunctionArtifact,
|
|
16
16
|
type FunctionArtifactWithContractName,
|
|
17
|
+
type FunctionCall,
|
|
17
18
|
type FunctionSelector,
|
|
18
19
|
countArgumentsSize,
|
|
19
20
|
} from '@aztec/stdlib/abi';
|
|
20
21
|
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
22
|
+
import { L2BlockHash } from '@aztec/stdlib/block';
|
|
21
23
|
import type { ContractInstance } from '@aztec/stdlib/contract';
|
|
22
24
|
import { DelayedPublicMutableValues, DelayedPublicMutableValuesWithHash } from '@aztec/stdlib/delayed-public-mutable';
|
|
23
25
|
import type { AztecNode } from '@aztec/stdlib/interfaces/client';
|
|
24
26
|
import { PrivateCircuitPublicInputs } from '@aztec/stdlib/kernel';
|
|
25
27
|
import type { CircuitWitnessGenerationStats } from '@aztec/stdlib/stats';
|
|
26
28
|
import { BlockHeader, PrivateCallExecutionResult } from '@aztec/stdlib/tx';
|
|
27
|
-
import type { UInt64 } from '@aztec/stdlib/types';
|
|
28
29
|
|
|
29
|
-
import
|
|
30
|
+
import { ContractStore } from '../../storage/contract_store/index.js';
|
|
30
31
|
import { Oracle } from './oracle.js';
|
|
31
32
|
import type { PrivateExecutionOracle } from './private_execution_oracle.js';
|
|
32
33
|
|
|
@@ -84,7 +85,6 @@ export async function executePrivateFunction(
|
|
|
84
85
|
|
|
85
86
|
const rawReturnValues = await privateExecutionOracle.privateLoadFromExecutionCache(publicInputs.returnsHash);
|
|
86
87
|
|
|
87
|
-
const noteHashLeafIndexMap = privateExecutionOracle.getNoteHashLeafIndexMap();
|
|
88
88
|
const newNotes = privateExecutionOracle.getNewNotes();
|
|
89
89
|
const noteHashNullifierCounterMap = privateExecutionOracle.getNoteHashNullifierCounterMap();
|
|
90
90
|
const offchainEffects = privateExecutionOracle.getOffchainEffects();
|
|
@@ -107,7 +107,6 @@ export async function executePrivateFunction(
|
|
|
107
107
|
Buffer.from(artifact.verificationKey!, 'base64'),
|
|
108
108
|
partialWitness,
|
|
109
109
|
publicInputs,
|
|
110
|
-
noteHashLeafIndexMap,
|
|
111
110
|
newNotes,
|
|
112
111
|
noteHashNullifierCounterMap,
|
|
113
112
|
rawReturnValues,
|
|
@@ -153,21 +152,22 @@ export function extractPrivateCircuitPublicInputs(
|
|
|
153
152
|
* from the instance is used.
|
|
154
153
|
* @param contractAddress - The address of the contract to read the class id for.
|
|
155
154
|
* @param instance - The instance of the contract.
|
|
156
|
-
* @param
|
|
157
|
-
* @param
|
|
158
|
-
* @param timestamp - The timestamp at which to obtain the class id from the DelayedPublicMutable.
|
|
155
|
+
* @param aztecNode - The Aztec node to query for storage.
|
|
156
|
+
* @param header - The header of the block at which to load the DelayedPublicMutable storing the class id.
|
|
159
157
|
* @returns The current class id.
|
|
160
158
|
*/
|
|
161
159
|
export async function readCurrentClassId(
|
|
162
160
|
contractAddress: AztecAddress,
|
|
163
161
|
instance: ContractInstance,
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
timestamp: UInt64,
|
|
162
|
+
aztecNode: AztecNode,
|
|
163
|
+
header: BlockHeader,
|
|
167
164
|
) {
|
|
165
|
+
const blockHashFr = await header.hash();
|
|
166
|
+
const blockHash = L2BlockHash.fromField(blockHashFr);
|
|
167
|
+
const timestamp = header.globalVariables.timestamp;
|
|
168
168
|
const { delayedPublicMutableSlot } = await DelayedPublicMutableValuesWithHash.getContractUpdateSlots(contractAddress);
|
|
169
169
|
const delayedPublicMutableValues = await DelayedPublicMutableValues.readFromTree(delayedPublicMutableSlot, slot =>
|
|
170
|
-
|
|
170
|
+
aztecNode.getPublicStorageAt(blockHash, ProtocolContractAddress.ContractInstanceRegistry, slot),
|
|
171
171
|
);
|
|
172
172
|
let currentClassId = delayedPublicMutableValues.svc.getCurrentAt(timestamp)[0];
|
|
173
173
|
if (currentClassId.isZero()) {
|
|
@@ -177,31 +177,43 @@ export async function readCurrentClassId(
|
|
|
177
177
|
}
|
|
178
178
|
|
|
179
179
|
/**
|
|
180
|
-
* Verify that the current class id of a contract obtained from AztecNode is the same as the one in
|
|
181
|
-
* provider (i.e. PXE).
|
|
182
|
-
* @param
|
|
183
|
-
* @param executionDataProvider - The execution data provider.
|
|
184
|
-
* @param header - The header of the block at which to verify the current class id. If not provided, the anchor block
|
|
185
|
-
* header of the execution data provider is used.
|
|
180
|
+
* Verify that the current class id of a contract obtained from AztecNode is the same as the one in contract data
|
|
181
|
+
* provider (i.e. PXE's own storage).
|
|
182
|
+
* @param header - The header of the block at which to verify the current class id.
|
|
186
183
|
*/
|
|
187
|
-
|
|
184
|
+
async function verifyCurrentClassId(
|
|
188
185
|
contractAddress: AztecAddress,
|
|
189
|
-
|
|
190
|
-
|
|
186
|
+
aztecNode: AztecNode,
|
|
187
|
+
contractStore: ContractStore,
|
|
188
|
+
header: BlockHeader,
|
|
191
189
|
) {
|
|
192
|
-
|
|
190
|
+
const instance = await contractStore.getContractInstance(contractAddress);
|
|
191
|
+
if (!instance) {
|
|
192
|
+
throw new Error(`No contract instance found for address ${contractAddress.toString()}`);
|
|
193
|
+
}
|
|
193
194
|
|
|
194
|
-
const
|
|
195
|
-
const currentClassId = await readCurrentClassId(
|
|
196
|
-
contractAddress,
|
|
197
|
-
instance,
|
|
198
|
-
executionDataProvider,
|
|
199
|
-
header.globalVariables.blockNumber,
|
|
200
|
-
header.globalVariables.timestamp,
|
|
201
|
-
);
|
|
195
|
+
const currentClassId = await readCurrentClassId(contractAddress, instance, aztecNode, header);
|
|
202
196
|
if (!instance.currentContractClassId.equals(currentClassId)) {
|
|
203
197
|
throw new Error(
|
|
204
198
|
`Contract ${contractAddress} is outdated, current class id is ${currentClassId}, local class id is ${instance.currentContractClassId}`,
|
|
205
199
|
);
|
|
206
200
|
}
|
|
207
201
|
}
|
|
202
|
+
|
|
203
|
+
/**
|
|
204
|
+
* Ensures the contract's private state is synchronized and that the PXE holds the current class artifact for
|
|
205
|
+
* the contract.
|
|
206
|
+
*/
|
|
207
|
+
export async function ensureContractSynced(
|
|
208
|
+
contractAddress: AztecAddress,
|
|
209
|
+
functionToInvokeAfterSync: FunctionSelector | null,
|
|
210
|
+
utilityExecutor: (call: FunctionCall) => Promise<any>,
|
|
211
|
+
aztecNode: AztecNode,
|
|
212
|
+
contractStore: ContractStore,
|
|
213
|
+
header: BlockHeader,
|
|
214
|
+
): Promise<void> {
|
|
215
|
+
await Promise.all([
|
|
216
|
+
contractStore.syncPrivateState(contractAddress, functionToInvokeAfterSync, utilityExecutor),
|
|
217
|
+
verifyCurrentClassId(contractAddress, aztecNode, contractStore, header),
|
|
218
|
+
]);
|
|
219
|
+
}
|
|
@@ -1,20 +1,25 @@
|
|
|
1
1
|
import { MAX_FR_CALLDATA_TO_ALL_ENQUEUED_CALLS, PRIVATE_CONTEXT_INPUTS_LENGTH } from '@aztec/constants';
|
|
2
|
-
import { Fr } from '@aztec/foundation/
|
|
2
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
3
|
import { createLogger } from '@aztec/foundation/log';
|
|
4
4
|
import { Timer } from '@aztec/foundation/timer';
|
|
5
|
+
import type { KeyStore } from '@aztec/key-store';
|
|
5
6
|
import { type CircuitSimulator, toACVMWitness } from '@aztec/simulator/client';
|
|
6
7
|
import {
|
|
7
8
|
type FunctionAbi,
|
|
8
9
|
type FunctionArtifact,
|
|
10
|
+
type FunctionCall,
|
|
9
11
|
FunctionSelector,
|
|
10
12
|
type NoteSelector,
|
|
11
13
|
countArgumentsSize,
|
|
12
14
|
} from '@aztec/stdlib/abi';
|
|
13
15
|
import type { AuthWitness } from '@aztec/stdlib/auth-witness';
|
|
14
16
|
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
15
|
-
import {
|
|
17
|
+
import { L2BlockHash } from '@aztec/stdlib/block';
|
|
18
|
+
import { siloNullifier } from '@aztec/stdlib/hash';
|
|
19
|
+
import type { AztecNode } from '@aztec/stdlib/interfaces/client';
|
|
16
20
|
import { PrivateContextInputs } from '@aztec/stdlib/kernel';
|
|
17
|
-
import type
|
|
21
|
+
import { type ContractClassLog, DirectionalAppTaggingSecret, type PreTag } from '@aztec/stdlib/logs';
|
|
22
|
+
import { Tag } from '@aztec/stdlib/logs';
|
|
18
23
|
import { Note, type NoteStatus } from '@aztec/stdlib/note';
|
|
19
24
|
import {
|
|
20
25
|
type BlockHeader,
|
|
@@ -26,14 +31,23 @@ import {
|
|
|
26
31
|
type TxContext,
|
|
27
32
|
} from '@aztec/stdlib/tx';
|
|
28
33
|
|
|
29
|
-
import {
|
|
30
|
-
import type {
|
|
34
|
+
import { NoteService } from '../../notes/note_service.js';
|
|
35
|
+
import type { AddressStore } from '../../storage/address_store/address_store.js';
|
|
36
|
+
import type { AnchorBlockStore } from '../../storage/anchor_block_store/anchor_block_store.js';
|
|
37
|
+
import type { CapsuleStore } from '../../storage/capsule_store/capsule_store.js';
|
|
38
|
+
import type { ContractStore } from '../../storage/contract_store/contract_store.js';
|
|
39
|
+
import type { NoteStore } from '../../storage/note_store/note_store.js';
|
|
40
|
+
import type { PrivateEventStore } from '../../storage/private_event_store/private_event_store.js';
|
|
41
|
+
import type { RecipientTaggingStore } from '../../storage/tagging_store/recipient_tagging_store.js';
|
|
42
|
+
import type { SenderAddressBookStore } from '../../storage/tagging_store/sender_address_book_store.js';
|
|
43
|
+
import type { SenderTaggingStore } from '../../storage/tagging_store/sender_tagging_store.js';
|
|
44
|
+
import { syncSenderTaggingIndexes } from '../../tagging/index.js';
|
|
31
45
|
import type { ExecutionNoteCache } from '../execution_note_cache.js';
|
|
32
46
|
import { ExecutionTaggingIndexCache } from '../execution_tagging_index_cache.js';
|
|
33
47
|
import type { HashedValuesCache } from '../hashed_values_cache.js';
|
|
34
48
|
import { pickNotes } from '../pick_notes.js';
|
|
35
49
|
import type { IPrivateExecutionOracle, NoteData } from './interfaces.js';
|
|
36
|
-
import {
|
|
50
|
+
import { ensureContractSynced, executePrivateFunction } from './private_execution.js';
|
|
37
51
|
import { UtilityExecutionOracle } from './utility_execution_oracle.js';
|
|
38
52
|
|
|
39
53
|
/**
|
|
@@ -51,16 +65,6 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
51
65
|
* Users can also use this to get a clearer idea of what's happened during a simulation.
|
|
52
66
|
*/
|
|
53
67
|
private newNotes: NoteAndSlot[] = [];
|
|
54
|
-
/**
|
|
55
|
-
* Notes from previous transactions that are returned to the oracle call `getNotes` during this execution.
|
|
56
|
-
* The mapping maps from the unique siloed note hash to the index for notes created in private executions.
|
|
57
|
-
* It maps from siloed note hash to the index for notes created by public functions.
|
|
58
|
-
*
|
|
59
|
-
* They are not part of the ExecutionNoteCache and being forwarded to nested contexts via `extend()`
|
|
60
|
-
* because these notes are meant to be maintained on a per-call basis
|
|
61
|
-
* They should act as references for the read requests output by an app circuit via public inputs.
|
|
62
|
-
*/
|
|
63
|
-
private noteHashLeafIndexMap: Map<bigint, bigint> = new Map();
|
|
64
68
|
private noteHashNullifierCounterMap: Map<number, number> = new Map();
|
|
65
69
|
private contractClassLogs: CountedContractClassLog[] = [];
|
|
66
70
|
private offchainEffects: { data: Fr[] }[] = [];
|
|
@@ -71,14 +75,27 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
71
75
|
private readonly txContext: TxContext,
|
|
72
76
|
private readonly callContext: CallContext,
|
|
73
77
|
/** Header of a block whose state is used during private execution (not the block the transaction is included in). */
|
|
74
|
-
protected readonly anchorBlockHeader: BlockHeader,
|
|
78
|
+
protected override readonly anchorBlockHeader: BlockHeader,
|
|
79
|
+
/** Needed to trigger contract synchronization before nested calls */
|
|
80
|
+
private readonly utilityExecutor: (call: FunctionCall) => Promise<void>,
|
|
75
81
|
/** List of transient auth witnesses to be used during this simulation */
|
|
76
82
|
authWitnesses: AuthWitness[],
|
|
77
83
|
capsules: Capsule[],
|
|
78
84
|
private readonly executionCache: HashedValuesCache,
|
|
79
85
|
private readonly noteCache: ExecutionNoteCache,
|
|
80
86
|
private readonly taggingIndexCache: ExecutionTaggingIndexCache,
|
|
81
|
-
|
|
87
|
+
contractStore: ContractStore,
|
|
88
|
+
noteStore: NoteStore,
|
|
89
|
+
keyStore: KeyStore,
|
|
90
|
+
addressStore: AddressStore,
|
|
91
|
+
aztecNode: AztecNode,
|
|
92
|
+
anchorBlockStore: AnchorBlockStore,
|
|
93
|
+
private readonly senderTaggingStore: SenderTaggingStore,
|
|
94
|
+
recipientTaggingStore: RecipientTaggingStore,
|
|
95
|
+
senderAddressBookStore: SenderAddressBookStore,
|
|
96
|
+
capsuleStore: CapsuleStore,
|
|
97
|
+
privateEventStore: PrivateEventStore,
|
|
98
|
+
jobId: string,
|
|
82
99
|
private totalPublicCalldataCount: number = 0,
|
|
83
100
|
protected sideEffectCounter: number = 0,
|
|
84
101
|
log = createLogger('simulator:client_execution_context'),
|
|
@@ -86,7 +103,25 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
86
103
|
private senderForTags?: AztecAddress,
|
|
87
104
|
private simulator?: CircuitSimulator,
|
|
88
105
|
) {
|
|
89
|
-
super(
|
|
106
|
+
super(
|
|
107
|
+
callContext.contractAddress,
|
|
108
|
+
authWitnesses,
|
|
109
|
+
capsules,
|
|
110
|
+
anchorBlockHeader,
|
|
111
|
+
contractStore,
|
|
112
|
+
noteStore,
|
|
113
|
+
keyStore,
|
|
114
|
+
addressStore,
|
|
115
|
+
aztecNode,
|
|
116
|
+
anchorBlockStore,
|
|
117
|
+
recipientTaggingStore,
|
|
118
|
+
senderAddressBookStore,
|
|
119
|
+
capsuleStore,
|
|
120
|
+
privateEventStore,
|
|
121
|
+
jobId,
|
|
122
|
+
log,
|
|
123
|
+
scopes,
|
|
124
|
+
);
|
|
90
125
|
}
|
|
91
126
|
|
|
92
127
|
public getPrivateContextInputs(): PrivateContextInputs {
|
|
@@ -118,14 +153,6 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
118
153
|
return toACVMWitness(0, fields);
|
|
119
154
|
}
|
|
120
155
|
|
|
121
|
-
/**
|
|
122
|
-
* The KernelProver will use this to fully populate witnesses and provide hints to the kernel circuit
|
|
123
|
-
* regarding which note hash each settled read request corresponds to.
|
|
124
|
-
*/
|
|
125
|
-
public getNoteHashLeafIndexMap() {
|
|
126
|
-
return this.noteHashLeafIndexMap;
|
|
127
|
-
}
|
|
128
|
-
|
|
129
156
|
/**
|
|
130
157
|
* Get the data for the newly created notes.
|
|
131
158
|
*/
|
|
@@ -152,7 +179,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
152
179
|
}
|
|
153
180
|
|
|
154
181
|
/**
|
|
155
|
-
* Returns the pre
|
|
182
|
+
* Returns the pre-tags that were used in this execution (and that need to be stored in the db).
|
|
156
183
|
*/
|
|
157
184
|
public getUsedPreTags(): PreTag[] {
|
|
158
185
|
return this.taggingIndexCache.getUsedPreTags();
|
|
@@ -202,11 +229,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
202
229
|
* @returns An app tag to be used in a log.
|
|
203
230
|
*/
|
|
204
231
|
public async privateGetNextAppTagAsSender(sender: AztecAddress, recipient: AztecAddress): Promise<Tag> {
|
|
205
|
-
const secret = await this
|
|
206
|
-
this.contractAddress,
|
|
207
|
-
sender,
|
|
208
|
-
recipient,
|
|
209
|
-
);
|
|
232
|
+
const secret = await this.#calculateDirectionalAppTaggingSecret(this.contractAddress, sender, recipient);
|
|
210
233
|
|
|
211
234
|
const index = await this.#getIndexToUseForSecret(secret);
|
|
212
235
|
this.log.debug(
|
|
@@ -217,6 +240,22 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
217
240
|
return Tag.compute({ secret, index });
|
|
218
241
|
}
|
|
219
242
|
|
|
243
|
+
async #calculateDirectionalAppTaggingSecret(
|
|
244
|
+
contractAddress: AztecAddress,
|
|
245
|
+
sender: AztecAddress,
|
|
246
|
+
recipient: AztecAddress,
|
|
247
|
+
) {
|
|
248
|
+
const senderCompleteAddress = await this.getCompleteAddress(sender);
|
|
249
|
+
const senderIvsk = await this.keyStore.getMasterIncomingViewingSecretKey(sender);
|
|
250
|
+
return DirectionalAppTaggingSecret.compute(
|
|
251
|
+
senderCompleteAddress,
|
|
252
|
+
senderIvsk,
|
|
253
|
+
recipient,
|
|
254
|
+
contractAddress,
|
|
255
|
+
recipient,
|
|
256
|
+
);
|
|
257
|
+
}
|
|
258
|
+
|
|
220
259
|
async #getIndexToUseForSecret(secret: DirectionalAppTaggingSecret): Promise<number> {
|
|
221
260
|
// If we have the tagging index in the cache, we use it. If not we obtain it from the execution data provider.
|
|
222
261
|
const lastUsedIndexInTx = this.taggingIndexCache.getLastUsedIndex(secret);
|
|
@@ -227,8 +266,17 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
227
266
|
// This is a tagging secret we've not yet used in this tx, so first sync our store to make sure its indices
|
|
228
267
|
// are up to date. We do this here because this store is not synced as part of the global sync because
|
|
229
268
|
// that'd be wasteful as most tagging secrets are not used in each tx.
|
|
230
|
-
await this.
|
|
231
|
-
|
|
269
|
+
const anchorBlockHash = L2BlockHash.fromField(await this.anchorBlockHeader.hash());
|
|
270
|
+
await syncSenderTaggingIndexes(
|
|
271
|
+
secret,
|
|
272
|
+
this.contractAddress,
|
|
273
|
+
this.aztecNode,
|
|
274
|
+
this.senderTaggingStore,
|
|
275
|
+
anchorBlockHash,
|
|
276
|
+
this.jobId,
|
|
277
|
+
);
|
|
278
|
+
|
|
279
|
+
const lastUsedIndex = await this.senderTaggingStore.getLastUsedIndex(secret, this.jobId);
|
|
232
280
|
// If lastUsedIndex is undefined, we've never used this secret, so start from 0
|
|
233
281
|
// Otherwise, the next index to use is one past the last used index
|
|
234
282
|
return lastUsedIndex === undefined ? 0 : lastUsedIndex + 1;
|
|
@@ -282,6 +330,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
282
330
|
* Real notes coming from DB will have a leafIndex which
|
|
283
331
|
* represents their index in the note hash tree.
|
|
284
332
|
*
|
|
333
|
+
* @param owner - The owner of the notes. If undefined, returns notes for all owners.
|
|
285
334
|
* @param storageSlot - The storage slot.
|
|
286
335
|
* @param numSelects - The number of valid selects in selectBy and selectValues.
|
|
287
336
|
* @param selectBy - An array of indices of the fields to selects.
|
|
@@ -295,6 +344,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
295
344
|
* @returns Array of note data.
|
|
296
345
|
*/
|
|
297
346
|
public override async utilityGetNotes(
|
|
347
|
+
owner: AztecAddress | undefined,
|
|
298
348
|
storageSlot: Fr,
|
|
299
349
|
numSelects: number,
|
|
300
350
|
selectByIndexes: number[],
|
|
@@ -311,11 +361,14 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
311
361
|
status: NoteStatus,
|
|
312
362
|
): Promise<NoteData[]> {
|
|
313
363
|
// Nullified pending notes are already removed from the list.
|
|
314
|
-
const pendingNotes = this.noteCache.getNotes(this.callContext.contractAddress, storageSlot);
|
|
364
|
+
const pendingNotes = this.noteCache.getNotes(this.callContext.contractAddress, owner, storageSlot);
|
|
315
365
|
|
|
316
366
|
const pendingNullifiers = this.noteCache.getNullifiers(this.callContext.contractAddress);
|
|
317
|
-
|
|
367
|
+
|
|
368
|
+
const noteService = new NoteService(this.noteStore, this.aztecNode, this.anchorBlockStore, this.jobId);
|
|
369
|
+
const dbNotes = await noteService.getNotes(
|
|
318
370
|
this.callContext.contractAddress,
|
|
371
|
+
owner,
|
|
319
372
|
storageSlot,
|
|
320
373
|
status,
|
|
321
374
|
this.scopes,
|
|
@@ -342,38 +395,24 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
342
395
|
.join(', ')}`,
|
|
343
396
|
);
|
|
344
397
|
|
|
345
|
-
const noteHashesAndIndexes = await Promise.all(
|
|
346
|
-
notes.map(async n => {
|
|
347
|
-
if (n.index !== undefined) {
|
|
348
|
-
const siloedNoteHash = await siloNoteHash(n.contractAddress, n.noteHash);
|
|
349
|
-
const uniqueNoteHash = await computeUniqueNoteHash(n.noteNonce, siloedNoteHash);
|
|
350
|
-
|
|
351
|
-
return { hash: uniqueNoteHash, index: n.index };
|
|
352
|
-
}
|
|
353
|
-
}),
|
|
354
|
-
);
|
|
355
|
-
|
|
356
|
-
noteHashesAndIndexes
|
|
357
|
-
.filter(n => n !== undefined)
|
|
358
|
-
.forEach(n => {
|
|
359
|
-
this.noteHashLeafIndexMap.set(n!.hash.toBigInt(), n!.index);
|
|
360
|
-
});
|
|
361
|
-
|
|
362
398
|
return notes;
|
|
363
399
|
}
|
|
364
400
|
|
|
365
401
|
/**
|
|
366
402
|
* Keep track of the new note created during execution.
|
|
367
403
|
* It can be used in subsequent calls (or transactions when chaining txs is possible).
|
|
368
|
-
* @param
|
|
404
|
+
* @param owner - The owner of the note.
|
|
369
405
|
* @param storageSlot - The storage slot.
|
|
406
|
+
* @param randomness - The randomness injected into the note.
|
|
370
407
|
* @param noteTypeId - The type ID of the note.
|
|
371
408
|
* @param noteItems - The items to be included in a Note.
|
|
372
409
|
* @param noteHash - A hash of the new note.
|
|
373
410
|
* @returns
|
|
374
411
|
*/
|
|
375
412
|
public privateNotifyCreatedNote(
|
|
413
|
+
owner: AztecAddress,
|
|
376
414
|
storageSlot: Fr,
|
|
415
|
+
randomness: Fr,
|
|
377
416
|
noteTypeId: NoteSelector,
|
|
378
417
|
noteItems: Fr[],
|
|
379
418
|
noteHash: Fr,
|
|
@@ -382,6 +421,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
382
421
|
this.log.debug(`Notified of new note with inner hash ${noteHash}`, {
|
|
383
422
|
contractAddress: this.callContext.contractAddress,
|
|
384
423
|
storageSlot,
|
|
424
|
+
randomness,
|
|
385
425
|
noteTypeId,
|
|
386
426
|
counter,
|
|
387
427
|
});
|
|
@@ -390,15 +430,18 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
390
430
|
this.noteCache.addNewNote(
|
|
391
431
|
{
|
|
392
432
|
contractAddress: this.callContext.contractAddress,
|
|
433
|
+
owner,
|
|
393
434
|
storageSlot,
|
|
435
|
+
randomness,
|
|
394
436
|
noteNonce: Fr.ZERO, // Nonce cannot be known during private execution.
|
|
395
437
|
note,
|
|
396
438
|
siloedNullifier: undefined, // Siloed nullifier cannot be known for newly created note.
|
|
397
439
|
noteHash,
|
|
440
|
+
isPending: true, // This note has just been created and hence is not settled yet.
|
|
398
441
|
},
|
|
399
442
|
counter,
|
|
400
443
|
);
|
|
401
|
-
this.newNotes.push(
|
|
444
|
+
this.newNotes.push(NoteAndSlot.from({ note, storageSlot, randomness, noteTypeId }));
|
|
402
445
|
}
|
|
403
446
|
|
|
404
447
|
/**
|
|
@@ -429,6 +472,19 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
429
472
|
return this.noteCache.nullifierCreated(this.callContext.contractAddress, innerNullifier);
|
|
430
473
|
}
|
|
431
474
|
|
|
475
|
+
/**
|
|
476
|
+
* Check if a nullifier has been emitted in the same transaction, i.e. if privateNotifyCreatedNullifier has been
|
|
477
|
+
* called for this inner nullifier from the contract with the specified address.
|
|
478
|
+
* @param innerNullifier - The inner nullifier to check.
|
|
479
|
+
* @param contractAddress - Address of the contract that emitted the nullifier.
|
|
480
|
+
* @returns A boolean indicating whether the nullifier is pending or not.
|
|
481
|
+
*/
|
|
482
|
+
public async privateIsNullifierPending(innerNullifier: Fr, contractAddress: AztecAddress): Promise<boolean> {
|
|
483
|
+
const siloedNullifier = await siloNullifier(contractAddress, innerNullifier);
|
|
484
|
+
const isNullifierPending = this.noteCache.getNullifiers(contractAddress).has(siloedNullifier.toBigInt());
|
|
485
|
+
return Promise.resolve(isNullifierPending);
|
|
486
|
+
}
|
|
487
|
+
|
|
432
488
|
/**
|
|
433
489
|
* Emit a contract class log.
|
|
434
490
|
* This fn exists because we only carry a poseidon hash through the kernels, and need to
|
|
@@ -485,9 +541,16 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
485
541
|
|
|
486
542
|
isStaticCall = isStaticCall || this.callContext.isStaticCall;
|
|
487
543
|
|
|
488
|
-
await
|
|
544
|
+
await ensureContractSynced(
|
|
545
|
+
targetContractAddress,
|
|
546
|
+
functionSelector,
|
|
547
|
+
this.utilityExecutor,
|
|
548
|
+
this.aztecNode,
|
|
549
|
+
this.contractStore,
|
|
550
|
+
this.anchorBlockHeader,
|
|
551
|
+
);
|
|
489
552
|
|
|
490
|
-
const targetArtifact = await this.
|
|
553
|
+
const targetArtifact = await this.contractStore.getFunctionArtifactWithDebugMetadata(
|
|
491
554
|
targetContractAddress,
|
|
492
555
|
functionSelector,
|
|
493
556
|
);
|
|
@@ -501,12 +564,24 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
501
564
|
derivedTxContext,
|
|
502
565
|
derivedCallContext,
|
|
503
566
|
this.anchorBlockHeader,
|
|
567
|
+
this.utilityExecutor,
|
|
504
568
|
this.authWitnesses,
|
|
505
569
|
this.capsules,
|
|
506
570
|
this.executionCache,
|
|
507
571
|
this.noteCache,
|
|
508
572
|
this.taggingIndexCache,
|
|
509
|
-
this.
|
|
573
|
+
this.contractStore,
|
|
574
|
+
this.noteStore,
|
|
575
|
+
this.keyStore,
|
|
576
|
+
this.addressStore,
|
|
577
|
+
this.aztecNode,
|
|
578
|
+
this.anchorBlockStore,
|
|
579
|
+
this.senderTaggingStore,
|
|
580
|
+
this.recipientTaggingStore,
|
|
581
|
+
this.senderAddressBookStore,
|
|
582
|
+
this.capsuleStore,
|
|
583
|
+
this.privateEventStore,
|
|
584
|
+
this.jobId,
|
|
510
585
|
this.totalPublicCalldataCount,
|
|
511
586
|
sideEffectCounter,
|
|
512
587
|
this.log,
|
|
@@ -594,6 +669,10 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
594
669
|
return this.noteCache.setMinRevertibleSideEffectCounter(minRevertibleSideEffectCounter);
|
|
595
670
|
}
|
|
596
671
|
|
|
672
|
+
public privateIsSideEffectCounterRevertible(sideEffectCounter: number): Promise<boolean> {
|
|
673
|
+
return Promise.resolve(this.noteCache.isSideEffectCounterRevertible(sideEffectCounter));
|
|
674
|
+
}
|
|
675
|
+
|
|
597
676
|
/**
|
|
598
677
|
* Derives the call context for a nested execution.
|
|
599
678
|
* @param targetContractAddress - The address of the contract being called.
|
|
@@ -615,7 +694,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
615
694
|
}
|
|
616
695
|
|
|
617
696
|
public getDebugFunctionName() {
|
|
618
|
-
return this.
|
|
697
|
+
return this.contractStore.getDebugFunctionName(this.contractAddress, this.callContext.functionSelector);
|
|
619
698
|
}
|
|
620
699
|
|
|
621
700
|
public utilityEmitOffchainEffect(data: Fr[]): Promise<void> {
|