@aztec/pxe 0.0.1-commit.d3ec352c → 0.0.1-commit.d431d1c
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dest/bin/check_oracle_version.js +105 -15
- package/dest/block_synchronizer/block_synchronizer.d.ts +41 -0
- package/dest/block_synchronizer/block_synchronizer.d.ts.map +1 -0
- package/dest/{synchronizer/synchronizer.js → block_synchronizer/block_synchronizer.js} +35 -30
- package/dest/block_synchronizer/index.d.ts +2 -0
- package/dest/block_synchronizer/index.d.ts.map +1 -0
- package/dest/block_synchronizer/index.js +1 -0
- package/dest/config/index.d.ts +4 -4
- package/dest/config/index.d.ts.map +1 -1
- package/dest/config/package_info.js +1 -1
- package/dest/contract_function_simulator/benchmarked_node.d.ts +9 -0
- package/dest/contract_function_simulator/benchmarked_node.d.ts.map +1 -0
- package/dest/contract_function_simulator/benchmarked_node.js +77 -0
- package/dest/contract_function_simulator/contract_function_simulator.d.ts +42 -14
- package/dest/contract_function_simulator/contract_function_simulator.d.ts.map +1 -1
- package/dest/contract_function_simulator/contract_function_simulator.js +73 -29
- package/dest/contract_function_simulator/execution_note_cache.d.ts +21 -12
- package/dest/contract_function_simulator/execution_note_cache.d.ts.map +1 -1
- package/dest/contract_function_simulator/execution_note_cache.js +48 -31
- package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts +1 -1
- package/dest/contract_function_simulator/execution_tagging_index_cache.js +1 -1
- package/dest/contract_function_simulator/hashed_values_cache.d.ts +2 -2
- package/dest/contract_function_simulator/hashed_values_cache.d.ts.map +1 -1
- package/dest/contract_function_simulator/index.d.ts +2 -2
- package/dest/contract_function_simulator/index.d.ts.map +1 -1
- package/dest/contract_function_simulator/index.js +1 -1
- package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts +4 -3
- package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts.map +1 -1
- package/dest/contract_function_simulator/noir-structs/event_validation_request.js +5 -2
- package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts +5 -4
- package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts.map +1 -1
- package/dest/contract_function_simulator/noir-structs/log_retrieval_request.js +7 -6
- package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts +2 -2
- package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts.map +1 -1
- package/dest/contract_function_simulator/noir-structs/log_retrieval_response.js +1 -1
- package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts +2 -2
- package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts.map +1 -1
- package/dest/contract_function_simulator/noir-structs/utility_context.d.ts +4 -10
- package/dest/contract_function_simulator/noir-structs/utility_context.d.ts.map +1 -1
- package/dest/contract_function_simulator/noir-structs/utility_context.js +7 -18
- package/dest/contract_function_simulator/oracle/interfaces.d.ts +14 -13
- package/dest/contract_function_simulator/oracle/interfaces.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts +4 -2
- package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.js +1 -1
- package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts +11 -7
- package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/note_packing_utils.js +14 -10
- package/dest/contract_function_simulator/oracle/oracle.d.ts +7 -7
- package/dest/contract_function_simulator/oracle/oracle.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/oracle.js +40 -28
- package/dest/contract_function_simulator/oracle/private_execution.d.ts +10 -16
- package/dest/contract_function_simulator/oracle/private_execution.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/private_execution.js +19 -18
- package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts +25 -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 +29 -44
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts +63 -21
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.js +162 -54
- package/dest/contract_function_simulator/pick_notes.d.ts +2 -2
- package/dest/contract_function_simulator/pick_notes.d.ts.map +1 -1
- package/dest/contract_function_simulator/pick_notes.js +1 -1
- package/dest/contract_function_simulator/proxied_contract_data_source.d.ts +4 -4
- package/dest/contract_function_simulator/proxied_contract_data_source.d.ts.map +1 -1
- package/dest/contract_function_simulator/proxied_contract_data_source.js +23 -5
- package/dest/debug/pxe_debug_utils.d.ts +31 -0
- package/dest/debug/pxe_debug_utils.d.ts.map +1 -0
- package/dest/debug/pxe_debug_utils.js +37 -0
- package/dest/entrypoints/client/bundle/index.d.ts +1 -2
- package/dest/entrypoints/client/bundle/index.d.ts.map +1 -1
- package/dest/entrypoints/client/bundle/index.js +0 -1
- package/dest/entrypoints/client/bundle/utils.d.ts +1 -1
- package/dest/entrypoints/client/bundle/utils.d.ts.map +1 -1
- package/dest/entrypoints/client/bundle/utils.js +12 -3
- package/dest/entrypoints/client/lazy/index.d.ts +1 -2
- package/dest/entrypoints/client/lazy/index.d.ts.map +1 -1
- package/dest/entrypoints/client/lazy/index.js +0 -1
- package/dest/entrypoints/client/lazy/utils.d.ts +1 -1
- package/dest/entrypoints/client/lazy/utils.d.ts.map +1 -1
- package/dest/entrypoints/client/lazy/utils.js +12 -3
- package/dest/entrypoints/pxe_creation_options.d.ts +5 -2
- package/dest/entrypoints/pxe_creation_options.d.ts.map +1 -1
- package/dest/entrypoints/server/index.d.ts +3 -2
- package/dest/entrypoints/server/index.d.ts.map +1 -1
- package/dest/entrypoints/server/index.js +2 -1
- package/dest/entrypoints/server/utils.d.ts +1 -1
- package/dest/entrypoints/server/utils.d.ts.map +1 -1
- package/dest/entrypoints/server/utils.js +12 -8
- package/dest/error_enriching.d.ts +4 -4
- package/dest/error_enriching.d.ts.map +1 -1
- package/dest/error_enriching.js +6 -6
- package/dest/events/event_service.d.ts +16 -0
- package/dest/events/event_service.d.ts.map +1 -0
- package/dest/events/event_service.js +45 -0
- package/dest/events/index.d.ts +2 -0
- package/dest/events/index.d.ts.map +1 -0
- package/dest/events/index.js +1 -0
- package/dest/events/private_event_filter_validator.d.ts +9 -0
- package/dest/events/private_event_filter_validator.d.ts.map +1 -0
- package/dest/events/private_event_filter_validator.js +38 -0
- package/dest/job_coordinator/job_coordinator.d.ts +74 -0
- package/dest/job_coordinator/job_coordinator.d.ts.map +1 -0
- package/dest/job_coordinator/job_coordinator.js +93 -0
- package/dest/logs/log_service.d.ts +27 -0
- package/dest/logs/log_service.d.ts.map +1 -0
- package/dest/logs/log_service.js +122 -0
- package/dest/notes/index.d.ts +2 -0
- package/dest/notes/index.d.ts.map +1 -0
- package/dest/notes/index.js +1 -0
- package/dest/notes/note_service.d.ts +48 -0
- package/dest/notes/note_service.d.ts.map +1 -0
- package/dest/notes/note_service.js +147 -0
- package/dest/oracle_version.d.ts +2 -2
- package/dest/oracle_version.js +2 -2
- package/dest/private_kernel/hints/index.d.ts +2 -2
- package/dest/private_kernel/hints/index.d.ts.map +1 -1
- package/dest/private_kernel/hints/index.js +1 -1
- package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.d.ts +28 -0
- package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.d.ts.map +1 -0
- package/dest/private_kernel/hints/{build_private_kernel_reset_private_inputs.js → private_kernel_reset_private_inputs_builder.js} +13 -7
- package/dest/private_kernel/private_kernel_execution_prover.d.ts +1 -1
- package/dest/private_kernel/private_kernel_execution_prover.d.ts.map +1 -1
- package/dest/private_kernel/private_kernel_execution_prover.js +8 -9
- package/dest/private_kernel/private_kernel_oracle.d.ts +26 -29
- package/dest/private_kernel/private_kernel_oracle.d.ts.map +1 -1
- package/dest/private_kernel/private_kernel_oracle.js +90 -2
- package/dest/pxe.d.ts +45 -81
- package/dest/pxe.d.ts.map +1 -1
- package/dest/pxe.js +182 -215
- package/dest/storage/address_store/address_store.d.ts +11 -0
- package/dest/storage/address_store/address_store.d.ts.map +1 -0
- package/dest/storage/{address_data_provider/address_data_provider.js → address_store/address_store.js} +1 -1
- package/dest/storage/address_store/index.d.ts +2 -0
- package/dest/storage/address_store/index.d.ts.map +1 -0
- package/dest/storage/address_store/index.js +1 -0
- package/dest/storage/{sync_data_provider/sync_data_provider.d.ts → anchor_block_store/anchor_block_store.d.ts} +2 -4
- package/dest/storage/anchor_block_store/anchor_block_store.d.ts.map +1 -0
- package/dest/storage/{sync_data_provider/sync_data_provider.js → anchor_block_store/anchor_block_store.js} +2 -9
- package/dest/storage/{sync_data_provider → anchor_block_store}/index.d.ts +2 -2
- package/dest/storage/anchor_block_store/index.d.ts.map +1 -0
- package/dest/storage/anchor_block_store/index.js +1 -0
- package/dest/storage/capsule_store/capsule_store.d.ts +72 -0
- package/dest/storage/capsule_store/capsule_store.d.ts.map +1 -0
- package/dest/storage/capsule_store/capsule_store.js +255 -0
- package/dest/storage/capsule_store/index.d.ts +2 -0
- package/dest/storage/capsule_store/index.d.ts.map +1 -0
- package/dest/storage/capsule_store/index.js +1 -0
- package/dest/storage/{contract_data_provider/contract_data_provider.d.ts → contract_store/contract_store.d.ts} +8 -5
- 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 -3
- package/dest/storage/contract_store/index.d.ts +2 -0
- package/dest/storage/contract_store/index.d.ts.map +1 -0
- package/dest/storage/contract_store/index.js +1 -0
- package/dest/storage/{contract_data_provider → contract_store}/private_functions_tree.d.ts +1 -1
- package/dest/storage/contract_store/private_functions_tree.d.ts.map +1 -0
- package/dest/storage/{contract_data_provider → contract_store}/private_functions_tree.js +1 -1
- package/dest/storage/index.d.ts +8 -8
- package/dest/storage/index.d.ts.map +1 -1
- package/dest/storage/index.js +7 -7
- package/dest/storage/note_store/index.d.ts +3 -0
- package/dest/storage/note_store/index.d.ts.map +1 -0
- package/dest/storage/note_store/index.js +2 -0
- package/dest/storage/{note_data_provider/note_data_provider.d.ts → note_store/note_store.d.ts} +15 -13
- package/dest/storage/note_store/note_store.d.ts.map +1 -0
- package/dest/storage/{note_data_provider/note_data_provider.js → note_store/note_store.js} +105 -102
- package/dest/storage/private_event_store/private_event_store.d.ts +78 -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 +222 -0
- package/dest/storage/tagging_store/index.d.ts +4 -0
- package/dest/storage/tagging_store/index.d.ts.map +1 -0
- package/dest/storage/tagging_store/index.js +3 -0
- package/dest/storage/tagging_store/recipient_tagging_store.d.ts +28 -0
- package/dest/storage/tagging_store/recipient_tagging_store.d.ts.map +1 -0
- package/dest/storage/tagging_store/recipient_tagging_store.js +99 -0
- package/dest/storage/tagging_store/sender_address_book_store.d.ts +14 -0
- package/dest/storage/tagging_store/sender_address_book_store.d.ts.map +1 -0
- package/dest/storage/tagging_store/sender_address_book_store.js +30 -0
- package/dest/storage/tagging_store/sender_tagging_store.d.ts +77 -0
- package/dest/storage/tagging_store/sender_tagging_store.d.ts.map +1 -0
- package/dest/storage/tagging_store/sender_tagging_store.js +278 -0
- package/dest/tagging/constants.d.ts +2 -2
- package/dest/tagging/constants.d.ts.map +1 -1
- package/dest/tagging/constants.js +10 -2
- package/dest/tagging/index.d.ts +15 -6
- package/dest/tagging/index.d.ts.map +1 -1
- package/dest/tagging/index.js +14 -5
- package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts +14 -0
- package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts.map +1 -0
- package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.js +99 -0
- package/dest/tagging/recipient_sync/utils/find_highest_indexes.d.ts +12 -0
- package/dest/tagging/recipient_sync/utils/find_highest_indexes.d.ts.map +1 -0
- package/dest/tagging/recipient_sync/utils/find_highest_indexes.js +20 -0
- package/dest/tagging/recipient_sync/utils/load_logs_for_range.d.ts +14 -0
- package/dest/tagging/recipient_sync/utils/load_logs_for_range.d.ts.map +1 -0
- package/dest/tagging/recipient_sync/utils/load_logs_for_range.js +29 -0
- package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts +20 -0
- package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts.map +1 -0
- package/dest/tagging/sender_sync/sync_sender_tagging_indexes.js +74 -0
- package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts +11 -0
- package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts.map +1 -0
- package/dest/tagging/sender_sync/utils/get_status_change_of_pending.js +32 -0
- package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts +20 -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 +57 -0
- package/dest/tree_membership/tree_membership_service.d.ts +50 -0
- package/dest/tree_membership/tree_membership_service.d.ts.map +1 -0
- package/dest/tree_membership/tree_membership_service.js +75 -0
- package/package.json +18 -18
- package/src/bin/check_oracle_version.ts +130 -20
- package/src/{synchronizer/synchronizer.ts → block_synchronizer/block_synchronizer.ts} +44 -30
- package/src/block_synchronizer/index.ts +1 -0
- package/src/config/index.ts +3 -3
- package/src/config/package_info.ts +1 -1
- package/src/contract_function_simulator/benchmarked_node.ts +103 -0
- package/src/contract_function_simulator/contract_function_simulator.ts +118 -30
- package/src/contract_function_simulator/execution_note_cache.ts +51 -29
- package/src/contract_function_simulator/execution_tagging_index_cache.ts +1 -1
- package/src/contract_function_simulator/hashed_values_cache.ts +1 -1
- package/src/contract_function_simulator/index.ts +1 -1
- package/src/contract_function_simulator/noir-structs/event_validation_request.ts +5 -1
- package/src/contract_function_simulator/noir-structs/log_retrieval_request.ts +6 -5
- package/src/contract_function_simulator/noir-structs/log_retrieval_response.ts +1 -1
- package/src/contract_function_simulator/noir-structs/note_validation_request.ts +1 -1
- package/src/contract_function_simulator/noir-structs/utility_context.ts +6 -25
- package/src/contract_function_simulator/oracle/interfaces.ts +13 -12
- package/src/contract_function_simulator/oracle/message_load_oracle_inputs.ts +1 -1
- package/src/contract_function_simulator/oracle/note_packing_utils.ts +27 -13
- package/src/contract_function_simulator/oracle/oracle.ts +48 -32
- package/src/contract_function_simulator/oracle/private_execution.ts +22 -30
- package/src/contract_function_simulator/oracle/private_execution_oracle.ts +97 -58
- package/src/contract_function_simulator/oracle/utility_execution_oracle.ts +233 -63
- package/src/contract_function_simulator/pick_notes.ts +1 -1
- package/src/contract_function_simulator/proxied_contract_data_source.ts +24 -7
- package/src/debug/pxe_debug_utils.ts +48 -0
- package/src/entrypoints/client/bundle/index.ts +0 -1
- package/src/entrypoints/client/bundle/utils.ts +9 -3
- package/src/entrypoints/client/lazy/index.ts +0 -1
- package/src/entrypoints/client/lazy/utils.ts +9 -4
- package/src/entrypoints/pxe_creation_options.ts +4 -1
- package/src/entrypoints/server/index.ts +2 -1
- package/src/entrypoints/server/utils.ts +12 -16
- package/src/error_enriching.ts +7 -15
- package/src/events/event_service.ts +73 -0
- package/src/events/index.ts +1 -0
- package/src/events/private_event_filter_validator.ts +46 -0
- package/src/job_coordinator/job_coordinator.ts +149 -0
- package/src/logs/log_service.ts +204 -0
- package/src/notes/index.ts +1 -0
- package/src/notes/note_service.ts +194 -0
- package/src/oracle_version.ts +2 -2
- package/src/private_kernel/hints/index.ts +1 -1
- package/src/private_kernel/hints/{build_private_kernel_reset_private_inputs.ts → private_kernel_reset_private_inputs_builder.ts} +34 -23
- package/src/private_kernel/private_kernel_execution_prover.ts +7 -9
- package/src/private_kernel/private_kernel_oracle.ts +118 -37
- package/src/pxe.ts +233 -279
- package/src/storage/{address_data_provider/address_data_provider.ts → address_store/address_store.ts} +1 -1
- package/src/storage/address_store/index.ts +1 -0
- package/src/storage/{sync_data_provider/sync_data_provider.ts → anchor_block_store/anchor_block_store.ts} +2 -12
- package/src/storage/anchor_block_store/index.ts +1 -0
- package/src/storage/capsule_store/capsule_store.ts +315 -0
- package/src/storage/capsule_store/index.ts +1 -0
- package/src/storage/{contract_data_provider/contract_data_provider.ts → contract_store/contract_store.ts} +65 -3
- package/src/storage/contract_store/index.ts +1 -0
- package/src/storage/{contract_data_provider → contract_store}/private_functions_tree.ts +1 -1
- package/src/storage/index.ts +7 -7
- package/src/storage/note_store/index.ts +2 -0
- package/src/storage/{note_data_provider/note_data_provider.ts → note_store/note_store.ts} +117 -105
- package/src/storage/private_event_store/private_event_store.ts +324 -0
- package/src/storage/tagging_store/index.ts +3 -0
- package/src/storage/tagging_store/recipient_tagging_store.ts +129 -0
- package/src/storage/tagging_store/sender_address_book_store.ts +42 -0
- package/src/storage/tagging_store/sender_tagging_store.ts +345 -0
- package/src/tagging/constants.ts +10 -2
- package/src/tagging/index.ts +17 -5
- package/src/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.ts +133 -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 +97 -0
- package/src/tagging/sender_sync/utils/get_status_change_of_pending.ts +48 -0
- package/src/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.ts +75 -0
- package/src/tree_membership/tree_membership_service.ts +97 -0
- package/dest/contract_function_simulator/execution_data_provider.d.ts +0 -267
- package/dest/contract_function_simulator/execution_data_provider.d.ts.map +0 -1
- package/dest/contract_function_simulator/execution_data_provider.js +0 -14
- package/dest/contract_function_simulator/proxied_node.d.ts +0 -9
- package/dest/contract_function_simulator/proxied_node.d.ts.map +0 -1
- package/dest/contract_function_simulator/proxied_node.js +0 -27
- package/dest/contract_function_simulator/pxe_oracle_interface.d.ts +0 -123
- package/dest/contract_function_simulator/pxe_oracle_interface.d.ts.map +0 -1
- package/dest/contract_function_simulator/pxe_oracle_interface.js +0 -696
- package/dest/private_kernel/hints/build_private_kernel_reset_private_inputs.d.ts +0 -28
- package/dest/private_kernel/hints/build_private_kernel_reset_private_inputs.d.ts.map +0 -1
- package/dest/private_kernel/private_kernel_oracle_impl.d.ts +0 -45
- package/dest/private_kernel/private_kernel_oracle_impl.d.ts.map +0 -1
- package/dest/private_kernel/private_kernel_oracle_impl.js +0 -86
- package/dest/storage/address_data_provider/address_data_provider.d.ts +0 -11
- package/dest/storage/address_data_provider/address_data_provider.d.ts.map +0 -1
- package/dest/storage/address_data_provider/index.d.ts +0 -2
- package/dest/storage/address_data_provider/index.d.ts.map +0 -1
- package/dest/storage/address_data_provider/index.js +0 -1
- package/dest/storage/capsule_data_provider/capsule_data_provider.d.ts +0 -25
- package/dest/storage/capsule_data_provider/capsule_data_provider.d.ts.map +0 -1
- package/dest/storage/capsule_data_provider/capsule_data_provider.js +0 -118
- package/dest/storage/capsule_data_provider/index.d.ts +0 -2
- package/dest/storage/capsule_data_provider/index.d.ts.map +0 -1
- package/dest/storage/capsule_data_provider/index.js +0 -1
- package/dest/storage/contract_data_provider/contract_data_provider.d.ts.map +0 -1
- package/dest/storage/contract_data_provider/index.d.ts +0 -2
- package/dest/storage/contract_data_provider/index.d.ts.map +0 -1
- package/dest/storage/contract_data_provider/index.js +0 -1
- package/dest/storage/contract_data_provider/private_functions_tree.d.ts.map +0 -1
- package/dest/storage/note_data_provider/index.d.ts +0 -3
- package/dest/storage/note_data_provider/index.d.ts.map +0 -1
- package/dest/storage/note_data_provider/index.js +0 -2
- package/dest/storage/note_data_provider/note_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 -105
- 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.map +0 -1
- package/dest/storage/tagging_data_provider/index.d.ts +0 -2
- package/dest/storage/tagging_data_provider/index.d.ts.map +0 -1
- package/dest/storage/tagging_data_provider/index.js +0 -1
- package/dest/storage/tagging_data_provider/tagging_data_provider.d.ts +0 -40
- package/dest/storage/tagging_data_provider/tagging_data_provider.d.ts.map +0 -1
- package/dest/storage/tagging_data_provider/tagging_data_provider.js +0 -89
- package/dest/synchronizer/index.d.ts +0 -2
- package/dest/synchronizer/index.d.ts.map +0 -1
- package/dest/synchronizer/index.js +0 -1
- package/dest/synchronizer/synchronizer.d.ts +0 -36
- package/dest/synchronizer/synchronizer.d.ts.map +0 -1
- package/dest/tagging/siloed_tag.d.ts +0 -14
- package/dest/tagging/siloed_tag.d.ts.map +0 -1
- package/dest/tagging/siloed_tag.js +0 -20
- package/dest/tagging/tag.d.ts +0 -12
- package/dest/tagging/tag.d.ts.map +0 -1
- package/dest/tagging/tag.js +0 -17
- package/dest/tagging/utils.d.ts +0 -18
- package/dest/tagging/utils.d.ts.map +0 -1
- package/dest/tagging/utils.js +0 -24
- package/src/contract_function_simulator/execution_data_provider.ts +0 -342
- package/src/contract_function_simulator/proxied_node.ts +0 -33
- package/src/contract_function_simulator/pxe_oracle_interface.ts +0 -1023
- package/src/private_kernel/private_kernel_oracle_impl.ts +0 -132
- package/src/storage/address_data_provider/index.ts +0 -1
- package/src/storage/capsule_data_provider/capsule_data_provider.ts +0 -147
- package/src/storage/capsule_data_provider/index.ts +0 -1
- package/src/storage/contract_data_provider/index.ts +0 -1
- package/src/storage/note_data_provider/index.ts +0 -2
- package/src/storage/private_event_data_provider/private_event_data_provider.ts +0 -143
- package/src/storage/sync_data_provider/index.ts +0 -1
- package/src/storage/tagging_data_provider/index.ts +0 -1
- package/src/storage/tagging_data_provider/tagging_data_provider.ts +0 -120
- package/src/synchronizer/index.ts +0 -1
- package/src/tagging/siloed_tag.ts +0 -22
- package/src/tagging/tag.ts +0 -16
- package/src/tagging/utils.ts +0 -31
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { BlockNumber } from '@aztec/foundation/branded-types';
|
|
2
|
-
import { Fr
|
|
2
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
|
+
import { Point } from '@aztec/foundation/curves/grumpkin';
|
|
3
4
|
import {
|
|
4
5
|
type ACIRCallback,
|
|
5
6
|
type ACVMField,
|
|
@@ -11,11 +12,12 @@ import {
|
|
|
11
12
|
} from '@aztec/simulator/client';
|
|
12
13
|
import { FunctionSelector, NoteSelector } from '@aztec/stdlib/abi';
|
|
13
14
|
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
15
|
+
import { L2BlockHash } from '@aztec/stdlib/block';
|
|
14
16
|
import { ContractClassLog, ContractClassLogFields } from '@aztec/stdlib/logs';
|
|
15
17
|
import { MerkleTreeId } from '@aztec/stdlib/trees';
|
|
16
18
|
|
|
17
19
|
import type { IMiscOracle, IPrivateExecutionOracle, IUtilityExecutionOracle } from './interfaces.js';
|
|
18
|
-
import {
|
|
20
|
+
import { packAsHintedNote } from './note_packing_utils.js';
|
|
19
21
|
|
|
20
22
|
export class UnavailableOracleError extends Error {
|
|
21
23
|
constructor(oracleName: string) {
|
|
@@ -111,9 +113,9 @@ export class Oracle {
|
|
|
111
113
|
return [values.map(toACVMField)];
|
|
112
114
|
}
|
|
113
115
|
|
|
114
|
-
|
|
115
|
-
const context =
|
|
116
|
-
return context.toNoirRepresentation();
|
|
116
|
+
utilityGetUtilityContext(): Promise<(ACVMField | ACVMField[])[]> {
|
|
117
|
+
const context = this.handlerAsUtility().utilityGetUtilityContext();
|
|
118
|
+
return Promise.resolve(context.toNoirRepresentation());
|
|
117
119
|
}
|
|
118
120
|
|
|
119
121
|
async utilityGetKeyValidationRequest([pkMHash]: ACVMField[]): Promise<ACVMField[]> {
|
|
@@ -137,76 +139,77 @@ export class Oracle {
|
|
|
137
139
|
}
|
|
138
140
|
|
|
139
141
|
async utilityGetMembershipWitness(
|
|
140
|
-
[
|
|
142
|
+
[blockHash]: ACVMField[],
|
|
141
143
|
[treeId]: ACVMField[],
|
|
142
144
|
[leafValue]: ACVMField[],
|
|
143
145
|
): Promise<(ACVMField | ACVMField[])[]> {
|
|
144
|
-
const
|
|
146
|
+
const parsedBlockHash = L2BlockHash.fromString(blockHash);
|
|
145
147
|
const parsedTreeId = Fr.fromString(treeId).toNumber();
|
|
146
148
|
const parsedLeafValue = Fr.fromString(leafValue);
|
|
147
149
|
|
|
148
150
|
const witness = await this.handlerAsUtility().utilityGetMembershipWitness(
|
|
149
|
-
|
|
151
|
+
parsedBlockHash,
|
|
150
152
|
parsedTreeId,
|
|
151
153
|
parsedLeafValue,
|
|
152
154
|
);
|
|
153
155
|
if (!witness) {
|
|
154
156
|
throw new Error(
|
|
155
|
-
`Leaf ${leafValue} not found in the tree ${MerkleTreeId[parsedTreeId]} at block ${
|
|
157
|
+
`Leaf ${leafValue} not found in the tree ${MerkleTreeId[parsedTreeId]} at block hash ${parsedBlockHash.toString()}.`,
|
|
156
158
|
);
|
|
157
159
|
}
|
|
158
160
|
return [toACVMField(witness[0]), witness.slice(1).map(toACVMField)];
|
|
159
161
|
}
|
|
160
162
|
|
|
161
163
|
async utilityGetNullifierMembershipWitness(
|
|
162
|
-
[
|
|
164
|
+
[blockHash]: ACVMField[],
|
|
163
165
|
[nullifier]: ACVMField[], // nullifier, we try to find the witness for (to prove inclusion)
|
|
164
166
|
): Promise<(ACVMField | ACVMField[])[]> {
|
|
165
|
-
const
|
|
167
|
+
const parsedBlockHash = L2BlockHash.fromString(blockHash);
|
|
166
168
|
const parsedNullifier = Fr.fromString(nullifier);
|
|
167
169
|
|
|
168
170
|
const witness = await this.handlerAsUtility().utilityGetNullifierMembershipWitness(
|
|
169
|
-
|
|
171
|
+
parsedBlockHash,
|
|
170
172
|
parsedNullifier,
|
|
171
173
|
);
|
|
172
174
|
if (!witness) {
|
|
173
|
-
throw new Error(
|
|
175
|
+
throw new Error(
|
|
176
|
+
`Nullifier witness not found for nullifier ${parsedNullifier} at block hash ${parsedBlockHash.toString()}.`,
|
|
177
|
+
);
|
|
174
178
|
}
|
|
175
179
|
return witness.toNoirRepresentation();
|
|
176
180
|
}
|
|
177
181
|
|
|
178
182
|
async utilityGetLowNullifierMembershipWitness(
|
|
179
|
-
[
|
|
183
|
+
[blockHash]: ACVMField[],
|
|
180
184
|
[nullifier]: ACVMField[], // nullifier, we try to find the low nullifier witness for (to prove non-inclusion)
|
|
181
185
|
): Promise<(ACVMField | ACVMField[])[]> {
|
|
182
|
-
const
|
|
186
|
+
const parsedBlockHash = L2BlockHash.fromString(blockHash);
|
|
183
187
|
const parsedNullifier = Fr.fromString(nullifier);
|
|
184
188
|
|
|
185
189
|
const witness = await this.handlerAsUtility().utilityGetLowNullifierMembershipWitness(
|
|
186
|
-
|
|
190
|
+
parsedBlockHash,
|
|
187
191
|
parsedNullifier,
|
|
188
192
|
);
|
|
189
193
|
if (!witness) {
|
|
190
194
|
throw new Error(
|
|
191
|
-
`Low nullifier witness not found for nullifier ${parsedNullifier} at block ${
|
|
195
|
+
`Low nullifier witness not found for nullifier ${parsedNullifier} at block hash ${parsedBlockHash.toString()}.`,
|
|
192
196
|
);
|
|
193
197
|
}
|
|
194
198
|
return witness.toNoirRepresentation();
|
|
195
199
|
}
|
|
196
200
|
|
|
197
201
|
async utilityGetPublicDataWitness(
|
|
198
|
-
[
|
|
202
|
+
[blockHash]: ACVMField[],
|
|
199
203
|
[leafSlot]: ACVMField[],
|
|
200
204
|
): Promise<(ACVMField | ACVMField[])[]> {
|
|
201
|
-
const
|
|
205
|
+
const parsedBlockHash = L2BlockHash.fromString(blockHash);
|
|
202
206
|
const parsedLeafSlot = Fr.fromString(leafSlot);
|
|
203
207
|
|
|
204
|
-
const witness = await this.handlerAsUtility().utilityGetPublicDataWitness(
|
|
205
|
-
BlockNumber(parsedBlockNumber),
|
|
206
|
-
parsedLeafSlot,
|
|
207
|
-
);
|
|
208
|
+
const witness = await this.handlerAsUtility().utilityGetPublicDataWitness(parsedBlockHash, parsedLeafSlot);
|
|
208
209
|
if (!witness) {
|
|
209
|
-
throw new Error(
|
|
210
|
+
throw new Error(
|
|
211
|
+
`Public data witness not found for slot ${parsedLeafSlot} at block hash ${parsedBlockHash.toString()}.`,
|
|
212
|
+
);
|
|
210
213
|
}
|
|
211
214
|
return witness.toNoirRepresentation();
|
|
212
215
|
}
|
|
@@ -239,7 +242,8 @@ export class Oracle {
|
|
|
239
242
|
}
|
|
240
243
|
|
|
241
244
|
async utilityGetNotes(
|
|
242
|
-
[
|
|
245
|
+
[ownerSome]: ACVMField[],
|
|
246
|
+
[ownerValue]: ACVMField[],
|
|
243
247
|
[storageSlot]: ACVMField[],
|
|
244
248
|
[numSelects]: ACVMField[],
|
|
245
249
|
selectByIndexes: ACVMField[],
|
|
@@ -255,10 +259,12 @@ export class Oracle {
|
|
|
255
259
|
[offset]: ACVMField[],
|
|
256
260
|
[status]: ACVMField[],
|
|
257
261
|
[maxNotes]: ACVMField[],
|
|
258
|
-
[
|
|
262
|
+
[packedHintedNoteLength]: ACVMField[],
|
|
259
263
|
): Promise<(ACVMField | ACVMField[])[]> {
|
|
264
|
+
// Parse Option<AztecAddress>: ownerSome is 0 for None, 1 for Some
|
|
265
|
+
const owner = Fr.fromString(ownerSome).toNumber() === 1 ? AztecAddress.fromString(ownerValue) : undefined;
|
|
260
266
|
const noteDatas = await this.handlerAsUtility().utilityGetNotes(
|
|
261
|
-
|
|
267
|
+
owner,
|
|
262
268
|
Fr.fromString(storageSlot),
|
|
263
269
|
+numSelects,
|
|
264
270
|
selectByIndexes.map(s => +s),
|
|
@@ -275,15 +281,25 @@ export class Oracle {
|
|
|
275
281
|
+status,
|
|
276
282
|
);
|
|
277
283
|
|
|
278
|
-
const
|
|
284
|
+
const returnDataAsArrayOfPackedHintedNotes = noteDatas.map(noteData =>
|
|
285
|
+
packAsHintedNote({
|
|
286
|
+
contractAddress: noteData.contractAddress,
|
|
287
|
+
owner: noteData.owner,
|
|
288
|
+
randomness: noteData.randomness,
|
|
289
|
+
storageSlot: noteData.storageSlot,
|
|
290
|
+
noteNonce: noteData.noteNonce,
|
|
291
|
+
isPending: noteData.isPending,
|
|
292
|
+
note: noteData.note,
|
|
293
|
+
}),
|
|
294
|
+
);
|
|
279
295
|
|
|
280
296
|
// Now we convert each sub-array to an array of ACVMField
|
|
281
|
-
const returnDataAsArrayOfACVMFieldArrays =
|
|
297
|
+
const returnDataAsArrayOfACVMFieldArrays = returnDataAsArrayOfPackedHintedNotes.map(subArray =>
|
|
282
298
|
subArray.map(toACVMField),
|
|
283
299
|
);
|
|
284
300
|
|
|
285
301
|
// At last we convert the array of arrays to a bounded vec of arrays
|
|
286
|
-
return arrayOfArraysToBoundedVecOfArrays(returnDataAsArrayOfACVMFieldArrays, +maxNotes, +
|
|
302
|
+
return arrayOfArraysToBoundedVecOfArrays(returnDataAsArrayOfACVMFieldArrays, +maxNotes, +packedHintedNoteLength);
|
|
287
303
|
}
|
|
288
304
|
|
|
289
305
|
privateNotifyCreatedNote(
|
|
@@ -344,15 +360,15 @@ export class Oracle {
|
|
|
344
360
|
}
|
|
345
361
|
|
|
346
362
|
async utilityStorageRead(
|
|
363
|
+
[blockHash]: ACVMField[],
|
|
347
364
|
[contractAddress]: ACVMField[],
|
|
348
365
|
[startStorageSlot]: ACVMField[],
|
|
349
|
-
[blockNumber]: ACVMField[],
|
|
350
366
|
[numberOfElements]: ACVMField[],
|
|
351
367
|
): Promise<ACVMField[][]> {
|
|
352
368
|
const values = await this.handlerAsUtility().utilityStorageRead(
|
|
369
|
+
L2BlockHash.fromString(blockHash),
|
|
353
370
|
new AztecAddress(Fr.fromString(contractAddress)),
|
|
354
371
|
Fr.fromString(startStorageSlot),
|
|
355
|
-
BlockNumber(+blockNumber),
|
|
356
372
|
+numberOfElements,
|
|
357
373
|
);
|
|
358
374
|
return [values.map(toACVMField)];
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH, PRIVATE_CONTEXT_INPUTS_LENGTH } from '@aztec/constants';
|
|
2
|
-
import {
|
|
3
|
-
import { Fr } from '@aztec/foundation/fields';
|
|
2
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
4
3
|
import { createLogger } from '@aztec/foundation/log';
|
|
5
4
|
import { Timer } from '@aztec/foundation/timer';
|
|
6
5
|
import { ProtocolContractAddress } from '@aztec/protocol-contracts';
|
|
@@ -19,15 +18,15 @@ import {
|
|
|
19
18
|
countArgumentsSize,
|
|
20
19
|
} from '@aztec/stdlib/abi';
|
|
21
20
|
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
21
|
+
import { L2BlockHash } from '@aztec/stdlib/block';
|
|
22
22
|
import type { ContractInstance } from '@aztec/stdlib/contract';
|
|
23
23
|
import { DelayedPublicMutableValues, DelayedPublicMutableValuesWithHash } from '@aztec/stdlib/delayed-public-mutable';
|
|
24
24
|
import type { AztecNode } from '@aztec/stdlib/interfaces/client';
|
|
25
25
|
import { PrivateCircuitPublicInputs } from '@aztec/stdlib/kernel';
|
|
26
26
|
import type { CircuitWitnessGenerationStats } from '@aztec/stdlib/stats';
|
|
27
27
|
import { BlockHeader, PrivateCallExecutionResult } from '@aztec/stdlib/tx';
|
|
28
|
-
import type { UInt64 } from '@aztec/stdlib/types';
|
|
29
28
|
|
|
30
|
-
import
|
|
29
|
+
import { ContractStore } from '../../storage/contract_store/index.js';
|
|
31
30
|
import { Oracle } from './oracle.js';
|
|
32
31
|
import type { PrivateExecutionOracle } from './private_execution_oracle.js';
|
|
33
32
|
|
|
@@ -85,7 +84,6 @@ export async function executePrivateFunction(
|
|
|
85
84
|
|
|
86
85
|
const rawReturnValues = await privateExecutionOracle.privateLoadFromExecutionCache(publicInputs.returnsHash);
|
|
87
86
|
|
|
88
|
-
const noteHashLeafIndexMap = privateExecutionOracle.getNoteHashLeafIndexMap();
|
|
89
87
|
const newNotes = privateExecutionOracle.getNewNotes();
|
|
90
88
|
const noteHashNullifierCounterMap = privateExecutionOracle.getNoteHashNullifierCounterMap();
|
|
91
89
|
const offchainEffects = privateExecutionOracle.getOffchainEffects();
|
|
@@ -108,7 +106,6 @@ export async function executePrivateFunction(
|
|
|
108
106
|
Buffer.from(artifact.verificationKey!, 'base64'),
|
|
109
107
|
partialWitness,
|
|
110
108
|
publicInputs,
|
|
111
|
-
noteHashLeafIndexMap,
|
|
112
109
|
newNotes,
|
|
113
110
|
noteHashNullifierCounterMap,
|
|
114
111
|
rawReturnValues,
|
|
@@ -154,21 +151,22 @@ export function extractPrivateCircuitPublicInputs(
|
|
|
154
151
|
* from the instance is used.
|
|
155
152
|
* @param contractAddress - The address of the contract to read the class id for.
|
|
156
153
|
* @param instance - The instance of the contract.
|
|
157
|
-
* @param
|
|
158
|
-
* @param
|
|
159
|
-
* @param timestamp - The timestamp at which to obtain the class id from the DelayedPublicMutable.
|
|
154
|
+
* @param aztecNode - The Aztec node to query for storage.
|
|
155
|
+
* @param header - The header of the block at which to load the DelayedPublicMutable storing the class id.
|
|
160
156
|
* @returns The current class id.
|
|
161
157
|
*/
|
|
162
158
|
export async function readCurrentClassId(
|
|
163
159
|
contractAddress: AztecAddress,
|
|
164
160
|
instance: ContractInstance,
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
timestamp: UInt64,
|
|
161
|
+
aztecNode: AztecNode,
|
|
162
|
+
header: BlockHeader,
|
|
168
163
|
) {
|
|
164
|
+
const blockHashFr = await header.hash();
|
|
165
|
+
const blockHash = L2BlockHash.fromField(blockHashFr);
|
|
166
|
+
const timestamp = header.globalVariables.timestamp;
|
|
169
167
|
const { delayedPublicMutableSlot } = await DelayedPublicMutableValuesWithHash.getContractUpdateSlots(contractAddress);
|
|
170
168
|
const delayedPublicMutableValues = await DelayedPublicMutableValues.readFromTree(delayedPublicMutableSlot, slot =>
|
|
171
|
-
|
|
169
|
+
aztecNode.getPublicStorageAt(blockHash, ProtocolContractAddress.ContractInstanceRegistry, slot),
|
|
172
170
|
);
|
|
173
171
|
let currentClassId = delayedPublicMutableValues.svc.getCurrentAt(timestamp)[0];
|
|
174
172
|
if (currentClassId.isZero()) {
|
|
@@ -178,28 +176,22 @@ export async function readCurrentClassId(
|
|
|
178
176
|
}
|
|
179
177
|
|
|
180
178
|
/**
|
|
181
|
-
* Verify that the current class id of a contract obtained from AztecNode is the same as the one in
|
|
182
|
-
* provider (i.e. PXE).
|
|
183
|
-
* @param
|
|
184
|
-
* @param executionDataProvider - The execution data provider.
|
|
185
|
-
* @param header - The header of the block at which to verify the current class id. If not provided, the anchor block
|
|
186
|
-
* header of the execution data provider is used.
|
|
179
|
+
* Verify that the current class id of a contract obtained from AztecNode is the same as the one in contract data
|
|
180
|
+
* provider (i.e. PXE's own storage).
|
|
181
|
+
* @param header - The header of the block at which to verify the current class id.
|
|
187
182
|
*/
|
|
188
183
|
export async function verifyCurrentClassId(
|
|
189
184
|
contractAddress: AztecAddress,
|
|
190
|
-
|
|
191
|
-
|
|
185
|
+
aztecNode: AztecNode,
|
|
186
|
+
contractStore: ContractStore,
|
|
187
|
+
header: BlockHeader,
|
|
192
188
|
) {
|
|
193
|
-
|
|
189
|
+
const instance = await contractStore.getContractInstance(contractAddress);
|
|
190
|
+
if (!instance) {
|
|
191
|
+
throw new Error(`No contract instance found for address ${contractAddress.toString()}`);
|
|
192
|
+
}
|
|
194
193
|
|
|
195
|
-
const
|
|
196
|
-
const currentClassId = await readCurrentClassId(
|
|
197
|
-
contractAddress,
|
|
198
|
-
instance,
|
|
199
|
-
executionDataProvider,
|
|
200
|
-
header.globalVariables.blockNumber,
|
|
201
|
-
header.globalVariables.timestamp,
|
|
202
|
-
);
|
|
194
|
+
const currentClassId = await readCurrentClassId(contractAddress, instance, aztecNode, header);
|
|
203
195
|
if (!instance.currentContractClassId.equals(currentClassId)) {
|
|
204
196
|
throw new Error(
|
|
205
197
|
`Contract ${contractAddress} is outdated, current class id is ${currentClassId}, local class id is ${instance.currentContractClassId}`,
|
|
@@ -1,20 +1,24 @@
|
|
|
1
1
|
import { MAX_FR_CALLDATA_TO_ALL_ENQUEUED_CALLS, PRIVATE_CONTEXT_INPUTS_LENGTH } from '@aztec/constants';
|
|
2
|
-
import { Fr } from '@aztec/foundation/
|
|
2
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
3
|
import { createLogger } from '@aztec/foundation/log';
|
|
4
4
|
import { Timer } from '@aztec/foundation/timer';
|
|
5
|
+
import type { KeyStore } from '@aztec/key-store';
|
|
5
6
|
import { type CircuitSimulator, toACVMWitness } from '@aztec/simulator/client';
|
|
6
7
|
import {
|
|
7
8
|
type FunctionAbi,
|
|
8
9
|
type FunctionArtifact,
|
|
10
|
+
type FunctionCall,
|
|
9
11
|
FunctionSelector,
|
|
10
12
|
type NoteSelector,
|
|
11
13
|
countArgumentsSize,
|
|
12
14
|
} from '@aztec/stdlib/abi';
|
|
13
15
|
import type { AuthWitness } from '@aztec/stdlib/auth-witness';
|
|
14
16
|
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
15
|
-
import {
|
|
17
|
+
import { siloNullifier } from '@aztec/stdlib/hash';
|
|
18
|
+
import type { AztecNode } from '@aztec/stdlib/interfaces/client';
|
|
16
19
|
import { PrivateContextInputs } from '@aztec/stdlib/kernel';
|
|
17
|
-
import type
|
|
20
|
+
import { type ContractClassLog, DirectionalAppTaggingSecret, type PreTag } from '@aztec/stdlib/logs';
|
|
21
|
+
import { Tag } from '@aztec/stdlib/logs';
|
|
18
22
|
import { Note, type NoteStatus } from '@aztec/stdlib/note';
|
|
19
23
|
import {
|
|
20
24
|
type BlockHeader,
|
|
@@ -26,8 +30,17 @@ import {
|
|
|
26
30
|
type TxContext,
|
|
27
31
|
} from '@aztec/stdlib/tx';
|
|
28
32
|
|
|
29
|
-
import {
|
|
30
|
-
import type {
|
|
33
|
+
import { NoteService } from '../../notes/note_service.js';
|
|
34
|
+
import type { AddressStore } from '../../storage/address_store/address_store.js';
|
|
35
|
+
import type { AnchorBlockStore } from '../../storage/anchor_block_store/anchor_block_store.js';
|
|
36
|
+
import type { CapsuleStore } from '../../storage/capsule_store/capsule_store.js';
|
|
37
|
+
import type { ContractStore } from '../../storage/contract_store/contract_store.js';
|
|
38
|
+
import type { NoteStore } from '../../storage/note_store/note_store.js';
|
|
39
|
+
import type { PrivateEventStore } from '../../storage/private_event_store/private_event_store.js';
|
|
40
|
+
import type { RecipientTaggingStore } from '../../storage/tagging_store/recipient_tagging_store.js';
|
|
41
|
+
import type { SenderAddressBookStore } from '../../storage/tagging_store/sender_address_book_store.js';
|
|
42
|
+
import type { SenderTaggingStore } from '../../storage/tagging_store/sender_tagging_store.js';
|
|
43
|
+
import { syncSenderTaggingIndexes } from '../../tagging/index.js';
|
|
31
44
|
import type { ExecutionNoteCache } from '../execution_note_cache.js';
|
|
32
45
|
import { ExecutionTaggingIndexCache } from '../execution_tagging_index_cache.js';
|
|
33
46
|
import type { HashedValuesCache } from '../hashed_values_cache.js';
|
|
@@ -51,16 +64,6 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
51
64
|
* Users can also use this to get a clearer idea of what's happened during a simulation.
|
|
52
65
|
*/
|
|
53
66
|
private newNotes: NoteAndSlot[] = [];
|
|
54
|
-
/**
|
|
55
|
-
* Notes from previous transactions that are returned to the oracle call `getNotes` during this execution.
|
|
56
|
-
* The mapping maps from the unique siloed note hash to the index for notes created in private executions.
|
|
57
|
-
* It maps from siloed note hash to the index for notes created by public functions.
|
|
58
|
-
*
|
|
59
|
-
* They are not part of the ExecutionNoteCache and being forwarded to nested contexts via `extend()`
|
|
60
|
-
* because these notes are meant to be maintained on a per-call basis
|
|
61
|
-
* They should act as references for the read requests output by an app circuit via public inputs.
|
|
62
|
-
*/
|
|
63
|
-
private noteHashLeafIndexMap: Map<bigint, bigint> = new Map();
|
|
64
67
|
private noteHashNullifierCounterMap: Map<number, number> = new Map();
|
|
65
68
|
private contractClassLogs: CountedContractClassLog[] = [];
|
|
66
69
|
private offchainEffects: { data: Fr[] }[] = [];
|
|
@@ -71,14 +74,27 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
71
74
|
private readonly txContext: TxContext,
|
|
72
75
|
private readonly callContext: CallContext,
|
|
73
76
|
/** Header of a block whose state is used during private execution (not the block the transaction is included in). */
|
|
74
|
-
protected readonly anchorBlockHeader: BlockHeader,
|
|
77
|
+
protected override readonly anchorBlockHeader: BlockHeader,
|
|
78
|
+
/** Needed to trigger contract synchronization before nested calls */
|
|
79
|
+
private readonly utilityExecutor: (call: FunctionCall) => Promise<void>,
|
|
75
80
|
/** List of transient auth witnesses to be used during this simulation */
|
|
76
81
|
authWitnesses: AuthWitness[],
|
|
77
82
|
capsules: Capsule[],
|
|
78
83
|
private readonly executionCache: HashedValuesCache,
|
|
79
84
|
private readonly noteCache: ExecutionNoteCache,
|
|
80
85
|
private readonly taggingIndexCache: ExecutionTaggingIndexCache,
|
|
81
|
-
|
|
86
|
+
contractStore: ContractStore,
|
|
87
|
+
noteStore: NoteStore,
|
|
88
|
+
keyStore: KeyStore,
|
|
89
|
+
addressStore: AddressStore,
|
|
90
|
+
aztecNode: AztecNode,
|
|
91
|
+
anchorBlockStore: AnchorBlockStore,
|
|
92
|
+
private readonly senderTaggingStore: SenderTaggingStore,
|
|
93
|
+
recipientTaggingStore: RecipientTaggingStore,
|
|
94
|
+
senderAddressBookStore: SenderAddressBookStore,
|
|
95
|
+
capsuleStore: CapsuleStore,
|
|
96
|
+
privateEventStore: PrivateEventStore,
|
|
97
|
+
jobId: string,
|
|
82
98
|
private totalPublicCalldataCount: number = 0,
|
|
83
99
|
protected sideEffectCounter: number = 0,
|
|
84
100
|
log = createLogger('simulator:client_execution_context'),
|
|
@@ -86,7 +102,25 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
86
102
|
private senderForTags?: AztecAddress,
|
|
87
103
|
private simulator?: CircuitSimulator,
|
|
88
104
|
) {
|
|
89
|
-
super(
|
|
105
|
+
super(
|
|
106
|
+
callContext.contractAddress,
|
|
107
|
+
authWitnesses,
|
|
108
|
+
capsules,
|
|
109
|
+
anchorBlockHeader,
|
|
110
|
+
contractStore,
|
|
111
|
+
noteStore,
|
|
112
|
+
keyStore,
|
|
113
|
+
addressStore,
|
|
114
|
+
aztecNode,
|
|
115
|
+
anchorBlockStore,
|
|
116
|
+
recipientTaggingStore,
|
|
117
|
+
senderAddressBookStore,
|
|
118
|
+
capsuleStore,
|
|
119
|
+
privateEventStore,
|
|
120
|
+
jobId,
|
|
121
|
+
log,
|
|
122
|
+
scopes,
|
|
123
|
+
);
|
|
90
124
|
}
|
|
91
125
|
|
|
92
126
|
public getPrivateContextInputs(): PrivateContextInputs {
|
|
@@ -118,14 +152,6 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
118
152
|
return toACVMWitness(0, fields);
|
|
119
153
|
}
|
|
120
154
|
|
|
121
|
-
/**
|
|
122
|
-
* The KernelProver will use this to fully populate witnesses and provide hints to the kernel circuit
|
|
123
|
-
* regarding which note hash each settled read request corresponds to.
|
|
124
|
-
*/
|
|
125
|
-
public getNoteHashLeafIndexMap() {
|
|
126
|
-
return this.noteHashLeafIndexMap;
|
|
127
|
-
}
|
|
128
|
-
|
|
129
155
|
/**
|
|
130
156
|
* Get the data for the newly created notes.
|
|
131
157
|
*/
|
|
@@ -152,7 +178,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
152
178
|
}
|
|
153
179
|
|
|
154
180
|
/**
|
|
155
|
-
* Returns the pre
|
|
181
|
+
* Returns the pre-tags that were used in this execution (and that need to be stored in the db).
|
|
156
182
|
*/
|
|
157
183
|
public getUsedPreTags(): PreTag[] {
|
|
158
184
|
return this.taggingIndexCache.getUsedPreTags();
|
|
@@ -202,11 +228,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
202
228
|
* @returns An app tag to be used in a log.
|
|
203
229
|
*/
|
|
204
230
|
public async privateGetNextAppTagAsSender(sender: AztecAddress, recipient: AztecAddress): Promise<Tag> {
|
|
205
|
-
const secret = await this
|
|
206
|
-
this.contractAddress,
|
|
207
|
-
sender,
|
|
208
|
-
recipient,
|
|
209
|
-
);
|
|
231
|
+
const secret = await this.#calculateDirectionalAppTaggingSecret(this.contractAddress, sender, recipient);
|
|
210
232
|
|
|
211
233
|
const index = await this.#getIndexToUseForSecret(secret);
|
|
212
234
|
this.log.debug(
|
|
@@ -217,6 +239,22 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
217
239
|
return Tag.compute({ secret, index });
|
|
218
240
|
}
|
|
219
241
|
|
|
242
|
+
async #calculateDirectionalAppTaggingSecret(
|
|
243
|
+
contractAddress: AztecAddress,
|
|
244
|
+
sender: AztecAddress,
|
|
245
|
+
recipient: AztecAddress,
|
|
246
|
+
) {
|
|
247
|
+
const senderCompleteAddress = await this.getCompleteAddress(sender);
|
|
248
|
+
const senderIvsk = await this.keyStore.getMasterIncomingViewingSecretKey(sender);
|
|
249
|
+
return DirectionalAppTaggingSecret.compute(
|
|
250
|
+
senderCompleteAddress,
|
|
251
|
+
senderIvsk,
|
|
252
|
+
recipient,
|
|
253
|
+
contractAddress,
|
|
254
|
+
recipient,
|
|
255
|
+
);
|
|
256
|
+
}
|
|
257
|
+
|
|
220
258
|
async #getIndexToUseForSecret(secret: DirectionalAppTaggingSecret): Promise<number> {
|
|
221
259
|
// If we have the tagging index in the cache, we use it. If not we obtain it from the execution data provider.
|
|
222
260
|
const lastUsedIndexInTx = this.taggingIndexCache.getLastUsedIndex(secret);
|
|
@@ -227,8 +265,9 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
227
265
|
// This is a tagging secret we've not yet used in this tx, so first sync our store to make sure its indices
|
|
228
266
|
// are up to date. We do this here because this store is not synced as part of the global sync because
|
|
229
267
|
// that'd be wasteful as most tagging secrets are not used in each tx.
|
|
230
|
-
await this.
|
|
231
|
-
|
|
268
|
+
await syncSenderTaggingIndexes(secret, this.contractAddress, this.aztecNode, this.senderTaggingStore, this.jobId);
|
|
269
|
+
|
|
270
|
+
const lastUsedIndex = await this.senderTaggingStore.getLastUsedIndex(secret, this.jobId);
|
|
232
271
|
// If lastUsedIndex is undefined, we've never used this secret, so start from 0
|
|
233
272
|
// Otherwise, the next index to use is one past the last used index
|
|
234
273
|
return lastUsedIndex === undefined ? 0 : lastUsedIndex + 1;
|
|
@@ -282,7 +321,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
282
321
|
* Real notes coming from DB will have a leafIndex which
|
|
283
322
|
* represents their index in the note hash tree.
|
|
284
323
|
*
|
|
285
|
-
* @param owner - The owner of the notes.
|
|
324
|
+
* @param owner - The owner of the notes. If undefined, returns notes for all owners.
|
|
286
325
|
* @param storageSlot - The storage slot.
|
|
287
326
|
* @param numSelects - The number of valid selects in selectBy and selectValues.
|
|
288
327
|
* @param selectBy - An array of indices of the fields to selects.
|
|
@@ -296,7 +335,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
296
335
|
* @returns Array of note data.
|
|
297
336
|
*/
|
|
298
337
|
public override async utilityGetNotes(
|
|
299
|
-
owner: AztecAddress,
|
|
338
|
+
owner: AztecAddress | undefined,
|
|
300
339
|
storageSlot: Fr,
|
|
301
340
|
numSelects: number,
|
|
302
341
|
selectByIndexes: number[],
|
|
@@ -316,7 +355,9 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
316
355
|
const pendingNotes = this.noteCache.getNotes(this.callContext.contractAddress, owner, storageSlot);
|
|
317
356
|
|
|
318
357
|
const pendingNullifiers = this.noteCache.getNullifiers(this.callContext.contractAddress);
|
|
319
|
-
|
|
358
|
+
|
|
359
|
+
const noteService = new NoteService(this.noteStore, this.aztecNode, this.anchorBlockStore);
|
|
360
|
+
const dbNotes = await noteService.getNotes(
|
|
320
361
|
this.callContext.contractAddress,
|
|
321
362
|
owner,
|
|
322
363
|
storageSlot,
|
|
@@ -345,23 +386,6 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
345
386
|
.join(', ')}`,
|
|
346
387
|
);
|
|
347
388
|
|
|
348
|
-
const noteHashesAndIndexes = await Promise.all(
|
|
349
|
-
notes.map(async n => {
|
|
350
|
-
if (n.index !== undefined) {
|
|
351
|
-
const siloedNoteHash = await siloNoteHash(n.contractAddress, n.noteHash);
|
|
352
|
-
const uniqueNoteHash = await computeUniqueNoteHash(n.noteNonce, siloedNoteHash);
|
|
353
|
-
|
|
354
|
-
return { hash: uniqueNoteHash, index: n.index };
|
|
355
|
-
}
|
|
356
|
-
}),
|
|
357
|
-
);
|
|
358
|
-
|
|
359
|
-
noteHashesAndIndexes
|
|
360
|
-
.filter(n => n !== undefined)
|
|
361
|
-
.forEach(n => {
|
|
362
|
-
this.noteHashLeafIndexMap.set(n!.hash.toBigInt(), n!.index);
|
|
363
|
-
});
|
|
364
|
-
|
|
365
389
|
return notes;
|
|
366
390
|
}
|
|
367
391
|
|
|
@@ -404,6 +428,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
404
428
|
note,
|
|
405
429
|
siloedNullifier: undefined, // Siloed nullifier cannot be known for newly created note.
|
|
406
430
|
noteHash,
|
|
431
|
+
isPending: true, // This note has just been created and hence is not settled yet.
|
|
407
432
|
},
|
|
408
433
|
counter,
|
|
409
434
|
);
|
|
@@ -494,9 +519,11 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
494
519
|
|
|
495
520
|
isStaticCall = isStaticCall || this.callContext.isStaticCall;
|
|
496
521
|
|
|
497
|
-
await verifyCurrentClassId(targetContractAddress, this.
|
|
522
|
+
await verifyCurrentClassId(targetContractAddress, this.aztecNode, this.contractStore, this.anchorBlockHeader);
|
|
523
|
+
|
|
524
|
+
await this.contractStore.syncPrivateState(targetContractAddress, functionSelector, this.utilityExecutor);
|
|
498
525
|
|
|
499
|
-
const targetArtifact = await this.
|
|
526
|
+
const targetArtifact = await this.contractStore.getFunctionArtifactWithDebugMetadata(
|
|
500
527
|
targetContractAddress,
|
|
501
528
|
functionSelector,
|
|
502
529
|
);
|
|
@@ -510,12 +537,24 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
510
537
|
derivedTxContext,
|
|
511
538
|
derivedCallContext,
|
|
512
539
|
this.anchorBlockHeader,
|
|
540
|
+
this.utilityExecutor,
|
|
513
541
|
this.authWitnesses,
|
|
514
542
|
this.capsules,
|
|
515
543
|
this.executionCache,
|
|
516
544
|
this.noteCache,
|
|
517
545
|
this.taggingIndexCache,
|
|
518
|
-
this.
|
|
546
|
+
this.contractStore,
|
|
547
|
+
this.noteStore,
|
|
548
|
+
this.keyStore,
|
|
549
|
+
this.addressStore,
|
|
550
|
+
this.aztecNode,
|
|
551
|
+
this.anchorBlockStore,
|
|
552
|
+
this.senderTaggingStore,
|
|
553
|
+
this.recipientTaggingStore,
|
|
554
|
+
this.senderAddressBookStore,
|
|
555
|
+
this.capsuleStore,
|
|
556
|
+
this.privateEventStore,
|
|
557
|
+
this.jobId,
|
|
519
558
|
this.totalPublicCalldataCount,
|
|
520
559
|
sideEffectCounter,
|
|
521
560
|
this.log,
|
|
@@ -628,7 +667,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
628
667
|
}
|
|
629
668
|
|
|
630
669
|
public getDebugFunctionName() {
|
|
631
|
-
return this.
|
|
670
|
+
return this.contractStore.getDebugFunctionName(this.contractAddress, this.callContext.functionSelector);
|
|
632
671
|
}
|
|
633
672
|
|
|
634
673
|
public utilityEmitOffchainEffect(data: Fr[]): Promise<void> {
|