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