@aztec/pxe 0.0.1-commit.03f7ef2 → 0.0.1-commit.04852196a
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 +1 -1
- package/dest/block_synchronizer/block_synchronizer.d.ts +17 -11
- package/dest/block_synchronizer/block_synchronizer.d.ts.map +1 -1
- package/dest/block_synchronizer/block_synchronizer.js +80 -34
- package/dest/config/index.d.ts +4 -2
- 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 +65 -40
- package/dest/contract_function_simulator/contract_function_simulator.d.ts.map +1 -1
- package/dest/contract_function_simulator/contract_function_simulator.js +212 -92
- package/dest/contract_function_simulator/execution_note_cache.d.ts +18 -9
- package/dest/contract_function_simulator/execution_note_cache.d.ts.map +1 -1
- package/dest/contract_function_simulator/execution_note_cache.js +45 -28
- package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts +5 -5
- package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts.map +1 -1
- package/dest/contract_function_simulator/execution_tagging_index_cache.js +3 -3
- package/dest/contract_function_simulator/index.d.ts +2 -2
- package/dest/contract_function_simulator/index.d.ts.map +1 -1
- package/dest/contract_function_simulator/index.js +1 -1
- package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts +4 -3
- package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts.map +1 -1
- package/dest/contract_function_simulator/noir-structs/event_validation_request.js +7 -4
- 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 +2 -2
- 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 +55 -47
- package/dest/contract_function_simulator/oracle/interfaces.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts +3 -1
- package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts +6 -6
- package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/note_packing_utils.js +8 -8
- 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 +178 -112
- package/dest/contract_function_simulator/oracle/private_execution.d.ts +2 -26
- 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 +63 -63
- package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/private_execution_oracle.js +120 -88
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts +106 -70
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.js +167 -145
- 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 +5 -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 +26 -12
- package/dest/debug/pxe_debug_utils.d.ts.map +1 -1
- package/dest/debug/pxe_debug_utils.js +30 -19
- package/dest/entrypoints/client/bundle/index.d.ts +4 -1
- package/dest/entrypoints/client/bundle/index.d.ts.map +1 -1
- package/dest/entrypoints/client/bundle/index.js +3 -0
- 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 +31 -8
- package/dest/entrypoints/client/lazy/index.d.ts +4 -1
- package/dest/entrypoints/client/lazy/index.d.ts.map +1 -1
- package/dest/entrypoints/client/lazy/index.js +3 -0
- 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 +32 -9
- package/dest/entrypoints/pxe_creation_options.d.ts +5 -3
- package/dest/entrypoints/pxe_creation_options.d.ts.map +1 -1
- package/dest/entrypoints/server/index.d.ts +5 -1
- package/dest/entrypoints/server/index.d.ts.map +1 -1
- package/dest/entrypoints/server/index.js +4 -0
- 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 +8 -8
- package/dest/events/event_service.d.ts.map +1 -1
- package/dest/events/event_service.js +21 -24
- package/dest/events/private_event_filter_validator.d.ts +6 -6
- package/dest/events/private_event_filter_validator.d.ts.map +1 -1
- package/dest/events/private_event_filter_validator.js +5 -6
- 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 +18 -32
- package/dest/logs/log_service.d.ts.map +1 -1
- package/dest/logs/log_service.js +76 -197
- package/dest/notes/note_service.d.ts +13 -12
- package/dest/notes/note_service.d.ts.map +1 -1
- package/dest/notes/note_service.js +42 -46
- 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 +24 -17
- package/dest/private_kernel/private_kernel_oracle.d.ts +24 -24
- 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 +87 -67
- package/dest/pxe.d.ts.map +1 -1
- package/dest/pxe.js +211 -189
- 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/{anchor_block_data_provider/anchor_block_data_provider.js → anchor_block_store/anchor_block_store.js} +9 -2
- package/dest/storage/anchor_block_store/index.d.ts +2 -0
- package/dest/storage/anchor_block_store/index.d.ts.map +1 -0
- package/dest/storage/anchor_block_store/index.js +1 -0
- package/dest/storage/capsule_store/capsule_store.d.ts +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/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_data_provider/sender_tagging_data_provider.d.ts → tagging_store/sender_tagging_store.d.ts} +20 -10
- 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 -3
- 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 -4
- package/dest/tagging/index.d.ts.map +1 -1
- package/dest/tagging/index.js +15 -3
- package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts +6 -6
- package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts.map +1 -1
- package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.js +13 -13
- package/dest/tagging/recipient_sync/utils/find_highest_indexes.js +2 -2
- package/dest/tagging/recipient_sync/utils/load_logs_for_range.d.ts +7 -7
- package/dest/tagging/recipient_sync/utils/load_logs_for_range.d.ts.map +1 -1
- package/dest/tagging/recipient_sync/utils/load_logs_for_range.js +16 -12
- 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/{sync → sender_sync}/sync_sender_tagging_indexes.js +9 -27
- package/dest/tagging/{sync → sender_sync}/utils/get_status_change_of_pending.d.ts +1 -1
- package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts.map +1 -0
- package/dest/tagging/{sync → sender_sync}/utils/get_status_change_of_pending.js +5 -8
- 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/{sync → sender_sync}/utils/load_and_store_new_tagging_indexes.js +25 -21
- package/package.json +27 -18
- package/src/access_scopes.ts +9 -0
- package/src/bin/check_oracle_version.ts +1 -0
- package/src/block_synchronizer/block_synchronizer.ts +99 -46
- package/src/config/index.ts +15 -1
- 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 +366 -156
- package/src/contract_function_simulator/execution_note_cache.ts +44 -25
- package/src/contract_function_simulator/execution_tagging_index_cache.ts +5 -5
- 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/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 +62 -49
- package/src/contract_function_simulator/oracle/note_packing_utils.ts +10 -10
- package/src/contract_function_simulator/oracle/oracle.ts +194 -134
- package/src/contract_function_simulator/oracle/private_execution.ts +2 -70
- package/src/contract_function_simulator/oracle/private_execution_oracle.ts +157 -168
- package/src/contract_function_simulator/oracle/utility_execution_oracle.ts +245 -167
- package/src/contract_function_simulator/proxied_contract_data_source.ts +7 -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 +65 -20
- package/src/entrypoints/client/bundle/index.ts +3 -0
- package/src/entrypoints/client/bundle/utils.ts +23 -16
- package/src/entrypoints/client/lazy/index.ts +3 -0
- package/src/entrypoints/client/lazy/utils.ts +24 -17
- package/src/entrypoints/pxe_creation_options.ts +4 -2
- package/src/entrypoints/server/index.ts +4 -0
- package/src/entrypoints/server/utils.ts +33 -41
- package/src/error_enriching.ts +7 -15
- package/src/events/event_service.ts +22 -28
- package/src/events/private_event_filter_validator.ts +4 -6
- package/src/job_coordinator/job_coordinator.ts +150 -0
- package/src/logs/log_service.ts +122 -273
- package/src/notes/note_service.ts +45 -49
- 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} +196 -138
- package/src/private_kernel/hints/test_utils.ts +325 -0
- package/src/private_kernel/private_kernel_execution_prover.ts +27 -19
- package/src/private_kernel/private_kernel_oracle.ts +116 -36
- package/src/pxe.ts +339 -261
- 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/{anchor_block_data_provider/anchor_block_data_provider.ts → anchor_block_store/anchor_block_store.ts} +9 -1
- 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/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 -3
- package/src/tagging/get_all_logs_by_tags.ts +92 -0
- package/src/tagging/index.ts +18 -3
- package/src/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.ts +29 -18
- package/src/tagging/recipient_sync/utils/find_highest_indexes.ts +2 -2
- package/src/tagging/recipient_sync/utils/load_logs_for_range.ts +17 -16
- package/src/tagging/{sync → sender_sync}/sync_sender_tagging_indexes.ts +15 -33
- package/src/tagging/{sync → sender_sync}/utils/get_status_change_of_pending.ts +5 -13
- package/src/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.ts +75 -0
- 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/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 -46
- 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/public_storage/public_storage_service.d.ts +0 -24
- package/dest/public_storage/public_storage_service.d.ts.map +0 -1
- package/dest/public_storage/public_storage_service.js +0 -26
- 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/anchor_block_data_provider/anchor_block_data_provider.d.ts +0 -9
- package/dest/storage/anchor_block_data_provider/anchor_block_data_provider.d.ts.map +0 -1
- package/dest/storage/anchor_block_data_provider/index.d.ts +0 -2
- package/dest/storage/anchor_block_data_provider/index.d.ts.map +0 -1
- package/dest/storage/anchor_block_data_provider/index.js +0 -1
- package/dest/storage/capsule_data_provider/capsule_data_provider.d.ts +0 -57
- 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 -146
- 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 -66
- 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 -224
- 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 -84
- 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 -322
- package/dest/storage/private_event_data_provider/private_event_data_provider.d.ts +0 -51
- 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 -115
- package/dest/storage/tagging_data_provider/index.d.ts +0 -3
- package/dest/storage/tagging_data_provider/index.d.ts.map +0 -1
- package/dest/storage/tagging_data_provider/index.js +0 -2
- package/dest/storage/tagging_data_provider/recipient_tagging_data_provider.d.ts +0 -31
- package/dest/storage/tagging_data_provider/recipient_tagging_data_provider.d.ts.map +0 -1
- package/dest/storage/tagging_data_provider/recipient_tagging_data_provider.js +0 -65
- package/dest/storage/tagging_data_provider/sender_tagging_data_provider.d.ts.map +0 -1
- package/dest/storage/tagging_data_provider/sender_tagging_data_provider.js +0 -196
- package/dest/tagging/recipient_sync/new_recipient_tagging_data_provider.d.ts +0 -21
- package/dest/tagging/recipient_sync/new_recipient_tagging_data_provider.d.ts.map +0 -1
- package/dest/tagging/recipient_sync/new_recipient_tagging_data_provider.js +0 -42
- package/dest/tagging/sync/sync_sender_tagging_indexes.d.ts +0 -21
- package/dest/tagging/sync/sync_sender_tagging_indexes.d.ts.map +0 -1
- package/dest/tagging/sync/utils/get_status_change_of_pending.d.ts.map +0 -1
- package/dest/tagging/sync/utils/load_and_store_new_tagging_indexes.d.ts +0 -18
- package/dest/tagging/sync/utils/load_and_store_new_tagging_indexes.d.ts.map +0 -1
- package/dest/tagging/utils.d.ts +0 -18
- package/dest/tagging/utils.d.ts.map +0 -1
- package/dest/tagging/utils.js +0 -25
- package/dest/tree_membership/tree_membership_service.d.ts +0 -52
- package/dest/tree_membership/tree_membership_service.d.ts.map +0 -1
- package/dest/tree_membership/tree_membership_service.js +0 -84
- package/src/contract_function_simulator/proxied_node.ts +0 -33
- package/src/private_kernel/private_kernel_oracle_impl.ts +0 -133
- package/src/public_storage/public_storage_service.ts +0 -33
- package/src/storage/address_data_provider/index.ts +0 -1
- package/src/storage/anchor_block_data_provider/index.ts +0 -1
- package/src/storage/capsule_data_provider/capsule_data_provider.ts +0 -179
- package/src/storage/capsule_data_provider/index.ts +0 -1
- package/src/storage/contract_data_provider/contract_data_provider.ts +0 -319
- 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 -412
- package/src/storage/private_event_data_provider/private_event_data_provider.ts +0 -162
- package/src/storage/tagging_data_provider/index.ts +0 -2
- package/src/storage/tagging_data_provider/recipient_tagging_data_provider.ts +0 -86
- package/src/storage/tagging_data_provider/sender_tagging_data_provider.ts +0 -244
- package/src/tagging/recipient_sync/new_recipient_tagging_data_provider.ts +0 -53
- package/src/tagging/sync/utils/load_and_store_new_tagging_indexes.ts +0 -72
- package/src/tagging/utils.ts +0 -32
- package/src/tree_membership/tree_membership_service.ts +0 -112
- /package/dest/storage/{contract_data_provider → contract_store}/private_functions_tree.js +0 -0
- /package/src/storage/{contract_data_provider → contract_store}/private_functions_tree.ts +0 -0
|
@@ -2,50 +2,59 @@ import { MAX_FR_CALLDATA_TO_ALL_ENQUEUED_CALLS, PRIVATE_CONTEXT_INPUTS_LENGTH }
|
|
|
2
2
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
3
|
import { createLogger } from '@aztec/foundation/log';
|
|
4
4
|
import { Timer } from '@aztec/foundation/timer';
|
|
5
|
-
import type { KeyStore } from '@aztec/key-store';
|
|
6
5
|
import { type CircuitSimulator, toACVMWitness } from '@aztec/simulator/client';
|
|
7
6
|
import {
|
|
8
7
|
type FunctionAbi,
|
|
9
8
|
type FunctionArtifact,
|
|
9
|
+
type FunctionCall,
|
|
10
10
|
FunctionSelector,
|
|
11
11
|
type NoteSelector,
|
|
12
12
|
countArgumentsSize,
|
|
13
13
|
} from '@aztec/stdlib/abi';
|
|
14
|
-
import type { AuthWitness } from '@aztec/stdlib/auth-witness';
|
|
15
14
|
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
16
|
-
import {
|
|
17
|
-
import type { AztecNode } from '@aztec/stdlib/interfaces/client';
|
|
15
|
+
import { siloNullifier } from '@aztec/stdlib/hash';
|
|
18
16
|
import { PrivateContextInputs } from '@aztec/stdlib/kernel';
|
|
19
|
-
import { type ContractClassLog,
|
|
17
|
+
import { type ContractClassLog, ExtendedDirectionalAppTaggingSecret, type PreTag } from '@aztec/stdlib/logs';
|
|
20
18
|
import { Tag } from '@aztec/stdlib/logs';
|
|
21
19
|
import { Note, type NoteStatus } from '@aztec/stdlib/note';
|
|
22
20
|
import {
|
|
23
|
-
type BlockHeader,
|
|
24
21
|
CallContext,
|
|
25
|
-
Capsule,
|
|
26
22
|
CountedContractClassLog,
|
|
27
23
|
NoteAndSlot,
|
|
28
24
|
PrivateCallExecutionResult,
|
|
29
25
|
type TxContext,
|
|
30
26
|
} from '@aztec/stdlib/tx';
|
|
31
27
|
|
|
28
|
+
import type { AccessScopes } from '../../access_scopes.js';
|
|
29
|
+
import type { ContractSyncService } from '../../contract_sync/contract_sync_service.js';
|
|
32
30
|
import { NoteService } from '../../notes/note_service.js';
|
|
33
|
-
import type {
|
|
34
|
-
import
|
|
35
|
-
import type { CapsuleDataProvider } from '../../storage/capsule_data_provider/capsule_data_provider.js';
|
|
36
|
-
import type { ContractDataProvider } from '../../storage/contract_data_provider/contract_data_provider.js';
|
|
37
|
-
import type { NoteDataProvider } from '../../storage/note_data_provider/note_data_provider.js';
|
|
38
|
-
import type { PrivateEventDataProvider } from '../../storage/private_event_data_provider/private_event_data_provider.js';
|
|
39
|
-
import type { RecipientTaggingDataProvider } from '../../storage/tagging_data_provider/recipient_tagging_data_provider.js';
|
|
40
|
-
import type { SenderTaggingDataProvider } from '../../storage/tagging_data_provider/sender_tagging_data_provider.js';
|
|
41
|
-
import { syncSenderTaggingIndexes } from '../../tagging/sync/sync_sender_tagging_indexes.js';
|
|
31
|
+
import type { SenderTaggingStore } from '../../storage/tagging_store/sender_tagging_store.js';
|
|
32
|
+
import { syncSenderTaggingIndexes } from '../../tagging/index.js';
|
|
42
33
|
import type { ExecutionNoteCache } from '../execution_note_cache.js';
|
|
43
34
|
import { ExecutionTaggingIndexCache } from '../execution_tagging_index_cache.js';
|
|
44
35
|
import type { HashedValuesCache } from '../hashed_values_cache.js';
|
|
45
36
|
import { pickNotes } from '../pick_notes.js';
|
|
46
37
|
import type { IPrivateExecutionOracle, NoteData } from './interfaces.js';
|
|
47
|
-
import { executePrivateFunction
|
|
48
|
-
import { UtilityExecutionOracle } from './utility_execution_oracle.js';
|
|
38
|
+
import { executePrivateFunction } from './private_execution.js';
|
|
39
|
+
import { UtilityExecutionOracle, type UtilityExecutionOracleArgs } from './utility_execution_oracle.js';
|
|
40
|
+
|
|
41
|
+
/** Args for PrivateExecutionOracle constructor. */
|
|
42
|
+
export type PrivateExecutionOracleArgs = Omit<UtilityExecutionOracleArgs, 'contractAddress'> & {
|
|
43
|
+
argsHash: Fr;
|
|
44
|
+
txContext: TxContext;
|
|
45
|
+
callContext: CallContext;
|
|
46
|
+
/** Needed to trigger contract synchronization before nested calls */
|
|
47
|
+
utilityExecutor: (call: FunctionCall, scopes: AccessScopes) => Promise<void>;
|
|
48
|
+
executionCache: HashedValuesCache;
|
|
49
|
+
noteCache: ExecutionNoteCache;
|
|
50
|
+
taggingIndexCache: ExecutionTaggingIndexCache;
|
|
51
|
+
senderTaggingStore: SenderTaggingStore;
|
|
52
|
+
contractSyncService: ContractSyncService;
|
|
53
|
+
totalPublicCalldataCount?: number;
|
|
54
|
+
sideEffectCounter?: number;
|
|
55
|
+
senderForTags?: AztecAddress;
|
|
56
|
+
simulator?: CircuitSimulator;
|
|
57
|
+
};
|
|
49
58
|
|
|
50
59
|
/**
|
|
51
60
|
* The execution oracle for the private part of a transaction.
|
|
@@ -62,68 +71,44 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
62
71
|
* Users can also use this to get a clearer idea of what's happened during a simulation.
|
|
63
72
|
*/
|
|
64
73
|
private newNotes: NoteAndSlot[] = [];
|
|
65
|
-
/**
|
|
66
|
-
* Notes from previous transactions that are returned to the oracle call `getNotes` during this execution.
|
|
67
|
-
* The mapping maps from the unique siloed note hash to the index for notes created in private executions.
|
|
68
|
-
* It maps from siloed note hash to the index for notes created by public functions.
|
|
69
|
-
*
|
|
70
|
-
* They are not part of the ExecutionNoteCache and being forwarded to nested contexts via `extend()`
|
|
71
|
-
* because these notes are meant to be maintained on a per-call basis
|
|
72
|
-
* They should act as references for the read requests output by an app circuit via public inputs.
|
|
73
|
-
*/
|
|
74
|
-
private noteHashLeafIndexMap: Map<bigint, bigint> = new Map();
|
|
75
74
|
private noteHashNullifierCounterMap: Map<number, number> = new Map();
|
|
76
75
|
private contractClassLogs: CountedContractClassLog[] = [];
|
|
77
76
|
private offchainEffects: { data: Fr[] }[] = [];
|
|
78
77
|
private nestedExecutionResults: PrivateCallExecutionResult[] = [];
|
|
79
78
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
anchorBlockHeader,
|
|
114
|
-
contractDataProvider,
|
|
115
|
-
noteDataProvider,
|
|
116
|
-
keyStore,
|
|
117
|
-
addressDataProvider,
|
|
118
|
-
aztecNode,
|
|
119
|
-
anchorBlockDataProvider,
|
|
120
|
-
senderTaggingDataProvider,
|
|
121
|
-
recipientTaggingDataProvider,
|
|
122
|
-
capsuleDataProvider,
|
|
123
|
-
privateEventDataProvider,
|
|
124
|
-
log,
|
|
125
|
-
scopes,
|
|
126
|
-
);
|
|
79
|
+
private readonly argsHash: Fr;
|
|
80
|
+
private readonly txContext: TxContext;
|
|
81
|
+
private readonly callContext: CallContext;
|
|
82
|
+
private readonly utilityExecutor: (call: FunctionCall, scopes: AccessScopes) => Promise<void>;
|
|
83
|
+
private readonly executionCache: HashedValuesCache;
|
|
84
|
+
private readonly noteCache: ExecutionNoteCache;
|
|
85
|
+
private readonly taggingIndexCache: ExecutionTaggingIndexCache;
|
|
86
|
+
private readonly senderTaggingStore: SenderTaggingStore;
|
|
87
|
+
private readonly contractSyncService: ContractSyncService;
|
|
88
|
+
private totalPublicCalldataCount: number;
|
|
89
|
+
protected sideEffectCounter: number;
|
|
90
|
+
private senderForTags?: AztecAddress;
|
|
91
|
+
private readonly simulator?: CircuitSimulator;
|
|
92
|
+
|
|
93
|
+
constructor(args: PrivateExecutionOracleArgs) {
|
|
94
|
+
super({
|
|
95
|
+
...args,
|
|
96
|
+
contractAddress: args.callContext.contractAddress,
|
|
97
|
+
log: args.log ?? createLogger('simulator:client_execution_context'),
|
|
98
|
+
});
|
|
99
|
+
this.argsHash = args.argsHash;
|
|
100
|
+
this.txContext = args.txContext;
|
|
101
|
+
this.callContext = args.callContext;
|
|
102
|
+
this.utilityExecutor = args.utilityExecutor;
|
|
103
|
+
this.executionCache = args.executionCache;
|
|
104
|
+
this.noteCache = args.noteCache;
|
|
105
|
+
this.taggingIndexCache = args.taggingIndexCache;
|
|
106
|
+
this.senderTaggingStore = args.senderTaggingStore;
|
|
107
|
+
this.contractSyncService = args.contractSyncService;
|
|
108
|
+
this.totalPublicCalldataCount = args.totalPublicCalldataCount ?? 0;
|
|
109
|
+
this.sideEffectCounter = args.sideEffectCounter ?? 0;
|
|
110
|
+
this.senderForTags = args.senderForTags;
|
|
111
|
+
this.simulator = args.simulator;
|
|
127
112
|
}
|
|
128
113
|
|
|
129
114
|
public getPrivateContextInputs(): PrivateContextInputs {
|
|
@@ -155,14 +140,6 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
155
140
|
return toACVMWitness(0, fields);
|
|
156
141
|
}
|
|
157
142
|
|
|
158
|
-
/**
|
|
159
|
-
* The KernelProver will use this to fully populate witnesses and provide hints to the kernel circuit
|
|
160
|
-
* regarding which note hash each settled read request corresponds to.
|
|
161
|
-
*/
|
|
162
|
-
public getNoteHashLeafIndexMap() {
|
|
163
|
-
return this.noteHashLeafIndexMap;
|
|
164
|
-
}
|
|
165
|
-
|
|
166
143
|
/**
|
|
167
144
|
* Get the data for the newly created notes.
|
|
168
145
|
*/
|
|
@@ -212,7 +189,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
212
189
|
* The value persists through nested calls, meaning all calls down the stack will use the same
|
|
213
190
|
* 'senderForTags' value (unless it is replaced).
|
|
214
191
|
*/
|
|
215
|
-
public
|
|
192
|
+
public getSenderForTags(): Promise<AztecAddress | undefined> {
|
|
216
193
|
return Promise.resolve(this.senderForTags);
|
|
217
194
|
}
|
|
218
195
|
|
|
@@ -227,7 +204,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
227
204
|
* through nested calls, meaning all calls down the stack will use the same 'senderForTags'
|
|
228
205
|
* value (unless it is replaced by another call to this setter).
|
|
229
206
|
*/
|
|
230
|
-
public
|
|
207
|
+
public setSenderForTags(senderForTags: AztecAddress): Promise<void> {
|
|
231
208
|
this.senderForTags = senderForTags;
|
|
232
209
|
return Promise.resolve();
|
|
233
210
|
}
|
|
@@ -238,26 +215,30 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
238
215
|
* @param recipient - The address receiving the log
|
|
239
216
|
* @returns An app tag to be used in a log.
|
|
240
217
|
*/
|
|
241
|
-
public async
|
|
242
|
-
const
|
|
218
|
+
public async getNextAppTagAsSender(sender: AztecAddress, recipient: AztecAddress): Promise<Tag> {
|
|
219
|
+
const extendedSecret = await this.#calculateExtendedDirectionalAppTaggingSecret(
|
|
220
|
+
this.contractAddress,
|
|
221
|
+
sender,
|
|
222
|
+
recipient,
|
|
223
|
+
);
|
|
243
224
|
|
|
244
|
-
const index = await this.#getIndexToUseForSecret(
|
|
245
|
-
this.
|
|
225
|
+
const index = await this.#getIndexToUseForSecret(extendedSecret);
|
|
226
|
+
this.logger.debug(
|
|
246
227
|
`Incrementing tagging index for sender: ${sender}, recipient: ${recipient}, contract: ${this.contractAddress} to ${index}`,
|
|
247
228
|
);
|
|
248
|
-
this.taggingIndexCache.setLastUsedIndex(
|
|
229
|
+
this.taggingIndexCache.setLastUsedIndex(extendedSecret, index);
|
|
249
230
|
|
|
250
|
-
return Tag.compute({
|
|
231
|
+
return Tag.compute({ extendedSecret, index });
|
|
251
232
|
}
|
|
252
233
|
|
|
253
|
-
async #
|
|
234
|
+
async #calculateExtendedDirectionalAppTaggingSecret(
|
|
254
235
|
contractAddress: AztecAddress,
|
|
255
236
|
sender: AztecAddress,
|
|
256
237
|
recipient: AztecAddress,
|
|
257
238
|
) {
|
|
258
|
-
const senderCompleteAddress = await this.
|
|
239
|
+
const senderCompleteAddress = await this.getCompleteAddressOrFail(sender);
|
|
259
240
|
const senderIvsk = await this.keyStore.getMasterIncomingViewingSecretKey(sender);
|
|
260
|
-
return
|
|
241
|
+
return ExtendedDirectionalAppTaggingSecret.compute(
|
|
261
242
|
senderCompleteAddress,
|
|
262
243
|
senderIvsk,
|
|
263
244
|
recipient,
|
|
@@ -266,7 +247,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
266
247
|
);
|
|
267
248
|
}
|
|
268
249
|
|
|
269
|
-
async #getIndexToUseForSecret(secret:
|
|
250
|
+
async #getIndexToUseForSecret(secret: ExtendedDirectionalAppTaggingSecret): Promise<number> {
|
|
270
251
|
// If we have the tagging index in the cache, we use it. If not we obtain it from the execution data provider.
|
|
271
252
|
const lastUsedIndexInTx = this.taggingIndexCache.getLastUsedIndex(secret);
|
|
272
253
|
|
|
@@ -276,9 +257,15 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
276
257
|
// This is a tagging secret we've not yet used in this tx, so first sync our store to make sure its indices
|
|
277
258
|
// are up to date. We do this here because this store is not synced as part of the global sync because
|
|
278
259
|
// that'd be wasteful as most tagging secrets are not used in each tx.
|
|
279
|
-
await syncSenderTaggingIndexes(
|
|
280
|
-
|
|
281
|
-
|
|
260
|
+
await syncSenderTaggingIndexes(
|
|
261
|
+
secret,
|
|
262
|
+
this.aztecNode,
|
|
263
|
+
this.senderTaggingStore,
|
|
264
|
+
await this.anchorBlockHeader.hash(),
|
|
265
|
+
this.jobId,
|
|
266
|
+
);
|
|
267
|
+
|
|
268
|
+
const lastUsedIndex = await this.senderTaggingStore.getLastUsedIndex(secret, this.jobId);
|
|
282
269
|
// If lastUsedIndex is undefined, we've never used this secret, so start from 0
|
|
283
270
|
// Otherwise, the next index to use is one past the last used index
|
|
284
271
|
return lastUsedIndex === undefined ? 0 : lastUsedIndex + 1;
|
|
@@ -290,7 +277,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
290
277
|
* @param values - Values to store.
|
|
291
278
|
* @returns The hash of the values.
|
|
292
279
|
*/
|
|
293
|
-
public
|
|
280
|
+
public storeInExecutionCache(values: Fr[], hash: Fr) {
|
|
294
281
|
return this.executionCache.store(values, hash);
|
|
295
282
|
}
|
|
296
283
|
|
|
@@ -299,7 +286,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
299
286
|
* @param hash - Hash of the values.
|
|
300
287
|
* @returns The values.
|
|
301
288
|
*/
|
|
302
|
-
public
|
|
289
|
+
public loadFromExecutionCache(hash: Fr): Promise<Fr[]> {
|
|
303
290
|
const preimage = this.executionCache.getPreimage(hash);
|
|
304
291
|
if (!preimage) {
|
|
305
292
|
throw new Error(`Preimage for hash ${hash.toString()} not found in cache`);
|
|
@@ -307,12 +294,12 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
307
294
|
return Promise.resolve(preimage);
|
|
308
295
|
}
|
|
309
296
|
|
|
310
|
-
override async
|
|
297
|
+
override async checkNullifierExists(innerNullifier: Fr): Promise<boolean> {
|
|
311
298
|
// This oracle must be overridden because while utility execution can only meaningfully check if a nullifier exists
|
|
312
299
|
// in the synched block, during private execution there's also the possibility of it being pending, i.e. created
|
|
313
300
|
// in the current transaction.
|
|
314
301
|
|
|
315
|
-
this.
|
|
302
|
+
this.logger.debug(`Checking existence of inner nullifier ${innerNullifier}`, {
|
|
316
303
|
contractAddress: this.contractAddress,
|
|
317
304
|
});
|
|
318
305
|
|
|
@@ -320,7 +307,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
320
307
|
|
|
321
308
|
return (
|
|
322
309
|
this.noteCache.getNullifiers(this.contractAddress).has(nullifier) ||
|
|
323
|
-
(await super.
|
|
310
|
+
(await super.checkNullifierExists(innerNullifier))
|
|
324
311
|
);
|
|
325
312
|
}
|
|
326
313
|
|
|
@@ -345,7 +332,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
345
332
|
* @param status - The status of notes to fetch.
|
|
346
333
|
* @returns Array of note data.
|
|
347
334
|
*/
|
|
348
|
-
public override async
|
|
335
|
+
public override async getNotes(
|
|
349
336
|
owner: AztecAddress | undefined,
|
|
350
337
|
storageSlot: Fr,
|
|
351
338
|
numSelects: number,
|
|
@@ -367,7 +354,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
367
354
|
|
|
368
355
|
const pendingNullifiers = this.noteCache.getNullifiers(this.callContext.contractAddress);
|
|
369
356
|
|
|
370
|
-
const noteService = new NoteService(this.
|
|
357
|
+
const noteService = new NoteService(this.noteStore, this.aztecNode, this.anchorBlockHeader, this.jobId);
|
|
371
358
|
const dbNotes = await noteService.getNotes(
|
|
372
359
|
this.callContext.contractAddress,
|
|
373
360
|
owner,
|
|
@@ -391,29 +378,12 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
391
378
|
offset,
|
|
392
379
|
});
|
|
393
380
|
|
|
394
|
-
this.
|
|
381
|
+
this.logger.debug(
|
|
395
382
|
`Returning ${notes.length} notes for ${this.callContext.contractAddress} at ${storageSlot}: ${notes
|
|
396
383
|
.map(n => `${n.noteNonce.toString()}:[${n.note.items.map(i => i.toString()).join(',')}]`)
|
|
397
384
|
.join(', ')}`,
|
|
398
385
|
);
|
|
399
386
|
|
|
400
|
-
const noteHashesAndIndexes = await Promise.all(
|
|
401
|
-
notes.map(async n => {
|
|
402
|
-
if (n.index !== undefined) {
|
|
403
|
-
const siloedNoteHash = await siloNoteHash(n.contractAddress, n.noteHash);
|
|
404
|
-
const uniqueNoteHash = await computeUniqueNoteHash(n.noteNonce, siloedNoteHash);
|
|
405
|
-
|
|
406
|
-
return { hash: uniqueNoteHash, index: n.index };
|
|
407
|
-
}
|
|
408
|
-
}),
|
|
409
|
-
);
|
|
410
|
-
|
|
411
|
-
noteHashesAndIndexes
|
|
412
|
-
.filter(n => n !== undefined)
|
|
413
|
-
.forEach(n => {
|
|
414
|
-
this.noteHashLeafIndexMap.set(n!.hash.toBigInt(), n!.index);
|
|
415
|
-
});
|
|
416
|
-
|
|
417
387
|
return notes;
|
|
418
388
|
}
|
|
419
389
|
|
|
@@ -428,7 +398,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
428
398
|
* @param noteHash - A hash of the new note.
|
|
429
399
|
* @returns
|
|
430
400
|
*/
|
|
431
|
-
public
|
|
401
|
+
public notifyCreatedNote(
|
|
432
402
|
owner: AztecAddress,
|
|
433
403
|
storageSlot: Fr,
|
|
434
404
|
randomness: Fr,
|
|
@@ -437,7 +407,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
437
407
|
noteHash: Fr,
|
|
438
408
|
counter: number,
|
|
439
409
|
) {
|
|
440
|
-
this.
|
|
410
|
+
this.logger.debug(`Notified of new note with inner hash ${noteHash}`, {
|
|
441
411
|
contractAddress: this.callContext.contractAddress,
|
|
442
412
|
storageSlot,
|
|
443
413
|
randomness,
|
|
@@ -456,6 +426,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
456
426
|
note,
|
|
457
427
|
siloedNullifier: undefined, // Siloed nullifier cannot be known for newly created note.
|
|
458
428
|
noteHash,
|
|
429
|
+
isPending: true, // This note has just been created and hence is not settled yet.
|
|
459
430
|
},
|
|
460
431
|
counter,
|
|
461
432
|
);
|
|
@@ -468,7 +439,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
468
439
|
* @param innerNullifier - The pending nullifier to add in the list (not yet siloed by contract address).
|
|
469
440
|
* @param noteHash - A hash of the new note.
|
|
470
441
|
*/
|
|
471
|
-
public async
|
|
442
|
+
public async notifyNullifiedNote(innerNullifier: Fr, noteHash: Fr, counter: number) {
|
|
472
443
|
const nullifiedNoteHashCounter = await this.noteCache.nullifyNote(
|
|
473
444
|
this.callContext.contractAddress,
|
|
474
445
|
innerNullifier,
|
|
@@ -485,11 +456,24 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
485
456
|
* @param innerNullifier - The pending nullifier to add in the list (not yet siloed by contract address).
|
|
486
457
|
* @param noteHash - A hash of the new note.
|
|
487
458
|
*/
|
|
488
|
-
public
|
|
489
|
-
this.
|
|
459
|
+
public notifyCreatedNullifier(innerNullifier: Fr) {
|
|
460
|
+
this.logger.debug(`Notified of new inner nullifier ${innerNullifier}`, { contractAddress: this.contractAddress });
|
|
490
461
|
return this.noteCache.nullifierCreated(this.callContext.contractAddress, innerNullifier);
|
|
491
462
|
}
|
|
492
463
|
|
|
464
|
+
/**
|
|
465
|
+
* Check if a nullifier has been emitted in the same transaction, i.e. if notifyCreatedNullifier has been
|
|
466
|
+
* called for this inner nullifier from the contract with the specified address.
|
|
467
|
+
* @param innerNullifier - The inner nullifier to check.
|
|
468
|
+
* @param contractAddress - Address of the contract that emitted the nullifier.
|
|
469
|
+
* @returns A boolean indicating whether the nullifier is pending or not.
|
|
470
|
+
*/
|
|
471
|
+
public async isNullifierPending(innerNullifier: Fr, contractAddress: AztecAddress): Promise<boolean> {
|
|
472
|
+
const siloedNullifier = await siloNullifier(contractAddress, innerNullifier);
|
|
473
|
+
const isNullifierPending = this.noteCache.getNullifiers(contractAddress).has(siloedNullifier.toBigInt());
|
|
474
|
+
return Promise.resolve(isNullifierPending);
|
|
475
|
+
}
|
|
476
|
+
|
|
493
477
|
/**
|
|
494
478
|
* Emit a contract class log.
|
|
495
479
|
* This fn exists because we only carry a poseidon hash through the kernels, and need to
|
|
@@ -497,10 +481,10 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
497
481
|
* @param log - The contract class log to be emitted.
|
|
498
482
|
* @param counter - The contract class log's counter.
|
|
499
483
|
*/
|
|
500
|
-
public
|
|
484
|
+
public notifyCreatedContractClassLog(log: ContractClassLog, counter: number) {
|
|
501
485
|
this.contractClassLogs.push(new CountedContractClassLog(log, counter));
|
|
502
486
|
const text = log.toBuffer().toString('hex');
|
|
503
|
-
this.
|
|
487
|
+
this.logger.verbose(
|
|
504
488
|
`Emitted log from ContractClassRegistry: "${text.length > 100 ? text.slice(0, 100) + '...' : text}"`,
|
|
505
489
|
);
|
|
506
490
|
}
|
|
@@ -526,7 +510,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
526
510
|
* @param isStaticCall - Whether the call is a static call.
|
|
527
511
|
* @returns The execution result.
|
|
528
512
|
*/
|
|
529
|
-
async
|
|
513
|
+
async callPrivateFunction(
|
|
530
514
|
targetContractAddress: AztecAddress,
|
|
531
515
|
functionSelector: FunctionSelector,
|
|
532
516
|
argsHash: Fr,
|
|
@@ -540,20 +524,22 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
540
524
|
}
|
|
541
525
|
|
|
542
526
|
const simulatorSetupTimer = new Timer();
|
|
543
|
-
this.
|
|
527
|
+
this.logger.debug(
|
|
544
528
|
`Calling private function ${targetContractAddress}:${functionSelector} from ${this.callContext.contractAddress}`,
|
|
545
529
|
);
|
|
546
530
|
|
|
547
531
|
isStaticCall = isStaticCall || this.callContext.isStaticCall;
|
|
548
532
|
|
|
549
|
-
await
|
|
533
|
+
await this.contractSyncService.ensureContractSynced(
|
|
550
534
|
targetContractAddress,
|
|
551
|
-
|
|
552
|
-
this.
|
|
535
|
+
functionSelector,
|
|
536
|
+
this.utilityExecutor,
|
|
553
537
|
this.anchorBlockHeader,
|
|
538
|
+
this.jobId,
|
|
539
|
+
this.scopes,
|
|
554
540
|
);
|
|
555
541
|
|
|
556
|
-
const targetArtifact = await this.
|
|
542
|
+
const targetArtifact = await this.contractStore.getFunctionArtifactWithDebugMetadata(
|
|
557
543
|
targetContractAddress,
|
|
558
544
|
functionSelector,
|
|
559
545
|
);
|
|
@@ -562,38 +548,41 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
562
548
|
|
|
563
549
|
const derivedCallContext = await this.deriveCallContext(targetContractAddress, targetArtifact, isStaticCall);
|
|
564
550
|
|
|
565
|
-
const privateExecutionOracle = new PrivateExecutionOracle(
|
|
551
|
+
const privateExecutionOracle = new PrivateExecutionOracle({
|
|
566
552
|
argsHash,
|
|
567
|
-
derivedTxContext,
|
|
568
|
-
derivedCallContext,
|
|
569
|
-
this.anchorBlockHeader,
|
|
570
|
-
this.
|
|
571
|
-
this.
|
|
572
|
-
this.
|
|
573
|
-
this.
|
|
574
|
-
this.
|
|
575
|
-
this.
|
|
576
|
-
this.
|
|
577
|
-
this.
|
|
578
|
-
this.
|
|
579
|
-
this.
|
|
580
|
-
this.
|
|
581
|
-
this.
|
|
582
|
-
this.
|
|
583
|
-
this.
|
|
584
|
-
this.
|
|
585
|
-
this.
|
|
553
|
+
txContext: derivedTxContext,
|
|
554
|
+
callContext: derivedCallContext,
|
|
555
|
+
anchorBlockHeader: this.anchorBlockHeader,
|
|
556
|
+
utilityExecutor: this.utilityExecutor,
|
|
557
|
+
authWitnesses: this.authWitnesses,
|
|
558
|
+
capsules: this.capsules,
|
|
559
|
+
executionCache: this.executionCache,
|
|
560
|
+
noteCache: this.noteCache,
|
|
561
|
+
taggingIndexCache: this.taggingIndexCache,
|
|
562
|
+
contractStore: this.contractStore,
|
|
563
|
+
noteStore: this.noteStore,
|
|
564
|
+
keyStore: this.keyStore,
|
|
565
|
+
addressStore: this.addressStore,
|
|
566
|
+
aztecNode: this.aztecNode,
|
|
567
|
+
senderTaggingStore: this.senderTaggingStore,
|
|
568
|
+
recipientTaggingStore: this.recipientTaggingStore,
|
|
569
|
+
senderAddressBookStore: this.senderAddressBookStore,
|
|
570
|
+
capsuleStore: this.capsuleStore,
|
|
571
|
+
privateEventStore: this.privateEventStore,
|
|
572
|
+
contractSyncService: this.contractSyncService,
|
|
573
|
+
jobId: this.jobId,
|
|
574
|
+
totalPublicCalldataCount: this.totalPublicCalldataCount,
|
|
586
575
|
sideEffectCounter,
|
|
587
|
-
this.
|
|
588
|
-
this.scopes,
|
|
589
|
-
this.senderForTags,
|
|
590
|
-
this.simulator
|
|
591
|
-
);
|
|
576
|
+
log: this.logger,
|
|
577
|
+
scopes: this.scopes,
|
|
578
|
+
senderForTags: this.senderForTags,
|
|
579
|
+
simulator: this.simulator!,
|
|
580
|
+
});
|
|
592
581
|
|
|
593
582
|
const setupTime = simulatorSetupTimer.ms();
|
|
594
583
|
|
|
595
584
|
const childExecutionResult = await executePrivateFunction(
|
|
596
|
-
this.simulator
|
|
585
|
+
this.simulator!,
|
|
597
586
|
privateExecutionOracle,
|
|
598
587
|
targetArtifact,
|
|
599
588
|
targetContractAddress,
|
|
@@ -638,7 +627,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
638
627
|
* @param sideEffectCounter - The side effect counter at the start of the call.
|
|
639
628
|
* @param isStaticCall - Whether the call is a static call.
|
|
640
629
|
*/
|
|
641
|
-
public
|
|
630
|
+
public notifyEnqueuedPublicFunctionCall(
|
|
642
631
|
_targetContractAddress: AztecAddress,
|
|
643
632
|
calldataHash: Fr,
|
|
644
633
|
_sideEffectCounter: number,
|
|
@@ -655,7 +644,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
655
644
|
* @param sideEffectCounter - The side effect counter at the start of the call.
|
|
656
645
|
* @param isStaticCall - Whether the call is a static call.
|
|
657
646
|
*/
|
|
658
|
-
public
|
|
647
|
+
public notifySetPublicTeardownFunctionCall(
|
|
659
648
|
_targetContractAddress: AztecAddress,
|
|
660
649
|
calldataHash: Fr,
|
|
661
650
|
_sideEffectCounter: number,
|
|
@@ -665,11 +654,11 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
665
654
|
return Promise.resolve();
|
|
666
655
|
}
|
|
667
656
|
|
|
668
|
-
public
|
|
657
|
+
public notifySetMinRevertibleSideEffectCounter(minRevertibleSideEffectCounter: number): Promise<void> {
|
|
669
658
|
return this.noteCache.setMinRevertibleSideEffectCounter(minRevertibleSideEffectCounter);
|
|
670
659
|
}
|
|
671
660
|
|
|
672
|
-
public
|
|
661
|
+
public isSideEffectCounterRevertible(sideEffectCounter: number): Promise<boolean> {
|
|
673
662
|
return Promise.resolve(this.noteCache.isSideEffectCounterRevertible(sideEffectCounter));
|
|
674
663
|
}
|
|
675
664
|
|
|
@@ -694,10 +683,10 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
694
683
|
}
|
|
695
684
|
|
|
696
685
|
public getDebugFunctionName() {
|
|
697
|
-
return this.
|
|
686
|
+
return this.contractStore.getDebugFunctionName(this.contractAddress, this.callContext.functionSelector);
|
|
698
687
|
}
|
|
699
688
|
|
|
700
|
-
public
|
|
689
|
+
public emitOffchainEffect(data: Fr[]): Promise<void> {
|
|
701
690
|
this.offchainEffects.push({ data });
|
|
702
691
|
return Promise.resolve();
|
|
703
692
|
}
|