@aztec/pxe 0.0.1-commit.9ef841308 → 0.0.1-commit.a4600f49
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dest/bin/check_oracle_version.js +45 -111
- package/dest/bin/index.d.ts +2 -0
- package/dest/bin/index.d.ts.map +1 -0
- package/dest/bin/index.js +1 -0
- package/dest/bin/oracle_version_helpers.d.ts +51 -0
- package/dest/bin/oracle_version_helpers.d.ts.map +1 -0
- package/dest/bin/oracle_version_helpers.js +254 -0
- package/dest/block_synchronizer/block_stream_source.d.ts +10 -0
- package/dest/block_synchronizer/block_stream_source.d.ts.map +1 -0
- package/dest/block_synchronizer/block_stream_source.js +37 -0
- package/dest/block_synchronizer/block_synchronizer.d.ts +23 -15
- package/dest/block_synchronizer/block_synchronizer.d.ts.map +1 -1
- package/dest/block_synchronizer/block_synchronizer.js +78 -28
- package/dest/config/index.d.ts +8 -1
- package/dest/config/index.d.ts.map +1 -1
- package/dest/config/index.js +13 -14
- package/dest/config/package_info.js +1 -1
- package/dest/contract/contract_class_service.d.ts +31 -0
- package/dest/contract/contract_class_service.d.ts.map +1 -0
- package/dest/contract/contract_class_service.js +68 -0
- package/dest/contract/contract_sync_service.d.ts +48 -0
- package/dest/contract/contract_sync_service.d.ts.map +1 -0
- package/dest/contract/contract_sync_service.js +116 -0
- package/dest/contract/helpers.d.ts +7 -0
- package/dest/contract/helpers.d.ts.map +1 -0
- package/dest/contract/helpers.js +20 -0
- package/dest/contract_function_simulator/anchored_contract_data.d.ts +36 -0
- package/dest/contract_function_simulator/anchored_contract_data.d.ts.map +1 -0
- package/dest/contract_function_simulator/anchored_contract_data.js +54 -0
- package/dest/contract_function_simulator/contract_function_simulator.d.ts +27 -21
- package/dest/contract_function_simulator/contract_function_simulator.d.ts.map +1 -1
- package/dest/contract_function_simulator/contract_function_simulator.js +82 -39
- 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 +5 -9
- package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts.map +1 -1
- package/dest/contract_function_simulator/execution_tagging_index_cache.js +3 -7
- package/dest/contract_function_simulator/index.d.ts +26 -6
- package/dest/contract_function_simulator/index.d.ts.map +1 -1
- package/dest/contract_function_simulator/index.js +12 -4
- 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 +4 -3
- package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts.map +1 -1
- package/dest/contract_function_simulator/noir-structs/event_validation_request.js +5 -4
- package/dest/contract_function_simulator/noir-structs/fact.d.ts +16 -0
- package/dest/contract_function_simulator/noir-structs/fact.d.ts.map +1 -0
- package/dest/contract_function_simulator/noir-structs/fact.js +6 -0
- package/dest/contract_function_simulator/noir-structs/fact_collection.d.ts +27 -0
- package/dest/contract_function_simulator/noir-structs/fact_collection.d.ts.map +1 -0
- package/dest/contract_function_simulator/noir-structs/fact_collection.js +31 -0
- package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts +19 -10
- package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts.map +1 -1
- package/dest/contract_function_simulator/noir-structs/log_retrieval_request.js +12 -24
- package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts +11 -9
- package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts.map +1 -1
- package/dest/contract_function_simulator/noir-structs/log_retrieval_response.js +2 -61
- package/dest/contract_function_simulator/noir-structs/note_data.d.ts +27 -0
- package/dest/contract_function_simulator/noir-structs/note_data.d.ts.map +1 -0
- package/dest/contract_function_simulator/noir-structs/note_data.js +3 -0
- package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts +4 -3
- package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts.map +1 -1
- package/dest/contract_function_simulator/noir-structs/note_validation_request.js +6 -5
- package/dest/contract_function_simulator/noir-structs/option.d.ts +59 -0
- package/dest/contract_function_simulator/noir-structs/option.d.ts.map +1 -0
- package/dest/contract_function_simulator/noir-structs/option.js +67 -0
- package/dest/contract_function_simulator/noir-structs/origin_block.d.ts +11 -0
- package/dest/contract_function_simulator/noir-structs/origin_block.d.ts.map +1 -0
- package/dest/contract_function_simulator/noir-structs/origin_block.js +5 -0
- package/dest/contract_function_simulator/noir-structs/pending_tagged_log.d.ts +11 -0
- package/dest/contract_function_simulator/noir-structs/pending_tagged_log.d.ts.map +1 -0
- package/dest/contract_function_simulator/noir-structs/pending_tagged_log.js +4 -0
- package/dest/contract_function_simulator/noir-structs/provided_secret.d.ts +8 -0
- package/dest/contract_function_simulator/noir-structs/provided_secret.d.ts.map +1 -0
- package/dest/contract_function_simulator/noir-structs/provided_secret.js +1 -0
- package/dest/contract_function_simulator/noir-structs/resolved_tagging_strategy.d.ts +28 -0
- package/dest/contract_function_simulator/noir-structs/resolved_tagging_strategy.d.ts.map +1 -0
- package/dest/contract_function_simulator/noir-structs/resolved_tagging_strategy.js +43 -0
- package/dest/contract_function_simulator/noir-structs/resolved_tx.d.ts +21 -0
- package/dest/contract_function_simulator/noir-structs/resolved_tx.d.ts.map +1 -0
- package/dest/contract_function_simulator/noir-structs/resolved_tx.js +50 -0
- package/dest/contract_function_simulator/noir-structs/tx_effect_data.d.ts +14 -0
- package/dest/contract_function_simulator/noir-structs/tx_effect_data.d.ts.map +1 -0
- package/dest/contract_function_simulator/noir-structs/tx_effect_data.js +5 -0
- package/dest/contract_function_simulator/noir-structs/utility_context.d.ts +6 -11
- package/dest/contract_function_simulator/noir-structs/utility_context.d.ts.map +1 -1
- package/dest/contract_function_simulator/noir-structs/utility_context.js +1 -20
- package/dest/contract_function_simulator/oracle/acir_callback.d.ts +21 -0
- package/dest/contract_function_simulator/oracle/acir_callback.d.ts.map +1 -0
- package/dest/contract_function_simulator/oracle/acir_callback.js +115 -0
- package/dest/contract_function_simulator/oracle/index.d.ts +2 -13
- package/dest/contract_function_simulator/oracle/index.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/index.js +1 -1
- package/dest/contract_function_simulator/oracle/interfaces.d.ts +15 -103
- package/dest/contract_function_simulator/oracle/interfaces.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/interfaces.js +2 -2
- package/dest/contract_function_simulator/oracle/legacy_oracle_registry.d.ts +39 -0
- package/dest/contract_function_simulator/oracle/legacy_oracle_registry.d.ts.map +1 -0
- package/dest/contract_function_simulator/oracle/legacy_oracle_registry.js +74 -0
- package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts +3 -14
- package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.js +1 -24
- package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts +2 -2
- package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/note_packing_utils.js +2 -2
- package/dest/contract_function_simulator/oracle/oracle_registry.d.ts +136 -0
- package/dest/contract_function_simulator/oracle/oracle_registry.d.ts.map +1 -0
- package/dest/contract_function_simulator/oracle/oracle_registry.js +989 -0
- package/dest/contract_function_simulator/oracle/oracle_type_mappings.d.ts +222 -0
- package/dest/contract_function_simulator/oracle/oracle_type_mappings.d.ts.map +1 -0
- package/dest/contract_function_simulator/oracle/oracle_type_mappings.js +1243 -0
- package/dest/contract_function_simulator/oracle/private_execution.d.ts +1 -1
- package/dest/contract_function_simulator/oracle/private_execution.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/private_execution.js +2 -3
- package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts +47 -37
- package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/private_execution_oracle.js +186 -55
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts +136 -65
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.js +448 -170
- 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/debug/pxe_debug_utils.d.ts +4 -9
- package/dest/debug/pxe_debug_utils.d.ts.map +1 -1
- package/dest/debug/pxe_debug_utils.js +0 -6
- package/dest/entrypoints/client/bundle/index.d.ts +1 -2
- package/dest/entrypoints/client/bundle/index.d.ts.map +1 -1
- package/dest/entrypoints/client/bundle/index.js +0 -1
- package/dest/entrypoints/client/bundle/utils.d.ts +2 -2
- package/dest/entrypoints/client/bundle/utils.d.ts.map +1 -1
- package/dest/entrypoints/client/bundle/utils.js +20 -7
- package/dest/entrypoints/client/lazy/index.d.ts +1 -2
- package/dest/entrypoints/client/lazy/index.d.ts.map +1 -1
- package/dest/entrypoints/client/lazy/index.js +0 -1
- package/dest/entrypoints/client/lazy/utils.d.ts +2 -2
- package/dest/entrypoints/client/lazy/utils.d.ts.map +1 -1
- package/dest/entrypoints/client/lazy/utils.js +20 -7
- package/dest/entrypoints/pxe_creation_options.d.ts +16 -2
- package/dest/entrypoints/pxe_creation_options.d.ts.map +1 -1
- package/dest/entrypoints/pxe_creation_options.js +3 -1
- package/dest/entrypoints/server/index.d.ts +6 -4
- package/dest/entrypoints/server/index.d.ts.map +1 -1
- package/dest/entrypoints/server/index.js +4 -3
- package/dest/entrypoints/server/utils.d.ts +4 -3
- package/dest/entrypoints/server/utils.d.ts.map +1 -1
- package/dest/entrypoints/server/utils.js +20 -6
- package/dest/error_enriching.d.ts +5 -3
- package/dest/error_enriching.d.ts.map +1 -1
- package/dest/error_enriching.js +13 -11
- package/dest/events/event_service.d.ts +13 -5
- package/dest/events/event_service.d.ts.map +1 -1
- package/dest/events/event_service.js +30 -9
- package/dest/events/private_event_filter_validator.d.ts +3 -2
- package/dest/events/private_event_filter_validator.d.ts.map +1 -1
- package/dest/events/private_event_filter_validator.js +15 -0
- package/dest/hooks/authorize_utility_call.d.ts +41 -0
- package/dest/hooks/authorize_utility_call.d.ts.map +1 -0
- package/dest/hooks/authorize_utility_call.js +4 -0
- package/dest/hooks/execution_hooks.d.ts +62 -0
- package/dest/hooks/execution_hooks.d.ts.map +1 -0
- package/dest/hooks/execution_hooks.js +9 -0
- package/dest/hooks/index.d.ts +5 -0
- package/dest/hooks/index.d.ts.map +1 -0
- package/dest/hooks/index.js +1 -0
- package/dest/hooks/resolve_custom_request.d.ts +23 -0
- package/dest/hooks/resolve_custom_request.d.ts.map +1 -0
- package/dest/hooks/resolve_custom_request.js +3 -0
- package/dest/hooks/resolve_tagging_secret_strategy.d.ts +48 -0
- package/dest/hooks/resolve_tagging_secret_strategy.d.ts.map +1 -0
- package/dest/hooks/resolve_tagging_secret_strategy.js +3 -0
- package/dest/logs/log_service.d.ts +13 -11
- package/dest/logs/log_service.d.ts.map +1 -1
- package/dest/logs/log_service.js +181 -72
- package/dest/messages/tx_resolver_service.d.ts +17 -0
- package/dest/messages/tx_resolver_service.d.ts.map +1 -0
- package/dest/messages/tx_resolver_service.js +55 -0
- package/dest/notes/note_service.d.ts +27 -6
- package/dest/notes/note_service.d.ts.map +1 -1
- package/dest/notes/note_service.js +80 -65
- package/dest/notes_filter.d.ts +2 -3
- package/dest/notes_filter.d.ts.map +1 -1
- package/dest/oracle_version.d.ts +4 -3
- package/dest/oracle_version.d.ts.map +1 -1
- package/dest/oracle_version.js +20 -10
- package/dest/private_kernel/batch_planner.d.ts +47 -0
- package/dest/private_kernel/batch_planner.d.ts.map +1 -0
- package/dest/private_kernel/batch_planner.js +104 -0
- package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.d.ts +1 -1
- package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.d.ts.map +1 -1
- package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.js +7 -3
- package/dest/private_kernel/hints/test_utils.d.ts +1 -1
- package/dest/private_kernel/hints/test_utils.d.ts.map +1 -1
- package/dest/private_kernel/hints/test_utils.js +3 -4
- package/dest/private_kernel/private_kernel_execution_prover.d.ts +6 -2
- package/dest/private_kernel/private_kernel_execution_prover.d.ts.map +1 -1
- package/dest/private_kernel/private_kernel_execution_prover.js +203 -89
- package/dest/private_kernel/private_kernel_oracle.d.ts +12 -10
- package/dest/private_kernel/private_kernel_oracle.d.ts.map +1 -1
- package/dest/private_kernel/private_kernel_oracle.js +40 -26
- package/dest/pxe.d.ts +167 -55
- package/dest/pxe.d.ts.map +1 -1
- package/dest/pxe.js +334 -206
- package/dest/storage/allowed_scopes.d.ts +6 -0
- package/dest/storage/allowed_scopes.d.ts.map +1 -0
- package/dest/storage/allowed_scopes.js +7 -0
- package/dest/storage/anchor_block_store/anchor_block_store.d.ts +9 -6
- package/dest/storage/anchor_block_store/anchor_block_store.d.ts.map +1 -1
- package/dest/storage/anchor_block_store/anchor_block_store.js +9 -7
- package/dest/storage/backwards_compatibility_tests/kv_store_snapshot.d.ts +42 -0
- package/dest/storage/backwards_compatibility_tests/kv_store_snapshot.d.ts.map +1 -0
- package/dest/storage/backwards_compatibility_tests/kv_store_snapshot.js +93 -0
- package/dest/storage/backwards_compatibility_tests/schema_tests.d.ts +15 -0
- package/dest/storage/backwards_compatibility_tests/schema_tests.d.ts.map +1 -0
- package/dest/storage/backwards_compatibility_tests/schema_tests.js +647 -0
- package/dest/storage/backwards_compatibility_tests/store_spy.d.ts +19 -0
- package/dest/storage/backwards_compatibility_tests/store_spy.d.ts.map +1 -0
- package/dest/storage/backwards_compatibility_tests/store_spy.js +63 -0
- package/dest/storage/capsule_store/capsule_service.d.ts +2 -3
- package/dest/storage/capsule_store/capsule_service.d.ts.map +1 -1
- package/dest/storage/capsule_store/capsule_service.js +6 -9
- package/dest/storage/capsule_store/capsule_store.d.ts +1 -1
- package/dest/storage/capsule_store/capsule_store.d.ts.map +1 -1
- package/dest/storage/capsule_store/capsule_store.js +8 -5
- package/dest/storage/contract_store/contract_store.d.ts +27 -24
- package/dest/storage/contract_store/contract_store.d.ts.map +1 -1
- package/dest/storage/contract_store/contract_store.js +70 -98
- package/dest/storage/fact_store/fact_service.d.ts +22 -0
- package/dest/storage/fact_store/fact_service.d.ts.map +1 -0
- package/dest/storage/fact_store/fact_service.js +45 -0
- package/dest/storage/fact_store/fact_store.d.ts +95 -0
- package/dest/storage/fact_store/fact_store.d.ts.map +1 -0
- package/dest/storage/fact_store/fact_store.js +408 -0
- package/dest/storage/fact_store/fact_store_keys.d.ts +34 -0
- package/dest/storage/fact_store/fact_store_keys.d.ts.map +1 -0
- package/dest/storage/fact_store/fact_store_keys.js +50 -0
- package/dest/storage/fact_store/index.d.ts +6 -0
- package/dest/storage/fact_store/index.d.ts.map +1 -0
- package/dest/storage/fact_store/index.js +4 -0
- package/dest/storage/fact_store/origin_state.d.ts +57 -0
- package/dest/storage/fact_store/origin_state.d.ts.map +1 -0
- package/dest/storage/fact_store/origin_state.js +53 -0
- package/dest/storage/fact_store/stored_fact.d.ts +32 -0
- package/dest/storage/fact_store/stored_fact.d.ts.map +1 -0
- package/dest/storage/fact_store/stored_fact.js +64 -0
- package/dest/storage/index.d.ts +3 -2
- package/dest/storage/index.d.ts.map +1 -1
- package/dest/storage/index.js +2 -1
- package/dest/storage/metadata.d.ts +2 -2
- package/dest/storage/metadata.d.ts.map +1 -1
- package/dest/storage/metadata.js +1 -1
- package/dest/storage/note_store/note_store.d.ts +42 -33
- package/dest/storage/note_store/note_store.d.ts.map +1 -1
- package/dest/storage/note_store/note_store.js +199 -170
- package/dest/storage/note_store/stored_note.d.ts +3 -8
- package/dest/storage/note_store/stored_note.d.ts.map +1 -1
- package/dest/storage/note_store/stored_note.js +4 -20
- package/dest/storage/open_pxe_stores.d.ts +35 -0
- package/dest/storage/open_pxe_stores.d.ts.map +1 -0
- package/dest/storage/open_pxe_stores.js +29 -0
- package/dest/storage/private_event_store/private_event_store.d.ts +13 -16
- package/dest/storage/private_event_store/private_event_store.d.ts.map +1 -1
- package/dest/storage/private_event_store/private_event_store.js +43 -43
- package/dest/storage/private_event_store/stored_private_event.js +1 -1
- package/dest/storage/tagging_store/index.d.ts +2 -2
- package/dest/storage/tagging_store/index.d.ts.map +1 -1
- package/dest/storage/tagging_store/index.js +1 -1
- package/dest/storage/tagging_store/recipient_tagging_store.d.ts +6 -6
- package/dest/storage/tagging_store/recipient_tagging_store.d.ts.map +1 -1
- package/dest/storage/tagging_store/sender_tagging_store.d.ts +5 -5
- package/dest/storage/tagging_store/sender_tagging_store.d.ts.map +1 -1
- package/dest/storage/tagging_store/sender_tagging_store.js +3 -3
- package/dest/storage/tagging_store/tagging_secret_sources_store.d.ts +51 -0
- package/dest/storage/tagging_store/tagging_secret_sources_store.d.ts.map +1 -0
- package/dest/storage/tagging_store/tagging_secret_sources_store.js +105 -0
- package/dest/tagging/constants.d.ts +2 -2
- package/dest/tagging/constants.d.ts.map +1 -1
- package/dest/tagging/constants.js +5 -8
- package/dest/tagging/get_all_logs_by_tags.d.ts +34 -10
- package/dest/tagging/get_all_logs_by_tags.d.ts.map +1 -1
- package/dest/tagging/get_all_logs_by_tags.js +36 -37
- package/dest/tagging/index.d.ts +5 -4
- package/dest/tagging/index.d.ts.map +1 -1
- package/dest/tagging/index.js +4 -3
- package/dest/tagging/persist_sender_tagging_index_ranges.d.ts +29 -0
- package/dest/tagging/persist_sender_tagging_index_ranges.d.ts.map +1 -0
- package/dest/tagging/persist_sender_tagging_index_ranges.js +42 -0
- package/dest/tagging/recipient_sync/sync_tagged_private_logs.d.ts +69 -0
- package/dest/tagging/recipient_sync/sync_tagged_private_logs.d.ts.map +1 -0
- package/dest/tagging/recipient_sync/sync_tagged_private_logs.js +203 -0
- package/dest/tagging/recipient_sync/utils/find_highest_indexes.d.ts +3 -3
- package/dest/tagging/recipient_sync/utils/find_highest_indexes.d.ts.map +1 -1
- package/dest/tagging/reconcile_tagging_index_ranges.d.ts +36 -0
- package/dest/tagging/reconcile_tagging_index_ranges.d.ts.map +1 -0
- package/dest/tagging/reconcile_tagging_index_ranges.js +74 -0
- package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts +4 -5
- package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts.map +1 -1
- package/dest/tagging/sender_sync/sync_sender_tagging_indexes.js +26 -14
- package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts +11 -6
- package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts.map +1 -1
- package/dest/tagging/sender_sync/utils/get_status_change_of_pending.js +21 -0
- package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts +4 -4
- package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts.map +1 -1
- package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.js +2 -2
- package/package.json +20 -17
- package/src/bin/check_oracle_version.ts +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 +96 -39
- package/src/config/index.ts +15 -8
- package/src/config/package_info.ts +1 -1
- package/src/contract/contract_class_service.ts +83 -0
- package/src/contract/contract_sync_service.ts +176 -0
- package/src/contract/helpers.ts +35 -0
- package/src/contract_function_simulator/anchored_contract_data.ts +74 -0
- package/src/contract_function_simulator/contract_function_simulator.ts +136 -55
- 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 +5 -9
- package/src/contract_function_simulator/index.ts +69 -5
- package/src/contract_function_simulator/noir-structs/bounded_vec.ts +43 -0
- package/src/contract_function_simulator/noir-structs/contract_class_log_data.ts +9 -0
- package/src/contract_function_simulator/noir-structs/embedded_curve_point.ts +4 -0
- package/src/contract_function_simulator/noir-structs/ephemeral_array.ts +66 -0
- package/src/contract_function_simulator/noir-structs/event_validation_request.ts +5 -4
- package/src/contract_function_simulator/noir-structs/fact.ts +13 -0
- package/src/contract_function_simulator/noir-structs/fact_collection.ts +64 -0
- package/src/contract_function_simulator/noir-structs/log_retrieval_request.ts +27 -20
- package/src/contract_function_simulator/noir-structs/log_retrieval_response.ts +14 -61
- package/src/contract_function_simulator/noir-structs/note_data.ts +27 -0
- package/src/contract_function_simulator/noir-structs/note_validation_request.ts +6 -5
- package/src/contract_function_simulator/noir-structs/option.ts +75 -0
- package/src/contract_function_simulator/noir-structs/origin_block.ts +8 -0
- package/src/contract_function_simulator/noir-structs/pending_tagged_log.ts +12 -0
- package/src/contract_function_simulator/noir-structs/provided_secret.ts +5 -0
- package/src/contract_function_simulator/noir-structs/resolved_tagging_strategy.ts +58 -0
- package/src/contract_function_simulator/noir-structs/resolved_tx.ts +53 -0
- package/src/contract_function_simulator/noir-structs/tx_effect_data.ts +15 -0
- package/src/contract_function_simulator/noir-structs/utility_context.ts +5 -17
- package/src/contract_function_simulator/oracle/acir_callback.ts +154 -0
- package/src/contract_function_simulator/oracle/index.ts +1 -15
- package/src/contract_function_simulator/oracle/interfaces.ts +11 -185
- package/src/contract_function_simulator/oracle/legacy_oracle_registry.ts +120 -0
- package/src/contract_function_simulator/oracle/message_load_oracle_inputs.ts +6 -21
- package/src/contract_function_simulator/oracle/note_packing_utils.ts +3 -3
- package/src/contract_function_simulator/oracle/oracle_registry.ts +689 -0
- package/src/contract_function_simulator/oracle/oracle_type_mappings.ts +964 -0
- package/src/contract_function_simulator/oracle/private_execution.ts +2 -3
- package/src/contract_function_simulator/oracle/private_execution_oracle.ts +233 -79
- package/src/contract_function_simulator/oracle/utility_execution_oracle.ts +681 -320
- package/src/contract_function_simulator/pick_notes.ts +22 -3
- package/src/contract_function_simulator/transient_array_service.ts +91 -0
- package/src/debug/pxe_debug_utils.ts +4 -12
- package/src/entrypoints/client/bundle/index.ts +0 -1
- package/src/entrypoints/client/bundle/utils.ts +19 -7
- package/src/entrypoints/client/lazy/index.ts +0 -1
- package/src/entrypoints/client/lazy/utils.ts +19 -7
- package/src/entrypoints/pxe_creation_options.ts +21 -1
- package/src/entrypoints/server/index.ts +6 -3
- package/src/entrypoints/server/utils.ts +24 -7
- package/src/error_enriching.ts +27 -11
- package/src/events/event_service.ts +54 -19
- package/src/events/private_event_filter_validator.ts +21 -1
- package/src/hooks/authorize_utility_call.ts +44 -0
- package/src/hooks/execution_hooks.ts +68 -0
- package/src/hooks/index.ts +12 -0
- package/src/hooks/resolve_custom_request.ts +24 -0
- package/src/hooks/resolve_tagging_secret_strategy.ts +57 -0
- package/src/logs/log_service.ts +212 -139
- package/src/messages/tx_resolver_service.ts +69 -0
- package/src/notes/note_service.ts +117 -94
- package/src/notes_filter.ts +1 -3
- package/src/oracle_version.ts +20 -10
- package/src/private_kernel/batch_planner.ts +168 -0
- package/src/private_kernel/hints/private_kernel_reset_private_inputs_builder.ts +12 -2
- package/src/private_kernel/hints/test_utils.ts +3 -10
- package/src/private_kernel/private_kernel_execution_prover.ts +335 -121
- package/src/private_kernel/private_kernel_oracle.ts +58 -29
- package/src/pxe.ts +530 -236
- package/src/storage/allowed_scopes.ts +14 -0
- package/src/storage/anchor_block_store/anchor_block_store.ts +9 -7
- package/src/storage/backwards_compatibility_tests/__snapshots__/AddressStore.json +22 -0
- package/src/storage/backwards_compatibility_tests/__snapshots__/AnchorBlockStore.json +3 -0
- package/src/storage/backwards_compatibility_tests/__snapshots__/CapsuleStore.json +16 -0
- package/src/storage/backwards_compatibility_tests/__snapshots__/ContractStore.json +28 -0
- package/src/storage/backwards_compatibility_tests/__snapshots__/FactStore.json +40 -0
- package/src/storage/backwards_compatibility_tests/__snapshots__/KeyStore.json +52 -0
- package/src/storage/backwards_compatibility_tests/__snapshots__/L2TipsKVStore.json +40 -0
- package/src/storage/backwards_compatibility_tests/__snapshots__/NoteStore.json +56 -0
- package/src/storage/backwards_compatibility_tests/__snapshots__/PrivateEventStore.json +44 -0
- package/src/storage/backwards_compatibility_tests/__snapshots__/RecipientTaggingStore.json +18 -0
- package/src/storage/backwards_compatibility_tests/__snapshots__/SenderTaggingStore.json +22 -0
- package/src/storage/backwards_compatibility_tests/__snapshots__/TaggingSecretSourcesStore.json +30 -0
- package/src/storage/backwards_compatibility_tests/__snapshots__/opened_stores.json +117 -0
- package/src/storage/backwards_compatibility_tests/kv_store_snapshot.ts +122 -0
- package/src/storage/backwards_compatibility_tests/schema_tests.ts +774 -0
- package/src/storage/backwards_compatibility_tests/store_spy.ts +73 -0
- package/src/storage/capsule_store/capsule_service.ts +8 -14
- package/src/storage/capsule_store/capsule_store.ts +15 -5
- package/src/storage/contract_store/contract_store.ts +96 -124
- package/src/storage/fact_store/fact_service.ts +69 -0
- package/src/storage/fact_store/fact_store.ts +487 -0
- package/src/storage/fact_store/fact_store_keys.ts +75 -0
- package/src/storage/fact_store/index.ts +14 -0
- package/src/storage/fact_store/origin_state.ts +75 -0
- package/src/storage/fact_store/stored_fact.ts +80 -0
- package/src/storage/index.ts +2 -1
- package/src/storage/metadata.ts +1 -1
- package/src/storage/note_store/note_store.ts +228 -192
- package/src/storage/note_store/stored_note.ts +5 -27
- package/src/storage/open_pxe_stores.ts +52 -0
- package/src/storage/private_event_store/private_event_store.ts +52 -54
- package/src/storage/private_event_store/stored_private_event.ts +1 -1
- package/src/storage/tagging_store/index.ts +1 -1
- package/src/storage/tagging_store/recipient_tagging_store.ts +5 -9
- package/src/storage/tagging_store/sender_tagging_store.ts +6 -6
- package/src/storage/tagging_store/tagging_secret_sources_store.ts +138 -0
- package/src/tagging/constants.ts +6 -8
- package/src/tagging/get_all_logs_by_tags.ts +78 -50
- package/src/tagging/index.ts +4 -3
- package/src/tagging/persist_sender_tagging_index_ranges.ts +57 -0
- package/src/tagging/recipient_sync/sync_tagged_private_logs.ts +301 -0
- package/src/tagging/recipient_sync/utils/find_highest_indexes.ts +2 -2
- package/src/tagging/reconcile_tagging_index_ranges.ts +102 -0
- package/src/tagging/sender_sync/sync_sender_tagging_indexes.ts +41 -19
- package/src/tagging/sender_sync/utils/get_status_change_of_pending.ts +23 -8
- package/src/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.ts +4 -5
- package/dest/access_scopes.d.ts +0 -9
- package/dest/access_scopes.d.ts.map +0 -1
- package/dest/access_scopes.js +0 -6
- package/dest/contract_function_simulator/oracle/legacy_oracle_mappings.d.ts +0 -9
- package/dest/contract_function_simulator/oracle/legacy_oracle_mappings.d.ts.map +0 -1
- package/dest/contract_function_simulator/oracle/legacy_oracle_mappings.js +0 -38
- package/dest/contract_function_simulator/oracle/oracle.d.ts +0 -80
- package/dest/contract_function_simulator/oracle/oracle.d.ts.map +0 -1
- package/dest/contract_function_simulator/oracle/oracle.js +0 -458
- package/dest/contract_function_simulator/proxied_contract_data_source.d.ts +0 -6
- package/dest/contract_function_simulator/proxied_contract_data_source.d.ts.map +0 -1
- package/dest/contract_function_simulator/proxied_contract_data_source.js +0 -80
- package/dest/contract_sync/contract_sync_service.d.ts +0 -46
- package/dest/contract_sync/contract_sync_service.d.ts.map +0 -1
- package/dest/contract_sync/contract_sync_service.js +0 -124
- package/dest/contract_sync/helpers.d.ts +0 -29
- package/dest/contract_sync/helpers.d.ts.map +0 -1
- package/dest/contract_sync/helpers.js +0 -60
- package/dest/messages/message_context_service.d.ts +0 -17
- package/dest/messages/message_context_service.d.ts.map +0 -1
- package/dest/messages/message_context_service.js +0 -36
- package/dest/storage/tagging_store/sender_address_book_store.d.ts +0 -14
- package/dest/storage/tagging_store/sender_address_book_store.d.ts.map +0 -1
- package/dest/storage/tagging_store/sender_address_book_store.js +0 -36
- package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts +0 -14
- package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts.map +0 -1
- package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.js +0 -99
- package/dest/tagging/recipient_sync/utils/load_logs_for_range.d.ts +0 -14
- package/dest/tagging/recipient_sync/utils/load_logs_for_range.d.ts.map +0 -1
- package/dest/tagging/recipient_sync/utils/load_logs_for_range.js +0 -33
- package/src/access_scopes.ts +0 -9
- package/src/contract_function_simulator/oracle/legacy_oracle_mappings.ts +0 -98
- package/src/contract_function_simulator/oracle/oracle.ts +0 -721
- package/src/contract_function_simulator/proxied_contract_data_source.ts +0 -83
- package/src/contract_sync/contract_sync_service.ts +0 -192
- package/src/contract_sync/helpers.ts +0 -99
- package/src/messages/message_context_service.ts +0 -44
- package/src/storage/tagging_store/sender_address_book_store.ts +0 -48
- package/src/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.ts +0 -140
- package/src/tagging/recipient_sync/utils/load_logs_for_range.ts +0 -44
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wraps an `AztecAsyncKVStore` so every `openMap`/`openMultiMap`/`openArray`/`openSingleton`/`openSet`/`openCounter`
|
|
3
|
+
* call is recorded before being delegated to the inner store.
|
|
4
|
+
*/ export function createStoreSpy(inner) {
|
|
5
|
+
const entries = [];
|
|
6
|
+
const store = {
|
|
7
|
+
openMap (name) {
|
|
8
|
+
entries.push({
|
|
9
|
+
name,
|
|
10
|
+
kind: 'map'
|
|
11
|
+
});
|
|
12
|
+
return inner.openMap(name);
|
|
13
|
+
},
|
|
14
|
+
openMultiMap (name) {
|
|
15
|
+
entries.push({
|
|
16
|
+
name,
|
|
17
|
+
kind: 'multimap'
|
|
18
|
+
});
|
|
19
|
+
return inner.openMultiMap(name);
|
|
20
|
+
},
|
|
21
|
+
openArray (name) {
|
|
22
|
+
entries.push({
|
|
23
|
+
name,
|
|
24
|
+
kind: 'array'
|
|
25
|
+
});
|
|
26
|
+
return inner.openArray(name);
|
|
27
|
+
},
|
|
28
|
+
openSingleton (name) {
|
|
29
|
+
entries.push({
|
|
30
|
+
name,
|
|
31
|
+
kind: 'singleton'
|
|
32
|
+
});
|
|
33
|
+
return inner.openSingleton(name);
|
|
34
|
+
},
|
|
35
|
+
openSet (name) {
|
|
36
|
+
entries.push({
|
|
37
|
+
name,
|
|
38
|
+
kind: 'set'
|
|
39
|
+
});
|
|
40
|
+
return inner.openSet(name);
|
|
41
|
+
},
|
|
42
|
+
openCounter (name) {
|
|
43
|
+
entries.push({
|
|
44
|
+
name,
|
|
45
|
+
kind: 'counter'
|
|
46
|
+
});
|
|
47
|
+
return inner.openCounter(name);
|
|
48
|
+
},
|
|
49
|
+
transactionAsync: (callback)=>inner.transactionAsync(callback),
|
|
50
|
+
clear: ()=>inner.clear(),
|
|
51
|
+
delete: ()=>inner.delete(),
|
|
52
|
+
estimateSize: ()=>inner.estimateSize(),
|
|
53
|
+
close: ()=>inner.close(),
|
|
54
|
+
backupTo: (dstPath, compact)=>inner.backupTo(dstPath, compact)
|
|
55
|
+
};
|
|
56
|
+
const getOpenedStores = ()=>[
|
|
57
|
+
...entries
|
|
58
|
+
].sort((a, b)=>a.name === b.name ? a.kind.localeCompare(b.kind) : a.name.localeCompare(b.name));
|
|
59
|
+
return {
|
|
60
|
+
store,
|
|
61
|
+
getOpenedStores
|
|
62
|
+
};
|
|
63
|
+
}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import type { Fr } from '@aztec/foundation/curves/bn254';
|
|
2
2
|
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
3
3
|
import type { Capsule } from '@aztec/stdlib/tx';
|
|
4
|
-
import type { AccessScopes } from '../../access_scopes.js';
|
|
5
4
|
import type { CapsuleStore } from './capsule_store.js';
|
|
6
5
|
/**
|
|
7
6
|
* Wraps a CapsuleStore with scope-based access control. Each operation asserts that the requested scope is in the
|
|
@@ -10,7 +9,7 @@ import type { CapsuleStore } from './capsule_store.js';
|
|
|
10
9
|
export declare class CapsuleService {
|
|
11
10
|
private readonly capsuleStore;
|
|
12
11
|
private readonly allowedScopes;
|
|
13
|
-
constructor(capsuleStore: CapsuleStore, allowedScopes:
|
|
12
|
+
constructor(capsuleStore: CapsuleStore, allowedScopes: AztecAddress[]);
|
|
14
13
|
setCapsule(contractAddress: AztecAddress, slot: Fr, capsule: Fr[], jobId: string, scope: AztecAddress): void;
|
|
15
14
|
getCapsule(contractAddress: AztecAddress, slot: Fr, jobId: string, scope: AztecAddress, transientCapsules?: Capsule[]): Promise<Fr[] | null>;
|
|
16
15
|
deleteCapsule(contractAddress: AztecAddress, slot: Fr, jobId: string, scope: AztecAddress): void;
|
|
@@ -19,4 +18,4 @@ export declare class CapsuleService {
|
|
|
19
18
|
readCapsuleArray(contractAddress: AztecAddress, baseSlot: Fr, jobId: string, scope: AztecAddress): Promise<Fr[][]>;
|
|
20
19
|
setCapsuleArray(contractAddress: AztecAddress, baseSlot: Fr, content: Fr[][], jobId: string, scope: AztecAddress): Promise<void>;
|
|
21
20
|
}
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Fwc3VsZV9zZXJ2aWNlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc3RvcmFnZS9jYXBzdWxlX3N0b3JlL2NhcHN1bGVfc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDM0QsT0FBTyxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFHaEQsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFdkQ7OztHQUdHO0FBQ0gscUJBQWEsY0FBYztJQUl2QixPQUFPLENBQUMsUUFBUSxDQUFDLFlBQVk7SUFIL0IsT0FBTyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQWlCO0lBRS9DLFlBQ21CLFlBQVksRUFBRSxZQUFZLEVBQzNDLGFBQWEsRUFBRSxZQUFZLEVBQUUsRUFJOUI7SUFFRCxVQUFVLENBQUMsZUFBZSxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxZQUFZLFFBR3BHO0lBRUssVUFBVSxDQUNkLGVBQWUsRUFBRSxZQUFZLEVBQzdCLElBQUksRUFBRSxFQUFFLEVBQ1IsS0FBSyxFQUFFLE1BQU0sRUFDYixLQUFLLEVBQUUsWUFBWSxFQUNuQixpQkFBaUIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxHQUM1QixPQUFPLENBQUMsRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLENBWXRCO0lBRUQsYUFBYSxDQUFDLGVBQWUsRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxZQUFZLFFBR3hGO0lBRUQsV0FBVyxDQUNULGVBQWUsRUFBRSxZQUFZLEVBQzdCLE9BQU8sRUFBRSxFQUFFLEVBQ1gsT0FBTyxFQUFFLEVBQUUsRUFDWCxVQUFVLEVBQUUsTUFBTSxFQUNsQixLQUFLLEVBQUUsTUFBTSxFQUNiLEtBQUssRUFBRSxZQUFZLEdBQ2xCLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FHZjtJQUVELG9CQUFvQixDQUNsQixlQUFlLEVBQUUsWUFBWSxFQUM3QixRQUFRLEVBQUUsRUFBRSxFQUNaLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUNmLEtBQUssRUFBRSxNQUFNLEVBQ2IsS0FBSyxFQUFFLFlBQVksR0FDbEIsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUdmO0lBRUQsZ0JBQWdCLENBQUMsZUFBZSxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFlBQVksR0FBRyxPQUFPLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUdqSDtJQUVELGVBQWUsQ0FBQyxlQUFlLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsWUFBWSxpQkFHL0c7Q0FDRiJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capsule_service.d.ts","sourceRoot":"","sources":["../../../src/storage/capsule_store/capsule_service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"capsule_service.d.ts","sourceRoot":"","sources":["../../../src/storage/capsule_store/capsule_service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAGhD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD;;;GAGG;AACH,qBAAa,cAAc;IAIvB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAH/B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAiB;IAE/C,YACmB,YAAY,EAAE,YAAY,EAC3C,aAAa,EAAE,YAAY,EAAE,EAI9B;IAED,UAAU,CAAC,eAAe,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,QAGpG;IAEK,UAAU,CACd,eAAe,EAAE,YAAY,EAC7B,IAAI,EAAE,EAAE,EACR,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,YAAY,EACnB,iBAAiB,CAAC,EAAE,OAAO,EAAE,GAC5B,OAAO,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,CAYtB;IAED,aAAa,CAAC,eAAe,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,QAGxF;IAED,WAAW,CACT,eAAe,EAAE,YAAY,EAC7B,OAAO,EAAE,EAAE,EACX,OAAO,EAAE,EAAE,EACX,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,YAAY,GAClB,OAAO,CAAC,IAAI,CAAC,CAGf;IAED,oBAAoB,CAClB,eAAe,EAAE,YAAY,EAC7B,QAAQ,EAAE,EAAE,EACZ,OAAO,EAAE,EAAE,EAAE,EAAE,EACf,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,YAAY,GAClB,OAAO,CAAC,IAAI,CAAC,CAGf;IAED,gBAAgB,CAAC,eAAe,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAGjH;IAED,eAAe,CAAC,eAAe,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,iBAG/G;CACF"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
2
|
+
import { assertAllowedScope } from '../allowed_scopes.js';
|
|
2
3
|
/**
|
|
3
4
|
* Wraps a CapsuleStore with scope-based access control. Each operation asserts that the requested scope is in the
|
|
4
5
|
* allowed scopes list before delegating to the underlying store.
|
|
@@ -7,7 +8,11 @@ import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
|
7
8
|
allowedScopes;
|
|
8
9
|
constructor(capsuleStore, allowedScopes){
|
|
9
10
|
this.capsuleStore = capsuleStore;
|
|
10
|
-
|
|
11
|
+
// The zero address denotes the global capsule scope, which is always permitted.
|
|
12
|
+
this.allowedScopes = [
|
|
13
|
+
...allowedScopes,
|
|
14
|
+
AztecAddress.ZERO
|
|
15
|
+
];
|
|
11
16
|
}
|
|
12
17
|
setCapsule(contractAddress, slot, capsule, jobId, scope) {
|
|
13
18
|
assertAllowedScope(scope, this.allowedScopes);
|
|
@@ -40,11 +45,3 @@ import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
|
40
45
|
return this.capsuleStore.setCapsuleArray(contractAddress, baseSlot, content, jobId, scope);
|
|
41
46
|
}
|
|
42
47
|
}
|
|
43
|
-
function assertAllowedScope(scope, allowedScopes) {
|
|
44
|
-
if (allowedScopes === 'ALL_SCOPES' || scope.equals(AztecAddress.ZERO)) {
|
|
45
|
-
return;
|
|
46
|
-
}
|
|
47
|
-
if (!allowedScopes.some((allowed)=>allowed.equals(scope))) {
|
|
48
|
-
throw new Error(`Scope ${scope.toString()} is not in the allowed scopes list: [${allowedScopes.map((s)=>s.toString()).join(', ')}]. See https://docs.aztec.network/errors/10`);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
@@ -69,4 +69,4 @@ export declare class CapsuleStore implements StagedStore {
|
|
|
69
69
|
readCapsuleArray(contractAddress: AztecAddress, baseSlot: Fr, jobId: string, scope: AztecAddress): Promise<Fr[][]>;
|
|
70
70
|
setCapsuleArray(contractAddress: AztecAddress, baseSlot: Fr, content: Fr[][], jobId: string, scope: AztecAddress): Promise<void>;
|
|
71
71
|
}
|
|
72
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Fwc3VsZV9zdG9yZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3N0b3JhZ2UvY2Fwc3VsZV9zdG9yZS9jYXBzdWxlX3N0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRCxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQWdCLE1BQU0sdUJBQXVCLENBQUM7QUFDbEUsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQWlCLE1BQU0saUJBQWlCLENBQUM7QUFDeEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRTNELE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBRTVFLHFCQUFhLFlBQWEsWUFBVyxXQUFXOztJQUM5QyxRQUFRLENBQUMsU0FBUyxhQUFhO0lBYS9CLE1BQU0sRUFBRSxNQUFNLENBQUM7SUFFZixZQUFZLEtBQUssRUFBRSxpQkFBaUIsRUFRbkM7SUErREQ7Ozs7OztPQU1HO0lBQ0csTUFBTSxDQUFDLEtBQUssRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQWV6QztJQUVEOztPQUVHO0lBQ0gsYUFBYSxDQUFDLEtBQUssRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUcxQztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSCxVQUFVLENBQUMsZUFBZSxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxZQUFZLFFBS3BHO0lBRUQ7Ozs7O09BS0c7SUFDSCxVQUFVLENBQUMsZUFBZSxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFlBQVksR0FBRyxPQUFPLENBQUMsRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLENBRTVHO0lBcUJEOzs7O09BSUc7SUFDSCxhQUFhLENBQUMsZUFBZSxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFlBQVksUUFHeEY7SUFFRDs7Ozs7Ozs7OztPQVVHO0lBQ0gsV0FBVyxDQUNULGVBQWUsRUFBRSxZQUFZLEVBQzdCLE9BQU8sRUFBRSxFQUFFLEVBQ1gsT0FBTyxFQUFFLEVBQUUsRUFDWCxVQUFVLEVBQUUsTUFBTSxFQUNsQixLQUFLLEVBQUUsTUFBTSxFQUNiLEtBQUssRUFBRSxZQUFZLEdBQ2xCLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0EyQmY7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsb0JBQW9CLENBQ2xCLGVBQWUsRUFBRSxZQUFZLEVBQzdCLFFBQVEsRUFBRSxFQUFFLEVBQ1osT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQ2YsS0FBSyxFQUFFLE1BQU0sRUFDYixLQUFLLEVBQUUsWUFBWSxHQUNsQixPQUFPLENBQUMsSUFBSSxDQUFDLENBcUJmO0lBRUQsZ0JBQWdCLENBQUMsZUFBZSxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFlBQVksR0FBRyxPQUFPLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQTJCakg7SUFFRCxlQUFlLENBQUMsZUFBZSxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFlBQVksaUJBMkIvRztDQUNGIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capsule_store.d.ts","sourceRoot":"","sources":["../../../src/storage/capsule_store/capsule_store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAClE,OAAO,KAAK,EAAE,iBAAiB,EAAiB,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAE3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0CAA0C,CAAC;AAE5E,qBAAa,YAAa,YAAW,WAAW;;IAC9C,QAAQ,CAAC,SAAS,aAAa;IAa/B,MAAM,EAAE,MAAM,CAAC;IAEf,YAAY,KAAK,EAAE,iBAAiB,EAQnC;IA+DD;;;;;;OAMG;IACG,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAezC;IAED;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAG1C;IAED;;;;;;;;;;OAUG;IACH,UAAU,CAAC,eAAe,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,QAKpG;IAED;;;;;OAKG;
|
|
1
|
+
{"version":3,"file":"capsule_store.d.ts","sourceRoot":"","sources":["../../../src/storage/capsule_store/capsule_store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAClE,OAAO,KAAK,EAAE,iBAAiB,EAAiB,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAE3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0CAA0C,CAAC;AAE5E,qBAAa,YAAa,YAAW,WAAW;;IAC9C,QAAQ,CAAC,SAAS,aAAa;IAa/B,MAAM,EAAE,MAAM,CAAC;IAEf,YAAY,KAAK,EAAE,iBAAiB,EAQnC;IA+DD;;;;;;OAMG;IACG,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAezC;IAED;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAG1C;IAED;;;;;;;;;;OAUG;IACH,UAAU,CAAC,eAAe,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,QAKpG;IAED;;;;;OAKG;IACH,UAAU,CAAC,eAAe,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,CAE5G;IAqBD;;;;OAIG;IACH,aAAa,CAAC,eAAe,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,QAGxF;IAED;;;;;;;;;;OAUG;IACH,WAAW,CACT,eAAe,EAAE,YAAY,EAC7B,OAAO,EAAE,EAAE,EACX,OAAO,EAAE,EAAE,EACX,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,YAAY,GAClB,OAAO,CAAC,IAAI,CAAC,CA2Bf;IAED;;;;;;;OAOG;IACH,oBAAoB,CAClB,eAAe,EAAE,YAAY,EAC7B,QAAQ,EAAE,EAAE,EACZ,OAAO,EAAE,EAAE,EAAE,EAAE,EACf,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,YAAY,GAClB,OAAO,CAAC,IAAI,CAAC,CAqBf;IAED,gBAAgB,CAAC,eAAe,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CA2BjH;IAED,eAAe,CAAC,eAAe,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,iBA2B/G;CACF"}
|
|
@@ -112,7 +112,10 @@ export class CapsuleStore {
|
|
|
112
112
|
* @param contractAddress - The contract address under which the data is scoped.
|
|
113
113
|
* @param slot - The slot in the database to read.
|
|
114
114
|
* @returns The stored data or `null` if no data is stored under the slot.
|
|
115
|
-
*/
|
|
115
|
+
*/ getCapsule(contractAddress, slot, jobId, scope) {
|
|
116
|
+
return this.#store.transactionAsync(()=>this.#getCapsuleInternal(contractAddress, slot, jobId, scope));
|
|
117
|
+
}
|
|
118
|
+
/** Same as getCapsule but without its own transaction, for use inside an existing transactionAsync. */ async #getCapsuleInternal(contractAddress, slot, jobId, scope) {
|
|
116
119
|
const dataBuffer = await this.#getFromStage(jobId, dbSlotToKey(contractAddress, slot, scope));
|
|
117
120
|
if (!dataBuffer) {
|
|
118
121
|
this.logger.trace(`Data not found for contract ${contractAddress.toString()} and slot ${slot.toString()}`);
|
|
@@ -182,7 +185,7 @@ export class CapsuleStore {
|
|
|
182
185
|
// and not using a transaction here would heavily impact performance.
|
|
183
186
|
return this.#store.transactionAsync(async ()=>{
|
|
184
187
|
// Load current length, defaulting to 0 if not found
|
|
185
|
-
const lengthData = await this
|
|
188
|
+
const lengthData = await this.#getCapsuleInternal(contractAddress, baseSlot, jobId, scope);
|
|
186
189
|
const currentLength = lengthData ? lengthData[0].toNumber() : 0;
|
|
187
190
|
// Store each capsule at consecutive slots after baseSlot + 1 + currentLength
|
|
188
191
|
for(let i = 0; i < content.length; i++){
|
|
@@ -204,12 +207,12 @@ export class CapsuleStore {
|
|
|
204
207
|
// of jobs: different calls running concurrently on the same contract may cause trouble.
|
|
205
208
|
return this.#store.transactionAsync(async ()=>{
|
|
206
209
|
// Load length, defaulting to 0 if not found
|
|
207
|
-
const maybeLength = await this
|
|
210
|
+
const maybeLength = await this.#getCapsuleInternal(contractAddress, baseSlot, jobId, scope);
|
|
208
211
|
const length = maybeLength ? maybeLength[0].toBigInt() : 0n;
|
|
209
212
|
const values = [];
|
|
210
213
|
// Read each capsule at consecutive slots after baseSlot
|
|
211
214
|
for(let i = 0; i < length; i++){
|
|
212
|
-
const currentValue = await this
|
|
215
|
+
const currentValue = await this.#getCapsuleInternal(contractAddress, arraySlot(baseSlot, i), jobId, scope);
|
|
213
216
|
if (currentValue == undefined) {
|
|
214
217
|
throw new Error(`Expected non-empty value at capsule array in base slot ${baseSlot} at index ${i} for contract ${contractAddress}`);
|
|
215
218
|
}
|
|
@@ -229,7 +232,7 @@ export class CapsuleStore {
|
|
|
229
232
|
// of jobs: different calls running concurrently on the same contract may cause trouble.
|
|
230
233
|
return this.#store.transactionAsync(async ()=>{
|
|
231
234
|
// Load current length, defaulting to 0 if not found
|
|
232
|
-
const maybeLength = await this
|
|
235
|
+
const maybeLength = await this.#getCapsuleInternal(contractAddress, baseSlot, jobId, scope);
|
|
233
236
|
const originalLength = maybeLength ? maybeLength[0].toNumber() : 0;
|
|
234
237
|
// Set the new length
|
|
235
238
|
this.setCapsule(contractAddress, baseSlot, [
|
|
@@ -3,9 +3,9 @@ import { Fr } from '@aztec/foundation/curves/bn254';
|
|
|
3
3
|
import { BufferReader } from '@aztec/foundation/serialize';
|
|
4
4
|
import type { MembershipWitness } from '@aztec/foundation/trees';
|
|
5
5
|
import type { AztecAsyncKVStore } from '@aztec/kv-store';
|
|
6
|
-
import { type ContractArtifact, type
|
|
6
|
+
import { type ContractArtifact, type FunctionArtifactWithContractName, FunctionCall, type FunctionDebugMetadata, FunctionSelector } from '@aztec/stdlib/abi';
|
|
7
7
|
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
8
|
-
import { type ContractClassIdPreimage, type ContractClassWithId, type
|
|
8
|
+
import { type ContractClassIdPreimage, type ContractClassWithId, type ContractInstancePreimageWithAddress } from '@aztec/stdlib/contract';
|
|
9
9
|
/**
|
|
10
10
|
* All contract class data except the large packedBytecode.
|
|
11
11
|
* The expensive data from the ContractClass is precomputed and stored in this format to avoid redundant hashing.
|
|
@@ -44,40 +44,43 @@ export declare class ContractStore {
|
|
|
44
44
|
constructor(store: AztecAsyncKVStore);
|
|
45
45
|
/**
|
|
46
46
|
* Registers a new contract artifact and its corresponding class data.
|
|
47
|
-
*
|
|
48
|
-
*
|
|
49
|
-
*
|
|
47
|
+
*
|
|
48
|
+
* IMPORTANT: This method does not verify that the provided artifact matches the class data or that the class id
|
|
49
|
+
* matches the artifact. It is the caller's responsibility to ensure the consistency and correctness of the provided
|
|
50
|
+
* data. This is done to avoid redundant, expensive contract class computations.
|
|
50
51
|
*/
|
|
51
52
|
addContractArtifact(contract: ContractArtifact, contractClassWithIdAndPreimage?: ContractClassWithId & ContractClassIdPreimage): Promise<Fr>;
|
|
52
|
-
addContractInstance(contract:
|
|
53
|
+
addContractInstance(contract: ContractInstancePreimageWithAddress): Promise<void>;
|
|
53
54
|
getContractsAddresses(): Promise<AztecAddress[]>;
|
|
54
|
-
/** Returns
|
|
55
|
-
getContractInstance(contractAddress: AztecAddress): Promise<
|
|
55
|
+
/** Returns the address preimage of a given address. */
|
|
56
|
+
getContractInstance(contractAddress: AztecAddress): Promise<ContractInstancePreimageWithAddress | undefined>;
|
|
56
57
|
/** Returns the raw contract artifact for a given class id. */
|
|
57
58
|
getContractArtifact(contractClassId: Fr): Promise<ContractArtifact | undefined>;
|
|
58
59
|
/** Returns a contract class for a given class id. */
|
|
59
60
|
getContractClassWithPreimage(contractClassId: Fr): Promise<(ContractClassWithId & ContractClassIdPreimage) | undefined>;
|
|
60
|
-
getContract(address: AztecAddress): Promise<(ContractInstanceWithAddress & ContractArtifact) | undefined>;
|
|
61
61
|
/**
|
|
62
|
-
* Retrieves the artifact of a specified function within a given contract.
|
|
62
|
+
* Retrieves the artifact of a specified function within a given contract class.
|
|
63
63
|
*
|
|
64
|
-
* @param
|
|
64
|
+
* @param contractClassId - The id of the contract class containing the function.
|
|
65
65
|
* @param selector - The function selector.
|
|
66
|
-
* @returns The corresponding function's artifact as an object.
|
|
66
|
+
* @returns The corresponding function's artifact as an object, or `undefined` if the class is not registered.
|
|
67
|
+
*/
|
|
68
|
+
getFunctionArtifact(contractClassId: Fr, selector: FunctionSelector): Promise<FunctionArtifactWithContractName | undefined>;
|
|
69
|
+
/**
|
|
70
|
+
* Same as {@link getFunctionArtifact} but with debug metadata attached. Returns `undefined` when the class artifact
|
|
71
|
+
* is not registered.
|
|
67
72
|
*/
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
getPublicFunctionArtifact(contractAddress: AztecAddress): Promise<FunctionArtifactWithContractName | undefined>;
|
|
71
|
-
getFunctionAbi(contractAddress: AztecAddress, selector: FunctionSelector): Promise<FunctionAbi | undefined>;
|
|
73
|
+
getFunctionArtifactWithDebugMetadata(contractClassId: Fr, selector: FunctionSelector): Promise<FunctionArtifactWithContractName | undefined>;
|
|
74
|
+
getPublicFunctionArtifact(contractClassId: Fr): Promise<FunctionArtifactWithContractName | undefined>;
|
|
72
75
|
/**
|
|
73
|
-
* Retrieves the debug metadata of a specified function within a given contract.
|
|
76
|
+
* Retrieves the debug metadata of a specified function within a given contract class.
|
|
74
77
|
*
|
|
75
|
-
* @param
|
|
78
|
+
* @param contractClassId - The id of the contract class containing the function.
|
|
76
79
|
* @param selector - The function selector.
|
|
77
80
|
* @returns The corresponding function's debug metadata, or undefined.
|
|
78
81
|
*/
|
|
79
|
-
getFunctionDebugMetadata(
|
|
80
|
-
getPublicFunctionDebugMetadata(
|
|
82
|
+
getFunctionDebugMetadata(contractClassId: Fr, selector: FunctionSelector): Promise<FunctionDebugMetadata | undefined>;
|
|
83
|
+
getPublicFunctionDebugMetadata(contractClassId: Fr): Promise<FunctionDebugMetadata | undefined>;
|
|
81
84
|
/**
|
|
82
85
|
* Retrieve the function membership witness for the given contract class and function selector.
|
|
83
86
|
*
|
|
@@ -86,8 +89,8 @@ export declare class ContractStore {
|
|
|
86
89
|
* @returns A promise that resolves with the MembershipWitness instance for the specified contract's function.
|
|
87
90
|
*/
|
|
88
91
|
getFunctionMembershipWitness(contractClassId: Fr, selector: FunctionSelector): Promise<MembershipWitness<typeof FUNCTION_TREE_HEIGHT> | undefined>;
|
|
89
|
-
getDebugContractName(
|
|
90
|
-
getDebugFunctionName(
|
|
91
|
-
getFunctionCall(functionName: string, args: any[], to: AztecAddress): Promise<FunctionCall>;
|
|
92
|
+
getDebugContractName(contractClassId: Fr): Promise<string | undefined>;
|
|
93
|
+
getDebugFunctionName(contractClassId: Fr, selector: FunctionSelector): Promise<string>;
|
|
94
|
+
getFunctionCall(functionName: string, args: any[], to: AztecAddress, contractClassId: Fr): Promise<FunctionCall>;
|
|
92
95
|
}
|
|
93
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJhY3Rfc3RvcmUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zdG9yYWdlL2NvbnRyYWN0X3N0b3JlL2NvbnRyYWN0X3N0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDN0QsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXBELE9BQU8sRUFBRSxZQUFZLEVBQWlDLE1BQU0sNkJBQTZCLENBQUM7QUFDMUYsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNqRSxPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBaUIsTUFBTSxpQkFBaUIsQ0FBQztBQUN4RSxPQUFPLEVBQ0wsS0FBSyxnQkFBZ0IsRUFDckIsS0FBSyxnQ0FBZ0MsRUFDckMsWUFBWSxFQUNaLEtBQUsscUJBQXFCLEVBQzFCLGdCQUFnQixFQVFqQixNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMzRCxPQUFPLEVBQ0wsS0FBSyx1QkFBdUIsRUFDNUIsS0FBSyxtQkFBbUIsRUFDeEIsS0FBSyxtQ0FBbUMsRUFHekMsTUFBTSx3QkFBd0IsQ0FBQztBQU1oQzs7Ozs7R0FLRztBQUNILHFCQUFhLDZCQUE2QjtJQUN4QyxTQUFnQixPQUFPLElBQVc7SUFDbEMsU0FBZ0IsRUFBRSxFQUFFLEVBQUUsQ0FBQztJQUN2QixTQUFnQixZQUFZLEVBQUUsRUFBRSxDQUFDO0lBQ2pDLFNBQWdCLG9CQUFvQixFQUFFLEVBQUUsQ0FBQztJQUN6QyxTQUFnQix3QkFBd0IsRUFBRSxFQUFFLENBQUM7SUFDN0MsU0FBZ0IsZ0JBQWdCLEVBQUU7UUFBRSxRQUFRLEVBQUUsZ0JBQWdCLENBQUM7UUFBQyxNQUFNLEVBQUUsRUFBRSxDQUFBO0tBQUUsRUFBRSxD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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract_store.d.ts","sourceRoot":"","sources":["../../../src/storage/contract_store/contract_store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAiC,MAAM,6BAA6B,CAAC;AAC1F,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAE,iBAAiB,EAAiB,MAAM,iBAAiB,CAAC;AACxE,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,
|
|
1
|
+
{"version":3,"file":"contract_store.d.ts","sourceRoot":"","sources":["../../../src/storage/contract_store/contract_store.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
2
2
|
import { toArray } from '@aztec/foundation/iterable';
|
|
3
3
|
import { BufferReader, numToUInt8, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
4
|
-
import { FunctionCall, FunctionSelector, FunctionType, contractArtifactFromBuffer, contractArtifactToBuffer, encodeArguments, getFunctionDebugMetadata } from '@aztec/stdlib/abi';
|
|
4
|
+
import { FunctionCall, FunctionSelector, FunctionType, contractArtifactFromBuffer, contractArtifactToBuffer, encodeArguments, findFunctionAbiBySelector, findFunctionArtifactBySelector, getFunctionDebugMetadata } from '@aztec/stdlib/abi';
|
|
5
5
|
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
6
|
-
import {
|
|
6
|
+
import { SerializableContractInstancePreimage, getContractClassFromArtifact } from '@aztec/stdlib/contract';
|
|
7
7
|
import { PrivateFunctionsTree } from './private_functions_tree.js';
|
|
8
8
|
const VERSION = 1;
|
|
9
9
|
/**
|
|
@@ -63,7 +63,6 @@ const VERSION = 1;
|
|
|
63
63
|
* Artifacts are large but immutable after registration — safe to cache for the lifetime of the store.
|
|
64
64
|
*/ // TODO: Update it to be LRU cache so that it doesn't keep all the data all the time.
|
|
65
65
|
#contractArtifactCache = new Map();
|
|
66
|
-
/** Map from contract address to contract class id (avoids KV round-trip on hot path). */ #contractClassIdMap = new Map();
|
|
67
66
|
#store;
|
|
68
67
|
#contractArtifacts;
|
|
69
68
|
#contractClassData;
|
|
@@ -77,9 +76,10 @@ const VERSION = 1;
|
|
|
77
76
|
// Setters
|
|
78
77
|
/**
|
|
79
78
|
* Registers a new contract artifact and its corresponding class data.
|
|
80
|
-
*
|
|
81
|
-
*
|
|
82
|
-
*
|
|
79
|
+
*
|
|
80
|
+
* IMPORTANT: This method does not verify that the provided artifact matches the class data or that the class id
|
|
81
|
+
* matches the artifact. It is the caller's responsibility to ensure the consistency and correctness of the provided
|
|
82
|
+
* data. This is done to avoid redundant, expensive contract class computations.
|
|
83
83
|
*/ async addContractArtifact(contract, contractClassWithIdAndPreimage) {
|
|
84
84
|
const contractClass = contractClassWithIdAndPreimage ?? await getContractClassFromArtifact(contract);
|
|
85
85
|
const key = contractClass.id.toString();
|
|
@@ -99,21 +99,11 @@ const VERSION = 1;
|
|
|
99
99
|
return contractClass.id;
|
|
100
100
|
}
|
|
101
101
|
async addContractInstance(contract) {
|
|
102
|
-
this.#
|
|
103
|
-
|
|
102
|
+
await this.#store.transactionAsync(async ()=>{
|
|
103
|
+
await this.#contractInstances.set(contract.address.toString(), new SerializableContractInstancePreimage(contract).toBuffer());
|
|
104
|
+
});
|
|
104
105
|
}
|
|
105
106
|
// Private getters
|
|
106
|
-
async #getContractClassId(contractAddress) {
|
|
107
|
-
const key = contractAddress.toString();
|
|
108
|
-
if (!this.#contractClassIdMap.has(key)) {
|
|
109
|
-
const instance = await this.getContractInstance(contractAddress);
|
|
110
|
-
if (!instance) {
|
|
111
|
-
return;
|
|
112
|
-
}
|
|
113
|
-
this.#contractClassIdMap.set(key, instance.currentContractClassId);
|
|
114
|
-
}
|
|
115
|
-
return this.#contractClassIdMap.get(key);
|
|
116
|
-
}
|
|
117
107
|
async #getPrivateFunctionTreeForClassId(classId) {
|
|
118
108
|
if (!this.#privateFunctionTrees.has(classId.toString())) {
|
|
119
109
|
const artifact = await this.getContractArtifact(classId);
|
|
@@ -125,21 +115,17 @@ const VERSION = 1;
|
|
|
125
115
|
}
|
|
126
116
|
return this.#privateFunctionTrees.get(classId.toString());
|
|
127
117
|
}
|
|
128
|
-
async #getArtifactByAddress(contractAddress) {
|
|
129
|
-
const classId = await this.#getContractClassId(contractAddress);
|
|
130
|
-
return classId && this.getContractArtifact(classId);
|
|
131
|
-
}
|
|
132
118
|
// Public getters
|
|
133
119
|
getContractsAddresses() {
|
|
134
120
|
return this.#store.transactionAsync(async ()=>{
|
|
135
121
|
const keys = await toArray(this.#contractInstances.keysAsync());
|
|
136
|
-
return keys.map(AztecAddress.
|
|
122
|
+
return keys.map(AztecAddress.fromStringUnsafe);
|
|
137
123
|
});
|
|
138
124
|
}
|
|
139
|
-
/** Returns
|
|
125
|
+
/** Returns the address preimage of a given address. */ getContractInstance(contractAddress) {
|
|
140
126
|
return this.#store.transactionAsync(async ()=>{
|
|
141
127
|
const contract = await this.#contractInstances.getAsync(contractAddress.toString());
|
|
142
|
-
return contract &&
|
|
128
|
+
return contract && SerializableContractInstancePreimage.fromBuffer(contract).withAddress(contractAddress);
|
|
143
129
|
});
|
|
144
130
|
}
|
|
145
131
|
/** Returns the raw contract artifact for a given class id. */ async getContractArtifact(contractClassId) {
|
|
@@ -159,7 +145,7 @@ const VERSION = 1;
|
|
|
159
145
|
}
|
|
160
146
|
/** Returns a contract class for a given class id. */ async getContractClassWithPreimage(contractClassId) {
|
|
161
147
|
const key = contractClassId.toString();
|
|
162
|
-
const buf = await this.#contractClassData.getAsync(key);
|
|
148
|
+
const buf = await this.#store.transactionAsync(()=>this.#contractClassData.getAsync(key));
|
|
163
149
|
if (!buf) {
|
|
164
150
|
return undefined;
|
|
165
151
|
}
|
|
@@ -174,76 +160,68 @@ const VERSION = 1;
|
|
|
174
160
|
packedBytecode
|
|
175
161
|
};
|
|
176
162
|
}
|
|
177
|
-
async getContract(address) {
|
|
178
|
-
const instance = await this.getContractInstance(address);
|
|
179
|
-
if (!instance) {
|
|
180
|
-
return;
|
|
181
|
-
}
|
|
182
|
-
const artifact = await this.getContractArtifact(instance.currentContractClassId);
|
|
183
|
-
if (!artifact) {
|
|
184
|
-
return;
|
|
185
|
-
}
|
|
186
|
-
return {
|
|
187
|
-
...instance,
|
|
188
|
-
...artifact
|
|
189
|
-
};
|
|
190
|
-
}
|
|
191
163
|
/**
|
|
192
|
-
* Retrieves the artifact of a specified function within a given contract.
|
|
164
|
+
* Retrieves the artifact of a specified function within a given contract class.
|
|
193
165
|
*
|
|
194
|
-
* @param
|
|
166
|
+
* @param contractClassId - The id of the contract class containing the function.
|
|
195
167
|
* @param selector - The function selector.
|
|
196
|
-
* @returns The corresponding function's artifact as an object.
|
|
197
|
-
*/ async getFunctionArtifact(
|
|
198
|
-
const artifact = await this
|
|
168
|
+
* @returns The corresponding function's artifact as an object, or `undefined` if the class is not registered.
|
|
169
|
+
*/ async getFunctionArtifact(contractClassId, selector) {
|
|
170
|
+
const artifact = await this.getContractArtifact(contractClassId);
|
|
199
171
|
if (!artifact) {
|
|
200
172
|
return undefined;
|
|
201
173
|
}
|
|
202
|
-
const fn = await
|
|
203
|
-
|
|
174
|
+
const fn = assertSelectorInArtifact(artifact, await findFunctionArtifactBySelector(artifact, selector), {
|
|
175
|
+
contractClassId,
|
|
176
|
+
selector
|
|
177
|
+
});
|
|
178
|
+
return {
|
|
204
179
|
...fn,
|
|
205
180
|
contractName: artifact.name
|
|
206
181
|
};
|
|
207
182
|
}
|
|
208
|
-
|
|
209
|
-
|
|
183
|
+
/**
|
|
184
|
+
* Same as {@link getFunctionArtifact} but with debug metadata attached. Returns `undefined` when the class artifact
|
|
185
|
+
* is not registered.
|
|
186
|
+
*/ async getFunctionArtifactWithDebugMetadata(contractClassId, selector) {
|
|
187
|
+
const artifact = await this.getContractArtifact(contractClassId);
|
|
210
188
|
if (!artifact) {
|
|
211
|
-
|
|
189
|
+
return undefined;
|
|
212
190
|
}
|
|
213
|
-
const
|
|
191
|
+
const fn = assertSelectorInArtifact(artifact, await findFunctionArtifactBySelector(artifact, selector), {
|
|
192
|
+
contractClassId,
|
|
193
|
+
selector
|
|
194
|
+
});
|
|
214
195
|
return {
|
|
215
|
-
...
|
|
216
|
-
|
|
196
|
+
...fn,
|
|
197
|
+
contractName: artifact.name,
|
|
198
|
+
debug: getFunctionDebugMetadata(artifact, fn)
|
|
217
199
|
};
|
|
218
200
|
}
|
|
219
|
-
async getPublicFunctionArtifact(
|
|
220
|
-
const artifact = await this
|
|
201
|
+
async getPublicFunctionArtifact(contractClassId) {
|
|
202
|
+
const artifact = await this.getContractArtifact(contractClassId);
|
|
221
203
|
const fn = artifact && artifact.functions.find((f)=>f.functionType === FunctionType.PUBLIC);
|
|
222
204
|
return fn && {
|
|
223
205
|
...fn,
|
|
224
206
|
contractName: artifact.name
|
|
225
207
|
};
|
|
226
208
|
}
|
|
227
|
-
async getFunctionAbi(contractAddress, selector) {
|
|
228
|
-
const artifact = await this.#getArtifactByAddress(contractAddress);
|
|
229
|
-
return artifact && await this.#findFunctionAbiBySelector(artifact, selector);
|
|
230
|
-
}
|
|
231
209
|
/**
|
|
232
|
-
* Retrieves the debug metadata of a specified function within a given contract.
|
|
210
|
+
* Retrieves the debug metadata of a specified function within a given contract class.
|
|
233
211
|
*
|
|
234
|
-
* @param
|
|
212
|
+
* @param contractClassId - The id of the contract class containing the function.
|
|
235
213
|
* @param selector - The function selector.
|
|
236
214
|
* @returns The corresponding function's debug metadata, or undefined.
|
|
237
|
-
*/ async getFunctionDebugMetadata(
|
|
238
|
-
const artifact = await this
|
|
215
|
+
*/ async getFunctionDebugMetadata(contractClassId, selector) {
|
|
216
|
+
const artifact = await this.getContractArtifact(contractClassId);
|
|
239
217
|
if (!artifact) {
|
|
240
218
|
return undefined;
|
|
241
219
|
}
|
|
242
|
-
const fn = await
|
|
220
|
+
const fn = await findFunctionArtifactBySelector(artifact, selector);
|
|
243
221
|
return fn && getFunctionDebugMetadata(artifact, fn);
|
|
244
222
|
}
|
|
245
|
-
async getPublicFunctionDebugMetadata(
|
|
246
|
-
const artifact = await this
|
|
223
|
+
async getPublicFunctionDebugMetadata(contractClassId) {
|
|
224
|
+
const artifact = await this.getContractArtifact(contractClassId);
|
|
247
225
|
const fn = artifact && artifact.functions.find((f)=>f.functionType === FunctionType.PUBLIC);
|
|
248
226
|
return fn && getFunctionDebugMetadata(artifact, fn);
|
|
249
227
|
}
|
|
@@ -257,42 +235,23 @@ const VERSION = 1;
|
|
|
257
235
|
const tree = await this.#getPrivateFunctionTreeForClassId(contractClassId);
|
|
258
236
|
return tree?.getFunctionMembershipWitness(selector);
|
|
259
237
|
}
|
|
260
|
-
async getDebugContractName(
|
|
261
|
-
const artifact = await this
|
|
238
|
+
async getDebugContractName(contractClassId) {
|
|
239
|
+
const artifact = await this.getContractArtifact(contractClassId);
|
|
262
240
|
return artifact?.name;
|
|
263
241
|
}
|
|
264
|
-
async getDebugFunctionName(
|
|
265
|
-
const artifact = await this
|
|
266
|
-
const fn = artifact && await
|
|
267
|
-
return `${artifact?.name ??
|
|
268
|
-
}
|
|
269
|
-
async #findFunctionArtifactBySelector(artifact, selector) {
|
|
270
|
-
for (const fn of artifact.functions){
|
|
271
|
-
const fnSelector = await FunctionSelector.fromNameAndParameters(fn.name, fn.parameters);
|
|
272
|
-
if (fnSelector.equals(selector)) {
|
|
273
|
-
return fn;
|
|
274
|
-
}
|
|
275
|
-
}
|
|
276
|
-
}
|
|
277
|
-
async #findFunctionAbiBySelector(artifact, selector) {
|
|
278
|
-
for (const fn of [
|
|
279
|
-
...artifact.functions,
|
|
280
|
-
...artifact.nonDispatchPublicFunctions ?? []
|
|
281
|
-
]){
|
|
282
|
-
const fnSelector = await FunctionSelector.fromNameAndParameters(fn.name, fn.parameters);
|
|
283
|
-
if (fnSelector.equals(selector)) {
|
|
284
|
-
return fn;
|
|
285
|
-
}
|
|
286
|
-
}
|
|
242
|
+
async getDebugFunctionName(contractClassId, selector) {
|
|
243
|
+
const artifact = await this.getContractArtifact(contractClassId);
|
|
244
|
+
const fn = artifact && await findFunctionAbiBySelector(artifact, selector);
|
|
245
|
+
return `${artifact?.name ?? contractClassId}:${fn?.name ?? selector}`;
|
|
287
246
|
}
|
|
288
|
-
async getFunctionCall(functionName, args, to) {
|
|
289
|
-
const
|
|
290
|
-
if (!
|
|
291
|
-
throw new Error(`
|
|
247
|
+
async getFunctionCall(functionName, args, to, contractClassId) {
|
|
248
|
+
const artifact = await this.getContractArtifact(contractClassId);
|
|
249
|
+
if (!artifact) {
|
|
250
|
+
throw new Error(`No artifact registered for contract class ${contractClassId} (contract ${to}): register it by calling ` + `wallet.registerContract(...).\nSee docs for context: https://docs.aztec.network/errors/14`);
|
|
292
251
|
}
|
|
293
|
-
const functionDao =
|
|
252
|
+
const functionDao = artifact.functions.find((f)=>f.name === functionName);
|
|
294
253
|
if (!functionDao) {
|
|
295
|
-
throw new Error(`Unknown function ${functionName} in contract ${
|
|
254
|
+
throw new Error(`Unknown function ${functionName} in contract ${artifact.name}.`);
|
|
296
255
|
}
|
|
297
256
|
const selector = await FunctionSelector.fromNameAndParameters(functionDao.name, functionDao.parameters);
|
|
298
257
|
return FunctionCall.from({
|
|
@@ -307,3 +266,16 @@ const VERSION = 1;
|
|
|
307
266
|
});
|
|
308
267
|
}
|
|
309
268
|
}
|
|
269
|
+
/**
|
|
270
|
+
* Narrows the result of a selector lookup against a registered artifact. A missing class artifact is reported as
|
|
271
|
+
* `undefined` by the callers (an absence they can handle), but a selector that is absent from an artifact we *do* have
|
|
272
|
+
* is exceptional and throws rather than returning undefined. We cannot tell from here why the selector is missing: it
|
|
273
|
+
* may be that no such function exists in the contract (a wrong selector), or that the registered artifact does not
|
|
274
|
+
* correspond to the resolved class id (registration performs no validation, so a mismatched artifact is possible). The
|
|
275
|
+
* error names both possibilities.
|
|
276
|
+
*/ function assertSelectorInArtifact(artifact, fn, context) {
|
|
277
|
+
if (!fn) {
|
|
278
|
+
throw new Error(`Function with selector ${context.selector} not found in the registered artifact for contract class ` + `${context.contractClassId} (${artifact.name}). Either no function with this selector exists in the ` + `contract, or the registered artifact does not match the class id (re-register it via ` + `wallet.registerContract(...)).`);
|
|
279
|
+
}
|
|
280
|
+
return fn;
|
|
281
|
+
}
|