@aztec/pxe 0.0.1-commit.a072138 → 0.0.1-commit.a5db02d
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 -13
- package/dest/block_synchronizer/block_synchronizer.d.ts.map +1 -1
- package/dest/block_synchronizer/block_synchronizer.js +90 -28
- package/dest/config/index.d.ts +9 -2
- package/dest/config/index.d.ts.map +1 -1
- package/dest/config/index.js +14 -15
- 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/aztec_node_read_cache.d.ts +39 -0
- package/dest/contract_function_simulator/aztec_node_read_cache.d.ts.map +1 -0
- package/dest/contract_function_simulator/aztec_node_read_cache.js +60 -0
- package/dest/contract_function_simulator/contract_function_simulator.d.ts +72 -34
- package/dest/contract_function_simulator/contract_function_simulator.d.ts.map +1 -1
- package/dest/contract_function_simulator/contract_function_simulator.js +265 -95
- 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 +3 -4
- 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 +9 -10
- 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 -63
- 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 +3 -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 -12
- 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 +50 -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 -98
- 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 +107 -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 +139 -0
- package/dest/contract_function_simulator/oracle/oracle_registry.d.ts.map +1 -0
- package/dest/contract_function_simulator/oracle/oracle_registry.js +1016 -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 +82 -96
- package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/private_execution_oracle.js +256 -114
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts +201 -84
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.js +604 -186
- 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 +27 -0
- package/dest/contract_logging.d.ts.map +1 -0
- package/dest/contract_logging.js +38 -0
- package/dest/debug/pxe_debug_utils.d.ts +14 -15
- package/dest/debug/pxe_debug_utils.d.ts.map +1 -1
- package/dest/debug/pxe_debug_utils.js +16 -21
- package/dest/entrypoints/client/bundle/index.d.ts +4 -1
- package/dest/entrypoints/client/bundle/index.d.ts.map +1 -1
- package/dest/entrypoints/client/bundle/index.js +3 -0
- package/dest/entrypoints/client/bundle/utils.d.ts +2 -2
- package/dest/entrypoints/client/bundle/utils.d.ts.map +1 -1
- package/dest/entrypoints/client/bundle/utils.js +35 -8
- package/dest/entrypoints/client/lazy/index.d.ts +4 -1
- package/dest/entrypoints/client/lazy/index.d.ts.map +1 -1
- package/dest/entrypoints/client/lazy/index.js +3 -0
- package/dest/entrypoints/client/lazy/utils.d.ts +2 -2
- package/dest/entrypoints/client/lazy/utils.d.ts.map +1 -1
- package/dest/entrypoints/client/lazy/utils.js +35 -8
- package/dest/entrypoints/client/store.d.ts +14 -0
- package/dest/entrypoints/client/store.d.ts.map +1 -0
- package/dest/entrypoints/client/store.js +28 -0
- 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 +8 -3
- package/dest/entrypoints/server/index.d.ts.map +1 -1
- package/dest/entrypoints/server/index.js +6 -2
- package/dest/entrypoints/server/store.d.ts +18 -0
- package/dest/entrypoints/server/store.d.ts.map +1 -0
- package/dest/entrypoints/server/store.js +28 -0
- 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 +36 -8
- 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 +2 -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 +50 -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 +14 -11
- package/dest/logs/log_service.d.ts.map +1 -1
- package/dest/logs/log_service.js +193 -91
- 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 +28 -6
- package/dest/notes/note_service.d.ts.map +1 -1
- package/dest/notes/note_service.js +84 -59
- 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 -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/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 +1 -1
- package/dest/private_kernel/hints/index.js +1 -1
- package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.d.ts +4 -3
- 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 +135 -70
- 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/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 +164 -82
- package/dest/private_kernel/private_kernel_oracle.d.ts +17 -11
- package/dest/private_kernel/private_kernel_oracle.d.ts.map +1 -1
- package/dest/private_kernel/private_kernel_oracle.js +47 -29
- package/dest/pxe.d.ts +228 -66
- package/dest/pxe.d.ts.map +1 -1
- package/dest/pxe.js +410 -227
- 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 +671 -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 +63 -33
- package/dest/storage/contract_store/contract_store.d.ts.map +1 -1
- package/dest/storage/contract_store/contract_store.js +182 -134
- 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 +44 -35
- package/dest/storage/note_store/note_store.d.ts.map +1 -1
- package/dest/storage/note_store/note_store.js +202 -171
- 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/store_identity.d.ts +35 -0
- package/dest/storage/store_identity.d.ts.map +1 -0
- package/dest/storage/store_identity.js +44 -0
- 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 +45 -28
- package/dest/storage/tagging_store/sender_tagging_store.d.ts.map +1 -1
- package/dest/storage/tagging_store/sender_tagging_store.js +182 -119
- 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 +18 -9
- 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 +45 -32
- 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/recipient_sync/utils/find_highest_indexes.js +2 -2
- 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 -9
- package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts.map +1 -1
- package/dest/tagging/sender_sync/sync_sender_tagging_indexes.js +32 -14
- 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 -7
- 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 +41 -25
- package/package.json +29 -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 +106 -37
- package/src/config/index.ts +16 -9
- 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/aztec_node_read_cache.ts +89 -0
- package/src/contract_function_simulator/contract_function_simulator.ts +466 -159
- 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 +10 -9
- 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 -64
- package/src/contract_function_simulator/noir-structs/note_data.ts +27 -0
- package/src/contract_function_simulator/noir-structs/note_validation_request.ts +6 -11
- 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 +66 -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 -176
- package/src/contract_function_simulator/oracle/legacy_oracle_registry.ts +147 -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 +711 -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 +314 -214
- package/src/contract_function_simulator/oracle/utility_execution_oracle.ts +935 -263
- 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 +52 -0
- package/src/debug/pxe_debug_utils.ts +47 -25
- package/src/entrypoints/client/bundle/index.ts +3 -0
- package/src/entrypoints/client/bundle/utils.ts +41 -9
- package/src/entrypoints/client/lazy/index.ts +3 -0
- package/src/entrypoints/client/lazy/utils.ts +41 -9
- package/src/entrypoints/client/store.ts +38 -0
- package/src/entrypoints/pxe_creation_options.ts +21 -1
- package/src/entrypoints/server/index.ts +8 -2
- package/src/entrypoints/server/store.ts +47 -0
- package/src/entrypoints/server/utils.ts +52 -21
- 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 +13 -0
- package/src/hooks/resolve_custom_request.ts +24 -0
- package/src/hooks/resolve_tagging_secret_strategy.ts +60 -0
- package/src/logs/log_service.ts +231 -156
- package/src/messages/tx_resolver_service.ts +69 -0
- package/src/notes/note_service.ts +121 -86
- package/src/notes_filter.ts +24 -0
- package/src/oracle_version.ts +20 -10
- 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 +1 -1
- package/src/private_kernel/hints/private_kernel_reset_private_inputs_builder.ts +176 -119
- package/src/private_kernel/hints/test_utils.ts +318 -0
- package/src/private_kernel/private_kernel_execution_prover.ts +251 -116
- package/src/private_kernel/private_kernel_oracle.ts +65 -36
- package/src/pxe.ts +702 -298
- 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 +26 -0
- package/src/storage/backwards_compatibility_tests/__snapshots__/SenderTaggingStore.json +30 -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 +803 -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 +240 -169
- 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 +234 -191
- 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/store_identity.ts +72 -0
- package/src/storage/tagging_store/index.ts +1 -1
- package/src/storage/tagging_store/recipient_tagging_store.ts +5 -5
- package/src/storage/tagging_store/sender_tagging_store.ts +235 -141
- package/src/storage/tagging_store/tagging_secret_sources_store.ts +138 -0
- package/src/tagging/constants.ts +19 -9
- package/src/tagging/get_all_logs_by_tags.ts +87 -35
- 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 +4 -4
- package/src/tagging/reconcile_tagging_index_ranges.ts +102 -0
- package/src/tagging/sender_sync/sync_sender_tagging_indexes.ts +52 -17
- 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 +31 -27
- package/dest/contract_function_simulator/oracle/oracle.d.ts +0 -60
- package/dest/contract_function_simulator/oracle/oracle.d.ts.map +0 -1
- package/dest/contract_function_simulator/oracle/oracle.js +0 -356
- 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/index.d.ts +0 -23
- package/dest/contract_sync/index.d.ts.map +0 -1
- package/dest/contract_sync/index.js +0 -54
- 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/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 -15
- 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 -15
- 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 -32
- package/src/contract_function_simulator/oracle/oracle.ts +0 -630
- package/src/contract_function_simulator/proxied_contract_data_source.ts +0 -83
- package/src/contract_sync/index.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 -143
- package/src/tagging/recipient_sync/utils/load_logs_for_range.ts +0 -49
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import type { FUNCTION_TREE_HEIGHT } from '@aztec/constants';
|
|
2
|
-
import
|
|
2
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
3
|
import { toArray } from '@aztec/foundation/iterable';
|
|
4
|
+
import { BufferReader, numToUInt8, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
4
5
|
import type { MembershipWitness } from '@aztec/foundation/trees';
|
|
5
6
|
import type { AztecAsyncKVStore, AztecAsyncMap } from '@aztec/kv-store';
|
|
6
7
|
import {
|
|
7
8
|
type ContractArtifact,
|
|
8
|
-
type FunctionAbi,
|
|
9
|
-
type FunctionArtifact,
|
|
10
9
|
type FunctionArtifactWithContractName,
|
|
11
10
|
FunctionCall,
|
|
12
11
|
type FunctionDebugMetadata,
|
|
@@ -15,18 +14,83 @@ import {
|
|
|
15
14
|
contractArtifactFromBuffer,
|
|
16
15
|
contractArtifactToBuffer,
|
|
17
16
|
encodeArguments,
|
|
17
|
+
findFunctionAbiBySelector,
|
|
18
|
+
findFunctionArtifactBySelector,
|
|
18
19
|
getFunctionDebugMetadata,
|
|
19
20
|
} from '@aztec/stdlib/abi';
|
|
20
21
|
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
21
22
|
import {
|
|
22
|
-
type
|
|
23
|
-
type
|
|
24
|
-
|
|
23
|
+
type ContractClassIdPreimage,
|
|
24
|
+
type ContractClassWithId,
|
|
25
|
+
type ContractInstancePreimageWithAddress,
|
|
26
|
+
SerializableContractInstancePreimage,
|
|
25
27
|
getContractClassFromArtifact,
|
|
26
28
|
} from '@aztec/stdlib/contract';
|
|
27
29
|
|
|
28
30
|
import { PrivateFunctionsTree } from './private_functions_tree.js';
|
|
29
31
|
|
|
32
|
+
const VERSION = 1 as const;
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* All contract class data except the large packedBytecode.
|
|
36
|
+
* The expensive data from the ContractClass is precomputed and stored in this format to avoid redundant hashing.
|
|
37
|
+
* Since we have to store the artifacts anyway, the final ContractClass is reconstructed by combining this data
|
|
38
|
+
* with the packedBytecode obtained from the former. That way we can have quick class lookups without wasted storage.
|
|
39
|
+
*/
|
|
40
|
+
export class SerializableContractClassData {
|
|
41
|
+
public readonly version = VERSION;
|
|
42
|
+
public readonly id: Fr;
|
|
43
|
+
public readonly artifactHash: Fr;
|
|
44
|
+
public readonly privateFunctionsRoot: Fr;
|
|
45
|
+
public readonly publicBytecodeCommitment: Fr;
|
|
46
|
+
public readonly privateFunctions: { selector: FunctionSelector; vkHash: Fr }[];
|
|
47
|
+
|
|
48
|
+
constructor(
|
|
49
|
+
data: ContractClassIdPreimage & {
|
|
50
|
+
id: Fr;
|
|
51
|
+
privateFunctions: { selector: FunctionSelector; vkHash: Fr }[];
|
|
52
|
+
},
|
|
53
|
+
) {
|
|
54
|
+
this.id = data.id;
|
|
55
|
+
this.artifactHash = data.artifactHash;
|
|
56
|
+
this.privateFunctionsRoot = data.privateFunctionsRoot;
|
|
57
|
+
this.publicBytecodeCommitment = data.publicBytecodeCommitment;
|
|
58
|
+
this.privateFunctions = data.privateFunctions;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
toBuffer(): Buffer {
|
|
62
|
+
return serializeToBuffer(
|
|
63
|
+
numToUInt8(this.version),
|
|
64
|
+
this.id,
|
|
65
|
+
this.artifactHash,
|
|
66
|
+
this.privateFunctionsRoot,
|
|
67
|
+
this.publicBytecodeCommitment,
|
|
68
|
+
this.privateFunctions.length,
|
|
69
|
+
...this.privateFunctions.map(fn => serializeToBuffer(fn.selector, fn.vkHash)),
|
|
70
|
+
);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
static fromBuffer(bufferOrReader: Buffer | BufferReader): SerializableContractClassData {
|
|
74
|
+
const reader = BufferReader.asReader(bufferOrReader);
|
|
75
|
+
const version = reader.readUInt8();
|
|
76
|
+
if (version !== VERSION) {
|
|
77
|
+
throw new Error(`Unexpected contract class data version ${version}`);
|
|
78
|
+
}
|
|
79
|
+
return new SerializableContractClassData({
|
|
80
|
+
id: reader.readObject(Fr),
|
|
81
|
+
artifactHash: reader.readObject(Fr),
|
|
82
|
+
privateFunctionsRoot: reader.readObject(Fr),
|
|
83
|
+
publicBytecodeCommitment: reader.readObject(Fr),
|
|
84
|
+
privateFunctions: reader.readVector({
|
|
85
|
+
fromBuffer: (r: BufferReader) => ({
|
|
86
|
+
selector: r.readObject(FunctionSelector),
|
|
87
|
+
vkHash: r.readObject(Fr),
|
|
88
|
+
}),
|
|
89
|
+
}),
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
30
94
|
/**
|
|
31
95
|
* ContractStore serves as a data manager and retriever for Aztec.nr contracts.
|
|
32
96
|
* It provides methods to obtain contract addresses, function ABI, bytecode, and membership witnesses
|
|
@@ -39,76 +103,79 @@ export class ContractStore {
|
|
|
39
103
|
// TODO: Update it to be LRU cache so that it doesn't keep all the data all the time.
|
|
40
104
|
#privateFunctionTrees: Map<string, PrivateFunctionsTree> = new Map();
|
|
41
105
|
|
|
42
|
-
/**
|
|
43
|
-
|
|
106
|
+
/**
|
|
107
|
+
* In-memory cache of deserialized ContractArtifact objects, keyed by class id string.
|
|
108
|
+
* Avoids repeated LMDB reads + JSON.parse + Zod validation on every oracle call.
|
|
109
|
+
* Artifacts are large but immutable after registration — safe to cache for the lifetime of the store.
|
|
110
|
+
*/
|
|
111
|
+
// TODO: Update it to be LRU cache so that it doesn't keep all the data all the time.
|
|
112
|
+
#contractArtifactCache: Map<string, ContractArtifact> = new Map();
|
|
44
113
|
|
|
45
114
|
#store: AztecAsyncKVStore;
|
|
46
115
|
#contractArtifacts: AztecAsyncMap<string, Buffer>;
|
|
116
|
+
#contractClassData: AztecAsyncMap<string, Buffer>;
|
|
47
117
|
#contractInstances: AztecAsyncMap<string, Buffer>;
|
|
48
118
|
|
|
49
119
|
constructor(store: AztecAsyncKVStore) {
|
|
50
120
|
this.#store = store;
|
|
51
121
|
this.#contractArtifacts = store.openMap('contract_artifacts');
|
|
122
|
+
this.#contractClassData = store.openMap('contract_classes');
|
|
52
123
|
this.#contractInstances = store.openMap('contracts_instances');
|
|
53
124
|
}
|
|
54
125
|
|
|
55
126
|
// Setters
|
|
56
127
|
|
|
57
|
-
|
|
58
|
-
|
|
128
|
+
/**
|
|
129
|
+
* Registers a new contract artifact and its corresponding class data.
|
|
130
|
+
*
|
|
131
|
+
* IMPORTANT: This method does not verify that the provided artifact matches the class data or that the class id
|
|
132
|
+
* matches the artifact. It is the caller's responsibility to ensure the consistency and correctness of the provided
|
|
133
|
+
* data. This is done to avoid redundant, expensive contract class computations.
|
|
134
|
+
*/
|
|
135
|
+
public async addContractArtifact(
|
|
136
|
+
contract: ContractArtifact,
|
|
137
|
+
contractClassWithIdAndPreimage?: ContractClassWithId & ContractClassIdPreimage,
|
|
138
|
+
): Promise<Fr> {
|
|
139
|
+
const contractClass = contractClassWithIdAndPreimage ?? (await getContractClassFromArtifact(contract));
|
|
140
|
+
const key = contractClass.id.toString();
|
|
141
|
+
|
|
142
|
+
if (this.#contractArtifactCache.has(key)) {
|
|
143
|
+
return contractClass.id;
|
|
144
|
+
}
|
|
145
|
+
|
|
59
146
|
const privateFunctions = contract.functions.filter(
|
|
60
147
|
functionArtifact => functionArtifact.functionType === FunctionType.PRIVATE,
|
|
61
148
|
);
|
|
62
|
-
|
|
63
149
|
const privateSelectors = await Promise.all(
|
|
64
|
-
privateFunctions.map(async
|
|
65
|
-
(
|
|
66
|
-
await FunctionSelector.fromNameAndParameters(privateFunctionArtifact.name, privateFunctionArtifact.parameters)
|
|
67
|
-
).toString(),
|
|
150
|
+
privateFunctions.map(async fn =>
|
|
151
|
+
(await FunctionSelector.fromNameAndParameters(fn.name, fn.parameters)).toString(),
|
|
68
152
|
),
|
|
69
153
|
);
|
|
70
|
-
|
|
71
154
|
if (privateSelectors.length !== new Set(privateSelectors).size) {
|
|
72
155
|
throw new Error('Repeated function selectors of private functions');
|
|
73
156
|
}
|
|
74
157
|
|
|
75
|
-
|
|
76
|
-
this.#contractArtifacts.set(id.toString(), contractArtifactToBuffer(contract)),
|
|
77
|
-
);
|
|
78
|
-
}
|
|
158
|
+
this.#contractArtifactCache.set(key, contract);
|
|
79
159
|
|
|
80
|
-
|
|
81
|
-
|
|
160
|
+
await this.#store.transactionAsync(async () => {
|
|
161
|
+
await this.#contractArtifacts.set(key, contractArtifactToBuffer(contract));
|
|
162
|
+
await this.#contractClassData.set(key, new SerializableContractClassData(contractClass).toBuffer());
|
|
163
|
+
});
|
|
82
164
|
|
|
83
|
-
|
|
84
|
-
contract.address.toString(),
|
|
85
|
-
new SerializableContractInstance(contract).toBuffer(),
|
|
86
|
-
);
|
|
165
|
+
return contractClass.id;
|
|
87
166
|
}
|
|
88
167
|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
}
|
|
97
|
-
this.#contractClassIdMap.set(contractAddress.toString(), instance.currentContractClassId);
|
|
98
|
-
}
|
|
99
|
-
return this.#contractClassIdMap.get(contractAddress.toString());
|
|
168
|
+
async addContractInstance(contract: ContractInstancePreimageWithAddress): Promise<void> {
|
|
169
|
+
await this.#store.transactionAsync(async () => {
|
|
170
|
+
await this.#contractInstances.set(
|
|
171
|
+
contract.address.toString(),
|
|
172
|
+
new SerializableContractInstancePreimage(contract).toBuffer(),
|
|
173
|
+
);
|
|
174
|
+
});
|
|
100
175
|
}
|
|
101
176
|
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
* If an existing tree with the same class id is found in the cache, it will be returned.
|
|
105
|
-
* Otherwise, a new ContractTree instance will be created using the contract data from the database
|
|
106
|
-
* and added to the cache before returning.
|
|
107
|
-
*
|
|
108
|
-
* @param classId - The class id of the contract for which the ContractTree is required.
|
|
109
|
-
* @returns A ContractTree instance associated with the specified contract address.
|
|
110
|
-
* @throws An Error if the contract is not found in the ContractDatabase.
|
|
111
|
-
*/
|
|
177
|
+
// Private getters
|
|
178
|
+
|
|
112
179
|
async #getPrivateFunctionTreeForClassId(classId: Fr): Promise<PrivateFunctionsTree | undefined> {
|
|
113
180
|
if (!this.#privateFunctionTrees.has(classId.toString())) {
|
|
114
181
|
const artifact = await this.getContractArtifact(classId);
|
|
@@ -121,136 +188,136 @@ export class ContractStore {
|
|
|
121
188
|
return this.#privateFunctionTrees.get(classId.toString())!;
|
|
122
189
|
}
|
|
123
190
|
|
|
124
|
-
async #getContractArtifactByAddress(contractAddress: AztecAddress): Promise<ContractArtifact | undefined> {
|
|
125
|
-
const contractClassId = await this.#getContractClassId(contractAddress);
|
|
126
|
-
return contractClassId && this.getContractArtifact(contractClassId);
|
|
127
|
-
}
|
|
128
|
-
|
|
129
191
|
// Public getters
|
|
130
192
|
|
|
131
193
|
getContractsAddresses(): Promise<AztecAddress[]> {
|
|
132
194
|
return this.#store.transactionAsync(async () => {
|
|
133
195
|
const keys = await toArray(this.#contractInstances.keysAsync());
|
|
134
|
-
return keys.map(AztecAddress.
|
|
196
|
+
return keys.map(AztecAddress.fromStringUnsafe);
|
|
135
197
|
});
|
|
136
198
|
}
|
|
137
199
|
|
|
138
|
-
/** Returns
|
|
139
|
-
public getContractInstance(contractAddress: AztecAddress): Promise<
|
|
200
|
+
/** Returns the address preimage of a given address. */
|
|
201
|
+
public getContractInstance(contractAddress: AztecAddress): Promise<ContractInstancePreimageWithAddress | undefined> {
|
|
140
202
|
return this.#store.transactionAsync(async () => {
|
|
141
203
|
const contract = await this.#contractInstances.getAsync(contractAddress.toString());
|
|
142
|
-
return contract &&
|
|
204
|
+
return contract && SerializableContractInstancePreimage.fromBuffer(contract).withAddress(contractAddress);
|
|
143
205
|
});
|
|
144
206
|
}
|
|
145
207
|
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
208
|
+
/** Returns the raw contract artifact for a given class id. */
|
|
209
|
+
public async getContractArtifact(contractClassId: Fr): Promise<ContractArtifact | undefined> {
|
|
210
|
+
const key = contractClassId.toString();
|
|
211
|
+
const cached = this.#contractArtifactCache.get(key);
|
|
212
|
+
if (cached) {
|
|
213
|
+
return cached;
|
|
214
|
+
}
|
|
215
|
+
const artifact = await this.#store.transactionAsync(async () => {
|
|
216
|
+
const buf = await this.#contractArtifacts.getAsync(key);
|
|
217
|
+
return buf && contractArtifactFromBuffer(buf);
|
|
151
218
|
});
|
|
219
|
+
if (artifact) {
|
|
220
|
+
this.#contractArtifactCache.set(key, artifact);
|
|
221
|
+
}
|
|
222
|
+
return artifact;
|
|
152
223
|
}
|
|
153
224
|
|
|
154
|
-
/** Returns a contract class for a given class id.
|
|
155
|
-
public async
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
): Promise<(ContractInstanceWithAddress & ContractArtifact) | undefined> {
|
|
163
|
-
const instance = await this.getContractInstance(address);
|
|
164
|
-
if (!instance) {
|
|
165
|
-
return;
|
|
225
|
+
/** Returns a contract class for a given class id. */
|
|
226
|
+
public async getContractClassWithPreimage(
|
|
227
|
+
contractClassId: Fr,
|
|
228
|
+
): Promise<(ContractClassWithId & ContractClassIdPreimage) | undefined> {
|
|
229
|
+
const key = contractClassId.toString();
|
|
230
|
+
const buf = await this.#store.transactionAsync(() => this.#contractClassData.getAsync(key));
|
|
231
|
+
if (!buf) {
|
|
232
|
+
return undefined;
|
|
166
233
|
}
|
|
167
|
-
const
|
|
234
|
+
const classData = SerializableContractClassData.fromBuffer(buf);
|
|
235
|
+
const artifact = await this.getContractArtifact(contractClassId);
|
|
168
236
|
if (!artifact) {
|
|
169
|
-
return;
|
|
237
|
+
return undefined;
|
|
170
238
|
}
|
|
171
|
-
|
|
239
|
+
const packedBytecode = artifact.functions.find(f => f.name === 'public_dispatch')?.bytecode ?? Buffer.alloc(0);
|
|
240
|
+
return { ...classData, packedBytecode };
|
|
172
241
|
}
|
|
173
242
|
|
|
174
243
|
/**
|
|
175
|
-
* Retrieves the artifact of a specified function within a given contract.
|
|
176
|
-
* The function is identified by its selector, which is a unique code generated from the function's signature.
|
|
177
|
-
* Throws an error if the contract address or function selector are invalid or not found.
|
|
244
|
+
* Retrieves the artifact of a specified function within a given contract class.
|
|
178
245
|
*
|
|
179
|
-
* @param
|
|
246
|
+
* @param contractClassId - The id of the contract class containing the function.
|
|
180
247
|
* @param selector - The function selector.
|
|
181
|
-
* @returns The corresponding function's artifact as an object.
|
|
248
|
+
* @returns The corresponding function's artifact as an object, or `undefined` if the class is not registered.
|
|
182
249
|
*/
|
|
183
250
|
public async getFunctionArtifact(
|
|
184
|
-
|
|
251
|
+
contractClassId: Fr,
|
|
185
252
|
selector: FunctionSelector,
|
|
186
253
|
): Promise<FunctionArtifactWithContractName | undefined> {
|
|
187
|
-
const artifact = await this
|
|
188
|
-
|
|
189
|
-
|
|
254
|
+
const artifact = await this.getContractArtifact(contractClassId);
|
|
255
|
+
if (!artifact) {
|
|
256
|
+
return undefined;
|
|
257
|
+
}
|
|
258
|
+
const fn = assertSelectorInArtifact(artifact, await findFunctionArtifactBySelector(artifact, selector), {
|
|
259
|
+
contractClassId,
|
|
260
|
+
selector,
|
|
261
|
+
});
|
|
262
|
+
return { ...fn, contractName: artifact.name };
|
|
190
263
|
}
|
|
191
264
|
|
|
265
|
+
/**
|
|
266
|
+
* Same as {@link getFunctionArtifact} but with debug metadata attached. Returns `undefined` when the class artifact
|
|
267
|
+
* is not registered.
|
|
268
|
+
*/
|
|
192
269
|
public async getFunctionArtifactWithDebugMetadata(
|
|
193
|
-
|
|
270
|
+
contractClassId: Fr,
|
|
194
271
|
selector: FunctionSelector,
|
|
195
|
-
): Promise<FunctionArtifactWithContractName> {
|
|
196
|
-
const artifact = await this.
|
|
272
|
+
): Promise<FunctionArtifactWithContractName | undefined> {
|
|
273
|
+
const artifact = await this.getContractArtifact(contractClassId);
|
|
197
274
|
if (!artifact) {
|
|
198
|
-
|
|
275
|
+
return undefined;
|
|
199
276
|
}
|
|
200
|
-
const
|
|
277
|
+
const fn = assertSelectorInArtifact(artifact, await findFunctionArtifactBySelector(artifact, selector), {
|
|
278
|
+
contractClassId,
|
|
279
|
+
selector,
|
|
280
|
+
});
|
|
201
281
|
return {
|
|
202
|
-
...
|
|
203
|
-
|
|
282
|
+
...fn,
|
|
283
|
+
contractName: artifact.name,
|
|
284
|
+
debug: getFunctionDebugMetadata(artifact, fn),
|
|
204
285
|
};
|
|
205
286
|
}
|
|
206
287
|
|
|
207
|
-
public async getPublicFunctionArtifact(
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
const fnArtifact = artifact && artifact.functions.find(fn => fn.functionType === FunctionType.PUBLIC);
|
|
212
|
-
return fnArtifact && { ...fnArtifact, contractName: artifact.name };
|
|
213
|
-
}
|
|
214
|
-
|
|
215
|
-
public async getFunctionAbi(
|
|
216
|
-
contractAddress: AztecAddress,
|
|
217
|
-
selector: FunctionSelector,
|
|
218
|
-
): Promise<FunctionAbi | undefined> {
|
|
219
|
-
const artifact = await this.#getContractArtifactByAddress(contractAddress);
|
|
220
|
-
return artifact && (await this.#findFunctionAbiBySelector(artifact, selector));
|
|
288
|
+
public async getPublicFunctionArtifact(contractClassId: Fr): Promise<FunctionArtifactWithContractName | undefined> {
|
|
289
|
+
const artifact = await this.getContractArtifact(contractClassId);
|
|
290
|
+
const fn = artifact && artifact.functions.find(f => f.functionType === FunctionType.PUBLIC);
|
|
291
|
+
return fn && { ...fn, contractName: artifact.name };
|
|
221
292
|
}
|
|
222
293
|
|
|
223
294
|
/**
|
|
224
|
-
* Retrieves the debug metadata of a specified function within a given contract.
|
|
225
|
-
* The function is identified by its selector, which is a unique code generated from the function's signature.
|
|
226
|
-
* Returns undefined if the debug metadata for the given function is not found.
|
|
227
|
-
* Throws if the contract has not been added to the database.
|
|
295
|
+
* Retrieves the debug metadata of a specified function within a given contract class.
|
|
228
296
|
*
|
|
229
|
-
* @param
|
|
297
|
+
* @param contractClassId - The id of the contract class containing the function.
|
|
230
298
|
* @param selector - The function selector.
|
|
231
|
-
* @returns The corresponding function's
|
|
299
|
+
* @returns The corresponding function's debug metadata, or undefined.
|
|
232
300
|
*/
|
|
233
301
|
public async getFunctionDebugMetadata(
|
|
234
|
-
|
|
302
|
+
contractClassId: Fr,
|
|
235
303
|
selector: FunctionSelector,
|
|
236
304
|
): Promise<FunctionDebugMetadata | undefined> {
|
|
237
|
-
const artifact = await this
|
|
238
|
-
|
|
239
|
-
|
|
305
|
+
const artifact = await this.getContractArtifact(contractClassId);
|
|
306
|
+
if (!artifact) {
|
|
307
|
+
return undefined;
|
|
308
|
+
}
|
|
309
|
+
const fn = await findFunctionArtifactBySelector(artifact, selector);
|
|
310
|
+
return fn && getFunctionDebugMetadata(artifact, fn);
|
|
240
311
|
}
|
|
241
312
|
|
|
242
|
-
public async getPublicFunctionDebugMetadata(
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
const fnArtifact = artifact && artifact.functions.find(fn => fn.functionType === FunctionType.PUBLIC);
|
|
247
|
-
return fnArtifact && getFunctionDebugMetadata(artifact, fnArtifact);
|
|
313
|
+
public async getPublicFunctionDebugMetadata(contractClassId: Fr): Promise<FunctionDebugMetadata | undefined> {
|
|
314
|
+
const artifact = await this.getContractArtifact(contractClassId);
|
|
315
|
+
const fn = artifact && artifact.functions.find(f => f.functionType === FunctionType.PUBLIC);
|
|
316
|
+
return fn && getFunctionDebugMetadata(artifact, fn);
|
|
248
317
|
}
|
|
249
318
|
|
|
250
319
|
/**
|
|
251
320
|
* Retrieve the function membership witness for the given contract class and function selector.
|
|
252
|
-
* The function membership witness represents a proof that the function belongs to the specified contract.
|
|
253
|
-
* Throws an error if the contract address or function selector is unknown.
|
|
254
321
|
*
|
|
255
322
|
* @param contractClassId - The id of the class.
|
|
256
323
|
* @param selector - The function selector.
|
|
@@ -264,67 +331,71 @@ export class ContractStore {
|
|
|
264
331
|
return tree?.getFunctionMembershipWitness(selector);
|
|
265
332
|
}
|
|
266
333
|
|
|
267
|
-
public async getDebugContractName(
|
|
268
|
-
const artifact = await this
|
|
334
|
+
public async getDebugContractName(contractClassId: Fr) {
|
|
335
|
+
const artifact = await this.getContractArtifact(contractClassId);
|
|
269
336
|
return artifact?.name;
|
|
270
337
|
}
|
|
271
338
|
|
|
272
|
-
public async getDebugFunctionName(
|
|
273
|
-
const artifact = await this
|
|
274
|
-
const
|
|
275
|
-
return `${artifact?.name ??
|
|
276
|
-
}
|
|
277
|
-
|
|
278
|
-
async #findFunctionArtifactBySelector(
|
|
279
|
-
artifact: ContractArtifact,
|
|
280
|
-
selector: FunctionSelector,
|
|
281
|
-
): Promise<FunctionArtifact | undefined> {
|
|
282
|
-
const functions = artifact.functions;
|
|
283
|
-
for (let i = 0; i < functions.length; i++) {
|
|
284
|
-
const fn = functions[i];
|
|
285
|
-
const fnSelector = await FunctionSelector.fromNameAndParameters(fn.name, fn.parameters);
|
|
286
|
-
if (fnSelector.equals(selector)) {
|
|
287
|
-
return fn;
|
|
288
|
-
}
|
|
289
|
-
}
|
|
290
|
-
}
|
|
291
|
-
|
|
292
|
-
async #findFunctionAbiBySelector(
|
|
293
|
-
artifact: ContractArtifact,
|
|
294
|
-
selector: FunctionSelector,
|
|
295
|
-
): Promise<FunctionAbi | undefined> {
|
|
296
|
-
const functions = [...artifact.functions, ...(artifact.nonDispatchPublicFunctions ?? [])];
|
|
297
|
-
for (let i = 0; i < functions.length; i++) {
|
|
298
|
-
const fn = functions[i];
|
|
299
|
-
const fnSelector = await FunctionSelector.fromNameAndParameters(fn.name, fn.parameters);
|
|
300
|
-
if (fnSelector.equals(selector)) {
|
|
301
|
-
return fn;
|
|
302
|
-
}
|
|
303
|
-
}
|
|
339
|
+
public async getDebugFunctionName(contractClassId: Fr, selector: FunctionSelector) {
|
|
340
|
+
const artifact = await this.getContractArtifact(contractClassId);
|
|
341
|
+
const fn = artifact && (await findFunctionAbiBySelector(artifact, selector));
|
|
342
|
+
return `${artifact?.name ?? contractClassId}:${fn?.name ?? selector}`;
|
|
304
343
|
}
|
|
305
344
|
|
|
306
|
-
public async getFunctionCall(
|
|
307
|
-
|
|
308
|
-
|
|
345
|
+
public async getFunctionCall(
|
|
346
|
+
functionName: string,
|
|
347
|
+
args: any[],
|
|
348
|
+
to: AztecAddress,
|
|
349
|
+
contractClassId: Fr,
|
|
350
|
+
): Promise<FunctionCall> {
|
|
351
|
+
const artifact = await this.getContractArtifact(contractClassId);
|
|
352
|
+
if (!artifact) {
|
|
309
353
|
throw new Error(
|
|
310
|
-
`
|
|
354
|
+
`No artifact registered for contract class ${contractClassId} (contract ${to}): register it by calling ` +
|
|
355
|
+
`wallet.registerContract(...).\nSee docs for context: https://docs.aztec.network/errors/14`,
|
|
311
356
|
);
|
|
312
357
|
}
|
|
313
358
|
|
|
314
|
-
const functionDao =
|
|
359
|
+
const functionDao = artifact.functions.find(f => f.name === functionName);
|
|
315
360
|
if (!functionDao) {
|
|
316
|
-
throw new Error(`Unknown function ${functionName} in contract ${
|
|
361
|
+
throw new Error(`Unknown function ${functionName} in contract ${artifact.name}.`);
|
|
317
362
|
}
|
|
318
363
|
|
|
319
|
-
|
|
364
|
+
const selector = await FunctionSelector.fromNameAndParameters(functionDao.name, functionDao.parameters);
|
|
365
|
+
|
|
366
|
+
return FunctionCall.from({
|
|
320
367
|
name: functionDao.name,
|
|
321
|
-
args: encodeArguments(functionDao, args),
|
|
322
|
-
selector: await FunctionSelector.fromNameAndParameters(functionDao.name, functionDao.parameters),
|
|
323
|
-
type: functionDao.functionType,
|
|
324
368
|
to,
|
|
369
|
+
selector,
|
|
370
|
+
type: functionDao.functionType,
|
|
325
371
|
hideMsgSender: false,
|
|
326
372
|
isStatic: functionDao.isStatic,
|
|
373
|
+
args: encodeArguments(functionDao, args),
|
|
327
374
|
returnTypes: functionDao.returnTypes,
|
|
328
|
-
};
|
|
375
|
+
});
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
|
|
379
|
+
/**
|
|
380
|
+
* Narrows the result of a selector lookup against a registered artifact. A missing class artifact is reported as
|
|
381
|
+
* `undefined` by the callers (an absence they can handle), but a selector that is absent from an artifact we *do* have
|
|
382
|
+
* is exceptional and throws rather than returning undefined. We cannot tell from here why the selector is missing: it
|
|
383
|
+
* may be that no such function exists in the contract (a wrong selector), or that the registered artifact does not
|
|
384
|
+
* correspond to the resolved class id (registration performs no validation, so a mismatched artifact is possible). The
|
|
385
|
+
* error names both possibilities.
|
|
386
|
+
*/
|
|
387
|
+
function assertSelectorInArtifact<T>(
|
|
388
|
+
artifact: ContractArtifact,
|
|
389
|
+
fn: T | undefined,
|
|
390
|
+
context: { contractClassId: Fr; selector: FunctionSelector },
|
|
391
|
+
): T {
|
|
392
|
+
if (!fn) {
|
|
393
|
+
throw new Error(
|
|
394
|
+
`Function with selector ${context.selector} not found in the registered artifact for contract class ` +
|
|
395
|
+
`${context.contractClassId} (${artifact.name}). Either no function with this selector exists in the ` +
|
|
396
|
+
`contract, or the registered artifact does not match the class id (re-register it via ` +
|
|
397
|
+
`wallet.registerContract(...)).`,
|
|
398
|
+
);
|
|
329
399
|
}
|
|
400
|
+
return fn;
|
|
330
401
|
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import type { Fr } from '@aztec/foundation/curves/bn254';
|
|
2
|
+
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
3
|
+
|
|
4
|
+
import { assertAllowedScope } from '../allowed_scopes.js';
|
|
5
|
+
import type { FactStore } from './fact_store.js';
|
|
6
|
+
import type { FactCollectionKey, FactCollectionTypeKey, OriginBlock } from './fact_store_keys.js';
|
|
7
|
+
import {
|
|
8
|
+
type FactCollectionWithOriginState,
|
|
9
|
+
type FactWithOriginState,
|
|
10
|
+
type TipBlockNumbers,
|
|
11
|
+
toFactWithOriginState,
|
|
12
|
+
} from './origin_state.js';
|
|
13
|
+
import type { Fact } from './stored_fact.js';
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Wraps a {@link FactStore} with scope-based access control.
|
|
17
|
+
*
|
|
18
|
+
* Each method asserts scope validity before delegating to FactStore, gating which accounts a contract may record facts
|
|
19
|
+
* under or read facts from.
|
|
20
|
+
*/
|
|
21
|
+
export class FactService {
|
|
22
|
+
constructor(
|
|
23
|
+
private readonly factStore: FactStore,
|
|
24
|
+
private readonly allowedScopes: AztecAddress[],
|
|
25
|
+
) {}
|
|
26
|
+
|
|
27
|
+
recordFact(
|
|
28
|
+
factCollectionKey: FactCollectionKey,
|
|
29
|
+
factTypeId: Fr,
|
|
30
|
+
payload: Fr[],
|
|
31
|
+
originBlock: OriginBlock | undefined,
|
|
32
|
+
jobId: string,
|
|
33
|
+
): Promise<void> {
|
|
34
|
+
assertAllowedScope(factCollectionKey.scope, this.allowedScopes);
|
|
35
|
+
return this.factStore.recordFact(factCollectionKey, factTypeId, payload, originBlock, jobId);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
deleteFactCollection(factCollectionKey: FactCollectionKey, jobId: string): Promise<void> {
|
|
39
|
+
assertAllowedScope(factCollectionKey.scope, this.allowedScopes);
|
|
40
|
+
return this.factStore.deleteFactCollection(factCollectionKey, jobId);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
async getFactCollection(
|
|
44
|
+
factCollectionKey: FactCollectionKey,
|
|
45
|
+
tips: TipBlockNumbers,
|
|
46
|
+
jobId: string,
|
|
47
|
+
): Promise<FactCollectionWithOriginState | undefined> {
|
|
48
|
+
assertAllowedScope(factCollectionKey.scope, this.allowedScopes);
|
|
49
|
+
const collection = await this.factStore.getFactCollection(factCollectionKey, jobId);
|
|
50
|
+
if (!collection) {
|
|
51
|
+
return undefined;
|
|
52
|
+
}
|
|
53
|
+
return { key: collection.key, facts: this.#annotate(collection.facts, tips) };
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
async getFactCollectionsByType(
|
|
57
|
+
factCollectionTypeKey: FactCollectionTypeKey,
|
|
58
|
+
tips: TipBlockNumbers,
|
|
59
|
+
jobId: string,
|
|
60
|
+
): Promise<FactCollectionWithOriginState[]> {
|
|
61
|
+
assertAllowedScope(factCollectionTypeKey.scope, this.allowedScopes);
|
|
62
|
+
const collections = await this.factStore.getFactCollectionsByType(factCollectionTypeKey, jobId);
|
|
63
|
+
return collections.map(collection => ({ key: collection.key, facts: this.#annotate(collection.facts, tips) }));
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
#annotate(facts: Fact[], tips: TipBlockNumbers): FactWithOriginState[] {
|
|
67
|
+
return facts.map(fact => toFactWithOriginState(fact, tips));
|
|
68
|
+
}
|
|
69
|
+
}
|