@aztec/pxe 5.0.0-rc.2 → 5.0.1
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/block_synchronizer/block_synchronizer.d.ts +5 -3
- package/dest/block_synchronizer/block_synchronizer.d.ts.map +1 -1
- package/dest/block_synchronizer/block_synchronizer.js +7 -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_sync → contract}/contract_sync_service.d.ts +7 -6
- package/dest/contract/contract_sync_service.d.ts.map +1 -0
- package/dest/{contract_sync → contract}/contract_sync_service.js +10 -30
- package/dest/contract/helpers.d.ts +7 -0
- package/dest/contract/helpers.d.ts.map +1 -0
- package/dest/contract/helpers.js +20 -0
- package/dest/contract_function_simulator/anchored_contract_data.d.ts +36 -0
- package/dest/contract_function_simulator/anchored_contract_data.d.ts.map +1 -0
- package/dest/contract_function_simulator/anchored_contract_data.js +54 -0
- package/dest/contract_function_simulator/aztec_node_read_cache.d.ts +39 -0
- package/dest/contract_function_simulator/aztec_node_read_cache.d.ts.map +1 -0
- package/dest/contract_function_simulator/aztec_node_read_cache.js +60 -0
- package/dest/contract_function_simulator/contract_function_simulator.d.ts +9 -3
- package/dest/contract_function_simulator/contract_function_simulator.d.ts.map +1 -1
- package/dest/contract_function_simulator/contract_function_simulator.js +31 -14
- package/dest/contract_function_simulator/execution_note_cache.d.ts +3 -9
- 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/index.d.ts +4 -2
- package/dest/contract_function_simulator/index.d.ts.map +1 -1
- package/dest/contract_function_simulator/index.js +2 -1
- package/dest/contract_function_simulator/noir-structs/fact.d.ts +5 -5
- package/dest/contract_function_simulator/noir-structs/fact.d.ts.map +1 -1
- package/dest/contract_function_simulator/noir-structs/fact.js +2 -2
- package/dest/contract_function_simulator/noir-structs/fact_collection.d.ts +3 -3
- package/dest/contract_function_simulator/noir-structs/fact_collection.d.ts.map +1 -1
- package/dest/contract_function_simulator/noir-structs/fact_collection.js +3 -1
- package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts +7 -1
- package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts.map +1 -1
- 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 +2 -2
- package/dest/contract_function_simulator/noir-structs/provided_secret.d.ts.map +1 -1
- package/dest/contract_function_simulator/noir-structs/provided_secret.js +1 -1
- package/dest/contract_function_simulator/noir-structs/resolved_tagging_strategy.d.ts +8 -1
- package/dest/contract_function_simulator/noir-structs/resolved_tagging_strategy.d.ts.map +1 -1
- package/dest/contract_function_simulator/noir-structs/resolved_tagging_strategy.js +17 -0
- package/dest/contract_function_simulator/oracle/acir_callback.d.ts +7 -2
- package/dest/contract_function_simulator/oracle/acir_callback.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/acir_callback.js +55 -11
- 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/oracle_registry.d.ts +11 -7
- package/dest/contract_function_simulator/oracle/oracle_registry.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/oracle_registry.js +50 -10
- package/dest/contract_function_simulator/oracle/oracle_type_mappings.d.ts +48 -9
- package/dest/contract_function_simulator/oracle/oracle_type_mappings.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/oracle_type_mappings.js +51 -30
- package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts +10 -2
- package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/private_execution_oracle.js +73 -32
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts +23 -16
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.js +105 -60
- package/dest/debug/pxe_debug_utils.d.ts +2 -2
- package/dest/debug/pxe_debug_utils.d.ts.map +1 -1
- package/dest/entrypoints/client/bundle/index.d.ts +2 -1
- package/dest/entrypoints/client/bundle/index.d.ts.map +1 -1
- package/dest/entrypoints/client/bundle/index.js +1 -0
- package/dest/entrypoints/client/bundle/utils.d.ts +1 -1
- package/dest/entrypoints/client/bundle/utils.d.ts.map +1 -1
- package/dest/entrypoints/client/bundle/utils.js +11 -5
- package/dest/entrypoints/client/lazy/index.d.ts +2 -1
- package/dest/entrypoints/client/lazy/index.d.ts.map +1 -1
- package/dest/entrypoints/client/lazy/index.js +1 -0
- package/dest/entrypoints/client/lazy/utils.d.ts +1 -1
- package/dest/entrypoints/client/lazy/utils.d.ts.map +1 -1
- package/dest/entrypoints/client/lazy/utils.js +11 -5
- package/dest/entrypoints/client/store.d.ts +14 -0
- package/dest/entrypoints/client/store.d.ts.map +1 -0
- package/dest/entrypoints/client/store.js +28 -0
- package/dest/entrypoints/server/index.d.ts +6 -2
- package/dest/entrypoints/server/index.d.ts.map +1 -1
- package/dest/entrypoints/server/index.js +4 -1
- 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 +1 -1
- package/dest/entrypoints/server/utils.d.ts.map +1 -1
- package/dest/entrypoints/server/utils.js +8 -2
- package/dest/error_enriching.d.ts +5 -3
- package/dest/error_enriching.d.ts.map +1 -1
- package/dest/error_enriching.js +12 -10
- package/dest/hooks/execution_hooks.d.ts +15 -4
- package/dest/hooks/execution_hooks.d.ts.map +1 -1
- package/dest/hooks/index.d.ts +3 -2
- package/dest/hooks/index.d.ts.map +1 -1
- 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 +10 -1
- package/dest/hooks/resolve_tagging_secret_strategy.d.ts.map +1 -1
- package/dest/hooks/resolve_tagging_secret_strategy.js +3 -3
- package/dest/logs/log_service.d.ts +5 -3
- package/dest/logs/log_service.d.ts.map +1 -1
- package/dest/logs/log_service.js +38 -17
- package/dest/notes/note_service.d.ts +1 -1
- package/dest/notes/note_service.js +1 -1
- package/dest/oracle_version.d.ts +2 -2
- package/dest/oracle_version.js +2 -2
- 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 +6 -2
- package/dest/private_kernel/private_kernel_execution_prover.d.ts +1 -1
- package/dest/private_kernel/private_kernel_execution_prover.d.ts.map +1 -1
- package/dest/private_kernel/private_kernel_execution_prover.js +17 -36
- package/dest/private_kernel/private_kernel_oracle.d.ts +4 -2
- package/dest/private_kernel/private_kernel_oracle.d.ts.map +1 -1
- package/dest/private_kernel/private_kernel_oracle.js +17 -5
- package/dest/pxe.d.ts +81 -46
- package/dest/pxe.d.ts.map +1 -1
- package/dest/pxe.js +138 -104
- package/dest/storage/backwards_compatibility_tests/schema_tests.d.ts +1 -1
- package/dest/storage/backwards_compatibility_tests/schema_tests.d.ts.map +1 -1
- package/dest/storage/backwards_compatibility_tests/schema_tests.js +31 -7
- 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 +63 -74
- package/dest/storage/fact_store/fact_service.d.ts +6 -4
- package/dest/storage/fact_store/fact_service.d.ts.map +1 -1
- package/dest/storage/fact_store/fact_service.js +19 -4
- package/dest/storage/fact_store/fact_store.d.ts +1 -1
- package/dest/storage/fact_store/fact_store.js +1 -1
- package/dest/storage/fact_store/index.d.ts +2 -1
- package/dest/storage/fact_store/index.d.ts.map +1 -1
- package/dest/storage/fact_store/index.js +1 -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/metadata.d.ts +2 -2
- package/dest/storage/metadata.d.ts.map +1 -1
- package/dest/storage/metadata.js +1 -1
- package/dest/storage/store_identity.d.ts +35 -0
- package/dest/storage/store_identity.d.ts.map +1 -0
- package/dest/storage/store_identity.js +44 -0
- package/dest/storage/tagging_store/sender_tagging_store.d.ts +19 -3
- package/dest/storage/tagging_store/sender_tagging_store.d.ts.map +1 -1
- package/dest/storage/tagging_store/sender_tagging_store.js +48 -11
- package/dest/storage/tagging_store/tagging_secret_sources_store.d.ts +17 -6
- package/dest/storage/tagging_store/tagging_secret_sources_store.d.ts.map +1 -1
- package/dest/storage/tagging_store/tagging_secret_sources_store.js +24 -11
- package/dest/tagging/constants.d.ts +2 -2
- package/dest/tagging/constants.d.ts.map +1 -1
- package/dest/tagging/constants.js +18 -9
- package/dest/tagging/sender_sync/sync_sender_tagging_indexes.js +1 -1
- package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts +1 -1
- 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 +6 -2
- package/package.json +17 -17
- package/src/block_synchronizer/block_synchronizer.ts +9 -1
- package/src/contract/contract_class_service.ts +83 -0
- package/src/{contract_sync → contract}/contract_sync_service.ts +18 -37
- package/src/contract/helpers.ts +35 -0
- package/src/contract_function_simulator/anchored_contract_data.ts +74 -0
- package/src/contract_function_simulator/aztec_node_read_cache.ts +89 -0
- package/src/contract_function_simulator/contract_function_simulator.ts +56 -14
- package/src/contract_function_simulator/execution_note_cache.ts +7 -28
- package/src/contract_function_simulator/index.ts +7 -1
- package/src/contract_function_simulator/noir-structs/fact.ts +4 -4
- package/src/contract_function_simulator/noir-structs/fact_collection.ts +9 -4
- package/src/contract_function_simulator/noir-structs/log_retrieval_response.ts +6 -0
- package/src/contract_function_simulator/noir-structs/pending_tagged_log.ts +12 -0
- package/src/contract_function_simulator/noir-structs/provided_secret.ts +1 -1
- package/src/contract_function_simulator/noir-structs/resolved_tagging_strategy.ts +21 -0
- package/src/contract_function_simulator/oracle/acir_callback.ts +58 -12
- package/src/contract_function_simulator/oracle/legacy_oracle_registry.ts +147 -0
- package/src/contract_function_simulator/oracle/oracle_registry.ts +37 -7
- package/src/contract_function_simulator/oracle/oracle_type_mappings.ts +49 -32
- package/src/contract_function_simulator/oracle/private_execution_oracle.ts +92 -41
- package/src/contract_function_simulator/oracle/utility_execution_oracle.ts +149 -71
- package/src/debug/pxe_debug_utils.ts +1 -1
- package/src/entrypoints/client/bundle/index.ts +1 -0
- package/src/entrypoints/client/bundle/utils.ts +16 -4
- package/src/entrypoints/client/lazy/index.ts +1 -0
- package/src/entrypoints/client/lazy/utils.ts +16 -4
- package/src/entrypoints/client/store.ts +38 -0
- package/src/entrypoints/server/index.ts +6 -1
- package/src/entrypoints/server/store.ts +47 -0
- package/src/entrypoints/server/utils.ts +21 -7
- package/src/error_enriching.ts +26 -10
- package/src/hooks/execution_hooks.ts +14 -3
- package/src/hooks/index.ts +2 -0
- package/src/hooks/resolve_custom_request.ts +24 -0
- package/src/hooks/resolve_tagging_secret_strategy.ts +14 -0
- package/src/logs/log_service.ts +35 -11
- package/src/notes/note_service.ts +1 -1
- package/src/oracle_version.ts +2 -2
- package/src/private_kernel/hints/private_kernel_reset_private_inputs_builder.ts +11 -1
- package/src/private_kernel/private_kernel_execution_prover.ts +22 -52
- package/src/private_kernel/private_kernel_oracle.ts +23 -4
- package/src/pxe.ts +212 -143
- package/src/storage/backwards_compatibility_tests/__snapshots__/AddressStore.json +6 -6
- package/src/storage/backwards_compatibility_tests/__snapshots__/ContractStore.json +1 -1
- package/src/storage/backwards_compatibility_tests/__snapshots__/KeyStore.json +12 -12
- package/src/storage/backwards_compatibility_tests/__snapshots__/RecipientTaggingStore.json +11 -3
- package/src/storage/backwards_compatibility_tests/__snapshots__/SenderTaggingStore.json +12 -4
- package/src/storage/backwards_compatibility_tests/__snapshots__/TaggingSecretSourcesStore.json +3 -3
- package/src/storage/backwards_compatibility_tests/__snapshots__/opened_stores.json +1 -1
- package/src/storage/backwards_compatibility_tests/schema_tests.ts +38 -4
- package/src/storage/contract_store/contract_store.ts +85 -92
- package/src/storage/fact_store/fact_service.ts +29 -5
- package/src/storage/fact_store/fact_store.ts +1 -1
- package/src/storage/fact_store/index.ts +10 -0
- package/src/storage/fact_store/origin_state.ts +75 -0
- package/src/storage/metadata.ts +1 -1
- package/src/storage/store_identity.ts +72 -0
- package/src/storage/tagging_store/sender_tagging_store.ts +62 -15
- package/src/storage/tagging_store/tagging_secret_sources_store.ts +36 -15
- package/src/tagging/constants.ts +19 -9
- package/src/tagging/sender_sync/sync_sender_tagging_indexes.ts +1 -1
- package/src/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.ts +6 -2
- 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 -51
- package/dest/contract_sync/contract_sync_service.d.ts.map +0 -1
- package/dest/contract_sync/helpers.d.ts +0 -28
- package/dest/contract_sync/helpers.d.ts.map +0 -1
- package/dest/contract_sync/helpers.js +0 -48
- package/src/contract_function_simulator/proxied_contract_data_source.ts +0 -60
- package/src/contract_sync/helpers.ts +0 -79
|
@@ -1,12 +1,16 @@
|
|
|
1
|
+
export { type AccountPrivacyKeys, type AccountPrivacySecretKeys } from '@aztec/key-store';
|
|
1
2
|
export * from '../../notes_filter.js';
|
|
2
3
|
export * from '../../pxe.js';
|
|
3
4
|
export * from '../../config/index.js';
|
|
4
5
|
export * from '../../error_enriching.js';
|
|
5
6
|
export * from '../../storage/index.js';
|
|
6
7
|
export * from './utils.js';
|
|
8
|
+
export * from './store.js';
|
|
7
9
|
export { NoteService } from '../../notes/note_service.js';
|
|
8
10
|
export { ORACLE_VERSION_MAJOR, ORACLE_VERSION_MINOR } from '../../oracle_version.js';
|
|
9
11
|
export { type PXECreationOptions } from '../pxe_creation_options.js';
|
|
10
12
|
export { JobCoordinator } from '../../job_coordinator/job_coordinator.js';
|
|
11
|
-
export { ContractSyncService } from '../../
|
|
12
|
-
|
|
13
|
+
export { ContractSyncService } from '../../contract/contract_sync_service.js';
|
|
14
|
+
export { ContractClassService } from '../../contract/contract_class_service.js';
|
|
15
|
+
export { AnchoredContractData } from '../../contract_function_simulator/anchored_contract_data.js';
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbnRyeXBvaW50cy9zZXJ2ZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssa0JBQWtCLEVBQUUsS0FBSyx3QkFBd0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRTFGLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxZQUFZLENBQUM7QUFDM0IsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzFELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3JGLE9BQU8sRUFBRSxLQUFLLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDckUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDZEQUE2RCxDQUFDIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/entrypoints/server/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AACrF,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/entrypoints/server/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,kBAAkB,EAAE,KAAK,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAE1F,cAAc,uBAAuB,CAAC;AACtC,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AACrF,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAC;AAC9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,0CAA0C,CAAC;AAChF,OAAO,EAAE,oBAAoB,EAAE,MAAM,6DAA6D,CAAC"}
|
|
@@ -4,7 +4,10 @@ export * from '../../config/index.js';
|
|
|
4
4
|
export * from '../../error_enriching.js';
|
|
5
5
|
export * from '../../storage/index.js';
|
|
6
6
|
export * from './utils.js';
|
|
7
|
+
export * from './store.js';
|
|
7
8
|
export { NoteService } from '../../notes/note_service.js';
|
|
8
9
|
export { ORACLE_VERSION_MAJOR, ORACLE_VERSION_MINOR } from '../../oracle_version.js';
|
|
9
10
|
export { JobCoordinator } from '../../job_coordinator/job_coordinator.js';
|
|
10
|
-
export { ContractSyncService } from '../../
|
|
11
|
+
export { ContractSyncService } from '../../contract/contract_sync_service.js';
|
|
12
|
+
export { ContractClassService } from '../../contract/contract_class_service.js';
|
|
13
|
+
export { AnchoredContractData } from '../../contract_function_simulator/anchored_contract_data.js';
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { EthAddress } from '@aztec/foundation/eth-address';
|
|
2
|
+
import { type LoggerBindings } from '@aztec/foundation/log';
|
|
3
|
+
import { type AztecLMDBStoreV2 } from '@aztec/kv-store/lmdb-v2';
|
|
4
|
+
/** Location and identity inputs for opening an identity-partitioned PXE-side store. */
|
|
5
|
+
export type IdentityStoreConfig = {
|
|
6
|
+
dataDirectory: string;
|
|
7
|
+
/** Maximum LMDB map size in KB. When omitted, the kv-store default map size applies. */
|
|
8
|
+
dataStoreMapSizeKb?: number;
|
|
9
|
+
l1ChainId: number;
|
|
10
|
+
rollupAddress: EthAddress;
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* Opens the persistent LMDB store selected by `name` and identity triple `(l1ChainId, rollupAddress, schemaVersion)`.
|
|
14
|
+
* A store exists per identity: reopening with the same identity returns the same data, a different identity selects
|
|
15
|
+
* a different (possibly fresh) store. Callers wanting an ephemeral store use `openTmpStore` explicitly instead.
|
|
16
|
+
*/
|
|
17
|
+
export declare function openStore(name: string, schemaVersion: number, config: IdentityStoreConfig, bindings?: LoggerBindings): Promise<AztecLMDBStoreV2>;
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbnRyeXBvaW50cy9zZXJ2ZXIvc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDaEUsT0FBTyxFQUFFLEtBQUssY0FBYyxFQUFnQixNQUFNLHVCQUF1QixDQUFDO0FBQzFFLE9BQU8sRUFBRSxLQUFLLGdCQUFnQixFQUFlLE1BQU0seUJBQXlCLENBQUM7QUFPN0UsdUZBQXVGO0FBQ3ZGLE1BQU0sTUFBTSxtQkFBbUIsR0FBRztJQUNoQyxhQUFhLEVBQUUsTUFBTSxDQUFDO0lBQ3RCLHdGQUF3RjtJQUN4RixrQkFBa0IsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUM1QixTQUFTLEVBQUUsTUFBTSxDQUFDO0lBQ2xCLGFBQWEsRUFBRSxVQUFVLENBQUM7Q0FDM0IsQ0FBQztBQUVGOzs7O0dBSUc7QUFDSCx3QkFBc0IsU0FBUyxDQUM3QixJQUFJLEVBQUUsTUFBTSxFQUNaLGFBQWEsRUFBRSxNQUFNLEVBQ3JCLE1BQU0sRUFBRSxtQkFBbUIsRUFDM0IsUUFBUSxDQUFDLEVBQUUsY0FBYyxHQUN4QixPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FrQjNCIn0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/entrypoints/server/store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,KAAK,cAAc,EAAgB,MAAM,uBAAuB,CAAC;AAC1E,OAAO,EAAE,KAAK,gBAAgB,EAAe,MAAM,yBAAyB,CAAC;AAO7E,uFAAuF;AACvF,MAAM,MAAM,mBAAmB,GAAG;IAChC,aAAa,EAAE,MAAM,CAAC;IACtB,wFAAwF;IACxF,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,UAAU,CAAC;CAC3B,CAAC;AAEF;;;;GAIG;AACH,wBAAsB,SAAS,CAC7B,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,mBAAmB,EAC3B,QAAQ,CAAC,EAAE,cAAc,GACxB,OAAO,CAAC,gBAAgB,CAAC,CAkB3B"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { createLogger } from '@aztec/foundation/log';
|
|
2
|
+
import { openStoreAt } from '@aztec/kv-store/lmdb-v2';
|
|
3
|
+
import { mkdir } from 'fs/promises';
|
|
4
|
+
import { join } from 'path';
|
|
5
|
+
import { storeIdentitySlug } from '../../storage/store_identity.js';
|
|
6
|
+
/**
|
|
7
|
+
* Opens the persistent LMDB store selected by `name` and identity triple `(l1ChainId, rollupAddress, schemaVersion)`.
|
|
8
|
+
* A store exists per identity: reopening with the same identity returns the same data, a different identity selects
|
|
9
|
+
* a different (possibly fresh) store. Callers wanting an ephemeral store use `openTmpStore` explicitly instead.
|
|
10
|
+
*/ export async function openStore(name, schemaVersion, config, bindings) {
|
|
11
|
+
// Stores live under `<dataDirectory>/<name>-stores/<l1ChainId>-<rollupAddress>-v<schemaVersion>`, a sibling of the
|
|
12
|
+
// legacy `<dataDirectory>/<name>` directory: older binaries reset the legacy directory on a rollup mismatch, so
|
|
13
|
+
// per-identity stores must not nest inside it.
|
|
14
|
+
const subDir = join(config.dataDirectory, `${name}-stores`, storeIdentitySlug({
|
|
15
|
+
l1ChainId: config.l1ChainId,
|
|
16
|
+
rollupAddress: config.rollupAddress,
|
|
17
|
+
schemaVersion
|
|
18
|
+
}));
|
|
19
|
+
await mkdir(subDir, {
|
|
20
|
+
recursive: true
|
|
21
|
+
});
|
|
22
|
+
createLogger(`pxe:data:${name}`, bindings).info(`Opening ${name} data store (LMDB v2)`, {
|
|
23
|
+
storeName: name,
|
|
24
|
+
subDir,
|
|
25
|
+
dataStoreMapSizeKb: config.dataStoreMapSizeKb
|
|
26
|
+
});
|
|
27
|
+
return openStoreAt(subDir, config.dataStoreMapSizeKb, undefined, bindings);
|
|
28
|
+
}
|
|
@@ -6,4 +6,4 @@ import { type PXECreationOptions } from '../pxe_creation_options.js';
|
|
|
6
6
|
type PXEConfigWithoutDefaults = Omit<PXEConfig, 'l1ChainId' | 'l2BlockBatchSize' | 'rollupVersion' | keyof L1ContractAddresses>;
|
|
7
7
|
export declare function createPXE(aztecNode: AztecNode, config: PXEConfigWithoutDefaults, options?: PXECreationOptions): Promise<PXE>;
|
|
8
8
|
export {};
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbnRyeXBvaW50cy9zZXJ2ZXIvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQVVqRixPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUVqRSxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRW5DLE9BQU8sRUFBRSxLQUFLLGtCQUFrQixFQUF5QixNQUFNLDRCQUE0QixDQUFDO0FBRzVGLEtBQUssd0JBQXdCLEdBQUcsSUFBSSxDQUNsQyxTQUFTLEVBQ1QsV0FBVyxHQUFHLGtCQUFrQixHQUFHLGVBQWUsR0FBRyxNQUFNLG1CQUFtQixDQUMvRSxDQUFDO0FBRUYsd0JBQXNCLFNBQVMsQ0FDN0IsU0FBUyxFQUFFLFNBQVMsRUFDcEIsTUFBTSxFQUFFLHdCQUF3QixFQUNoQyxPQUFPLEdBQUUsa0JBQW9DLGdCQTBFOUMifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/entrypoints/server/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAUjF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAEjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAEnC,OAAO,EAAE,KAAK,kBAAkB,EAAyB,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/entrypoints/server/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAUjF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAEjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAEnC,OAAO,EAAE,KAAK,kBAAkB,EAAyB,MAAM,4BAA4B,CAAC;AAG5F,KAAK,wBAAwB,GAAG,IAAI,CAClC,SAAS,EACT,WAAW,GAAG,kBAAkB,GAAG,eAAe,GAAG,MAAM,mBAAmB,CAC/E,CAAC;AAEF,wBAAsB,SAAS,CAC7B,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,wBAAwB,EAChC,OAAO,GAAE,kBAAoC,gBA0E9C"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { BBBundlePrivateKernelProver } from '@aztec/bb-prover/client/bundle';
|
|
2
2
|
import { createLogger } from '@aztec/foundation/log';
|
|
3
|
-
import {
|
|
3
|
+
import { openTmpStore } from '@aztec/kv-store/lmdb-v2';
|
|
4
4
|
import { BundledProtocolContractsProvider } from '@aztec/protocol-contracts/providers/bundle';
|
|
5
5
|
import { WASMSimulator } from '@aztec/simulator/client';
|
|
6
6
|
import { MemoryCircuitRecorder, SimulatorRecorderWrapper } from '@aztec/simulator/server';
|
|
@@ -11,6 +11,7 @@ import { getStandardMultiCallEntrypoint } from '@aztec/standard-contracts/multi-
|
|
|
11
11
|
import { PXE } from '../../pxe.js';
|
|
12
12
|
import { PXE_DATA_SCHEMA_VERSION } from '../../storage/index.js';
|
|
13
13
|
import { isPrivateKernelProver } from '../pxe_creation_options.js';
|
|
14
|
+
import { openStore } from './store.js';
|
|
14
15
|
export async function createPXE(aztecNode, config, options = {
|
|
15
16
|
loggers: {}
|
|
16
17
|
}) {
|
|
@@ -36,7 +37,12 @@ export async function createPXE(aztecNode, config, options = {
|
|
|
36
37
|
const storeLogger = loggers.store ?? createLogger('pxe:data:lmdb', {
|
|
37
38
|
actor
|
|
38
39
|
});
|
|
39
|
-
options.store = await
|
|
40
|
+
options.store = configWithContracts.dataDirectory ? await openStore('pxe_data', PXE_DATA_SCHEMA_VERSION, {
|
|
41
|
+
dataDirectory: configWithContracts.dataDirectory,
|
|
42
|
+
dataStoreMapSizeKb: configWithContracts.dataStoreMapSizeKb,
|
|
43
|
+
l1ChainId,
|
|
44
|
+
rollupAddress: l1ContractAddresses.rollupAddress
|
|
45
|
+
}, storeLogger.getBindings()) : await openTmpStore('pxe_data', true, configWithContracts.dataStoreMapSizeKb, undefined, storeLogger.getBindings());
|
|
40
46
|
}
|
|
41
47
|
const proverLogger = loggers.prover ?? createLogger('pxe:bb:native', {
|
|
42
48
|
actor
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import type { Logger } from '@aztec/foundation/log';
|
|
2
2
|
import { type SimulationError } from '@aztec/stdlib/errors';
|
|
3
|
+
import type { BlockHeader } from '@aztec/stdlib/tx';
|
|
4
|
+
import type { ContractClassService } from './contract/contract_class_service.js';
|
|
3
5
|
import type { ContractStore } from './storage/contract_store/contract_store.js';
|
|
4
6
|
/**
|
|
5
7
|
* Adds contract and function names to a simulation error, if they
|
|
6
8
|
* can be found in the PXE database
|
|
7
9
|
* @param err - The error to enrich.
|
|
8
10
|
*/
|
|
9
|
-
export declare function enrichSimulationError(err: SimulationError, contractStore: ContractStore, logger: Logger): Promise<void>;
|
|
10
|
-
export declare function enrichPublicSimulationError(err: SimulationError, contractStore: ContractStore, logger: Logger): Promise<void>;
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
11
|
+
export declare function enrichSimulationError(err: SimulationError, contractStore: ContractStore, contractClassService: ContractClassService, anchorHeader: BlockHeader, logger: Logger): Promise<void>;
|
|
12
|
+
export declare function enrichPublicSimulationError(err: SimulationError, contractStore: ContractStore, contractClassService: ContractClassService, anchorHeader: BlockHeader, logger: Logger): Promise<void>;
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JfZW5yaWNoaW5nLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZXJyb3JfZW5yaWNoaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBSXBELE9BQU8sRUFBRSxLQUFLLGVBQWUsRUFBNkIsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RixPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVwRCxPQUFPLEtBQUssRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ2pGLE9BQU8sS0FBSyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBRWhGOzs7O0dBSUc7QUFDSCx3QkFBc0IscUJBQXFCLENBQ3pDLEdBQUcsRUFBRSxlQUFlLEVBQ3BCLGFBQWEsRUFBRSxhQUFhLEVBQzVCLG9CQUFvQixFQUFFLG9CQUFvQixFQUMxQyxZQUFZLEVBQUUsV0FBVyxFQUN6QixNQUFNLEVBQUUsTUFBTSxpQkFxRGY7QUFFRCx3QkFBc0IsMkJBQTJCLENBQy9DLEdBQUcsRUFBRSxlQUFlLEVBQ3BCLGFBQWEsRUFBRSxhQUFhLEVBQzVCLG9CQUFvQixFQUFFLG9CQUFvQixFQUMxQyxZQUFZLEVBQUUsV0FBVyxFQUN6QixNQUFNLEVBQUUsTUFBTSxpQkEwQ2YifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error_enriching.d.ts","sourceRoot":"","sources":["../src/error_enriching.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAIpD,OAAO,EAAE,KAAK,eAAe,EAA6B,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"error_enriching.d.ts","sourceRoot":"","sources":["../src/error_enriching.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAIpD,OAAO,EAAE,KAAK,eAAe,EAA6B,MAAM,sBAAsB,CAAC;AACvF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AACjF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAC;AAEhF;;;;GAIG;AACH,wBAAsB,qBAAqB,CACzC,GAAG,EAAE,eAAe,EACpB,aAAa,EAAE,aAAa,EAC5B,oBAAoB,EAAE,oBAAoB,EAC1C,YAAY,EAAE,WAAW,EACzB,MAAM,EAAE,MAAM,iBAqDf;AAED,wBAAsB,2BAA2B,CAC/C,GAAG,EAAE,eAAe,EACpB,aAAa,EAAE,aAAa,EAC5B,oBAAoB,EAAE,oBAAoB,EAC1C,YAAY,EAAE,WAAW,EACzB,MAAM,EAAE,MAAM,iBA0Cf"}
|
package/dest/error_enriching.js
CHANGED
|
@@ -6,7 +6,7 @@ import { isNoirCallStackUnresolved } from '@aztec/stdlib/errors';
|
|
|
6
6
|
* Adds contract and function names to a simulation error, if they
|
|
7
7
|
* can be found in the PXE database
|
|
8
8
|
* @param err - The error to enrich.
|
|
9
|
-
*/ export async function enrichSimulationError(err, contractStore, logger) {
|
|
9
|
+
*/ export async function enrichSimulationError(err, contractStore, contractClassService, anchorHeader, logger) {
|
|
10
10
|
// Maps contract addresses to the set of function selectors that were in error.
|
|
11
11
|
// Map and Set do reference equality for their keys instead of value equality, so we store the string
|
|
12
12
|
// representation to get e.g. different contract address objects with the same address value to match.
|
|
@@ -24,12 +24,13 @@ import { isNoirCallStackUnresolved } from '@aztec/stdlib/errors';
|
|
|
24
24
|
...mentionedFunctions.entries()
|
|
25
25
|
].map(async ([contractAddress, fnSelectors])=>{
|
|
26
26
|
const parsedContractAddress = AztecAddress.fromStringUnsafe(contractAddress);
|
|
27
|
-
const
|
|
28
|
-
|
|
29
|
-
|
|
27
|
+
const classId = await contractClassService.getCurrentClassId(parsedContractAddress, anchorHeader);
|
|
28
|
+
const artifact = classId && await contractStore.getContractArtifact(classId);
|
|
29
|
+
if (artifact) {
|
|
30
|
+
err.enrichWithContractName(parsedContractAddress, artifact.name);
|
|
30
31
|
// Map from function selector to function name. It uses a stringified key for the same reason as mentionedFunctions.
|
|
31
32
|
const selectorToNameMap = new Map();
|
|
32
|
-
await Promise.all(
|
|
33
|
+
await Promise.all(artifact.functions.map(async (fn)=>{
|
|
33
34
|
const selector = await FunctionSelector.fromNameAndParameters(fn);
|
|
34
35
|
selectorToNameMap.set(selector.toString(), fn.name);
|
|
35
36
|
}));
|
|
@@ -37,7 +38,7 @@ import { isNoirCallStackUnresolved } from '@aztec/stdlib/errors';
|
|
|
37
38
|
if (selectorToNameMap.has(fnSelector.toString())) {
|
|
38
39
|
err.enrichWithFunctionName(parsedContractAddress, fnSelector, selectorToNameMap.get(fnSelector.toString()));
|
|
39
40
|
} else {
|
|
40
|
-
logger.warn(`Could not find function artifact in contract ${
|
|
41
|
+
logger.warn(`Could not find function artifact in contract ${artifact.name} for function '${fnSelector}' when enriching error callstack`);
|
|
41
42
|
}
|
|
42
43
|
}
|
|
43
44
|
} else {
|
|
@@ -45,13 +46,14 @@ import { isNoirCallStackUnresolved } from '@aztec/stdlib/errors';
|
|
|
45
46
|
}
|
|
46
47
|
}));
|
|
47
48
|
}
|
|
48
|
-
export async function enrichPublicSimulationError(err, contractStore, logger) {
|
|
49
|
+
export async function enrichPublicSimulationError(err, contractStore, contractClassService, anchorHeader, logger) {
|
|
49
50
|
const callStack = err.getCallStack();
|
|
50
51
|
const originalFailingFunction = callStack[callStack.length - 1];
|
|
51
52
|
if (!originalFailingFunction) {
|
|
52
53
|
throw new Error(`Original failing function not found when enriching public simulation, missing callstack`);
|
|
53
54
|
}
|
|
54
|
-
const
|
|
55
|
+
const classId = await contractClassService.getCurrentClassId(originalFailingFunction.contractAddress, anchorHeader);
|
|
56
|
+
const artifact = classId && await contractStore.getPublicFunctionArtifact(classId);
|
|
55
57
|
if (!artifact) {
|
|
56
58
|
throw new Error(`Artifact not found when enriching public simulation error. Contract address: ${originalFailingFunction.contractAddress}.`);
|
|
57
59
|
}
|
|
@@ -59,7 +61,7 @@ export async function enrichPublicSimulationError(err, contractStore, logger) {
|
|
|
59
61
|
if (assertionMessage) {
|
|
60
62
|
err.setOriginalMessage(err.getOriginalMessage() + `${assertionMessage}`);
|
|
61
63
|
}
|
|
62
|
-
const debugInfo = await contractStore.getPublicFunctionDebugMetadata(
|
|
64
|
+
const debugInfo = await contractStore.getPublicFunctionDebugMetadata(classId);
|
|
63
65
|
const noirCallStack = err.getNoirCallStack();
|
|
64
66
|
if (debugInfo) {
|
|
65
67
|
if (isNoirCallStackUnresolved(noirCallStack)) {
|
|
@@ -72,6 +74,6 @@ export async function enrichPublicSimulationError(err, contractStore, logger) {
|
|
|
72
74
|
logger.warn(`Could not resolve noir call stack for ${originalFailingFunction.contractAddress.toString()}:${originalFailingFunction.functionName?.toString() ?? ''}: ${err}`);
|
|
73
75
|
}
|
|
74
76
|
}
|
|
75
|
-
await enrichSimulationError(err, contractStore, logger);
|
|
77
|
+
await enrichSimulationError(err, contractStore, contractClassService, anchorHeader, logger);
|
|
76
78
|
}
|
|
77
79
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { AuthorizeUtilityCall } from './authorize_utility_call.js';
|
|
2
|
+
import type { ResolveCustomRequest } from './resolve_custom_request.js';
|
|
2
3
|
import type { ResolveTaggingSecretStrategy } from './resolve_tagging_secret_strategy.js';
|
|
3
4
|
/**
|
|
4
5
|
* Hooks that PXE invokes during client-side simulation to gate or steer operations that the protocol
|
|
@@ -27,8 +28,12 @@ import type { ResolveTaggingSecretStrategy } from './resolve_tagging_secret_stra
|
|
|
27
28
|
* ? { authorized: true }
|
|
28
29
|
* : { authorized: false, reason: 'Unknown target' };
|
|
29
30
|
* },
|
|
30
|
-
* //
|
|
31
|
-
*
|
|
31
|
+
* // Apply per-recipient policy: reach a known contact via their address keys (no onchain trace) and use a
|
|
32
|
+
* // non-interactive handshake for everyone else.
|
|
33
|
+
* resolveTaggingSecretStrategy: async ({ recipient }) =>
|
|
34
|
+
* knownContacts.has(recipient.toString())
|
|
35
|
+
* ? { type: 'address-derived' }
|
|
36
|
+
* : { type: 'non-interactive-handshake' },
|
|
32
37
|
* },
|
|
33
38
|
* });
|
|
34
39
|
* ```
|
|
@@ -38,14 +43,20 @@ export interface ExecutionHooks {
|
|
|
38
43
|
authorizeUtilityCall?: AuthorizeUtilityCall;
|
|
39
44
|
/**
|
|
40
45
|
* Resolves a message's tagging secret when none is already established for the sender/recipient pair, letting the
|
|
41
|
-
* wallet apply per-recipient policy. PXE applies a
|
|
46
|
+
* wallet apply per-recipient policy. PXE applies a default when absent.
|
|
42
47
|
* See {@link ResolveTaggingSecretStrategy} for the request shape and defaults.
|
|
43
48
|
*/
|
|
44
49
|
resolveTaggingSecretStrategy?: ResolveTaggingSecretStrategy;
|
|
50
|
+
/**
|
|
51
|
+
* Resolves a custom, caller-defined request a circuit cannot serve from local state. Any contract can issue one, so
|
|
52
|
+
* an implementor should verify both the request `kind` and the issuing contract (its address and class ID) before
|
|
53
|
+
* fulfilling it. Rejected when absent; see {@link ResolveCustomRequest}.
|
|
54
|
+
*/
|
|
55
|
+
resolveCustomRequest?: ResolveCustomRequest;
|
|
45
56
|
}
|
|
46
57
|
/**
|
|
47
58
|
* Builds an {@link ExecutionHooks} from individually-constructed hook callbacks. Returns `undefined`
|
|
48
59
|
* when every field is absent, so callers can unconditionally pass the result as `hooks`.
|
|
49
60
|
*/
|
|
50
61
|
export declare function composeHooks(hooks: ExecutionHooks): ExecutionHooks | undefined;
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhlY3V0aW9uX2hvb2tzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaG9va3MvZXhlY3V0aW9uX2hvb2tzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDeEUsT0FBTyxLQUFLLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN4RSxPQUFPLEtBQUssRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRXpGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQ0c7QUFDSCxNQUFNLFdBQVcsY0FBYztJQUM3QixtR0FBbUc7SUFDbkcsb0JBQW9CLENBQUMsRUFBRSxvQkFBb0IsQ0FBQztJQUM1Qzs7OztPQUlHO0lBQ0gsNEJBQTRCLENBQUMsRUFBRSw0QkFBNEIsQ0FBQztJQUM1RDs7OztPQUlHO0lBQ0gsb0JBQW9CLENBQUMsRUFBRSxvQkFBb0IsQ0FBQztDQUM3QztBQUVEOzs7R0FHRztBQUNILHdCQUFnQixZQUFZLENBQUMsS0FBSyxFQUFFLGNBQWMsR0FBRyxjQUFjLEdBQUcsU0FBUyxDQUs5RSJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execution_hooks.d.ts","sourceRoot":"","sources":["../../src/hooks/execution_hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,sCAAsC,CAAC;AAEzF
|
|
1
|
+
{"version":3,"file":"execution_hooks.d.ts","sourceRoot":"","sources":["../../src/hooks/execution_hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,sCAAsC,CAAC;AAEzF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,MAAM,WAAW,cAAc;IAC7B,mGAAmG;IACnG,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C;;;;OAIG;IACH,4BAA4B,CAAC,EAAE,4BAA4B,CAAC;IAC5D;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;CAC7C;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,cAAc,GAAG,cAAc,GAAG,SAAS,CAK9E"}
|
package/dest/hooks/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export type { AuthorizeUtilityCall, UtilityCallAuthorizationRequest, UtilityCallAuthorizationResponse, } from './authorize_utility_call.js';
|
|
2
2
|
export { type ExecutionHooks, composeHooks } from './execution_hooks.js';
|
|
3
|
-
export { type
|
|
4
|
-
|
|
3
|
+
export { type CustomRequest, type ResolveCustomRequest } from './resolve_custom_request.js';
|
|
4
|
+
export { DEFAULT_TAGGING_SECRET_STRATEGY, type ResolveTaggingSecretStrategy, type TaggingSecretStrategy, type TaggingSecretStrategyRequest, } from './resolve_tagging_secret_strategy.js';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ob29rcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZLEVBQ1Ysb0JBQW9CLEVBQ3BCLCtCQUErQixFQUMvQixnQ0FBZ0MsR0FDakMsTUFBTSw2QkFBNkIsQ0FBQztBQUNyQyxPQUFPLEVBQUUsS0FBSyxjQUFjLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekUsT0FBTyxFQUFFLEtBQUssYUFBYSxFQUFFLEtBQUssb0JBQW9CLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM1RixPQUFPLEVBQ0wsK0JBQStCLEVBQy9CLEtBQUssNEJBQTRCLEVBQ2pDLEtBQUsscUJBQXFCLEVBQzFCLEtBQUssNEJBQTRCLEdBQ2xDLE1BQU0sc0NBQXNDLENBQUMifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,oBAAoB,EACpB,+BAA+B,EAC/B,gCAAgC,GACjC,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,KAAK,cAAc,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzE,OAAO,EACL,KAAK,4BAA4B,EACjC,KAAK,qBAAqB,EAC1B,KAAK,4BAA4B,GAClC,MAAM,sCAAsC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,oBAAoB,EACpB,+BAA+B,EAC/B,gCAAgC,GACjC,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,KAAK,cAAc,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzE,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAC5F,OAAO,EACL,+BAA+B,EAC/B,KAAK,4BAA4B,EACjC,KAAK,qBAAqB,EAC1B,KAAK,4BAA4B,GAClC,MAAM,sCAAsC,CAAC"}
|
package/dest/hooks/index.js
CHANGED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { Fr } from '@aztec/foundation/curves/bn254';
|
|
2
|
+
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
3
|
+
/**
|
|
4
|
+
* A custom, caller-defined request resolved via the {@link ResolveCustomRequest} hook. It carries no fixed meaning:
|
|
5
|
+
* `kind` selects the request type so one hook can serve many such types, and `payload` holds the opaque,
|
|
6
|
+
* request-specific arguments. The resolver answers by whatever means it needs (local state, a third party,
|
|
7
|
+
* offchain data).
|
|
8
|
+
*/
|
|
9
|
+
export type CustomRequest = {
|
|
10
|
+
/** The address of the contract issuing the request. */
|
|
11
|
+
contractAddress: AztecAddress;
|
|
12
|
+
/** The issuing contract's class ID, so resolvers can apply class-level (not just per-address) policy. */
|
|
13
|
+
contractClassId: Fr;
|
|
14
|
+
/** Discriminates the request type, letting one hook serve many such types. */
|
|
15
|
+
kind: Fr;
|
|
16
|
+
/** Opaque, request-specific arguments. */
|
|
17
|
+
payload: Fr[];
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Hook resolving a {@link CustomRequest}. The resolver produces the response however it needs to.
|
|
21
|
+
*/
|
|
22
|
+
export type ResolveCustomRequest = (request: CustomRequest) => Promise<Fr[]>;
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZV9jdXN0b21fcmVxdWVzdC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hvb2tzL3Jlc29sdmVfY3VzdG9tX3JlcXVlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDekQsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFaEU7Ozs7O0dBS0c7QUFDSCxNQUFNLE1BQU0sYUFBYSxHQUFHO0lBQzFCLHVEQUF1RDtJQUN2RCxlQUFlLEVBQUUsWUFBWSxDQUFDO0lBQzlCLHlHQUF5RztJQUN6RyxlQUFlLEVBQUUsRUFBRSxDQUFDO0lBQ3BCLDhFQUE4RTtJQUM5RSxJQUFJLEVBQUUsRUFBRSxDQUFDO0lBQ1QsMENBQTBDO0lBQzFDLE9BQU8sRUFBRSxFQUFFLEVBQUUsQ0FBQztDQUNmLENBQUM7QUFFRjs7R0FFRztBQUNILE1BQU0sTUFBTSxvQkFBb0IsR0FBRyxDQUFDLE9BQU8sRUFBRSxhQUFhLEtBQUssT0FBTyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMifQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve_custom_request.d.ts","sourceRoot":"","sources":["../../src/hooks/resolve_custom_request.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAEhE;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,uDAAuD;IACvD,eAAe,EAAE,YAAY,CAAC;IAC9B,yGAAyG;IACzG,eAAe,EAAE,EAAE,CAAC;IACpB,8EAA8E;IAC9E,IAAI,EAAE,EAAE,CAAC;IACT,0CAA0C;IAC1C,OAAO,EAAE,EAAE,EAAE,CAAC;CACf,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,EAAE,aAAa,KAAK,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC"}
|
|
@@ -10,6 +10,13 @@ import type { AppTaggingSecretKind } from '@aztec/stdlib/logs';
|
|
|
10
10
|
export type TaggingSecretStrategy = {
|
|
11
11
|
/** Establish a fresh non-interactive handshake via the onchain registry; reveals the recipient onchain. */
|
|
12
12
|
type: 'non-interactive-handshake';
|
|
13
|
+
} | {
|
|
14
|
+
/**
|
|
15
|
+
* Establish a fresh interactive handshake via the onchain registry. Reveals nothing about the recipient
|
|
16
|
+
* onchain, but requires the recipient to answer the registry's signed-authorization request (served through
|
|
17
|
+
* the {@link ResolveCustomRequest} hook), so the send fails when it cannot be served.
|
|
18
|
+
*/
|
|
19
|
+
type: 'interactive-handshake';
|
|
13
20
|
} | {
|
|
14
21
|
/** Derive the secret from the sender's and recipient's address keys via ECDH. PXE computes and silos it. */
|
|
15
22
|
type: 'address-derived';
|
|
@@ -23,6 +30,8 @@ export type TaggingSecretStrategy = {
|
|
|
23
30
|
/** The raw (un-siloed) shared secret point to derive the tag from. */
|
|
24
31
|
secret: Point;
|
|
25
32
|
};
|
|
33
|
+
/** The strategy PXE applies to both delivery modes when no `resolveTaggingSecretStrategy` hook is configured. */
|
|
34
|
+
export declare const DEFAULT_TAGGING_SECRET_STRATEGY: TaggingSecretStrategy;
|
|
26
35
|
/** Information about the message delivery requesting a tagging secret strategy. */
|
|
27
36
|
export type TaggingSecretStrategyRequest = {
|
|
28
37
|
contractAddress: AztecAddress;
|
|
@@ -38,4 +47,4 @@ export type TaggingSecretStrategyRequest = {
|
|
|
38
47
|
* Hook returning the {@link TaggingSecretStrategy} for an outgoing message.
|
|
39
48
|
*/
|
|
40
49
|
export type ResolveTaggingSecretStrategy = (request: TaggingSecretStrategyRequest) => Promise<TaggingSecretStrategy>;
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZV90YWdnaW5nX3NlY3JldF9zdHJhdGVneS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hvb2tzL3Jlc29sdmVfdGFnZ2luZ19zZWNyZXRfc3RyYXRlZ3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDekQsT0FBTyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDL0QsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDaEUsT0FBTyxLQUFLLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUsvRDs7OztHQUlHO0FBQ0gsTUFBTSxNQUFNLHFCQUFxQixHQUM3QjtJQUNFLDJHQUEyRztJQUMzRyxJQUFJLEVBQUUsMkJBQTJCLENBQUM7Q0FDbkMsR0FDRDtJQUNFOzs7O09BSUc7SUFDSCxJQUFJLEVBQUUsdUJBQXVCLENBQUM7Q0FDL0IsR0FDRDtJQUNFLDRHQUE0RztJQUM1RyxJQUFJLEVBQUUsaUJBQWlCLENBQUM7Q0FDekIsR0FDRDtJQUNFOzs7O09BSUc7SUFDSCxJQUFJLEVBQUUsa0JBQWtCLENBQUM7SUFDekIsc0VBQXNFO0lBQ3RFLE1BQU0sRUFBRSxLQUFLLENBQUM7Q0FDZixDQUFDO0FBRU4saUhBQWlIO0FBQ2pILGVBQU8sTUFBTSwrQkFBK0IsRUFBRSxxQkFBNkQsQ0FBQztBQUU1RyxtRkFBbUY7QUFDbkYsTUFBTSxNQUFNLDRCQUE0QixHQUFHO0lBQ3pDLGVBQWUsRUFBRSxZQUFZLENBQUM7SUFDOUI7O09BRUc7SUFDSCxlQUFlLEVBQUUsRUFBRSxDQUFDO0lBQ3BCLE1BQU0sRUFBRSxZQUFZLENBQUM7SUFDckIsU0FBUyxFQUFFLFlBQVksQ0FBQztJQUN4QixZQUFZLEVBQUUsb0JBQW9CLENBQUM7Q0FDcEMsQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBTSxNQUFNLDRCQUE0QixHQUFHLENBQUMsT0FBTyxFQUFFLDRCQUE0QixLQUFLLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve_tagging_secret_strategy.d.ts","sourceRoot":"","sources":["../../src/hooks/resolve_tagging_secret_strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACzD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mCAAmC,CAAC;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"resolve_tagging_secret_strategy.d.ts","sourceRoot":"","sources":["../../src/hooks/resolve_tagging_secret_strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACzD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mCAAmC,CAAC;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAK/D;;;;GAIG;AACH,MAAM,MAAM,qBAAqB,GAC7B;IACE,2GAA2G;IAC3G,IAAI,EAAE,2BAA2B,CAAC;CACnC,GACD;IACE;;;;OAIG;IACH,IAAI,EAAE,uBAAuB,CAAC;CAC/B,GACD;IACE,4GAA4G;IAC5G,IAAI,EAAE,iBAAiB,CAAC;CACzB,GACD;IACE;;;;OAIG;IACH,IAAI,EAAE,kBAAkB,CAAC;IACzB,sEAAsE;IACtE,MAAM,EAAE,KAAK,CAAC;CACf,CAAC;AAEN,iHAAiH;AACjH,eAAO,MAAM,+BAA+B,EAAE,qBAA6D,CAAC;AAE5G,mFAAmF;AACnF,MAAM,MAAM,4BAA4B,GAAG;IACzC,eAAe,EAAE,YAAY,CAAC;IAC9B;;OAEG;IACH,eAAe,EAAE,EAAE,CAAC;IACpB,MAAM,EAAE,YAAY,CAAC;IACrB,SAAS,EAAE,YAAY,CAAC;IACxB,YAAY,EAAE,oBAAoB,CAAC;CACpC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,4BAA4B,GAAG,CAAC,OAAO,EAAE,4BAA4B,KAAK,OAAO,CAAC,qBAAqB,CAAC,CAAC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
/** The strategy PXE applies to both delivery modes when no `resolveTaggingSecretStrategy` hook is configured. */ export const DEFAULT_TAGGING_SECRET_STRATEGY = {
|
|
2
|
+
type: 'non-interactive-handshake'
|
|
3
|
+
};
|
|
@@ -3,10 +3,11 @@ import type { KeyStore } from '@aztec/key-store';
|
|
|
3
3
|
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
4
4
|
import type { L2TipsProvider } from '@aztec/stdlib/block';
|
|
5
5
|
import type { AztecNode } from '@aztec/stdlib/interfaces/server';
|
|
6
|
-
import { AppTaggingSecret
|
|
6
|
+
import { AppTaggingSecret } from '@aztec/stdlib/logs';
|
|
7
7
|
import type { BlockHeader } from '@aztec/stdlib/tx';
|
|
8
8
|
import { type LogRetrievalRequest } from '../contract_function_simulator/noir-structs/log_retrieval_request.js';
|
|
9
9
|
import type { LogRetrievalResponse } from '../contract_function_simulator/noir-structs/log_retrieval_response.js';
|
|
10
|
+
import type { PendingTaggedLog } from '../contract_function_simulator/noir-structs/pending_tagged_log.js';
|
|
10
11
|
import { AddressStore } from '../storage/address_store/address_store.js';
|
|
11
12
|
import type { RecipientTaggingStore } from '../storage/tagging_store/recipient_tagging_store.js';
|
|
12
13
|
import type { TaggingSecretSourcesStore } from '../storage/tagging_store/tagging_secret_sources_store.js';
|
|
@@ -19,11 +20,12 @@ export declare class LogService {
|
|
|
19
20
|
private readonly recipientTaggingStore;
|
|
20
21
|
private readonly taggingSecretSourcesStore;
|
|
21
22
|
private readonly addressStore;
|
|
23
|
+
private readonly scopes;
|
|
22
24
|
private readonly jobId;
|
|
23
25
|
private log;
|
|
24
|
-
constructor(aztecNode: AztecNode, anchorBlockHeader: BlockHeader, l2TipsStore: L2TipsProvider, keyStore: KeyStore, recipientTaggingStore: RecipientTaggingStore, taggingSecretSourcesStore: TaggingSecretSourcesStore, addressStore: AddressStore, jobId: string, bindings?: LoggerBindings);
|
|
26
|
+
constructor(aztecNode: AztecNode, anchorBlockHeader: BlockHeader, l2TipsStore: L2TipsProvider, keyStore: KeyStore, recipientTaggingStore: RecipientTaggingStore, taggingSecretSourcesStore: TaggingSecretSourcesStore, addressStore: AddressStore, scopes: AztecAddress[], jobId: string, bindings?: LoggerBindings);
|
|
25
27
|
/** Fetches all logs matching each request's tag, returning an array of log arrays (one per request). */
|
|
26
28
|
fetchLogsByTag(contractAddress: AztecAddress, logRetrievalRequests: LogRetrievalRequest[]): Promise<LogRetrievalResponse[][]>;
|
|
27
29
|
fetchTaggedLogs(contractAddress: AztecAddress, recipient: AztecAddress, providedSecrets: AppTaggingSecret[]): Promise<PendingTaggedLog[]>;
|
|
28
30
|
}
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nX3NlcnZpY2UuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sb2dzL2xvZ19zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBZSxLQUFLLGNBQWMsRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUN2RixPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDM0QsT0FBTyxLQUFLLEVBQWEsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFckUsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDakUsT0FBTyxFQUNMLGdCQUFnQixFQUtqQixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRXBELE9BQU8sRUFDTCxLQUFLLG1CQUFtQixFQUV6QixNQUFNLHNFQUFzRSxDQUFDO0FBQzlFLE9BQU8sS0FBSyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUVBQXVFLENBQUM7QUFDbEgsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtRUFBbUUsQ0FBQztBQUUxRyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFFekUsT0FBTyxLQUFLLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUNqRyxPQUFPLEtBQUssRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBVzFHLHFCQUFhLFVBQVU7O0lBSW5CLE9BQU8sQ0FBQyxRQUFRLENBQUMsU0FBUztJQUMxQixPQUFPLENBQUMsUUFBUSxDQUFDLGlCQUFpQjtJQUNsQyxPQUFPLENBQUMsUUFBUSxDQUFDLFdBQVc7SUFDNUIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxRQUFRO0lBQ3pCLE9BQU8sQ0FBQyxRQUFRLENBQUMscUJBQXFCO0lBQ3RDLE9BQU8sQ0FBQyxRQUFRLENBQUMseUJBQXlCO0lBQzFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsWUFBWTtJQUM3QixPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU07SUFDdkIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLO0lBWHhCLE9BQU8sQ0FBQyxHQUFHLENBQVM7SUFFcEIsWUFDbUIsU0FBUyxFQUFFLFNBQVMsRUFDcEIsaUJBQWlCLEVBQUUsV0FBVyxFQUM5QixXQUFXLEVBQUUsY0FBYyxFQUMzQixRQUFRLEVBQUUsUUFBUSxFQUNsQixxQkFBcUIsRUFBRSxxQkFBcUIsRUFDNUMseUJBQXlCLEVBQUUseUJBQXlCLEVBQ3BELFlBQVksRUFBRSxZQUFZLEVBQzFCLE1BQU0sRUFBRSxZQUFZLEVBQUUsRUFDdEIsS0FBSyxFQUFFLE1BQU0sRUFDOUIsUUFBUSxDQUFDLEVBQUUsY0FBYyxFQUcxQjtJQUVELHdHQUF3RztJQUMzRixjQUFjLENBQ3pCLGVBQWUsRUFBRSxZQUFZLEVBQzdCLG9CQUFvQixFQUFFLG1CQUFtQixFQUFFLEdBQzFDLE9BQU8sQ0FBQyxvQkFBb0IsRUFBRSxFQUFFLENBQUMsQ0FzQm5DO0lBeUdZLGVBQWUsQ0FDMUIsZUFBZSxFQUFFLFlBQVksRUFDN0IsU0FBUyxFQUFFLFlBQVksRUFDdkIsZUFBZSxFQUFFLGdCQUFnQixFQUFFLEdBQ2xDLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBc0M3QjtDQWdFRiJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"log_service.d.ts","sourceRoot":"","sources":["../../src/logs/log_service.ts"],"names":[],"mappings":"AAGA,OAAO,EAAe,KAAK,cAAc,EAAgB,MAAM,uBAAuB,CAAC;AACvF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,KAAK,EAAa,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EACL,gBAAgB,
|
|
1
|
+
{"version":3,"file":"log_service.d.ts","sourceRoot":"","sources":["../../src/logs/log_service.ts"],"names":[],"mappings":"AAGA,OAAO,EAAe,KAAK,cAAc,EAAgB,MAAM,uBAAuB,CAAC;AACvF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,KAAK,EAAa,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EACL,gBAAgB,EAKjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,EACL,KAAK,mBAAmB,EAEzB,MAAM,sEAAsE,CAAC;AAC9E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uEAAuE,CAAC;AAClH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mEAAmE,CAAC;AAE1G,OAAO,EAAE,YAAY,EAAE,MAAM,2CAA2C,CAAC;AAEzE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qDAAqD,CAAC;AACjG,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,0DAA0D,CAAC;AAW1G,qBAAa,UAAU;;IAInB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,qBAAqB;IACtC,OAAO,CAAC,QAAQ,CAAC,yBAAyB;IAC1C,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,KAAK;IAXxB,OAAO,CAAC,GAAG,CAAS;IAEpB,YACmB,SAAS,EAAE,SAAS,EACpB,iBAAiB,EAAE,WAAW,EAC9B,WAAW,EAAE,cAAc,EAC3B,QAAQ,EAAE,QAAQ,EAClB,qBAAqB,EAAE,qBAAqB,EAC5C,yBAAyB,EAAE,yBAAyB,EACpD,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,YAAY,EAAE,EACtB,KAAK,EAAE,MAAM,EAC9B,QAAQ,CAAC,EAAE,cAAc,EAG1B;IAED,wGAAwG;IAC3F,cAAc,CACzB,eAAe,EAAE,YAAY,EAC7B,oBAAoB,EAAE,mBAAmB,EAAE,GAC1C,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAsBnC;IAyGY,eAAe,CAC1B,eAAe,EAAE,YAAY,EAC7B,SAAS,EAAE,YAAY,EACvB,eAAe,EAAE,gBAAgB,EAAE,GAClC,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAsC7B;CAgEF"}
|
package/dest/logs/log_service.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { PRIVATE_LOG_CIPHERTEXT_LEN } from '@aztec/constants';
|
|
2
2
|
import { createLogger } from '@aztec/foundation/log';
|
|
3
|
-
import { AppTaggingSecret, SiloedTag, computeSharedTaggingSecret } from '@aztec/stdlib/logs';
|
|
3
|
+
import { AppTaggingSecret, AppTaggingSecretKind, SiloedTag, computeSharedTaggingSecret } from '@aztec/stdlib/logs';
|
|
4
4
|
import { LogSource } from '../contract_function_simulator/noir-structs/log_retrieval_request.js';
|
|
5
|
+
import { ResolvedTx } from '../contract_function_simulator/noir-structs/resolved_tx.js';
|
|
6
|
+
import { assertAllowedScope } from '../storage/allowed_scopes.js';
|
|
5
7
|
import { getAllPrivateLogsByTags, getAllPublicLogsByTagsFromContract, syncTaggedPrivateLogs } from '../tagging/index.js';
|
|
6
8
|
const rangeKey = (fromBlock, toBlock)=>`${fromBlock ?? ''}-${toBlock ?? ''}`;
|
|
7
9
|
export class LogService {
|
|
@@ -12,9 +14,10 @@ export class LogService {
|
|
|
12
14
|
recipientTaggingStore;
|
|
13
15
|
taggingSecretSourcesStore;
|
|
14
16
|
addressStore;
|
|
17
|
+
scopes;
|
|
15
18
|
jobId;
|
|
16
19
|
log;
|
|
17
|
-
constructor(aztecNode, anchorBlockHeader, l2TipsStore, keyStore, recipientTaggingStore, taggingSecretSourcesStore, addressStore, jobId, bindings){
|
|
20
|
+
constructor(aztecNode, anchorBlockHeader, l2TipsStore, keyStore, recipientTaggingStore, taggingSecretSourcesStore, addressStore, scopes, jobId, bindings){
|
|
18
21
|
this.aztecNode = aztecNode;
|
|
19
22
|
this.anchorBlockHeader = anchorBlockHeader;
|
|
20
23
|
this.l2TipsStore = l2TipsStore;
|
|
@@ -22,6 +25,7 @@ export class LogService {
|
|
|
22
25
|
this.recipientTaggingStore = recipientTaggingStore;
|
|
23
26
|
this.taggingSecretSourcesStore = taggingSecretSourcesStore;
|
|
24
27
|
this.addressStore = addressStore;
|
|
28
|
+
this.scopes = scopes;
|
|
25
29
|
this.jobId = jobId;
|
|
26
30
|
this.log = createLogger('pxe:log_service', bindings);
|
|
27
31
|
}
|
|
@@ -132,10 +136,14 @@ export class LogService {
|
|
|
132
136
|
logPayload: log.logData.slice(1, 1 + PRIVATE_LOG_CIPHERTEXT_LEN),
|
|
133
137
|
txHash: log.txHash,
|
|
134
138
|
uniqueNoteHashesInTx: noteHashes,
|
|
135
|
-
firstNullifierInTx: nullifiers[0]
|
|
139
|
+
firstNullifierInTx: nullifiers[0],
|
|
140
|
+
blockNumber: log.blockNumber,
|
|
141
|
+
blockTimestamp: log.blockTimestamp,
|
|
142
|
+
blockHash: log.blockHash
|
|
136
143
|
};
|
|
137
144
|
}
|
|
138
145
|
async fetchTaggedLogs(contractAddress, recipient, providedSecrets) {
|
|
146
|
+
assertAllowedScope(recipient, this.scopes);
|
|
139
147
|
this.log.verbose(`Fetching tagged logs for contract ${contractAddress.toString()} and recipient ${recipient.toString()}`);
|
|
140
148
|
const l2Tips = await this.l2TipsStore.getL2Tips();
|
|
141
149
|
// Secrets PXE can enumerate for this recipient (senders via ECDH + pre-shared store secrets), plus any the app
|
|
@@ -160,20 +168,16 @@ export class LogService {
|
|
|
160
168
|
}
|
|
161
169
|
return {
|
|
162
170
|
log: log.logData,
|
|
163
|
-
context:
|
|
164
|
-
txHash: log.txHash,
|
|
165
|
-
uniqueNoteHashesInTx: noteHashes,
|
|
166
|
-
firstNullifierInTx: nullifiers[0]
|
|
167
|
-
}
|
|
171
|
+
context: new ResolvedTx(log.txHash, noteHashes, nullifiers[0], log.blockNumber, log.blockHash.toFr())
|
|
168
172
|
};
|
|
169
173
|
});
|
|
170
174
|
}
|
|
171
175
|
/**
|
|
172
176
|
* Computes the tagging secrets PXE can enumerate for a recipient: one per known sender (via ECDH) plus any
|
|
173
|
-
* pre-shared
|
|
174
|
-
*
|
|
175
|
-
* are unavailable. App-supplied secrets (e.g.
|
|
176
|
-
* through here.
|
|
177
|
+
* pre-shared secrets registered directly for the recipient. Each registered secret is scanned under the tag
|
|
178
|
+
* streams its kind can back. Deriving the sender-based secrets requires the recipient's address preimage and keys,
|
|
179
|
+
* so returns an empty array when those are unavailable. App-supplied secrets (e.g. derived from discovered
|
|
180
|
+
* handshakes) are handled separately by the caller and do not go through here.
|
|
177
181
|
*/ async #getPointDerivedSecrets(contractAddress, recipient) {
|
|
178
182
|
const recipientCompleteAddress = await this.addressStore.getCompleteAddress(recipient);
|
|
179
183
|
if (!recipientCompleteAddress || !await this.keyStore.hasAccount(recipient)) {
|
|
@@ -181,11 +185,28 @@ export class LogService {
|
|
|
181
185
|
return [];
|
|
182
186
|
}
|
|
183
187
|
const recipientIvsk = await this.keyStore.getMasterIncomingViewingSecretKey(recipient);
|
|
184
|
-
const
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
];
|
|
188
|
-
return Promise.all(
|
|
188
|
+
const [senderPoints, registeredSecrets] = await Promise.all([
|
|
189
|
+
this.#getSecretsForSenders(recipientCompleteAddress, recipientIvsk),
|
|
190
|
+
this.taggingSecretSourcesStore.getSharedSecretsForRecipient(recipient)
|
|
191
|
+
]);
|
|
192
|
+
return Promise.all([
|
|
193
|
+
...senderPoints.map((secret)=>AppTaggingSecret.computeDirectional(secret, contractAddress, recipient)),
|
|
194
|
+
...registeredSecrets.flatMap(({ kind, secret })=>{
|
|
195
|
+
switch(kind){
|
|
196
|
+
case 'arbitrary-secret':
|
|
197
|
+
return [
|
|
198
|
+
AppTaggingSecret.computeDirectional(secret, contractAddress, recipient)
|
|
199
|
+
];
|
|
200
|
+
case 'handshake':
|
|
201
|
+
// A handshake-backed sender tags messages with the bare app-siloed secret, one tag domain per delivery
|
|
202
|
+
// mode.
|
|
203
|
+
return [
|
|
204
|
+
AppTaggingSecret.computeAppSiloed(secret, contractAddress, AppTaggingSecretKind.UNCONSTRAINED),
|
|
205
|
+
AppTaggingSecret.computeAppSiloed(secret, contractAddress, AppTaggingSecretKind.CONSTRAINED)
|
|
206
|
+
];
|
|
207
|
+
}
|
|
208
|
+
})
|
|
209
|
+
]);
|
|
189
210
|
}
|
|
190
211
|
async #getSecretsForSenders(recipientCompleteAddress, recipientIvsk) {
|
|
191
212
|
// We implicitly add all PXE accounts as senders, this helps us decrypt tags on notes that we send to ourselves
|
|
@@ -19,7 +19,7 @@ export declare class NoteService {
|
|
|
19
19
|
*
|
|
20
20
|
* @param owner - The owner of the notes. If undefined, returns notes for all known owners.
|
|
21
21
|
* @param status - The status of notes to fetch.
|
|
22
|
-
* @param scopes - The accounts whose notes we can access in this call.
|
|
22
|
+
* @param scopes - The accounts whose notes we can access in this call. An empty list matches no notes.
|
|
23
23
|
*/
|
|
24
24
|
getNotes(contractAddress: AztecAddress, owner: AztecAddress | undefined, storageSlot: Fr, status: NoteStatus, scopes: AztecAddress[]): Promise<{
|
|
25
25
|
contractAddress: AztecAddress;
|
|
@@ -21,7 +21,7 @@ export class NoteService {
|
|
|
21
21
|
*
|
|
22
22
|
* @param owner - The owner of the notes. If undefined, returns notes for all known owners.
|
|
23
23
|
* @param status - The status of notes to fetch.
|
|
24
|
-
* @param scopes - The accounts whose notes we can access in this call.
|
|
24
|
+
* @param scopes - The accounts whose notes we can access in this call. An empty list matches no notes.
|
|
25
25
|
*/ async getNotes(contractAddress, owner, storageSlot, status, scopes) {
|
|
26
26
|
const noteDaos = await this.noteStore.getNotes({
|
|
27
27
|
contractAddress,
|
package/dest/oracle_version.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export declare const ORACLE_VERSION_MAJOR = 30;
|
|
2
|
-
export declare const ORACLE_VERSION_MINOR =
|
|
3
|
-
export declare const ORACLE_INTERFACE_HASH = "
|
|
2
|
+
export declare const ORACLE_VERSION_MINOR = 8;
|
|
3
|
+
export declare const ORACLE_INTERFACE_HASH = "b302a8e65d37043c0a0dc08a39895603122dce334843f0442462edb3f56e32e2";
|
|
4
4
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JhY2xlX3ZlcnNpb24uZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9vcmFjbGVfdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFZQSxlQUFPLE1BQU0sb0JBQW9CLEtBQUssQ0FBQztBQUN2QyxlQUFPLE1BQU0sb0JBQW9CLElBQUksQ0FBQztBQVF0QyxlQUFPLE1BQU0scUJBQXFCLHFFQUFxRSxDQUFDIn0=
|
package/dest/oracle_version.js
CHANGED
|
@@ -11,11 +11,11 @@
|
|
|
11
11
|
/// if AZTEC_NR_MINOR > PXE_MINOR because if a contract is updated to use a newer Aztec.nr dependency without actually
|
|
12
12
|
/// using any of the new oracles then there is no reason to throw.
|
|
13
13
|
export const ORACLE_VERSION_MAJOR = 30;
|
|
14
|
-
export const ORACLE_VERSION_MINOR =
|
|
14
|
+
export const ORACLE_VERSION_MINOR = 8;
|
|
15
15
|
/// This hash is computed from the `ORACLE_REGISTRY` declaration (each oracle's name, ordered parameter names and
|
|
16
16
|
/// types, and return type) and is used to detect when the oracle interface changes. When it does, you need to either:
|
|
17
17
|
/// - increment `ORACLE_VERSION_MAJOR` and reset `ORACLE_VERSION_MINOR` to zero if the change is breaking, or
|
|
18
18
|
/// - increment only `ORACLE_VERSION_MINOR` if the change is additive (a new oracle was added).
|
|
19
19
|
///
|
|
20
20
|
/// These constants must be kept in sync between this file and `noir-projects/aztec-nr/aztec/src/oracle/version.nr`.
|
|
21
|
-
export const ORACLE_INTERFACE_HASH = '
|
|
21
|
+
export const ORACLE_INTERFACE_HASH = 'b302a8e65d37043c0a0dc08a39895603122dce334843f0442462edb3f56e32e2';
|