@aztec-labs/pxe 6.0.0-nightly.20260829
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/README.md +13 -0
- package/dest/bin/check_oracle_version.d.ts +2 -0
- package/dest/bin/check_oracle_version.d.ts.map +1 -0
- package/dest/bin/check_oracle_version.js +22 -0
- 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 +20 -0
- package/dest/bin/oracle_version_helpers.d.ts.map +1 -0
- package/dest/bin/oracle_version_helpers.js +25 -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 +47 -0
- package/dest/block_synchronizer/block_synchronizer.d.ts.map +1 -0
- package/dest/block_synchronizer/block_synchronizer.js +192 -0
- package/dest/block_synchronizer/index.d.ts +2 -0
- package/dest/block_synchronizer/index.d.ts.map +1 -0
- package/dest/block_synchronizer/index.js +1 -0
- package/dest/config/index.d.ts +57 -0
- package/dest/config/index.d.ts.map +1 -0
- package/dest/config/index.js +80 -0
- package/dest/config/package_info.d.ts +5 -0
- package/dest/config/package_info.d.ts.map +1 -0
- package/dest/config/package_info.js +6 -0
- package/dest/contract/contract_call_graph.d.ts +51 -0
- package/dest/contract/contract_call_graph.d.ts.map +1 -0
- package/dest/contract/contract_call_graph.js +91 -0
- package/dest/contract/contract_class_service.d.ts +24 -0
- package/dest/contract/contract_class_service.d.ts.map +1 -0
- package/dest/contract/contract_class_service.js +36 -0
- package/dest/contract/contract_sync_service.d.ts +82 -0
- package/dest/contract/contract_sync_service.d.ts.map +1 -0
- package/dest/contract/contract_sync_service.js +210 -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/skip_sync_contracts.d.ts +11 -0
- package/dest/contract/skip_sync_contracts.d.ts.map +1 -0
- package/dest/contract/skip_sync_contracts.js +18 -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 +114 -0
- package/dest/contract_function_simulator/contract_function_simulator.d.ts.map +1 -0
- package/dest/contract_function_simulator/contract_function_simulator.js +495 -0
- 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 +98 -0
- package/dest/contract_function_simulator/execution_note_cache.d.ts.map +1 -0
- package/dest/contract_function_simulator/execution_note_cache.js +189 -0
- package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts +12 -0
- package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts.map +1 -0
- package/dest/contract_function_simulator/execution_tagging_index_cache.js +30 -0
- package/dest/contract_function_simulator/hashed_values_cache.d.ts +28 -0
- package/dest/contract_function_simulator/hashed_values_cache.d.ts.map +1 -0
- package/dest/contract_function_simulator/hashed_values_cache.js +36 -0
- package/dest/contract_function_simulator/index.d.ts +36 -0
- package/dest/contract_function_simulator/index.d.ts.map +1 -0
- package/dest/contract_function_simulator/index.js +20 -0
- 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 +20 -0
- package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts.map +1 -0
- package/dest/contract_function_simulator/noir-structs/event_validation_request.js +39 -0
- 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 +25 -0
- package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts.map +1 -0
- package/dest/contract_function_simulator/noir-structs/log_retrieval_request.js +14 -0
- package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts +19 -0
- package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts.map +1 -0
- package/dest/contract_function_simulator/noir-structs/log_retrieval_response.js +4 -0
- 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 +22 -0
- package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts.map +1 -0
- package/dest/contract_function_simulator/noir-structs/note_validation_request.js +47 -0
- package/dest/contract_function_simulator/noir-structs/nullifier_membership_witness_data.d.ts +12 -0
- package/dest/contract_function_simulator/noir-structs/nullifier_membership_witness_data.d.ts.map +1 -0
- package/dest/contract_function_simulator/noir-structs/nullifier_membership_witness_data.js +6 -0
- 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/public_data_witness_data.d.ts +13 -0
- package/dest/contract_function_simulator/noir-structs/public_data_witness_data.d.ts.map +1 -0
- package/dest/contract_function_simulator/noir-structs/public_data_witness_data.js +3 -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 +19 -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 +9 -0
- package/dest/contract_function_simulator/noir-structs/tx_effect_data.d.ts +15 -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 +11 -0
- package/dest/contract_function_simulator/noir-structs/utility_context.d.ts.map +1 -0
- package/dest/contract_function_simulator/noir-structs/utility_context.js +3 -0
- 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 +3 -0
- package/dest/contract_function_simulator/oracle/index.d.ts.map +1 -0
- package/dest/contract_function_simulator/oracle/index.js +2 -0
- package/dest/contract_function_simulator/oracle/interfaces.d.ts +24 -0
- package/dest/contract_function_simulator/oracle/interfaces.d.ts.map +1 -0
- package/dest/contract_function_simulator/oracle/interfaces.js +4 -0
- 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/note_packing_utils.d.ts +28 -0
- package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts.map +1 -0
- package/dest/contract_function_simulator/oracle/note_packing_utils.js +54 -0
- 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 +1024 -0
- package/dest/contract_function_simulator/oracle/oracle_type_mappings.d.ts +292 -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 +1258 -0
- package/dest/contract_function_simulator/oracle/private_execution.d.ts +23 -0
- package/dest/contract_function_simulator/oracle/private_execution.d.ts.map +1 -0
- package/dest/contract_function_simulator/oracle/private_execution.js +88 -0
- package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts +226 -0
- package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts.map +1 -0
- package/dest/contract_function_simulator/oracle/private_execution_oracle.js +585 -0
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts +333 -0
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts.map +1 -0
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.js +900 -0
- package/dest/contract_function_simulator/pick_notes.d.ts +85 -0
- package/dest/contract_function_simulator/pick_notes.d.ts.map +1 -0
- package/dest/contract_function_simulator/pick_notes.js +68 -0
- 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 +38 -0
- package/dest/debug/pxe_debug_utils.d.ts.map +1 -0
- package/dest/debug/pxe_debug_utils.js +44 -0
- package/dest/entrypoints/client/bundle/index.d.ts +10 -0
- package/dest/entrypoints/client/bundle/index.d.ts.map +1 -0
- package/dest/entrypoints/client/bundle/index.js +8 -0
- package/dest/entrypoints/client/bundle/utils.d.ts +16 -0
- package/dest/entrypoints/client/bundle/utils.d.ts.map +1 -0
- package/dest/entrypoints/client/bundle/utils.js +78 -0
- package/dest/entrypoints/client/lazy/index.d.ts +10 -0
- package/dest/entrypoints/client/lazy/index.d.ts.map +1 -0
- package/dest/entrypoints/client/lazy/index.js +8 -0
- package/dest/entrypoints/client/lazy/utils.d.ts +15 -0
- package/dest/entrypoints/client/lazy/utils.d.ts.map +1 -0
- package/dest/entrypoints/client/lazy/utils.js +77 -0
- 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 +42 -0
- package/dest/entrypoints/pxe_creation_options.d.ts +32 -0
- package/dest/entrypoints/pxe_creation_options.d.ts.map +1 -0
- package/dest/entrypoints/pxe_creation_options.js +3 -0
- package/dest/entrypoints/server/circuit_recording/circuit_recorder.d.ts +121 -0
- package/dest/entrypoints/server/circuit_recording/circuit_recorder.d.ts.map +1 -0
- package/dest/entrypoints/server/circuit_recording/circuit_recorder.js +208 -0
- package/dest/entrypoints/server/circuit_recording/file_circuit_recorder.d.ts +20 -0
- package/dest/entrypoints/server/circuit_recording/file_circuit_recorder.d.ts.map +1 -0
- package/dest/entrypoints/server/circuit_recording/file_circuit_recorder.js +131 -0
- package/dest/entrypoints/server/circuit_recording/memory_circuit_recorder.d.ts +10 -0
- package/dest/entrypoints/server/circuit_recording/memory_circuit_recorder.d.ts.map +1 -0
- package/dest/entrypoints/server/circuit_recording/memory_circuit_recorder.js +9 -0
- package/dest/entrypoints/server/circuit_recording/simulator_recorder_wrapper.d.ts +18 -0
- package/dest/entrypoints/server/circuit_recording/simulator_recorder_wrapper.d.ts.map +1 -0
- package/dest/entrypoints/server/circuit_recording/simulator_recorder_wrapper.js +41 -0
- package/dest/entrypoints/server/index.d.ts +17 -0
- package/dest/entrypoints/server/index.d.ts.map +1 -0
- package/dest/entrypoints/server/index.js +14 -0
- 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 +9 -0
- package/dest/entrypoints/server/utils.d.ts.map +1 -0
- package/dest/entrypoints/server/utils.js +84 -0
- package/dest/error_enriching.d.ts +13 -0
- package/dest/error_enriching.d.ts.map +1 -0
- package/dest/error_enriching.js +80 -0
- package/dest/events/event_service.d.ts +30 -0
- package/dest/events/event_service.d.ts.map +1 -0
- package/dest/events/event_service.js +76 -0
- package/dest/events/index.d.ts +2 -0
- package/dest/events/index.d.ts.map +1 -0
- package/dest/events/index.js +1 -0
- package/dest/events/private_event_filter_validator.d.ts +10 -0
- package/dest/events/private_event_filter_validator.d.ts.map +1 -0
- package/dest/events/private_event_filter_validator.js +53 -0
- package/dest/hooks/authorize_utility_call.d.ts +41 -0
- package/dest/hooks/authorize_utility_call.d.ts.map +1 -0
- package/dest/hooks/authorize_utility_call.js +4 -0
- package/dest/hooks/execution_hooks.d.ts +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 +40 -0
- package/dest/logs/log_service.d.ts.map +1 -0
- package/dest/logs/log_service.js +217 -0
- package/dest/messages/tx_resolver_service.d.ts +28 -0
- package/dest/messages/tx_resolver_service.d.ts.map +1 -0
- package/dest/messages/tx_resolver_service.js +62 -0
- package/dest/node/benchmarked_node.d.ts +22 -0
- package/dest/node/benchmarked_node.d.ts.map +1 -0
- package/dest/node/benchmarked_node.js +93 -0
- package/dest/node/caching_aztec_node.d.ts +24 -0
- package/dest/node/caching_aztec_node.d.ts.map +1 -0
- package/dest/node/caching_aztec_node.js +268 -0
- package/dest/notes/index.d.ts +2 -0
- package/dest/notes/index.d.ts.map +1 -0
- package/dest/notes/index.js +1 -0
- package/dest/notes/note_service.d.ts +77 -0
- package/dest/notes/note_service.d.ts.map +1 -0
- package/dest/notes/note_service.js +173 -0
- package/dest/notes_filter.d.ts +24 -0
- package/dest/notes_filter.d.ts.map +1 -0
- package/dest/notes_filter.js +4 -0
- package/dest/operation_lifecycle.d.ts +45 -0
- package/dest/operation_lifecycle.d.ts.map +1 -0
- package/dest/operation_lifecycle.js +68 -0
- package/dest/operation_queue.d.ts +75 -0
- package/dest/operation_queue.d.ts.map +1 -0
- package/dest/operation_queue.js +100 -0
- package/dest/oracle_version.d.ts +4 -0
- package/dest/oracle_version.d.ts.map +1 -0
- package/dest/oracle_version.js +21 -0
- 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_expiration_timestamp.js +41 -0
- package/dest/private_kernel/hints/index.d.ts +3 -0
- package/dest/private_kernel/hints/index.d.ts.map +1 -0
- package/dest/private_kernel/hints/index.js +2 -0
- package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.d.ts +29 -0
- package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.d.ts.map +1 -0
- package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.js +343 -0
- package/dest/private_kernel/hints/test_utils.d.ts +122 -0
- package/dest/private_kernel/hints/test_utils.d.ts.map +1 -0
- package/dest/private_kernel/hints/test_utils.js +202 -0
- package/dest/private_kernel/index.d.ts +3 -0
- package/dest/private_kernel/index.d.ts.map +1 -0
- package/dest/private_kernel/index.js +2 -0
- package/dest/private_kernel/private_kernel_execution_prover.d.ts +49 -0
- package/dest/private_kernel/private_kernel_execution_prover.d.ts.map +1 -0
- package/dest/private_kernel/private_kernel_execution_prover.js +408 -0
- package/dest/private_kernel/private_kernel_oracle.d.ts +65 -0
- package/dest/private_kernel/private_kernel_oracle.d.ts.map +1 -0
- package/dest/private_kernel/private_kernel_oracle.js +110 -0
- package/dest/pxe.d.ts +364 -0
- package/dest/pxe.d.ts.map +1 -0
- package/dest/pxe.js +903 -0
- package/dest/storage/address_store/address_store.d.ts +11 -0
- package/dest/storage/address_store/address_store.d.ts.map +1 -0
- package/dest/storage/address_store/address_store.js +49 -0
- package/dest/storage/address_store/index.d.ts +2 -0
- package/dest/storage/address_store/index.d.ts.map +1 -0
- package/dest/storage/address_store/index.js +1 -0
- package/dest/storage/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 +20 -0
- package/dest/storage/anchor_block_store/anchor_block_store.d.ts.map +1 -0
- package/dest/storage/anchor_block_store/anchor_block_store.js +28 -0
- package/dest/storage/anchor_block_store/index.d.ts +2 -0
- package/dest/storage/anchor_block_store/index.d.ts.map +1 -0
- package/dest/storage/anchor_block_store/index.js +1 -0
- package/dest/storage/backwards_compatibility_tests/kv_store_snapshot.d.ts +42 -0
- package/dest/storage/backwards_compatibility_tests/kv_store_snapshot.d.ts.map +1 -0
- package/dest/storage/backwards_compatibility_tests/kv_store_snapshot.js +93 -0
- package/dest/storage/backwards_compatibility_tests/schema_tests.d.ts +15 -0
- package/dest/storage/backwards_compatibility_tests/schema_tests.d.ts.map +1 -0
- package/dest/storage/backwards_compatibility_tests/schema_tests.js +674 -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/base_staging_store.d.ts +110 -0
- package/dest/storage/base_staging_store.d.ts.map +1 -0
- package/dest/storage/base_staging_store.js +141 -0
- package/dest/storage/capsule_store/capsule_service.d.ts +22 -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 +72 -0
- package/dest/storage/capsule_store/capsule_store.d.ts.map +1 -0
- package/dest/storage/capsule_store/capsule_store.js +256 -0
- package/dest/storage/capsule_store/index.d.ts +3 -0
- package/dest/storage/capsule_store/index.d.ts.map +1 -0
- package/dest/storage/capsule_store/index.js +2 -0
- package/dest/storage/contract_store/contract_store.d.ts +96 -0
- package/dest/storage/contract_store/contract_store.d.ts.map +1 -0
- package/dest/storage/contract_store/contract_store.js +282 -0
- package/dest/storage/contract_store/index.d.ts +2 -0
- package/dest/storage/contract_store/index.d.ts.map +1 -0
- package/dest/storage/contract_store/index.js +1 -0
- package/dest/storage/contract_store/private_functions_tree.d.ts +27 -0
- package/dest/storage/contract_store/private_functions_tree.d.ts.map +1 -0
- package/dest/storage/contract_store/private_functions_tree.js +48 -0
- package/dest/storage/fact_store/fact_service.d.ts +23 -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 +101 -0
- package/dest/storage/fact_store/fact_store.d.ts.map +1 -0
- package/dest/storage/fact_store/fact_store.js +350 -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 +59 -0
- package/dest/storage/fact_store/origin_state.d.ts.map +1 -0
- package/dest/storage/fact_store/origin_state.js +60 -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 +10 -0
- package/dest/storage/index.d.ts.map +1 -0
- package/dest/storage/index.js +9 -0
- package/dest/storage/metadata.d.ts +2 -0
- package/dest/storage/metadata.d.ts.map +1 -0
- package/dest/storage/metadata.js +1 -0
- package/dest/storage/note_store/index.d.ts +3 -0
- package/dest/storage/note_store/index.d.ts.map +1 -0
- package/dest/storage/note_store/index.js +2 -0
- package/dest/storage/note_store/note_store.d.ts +92 -0
- package/dest/storage/note_store/note_store.d.ts.map +1 -0
- package/dest/storage/note_store/note_store.js +273 -0
- package/dest/storage/note_store/stored_note.d.ts +11 -0
- package/dest/storage/note_store/stored_note.d.ts.map +1 -0
- package/dest/storage/note_store/stored_note.js +27 -0
- package/dest/storage/note_store/test_utils.d.ts +9 -0
- package/dest/storage/note_store/test_utils.d.ts.map +1 -0
- package/dest/storage/note_store/test_utils.js +10 -0
- 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 +90 -0
- package/dest/storage/private_event_store/private_event_store.d.ts.map +1 -0
- package/dest/storage/private_event_store/private_event_store.js +276 -0
- package/dest/storage/private_event_store/stored_private_event.d.ts +23 -0
- package/dest/storage/private_event_store/stored_private_event.d.ts.map +1 -0
- package/dest/storage/private_event_store/stored_private_event.js +56 -0
- package/dest/storage/rollbackable.d.ts +15 -0
- package/dest/storage/rollbackable.d.ts.map +1 -0
- package/dest/storage/rollbackable.js +3 -0
- package/dest/storage/staged_write_coordinator.d.ts +103 -0
- package/dest/storage/staged_write_coordinator.d.ts.map +1 -0
- package/dest/storage/staged_write_coordinator.js +141 -0
- 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 +4 -0
- package/dest/storage/tagging_store/index.d.ts.map +1 -0
- package/dest/storage/tagging_store/index.js +3 -0
- package/dest/storage/tagging_store/recipient_tagging_store.d.ts +36 -0
- package/dest/storage/tagging_store/recipient_tagging_store.d.ts.map +1 -0
- package/dest/storage/tagging_store/recipient_tagging_store.js +74 -0
- package/dest/storage/tagging_store/sender_tagging_store.d.ts +113 -0
- package/dest/storage/tagging_store/sender_tagging_store.d.ts.map +1 -0
- package/dest/storage/tagging_store/sender_tagging_store.js +432 -0
- 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 +11 -0
- package/dest/tagging/constants.d.ts.map +1 -0
- package/dest/tagging/constants.js +38 -0
- package/dest/tagging/get_all_logs_by_tags.d.ts +69 -0
- package/dest/tagging/get_all_logs_by_tags.d.ts.map +1 -0
- package/dest/tagging/get_all_logs_by_tags.js +79 -0
- package/dest/tagging/index.d.ts +18 -0
- package/dest/tagging/index.d.ts.map +1 -0
- package/dest/tagging/index.js +16 -0
- package/dest/tagging/persist_sender_tagging_index_ranges.d.ts +31 -0
- package/dest/tagging/persist_sender_tagging_index_ranges.d.ts.map +1 -0
- package/dest/tagging/persist_sender_tagging_index_ranges.js +43 -0
- package/dest/tagging/recipient_sync/sync_tagged_private_logs.d.ts +75 -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 +235 -0
- package/dest/tagging/recipient_sync/utils/find_highest_indexes.d.ts +12 -0
- package/dest/tagging/recipient_sync/utils/find_highest_indexes.d.ts.map +1 -0
- package/dest/tagging/recipient_sync/utils/find_highest_indexes.js +20 -0
- package/dest/tagging/reconcile_tagging_index_ranges.d.ts +36 -0
- package/dest/tagging/reconcile_tagging_index_ranges.d.ts.map +1 -0
- package/dest/tagging/reconcile_tagging_index_ranges.js +74 -0
- package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts +20 -0
- package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts.map +1 -0
- package/dest/tagging/sender_sync/sync_sender_tagging_indexes.js +77 -0
- package/dest/tagging/sender_sync/utils/classify_pending_txs.d.ts +22 -0
- package/dest/tagging/sender_sync/utils/classify_pending_txs.d.ts.map +1 -0
- package/dest/tagging/sender_sync/utils/classify_pending_txs.js +62 -0
- package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts +30 -0
- package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts.map +1 -0
- package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.js +74 -0
- package/dest/tagging/sender_sync/utils/resolve_pending_txs.d.ts +29 -0
- package/dest/tagging/sender_sync/utils/resolve_pending_txs.d.ts.map +1 -0
- package/dest/tagging/sender_sync/utils/resolve_pending_txs.js +42 -0
- package/dest/tagging/sender_sync/utils/test_utils.d.ts +16 -0
- package/dest/tagging/sender_sync/utils/test_utils.d.ts.map +1 -0
- package/dest/tagging/sender_sync/utils/test_utils.js +24 -0
- package/dest/tagging/testing/tag_query_test_utils.d.ts +6 -0
- package/dest/tagging/testing/tag_query_test_utils.d.ts.map +1 -0
- package/dest/tagging/testing/tag_query_test_utils.js +10 -0
- package/dest/test_utils.d.ts +3 -0
- package/dest/test_utils.d.ts.map +1 -0
- package/dest/test_utils.js +1 -0
- package/package.json +119 -0
- package/src/bin/check_oracle_version.ts +28 -0
- package/src/bin/index.ts +1 -0
- package/src/bin/oracle_version_helpers.ts +30 -0
- package/src/block_synchronizer/block_stream_source.ts +48 -0
- package/src/block_synchronizer/block_synchronizer.ts +225 -0
- package/src/block_synchronizer/index.ts +1 -0
- package/src/config/index.ts +141 -0
- package/src/config/package_info.ts +3 -0
- package/src/contract/contract_call_graph.ts +121 -0
- package/src/contract/contract_class_service.ts +45 -0
- package/src/contract/contract_sync_service.ts +349 -0
- package/src/contract/helpers.ts +35 -0
- package/src/contract/skip_sync_contracts.ts +23 -0
- package/src/contract_function_simulator/anchored_contract_data.ts +74 -0
- package/src/contract_function_simulator/contract_function_simulator.ts +928 -0
- package/src/contract_function_simulator/ephemeral_array_service.ts +110 -0
- package/src/contract_function_simulator/execution_note_cache.ts +232 -0
- package/src/contract_function_simulator/execution_tagging_index_cache.ts +33 -0
- package/src/contract_function_simulator/hashed_values_cache.ts +47 -0
- package/src/contract_function_simulator/index.ts +107 -0
- 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 +52 -0
- 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 +35 -0
- package/src/contract_function_simulator/noir-structs/log_retrieval_response.ts +19 -0
- package/src/contract_function_simulator/noir-structs/note_data.ts +27 -0
- package/src/contract_function_simulator/noir-structs/note_validation_request.ts +59 -0
- package/src/contract_function_simulator/noir-structs/nullifier_membership_witness_data.ts +15 -0
- 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/public_data_witness_data.ts +13 -0
- package/src/contract_function_simulator/noir-structs/resolved_tagging_strategy.ts +66 -0
- package/src/contract_function_simulator/noir-structs/resolved_tx.ts +19 -0
- package/src/contract_function_simulator/noir-structs/tx_effect_data.ts +16 -0
- package/src/contract_function_simulator/noir-structs/utility_context.ts +11 -0
- package/src/contract_function_simulator/oracle/acir_callback.ts +154 -0
- package/src/contract_function_simulator/oracle/index.ts +2 -0
- package/src/contract_function_simulator/oracle/interfaces.ts +20 -0
- package/src/contract_function_simulator/oracle/legacy_oracle_registry.ts +147 -0
- package/src/contract_function_simulator/oracle/note_packing_utils.ts +68 -0
- package/src/contract_function_simulator/oracle/oracle_registry.ts +709 -0
- package/src/contract_function_simulator/oracle/oracle_type_mappings.ts +1089 -0
- package/src/contract_function_simulator/oracle/private_execution.ts +140 -0
- package/src/contract_function_simulator/oracle/private_execution_oracle.ts +812 -0
- package/src/contract_function_simulator/oracle/utility_execution_oracle.ts +1341 -0
- package/src/contract_function_simulator/pick_notes.ts +160 -0
- 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 +89 -0
- package/src/entrypoints/client/bundle/index.ts +9 -0
- package/src/entrypoints/client/bundle/utils.ts +89 -0
- package/src/entrypoints/client/lazy/index.ts +9 -0
- package/src/entrypoints/client/lazy/utils.ts +89 -0
- package/src/entrypoints/client/store.ts +54 -0
- package/src/entrypoints/pxe_creation_options.ts +34 -0
- package/src/entrypoints/server/circuit_recording/circuit_recorder.ts +267 -0
- package/src/entrypoints/server/circuit_recording/file_circuit_recorder.ts +152 -0
- package/src/entrypoints/server/circuit_recording/memory_circuit_recorder.ts +13 -0
- package/src/entrypoints/server/circuit_recording/simulator_recorder_wrapper.ts +90 -0
- package/src/entrypoints/server/index.ts +17 -0
- package/src/entrypoints/server/store.ts +46 -0
- package/src/entrypoints/server/utils.ts +103 -0
- package/src/error_enriching.ts +124 -0
- package/src/events/event_service.ts +129 -0
- package/src/events/index.ts +1 -0
- package/src/events/private_event_filter_validator.ts +66 -0
- package/src/hooks/authorize_utility_call.ts +44 -0
- package/src/hooks/execution_hooks.ts +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 +295 -0
- package/src/messages/tx_resolver_service.ts +81 -0
- package/src/node/benchmarked_node.ts +141 -0
- package/src/node/caching_aztec_node.ts +407 -0
- package/src/notes/index.ts +1 -0
- package/src/notes/note_service.ts +238 -0
- package/src/notes_filter.ts +24 -0
- package/src/operation_lifecycle.ts +99 -0
- package/src/operation_queue.ts +149 -0
- package/src/oracle_version.ts +22 -0
- package/src/private_kernel/batch_planner.ts +168 -0
- package/src/private_kernel/hints/compute_tx_expiration_timestamp.ts +58 -0
- package/src/private_kernel/hints/index.ts +2 -0
- package/src/private_kernel/hints/private_kernel_reset_private_inputs_builder.ts +553 -0
- package/src/private_kernel/hints/test_utils.ts +318 -0
- package/src/private_kernel/index.ts +2 -0
- package/src/private_kernel/private_kernel_execution_prover.ts +656 -0
- package/src/private_kernel/private_kernel_oracle.ts +184 -0
- package/src/pxe.ts +1417 -0
- package/src/storage/address_store/address_store.ts +66 -0
- package/src/storage/address_store/index.ts +1 -0
- package/src/storage/allowed_scopes.ts +14 -0
- package/src/storage/anchor_block_store/anchor_block_store.ts +35 -0
- package/src/storage/anchor_block_store/index.ts +1 -0
- package/src/storage/backwards_compatibility_tests/__snapshots__/AddressStore.json +22 -0
- package/src/storage/backwards_compatibility_tests/__snapshots__/AnchorBlockStore.json +3 -0
- package/src/storage/backwards_compatibility_tests/__snapshots__/CapsuleStore.json +16 -0
- package/src/storage/backwards_compatibility_tests/__snapshots__/ContractStore.json +28 -0
- package/src/storage/backwards_compatibility_tests/__snapshots__/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 +813 -0
- package/src/storage/backwards_compatibility_tests/store_spy.ts +73 -0
- package/src/storage/base_staging_store.ts +227 -0
- package/src/storage/capsule_store/capsule_service.ts +97 -0
- package/src/storage/capsule_store/capsule_store.ts +349 -0
- package/src/storage/capsule_store/index.ts +2 -0
- package/src/storage/contract_store/contract_store.ts +403 -0
- package/src/storage/contract_store/index.ts +1 -0
- package/src/storage/contract_store/private_functions_tree.ts +68 -0
- package/src/storage/fact_store/fact_service.ts +70 -0
- package/src/storage/fact_store/fact_store.ts +424 -0
- package/src/storage/fact_store/fact_store_keys.ts +75 -0
- package/src/storage/fact_store/index.ts +15 -0
- package/src/storage/fact_store/origin_state.ts +84 -0
- package/src/storage/fact_store/stored_fact.ts +80 -0
- package/src/storage/index.ts +9 -0
- package/src/storage/metadata.ts +1 -0
- package/src/storage/note_store/index.ts +2 -0
- package/src/storage/note_store/note_store.ts +367 -0
- package/src/storage/note_store/stored_note.ts +26 -0
- package/src/storage/note_store/test_utils.ts +16 -0
- package/src/storage/open_pxe_stores.ts +52 -0
- package/src/storage/private_event_store/private_event_store.ts +383 -0
- package/src/storage/private_event_store/stored_private_event.ts +73 -0
- package/src/storage/rollbackable.ts +14 -0
- package/src/storage/staged_write_coordinator.ts +218 -0
- package/src/storage/store_identity.ts +72 -0
- package/src/storage/tagging_store/index.ts +3 -0
- package/src/storage/tagging_store/recipient_tagging_store.ts +114 -0
- package/src/storage/tagging_store/sender_tagging_store.ts +564 -0
- package/src/storage/tagging_store/tagging_secret_sources_store.ts +138 -0
- package/src/tagging/constants.ts +42 -0
- package/src/tagging/get_all_logs_by_tags.ts +157 -0
- package/src/tagging/index.ts +25 -0
- package/src/tagging/persist_sender_tagging_index_ranges.ts +59 -0
- package/src/tagging/recipient_sync/sync_tagged_private_logs.ts +357 -0
- package/src/tagging/recipient_sync/utils/find_highest_indexes.ts +34 -0
- package/src/tagging/reconcile_tagging_index_ranges.ts +102 -0
- package/src/tagging/sender_sync/sync_sender_tagging_indexes.ts +113 -0
- package/src/tagging/sender_sync/utils/classify_pending_txs.ts +92 -0
- package/src/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.ts +92 -0
- package/src/tagging/sender_sync/utils/resolve_pending_txs.ts +65 -0
- package/src/tagging/sender_sync/utils/test_utils.ts +46 -0
- package/src/tagging/testing/tag_query_test_utils.ts +11 -0
- package/src/test_utils.ts +2 -0
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { AztecAsyncKVStore } from '@aztec-labs/kv-store';
|
|
2
|
+
/** The kind of named sub-store opened on an `AztecAsyncKVStore`. */
|
|
3
|
+
export type StoreKind = 'map' | 'multimap' | 'array' | 'singleton' | 'set' | 'counter';
|
|
4
|
+
/** A single recorded `open*()` call against a spied store. */
|
|
5
|
+
export interface OpenedStoreEntry {
|
|
6
|
+
name: string;
|
|
7
|
+
kind: StoreKind;
|
|
8
|
+
}
|
|
9
|
+
/** A spied `AztecAsyncKVStore` together with a function that returns the sorted log of `open*()` calls. */
|
|
10
|
+
export interface StoreSpy {
|
|
11
|
+
store: AztecAsyncKVStore;
|
|
12
|
+
getOpenedStores: () => OpenedStoreEntry[];
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Wraps an `AztecAsyncKVStore` so every `openMap`/`openMultiMap`/`openArray`/`openSingleton`/`openSet`/`openCounter`
|
|
16
|
+
* call is recorded before being delegated to the inner store.
|
|
17
|
+
*/
|
|
18
|
+
export declare function createStoreSpy(inner: AztecAsyncKVStore): StoreSpy;
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmVfc3B5LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc3RvcmFnZS9iYWNrd2FyZHNfY29tcGF0aWJpbGl0eV90ZXN0cy9zdG9yZV9zcHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBR1YsaUJBQWlCLEVBTWxCLE1BQU0sc0JBQXNCLENBQUM7QUFJOUIsb0VBQW9FO0FBQ3BFLE1BQU0sTUFBTSxTQUFTLEdBQUcsS0FBSyxHQUFHLFVBQVUsR0FBRyxPQUFPLEdBQUcsV0FBVyxHQUFHLEtBQUssR0FBRyxTQUFTLENBQUM7QUFFdkYsOERBQThEO0FBQzlELE1BQU0sV0FBVyxnQkFBZ0I7SUFDL0IsSUFBSSxFQUFFLE1BQU0sQ0FBQztJQUNiLElBQUksRUFBRSxTQUFTLENBQUM7Q0FDakI7QUFFRCwyR0FBMkc7QUFDM0csTUFBTSxXQUFXLFFBQVE7SUFDdkIsS0FBSyxFQUFFLGlCQUFpQixDQUFDO0lBQ3pCLGVBQWUsRUFBRSxNQUFNLGdCQUFnQixFQUFFLENBQUM7Q0FDM0M7QUFFRDs7O0dBR0c7QUFDSCx3QkFBZ0IsY0FBYyxDQUFDLEtBQUssRUFBRSxpQkFBaUIsR0FBRyxRQUFRLENBd0NqRSJ9
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store_spy.d.ts","sourceRoot":"","sources":["../../../src/storage/backwards_compatibility_tests/store_spy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,iBAAiB,EAMlB,MAAM,sBAAsB,CAAC;AAI9B,oEAAoE;AACpE,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,UAAU,GAAG,OAAO,GAAG,WAAW,GAAG,KAAK,GAAG,SAAS,CAAC;AAEvF,8DAA8D;AAC9D,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,SAAS,CAAC;CACjB;AAED,2GAA2G;AAC3G,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,iBAAiB,CAAC;IACzB,eAAe,EAAE,MAAM,gBAAgB,EAAE,CAAC;CAC3C;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,iBAAiB,GAAG,QAAQ,CAwCjE"}
|
|
@@ -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
|
+
}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import type { AztecAsyncKVStore } from '@aztec-labs/kv-store';
|
|
2
|
+
import type { Rollbackable } from './rollbackable.js';
|
|
3
|
+
import type { ChangeSetId, StagedStore } from './staged_write_coordinator.js';
|
|
4
|
+
/**
|
|
5
|
+
* Base class for stores that stage their writes per change set, flushing them on commit and dropping them on abort.
|
|
6
|
+
*
|
|
7
|
+
* A change set's staged data exists only between {@link beginChangeSet} and {@link commitChangeSet}/
|
|
8
|
+
* {@link discardChangeSet}. An operation arriving on behalf of a change set that already ended (e.g. one discarded on
|
|
9
|
+
* abort) finds no matching change set and throws, so it cannot stage new data for a dead one.
|
|
10
|
+
*
|
|
11
|
+
* The staged data and the store's kv handles live in this base class and are only reachable through
|
|
12
|
+
* {@link withChangeSet} (change set operations, staged data only), {@link withChangeSetAndDb} (change set operations
|
|
13
|
+
* that also read the DB), {@link flushChangeSet} (the commit-time write-back) and {@link applyRollback} (the reorg
|
|
14
|
+
* truncation).
|
|
15
|
+
*
|
|
16
|
+
* The class is thread safe: an internal lock serializes the operations run through {@link withChangeSet} and
|
|
17
|
+
* {@link withChangeSetAndDb}, so two of them issued concurrently (e.g. under `Promise.all`) never interleave across
|
|
18
|
+
* awaits. Subclasses can therefore read staged data and write it back without handling atomicity themselves.
|
|
19
|
+
*
|
|
20
|
+
* @typeParam TChangeSet - The in-memory buffer a change set accumulates its writes in, built empty by `buildChangeSet`
|
|
21
|
+
* on every {@link beginChangeSet} and dropped when the change set ends. A store keyed by id might stage
|
|
22
|
+
* `{ items: Map<string, Item> }`.
|
|
23
|
+
* @typeParam TDb - The store's kv handles, opened once at construction by `buildDb` and shared by every change set.
|
|
24
|
+
* That same store would open `{ items: AztecAsyncMap<string, Buffer>; itemsByBlockNumber: AztecAsyncMultiMap }`.
|
|
25
|
+
*/
|
|
26
|
+
export declare abstract class BaseStagingStore<TChangeSet, TDb> implements StagedStore, Rollbackable {
|
|
27
|
+
#private;
|
|
28
|
+
readonly storeName: string;
|
|
29
|
+
protected constructor({ storeName, store, buildChangeSet, buildDb }: {
|
|
30
|
+
/** Unique name identifying this store, used in error messages and for registration with StagedWriteCoordinator. */
|
|
31
|
+
storeName: string;
|
|
32
|
+
/** The backing kv store; the runners open their transactions on it. */
|
|
33
|
+
store: AztecAsyncKVStore;
|
|
34
|
+
/** Creates the empty staged data a change set starts with. */
|
|
35
|
+
buildChangeSet: () => TChangeSet;
|
|
36
|
+
/** Opens the store's kv handles. */
|
|
37
|
+
buildDb: (store: AztecAsyncKVStore) => TDb;
|
|
38
|
+
});
|
|
39
|
+
/**
|
|
40
|
+
* Opens the change set, so its operations are accepted until {@link commitChangeSet} or {@link discardChangeSet}.
|
|
41
|
+
*
|
|
42
|
+
* @throws If a change set is already open.
|
|
43
|
+
*/
|
|
44
|
+
beginChangeSet(changeSetId: ChangeSetId): void;
|
|
45
|
+
/**
|
|
46
|
+
* Commits the change set's staged data: flushes it via {@link flushChangeSet}, then closes the change set. Runs
|
|
47
|
+
* inside the transaction owned by the caller.
|
|
48
|
+
*
|
|
49
|
+
* Not meant to be overridden: subclasses implement {@link flushChangeSet}.
|
|
50
|
+
*
|
|
51
|
+
* @throws If the change set is not open, or still has operations in flight.
|
|
52
|
+
*/
|
|
53
|
+
commitChangeSet(changeSetId: ChangeSetId): Promise<void>;
|
|
54
|
+
/** Closes the change set, discarding any staged data without committing. A no-op if it is not open. */
|
|
55
|
+
discardChangeSet(changeSetId: ChangeSetId): void;
|
|
56
|
+
/**
|
|
57
|
+
* Rolls the store back to `toBlock` via {@link applyRollback}.
|
|
58
|
+
*
|
|
59
|
+
* Must be called inside a transaction owned by the caller, since it opens none of its own.
|
|
60
|
+
*
|
|
61
|
+
* Not meant to be overridden: subclasses implement {@link applyRollback}.
|
|
62
|
+
*
|
|
63
|
+
* @throws If a change set is open, since its staged writes could later be committed anchored to deleted blocks.
|
|
64
|
+
*/
|
|
65
|
+
rollbackToBlock(toBlock: number): Promise<void>;
|
|
66
|
+
/**
|
|
67
|
+
* Writes the change set's staged data to persistent storage. Runs inside the caller's transaction: it must not
|
|
68
|
+
* open a transaction of its own or call {@link withChangeSetAndDb}.
|
|
69
|
+
*/
|
|
70
|
+
protected abstract flushChangeSet(changeSet: TChangeSet, db: TDb): Promise<void>;
|
|
71
|
+
/**
|
|
72
|
+
* Deletes the state originating from blocks strictly above `toBlock`. Runs inside the transaction owned by
|
|
73
|
+
* {@link rollbackToBlock}'s caller: it must not open a transaction of its own or call {@link withChangeSetAndDb}.
|
|
74
|
+
*/
|
|
75
|
+
protected abstract applyRollback(toBlock: number, db: TDb): Promise<void>;
|
|
76
|
+
/**
|
|
77
|
+
* Runs a change set operation that reads the DB. Takes the store's lock, opens a transaction, and calls `fn` with
|
|
78
|
+
* the change set's staged data and a read-only view of the DB (writes are staged in memory until
|
|
79
|
+
* {@link flushChangeSet} runs on commit).
|
|
80
|
+
*
|
|
81
|
+
* Prefer {@link withChangeSet} unless `fn` actually reads the DB.
|
|
82
|
+
*
|
|
83
|
+
* The lock makes the store thread safe: two operations issued concurrently (e.g. under `Promise.all`) cannot
|
|
84
|
+
* interleave across awaits, so `fn` can read staged data and write it back without handling atomicity itself.
|
|
85
|
+
*
|
|
86
|
+
* @throws If the change set is not open.
|
|
87
|
+
*/
|
|
88
|
+
protected withChangeSetAndDb<R>(changeSetId: ChangeSetId, fn: (changeSet: TChangeSet, db: ReadonlyDb<TDb>) => Promise<R>): Promise<R>;
|
|
89
|
+
/**
|
|
90
|
+
* Runs a change set operation over the staged data alone: takes the store's lock and calls `fn` with the change
|
|
91
|
+
* set's staged data, opening no db transaction.
|
|
92
|
+
*
|
|
93
|
+
* Use {@link withChangeSetAndDb} instead when `fn` reads the DB.
|
|
94
|
+
*
|
|
95
|
+
* @throws If the change set is not open.
|
|
96
|
+
*/
|
|
97
|
+
protected withChangeSet<R>(changeSetId: ChangeSetId, fn: (changeSet: TChangeSet) => R | Promise<R>): Promise<R>;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* View of a store's kv handles restricted to the kv interfaces' read methods. Change set operations receive this view:
|
|
101
|
+
* while a change set is open the DB is read-only, since all writes are staged in memory until
|
|
102
|
+
* {@link BaseStagingStore.flushChangeSet} runs on commit.
|
|
103
|
+
*/
|
|
104
|
+
export type ReadonlyDb<T> = {
|
|
105
|
+
readonly [K in keyof T]: Pick<T[K], Extract<keyof T[K], ReadMethod>>;
|
|
106
|
+
};
|
|
107
|
+
/** The kv read surface staging stores use: what {@link ReadonlyDb} exposes while a change set is open. */
|
|
108
|
+
type ReadMethod = 'getAsync' | 'hasAsync' | 'entriesAsync' | 'valuesAsync' | 'keysAsync' | 'sizeAsync' | 'getValuesAsync' | 'getValueCountAsync';
|
|
109
|
+
export {};
|
|
110
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZV9zdGFnaW5nX3N0b3JlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc3RvcmFnZS9iYXNlX3N0YWdpbmdfc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUU5RCxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN0RCxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFOUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXFCRztBQUNILDhCQUFzQixnQkFBZ0IsQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFFLFlBQVcsV0FBVyxFQUFFLFlBQVk7O0lBQzFGLFNBQWdCLFNBQVMsRUFBRSxNQUFNLENBQUM7SUFVbEMsU0FBUyxhQUFhLEVBQ3BCLFNBQVMsRUFDVCxLQUFLLEVBQ0wsY0FBYyxFQUNkLE9BQU8sRUFDUixFQUFFO1FBQ0QsbUhBQW1IO1FBQ25ILFNBQVMsRUFBRSxNQUFNLENBQUM7UUFDbEIsdUVBQXVFO1FBQ3ZFLEtBQUssRUFBRSxpQkFBaUIsQ0FBQztRQUN6Qiw4REFBOEQ7UUFDOUQsY0FBYyxFQUFFLE1BQU0sVUFBVSxDQUFDO1FBQ2pDLG9DQUFvQztRQUNwQyxPQUFPLEVBQUUsQ0FBQyxLQUFLLEVBQUUsaUJBQWlCLEtBQUssR0FBRyxDQUFDO0tBQzVDLEVBS0E7SUFFRDs7OztPQUlHO0lBQ0gsY0FBYyxDQUFDLFdBQVcsRUFBRSxXQUFXLEdBQUcsSUFBSSxDQVE3QztJQUVEOzs7Ozs7O09BT0c7SUFDRyxlQUFlLENBQUMsV0FBVyxFQUFFLFdBQVcsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBVTdEO0lBRUQsdUdBQXVHO0lBQ3ZHLGdCQUFnQixDQUFDLFdBQVcsRUFBRSxXQUFXLEdBQUcsSUFBSSxDQUUvQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0csZUFBZSxDQUFDLE9BQU8sRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQU9wRDtJQUVEOzs7T0FHRztJQUNILFNBQVMsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFakY7OztPQUdHO0lBQ0gsU0FBUyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUUxRTs7Ozs7Ozs7Ozs7T0FXRztJQUNILFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLEVBQzVCLFdBQVcsRUFBRSxXQUFXLEVBQ3hCLEVBQUUsRUFBRSxDQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLFVBQVUsQ0FBQyxHQUFHLENBQUMsS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQzdELE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FTWjtJQUVEOzs7Ozs7O09BT0c7SUFDSCxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUMsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLEVBQUUsRUFBRSxDQUFDLFNBQVMsRUFBRSxVQUFVLEtBQUssQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBTTlHO0NBOEJGO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sTUFBTSxVQUFVLENBQUMsQ0FBQyxJQUFJO0lBQzFCLFFBQVEsRUFBRSxDQUFDLElBQUksTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7Q0FDckUsQ0FBQztBQUVGLDBHQUEwRztBQUMxRyxLQUFLLFVBQVUsR0FDWCxVQUFVLEdBQ1YsVUFBVSxHQUNWLGNBQWMsR0FDZCxhQUFhLEdBQ2IsV0FBVyxHQUNYLFdBQVcsR0FDWCxnQkFBZ0IsR0FDaEIsb0JBQW9CLENBQUMifQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base_staging_store.d.ts","sourceRoot":"","sources":["../../src/storage/base_staging_store.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAE9E;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,8BAAsB,gBAAgB,CAAC,UAAU,EAAE,GAAG,CAAE,YAAW,WAAW,EAAE,YAAY;;IAC1F,SAAgB,SAAS,EAAE,MAAM,CAAC;IAUlC,SAAS,aAAa,EACpB,SAAS,EACT,KAAK,EACL,cAAc,EACd,OAAO,EACR,EAAE;QACD,mHAAmH;QACnH,SAAS,EAAE,MAAM,CAAC;QAClB,uEAAuE;QACvE,KAAK,EAAE,iBAAiB,CAAC;QACzB,8DAA8D;QAC9D,cAAc,EAAE,MAAM,UAAU,CAAC;QACjC,oCAAoC;QACpC,OAAO,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,GAAG,CAAC;KAC5C,EAKA;IAED;;;;OAIG;IACH,cAAc,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI,CAQ7C;IAED;;;;;;;OAOG;IACG,eAAe,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAU7D;IAED,uGAAuG;IACvG,gBAAgB,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI,CAE/C;IAED;;;;;;;;OAQG;IACG,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAOpD;IAED;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,EAAE,UAAU,EAAE,EAAE,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjF;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1E;;;;;;;;;;;OAWG;IACH,SAAS,CAAC,kBAAkB,CAAC,CAAC,EAC5B,WAAW,EAAE,WAAW,EACxB,EAAE,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,EAAE,EAAE,UAAU,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GAC7D,OAAO,CAAC,CAAC,CAAC,CASZ;IAED;;;;;;;OAOG;IACH,SAAS,CAAC,aAAa,CAAC,CAAC,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,SAAS,EAAE,UAAU,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAM9G;CA8BF;AAED;;;;GAIG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI;IAC1B,QAAQ,EAAE,CAAC,IAAI,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;CACrE,CAAC;AAEF,0GAA0G;AAC1G,KAAK,UAAU,GACX,UAAU,GACV,UAAU,GACV,cAAc,GACd,aAAa,GACb,WAAW,GACX,WAAW,GACX,gBAAgB,GAChB,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import { Semaphore } from '@aztec-labs/foundation/queue';
|
|
2
|
+
/**
|
|
3
|
+
* Base class for stores that stage their writes per change set, flushing them on commit and dropping them on abort.
|
|
4
|
+
*
|
|
5
|
+
* A change set's staged data exists only between {@link beginChangeSet} and {@link commitChangeSet}/
|
|
6
|
+
* {@link discardChangeSet}. An operation arriving on behalf of a change set that already ended (e.g. one discarded on
|
|
7
|
+
* abort) finds no matching change set and throws, so it cannot stage new data for a dead one.
|
|
8
|
+
*
|
|
9
|
+
* The staged data and the store's kv handles live in this base class and are only reachable through
|
|
10
|
+
* {@link withChangeSet} (change set operations, staged data only), {@link withChangeSetAndDb} (change set operations
|
|
11
|
+
* that also read the DB), {@link flushChangeSet} (the commit-time write-back) and {@link applyRollback} (the reorg
|
|
12
|
+
* truncation).
|
|
13
|
+
*
|
|
14
|
+
* The class is thread safe: an internal lock serializes the operations run through {@link withChangeSet} and
|
|
15
|
+
* {@link withChangeSetAndDb}, so two of them issued concurrently (e.g. under `Promise.all`) never interleave across
|
|
16
|
+
* awaits. Subclasses can therefore read staged data and write it back without handling atomicity themselves.
|
|
17
|
+
*
|
|
18
|
+
* @typeParam TChangeSet - The in-memory buffer a change set accumulates its writes in, built empty by `buildChangeSet`
|
|
19
|
+
* on every {@link beginChangeSet} and dropped when the change set ends. A store keyed by id might stage
|
|
20
|
+
* `{ items: Map<string, Item> }`.
|
|
21
|
+
* @typeParam TDb - The store's kv handles, opened once at construction by `buildDb` and shared by every change set.
|
|
22
|
+
* That same store would open `{ items: AztecAsyncMap<string, Buffer>; itemsByBlockNumber: AztecAsyncMultiMap }`.
|
|
23
|
+
*/ export class BaseStagingStore {
|
|
24
|
+
storeName;
|
|
25
|
+
#store;
|
|
26
|
+
#db;
|
|
27
|
+
#buildChangeSet;
|
|
28
|
+
#lock = new Semaphore(1);
|
|
29
|
+
/** The change set currently open, if any. */ #current;
|
|
30
|
+
constructor({ storeName, store, buildChangeSet, buildDb }){
|
|
31
|
+
this.storeName = storeName;
|
|
32
|
+
this.#store = store;
|
|
33
|
+
this.#buildChangeSet = buildChangeSet;
|
|
34
|
+
this.#db = buildDb(store);
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Opens the change set, so its operations are accepted until {@link commitChangeSet} or {@link discardChangeSet}.
|
|
38
|
+
*
|
|
39
|
+
* @throws If a change set is already open.
|
|
40
|
+
*/ beginChangeSet(changeSetId) {
|
|
41
|
+
if (this.#current !== undefined) {
|
|
42
|
+
throw new Error(`Store "${this.storeName}": cannot open change set "${changeSetId}" because change set ` + `"${this.#current.changeSetId}" is already open`);
|
|
43
|
+
}
|
|
44
|
+
this.#current = {
|
|
45
|
+
changeSetId,
|
|
46
|
+
changeSet: this.#buildChangeSet(),
|
|
47
|
+
inFlight: 0
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Commits the change set's staged data: flushes it via {@link flushChangeSet}, then closes the change set. Runs
|
|
52
|
+
* inside the transaction owned by the caller.
|
|
53
|
+
*
|
|
54
|
+
* Not meant to be overridden: subclasses implement {@link flushChangeSet}.
|
|
55
|
+
*
|
|
56
|
+
* @throws If the change set is not open, or still has operations in flight.
|
|
57
|
+
*/ async commitChangeSet(changeSetId) {
|
|
58
|
+
const current = this.#currentOrThrow(changeSetId);
|
|
59
|
+
if (current.inFlight > 0) {
|
|
60
|
+
throw new Error(`Store "${this.storeName}": cannot commit change set "${changeSetId}" while ${current.inFlight} of its ` + `operations are in flight`);
|
|
61
|
+
}
|
|
62
|
+
await this.flushChangeSet(current.changeSet, this.#db);
|
|
63
|
+
this.#closeChangeSet(changeSetId);
|
|
64
|
+
}
|
|
65
|
+
/** Closes the change set, discarding any staged data without committing. A no-op if it is not open. */ discardChangeSet(changeSetId) {
|
|
66
|
+
this.#closeChangeSet(changeSetId);
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Rolls the store back to `toBlock` via {@link applyRollback}.
|
|
70
|
+
*
|
|
71
|
+
* Must be called inside a transaction owned by the caller, since it opens none of its own.
|
|
72
|
+
*
|
|
73
|
+
* Not meant to be overridden: subclasses implement {@link applyRollback}.
|
|
74
|
+
*
|
|
75
|
+
* @throws If a change set is open, since its staged writes could later be committed anchored to deleted blocks.
|
|
76
|
+
*/ async rollbackToBlock(toBlock) {
|
|
77
|
+
if (this.#current !== undefined) {
|
|
78
|
+
throw new Error(`Store "${this.storeName}": cannot roll back while change set "${this.#current.changeSetId}" is open`);
|
|
79
|
+
}
|
|
80
|
+
await this.applyRollback(toBlock, this.#db);
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Runs a change set operation that reads the DB. Takes the store's lock, opens a transaction, and calls `fn` with
|
|
84
|
+
* the change set's staged data and a read-only view of the DB (writes are staged in memory until
|
|
85
|
+
* {@link flushChangeSet} runs on commit).
|
|
86
|
+
*
|
|
87
|
+
* Prefer {@link withChangeSet} unless `fn` actually reads the DB.
|
|
88
|
+
*
|
|
89
|
+
* The lock makes the store thread safe: two operations issued concurrently (e.g. under `Promise.all`) cannot
|
|
90
|
+
* interleave across awaits, so `fn` can read staged data and write it back without handling atomicity itself.
|
|
91
|
+
*
|
|
92
|
+
* @throws If the change set is not open.
|
|
93
|
+
*/ withChangeSetAndDb(changeSetId, fn) {
|
|
94
|
+
return this.#runLocked(changeSetId, ()=>this.#store.transactionAsync(()=>{
|
|
95
|
+
// Re-resolve after the wait: the change set may have been discarded while this operation queued on the lock
|
|
96
|
+
// or on the store's transaction queue.
|
|
97
|
+
const current = this.#currentOrThrow(changeSetId);
|
|
98
|
+
return fn(current.changeSet, this.#db);
|
|
99
|
+
}));
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Runs a change set operation over the staged data alone: takes the store's lock and calls `fn` with the change
|
|
103
|
+
* set's staged data, opening no db transaction.
|
|
104
|
+
*
|
|
105
|
+
* Use {@link withChangeSetAndDb} instead when `fn` reads the DB.
|
|
106
|
+
*
|
|
107
|
+
* @throws If the change set is not open.
|
|
108
|
+
*/ withChangeSet(changeSetId, fn) {
|
|
109
|
+
return this.#runLocked(changeSetId, async ()=>{
|
|
110
|
+
// Re-resolve after the wait: the change set may have been discarded while this operation queued on the lock.
|
|
111
|
+
const current = this.#currentOrThrow(changeSetId);
|
|
112
|
+
return await fn(current.changeSet);
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
async #runLocked(changeSetId, run) {
|
|
116
|
+
const entered = this.#currentOrThrow(changeSetId);
|
|
117
|
+
entered.inFlight++;
|
|
118
|
+
try {
|
|
119
|
+
await this.#lock.acquire();
|
|
120
|
+
try {
|
|
121
|
+
return await run();
|
|
122
|
+
} finally{
|
|
123
|
+
this.#lock.release();
|
|
124
|
+
}
|
|
125
|
+
} finally{
|
|
126
|
+
// Count down on the change set this operation entered, which may no longer be the open one.
|
|
127
|
+
entered.inFlight--;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
#currentOrThrow(changeSetId) {
|
|
131
|
+
if (this.#current?.changeSetId !== changeSetId) {
|
|
132
|
+
throw new Error(`Store "${this.storeName}": change set "${changeSetId}" is not open`);
|
|
133
|
+
}
|
|
134
|
+
return this.#current;
|
|
135
|
+
}
|
|
136
|
+
#closeChangeSet(changeSetId) {
|
|
137
|
+
if (this.#current?.changeSetId === changeSetId) {
|
|
138
|
+
this.#current = undefined;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { Fr } from '@aztec-labs/foundation/curves/bn254';
|
|
2
|
+
import { AztecAddress } from '@aztec-labs/stdlib/aztec-address';
|
|
3
|
+
import type { Capsule } from '@aztec-labs/stdlib/tx';
|
|
4
|
+
import type { ChangeSetId } from '../staged_write_coordinator.js';
|
|
5
|
+
import type { CapsuleStore } from './capsule_store.js';
|
|
6
|
+
/**
|
|
7
|
+
* Wraps a CapsuleStore with scope-based access control. Each operation asserts that the requested scope is in the
|
|
8
|
+
* allowed scopes list before delegating to the underlying store.
|
|
9
|
+
*/
|
|
10
|
+
export declare class CapsuleService {
|
|
11
|
+
private readonly capsuleStore;
|
|
12
|
+
private readonly allowedScopes;
|
|
13
|
+
constructor(capsuleStore: CapsuleStore, allowedScopes: AztecAddress[]);
|
|
14
|
+
setCapsule(contractAddress: AztecAddress, slot: Fr, capsule: Fr[], changeSetId: ChangeSetId, scope: AztecAddress): void;
|
|
15
|
+
getCapsule(contractAddress: AztecAddress, slot: Fr, changeSetId: ChangeSetId, scope: AztecAddress, transientCapsules?: Capsule[]): Promise<Fr[] | null>;
|
|
16
|
+
deleteCapsule(contractAddress: AztecAddress, slot: Fr, changeSetId: ChangeSetId, scope: AztecAddress): void;
|
|
17
|
+
copyCapsule(contractAddress: AztecAddress, srcSlot: Fr, dstSlot: Fr, numEntries: number, changeSetId: ChangeSetId, scope: AztecAddress): Promise<void>;
|
|
18
|
+
appendToCapsuleArray(contractAddress: AztecAddress, baseSlot: Fr, content: Fr[][], changeSetId: ChangeSetId, scope: AztecAddress): Promise<void>;
|
|
19
|
+
readCapsuleArray(contractAddress: AztecAddress, baseSlot: Fr, changeSetId: ChangeSetId, scope: AztecAddress): Promise<Fr[][]>;
|
|
20
|
+
setCapsuleArray(contractAddress: AztecAddress, baseSlot: Fr, content: Fr[][], changeSetId: ChangeSetId, scope: AztecAddress): Promise<void>;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Fwc3VsZV9zZXJ2aWNlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc3RvcmFnZS9jYXBzdWxlX3N0b3JlL2NhcHN1bGVfc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxFQUFFLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDaEUsT0FBTyxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFHckQsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbEUsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFdkQ7OztHQUdHO0FBQ0gscUJBQWEsY0FBYztJQUl2QixPQUFPLENBQUMsUUFBUSxDQUFDLFlBQVk7SUFIL0IsT0FBTyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQWlCO0lBRS9DLFlBQ21CLFlBQVksRUFBRSxZQUFZLEVBQzNDLGFBQWEsRUFBRSxZQUFZLEVBQUUsRUFJOUI7SUFFRCxVQUFVLENBQUMsZUFBZSxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxZQUFZLFFBRy9HO0lBRUssVUFBVSxDQUNkLGVBQWUsRUFBRSxZQUFZLEVBQzdCLElBQUksRUFBRSxFQUFFLEVBQ1IsV0FBVyxFQUFFLFdBQVcsRUFDeEIsS0FBSyxFQUFFLFlBQVksRUFDbkIsaUJBQWlCLENBQUMsRUFBRSxPQUFPLEVBQUUsR0FDNUIsT0FBTyxDQUFDLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxDQVl0QjtJQUVELGFBQWEsQ0FBQyxlQUFlLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsWUFBWSxRQUduRztJQUVELFdBQVcsQ0FDVCxlQUFlLEVBQUUsWUFBWSxFQUM3QixPQUFPLEVBQUUsRUFBRSxFQUNYLE9BQU8sRUFBRSxFQUFFLEVBQ1gsVUFBVSxFQUFFLE1BQU0sRUFDbEIsV0FBVyxFQUFFLFdBQVcsRUFDeEIsS0FBSyxFQUFFLFlBQVksR0FDbEIsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUdmO0lBRUQsb0JBQW9CLENBQ2xCLGVBQWUsRUFBRSxZQUFZLEVBQzdCLFFBQVEsRUFBRSxFQUFFLEVBQ1osT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQ2YsV0FBVyxFQUFFLFdBQVcsRUFDeEIsS0FBSyxFQUFFLFlBQVksR0FDbEIsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUdmO0lBRUQsZ0JBQWdCLENBQ2QsZUFBZSxFQUFFLFlBQVksRUFDN0IsUUFBUSxFQUFFLEVBQUUsRUFDWixXQUFXLEVBQUUsV0FBVyxFQUN4QixLQUFLLEVBQUUsWUFBWSxHQUNsQixPQUFPLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUdqQjtJQUVELGVBQWUsQ0FDYixlQUFlLEVBQUUsWUFBWSxFQUM3QixRQUFRLEVBQUUsRUFBRSxFQUNaLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUNmLFdBQVcsRUFBRSxXQUFXLEVBQ3hCLEtBQUssRUFBRSxZQUFZLGlCQUlwQjtDQUNGIn0=
|
|
@@ -0,0 +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,qCAAqC,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAChE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAGrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAClE,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,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,QAG/G;IAEK,UAAU,CACd,eAAe,EAAE,YAAY,EAC7B,IAAI,EAAE,EAAE,EACR,WAAW,EAAE,WAAW,EACxB,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,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,QAGnG;IAED,WAAW,CACT,eAAe,EAAE,YAAY,EAC7B,OAAO,EAAE,EAAE,EACX,OAAO,EAAE,EAAE,EACX,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,WAAW,EACxB,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,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,YAAY,GAClB,OAAO,CAAC,IAAI,CAAC,CAGf;IAED,gBAAgB,CACd,eAAe,EAAE,YAAY,EAC7B,QAAQ,EAAE,EAAE,EACZ,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,YAAY,GAClB,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAGjB;IAED,eAAe,CACb,eAAe,EAAE,YAAY,EAC7B,QAAQ,EAAE,EAAE,EACZ,OAAO,EAAE,EAAE,EAAE,EAAE,EACf,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,YAAY,iBAIpB;CACF"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { AztecAddress } from '@aztec-labs/stdlib/aztec-address';
|
|
2
|
+
import { assertAllowedScope } from '../allowed_scopes.js';
|
|
3
|
+
/**
|
|
4
|
+
* Wraps a CapsuleStore with scope-based access control. Each operation asserts that the requested scope is in the
|
|
5
|
+
* allowed scopes list before delegating to the underlying store.
|
|
6
|
+
*/ export class CapsuleService {
|
|
7
|
+
capsuleStore;
|
|
8
|
+
allowedScopes;
|
|
9
|
+
constructor(capsuleStore, allowedScopes){
|
|
10
|
+
this.capsuleStore = capsuleStore;
|
|
11
|
+
// The zero address denotes the global capsule scope, which is always permitted.
|
|
12
|
+
this.allowedScopes = [
|
|
13
|
+
...allowedScopes,
|
|
14
|
+
AztecAddress.ZERO
|
|
15
|
+
];
|
|
16
|
+
}
|
|
17
|
+
setCapsule(contractAddress, slot, capsule, changeSetId, scope) {
|
|
18
|
+
assertAllowedScope(scope, this.allowedScopes);
|
|
19
|
+
this.capsuleStore.setCapsule(contractAddress, slot, capsule, changeSetId, scope);
|
|
20
|
+
}
|
|
21
|
+
async getCapsule(contractAddress, slot, changeSetId, scope, transientCapsules) {
|
|
22
|
+
assertAllowedScope(scope, this.allowedScopes);
|
|
23
|
+
// TODO(#12425): On the following line, the pertinent capsule gets overshadowed by the transient one. Tackle this.
|
|
24
|
+
const maybeTransientCapsule = transientCapsules?.find((c)=>c.contractAddress.equals(contractAddress) && c.storageSlot.equals(slot) && (c.scope ?? AztecAddress.ZERO).equals(scope))?.data;
|
|
25
|
+
return maybeTransientCapsule ?? await this.capsuleStore.getCapsule(contractAddress, slot, changeSetId, scope);
|
|
26
|
+
}
|
|
27
|
+
deleteCapsule(contractAddress, slot, changeSetId, scope) {
|
|
28
|
+
assertAllowedScope(scope, this.allowedScopes);
|
|
29
|
+
this.capsuleStore.deleteCapsule(contractAddress, slot, changeSetId, scope);
|
|
30
|
+
}
|
|
31
|
+
copyCapsule(contractAddress, srcSlot, dstSlot, numEntries, changeSetId, scope) {
|
|
32
|
+
assertAllowedScope(scope, this.allowedScopes);
|
|
33
|
+
return this.capsuleStore.copyCapsule(contractAddress, srcSlot, dstSlot, numEntries, changeSetId, scope);
|
|
34
|
+
}
|
|
35
|
+
appendToCapsuleArray(contractAddress, baseSlot, content, changeSetId, scope) {
|
|
36
|
+
assertAllowedScope(scope, this.allowedScopes);
|
|
37
|
+
return this.capsuleStore.appendToCapsuleArray(contractAddress, baseSlot, content, changeSetId, scope);
|
|
38
|
+
}
|
|
39
|
+
readCapsuleArray(contractAddress, baseSlot, changeSetId, scope) {
|
|
40
|
+
assertAllowedScope(scope, this.allowedScopes);
|
|
41
|
+
return this.capsuleStore.readCapsuleArray(contractAddress, baseSlot, changeSetId, scope);
|
|
42
|
+
}
|
|
43
|
+
setCapsuleArray(contractAddress, baseSlot, content, changeSetId, scope) {
|
|
44
|
+
assertAllowedScope(scope, this.allowedScopes);
|
|
45
|
+
return this.capsuleStore.setCapsuleArray(contractAddress, baseSlot, content, changeSetId, scope);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { Fr } from '@aztec-labs/foundation/curves/bn254';
|
|
2
|
+
import { type Logger } from '@aztec-labs/foundation/log';
|
|
3
|
+
import type { AztecAsyncKVStore } from '@aztec-labs/kv-store';
|
|
4
|
+
import { AztecAddress } from '@aztec-labs/stdlib/aztec-address';
|
|
5
|
+
import type { ChangeSetId, StagedStore } from '../staged_write_coordinator.js';
|
|
6
|
+
export declare class CapsuleStore implements StagedStore {
|
|
7
|
+
#private;
|
|
8
|
+
readonly storeName = "capsule";
|
|
9
|
+
logger: Logger;
|
|
10
|
+
constructor(store: AztecAsyncKVStore);
|
|
11
|
+
/**
|
|
12
|
+
* Commits staged data to main storage. Called by StagedWriteCoordinator when an operation completes successfully.
|
|
13
|
+
* Note: StagedWriteCoordinator wraps all commits in a single transaction, so we don't need our own transactionAsync
|
|
14
|
+
* here (and using one would deadlock on IndexedDB).
|
|
15
|
+
* @param changeSetId - The changeSetId identifying which staged data to commit
|
|
16
|
+
*/
|
|
17
|
+
commitChangeSet(changeSetId: ChangeSetId): Promise<void>;
|
|
18
|
+
/**
|
|
19
|
+
* Discards staged data without committing.
|
|
20
|
+
*/
|
|
21
|
+
discardChangeSet(changeSetId: ChangeSetId): void;
|
|
22
|
+
/**
|
|
23
|
+
* Stores arbitrary information in a per-contract non-volatile database, which can later be retrieved with `loadCapsule`.
|
|
24
|
+
* * If data was already stored at this slot, it is overwritten.
|
|
25
|
+
* @param contractAddress - The contract address to scope the data under.
|
|
26
|
+
* @param slot - The slot in the database in which to store the value. Slots need not be contiguous.
|
|
27
|
+
* @param capsule - An array of field elements representing the capsule.
|
|
28
|
+
* @param changeSetId - The context in which this store will be visible until PXE decides to persist it to underlying
|
|
29
|
+
* KV store
|
|
30
|
+
* @remarks A capsule is a "blob" of data that is passed to the contract through an oracle. It works similarly
|
|
31
|
+
* to public contract storage in that it's indexed by the contract address and storage slot but instead of the global
|
|
32
|
+
* network state it's backed by local PXE db.
|
|
33
|
+
*/
|
|
34
|
+
setCapsule(contractAddress: AztecAddress, slot: Fr, capsule: Fr[], changeSetId: ChangeSetId, scope: AztecAddress): void;
|
|
35
|
+
/**
|
|
36
|
+
* Returns data previously stored via `storeCapsule` in the per-contract non-volatile database.
|
|
37
|
+
* @param contractAddress - The contract address under which the data is scoped.
|
|
38
|
+
* @param slot - The slot in the database to read.
|
|
39
|
+
* @returns The stored data or `null` if no data is stored under the slot.
|
|
40
|
+
*/
|
|
41
|
+
getCapsule(contractAddress: AztecAddress, slot: Fr, changeSetId: ChangeSetId, scope: AztecAddress): Promise<Fr[] | null>;
|
|
42
|
+
/**
|
|
43
|
+
* Deletes data in the per-contract non-volatile database. Does nothing if no data was present.
|
|
44
|
+
* @param contractAddress - The contract address under which the data is scoped.
|
|
45
|
+
* @param slot - The slot in the database to delete.
|
|
46
|
+
*/
|
|
47
|
+
deleteCapsule(contractAddress: AztecAddress, slot: Fr, changeSetId: ChangeSetId, scope: AztecAddress): void;
|
|
48
|
+
/**
|
|
49
|
+
* Copies a number of contiguous entries in the per-contract non-volatile database. This allows for efficient data
|
|
50
|
+
* structures by avoiding repeated calls to `loadCapsule` and `storeCapsule`.
|
|
51
|
+
* Supports overlapping source and destination regions (which will result in the overlapped source values being
|
|
52
|
+
* overwritten). All copied slots must exist in the database (i.e. have been stored and not deleted)
|
|
53
|
+
*
|
|
54
|
+
* @param contractAddress - The contract address under which the data is scoped.
|
|
55
|
+
* @param srcSlot - The first slot to copy from.
|
|
56
|
+
* @param dstSlot - The first slot to copy to.
|
|
57
|
+
* @param numEntries - The number of entries to copy.
|
|
58
|
+
*/
|
|
59
|
+
copyCapsule(contractAddress: AztecAddress, srcSlot: Fr, dstSlot: Fr, numEntries: number, changeSetId: ChangeSetId, scope: AztecAddress): Promise<void>;
|
|
60
|
+
/**
|
|
61
|
+
* Appends multiple capsules to a capsule array stored at the base slot.
|
|
62
|
+
* The array length is stored at the base slot, and elements are stored in consecutive slots after it.
|
|
63
|
+
* All operations are performed in a single transaction.
|
|
64
|
+
* @param contractAddress - The contract address that owns the capsule array
|
|
65
|
+
* @param baseSlot - The slot where the array length is stored
|
|
66
|
+
* @param content - Array of capsule data to append
|
|
67
|
+
*/
|
|
68
|
+
appendToCapsuleArray(contractAddress: AztecAddress, baseSlot: Fr, content: Fr[][], changeSetId: ChangeSetId, scope: AztecAddress): Promise<void>;
|
|
69
|
+
readCapsuleArray(contractAddress: AztecAddress, baseSlot: Fr, changeSetId: ChangeSetId, scope: AztecAddress): Promise<Fr[][]>;
|
|
70
|
+
setCapsuleArray(contractAddress: AztecAddress, baseSlot: Fr, content: Fr[][], changeSetId: ChangeSetId, scope: AztecAddress): Promise<void>;
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Fwc3VsZV9zdG9yZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3N0b3JhZ2UvY2Fwc3VsZV9zdG9yZS9jYXBzdWxlX3N0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN6RCxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQWdCLE1BQU0sNEJBQTRCLENBQUM7QUFDdkUsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQWlCLE1BQU0sc0JBQXNCLENBQUM7QUFDN0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRWhFLE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUUvRSxxQkFBYSxZQUFhLFlBQVcsV0FBVzs7SUFDOUMsUUFBUSxDQUFDLFNBQVMsYUFBYTtJQWEvQixNQUFNLEVBQUUsTUFBTSxDQUFDO0lBRWYsWUFBWSxLQUFLLEVBQUUsaUJBQWlCLEVBUW5DO0lBOEREOzs7OztPQUtHO0lBQ0csZUFBZSxDQUFDLFdBQVcsRUFBRSxXQUFXLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQWU3RDtJQUVEOztPQUVHO0lBQ0gsZ0JBQWdCLENBQUMsV0FBVyxFQUFFLFdBQVcsR0FBRyxJQUFJLENBRS9DO0lBRUQ7Ozs7Ozs7Ozs7O09BV0c7SUFDSCxVQUFVLENBQUMsZUFBZSxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxZQUFZLFFBSy9HO0lBRUQ7Ozs7O09BS0c7SUFDSCxVQUFVLENBQ1IsZUFBZSxFQUFFLFlBQVksRUFDN0IsSUFBSSxFQUFFLEVBQUUsRUFDUixXQUFXLEVBQUUsV0FBVyxFQUN4QixLQUFLLEVBQUUsWUFBWSxHQUNsQixPQUFPLENBQUMsRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLENBRXRCO0lBcUJEOzs7O09BSUc7SUFDSCxhQUFhLENBQUMsZUFBZSxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFlBQVksUUFHbkc7SUFFRDs7Ozs7Ozs7OztPQVVHO0lBQ0gsV0FBVyxDQUNULGVBQWUsRUFBRSxZQUFZLEVBQzdCLE9BQU8sRUFBRSxFQUFFLEVBQ1gsT0FBTyxFQUFFLEVBQUUsRUFDWCxVQUFVLEVBQUUsTUFBTSxFQUNsQixXQUFXLEVBQUUsV0FBVyxFQUN4QixLQUFLLEVBQUUsWUFBWSxHQUNsQixPQUFPLENBQUMsSUFBSSxDQUFDLENBMkJmO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILG9CQUFvQixDQUNsQixlQUFlLEVBQUUsWUFBWSxFQUM3QixRQUFRLEVBQUUsRUFBRSxFQUNaLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUNmLFdBQVcsRUFBRSxXQUFXLEVBQ3hCLEtBQUssRUFBRSxZQUFZLEdBQ2xCLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FxQmY7SUFFRCxnQkFBZ0IsQ0FDZCxlQUFlLEVBQUUsWUFBWSxFQUM3QixRQUFRLEVBQUUsRUFBRSxFQUNaLFdBQVcsRUFBRSxXQUFXLEVBQ3hCLEtBQUssRUFBRSxZQUFZLEdBQ2xCLE9BQU8sQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBK0JqQjtJQUVELGVBQWUsQ0FDYixlQUFlLEVBQUUsWUFBWSxFQUM3QixRQUFRLEVBQUUsRUFBRSxFQUNaLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUNmLFdBQVcsRUFBRSxXQUFXLEVBQ3hCLEtBQUssRUFBRSxZQUFZLGlCQTBCcEI7Q0FDRiJ9
|
|
@@ -0,0 +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,qCAAqC,CAAC;AACzD,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,4BAA4B,CAAC;AACvE,OAAO,KAAK,EAAE,iBAAiB,EAAiB,MAAM,sBAAsB,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAEhE,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAE/E,qBAAa,YAAa,YAAW,WAAW;;IAC9C,QAAQ,CAAC,SAAS,aAAa;IAa/B,MAAM,EAAE,MAAM,CAAC;IAEf,YAAY,KAAK,EAAE,iBAAiB,EAQnC;IA8DD;;;;;OAKG;IACG,eAAe,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAe7D;IAED;;OAEG;IACH,gBAAgB,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI,CAE/C;IAED;;;;;;;;;;;OAWG;IACH,UAAU,CAAC,eAAe,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,QAK/G;IAED;;;;;OAKG;IACH,UAAU,CACR,eAAe,EAAE,YAAY,EAC7B,IAAI,EAAE,EAAE,EACR,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,YAAY,GAClB,OAAO,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,CAEtB;IAqBD;;;;OAIG;IACH,aAAa,CAAC,eAAe,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,QAGnG;IAED;;;;;;;;;;OAUG;IACH,WAAW,CACT,eAAe,EAAE,YAAY,EAC7B,OAAO,EAAE,EAAE,EACX,OAAO,EAAE,EAAE,EACX,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,WAAW,EACxB,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,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,YAAY,GAClB,OAAO,CAAC,IAAI,CAAC,CAqBf;IAED,gBAAgB,CACd,eAAe,EAAE,YAAY,EAC7B,QAAQ,EAAE,EAAE,EACZ,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,YAAY,GAClB,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CA+BjB;IAED,eAAe,CACb,eAAe,EAAE,YAAY,EAC7B,QAAQ,EAAE,EAAE,EACZ,OAAO,EAAE,EAAE,EAAE,EAAE,EACf,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,YAAY,iBA0BpB;CACF"}
|