@aztec/pxe 0.0.1-commit.b655e406 → 0.0.1-commit.c7c42ec
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 +37 -0
- package/dest/block_synchronizer/block_synchronizer.d.ts.map +1 -0
- package/dest/{synchronizer/synchronizer.js → block_synchronizer/block_synchronizer.js} +20 -22
- 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 +4 -12
- package/dest/config/index.d.ts.map +1 -1
- package/dest/config/index.js +7 -13
- package/dest/config/package_info.d.ts +1 -1
- package/dest/contract_function_simulator/contract_function_simulator.d.ts +43 -14
- package/dest/contract_function_simulator/contract_function_simulator.d.ts.map +1 -1
- package/dest/contract_function_simulator/contract_function_simulator.js +55 -29
- package/dest/contract_function_simulator/execution_note_cache.d.ts +9 -7
- package/dest/contract_function_simulator/execution_note_cache.d.ts.map +1 -1
- package/dest/contract_function_simulator/execution_note_cache.js +21 -13
- 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 +1 -1
- package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts +2 -2
- package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts.map +1 -1
- 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 +2 -2
- package/dest/contract_function_simulator/noir-structs/utility_context.d.ts.map +1 -1
- package/dest/contract_function_simulator/noir-structs/utility_context.js +1 -1
- package/dest/contract_function_simulator/oracle/index.d.ts +1 -1
- package/dest/contract_function_simulator/oracle/interfaces.d.ts +19 -13
- 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 -4
- 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 +10 -4
- package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/note_packing_utils.js +10 -5
- package/dest/contract_function_simulator/oracle/oracle.d.ts +5 -4
- package/dest/contract_function_simulator/oracle/oracle.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/oracle.js +34 -17
- package/dest/contract_function_simulator/oracle/private_execution.d.ts +9 -10
- package/dest/contract_function_simulator/oracle/private_execution.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/private_execution.js +12 -12
- package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts +24 -18
- package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/private_execution_oracle.js +41 -18
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts +58 -17
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.js +147 -40
- 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_function_simulator/proxied_node.d.ts +1 -1
- package/dest/contract_function_simulator/proxied_node.d.ts.map +1 -1
- 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 +37 -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.js +4 -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.js +4 -4
- package/dest/entrypoints/pxe_creation_options.d.ts +3 -1
- package/dest/entrypoints/pxe_creation_options.d.ts.map +1 -1
- package/dest/entrypoints/server/index.d.ts +2 -2
- package/dest/entrypoints/server/index.d.ts.map +1 -1
- package/dest/entrypoints/server/index.js +1 -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 +5 -16
- 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 +47 -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 +39 -0
- package/dest/logs/log_service.d.ts +26 -0
- package/dest/logs/log_service.d.ts.map +1 -0
- package/dest/logs/log_service.js +120 -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 +152 -0
- package/dest/oracle_version.d.ts +3 -3
- package/dest/oracle_version.js +2 -2
- package/dest/private_kernel/hints/build_private_kernel_reset_private_inputs.d.ts +3 -3
- package/dest/private_kernel/hints/build_private_kernel_reset_private_inputs.d.ts.map +1 -1
- package/dest/private_kernel/hints/build_private_kernel_reset_private_inputs.js +7 -7
- package/dest/private_kernel/hints/compute_tx_include_by_timestamp.d.ts +1 -1
- package/dest/private_kernel/hints/index.d.ts +1 -1
- 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 +11 -10
- package/dest/private_kernel/private_kernel_oracle.d.ts +3 -2
- package/dest/private_kernel/private_kernel_oracle.d.ts.map +1 -1
- package/dest/private_kernel/private_kernel_oracle_impl.d.ts +8 -7
- package/dest/private_kernel/private_kernel_oracle_impl.d.ts.map +1 -1
- package/dest/private_kernel/private_kernel_oracle_impl.js +7 -7
- package/dest/public_storage/public_storage_service.d.ts +24 -0
- package/dest/public_storage/public_storage_service.d.ts.map +1 -0
- package/dest/public_storage/public_storage_service.js +26 -0
- package/dest/pxe.d.ts +47 -48
- package/dest/pxe.d.ts.map +1 -1
- package/dest/pxe.js +142 -171
- 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 +57 -0
- package/dest/storage/capsule_store/capsule_store.d.ts.map +1 -0
- package/dest/storage/{capsule_data_provider/capsule_data_provider.js → capsule_store/capsule_store.js} +34 -6
- 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} +34 -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_data_provider/note_data_provider.d.ts → note_store/note_store.d.ts} +14 -13
- package/dest/storage/note_store/note_store.d.ts.map +1 -0
- package/dest/storage/{note_data_provider/note_data_provider.js → note_store/note_store.js} +33 -19
- package/dest/storage/private_event_store/private_event_store.d.ts +51 -0
- package/dest/storage/private_event_store/private_event_store.d.ts.map +1 -0
- package/dest/storage/{private_event_data_provider/private_event_data_provider.js → private_event_store/private_event_store.js} +39 -28
- 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 +21 -0
- package/dest/storage/tagging_store/recipient_tagging_store.d.ts.map +1 -0
- package/dest/storage/tagging_store/recipient_tagging_store.js +42 -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 +67 -0
- package/dest/storage/tagging_store/sender_tagging_store.d.ts.map +1 -0
- package/dest/storage/tagging_store/sender_tagging_store.js +196 -0
- package/dest/tagging/index.d.ts +15 -6
- package/dest/tagging/index.d.ts.map +1 -1
- package/dest/tagging/index.js +23 -5
- package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts +14 -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 +14 -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 +29 -0
- package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts +20 -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 +32 -0
- package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts +18 -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 +55 -0
- package/dest/tree_membership/tree_membership_service.d.ts +52 -0
- package/dest/tree_membership/tree_membership_service.d.ts.map +1 -0
- package/dest/tree_membership/tree_membership_service.js +84 -0
- package/package.json +20 -19
- package/src/bin/check_oracle_version.ts +130 -20
- package/src/{synchronizer/synchronizer.ts → block_synchronizer/block_synchronizer.ts} +19 -22
- package/src/block_synchronizer/index.ts +1 -0
- package/src/config/index.ts +10 -25
- package/src/contract_function_simulator/contract_function_simulator.ts +95 -28
- package/src/contract_function_simulator/execution_note_cache.ts +22 -11
- 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/noir-structs/event_validation_request.ts +1 -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 +1 -1
- package/src/contract_function_simulator/oracle/interfaces.ts +26 -11
- package/src/contract_function_simulator/oracle/message_load_oracle_inputs.ts +1 -1
- package/src/contract_function_simulator/oracle/note_packing_utils.ts +21 -5
- package/src/contract_function_simulator/oracle/oracle.ts +43 -13
- package/src/contract_function_simulator/oracle/private_execution.ts +17 -15
- package/src/contract_function_simulator/oracle/private_execution_oracle.ts +100 -23
- package/src/contract_function_simulator/oracle/utility_execution_oracle.ts +223 -47
- 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 +48 -0
- package/src/entrypoints/client/bundle/index.ts +0 -1
- package/src/entrypoints/client/bundle/utils.ts +4 -4
- package/src/entrypoints/client/lazy/index.ts +0 -1
- package/src/entrypoints/client/lazy/utils.ts +4 -4
- package/src/entrypoints/pxe_creation_options.ts +2 -0
- package/src/entrypoints/server/index.ts +1 -1
- package/src/entrypoints/server/utils.ts +5 -19
- package/src/error_enriching.ts +7 -15
- package/src/events/event_service.ts +77 -0
- package/src/events/index.ts +1 -0
- package/src/events/private_event_filter_validator.ts +48 -0
- package/src/logs/log_service.ts +202 -0
- package/src/notes/index.ts +1 -0
- package/src/notes/note_service.ts +200 -0
- package/src/oracle_version.ts +2 -2
- package/src/private_kernel/hints/build_private_kernel_reset_private_inputs.ts +5 -9
- package/src/private_kernel/private_kernel_execution_prover.ts +12 -16
- package/src/private_kernel/private_kernel_oracle.ts +2 -1
- package/src/private_kernel/private_kernel_oracle_impl.ts +10 -9
- package/src/public_storage/public_storage_service.ts +33 -0
- package/src/pxe.ts +167 -223
- 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_data_provider/capsule_data_provider.ts → capsule_store/capsule_store.ts} +34 -2
- package/src/storage/capsule_store/index.ts +1 -0
- package/src/storage/{contract_data_provider/contract_data_provider.ts → contract_store/contract_store.ts} +45 -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_data_provider/note_data_provider.ts → note_store/note_store.ts} +41 -22
- package/src/storage/{private_event_data_provider/private_event_data_provider.ts → private_event_store/private_event_store.ts} +61 -47
- package/src/storage/tagging_store/index.ts +3 -0
- package/src/storage/tagging_store/recipient_tagging_store.ts +53 -0
- package/src/storage/tagging_store/sender_address_book_store.ts +42 -0
- package/src/storage/tagging_store/sender_tagging_store.ts +244 -0
- package/src/tagging/index.ts +27 -5
- package/src/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.ts +129 -0
- package/src/tagging/recipient_sync/utils/find_highest_indexes.ts +34 -0
- package/src/tagging/recipient_sync/utils/load_logs_for_range.ts +43 -0
- package/src/tagging/sender_sync/sync_sender_tagging_indexes.ts +96 -0
- package/src/tagging/sender_sync/utils/get_status_change_of_pending.ts +44 -0
- package/src/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.ts +72 -0
- package/src/tree_membership/tree_membership_service.ts +112 -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/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/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/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.map +0 -1
- 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/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/tagging/constants.d.ts +0 -2
- package/dest/tagging/constants.d.ts.map +0 -1
- package/dest/tagging/constants.js +0 -2
- 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/pxe_oracle_interface.ts +0 -1019
- package/src/storage/address_data_provider/index.ts +0 -1
- 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/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/tagging/constants.ts +0 -2
- package/src/tagging/siloed_tag.ts +0 -22
- package/src/tagging/tag.ts +0 -16
- package/src/tagging/utils.ts +0 -31
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { BlockNumber } from '@aztec/foundation/branded-types';
|
|
2
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
|
+
import { Point } from '@aztec/foundation/curves/grumpkin';
|
|
2
4
|
import {
|
|
3
5
|
type ACIRCallback,
|
|
4
6
|
type ACVMField,
|
|
@@ -100,8 +102,7 @@ export class Oracle {
|
|
|
100
102
|
return Promise.resolve([toACVMField(val)]);
|
|
101
103
|
}
|
|
102
104
|
|
|
103
|
-
|
|
104
|
-
privateStoreInExecutionCache(_length: ACVMField[], values: ACVMField[], [hash]: ACVMField[]): Promise<ACVMField[]> {
|
|
105
|
+
privateStoreInExecutionCache(values: ACVMField[], [hash]: ACVMField[]): Promise<ACVMField[]> {
|
|
105
106
|
this.handlerAsPrivate().privateStoreInExecutionCache(values.map(Fr.fromString), Fr.fromString(hash));
|
|
106
107
|
return Promise.resolve([]);
|
|
107
108
|
}
|
|
@@ -111,9 +112,9 @@ export class Oracle {
|
|
|
111
112
|
return [values.map(toACVMField)];
|
|
112
113
|
}
|
|
113
114
|
|
|
114
|
-
|
|
115
|
-
const context =
|
|
116
|
-
return context.toNoirRepresentation();
|
|
115
|
+
utilityGetUtilityContext(): Promise<(ACVMField | ACVMField[])[]> {
|
|
116
|
+
const context = this.handlerAsUtility().utilityGetUtilityContext();
|
|
117
|
+
return Promise.resolve(context.toNoirRepresentation());
|
|
117
118
|
}
|
|
118
119
|
|
|
119
120
|
async utilityGetKeyValidationRequest([pkMHash]: ACVMField[]): Promise<ACVMField[]> {
|
|
@@ -146,7 +147,7 @@ export class Oracle {
|
|
|
146
147
|
const parsedLeafValue = Fr.fromString(leafValue);
|
|
147
148
|
|
|
148
149
|
const witness = await this.handlerAsUtility().utilityGetMembershipWitness(
|
|
149
|
-
parsedBlockNumber,
|
|
150
|
+
BlockNumber(parsedBlockNumber),
|
|
150
151
|
parsedTreeId,
|
|
151
152
|
parsedLeafValue,
|
|
152
153
|
);
|
|
@@ -166,7 +167,7 @@ export class Oracle {
|
|
|
166
167
|
const parsedNullifier = Fr.fromString(nullifier);
|
|
167
168
|
|
|
168
169
|
const witness = await this.handlerAsUtility().utilityGetNullifierMembershipWitness(
|
|
169
|
-
parsedBlockNumber,
|
|
170
|
+
BlockNumber(parsedBlockNumber),
|
|
170
171
|
parsedNullifier,
|
|
171
172
|
);
|
|
172
173
|
if (!witness) {
|
|
@@ -183,7 +184,7 @@ export class Oracle {
|
|
|
183
184
|
const parsedNullifier = Fr.fromString(nullifier);
|
|
184
185
|
|
|
185
186
|
const witness = await this.handlerAsUtility().utilityGetLowNullifierMembershipWitness(
|
|
186
|
-
parsedBlockNumber,
|
|
187
|
+
BlockNumber(parsedBlockNumber),
|
|
187
188
|
parsedNullifier,
|
|
188
189
|
);
|
|
189
190
|
if (!witness) {
|
|
@@ -201,7 +202,10 @@ export class Oracle {
|
|
|
201
202
|
const parsedBlockNumber = Fr.fromString(blockNumber).toNumber();
|
|
202
203
|
const parsedLeafSlot = Fr.fromString(leafSlot);
|
|
203
204
|
|
|
204
|
-
const witness = await this.handlerAsUtility().utilityGetPublicDataWitness(
|
|
205
|
+
const witness = await this.handlerAsUtility().utilityGetPublicDataWitness(
|
|
206
|
+
BlockNumber(parsedBlockNumber),
|
|
207
|
+
parsedLeafSlot,
|
|
208
|
+
);
|
|
205
209
|
if (!witness) {
|
|
206
210
|
throw new Error(`Public data witness not found for slot ${parsedLeafSlot} at block ${parsedBlockNumber}.`);
|
|
207
211
|
}
|
|
@@ -211,7 +215,7 @@ export class Oracle {
|
|
|
211
215
|
async utilityGetBlockHeader([blockNumber]: ACVMField[]): Promise<ACVMField[]> {
|
|
212
216
|
const parsedBlockNumber = Fr.fromString(blockNumber).toNumber();
|
|
213
217
|
|
|
214
|
-
const header = await this.handlerAsUtility().utilityGetBlockHeader(parsedBlockNumber);
|
|
218
|
+
const header = await this.handlerAsUtility().utilityGetBlockHeader(BlockNumber(parsedBlockNumber));
|
|
215
219
|
if (!header) {
|
|
216
220
|
throw new Error(`Block header not found for block ${parsedBlockNumber}.`);
|
|
217
221
|
}
|
|
@@ -236,6 +240,8 @@ export class Oracle {
|
|
|
236
240
|
}
|
|
237
241
|
|
|
238
242
|
async utilityGetNotes(
|
|
243
|
+
[ownerSome]: ACVMField[],
|
|
244
|
+
[ownerValue]: ACVMField[],
|
|
239
245
|
[storageSlot]: ACVMField[],
|
|
240
246
|
[numSelects]: ACVMField[],
|
|
241
247
|
selectByIndexes: ACVMField[],
|
|
@@ -253,7 +259,10 @@ export class Oracle {
|
|
|
253
259
|
[maxNotes]: ACVMField[],
|
|
254
260
|
[packedRetrievedNoteLength]: ACVMField[],
|
|
255
261
|
): Promise<(ACVMField | ACVMField[])[]> {
|
|
262
|
+
// Parse Option<AztecAddress>: ownerSome is 0 for None, 1 for Some
|
|
263
|
+
const owner = Fr.fromString(ownerSome).toNumber() === 1 ? AztecAddress.fromString(ownerValue) : undefined;
|
|
256
264
|
const noteDatas = await this.handlerAsUtility().utilityGetNotes(
|
|
265
|
+
owner,
|
|
257
266
|
Fr.fromString(storageSlot),
|
|
258
267
|
+numSelects,
|
|
259
268
|
selectByIndexes.map(s => +s),
|
|
@@ -270,7 +279,17 @@ export class Oracle {
|
|
|
270
279
|
+status,
|
|
271
280
|
);
|
|
272
281
|
|
|
273
|
-
const returnDataAsArrayOfPackedRetrievedNotes = noteDatas.map(
|
|
282
|
+
const returnDataAsArrayOfPackedRetrievedNotes = noteDatas.map(noteData =>
|
|
283
|
+
packAsRetrievedNote({
|
|
284
|
+
contractAddress: noteData.contractAddress,
|
|
285
|
+
owner: noteData.owner,
|
|
286
|
+
randomness: noteData.randomness,
|
|
287
|
+
storageSlot: noteData.storageSlot,
|
|
288
|
+
noteNonce: noteData.noteNonce,
|
|
289
|
+
index: noteData.index,
|
|
290
|
+
note: noteData.note,
|
|
291
|
+
}),
|
|
292
|
+
);
|
|
274
293
|
|
|
275
294
|
// Now we convert each sub-array to an array of ACVMField
|
|
276
295
|
const returnDataAsArrayOfACVMFieldArrays = returnDataAsArrayOfPackedRetrievedNotes.map(subArray =>
|
|
@@ -282,14 +301,18 @@ export class Oracle {
|
|
|
282
301
|
}
|
|
283
302
|
|
|
284
303
|
privateNotifyCreatedNote(
|
|
304
|
+
[owner]: ACVMField[],
|
|
285
305
|
[storageSlot]: ACVMField[],
|
|
306
|
+
[randomness]: ACVMField[],
|
|
286
307
|
[noteTypeId]: ACVMField[],
|
|
287
308
|
note: ACVMField[],
|
|
288
309
|
[noteHash]: ACVMField[],
|
|
289
310
|
[counter]: ACVMField[],
|
|
290
311
|
): Promise<ACVMField[]> {
|
|
291
312
|
this.handlerAsPrivate().privateNotifyCreatedNote(
|
|
313
|
+
AztecAddress.fromString(owner),
|
|
292
314
|
Fr.fromString(storageSlot),
|
|
315
|
+
Fr.fromString(randomness),
|
|
293
316
|
NoteSelector.fromField(Fr.fromString(noteTypeId)),
|
|
294
317
|
note.map(Fr.fromString),
|
|
295
318
|
Fr.fromString(noteHash),
|
|
@@ -343,7 +366,7 @@ export class Oracle {
|
|
|
343
366
|
const values = await this.handlerAsUtility().utilityStorageRead(
|
|
344
367
|
new AztecAddress(Fr.fromString(contractAddress)),
|
|
345
368
|
Fr.fromString(startStorageSlot),
|
|
346
|
-
+blockNumber,
|
|
369
|
+
BlockNumber(+blockNumber),
|
|
347
370
|
+numberOfElements,
|
|
348
371
|
);
|
|
349
372
|
return [values.map(toACVMField)];
|
|
@@ -433,6 +456,13 @@ export class Oracle {
|
|
|
433
456
|
return Promise.resolve([]);
|
|
434
457
|
}
|
|
435
458
|
|
|
459
|
+
async privateIsSideEffectCounterRevertible([sideEffectCounter]: ACVMField[]): Promise<ACVMField[]> {
|
|
460
|
+
const isRevertible = await this.handlerAsPrivate().privateIsSideEffectCounterRevertible(
|
|
461
|
+
Fr.fromString(sideEffectCounter).toNumber(),
|
|
462
|
+
);
|
|
463
|
+
return Promise.resolve([toACVMField(isRevertible)]);
|
|
464
|
+
}
|
|
465
|
+
|
|
436
466
|
async privateGetNextAppTagAsSender([sender]: ACVMField[], [recipient]: ACVMField[]): Promise<ACVMField[]> {
|
|
437
467
|
const tag = await this.handlerAsPrivate().privateGetNextAppTagAsSender(
|
|
438
468
|
AztecAddress.fromString(sender),
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH, PRIVATE_CONTEXT_INPUTS_LENGTH } from '@aztec/constants';
|
|
2
|
-
import {
|
|
2
|
+
import { BlockNumber } from '@aztec/foundation/branded-types';
|
|
3
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
4
|
import { createLogger } from '@aztec/foundation/log';
|
|
4
5
|
import { Timer } from '@aztec/foundation/timer';
|
|
5
6
|
import { ProtocolContractAddress } from '@aztec/protocol-contracts';
|
|
@@ -26,7 +27,7 @@ import type { CircuitWitnessGenerationStats } from '@aztec/stdlib/stats';
|
|
|
26
27
|
import { BlockHeader, PrivateCallExecutionResult } from '@aztec/stdlib/tx';
|
|
27
28
|
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
|
|
|
@@ -153,7 +154,7 @@ export function extractPrivateCircuitPublicInputs(
|
|
|
153
154
|
* from the instance is used.
|
|
154
155
|
* @param contractAddress - The address of the contract to read the class id for.
|
|
155
156
|
* @param instance - The instance of the contract.
|
|
156
|
-
* @param
|
|
157
|
+
* @param executionStore - The execution data provider.
|
|
157
158
|
* @param blockNumber - The block number at which to load the DelayedPublicMutable storing the class id.
|
|
158
159
|
* @param timestamp - The timestamp at which to obtain the class id from the DelayedPublicMutable.
|
|
159
160
|
* @returns The current class id.
|
|
@@ -161,13 +162,13 @@ export function extractPrivateCircuitPublicInputs(
|
|
|
161
162
|
export async function readCurrentClassId(
|
|
162
163
|
contractAddress: AztecAddress,
|
|
163
164
|
instance: ContractInstance,
|
|
164
|
-
|
|
165
|
-
blockNumber:
|
|
165
|
+
aztecNode: AztecNode,
|
|
166
|
+
blockNumber: BlockNumber,
|
|
166
167
|
timestamp: UInt64,
|
|
167
168
|
) {
|
|
168
169
|
const { delayedPublicMutableSlot } = await DelayedPublicMutableValuesWithHash.getContractUpdateSlots(contractAddress);
|
|
169
170
|
const delayedPublicMutableValues = await DelayedPublicMutableValues.readFromTree(delayedPublicMutableSlot, slot =>
|
|
170
|
-
|
|
171
|
+
aztecNode.getPublicStorageAt(blockNumber, ProtocolContractAddress.ContractInstanceRegistry, slot),
|
|
171
172
|
);
|
|
172
173
|
let currentClassId = delayedPublicMutableValues.svc.getCurrentAt(timestamp)[0];
|
|
173
174
|
if (currentClassId.isZero()) {
|
|
@@ -177,25 +178,26 @@ export async function readCurrentClassId(
|
|
|
177
178
|
}
|
|
178
179
|
|
|
179
180
|
/**
|
|
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 contractAddress - The address of the contract to verify class id for.
|
|
183
|
-
* @param executionDataProvider - The execution data provider.
|
|
181
|
+
* Verify that the current class id of a contract obtained from AztecNode is the same as the one in contract data
|
|
182
|
+
* provider (i.e. PXE's own storage).
|
|
184
183
|
* @param header - The header of the block at which to verify the current class id. If not provided, the anchor block
|
|
185
184
|
* header of the execution data provider is used.
|
|
186
185
|
*/
|
|
187
186
|
export async function verifyCurrentClassId(
|
|
188
187
|
contractAddress: AztecAddress,
|
|
189
|
-
|
|
190
|
-
|
|
188
|
+
aztecNode: AztecNode,
|
|
189
|
+
contractStore: ContractStore,
|
|
190
|
+
header: BlockHeader,
|
|
191
191
|
) {
|
|
192
|
-
|
|
192
|
+
const instance = await contractStore.getContractInstance(contractAddress);
|
|
193
|
+
if (!instance) {
|
|
194
|
+
throw new Error(`No contract instance found for address ${contractAddress.toString()}`);
|
|
195
|
+
}
|
|
193
196
|
|
|
194
|
-
const instance = await executionDataProvider.getContractInstance(contractAddress);
|
|
195
197
|
const currentClassId = await readCurrentClassId(
|
|
196
198
|
contractAddress,
|
|
197
199
|
instance,
|
|
198
|
-
|
|
200
|
+
aztecNode,
|
|
199
201
|
header.globalVariables.blockNumber,
|
|
200
202
|
header.globalVariables.timestamp,
|
|
201
203
|
);
|
|
@@ -1,7 +1,8 @@
|
|
|
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,
|
|
@@ -13,8 +14,10 @@ import {
|
|
|
13
14
|
import type { AuthWitness } from '@aztec/stdlib/auth-witness';
|
|
14
15
|
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
15
16
|
import { computeUniqueNoteHash, siloNoteHash, siloNullifier } from '@aztec/stdlib/hash';
|
|
17
|
+
import type { AztecNode } from '@aztec/stdlib/interfaces/client';
|
|
16
18
|
import { PrivateContextInputs } from '@aztec/stdlib/kernel';
|
|
17
|
-
import type
|
|
19
|
+
import { type ContractClassLog, DirectionalAppTaggingSecret, type PreTag } from '@aztec/stdlib/logs';
|
|
20
|
+
import { Tag } from '@aztec/stdlib/logs';
|
|
18
21
|
import { Note, type NoteStatus } from '@aztec/stdlib/note';
|
|
19
22
|
import {
|
|
20
23
|
type BlockHeader,
|
|
@@ -26,8 +29,17 @@ import {
|
|
|
26
29
|
type TxContext,
|
|
27
30
|
} from '@aztec/stdlib/tx';
|
|
28
31
|
|
|
29
|
-
import {
|
|
30
|
-
import type {
|
|
32
|
+
import { NoteService } from '../../notes/note_service.js';
|
|
33
|
+
import type { AddressStore } from '../../storage/address_store/address_store.js';
|
|
34
|
+
import type { AnchorBlockStore } from '../../storage/anchor_block_store/anchor_block_store.js';
|
|
35
|
+
import type { CapsuleStore } from '../../storage/capsule_store/capsule_store.js';
|
|
36
|
+
import type { ContractStore } from '../../storage/contract_store/contract_store.js';
|
|
37
|
+
import type { NoteStore } from '../../storage/note_store/note_store.js';
|
|
38
|
+
import type { PrivateEventStore } from '../../storage/private_event_store/private_event_store.js';
|
|
39
|
+
import type { RecipientTaggingStore } from '../../storage/tagging_store/recipient_tagging_store.js';
|
|
40
|
+
import type { SenderAddressBookStore } from '../../storage/tagging_store/sender_address_book_store.js';
|
|
41
|
+
import type { SenderTaggingStore } from '../../storage/tagging_store/sender_tagging_store.js';
|
|
42
|
+
import { syncSenderTaggingIndexes } from '../../tagging/index.js';
|
|
31
43
|
import type { ExecutionNoteCache } from '../execution_note_cache.js';
|
|
32
44
|
import { ExecutionTaggingIndexCache } from '../execution_tagging_index_cache.js';
|
|
33
45
|
import type { HashedValuesCache } from '../hashed_values_cache.js';
|
|
@@ -71,14 +83,24 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
71
83
|
private readonly txContext: TxContext,
|
|
72
84
|
private readonly callContext: CallContext,
|
|
73
85
|
/** Header of a block whose state is used during private execution (not the block the transaction is included in). */
|
|
74
|
-
protected readonly anchorBlockHeader: BlockHeader,
|
|
86
|
+
protected override readonly anchorBlockHeader: BlockHeader,
|
|
75
87
|
/** List of transient auth witnesses to be used during this simulation */
|
|
76
88
|
authWitnesses: AuthWitness[],
|
|
77
89
|
capsules: Capsule[],
|
|
78
90
|
private readonly executionCache: HashedValuesCache,
|
|
79
91
|
private readonly noteCache: ExecutionNoteCache,
|
|
80
92
|
private readonly taggingIndexCache: ExecutionTaggingIndexCache,
|
|
81
|
-
|
|
93
|
+
contractStore: ContractStore,
|
|
94
|
+
noteStore: NoteStore,
|
|
95
|
+
keyStore: KeyStore,
|
|
96
|
+
addressStore: AddressStore,
|
|
97
|
+
aztecNode: AztecNode,
|
|
98
|
+
anchorBlockStore: AnchorBlockStore,
|
|
99
|
+
private readonly senderTaggingStore: SenderTaggingStore,
|
|
100
|
+
recipientTaggingStore: RecipientTaggingStore,
|
|
101
|
+
senderAddressBookStore: SenderAddressBookStore,
|
|
102
|
+
capsuleStore: CapsuleStore,
|
|
103
|
+
privateEventStore: PrivateEventStore,
|
|
82
104
|
private totalPublicCalldataCount: number = 0,
|
|
83
105
|
protected sideEffectCounter: number = 0,
|
|
84
106
|
log = createLogger('simulator:client_execution_context'),
|
|
@@ -86,7 +108,24 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
86
108
|
private senderForTags?: AztecAddress,
|
|
87
109
|
private simulator?: CircuitSimulator,
|
|
88
110
|
) {
|
|
89
|
-
super(
|
|
111
|
+
super(
|
|
112
|
+
callContext.contractAddress,
|
|
113
|
+
authWitnesses,
|
|
114
|
+
capsules,
|
|
115
|
+
anchorBlockHeader,
|
|
116
|
+
contractStore,
|
|
117
|
+
noteStore,
|
|
118
|
+
keyStore,
|
|
119
|
+
addressStore,
|
|
120
|
+
aztecNode,
|
|
121
|
+
anchorBlockStore,
|
|
122
|
+
recipientTaggingStore,
|
|
123
|
+
senderAddressBookStore,
|
|
124
|
+
capsuleStore,
|
|
125
|
+
privateEventStore,
|
|
126
|
+
log,
|
|
127
|
+
scopes,
|
|
128
|
+
);
|
|
90
129
|
}
|
|
91
130
|
|
|
92
131
|
public getPrivateContextInputs(): PrivateContextInputs {
|
|
@@ -152,7 +191,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
152
191
|
}
|
|
153
192
|
|
|
154
193
|
/**
|
|
155
|
-
* Returns the pre
|
|
194
|
+
* Returns the pre-tags that were used in this execution (and that need to be stored in the db).
|
|
156
195
|
*/
|
|
157
196
|
public getUsedPreTags(): PreTag[] {
|
|
158
197
|
return this.taggingIndexCache.getUsedPreTags();
|
|
@@ -202,11 +241,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
202
241
|
* @returns An app tag to be used in a log.
|
|
203
242
|
*/
|
|
204
243
|
public async privateGetNextAppTagAsSender(sender: AztecAddress, recipient: AztecAddress): Promise<Tag> {
|
|
205
|
-
const secret = await this
|
|
206
|
-
this.contractAddress,
|
|
207
|
-
sender,
|
|
208
|
-
recipient,
|
|
209
|
-
);
|
|
244
|
+
const secret = await this.#calculateDirectionalAppTaggingSecret(this.contractAddress, sender, recipient);
|
|
210
245
|
|
|
211
246
|
const index = await this.#getIndexToUseForSecret(secret);
|
|
212
247
|
this.log.debug(
|
|
@@ -217,6 +252,22 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
217
252
|
return Tag.compute({ secret, index });
|
|
218
253
|
}
|
|
219
254
|
|
|
255
|
+
async #calculateDirectionalAppTaggingSecret(
|
|
256
|
+
contractAddress: AztecAddress,
|
|
257
|
+
sender: AztecAddress,
|
|
258
|
+
recipient: AztecAddress,
|
|
259
|
+
) {
|
|
260
|
+
const senderCompleteAddress = await this.getCompleteAddress(sender);
|
|
261
|
+
const senderIvsk = await this.keyStore.getMasterIncomingViewingSecretKey(sender);
|
|
262
|
+
return DirectionalAppTaggingSecret.compute(
|
|
263
|
+
senderCompleteAddress,
|
|
264
|
+
senderIvsk,
|
|
265
|
+
recipient,
|
|
266
|
+
contractAddress,
|
|
267
|
+
recipient,
|
|
268
|
+
);
|
|
269
|
+
}
|
|
270
|
+
|
|
220
271
|
async #getIndexToUseForSecret(secret: DirectionalAppTaggingSecret): Promise<number> {
|
|
221
272
|
// If we have the tagging index in the cache, we use it. If not we obtain it from the execution data provider.
|
|
222
273
|
const lastUsedIndexInTx = this.taggingIndexCache.getLastUsedIndex(secret);
|
|
@@ -227,8 +278,9 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
227
278
|
// This is a tagging secret we've not yet used in this tx, so first sync our store to make sure its indices
|
|
228
279
|
// are up to date. We do this here because this store is not synced as part of the global sync because
|
|
229
280
|
// that'd be wasteful as most tagging secrets are not used in each tx.
|
|
230
|
-
await this.
|
|
231
|
-
|
|
281
|
+
await syncSenderTaggingIndexes(secret, this.contractAddress, this.aztecNode, this.senderTaggingStore);
|
|
282
|
+
|
|
283
|
+
const lastUsedIndex = await this.senderTaggingStore.getLastUsedIndex(secret);
|
|
232
284
|
// If lastUsedIndex is undefined, we've never used this secret, so start from 0
|
|
233
285
|
// Otherwise, the next index to use is one past the last used index
|
|
234
286
|
return lastUsedIndex === undefined ? 0 : lastUsedIndex + 1;
|
|
@@ -282,6 +334,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
282
334
|
* Real notes coming from DB will have a leafIndex which
|
|
283
335
|
* represents their index in the note hash tree.
|
|
284
336
|
*
|
|
337
|
+
* @param owner - The owner of the notes. If undefined, returns notes for all owners.
|
|
285
338
|
* @param storageSlot - The storage slot.
|
|
286
339
|
* @param numSelects - The number of valid selects in selectBy and selectValues.
|
|
287
340
|
* @param selectBy - An array of indices of the fields to selects.
|
|
@@ -295,6 +348,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
295
348
|
* @returns Array of note data.
|
|
296
349
|
*/
|
|
297
350
|
public override async utilityGetNotes(
|
|
351
|
+
owner: AztecAddress | undefined,
|
|
298
352
|
storageSlot: Fr,
|
|
299
353
|
numSelects: number,
|
|
300
354
|
selectByIndexes: number[],
|
|
@@ -311,11 +365,14 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
311
365
|
status: NoteStatus,
|
|
312
366
|
): Promise<NoteData[]> {
|
|
313
367
|
// Nullified pending notes are already removed from the list.
|
|
314
|
-
const pendingNotes = this.noteCache.getNotes(this.callContext.contractAddress, storageSlot);
|
|
368
|
+
const pendingNotes = this.noteCache.getNotes(this.callContext.contractAddress, owner, storageSlot);
|
|
315
369
|
|
|
316
370
|
const pendingNullifiers = this.noteCache.getNullifiers(this.callContext.contractAddress);
|
|
317
|
-
|
|
371
|
+
|
|
372
|
+
const noteService = new NoteService(this.noteStore, this.aztecNode, this.anchorBlockStore);
|
|
373
|
+
const dbNotes = await noteService.getNotes(
|
|
318
374
|
this.callContext.contractAddress,
|
|
375
|
+
owner,
|
|
319
376
|
storageSlot,
|
|
320
377
|
status,
|
|
321
378
|
this.scopes,
|
|
@@ -365,15 +422,18 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
365
422
|
/**
|
|
366
423
|
* Keep track of the new note created during execution.
|
|
367
424
|
* It can be used in subsequent calls (or transactions when chaining txs is possible).
|
|
368
|
-
* @param
|
|
425
|
+
* @param owner - The owner of the note.
|
|
369
426
|
* @param storageSlot - The storage slot.
|
|
427
|
+
* @param randomness - The randomness injected into the note.
|
|
370
428
|
* @param noteTypeId - The type ID of the note.
|
|
371
429
|
* @param noteItems - The items to be included in a Note.
|
|
372
430
|
* @param noteHash - A hash of the new note.
|
|
373
431
|
* @returns
|
|
374
432
|
*/
|
|
375
433
|
public privateNotifyCreatedNote(
|
|
434
|
+
owner: AztecAddress,
|
|
376
435
|
storageSlot: Fr,
|
|
436
|
+
randomness: Fr,
|
|
377
437
|
noteTypeId: NoteSelector,
|
|
378
438
|
noteItems: Fr[],
|
|
379
439
|
noteHash: Fr,
|
|
@@ -382,6 +442,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
382
442
|
this.log.debug(`Notified of new note with inner hash ${noteHash}`, {
|
|
383
443
|
contractAddress: this.callContext.contractAddress,
|
|
384
444
|
storageSlot,
|
|
445
|
+
randomness,
|
|
385
446
|
noteTypeId,
|
|
386
447
|
counter,
|
|
387
448
|
});
|
|
@@ -390,7 +451,9 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
390
451
|
this.noteCache.addNewNote(
|
|
391
452
|
{
|
|
392
453
|
contractAddress: this.callContext.contractAddress,
|
|
454
|
+
owner,
|
|
393
455
|
storageSlot,
|
|
456
|
+
randomness,
|
|
394
457
|
noteNonce: Fr.ZERO, // Nonce cannot be known during private execution.
|
|
395
458
|
note,
|
|
396
459
|
siloedNullifier: undefined, // Siloed nullifier cannot be known for newly created note.
|
|
@@ -398,7 +461,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
398
461
|
},
|
|
399
462
|
counter,
|
|
400
463
|
);
|
|
401
|
-
this.newNotes.push(
|
|
464
|
+
this.newNotes.push(NoteAndSlot.from({ note, storageSlot, randomness, noteTypeId }));
|
|
402
465
|
}
|
|
403
466
|
|
|
404
467
|
/**
|
|
@@ -485,9 +548,9 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
485
548
|
|
|
486
549
|
isStaticCall = isStaticCall || this.callContext.isStaticCall;
|
|
487
550
|
|
|
488
|
-
await verifyCurrentClassId(targetContractAddress, this.
|
|
551
|
+
await verifyCurrentClassId(targetContractAddress, this.aztecNode, this.contractStore, this.anchorBlockHeader);
|
|
489
552
|
|
|
490
|
-
const targetArtifact = await this.
|
|
553
|
+
const targetArtifact = await this.contractStore.getFunctionArtifactWithDebugMetadata(
|
|
491
554
|
targetContractAddress,
|
|
492
555
|
functionSelector,
|
|
493
556
|
);
|
|
@@ -506,7 +569,17 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
506
569
|
this.executionCache,
|
|
507
570
|
this.noteCache,
|
|
508
571
|
this.taggingIndexCache,
|
|
509
|
-
this.
|
|
572
|
+
this.contractStore,
|
|
573
|
+
this.noteStore,
|
|
574
|
+
this.keyStore,
|
|
575
|
+
this.addressStore,
|
|
576
|
+
this.aztecNode,
|
|
577
|
+
this.anchorBlockStore,
|
|
578
|
+
this.senderTaggingStore,
|
|
579
|
+
this.recipientTaggingStore,
|
|
580
|
+
this.senderAddressBookStore,
|
|
581
|
+
this.capsuleStore,
|
|
582
|
+
this.privateEventStore,
|
|
510
583
|
this.totalPublicCalldataCount,
|
|
511
584
|
sideEffectCounter,
|
|
512
585
|
this.log,
|
|
@@ -594,6 +667,10 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
594
667
|
return this.noteCache.setMinRevertibleSideEffectCounter(minRevertibleSideEffectCounter);
|
|
595
668
|
}
|
|
596
669
|
|
|
670
|
+
public privateIsSideEffectCounterRevertible(sideEffectCounter: number): Promise<boolean> {
|
|
671
|
+
return Promise.resolve(this.noteCache.isSideEffectCounterRevertible(sideEffectCounter));
|
|
672
|
+
}
|
|
673
|
+
|
|
597
674
|
/**
|
|
598
675
|
* Derives the call context for a nested execution.
|
|
599
676
|
* @param targetContractAddress - The address of the contract being called.
|
|
@@ -615,7 +692,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
615
692
|
}
|
|
616
693
|
|
|
617
694
|
public getDebugFunctionName() {
|
|
618
|
-
return this.
|
|
695
|
+
return this.contractStore.getDebugFunctionName(this.contractAddress, this.callContext.functionSelector);
|
|
619
696
|
}
|
|
620
697
|
|
|
621
698
|
public utilityEmitOffchainEffect(data: Fr[]): Promise<void> {
|