@aztec/pxe 0.0.1-commit.d3ec352c → 0.0.1-commit.d6f2b3f94
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 +45 -0
- package/dest/block_synchronizer/block_synchronizer.d.ts.map +1 -0
- package/dest/block_synchronizer/block_synchronizer.js +153 -0
- package/dest/block_synchronizer/index.d.ts +2 -0
- package/dest/block_synchronizer/index.d.ts.map +1 -0
- package/dest/block_synchronizer/index.js +1 -0
- package/dest/config/index.d.ts +6 -4
- package/dest/config/index.d.ts.map +1 -1
- package/dest/config/index.js +17 -0
- 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 +74 -33
- 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 +5 -4
- package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts.map +1 -1
- package/dest/contract_function_simulator/noir-structs/event_validation_request.js +6 -3
- package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts +5 -4
- package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts.map +1 -1
- package/dest/contract_function_simulator/noir-structs/log_retrieval_request.js +7 -6
- package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts +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 +3 -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 +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 +22 -18
- 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 +11 -9
- package/dest/contract_function_simulator/oracle/oracle.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/oracle.js +82 -48
- package/dest/contract_function_simulator/oracle/private_execution.d.ts +2 -28
- package/dest/contract_function_simulator/oracle/private_execution.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/private_execution.js +2 -38
- package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts +34 -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 +41 -45
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts +88 -32
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.js +201 -74
- package/dest/contract_function_simulator/pick_notes.d.ts +2 -2
- package/dest/contract_function_simulator/pick_notes.d.ts.map +1 -1
- package/dest/contract_function_simulator/pick_notes.js +1 -1
- package/dest/contract_function_simulator/proxied_contract_data_source.d.ts +4 -4
- package/dest/contract_function_simulator/proxied_contract_data_source.d.ts.map +1 -1
- package/dest/contract_function_simulator/proxied_contract_data_source.js +23 -5
- package/dest/contract_sync/contract_sync_service.d.ts +41 -0
- package/dest/contract_sync/contract_sync_service.d.ts.map +1 -0
- package/dest/contract_sync/contract_sync_service.js +82 -0
- package/dest/contract_sync/helpers.d.ts +28 -0
- package/dest/contract_sync/helpers.d.ts.map +1 -0
- package/dest/contract_sync/helpers.js +55 -0
- package/dest/debug/pxe_debug_utils.d.ts +44 -0
- package/dest/debug/pxe_debug_utils.d.ts.map +1 -0
- package/dest/debug/pxe_debug_utils.js +48 -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 +23 -8
- package/dest/entrypoints/client/lazy/index.d.ts +1 -2
- package/dest/entrypoints/client/lazy/index.d.ts.map +1 -1
- package/dest/entrypoints/client/lazy/index.js +0 -1
- package/dest/entrypoints/client/lazy/utils.d.ts +2 -2
- package/dest/entrypoints/client/lazy/utils.d.ts.map +1 -1
- package/dest/entrypoints/client/lazy/utils.js +24 -9
- package/dest/entrypoints/pxe_creation_options.d.ts +7 -3
- package/dest/entrypoints/pxe_creation_options.d.ts.map +1 -1
- package/dest/entrypoints/server/index.d.ts +4 -2
- package/dest/entrypoints/server/index.d.ts.map +1 -1
- package/dest/entrypoints/server/index.js +3 -1
- package/dest/entrypoints/server/utils.d.ts +1 -1
- package/dest/entrypoints/server/utils.d.ts.map +1 -1
- package/dest/entrypoints/server/utils.js +30 -15
- package/dest/error_enriching.d.ts +4 -4
- package/dest/error_enriching.d.ts.map +1 -1
- package/dest/error_enriching.js +6 -6
- package/dest/events/event_service.d.ts +15 -0
- package/dest/events/event_service.d.ts.map +1 -0
- package/dest/events/event_service.js +44 -0
- package/dest/events/index.d.ts +2 -0
- package/dest/events/index.d.ts.map +1 -0
- package/dest/events/index.js +1 -0
- package/dest/events/private_event_filter_validator.d.ts +9 -0
- package/dest/events/private_event_filter_validator.d.ts.map +1 -0
- package/dest/events/private_event_filter_validator.js +38 -0
- package/dest/job_coordinator/job_coordinator.d.ts +75 -0
- package/dest/job_coordinator/job_coordinator.d.ts.map +1 -0
- package/dest/job_coordinator/job_coordinator.js +94 -0
- package/dest/logs/log_service.d.ts +28 -0
- package/dest/logs/log_service.d.ts.map +1 -0
- package/dest/logs/log_service.js +123 -0
- package/dest/notes/index.d.ts +2 -0
- package/dest/notes/index.d.ts.map +1 -0
- package/dest/notes/index.js +1 -0
- package/dest/notes/note_service.d.ts +48 -0
- package/dest/notes/note_service.d.ts.map +1 -0
- package/dest/notes/note_service.js +147 -0
- package/dest/oracle_version.d.ts +3 -3
- package/dest/oracle_version.d.ts.map +1 -1
- package/dest/oracle_version.js +4 -3
- package/dest/private_kernel/hints/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 +3 -2
- package/dest/private_kernel/private_kernel_execution_prover.d.ts.map +1 -1
- package/dest/private_kernel/private_kernel_execution_prover.js +10 -11
- 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 +56 -81
- package/dest/pxe.d.ts.map +1 -1
- package/dest/pxe.js +209 -217
- package/dest/storage/address_store/address_store.d.ts +11 -0
- package/dest/storage/address_store/address_store.d.ts.map +1 -0
- package/dest/storage/{address_data_provider/address_data_provider.js → address_store/address_store.js} +13 -12
- package/dest/storage/address_store/index.d.ts +2 -0
- package/dest/storage/address_store/index.d.ts.map +1 -0
- package/dest/storage/address_store/index.js +1 -0
- package/dest/storage/anchor_block_store/anchor_block_store.d.ts +17 -0
- package/dest/storage/anchor_block_store/anchor_block_store.d.ts.map +1 -0
- package/dest/storage/{sync_data_provider/sync_data_provider.js → anchor_block_store/anchor_block_store.js} +10 -10
- package/dest/storage/{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 +253 -0
- package/dest/storage/capsule_store/index.d.ts +2 -0
- package/dest/storage/capsule_store/index.d.ts.map +1 -0
- package/dest/storage/capsule_store/index.js +1 -0
- package/dest/storage/{contract_data_provider/contract_data_provider.d.ts → contract_store/contract_store.d.ts} +7 -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} +56 -16
- package/dest/storage/contract_store/index.d.ts +2 -0
- package/dest/storage/contract_store/index.d.ts.map +1 -0
- package/dest/storage/contract_store/index.js +1 -0
- package/dest/storage/{contract_data_provider → contract_store}/private_functions_tree.d.ts +1 -1
- package/dest/storage/contract_store/private_functions_tree.d.ts.map +1 -0
- package/dest/storage/{contract_data_provider → contract_store}/private_functions_tree.js +1 -1
- package/dest/storage/index.d.ts +8 -8
- package/dest/storage/index.d.ts.map +1 -1
- package/dest/storage/index.js +7 -7
- package/dest/storage/metadata.d.ts +1 -1
- package/dest/storage/metadata.js +1 -1
- package/dest/storage/note_store/index.d.ts +3 -0
- package/dest/storage/note_store/index.d.ts.map +1 -0
- package/dest/storage/note_store/index.js +2 -0
- package/dest/storage/note_store/note_store.d.ts +83 -0
- package/dest/storage/note_store/note_store.d.ts.map +1 -0
- package/dest/storage/note_store/note_store.js +344 -0
- package/dest/storage/note_store/stored_note.d.ts +16 -0
- package/dest/storage/note_store/stored_note.d.ts.map +1 -0
- package/dest/storage/note_store/stored_note.js +43 -0
- package/dest/storage/private_event_store/private_event_store.d.ts +91 -0
- package/dest/storage/private_event_store/private_event_store.d.ts.map +1 -0
- package/dest/storage/private_event_store/private_event_store.js +273 -0
- package/dest/storage/private_event_store/stored_private_event.d.ts +23 -0
- package/dest/storage/private_event_store/stored_private_event.d.ts.map +1 -0
- package/dest/storage/private_event_store/stored_private_event.js +56 -0
- package/dest/storage/tagging_store/index.d.ts +4 -0
- package/dest/storage/tagging_store/index.d.ts.map +1 -0
- package/dest/storage/tagging_store/index.js +3 -0
- package/dest/storage/tagging_store/recipient_tagging_store.d.ts +28 -0
- package/dest/storage/tagging_store/recipient_tagging_store.d.ts.map +1 -0
- package/dest/storage/tagging_store/recipient_tagging_store.js +111 -0
- package/dest/storage/tagging_store/sender_address_book_store.d.ts +14 -0
- package/dest/storage/tagging_store/sender_address_book_store.d.ts.map +1 -0
- package/dest/storage/tagging_store/sender_address_book_store.js +36 -0
- package/dest/storage/tagging_store/sender_tagging_store.d.ts +77 -0
- package/dest/storage/tagging_store/sender_tagging_store.d.ts.map +1 -0
- package/dest/storage/tagging_store/sender_tagging_store.js +348 -0
- package/dest/tagging/constants.d.ts +2 -2
- package/dest/tagging/constants.d.ts.map +1 -1
- package/dest/tagging/constants.js +10 -2
- package/dest/tagging/get_all_logs_by_tags.d.ts +24 -0
- package/dest/tagging/get_all_logs_by_tags.d.ts.map +1 -0
- package/dest/tagging/get_all_logs_by_tags.js +46 -0
- package/dest/tagging/index.d.ts +16 -6
- package/dest/tagging/index.d.ts.map +1 -1
- package/dest/tagging/index.js +15 -5
- package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts +15 -0
- package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts.map +1 -0
- package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.js +99 -0
- package/dest/tagging/recipient_sync/utils/find_highest_indexes.d.ts +12 -0
- package/dest/tagging/recipient_sync/utils/find_highest_indexes.d.ts.map +1 -0
- package/dest/tagging/recipient_sync/utils/find_highest_indexes.js +20 -0
- package/dest/tagging/recipient_sync/utils/load_logs_for_range.d.ts +15 -0
- package/dest/tagging/recipient_sync/utils/load_logs_for_range.d.ts.map +1 -0
- package/dest/tagging/recipient_sync/utils/load_logs_for_range.js +32 -0
- package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts +21 -0
- package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts.map +1 -0
- package/dest/tagging/sender_sync/sync_sender_tagging_indexes.js +74 -0
- package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts +11 -0
- package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts.map +1 -0
- package/dest/tagging/sender_sync/utils/get_status_change_of_pending.js +29 -0
- package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts +21 -0
- package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts.map +1 -0
- package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.js +60 -0
- package/package.json +27 -18
- package/src/bin/check_oracle_version.ts +131 -20
- package/src/block_synchronizer/block_synchronizer.ts +178 -0
- package/src/block_synchronizer/index.ts +1 -0
- package/src/config/index.ts +17 -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 +117 -34
- 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 +6 -2
- package/src/contract_function_simulator/noir-structs/log_retrieval_request.ts +6 -5
- package/src/contract_function_simulator/noir-structs/log_retrieval_response.ts +1 -1
- package/src/contract_function_simulator/noir-structs/note_validation_request.ts +2 -2
- package/src/contract_function_simulator/noir-structs/utility_context.ts +6 -25
- package/src/contract_function_simulator/oracle/interfaces.ts +27 -17
- 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 +97 -51
- package/src/contract_function_simulator/oracle/private_execution.ts +2 -69
- package/src/contract_function_simulator/oracle/private_execution_oracle.ts +121 -59
- package/src/contract_function_simulator/oracle/utility_execution_oracle.ts +294 -91
- package/src/contract_function_simulator/pick_notes.ts +1 -1
- package/src/contract_function_simulator/proxied_contract_data_source.ts +24 -7
- package/src/contract_sync/contract_sync_service.ts +129 -0
- package/src/contract_sync/helpers.ts +93 -0
- package/src/debug/pxe_debug_utils.ts +91 -0
- package/src/entrypoints/client/bundle/index.ts +0 -1
- package/src/entrypoints/client/bundle/utils.ts +15 -16
- package/src/entrypoints/client/lazy/index.ts +0 -1
- package/src/entrypoints/client/lazy/utils.ts +16 -17
- package/src/entrypoints/pxe_creation_options.ts +6 -2
- package/src/entrypoints/server/index.ts +3 -1
- package/src/entrypoints/server/utils.ts +26 -34
- package/src/error_enriching.ts +7 -15
- package/src/events/event_service.ts +71 -0
- package/src/events/index.ts +1 -0
- package/src/events/private_event_filter_validator.ts +46 -0
- package/src/job_coordinator/job_coordinator.ts +150 -0
- package/src/logs/log_service.ts +220 -0
- package/src/notes/index.ts +1 -0
- package/src/notes/note_service.ts +195 -0
- package/src/oracle_version.ts +4 -3
- package/src/private_kernel/hints/index.ts +1 -1
- package/src/private_kernel/hints/{build_private_kernel_reset_private_inputs.ts → private_kernel_reset_private_inputs_builder.ts} +34 -23
- package/src/private_kernel/private_kernel_execution_prover.ts +13 -12
- package/src/private_kernel/private_kernel_oracle.ts +118 -37
- package/src/pxe.ts +299 -280
- package/src/storage/{address_data_provider/address_data_provider.ts → address_store/address_store.ts} +16 -16
- package/src/storage/address_store/index.ts +1 -0
- package/src/storage/{sync_data_provider/sync_data_provider.ts → anchor_block_store/anchor_block_store.ts} +10 -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} +67 -14
- package/src/storage/contract_store/index.ts +1 -0
- package/src/storage/{contract_data_provider → contract_store}/private_functions_tree.ts +1 -1
- package/src/storage/index.ts +7 -7
- package/src/storage/metadata.ts +1 -1
- package/src/storage/note_store/index.ts +2 -0
- package/src/storage/note_store/note_store.ts +415 -0
- package/src/storage/note_store/stored_note.ts +48 -0
- package/src/storage/private_event_store/private_event_store.ts +384 -0
- package/src/storage/private_event_store/stored_private_event.ts +73 -0
- package/src/storage/tagging_store/index.ts +3 -0
- package/src/storage/tagging_store/recipient_tagging_store.ts +139 -0
- package/src/storage/tagging_store/sender_address_book_store.ts +48 -0
- package/src/storage/tagging_store/sender_tagging_store.ts +429 -0
- package/src/tagging/constants.ts +10 -2
- package/src/tagging/get_all_logs_by_tags.ts +68 -0
- package/src/tagging/index.ts +18 -5
- package/src/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.ts +143 -0
- package/src/tagging/recipient_sync/utils/find_highest_indexes.ts +34 -0
- package/src/tagging/recipient_sync/utils/load_logs_for_range.ts +49 -0
- package/src/tagging/sender_sync/sync_sender_tagging_indexes.ts +99 -0
- package/src/tagging/sender_sync/utils/get_status_change_of_pending.ts +36 -0
- package/src/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.ts +84 -0
- package/dest/contract_function_simulator/execution_data_provider.d.ts +0 -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 +0 -83
- package/dest/storage/note_data_provider/note_data_provider.d.ts.map +0 -1
- package/dest/storage/note_data_provider/note_data_provider.js +0 -314
- 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 +0 -11
- 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/synchronizer/synchronizer.js +0 -102
- 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/note_data_provider/note_data_provider.ts +0 -403
- 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/synchronizer/synchronizer.ts +0 -121
- package/src/tagging/siloed_tag.ts +0 -22
- package/src/tagging/tag.ts +0 -16
- package/src/tagging/utils.ts +0 -31
|
@@ -1,16 +1,18 @@
|
|
|
1
|
-
import type { L1_TO_L2_MSG_TREE_HEIGHT } from '@aztec/constants';
|
|
1
|
+
import type { ARCHIVE_HEIGHT, L1_TO_L2_MSG_TREE_HEIGHT, NOTE_HASH_TREE_HEIGHT } from '@aztec/constants';
|
|
2
2
|
import type { BlockNumber } from '@aztec/foundation/branded-types';
|
|
3
|
-
import { Fr
|
|
3
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
4
|
+
import { Point } from '@aztec/foundation/curves/grumpkin';
|
|
5
|
+
import { MembershipWitness } from '@aztec/foundation/trees';
|
|
4
6
|
import type { FunctionSelector, NoteSelector } from '@aztec/stdlib/abi';
|
|
5
7
|
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
8
|
+
import { BlockHash } from '@aztec/stdlib/block';
|
|
6
9
|
import type { CompleteAddress, ContractInstance } from '@aztec/stdlib/contract';
|
|
7
10
|
import type { KeyValidationRequest } from '@aztec/stdlib/kernel';
|
|
8
|
-
import type { ContractClassLog } from '@aztec/stdlib/logs';
|
|
11
|
+
import type { ContractClassLog, Tag } from '@aztec/stdlib/logs';
|
|
9
12
|
import type { Note, NoteStatus } from '@aztec/stdlib/note';
|
|
10
|
-
import { type
|
|
13
|
+
import { type NullifierMembershipWitness, PublicDataWitness } from '@aztec/stdlib/trees';
|
|
11
14
|
import type { BlockHeader } from '@aztec/stdlib/tx';
|
|
12
15
|
|
|
13
|
-
import type { Tag } from '../../tagging/tag.js';
|
|
14
16
|
import type { UtilityContext } from '../noir-structs/utility_context.js';
|
|
15
17
|
import type { MessageLoadOracleInputs } from './message_load_oracle_inputs.js';
|
|
16
18
|
|
|
@@ -32,10 +34,10 @@ export interface NoteData {
|
|
|
32
34
|
noteNonce: Fr;
|
|
33
35
|
/** A hash of the note as it gets stored in the note hash tree. */
|
|
34
36
|
noteHash: Fr;
|
|
37
|
+
/** True if the note is pending, false if settled. */
|
|
38
|
+
isPending: boolean;
|
|
35
39
|
/** The corresponding nullifier of the note. Undefined for pending notes. */
|
|
36
40
|
siloedNullifier?: Fr;
|
|
37
|
-
/** The note's leaf index in the note hash tree. Undefined for pending notes. */
|
|
38
|
-
index?: bigint;
|
|
39
41
|
}
|
|
40
42
|
|
|
41
43
|
// These interfaces contain the list of oracles required by aztec-nr in order to simulate and execute transactions, i.e.
|
|
@@ -52,7 +54,7 @@ export interface IMiscOracle {
|
|
|
52
54
|
|
|
53
55
|
utilityGetRandomField(): Fr;
|
|
54
56
|
utilityAssertCompatibleOracleVersion(version: number): void;
|
|
55
|
-
utilityDebugLog(level: number, message: string, fields: Fr[]): void
|
|
57
|
+
utilityDebugLog(level: number, message: string, fields: Fr[]): Promise<void>;
|
|
56
58
|
}
|
|
57
59
|
|
|
58
60
|
/**
|
|
@@ -62,24 +64,31 @@ export interface IMiscOracle {
|
|
|
62
64
|
export interface IUtilityExecutionOracle {
|
|
63
65
|
isUtility: true;
|
|
64
66
|
|
|
65
|
-
utilityGetUtilityContext():
|
|
67
|
+
utilityGetUtilityContext(): UtilityContext;
|
|
66
68
|
utilityGetKeyValidationRequest(pkMHash: Fr): Promise<KeyValidationRequest>;
|
|
67
69
|
utilityGetContractInstance(address: AztecAddress): Promise<ContractInstance>;
|
|
68
|
-
|
|
70
|
+
utilityGetNoteHashMembershipWitness(
|
|
71
|
+
anchorBlockHash: BlockHash,
|
|
72
|
+
noteHash: Fr,
|
|
73
|
+
): Promise<MembershipWitness<typeof NOTE_HASH_TREE_HEIGHT> | undefined>;
|
|
74
|
+
utilityGetBlockHashMembershipWitness(
|
|
75
|
+
anchorBlockHash: BlockHash,
|
|
76
|
+
blockHash: BlockHash,
|
|
77
|
+
): Promise<MembershipWitness<typeof ARCHIVE_HEIGHT> | undefined>;
|
|
69
78
|
utilityGetNullifierMembershipWitness(
|
|
70
|
-
|
|
79
|
+
anchorBlockHash: BlockHash,
|
|
71
80
|
nullifier: Fr,
|
|
72
81
|
): Promise<NullifierMembershipWitness | undefined>;
|
|
73
|
-
utilityGetPublicDataWitness(
|
|
82
|
+
utilityGetPublicDataWitness(anchorBlockHash: BlockHash, leafSlot: Fr): Promise<PublicDataWitness | undefined>;
|
|
74
83
|
utilityGetLowNullifierMembershipWitness(
|
|
75
|
-
|
|
84
|
+
anchorBlockHash: BlockHash,
|
|
76
85
|
nullifier: Fr,
|
|
77
86
|
): Promise<NullifierMembershipWitness | undefined>;
|
|
78
87
|
utilityGetBlockHeader(blockNumber: BlockNumber): Promise<BlockHeader | undefined>;
|
|
79
|
-
|
|
88
|
+
utilityTryGetPublicKeysAndPartialAddress(account: AztecAddress): Promise<CompleteAddress | undefined>;
|
|
80
89
|
utilityGetAuthWitness(messageHash: Fr): Promise<Fr[] | undefined>;
|
|
81
90
|
utilityGetNotes(
|
|
82
|
-
owner: AztecAddress,
|
|
91
|
+
owner: AztecAddress | undefined,
|
|
83
92
|
storageSlot: Fr,
|
|
84
93
|
numSelects: number,
|
|
85
94
|
selectByIndexes: number[],
|
|
@@ -102,13 +111,13 @@ export interface IUtilityExecutionOracle {
|
|
|
102
111
|
secret: Fr,
|
|
103
112
|
): Promise<MessageLoadOracleInputs<typeof L1_TO_L2_MSG_TREE_HEIGHT>>;
|
|
104
113
|
utilityStorageRead(
|
|
114
|
+
anchorBlockHash: BlockHash,
|
|
105
115
|
contractAddress: AztecAddress,
|
|
106
116
|
startStorageSlot: Fr,
|
|
107
|
-
blockNumber: BlockNumber,
|
|
108
117
|
numberOfElements: number,
|
|
109
118
|
): Promise<Fr[]>;
|
|
110
119
|
utilityFetchTaggedLogs(pendingTaggedLogArrayBaseSlot: Fr): Promise<void>;
|
|
111
|
-
|
|
120
|
+
utilityValidateAndStoreEnqueuedNotesAndEvents(
|
|
112
121
|
contractAddress: AztecAddress,
|
|
113
122
|
noteValidationRequestsArrayBaseSlot: Fr,
|
|
114
123
|
eventValidationRequestsArrayBaseSlot: Fr,
|
|
@@ -146,6 +155,7 @@ export interface IPrivateExecutionOracle {
|
|
|
146
155
|
): void;
|
|
147
156
|
privateNotifyNullifiedNote(innerNullifier: Fr, noteHash: Fr, counter: number): Promise<void>;
|
|
148
157
|
privateNotifyCreatedNullifier(innerNullifier: Fr): Promise<void>;
|
|
158
|
+
privateIsNullifierPending(innerNullifier: Fr, contractAddress: AztecAddress): Promise<boolean>;
|
|
149
159
|
privateNotifyCreatedContractClassLog(log: ContractClassLog, counter: number): void;
|
|
150
160
|
privateCallPrivateFunction(
|
|
151
161
|
targetContractAddress: AztecAddress,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Fr } from '@aztec/foundation/
|
|
1
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
2
2
|
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
3
3
|
import type { Note } from '@aztec/stdlib/note';
|
|
4
4
|
|
|
@@ -18,37 +18,51 @@ function fromRawData(nonzeroNoteHashCounter: boolean, maybeNoteNonce: Fr): { sta
|
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
/**
|
|
21
|
-
* Packs a note in a format that is compatible with the default Packable implementation of the
|
|
21
|
+
* Packs a note in a format that is compatible with the default Packable implementation of the hinted note.
|
|
22
22
|
*
|
|
23
23
|
* @dev Unlike the default Packable implementation, this function first constructs the note metadata from the inputs
|
|
24
|
-
* and only after that it packs the
|
|
24
|
+
* and only after that it packs the hinted note. Hence it doesn't map one to one with `HintedNote::pack()`.
|
|
25
25
|
*
|
|
26
26
|
* @param contractAddress - The address of the contract that owns the note
|
|
27
|
+
* @param owner - The owner of the note
|
|
27
28
|
* @param randomness - The randomness injected into the note to get the hiding property of commitments
|
|
29
|
+
* @param storageSlot - The storage slot of the note
|
|
28
30
|
* @param noteNonce - The nonce injected into the note hash preimage by kernels.
|
|
29
|
-
* @param
|
|
31
|
+
* @param isPending - True if the note is pending, false if settled
|
|
30
32
|
* @param note - The note content containing the actual note data
|
|
31
33
|
* @returns The packed note as an array of field elements
|
|
32
34
|
*/
|
|
33
|
-
export function
|
|
35
|
+
export function packAsHintedNote({
|
|
34
36
|
contractAddress,
|
|
37
|
+
owner,
|
|
35
38
|
randomness,
|
|
39
|
+
storageSlot,
|
|
36
40
|
noteNonce,
|
|
37
|
-
|
|
41
|
+
isPending,
|
|
38
42
|
note,
|
|
39
43
|
}: {
|
|
40
44
|
contractAddress: AztecAddress;
|
|
45
|
+
owner: AztecAddress;
|
|
41
46
|
randomness: Fr;
|
|
47
|
+
storageSlot: Fr;
|
|
42
48
|
noteNonce: Fr;
|
|
43
|
-
|
|
49
|
+
isPending: boolean;
|
|
44
50
|
note: Note;
|
|
45
51
|
}) {
|
|
46
|
-
// If
|
|
47
|
-
const
|
|
52
|
+
// If the note is pending it means it has a non-zero note hash counter associated with it.
|
|
53
|
+
const nonZeroNoteHashCounter = isPending;
|
|
48
54
|
|
|
49
|
-
// To pack the note as
|
|
50
|
-
const noteMetadata = fromRawData(
|
|
55
|
+
// To pack the note as hinted note we first need to reconstruct the note metadata.
|
|
56
|
+
const noteMetadata = fromRawData(nonZeroNoteHashCounter, noteNonce);
|
|
51
57
|
|
|
52
|
-
// Pack
|
|
53
|
-
return [
|
|
58
|
+
// Pack in order: note, contract_address, owner, randomness, storage_slot, metadata (stage, maybe_note_nonce)
|
|
59
|
+
return [
|
|
60
|
+
...note.items,
|
|
61
|
+
contractAddress,
|
|
62
|
+
owner,
|
|
63
|
+
randomness,
|
|
64
|
+
storageSlot,
|
|
65
|
+
new Fr(noteMetadata.stage),
|
|
66
|
+
noteMetadata.maybeNoteNonce,
|
|
67
|
+
];
|
|
54
68
|
}
|
|
@@ -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,11 @@ 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 { BlockHash } from '@aztec/stdlib/block';
|
|
14
16
|
import { ContractClassLog, ContractClassLogFields } from '@aztec/stdlib/logs';
|
|
15
|
-
import { MerkleTreeId } from '@aztec/stdlib/trees';
|
|
16
17
|
|
|
17
18
|
import type { IMiscOracle, IPrivateExecutionOracle, IUtilityExecutionOracle } from './interfaces.js';
|
|
18
|
-
import {
|
|
19
|
+
import { packAsHintedNote } from './note_packing_utils.js';
|
|
19
20
|
|
|
20
21
|
export class UnavailableOracleError extends Error {
|
|
21
22
|
constructor(oracleName: string) {
|
|
@@ -111,9 +112,9 @@ export class Oracle {
|
|
|
111
112
|
return [values.map(toACVMField)];
|
|
112
113
|
}
|
|
113
114
|
|
|
114
|
-
|
|
115
|
-
const context =
|
|
116
|
-
return context.toNoirRepresentation();
|
|
115
|
+
utilityGetUtilityContext(): Promise<(ACVMField | ACVMField[])[]> {
|
|
116
|
+
const context = this.handlerAsUtility().utilityGetUtilityContext();
|
|
117
|
+
return Promise.resolve(context.toNoirRepresentation());
|
|
117
118
|
}
|
|
118
119
|
|
|
119
120
|
async utilityGetKeyValidationRequest([pkMHash]: ACVMField[]): Promise<ACVMField[]> {
|
|
@@ -136,77 +137,94 @@ export class Oracle {
|
|
|
136
137
|
].map(toACVMField);
|
|
137
138
|
}
|
|
138
139
|
|
|
139
|
-
async
|
|
140
|
-
[
|
|
141
|
-
[
|
|
142
|
-
[leafValue]: ACVMField[],
|
|
140
|
+
async utilityGetNoteHashMembershipWitness(
|
|
141
|
+
[anchorBlockHash]: ACVMField[],
|
|
142
|
+
[noteHash]: ACVMField[],
|
|
143
143
|
): Promise<(ACVMField | ACVMField[])[]> {
|
|
144
|
-
const
|
|
145
|
-
const
|
|
146
|
-
const parsedLeafValue = Fr.fromString(leafValue);
|
|
144
|
+
const parsedAnchorBlockHash = BlockHash.fromString(anchorBlockHash);
|
|
145
|
+
const parsedNoteHash = Fr.fromString(noteHash);
|
|
147
146
|
|
|
148
|
-
const witness = await this.handlerAsUtility().
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
parsedLeafValue,
|
|
147
|
+
const witness = await this.handlerAsUtility().utilityGetNoteHashMembershipWitness(
|
|
148
|
+
parsedAnchorBlockHash,
|
|
149
|
+
parsedNoteHash,
|
|
152
150
|
);
|
|
153
151
|
if (!witness) {
|
|
154
152
|
throw new Error(
|
|
155
|
-
`
|
|
153
|
+
`Note hash ${noteHash} not found in the note hash tree at anchor block hash ${parsedAnchorBlockHash.toString()}.`,
|
|
156
154
|
);
|
|
157
155
|
}
|
|
158
|
-
return
|
|
156
|
+
return witness.toNoirRepresentation();
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
async utilityGetBlockHashMembershipWitness(
|
|
160
|
+
[anchorBlockHash]: ACVMField[],
|
|
161
|
+
[blockHash]: ACVMField[],
|
|
162
|
+
): Promise<(ACVMField | ACVMField[])[]> {
|
|
163
|
+
const parsedAnchorBlockHash = BlockHash.fromString(anchorBlockHash);
|
|
164
|
+
const parsedBlockHash = BlockHash.fromString(blockHash);
|
|
165
|
+
|
|
166
|
+
const witness = await this.handlerAsUtility().utilityGetBlockHashMembershipWitness(
|
|
167
|
+
parsedAnchorBlockHash,
|
|
168
|
+
parsedBlockHash,
|
|
169
|
+
);
|
|
170
|
+
if (!witness) {
|
|
171
|
+
throw new Error(
|
|
172
|
+
`Block hash ${parsedBlockHash.toString()} not found in the archive tree at anchor block ${parsedAnchorBlockHash.toString()}.`,
|
|
173
|
+
);
|
|
174
|
+
}
|
|
175
|
+
return witness.toNoirRepresentation();
|
|
159
176
|
}
|
|
160
177
|
|
|
161
178
|
async utilityGetNullifierMembershipWitness(
|
|
162
|
-
[
|
|
179
|
+
[blockHash]: ACVMField[],
|
|
163
180
|
[nullifier]: ACVMField[], // nullifier, we try to find the witness for (to prove inclusion)
|
|
164
181
|
): Promise<(ACVMField | ACVMField[])[]> {
|
|
165
|
-
const
|
|
182
|
+
const parsedBlockHash = BlockHash.fromString(blockHash);
|
|
166
183
|
const parsedNullifier = Fr.fromString(nullifier);
|
|
167
184
|
|
|
168
185
|
const witness = await this.handlerAsUtility().utilityGetNullifierMembershipWitness(
|
|
169
|
-
|
|
186
|
+
parsedBlockHash,
|
|
170
187
|
parsedNullifier,
|
|
171
188
|
);
|
|
172
189
|
if (!witness) {
|
|
173
|
-
throw new Error(
|
|
190
|
+
throw new Error(
|
|
191
|
+
`Nullifier witness not found for nullifier ${parsedNullifier} at block hash ${parsedBlockHash.toString()}.`,
|
|
192
|
+
);
|
|
174
193
|
}
|
|
175
194
|
return witness.toNoirRepresentation();
|
|
176
195
|
}
|
|
177
196
|
|
|
178
197
|
async utilityGetLowNullifierMembershipWitness(
|
|
179
|
-
[
|
|
198
|
+
[blockHash]: ACVMField[],
|
|
180
199
|
[nullifier]: ACVMField[], // nullifier, we try to find the low nullifier witness for (to prove non-inclusion)
|
|
181
200
|
): Promise<(ACVMField | ACVMField[])[]> {
|
|
182
|
-
const
|
|
201
|
+
const parsedBlockHash = BlockHash.fromString(blockHash);
|
|
183
202
|
const parsedNullifier = Fr.fromString(nullifier);
|
|
184
203
|
|
|
185
204
|
const witness = await this.handlerAsUtility().utilityGetLowNullifierMembershipWitness(
|
|
186
|
-
|
|
205
|
+
parsedBlockHash,
|
|
187
206
|
parsedNullifier,
|
|
188
207
|
);
|
|
189
208
|
if (!witness) {
|
|
190
209
|
throw new Error(
|
|
191
|
-
`Low nullifier witness not found for nullifier ${parsedNullifier} at block ${
|
|
210
|
+
`Low nullifier witness not found for nullifier ${parsedNullifier} at block hash ${parsedBlockHash.toString()}.`,
|
|
192
211
|
);
|
|
193
212
|
}
|
|
194
213
|
return witness.toNoirRepresentation();
|
|
195
214
|
}
|
|
196
215
|
|
|
197
216
|
async utilityGetPublicDataWitness(
|
|
198
|
-
[
|
|
217
|
+
[blockHash]: ACVMField[],
|
|
199
218
|
[leafSlot]: ACVMField[],
|
|
200
219
|
): Promise<(ACVMField | ACVMField[])[]> {
|
|
201
|
-
const
|
|
220
|
+
const parsedBlockHash = BlockHash.fromString(blockHash);
|
|
202
221
|
const parsedLeafSlot = Fr.fromString(leafSlot);
|
|
203
222
|
|
|
204
|
-
const witness = await this.handlerAsUtility().utilityGetPublicDataWitness(
|
|
205
|
-
BlockNumber(parsedBlockNumber),
|
|
206
|
-
parsedLeafSlot,
|
|
207
|
-
);
|
|
223
|
+
const witness = await this.handlerAsUtility().utilityGetPublicDataWitness(parsedBlockHash, parsedLeafSlot);
|
|
208
224
|
if (!witness) {
|
|
209
|
-
throw new Error(
|
|
225
|
+
throw new Error(
|
|
226
|
+
`Public data witness not found for slot ${parsedLeafSlot} at block hash ${parsedBlockHash.toString()}.`,
|
|
227
|
+
);
|
|
210
228
|
}
|
|
211
229
|
return witness.toNoirRepresentation();
|
|
212
230
|
}
|
|
@@ -230,16 +248,24 @@ export class Oracle {
|
|
|
230
248
|
return [witness.map(toACVMField)];
|
|
231
249
|
}
|
|
232
250
|
|
|
233
|
-
async
|
|
251
|
+
async utilityTryGetPublicKeysAndPartialAddress([address]: ACVMField[]): Promise<(ACVMField | ACVMField[])[]> {
|
|
234
252
|
const parsedAddress = AztecAddress.fromField(Fr.fromString(address));
|
|
235
|
-
const
|
|
236
|
-
await this.handlerAsUtility().utilityGetPublicKeysAndPartialAddress(parsedAddress);
|
|
253
|
+
const result = await this.handlerAsUtility().utilityTryGetPublicKeysAndPartialAddress(parsedAddress);
|
|
237
254
|
|
|
238
|
-
return
|
|
255
|
+
// We are going to return a Noir Option struct to represent the possibility of null values. Options are a struct
|
|
256
|
+
// with two fields: `some` (a boolean) and `value` (a field array in this case).
|
|
257
|
+
if (result === undefined) {
|
|
258
|
+
// No data was found so we set `some` to 0 and pad `value` with zeros get the correct return size.
|
|
259
|
+
return [toACVMField(0), Array(13).fill(toACVMField(0))];
|
|
260
|
+
} else {
|
|
261
|
+
// Data was found so we set `some` to 1 and return it along with `value`.
|
|
262
|
+
return [toACVMField(1), [...result.publicKeys.toFields(), result.partialAddress].map(toACVMField)];
|
|
263
|
+
}
|
|
239
264
|
}
|
|
240
265
|
|
|
241
266
|
async utilityGetNotes(
|
|
242
|
-
[
|
|
267
|
+
[ownerSome]: ACVMField[],
|
|
268
|
+
[ownerValue]: ACVMField[],
|
|
243
269
|
[storageSlot]: ACVMField[],
|
|
244
270
|
[numSelects]: ACVMField[],
|
|
245
271
|
selectByIndexes: ACVMField[],
|
|
@@ -255,10 +281,12 @@ export class Oracle {
|
|
|
255
281
|
[offset]: ACVMField[],
|
|
256
282
|
[status]: ACVMField[],
|
|
257
283
|
[maxNotes]: ACVMField[],
|
|
258
|
-
[
|
|
284
|
+
[packedHintedNoteLength]: ACVMField[],
|
|
259
285
|
): Promise<(ACVMField | ACVMField[])[]> {
|
|
286
|
+
// Parse Option<AztecAddress>: ownerSome is 0 for None, 1 for Some
|
|
287
|
+
const owner = Fr.fromString(ownerSome).toNumber() === 1 ? AztecAddress.fromString(ownerValue) : undefined;
|
|
260
288
|
const noteDatas = await this.handlerAsUtility().utilityGetNotes(
|
|
261
|
-
|
|
289
|
+
owner,
|
|
262
290
|
Fr.fromString(storageSlot),
|
|
263
291
|
+numSelects,
|
|
264
292
|
selectByIndexes.map(s => +s),
|
|
@@ -275,15 +303,25 @@ export class Oracle {
|
|
|
275
303
|
+status,
|
|
276
304
|
);
|
|
277
305
|
|
|
278
|
-
const
|
|
306
|
+
const returnDataAsArrayOfPackedHintedNotes = noteDatas.map(noteData =>
|
|
307
|
+
packAsHintedNote({
|
|
308
|
+
contractAddress: noteData.contractAddress,
|
|
309
|
+
owner: noteData.owner,
|
|
310
|
+
randomness: noteData.randomness,
|
|
311
|
+
storageSlot: noteData.storageSlot,
|
|
312
|
+
noteNonce: noteData.noteNonce,
|
|
313
|
+
isPending: noteData.isPending,
|
|
314
|
+
note: noteData.note,
|
|
315
|
+
}),
|
|
316
|
+
);
|
|
279
317
|
|
|
280
318
|
// Now we convert each sub-array to an array of ACVMField
|
|
281
|
-
const returnDataAsArrayOfACVMFieldArrays =
|
|
319
|
+
const returnDataAsArrayOfACVMFieldArrays = returnDataAsArrayOfPackedHintedNotes.map(subArray =>
|
|
282
320
|
subArray.map(toACVMField),
|
|
283
321
|
);
|
|
284
322
|
|
|
285
323
|
// At last we convert the array of arrays to a bounded vec of arrays
|
|
286
|
-
return arrayOfArraysToBoundedVecOfArrays(returnDataAsArrayOfACVMFieldArrays, +maxNotes, +
|
|
324
|
+
return arrayOfArraysToBoundedVecOfArrays(returnDataAsArrayOfACVMFieldArrays, +maxNotes, +packedHintedNoteLength);
|
|
287
325
|
}
|
|
288
326
|
|
|
289
327
|
privateNotifyCreatedNote(
|
|
@@ -325,6 +363,14 @@ export class Oracle {
|
|
|
325
363
|
return [];
|
|
326
364
|
}
|
|
327
365
|
|
|
366
|
+
async privateIsNullifierPending([innerNullifier]: ACVMField[], [contractAddress]: ACVMField[]): Promise<ACVMField[]> {
|
|
367
|
+
const isPending = await this.handlerAsPrivate().privateIsNullifierPending(
|
|
368
|
+
Fr.fromString(innerNullifier),
|
|
369
|
+
AztecAddress.fromString(contractAddress),
|
|
370
|
+
);
|
|
371
|
+
return [toACVMField(isPending)];
|
|
372
|
+
}
|
|
373
|
+
|
|
328
374
|
async utilityCheckNullifierExists([innerNullifier]: ACVMField[]): Promise<ACVMField[]> {
|
|
329
375
|
const exists = await this.handlerAsUtility().utilityCheckNullifierExists(Fr.fromString(innerNullifier));
|
|
330
376
|
return [toACVMField(exists)];
|
|
@@ -344,15 +390,15 @@ export class Oracle {
|
|
|
344
390
|
}
|
|
345
391
|
|
|
346
392
|
async utilityStorageRead(
|
|
393
|
+
[blockHash]: ACVMField[],
|
|
347
394
|
[contractAddress]: ACVMField[],
|
|
348
395
|
[startStorageSlot]: ACVMField[],
|
|
349
|
-
[blockNumber]: ACVMField[],
|
|
350
396
|
[numberOfElements]: ACVMField[],
|
|
351
397
|
): Promise<ACVMField[][]> {
|
|
352
398
|
const values = await this.handlerAsUtility().utilityStorageRead(
|
|
399
|
+
BlockHash.fromString(blockHash),
|
|
353
400
|
new AztecAddress(Fr.fromString(contractAddress)),
|
|
354
401
|
Fr.fromString(startStorageSlot),
|
|
355
|
-
BlockNumber(+blockNumber),
|
|
356
402
|
+numberOfElements,
|
|
357
403
|
);
|
|
358
404
|
return [values.map(toACVMField)];
|
|
@@ -371,7 +417,7 @@ export class Oracle {
|
|
|
371
417
|
return Promise.resolve([]);
|
|
372
418
|
}
|
|
373
419
|
|
|
374
|
-
utilityDebugLog(
|
|
420
|
+
async utilityDebugLog(
|
|
375
421
|
level: ACVMField[],
|
|
376
422
|
message: ACVMField[],
|
|
377
423
|
_ignoredFieldsSize: ACVMField[],
|
|
@@ -380,8 +426,8 @@ export class Oracle {
|
|
|
380
426
|
const levelFr = Fr.fromString(level[0]);
|
|
381
427
|
const messageStr = message.map(acvmField => String.fromCharCode(Fr.fromString(acvmField).toNumber())).join('');
|
|
382
428
|
const fieldsFr = fields.map(Fr.fromString);
|
|
383
|
-
this.handlerAsMisc().utilityDebugLog(levelFr.toNumber(), messageStr, fieldsFr);
|
|
384
|
-
return
|
|
429
|
+
await this.handlerAsMisc().utilityDebugLog(levelFr.toNumber(), messageStr, fieldsFr);
|
|
430
|
+
return [];
|
|
385
431
|
}
|
|
386
432
|
|
|
387
433
|
// This function's name is directly hardcoded in `circuit_recorder.ts`. Don't forget to update it there if you
|
|
@@ -462,12 +508,12 @@ export class Oracle {
|
|
|
462
508
|
return [];
|
|
463
509
|
}
|
|
464
510
|
|
|
465
|
-
async
|
|
511
|
+
async utilityValidateAndStoreEnqueuedNotesAndEvents(
|
|
466
512
|
[contractAddress]: ACVMField[],
|
|
467
513
|
[noteValidationRequestsArrayBaseSlot]: ACVMField[],
|
|
468
514
|
[eventValidationRequestsArrayBaseSlot]: ACVMField[],
|
|
469
515
|
): Promise<ACVMField[]> {
|
|
470
|
-
await this.handlerAsUtility().
|
|
516
|
+
await this.handlerAsUtility().utilityValidateAndStoreEnqueuedNotesAndEvents(
|
|
471
517
|
AztecAddress.fromString(contractAddress),
|
|
472
518
|
Fr.fromString(noteValidationRequestsArrayBaseSlot),
|
|
473
519
|
Fr.fromString(eventValidationRequestsArrayBaseSlot),
|
|
@@ -1,9 +1,7 @@
|
|
|
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
|
-
import { ProtocolContractAddress } from '@aztec/protocol-contracts';
|
|
7
5
|
import {
|
|
8
6
|
type ACVMWitness,
|
|
9
7
|
type CircuitSimulator,
|
|
@@ -19,15 +17,10 @@ import {
|
|
|
19
17
|
countArgumentsSize,
|
|
20
18
|
} from '@aztec/stdlib/abi';
|
|
21
19
|
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
22
|
-
import type { ContractInstance } from '@aztec/stdlib/contract';
|
|
23
|
-
import { DelayedPublicMutableValues, DelayedPublicMutableValuesWithHash } from '@aztec/stdlib/delayed-public-mutable';
|
|
24
|
-
import type { AztecNode } from '@aztec/stdlib/interfaces/client';
|
|
25
20
|
import { PrivateCircuitPublicInputs } from '@aztec/stdlib/kernel';
|
|
26
21
|
import type { CircuitWitnessGenerationStats } from '@aztec/stdlib/stats';
|
|
27
|
-
import {
|
|
28
|
-
import type { UInt64 } from '@aztec/stdlib/types';
|
|
22
|
+
import { PrivateCallExecutionResult } from '@aztec/stdlib/tx';
|
|
29
23
|
|
|
30
|
-
import type { ExecutionDataProvider } from '../execution_data_provider.js';
|
|
31
24
|
import { Oracle } from './oracle.js';
|
|
32
25
|
import type { PrivateExecutionOracle } from './private_execution_oracle.js';
|
|
33
26
|
|
|
@@ -85,7 +78,6 @@ export async function executePrivateFunction(
|
|
|
85
78
|
|
|
86
79
|
const rawReturnValues = await privateExecutionOracle.privateLoadFromExecutionCache(publicInputs.returnsHash);
|
|
87
80
|
|
|
88
|
-
const noteHashLeafIndexMap = privateExecutionOracle.getNoteHashLeafIndexMap();
|
|
89
81
|
const newNotes = privateExecutionOracle.getNewNotes();
|
|
90
82
|
const noteHashNullifierCounterMap = privateExecutionOracle.getNoteHashNullifierCounterMap();
|
|
91
83
|
const offchainEffects = privateExecutionOracle.getOffchainEffects();
|
|
@@ -108,7 +100,6 @@ export async function executePrivateFunction(
|
|
|
108
100
|
Buffer.from(artifact.verificationKey!, 'base64'),
|
|
109
101
|
partialWitness,
|
|
110
102
|
publicInputs,
|
|
111
|
-
noteHashLeafIndexMap,
|
|
112
103
|
newNotes,
|
|
113
104
|
noteHashNullifierCounterMap,
|
|
114
105
|
rawReturnValues,
|
|
@@ -148,61 +139,3 @@ export function extractPrivateCircuitPublicInputs(
|
|
|
148
139
|
}
|
|
149
140
|
return PrivateCircuitPublicInputs.fromFields(returnData);
|
|
150
141
|
}
|
|
151
|
-
|
|
152
|
-
/**
|
|
153
|
-
* Read the current class id of a contract from the execution data provider or AztecNode. If not found, class id
|
|
154
|
-
* from the instance is used.
|
|
155
|
-
* @param contractAddress - The address of the contract to read the class id for.
|
|
156
|
-
* @param instance - The instance of the contract.
|
|
157
|
-
* @param executionDataProvider - The execution data provider.
|
|
158
|
-
* @param blockNumber - The block number at which to load the DelayedPublicMutable storing the class id.
|
|
159
|
-
* @param timestamp - The timestamp at which to obtain the class id from the DelayedPublicMutable.
|
|
160
|
-
* @returns The current class id.
|
|
161
|
-
*/
|
|
162
|
-
export async function readCurrentClassId(
|
|
163
|
-
contractAddress: AztecAddress,
|
|
164
|
-
instance: ContractInstance,
|
|
165
|
-
executionDataProvider: ExecutionDataProvider | AztecNode,
|
|
166
|
-
blockNumber: BlockNumber,
|
|
167
|
-
timestamp: UInt64,
|
|
168
|
-
) {
|
|
169
|
-
const { delayedPublicMutableSlot } = await DelayedPublicMutableValuesWithHash.getContractUpdateSlots(contractAddress);
|
|
170
|
-
const delayedPublicMutableValues = await DelayedPublicMutableValues.readFromTree(delayedPublicMutableSlot, slot =>
|
|
171
|
-
executionDataProvider.getPublicStorageAt(blockNumber, ProtocolContractAddress.ContractInstanceRegistry, slot),
|
|
172
|
-
);
|
|
173
|
-
let currentClassId = delayedPublicMutableValues.svc.getCurrentAt(timestamp)[0];
|
|
174
|
-
if (currentClassId.isZero()) {
|
|
175
|
-
currentClassId = instance.originalContractClassId;
|
|
176
|
-
}
|
|
177
|
-
return currentClassId;
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
/**
|
|
181
|
-
* Verify that the current class id of a contract obtained from AztecNode is the same as the one in the execution data
|
|
182
|
-
* provider (i.e. PXE).
|
|
183
|
-
* @param contractAddress - The address of the contract to verify class id for.
|
|
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.
|
|
187
|
-
*/
|
|
188
|
-
export async function verifyCurrentClassId(
|
|
189
|
-
contractAddress: AztecAddress,
|
|
190
|
-
executionDataProvider: ExecutionDataProvider,
|
|
191
|
-
header?: BlockHeader,
|
|
192
|
-
) {
|
|
193
|
-
header = header ?? (await executionDataProvider.getAnchorBlockHeader());
|
|
194
|
-
|
|
195
|
-
const instance = await executionDataProvider.getContractInstance(contractAddress);
|
|
196
|
-
const currentClassId = await readCurrentClassId(
|
|
197
|
-
contractAddress,
|
|
198
|
-
instance,
|
|
199
|
-
executionDataProvider,
|
|
200
|
-
header.globalVariables.blockNumber,
|
|
201
|
-
header.globalVariables.timestamp,
|
|
202
|
-
);
|
|
203
|
-
if (!instance.currentContractClassId.equals(currentClassId)) {
|
|
204
|
-
throw new Error(
|
|
205
|
-
`Contract ${contractAddress} is outdated, current class id is ${currentClassId}, local class id is ${instance.currentContractClassId}`,
|
|
206
|
-
);
|
|
207
|
-
}
|
|
208
|
-
}
|