@aztec/pxe 0.0.1-commit.24de95ac → 0.0.1-commit.2e2504e2
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 +45 -0
- package/dest/block_synchronizer/block_synchronizer.d.ts.map +1 -0
- package/dest/block_synchronizer/block_synchronizer.js +153 -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 +81 -41
- 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 +5 -4
- 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 +6 -3
- 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 +7 -5
- 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 +13 -4
- 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 +29 -19
- 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 +14 -11
- package/dest/contract_function_simulator/oracle/oracle.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/oracle.js +90 -50
- package/dest/contract_function_simulator/oracle/private_execution.d.ts +2 -27
- package/dest/contract_function_simulator/oracle/private_execution.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/private_execution.js +2 -38
- package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts +38 -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 +58 -49
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts +84 -30
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.js +170 -68
- 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/contract_sync/contract_sync_service.d.ts +41 -0
- package/dest/contract_sync/contract_sync_service.d.ts.map +1 -0
- package/dest/contract_sync/contract_sync_service.js +82 -0
- package/dest/contract_sync/helpers.d.ts +28 -0
- package/dest/contract_sync/helpers.d.ts.map +1 -0
- package/dest/contract_sync/helpers.js +55 -0
- package/dest/debug/pxe_debug_utils.d.ts +41 -0
- package/dest/debug/pxe_debug_utils.d.ts.map +1 -0
- package/dest/debug/pxe_debug_utils.js +47 -0
- package/dest/entrypoints/client/bundle/index.d.ts +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 +24 -9
- 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 +2 -2
- package/dest/entrypoints/client/lazy/utils.d.ts.map +1 -1
- package/dest/entrypoints/client/lazy/utils.js +25 -10
- package/dest/entrypoints/pxe_creation_options.d.ts +7 -3
- package/dest/entrypoints/pxe_creation_options.d.ts.map +1 -1
- package/dest/entrypoints/server/index.d.ts +4 -2
- package/dest/entrypoints/server/index.d.ts.map +1 -1
- package/dest/entrypoints/server/index.js +3 -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 +31 -27
- 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 +15 -0
- package/dest/events/event_service.d.ts.map +1 -0
- package/dest/events/event_service.js +44 -0
- package/dest/events/index.d.ts +2 -0
- package/dest/events/index.d.ts.map +1 -0
- package/dest/events/index.js +1 -0
- package/dest/events/private_event_filter_validator.d.ts +9 -0
- package/dest/events/private_event_filter_validator.d.ts.map +1 -0
- package/dest/events/private_event_filter_validator.js +38 -0
- package/dest/job_coordinator/job_coordinator.d.ts +75 -0
- package/dest/job_coordinator/job_coordinator.d.ts.map +1 -0
- package/dest/job_coordinator/job_coordinator.js +94 -0
- package/dest/logs/log_service.d.ts +28 -0
- package/dest/logs/log_service.d.ts.map +1 -0
- package/dest/logs/log_service.js +123 -0
- package/dest/notes/index.d.ts +2 -0
- package/dest/notes/index.d.ts.map +1 -0
- package/dest/notes/index.js +1 -0
- package/dest/notes/note_service.d.ts +48 -0
- package/dest/notes/note_service.d.ts.map +1 -0
- package/dest/notes/note_service.js +147 -0
- package/dest/oracle_version.d.ts +3 -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 +3 -2
- package/dest/private_kernel/private_kernel_execution_prover.d.ts.map +1 -1
- package/dest/private_kernel/private_kernel_execution_prover.js +17 -17
- 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 +55 -83
- package/dest/pxe.d.ts.map +1 -1
- package/dest/pxe.js +207 -243
- 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 -12
- 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/{sync_data_provider/sync_data_provider.js → anchor_block_store/anchor_block_store.js} +10 -10
- package/dest/storage/anchor_block_store/index.d.ts +2 -0
- package/dest/storage/anchor_block_store/index.d.ts.map +1 -0
- package/dest/storage/anchor_block_store/index.js +1 -0
- package/dest/storage/capsule_store/capsule_store.d.ts +72 -0
- package/dest/storage/capsule_store/capsule_store.d.ts.map +1 -0
- package/dest/storage/capsule_store/capsule_store.js +253 -0
- package/dest/storage/capsule_store/index.d.ts +2 -0
- package/dest/storage/capsule_store/index.d.ts.map +1 -0
- package/dest/storage/capsule_store/index.js +1 -0
- package/dest/storage/{contract_data_provider/contract_data_provider.d.ts → contract_store/contract_store.d.ts} +7 -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} +56 -28
- 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 +2 -2
- package/dest/storage/metadata.js +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 +83 -0
- package/dest/storage/note_store/note_store.d.ts.map +1 -0
- package/dest/storage/note_store/note_store.js +341 -0
- package/dest/storage/note_store/stored_note.d.ts +16 -0
- package/dest/storage/note_store/stored_note.d.ts.map +1 -0
- package/dest/storage/note_store/stored_note.js +43 -0
- package/dest/storage/private_event_store/private_event_store.d.ts +91 -0
- package/dest/storage/private_event_store/private_event_store.d.ts.map +1 -0
- package/dest/storage/private_event_store/private_event_store.js +273 -0
- package/dest/storage/private_event_store/stored_private_event.d.ts +23 -0
- package/dest/storage/private_event_store/stored_private_event.d.ts.map +1 -0
- package/dest/storage/private_event_store/stored_private_event.js +56 -0
- package/dest/storage/tagging_store/index.d.ts +4 -0
- package/dest/storage/tagging_store/index.d.ts.map +1 -0
- package/dest/storage/tagging_store/index.js +3 -0
- package/dest/storage/tagging_store/recipient_tagging_store.d.ts +28 -0
- package/dest/storage/tagging_store/recipient_tagging_store.d.ts.map +1 -0
- package/dest/storage/tagging_store/recipient_tagging_store.js +111 -0
- package/dest/storage/tagging_store/sender_address_book_store.d.ts +14 -0
- package/dest/storage/tagging_store/sender_address_book_store.d.ts.map +1 -0
- package/dest/storage/tagging_store/sender_address_book_store.js +36 -0
- package/dest/storage/tagging_store/sender_tagging_store.d.ts +77 -0
- package/dest/storage/tagging_store/sender_tagging_store.d.ts.map +1 -0
- package/dest/storage/tagging_store/sender_tagging_store.js +348 -0
- package/dest/tagging/constants.d.ts +2 -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 +29 -19
- package/src/bin/check_oracle_version.ts +131 -20
- package/src/block_synchronizer/block_synchronizer.ts +178 -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 +131 -43
- 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 +6 -2
- 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 +15 -3
- package/src/contract_function_simulator/noir-structs/utility_context.ts +6 -25
- package/src/contract_function_simulator/oracle/interfaces.ts +42 -17
- 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 +108 -46
- package/src/contract_function_simulator/oracle/private_execution.ts +2 -68
- package/src/contract_function_simulator/oracle/private_execution_oracle.ts +135 -60
- package/src/contract_function_simulator/oracle/utility_execution_oracle.ts +261 -75
- package/src/contract_function_simulator/pick_notes.ts +1 -1
- package/src/contract_function_simulator/proxied_contract_data_source.ts +24 -7
- package/src/contract_sync/contract_sync_service.ts +129 -0
- package/src/contract_sync/helpers.ts +93 -0
- package/src/debug/pxe_debug_utils.ts +63 -0
- package/src/entrypoints/client/bundle/index.ts +0 -1
- package/src/entrypoints/client/bundle/utils.ts +16 -17
- package/src/entrypoints/client/lazy/index.ts +0 -1
- package/src/entrypoints/client/lazy/utils.ts +17 -18
- package/src/entrypoints/pxe_creation_options.ts +6 -2
- package/src/entrypoints/server/index.ts +3 -1
- package/src/entrypoints/server/utils.ts +27 -49
- package/src/error_enriching.ts +7 -15
- package/src/events/event_service.ts +71 -0
- package/src/events/index.ts +1 -0
- package/src/events/private_event_filter_validator.ts +46 -0
- package/src/job_coordinator/job_coordinator.ts +150 -0
- package/src/logs/log_service.ts +220 -0
- package/src/notes/index.ts +1 -0
- package/src/notes/note_service.ts +195 -0
- package/src/oracle_version.ts +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 +21 -24
- package/src/private_kernel/private_kernel_oracle.ts +118 -37
- package/src/pxe.ts +291 -318
- package/src/storage/{address_data_provider/address_data_provider.ts → address_store/address_store.ts} +16 -16
- package/src/storage/address_store/index.ts +1 -0
- package/src/storage/{sync_data_provider/sync_data_provider.ts → anchor_block_store/anchor_block_store.ts} +10 -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} +67 -31
- 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/metadata.ts +1 -1
- package/src/storage/note_store/index.ts +2 -0
- package/src/storage/note_store/note_store.ts +411 -0
- package/src/storage/note_store/stored_note.ts +48 -0
- package/src/storage/private_event_store/private_event_store.ts +384 -0
- package/src/storage/private_event_store/stored_private_event.ts +73 -0
- package/src/storage/tagging_store/index.ts +3 -0
- package/src/storage/tagging_store/recipient_tagging_store.ts +139 -0
- package/src/storage/tagging_store/sender_address_book_store.ts +48 -0
- package/src/storage/tagging_store/sender_tagging_store.ts +429 -0
- package/src/tagging/constants.ts +10 -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,8 +1,7 @@
|
|
|
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
|
-
import { ProtocolContractAddress } from '@aztec/protocol-contracts';
|
|
6
5
|
import {
|
|
7
6
|
type ACVMWitness,
|
|
8
7
|
type CircuitSimulator,
|
|
@@ -18,15 +17,10 @@ import {
|
|
|
18
17
|
countArgumentsSize,
|
|
19
18
|
} from '@aztec/stdlib/abi';
|
|
20
19
|
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
21
|
-
import type { ContractInstance } from '@aztec/stdlib/contract';
|
|
22
|
-
import { DelayedPublicMutableValues, DelayedPublicMutableValuesWithHash } from '@aztec/stdlib/delayed-public-mutable';
|
|
23
|
-
import type { AztecNode } from '@aztec/stdlib/interfaces/client';
|
|
24
20
|
import { PrivateCircuitPublicInputs } from '@aztec/stdlib/kernel';
|
|
25
21
|
import type { CircuitWitnessGenerationStats } from '@aztec/stdlib/stats';
|
|
26
|
-
import {
|
|
27
|
-
import type { UInt64 } from '@aztec/stdlib/types';
|
|
22
|
+
import { PrivateCallExecutionResult } from '@aztec/stdlib/tx';
|
|
28
23
|
|
|
29
|
-
import type { ExecutionDataProvider } from '../execution_data_provider.js';
|
|
30
24
|
import { Oracle } from './oracle.js';
|
|
31
25
|
import type { PrivateExecutionOracle } from './private_execution_oracle.js';
|
|
32
26
|
|
|
@@ -84,7 +78,6 @@ export async function executePrivateFunction(
|
|
|
84
78
|
|
|
85
79
|
const rawReturnValues = await privateExecutionOracle.privateLoadFromExecutionCache(publicInputs.returnsHash);
|
|
86
80
|
|
|
87
|
-
const noteHashLeafIndexMap = privateExecutionOracle.getNoteHashLeafIndexMap();
|
|
88
81
|
const newNotes = privateExecutionOracle.getNewNotes();
|
|
89
82
|
const noteHashNullifierCounterMap = privateExecutionOracle.getNoteHashNullifierCounterMap();
|
|
90
83
|
const offchainEffects = privateExecutionOracle.getOffchainEffects();
|
|
@@ -107,7 +100,6 @@ export async function executePrivateFunction(
|
|
|
107
100
|
Buffer.from(artifact.verificationKey!, 'base64'),
|
|
108
101
|
partialWitness,
|
|
109
102
|
publicInputs,
|
|
110
|
-
noteHashLeafIndexMap,
|
|
111
103
|
newNotes,
|
|
112
104
|
noteHashNullifierCounterMap,
|
|
113
105
|
rawReturnValues,
|
|
@@ -147,61 +139,3 @@ export function extractPrivateCircuitPublicInputs(
|
|
|
147
139
|
}
|
|
148
140
|
return PrivateCircuitPublicInputs.fromFields(returnData);
|
|
149
141
|
}
|
|
150
|
-
|
|
151
|
-
/**
|
|
152
|
-
* Read the current class id of a contract from the execution data provider or AztecNode. If not found, class id
|
|
153
|
-
* from the instance is used.
|
|
154
|
-
* @param contractAddress - The address of the contract to read the class id for.
|
|
155
|
-
* @param instance - The instance of the contract.
|
|
156
|
-
* @param executionDataProvider - The execution data provider.
|
|
157
|
-
* @param blockNumber - The block number at which to load the DelayedPublicMutable storing the class id.
|
|
158
|
-
* @param timestamp - The timestamp at which to obtain the class id from the DelayedPublicMutable.
|
|
159
|
-
* @returns The current class id.
|
|
160
|
-
*/
|
|
161
|
-
export async function readCurrentClassId(
|
|
162
|
-
contractAddress: AztecAddress,
|
|
163
|
-
instance: ContractInstance,
|
|
164
|
-
executionDataProvider: ExecutionDataProvider | AztecNode,
|
|
165
|
-
blockNumber: number,
|
|
166
|
-
timestamp: UInt64,
|
|
167
|
-
) {
|
|
168
|
-
const { delayedPublicMutableSlot } = await DelayedPublicMutableValuesWithHash.getContractUpdateSlots(contractAddress);
|
|
169
|
-
const delayedPublicMutableValues = await DelayedPublicMutableValues.readFromTree(delayedPublicMutableSlot, slot =>
|
|
170
|
-
executionDataProvider.getPublicStorageAt(blockNumber, ProtocolContractAddress.ContractInstanceRegistry, slot),
|
|
171
|
-
);
|
|
172
|
-
let currentClassId = delayedPublicMutableValues.svc.getCurrentAt(timestamp)[0];
|
|
173
|
-
if (currentClassId.isZero()) {
|
|
174
|
-
currentClassId = instance.originalContractClassId;
|
|
175
|
-
}
|
|
176
|
-
return currentClassId;
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
/**
|
|
180
|
-
* Verify that the current class id of a contract obtained from AztecNode is the same as the one in the execution data
|
|
181
|
-
* provider (i.e. PXE).
|
|
182
|
-
* @param contractAddress - The address of the contract to verify class id for.
|
|
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.
|
|
186
|
-
*/
|
|
187
|
-
export async function verifyCurrentClassId(
|
|
188
|
-
contractAddress: AztecAddress,
|
|
189
|
-
executionDataProvider: ExecutionDataProvider,
|
|
190
|
-
header?: BlockHeader,
|
|
191
|
-
) {
|
|
192
|
-
header = header ?? (await executionDataProvider.getAnchorBlockHeader());
|
|
193
|
-
|
|
194
|
-
const instance = await executionDataProvider.getContractInstance(contractAddress);
|
|
195
|
-
const currentClassId = await readCurrentClassId(
|
|
196
|
-
contractAddress,
|
|
197
|
-
instance,
|
|
198
|
-
executionDataProvider,
|
|
199
|
-
header.globalVariables.blockNumber,
|
|
200
|
-
header.globalVariables.timestamp,
|
|
201
|
-
);
|
|
202
|
-
if (!instance.currentContractClassId.equals(currentClassId)) {
|
|
203
|
-
throw new Error(
|
|
204
|
-
`Contract ${contractAddress} is outdated, current class id is ${currentClassId}, local class id is ${instance.currentContractClassId}`,
|
|
205
|
-
);
|
|
206
|
-
}
|
|
207
|
-
}
|
|
@@ -1,20 +1,24 @@
|
|
|
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 { siloNullifier } from '@aztec/stdlib/hash';
|
|
18
|
+
import type { AztecNode } from '@aztec/stdlib/interfaces/client';
|
|
16
19
|
import { PrivateContextInputs } from '@aztec/stdlib/kernel';
|
|
17
|
-
import type
|
|
20
|
+
import { type ContractClassLog, DirectionalAppTaggingSecret, type PreTag } from '@aztec/stdlib/logs';
|
|
21
|
+
import { Tag } from '@aztec/stdlib/logs';
|
|
18
22
|
import { Note, type NoteStatus } from '@aztec/stdlib/note';
|
|
19
23
|
import {
|
|
20
24
|
type BlockHeader,
|
|
@@ -26,14 +30,23 @@ import {
|
|
|
26
30
|
type TxContext,
|
|
27
31
|
} from '@aztec/stdlib/tx';
|
|
28
32
|
|
|
29
|
-
import {
|
|
30
|
-
import
|
|
33
|
+
import type { ContractSyncService } from '../../contract_sync/contract_sync_service.js';
|
|
34
|
+
import { NoteService } from '../../notes/note_service.js';
|
|
35
|
+
import type { AddressStore } from '../../storage/address_store/address_store.js';
|
|
36
|
+
import type { CapsuleStore } from '../../storage/capsule_store/capsule_store.js';
|
|
37
|
+
import type { ContractStore } from '../../storage/contract_store/contract_store.js';
|
|
38
|
+
import type { NoteStore } from '../../storage/note_store/note_store.js';
|
|
39
|
+
import type { PrivateEventStore } from '../../storage/private_event_store/private_event_store.js';
|
|
40
|
+
import type { RecipientTaggingStore } from '../../storage/tagging_store/recipient_tagging_store.js';
|
|
41
|
+
import type { SenderAddressBookStore } from '../../storage/tagging_store/sender_address_book_store.js';
|
|
42
|
+
import type { SenderTaggingStore } from '../../storage/tagging_store/sender_tagging_store.js';
|
|
43
|
+
import { syncSenderTaggingIndexes } from '../../tagging/index.js';
|
|
31
44
|
import type { ExecutionNoteCache } from '../execution_note_cache.js';
|
|
32
45
|
import { ExecutionTaggingIndexCache } from '../execution_tagging_index_cache.js';
|
|
33
46
|
import type { HashedValuesCache } from '../hashed_values_cache.js';
|
|
34
47
|
import { pickNotes } from '../pick_notes.js';
|
|
35
48
|
import type { IPrivateExecutionOracle, NoteData } from './interfaces.js';
|
|
36
|
-
import { executePrivateFunction
|
|
49
|
+
import { executePrivateFunction } from './private_execution.js';
|
|
37
50
|
import { UtilityExecutionOracle } from './utility_execution_oracle.js';
|
|
38
51
|
|
|
39
52
|
/**
|
|
@@ -51,16 +64,6 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
51
64
|
* Users can also use this to get a clearer idea of what's happened during a simulation.
|
|
52
65
|
*/
|
|
53
66
|
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
67
|
private noteHashNullifierCounterMap: Map<number, number> = new Map();
|
|
65
68
|
private contractClassLogs: CountedContractClassLog[] = [];
|
|
66
69
|
private offchainEffects: { data: Fr[] }[] = [];
|
|
@@ -71,14 +74,27 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
71
74
|
private readonly txContext: TxContext,
|
|
72
75
|
private readonly callContext: CallContext,
|
|
73
76
|
/** Header of a block whose state is used during private execution (not the block the transaction is included in). */
|
|
74
|
-
protected readonly anchorBlockHeader: BlockHeader,
|
|
77
|
+
protected override readonly anchorBlockHeader: BlockHeader,
|
|
78
|
+
/** Needed to trigger contract synchronization before nested calls */
|
|
79
|
+
private readonly utilityExecutor: (call: FunctionCall) => Promise<void>,
|
|
75
80
|
/** List of transient auth witnesses to be used during this simulation */
|
|
76
81
|
authWitnesses: AuthWitness[],
|
|
77
82
|
capsules: Capsule[],
|
|
78
83
|
private readonly executionCache: HashedValuesCache,
|
|
79
84
|
private readonly noteCache: ExecutionNoteCache,
|
|
80
85
|
private readonly taggingIndexCache: ExecutionTaggingIndexCache,
|
|
81
|
-
|
|
86
|
+
contractStore: ContractStore,
|
|
87
|
+
noteStore: NoteStore,
|
|
88
|
+
keyStore: KeyStore,
|
|
89
|
+
addressStore: AddressStore,
|
|
90
|
+
aztecNode: AztecNode,
|
|
91
|
+
private readonly senderTaggingStore: SenderTaggingStore,
|
|
92
|
+
recipientTaggingStore: RecipientTaggingStore,
|
|
93
|
+
senderAddressBookStore: SenderAddressBookStore,
|
|
94
|
+
capsuleStore: CapsuleStore,
|
|
95
|
+
privateEventStore: PrivateEventStore,
|
|
96
|
+
private readonly contractSyncService: ContractSyncService,
|
|
97
|
+
jobId: string,
|
|
82
98
|
private totalPublicCalldataCount: number = 0,
|
|
83
99
|
protected sideEffectCounter: number = 0,
|
|
84
100
|
log = createLogger('simulator:client_execution_context'),
|
|
@@ -86,7 +102,24 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
86
102
|
private senderForTags?: AztecAddress,
|
|
87
103
|
private simulator?: CircuitSimulator,
|
|
88
104
|
) {
|
|
89
|
-
super(
|
|
105
|
+
super(
|
|
106
|
+
callContext.contractAddress,
|
|
107
|
+
authWitnesses,
|
|
108
|
+
capsules,
|
|
109
|
+
anchorBlockHeader,
|
|
110
|
+
contractStore,
|
|
111
|
+
noteStore,
|
|
112
|
+
keyStore,
|
|
113
|
+
addressStore,
|
|
114
|
+
aztecNode,
|
|
115
|
+
recipientTaggingStore,
|
|
116
|
+
senderAddressBookStore,
|
|
117
|
+
capsuleStore,
|
|
118
|
+
privateEventStore,
|
|
119
|
+
jobId,
|
|
120
|
+
log,
|
|
121
|
+
scopes,
|
|
122
|
+
);
|
|
90
123
|
}
|
|
91
124
|
|
|
92
125
|
public getPrivateContextInputs(): PrivateContextInputs {
|
|
@@ -118,14 +151,6 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
118
151
|
return toACVMWitness(0, fields);
|
|
119
152
|
}
|
|
120
153
|
|
|
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
154
|
/**
|
|
130
155
|
* Get the data for the newly created notes.
|
|
131
156
|
*/
|
|
@@ -152,7 +177,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
152
177
|
}
|
|
153
178
|
|
|
154
179
|
/**
|
|
155
|
-
* Returns the pre
|
|
180
|
+
* Returns the pre-tags that were used in this execution (and that need to be stored in the db).
|
|
156
181
|
*/
|
|
157
182
|
public getUsedPreTags(): PreTag[] {
|
|
158
183
|
return this.taggingIndexCache.getUsedPreTags();
|
|
@@ -202,11 +227,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
202
227
|
* @returns An app tag to be used in a log.
|
|
203
228
|
*/
|
|
204
229
|
public async privateGetNextAppTagAsSender(sender: AztecAddress, recipient: AztecAddress): Promise<Tag> {
|
|
205
|
-
const secret = await this
|
|
206
|
-
this.contractAddress,
|
|
207
|
-
sender,
|
|
208
|
-
recipient,
|
|
209
|
-
);
|
|
230
|
+
const secret = await this.#calculateDirectionalAppTaggingSecret(this.contractAddress, sender, recipient);
|
|
210
231
|
|
|
211
232
|
const index = await this.#getIndexToUseForSecret(secret);
|
|
212
233
|
this.log.debug(
|
|
@@ -217,6 +238,22 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
217
238
|
return Tag.compute({ secret, index });
|
|
218
239
|
}
|
|
219
240
|
|
|
241
|
+
async #calculateDirectionalAppTaggingSecret(
|
|
242
|
+
contractAddress: AztecAddress,
|
|
243
|
+
sender: AztecAddress,
|
|
244
|
+
recipient: AztecAddress,
|
|
245
|
+
) {
|
|
246
|
+
const senderCompleteAddress = await this.getCompleteAddressOrFail(sender);
|
|
247
|
+
const senderIvsk = await this.keyStore.getMasterIncomingViewingSecretKey(sender);
|
|
248
|
+
return DirectionalAppTaggingSecret.compute(
|
|
249
|
+
senderCompleteAddress,
|
|
250
|
+
senderIvsk,
|
|
251
|
+
recipient,
|
|
252
|
+
contractAddress,
|
|
253
|
+
recipient,
|
|
254
|
+
);
|
|
255
|
+
}
|
|
256
|
+
|
|
220
257
|
async #getIndexToUseForSecret(secret: DirectionalAppTaggingSecret): Promise<number> {
|
|
221
258
|
// If we have the tagging index in the cache, we use it. If not we obtain it from the execution data provider.
|
|
222
259
|
const lastUsedIndexInTx = this.taggingIndexCache.getLastUsedIndex(secret);
|
|
@@ -227,8 +264,16 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
227
264
|
// This is a tagging secret we've not yet used in this tx, so first sync our store to make sure its indices
|
|
228
265
|
// are up to date. We do this here because this store is not synced as part of the global sync because
|
|
229
266
|
// that'd be wasteful as most tagging secrets are not used in each tx.
|
|
230
|
-
await
|
|
231
|
-
|
|
267
|
+
await syncSenderTaggingIndexes(
|
|
268
|
+
secret,
|
|
269
|
+
this.contractAddress,
|
|
270
|
+
this.aztecNode,
|
|
271
|
+
this.senderTaggingStore,
|
|
272
|
+
await this.anchorBlockHeader.hash(),
|
|
273
|
+
this.jobId,
|
|
274
|
+
);
|
|
275
|
+
|
|
276
|
+
const lastUsedIndex = await this.senderTaggingStore.getLastUsedIndex(secret, this.jobId);
|
|
232
277
|
// If lastUsedIndex is undefined, we've never used this secret, so start from 0
|
|
233
278
|
// Otherwise, the next index to use is one past the last used index
|
|
234
279
|
return lastUsedIndex === undefined ? 0 : lastUsedIndex + 1;
|
|
@@ -282,6 +327,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
282
327
|
* Real notes coming from DB will have a leafIndex which
|
|
283
328
|
* represents their index in the note hash tree.
|
|
284
329
|
*
|
|
330
|
+
* @param owner - The owner of the notes. If undefined, returns notes for all owners.
|
|
285
331
|
* @param storageSlot - The storage slot.
|
|
286
332
|
* @param numSelects - The number of valid selects in selectBy and selectValues.
|
|
287
333
|
* @param selectBy - An array of indices of the fields to selects.
|
|
@@ -295,6 +341,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
295
341
|
* @returns Array of note data.
|
|
296
342
|
*/
|
|
297
343
|
public override async utilityGetNotes(
|
|
344
|
+
owner: AztecAddress | undefined,
|
|
298
345
|
storageSlot: Fr,
|
|
299
346
|
numSelects: number,
|
|
300
347
|
selectByIndexes: number[],
|
|
@@ -311,11 +358,14 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
311
358
|
status: NoteStatus,
|
|
312
359
|
): Promise<NoteData[]> {
|
|
313
360
|
// Nullified pending notes are already removed from the list.
|
|
314
|
-
const pendingNotes = this.noteCache.getNotes(this.callContext.contractAddress, storageSlot);
|
|
361
|
+
const pendingNotes = this.noteCache.getNotes(this.callContext.contractAddress, owner, storageSlot);
|
|
315
362
|
|
|
316
363
|
const pendingNullifiers = this.noteCache.getNullifiers(this.callContext.contractAddress);
|
|
317
|
-
|
|
364
|
+
|
|
365
|
+
const noteService = new NoteService(this.noteStore, this.aztecNode, this.anchorBlockHeader, this.jobId);
|
|
366
|
+
const dbNotes = await noteService.getNotes(
|
|
318
367
|
this.callContext.contractAddress,
|
|
368
|
+
owner,
|
|
319
369
|
storageSlot,
|
|
320
370
|
status,
|
|
321
371
|
this.scopes,
|
|
@@ -342,38 +392,24 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
342
392
|
.join(', ')}`,
|
|
343
393
|
);
|
|
344
394
|
|
|
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
395
|
return notes;
|
|
363
396
|
}
|
|
364
397
|
|
|
365
398
|
/**
|
|
366
399
|
* Keep track of the new note created during execution.
|
|
367
400
|
* It can be used in subsequent calls (or transactions when chaining txs is possible).
|
|
368
|
-
* @param
|
|
401
|
+
* @param owner - The owner of the note.
|
|
369
402
|
* @param storageSlot - The storage slot.
|
|
403
|
+
* @param randomness - The randomness injected into the note.
|
|
370
404
|
* @param noteTypeId - The type ID of the note.
|
|
371
405
|
* @param noteItems - The items to be included in a Note.
|
|
372
406
|
* @param noteHash - A hash of the new note.
|
|
373
407
|
* @returns
|
|
374
408
|
*/
|
|
375
409
|
public privateNotifyCreatedNote(
|
|
410
|
+
owner: AztecAddress,
|
|
376
411
|
storageSlot: Fr,
|
|
412
|
+
randomness: Fr,
|
|
377
413
|
noteTypeId: NoteSelector,
|
|
378
414
|
noteItems: Fr[],
|
|
379
415
|
noteHash: Fr,
|
|
@@ -382,6 +418,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
382
418
|
this.log.debug(`Notified of new note with inner hash ${noteHash}`, {
|
|
383
419
|
contractAddress: this.callContext.contractAddress,
|
|
384
420
|
storageSlot,
|
|
421
|
+
randomness,
|
|
385
422
|
noteTypeId,
|
|
386
423
|
counter,
|
|
387
424
|
});
|
|
@@ -390,15 +427,18 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
390
427
|
this.noteCache.addNewNote(
|
|
391
428
|
{
|
|
392
429
|
contractAddress: this.callContext.contractAddress,
|
|
430
|
+
owner,
|
|
393
431
|
storageSlot,
|
|
432
|
+
randomness,
|
|
394
433
|
noteNonce: Fr.ZERO, // Nonce cannot be known during private execution.
|
|
395
434
|
note,
|
|
396
435
|
siloedNullifier: undefined, // Siloed nullifier cannot be known for newly created note.
|
|
397
436
|
noteHash,
|
|
437
|
+
isPending: true, // This note has just been created and hence is not settled yet.
|
|
398
438
|
},
|
|
399
439
|
counter,
|
|
400
440
|
);
|
|
401
|
-
this.newNotes.push(
|
|
441
|
+
this.newNotes.push(NoteAndSlot.from({ note, storageSlot, randomness, noteTypeId }));
|
|
402
442
|
}
|
|
403
443
|
|
|
404
444
|
/**
|
|
@@ -429,6 +469,19 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
429
469
|
return this.noteCache.nullifierCreated(this.callContext.contractAddress, innerNullifier);
|
|
430
470
|
}
|
|
431
471
|
|
|
472
|
+
/**
|
|
473
|
+
* Check if a nullifier has been emitted in the same transaction, i.e. if privateNotifyCreatedNullifier has been
|
|
474
|
+
* called for this inner nullifier from the contract with the specified address.
|
|
475
|
+
* @param innerNullifier - The inner nullifier to check.
|
|
476
|
+
* @param contractAddress - Address of the contract that emitted the nullifier.
|
|
477
|
+
* @returns A boolean indicating whether the nullifier is pending or not.
|
|
478
|
+
*/
|
|
479
|
+
public async privateIsNullifierPending(innerNullifier: Fr, contractAddress: AztecAddress): Promise<boolean> {
|
|
480
|
+
const siloedNullifier = await siloNullifier(contractAddress, innerNullifier);
|
|
481
|
+
const isNullifierPending = this.noteCache.getNullifiers(contractAddress).has(siloedNullifier.toBigInt());
|
|
482
|
+
return Promise.resolve(isNullifierPending);
|
|
483
|
+
}
|
|
484
|
+
|
|
432
485
|
/**
|
|
433
486
|
* Emit a contract class log.
|
|
434
487
|
* This fn exists because we only carry a poseidon hash through the kernels, and need to
|
|
@@ -485,9 +538,15 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
485
538
|
|
|
486
539
|
isStaticCall = isStaticCall || this.callContext.isStaticCall;
|
|
487
540
|
|
|
488
|
-
await
|
|
541
|
+
await this.contractSyncService.ensureContractSynced(
|
|
542
|
+
targetContractAddress,
|
|
543
|
+
functionSelector,
|
|
544
|
+
this.utilityExecutor,
|
|
545
|
+
this.anchorBlockHeader,
|
|
546
|
+
this.jobId,
|
|
547
|
+
);
|
|
489
548
|
|
|
490
|
-
const targetArtifact = await this.
|
|
549
|
+
const targetArtifact = await this.contractStore.getFunctionArtifactWithDebugMetadata(
|
|
491
550
|
targetContractAddress,
|
|
492
551
|
functionSelector,
|
|
493
552
|
);
|
|
@@ -501,12 +560,24 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
501
560
|
derivedTxContext,
|
|
502
561
|
derivedCallContext,
|
|
503
562
|
this.anchorBlockHeader,
|
|
563
|
+
this.utilityExecutor,
|
|
504
564
|
this.authWitnesses,
|
|
505
565
|
this.capsules,
|
|
506
566
|
this.executionCache,
|
|
507
567
|
this.noteCache,
|
|
508
568
|
this.taggingIndexCache,
|
|
509
|
-
this.
|
|
569
|
+
this.contractStore,
|
|
570
|
+
this.noteStore,
|
|
571
|
+
this.keyStore,
|
|
572
|
+
this.addressStore,
|
|
573
|
+
this.aztecNode,
|
|
574
|
+
this.senderTaggingStore,
|
|
575
|
+
this.recipientTaggingStore,
|
|
576
|
+
this.senderAddressBookStore,
|
|
577
|
+
this.capsuleStore,
|
|
578
|
+
this.privateEventStore,
|
|
579
|
+
this.contractSyncService,
|
|
580
|
+
this.jobId,
|
|
510
581
|
this.totalPublicCalldataCount,
|
|
511
582
|
sideEffectCounter,
|
|
512
583
|
this.log,
|
|
@@ -594,6 +665,10 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
594
665
|
return this.noteCache.setMinRevertibleSideEffectCounter(minRevertibleSideEffectCounter);
|
|
595
666
|
}
|
|
596
667
|
|
|
668
|
+
public privateIsSideEffectCounterRevertible(sideEffectCounter: number): Promise<boolean> {
|
|
669
|
+
return Promise.resolve(this.noteCache.isSideEffectCounterRevertible(sideEffectCounter));
|
|
670
|
+
}
|
|
671
|
+
|
|
597
672
|
/**
|
|
598
673
|
* Derives the call context for a nested execution.
|
|
599
674
|
* @param targetContractAddress - The address of the contract being called.
|
|
@@ -615,7 +690,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
615
690
|
}
|
|
616
691
|
|
|
617
692
|
public getDebugFunctionName() {
|
|
618
|
-
return this.
|
|
693
|
+
return this.contractStore.getDebugFunctionName(this.contractAddress, this.callContext.functionSelector);
|
|
619
694
|
}
|
|
620
695
|
|
|
621
696
|
public utilityEmitOffchainEffect(data: Fr[]): Promise<void> {
|