@aztec/pxe 4.0.0-nightly.20250907 → 4.0.0-nightly.20260108
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,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,
|
|
@@ -13,21 +15,54 @@ import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
|
13
15
|
import { ContractClassLog, ContractClassLogFields } from '@aztec/stdlib/logs';
|
|
14
16
|
import { MerkleTreeId } from '@aztec/stdlib/trees';
|
|
15
17
|
|
|
18
|
+
import type { IMiscOracle, IPrivateExecutionOracle, IUtilityExecutionOracle } from './interfaces.js';
|
|
16
19
|
import { packAsRetrievedNote } from './note_packing_utils.js';
|
|
17
|
-
|
|
20
|
+
|
|
21
|
+
export class UnavailableOracleError extends Error {
|
|
22
|
+
constructor(oracleName: string) {
|
|
23
|
+
super(`${oracleName} oracles not available with the current handler`);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
18
26
|
|
|
19
27
|
/**
|
|
20
28
|
* A data source that has all the apis required by Aztec.nr.
|
|
21
29
|
*/
|
|
22
30
|
export class Oracle {
|
|
23
|
-
private
|
|
31
|
+
constructor(private handler: IMiscOracle | IUtilityExecutionOracle | IPrivateExecutionOracle) {}
|
|
32
|
+
|
|
33
|
+
private handlerAsMisc(): IMiscOracle {
|
|
34
|
+
if (!('isMisc' in this.handler)) {
|
|
35
|
+
throw new UnavailableOracleError('Misc');
|
|
36
|
+
}
|
|
24
37
|
|
|
25
|
-
|
|
26
|
-
|
|
38
|
+
return this.handler;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
private handlerAsUtility(): IUtilityExecutionOracle {
|
|
42
|
+
if (!('isUtility' in this.handler)) {
|
|
43
|
+
throw new UnavailableOracleError('Utility');
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
return this.handler;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
private handlerAsPrivate(): IPrivateExecutionOracle {
|
|
50
|
+
if (!('isPrivate' in this.handler)) {
|
|
51
|
+
throw new UnavailableOracleError('Private');
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
return this.handler;
|
|
27
55
|
}
|
|
28
56
|
|
|
29
57
|
toACIRCallback(): ACIRCallback {
|
|
30
|
-
const excludedProps = [
|
|
58
|
+
const excludedProps = [
|
|
59
|
+
'handler',
|
|
60
|
+
'constructor',
|
|
61
|
+
'toACIRCallback',
|
|
62
|
+
'handlerAsMisc',
|
|
63
|
+
'handlerAsUtility',
|
|
64
|
+
'handlerAsPrivate',
|
|
65
|
+
] as const;
|
|
31
66
|
|
|
32
67
|
// Get all the oracle function names
|
|
33
68
|
const oracleNames = Object.getOwnPropertyNames(Oracle.prototype).filter(
|
|
@@ -58,54 +93,40 @@ export class Oracle {
|
|
|
58
93
|
}
|
|
59
94
|
|
|
60
95
|
utilityAssertCompatibleOracleVersion([version]: ACVMField[]) {
|
|
61
|
-
this.
|
|
96
|
+
this.handlerAsMisc().utilityAssertCompatibleOracleVersion(Fr.fromString(version).toNumber());
|
|
62
97
|
return Promise.resolve([]);
|
|
63
98
|
}
|
|
64
99
|
|
|
65
100
|
utilityGetRandomField(): Promise<ACVMField[]> {
|
|
66
|
-
const val = this.
|
|
101
|
+
const val = this.handlerAsMisc().utilityGetRandomField();
|
|
67
102
|
return Promise.resolve([toACVMField(val)]);
|
|
68
103
|
}
|
|
69
104
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
this.typedOracle.privateStoreInExecutionCache(values.map(Fr.fromString), Fr.fromString(hash));
|
|
105
|
+
privateStoreInExecutionCache(values: ACVMField[], [hash]: ACVMField[]): Promise<ACVMField[]> {
|
|
106
|
+
this.handlerAsPrivate().privateStoreInExecutionCache(values.map(Fr.fromString), Fr.fromString(hash));
|
|
73
107
|
return Promise.resolve([]);
|
|
74
108
|
}
|
|
75
109
|
|
|
76
110
|
async privateLoadFromExecutionCache([returnsHash]: ACVMField[]): Promise<ACVMField[][]> {
|
|
77
|
-
const values = await this.
|
|
111
|
+
const values = await this.handlerAsPrivate().privateLoadFromExecutionCache(Fr.fromString(returnsHash));
|
|
78
112
|
return [values.map(toACVMField)];
|
|
79
113
|
}
|
|
80
114
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
async utilityGetTimestamp(): Promise<ACVMField[]> {
|
|
86
|
-
return [toACVMField(await this.typedOracle.utilityGetTimestamp())];
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
async utilityGetContractAddress(): Promise<ACVMField[]> {
|
|
90
|
-
return [toACVMField(await this.typedOracle.utilityGetContractAddress())];
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
async utilityGetVersion(): Promise<ACVMField[]> {
|
|
94
|
-
return [toACVMField(await this.typedOracle.utilityGetVersion())];
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
async utilityGetChainId(): Promise<ACVMField[]> {
|
|
98
|
-
return [toACVMField(await this.typedOracle.utilityGetChainId())];
|
|
115
|
+
utilityGetUtilityContext(): Promise<(ACVMField | ACVMField[])[]> {
|
|
116
|
+
const context = this.handlerAsUtility().utilityGetUtilityContext();
|
|
117
|
+
return Promise.resolve(context.toNoirRepresentation());
|
|
99
118
|
}
|
|
100
119
|
|
|
101
120
|
async utilityGetKeyValidationRequest([pkMHash]: ACVMField[]): Promise<ACVMField[]> {
|
|
102
|
-
const keyValidationRequest = await this.
|
|
121
|
+
const keyValidationRequest = await this.handlerAsUtility().utilityGetKeyValidationRequest(Fr.fromString(pkMHash));
|
|
103
122
|
|
|
104
123
|
return keyValidationRequest.toFields().map(toACVMField);
|
|
105
124
|
}
|
|
106
125
|
|
|
107
126
|
async utilityGetContractInstance([address]: ACVMField[]): Promise<ACVMField[]> {
|
|
108
|
-
const instance = await this.
|
|
127
|
+
const instance = await this.handlerAsUtility().utilityGetContractInstance(
|
|
128
|
+
AztecAddress.fromField(Fr.fromString(address)),
|
|
129
|
+
);
|
|
109
130
|
|
|
110
131
|
return [
|
|
111
132
|
instance.salt,
|
|
@@ -125,8 +146,8 @@ export class Oracle {
|
|
|
125
146
|
const parsedTreeId = Fr.fromString(treeId).toNumber();
|
|
126
147
|
const parsedLeafValue = Fr.fromString(leafValue);
|
|
127
148
|
|
|
128
|
-
const witness = await this.
|
|
129
|
-
parsedBlockNumber,
|
|
149
|
+
const witness = await this.handlerAsUtility().utilityGetMembershipWitness(
|
|
150
|
+
BlockNumber(parsedBlockNumber),
|
|
130
151
|
parsedTreeId,
|
|
131
152
|
parsedLeafValue,
|
|
132
153
|
);
|
|
@@ -145,7 +166,10 @@ export class Oracle {
|
|
|
145
166
|
const parsedBlockNumber = Fr.fromString(blockNumber).toNumber();
|
|
146
167
|
const parsedNullifier = Fr.fromString(nullifier);
|
|
147
168
|
|
|
148
|
-
const witness = await this.
|
|
169
|
+
const witness = await this.handlerAsUtility().utilityGetNullifierMembershipWitness(
|
|
170
|
+
BlockNumber(parsedBlockNumber),
|
|
171
|
+
parsedNullifier,
|
|
172
|
+
);
|
|
149
173
|
if (!witness) {
|
|
150
174
|
throw new Error(`Nullifier witness not found for nullifier ${parsedNullifier} at block ${parsedBlockNumber}.`);
|
|
151
175
|
}
|
|
@@ -159,7 +183,10 @@ export class Oracle {
|
|
|
159
183
|
const parsedBlockNumber = Fr.fromString(blockNumber).toNumber();
|
|
160
184
|
const parsedNullifier = Fr.fromString(nullifier);
|
|
161
185
|
|
|
162
|
-
const witness = await this.
|
|
186
|
+
const witness = await this.handlerAsUtility().utilityGetLowNullifierMembershipWitness(
|
|
187
|
+
BlockNumber(parsedBlockNumber),
|
|
188
|
+
parsedNullifier,
|
|
189
|
+
);
|
|
163
190
|
if (!witness) {
|
|
164
191
|
throw new Error(
|
|
165
192
|
`Low nullifier witness not found for nullifier ${parsedNullifier} at block ${parsedBlockNumber}.`,
|
|
@@ -175,7 +202,10 @@ export class Oracle {
|
|
|
175
202
|
const parsedBlockNumber = Fr.fromString(blockNumber).toNumber();
|
|
176
203
|
const parsedLeafSlot = Fr.fromString(leafSlot);
|
|
177
204
|
|
|
178
|
-
const witness = await this.
|
|
205
|
+
const witness = await this.handlerAsUtility().utilityGetPublicDataWitness(
|
|
206
|
+
BlockNumber(parsedBlockNumber),
|
|
207
|
+
parsedLeafSlot,
|
|
208
|
+
);
|
|
179
209
|
if (!witness) {
|
|
180
210
|
throw new Error(`Public data witness not found for slot ${parsedLeafSlot} at block ${parsedBlockNumber}.`);
|
|
181
211
|
}
|
|
@@ -185,7 +215,7 @@ export class Oracle {
|
|
|
185
215
|
async utilityGetBlockHeader([blockNumber]: ACVMField[]): Promise<ACVMField[]> {
|
|
186
216
|
const parsedBlockNumber = Fr.fromString(blockNumber).toNumber();
|
|
187
217
|
|
|
188
|
-
const header = await this.
|
|
218
|
+
const header = await this.handlerAsUtility().utilityGetBlockHeader(BlockNumber(parsedBlockNumber));
|
|
189
219
|
if (!header) {
|
|
190
220
|
throw new Error(`Block header not found for block ${parsedBlockNumber}.`);
|
|
191
221
|
}
|
|
@@ -194,22 +224,24 @@ export class Oracle {
|
|
|
194
224
|
|
|
195
225
|
async utilityGetAuthWitness([messageHash]: ACVMField[]): Promise<ACVMField[][]> {
|
|
196
226
|
const messageHashField = Fr.fromString(messageHash);
|
|
197
|
-
const witness = await this.
|
|
227
|
+
const witness = await this.handlerAsUtility().utilityGetAuthWitness(messageHashField);
|
|
198
228
|
if (!witness) {
|
|
199
229
|
throw new Error(`Unknown auth witness for message hash ${messageHashField}`);
|
|
200
230
|
}
|
|
201
231
|
return [witness.map(toACVMField)];
|
|
202
232
|
}
|
|
203
233
|
|
|
204
|
-
// TODO(benesjan): This doesn't map to the underlying oracle name which is just ugly.
|
|
205
234
|
async utilityGetPublicKeysAndPartialAddress([address]: ACVMField[]): Promise<ACVMField[][]> {
|
|
206
235
|
const parsedAddress = AztecAddress.fromField(Fr.fromString(address));
|
|
207
|
-
const { publicKeys, partialAddress } =
|
|
236
|
+
const { publicKeys, partialAddress } =
|
|
237
|
+
await this.handlerAsUtility().utilityGetPublicKeysAndPartialAddress(parsedAddress);
|
|
208
238
|
|
|
209
239
|
return [[...publicKeys.toFields(), partialAddress].map(toACVMField)];
|
|
210
240
|
}
|
|
211
241
|
|
|
212
242
|
async utilityGetNotes(
|
|
243
|
+
[ownerSome]: ACVMField[],
|
|
244
|
+
[ownerValue]: ACVMField[],
|
|
213
245
|
[storageSlot]: ACVMField[],
|
|
214
246
|
[numSelects]: ACVMField[],
|
|
215
247
|
selectByIndexes: ACVMField[],
|
|
@@ -227,7 +259,10 @@ export class Oracle {
|
|
|
227
259
|
[maxNotes]: ACVMField[],
|
|
228
260
|
[packedRetrievedNoteLength]: ACVMField[],
|
|
229
261
|
): Promise<(ACVMField | ACVMField[])[]> {
|
|
230
|
-
|
|
262
|
+
// Parse Option<AztecAddress>: ownerSome is 0 for None, 1 for Some
|
|
263
|
+
const owner = Fr.fromString(ownerSome).toNumber() === 1 ? AztecAddress.fromString(ownerValue) : undefined;
|
|
264
|
+
const noteDatas = await this.handlerAsUtility().utilityGetNotes(
|
|
265
|
+
owner,
|
|
231
266
|
Fr.fromString(storageSlot),
|
|
232
267
|
+numSelects,
|
|
233
268
|
selectByIndexes.map(s => +s),
|
|
@@ -244,7 +279,17 @@ export class Oracle {
|
|
|
244
279
|
+status,
|
|
245
280
|
);
|
|
246
281
|
|
|
247
|
-
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
|
+
);
|
|
248
293
|
|
|
249
294
|
// Now we convert each sub-array to an array of ACVMField
|
|
250
295
|
const returnDataAsArrayOfACVMFieldArrays = returnDataAsArrayOfPackedRetrievedNotes.map(subArray =>
|
|
@@ -256,14 +301,18 @@ export class Oracle {
|
|
|
256
301
|
}
|
|
257
302
|
|
|
258
303
|
privateNotifyCreatedNote(
|
|
304
|
+
[owner]: ACVMField[],
|
|
259
305
|
[storageSlot]: ACVMField[],
|
|
306
|
+
[randomness]: ACVMField[],
|
|
260
307
|
[noteTypeId]: ACVMField[],
|
|
261
308
|
note: ACVMField[],
|
|
262
309
|
[noteHash]: ACVMField[],
|
|
263
310
|
[counter]: ACVMField[],
|
|
264
311
|
): Promise<ACVMField[]> {
|
|
265
|
-
this.
|
|
312
|
+
this.handlerAsPrivate().privateNotifyCreatedNote(
|
|
313
|
+
AztecAddress.fromString(owner),
|
|
266
314
|
Fr.fromString(storageSlot),
|
|
315
|
+
Fr.fromString(randomness),
|
|
267
316
|
NoteSelector.fromField(Fr.fromString(noteTypeId)),
|
|
268
317
|
note.map(Fr.fromString),
|
|
269
318
|
Fr.fromString(noteHash),
|
|
@@ -277,17 +326,21 @@ export class Oracle {
|
|
|
277
326
|
[noteHash]: ACVMField[],
|
|
278
327
|
[counter]: ACVMField[],
|
|
279
328
|
): Promise<ACVMField[]> {
|
|
280
|
-
await this.
|
|
329
|
+
await this.handlerAsPrivate().privateNotifyNullifiedNote(
|
|
330
|
+
Fr.fromString(innerNullifier),
|
|
331
|
+
Fr.fromString(noteHash),
|
|
332
|
+
+counter,
|
|
333
|
+
);
|
|
281
334
|
return [];
|
|
282
335
|
}
|
|
283
336
|
|
|
284
337
|
async privateNotifyCreatedNullifier([innerNullifier]: ACVMField[]): Promise<ACVMField[]> {
|
|
285
|
-
await this.
|
|
338
|
+
await this.handlerAsPrivate().privateNotifyCreatedNullifier(Fr.fromString(innerNullifier));
|
|
286
339
|
return [];
|
|
287
340
|
}
|
|
288
341
|
|
|
289
342
|
async utilityCheckNullifierExists([innerNullifier]: ACVMField[]): Promise<ACVMField[]> {
|
|
290
|
-
const exists = await this.
|
|
343
|
+
const exists = await this.handlerAsUtility().utilityCheckNullifierExists(Fr.fromString(innerNullifier));
|
|
291
344
|
return [toACVMField(exists)];
|
|
292
345
|
}
|
|
293
346
|
|
|
@@ -296,7 +349,7 @@ export class Oracle {
|
|
|
296
349
|
[messageHash]: ACVMField[],
|
|
297
350
|
[secret]: ACVMField[],
|
|
298
351
|
): Promise<(ACVMField | ACVMField[])[]> {
|
|
299
|
-
const message = await this.
|
|
352
|
+
const message = await this.handlerAsUtility().utilityGetL1ToL2MembershipWitness(
|
|
300
353
|
AztecAddress.fromString(contractAddress),
|
|
301
354
|
Fr.fromString(messageHash),
|
|
302
355
|
Fr.fromString(secret),
|
|
@@ -310,10 +363,10 @@ export class Oracle {
|
|
|
310
363
|
[blockNumber]: ACVMField[],
|
|
311
364
|
[numberOfElements]: ACVMField[],
|
|
312
365
|
): Promise<ACVMField[][]> {
|
|
313
|
-
const values = await this.
|
|
366
|
+
const values = await this.handlerAsUtility().utilityStorageRead(
|
|
314
367
|
new AztecAddress(Fr.fromString(contractAddress)),
|
|
315
368
|
Fr.fromString(startStorageSlot),
|
|
316
|
-
+blockNumber,
|
|
369
|
+
BlockNumber(+blockNumber),
|
|
317
370
|
+numberOfElements,
|
|
318
371
|
);
|
|
319
372
|
return [values.map(toACVMField)];
|
|
@@ -328,14 +381,20 @@ export class Oracle {
|
|
|
328
381
|
const logFields = new ContractClassLogFields(message.map(Fr.fromString));
|
|
329
382
|
const log = new ContractClassLog(new AztecAddress(Fr.fromString(contractAddress)), logFields, +length);
|
|
330
383
|
|
|
331
|
-
this.
|
|
384
|
+
this.handlerAsPrivate().privateNotifyCreatedContractClassLog(log, +counter);
|
|
332
385
|
return Promise.resolve([]);
|
|
333
386
|
}
|
|
334
387
|
|
|
335
|
-
utilityDebugLog(
|
|
388
|
+
utilityDebugLog(
|
|
389
|
+
level: ACVMField[],
|
|
390
|
+
message: ACVMField[],
|
|
391
|
+
_ignoredFieldsSize: ACVMField[],
|
|
392
|
+
fields: ACVMField[],
|
|
393
|
+
): Promise<ACVMField[]> {
|
|
394
|
+
const levelFr = Fr.fromString(level[0]);
|
|
336
395
|
const messageStr = message.map(acvmField => String.fromCharCode(Fr.fromString(acvmField).toNumber())).join('');
|
|
337
396
|
const fieldsFr = fields.map(Fr.fromString);
|
|
338
|
-
this.
|
|
397
|
+
this.handlerAsMisc().utilityDebugLog(levelFr.toNumber(), messageStr, fieldsFr);
|
|
339
398
|
return Promise.resolve([]);
|
|
340
399
|
}
|
|
341
400
|
|
|
@@ -348,7 +407,7 @@ export class Oracle {
|
|
|
348
407
|
[sideEffectCounter]: ACVMField[],
|
|
349
408
|
[isStaticCall]: ACVMField[],
|
|
350
409
|
): Promise<ACVMField[][]> {
|
|
351
|
-
const { endSideEffectCounter, returnsHash } = await this.
|
|
410
|
+
const { endSideEffectCounter, returnsHash } = await this.handlerAsPrivate().privateCallPrivateFunction(
|
|
352
411
|
AztecAddress.fromField(Fr.fromString(contractAddress)),
|
|
353
412
|
FunctionSelector.fromField(Fr.fromString(functionSelector)),
|
|
354
413
|
Fr.fromString(argsHash),
|
|
@@ -364,7 +423,7 @@ export class Oracle {
|
|
|
364
423
|
[sideEffectCounter]: ACVMField[],
|
|
365
424
|
[isStaticCall]: ACVMField[],
|
|
366
425
|
): Promise<ACVMField[]> {
|
|
367
|
-
await this.
|
|
426
|
+
await this.handlerAsPrivate().privateNotifyEnqueuedPublicFunctionCall(
|
|
368
427
|
AztecAddress.fromString(contractAddress),
|
|
369
428
|
Fr.fromString(calldataHash),
|
|
370
429
|
Fr.fromString(sideEffectCounter).toNumber(),
|
|
@@ -379,7 +438,7 @@ export class Oracle {
|
|
|
379
438
|
[sideEffectCounter]: ACVMField[],
|
|
380
439
|
[isStaticCall]: ACVMField[],
|
|
381
440
|
): Promise<ACVMField[]> {
|
|
382
|
-
await this.
|
|
441
|
+
await this.handlerAsPrivate().privateNotifySetPublicTeardownFunctionCall(
|
|
383
442
|
AztecAddress.fromString(contractAddress),
|
|
384
443
|
Fr.fromString(calldataHash),
|
|
385
444
|
Fr.fromString(sideEffectCounter).toNumber(),
|
|
@@ -391,33 +450,29 @@ export class Oracle {
|
|
|
391
450
|
async privateNotifySetMinRevertibleSideEffectCounter([minRevertibleSideEffectCounter]: ACVMField[]): Promise<
|
|
392
451
|
ACVMField[]
|
|
393
452
|
> {
|
|
394
|
-
await this.
|
|
453
|
+
await this.handlerAsPrivate().privateNotifySetMinRevertibleSideEffectCounter(
|
|
395
454
|
Fr.fromString(minRevertibleSideEffectCounter).toNumber(),
|
|
396
455
|
);
|
|
397
456
|
return Promise.resolve([]);
|
|
398
457
|
}
|
|
399
458
|
|
|
400
|
-
async
|
|
401
|
-
const
|
|
402
|
-
|
|
403
|
-
AztecAddress.fromString(recipient),
|
|
459
|
+
async privateIsSideEffectCounterRevertible([sideEffectCounter]: ACVMField[]): Promise<ACVMField[]> {
|
|
460
|
+
const isRevertible = await this.handlerAsPrivate().privateIsSideEffectCounterRevertible(
|
|
461
|
+
Fr.fromString(sideEffectCounter).toNumber(),
|
|
404
462
|
);
|
|
405
|
-
return
|
|
463
|
+
return Promise.resolve([toACVMField(isRevertible)]);
|
|
406
464
|
}
|
|
407
465
|
|
|
408
|
-
async
|
|
409
|
-
|
|
410
|
-
[recipient]: ACVMField[],
|
|
411
|
-
): Promise<ACVMField[]> {
|
|
412
|
-
await this.typedOracle.privateIncrementAppTaggingSecretIndexAsSender(
|
|
466
|
+
async privateGetNextAppTagAsSender([sender]: ACVMField[], [recipient]: ACVMField[]): Promise<ACVMField[]> {
|
|
467
|
+
const tag = await this.handlerAsPrivate().privateGetNextAppTagAsSender(
|
|
413
468
|
AztecAddress.fromString(sender),
|
|
414
469
|
AztecAddress.fromString(recipient),
|
|
415
470
|
);
|
|
416
|
-
return [];
|
|
471
|
+
return [toACVMField(tag.value)];
|
|
417
472
|
}
|
|
418
473
|
|
|
419
474
|
async utilityFetchTaggedLogs([pendingTaggedLogArrayBaseSlot]: ACVMField[]): Promise<ACVMField[]> {
|
|
420
|
-
await this.
|
|
475
|
+
await this.handlerAsUtility().utilityFetchTaggedLogs(Fr.fromString(pendingTaggedLogArrayBaseSlot));
|
|
421
476
|
return [];
|
|
422
477
|
}
|
|
423
478
|
|
|
@@ -426,7 +481,7 @@ export class Oracle {
|
|
|
426
481
|
[noteValidationRequestsArrayBaseSlot]: ACVMField[],
|
|
427
482
|
[eventValidationRequestsArrayBaseSlot]: ACVMField[],
|
|
428
483
|
): Promise<ACVMField[]> {
|
|
429
|
-
await this.
|
|
484
|
+
await this.handlerAsUtility().utilityValidateEnqueuedNotesAndEvents(
|
|
430
485
|
AztecAddress.fromString(contractAddress),
|
|
431
486
|
Fr.fromString(noteValidationRequestsArrayBaseSlot),
|
|
432
487
|
Fr.fromString(eventValidationRequestsArrayBaseSlot),
|
|
@@ -440,7 +495,7 @@ export class Oracle {
|
|
|
440
495
|
[logRetrievalRequestsArrayBaseSlot]: ACVMField[],
|
|
441
496
|
[logRetrievalResponsesArrayBaseSlot]: ACVMField[],
|
|
442
497
|
): Promise<ACVMField[]> {
|
|
443
|
-
await this.
|
|
498
|
+
await this.handlerAsUtility().utilityBulkRetrieveLogs(
|
|
444
499
|
AztecAddress.fromString(contractAddress),
|
|
445
500
|
Fr.fromString(logRetrievalRequestsArrayBaseSlot),
|
|
446
501
|
Fr.fromString(logRetrievalResponsesArrayBaseSlot),
|
|
@@ -453,7 +508,7 @@ export class Oracle {
|
|
|
453
508
|
[slot]: ACVMField[],
|
|
454
509
|
capsule: ACVMField[],
|
|
455
510
|
): Promise<ACVMField[]> {
|
|
456
|
-
await this.
|
|
511
|
+
await this.handlerAsUtility().utilityStoreCapsule(
|
|
457
512
|
AztecAddress.fromField(Fr.fromString(contractAddress)),
|
|
458
513
|
Fr.fromString(slot),
|
|
459
514
|
capsule.map(Fr.fromString),
|
|
@@ -466,7 +521,7 @@ export class Oracle {
|
|
|
466
521
|
[slot]: ACVMField[],
|
|
467
522
|
[tSize]: ACVMField[],
|
|
468
523
|
): Promise<(ACVMField | ACVMField[])[]> {
|
|
469
|
-
const values = await this.
|
|
524
|
+
const values = await this.handlerAsUtility().utilityLoadCapsule(
|
|
470
525
|
AztecAddress.fromField(Fr.fromString(contractAddress)),
|
|
471
526
|
Fr.fromString(slot),
|
|
472
527
|
);
|
|
@@ -483,7 +538,7 @@ export class Oracle {
|
|
|
483
538
|
}
|
|
484
539
|
|
|
485
540
|
async utilityDeleteCapsule([contractAddress]: ACVMField[], [slot]: ACVMField[]): Promise<ACVMField[]> {
|
|
486
|
-
await this.
|
|
541
|
+
await this.handlerAsUtility().utilityDeleteCapsule(
|
|
487
542
|
AztecAddress.fromField(Fr.fromString(contractAddress)),
|
|
488
543
|
Fr.fromString(slot),
|
|
489
544
|
);
|
|
@@ -496,7 +551,7 @@ export class Oracle {
|
|
|
496
551
|
[dstSlot]: ACVMField[],
|
|
497
552
|
[numEntries]: ACVMField[],
|
|
498
553
|
): Promise<ACVMField[]> {
|
|
499
|
-
await this.
|
|
554
|
+
await this.handlerAsUtility().utilityCopyCapsule(
|
|
500
555
|
AztecAddress.fromField(Fr.fromString(contractAddress)),
|
|
501
556
|
Fr.fromString(srcSlot),
|
|
502
557
|
Fr.fromString(dstSlot),
|
|
@@ -515,7 +570,7 @@ export class Oracle {
|
|
|
515
570
|
const ivBuffer = fromUintArray(iv, 8);
|
|
516
571
|
const symKeyBuffer = fromUintArray(symKey, 8);
|
|
517
572
|
|
|
518
|
-
const plaintext = await this.
|
|
573
|
+
const plaintext = await this.handlerAsUtility().utilityAes128Decrypt(ciphertext, ivBuffer, symKeyBuffer);
|
|
519
574
|
return bufferToBoundedVec(plaintext, ciphertextBVecStorage.length);
|
|
520
575
|
}
|
|
521
576
|
|
|
@@ -525,7 +580,7 @@ export class Oracle {
|
|
|
525
580
|
[ephPKField1]: ACVMField[],
|
|
526
581
|
[ephPKField2]: ACVMField[],
|
|
527
582
|
): Promise<ACVMField[]> {
|
|
528
|
-
const secret = await this.
|
|
583
|
+
const secret = await this.handlerAsUtility().utilityGetSharedSecret(
|
|
529
584
|
AztecAddress.fromField(Fr.fromString(address)),
|
|
530
585
|
Point.fromFields([ephPKField0, ephPKField1, ephPKField2].map(Fr.fromString)),
|
|
531
586
|
);
|
|
@@ -533,18 +588,18 @@ export class Oracle {
|
|
|
533
588
|
}
|
|
534
589
|
|
|
535
590
|
async utilityEmitOffchainEffect(data: ACVMField[]) {
|
|
536
|
-
await this.
|
|
591
|
+
await this.handlerAsPrivate().utilityEmitOffchainEffect(data.map(Fr.fromString));
|
|
537
592
|
return [];
|
|
538
593
|
}
|
|
539
594
|
|
|
540
595
|
async privateGetSenderForTags(): Promise<ACVMField[]> {
|
|
541
|
-
const sender = await this.
|
|
596
|
+
const sender = await this.handlerAsPrivate().privateGetSenderForTags();
|
|
542
597
|
// Return [1, address] for Some(address), [0, 0] for None
|
|
543
598
|
return sender ? [toACVMField(1n), toACVMField(sender)] : [toACVMField(0n), toACVMField(0n)];
|
|
544
599
|
}
|
|
545
600
|
|
|
546
601
|
async privateSetSenderForTags([senderForTags]: ACVMField[]): Promise<ACVMField[]> {
|
|
547
|
-
await this.
|
|
602
|
+
await this.handlerAsPrivate().privateSetSenderForTags(AztecAddress.fromField(Fr.fromString(senderForTags)));
|
|
548
603
|
return [];
|
|
549
604
|
}
|
|
550
605
|
}
|
|
@@ -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
|
|
|
@@ -88,6 +89,7 @@ export async function executePrivateFunction(
|
|
|
88
89
|
const newNotes = privateExecutionOracle.getNewNotes();
|
|
89
90
|
const noteHashNullifierCounterMap = privateExecutionOracle.getNoteHashNullifierCounterMap();
|
|
90
91
|
const offchainEffects = privateExecutionOracle.getOffchainEffects();
|
|
92
|
+
const preTags = privateExecutionOracle.getUsedPreTags();
|
|
91
93
|
const nestedExecutionResults = privateExecutionOracle.getNestedExecutionResults();
|
|
92
94
|
|
|
93
95
|
let timerSubtractionList = nestedExecutionResults;
|
|
@@ -111,6 +113,7 @@ export async function executePrivateFunction(
|
|
|
111
113
|
noteHashNullifierCounterMap,
|
|
112
114
|
rawReturnValues,
|
|
113
115
|
offchainEffects,
|
|
116
|
+
preTags,
|
|
114
117
|
nestedExecutionResults,
|
|
115
118
|
contractClassLogs,
|
|
116
119
|
{
|
|
@@ -151,7 +154,7 @@ export function extractPrivateCircuitPublicInputs(
|
|
|
151
154
|
* from the instance is used.
|
|
152
155
|
* @param contractAddress - The address of the contract to read the class id for.
|
|
153
156
|
* @param instance - The instance of the contract.
|
|
154
|
-
* @param
|
|
157
|
+
* @param executionStore - The execution data provider.
|
|
155
158
|
* @param blockNumber - The block number at which to load the DelayedPublicMutable storing the class id.
|
|
156
159
|
* @param timestamp - The timestamp at which to obtain the class id from the DelayedPublicMutable.
|
|
157
160
|
* @returns The current class id.
|
|
@@ -159,13 +162,13 @@ export function extractPrivateCircuitPublicInputs(
|
|
|
159
162
|
export async function readCurrentClassId(
|
|
160
163
|
contractAddress: AztecAddress,
|
|
161
164
|
instance: ContractInstance,
|
|
162
|
-
|
|
163
|
-
blockNumber:
|
|
165
|
+
aztecNode: AztecNode,
|
|
166
|
+
blockNumber: BlockNumber,
|
|
164
167
|
timestamp: UInt64,
|
|
165
168
|
) {
|
|
166
169
|
const { delayedPublicMutableSlot } = await DelayedPublicMutableValuesWithHash.getContractUpdateSlots(contractAddress);
|
|
167
170
|
const delayedPublicMutableValues = await DelayedPublicMutableValues.readFromTree(delayedPublicMutableSlot, slot =>
|
|
168
|
-
|
|
171
|
+
aztecNode.getPublicStorageAt(blockNumber, ProtocolContractAddress.ContractInstanceRegistry, slot),
|
|
169
172
|
);
|
|
170
173
|
let currentClassId = delayedPublicMutableValues.svc.getCurrentAt(timestamp)[0];
|
|
171
174
|
if (currentClassId.isZero()) {
|
|
@@ -175,37 +178,28 @@ export async function readCurrentClassId(
|
|
|
175
178
|
}
|
|
176
179
|
|
|
177
180
|
/**
|
|
178
|
-
* Verify that the current class id of a contract obtained from AztecNode is the same as the one in
|
|
179
|
-
* provider (i.e. PXE).
|
|
180
|
-
* @param
|
|
181
|
-
*
|
|
182
|
-
* @param header - The header of the block at which to verify the current class id. If not provided, the current block
|
|
183
|
-
* number and timestamp from the execution data provider will be used.
|
|
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).
|
|
183
|
+
* @param header - The header of the block at which to verify the current class id. If not provided, the anchor block
|
|
184
|
+
* header of the execution data provider is used.
|
|
184
185
|
*/
|
|
185
186
|
export async function verifyCurrentClassId(
|
|
186
187
|
contractAddress: AztecAddress,
|
|
187
|
-
|
|
188
|
-
|
|
188
|
+
aztecNode: AztecNode,
|
|
189
|
+
contractStore: ContractStore,
|
|
190
|
+
header: BlockHeader,
|
|
189
191
|
) {
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
blockNumber = header.globalVariables.blockNumber;
|
|
194
|
-
timestamp = header.globalVariables.timestamp;
|
|
195
|
-
} else {
|
|
196
|
-
[blockNumber, timestamp] = await Promise.all([
|
|
197
|
-
executionDataProvider.getBlockNumber(),
|
|
198
|
-
executionDataProvider.getTimestamp(),
|
|
199
|
-
]);
|
|
192
|
+
const instance = await contractStore.getContractInstance(contractAddress);
|
|
193
|
+
if (!instance) {
|
|
194
|
+
throw new Error(`No contract instance found for address ${contractAddress.toString()}`);
|
|
200
195
|
}
|
|
201
196
|
|
|
202
|
-
const instance = await executionDataProvider.getContractInstance(contractAddress);
|
|
203
197
|
const currentClassId = await readCurrentClassId(
|
|
204
198
|
contractAddress,
|
|
205
199
|
instance,
|
|
206
|
-
|
|
207
|
-
blockNumber,
|
|
208
|
-
timestamp,
|
|
200
|
+
aztecNode,
|
|
201
|
+
header.globalVariables.blockNumber,
|
|
202
|
+
header.globalVariables.timestamp,
|
|
209
203
|
);
|
|
210
204
|
if (!instance.currentContractClassId.equals(currentClassId)) {
|
|
211
205
|
throw new Error(
|