@aztec/pxe 0.0.1-commit.fce3e4f → 0.0.1-commit.ffe5b04ea
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/access_scopes.d.ts +9 -0
- package/dest/access_scopes.d.ts.map +1 -0
- package/dest/access_scopes.js +6 -0
- 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 +7 -5
- package/dest/config/index.d.ts.map +1 -1
- package/dest/config/index.js +18 -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 +76 -24
- package/dest/contract_function_simulator/contract_function_simulator.d.ts.map +1 -1
- package/dest/contract_function_simulator/contract_function_simulator.js +223 -78
- package/dest/contract_function_simulator/execution_note_cache.d.ts +21 -11
- package/dest/contract_function_simulator/execution_note_cache.d.ts.map +1 -1
- package/dest/contract_function_simulator/execution_note_cache.js +49 -31
- package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts +6 -6
- package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts.map +1 -1
- package/dest/contract_function_simulator/execution_tagging_index_cache.js +4 -4
- 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 +7 -4
- 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 +6 -5
- 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 +7 -4
- 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 +61 -50
- 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 +44 -42
- package/dest/contract_function_simulator/oracle/oracle.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/oracle.js +191 -113
- package/dest/contract_function_simulator/oracle/private_execution.d.ts +2 -27
- package/dest/contract_function_simulator/oracle/private_execution.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/private_execution.js +3 -39
- package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts +69 -60
- package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/private_execution_oracle.js +131 -88
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts +132 -54
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.js +231 -102
- 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_logging.d.ts +22 -0
- package/dest/contract_logging.d.ts.map +1 -0
- package/dest/contract_logging.js +23 -0
- package/dest/contract_sync/contract_sync_service.d.ts +43 -0
- package/dest/contract_sync/contract_sync_service.d.ts.map +1 -0
- package/dest/contract_sync/contract_sync_service.js +97 -0
- package/dest/contract_sync/helpers.d.ts +29 -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 +45 -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 +4 -2
- package/dest/entrypoints/client/bundle/index.d.ts.map +1 -1
- package/dest/entrypoints/client/bundle/index.js +3 -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 +32 -9
- package/dest/entrypoints/client/lazy/index.d.ts +4 -2
- package/dest/entrypoints/client/lazy/index.d.ts.map +1 -1
- package/dest/entrypoints/client/lazy/index.js +3 -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 +33 -10
- 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 +6 -2
- package/dest/entrypoints/server/index.d.ts.map +1 -1
- package/dest/entrypoints/server/index.js +5 -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 +39 -16
- package/dest/error_enriching.d.ts +4 -4
- package/dest/error_enriching.d.ts.map +1 -1
- package/dest/error_enriching.js +6 -6
- package/dest/events/event_service.d.ts +15 -0
- package/dest/events/event_service.d.ts.map +1 -0
- package/dest/events/event_service.js +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 +29 -0
- package/dest/logs/log_service.d.ts.map +1 -0
- package/dest/logs/log_service.js +118 -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 +49 -0
- package/dest/notes/note_service.d.ts.map +1 -0
- package/dest/notes/note_service.js +148 -0
- package/dest/notes_filter.d.ts +25 -0
- package/dest/notes_filter.d.ts.map +1 -0
- package/dest/notes_filter.js +4 -0
- package/dest/oracle_version.d.ts +3 -3
- package/dest/oracle_version.d.ts.map +1 -1
- package/dest/oracle_version.js +5 -4
- package/dest/private_kernel/hints/compute_tx_expiration_timestamp.d.ts +4 -0
- package/dest/private_kernel/hints/compute_tx_expiration_timestamp.d.ts.map +1 -0
- package/dest/private_kernel/hints/{compute_tx_include_by_timestamp.js → compute_tx_expiration_timestamp.js} +12 -12
- package/dest/private_kernel/hints/index.d.ts +3 -3
- package/dest/private_kernel/hints/index.d.ts.map +1 -1
- package/dest/private_kernel/hints/index.js +2 -2
- package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.d.ts +29 -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} +141 -74
- package/dest/private_kernel/hints/test_utils.d.ts +122 -0
- package/dest/private_kernel/hints/test_utils.d.ts.map +1 -0
- package/dest/private_kernel/hints/test_utils.js +203 -0
- 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 +28 -21
- package/dest/private_kernel/private_kernel_oracle.d.ts +26 -25
- package/dest/private_kernel/private_kernel_oracle.d.ts.map +1 -1
- package/dest/private_kernel/private_kernel_oracle.js +94 -2
- package/dest/pxe.d.ts +114 -103
- package/dest/pxe.d.ts.map +1 -1
- package/dest/pxe.js +263 -256
- 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_store/contract_store.d.ts +93 -0
- package/dest/storage/contract_store/contract_store.d.ts.map +1 -0
- package/dest/storage/contract_store/contract_store.js +309 -0
- 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 +343 -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 +60 -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 +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 +33 -0
- package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts +17 -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 +71 -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 +18 -0
- package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts.map +1 -0
- package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.js +59 -0
- package/package.json +28 -19
- package/src/access_scopes.ts +9 -0
- 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 +18 -4
- 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 +385 -110
- package/src/contract_function_simulator/execution_note_cache.ts +51 -28
- package/src/contract_function_simulator/execution_tagging_index_cache.ts +6 -6
- 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 +7 -3
- 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 +6 -3
- package/src/contract_function_simulator/noir-structs/utility_context.ts +6 -25
- package/src/contract_function_simulator/oracle/interfaces.ts +70 -52
- 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 +213 -131
- package/src/contract_function_simulator/oracle/private_execution.ts +3 -69
- package/src/contract_function_simulator/oracle/private_execution_oracle.ts +182 -122
- package/src/contract_function_simulator/oracle/utility_execution_oracle.ts +366 -114
- 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_logging.ts +39 -0
- package/src/contract_sync/contract_sync_service.ts +152 -0
- package/src/contract_sync/helpers.ts +98 -0
- package/src/debug/pxe_debug_utils.ts +93 -0
- package/src/entrypoints/client/bundle/index.ts +3 -1
- package/src/entrypoints/client/bundle/utils.ts +24 -17
- package/src/entrypoints/client/lazy/index.ts +3 -1
- package/src/entrypoints/client/lazy/utils.ts +25 -18
- package/src/entrypoints/pxe_creation_options.ts +6 -2
- package/src/entrypoints/server/index.ts +5 -1
- package/src/entrypoints/server/utils.ts +33 -41
- 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 +213 -0
- package/src/notes/index.ts +1 -0
- package/src/notes/note_service.ts +196 -0
- package/src/notes_filter.ts +26 -0
- package/src/oracle_version.ts +5 -4
- package/src/private_kernel/hints/{compute_tx_include_by_timestamp.ts → compute_tx_expiration_timestamp.ts} +13 -13
- package/src/private_kernel/hints/index.ts +2 -2
- package/src/private_kernel/hints/{build_private_kernel_reset_private_inputs.ts → private_kernel_reset_private_inputs_builder.ts} +197 -139
- package/src/private_kernel/hints/test_utils.ts +325 -0
- package/src/private_kernel/private_kernel_execution_prover.ts +32 -23
- package/src/private_kernel/private_kernel_oracle.ts +118 -37
- package/src/pxe.ts +403 -347
- 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 -11
- 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_store/contract_store.ts +429 -0
- 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 +418 -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 +143 -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 +92 -0
- package/src/tagging/index.ts +18 -5
- package/src/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.ts +140 -0
- package/src/tagging/recipient_sync/utils/find_highest_indexes.ts +34 -0
- package/src/tagging/recipient_sync/utils/load_logs_for_range.ts +44 -0
- package/src/tagging/sender_sync/sync_sender_tagging_indexes.ts +94 -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 +75 -0
- package/dest/contract_function_simulator/execution_data_provider.d.ts +0 -265
- 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 -122
- package/dest/contract_function_simulator/pxe_oracle_interface.d.ts.map +0 -1
- package/dest/contract_function_simulator/pxe_oracle_interface.js +0 -694
- 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/hints/compute_tx_include_by_timestamp.d.ts +0 -4
- package/dest/private_kernel/hints/compute_tx_include_by_timestamp.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 +0 -64
- package/dest/storage/contract_data_provider/contract_data_provider.d.ts.map +0 -1
- package/dest/storage/contract_data_provider/contract_data_provider.js +0 -193
- 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 -311
- 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 -10
- package/dest/storage/sync_data_provider/sync_data_provider.d.ts.map +0 -1
- package/dest/storage/tagging_data_provider/index.d.ts +0 -2
- package/dest/storage/tagging_data_provider/index.d.ts.map +0 -1
- package/dest/storage/tagging_data_provider/index.js +0 -1
- package/dest/storage/tagging_data_provider/tagging_data_provider.d.ts +0 -40
- package/dest/storage/tagging_data_provider/tagging_data_provider.d.ts.map +0 -1
- package/dest/storage/tagging_data_provider/tagging_data_provider.js +0 -89
- package/dest/synchronizer/index.d.ts +0 -2
- package/dest/synchronizer/index.d.ts.map +0 -1
- package/dest/synchronizer/index.js +0 -1
- package/dest/synchronizer/synchronizer.d.ts +0 -35
- package/dest/synchronizer/synchronizer.d.ts.map +0 -1
- package/dest/synchronizer/synchronizer.js +0 -101
- 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 -333
- package/src/contract_function_simulator/proxied_node.ts +0 -33
- package/src/contract_function_simulator/pxe_oracle_interface.ts +0 -1008
- 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/contract_data_provider.ts +0 -277
- 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 -399
- 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 -120
- package/src/tagging/siloed_tag.ts +0 -22
- package/src/tagging/tag.ts +0 -16
- package/src/tagging/utils.ts +0 -31
|
@@ -1,55 +1,68 @@
|
|
|
1
1
|
import { MAX_FR_CALLDATA_TO_ALL_ENQUEUED_CALLS, PRIVATE_CONTEXT_INPUTS_LENGTH } from '@aztec/constants';
|
|
2
|
-
import { Fr } from '@aztec/foundation/
|
|
2
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
3
|
import { createLogger } from '@aztec/foundation/log';
|
|
4
4
|
import { Timer } from '@aztec/foundation/timer';
|
|
5
5
|
import { toACVMWitness } from '@aztec/simulator/client';
|
|
6
6
|
import { FunctionSelector, countArgumentsSize } from '@aztec/stdlib/abi';
|
|
7
|
-
import {
|
|
7
|
+
import { siloNullifier } from '@aztec/stdlib/hash';
|
|
8
8
|
import { PrivateContextInputs } from '@aztec/stdlib/kernel';
|
|
9
|
+
import { ExtendedDirectionalAppTaggingSecret } from '@aztec/stdlib/logs';
|
|
10
|
+
import { Tag } from '@aztec/stdlib/logs';
|
|
9
11
|
import { Note } from '@aztec/stdlib/note';
|
|
10
12
|
import { CallContext, CountedContractClassLog, NoteAndSlot } from '@aztec/stdlib/tx';
|
|
11
|
-
import {
|
|
13
|
+
import { NoteService } from '../../notes/note_service.js';
|
|
14
|
+
import { syncSenderTaggingIndexes } from '../../tagging/index.js';
|
|
12
15
|
import { pickNotes } from '../pick_notes.js';
|
|
13
|
-
import { executePrivateFunction
|
|
16
|
+
import { executePrivateFunction } from './private_execution.js';
|
|
14
17
|
import { UtilityExecutionOracle } from './utility_execution_oracle.js';
|
|
15
18
|
/**
|
|
16
19
|
* The execution oracle for the private part of a transaction.
|
|
17
20
|
*/ export class PrivateExecutionOracle extends UtilityExecutionOracle {
|
|
21
|
+
isPrivate = true;
|
|
22
|
+
/**
|
|
23
|
+
* New notes created during this execution.
|
|
24
|
+
* It's possible that a note in this list has been nullified (in the same or other executions) and doesn't exist in
|
|
25
|
+
* the ExecutionNoteCache and the final proof data. But we still include those notes in the execution result because
|
|
26
|
+
* their commitments are still in the public inputs of this execution.
|
|
27
|
+
* This information is only for references (currently used for tests), and is not used for any sort of constrains.
|
|
28
|
+
* Users can also use this to get a clearer idea of what's happened during a simulation.
|
|
29
|
+
*/ newNotes = [];
|
|
30
|
+
noteHashNullifierCounterMap = new Map();
|
|
31
|
+
contractClassLogs = [];
|
|
32
|
+
offchainEffects = [];
|
|
33
|
+
nestedExecutionResults = [];
|
|
18
34
|
argsHash;
|
|
19
35
|
txContext;
|
|
20
36
|
callContext;
|
|
21
|
-
|
|
37
|
+
utilityExecutor;
|
|
22
38
|
executionCache;
|
|
23
39
|
noteCache;
|
|
24
40
|
taggingIndexCache;
|
|
41
|
+
senderTaggingStore;
|
|
42
|
+
contractSyncService;
|
|
25
43
|
totalPublicCalldataCount;
|
|
26
44
|
sideEffectCounter;
|
|
27
45
|
senderForTags;
|
|
28
46
|
simulator;
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
contractClassLogs;
|
|
49
|
-
offchainEffects;
|
|
50
|
-
nestedExecutionResults;
|
|
51
|
-
constructor(argsHash, txContext, callContext, /** Header of a block whose state is used during private execution (not the block the transaction is included in). */ anchorBlockHeader, /** List of transient auth witnesses to be used during this simulation */ authWitnesses, capsules, executionCache, noteCache, taggingIndexCache, executionDataProvider, totalPublicCalldataCount = 0, sideEffectCounter = 0, log = createLogger('simulator:client_execution_context'), scopes, senderForTags, simulator){
|
|
52
|
-
super(callContext.contractAddress, authWitnesses, capsules, executionDataProvider, log, scopes), this.argsHash = argsHash, this.txContext = txContext, this.callContext = callContext, this.anchorBlockHeader = anchorBlockHeader, this.executionCache = executionCache, this.noteCache = noteCache, this.taggingIndexCache = taggingIndexCache, this.totalPublicCalldataCount = totalPublicCalldataCount, this.sideEffectCounter = sideEffectCounter, this.senderForTags = senderForTags, this.simulator = simulator, this.isPrivate = true, this.newNotes = [], this.noteHashLeafIndexMap = new Map(), this.noteHashNullifierCounterMap = new Map(), this.contractClassLogs = [], this.offchainEffects = [], this.nestedExecutionResults = [];
|
|
47
|
+
constructor(args){
|
|
48
|
+
super({
|
|
49
|
+
...args,
|
|
50
|
+
contractAddress: args.callContext.contractAddress,
|
|
51
|
+
log: args.log ?? createLogger('simulator:client_execution_context')
|
|
52
|
+
});
|
|
53
|
+
this.argsHash = args.argsHash;
|
|
54
|
+
this.txContext = args.txContext;
|
|
55
|
+
this.callContext = args.callContext;
|
|
56
|
+
this.utilityExecutor = args.utilityExecutor;
|
|
57
|
+
this.executionCache = args.executionCache;
|
|
58
|
+
this.noteCache = args.noteCache;
|
|
59
|
+
this.taggingIndexCache = args.taggingIndexCache;
|
|
60
|
+
this.senderTaggingStore = args.senderTaggingStore;
|
|
61
|
+
this.contractSyncService = args.contractSyncService;
|
|
62
|
+
this.totalPublicCalldataCount = args.totalPublicCalldataCount ?? 0;
|
|
63
|
+
this.sideEffectCounter = args.sideEffectCounter ?? 0;
|
|
64
|
+
this.senderForTags = args.senderForTags;
|
|
65
|
+
this.simulator = args.simulator;
|
|
53
66
|
}
|
|
54
67
|
getPrivateContextInputs() {
|
|
55
68
|
return new PrivateContextInputs(this.callContext, this.anchorBlockHeader, this.txContext, this.sideEffectCounter);
|
|
@@ -77,12 +90,6 @@ import { UtilityExecutionOracle } from './utility_execution_oracle.js';
|
|
|
77
90
|
return toACVMWitness(0, fields);
|
|
78
91
|
}
|
|
79
92
|
/**
|
|
80
|
-
* The KernelProver will use this to fully populate witnesses and provide hints to the kernel circuit
|
|
81
|
-
* regarding which note hash each settled read request corresponds to.
|
|
82
|
-
*/ getNoteHashLeafIndexMap() {
|
|
83
|
-
return this.noteHashLeafIndexMap;
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
93
|
* Get the data for the newly created notes.
|
|
87
94
|
*/ getNewNotes() {
|
|
88
95
|
return this.newNotes;
|
|
@@ -101,7 +108,7 @@ import { UtilityExecutionOracle } from './utility_execution_oracle.js';
|
|
|
101
108
|
return this.offchainEffects;
|
|
102
109
|
}
|
|
103
110
|
/**
|
|
104
|
-
* Returns the pre
|
|
111
|
+
* Returns the pre-tags that were used in this execution (and that need to be stored in the db).
|
|
105
112
|
*/ getUsedPreTags() {
|
|
106
113
|
return this.taggingIndexCache.getUsedPreTags();
|
|
107
114
|
}
|
|
@@ -119,7 +126,7 @@ import { UtilityExecutionOracle } from './utility_execution_oracle.js';
|
|
|
119
126
|
*
|
|
120
127
|
* The value persists through nested calls, meaning all calls down the stack will use the same
|
|
121
128
|
* 'senderForTags' value (unless it is replaced).
|
|
122
|
-
*/
|
|
129
|
+
*/ getSenderForTags() {
|
|
123
130
|
return Promise.resolve(this.senderForTags);
|
|
124
131
|
}
|
|
125
132
|
/**
|
|
@@ -132,7 +139,7 @@ import { UtilityExecutionOracle } from './utility_execution_oracle.js';
|
|
|
132
139
|
* Account contracts typically set this value before calling other contracts. The value persists
|
|
133
140
|
* through nested calls, meaning all calls down the stack will use the same 'senderForTags'
|
|
134
141
|
* value (unless it is replaced by another call to this setter).
|
|
135
|
-
*/
|
|
142
|
+
*/ setSenderForTags(senderForTags) {
|
|
136
143
|
this.senderForTags = senderForTags;
|
|
137
144
|
return Promise.resolve();
|
|
138
145
|
}
|
|
@@ -141,16 +148,21 @@ import { UtilityExecutionOracle } from './utility_execution_oracle.js';
|
|
|
141
148
|
* @param sender - The address sending the log
|
|
142
149
|
* @param recipient - The address receiving the log
|
|
143
150
|
* @returns An app tag to be used in a log.
|
|
144
|
-
*/ async
|
|
145
|
-
const
|
|
146
|
-
const index = await this.#getIndexToUseForSecret(
|
|
147
|
-
this.
|
|
148
|
-
this.taggingIndexCache.setLastUsedIndex(
|
|
151
|
+
*/ async getNextAppTagAsSender(sender, recipient) {
|
|
152
|
+
const extendedSecret = await this.#calculateExtendedDirectionalAppTaggingSecret(this.contractAddress, sender, recipient);
|
|
153
|
+
const index = await this.#getIndexToUseForSecret(extendedSecret);
|
|
154
|
+
this.logger.debug(`Incrementing tagging index for sender: ${sender}, recipient: ${recipient}, contract: ${this.contractAddress} to ${index}`);
|
|
155
|
+
this.taggingIndexCache.setLastUsedIndex(extendedSecret, index);
|
|
149
156
|
return Tag.compute({
|
|
150
|
-
|
|
157
|
+
extendedSecret,
|
|
151
158
|
index
|
|
152
159
|
});
|
|
153
160
|
}
|
|
161
|
+
async #calculateExtendedDirectionalAppTaggingSecret(contractAddress, sender, recipient) {
|
|
162
|
+
const senderCompleteAddress = await this.getCompleteAddressOrFail(sender);
|
|
163
|
+
const senderIvsk = await this.keyStore.getMasterIncomingViewingSecretKey(sender);
|
|
164
|
+
return ExtendedDirectionalAppTaggingSecret.compute(senderCompleteAddress, senderIvsk, recipient, contractAddress, recipient);
|
|
165
|
+
}
|
|
154
166
|
async #getIndexToUseForSecret(secret) {
|
|
155
167
|
// If we have the tagging index in the cache, we use it. If not we obtain it from the execution data provider.
|
|
156
168
|
const lastUsedIndexInTx = this.taggingIndexCache.getLastUsedIndex(secret);
|
|
@@ -160,8 +172,8 @@ import { UtilityExecutionOracle } from './utility_execution_oracle.js';
|
|
|
160
172
|
// This is a tagging secret we've not yet used in this tx, so first sync our store to make sure its indices
|
|
161
173
|
// are up to date. We do this here because this store is not synced as part of the global sync because
|
|
162
174
|
// that'd be wasteful as most tagging secrets are not used in each tx.
|
|
163
|
-
await this.
|
|
164
|
-
const lastUsedIndex = await this.
|
|
175
|
+
await syncSenderTaggingIndexes(secret, this.aztecNode, this.senderTaggingStore, await this.anchorBlockHeader.hash(), this.jobId);
|
|
176
|
+
const lastUsedIndex = await this.senderTaggingStore.getLastUsedIndex(secret, this.jobId);
|
|
165
177
|
// If lastUsedIndex is undefined, we've never used this secret, so start from 0
|
|
166
178
|
// Otherwise, the next index to use is one past the last used index
|
|
167
179
|
return lastUsedIndex === undefined ? 0 : lastUsedIndex + 1;
|
|
@@ -171,29 +183,29 @@ import { UtilityExecutionOracle } from './utility_execution_oracle.js';
|
|
|
171
183
|
* Store values in the execution cache.
|
|
172
184
|
* @param values - Values to store.
|
|
173
185
|
* @returns The hash of the values.
|
|
174
|
-
*/
|
|
186
|
+
*/ storeInExecutionCache(values, hash) {
|
|
175
187
|
return this.executionCache.store(values, hash);
|
|
176
188
|
}
|
|
177
189
|
/**
|
|
178
190
|
* Gets values from the execution cache.
|
|
179
191
|
* @param hash - Hash of the values.
|
|
180
192
|
* @returns The values.
|
|
181
|
-
*/
|
|
193
|
+
*/ loadFromExecutionCache(hash) {
|
|
182
194
|
const preimage = this.executionCache.getPreimage(hash);
|
|
183
195
|
if (!preimage) {
|
|
184
196
|
throw new Error(`Preimage for hash ${hash.toString()} not found in cache`);
|
|
185
197
|
}
|
|
186
198
|
return Promise.resolve(preimage);
|
|
187
199
|
}
|
|
188
|
-
async
|
|
200
|
+
async checkNullifierExists(innerNullifier) {
|
|
189
201
|
// This oracle must be overridden because while utility execution can only meaningfully check if a nullifier exists
|
|
190
202
|
// in the synched block, during private execution there's also the possibility of it being pending, i.e. created
|
|
191
203
|
// in the current transaction.
|
|
192
|
-
this.
|
|
204
|
+
this.logger.debug(`Checking existence of inner nullifier ${innerNullifier}`, {
|
|
193
205
|
contractAddress: this.contractAddress
|
|
194
206
|
});
|
|
195
207
|
const nullifier = (await siloNullifier(this.contractAddress, innerNullifier)).toBigInt();
|
|
196
|
-
return this.noteCache.getNullifiers(this.contractAddress).has(nullifier) || await super.
|
|
208
|
+
return this.noteCache.getNullifiers(this.contractAddress).has(nullifier) || await super.checkNullifierExists(innerNullifier);
|
|
197
209
|
}
|
|
198
210
|
/**
|
|
199
211
|
* Gets some notes for a storage slot.
|
|
@@ -203,6 +215,7 @@ import { UtilityExecutionOracle } from './utility_execution_oracle.js';
|
|
|
203
215
|
* Real notes coming from DB will have a leafIndex which
|
|
204
216
|
* represents their index in the note hash tree.
|
|
205
217
|
*
|
|
218
|
+
* @param owner - The owner of the notes. If undefined, returns notes for all owners.
|
|
206
219
|
* @param storageSlot - The storage slot.
|
|
207
220
|
* @param numSelects - The number of valid selects in selectBy and selectValues.
|
|
208
221
|
* @param selectBy - An array of indices of the fields to selects.
|
|
@@ -214,11 +227,12 @@ import { UtilityExecutionOracle } from './utility_execution_oracle.js';
|
|
|
214
227
|
* @param offset - The starting index for pagination.
|
|
215
228
|
* @param status - The status of notes to fetch.
|
|
216
229
|
* @returns Array of note data.
|
|
217
|
-
*/ async
|
|
230
|
+
*/ async getNotes(owner, storageSlot, numSelects, selectByIndexes, selectByOffsets, selectByLengths, selectValues, selectComparators, sortByIndexes, sortByOffsets, sortByLengths, sortOrder, limit, offset, status) {
|
|
218
231
|
// Nullified pending notes are already removed from the list.
|
|
219
|
-
const pendingNotes = this.noteCache.getNotes(this.callContext.contractAddress, storageSlot);
|
|
232
|
+
const pendingNotes = this.noteCache.getNotes(this.callContext.contractAddress, owner, storageSlot);
|
|
220
233
|
const pendingNullifiers = this.noteCache.getNullifiers(this.callContext.contractAddress);
|
|
221
|
-
const
|
|
234
|
+
const noteService = new NoteService(this.noteStore, this.aztecNode, this.anchorBlockHeader, this.jobId);
|
|
235
|
+
const dbNotes = await noteService.getNotes(this.callContext.contractAddress, owner, storageSlot, status, this.scopes);
|
|
222
236
|
const dbNotesFiltered = dbNotes.filter((n)=>!pendingNullifiers.has(n.siloedNullifier.value));
|
|
223
237
|
const notes = pickNotes([
|
|
224
238
|
...dbNotesFiltered,
|
|
@@ -244,34 +258,21 @@ import { UtilityExecutionOracle } from './utility_execution_oracle.js';
|
|
|
244
258
|
limit,
|
|
245
259
|
offset
|
|
246
260
|
});
|
|
247
|
-
this.
|
|
248
|
-
const noteHashesAndIndexes = await Promise.all(notes.map(async (n)=>{
|
|
249
|
-
if (n.index !== undefined) {
|
|
250
|
-
const siloedNoteHash = await siloNoteHash(n.contractAddress, n.noteHash);
|
|
251
|
-
const uniqueNoteHash = await computeUniqueNoteHash(n.noteNonce, siloedNoteHash);
|
|
252
|
-
return {
|
|
253
|
-
hash: uniqueNoteHash,
|
|
254
|
-
index: n.index
|
|
255
|
-
};
|
|
256
|
-
}
|
|
257
|
-
}));
|
|
258
|
-
noteHashesAndIndexes.filter((n)=>n !== undefined).forEach((n)=>{
|
|
259
|
-
this.noteHashLeafIndexMap.set(n.hash.toBigInt(), n.index);
|
|
260
|
-
});
|
|
261
|
+
this.logger.debug(`Returning ${notes.length} notes for ${this.callContext.contractAddress} at ${storageSlot}: ${notes.map((n)=>`${n.noteNonce.toString()}:[${n.note.items.map((i)=>i.toString()).join(',')}]`).join(', ')}`);
|
|
261
262
|
return notes;
|
|
262
263
|
}
|
|
263
264
|
/**
|
|
264
265
|
* Keep track of the new note created during execution.
|
|
265
266
|
* It can be used in subsequent calls (or transactions when chaining txs is possible).
|
|
266
|
-
* @param
|
|
267
|
+
* @param owner - The owner of the note.
|
|
267
268
|
* @param storageSlot - The storage slot.
|
|
268
269
|
* @param randomness - The randomness injected into the note.
|
|
269
270
|
* @param noteTypeId - The type ID of the note.
|
|
270
271
|
* @param noteItems - The items to be included in a Note.
|
|
271
272
|
* @param noteHash - A hash of the new note.
|
|
272
273
|
* @returns
|
|
273
|
-
*/
|
|
274
|
-
this.
|
|
274
|
+
*/ notifyCreatedNote(owner, storageSlot, randomness, noteTypeId, noteItems, noteHash, counter) {
|
|
275
|
+
this.logger.debug(`Notified of new note with inner hash ${noteHash}`, {
|
|
275
276
|
contractAddress: this.callContext.contractAddress,
|
|
276
277
|
storageSlot,
|
|
277
278
|
randomness,
|
|
@@ -281,12 +282,14 @@ import { UtilityExecutionOracle } from './utility_execution_oracle.js';
|
|
|
281
282
|
const note = new Note(noteItems);
|
|
282
283
|
this.noteCache.addNewNote({
|
|
283
284
|
contractAddress: this.callContext.contractAddress,
|
|
285
|
+
owner,
|
|
284
286
|
storageSlot,
|
|
285
287
|
randomness,
|
|
286
288
|
noteNonce: Fr.ZERO,
|
|
287
289
|
note,
|
|
288
290
|
siloedNullifier: undefined,
|
|
289
|
-
noteHash
|
|
291
|
+
noteHash,
|
|
292
|
+
isPending: true
|
|
290
293
|
}, counter);
|
|
291
294
|
this.newNotes.push(NoteAndSlot.from({
|
|
292
295
|
note,
|
|
@@ -300,7 +303,7 @@ import { UtilityExecutionOracle } from './utility_execution_oracle.js';
|
|
|
300
303
|
* within the current transaction/execution.
|
|
301
304
|
* @param innerNullifier - The pending nullifier to add in the list (not yet siloed by contract address).
|
|
302
305
|
* @param noteHash - A hash of the new note.
|
|
303
|
-
*/ async
|
|
306
|
+
*/ async notifyNullifiedNote(innerNullifier, noteHash, counter) {
|
|
304
307
|
const nullifiedNoteHashCounter = await this.noteCache.nullifyNote(this.callContext.contractAddress, innerNullifier, noteHash);
|
|
305
308
|
if (nullifiedNoteHashCounter !== undefined) {
|
|
306
309
|
this.noteHashNullifierCounterMap.set(nullifiedNoteHashCounter, counter);
|
|
@@ -311,22 +314,33 @@ import { UtilityExecutionOracle } from './utility_execution_oracle.js';
|
|
|
311
314
|
* within the current transaction/execution.
|
|
312
315
|
* @param innerNullifier - The pending nullifier to add in the list (not yet siloed by contract address).
|
|
313
316
|
* @param noteHash - A hash of the new note.
|
|
314
|
-
*/
|
|
315
|
-
this.
|
|
317
|
+
*/ notifyCreatedNullifier(innerNullifier) {
|
|
318
|
+
this.logger.debug(`Notified of new inner nullifier ${innerNullifier}`, {
|
|
316
319
|
contractAddress: this.contractAddress
|
|
317
320
|
});
|
|
318
321
|
return this.noteCache.nullifierCreated(this.callContext.contractAddress, innerNullifier);
|
|
319
322
|
}
|
|
320
323
|
/**
|
|
324
|
+
* Check if a nullifier has been emitted in the same transaction, i.e. if notifyCreatedNullifier has been
|
|
325
|
+
* called for this inner nullifier from the contract with the specified address.
|
|
326
|
+
* @param innerNullifier - The inner nullifier to check.
|
|
327
|
+
* @param contractAddress - Address of the contract that emitted the nullifier.
|
|
328
|
+
* @returns A boolean indicating whether the nullifier is pending or not.
|
|
329
|
+
*/ async isNullifierPending(innerNullifier, contractAddress) {
|
|
330
|
+
const siloedNullifier = await siloNullifier(contractAddress, innerNullifier);
|
|
331
|
+
const isNullifierPending = this.noteCache.getNullifiers(contractAddress).has(siloedNullifier.toBigInt());
|
|
332
|
+
return Promise.resolve(isNullifierPending);
|
|
333
|
+
}
|
|
334
|
+
/**
|
|
321
335
|
* Emit a contract class log.
|
|
322
336
|
* This fn exists because we only carry a poseidon hash through the kernels, and need to
|
|
323
337
|
* keep the preimage in ts for later.
|
|
324
338
|
* @param log - The contract class log to be emitted.
|
|
325
339
|
* @param counter - The contract class log's counter.
|
|
326
|
-
*/
|
|
340
|
+
*/ notifyCreatedContractClassLog(log, counter) {
|
|
327
341
|
this.contractClassLogs.push(new CountedContractClassLog(log, counter));
|
|
328
342
|
const text = log.toBuffer().toString('hex');
|
|
329
|
-
this.
|
|
343
|
+
this.logger.verbose(`Emitted log from ContractClassRegistry: "${text.length > 100 ? text.slice(0, 100) + '...' : text}"`);
|
|
330
344
|
}
|
|
331
345
|
#checkValidStaticCall(childExecutionResult) {
|
|
332
346
|
if (childExecutionResult.publicInputs.noteHashes.claimedLength > 0 || childExecutionResult.publicInputs.nullifiers.claimedLength > 0 || childExecutionResult.publicInputs.l2ToL1Msgs.claimedLength > 0 || childExecutionResult.publicInputs.privateLogs.claimedLength > 0 || childExecutionResult.publicInputs.contractClassLogsHashes.claimedLength > 0) {
|
|
@@ -341,20 +355,49 @@ import { UtilityExecutionOracle } from './utility_execution_oracle.js';
|
|
|
341
355
|
* @param sideEffectCounter - The side effect counter at the start of the call.
|
|
342
356
|
* @param isStaticCall - Whether the call is a static call.
|
|
343
357
|
* @returns The execution result.
|
|
344
|
-
*/ async
|
|
358
|
+
*/ async callPrivateFunction(targetContractAddress, functionSelector, argsHash, sideEffectCounter, isStaticCall) {
|
|
345
359
|
if (!this.simulator) {
|
|
346
360
|
// In practice it is only when creating inline private contexts in a Noir test using TXE that we create an
|
|
347
361
|
// instance of this class without a simulator.
|
|
348
362
|
throw new Error('No simulator provided, cannot perform a nested private call');
|
|
349
363
|
}
|
|
350
364
|
const simulatorSetupTimer = new Timer();
|
|
351
|
-
this.
|
|
365
|
+
this.logger.debug(`Calling private function ${targetContractAddress}:${functionSelector} from ${this.callContext.contractAddress}`);
|
|
352
366
|
isStaticCall = isStaticCall || this.callContext.isStaticCall;
|
|
353
|
-
await
|
|
354
|
-
const targetArtifact = await this.
|
|
367
|
+
await this.contractSyncService.ensureContractSynced(targetContractAddress, functionSelector, this.utilityExecutor, this.anchorBlockHeader, this.jobId, this.scopes);
|
|
368
|
+
const targetArtifact = await this.contractStore.getFunctionArtifactWithDebugMetadata(targetContractAddress, functionSelector);
|
|
355
369
|
const derivedTxContext = this.txContext.clone();
|
|
356
370
|
const derivedCallContext = await this.deriveCallContext(targetContractAddress, targetArtifact, isStaticCall);
|
|
357
|
-
const privateExecutionOracle = new PrivateExecutionOracle(
|
|
371
|
+
const privateExecutionOracle = new PrivateExecutionOracle({
|
|
372
|
+
argsHash,
|
|
373
|
+
txContext: derivedTxContext,
|
|
374
|
+
callContext: derivedCallContext,
|
|
375
|
+
anchorBlockHeader: this.anchorBlockHeader,
|
|
376
|
+
utilityExecutor: this.utilityExecutor,
|
|
377
|
+
authWitnesses: this.authWitnesses,
|
|
378
|
+
capsules: this.capsules,
|
|
379
|
+
executionCache: this.executionCache,
|
|
380
|
+
noteCache: this.noteCache,
|
|
381
|
+
taggingIndexCache: this.taggingIndexCache,
|
|
382
|
+
contractStore: this.contractStore,
|
|
383
|
+
noteStore: this.noteStore,
|
|
384
|
+
keyStore: this.keyStore,
|
|
385
|
+
addressStore: this.addressStore,
|
|
386
|
+
aztecNode: this.aztecNode,
|
|
387
|
+
senderTaggingStore: this.senderTaggingStore,
|
|
388
|
+
recipientTaggingStore: this.recipientTaggingStore,
|
|
389
|
+
senderAddressBookStore: this.senderAddressBookStore,
|
|
390
|
+
capsuleStore: this.capsuleStore,
|
|
391
|
+
privateEventStore: this.privateEventStore,
|
|
392
|
+
contractSyncService: this.contractSyncService,
|
|
393
|
+
jobId: this.jobId,
|
|
394
|
+
totalPublicCalldataCount: this.totalPublicCalldataCount,
|
|
395
|
+
sideEffectCounter,
|
|
396
|
+
log: this.logger,
|
|
397
|
+
scopes: this.scopes,
|
|
398
|
+
senderForTags: this.senderForTags,
|
|
399
|
+
simulator: this.simulator
|
|
400
|
+
});
|
|
358
401
|
const setupTime = simulatorSetupTimer.ms();
|
|
359
402
|
const childExecutionResult = await executePrivateFunction(this.simulator, privateExecutionOracle, targetArtifact, targetContractAddress, functionSelector);
|
|
360
403
|
if (isStaticCall) {
|
|
@@ -387,7 +430,7 @@ import { UtilityExecutionOracle } from './utility_execution_oracle.js';
|
|
|
387
430
|
* @param calldataHash - The hash of the function selector and arguments.
|
|
388
431
|
* @param sideEffectCounter - The side effect counter at the start of the call.
|
|
389
432
|
* @param isStaticCall - Whether the call is a static call.
|
|
390
|
-
*/
|
|
433
|
+
*/ notifyEnqueuedPublicFunctionCall(_targetContractAddress, calldataHash, _sideEffectCounter, _isStaticCall) {
|
|
391
434
|
this.#onNewPublicFunctionCall(calldataHash);
|
|
392
435
|
return Promise.resolve();
|
|
393
436
|
}
|
|
@@ -397,14 +440,14 @@ import { UtilityExecutionOracle } from './utility_execution_oracle.js';
|
|
|
397
440
|
* @param argsHash - The arguments hash to pass to the function.
|
|
398
441
|
* @param sideEffectCounter - The side effect counter at the start of the call.
|
|
399
442
|
* @param isStaticCall - Whether the call is a static call.
|
|
400
|
-
*/
|
|
443
|
+
*/ notifySetPublicTeardownFunctionCall(_targetContractAddress, calldataHash, _sideEffectCounter, _isStaticCall) {
|
|
401
444
|
this.#onNewPublicFunctionCall(calldataHash);
|
|
402
445
|
return Promise.resolve();
|
|
403
446
|
}
|
|
404
|
-
|
|
447
|
+
notifySetMinRevertibleSideEffectCounter(minRevertibleSideEffectCounter) {
|
|
405
448
|
return this.noteCache.setMinRevertibleSideEffectCounter(minRevertibleSideEffectCounter);
|
|
406
449
|
}
|
|
407
|
-
|
|
450
|
+
isSideEffectCounterRevertible(sideEffectCounter) {
|
|
408
451
|
return Promise.resolve(this.noteCache.isSideEffectCounterRevertible(sideEffectCounter));
|
|
409
452
|
}
|
|
410
453
|
/**
|
|
@@ -417,9 +460,9 @@ import { UtilityExecutionOracle } from './utility_execution_oracle.js';
|
|
|
417
460
|
return new CallContext(this.contractAddress, targetContractAddress, await FunctionSelector.fromNameAndParameters(targetArtifact.name, targetArtifact.parameters), isStaticCall);
|
|
418
461
|
}
|
|
419
462
|
getDebugFunctionName() {
|
|
420
|
-
return this.
|
|
463
|
+
return this.contractStore.getDebugFunctionName(this.contractAddress, this.callContext.functionSelector);
|
|
421
464
|
}
|
|
422
|
-
|
|
465
|
+
emitOffchainEffect(data) {
|
|
423
466
|
this.offchainEffects.push({
|
|
424
467
|
data
|
|
425
468
|
});
|