@aztec/pxe 0.0.1-commit.343b43af6 → 0.0.1-commit.350e0a4d
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 +45 -111
- 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 +51 -0
- package/dest/bin/oracle_version_helpers.d.ts.map +1 -0
- package/dest/bin/oracle_version_helpers.js +254 -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 +37 -0
- package/dest/block_synchronizer/block_synchronizer.d.ts +23 -15
- package/dest/block_synchronizer/block_synchronizer.d.ts.map +1 -1
- package/dest/block_synchronizer/block_synchronizer.js +84 -28
- package/dest/config/index.d.ts +8 -1
- package/dest/config/index.d.ts.map +1 -1
- package/dest/config/index.js +13 -14
- package/dest/config/package_info.js +1 -1
- package/dest/contract/contract_class_service.d.ts +31 -0
- package/dest/contract/contract_class_service.d.ts.map +1 -0
- package/dest/contract/contract_class_service.js +68 -0
- package/dest/contract/contract_sync_service.d.ts +48 -0
- package/dest/contract/contract_sync_service.d.ts.map +1 -0
- package/dest/contract/contract_sync_service.js +116 -0
- package/dest/contract/helpers.d.ts +7 -0
- package/dest/contract/helpers.d.ts.map +1 -0
- package/dest/contract/helpers.js +20 -0
- package/dest/contract_function_simulator/anchored_contract_data.d.ts +36 -0
- package/dest/contract_function_simulator/anchored_contract_data.d.ts.map +1 -0
- package/dest/contract_function_simulator/anchored_contract_data.js +54 -0
- package/dest/contract_function_simulator/contract_function_simulator.d.ts +30 -18
- package/dest/contract_function_simulator/contract_function_simulator.d.ts.map +1 -1
- package/dest/contract_function_simulator/contract_function_simulator.js +106 -40
- 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 +4 -10
- package/dest/contract_function_simulator/execution_note_cache.d.ts.map +1 -1
- package/dest/contract_function_simulator/execution_note_cache.js +8 -28
- package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts +7 -11
- package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts.map +1 -1
- package/dest/contract_function_simulator/execution_tagging_index_cache.js +19 -15
- package/dest/contract_function_simulator/index.d.ts +26 -5
- package/dest/contract_function_simulator/index.d.ts.map +1 -1
- package/dest/contract_function_simulator/index.js +12 -3
- package/dest/contract_function_simulator/noir-structs/bounded_vec.d.ts +29 -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 +30 -0
- package/dest/contract_function_simulator/noir-structs/contract_class_log_data.d.ts +9 -0
- package/dest/contract_function_simulator/noir-structs/contract_class_log_data.d.ts.map +1 -0
- package/dest/contract_function_simulator/noir-structs/contract_class_log_data.js +1 -0
- package/dest/contract_function_simulator/noir-structs/embedded_curve_point.d.ts +7 -0
- package/dest/contract_function_simulator/noir-structs/embedded_curve_point.d.ts.map +1 -0
- package/dest/contract_function_simulator/noir-structs/embedded_curve_point.js +1 -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 +7 -9
- package/dest/contract_function_simulator/noir-structs/fact.d.ts +16 -0
- package/dest/contract_function_simulator/noir-structs/fact.d.ts.map +1 -0
- package/dest/contract_function_simulator/noir-structs/fact.js +6 -0
- package/dest/contract_function_simulator/noir-structs/fact_collection.d.ts +27 -0
- package/dest/contract_function_simulator/noir-structs/fact_collection.d.ts.map +1 -0
- package/dest/contract_function_simulator/noir-structs/fact_collection.js +31 -0
- package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts +19 -10
- 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 +12 -24
- package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts +11 -9
- package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts.map +1 -1
- package/dest/contract_function_simulator/noir-structs/log_retrieval_response.js +2 -61
- 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 +8 -10
- package/dest/contract_function_simulator/noir-structs/option.d.ts +59 -0
- package/dest/contract_function_simulator/noir-structs/option.d.ts.map +1 -0
- package/dest/contract_function_simulator/noir-structs/option.js +67 -0
- package/dest/contract_function_simulator/noir-structs/origin_block.d.ts +11 -0
- package/dest/contract_function_simulator/noir-structs/origin_block.d.ts.map +1 -0
- package/dest/contract_function_simulator/noir-structs/origin_block.js +5 -0
- package/dest/contract_function_simulator/noir-structs/pending_tagged_log.d.ts +11 -0
- package/dest/contract_function_simulator/noir-structs/pending_tagged_log.d.ts.map +1 -0
- package/dest/contract_function_simulator/noir-structs/pending_tagged_log.js +4 -0
- package/dest/contract_function_simulator/noir-structs/provided_secret.d.ts +8 -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 +1 -0
- package/dest/contract_function_simulator/noir-structs/resolved_tagging_strategy.d.ts +28 -0
- package/dest/contract_function_simulator/noir-structs/resolved_tagging_strategy.d.ts.map +1 -0
- package/dest/contract_function_simulator/noir-structs/resolved_tagging_strategy.js +43 -0
- package/dest/contract_function_simulator/noir-structs/resolved_tx.d.ts +21 -0
- package/dest/contract_function_simulator/noir-structs/resolved_tx.d.ts.map +1 -0
- package/dest/contract_function_simulator/noir-structs/resolved_tx.js +50 -0
- package/dest/contract_function_simulator/noir-structs/tx_effect_data.d.ts +14 -0
- package/dest/contract_function_simulator/noir-structs/tx_effect_data.d.ts.map +1 -0
- package/dest/contract_function_simulator/noir-structs/tx_effect_data.js +5 -0
- package/dest/contract_function_simulator/noir-structs/utility_context.d.ts +6 -11
- package/dest/contract_function_simulator/noir-structs/utility_context.d.ts.map +1 -1
- package/dest/contract_function_simulator/noir-structs/utility_context.js +1 -20
- package/dest/contract_function_simulator/oracle/acir_callback.d.ts +21 -0
- package/dest/contract_function_simulator/oracle/acir_callback.d.ts.map +1 -0
- package/dest/contract_function_simulator/oracle/acir_callback.js +115 -0
- package/dest/contract_function_simulator/oracle/index.d.ts +2 -13
- package/dest/contract_function_simulator/oracle/index.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/index.js +1 -1
- package/dest/contract_function_simulator/oracle/interfaces.d.ts +15 -101
- 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/legacy_oracle_registry.d.ts +39 -0
- package/dest/contract_function_simulator/oracle/legacy_oracle_registry.d.ts.map +1 -0
- package/dest/contract_function_simulator/oracle/legacy_oracle_registry.js +74 -0
- package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts +3 -14
- package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.js +1 -24
- 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_registry.d.ts +136 -0
- package/dest/contract_function_simulator/oracle/oracle_registry.d.ts.map +1 -0
- package/dest/contract_function_simulator/oracle/oracle_registry.js +989 -0
- package/dest/contract_function_simulator/oracle/oracle_type_mappings.d.ts +222 -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 +1243 -0
- package/dest/contract_function_simulator/oracle/private_execution.d.ts +1 -1
- package/dest/contract_function_simulator/oracle/private_execution.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/private_execution.js +7 -6
- package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts +54 -55
- package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/private_execution_oracle.js +195 -77
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts +162 -73
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.js +523 -149
- 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/transient_array_service.d.ts +31 -0
- package/dest/contract_function_simulator/transient_array_service.d.ts.map +1 -0
- package/dest/contract_function_simulator/transient_array_service.js +62 -0
- 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/debug/pxe_debug_utils.d.ts +4 -9
- 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 +20 -7
- 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 +20 -7
- package/dest/entrypoints/pxe_creation_options.d.ts +16 -2
- 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 +6 -4
- package/dest/entrypoints/server/index.d.ts.map +1 -1
- package/dest/entrypoints/server/index.js +4 -3
- 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 +20 -6
- package/dest/error_enriching.d.ts +5 -3
- package/dest/error_enriching.d.ts.map +1 -1
- package/dest/error_enriching.js +13 -11
- 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 +62 -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 +5 -0
- package/dest/hooks/index.d.ts.map +1 -0
- package/dest/hooks/index.js +1 -0
- package/dest/hooks/resolve_custom_request.d.ts +23 -0
- package/dest/hooks/resolve_custom_request.d.ts.map +1 -0
- package/dest/hooks/resolve_custom_request.js +3 -0
- package/dest/hooks/resolve_tagging_secret_strategy.d.ts +48 -0
- package/dest/hooks/resolve_tagging_secret_strategy.d.ts.map +1 -0
- package/dest/hooks/resolve_tagging_secret_strategy.js +3 -0
- package/dest/logs/log_service.d.ts +13 -12
- package/dest/logs/log_service.d.ts.map +1 -1
- package/dest/logs/log_service.js +186 -81
- package/dest/messages/tx_resolver_service.d.ts +17 -0
- package/dest/messages/tx_resolver_service.d.ts.map +1 -0
- package/dest/messages/tx_resolver_service.js +55 -0
- 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.d.ts +1 -1
- package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.d.ts.map +1 -1
- package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.js +7 -3
- 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 +3 -4
- 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 +203 -89
- package/dest/private_kernel/private_kernel_oracle.d.ts +12 -10
- package/dest/private_kernel/private_kernel_oracle.d.ts.map +1 -1
- package/dest/private_kernel/private_kernel_oracle.js +40 -26
- package/dest/pxe.d.ts +169 -54
- package/dest/pxe.d.ts.map +1 -1
- package/dest/pxe.js +348 -204
- package/dest/storage/allowed_scopes.d.ts +6 -0
- package/dest/storage/allowed_scopes.d.ts.map +1 -0
- package/dest/storage/allowed_scopes.js +7 -0
- package/dest/storage/anchor_block_store/anchor_block_store.d.ts +9 -6
- package/dest/storage/anchor_block_store/anchor_block_store.d.ts.map +1 -1
- package/dest/storage/anchor_block_store/anchor_block_store.js +9 -7
- 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 +647 -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 +47 -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 +27 -24
- package/dest/storage/contract_store/contract_store.d.ts.map +1 -1
- package/dest/storage/contract_store/contract_store.js +70 -98
- package/dest/storage/fact_store/fact_service.d.ts +22 -0
- package/dest/storage/fact_store/fact_service.d.ts.map +1 -0
- package/dest/storage/fact_store/fact_service.js +45 -0
- package/dest/storage/fact_store/fact_store.d.ts +95 -0
- package/dest/storage/fact_store/fact_store.d.ts.map +1 -0
- package/dest/storage/fact_store/fact_store.js +408 -0
- package/dest/storage/fact_store/fact_store_keys.d.ts +34 -0
- package/dest/storage/fact_store/fact_store_keys.d.ts.map +1 -0
- package/dest/storage/fact_store/fact_store_keys.js +50 -0
- package/dest/storage/fact_store/index.d.ts +6 -0
- package/dest/storage/fact_store/index.d.ts.map +1 -0
- package/dest/storage/fact_store/index.js +4 -0
- package/dest/storage/fact_store/origin_state.d.ts +57 -0
- package/dest/storage/fact_store/origin_state.d.ts.map +1 -0
- package/dest/storage/fact_store/origin_state.js +53 -0
- package/dest/storage/fact_store/stored_fact.d.ts +32 -0
- package/dest/storage/fact_store/stored_fact.d.ts.map +1 -0
- package/dest/storage/fact_store/stored_fact.js +64 -0
- package/dest/storage/index.d.ts +3 -2
- package/dest/storage/index.d.ts.map +1 -1
- package/dest/storage/index.js +2 -1
- package/dest/storage/metadata.d.ts +2 -2
- package/dest/storage/metadata.d.ts.map +1 -1
- package/dest/storage/metadata.js +1 -1
- package/dest/storage/note_store/note_store.d.ts +42 -33
- package/dest/storage/note_store/note_store.d.ts.map +1 -1
- package/dest/storage/note_store/note_store.js +199 -170
- package/dest/storage/note_store/stored_note.d.ts +3 -8
- package/dest/storage/note_store/stored_note.d.ts.map +1 -1
- package/dest/storage/note_store/stored_note.js +4 -20
- package/dest/storage/open_pxe_stores.d.ts +35 -0
- package/dest/storage/open_pxe_stores.d.ts.map +1 -0
- package/dest/storage/open_pxe_stores.js +29 -0
- package/dest/storage/private_event_store/private_event_store.d.ts +13 -16
- package/dest/storage/private_event_store/private_event_store.d.ts.map +1 -1
- package/dest/storage/private_event_store/private_event_store.js +43 -43
- package/dest/storage/private_event_store/stored_private_event.js +1 -1
- package/dest/storage/tagging_store/index.d.ts +2 -2
- package/dest/storage/tagging_store/index.d.ts.map +1 -1
- package/dest/storage/tagging_store/index.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 +29 -28
- package/dest/storage/tagging_store/sender_tagging_store.d.ts.map +1 -1
- package/dest/storage/tagging_store/sender_tagging_store.js +141 -115
- package/dest/storage/tagging_store/tagging_secret_sources_store.d.ts +51 -0
- package/dest/storage/tagging_store/tagging_secret_sources_store.d.ts.map +1 -0
- package/dest/storage/tagging_store/tagging_secret_sources_store.js +105 -0
- package/dest/tagging/constants.d.ts +2 -2
- package/dest/tagging/constants.d.ts.map +1 -1
- package/dest/tagging/constants.js +5 -8
- 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 +6 -5
- 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 +69 -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 +203 -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 +31 -10
- package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts +13 -7
- 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 +41 -10
- package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts +5 -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 +26 -13
- package/package.json +20 -17
- package/src/bin/check_oracle_version.ts +51 -133
- package/src/bin/index.ts +5 -0
- package/src/bin/oracle_version_helpers.ts +311 -0
- package/src/block_synchronizer/block_stream_source.ts +42 -0
- package/src/block_synchronizer/block_synchronizer.ts +102 -39
- package/src/config/index.ts +15 -8
- package/src/config/package_info.ts +1 -1
- package/src/contract/contract_class_service.ts +83 -0
- package/src/contract/contract_sync_service.ts +176 -0
- package/src/contract/helpers.ts +35 -0
- package/src/contract_function_simulator/anchored_contract_data.ts +74 -0
- package/src/contract_function_simulator/contract_function_simulator.ts +170 -56
- package/src/contract_function_simulator/ephemeral_array_service.ts +110 -0
- package/src/contract_function_simulator/execution_note_cache.ts +8 -29
- package/src/contract_function_simulator/execution_tagging_index_cache.ts +19 -18
- package/src/contract_function_simulator/index.ts +69 -4
- package/src/contract_function_simulator/noir-structs/bounded_vec.ts +43 -0
- package/src/contract_function_simulator/noir-structs/contract_class_log_data.ts +9 -0
- package/src/contract_function_simulator/noir-structs/embedded_curve_point.ts +4 -0
- package/src/contract_function_simulator/noir-structs/ephemeral_array.ts +66 -0
- package/src/contract_function_simulator/noir-structs/event_validation_request.ts +5 -7
- package/src/contract_function_simulator/noir-structs/fact.ts +13 -0
- package/src/contract_function_simulator/noir-structs/fact_collection.ts +64 -0
- package/src/contract_function_simulator/noir-structs/log_retrieval_request.ts +27 -20
- package/src/contract_function_simulator/noir-structs/log_retrieval_response.ts +14 -61
- package/src/contract_function_simulator/noir-structs/note_data.ts +27 -0
- package/src/contract_function_simulator/noir-structs/note_validation_request.ts +6 -8
- package/src/contract_function_simulator/noir-structs/option.ts +75 -0
- package/src/contract_function_simulator/noir-structs/origin_block.ts +8 -0
- package/src/contract_function_simulator/noir-structs/pending_tagged_log.ts +12 -0
- package/src/contract_function_simulator/noir-structs/provided_secret.ts +5 -0
- package/src/contract_function_simulator/noir-structs/resolved_tagging_strategy.ts +58 -0
- package/src/contract_function_simulator/noir-structs/resolved_tx.ts +53 -0
- package/src/contract_function_simulator/noir-structs/tx_effect_data.ts +15 -0
- package/src/contract_function_simulator/noir-structs/utility_context.ts +5 -17
- package/src/contract_function_simulator/oracle/acir_callback.ts +154 -0
- package/src/contract_function_simulator/oracle/index.ts +1 -15
- package/src/contract_function_simulator/oracle/interfaces.ts +11 -170
- package/src/contract_function_simulator/oracle/legacy_oracle_registry.ts +120 -0
- package/src/contract_function_simulator/oracle/message_load_oracle_inputs.ts +6 -21
- package/src/contract_function_simulator/oracle/note_packing_utils.ts +3 -3
- package/src/contract_function_simulator/oracle/oracle_registry.ts +689 -0
- package/src/contract_function_simulator/oracle/oracle_type_mappings.ts +964 -0
- package/src/contract_function_simulator/oracle/private_execution.ts +6 -7
- package/src/contract_function_simulator/oracle/private_execution_oracle.ts +241 -103
- package/src/contract_function_simulator/oracle/utility_execution_oracle.ts +804 -238
- package/src/contract_function_simulator/pick_notes.ts +22 -3
- package/src/contract_function_simulator/transient_array_service.ts +91 -0
- package/src/contract_logging.ts +18 -5
- package/src/debug/pxe_debug_utils.ts +4 -12
- package/src/entrypoints/client/bundle/index.ts +0 -1
- package/src/entrypoints/client/bundle/utils.ts +19 -7
- package/src/entrypoints/client/lazy/index.ts +0 -1
- package/src/entrypoints/client/lazy/utils.ts +19 -7
- package/src/entrypoints/pxe_creation_options.ts +21 -1
- package/src/entrypoints/server/index.ts +6 -3
- package/src/entrypoints/server/utils.ts +24 -7
- package/src/error_enriching.ts +27 -11
- 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 +68 -0
- package/src/hooks/index.ts +12 -0
- package/src/hooks/resolve_custom_request.ts +24 -0
- package/src/hooks/resolve_tagging_secret_strategy.ts +57 -0
- package/src/logs/log_service.ts +224 -146
- package/src/messages/tx_resolver_service.ts +69 -0
- 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 +168 -0
- package/src/private_kernel/hints/private_kernel_reset_private_inputs_builder.ts +12 -2
- package/src/private_kernel/hints/test_utils.ts +3 -10
- package/src/private_kernel/private_kernel_execution_prover.ts +335 -121
- package/src/private_kernel/private_kernel_oracle.ts +58 -29
- package/src/pxe.ts +563 -233
- package/src/storage/allowed_scopes.ts +14 -0
- package/src/storage/anchor_block_store/anchor_block_store.ts +9 -7
- 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__/FactStore.json +40 -0
- package/src/storage/backwards_compatibility_tests/__snapshots__/KeyStore.json +52 -0
- package/src/storage/backwards_compatibility_tests/__snapshots__/L2TipsKVStore.json +40 -0
- package/src/storage/backwards_compatibility_tests/__snapshots__/NoteStore.json +56 -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__/SenderTaggingStore.json +22 -0
- package/src/storage/backwards_compatibility_tests/__snapshots__/TaggingSecretSourcesStore.json +30 -0
- package/src/storage/backwards_compatibility_tests/__snapshots__/opened_stores.json +117 -0
- package/src/storage/backwards_compatibility_tests/kv_store_snapshot.ts +122 -0
- package/src/storage/backwards_compatibility_tests/schema_tests.ts +774 -0
- package/src/storage/backwards_compatibility_tests/store_spy.ts +73 -0
- package/src/storage/capsule_store/capsule_service.ts +85 -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 +96 -124
- package/src/storage/fact_store/fact_service.ts +69 -0
- package/src/storage/fact_store/fact_store.ts +487 -0
- package/src/storage/fact_store/fact_store_keys.ts +75 -0
- package/src/storage/fact_store/index.ts +14 -0
- package/src/storage/fact_store/origin_state.ts +75 -0
- package/src/storage/fact_store/stored_fact.ts +80 -0
- package/src/storage/index.ts +2 -1
- package/src/storage/metadata.ts +1 -1
- package/src/storage/note_store/note_store.ts +228 -192
- package/src/storage/note_store/stored_note.ts +5 -27
- package/src/storage/open_pxe_stores.ts +52 -0
- package/src/storage/private_event_store/private_event_store.ts +52 -54
- package/src/storage/private_event_store/stored_private_event.ts +1 -1
- package/src/storage/tagging_store/index.ts +1 -1
- package/src/storage/tagging_store/recipient_tagging_store.ts +5 -9
- package/src/storage/tagging_store/sender_tagging_store.ts +185 -138
- package/src/storage/tagging_store/tagging_secret_sources_store.ts +138 -0
- package/src/tagging/constants.ts +6 -8
- package/src/tagging/get_all_logs_by_tags.ts +78 -50
- package/src/tagging/index.ts +5 -4
- package/src/tagging/persist_sender_tagging_index_ranges.ts +57 -0
- package/src/tagging/recipient_sync/sync_tagged_private_logs.ts +301 -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 +52 -12
- package/src/tagging/sender_sync/utils/get_status_change_of_pending.ts +44 -14
- package/src/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.ts +23 -14
- 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/oracle/oracle.d.ts +0 -59
- package/dest/contract_function_simulator/oracle/oracle.d.ts.map +0 -1
- package/dest/contract_function_simulator/oracle/oracle.js +0 -406
- package/dest/contract_function_simulator/proxied_contract_data_source.d.ts +0 -6
- package/dest/contract_function_simulator/proxied_contract_data_source.d.ts.map +0 -1
- package/dest/contract_function_simulator/proxied_contract_data_source.js +0 -80
- package/dest/contract_sync/contract_sync_service.d.ts +0 -43
- package/dest/contract_sync/contract_sync_service.d.ts.map +0 -1
- package/dest/contract_sync/contract_sync_service.js +0 -97
- package/dest/contract_sync/helpers.d.ts +0 -29
- package/dest/contract_sync/helpers.d.ts.map +0 -1
- package/dest/contract_sync/helpers.js +0 -55
- package/dest/storage/tagging_store/sender_address_book_store.d.ts +0 -14
- package/dest/storage/tagging_store/sender_address_book_store.d.ts.map +0 -1
- package/dest/storage/tagging_store/sender_address_book_store.js +0 -36
- 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/oracle/oracle.ts +0 -637
- package/src/contract_function_simulator/proxied_contract_data_source.ts +0 -83
- package/src/contract_sync/contract_sync_service.ts +0 -152
- package/src/contract_sync/helpers.ts +0 -98
- package/src/storage/tagging_store/sender_address_book_store.ts +0 -48
- 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
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import type { Fr } from '@aztec/foundation/curves/bn254';
|
|
2
|
+
import type { FunctionArtifactWithContractName, FunctionSelector } from '@aztec/stdlib/abi';
|
|
3
|
+
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
4
|
+
import type { ContractInstancePreimageWithAddress } from '@aztec/stdlib/contract';
|
|
5
|
+
import type { BlockHeader, ContractOverrides } from '@aztec/stdlib/tx';
|
|
6
|
+
|
|
7
|
+
import type { ContractClassService } from '../contract/contract_class_service.js';
|
|
8
|
+
import type { ContractStore } from '../storage/contract_store/contract_store.js';
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Per-run view of contract data for a single simulation, bound to its anchor block.
|
|
12
|
+
*
|
|
13
|
+
* The {@link ContractStore} is pure class-id-keyed storage and has no notion of which class an address runs. This
|
|
14
|
+
* class bridges that gap: it resolves an address to its current class id (via the {@link ContractClassService}
|
|
15
|
+
* at the run's anchor block) and then serves artifacts from the store. It is also the single place contract
|
|
16
|
+
* overrides are applied — when an address is overridden, both its instance and its class id come from the override
|
|
17
|
+
* rather than the chain, so a simulation can execute different bytecode at that address. Overrides are only set for
|
|
18
|
+
* `simulateTx` (which skips the kernels), so the override path never reaches proving.
|
|
19
|
+
*/
|
|
20
|
+
export class AnchoredContractData {
|
|
21
|
+
constructor(
|
|
22
|
+
private readonly store: ContractStore,
|
|
23
|
+
private readonly contractClassService: ContractClassService,
|
|
24
|
+
private readonly anchorBlockHeader: BlockHeader,
|
|
25
|
+
private readonly overrides?: ContractOverrides,
|
|
26
|
+
) {}
|
|
27
|
+
|
|
28
|
+
/** Returns the address preimage of the instance at `address`, from the override if any, else from storage. */
|
|
29
|
+
getContractInstance(address: AztecAddress): Promise<ContractInstancePreimageWithAddress | undefined> {
|
|
30
|
+
const override = this.overrides?.[address.toString()];
|
|
31
|
+
if (override) {
|
|
32
|
+
return Promise.resolve(override.instance);
|
|
33
|
+
}
|
|
34
|
+
return this.store.getContractInstance(address);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Resolves the class id `address` runs in this simulation: the override's class if overridden, else resolved against
|
|
39
|
+
* the chain at the anchor block.
|
|
40
|
+
*/
|
|
41
|
+
getCurrentClassId(address: AztecAddress): Promise<Fr | undefined> {
|
|
42
|
+
const override = this.overrides?.[address.toString()];
|
|
43
|
+
if (override) {
|
|
44
|
+
return Promise.resolve(override.instance.currentContractClassId);
|
|
45
|
+
}
|
|
46
|
+
return this.contractClassService.getCurrentClassId(address, this.anchorBlockHeader);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
async getFunctionArtifact(
|
|
50
|
+
address: AztecAddress,
|
|
51
|
+
selector: FunctionSelector,
|
|
52
|
+
): Promise<FunctionArtifactWithContractName | undefined> {
|
|
53
|
+
const classId = await this.getCurrentClassId(address);
|
|
54
|
+
return classId ? this.store.getFunctionArtifact(classId, selector) : undefined;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
async getFunctionArtifactWithDebugMetadata(
|
|
58
|
+
address: AztecAddress,
|
|
59
|
+
selector: FunctionSelector,
|
|
60
|
+
): Promise<FunctionArtifactWithContractName | undefined> {
|
|
61
|
+
const classId = await this.getCurrentClassId(address);
|
|
62
|
+
return classId ? this.store.getFunctionArtifactWithDebugMetadata(classId, selector) : undefined;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
async getDebugContractName(address: AztecAddress): Promise<string | undefined> {
|
|
66
|
+
const classId = await this.getCurrentClassId(address);
|
|
67
|
+
return classId ? this.store.getDebugContractName(classId) : undefined;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
async getDebugFunctionName(address: AztecAddress, selector: FunctionSelector): Promise<string> {
|
|
71
|
+
const classId = await this.getCurrentClassId(address);
|
|
72
|
+
return classId ? this.store.getDebugFunctionName(classId, selector) : `${address}:${selector}`;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { CircuitKind } from '@aztec/bb.js';
|
|
1
2
|
import {
|
|
2
3
|
AVM_EMITNOTEHASH_BASE_L2_GAS,
|
|
3
4
|
AVM_EMITNULLIFIER_BASE_L2_GAS,
|
|
@@ -17,7 +18,9 @@ import {
|
|
|
17
18
|
MAX_NULLIFIERS_PER_TX,
|
|
18
19
|
MAX_NULLIFIER_READ_REQUESTS_PER_TX,
|
|
19
20
|
MAX_PRIVATE_LOGS_PER_TX,
|
|
21
|
+
MAX_TX_LIFETIME,
|
|
20
22
|
PRIVATE_TX_L2_GAS_OVERHEAD,
|
|
23
|
+
PUBLIC_DATA_WRITE_LENGTH,
|
|
21
24
|
PUBLIC_TX_L2_GAS_OVERHEAD,
|
|
22
25
|
TX_DA_GAS_OVERHEAD,
|
|
23
26
|
} from '@aztec/constants';
|
|
@@ -41,7 +44,7 @@ import type { FunctionCall } from '@aztec/stdlib/abi';
|
|
|
41
44
|
import { FunctionSelector, FunctionType } from '@aztec/stdlib/abi';
|
|
42
45
|
import type { AuthWitness } from '@aztec/stdlib/auth-witness';
|
|
43
46
|
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
44
|
-
import type { BlockParameter } from '@aztec/stdlib/block';
|
|
47
|
+
import type { BlockParameter, L2TipsProvider } from '@aztec/stdlib/block';
|
|
45
48
|
import { Gas } from '@aztec/stdlib/gas';
|
|
46
49
|
import {
|
|
47
50
|
computeNoteHashNonce,
|
|
@@ -75,10 +78,13 @@ import {
|
|
|
75
78
|
import { PrivateLog } from '@aztec/stdlib/logs';
|
|
76
79
|
import { ScopedL2ToL1Message } from '@aztec/stdlib/messaging';
|
|
77
80
|
import { ChonkProof } from '@aztec/stdlib/proofs';
|
|
81
|
+
import { MerkleTreeId } from '@aztec/stdlib/trees';
|
|
78
82
|
import {
|
|
79
83
|
BlockHeader,
|
|
80
84
|
CallContext,
|
|
85
|
+
type ContractOverrides,
|
|
81
86
|
HashedValues,
|
|
87
|
+
type OffchainEffect,
|
|
82
88
|
PrivateExecutionResult,
|
|
83
89
|
TxConstantData,
|
|
84
90
|
TxExecutionRequest,
|
|
@@ -87,31 +93,34 @@ import {
|
|
|
87
93
|
getFinalMinRevertibleSideEffectCounter,
|
|
88
94
|
} from '@aztec/stdlib/tx';
|
|
89
95
|
|
|
90
|
-
import type {
|
|
91
|
-
import type { ContractSyncService } from '../
|
|
96
|
+
import type { ContractClassService } from '../contract/contract_class_service.js';
|
|
97
|
+
import type { ContractSyncService } from '../contract/contract_sync_service.js';
|
|
98
|
+
import type { ExecutionHooks } from '../hooks/index.js';
|
|
99
|
+
import type { TxResolverService } from '../messages/tx_resolver_service.js';
|
|
92
100
|
import type { AddressStore } from '../storage/address_store/address_store.js';
|
|
101
|
+
import { CapsuleService } from '../storage/capsule_store/capsule_service.js';
|
|
93
102
|
import type { CapsuleStore } from '../storage/capsule_store/capsule_store.js';
|
|
94
103
|
import type { ContractStore } from '../storage/contract_store/contract_store.js';
|
|
104
|
+
import { FactService } from '../storage/fact_store/index.js';
|
|
105
|
+
import type { FactStore } from '../storage/fact_store/index.js';
|
|
95
106
|
import type { NoteStore } from '../storage/note_store/note_store.js';
|
|
96
107
|
import type { PrivateEventStore } from '../storage/private_event_store/private_event_store.js';
|
|
97
108
|
import type { RecipientTaggingStore } from '../storage/tagging_store/recipient_tagging_store.js';
|
|
98
|
-
import type { SenderAddressBookStore } from '../storage/tagging_store/sender_address_book_store.js';
|
|
99
109
|
import type { SenderTaggingStore } from '../storage/tagging_store/sender_tagging_store.js';
|
|
110
|
+
import type { TaggingSecretSourcesStore } from '../storage/tagging_store/tagging_secret_sources_store.js';
|
|
111
|
+
import { AnchoredContractData } from './anchored_contract_data.js';
|
|
100
112
|
import type { BenchmarkedNode } from './benchmarked_node.js';
|
|
101
113
|
import { ExecutionNoteCache } from './execution_note_cache.js';
|
|
102
114
|
import { ExecutionTaggingIndexCache } from './execution_tagging_index_cache.js';
|
|
103
115
|
import { HashedValuesCache } from './hashed_values_cache.js';
|
|
104
|
-
import {
|
|
116
|
+
import { buildACIRCallback } from './oracle/acir_callback.js';
|
|
105
117
|
import { executePrivateFunction } from './oracle/private_execution.js';
|
|
106
118
|
import { PrivateExecutionOracle } from './oracle/private_execution_oracle.js';
|
|
107
119
|
import { UtilityExecutionOracle } from './oracle/utility_execution_oracle.js';
|
|
120
|
+
import { TransientArrayService } from './transient_array_service.js';
|
|
108
121
|
|
|
109
122
|
/** Options for ContractFunctionSimulator.run. */
|
|
110
123
|
export type ContractSimulatorRunOpts = {
|
|
111
|
-
/** The address of the contract (should match request.origin). */
|
|
112
|
-
contractAddress: AztecAddress;
|
|
113
|
-
/** The function selector of the entry point. */
|
|
114
|
-
selector: FunctionSelector;
|
|
115
124
|
/** The address calling the function. Can be replaced to simulate a call from another contract or account. */
|
|
116
125
|
msgSender?: AztecAddress;
|
|
117
126
|
/** The block header to use as base state for this run. */
|
|
@@ -119,7 +128,7 @@ export type ContractSimulatorRunOpts = {
|
|
|
119
128
|
/** The address used as a tagging sender when emitting private logs. */
|
|
120
129
|
senderForTags?: AztecAddress;
|
|
121
130
|
/** The accounts whose notes we can access in this call. */
|
|
122
|
-
scopes:
|
|
131
|
+
scopes: AztecAddress[];
|
|
123
132
|
/** The job ID for staged writes. */
|
|
124
133
|
jobId: string;
|
|
125
134
|
};
|
|
@@ -127,17 +136,24 @@ export type ContractSimulatorRunOpts = {
|
|
|
127
136
|
/** Args for ContractFunctionSimulator constructor. */
|
|
128
137
|
export type ContractFunctionSimulatorArgs = {
|
|
129
138
|
contractStore: ContractStore;
|
|
139
|
+
contractClassService: ContractClassService;
|
|
140
|
+
/** Per-simulation contract overrides. */
|
|
141
|
+
overrides?: ContractOverrides;
|
|
130
142
|
noteStore: NoteStore;
|
|
131
143
|
keyStore: KeyStore;
|
|
132
144
|
addressStore: AddressStore;
|
|
133
145
|
aztecNode: AztecNode;
|
|
146
|
+
l2TipsStore: L2TipsProvider;
|
|
134
147
|
senderTaggingStore: SenderTaggingStore;
|
|
135
148
|
recipientTaggingStore: RecipientTaggingStore;
|
|
136
|
-
|
|
149
|
+
taggingSecretSourcesStore: TaggingSecretSourcesStore;
|
|
137
150
|
capsuleStore: CapsuleStore;
|
|
151
|
+
factStore: FactStore;
|
|
138
152
|
privateEventStore: PrivateEventStore;
|
|
139
153
|
simulator: CircuitSimulator;
|
|
140
154
|
contractSyncService: ContractSyncService;
|
|
155
|
+
txResolver: TxResolverService;
|
|
156
|
+
hooks?: ExecutionHooks;
|
|
141
157
|
};
|
|
142
158
|
|
|
143
159
|
/**
|
|
@@ -146,31 +162,43 @@ export type ContractFunctionSimulatorArgs = {
|
|
|
146
162
|
export class ContractFunctionSimulator {
|
|
147
163
|
private readonly log: Logger;
|
|
148
164
|
private readonly contractStore: ContractStore;
|
|
165
|
+
private readonly contractClassService: ContractClassService;
|
|
166
|
+
private readonly overrides: ContractOverrides | undefined;
|
|
149
167
|
private readonly noteStore: NoteStore;
|
|
150
168
|
private readonly keyStore: KeyStore;
|
|
151
169
|
private readonly addressStore: AddressStore;
|
|
152
170
|
private readonly aztecNode: AztecNode;
|
|
171
|
+
private readonly l2TipsStore: L2TipsProvider;
|
|
153
172
|
private readonly senderTaggingStore: SenderTaggingStore;
|
|
154
173
|
private readonly recipientTaggingStore: RecipientTaggingStore;
|
|
155
|
-
private readonly
|
|
174
|
+
private readonly taggingSecretSourcesStore: TaggingSecretSourcesStore;
|
|
156
175
|
private readonly capsuleStore: CapsuleStore;
|
|
176
|
+
private readonly factStore: FactStore;
|
|
157
177
|
private readonly privateEventStore: PrivateEventStore;
|
|
158
178
|
private readonly simulator: CircuitSimulator;
|
|
159
179
|
private readonly contractSyncService: ContractSyncService;
|
|
180
|
+
private readonly txResolver: TxResolverService;
|
|
181
|
+
private readonly hooks: ExecutionHooks | undefined;
|
|
160
182
|
|
|
161
183
|
constructor(args: ContractFunctionSimulatorArgs) {
|
|
162
184
|
this.contractStore = args.contractStore;
|
|
185
|
+
this.contractClassService = args.contractClassService;
|
|
186
|
+
this.overrides = args.overrides;
|
|
163
187
|
this.noteStore = args.noteStore;
|
|
164
188
|
this.keyStore = args.keyStore;
|
|
165
189
|
this.addressStore = args.addressStore;
|
|
166
190
|
this.aztecNode = args.aztecNode;
|
|
191
|
+
this.l2TipsStore = args.l2TipsStore;
|
|
167
192
|
this.senderTaggingStore = args.senderTaggingStore;
|
|
168
193
|
this.recipientTaggingStore = args.recipientTaggingStore;
|
|
169
|
-
this.
|
|
194
|
+
this.taggingSecretSourcesStore = args.taggingSecretSourcesStore;
|
|
170
195
|
this.capsuleStore = args.capsuleStore;
|
|
196
|
+
this.factStore = args.factStore;
|
|
171
197
|
this.privateEventStore = args.privateEventStore;
|
|
172
198
|
this.simulator = args.simulator;
|
|
173
199
|
this.contractSyncService = args.contractSyncService;
|
|
200
|
+
this.txResolver = args.txResolver;
|
|
201
|
+
this.hooks = args.hooks;
|
|
174
202
|
this.log = createLogger('simulator');
|
|
175
203
|
}
|
|
176
204
|
|
|
@@ -181,9 +209,7 @@ export class ContractFunctionSimulator {
|
|
|
181
209
|
public async run(
|
|
182
210
|
request: TxExecutionRequest,
|
|
183
211
|
{
|
|
184
|
-
|
|
185
|
-
selector,
|
|
186
|
-
msgSender = AztecAddress.fromField(Fr.MAX_FIELD_VALUE),
|
|
212
|
+
msgSender = AztecAddress.NULL_MSG_SENDER,
|
|
187
213
|
anchorBlockHeader,
|
|
188
214
|
senderForTags,
|
|
189
215
|
scopes,
|
|
@@ -192,18 +218,30 @@ export class ContractFunctionSimulator {
|
|
|
192
218
|
): Promise<PrivateExecutionResult> {
|
|
193
219
|
const simulatorSetupTimer = new Timer();
|
|
194
220
|
|
|
195
|
-
const
|
|
221
|
+
const contractAddress = request.origin;
|
|
196
222
|
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
223
|
+
const anchoredContractData = new AnchoredContractData(
|
|
224
|
+
this.contractStore,
|
|
225
|
+
this.contractClassService,
|
|
226
|
+
anchorBlockHeader,
|
|
227
|
+
this.overrides,
|
|
228
|
+
);
|
|
200
229
|
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
230
|
+
const entryPointArtifact = await anchoredContractData.getFunctionArtifactWithDebugMetadata(
|
|
231
|
+
contractAddress,
|
|
232
|
+
request.functionSelector,
|
|
233
|
+
);
|
|
234
|
+
if (!entryPointArtifact) {
|
|
235
|
+
throw new Error(
|
|
236
|
+
`Cannot run function ${request.functionSelector} on ${contractAddress}: the contract is not registered. ` +
|
|
237
|
+
`Register it via wallet.registerContract(...).`,
|
|
204
238
|
);
|
|
205
239
|
}
|
|
206
240
|
|
|
241
|
+
if (entryPointArtifact.functionType !== FunctionType.PRIVATE) {
|
|
242
|
+
throw new Error(`Cannot run ${entryPointArtifact.functionType} function as private`);
|
|
243
|
+
}
|
|
244
|
+
|
|
207
245
|
// reserve the first side effect for the tx hash (inserted by the private kernel)
|
|
208
246
|
const startSideEffectCounter = 2;
|
|
209
247
|
|
|
@@ -218,9 +256,15 @@ export class ContractFunctionSimulator {
|
|
|
218
256
|
const noteCache = new ExecutionNoteCache(protocolNullifier);
|
|
219
257
|
const taggingIndexCache = new ExecutionTaggingIndexCache();
|
|
220
258
|
|
|
259
|
+
// One shared transient store for the whole execution tree rooted at this transaction. Threaded into every child
|
|
260
|
+
// private oracle and inherited by nested utility frames, so that frames of the same contract see each other's
|
|
261
|
+
// transient arrays, then discarded when run() returns.
|
|
262
|
+
const transientArrayService = new TransientArrayService();
|
|
263
|
+
|
|
221
264
|
const privateExecutionOracle = new PrivateExecutionOracle({
|
|
222
265
|
argsHash: request.firstCallArgsHash,
|
|
223
266
|
txContext: request.txContext,
|
|
267
|
+
txRequestSalt: request.salt,
|
|
224
268
|
callContext,
|
|
225
269
|
anchorBlockHeader,
|
|
226
270
|
utilityExecutor: async (call, execScopes) => {
|
|
@@ -231,16 +275,18 @@ export class ContractFunctionSimulator {
|
|
|
231
275
|
executionCache: HashedValuesCache.create(request.argsOfCalls),
|
|
232
276
|
noteCache,
|
|
233
277
|
taggingIndexCache,
|
|
234
|
-
|
|
278
|
+
anchoredContractData,
|
|
235
279
|
noteStore: this.noteStore,
|
|
236
280
|
keyStore: this.keyStore,
|
|
237
281
|
addressStore: this.addressStore,
|
|
238
282
|
aztecNode: this.aztecNode,
|
|
239
283
|
senderTaggingStore: this.senderTaggingStore,
|
|
240
284
|
recipientTaggingStore: this.recipientTaggingStore,
|
|
241
|
-
|
|
242
|
-
|
|
285
|
+
taggingSecretSourcesStore: this.taggingSecretSourcesStore,
|
|
286
|
+
capsuleService: new CapsuleService(this.capsuleStore, scopes),
|
|
287
|
+
factService: new FactService(this.factStore, scopes),
|
|
243
288
|
privateEventStore: this.privateEventStore,
|
|
289
|
+
txResolver: this.txResolver,
|
|
244
290
|
contractSyncService: this.contractSyncService,
|
|
245
291
|
jobId,
|
|
246
292
|
totalPublicCalldataCount: 0,
|
|
@@ -248,6 +294,9 @@ export class ContractFunctionSimulator {
|
|
|
248
294
|
scopes,
|
|
249
295
|
senderForTags,
|
|
250
296
|
simulator: this.simulator,
|
|
297
|
+
l2TipsStore: this.l2TipsStore,
|
|
298
|
+
hooks: this.hooks,
|
|
299
|
+
transientArrayService,
|
|
251
300
|
});
|
|
252
301
|
|
|
253
302
|
const setupTime = simulatorSetupTimer.ms();
|
|
@@ -266,7 +315,6 @@ export class ContractFunctionSimulator {
|
|
|
266
315
|
);
|
|
267
316
|
const simulatorTeardownTimer = new Timer();
|
|
268
317
|
|
|
269
|
-
noteCache.finish();
|
|
270
318
|
const firstNullifierHint = noteCache.getNonceGenerator();
|
|
271
319
|
|
|
272
320
|
const publicCallRequests = collectNested([executionResult], r =>
|
|
@@ -277,7 +325,7 @@ export class ContractFunctionSimulator {
|
|
|
277
325
|
);
|
|
278
326
|
const publicFunctionsCalldata = await Promise.all(
|
|
279
327
|
publicCallRequests.map(async r => {
|
|
280
|
-
const calldata = await privateExecutionOracle.
|
|
328
|
+
const calldata = await privateExecutionOracle.getHashPreimage(r.calldataHash);
|
|
281
329
|
return new HashedValues(calldata, r.calldataHash);
|
|
282
330
|
}),
|
|
283
331
|
);
|
|
@@ -298,45 +346,71 @@ export class ContractFunctionSimulator {
|
|
|
298
346
|
}
|
|
299
347
|
}
|
|
300
348
|
|
|
301
|
-
// docs:start:execute_utility_function
|
|
302
349
|
/**
|
|
303
350
|
* Runs a utility function.
|
|
304
351
|
* @param call - The function call to execute.
|
|
305
|
-
* @param authwits - Authentication witnesses required for the function call.
|
|
306
|
-
* @param anchorBlockHeader - The block header to use as base state for this run.
|
|
307
|
-
* @param scopes - Optional array of account addresses whose notes can be accessed in this call. Defaults to all
|
|
308
|
-
* accounts if not specified.
|
|
309
352
|
* @returns A return value of the utility function in a form as returned by the simulator (Noir fields)
|
|
310
353
|
*/
|
|
311
354
|
public async runUtility(
|
|
312
355
|
call: FunctionCall,
|
|
313
356
|
authwits: AuthWitness[],
|
|
314
357
|
anchorBlockHeader: BlockHeader,
|
|
315
|
-
scopes:
|
|
358
|
+
scopes: AztecAddress[],
|
|
316
359
|
jobId: string,
|
|
317
|
-
): Promise<Fr[]> {
|
|
318
|
-
const
|
|
360
|
+
): Promise<{ result: Fr[]; offchainEffects: OffchainEffect[] }> {
|
|
361
|
+
const anchoredContractData = new AnchoredContractData(
|
|
362
|
+
this.contractStore,
|
|
363
|
+
this.contractClassService,
|
|
364
|
+
anchorBlockHeader,
|
|
365
|
+
this.overrides,
|
|
366
|
+
);
|
|
367
|
+
|
|
368
|
+
const entryPointArtifact = await anchoredContractData.getFunctionArtifactWithDebugMetadata(call.to, call.selector);
|
|
369
|
+
if (!entryPointArtifact) {
|
|
370
|
+
throw new Error(
|
|
371
|
+
`Cannot run function ${call.selector} on ${call.to}: the contract is not registered. ` +
|
|
372
|
+
`Register it via wallet.registerContract(...).`,
|
|
373
|
+
);
|
|
374
|
+
}
|
|
319
375
|
|
|
320
376
|
if (entryPointArtifact.functionType !== FunctionType.UTILITY) {
|
|
321
377
|
throw new Error(`Cannot run ${entryPointArtifact.functionType} function as utility`);
|
|
322
378
|
}
|
|
323
379
|
|
|
380
|
+
const utilityExecutor = async (syncCall: FunctionCall, execScopes: AztecAddress[]) => {
|
|
381
|
+
await this.runUtility(syncCall, [], anchorBlockHeader, execScopes, jobId);
|
|
382
|
+
};
|
|
383
|
+
|
|
324
384
|
const oracle = new UtilityExecutionOracle({
|
|
325
|
-
|
|
385
|
+
callContext: CallContext.from({
|
|
386
|
+
msgSender: AztecAddress.NULL_MSG_SENDER,
|
|
387
|
+
contractAddress: call.to,
|
|
388
|
+
functionSelector: call.selector,
|
|
389
|
+
isStaticCall: true,
|
|
390
|
+
}),
|
|
326
391
|
authWitnesses: authwits,
|
|
327
392
|
capsules: [],
|
|
328
393
|
anchorBlockHeader,
|
|
329
|
-
|
|
394
|
+
anchoredContractData,
|
|
330
395
|
noteStore: this.noteStore,
|
|
331
396
|
keyStore: this.keyStore,
|
|
332
397
|
addressStore: this.addressStore,
|
|
333
398
|
aztecNode: this.aztecNode,
|
|
334
399
|
recipientTaggingStore: this.recipientTaggingStore,
|
|
335
|
-
|
|
336
|
-
|
|
400
|
+
taggingSecretSourcesStore: this.taggingSecretSourcesStore,
|
|
401
|
+
capsuleService: new CapsuleService(this.capsuleStore, scopes),
|
|
402
|
+
factService: new FactService(this.factStore, scopes),
|
|
337
403
|
privateEventStore: this.privateEventStore,
|
|
404
|
+
txResolver: this.txResolver,
|
|
405
|
+
contractSyncService: this.contractSyncService,
|
|
406
|
+
l2TipsStore: this.l2TipsStore,
|
|
338
407
|
jobId,
|
|
339
408
|
scopes,
|
|
409
|
+
simulator: this.simulator,
|
|
410
|
+
hooks: this.hooks,
|
|
411
|
+
utilityExecutor,
|
|
412
|
+
// Execution-tree root (top-level utility run or contract sync): own store; nested frames inherit it.
|
|
413
|
+
transientArrayService: new TransientArrayService(),
|
|
340
414
|
});
|
|
341
415
|
|
|
342
416
|
try {
|
|
@@ -347,7 +421,7 @@ export class ContractFunctionSimulator {
|
|
|
347
421
|
|
|
348
422
|
const initialWitness = toACVMWitness(0, call.args);
|
|
349
423
|
const acirExecutionResult = await this.simulator
|
|
350
|
-
.executeUserCircuit(initialWitness, entryPointArtifact,
|
|
424
|
+
.executeUserCircuit(initialWitness, entryPointArtifact, buildACIRCallback(oracle))
|
|
351
425
|
.catch((err: Error) => {
|
|
352
426
|
err.message = resolveAssertionMessageFromError(err, entryPointArtifact);
|
|
353
427
|
throw new ExecutionError(
|
|
@@ -362,12 +436,14 @@ export class ContractFunctionSimulator {
|
|
|
362
436
|
});
|
|
363
437
|
|
|
364
438
|
this.log.verbose(`Utility execution for ${call.to}.${call.selector} completed`);
|
|
365
|
-
return
|
|
439
|
+
return {
|
|
440
|
+
result: witnessMapToFields(acirExecutionResult.returnWitness),
|
|
441
|
+
offchainEffects: oracle.getOffchainEffects(),
|
|
442
|
+
};
|
|
366
443
|
} catch (err) {
|
|
367
444
|
throw createSimulationError(err instanceof Error ? err : new Error('Unknown error during private execution'));
|
|
368
445
|
}
|
|
369
446
|
}
|
|
370
|
-
// docs:end:execute_utility_function
|
|
371
447
|
|
|
372
448
|
/**
|
|
373
449
|
* Returns the execution statistics collected during the simulator run.
|
|
@@ -432,14 +508,34 @@ export async function generateSimulatedProvingResult(
|
|
|
432
508
|
|
|
433
509
|
let publicTeardownCallRequest;
|
|
434
510
|
|
|
511
|
+
// We set expiration timestamp to anchor_block_timestamp + MAX_TX_LIFETIME (24h) just like kernels do
|
|
512
|
+
let expirationTimestamp =
|
|
513
|
+
privateExecutionResult.entrypoint.publicInputs.anchorBlockHeader.globalVariables.timestamp +
|
|
514
|
+
BigInt(MAX_TX_LIFETIME);
|
|
515
|
+
|
|
516
|
+
let feePayer = AztecAddress.zero();
|
|
517
|
+
|
|
435
518
|
const executions = [privateExecutionResult.entrypoint];
|
|
436
519
|
|
|
437
520
|
while (executions.length !== 0) {
|
|
438
521
|
const execution = executions.shift()!;
|
|
439
522
|
executions.unshift(...execution!.nestedExecutionResults);
|
|
440
523
|
|
|
524
|
+
// Just like kernels we overwrite the default value if the call sets it.
|
|
525
|
+
const callExpirationTimestamp = execution.publicInputs.expirationTimestamp;
|
|
526
|
+
if (callExpirationTimestamp !== 0n && callExpirationTimestamp < expirationTimestamp) {
|
|
527
|
+
expirationTimestamp = callExpirationTimestamp;
|
|
528
|
+
}
|
|
529
|
+
|
|
441
530
|
const { contractAddress } = execution.publicInputs.callContext;
|
|
442
531
|
|
|
532
|
+
if (execution.publicInputs.isFeePayer) {
|
|
533
|
+
if (!feePayer.isZero()) {
|
|
534
|
+
throw new Error('Multiple fee payers found in private execution result');
|
|
535
|
+
}
|
|
536
|
+
feePayer = contractAddress;
|
|
537
|
+
}
|
|
538
|
+
|
|
443
539
|
scopedNoteHashes.push(
|
|
444
540
|
...execution.publicInputs.noteHashes
|
|
445
541
|
.getActiveItems()
|
|
@@ -492,6 +588,7 @@ export async function generateSimulatedProvingResult(
|
|
|
492
588
|
execution.publicInputs.callContext.functionSelector,
|
|
493
589
|
),
|
|
494
590
|
timings: execution.profileResult?.timings ?? { witgen: 0, oracles: {} },
|
|
591
|
+
kind: CircuitKind.App,
|
|
495
592
|
bytecode: execution.acir,
|
|
496
593
|
vk: execution.vk,
|
|
497
594
|
witness: execution.partialWitness,
|
|
@@ -560,12 +657,12 @@ export async function generateSimulatedProvingResult(
|
|
|
560
657
|
siloedNullifiers,
|
|
561
658
|
minRevertibleSideEffectCounter,
|
|
562
659
|
);
|
|
660
|
+
// The protocol nullifier is the nonce generator and the tx's first nullifier. It is injected by the
|
|
661
|
+
// init kernel (at counter 1, index 0) rather than emitted by any private call, so it is absent from
|
|
662
|
+
// the executed nullifiers above. Mirror the kernel here by prepending it as the first non-revertible
|
|
663
|
+
// nullifier.
|
|
563
664
|
const nonceGenerator = privateExecutionResult.firstNullifier;
|
|
564
|
-
|
|
565
|
-
nonRevertibleNullifiers.push(nonceGenerator);
|
|
566
|
-
} else if (!nonRevertibleNullifiers[0].equals(nonceGenerator)) {
|
|
567
|
-
throw new Error('The first non revertible nullifier should be equal to the nonce generator. This is a bug!');
|
|
568
|
-
}
|
|
665
|
+
nonRevertibleNullifiers.unshift(nonceGenerator);
|
|
569
666
|
|
|
570
667
|
if (isPrivateOnlyTx) {
|
|
571
668
|
// We must make the note hashes unique by using the
|
|
@@ -660,8 +757,8 @@ export async function generateSimulatedProvingResult(
|
|
|
660
757
|
daGas: TX_DA_GAS_OVERHEAD,
|
|
661
758
|
}),
|
|
662
759
|
),
|
|
663
|
-
/*feePayer=*/
|
|
664
|
-
/*expirationTimestamp=*/
|
|
760
|
+
/*feePayer=*/ feePayer,
|
|
761
|
+
/*expirationTimestamp=*/ expirationTimestamp,
|
|
665
762
|
hasPublicCalls ? inputsForPublic : undefined,
|
|
666
763
|
!hasPublicCalls ? inputsForRollup : undefined,
|
|
667
764
|
);
|
|
@@ -716,7 +813,7 @@ function squashTransientSideEffects(
|
|
|
716
813
|
* at the tx's anchor block, mimicking the behavior of the kernels
|
|
717
814
|
*/
|
|
718
815
|
async function verifyReadRequests(
|
|
719
|
-
node: Pick<AztecNode, '
|
|
816
|
+
node: Pick<AztecNode, 'findLeavesIndexes'>,
|
|
720
817
|
anchorBlockHash: BlockParameter,
|
|
721
818
|
noteHashReadRequests: ScopedReadRequest[],
|
|
722
819
|
nullifierReadRequests: ScopedReadRequest[],
|
|
@@ -749,13 +846,25 @@ async function verifyReadRequests(
|
|
|
749
846
|
}
|
|
750
847
|
}
|
|
751
848
|
|
|
752
|
-
const [
|
|
753
|
-
|
|
754
|
-
|
|
849
|
+
const [noteHashResults, nullifierResults] = await Promise.all([
|
|
850
|
+
settledNoteHashReads.length > 0
|
|
851
|
+
? node.findLeavesIndexes(
|
|
852
|
+
anchorBlockHash,
|
|
853
|
+
MerkleTreeId.NOTE_HASH_TREE,
|
|
854
|
+
settledNoteHashReads.map(({ value }) => value),
|
|
855
|
+
)
|
|
856
|
+
: [],
|
|
857
|
+
settledNullifierReads.length > 0
|
|
858
|
+
? node.findLeavesIndexes(
|
|
859
|
+
anchorBlockHash,
|
|
860
|
+
MerkleTreeId.NULLIFIER_TREE,
|
|
861
|
+
settledNullifierReads.map(({ value }) => value),
|
|
862
|
+
)
|
|
863
|
+
: [],
|
|
755
864
|
]);
|
|
756
865
|
|
|
757
866
|
for (let i = 0; i < settledNoteHashReads.length; i++) {
|
|
758
|
-
if (!
|
|
867
|
+
if (!noteHashResults[i]) {
|
|
759
868
|
throw new Error(
|
|
760
869
|
`Note hash read request at index ${settledNoteHashReads[i].index} is reading an unknown note hash: ${settledNoteHashReads[i].value}`,
|
|
761
870
|
);
|
|
@@ -763,7 +872,7 @@ async function verifyReadRequests(
|
|
|
763
872
|
}
|
|
764
873
|
|
|
765
874
|
for (let i = 0; i < settledNullifierReads.length; i++) {
|
|
766
|
-
if (!
|
|
875
|
+
if (!nullifierResults[i]) {
|
|
767
876
|
throw new Error(
|
|
768
877
|
`Nullifier read request at index ${settledNullifierReads[i].index} is reading an unknown nullifier: ${settledNullifierReads[i].value}`,
|
|
769
878
|
);
|
|
@@ -816,6 +925,11 @@ function meterGasUsed(data: PrivateToRollupAccumulatedData | PrivateToPublicAccu
|
|
|
816
925
|
);
|
|
817
926
|
meteredL2Gas += numContractClassLogs * L2_GAS_PER_CONTRACT_CLASS_LOG;
|
|
818
927
|
|
|
928
|
+
if (isPrivateOnlyTx) {
|
|
929
|
+
// The public data write that the private tx base rollup always performs to update the fee payer's balance.
|
|
930
|
+
meteredDAFields += PUBLIC_DATA_WRITE_LENGTH;
|
|
931
|
+
}
|
|
932
|
+
|
|
819
933
|
const meteredDAGas = meteredDAFields * DA_GAS_PER_FIELD;
|
|
820
934
|
|
|
821
935
|
if ((data as PrivateToPublicAccumulatedData).publicCallRequests) {
|