@aztec/pxe 4.0.0-nightly.20250907 → 4.0.0-nightly.20260107
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -5
- package/dest/bin/check_oracle_version.d.ts +1 -1
- package/dest/bin/check_oracle_version.js +110 -10
- package/dest/block_synchronizer/block_synchronizer.d.ts +39 -0
- package/dest/block_synchronizer/block_synchronizer.d.ts.map +1 -0
- package/dest/{synchronizer/synchronizer.js → block_synchronizer/block_synchronizer.js} +23 -23
- 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 +9 -17
- package/dest/config/index.d.ts.map +1 -1
- package/dest/config/index.js +10 -16
- package/dest/config/package_info.d.ts +1 -1
- package/dest/config/package_info.js +1 -1
- package/dest/contract_function_simulator/contract_function_simulator.d.ts +44 -15
- package/dest/contract_function_simulator/contract_function_simulator.d.ts.map +1 -1
- package/dest/contract_function_simulator/contract_function_simulator.js +142 -57
- package/dest/contract_function_simulator/execution_note_cache.d.ts +11 -9
- package/dest/contract_function_simulator/execution_note_cache.d.ts.map +1 -1
- package/dest/contract_function_simulator/execution_note_cache.js +28 -17
- package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts +16 -0
- package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts.map +1 -0
- package/dest/contract_function_simulator/execution_tagging_index_cache.js +26 -0
- package/dest/contract_function_simulator/hashed_values_cache.d.ts +2 -2
- package/dest/contract_function_simulator/hashed_values_cache.d.ts.map +1 -1
- package/dest/contract_function_simulator/index.d.ts +4 -2
- package/dest/contract_function_simulator/index.d.ts.map +1 -1
- package/dest/contract_function_simulator/index.js +2 -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 +8 -4
- package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts +6 -3
- 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 +22 -0
- package/dest/contract_function_simulator/noir-structs/utility_context.d.ts.map +1 -0
- package/dest/contract_function_simulator/noir-structs/utility_context.js +33 -0
- package/dest/contract_function_simulator/oracle/index.d.ts +2 -2
- package/dest/contract_function_simulator/oracle/index.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/index.js +1 -1
- package/dest/contract_function_simulator/oracle/interfaces.d.ts +103 -0
- package/dest/contract_function_simulator/oracle/interfaces.d.ts.map +1 -0
- package/dest/contract_function_simulator/oracle/interfaces.js +4 -0
- package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts +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 +17 -15
- package/dest/contract_function_simulator/oracle/oracle.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/oracle.js +101 -81
- package/dest/contract_function_simulator/oracle/private_execution.d.ts +11 -12
- package/dest/contract_function_simulator/oracle/private_execution.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/private_execution.js +15 -24
- package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts +51 -25
- package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/private_execution_oracle.js +103 -27
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts +65 -36
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.js +171 -69
- 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 +4 -3
- package/dest/entrypoints/client/bundle/index.d.ts.map +1 -1
- package/dest/entrypoints/client/bundle/index.js +2 -2
- package/dest/entrypoints/client/bundle/utils.d.ts +9 -9
- package/dest/entrypoints/client/bundle/utils.d.ts.map +1 -1
- package/dest/entrypoints/client/bundle/utils.js +21 -12
- package/dest/entrypoints/client/lazy/index.d.ts +4 -3
- package/dest/entrypoints/client/lazy/index.d.ts.map +1 -1
- package/dest/entrypoints/client/lazy/index.js +2 -2
- package/dest/entrypoints/client/lazy/utils.d.ts +8 -8
- package/dest/entrypoints/client/lazy/utils.d.ts.map +1 -1
- package/dest/entrypoints/client/lazy/utils.js +20 -11
- package/dest/entrypoints/pxe_creation_options.d.ts +5 -2
- package/dest/entrypoints/pxe_creation_options.d.ts.map +1 -1
- package/dest/entrypoints/server/index.d.ts +5 -3
- package/dest/entrypoints/server/index.d.ts.map +1 -1
- package/dest/entrypoints/server/index.js +3 -2
- package/dest/entrypoints/server/utils.d.ts +5 -24
- package/dest/entrypoints/server/utils.d.ts.map +1 -1
- package/dest/entrypoints/server/utils.js +17 -45
- package/dest/error_enriching.d.ts +11 -0
- package/dest/error_enriching.d.ts.map +1 -0
- package/dest/{pxe_service/error_enriching.js → error_enriching.js} +9 -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/compute_tx_include_by_timestamp.js +6 -6
- 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 +9 -2
- package/dest/private_kernel/private_kernel_execution_prover.d.ts.map +1 -1
- package/dest/private_kernel/private_kernel_execution_prover.js +38 -32
- 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 +10 -9
- 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 +232 -0
- package/dest/pxe.d.ts.map +1 -0
- package/dest/{pxe_service/pxe_service.js → pxe.js} +299 -324
- 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 -4
- 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 -12
- 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 -10
- 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} +10 -18
- package/dest/storage/contract_store/contract_store.d.ts.map +1 -0
- package/dest/storage/{contract_data_provider/contract_data_provider.js → contract_store/contract_store.js} +46 -18
- 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 -9
- package/dest/storage/index.d.ts.map +1 -1
- package/dest/storage/index.js +7 -8
- package/dest/storage/metadata.d.ts +1 -1
- package/dest/storage/note_store/index.d.ts +3 -0
- package/dest/storage/note_store/index.d.ts.map +1 -0
- package/dest/storage/note_store/index.js +2 -0
- package/dest/storage/note_store/note_store.d.ts +84 -0
- 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} +144 -82
- package/dest/storage/private_event_store/private_event_store.d.ts +56 -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 +157 -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 +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 +16 -0
- package/dest/tagging/index.d.ts.map +1 -0
- package/dest/tagging/index.js +23 -0
- 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 +22 -24
- package/src/bin/check_oracle_version.ts +134 -10
- package/src/{synchronizer/synchronizer.ts → block_synchronizer/block_synchronizer.ts} +22 -23
- package/src/block_synchronizer/index.ts +1 -0
- package/src/config/index.ts +18 -32
- package/src/config/package_info.ts +1 -1
- package/src/contract_function_simulator/contract_function_simulator.ts +233 -75
- package/src/contract_function_simulator/execution_note_cache.ts +33 -17
- package/src/contract_function_simulator/execution_tagging_index_cache.ts +32 -0
- package/src/contract_function_simulator/hashed_values_cache.ts +1 -1
- package/src/contract_function_simulator/index.ts +3 -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 +10 -5
- package/src/contract_function_simulator/noir-structs/note_validation_request.ts +14 -2
- package/src/contract_function_simulator/noir-structs/utility_context.ts +42 -0
- package/src/contract_function_simulator/oracle/index.ts +1 -1
- package/src/contract_function_simulator/oracle/interfaces.ts +175 -0
- 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 +135 -80
- package/src/contract_function_simulator/oracle/private_execution.ts +22 -28
- package/src/contract_function_simulator/oracle/private_execution_oracle.ts +200 -56
- package/src/contract_function_simulator/oracle/utility_execution_oracle.ts +260 -109
- 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 +3 -2
- package/src/entrypoints/client/bundle/utils.ts +21 -23
- package/src/entrypoints/client/lazy/index.ts +3 -2
- package/src/entrypoints/client/lazy/utils.ts +20 -23
- package/src/entrypoints/pxe_creation_options.ts +4 -1
- package/src/entrypoints/server/index.ts +4 -2
- package/src/entrypoints/server/utils.ts +20 -68
- package/src/{pxe_service/error_enriching.ts → error_enriching.ts} +11 -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/hints/compute_tx_include_by_timestamp.ts +6 -6
- package/src/private_kernel/private_kernel_execution_prover.ts +51 -43
- 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_service/pxe_service.ts → pxe.ts} +349 -410
- package/src/storage/{address_data_provider/address_data_provider.ts → address_store/address_store.ts} +1 -7
- 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 -17
- 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 -12
- 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 -28
- 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 -8
- package/src/storage/note_store/index.ts +2 -0
- package/src/storage/{note_data_provider/note_data_provider.ts → note_store/note_store.ts} +173 -111
- package/src/storage/private_event_store/private_event_store.ts +213 -0
- 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 +28 -0
- 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/bin/index.d.ts +0 -3
- package/dest/bin/index.d.ts.map +0 -1
- package/dest/bin/index.js +0 -48
- package/dest/contract_function_simulator/execution_data_provider.d.ts +0 -285
- 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/oracle/typed_oracle.d.ts +0 -87
- package/dest/contract_function_simulator/oracle/typed_oracle.d.ts.map +0 -1
- package/dest/contract_function_simulator/oracle/typed_oracle.js +0 -146
- package/dest/contract_function_simulator/pxe_oracle_interface.d.ts +0 -158
- 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/contract_function_simulator/tagging_utils.d.ts +0 -17
- package/dest/contract_function_simulator/tagging_utils.d.ts.map +0 -1
- package/dest/contract_function_simulator/tagging_utils.js +0 -23
- package/dest/pxe_service/error_enriching.d.ts +0 -11
- package/dest/pxe_service/error_enriching.d.ts.map +0 -1
- package/dest/pxe_service/index.d.ts +0 -3
- package/dest/pxe_service/index.d.ts.map +0 -1
- package/dest/pxe_service/index.js +0 -2
- package/dest/pxe_service/pxe_service.d.ts +0 -100
- package/dest/pxe_service/pxe_service.d.ts.map +0 -1
- package/dest/storage/address_data_provider/address_data_provider.d.ts +0 -13
- package/dest/storage/address_data_provider/address_data_provider.d.ts.map +0 -1
- package/dest/storage/address_data_provider/index.d.ts +0 -2
- package/dest/storage/address_data_provider/index.d.ts.map +0 -1
- package/dest/storage/address_data_provider/index.js +0 -1
- package/dest/storage/capsule_data_provider/capsule_data_provider.d.ts +0 -27
- 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/data_provider.d.ts +0 -4
- package/dest/storage/data_provider.d.ts.map +0 -1
- package/dest/storage/data_provider.js +0 -1
- package/dest/storage/note_data_provider/index.d.ts +0 -3
- package/dest/storage/note_data_provider/index.d.ts.map +0 -1
- package/dest/storage/note_data_provider/index.js +0 -2
- package/dest/storage/note_data_provider/note_dao.d.ts +0 -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 -20
- 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 -37
- 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 -96
- package/dest/storage/sync_data_provider/index.d.ts +0 -2
- package/dest/storage/sync_data_provider/index.d.ts.map +0 -1
- package/dest/storage/sync_data_provider/index.js +0 -1
- package/dest/storage/sync_data_provider/sync_data_provider.d.ts +0 -12
- package/dest/storage/sync_data_provider/sync_data_provider.d.ts.map +0 -1
- package/dest/storage/tagging_data_provider/index.d.ts +0 -2
- package/dest/storage/tagging_data_provider/index.d.ts.map +0 -1
- package/dest/storage/tagging_data_provider/index.js +0 -1
- package/dest/storage/tagging_data_provider/tagging_data_provider.d.ts +0 -18
- package/dest/storage/tagging_data_provider/tagging_data_provider.d.ts.map +0 -1
- package/dest/storage/tagging_data_provider/tagging_data_provider.js +0 -82
- 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/test/pxe_test_suite.d.ts +0 -3
- package/dest/test/pxe_test_suite.d.ts.map +0 -1
- package/dest/test/pxe_test_suite.js +0 -97
- package/src/bin/index.ts +0 -62
- package/src/contract_function_simulator/execution_data_provider.ts +0 -361
- package/src/contract_function_simulator/oracle/typed_oracle.ts +0 -289
- package/src/contract_function_simulator/pxe_oracle_interface.ts +0 -1020
- package/src/contract_function_simulator/tagging_utils.ts +0 -32
- package/src/pxe_service/index.ts +0 -2
- 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/data_provider.ts +0 -3
- package/src/storage/note_data_provider/index.ts +0 -2
- package/src/storage/note_data_provider/note_dao.ts +0 -154
- package/src/storage/private_event_data_provider/private_event_data_provider.ts +0 -134
- 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 -123
- package/src/synchronizer/index.ts +0 -1
- package/src/test/pxe_test_suite.ts +0 -113
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH, PRIVATE_CONTEXT_INPUTS_LENGTH } from '@aztec/constants';
|
|
2
|
-
import { Fr } from '@aztec/foundation/
|
|
2
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
3
|
import { createLogger } from '@aztec/foundation/log';
|
|
4
4
|
import { Timer } from '@aztec/foundation/timer';
|
|
5
5
|
import { ProtocolContractAddress } from '@aztec/protocol-contracts';
|
|
@@ -52,6 +52,7 @@ import { Oracle } from './oracle.js';
|
|
|
52
52
|
const newNotes = privateExecutionOracle.getNewNotes();
|
|
53
53
|
const noteHashNullifierCounterMap = privateExecutionOracle.getNoteHashNullifierCounterMap();
|
|
54
54
|
const offchainEffects = privateExecutionOracle.getOffchainEffects();
|
|
55
|
+
const preTags = privateExecutionOracle.getUsedPreTags();
|
|
55
56
|
const nestedExecutionResults = privateExecutionOracle.getNestedExecutionResults();
|
|
56
57
|
let timerSubtractionList = nestedExecutionResults;
|
|
57
58
|
let witgenTime = duration;
|
|
@@ -61,7 +62,7 @@ import { Oracle } from './oracle.js';
|
|
|
61
62
|
timerSubtractionList = timerSubtractionList.flatMap((nested)=>nested.nestedExecutionResults ?? []);
|
|
62
63
|
}
|
|
63
64
|
log.debug(`Returning from call to ${contractAddress.toString()}:${functionSelector}`);
|
|
64
|
-
return new PrivateCallExecutionResult(artifact.bytecode, Buffer.from(artifact.verificationKey, 'base64'), partialWitness, publicInputs, noteHashLeafIndexMap, newNotes, noteHashNullifierCounterMap, rawReturnValues, offchainEffects, nestedExecutionResults, contractClassLogs, {
|
|
65
|
+
return new PrivateCallExecutionResult(artifact.bytecode, Buffer.from(artifact.verificationKey, 'base64'), partialWitness, publicInputs, noteHashLeafIndexMap, newNotes, noteHashNullifierCounterMap, rawReturnValues, offchainEffects, preTags, nestedExecutionResults, contractClassLogs, {
|
|
65
66
|
timings: {
|
|
66
67
|
witgen: witgenTime,
|
|
67
68
|
oracles: acirExecutionResult.oracles
|
|
@@ -92,13 +93,13 @@ import { Oracle } from './oracle.js';
|
|
|
92
93
|
* from the instance is used.
|
|
93
94
|
* @param contractAddress - The address of the contract to read the class id for.
|
|
94
95
|
* @param instance - The instance of the contract.
|
|
95
|
-
* @param
|
|
96
|
+
* @param executionStore - The execution data provider.
|
|
96
97
|
* @param blockNumber - The block number at which to load the DelayedPublicMutable storing the class id.
|
|
97
98
|
* @param timestamp - The timestamp at which to obtain the class id from the DelayedPublicMutable.
|
|
98
99
|
* @returns The current class id.
|
|
99
|
-
*/ export async function readCurrentClassId(contractAddress, instance,
|
|
100
|
+
*/ export async function readCurrentClassId(contractAddress, instance, aztecNode, blockNumber, timestamp) {
|
|
100
101
|
const { delayedPublicMutableSlot } = await DelayedPublicMutableValuesWithHash.getContractUpdateSlots(contractAddress);
|
|
101
|
-
const delayedPublicMutableValues = await DelayedPublicMutableValues.readFromTree(delayedPublicMutableSlot, (slot)=>
|
|
102
|
+
const delayedPublicMutableValues = await DelayedPublicMutableValues.readFromTree(delayedPublicMutableSlot, (slot)=>aztecNode.getPublicStorageAt(blockNumber, ProtocolContractAddress.ContractInstanceRegistry, slot));
|
|
102
103
|
let currentClassId = delayedPublicMutableValues.svc.getCurrentAt(timestamp)[0];
|
|
103
104
|
if (currentClassId.isZero()) {
|
|
104
105
|
currentClassId = instance.originalContractClassId;
|
|
@@ -106,26 +107,16 @@ import { Oracle } from './oracle.js';
|
|
|
106
107
|
return currentClassId;
|
|
107
108
|
}
|
|
108
109
|
/**
|
|
109
|
-
* Verify that the current class id of a contract obtained from AztecNode is the same as the one in
|
|
110
|
-
* provider (i.e. PXE).
|
|
111
|
-
* @param
|
|
112
|
-
*
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
let timestamp;
|
|
118
|
-
if (header) {
|
|
119
|
-
blockNumber = header.globalVariables.blockNumber;
|
|
120
|
-
timestamp = header.globalVariables.timestamp;
|
|
121
|
-
} else {
|
|
122
|
-
[blockNumber, timestamp] = await Promise.all([
|
|
123
|
-
executionDataProvider.getBlockNumber(),
|
|
124
|
-
executionDataProvider.getTimestamp()
|
|
125
|
-
]);
|
|
110
|
+
* Verify that the current class id of a contract obtained from AztecNode is the same as the one in contract data
|
|
111
|
+
* provider (i.e. PXE's own storage).
|
|
112
|
+
* @param header - The header of the block at which to verify the current class id. If not provided, the anchor block
|
|
113
|
+
* header of the execution data provider is used.
|
|
114
|
+
*/ export async function verifyCurrentClassId(contractAddress, aztecNode, contractStore, header) {
|
|
115
|
+
const instance = await contractStore.getContractInstance(contractAddress);
|
|
116
|
+
if (!instance) {
|
|
117
|
+
throw new Error(`No contract instance found for address ${contractAddress.toString()}`);
|
|
126
118
|
}
|
|
127
|
-
const
|
|
128
|
-
const currentClassId = await readCurrentClassId(contractAddress, instance, executionDataProvider, blockNumber, timestamp);
|
|
119
|
+
const currentClassId = await readCurrentClassId(contractAddress, instance, aztecNode, header.globalVariables.blockNumber, header.globalVariables.timestamp);
|
|
129
120
|
if (!instance.currentContractClassId.equals(currentClassId)) {
|
|
130
121
|
throw new Error(`Contract ${contractAddress} is outdated, current class id is ${currentClassId}, local class id is ${instance.currentContractClassId}`);
|
|
131
122
|
}
|
|
@@ -1,31 +1,49 @@
|
|
|
1
|
-
import { Fr } from '@aztec/foundation/
|
|
1
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
2
|
+
import type { KeyStore } from '@aztec/key-store';
|
|
2
3
|
import { type CircuitSimulator } from '@aztec/simulator/client';
|
|
3
|
-
import { type FunctionAbi, FunctionSelector, type NoteSelector } from '@aztec/stdlib/abi';
|
|
4
|
+
import { type FunctionAbi, type FunctionCall, FunctionSelector, type NoteSelector } from '@aztec/stdlib/abi';
|
|
4
5
|
import type { AuthWitness } from '@aztec/stdlib/auth-witness';
|
|
5
6
|
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
6
|
-
import type {
|
|
7
|
+
import type { AztecNode } from '@aztec/stdlib/interfaces/client';
|
|
8
|
+
import { PrivateContextInputs } from '@aztec/stdlib/kernel';
|
|
9
|
+
import { type ContractClassLog, type PreTag } from '@aztec/stdlib/logs';
|
|
10
|
+
import { Tag } from '@aztec/stdlib/logs';
|
|
7
11
|
import { type NoteStatus } from '@aztec/stdlib/note';
|
|
8
12
|
import { type BlockHeader, CallContext, Capsule, CountedContractClassLog, NoteAndSlot, PrivateCallExecutionResult, type TxContext } from '@aztec/stdlib/tx';
|
|
9
|
-
import type {
|
|
13
|
+
import type { AddressStore } from '../../storage/address_store/address_store.js';
|
|
14
|
+
import type { AnchorBlockStore } from '../../storage/anchor_block_store/anchor_block_store.js';
|
|
15
|
+
import type { CapsuleStore } from '../../storage/capsule_store/capsule_store.js';
|
|
16
|
+
import type { ContractStore } from '../../storage/contract_store/contract_store.js';
|
|
17
|
+
import type { NoteStore } from '../../storage/note_store/note_store.js';
|
|
18
|
+
import type { PrivateEventStore } from '../../storage/private_event_store/private_event_store.js';
|
|
19
|
+
import type { RecipientTaggingStore } from '../../storage/tagging_store/recipient_tagging_store.js';
|
|
20
|
+
import type { SenderAddressBookStore } from '../../storage/tagging_store/sender_address_book_store.js';
|
|
21
|
+
import type { SenderTaggingStore } from '../../storage/tagging_store/sender_tagging_store.js';
|
|
10
22
|
import type { ExecutionNoteCache } from '../execution_note_cache.js';
|
|
23
|
+
import { ExecutionTaggingIndexCache } from '../execution_tagging_index_cache.js';
|
|
11
24
|
import type { HashedValuesCache } from '../hashed_values_cache.js';
|
|
12
|
-
import type { NoteData } from './
|
|
25
|
+
import type { IPrivateExecutionOracle, NoteData } from './interfaces.js';
|
|
13
26
|
import { UtilityExecutionOracle } from './utility_execution_oracle.js';
|
|
14
27
|
/**
|
|
15
28
|
* The execution oracle for the private part of a transaction.
|
|
16
29
|
*/
|
|
17
|
-
export declare class PrivateExecutionOracle extends UtilityExecutionOracle {
|
|
30
|
+
export declare class PrivateExecutionOracle extends UtilityExecutionOracle implements IPrivateExecutionOracle {
|
|
18
31
|
#private;
|
|
19
32
|
private readonly argsHash;
|
|
20
33
|
private readonly txContext;
|
|
21
34
|
private readonly callContext;
|
|
22
|
-
|
|
23
|
-
|
|
35
|
+
protected readonly anchorBlockHeader: BlockHeader;
|
|
36
|
+
/** Needed to trigger contract synchronization before nested calls */
|
|
37
|
+
private readonly utilityExecutor;
|
|
24
38
|
private readonly executionCache;
|
|
25
39
|
private readonly noteCache;
|
|
26
|
-
private
|
|
40
|
+
private readonly taggingIndexCache;
|
|
41
|
+
private readonly senderTaggingStore;
|
|
27
42
|
private totalPublicCalldataCount;
|
|
28
43
|
protected sideEffectCounter: number;
|
|
44
|
+
private senderForTags?;
|
|
45
|
+
private simulator?;
|
|
46
|
+
isPrivate: true;
|
|
29
47
|
/**
|
|
30
48
|
* New notes created during this execution.
|
|
31
49
|
* It's possible that a note in this list has been nullified (in the same or other executions) and doesn't exist in
|
|
@@ -49,12 +67,14 @@ export declare class PrivateExecutionOracle extends UtilityExecutionOracle {
|
|
|
49
67
|
private contractClassLogs;
|
|
50
68
|
private offchainEffects;
|
|
51
69
|
private nestedExecutionResults;
|
|
52
|
-
private senderForTags?;
|
|
53
70
|
constructor(argsHash: Fr, txContext: TxContext, callContext: CallContext,
|
|
54
71
|
/** Header of a block whose state is used during private execution (not the block the transaction is included in). */
|
|
55
|
-
|
|
72
|
+
anchorBlockHeader: BlockHeader,
|
|
73
|
+
/** Needed to trigger contract synchronization before nested calls */
|
|
74
|
+
utilityExecutor: (call: FunctionCall) => Promise<void>,
|
|
56
75
|
/** List of transient auth witnesses to be used during this simulation */
|
|
57
|
-
authWitnesses: AuthWitness[], capsules: Capsule[], executionCache: HashedValuesCache, noteCache: ExecutionNoteCache,
|
|
76
|
+
authWitnesses: AuthWitness[], capsules: Capsule[], executionCache: HashedValuesCache, noteCache: ExecutionNoteCache, taggingIndexCache: ExecutionTaggingIndexCache, contractStore: ContractStore, noteStore: NoteStore, keyStore: KeyStore, addressStore: AddressStore, aztecNode: AztecNode, anchorBlockStore: AnchorBlockStore, senderTaggingStore: SenderTaggingStore, recipientTaggingStore: RecipientTaggingStore, senderAddressBookStore: SenderAddressBookStore, capsuleStore: CapsuleStore, privateEventStore: PrivateEventStore, totalPublicCalldataCount?: number, sideEffectCounter?: number, log?: import("@aztec/foundation/log").Logger, scopes?: AztecAddress[], senderForTags?: AztecAddress | undefined, simulator?: CircuitSimulator | undefined);
|
|
77
|
+
getPrivateContextInputs(): PrivateContextInputs;
|
|
58
78
|
/**
|
|
59
79
|
* Writes the function inputs to the initial witness.
|
|
60
80
|
* @param abi - The function ABI.
|
|
@@ -81,6 +101,10 @@ export declare class PrivateExecutionOracle extends UtilityExecutionOracle {
|
|
|
81
101
|
getOffchainEffects(): {
|
|
82
102
|
data: Fr[];
|
|
83
103
|
}[];
|
|
104
|
+
/**
|
|
105
|
+
* Returns the pre-tags that were used in this execution (and that need to be stored in the db).
|
|
106
|
+
*/
|
|
107
|
+
getUsedPreTags(): PreTag[];
|
|
84
108
|
/**
|
|
85
109
|
* Return the nested execution results during this execution.
|
|
86
110
|
*/
|
|
@@ -108,6 +132,13 @@ export declare class PrivateExecutionOracle extends UtilityExecutionOracle {
|
|
|
108
132
|
* value (unless it is replaced by another call to this setter).
|
|
109
133
|
*/
|
|
110
134
|
privateSetSenderForTags(senderForTags: AztecAddress): Promise<void>;
|
|
135
|
+
/**
|
|
136
|
+
* Returns the next app tag for a given sender and recipient pair.
|
|
137
|
+
* @param sender - The address sending the log
|
|
138
|
+
* @param recipient - The address receiving the log
|
|
139
|
+
* @returns An app tag to be used in a log.
|
|
140
|
+
*/
|
|
141
|
+
privateGetNextAppTagAsSender(sender: AztecAddress, recipient: AztecAddress): Promise<Tag>;
|
|
111
142
|
/**
|
|
112
143
|
* Store values in the execution cache.
|
|
113
144
|
* @param values - Values to store.
|
|
@@ -120,6 +151,7 @@ export declare class PrivateExecutionOracle extends UtilityExecutionOracle {
|
|
|
120
151
|
* @returns The values.
|
|
121
152
|
*/
|
|
122
153
|
privateLoadFromExecutionCache(hash: Fr): Promise<Fr[]>;
|
|
154
|
+
utilityCheckNullifierExists(innerNullifier: Fr): Promise<boolean>;
|
|
123
155
|
/**
|
|
124
156
|
* Gets some notes for a storage slot.
|
|
125
157
|
*
|
|
@@ -128,6 +160,7 @@ export declare class PrivateExecutionOracle extends UtilityExecutionOracle {
|
|
|
128
160
|
* Real notes coming from DB will have a leafIndex which
|
|
129
161
|
* represents their index in the note hash tree.
|
|
130
162
|
*
|
|
163
|
+
* @param owner - The owner of the notes. If undefined, returns notes for all owners.
|
|
131
164
|
* @param storageSlot - The storage slot.
|
|
132
165
|
* @param numSelects - The number of valid selects in selectBy and selectValues.
|
|
133
166
|
* @param selectBy - An array of indices of the fields to selects.
|
|
@@ -140,18 +173,19 @@ export declare class PrivateExecutionOracle extends UtilityExecutionOracle {
|
|
|
140
173
|
* @param status - The status of notes to fetch.
|
|
141
174
|
* @returns Array of note data.
|
|
142
175
|
*/
|
|
143
|
-
utilityGetNotes(storageSlot: Fr, numSelects: number, selectByIndexes: number[], selectByOffsets: number[], selectByLengths: number[], selectValues: Fr[], selectComparators: number[], sortByIndexes: number[], sortByOffsets: number[], sortByLengths: number[], sortOrder: number[], limit: number, offset: number, status: NoteStatus): Promise<NoteData[]>;
|
|
176
|
+
utilityGetNotes(owner: AztecAddress | undefined, storageSlot: Fr, numSelects: number, selectByIndexes: number[], selectByOffsets: number[], selectByLengths: number[], selectValues: Fr[], selectComparators: number[], sortByIndexes: number[], sortByOffsets: number[], sortByLengths: number[], sortOrder: number[], limit: number, offset: number, status: NoteStatus): Promise<NoteData[]>;
|
|
144
177
|
/**
|
|
145
178
|
* Keep track of the new note created during execution.
|
|
146
179
|
* It can be used in subsequent calls (or transactions when chaining txs is possible).
|
|
147
|
-
* @param
|
|
180
|
+
* @param owner - The owner of the note.
|
|
148
181
|
* @param storageSlot - The storage slot.
|
|
182
|
+
* @param randomness - The randomness injected into the note.
|
|
149
183
|
* @param noteTypeId - The type ID of the note.
|
|
150
184
|
* @param noteItems - The items to be included in a Note.
|
|
151
185
|
* @param noteHash - A hash of the new note.
|
|
152
186
|
* @returns
|
|
153
187
|
*/
|
|
154
|
-
privateNotifyCreatedNote(storageSlot: Fr, noteTypeId: NoteSelector, noteItems: Fr[], noteHash: Fr, counter: number): void;
|
|
188
|
+
privateNotifyCreatedNote(owner: AztecAddress, storageSlot: Fr, randomness: Fr, noteTypeId: NoteSelector, noteItems: Fr[], noteHash: Fr, counter: number): void;
|
|
155
189
|
/**
|
|
156
190
|
* Adding a siloed nullifier into the current set of all pending nullifiers created
|
|
157
191
|
* within the current transaction/execution.
|
|
@@ -204,17 +238,9 @@ export declare class PrivateExecutionOracle extends UtilityExecutionOracle {
|
|
|
204
238
|
*/
|
|
205
239
|
privateNotifySetPublicTeardownFunctionCall(_targetContractAddress: AztecAddress, calldataHash: Fr, _sideEffectCounter: number, _isStaticCall: boolean): Promise<void>;
|
|
206
240
|
privateNotifySetMinRevertibleSideEffectCounter(minRevertibleSideEffectCounter: number): Promise<void>;
|
|
207
|
-
|
|
208
|
-
* Derives the call context for a nested execution.
|
|
209
|
-
* @param targetContractAddress - The address of the contract being called.
|
|
210
|
-
* @param targetArtifact - The artifact of the function being called.
|
|
211
|
-
* @param isStaticCall - Whether the call is a static call.
|
|
212
|
-
* @returns The derived call context.
|
|
213
|
-
*/
|
|
241
|
+
privateIsSideEffectCounterRevertible(sideEffectCounter: number): Promise<boolean>;
|
|
214
242
|
private deriveCallContext;
|
|
215
243
|
getDebugFunctionName(): Promise<string>;
|
|
216
|
-
privateIncrementAppTaggingSecretIndexAsSender(sender: AztecAddress, recipient: AztecAddress): Promise<void>;
|
|
217
|
-
utilityFetchTaggedLogs(pendingTaggedLogArrayBaseSlot: Fr): Promise<void>;
|
|
218
244
|
utilityEmitOffchainEffect(data: Fr[]): Promise<void>;
|
|
219
245
|
}
|
|
220
|
-
//# sourceMappingURL=
|
|
246
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpdmF0ZV9leGVjdXRpb25fb3JhY2xlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udHJhY3RfZnVuY3Rpb25fc2ltdWxhdG9yL29yYWNsZS9wcml2YXRlX2V4ZWN1dGlvbl9vcmFjbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBR3BELE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxLQUFLLGdCQUFnQixFQUFpQixNQUFNLHlCQUF5QixDQUFDO0FBQy9FLE9BQU8sRUFDTCxLQUFLLFdBQVcsRUFFaEIsS0FBSyxZQUFZLEVBQ2pCLGdCQUFnQixFQUNoQixLQUFLLFlBQVksRUFFbEIsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFM0QsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDakUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDNUQsT0FBTyxFQUFFLEtBQUssZ0JBQWdCLEVBQStCLEtBQUssTUFBTSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDckcsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3pDLE9BQU8sRUFBUSxLQUFLLFVBQVUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzNELE9BQU8sRUFDTCxLQUFLLFdBQVcsRUFDaEIsV0FBVyxFQUNYLE9BQU8sRUFDUCx1QkFBdUIsRUFDdkIsV0FBVyxFQUNYLDBCQUEwQixFQUMxQixLQUFLLFNBQVMsRUFDZixNQUFNLGtCQUFrQixDQUFDO0FBRzFCLE9BQU8sS0FBSyxFQUFFLFlB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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"private_execution_oracle.d.ts","sourceRoot":"","sources":["../../../src/contract_function_simulator/oracle/private_execution_oracle.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"private_execution_oracle.d.ts","sourceRoot":"","sources":["../../../src/contract_function_simulator/oracle/private_execution_oracle.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,17 @@
|
|
|
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
5
|
import { toACVMWitness } from '@aztec/simulator/client';
|
|
6
6
|
import { FunctionSelector, countArgumentsSize } from '@aztec/stdlib/abi';
|
|
7
|
-
import { computeUniqueNoteHash, siloNoteHash } from '@aztec/stdlib/hash';
|
|
7
|
+
import { computeUniqueNoteHash, siloNoteHash, siloNullifier } from '@aztec/stdlib/hash';
|
|
8
8
|
import { PrivateContextInputs } from '@aztec/stdlib/kernel';
|
|
9
|
+
import { DirectionalAppTaggingSecret } from '@aztec/stdlib/logs';
|
|
10
|
+
import { Tag } from '@aztec/stdlib/logs';
|
|
9
11
|
import { Note } from '@aztec/stdlib/note';
|
|
10
12
|
import { CallContext, CountedContractClassLog, NoteAndSlot } from '@aztec/stdlib/tx';
|
|
13
|
+
import { NoteService } from '../../notes/note_service.js';
|
|
14
|
+
import { syncSenderTaggingIndexes } from '../../tagging/index.js';
|
|
11
15
|
import { pickNotes } from '../pick_notes.js';
|
|
12
16
|
import { executePrivateFunction, verifyCurrentClassId } from './private_execution.js';
|
|
13
17
|
import { UtilityExecutionOracle } from './utility_execution_oracle.js';
|
|
@@ -17,12 +21,17 @@ import { UtilityExecutionOracle } from './utility_execution_oracle.js';
|
|
|
17
21
|
argsHash;
|
|
18
22
|
txContext;
|
|
19
23
|
callContext;
|
|
20
|
-
|
|
24
|
+
anchorBlockHeader;
|
|
25
|
+
utilityExecutor;
|
|
21
26
|
executionCache;
|
|
22
27
|
noteCache;
|
|
23
|
-
|
|
28
|
+
taggingIndexCache;
|
|
29
|
+
senderTaggingStore;
|
|
24
30
|
totalPublicCalldataCount;
|
|
25
31
|
sideEffectCounter;
|
|
32
|
+
senderForTags;
|
|
33
|
+
simulator;
|
|
34
|
+
isPrivate;
|
|
26
35
|
/**
|
|
27
36
|
* New notes created during this execution.
|
|
28
37
|
* It's possible that a note in this list has been nullified (in the same or other executions) and doesn't exist in
|
|
@@ -44,10 +53,11 @@ import { UtilityExecutionOracle } from './utility_execution_oracle.js';
|
|
|
44
53
|
contractClassLogs;
|
|
45
54
|
offchainEffects;
|
|
46
55
|
nestedExecutionResults;
|
|
47
|
-
senderForTags
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
56
|
+
constructor(argsHash, txContext, callContext, /** Header of a block whose state is used during private execution (not the block the transaction is included in). */ anchorBlockHeader, /** Needed to trigger contract synchronization before nested calls */ utilityExecutor, /** List of transient auth witnesses to be used during this simulation */ authWitnesses, capsules, executionCache, noteCache, taggingIndexCache, contractStore, noteStore, keyStore, addressStore, aztecNode, anchorBlockStore, senderTaggingStore, recipientTaggingStore, senderAddressBookStore, capsuleStore, privateEventStore, totalPublicCalldataCount = 0, sideEffectCounter = 0, log = createLogger('simulator:client_execution_context'), scopes, senderForTags, simulator){
|
|
57
|
+
super(callContext.contractAddress, authWitnesses, capsules, anchorBlockHeader, contractStore, noteStore, keyStore, addressStore, aztecNode, anchorBlockStore, recipientTaggingStore, senderAddressBookStore, capsuleStore, privateEventStore, log, scopes), this.argsHash = argsHash, this.txContext = txContext, this.callContext = callContext, this.anchorBlockHeader = anchorBlockHeader, this.utilityExecutor = utilityExecutor, this.executionCache = executionCache, this.noteCache = noteCache, this.taggingIndexCache = taggingIndexCache, this.senderTaggingStore = senderTaggingStore, this.totalPublicCalldataCount = totalPublicCalldataCount, this.sideEffectCounter = sideEffectCounter, this.senderForTags = senderForTags, this.simulator = simulator, this.isPrivate = true, this.newNotes = [], this.noteHashLeafIndexMap = new Map(), this.noteHashNullifierCounterMap = new Map(), this.contractClassLogs = [], this.offchainEffects = [], this.nestedExecutionResults = [];
|
|
58
|
+
}
|
|
59
|
+
getPrivateContextInputs() {
|
|
60
|
+
return new PrivateContextInputs(this.callContext, this.anchorBlockHeader, this.txContext, this.sideEffectCounter);
|
|
51
61
|
}
|
|
52
62
|
// We still need this function until we can get user-defined ordering of structs for fn arguments
|
|
53
63
|
// TODO When that is sorted out on noir side, we can use instead the utilities in serialize.ts
|
|
@@ -61,8 +71,7 @@ import { UtilityExecutionOracle } from './utility_execution_oracle.js';
|
|
|
61
71
|
if (args?.length !== argumentsSize) {
|
|
62
72
|
throw new Error(`Invalid arguments size: expected ${argumentsSize}, got ${args?.length}`);
|
|
63
73
|
}
|
|
64
|
-
const
|
|
65
|
-
const privateContextInputsAsFields = privateContextInputs.toFields();
|
|
74
|
+
const privateContextInputsAsFields = this.getPrivateContextInputs().toFields();
|
|
66
75
|
if (privateContextInputsAsFields.length !== PRIVATE_CONTEXT_INPUTS_LENGTH) {
|
|
67
76
|
throw new Error('Invalid private context inputs size');
|
|
68
77
|
}
|
|
@@ -97,6 +106,11 @@ import { UtilityExecutionOracle } from './utility_execution_oracle.js';
|
|
|
97
106
|
return this.offchainEffects;
|
|
98
107
|
}
|
|
99
108
|
/**
|
|
109
|
+
* Returns the pre-tags that were used in this execution (and that need to be stored in the db).
|
|
110
|
+
*/ getUsedPreTags() {
|
|
111
|
+
return this.taggingIndexCache.getUsedPreTags();
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
100
114
|
* Return the nested execution results during this execution.
|
|
101
115
|
*/ getNestedExecutionResults() {
|
|
102
116
|
return this.nestedExecutionResults;
|
|
@@ -128,6 +142,42 @@ import { UtilityExecutionOracle } from './utility_execution_oracle.js';
|
|
|
128
142
|
return Promise.resolve();
|
|
129
143
|
}
|
|
130
144
|
/**
|
|
145
|
+
* Returns the next app tag for a given sender and recipient pair.
|
|
146
|
+
* @param sender - The address sending the log
|
|
147
|
+
* @param recipient - The address receiving the log
|
|
148
|
+
* @returns An app tag to be used in a log.
|
|
149
|
+
*/ async privateGetNextAppTagAsSender(sender, recipient) {
|
|
150
|
+
const secret = await this.#calculateDirectionalAppTaggingSecret(this.contractAddress, sender, recipient);
|
|
151
|
+
const index = await this.#getIndexToUseForSecret(secret);
|
|
152
|
+
this.log.debug(`Incrementing tagging index for sender: ${sender}, recipient: ${recipient}, contract: ${this.contractAddress} to ${index}`);
|
|
153
|
+
this.taggingIndexCache.setLastUsedIndex(secret, index);
|
|
154
|
+
return Tag.compute({
|
|
155
|
+
secret,
|
|
156
|
+
index
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
async #calculateDirectionalAppTaggingSecret(contractAddress, sender, recipient) {
|
|
160
|
+
const senderCompleteAddress = await this.getCompleteAddress(sender);
|
|
161
|
+
const senderIvsk = await this.keyStore.getMasterIncomingViewingSecretKey(sender);
|
|
162
|
+
return DirectionalAppTaggingSecret.compute(senderCompleteAddress, senderIvsk, recipient, contractAddress, recipient);
|
|
163
|
+
}
|
|
164
|
+
async #getIndexToUseForSecret(secret) {
|
|
165
|
+
// If we have the tagging index in the cache, we use it. If not we obtain it from the execution data provider.
|
|
166
|
+
const lastUsedIndexInTx = this.taggingIndexCache.getLastUsedIndex(secret);
|
|
167
|
+
if (lastUsedIndexInTx !== undefined) {
|
|
168
|
+
return lastUsedIndexInTx + 1;
|
|
169
|
+
} else {
|
|
170
|
+
// This is a tagging secret we've not yet used in this tx, so first sync our store to make sure its indices
|
|
171
|
+
// are up to date. We do this here because this store is not synced as part of the global sync because
|
|
172
|
+
// that'd be wasteful as most tagging secrets are not used in each tx.
|
|
173
|
+
await syncSenderTaggingIndexes(secret, this.contractAddress, this.aztecNode, this.senderTaggingStore);
|
|
174
|
+
const lastUsedIndex = await this.senderTaggingStore.getLastUsedIndex(secret);
|
|
175
|
+
// If lastUsedIndex is undefined, we've never used this secret, so start from 0
|
|
176
|
+
// Otherwise, the next index to use is one past the last used index
|
|
177
|
+
return lastUsedIndex === undefined ? 0 : lastUsedIndex + 1;
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
131
181
|
* Store values in the execution cache.
|
|
132
182
|
* @param values - Values to store.
|
|
133
183
|
* @returns The hash of the values.
|
|
@@ -145,6 +195,16 @@ import { UtilityExecutionOracle } from './utility_execution_oracle.js';
|
|
|
145
195
|
}
|
|
146
196
|
return Promise.resolve(preimage);
|
|
147
197
|
}
|
|
198
|
+
async utilityCheckNullifierExists(innerNullifier) {
|
|
199
|
+
// This oracle must be overridden because while utility execution can only meaningfully check if a nullifier exists
|
|
200
|
+
// in the synched block, during private execution there's also the possibility of it being pending, i.e. created
|
|
201
|
+
// in the current transaction.
|
|
202
|
+
this.log.debug(`Checking existence of inner nullifier ${innerNullifier}`, {
|
|
203
|
+
contractAddress: this.contractAddress
|
|
204
|
+
});
|
|
205
|
+
const nullifier = (await siloNullifier(this.contractAddress, innerNullifier)).toBigInt();
|
|
206
|
+
return this.noteCache.getNullifiers(this.contractAddress).has(nullifier) || await super.utilityCheckNullifierExists(innerNullifier);
|
|
207
|
+
}
|
|
148
208
|
/**
|
|
149
209
|
* Gets some notes for a storage slot.
|
|
150
210
|
*
|
|
@@ -153,6 +213,7 @@ import { UtilityExecutionOracle } from './utility_execution_oracle.js';
|
|
|
153
213
|
* Real notes coming from DB will have a leafIndex which
|
|
154
214
|
* represents their index in the note hash tree.
|
|
155
215
|
*
|
|
216
|
+
* @param owner - The owner of the notes. If undefined, returns notes for all owners.
|
|
156
217
|
* @param storageSlot - The storage slot.
|
|
157
218
|
* @param numSelects - The number of valid selects in selectBy and selectValues.
|
|
158
219
|
* @param selectBy - An array of indices of the fields to selects.
|
|
@@ -164,11 +225,12 @@ import { UtilityExecutionOracle } from './utility_execution_oracle.js';
|
|
|
164
225
|
* @param offset - The starting index for pagination.
|
|
165
226
|
* @param status - The status of notes to fetch.
|
|
166
227
|
* @returns Array of note data.
|
|
167
|
-
*/ async utilityGetNotes(storageSlot, numSelects, selectByIndexes, selectByOffsets, selectByLengths, selectValues, selectComparators, sortByIndexes, sortByOffsets, sortByLengths, sortOrder, limit, offset, status) {
|
|
228
|
+
*/ async utilityGetNotes(owner, storageSlot, numSelects, selectByIndexes, selectByOffsets, selectByLengths, selectValues, selectComparators, sortByIndexes, sortByOffsets, sortByLengths, sortOrder, limit, offset, status) {
|
|
168
229
|
// Nullified pending notes are already removed from the list.
|
|
169
|
-
const pendingNotes = this.noteCache.getNotes(this.callContext.contractAddress, storageSlot);
|
|
230
|
+
const pendingNotes = this.noteCache.getNotes(this.callContext.contractAddress, owner, storageSlot);
|
|
170
231
|
const pendingNullifiers = this.noteCache.getNullifiers(this.callContext.contractAddress);
|
|
171
|
-
const
|
|
232
|
+
const noteService = new NoteService(this.noteStore, this.aztecNode, this.anchorBlockStore);
|
|
233
|
+
const dbNotes = await noteService.getNotes(this.callContext.contractAddress, owner, storageSlot, status, this.scopes);
|
|
172
234
|
const dbNotesFiltered = dbNotes.filter((n)=>!pendingNullifiers.has(n.siloedNullifier.value));
|
|
173
235
|
const notes = pickNotes([
|
|
174
236
|
...dbNotesFiltered,
|
|
@@ -213,29 +275,38 @@ import { UtilityExecutionOracle } from './utility_execution_oracle.js';
|
|
|
213
275
|
/**
|
|
214
276
|
* Keep track of the new note created during execution.
|
|
215
277
|
* It can be used in subsequent calls (or transactions when chaining txs is possible).
|
|
216
|
-
* @param
|
|
278
|
+
* @param owner - The owner of the note.
|
|
217
279
|
* @param storageSlot - The storage slot.
|
|
280
|
+
* @param randomness - The randomness injected into the note.
|
|
218
281
|
* @param noteTypeId - The type ID of the note.
|
|
219
282
|
* @param noteItems - The items to be included in a Note.
|
|
220
283
|
* @param noteHash - A hash of the new note.
|
|
221
284
|
* @returns
|
|
222
|
-
*/ privateNotifyCreatedNote(storageSlot, noteTypeId, noteItems, noteHash, counter) {
|
|
285
|
+
*/ privateNotifyCreatedNote(owner, storageSlot, randomness, noteTypeId, noteItems, noteHash, counter) {
|
|
223
286
|
this.log.debug(`Notified of new note with inner hash ${noteHash}`, {
|
|
224
287
|
contractAddress: this.callContext.contractAddress,
|
|
225
288
|
storageSlot,
|
|
289
|
+
randomness,
|
|
226
290
|
noteTypeId,
|
|
227
291
|
counter
|
|
228
292
|
});
|
|
229
293
|
const note = new Note(noteItems);
|
|
230
294
|
this.noteCache.addNewNote({
|
|
231
295
|
contractAddress: this.callContext.contractAddress,
|
|
296
|
+
owner,
|
|
232
297
|
storageSlot,
|
|
298
|
+
randomness,
|
|
233
299
|
noteNonce: Fr.ZERO,
|
|
234
300
|
note,
|
|
235
301
|
siloedNullifier: undefined,
|
|
236
302
|
noteHash
|
|
237
303
|
}, counter);
|
|
238
|
-
this.newNotes.push(
|
|
304
|
+
this.newNotes.push(NoteAndSlot.from({
|
|
305
|
+
note,
|
|
306
|
+
storageSlot,
|
|
307
|
+
randomness,
|
|
308
|
+
noteTypeId
|
|
309
|
+
}));
|
|
239
310
|
}
|
|
240
311
|
/**
|
|
241
312
|
* Adding a siloed nullifier into the current set of all pending nullifiers created
|
|
@@ -254,6 +325,9 @@ import { UtilityExecutionOracle } from './utility_execution_oracle.js';
|
|
|
254
325
|
* @param innerNullifier - The pending nullifier to add in the list (not yet siloed by contract address).
|
|
255
326
|
* @param noteHash - A hash of the new note.
|
|
256
327
|
*/ privateNotifyCreatedNullifier(innerNullifier) {
|
|
328
|
+
this.log.debug(`Notified of new inner nullifier ${innerNullifier}`, {
|
|
329
|
+
contractAddress: this.contractAddress
|
|
330
|
+
});
|
|
257
331
|
return this.noteCache.nullifierCreated(this.callContext.contractAddress, innerNullifier);
|
|
258
332
|
}
|
|
259
333
|
/**
|
|
@@ -281,14 +355,20 @@ import { UtilityExecutionOracle } from './utility_execution_oracle.js';
|
|
|
281
355
|
* @param isStaticCall - Whether the call is a static call.
|
|
282
356
|
* @returns The execution result.
|
|
283
357
|
*/ async privateCallPrivateFunction(targetContractAddress, functionSelector, argsHash, sideEffectCounter, isStaticCall) {
|
|
358
|
+
if (!this.simulator) {
|
|
359
|
+
// In practice it is only when creating inline private contexts in a Noir test using TXE that we create an
|
|
360
|
+
// instance of this class without a simulator.
|
|
361
|
+
throw new Error('No simulator provided, cannot perform a nested private call');
|
|
362
|
+
}
|
|
284
363
|
const simulatorSetupTimer = new Timer();
|
|
285
364
|
this.log.debug(`Calling private function ${targetContractAddress}:${functionSelector} from ${this.callContext.contractAddress}`);
|
|
286
365
|
isStaticCall = isStaticCall || this.callContext.isStaticCall;
|
|
287
|
-
await verifyCurrentClassId(targetContractAddress, this.
|
|
288
|
-
|
|
366
|
+
await verifyCurrentClassId(targetContractAddress, this.aztecNode, this.contractStore, this.anchorBlockHeader);
|
|
367
|
+
await this.contractStore.syncPrivateState(targetContractAddress, functionSelector, this.utilityExecutor);
|
|
368
|
+
const targetArtifact = await this.contractStore.getFunctionArtifactWithDebugMetadata(targetContractAddress, functionSelector);
|
|
289
369
|
const derivedTxContext = this.txContext.clone();
|
|
290
370
|
const derivedCallContext = await this.deriveCallContext(targetContractAddress, targetArtifact, isStaticCall);
|
|
291
|
-
const privateExecutionOracle = new PrivateExecutionOracle(argsHash, derivedTxContext, derivedCallContext, this.
|
|
371
|
+
const privateExecutionOracle = new PrivateExecutionOracle(argsHash, derivedTxContext, derivedCallContext, this.anchorBlockHeader, this.utilityExecutor, this.authWitnesses, this.capsules, this.executionCache, this.noteCache, this.taggingIndexCache, this.contractStore, this.noteStore, this.keyStore, this.addressStore, this.aztecNode, this.anchorBlockStore, this.senderTaggingStore, this.recipientTaggingStore, this.senderAddressBookStore, this.capsuleStore, this.privateEventStore, this.totalPublicCalldataCount, sideEffectCounter, this.log, this.scopes, this.senderForTags, this.simulator);
|
|
292
372
|
const setupTime = simulatorSetupTimer.ms();
|
|
293
373
|
const childExecutionResult = await executePrivateFunction(this.simulator, privateExecutionOracle, targetArtifact, targetContractAddress, functionSelector);
|
|
294
374
|
if (isStaticCall) {
|
|
@@ -338,6 +418,9 @@ import { UtilityExecutionOracle } from './utility_execution_oracle.js';
|
|
|
338
418
|
privateNotifySetMinRevertibleSideEffectCounter(minRevertibleSideEffectCounter) {
|
|
339
419
|
return this.noteCache.setMinRevertibleSideEffectCounter(minRevertibleSideEffectCounter);
|
|
340
420
|
}
|
|
421
|
+
privateIsSideEffectCounterRevertible(sideEffectCounter) {
|
|
422
|
+
return Promise.resolve(this.noteCache.isSideEffectCounterRevertible(sideEffectCounter));
|
|
423
|
+
}
|
|
341
424
|
/**
|
|
342
425
|
* Derives the call context for a nested execution.
|
|
343
426
|
* @param targetContractAddress - The address of the contract being called.
|
|
@@ -348,14 +431,7 @@ import { UtilityExecutionOracle } from './utility_execution_oracle.js';
|
|
|
348
431
|
return new CallContext(this.contractAddress, targetContractAddress, await FunctionSelector.fromNameAndParameters(targetArtifact.name, targetArtifact.parameters), isStaticCall);
|
|
349
432
|
}
|
|
350
433
|
getDebugFunctionName() {
|
|
351
|
-
return this.
|
|
352
|
-
}
|
|
353
|
-
async privateIncrementAppTaggingSecretIndexAsSender(sender, recipient) {
|
|
354
|
-
await this.executionDataProvider.incrementAppTaggingSecretIndexAsSender(this.contractAddress, sender, recipient);
|
|
355
|
-
}
|
|
356
|
-
async utilityFetchTaggedLogs(pendingTaggedLogArrayBaseSlot) {
|
|
357
|
-
await this.executionDataProvider.syncTaggedLogs(this.contractAddress, pendingTaggedLogArrayBaseSlot, this.scopes);
|
|
358
|
-
await this.executionDataProvider.removeNullifiedNotes(this.contractAddress);
|
|
434
|
+
return this.contractStore.getDebugFunctionName(this.contractAddress, this.callContext.functionSelector);
|
|
359
435
|
}
|
|
360
436
|
utilityEmitOffchainEffect(data) {
|
|
361
437
|
this.offchainEffects.push({
|