@aztec/pxe 0.0.1-commit.24de95ac → 0.0.1-commit.2606882
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.d.ts +1 -1
- package/dest/bin/check_oracle_version.js +54 -20
- package/dest/bin/index.d.ts +2 -0
- package/dest/bin/index.d.ts.map +1 -0
- package/dest/bin/index.js +1 -0
- package/dest/bin/oracle_version_helpers.d.ts +26 -0
- package/dest/bin/oracle_version_helpers.d.ts.map +1 -0
- package/dest/bin/oracle_version_helpers.js +93 -0
- package/dest/block_synchronizer/block_stream_source.d.ts +10 -0
- package/dest/block_synchronizer/block_stream_source.d.ts.map +1 -0
- package/dest/block_synchronizer/block_stream_source.js +62 -0
- package/dest/block_synchronizer/block_synchronizer.d.ts +49 -0
- package/dest/block_synchronizer/block_synchronizer.d.ts.map +1 -0
- package/dest/block_synchronizer/block_synchronizer.js +173 -0
- package/dest/block_synchronizer/index.d.ts +2 -0
- package/dest/block_synchronizer/index.d.ts.map +1 -0
- package/dest/block_synchronizer/index.js +1 -0
- package/dest/config/index.d.ts +13 -13
- package/dest/config/index.d.ts.map +1 -1
- package/dest/config/index.js +24 -15
- package/dest/config/package_info.d.ts +1 -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 +89 -26
- package/dest/contract_function_simulator/contract_function_simulator.d.ts.map +1 -1
- package/dest/contract_function_simulator/contract_function_simulator.js +267 -88
- 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 +26 -15
- package/dest/contract_function_simulator/execution_note_cache.d.ts.map +1 -1
- package/dest/contract_function_simulator/execution_note_cache.js +59 -34
- 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/hashed_values_cache.d.ts +2 -2
- package/dest/contract_function_simulator/hashed_values_cache.d.ts.map +1 -1
- package/dest/contract_function_simulator/index.d.ts +15 -3
- package/dest/contract_function_simulator/index.d.ts.map +1 -1
- package/dest/contract_function_simulator/index.js +12 -1
- package/dest/contract_function_simulator/noir-structs/bounded_vec.d.ts +48 -0
- package/dest/contract_function_simulator/noir-structs/bounded_vec.d.ts.map +1 -0
- package/dest/contract_function_simulator/noir-structs/bounded_vec.js +45 -0
- package/dest/contract_function_simulator/noir-structs/ephemeral_array.d.ts +37 -0
- package/dest/contract_function_simulator/noir-structs/ephemeral_array.d.ts.map +1 -0
- package/dest/contract_function_simulator/noir-structs/ephemeral_array.js +59 -0
- package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts +6 -6
- 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 +12 -10
- package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts +16 -5
- 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 +39 -7
- package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts +4 -4
- 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 +3 -5
- 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 +7 -7
- 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 +15 -10
- package/dest/contract_function_simulator/noir-structs/option.d.ts +61 -0
- package/dest/contract_function_simulator/noir-structs/option.d.ts.map +1 -0
- package/dest/contract_function_simulator/noir-structs/option.js +62 -0
- package/dest/contract_function_simulator/noir-structs/provided_secret.d.ts +11 -0
- package/dest/contract_function_simulator/noir-structs/provided_secret.d.ts.map +1 -0
- package/dest/contract_function_simulator/noir-structs/provided_secret.js +24 -0
- package/dest/contract_function_simulator/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/index.d.ts +1 -1
- package/dest/contract_function_simulator/oracle/interfaces.d.ts +16 -88
- 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/message_load_oracle_inputs.d.ts +2 -2
- package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.js +1 -1
- package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts +14 -8
- package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/note_packing_utils.js +17 -12
- package/dest/contract_function_simulator/oracle/oracle.d.ts +75 -43
- package/dest/contract_function_simulator/oracle/oracle.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/oracle.js +475 -251
- package/dest/contract_function_simulator/oracle/oracle_registry.d.ts +127 -0
- package/dest/contract_function_simulator/oracle/oracle_registry.d.ts.map +1 -0
- package/dest/contract_function_simulator/oracle/oracle_registry.js +786 -0
- package/dest/contract_function_simulator/oracle/oracle_type_mappings.d.ts +139 -0
- package/dest/contract_function_simulator/oracle/oracle_type_mappings.d.ts.map +1 -0
- package/dest/contract_function_simulator/oracle/oracle_type_mappings.js +560 -0
- package/dest/contract_function_simulator/oracle/private_execution.d.ts +2 -27
- package/dest/contract_function_simulator/oracle/private_execution.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/private_execution.js +6 -40
- package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts +78 -102
- package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/private_execution_oracle.js +177 -137
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts +189 -60
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.js +507 -118
- package/dest/contract_function_simulator/pick_notes.d.ts +2 -2
- package/dest/contract_function_simulator/pick_notes.d.ts.map +1 -1
- package/dest/contract_function_simulator/pick_notes.js +21 -4
- 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 +39 -50
- package/dest/contract_logging.d.ts +27 -0
- package/dest/contract_logging.d.ts.map +1 -0
- package/dest/contract_logging.js +38 -0
- package/dest/contract_sync/contract_sync_service.d.ts +42 -0
- package/dest/contract_sync/contract_sync_service.d.ts.map +1 -0
- package/dest/contract_sync/contract_sync_service.js +135 -0
- package/dest/contract_sync/helpers.d.ts +27 -0
- package/dest/contract_sync/helpers.d.ts.map +1 -0
- package/dest/contract_sync/helpers.js +53 -0
- package/dest/debug/pxe_debug_utils.d.ts +40 -0
- package/dest/debug/pxe_debug_utils.d.ts.map +1 -0
- package/dest/debug/pxe_debug_utils.js +42 -0
- package/dest/entrypoints/client/bundle/index.d.ts +3 -2
- package/dest/entrypoints/client/bundle/index.d.ts.map +1 -1
- package/dest/entrypoints/client/bundle/index.js +2 -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 +43 -12
- package/dest/entrypoints/client/lazy/index.d.ts +3 -2
- package/dest/entrypoints/client/lazy/index.d.ts.map +1 -1
- package/dest/entrypoints/client/lazy/index.js +2 -1
- package/dest/entrypoints/client/lazy/utils.d.ts +3 -3
- package/dest/entrypoints/client/lazy/utils.d.ts.map +1 -1
- package/dest/entrypoints/client/lazy/utils.js +44 -13
- package/dest/entrypoints/pxe_creation_options.d.ts +15 -3
- 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 +7 -3
- package/dest/entrypoints/server/index.d.ts.map +1 -1
- package/dest/entrypoints/server/index.js +6 -2
- package/dest/entrypoints/server/utils.d.ts +4 -3
- package/dest/entrypoints/server/utils.d.ts.map +1 -1
- package/dest/entrypoints/server/utils.js +50 -30
- 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 +24 -0
- package/dest/events/event_service.d.ts.map +1 -0
- package/dest/events/event_service.js +77 -0
- package/dest/events/index.d.ts +2 -0
- package/dest/events/index.d.ts.map +1 -0
- package/dest/events/index.js +1 -0
- package/dest/events/private_event_filter_validator.d.ts +10 -0
- package/dest/events/private_event_filter_validator.d.ts.map +1 -0
- package/dest/events/private_event_filter_validator.js +53 -0
- package/dest/hooks/authorize_utility_call.d.ts +41 -0
- package/dest/hooks/authorize_utility_call.d.ts.map +1 -0
- package/dest/hooks/authorize_utility_call.js +4 -0
- package/dest/hooks/execution_hooks.d.ts +42 -0
- package/dest/hooks/execution_hooks.d.ts.map +1 -0
- package/dest/hooks/execution_hooks.js +9 -0
- package/dest/hooks/index.d.ts +4 -0
- package/dest/hooks/index.d.ts.map +1 -0
- package/dest/hooks/index.js +1 -0
- package/dest/job_coordinator/job_coordinator.d.ts +75 -0
- package/dest/job_coordinator/job_coordinator.d.ts.map +1 -0
- package/dest/job_coordinator/job_coordinator.js +94 -0
- package/dest/logs/log_service.d.ts +29 -0
- package/dest/logs/log_service.d.ts.map +1 -0
- package/dest/logs/log_service.js +172 -0
- package/dest/messages/message_context_service.d.ts +17 -0
- package/dest/messages/message_context_service.d.ts.map +1 -0
- package/dest/messages/message_context_service.js +55 -0
- package/dest/notes/index.d.ts +2 -0
- package/dest/notes/index.d.ts.map +1 -0
- package/dest/notes/index.js +1 -0
- package/dest/notes/note_service.d.ts +70 -0
- package/dest/notes/note_service.d.ts.map +1 -0
- package/dest/notes/note_service.js +172 -0
- package/dest/notes_filter.d.ts +24 -0
- package/dest/notes_filter.d.ts.map +1 -0
- package/dest/notes_filter.js +4 -0
- package/dest/oracle_version.d.ts +4 -3
- package/dest/oracle_version.d.ts.map +1 -1
- package/dest/oracle_version.js +20 -9
- 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/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} +145 -78
- 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 +202 -0
- package/dest/private_kernel/index.d.ts +1 -1
- package/dest/private_kernel/private_kernel_execution_prover.d.ts +7 -2
- package/dest/private_kernel/private_kernel_execution_prover.d.ts.map +1 -1
- package/dest/private_kernel/private_kernel_execution_prover.js +177 -76
- package/dest/private_kernel/private_kernel_oracle.d.ts +30 -29
- package/dest/private_kernel/private_kernel_oracle.d.ts.map +1 -1
- package/dest/private_kernel/private_kernel_oracle.js +96 -2
- package/dest/pxe.d.ts +170 -103
- package/dest/pxe.d.ts.map +1 -1
- package/dest/pxe.js +356 -306
- 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_store/anchor_block_store.js +26 -0
- 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/backwards_compatibility_tests/kv_store_snapshot.d.ts +42 -0
- package/dest/storage/backwards_compatibility_tests/kv_store_snapshot.d.ts.map +1 -0
- package/dest/storage/backwards_compatibility_tests/kv_store_snapshot.js +93 -0
- package/dest/storage/backwards_compatibility_tests/schema_tests.d.ts +15 -0
- package/dest/storage/backwards_compatibility_tests/schema_tests.d.ts.map +1 -0
- package/dest/storage/backwards_compatibility_tests/schema_tests.js +591 -0
- package/dest/storage/backwards_compatibility_tests/store_spy.d.ts +19 -0
- package/dest/storage/backwards_compatibility_tests/store_spy.d.ts.map +1 -0
- package/dest/storage/backwards_compatibility_tests/store_spy.js +63 -0
- package/dest/storage/capsule_store/capsule_service.d.ts +21 -0
- package/dest/storage/capsule_store/capsule_service.d.ts.map +1 -0
- package/dest/storage/capsule_store/capsule_service.js +50 -0
- package/dest/storage/capsule_store/capsule_store.d.ts +72 -0
- package/dest/storage/capsule_store/capsule_store.d.ts.map +1 -0
- package/dest/storage/capsule_store/capsule_store.js +261 -0
- package/dest/storage/capsule_store/index.d.ts +3 -0
- package/dest/storage/capsule_store/index.d.ts.map +1 -0
- package/dest/storage/capsule_store/index.js +2 -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 +292 -0
- package/dest/storage/contract_store/index.d.ts +2 -0
- package/dest/storage/contract_store/index.d.ts.map +1 -0
- package/dest/storage/contract_store/index.js +1 -0
- package/dest/storage/{contract_data_provider → contract_store}/private_functions_tree.d.ts +1 -1
- package/dest/storage/contract_store/private_functions_tree.d.ts.map +1 -0
- package/dest/storage/{contract_data_provider → contract_store}/private_functions_tree.js +1 -1
- package/dest/storage/index.d.ts +8 -8
- package/dest/storage/index.d.ts.map +1 -1
- package/dest/storage/index.js +7 -7
- package/dest/storage/metadata.d.ts +2 -2
- 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/open_pxe_stores.d.ts +33 -0
- package/dest/storage/open_pxe_stores.d.ts.map +1 -0
- package/dest/storage/open_pxe_stores.js +27 -0
- package/dest/storage/private_event_store/private_event_store.d.ts +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 +276 -0
- package/dest/storage/private_event_store/stored_private_event.d.ts +23 -0
- package/dest/storage/private_event_store/stored_private_event.d.ts.map +1 -0
- package/dest/storage/private_event_store/stored_private_event.js +56 -0
- package/dest/storage/tagging_store/index.d.ts +4 -0
- package/dest/storage/tagging_store/index.d.ts.map +1 -0
- package/dest/storage/tagging_store/index.js +3 -0
- package/dest/storage/tagging_store/recipient_tagging_store.d.ts +28 -0
- package/dest/storage/tagging_store/recipient_tagging_store.d.ts.map +1 -0
- package/dest/storage/tagging_store/recipient_tagging_store.js +111 -0
- package/dest/storage/tagging_store/sender_address_book_store.d.ts +14 -0
- package/dest/storage/tagging_store/sender_address_book_store.d.ts.map +1 -0
- package/dest/storage/tagging_store/sender_address_book_store.js +36 -0
- package/dest/storage/tagging_store/sender_tagging_store.d.ts +78 -0
- package/dest/storage/tagging_store/sender_tagging_store.d.ts.map +1 -0
- package/dest/storage/tagging_store/sender_tagging_store.js +374 -0
- package/dest/tagging/constants.d.ts +2 -2
- package/dest/tagging/constants.d.ts.map +1 -1
- package/dest/tagging/constants.js +10 -2
- package/dest/tagging/get_all_logs_by_tags.d.ts +48 -0
- package/dest/tagging/get_all_logs_by_tags.d.ts.map +1 -0
- package/dest/tagging/get_all_logs_by_tags.js +59 -0
- package/dest/tagging/index.d.ts +18 -7
- package/dest/tagging/index.d.ts.map +1 -1
- package/dest/tagging/index.js +16 -5
- package/dest/tagging/persist_sender_tagging_index_ranges.d.ts +29 -0
- package/dest/tagging/persist_sender_tagging_index_ranges.d.ts.map +1 -0
- package/dest/tagging/persist_sender_tagging_index_ranges.js +42 -0
- package/dest/tagging/recipient_sync/sync_tagged_private_logs.d.ts +56 -0
- package/dest/tagging/recipient_sync/sync_tagged_private_logs.d.ts.map +1 -0
- package/dest/tagging/recipient_sync/sync_tagged_private_logs.js +163 -0
- package/dest/tagging/recipient_sync/utils/find_highest_indexes.d.ts +12 -0
- package/dest/tagging/recipient_sync/utils/find_highest_indexes.d.ts.map +1 -0
- package/dest/tagging/recipient_sync/utils/find_highest_indexes.js +20 -0
- package/dest/tagging/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 +16 -0
- package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts.map +1 -0
- package/dest/tagging/sender_sync/sync_sender_tagging_indexes.js +92 -0
- package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts +17 -0
- package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts.map +1 -0
- package/dest/tagging/sender_sync/utils/get_status_change_of_pending.js +60 -0
- package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts +19 -0
- package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts.map +1 -0
- package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.js +72 -0
- package/package.json +33 -20
- package/src/bin/check_oracle_version.ts +63 -25
- package/src/bin/index.ts +1 -0
- package/src/bin/oracle_version_helpers.ts +121 -0
- package/src/block_synchronizer/block_stream_source.ts +81 -0
- package/src/block_synchronizer/block_synchronizer.ts +200 -0
- package/src/block_synchronizer/index.ts +1 -0
- package/src/config/index.ts +31 -26
- 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 +462 -122
- package/src/contract_function_simulator/ephemeral_array_service.ts +110 -0
- package/src/contract_function_simulator/execution_note_cache.ts +59 -29
- package/src/contract_function_simulator/execution_tagging_index_cache.ts +19 -18
- package/src/contract_function_simulator/hashed_values_cache.ts +1 -1
- package/src/contract_function_simulator/index.ts +52 -2
- package/src/contract_function_simulator/noir-structs/bounded_vec.ts +55 -0
- package/src/contract_function_simulator/noir-structs/ephemeral_array.ts +66 -0
- package/src/contract_function_simulator/noir-structs/event_validation_request.ts +15 -10
- package/src/contract_function_simulator/noir-structs/log_retrieval_request.ts +40 -6
- package/src/contract_function_simulator/noir-structs/log_retrieval_response.ts +4 -7
- package/src/contract_function_simulator/noir-structs/note_data.ts +27 -0
- package/src/contract_function_simulator/noir-structs/note_validation_request.ts +17 -10
- package/src/contract_function_simulator/noir-structs/option.ts +69 -0
- package/src/contract_function_simulator/noir-structs/provided_secret.ts +27 -0
- package/src/contract_function_simulator/noir-structs/utility_context.ts +6 -25
- package/src/contract_function_simulator/oracle/interfaces.ts +12 -151
- package/src/contract_function_simulator/oracle/message_load_oracle_inputs.ts +1 -1
- package/src/contract_function_simulator/oracle/note_packing_utils.ts +31 -15
- package/src/contract_function_simulator/oracle/oracle.ts +570 -434
- package/src/contract_function_simulator/oracle/oracle_registry.ts +585 -0
- package/src/contract_function_simulator/oracle/oracle_type_mappings.ts +553 -0
- package/src/contract_function_simulator/oracle/private_execution.ts +6 -72
- package/src/contract_function_simulator/oracle/private_execution_oracle.ts +230 -188
- package/src/contract_function_simulator/oracle/utility_execution_oracle.ts +751 -142
- package/src/contract_function_simulator/pick_notes.ts +23 -4
- package/src/contract_function_simulator/proxied_contract_data_source.ts +47 -53
- package/src/contract_logging.ts +52 -0
- package/src/contract_sync/contract_sync_service.ts +189 -0
- package/src/contract_sync/helpers.ts +86 -0
- package/src/debug/pxe_debug_utils.ts +85 -0
- package/src/entrypoints/client/bundle/index.ts +2 -1
- package/src/entrypoints/client/bundle/utils.ts +33 -21
- package/src/entrypoints/client/lazy/index.ts +2 -1
- package/src/entrypoints/client/lazy/utils.ts +35 -23
- package/src/entrypoints/pxe_creation_options.ts +20 -2
- package/src/entrypoints/server/index.ts +6 -2
- package/src/entrypoints/server/utils.ts +47 -60
- package/src/error_enriching.ts +7 -15
- package/src/events/event_service.ts +119 -0
- package/src/events/index.ts +1 -0
- package/src/events/private_event_filter_validator.ts +66 -0
- package/src/hooks/authorize_utility_call.ts +44 -0
- package/src/hooks/execution_hooks.ts +48 -0
- package/src/hooks/index.ts +7 -0
- package/src/job_coordinator/job_coordinator.ts +150 -0
- package/src/logs/log_service.ts +237 -0
- package/src/messages/message_context_service.ts +62 -0
- package/src/notes/index.ts +1 -0
- package/src/notes/note_service.ts +230 -0
- package/src/notes_filter.ts +24 -0
- package/src/oracle_version.ts +20 -9
- package/src/private_kernel/batch_planner.ts +169 -0
- 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} +200 -146
- package/src/private_kernel/hints/test_utils.ts +318 -0
- package/src/private_kernel/private_kernel_execution_prover.ts +272 -110
- package/src/private_kernel/private_kernel_oracle.ts +130 -39
- package/src/pxe.ts +606 -414
- package/src/storage/{address_data_provider/address_data_provider.ts → address_store/address_store.ts} +16 -16
- package/src/storage/address_store/index.ts +1 -0
- package/src/storage/{sync_data_provider/sync_data_provider.ts → anchor_block_store/anchor_block_store.ts} +11 -12
- package/src/storage/anchor_block_store/index.ts +1 -0
- package/src/storage/backwards_compatibility_tests/__snapshots__/AddressStore.json +22 -0
- package/src/storage/backwards_compatibility_tests/__snapshots__/AnchorBlockStore.json +3 -0
- package/src/storage/backwards_compatibility_tests/__snapshots__/CapsuleStore.json +16 -0
- package/src/storage/backwards_compatibility_tests/__snapshots__/ContractStore.json +28 -0
- package/src/storage/backwards_compatibility_tests/__snapshots__/KeyStore.json +52 -0
- package/src/storage/backwards_compatibility_tests/__snapshots__/L2TipsKVStore.json +46 -0
- package/src/storage/backwards_compatibility_tests/__snapshots__/NoteStore.json +36 -0
- package/src/storage/backwards_compatibility_tests/__snapshots__/PrivateEventStore.json +44 -0
- package/src/storage/backwards_compatibility_tests/__snapshots__/RecipientTaggingStore.json +18 -0
- package/src/storage/backwards_compatibility_tests/__snapshots__/SenderAddressBookStore.json +16 -0
- package/src/storage/backwards_compatibility_tests/__snapshots__/SenderTaggingStore.json +22 -0
- package/src/storage/backwards_compatibility_tests/__snapshots__/opened_stores.json +97 -0
- package/src/storage/backwards_compatibility_tests/kv_store_snapshot.ts +122 -0
- package/src/storage/backwards_compatibility_tests/schema_tests.ts +712 -0
- package/src/storage/backwards_compatibility_tests/store_spy.ts +73 -0
- package/src/storage/capsule_store/capsule_service.ts +90 -0
- package/src/storage/capsule_store/capsule_store.ts +333 -0
- package/src/storage/capsule_store/index.ts +2 -0
- package/src/storage/contract_store/contract_store.ts +408 -0
- package/src/storage/contract_store/index.ts +1 -0
- package/src/storage/{contract_data_provider → contract_store}/private_functions_tree.ts +1 -1
- package/src/storage/index.ts +7 -7
- package/src/storage/metadata.ts +1 -1
- package/src/storage/note_store/index.ts +2 -0
- package/src/storage/note_store/note_store.ts +415 -0
- package/src/storage/note_store/stored_note.ts +48 -0
- package/src/storage/open_pxe_stores.ts +49 -0
- package/src/storage/private_event_store/private_event_store.ts +388 -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 +139 -0
- package/src/storage/tagging_store/sender_address_book_store.ts +48 -0
- package/src/storage/tagging_store/sender_tagging_store.ts +476 -0
- package/src/tagging/constants.ts +10 -2
- package/src/tagging/get_all_logs_by_tags.ts +120 -0
- package/src/tagging/index.ts +20 -6
- package/src/tagging/persist_sender_tagging_index_ranges.ts +57 -0
- package/src/tagging/recipient_sync/sync_tagged_private_logs.ts +240 -0
- package/src/tagging/recipient_sync/utils/find_highest_indexes.ts +34 -0
- package/src/tagging/reconcile_tagging_index_ranges.ts +102 -0
- package/src/tagging/sender_sync/sync_sender_tagging_indexes.ts +134 -0
- package/src/tagging/sender_sync/utils/get_status_change_of_pending.ts +66 -0
- package/src/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.ts +84 -0
- package/dest/contract_function_simulator/execution_data_provider.d.ts +0 -274
- package/dest/contract_function_simulator/execution_data_provider.d.ts.map +0 -1
- package/dest/contract_function_simulator/execution_data_provider.js +0 -14
- package/dest/contract_function_simulator/proxied_node.d.ts +0 -9
- package/dest/contract_function_simulator/proxied_node.d.ts.map +0 -1
- package/dest/contract_function_simulator/proxied_node.js +0 -27
- package/dest/contract_function_simulator/pxe_oracle_interface.d.ts +0 -122
- package/dest/contract_function_simulator/pxe_oracle_interface.d.ts.map +0 -1
- package/dest/contract_function_simulator/pxe_oracle_interface.js +0 -701
- package/dest/private_kernel/hints/build_private_kernel_reset_private_inputs.d.ts +0 -28
- package/dest/private_kernel/hints/build_private_kernel_reset_private_inputs.d.ts.map +0 -1
- package/dest/private_kernel/hints/compute_tx_include_by_timestamp.d.ts +0 -4
- package/dest/private_kernel/hints/compute_tx_include_by_timestamp.d.ts.map +0 -1
- package/dest/private_kernel/private_kernel_oracle_impl.d.ts +0 -45
- package/dest/private_kernel/private_kernel_oracle_impl.d.ts.map +0 -1
- package/dest/private_kernel/private_kernel_oracle_impl.js +0 -86
- package/dest/storage/address_data_provider/address_data_provider.d.ts +0 -11
- package/dest/storage/address_data_provider/address_data_provider.d.ts.map +0 -1
- package/dest/storage/address_data_provider/index.d.ts +0 -2
- package/dest/storage/address_data_provider/index.d.ts.map +0 -1
- package/dest/storage/address_data_provider/index.js +0 -1
- package/dest/storage/capsule_data_provider/capsule_data_provider.d.ts +0 -25
- package/dest/storage/capsule_data_provider/capsule_data_provider.d.ts.map +0 -1
- package/dest/storage/capsule_data_provider/capsule_data_provider.js +0 -118
- package/dest/storage/capsule_data_provider/index.d.ts +0 -2
- package/dest/storage/capsule_data_provider/index.d.ts.map +0 -1
- package/dest/storage/capsule_data_provider/index.js +0 -1
- package/dest/storage/contract_data_provider/contract_data_provider.d.ts +0 -74
- 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 -205
- 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_dao.d.ts +0 -100
- package/dest/storage/note_data_provider/note_dao.d.ts.map +0 -1
- package/dest/storage/note_data_provider/note_dao.js +0 -102
- package/dest/storage/note_data_provider/note_data_provider.d.ts +0 -83
- package/dest/storage/note_data_provider/note_data_provider.d.ts.map +0 -1
- package/dest/storage/note_data_provider/note_data_provider.js +0 -308
- package/dest/storage/private_event_data_provider/private_event_data_provider.d.ts +0 -43
- 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 -104
- package/dest/storage/sync_data_provider/index.d.ts +0 -2
- package/dest/storage/sync_data_provider/index.d.ts.map +0 -1
- package/dest/storage/sync_data_provider/index.js +0 -1
- package/dest/storage/sync_data_provider/sync_data_provider.d.ts +0 -10
- package/dest/storage/sync_data_provider/sync_data_provider.d.ts.map +0 -1
- package/dest/storage/sync_data_provider/sync_data_provider.js +0 -26
- package/dest/storage/tagging_data_provider/index.d.ts +0 -2
- package/dest/storage/tagging_data_provider/index.d.ts.map +0 -1
- package/dest/storage/tagging_data_provider/index.js +0 -1
- package/dest/storage/tagging_data_provider/tagging_data_provider.d.ts +0 -40
- package/dest/storage/tagging_data_provider/tagging_data_provider.d.ts.map +0 -1
- package/dest/storage/tagging_data_provider/tagging_data_provider.js +0 -89
- package/dest/synchronizer/index.d.ts +0 -2
- package/dest/synchronizer/index.d.ts.map +0 -1
- package/dest/synchronizer/index.js +0 -1
- package/dest/synchronizer/synchronizer.d.ts +0 -35
- package/dest/synchronizer/synchronizer.d.ts.map +0 -1
- package/dest/synchronizer/synchronizer.js +0 -101
- package/dest/tagging/siloed_tag.d.ts +0 -14
- package/dest/tagging/siloed_tag.d.ts.map +0 -1
- package/dest/tagging/siloed_tag.js +0 -20
- package/dest/tagging/tag.d.ts +0 -12
- package/dest/tagging/tag.d.ts.map +0 -1
- package/dest/tagging/tag.js +0 -17
- package/dest/tagging/utils.d.ts +0 -18
- package/dest/tagging/utils.d.ts.map +0 -1
- package/dest/tagging/utils.js +0 -24
- package/src/contract_function_simulator/execution_data_provider.ts +0 -343
- package/src/contract_function_simulator/proxied_node.ts +0 -33
- package/src/contract_function_simulator/pxe_oracle_interface.ts +0 -1019
- package/src/private_kernel/private_kernel_oracle_impl.ts +0 -132
- package/src/storage/address_data_provider/index.ts +0 -1
- package/src/storage/capsule_data_provider/capsule_data_provider.ts +0 -147
- package/src/storage/capsule_data_provider/index.ts +0 -1
- package/src/storage/contract_data_provider/contract_data_provider.ts +0 -294
- 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_dao.ts +0 -154
- package/src/storage/note_data_provider/note_data_provider.ts +0 -393
- package/src/storage/private_event_data_provider/private_event_data_provider.ts +0 -148
- package/src/storage/sync_data_provider/index.ts +0 -1
- package/src/storage/tagging_data_provider/index.ts +0 -1
- package/src/storage/tagging_data_provider/tagging_data_provider.ts +0 -120
- package/src/synchronizer/index.ts +0 -1
- package/src/synchronizer/synchronizer.ts +0 -120
- package/src/tagging/siloed_tag.ts +0 -22
- package/src/tagging/tag.ts +0 -16
- package/src/tagging/utils.ts +0 -31
|
@@ -0,0 +1,560 @@
|
|
|
1
|
+
import { BLOCK_HEADER_LENGTH, KEY_VALIDATION_REQUEST_LENGTH, MAX_CONTRACT_CLASS_LOGS_PER_TX, MAX_L2_TO_L1_MSGS_PER_TX, MAX_NOTE_HASHES_PER_TX, MAX_NULLIFIERS_PER_TX, MAX_PRIVATE_LOGS_PER_TX, MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX } from '@aztec/constants';
|
|
2
|
+
import { BlockNumber } from '@aztec/foundation/branded-types';
|
|
3
|
+
import { padArrayEnd } from '@aztec/foundation/collection';
|
|
4
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
5
|
+
import { Point } from '@aztec/foundation/curves/grumpkin';
|
|
6
|
+
import { fromUintArray } from '@aztec/simulator/client';
|
|
7
|
+
import { FunctionSelector, NoteSelector } from '@aztec/stdlib/abi';
|
|
8
|
+
import { PublicDataWrite } from '@aztec/stdlib/avm';
|
|
9
|
+
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
10
|
+
import { BlockHash } from '@aztec/stdlib/block';
|
|
11
|
+
import { KeyValidationRequest } from '@aztec/stdlib/kernel';
|
|
12
|
+
import { ContractClassLog, ContractClassLogFields, FlatPublicLogs, PrivateLog, Tag, appTaggingSecretKindFromDeliveryMode } from '@aztec/stdlib/logs';
|
|
13
|
+
import { BlockHeader, TxHash } from '@aztec/stdlib/tx';
|
|
14
|
+
import { BoundedVec } from '../noir-structs/bounded_vec.js';
|
|
15
|
+
import { EphemeralArray } from '../noir-structs/ephemeral_array.js';
|
|
16
|
+
import { EventValidationRequest } from '../noir-structs/event_validation_request.js';
|
|
17
|
+
import { LogRetrievalRequest } from '../noir-structs/log_retrieval_request.js';
|
|
18
|
+
import { NoteValidationRequest } from '../noir-structs/note_validation_request.js';
|
|
19
|
+
import { Option } from '../noir-structs/option.js';
|
|
20
|
+
import { ProvidedSecret } from '../noir-structs/provided_secret.js';
|
|
21
|
+
import { packAsHintedNote } from './note_packing_utils.js';
|
|
22
|
+
/**
|
|
23
|
+
* Asserts that every reader was fully consumed by a deserialization, throwing on leftover fields.
|
|
24
|
+
*/ export function assertReadersConsumed(readers) {
|
|
25
|
+
readers.forEach((reader, slot)=>{
|
|
26
|
+
if (!reader.isFinished()) {
|
|
27
|
+
throw new Error(`Malformed oracle input: ${reader.remainingFields()} unexpected trailing field(s) in slot ${slot}`);
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
// ─── Scalar Type Mappings ────────────────────────────────────────────────────
|
|
32
|
+
export const FIELD = {
|
|
33
|
+
serialization: {
|
|
34
|
+
fn: (v)=>[
|
|
35
|
+
v
|
|
36
|
+
]
|
|
37
|
+
},
|
|
38
|
+
deserialization: {
|
|
39
|
+
fn: ([reader])=>reader.readField(),
|
|
40
|
+
slots: 1
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
export const BOOL = {
|
|
44
|
+
serialization: {
|
|
45
|
+
fn: (v)=>[
|
|
46
|
+
new Fr(v ? 1n : 0n)
|
|
47
|
+
]
|
|
48
|
+
},
|
|
49
|
+
deserialization: {
|
|
50
|
+
fn: ([reader])=>!reader.readField().isZero(),
|
|
51
|
+
slots: 1
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
export const U32 = {
|
|
55
|
+
serialization: {
|
|
56
|
+
fn: (v)=>[
|
|
57
|
+
new Fr(v)
|
|
58
|
+
]
|
|
59
|
+
},
|
|
60
|
+
deserialization: {
|
|
61
|
+
fn: ([reader])=>{
|
|
62
|
+
const value = reader.readField().toBigInt();
|
|
63
|
+
if (value > 0xffffffffn) {
|
|
64
|
+
throw new Error(`U32 overflow: value ${value} exceeds u32 max (${0xffffffffn})`);
|
|
65
|
+
}
|
|
66
|
+
return Number(value);
|
|
67
|
+
},
|
|
68
|
+
slots: 1
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
export const BLOCK_NUMBER = {
|
|
72
|
+
serialization: {
|
|
73
|
+
fn: (v)=>[
|
|
74
|
+
new Fr(v)
|
|
75
|
+
]
|
|
76
|
+
},
|
|
77
|
+
deserialization: {
|
|
78
|
+
fn: ([reader])=>BlockNumber(reader.readField().toNumber()),
|
|
79
|
+
slots: 1
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
/** A u8 byte: serializes to a single Fr; deserializes from a single Fr to a number in [0, 255]. */ export const BYTE = {
|
|
83
|
+
serialization: {
|
|
84
|
+
fn: (byte)=>[
|
|
85
|
+
new Fr(byte)
|
|
86
|
+
]
|
|
87
|
+
},
|
|
88
|
+
deserialization: {
|
|
89
|
+
fn: ([reader])=>{
|
|
90
|
+
const value = reader.readField().toBigInt();
|
|
91
|
+
if (value > 0xffn) {
|
|
92
|
+
throw new Error(`BYTE overflow: value ${value} exceeds u8 max (255)`);
|
|
93
|
+
}
|
|
94
|
+
return Number(value);
|
|
95
|
+
},
|
|
96
|
+
slots: 1
|
|
97
|
+
}
|
|
98
|
+
};
|
|
99
|
+
// Noir passes `MessageDelivery` onchain variants here.
|
|
100
|
+
export const DELIVERY_MODE = {
|
|
101
|
+
deserialization: {
|
|
102
|
+
fn: (readers)=>appTaggingSecretKindFromDeliveryMode(BYTE.deserialization.fn(readers)),
|
|
103
|
+
slots: BYTE.deserialization.slots
|
|
104
|
+
}
|
|
105
|
+
};
|
|
106
|
+
export const BIGINT = {
|
|
107
|
+
serialization: {
|
|
108
|
+
fn: (v)=>[
|
|
109
|
+
new Fr(v)
|
|
110
|
+
]
|
|
111
|
+
},
|
|
112
|
+
deserialization: {
|
|
113
|
+
fn: ([reader])=>reader.readField().toBigInt(),
|
|
114
|
+
slots: 1
|
|
115
|
+
}
|
|
116
|
+
};
|
|
117
|
+
/** Reads every field in the slot as a UTF-8 character code. */ export const STR = {
|
|
118
|
+
serialization: {
|
|
119
|
+
fn: (str)=>[
|
|
120
|
+
Array.from(Buffer.from(str, 'utf-8')).map((b)=>new Fr(b))
|
|
121
|
+
]
|
|
122
|
+
},
|
|
123
|
+
deserialization: {
|
|
124
|
+
fn: ([reader])=>{
|
|
125
|
+
const chars = [];
|
|
126
|
+
while(!reader.isFinished()){
|
|
127
|
+
chars.push(String.fromCharCode(reader.readField().toNumber()));
|
|
128
|
+
}
|
|
129
|
+
return chars.join('');
|
|
130
|
+
},
|
|
131
|
+
slots: 1
|
|
132
|
+
}
|
|
133
|
+
};
|
|
134
|
+
export const AZTEC_ADDRESS = {
|
|
135
|
+
serialization: {
|
|
136
|
+
fn: (v)=>[
|
|
137
|
+
v.toField()
|
|
138
|
+
]
|
|
139
|
+
},
|
|
140
|
+
deserialization: {
|
|
141
|
+
fn: ([reader])=>AztecAddress.fromField(reader.readField()),
|
|
142
|
+
slots: 1
|
|
143
|
+
}
|
|
144
|
+
};
|
|
145
|
+
export const BLOCK_HASH = {
|
|
146
|
+
serialization: {
|
|
147
|
+
fn: (v)=>[
|
|
148
|
+
new Fr(v.toBuffer())
|
|
149
|
+
]
|
|
150
|
+
},
|
|
151
|
+
deserialization: {
|
|
152
|
+
fn: ([reader])=>new BlockHash(reader.readField()),
|
|
153
|
+
slots: 1
|
|
154
|
+
}
|
|
155
|
+
};
|
|
156
|
+
export const FUNCTION_SELECTOR = {
|
|
157
|
+
serialization: {
|
|
158
|
+
fn: (v)=>[
|
|
159
|
+
v.toField()
|
|
160
|
+
]
|
|
161
|
+
},
|
|
162
|
+
deserialization: {
|
|
163
|
+
fn: ([reader])=>FunctionSelector.fromField(reader.readField()),
|
|
164
|
+
slots: 1
|
|
165
|
+
}
|
|
166
|
+
};
|
|
167
|
+
export const NOTE_SELECTOR = {
|
|
168
|
+
serialization: {
|
|
169
|
+
fn: (v)=>[
|
|
170
|
+
v.toField()
|
|
171
|
+
]
|
|
172
|
+
},
|
|
173
|
+
deserialization: {
|
|
174
|
+
fn: ([reader])=>NoteSelector.fromField(reader.readField()),
|
|
175
|
+
slots: 1
|
|
176
|
+
}
|
|
177
|
+
};
|
|
178
|
+
export const TX_HASH = {
|
|
179
|
+
serialization: {
|
|
180
|
+
fn: (v)=>[
|
|
181
|
+
v.hash
|
|
182
|
+
]
|
|
183
|
+
},
|
|
184
|
+
deserialization: {
|
|
185
|
+
fn: ([reader])=>TxHash.fromField(reader.readField()),
|
|
186
|
+
slots: 1
|
|
187
|
+
}
|
|
188
|
+
};
|
|
189
|
+
export const TAG = {
|
|
190
|
+
serialization: {
|
|
191
|
+
fn: (v)=>[
|
|
192
|
+
v.value
|
|
193
|
+
]
|
|
194
|
+
},
|
|
195
|
+
deserialization: {
|
|
196
|
+
fn: ([reader])=>new Tag(reader.readField()),
|
|
197
|
+
slots: 1
|
|
198
|
+
}
|
|
199
|
+
};
|
|
200
|
+
export const POINT = {
|
|
201
|
+
serialization: {
|
|
202
|
+
fn: (p)=>[
|
|
203
|
+
p.toFields()
|
|
204
|
+
]
|
|
205
|
+
},
|
|
206
|
+
deserialization: {
|
|
207
|
+
fn: ([reader])=>Point.fromFields([
|
|
208
|
+
reader.readField(),
|
|
209
|
+
reader.readField()
|
|
210
|
+
]),
|
|
211
|
+
slots: 1
|
|
212
|
+
}
|
|
213
|
+
};
|
|
214
|
+
// ─── Struct Type Mappings ────────────────────────────────────────────────────
|
|
215
|
+
export const BLOCK_HEADER = {
|
|
216
|
+
serialization: {
|
|
217
|
+
fn: (v)=>v.toFields()
|
|
218
|
+
},
|
|
219
|
+
deserialization: {
|
|
220
|
+
fn: ([reader])=>BlockHeader.fromFields(reader.readFieldArray(BLOCK_HEADER_LENGTH)),
|
|
221
|
+
slots: 1
|
|
222
|
+
}
|
|
223
|
+
};
|
|
224
|
+
export const KEY_VALIDATION_REQUEST = {
|
|
225
|
+
serialization: {
|
|
226
|
+
fn: (v)=>v.toFields()
|
|
227
|
+
},
|
|
228
|
+
deserialization: {
|
|
229
|
+
fn: ([reader])=>KeyValidationRequest.fromFields(reader.readFieldArray(KEY_VALIDATION_REQUEST_LENGTH)),
|
|
230
|
+
slots: 1
|
|
231
|
+
}
|
|
232
|
+
};
|
|
233
|
+
export const CONTRACT_INSTANCE = {
|
|
234
|
+
serialization: {
|
|
235
|
+
fn: (v)=>[
|
|
236
|
+
v.salt,
|
|
237
|
+
v.deployer.toField(),
|
|
238
|
+
v.currentContractClassId,
|
|
239
|
+
v.initializationHash,
|
|
240
|
+
v.immutablesHash,
|
|
241
|
+
...v.publicKeys.toFields()
|
|
242
|
+
]
|
|
243
|
+
}
|
|
244
|
+
};
|
|
245
|
+
export const NULLIFIER_MEMBERSHIP_WITNESS = {
|
|
246
|
+
serialization: {
|
|
247
|
+
fn: (w)=>w.toNoirRepresentation().map((slot)=>Array.isArray(slot) ? slot.map((s)=>Fr.fromString(s)) : Fr.fromString(slot))
|
|
248
|
+
}
|
|
249
|
+
};
|
|
250
|
+
export const PUBLIC_DATA_WITNESS = {
|
|
251
|
+
serialization: {
|
|
252
|
+
fn: (w)=>w.toNoirRepresentation().map((slot)=>Array.isArray(slot) ? slot.map((s)=>Fr.fromString(s)) : Fr.fromString(slot))
|
|
253
|
+
}
|
|
254
|
+
};
|
|
255
|
+
export const MESSAGE_LOAD_ORACLE_INPUTS = {
|
|
256
|
+
serialization: {
|
|
257
|
+
fn: (m)=>m.toNoirRepresentation().map((slot)=>Array.isArray(slot) ? slot.map((s)=>Fr.fromString(s)) : Fr.fromString(slot))
|
|
258
|
+
}
|
|
259
|
+
};
|
|
260
|
+
export const UTILITY_CONTEXT = {
|
|
261
|
+
serialization: {
|
|
262
|
+
fn: (ctx)=>[
|
|
263
|
+
...ctx.blockHeader.toFields(),
|
|
264
|
+
ctx.contractAddress.toField()
|
|
265
|
+
]
|
|
266
|
+
}
|
|
267
|
+
};
|
|
268
|
+
export const CALL_PRIVATE_RESULT = {
|
|
269
|
+
serialization: {
|
|
270
|
+
fn: (v)=>[
|
|
271
|
+
[
|
|
272
|
+
v.endSideEffectCounter,
|
|
273
|
+
v.returnsHash
|
|
274
|
+
]
|
|
275
|
+
]
|
|
276
|
+
}
|
|
277
|
+
};
|
|
278
|
+
export const PUBLIC_KEYS_AND_PARTIAL_ADDRESS = {
|
|
279
|
+
serialization: {
|
|
280
|
+
fn: (v)=>[
|
|
281
|
+
[
|
|
282
|
+
...v.publicKeys.toFields(),
|
|
283
|
+
v.partialAddress
|
|
284
|
+
]
|
|
285
|
+
]
|
|
286
|
+
}
|
|
287
|
+
};
|
|
288
|
+
export const CONTRACT_CLASS_LOG_INPUT = {
|
|
289
|
+
deserialization: {
|
|
290
|
+
fn: ([addrReader, fieldsReader, lengthReader])=>{
|
|
291
|
+
const addr = AztecAddress.fromField(addrReader.readField());
|
|
292
|
+
const fields = new ContractClassLogFields([
|
|
293
|
+
...fieldsReader.readFieldArray(fieldsReader.remainingFields())
|
|
294
|
+
]);
|
|
295
|
+
const length = lengthReader.readField().toNumber();
|
|
296
|
+
return new ContractClassLog(addr, fields, length);
|
|
297
|
+
},
|
|
298
|
+
// ContractClassLog input occupies 3 ACVM slots: [contractAddress], [message fields...], [length].
|
|
299
|
+
slots: 3
|
|
300
|
+
}
|
|
301
|
+
};
|
|
302
|
+
export const TX_EFFECT = {
|
|
303
|
+
serialization: {
|
|
304
|
+
fn: (effect)=>{
|
|
305
|
+
const flatPublicLogs = FlatPublicLogs.fromLogs(effect.publicLogs);
|
|
306
|
+
return [
|
|
307
|
+
effect.revertCode.toField(),
|
|
308
|
+
effect.txHash.hash,
|
|
309
|
+
effect.transactionFee,
|
|
310
|
+
padArrayEnd(effect.noteHashes, Fr.ZERO, MAX_NOTE_HASHES_PER_TX),
|
|
311
|
+
padArrayEnd(effect.nullifiers, Fr.ZERO, MAX_NULLIFIERS_PER_TX),
|
|
312
|
+
padArrayEnd(effect.l2ToL1Msgs, Fr.ZERO, MAX_L2_TO_L1_MSGS_PER_TX),
|
|
313
|
+
padArrayEnd(effect.publicDataWrites, PublicDataWrite.empty(), MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX).flatMap((w)=>w.toFields()),
|
|
314
|
+
padArrayEnd(effect.privateLogs, PrivateLog.empty(), MAX_PRIVATE_LOGS_PER_TX).flatMap((l)=>l.toFields()),
|
|
315
|
+
new Fr(flatPublicLogs.length),
|
|
316
|
+
flatPublicLogs.payload,
|
|
317
|
+
padArrayEnd(effect.contractClassLogs, ContractClassLog.empty(), MAX_CONTRACT_CLASS_LOGS_PER_TX).flatMap((l)=>[
|
|
318
|
+
...l.fields.toFields(),
|
|
319
|
+
new Fr(l.emittedLength),
|
|
320
|
+
l.contractAddress.toField()
|
|
321
|
+
])
|
|
322
|
+
];
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
};
|
|
326
|
+
export const NOTE = {
|
|
327
|
+
serialization: {
|
|
328
|
+
fn: (noteData)=>packAsHintedNote({
|
|
329
|
+
contractAddress: noteData.contractAddress,
|
|
330
|
+
owner: noteData.owner,
|
|
331
|
+
randomness: noteData.randomness,
|
|
332
|
+
storageSlot: noteData.storageSlot,
|
|
333
|
+
noteNonce: noteData.noteNonce,
|
|
334
|
+
isPending: noteData.isPending,
|
|
335
|
+
note: noteData.note
|
|
336
|
+
})
|
|
337
|
+
}
|
|
338
|
+
};
|
|
339
|
+
export const PENDING_TAGGED_LOG = {
|
|
340
|
+
serialization: {
|
|
341
|
+
fn: (log)=>[
|
|
342
|
+
log.toFields()
|
|
343
|
+
]
|
|
344
|
+
}
|
|
345
|
+
};
|
|
346
|
+
export const NOTE_VALIDATION_REQUEST = {
|
|
347
|
+
deserialization: {
|
|
348
|
+
fn: ([reader])=>NoteValidationRequest.fromFields(reader),
|
|
349
|
+
slots: 1
|
|
350
|
+
}
|
|
351
|
+
};
|
|
352
|
+
export const EVENT_VALIDATION_REQUEST = {
|
|
353
|
+
deserialization: {
|
|
354
|
+
fn: ([reader])=>EventValidationRequest.fromFields(reader),
|
|
355
|
+
slots: 1
|
|
356
|
+
}
|
|
357
|
+
};
|
|
358
|
+
export const LOG_RETRIEVAL_REQUEST = {
|
|
359
|
+
serialization: {
|
|
360
|
+
fn: (req)=>[
|
|
361
|
+
req.toFields()
|
|
362
|
+
]
|
|
363
|
+
},
|
|
364
|
+
deserialization: {
|
|
365
|
+
fn: ([reader])=>LogRetrievalRequest.fromFields(reader),
|
|
366
|
+
slots: 1
|
|
367
|
+
}
|
|
368
|
+
};
|
|
369
|
+
export const LOG_RETRIEVAL_RESPONSE = {
|
|
370
|
+
serialization: {
|
|
371
|
+
fn: (resp)=>[
|
|
372
|
+
resp.toFields()
|
|
373
|
+
]
|
|
374
|
+
}
|
|
375
|
+
};
|
|
376
|
+
export const MESSAGE_CONTEXT = {
|
|
377
|
+
serialization: {
|
|
378
|
+
fn: (mc)=>[
|
|
379
|
+
mc.toFields()
|
|
380
|
+
]
|
|
381
|
+
}
|
|
382
|
+
};
|
|
383
|
+
export const PROVIDED_SECRET = {
|
|
384
|
+
deserialization: {
|
|
385
|
+
fn: ([reader])=>ProvidedSecret.fromFields(reader),
|
|
386
|
+
slots: 1
|
|
387
|
+
}
|
|
388
|
+
};
|
|
389
|
+
// ─── Combinator Type Mappings ────────────────────────────────────────────────
|
|
390
|
+
/** `_height` is unused at runtime but lets TypeScript infer the exact `N` for `MembershipWitness<N>`. */ export function MEMBERSHIP_WITNESS(_height) {
|
|
391
|
+
return {
|
|
392
|
+
serialization: {
|
|
393
|
+
fn: (witness)=>[
|
|
394
|
+
new Fr(witness.leafIndex),
|
|
395
|
+
[
|
|
396
|
+
...witness.siblingPath
|
|
397
|
+
]
|
|
398
|
+
]
|
|
399
|
+
}
|
|
400
|
+
};
|
|
401
|
+
}
|
|
402
|
+
export function ARRAY(element) {
|
|
403
|
+
return {
|
|
404
|
+
serialization: element.serialization ? {
|
|
405
|
+
fn: (values)=>[
|
|
406
|
+
values.flatMap((v)=>element.serialization.fn(v).flat())
|
|
407
|
+
]
|
|
408
|
+
} : undefined,
|
|
409
|
+
deserialization: element.deserialization ? {
|
|
410
|
+
fn: ([reader])=>{
|
|
411
|
+
const result = [];
|
|
412
|
+
while(!reader.isFinished()){
|
|
413
|
+
result.push(element.deserialization.fn([
|
|
414
|
+
reader
|
|
415
|
+
]));
|
|
416
|
+
}
|
|
417
|
+
return result;
|
|
418
|
+
},
|
|
419
|
+
slots: 1
|
|
420
|
+
} : undefined
|
|
421
|
+
};
|
|
422
|
+
}
|
|
423
|
+
/**
|
|
424
|
+
* Maps Noir's `BoundedVec<T, MaxLen>` ↔ TS `BoundedVec<T>` over 2 slots:
|
|
425
|
+
* slot 0 — flat storage, padded/parsed as `maxLength * elementSize` fields
|
|
426
|
+
* slot 1 — length scalar (count of actual items)
|
|
427
|
+
*
|
|
428
|
+
* Both directions are derived from `element`: bidirectional iff `element` has both serialization and deserialization.
|
|
429
|
+
*
|
|
430
|
+
* @example Serializing `BoundedVec.from({ data: [0x41, 0x42], maxLength: 4 })` with `BOUNDED_VEC(BYTE)`:
|
|
431
|
+
* ```
|
|
432
|
+
* slot 0: [Fr(0x41), Fr(0x42), Fr(0), Fr(0)] // data padded to maxLength
|
|
433
|
+
* slot 1: Fr(2) // actual length
|
|
434
|
+
* ```
|
|
435
|
+
*/ export function BOUNDED_VEC(element) {
|
|
436
|
+
return {
|
|
437
|
+
serialization: element.serialization ? {
|
|
438
|
+
fn: (bv)=>{
|
|
439
|
+
if (bv.data.length > bv.maxLength) {
|
|
440
|
+
throw new Error(`Got ${bv.data.length} items, but maxLength is ${bv.maxLength}`);
|
|
441
|
+
}
|
|
442
|
+
const flat = bv.data.flatMap((item)=>element.serialization.fn(item).flat());
|
|
443
|
+
return [
|
|
444
|
+
padArrayEnd(flat, Fr.ZERO, bv.maxLength * bv.elementSize),
|
|
445
|
+
new Fr(bv.data.length)
|
|
446
|
+
];
|
|
447
|
+
}
|
|
448
|
+
} : undefined,
|
|
449
|
+
deserialization: element.deserialization ? {
|
|
450
|
+
fn: ([storageReader, lengthReader])=>{
|
|
451
|
+
const maxLength = storageReader.remainingFields();
|
|
452
|
+
const length = lengthReader.readField().toNumber();
|
|
453
|
+
const elements = [];
|
|
454
|
+
for(let i = 0; i < length; i++){
|
|
455
|
+
elements.push(element.deserialization.fn([
|
|
456
|
+
storageReader
|
|
457
|
+
]));
|
|
458
|
+
}
|
|
459
|
+
// Drain the trailing zero-padding (maxLength - length unused element slots) so the storage reader is
|
|
460
|
+
// fully consumed.
|
|
461
|
+
storageReader.skip(storageReader.remainingFields());
|
|
462
|
+
return BoundedVec.from({
|
|
463
|
+
data: elements,
|
|
464
|
+
maxLength
|
|
465
|
+
});
|
|
466
|
+
},
|
|
467
|
+
slots: 2
|
|
468
|
+
} : undefined
|
|
469
|
+
};
|
|
470
|
+
}
|
|
471
|
+
/**
|
|
472
|
+
* Wraps an inner TypeMapping in Noir-style `Option<T>`. Adds a discriminant slot and uses the handler-provided
|
|
473
|
+
* `Option.none(shape)` template to produce a correctly-sized zero-filled output for the None case.
|
|
474
|
+
*
|
|
475
|
+
* @example Serializing `Option.some(AztecAddress.fromField(Fr(42)))` with `OPTION(AZTEC_ADDRESS)`:
|
|
476
|
+
* ```
|
|
477
|
+
* slot 0: Fr(1) // discriminant: Some
|
|
478
|
+
* slot 1: Fr(42) // inner value
|
|
479
|
+
* ```
|
|
480
|
+
*
|
|
481
|
+
* @example Serializing `Option.empty(AztecAddress.ZERO)` with `OPTION(AZTEC_ADDRESS)`:
|
|
482
|
+
* ```
|
|
483
|
+
* slot 0: Fr(0) // discriminant: None
|
|
484
|
+
* slot 1: Fr(0) // zero-filled using shape
|
|
485
|
+
* ```
|
|
486
|
+
*/ export function OPTION(inner) {
|
|
487
|
+
return {
|
|
488
|
+
serialization: inner.serialization ? {
|
|
489
|
+
fn: (opt)=>{
|
|
490
|
+
if (opt.isSome()) {
|
|
491
|
+
return [
|
|
492
|
+
Fr.ONE,
|
|
493
|
+
...inner.serialization.fn(opt.value)
|
|
494
|
+
];
|
|
495
|
+
}
|
|
496
|
+
if (opt.template === undefined) {
|
|
497
|
+
throw new Error('Cannot serialize Option.empty() without an emptyTemplate — provide one via Option.empty(emptyTemplate)');
|
|
498
|
+
}
|
|
499
|
+
const zeroSlots = inner.serialization.fn(opt.template).map((s)=>Array.isArray(s) ? Array(s.length).fill(Fr.ZERO) : Fr.ZERO);
|
|
500
|
+
return [
|
|
501
|
+
Fr.ZERO,
|
|
502
|
+
...zeroSlots
|
|
503
|
+
];
|
|
504
|
+
}
|
|
505
|
+
} : undefined,
|
|
506
|
+
deserialization: inner.deserialization ? {
|
|
507
|
+
fn: ([discriminant, ...innerReaders])=>{
|
|
508
|
+
if (discriminant.readField().isZero()) {
|
|
509
|
+
// None still carries zero-filled inner slots on the wire; drain them so the inner readers are fully
|
|
510
|
+
// consumed.
|
|
511
|
+
innerReaders.forEach((reader)=>reader.skip(reader.remainingFields()));
|
|
512
|
+
return Option.none(undefined);
|
|
513
|
+
}
|
|
514
|
+
return Option.some(inner.deserialization.fn(innerReaders));
|
|
515
|
+
},
|
|
516
|
+
slots: inner.deserialization.slots + 1
|
|
517
|
+
} : undefined
|
|
518
|
+
};
|
|
519
|
+
}
|
|
520
|
+
/** A packed uint buffer (e.g. `[u8; N]` in Noir): 1 slot of packed uint values ↔ `Buffer`. */ export function BUFFER(bitSize) {
|
|
521
|
+
return {
|
|
522
|
+
serialization: {
|
|
523
|
+
fn: (buf)=>[
|
|
524
|
+
Array.from(buf).map((b)=>new Fr(b))
|
|
525
|
+
]
|
|
526
|
+
},
|
|
527
|
+
deserialization: {
|
|
528
|
+
fn: ([reader])=>{
|
|
529
|
+
const fields = reader.readFieldArray(reader.remainingFields()).map((f)=>f.toString());
|
|
530
|
+
return fromUintArray(fields, bitSize);
|
|
531
|
+
},
|
|
532
|
+
slots: 1
|
|
533
|
+
}
|
|
534
|
+
};
|
|
535
|
+
}
|
|
536
|
+
export function EPHEMERAL_ARRAY(element) {
|
|
537
|
+
// An EphemeralArray param is a single slot; the per-param assert covers that slot but never sees the
|
|
538
|
+
// per-row readers materialized in readAll(). Assert full consumption per row here.
|
|
539
|
+
const rowElement = element.deserialization ? {
|
|
540
|
+
deserialization: {
|
|
541
|
+
fn: (readers)=>{
|
|
542
|
+
const value = element.deserialization.fn(readers);
|
|
543
|
+
assertReadersConsumed(readers);
|
|
544
|
+
return value;
|
|
545
|
+
},
|
|
546
|
+
slots: element.deserialization.slots
|
|
547
|
+
}
|
|
548
|
+
} : undefined;
|
|
549
|
+
return {
|
|
550
|
+
serialization: element.serialization ? {
|
|
551
|
+
fn: (ea)=>[
|
|
552
|
+
ea.materializeSlot((v)=>element.serialization.fn(v).flat())
|
|
553
|
+
]
|
|
554
|
+
} : undefined,
|
|
555
|
+
deserialization: rowElement ? {
|
|
556
|
+
fn: ([reader])=>EphemeralArray.fromSlot(reader.readField(), rowElement),
|
|
557
|
+
slots: 1
|
|
558
|
+
} : undefined
|
|
559
|
+
};
|
|
560
|
+
}
|
|
@@ -1,13 +1,8 @@
|
|
|
1
|
-
import { Fr } from '@aztec/foundation/fields';
|
|
2
1
|
import { type ACVMWitness, type CircuitSimulator } from '@aztec/simulator/client';
|
|
3
2
|
import { type FunctionArtifact, type FunctionArtifactWithContractName, type FunctionSelector } from '@aztec/stdlib/abi';
|
|
4
3
|
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
5
|
-
import type { ContractInstance } from '@aztec/stdlib/contract';
|
|
6
|
-
import type { AztecNode } from '@aztec/stdlib/interfaces/client';
|
|
7
4
|
import { PrivateCircuitPublicInputs } from '@aztec/stdlib/kernel';
|
|
8
|
-
import {
|
|
9
|
-
import type { UInt64 } from '@aztec/stdlib/types';
|
|
10
|
-
import type { ExecutionDataProvider } from '../execution_data_provider.js';
|
|
5
|
+
import { PrivateCallExecutionResult } from '@aztec/stdlib/tx';
|
|
11
6
|
import type { PrivateExecutionOracle } from './private_execution_oracle.js';
|
|
12
7
|
/**
|
|
13
8
|
* Execute a private function and return the execution result.
|
|
@@ -25,24 +20,4 @@ export declare function executePrivateFunction(simulator: CircuitSimulator, priv
|
|
|
25
20
|
* @returns - The public inputs.
|
|
26
21
|
*/
|
|
27
22
|
export declare function extractPrivateCircuitPublicInputs(artifact: FunctionArtifact, partialWitness: ACVMWitness): PrivateCircuitPublicInputs;
|
|
28
|
-
|
|
29
|
-
* Read the current class id of a contract from the execution data provider or AztecNode. If not found, class id
|
|
30
|
-
* from the instance is used.
|
|
31
|
-
* @param contractAddress - The address of the contract to read the class id for.
|
|
32
|
-
* @param instance - The instance of the contract.
|
|
33
|
-
* @param executionDataProvider - The execution data provider.
|
|
34
|
-
* @param blockNumber - The block number at which to load the DelayedPublicMutable storing the class id.
|
|
35
|
-
* @param timestamp - The timestamp at which to obtain the class id from the DelayedPublicMutable.
|
|
36
|
-
* @returns The current class id.
|
|
37
|
-
*/
|
|
38
|
-
export declare function readCurrentClassId(contractAddress: AztecAddress, instance: ContractInstance, executionDataProvider: ExecutionDataProvider | AztecNode, blockNumber: number, timestamp: UInt64): Promise<Fr>;
|
|
39
|
-
/**
|
|
40
|
-
* Verify that the current class id of a contract obtained from AztecNode is the same as the one in the execution data
|
|
41
|
-
* provider (i.e. PXE).
|
|
42
|
-
* @param contractAddress - The address of the contract to verify class id for.
|
|
43
|
-
* @param executionDataProvider - The execution data provider.
|
|
44
|
-
* @param header - The header of the block at which to verify the current class id. If not provided, the anchor block
|
|
45
|
-
* header of the execution data provider is used.
|
|
46
|
-
*/
|
|
47
|
-
export declare function verifyCurrentClassId(contractAddress: AztecAddress, executionDataProvider: ExecutionDataProvider, header?: BlockHeader): Promise<void>;
|
|
48
|
-
//# sourceMappingURL=private_execution.d.ts.map
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpdmF0ZV9leGVjdXRpb24uZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb250cmFjdF9mdW5jdGlvbl9zaW11bGF0b3Ivb3JhY2xlL3ByaXZhdGVfZXhlY3V0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE9BQU8sRUFDTCxLQUFLLFdBQVcsRUFDaEIsS0FBSyxnQkFBZ0IsRUFLdEIsTUFBTSx5QkFBeUIsQ0FBQztBQUNqQyxPQUFPLEVBQ0wsS0FBSyxnQkFBZ0IsRUFDckIsS0FBSyxnQ0FBZ0MsRUFDckMsS0FBSyxnQkFBZ0IsRUFFdEIsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVsRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUc5RCxPQUFPLEtBQUssRUFBRSxzQkFBc0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRTVFOzs7Ozs7O0dBT0c7QUFDSCx3QkFBc0Isc0JBQXNCLENBQzFDLFNBQVMsRUFBRSxnQkFBZ0IsRUFDM0Isc0JBQXNCLEVBQUUsc0JBQXNCLEVBQzlDLFFBQVEsRUFBRSxnQ0FBZ0MsRUFDMUMsZUFBZSxFQUFFLFlBQVksRUFDN0IsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQ2xDLEdBQUcseUNBQThDLEdBQ2hELE9BQU8sQ0FBQywwQkFBMEIsQ0FBQyxDQTJFckM7QUFFRDs7Ozs7R0FLRztBQUNILHdCQUFnQixpQ0FBaUMsQ0FDL0MsUUFBUSxFQUFFLGdCQUFnQixFQUMxQixjQUFjLEVBQUUsV0FBVyxHQUMxQiwwQkFBMEIsQ0FhNUIifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"private_execution.d.ts","sourceRoot":"","sources":["../../../src/contract_function_simulator/oracle/private_execution.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"private_execution.d.ts","sourceRoot":"","sources":["../../../src/contract_function_simulator/oracle/private_execution.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,gBAAgB,EAKtB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,gCAAgC,EACrC,KAAK,gBAAgB,EAEtB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAElE,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAG9D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAE5E;;;;;;;GAOG;AACH,wBAAsB,sBAAsB,CAC1C,SAAS,EAAE,gBAAgB,EAC3B,sBAAsB,EAAE,sBAAsB,EAC9C,QAAQ,EAAE,gCAAgC,EAC1C,eAAe,EAAE,YAAY,EAC7B,gBAAgB,EAAE,gBAAgB,EAClC,GAAG,yCAA8C,GAChD,OAAO,CAAC,0BAA0B,CAAC,CA2ErC;AAED;;;;;GAKG;AACH,wBAAgB,iCAAiC,CAC/C,QAAQ,EAAE,gBAAgB,EAC1B,cAAc,EAAE,WAAW,GAC1B,0BAA0B,CAa5B"}
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
import { PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH, PRIVATE_CONTEXT_INPUTS_LENGTH } from '@aztec/constants';
|
|
2
|
-
import { Fr } from '@aztec/foundation/
|
|
2
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
3
|
import { createLogger } from '@aztec/foundation/log';
|
|
4
4
|
import { Timer } from '@aztec/foundation/timer';
|
|
5
|
-
import { ProtocolContractAddress } from '@aztec/protocol-contracts';
|
|
6
5
|
import { ExecutionError, extractCallStack, resolveAssertionMessageFromError, witnessMapToFields } from '@aztec/simulator/client';
|
|
7
6
|
import { countArgumentsSize } from '@aztec/stdlib/abi';
|
|
8
|
-
import { DelayedPublicMutableValues, DelayedPublicMutableValuesWithHash } from '@aztec/stdlib/delayed-public-mutable';
|
|
9
7
|
import { PrivateCircuitPublicInputs } from '@aztec/stdlib/kernel';
|
|
10
8
|
import { PrivateCallExecutionResult } from '@aztec/stdlib/tx';
|
|
11
9
|
import { Oracle } from './oracle.js';
|
|
@@ -47,12 +45,11 @@ import { Oracle } from './oracle.js';
|
|
|
47
45
|
appCircuitName: functionName
|
|
48
46
|
});
|
|
49
47
|
const contractClassLogs = privateExecutionOracle.getContractClassLogs();
|
|
50
|
-
const rawReturnValues = await privateExecutionOracle.
|
|
51
|
-
const noteHashLeafIndexMap = privateExecutionOracle.getNoteHashLeafIndexMap();
|
|
48
|
+
const rawReturnValues = await privateExecutionOracle.getHashPreimage(publicInputs.returnsHash);
|
|
52
49
|
const newNotes = privateExecutionOracle.getNewNotes();
|
|
53
50
|
const noteHashNullifierCounterMap = privateExecutionOracle.getNoteHashNullifierCounterMap();
|
|
54
51
|
const offchainEffects = privateExecutionOracle.getOffchainEffects();
|
|
55
|
-
const
|
|
52
|
+
const taggingIndexRanges = privateExecutionOracle.getUsedTaggingIndexRanges();
|
|
56
53
|
const nestedExecutionResults = privateExecutionOracle.getNestedExecutionResults();
|
|
57
54
|
let timerSubtractionList = nestedExecutionResults;
|
|
58
55
|
let witgenTime = duration;
|
|
@@ -62,7 +59,9 @@ import { Oracle } from './oracle.js';
|
|
|
62
59
|
timerSubtractionList = timerSubtractionList.flatMap((nested)=>nested.nestedExecutionResults ?? []);
|
|
63
60
|
}
|
|
64
61
|
log.debug(`Returning from call to ${contractAddress.toString()}:${functionSelector}`);
|
|
65
|
-
return new PrivateCallExecutionResult(artifact.bytecode, Buffer.from(artifact.verificationKey, 'base64'), partialWitness, publicInputs,
|
|
62
|
+
return new PrivateCallExecutionResult(artifact.bytecode, Buffer.from(artifact.verificationKey, 'base64'), partialWitness, publicInputs, newNotes, noteHashNullifierCounterMap, rawReturnValues, offchainEffects.map((e)=>({
|
|
63
|
+
data: e.data
|
|
64
|
+
})), taggingIndexRanges, nestedExecutionResults, contractClassLogs, {
|
|
66
65
|
timings: {
|
|
67
66
|
witgen: witgenTime,
|
|
68
67
|
oracles: acirExecutionResult.oracles
|
|
@@ -88,36 +87,3 @@ import { Oracle } from './oracle.js';
|
|
|
88
87
|
}
|
|
89
88
|
return PrivateCircuitPublicInputs.fromFields(returnData);
|
|
90
89
|
}
|
|
91
|
-
/**
|
|
92
|
-
* Read the current class id of a contract from the execution data provider or AztecNode. If not found, class id
|
|
93
|
-
* from the instance is used.
|
|
94
|
-
* @param contractAddress - The address of the contract to read the class id for.
|
|
95
|
-
* @param instance - The instance of the contract.
|
|
96
|
-
* @param executionDataProvider - The execution data provider.
|
|
97
|
-
* @param blockNumber - The block number at which to load the DelayedPublicMutable storing the class id.
|
|
98
|
-
* @param timestamp - The timestamp at which to obtain the class id from the DelayedPublicMutable.
|
|
99
|
-
* @returns The current class id.
|
|
100
|
-
*/ export async function readCurrentClassId(contractAddress, instance, executionDataProvider, blockNumber, timestamp) {
|
|
101
|
-
const { delayedPublicMutableSlot } = await DelayedPublicMutableValuesWithHash.getContractUpdateSlots(contractAddress);
|
|
102
|
-
const delayedPublicMutableValues = await DelayedPublicMutableValues.readFromTree(delayedPublicMutableSlot, (slot)=>executionDataProvider.getPublicStorageAt(blockNumber, ProtocolContractAddress.ContractInstanceRegistry, slot));
|
|
103
|
-
let currentClassId = delayedPublicMutableValues.svc.getCurrentAt(timestamp)[0];
|
|
104
|
-
if (currentClassId.isZero()) {
|
|
105
|
-
currentClassId = instance.originalContractClassId;
|
|
106
|
-
}
|
|
107
|
-
return currentClassId;
|
|
108
|
-
}
|
|
109
|
-
/**
|
|
110
|
-
* Verify that the current class id of a contract obtained from AztecNode is the same as the one in the execution data
|
|
111
|
-
* provider (i.e. PXE).
|
|
112
|
-
* @param contractAddress - The address of the contract to verify class id for.
|
|
113
|
-
* @param executionDataProvider - The execution data provider.
|
|
114
|
-
* @param header - The header of the block at which to verify the current class id. If not provided, the anchor block
|
|
115
|
-
* header of the execution data provider is used.
|
|
116
|
-
*/ export async function verifyCurrentClassId(contractAddress, executionDataProvider, header) {
|
|
117
|
-
header = header ?? await executionDataProvider.getAnchorBlockHeader();
|
|
118
|
-
const instance = await executionDataProvider.getContractInstance(contractAddress);
|
|
119
|
-
const currentClassId = await readCurrentClassId(contractAddress, instance, executionDataProvider, header.globalVariables.blockNumber, header.globalVariables.timestamp);
|
|
120
|
-
if (!instance.currentContractClassId.equals(currentClassId)) {
|
|
121
|
-
throw new Error(`Contract ${contractAddress} is outdated, current class id is ${currentClassId}, local class id is ${instance.currentContractClassId}`);
|
|
122
|
-
}
|
|
123
|
-
}
|