@aztec/pxe 0.0.1-commit.b6e433891 → 0.0.1-commit.b9865e97
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dest/bin/check_oracle_version.js +43 -99
- package/dest/bin/index.d.ts +2 -0
- package/dest/bin/index.d.ts.map +1 -0
- package/dest/bin/index.js +1 -0
- package/dest/bin/oracle_version_helpers.d.ts +26 -0
- package/dest/bin/oracle_version_helpers.d.ts.map +1 -0
- package/dest/bin/oracle_version_helpers.js +93 -0
- package/dest/block_synchronizer/block_stream_source.d.ts +10 -0
- package/dest/block_synchronizer/block_stream_source.d.ts.map +1 -0
- package/dest/block_synchronizer/block_stream_source.js +62 -0
- package/dest/block_synchronizer/block_synchronizer.d.ts +6 -2
- package/dest/block_synchronizer/block_synchronizer.d.ts.map +1 -1
- package/dest/block_synchronizer/block_synchronizer.js +30 -10
- package/dest/config/index.d.ts +7 -1
- package/dest/config/index.d.ts.map +1 -1
- package/dest/config/index.js +12 -14
- package/dest/config/package_info.js +1 -1
- package/dest/contract_function_simulator/contract_function_simulator.d.ts +9 -4
- package/dest/contract_function_simulator/contract_function_simulator.d.ts.map +1 -1
- package/dest/contract_function_simulator/contract_function_simulator.js +26 -13
- package/dest/contract_function_simulator/ephemeral_array_service.d.ts +28 -0
- package/dest/contract_function_simulator/ephemeral_array_service.d.ts.map +1 -0
- package/dest/contract_function_simulator/ephemeral_array_service.js +78 -0
- package/dest/contract_function_simulator/execution_note_cache.d.ts +2 -2
- package/dest/contract_function_simulator/execution_note_cache.d.ts.map +1 -1
- package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts +5 -9
- 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 -7
- package/dest/contract_function_simulator/index.d.ts +13 -2
- package/dest/contract_function_simulator/index.d.ts.map +1 -1
- package/dest/contract_function_simulator/index.js +10 -0
- package/dest/contract_function_simulator/noir-structs/bounded_vec.d.ts +48 -0
- package/dest/contract_function_simulator/noir-structs/bounded_vec.d.ts.map +1 -0
- package/dest/contract_function_simulator/noir-structs/bounded_vec.js +45 -0
- package/dest/contract_function_simulator/noir-structs/ephemeral_array.d.ts +37 -0
- package/dest/contract_function_simulator/noir-structs/ephemeral_array.d.ts.map +1 -0
- package/dest/contract_function_simulator/noir-structs/ephemeral_array.js +59 -0
- package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts +5 -5
- package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts.map +1 -1
- package/dest/contract_function_simulator/noir-structs/event_validation_request.js +6 -8
- package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts +13 -3
- 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 +35 -4
- package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts +1 -1
- package/dest/contract_function_simulator/noir-structs/log_retrieval_response.js +1 -1
- package/dest/contract_function_simulator/noir-structs/note_data.d.ts +27 -0
- package/dest/contract_function_simulator/noir-structs/note_data.d.ts.map +1 -0
- package/dest/contract_function_simulator/noir-structs/note_data.js +3 -0
- package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts +5 -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 +6 -8
- package/dest/contract_function_simulator/noir-structs/option.d.ts +61 -0
- package/dest/contract_function_simulator/noir-structs/option.d.ts.map +1 -0
- package/dest/contract_function_simulator/noir-structs/option.js +62 -0
- package/dest/contract_function_simulator/noir-structs/provided_secret.d.ts +11 -0
- package/dest/contract_function_simulator/noir-structs/provided_secret.d.ts.map +1 -0
- package/dest/contract_function_simulator/noir-structs/provided_secret.js +24 -0
- package/dest/contract_function_simulator/oracle/interfaces.d.ts +16 -103
- package/dest/contract_function_simulator/oracle/interfaces.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/interfaces.js +2 -2
- package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts +2 -2
- package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/note_packing_utils.js +2 -2
- package/dest/contract_function_simulator/oracle/oracle.d.ts +74 -46
- package/dest/contract_function_simulator/oracle/oracle.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/oracle.js +407 -292
- package/dest/contract_function_simulator/oracle/oracle_registry.d.ts +127 -0
- package/dest/contract_function_simulator/oracle/oracle_registry.d.ts.map +1 -0
- package/dest/contract_function_simulator/oracle/oracle_registry.js +786 -0
- package/dest/contract_function_simulator/oracle/oracle_type_mappings.d.ts +139 -0
- package/dest/contract_function_simulator/oracle/oracle_type_mappings.d.ts.map +1 -0
- package/dest/contract_function_simulator/oracle/oracle_type_mappings.js +560 -0
- package/dest/contract_function_simulator/oracle/private_execution.js +1 -1
- package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts +33 -36
- package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/private_execution_oracle.js +70 -52
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts +95 -59
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.js +365 -162
- package/dest/contract_function_simulator/pick_notes.d.ts +1 -1
- package/dest/contract_function_simulator/pick_notes.d.ts.map +1 -1
- package/dest/contract_function_simulator/pick_notes.js +20 -3
- package/dest/contract_function_simulator/proxied_contract_data_source.d.ts +1 -1
- package/dest/contract_function_simulator/proxied_contract_data_source.d.ts.map +1 -1
- package/dest/contract_function_simulator/proxied_contract_data_source.js +35 -64
- package/dest/contract_logging.d.ts +9 -4
- package/dest/contract_logging.d.ts.map +1 -1
- package/dest/contract_logging.js +21 -6
- package/dest/contract_sync/contract_sync_service.d.ts +6 -9
- package/dest/contract_sync/contract_sync_service.d.ts.map +1 -1
- package/dest/contract_sync/contract_sync_service.js +71 -50
- package/dest/contract_sync/helpers.d.ts +2 -4
- package/dest/contract_sync/helpers.d.ts.map +1 -1
- package/dest/contract_sync/helpers.js +12 -14
- package/dest/debug/pxe_debug_utils.d.ts +3 -8
- package/dest/debug/pxe_debug_utils.d.ts.map +1 -1
- package/dest/debug/pxe_debug_utils.js +0 -6
- package/dest/entrypoints/client/bundle/index.d.ts +1 -2
- package/dest/entrypoints/client/bundle/index.d.ts.map +1 -1
- package/dest/entrypoints/client/bundle/index.js +0 -1
- package/dest/entrypoints/client/bundle/utils.d.ts +2 -2
- package/dest/entrypoints/client/bundle/utils.d.ts.map +1 -1
- package/dest/entrypoints/client/bundle/utils.js +13 -5
- package/dest/entrypoints/client/lazy/index.d.ts +1 -2
- package/dest/entrypoints/client/lazy/index.d.ts.map +1 -1
- package/dest/entrypoints/client/lazy/index.js +0 -1
- package/dest/entrypoints/client/lazy/utils.d.ts +2 -2
- package/dest/entrypoints/client/lazy/utils.d.ts.map +1 -1
- package/dest/entrypoints/client/lazy/utils.js +13 -5
- package/dest/entrypoints/pxe_creation_options.d.ts +9 -1
- package/dest/entrypoints/pxe_creation_options.d.ts.map +1 -1
- package/dest/entrypoints/pxe_creation_options.js +3 -1
- package/dest/entrypoints/server/index.d.ts +3 -3
- package/dest/entrypoints/server/index.d.ts.map +1 -1
- package/dest/entrypoints/server/index.js +2 -2
- package/dest/entrypoints/server/utils.d.ts +4 -3
- package/dest/entrypoints/server/utils.d.ts.map +1 -1
- package/dest/entrypoints/server/utils.js +13 -5
- package/dest/events/event_service.d.ts +15 -6
- package/dest/events/event_service.d.ts.map +1 -1
- package/dest/events/event_service.js +44 -11
- package/dest/events/private_event_filter_validator.d.ts +3 -2
- package/dest/events/private_event_filter_validator.d.ts.map +1 -1
- package/dest/events/private_event_filter_validator.js +15 -0
- package/dest/hooks/authorize_utility_call.d.ts +41 -0
- package/dest/hooks/authorize_utility_call.d.ts.map +1 -0
- package/dest/hooks/authorize_utility_call.js +4 -0
- package/dest/hooks/execution_hooks.d.ts +42 -0
- package/dest/hooks/execution_hooks.d.ts.map +1 -0
- package/dest/hooks/execution_hooks.js +9 -0
- package/dest/hooks/index.d.ts +4 -0
- package/dest/hooks/index.d.ts.map +1 -0
- package/dest/hooks/index.js +1 -0
- package/dest/logs/log_service.d.ts +9 -9
- package/dest/logs/log_service.d.ts.map +1 -1
- package/dest/logs/log_service.js +126 -72
- package/dest/messages/message_context_service.d.ts +3 -3
- package/dest/messages/message_context_service.d.ts.map +1 -1
- package/dest/messages/message_context_service.js +30 -11
- package/dest/notes/note_service.d.ts +27 -6
- package/dest/notes/note_service.d.ts.map +1 -1
- package/dest/notes/note_service.js +80 -56
- package/dest/notes_filter.d.ts +2 -3
- package/dest/notes_filter.d.ts.map +1 -1
- package/dest/oracle_version.d.ts +4 -3
- package/dest/oracle_version.d.ts.map +1 -1
- package/dest/oracle_version.js +20 -10
- package/dest/private_kernel/batch_planner.d.ts +47 -0
- package/dest/private_kernel/batch_planner.d.ts.map +1 -0
- package/dest/private_kernel/batch_planner.js +104 -0
- package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.js +1 -1
- package/dest/private_kernel/hints/test_utils.d.ts +1 -1
- package/dest/private_kernel/hints/test_utils.d.ts.map +1 -1
- package/dest/private_kernel/hints/test_utils.js +2 -3
- package/dest/private_kernel/private_kernel_execution_prover.d.ts +6 -2
- package/dest/private_kernel/private_kernel_execution_prover.d.ts.map +1 -1
- package/dest/private_kernel/private_kernel_execution_prover.js +152 -59
- package/dest/private_kernel/private_kernel_oracle.d.ts +10 -10
- package/dest/private_kernel/private_kernel_oracle.d.ts.map +1 -1
- package/dest/private_kernel/private_kernel_oracle.js +24 -22
- package/dest/pxe.d.ts +56 -10
- package/dest/pxe.d.ts.map +1 -1
- package/dest/pxe.js +138 -91
- package/dest/storage/anchor_block_store/anchor_block_store.js +1 -1
- package/dest/storage/backwards_compatibility_tests/kv_store_snapshot.d.ts +42 -0
- package/dest/storage/backwards_compatibility_tests/kv_store_snapshot.d.ts.map +1 -0
- package/dest/storage/backwards_compatibility_tests/kv_store_snapshot.js +93 -0
- package/dest/storage/backwards_compatibility_tests/schema_tests.d.ts +15 -0
- package/dest/storage/backwards_compatibility_tests/schema_tests.d.ts.map +1 -0
- package/dest/storage/backwards_compatibility_tests/schema_tests.js +591 -0
- package/dest/storage/backwards_compatibility_tests/store_spy.d.ts +19 -0
- package/dest/storage/backwards_compatibility_tests/store_spy.d.ts.map +1 -0
- package/dest/storage/backwards_compatibility_tests/store_spy.js +63 -0
- package/dest/storage/capsule_store/capsule_service.d.ts +21 -0
- package/dest/storage/capsule_store/capsule_service.d.ts.map +1 -0
- package/dest/storage/capsule_store/capsule_service.js +50 -0
- package/dest/storage/capsule_store/capsule_store.d.ts +9 -9
- package/dest/storage/capsule_store/capsule_store.d.ts.map +1 -1
- package/dest/storage/capsule_store/capsule_store.js +36 -28
- package/dest/storage/capsule_store/index.d.ts +2 -1
- package/dest/storage/capsule_store/index.d.ts.map +1 -1
- package/dest/storage/capsule_store/index.js +1 -0
- package/dest/storage/contract_store/contract_store.d.ts +1 -1
- package/dest/storage/contract_store/contract_store.d.ts.map +1 -1
- package/dest/storage/contract_store/contract_store.js +9 -26
- package/dest/storage/metadata.d.ts +1 -1
- package/dest/storage/metadata.js +1 -1
- package/dest/storage/note_store/note_store.d.ts +1 -1
- package/dest/storage/note_store/note_store.d.ts.map +1 -1
- package/dest/storage/note_store/note_store.js +2 -2
- package/dest/storage/open_pxe_stores.d.ts +33 -0
- package/dest/storage/open_pxe_stores.d.ts.map +1 -0
- package/dest/storage/open_pxe_stores.js +27 -0
- package/dest/storage/private_event_store/private_event_store.d.ts +1 -1
- package/dest/storage/private_event_store/private_event_store.d.ts.map +1 -1
- package/dest/storage/private_event_store/private_event_store.js +3 -0
- package/dest/storage/private_event_store/stored_private_event.js +1 -1
- package/dest/storage/tagging_store/recipient_tagging_store.d.ts +6 -6
- package/dest/storage/tagging_store/recipient_tagging_store.d.ts.map +1 -1
- package/dest/storage/tagging_store/sender_tagging_store.d.ts +5 -5
- package/dest/storage/tagging_store/sender_tagging_store.d.ts.map +1 -1
- package/dest/storage/tagging_store/sender_tagging_store.js +3 -3
- package/dest/tagging/get_all_logs_by_tags.d.ts +34 -10
- package/dest/tagging/get_all_logs_by_tags.d.ts.map +1 -1
- package/dest/tagging/get_all_logs_by_tags.js +36 -37
- package/dest/tagging/index.d.ts +5 -4
- package/dest/tagging/index.d.ts.map +1 -1
- package/dest/tagging/index.js +4 -3
- package/dest/tagging/persist_sender_tagging_index_ranges.d.ts +29 -0
- package/dest/tagging/persist_sender_tagging_index_ranges.d.ts.map +1 -0
- package/dest/tagging/persist_sender_tagging_index_ranges.js +42 -0
- package/dest/tagging/recipient_sync/sync_tagged_private_logs.d.ts +56 -0
- package/dest/tagging/recipient_sync/sync_tagged_private_logs.d.ts.map +1 -0
- package/dest/tagging/recipient_sync/sync_tagged_private_logs.js +163 -0
- package/dest/tagging/recipient_sync/utils/find_highest_indexes.d.ts +3 -3
- package/dest/tagging/recipient_sync/utils/find_highest_indexes.d.ts.map +1 -1
- package/dest/tagging/reconcile_tagging_index_ranges.d.ts +36 -0
- package/dest/tagging/reconcile_tagging_index_ranges.d.ts.map +1 -0
- package/dest/tagging/reconcile_tagging_index_ranges.js +74 -0
- package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts +4 -5
- package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts.map +1 -1
- package/dest/tagging/sender_sync/sync_sender_tagging_indexes.js +26 -14
- package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts +11 -6
- package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts.map +1 -1
- package/dest/tagging/sender_sync/utils/get_status_change_of_pending.js +21 -0
- package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts +4 -4
- package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts.map +1 -1
- package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.js +2 -2
- package/package.json +20 -17
- package/src/bin/check_oracle_version.ts +49 -122
- package/src/bin/index.ts +1 -0
- package/src/bin/oracle_version_helpers.ts +121 -0
- package/src/block_synchronizer/block_stream_source.ts +81 -0
- package/src/block_synchronizer/block_synchronizer.ts +33 -11
- package/src/config/index.ts +14 -8
- package/src/config/package_info.ts +1 -1
- package/src/contract_function_simulator/contract_function_simulator.ts +44 -16
- package/src/contract_function_simulator/ephemeral_array_service.ts +110 -0
- package/src/contract_function_simulator/execution_note_cache.ts +1 -1
- package/src/contract_function_simulator/execution_tagging_index_cache.ts +5 -9
- package/src/contract_function_simulator/index.ts +50 -1
- package/src/contract_function_simulator/noir-structs/bounded_vec.ts +55 -0
- package/src/contract_function_simulator/noir-structs/ephemeral_array.ts +66 -0
- package/src/contract_function_simulator/noir-structs/event_validation_request.ts +4 -6
- package/src/contract_function_simulator/noir-structs/log_retrieval_request.ts +36 -3
- package/src/contract_function_simulator/noir-structs/log_retrieval_response.ts +1 -1
- package/src/contract_function_simulator/noir-structs/note_data.ts +27 -0
- package/src/contract_function_simulator/noir-structs/note_validation_request.ts +4 -6
- package/src/contract_function_simulator/noir-structs/option.ts +69 -0
- package/src/contract_function_simulator/noir-structs/provided_secret.ts +27 -0
- package/src/contract_function_simulator/oracle/interfaces.ts +12 -176
- package/src/contract_function_simulator/oracle/note_packing_utils.ts +3 -3
- package/src/contract_function_simulator/oracle/oracle.ts +498 -462
- package/src/contract_function_simulator/oracle/oracle_registry.ts +585 -0
- package/src/contract_function_simulator/oracle/oracle_type_mappings.ts +553 -0
- package/src/contract_function_simulator/oracle/private_execution.ts +1 -1
- package/src/contract_function_simulator/oracle/private_execution_oracle.ts +93 -71
- package/src/contract_function_simulator/oracle/utility_execution_oracle.ts +534 -267
- package/src/contract_function_simulator/pick_notes.ts +22 -3
- package/src/contract_function_simulator/proxied_contract_data_source.ts +41 -64
- package/src/contract_logging.ts +18 -5
- package/src/contract_sync/contract_sync_service.ts +97 -89
- package/src/contract_sync/helpers.ts +13 -25
- package/src/debug/pxe_debug_utils.ts +3 -11
- package/src/entrypoints/client/bundle/index.ts +0 -1
- package/src/entrypoints/client/bundle/utils.ts +10 -5
- package/src/entrypoints/client/lazy/index.ts +0 -1
- package/src/entrypoints/client/lazy/utils.ts +10 -5
- package/src/entrypoints/pxe_creation_options.ts +14 -0
- package/src/entrypoints/server/index.ts +2 -2
- package/src/entrypoints/server/utils.ts +15 -6
- package/src/events/event_service.ts +69 -21
- package/src/events/private_event_filter_validator.ts +21 -1
- package/src/hooks/authorize_utility_call.ts +44 -0
- package/src/hooks/execution_hooks.ts +48 -0
- package/src/hooks/index.ts +7 -0
- package/src/logs/log_service.ts +158 -134
- package/src/messages/message_context_service.ts +43 -26
- package/src/notes/note_service.ts +119 -85
- package/src/notes_filter.ts +1 -3
- package/src/oracle_version.ts +20 -10
- package/src/private_kernel/batch_planner.ts +169 -0
- package/src/private_kernel/hints/private_kernel_reset_private_inputs_builder.ts +1 -1
- package/src/private_kernel/hints/test_utils.ts +2 -9
- package/src/private_kernel/private_kernel_execution_prover.ts +240 -82
- package/src/private_kernel/private_kernel_oracle.ts +35 -25
- package/src/pxe.ts +226 -95
- package/src/storage/anchor_block_store/anchor_block_store.ts +1 -1
- package/src/storage/backwards_compatibility_tests/__snapshots__/AddressStore.json +22 -0
- package/src/storage/backwards_compatibility_tests/__snapshots__/AnchorBlockStore.json +3 -0
- package/src/storage/backwards_compatibility_tests/__snapshots__/CapsuleStore.json +16 -0
- package/src/storage/backwards_compatibility_tests/__snapshots__/ContractStore.json +28 -0
- package/src/storage/backwards_compatibility_tests/__snapshots__/KeyStore.json +52 -0
- package/src/storage/backwards_compatibility_tests/__snapshots__/L2TipsKVStore.json +46 -0
- package/src/storage/backwards_compatibility_tests/__snapshots__/NoteStore.json +36 -0
- package/src/storage/backwards_compatibility_tests/__snapshots__/PrivateEventStore.json +44 -0
- package/src/storage/backwards_compatibility_tests/__snapshots__/RecipientTaggingStore.json +18 -0
- package/src/storage/backwards_compatibility_tests/__snapshots__/SenderAddressBookStore.json +16 -0
- package/src/storage/backwards_compatibility_tests/__snapshots__/SenderTaggingStore.json +22 -0
- package/src/storage/backwards_compatibility_tests/__snapshots__/opened_stores.json +97 -0
- package/src/storage/backwards_compatibility_tests/kv_store_snapshot.ts +122 -0
- package/src/storage/backwards_compatibility_tests/schema_tests.ts +712 -0
- package/src/storage/backwards_compatibility_tests/store_spy.ts +73 -0
- package/src/storage/capsule_store/capsule_service.ts +90 -0
- package/src/storage/capsule_store/capsule_store.ts +44 -26
- package/src/storage/capsule_store/index.ts +1 -0
- package/src/storage/contract_store/contract_store.ts +14 -35
- package/src/storage/metadata.ts +1 -1
- package/src/storage/note_store/note_store.ts +2 -5
- package/src/storage/open_pxe_stores.ts +49 -0
- package/src/storage/private_event_store/private_event_store.ts +4 -0
- package/src/storage/private_event_store/stored_private_event.ts +1 -1
- package/src/storage/tagging_store/recipient_tagging_store.ts +5 -9
- package/src/storage/tagging_store/sender_tagging_store.ts +6 -6
- package/src/tagging/get_all_logs_by_tags.ts +78 -50
- package/src/tagging/index.ts +4 -3
- package/src/tagging/persist_sender_tagging_index_ranges.ts +57 -0
- package/src/tagging/recipient_sync/sync_tagged_private_logs.ts +240 -0
- package/src/tagging/recipient_sync/utils/find_highest_indexes.ts +2 -2
- package/src/tagging/reconcile_tagging_index_ranges.ts +102 -0
- package/src/tagging/sender_sync/sync_sender_tagging_indexes.ts +41 -19
- package/src/tagging/sender_sync/utils/get_status_change_of_pending.ts +23 -8
- package/src/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.ts +4 -5
- package/dest/access_scopes.d.ts +0 -9
- package/dest/access_scopes.d.ts.map +0 -1
- package/dest/access_scopes.js +0 -6
- package/dest/contract_function_simulator/noir-structs/message_tx_context.d.ts +0 -16
- package/dest/contract_function_simulator/noir-structs/message_tx_context.d.ts.map +0 -1
- package/dest/contract_function_simulator/noir-structs/message_tx_context.js +0 -57
- package/dest/contract_function_simulator/oracle/legacy_oracle_mappings.d.ts +0 -9
- package/dest/contract_function_simulator/oracle/legacy_oracle_mappings.d.ts.map +0 -1
- package/dest/contract_function_simulator/oracle/legacy_oracle_mappings.js +0 -42
- package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts +0 -14
- package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts.map +0 -1
- package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.js +0 -99
- package/dest/tagging/recipient_sync/utils/load_logs_for_range.d.ts +0 -14
- package/dest/tagging/recipient_sync/utils/load_logs_for_range.d.ts.map +0 -1
- package/dest/tagging/recipient_sync/utils/load_logs_for_range.js +0 -33
- package/src/access_scopes.ts +0 -9
- package/src/contract_function_simulator/noir-structs/message_tx_context.ts +0 -55
- package/src/contract_function_simulator/oracle/legacy_oracle_mappings.ts +0 -135
- package/src/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.ts +0 -140
- package/src/tagging/recipient_sync/utils/load_logs_for_range.ts +0 -44
|
@@ -1,26 +1,24 @@
|
|
|
1
1
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
2
|
-
import { type
|
|
3
|
-
import { type FunctionAbi, type FunctionCall, FunctionSelector, type NoteSelector } from '@aztec/stdlib/abi';
|
|
2
|
+
import { type FunctionAbi, FunctionSelector, type NoteSelector } from '@aztec/stdlib/abi';
|
|
4
3
|
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
5
4
|
import { PrivateContextInputs } from '@aztec/stdlib/kernel';
|
|
6
|
-
import { type ContractClassLog, type TaggingIndexRange } from '@aztec/stdlib/logs';
|
|
7
|
-
import { Tag } from '@aztec/stdlib/logs';
|
|
5
|
+
import { AppTaggingSecretKind, type ContractClassLog, type TaggingIndexRange } from '@aztec/stdlib/logs';
|
|
8
6
|
import { type NoteStatus } from '@aztec/stdlib/note';
|
|
9
7
|
import { CallContext, CountedContractClassLog, NoteAndSlot, PrivateCallExecutionResult, type TxContext } from '@aztec/stdlib/tx';
|
|
10
|
-
import type { AccessScopes } from '../../access_scopes.js';
|
|
11
8
|
import type { SenderTaggingStore } from '../../storage/tagging_store/sender_tagging_store.js';
|
|
12
9
|
import type { ExecutionNoteCache } from '../execution_note_cache.js';
|
|
13
10
|
import { ExecutionTaggingIndexCache } from '../execution_tagging_index_cache.js';
|
|
14
11
|
import type { HashedValuesCache } from '../hashed_values_cache.js';
|
|
15
|
-
import
|
|
12
|
+
import { BoundedVec } from '../noir-structs/bounded_vec.js';
|
|
13
|
+
import type { NoteData } from '../noir-structs/note_data.js';
|
|
14
|
+
import { Option } from '../noir-structs/option.js';
|
|
15
|
+
import type { IPrivateExecutionOracle } from './interfaces.js';
|
|
16
16
|
import { UtilityExecutionOracle, type UtilityExecutionOracleArgs } from './utility_execution_oracle.js';
|
|
17
17
|
/** Args for PrivateExecutionOracle constructor. */
|
|
18
18
|
export type PrivateExecutionOracleArgs = Omit<UtilityExecutionOracleArgs, 'contractAddress'> & {
|
|
19
19
|
argsHash: Fr;
|
|
20
20
|
txContext: TxContext;
|
|
21
21
|
callContext: CallContext;
|
|
22
|
-
/** Needed to trigger contract synchronization before nested calls */
|
|
23
|
-
utilityExecutor: (call: FunctionCall, scopes: AccessScopes) => Promise<void>;
|
|
24
22
|
executionCache: HashedValuesCache;
|
|
25
23
|
noteCache: ExecutionNoteCache;
|
|
26
24
|
taggingIndexCache: ExecutionTaggingIndexCache;
|
|
@@ -28,7 +26,6 @@ export type PrivateExecutionOracleArgs = Omit<UtilityExecutionOracleArgs, 'contr
|
|
|
28
26
|
totalPublicCalldataCount?: number;
|
|
29
27
|
sideEffectCounter?: number;
|
|
30
28
|
senderForTags?: AztecAddress;
|
|
31
|
-
simulator?: CircuitSimulator;
|
|
32
29
|
};
|
|
33
30
|
/**
|
|
34
31
|
* The execution oracle for the private part of a transaction.
|
|
@@ -51,15 +48,14 @@ export declare class PrivateExecutionOracle extends UtilityExecutionOracle imple
|
|
|
51
48
|
private readonly argsHash;
|
|
52
49
|
private readonly txContext;
|
|
53
50
|
private readonly callContext;
|
|
54
|
-
private readonly utilityExecutor;
|
|
55
51
|
private readonly executionCache;
|
|
56
52
|
private readonly noteCache;
|
|
57
53
|
private readonly taggingIndexCache;
|
|
58
54
|
private readonly senderTaggingStore;
|
|
59
55
|
private totalPublicCalldataCount;
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
private readonly
|
|
56
|
+
private readonly initialSideEffectCounter;
|
|
57
|
+
/** Sender for tags passed in at oracle construction time. Returned by `getSenderForTags`. */
|
|
58
|
+
private readonly defaultSenderForTags;
|
|
63
59
|
constructor(args: PrivateExecutionOracleArgs);
|
|
64
60
|
getPrivateContextInputs(): PrivateContextInputs;
|
|
65
61
|
/**
|
|
@@ -92,42 +88,41 @@ export declare class PrivateExecutionOracle extends UtilityExecutionOracle imple
|
|
|
92
88
|
* for a tag in order to emit a log. Constrained tagging should not use this as there is no
|
|
93
89
|
* guarantee that the recipient knows about the sender, and hence about the shared secret.
|
|
94
90
|
*
|
|
95
|
-
*
|
|
96
|
-
* 'senderForTags' value (unless it is replaced).
|
|
91
|
+
* Returns the wallet-supplied default sender for tags, or `None` if no default was provided.
|
|
97
92
|
*/
|
|
98
|
-
getSenderForTags(): Promise<AztecAddress
|
|
93
|
+
getSenderForTags(): Promise<Option<AztecAddress>>;
|
|
99
94
|
/**
|
|
100
|
-
*
|
|
95
|
+
* Returns the sender-side app tagging secret for a `(sender, recipient)` pair.
|
|
101
96
|
*
|
|
102
|
-
*
|
|
103
|
-
*
|
|
104
|
-
* guarantee that the recipient knows about the sender, and hence about the shared secret.
|
|
97
|
+
* The caller obtains an index via {@link getNextTaggingIndex} and computes the final tag itself.
|
|
98
|
+
* The only expected `None` case is an invalid recipient address; missing sender data fails while deriving.
|
|
105
99
|
*
|
|
106
|
-
* Account contracts typically set this value before calling other contracts. The value persists
|
|
107
|
-
* through nested calls, meaning all calls down the stack will use the same 'senderForTags'
|
|
108
|
-
* value (unless it is replaced by another call to this setter).
|
|
109
|
-
*/
|
|
110
|
-
setSenderForTags(senderForTags: AztecAddress): Promise<void>;
|
|
111
|
-
/**
|
|
112
|
-
* Returns the next app tag for a given sender and recipient pair.
|
|
113
100
|
* @param sender - The address sending the log
|
|
114
101
|
* @param recipient - The address receiving the log
|
|
115
|
-
* @returns
|
|
102
|
+
* @returns The app tagging secret, or `None` if the recipient is invalid.
|
|
103
|
+
*/
|
|
104
|
+
getAppTaggingSecret(sender: AztecAddress, recipient: AztecAddress): Promise<Option<Fr>>;
|
|
105
|
+
/**
|
|
106
|
+
* Returns the next sender-side tagging index for a given secret and delivery mode.
|
|
107
|
+
*
|
|
108
|
+
* @param secret - The tagging secret to allocate an index for.
|
|
109
|
+
* @param kind - The sender-side index namespace.
|
|
110
|
+
* @returns The next index to use for this secret.
|
|
116
111
|
*/
|
|
117
|
-
|
|
112
|
+
getNextTaggingIndex(secret: Fr, kind: AppTaggingSecretKind): Promise<number>;
|
|
118
113
|
/**
|
|
119
114
|
* Store values in the execution cache.
|
|
120
115
|
* @param values - Values to store.
|
|
121
116
|
* @returns The hash of the values.
|
|
122
117
|
*/
|
|
123
|
-
|
|
118
|
+
setHashPreimage(values: Fr[], hash: Fr): void;
|
|
124
119
|
/**
|
|
125
120
|
* Gets values from the execution cache.
|
|
126
121
|
* @param hash - Hash of the values.
|
|
127
122
|
* @returns The values.
|
|
128
123
|
*/
|
|
129
|
-
|
|
130
|
-
|
|
124
|
+
getHashPreimage(hash: Fr): Promise<Fr[]>;
|
|
125
|
+
doesNullifierExist(innerNullifier: Fr): Promise<boolean>;
|
|
131
126
|
/**
|
|
132
127
|
* Gets some notes for a storage slot.
|
|
133
128
|
*
|
|
@@ -149,7 +144,7 @@ export declare class PrivateExecutionOracle extends UtilityExecutionOracle imple
|
|
|
149
144
|
* @param status - The status of notes to fetch.
|
|
150
145
|
* @returns Array of note data.
|
|
151
146
|
*/
|
|
152
|
-
getNotes(owner: AztecAddress
|
|
147
|
+
getNotes(owner: Option<AztecAddress>, storageSlot: Fr, numSelects: number, selectByIndexes: number[], selectByOffsets: number[], selectByLengths: number[], selectValues: Fr[], selectComparators: number[], sortByIndexes: number[], sortByOffsets: number[], sortByLengths: number[], sortOrder: number[], limit: number, offset: number, status: NoteStatus, maxNotes: number, packedHintedNoteLength: number): Promise<BoundedVec<NoteData>>;
|
|
153
148
|
/**
|
|
154
149
|
* Keep track of the new note created during execution.
|
|
155
150
|
* It can be used in subsequent calls (or transactions when chaining txs is possible).
|
|
@@ -206,10 +201,12 @@ export declare class PrivateExecutionOracle extends UtilityExecutionOracle imple
|
|
|
206
201
|
returnsHash: Fr;
|
|
207
202
|
}>;
|
|
208
203
|
/** Validates the calldata preimage exists in the cache and checks cumulative calldata size is within limits. */
|
|
209
|
-
|
|
204
|
+
assertValidPublicCalldata(calldataHash: Fr): Promise<void>;
|
|
205
|
+
getTotalPublicCalldataCount(): number;
|
|
210
206
|
notifyRevertiblePhaseStart(minRevertibleSideEffectCounter: number): Promise<void>;
|
|
211
|
-
|
|
207
|
+
isExecutionInRevertiblePhase(sideEffectCounter: number): Promise<boolean>;
|
|
212
208
|
private deriveCallContext;
|
|
213
209
|
getDebugFunctionName(): Promise<string>;
|
|
210
|
+
protected get callerContext(): "private" | "private view";
|
|
214
211
|
}
|
|
215
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
212
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpdmF0ZV9leGVjdXRpb25fb3JhY2xlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udHJhY3RfZnVuY3Rpb25fc2ltdWxhdG9yL29yYWNsZS9wcml2YXRlX2V4ZWN1dGlvbl9vcmFjbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBSXBELE9BQU8sRUFDTCxLQUFLLFdBQVcsRUFFaEIsZ0JBQWdCLEVBQ2hCLEtBQUssWUFBWSxFQUVsQixNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUUzRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM1RCxPQUFPLEVBRUwsb0JBQW9CLEVBQ3BCLEtBQUssZ0JBQWdCLEVBQ3JCLEtBQUssaUJBQWlCLEVBQ3ZCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFRLEtBQUssVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDM0QsT0FBTyxFQUNMLFdBQVcsRUFDWCx1QkFBdUIsRUFDdkIsV0FBVyxFQUNYLDBCQUEwQixFQUMxQixLQUFLLFNBQVMsRUFDZixNQUFNLGtCQUFrQixDQUFDO0FBRzFCLE9BQU8sS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFFOUYsT0FBTyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNqRixPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM1RCxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztB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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"private_execution_oracle.d.ts","sourceRoot":"","sources":["../../../src/contract_function_simulator/oracle/private_execution_oracle.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"private_execution_oracle.d.ts","sourceRoot":"","sources":["../../../src/contract_function_simulator/oracle/private_execution_oracle.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,14 +4,16 @@ 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 { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
7
8
|
import { siloNullifier } from '@aztec/stdlib/hash';
|
|
8
9
|
import { PrivateContextInputs } from '@aztec/stdlib/kernel';
|
|
9
|
-
import {
|
|
10
|
-
import { Tag } from '@aztec/stdlib/logs';
|
|
10
|
+
import { AppTaggingSecret } from '@aztec/stdlib/logs';
|
|
11
11
|
import { Note } from '@aztec/stdlib/note';
|
|
12
12
|
import { CallContext, CountedContractClassLog, NoteAndSlot } from '@aztec/stdlib/tx';
|
|
13
13
|
import { NoteService } from '../../notes/note_service.js';
|
|
14
14
|
import { syncSenderTaggingIndexes } from '../../tagging/index.js';
|
|
15
|
+
import { BoundedVec } from '../noir-structs/bounded_vec.js';
|
|
16
|
+
import { Option } from '../noir-structs/option.js';
|
|
15
17
|
import { pickNotes } from '../pick_notes.js';
|
|
16
18
|
import { executePrivateFunction } from './private_execution.js';
|
|
17
19
|
import { UtilityExecutionOracle } from './utility_execution_oracle.js';
|
|
@@ -33,15 +35,13 @@ import { UtilityExecutionOracle } from './utility_execution_oracle.js';
|
|
|
33
35
|
argsHash;
|
|
34
36
|
txContext;
|
|
35
37
|
callContext;
|
|
36
|
-
utilityExecutor;
|
|
37
38
|
executionCache;
|
|
38
39
|
noteCache;
|
|
39
40
|
taggingIndexCache;
|
|
40
41
|
senderTaggingStore;
|
|
41
42
|
totalPublicCalldataCount;
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
simulator;
|
|
43
|
+
initialSideEffectCounter;
|
|
44
|
+
/** Sender for tags passed in at oracle construction time. Returned by `getSenderForTags`. */ defaultSenderForTags;
|
|
45
45
|
constructor(args){
|
|
46
46
|
super({
|
|
47
47
|
...args,
|
|
@@ -51,18 +51,16 @@ import { UtilityExecutionOracle } from './utility_execution_oracle.js';
|
|
|
51
51
|
this.argsHash = args.argsHash;
|
|
52
52
|
this.txContext = args.txContext;
|
|
53
53
|
this.callContext = args.callContext;
|
|
54
|
-
this.utilityExecutor = args.utilityExecutor;
|
|
55
54
|
this.executionCache = args.executionCache;
|
|
56
55
|
this.noteCache = args.noteCache;
|
|
57
56
|
this.taggingIndexCache = args.taggingIndexCache;
|
|
58
57
|
this.senderTaggingStore = args.senderTaggingStore;
|
|
59
58
|
this.totalPublicCalldataCount = args.totalPublicCalldataCount ?? 0;
|
|
60
|
-
this.
|
|
61
|
-
this.
|
|
62
|
-
this.simulator = args.simulator;
|
|
59
|
+
this.initialSideEffectCounter = args.sideEffectCounter ?? 0;
|
|
60
|
+
this.defaultSenderForTags = args.senderForTags;
|
|
63
61
|
}
|
|
64
62
|
getPrivateContextInputs() {
|
|
65
|
-
return new PrivateContextInputs(this.callContext, this.anchorBlockHeader, this.txContext, this.
|
|
63
|
+
return new PrivateContextInputs(this.callContext, this.anchorBlockHeader, this.txContext, this.initialSideEffectCounter);
|
|
66
64
|
}
|
|
67
65
|
// We still need this function until we can get user-defined ordering of structs for fn arguments
|
|
68
66
|
// TODO When that is sorted out on noir side, we can use instead the utilities in serialize.ts
|
|
@@ -116,44 +114,50 @@ import { UtilityExecutionOracle } from './utility_execution_oracle.js';
|
|
|
116
114
|
* for a tag in order to emit a log. Constrained tagging should not use this as there is no
|
|
117
115
|
* guarantee that the recipient knows about the sender, and hence about the shared secret.
|
|
118
116
|
*
|
|
119
|
-
*
|
|
120
|
-
* 'senderForTags' value (unless it is replaced).
|
|
117
|
+
* Returns the wallet-supplied default sender for tags, or `None` if no default was provided.
|
|
121
118
|
*/ getSenderForTags() {
|
|
122
|
-
return Promise.resolve(this.
|
|
119
|
+
return Promise.resolve(this.defaultSenderForTags ? Option.some(this.defaultSenderForTags) : Option.none(AztecAddress.ZERO));
|
|
123
120
|
}
|
|
124
121
|
/**
|
|
125
|
-
*
|
|
122
|
+
* Returns the sender-side app tagging secret for a `(sender, recipient)` pair.
|
|
126
123
|
*
|
|
127
|
-
*
|
|
128
|
-
*
|
|
129
|
-
* guarantee that the recipient knows about the sender, and hence about the shared secret.
|
|
124
|
+
* The caller obtains an index via {@link getNextTaggingIndex} and computes the final tag itself.
|
|
125
|
+
* The only expected `None` case is an invalid recipient address; missing sender data fails while deriving.
|
|
130
126
|
*
|
|
131
|
-
* Account contracts typically set this value before calling other contracts. The value persists
|
|
132
|
-
* through nested calls, meaning all calls down the stack will use the same 'senderForTags'
|
|
133
|
-
* value (unless it is replaced by another call to this setter).
|
|
134
|
-
*/ setSenderForTags(senderForTags) {
|
|
135
|
-
this.senderForTags = senderForTags;
|
|
136
|
-
return Promise.resolve();
|
|
137
|
-
}
|
|
138
|
-
/**
|
|
139
|
-
* Returns the next app tag for a given sender and recipient pair.
|
|
140
127
|
* @param sender - The address sending the log
|
|
141
128
|
* @param recipient - The address receiving the log
|
|
142
|
-
* @returns
|
|
143
|
-
*/ async
|
|
144
|
-
const extendedSecret = await this.#
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
129
|
+
* @returns The app tagging secret, or `None` if the recipient is invalid.
|
|
130
|
+
*/ async getAppTaggingSecret(sender, recipient) {
|
|
131
|
+
const extendedSecret = await this.#calculateAppTaggingSecret(this.contractAddress, sender, recipient);
|
|
132
|
+
if (!extendedSecret) {
|
|
133
|
+
this.logger.warn(`Computing a tagging secret for invalid recipient ${recipient} - returning no secret`, {
|
|
134
|
+
contractAddress: this.contractAddress
|
|
135
|
+
});
|
|
136
|
+
return Option.none(Fr.ZERO);
|
|
137
|
+
}
|
|
138
|
+
return Option.some(extendedSecret.secret);
|
|
152
139
|
}
|
|
153
|
-
|
|
140
|
+
/**
|
|
141
|
+
* Returns the next sender-side tagging index for a given secret and delivery mode.
|
|
142
|
+
*
|
|
143
|
+
* @param secret - The tagging secret to allocate an index for.
|
|
144
|
+
* @param kind - The sender-side index namespace.
|
|
145
|
+
* @returns The next index to use for this secret.
|
|
146
|
+
*/ async getNextTaggingIndex(secret, kind) {
|
|
147
|
+
const appTaggingSecret = new AppTaggingSecret(secret, this.contractAddress, kind);
|
|
148
|
+
const index = await this.#reserveNextIndexForSecret(appTaggingSecret);
|
|
149
|
+
this.logger.debug(`Incrementing ${kind} tagging index for secret in contract ${this.contractAddress} to ${index}`);
|
|
150
|
+
return index;
|
|
151
|
+
}
|
|
152
|
+
/** Resolves the next index for a given tagging secret, syncing from chain if it is missing from the in-tx cache. */ async #reserveNextIndexForSecret(secret) {
|
|
153
|
+
const index = await this.#getIndexToUseForSecret(secret);
|
|
154
|
+
this.taggingIndexCache.setLastUsedIndex(secret, index);
|
|
155
|
+
return index;
|
|
156
|
+
}
|
|
157
|
+
async #calculateAppTaggingSecret(contractAddress, sender, recipient) {
|
|
154
158
|
const senderCompleteAddress = await this.getCompleteAddressOrFail(sender);
|
|
155
159
|
const senderIvsk = await this.keyStore.getMasterIncomingViewingSecretKey(sender);
|
|
156
|
-
return
|
|
160
|
+
return AppTaggingSecret.computeUnconstrained(senderCompleteAddress, senderIvsk, recipient, contractAddress, recipient);
|
|
157
161
|
}
|
|
158
162
|
async #getIndexToUseForSecret(secret) {
|
|
159
163
|
// If we have the tagging index in the cache, we use it. If not we obtain it from the execution data provider.
|
|
@@ -175,21 +179,21 @@ import { UtilityExecutionOracle } from './utility_execution_oracle.js';
|
|
|
175
179
|
* Store values in the execution cache.
|
|
176
180
|
* @param values - Values to store.
|
|
177
181
|
* @returns The hash of the values.
|
|
178
|
-
*/
|
|
182
|
+
*/ setHashPreimage(values, hash) {
|
|
179
183
|
return this.executionCache.store(values, hash);
|
|
180
184
|
}
|
|
181
185
|
/**
|
|
182
186
|
* Gets values from the execution cache.
|
|
183
187
|
* @param hash - Hash of the values.
|
|
184
188
|
* @returns The values.
|
|
185
|
-
*/
|
|
189
|
+
*/ getHashPreimage(hash) {
|
|
186
190
|
const preimage = this.executionCache.getPreimage(hash);
|
|
187
191
|
if (!preimage) {
|
|
188
192
|
throw new Error(`Preimage for hash ${hash.toString()} not found in cache`);
|
|
189
193
|
}
|
|
190
194
|
return Promise.resolve(preimage);
|
|
191
195
|
}
|
|
192
|
-
async
|
|
196
|
+
async doesNullifierExist(innerNullifier) {
|
|
193
197
|
// This oracle must be overridden because while utility execution can only meaningfully check if a nullifier exists
|
|
194
198
|
// in the synched block, during private execution there's also the possibility of it being pending, i.e. created
|
|
195
199
|
// in the current transaction.
|
|
@@ -197,7 +201,7 @@ import { UtilityExecutionOracle } from './utility_execution_oracle.js';
|
|
|
197
201
|
contractAddress: this.contractAddress
|
|
198
202
|
});
|
|
199
203
|
const nullifier = (await siloNullifier(this.contractAddress, innerNullifier)).toBigInt();
|
|
200
|
-
return this.noteCache.getNullifiers(this.contractAddress).has(nullifier) || await super.
|
|
204
|
+
return this.noteCache.getNullifiers(this.contractAddress).has(nullifier) || await super.doesNullifierExist(innerNullifier);
|
|
201
205
|
}
|
|
202
206
|
/**
|
|
203
207
|
* Gets some notes for a storage slot.
|
|
@@ -219,12 +223,12 @@ import { UtilityExecutionOracle } from './utility_execution_oracle.js';
|
|
|
219
223
|
* @param offset - The starting index for pagination.
|
|
220
224
|
* @param status - The status of notes to fetch.
|
|
221
225
|
* @returns Array of note data.
|
|
222
|
-
*/ async getNotes(owner, storageSlot, numSelects, selectByIndexes, selectByOffsets, selectByLengths, selectValues, selectComparators, sortByIndexes, sortByOffsets, sortByLengths, sortOrder, limit, offset, status) {
|
|
226
|
+
*/ async getNotes(owner, storageSlot, numSelects, selectByIndexes, selectByOffsets, selectByLengths, selectValues, selectComparators, sortByIndexes, sortByOffsets, sortByLengths, sortOrder, limit, offset, status, maxNotes, packedHintedNoteLength) {
|
|
223
227
|
// Nullified pending notes are already removed from the list.
|
|
224
|
-
const pendingNotes = this.noteCache.getNotes(this.callContext.contractAddress, owner, storageSlot);
|
|
228
|
+
const pendingNotes = this.noteCache.getNotes(this.callContext.contractAddress, owner.value, storageSlot);
|
|
225
229
|
const pendingNullifiers = this.noteCache.getNullifiers(this.callContext.contractAddress);
|
|
226
230
|
const noteService = new NoteService(this.noteStore, this.aztecNode, this.anchorBlockHeader, this.jobId);
|
|
227
|
-
const dbNotes = await noteService.getNotes(this.callContext.contractAddress, owner, storageSlot, status, this.scopes);
|
|
231
|
+
const dbNotes = await noteService.getNotes(this.callContext.contractAddress, owner.value, storageSlot, status, this.scopes);
|
|
228
232
|
const dbNotesFiltered = dbNotes.filter((n)=>!pendingNullifiers.has(n.siloedNullifier.value));
|
|
229
233
|
const notes = pickNotes([
|
|
230
234
|
...dbNotesFiltered,
|
|
@@ -251,7 +255,11 @@ import { UtilityExecutionOracle } from './utility_execution_oracle.js';
|
|
|
251
255
|
offset
|
|
252
256
|
});
|
|
253
257
|
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(', ')}`);
|
|
254
|
-
return
|
|
258
|
+
return BoundedVec.from({
|
|
259
|
+
data: notes,
|
|
260
|
+
maxLength: maxNotes,
|
|
261
|
+
elementSize: packedHintedNoteLength
|
|
262
|
+
});
|
|
255
263
|
}
|
|
256
264
|
/**
|
|
257
265
|
* Keep track of the new note created during execution.
|
|
@@ -379,7 +387,7 @@ import { UtilityExecutionOracle } from './utility_execution_oracle.js';
|
|
|
379
387
|
senderTaggingStore: this.senderTaggingStore,
|
|
380
388
|
recipientTaggingStore: this.recipientTaggingStore,
|
|
381
389
|
senderAddressBookStore: this.senderAddressBookStore,
|
|
382
|
-
|
|
390
|
+
capsuleService: this.capsuleService,
|
|
383
391
|
privateEventStore: this.privateEventStore,
|
|
384
392
|
messageContextService: this.messageContextService,
|
|
385
393
|
contractSyncService: this.contractSyncService,
|
|
@@ -388,11 +396,15 @@ import { UtilityExecutionOracle } from './utility_execution_oracle.js';
|
|
|
388
396
|
sideEffectCounter,
|
|
389
397
|
log: this.logger,
|
|
390
398
|
scopes: this.scopes,
|
|
391
|
-
senderForTags: this.
|
|
392
|
-
simulator: this.simulator
|
|
399
|
+
senderForTags: this.defaultSenderForTags,
|
|
400
|
+
simulator: this.simulator,
|
|
401
|
+
hooks: this.hooks,
|
|
402
|
+
l2TipsStore: this.l2TipsStore
|
|
393
403
|
});
|
|
394
404
|
const setupTime = simulatorSetupTimer.ms();
|
|
395
405
|
const childExecutionResult = await executePrivateFunction(this.simulator, privateExecutionOracle, targetArtifact, targetContractAddress, functionSelector);
|
|
406
|
+
// Propagate the nested call's calldata count so the parent sees its increments on subsequent enqueues.
|
|
407
|
+
this.totalPublicCalldataCount = privateExecutionOracle.getTotalPublicCalldataCount();
|
|
396
408
|
if (isStaticCall) {
|
|
397
409
|
this.#checkValidStaticCall(childExecutionResult);
|
|
398
410
|
}
|
|
@@ -407,7 +419,7 @@ import { UtilityExecutionOracle } from './utility_execution_oracle.js';
|
|
|
407
419
|
returnsHash: publicInputs.returnsHash
|
|
408
420
|
};
|
|
409
421
|
}
|
|
410
|
-
/** Validates the calldata preimage exists in the cache and checks cumulative calldata size is within limits. */
|
|
422
|
+
/** Validates the calldata preimage exists in the cache and checks cumulative calldata size is within limits. */ assertValidPublicCalldata(calldataHash) {
|
|
411
423
|
const calldata = this.executionCache.getPreimage(calldataHash);
|
|
412
424
|
if (!calldata) {
|
|
413
425
|
throw new Error('Calldata for public call not found in cache');
|
|
@@ -418,10 +430,13 @@ import { UtilityExecutionOracle } from './utility_execution_oracle.js';
|
|
|
418
430
|
}
|
|
419
431
|
return Promise.resolve();
|
|
420
432
|
}
|
|
433
|
+
getTotalPublicCalldataCount() {
|
|
434
|
+
return this.totalPublicCalldataCount;
|
|
435
|
+
}
|
|
421
436
|
notifyRevertiblePhaseStart(minRevertibleSideEffectCounter) {
|
|
422
437
|
return this.noteCache.setMinRevertibleSideEffectCounter(minRevertibleSideEffectCounter);
|
|
423
438
|
}
|
|
424
|
-
|
|
439
|
+
isExecutionInRevertiblePhase(sideEffectCounter) {
|
|
425
440
|
return Promise.resolve(this.noteCache.isSideEffectCounterRevertible(sideEffectCounter));
|
|
426
441
|
}
|
|
427
442
|
/**
|
|
@@ -436,4 +451,7 @@ import { UtilityExecutionOracle } from './utility_execution_oracle.js';
|
|
|
436
451
|
getDebugFunctionName() {
|
|
437
452
|
return this.contractStore.getDebugFunctionName(this.contractAddress, this.callContext.functionSelector);
|
|
438
453
|
}
|
|
454
|
+
get callerContext() {
|
|
455
|
+
return this.callContext.isStaticCall ? 'private view' : 'private';
|
|
456
|
+
}
|
|
439
457
|
}
|