@aztec/pxe 5.0.0-rc.1 → 5.0.0-rc.2
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_stream_source.d.ts +5 -5
- package/dest/block_synchronizer/block_stream_source.d.ts.map +1 -1
- package/dest/block_synchronizer/block_stream_source.js +4 -29
- package/dest/block_synchronizer/block_synchronizer.d.ts +13 -11
- package/dest/block_synchronizer/block_synchronizer.d.ts.map +1 -1
- package/dest/block_synchronizer/block_synchronizer.js +43 -15
- package/dest/config/index.d.ts +2 -1
- package/dest/config/index.d.ts.map +1 -1
- package/dest/config/index.js +1 -0
- package/dest/contract_function_simulator/contract_function_simulator.d.ts +11 -16
- package/dest/contract_function_simulator/contract_function_simulator.d.ts.map +1 -1
- package/dest/contract_function_simulator/contract_function_simulator.js +22 -18
- package/dest/contract_function_simulator/index.d.ts +15 -9
- package/dest/contract_function_simulator/index.d.ts.map +1 -1
- package/dest/contract_function_simulator/index.js +3 -7
- package/dest/contract_function_simulator/noir-structs/bounded_vec.d.ts +8 -27
- package/dest/contract_function_simulator/noir-structs/bounded_vec.d.ts.map +1 -1
- package/dest/contract_function_simulator/noir-structs/bounded_vec.js +8 -23
- 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/event_validation_request.js +1 -1
- 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 +29 -0
- package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts +11 -12
- package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts.map +1 -1
- package/dest/contract_function_simulator/noir-structs/log_retrieval_request.js +6 -49
- package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts +4 -8
- package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts.map +1 -1
- package/dest/contract_function_simulator/noir-structs/log_retrieval_response.js +1 -60
- package/dest/contract_function_simulator/noir-structs/note_validation_request.js +2 -2
- package/dest/contract_function_simulator/noir-structs/option.d.ts +9 -11
- package/dest/contract_function_simulator/noir-structs/option.d.ts.map +1 -1
- package/dest/contract_function_simulator/noir-structs/option.js +18 -13
- 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/provided_secret.d.ts +5 -8
- 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 -14
- package/dest/contract_function_simulator/noir-structs/resolved_tagging_strategy.d.ts +21 -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 +33 -0
- package/dest/contract_function_simulator/noir-structs/resolved_tx.d.ts +21 -0
- package/dest/contract_function_simulator/noir-structs/resolved_tx.d.ts.map +1 -0
- package/dest/contract_function_simulator/noir-structs/resolved_tx.js +50 -0
- package/dest/contract_function_simulator/noir-structs/tx_effect_data.d.ts +14 -0
- package/dest/contract_function_simulator/noir-structs/tx_effect_data.d.ts.map +1 -0
- package/dest/contract_function_simulator/noir-structs/tx_effect_data.js +5 -0
- package/dest/contract_function_simulator/noir-structs/utility_context.d.ts +6 -11
- package/dest/contract_function_simulator/noir-structs/utility_context.d.ts.map +1 -1
- package/dest/contract_function_simulator/noir-structs/utility_context.js +1 -20
- package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts +3 -14
- package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.js +1 -24
- package/dest/contract_function_simulator/oracle/oracle_registry.d.ts +81 -6
- package/dest/contract_function_simulator/oracle/oracle_registry.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/oracle_registry.js +128 -9
- package/dest/contract_function_simulator/oracle/oracle_type_mappings.d.ts +80 -36
- package/dest/contract_function_simulator/oracle/oracle_type_mappings.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/oracle_type_mappings.js +926 -264
- package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts +13 -8
- package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/private_execution_oracle.js +80 -11
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts +46 -20
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.js +119 -55
- package/dest/contract_sync/helpers.d.ts +7 -6
- package/dest/contract_sync/helpers.d.ts.map +1 -1
- package/dest/contract_sync/helpers.js +11 -16
- 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 +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 +1 -0
- package/dest/entrypoints/pxe_creation_options.d.ts +8 -2
- package/dest/entrypoints/pxe_creation_options.d.ts.map +1 -1
- package/dest/entrypoints/server/index.d.ts +1 -2
- package/dest/entrypoints/server/index.d.ts.map +1 -1
- package/dest/entrypoints/server/index.js +0 -1
- 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 +3 -1
- package/dest/error_enriching.js +1 -1
- package/dest/hooks/execution_hooks.d.ts +16 -7
- package/dest/hooks/execution_hooks.d.ts.map +1 -1
- package/dest/hooks/execution_hooks.js +3 -3
- package/dest/hooks/index.d.ts +3 -3
- package/dest/hooks/index.d.ts.map +1 -1
- package/dest/hooks/resolve_tagging_secret_strategy.d.ts +41 -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 +6 -6
- package/dest/logs/log_service.d.ts.map +1 -1
- package/dest/logs/log_service.js +62 -28
- package/dest/messages/tx_resolver_service.d.ts +17 -0
- package/dest/messages/tx_resolver_service.d.ts.map +1 -0
- package/dest/messages/{message_context_service.js → tx_resolver_service.js} +8 -8
- package/dest/oracle_version.d.ts +2 -2
- package/dest/oracle_version.js +2 -2
- package/dest/private_kernel/hints/test_utils.js +1 -1
- package/dest/pxe.d.ts +46 -19
- package/dest/pxe.d.ts.map +1 -1
- package/dest/pxe.js +104 -52
- 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/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 +86 -33
- package/dest/storage/capsule_store/capsule_service.d.ts +1 -1
- package/dest/storage/capsule_store/capsule_service.d.ts.map +1 -1
- package/dest/storage/capsule_store/capsule_service.js +6 -9
- package/dest/storage/contract_store/contract_store.js +2 -2
- package/dest/storage/fact_store/fact_service.d.ts +20 -0
- package/dest/storage/fact_store/fact_service.d.ts.map +1 -0
- package/dest/storage/fact_store/fact_service.js +30 -0
- package/dest/storage/fact_store/fact_store.d.ts +95 -0
- package/dest/storage/fact_store/fact_store.d.ts.map +1 -0
- package/dest/storage/fact_store/fact_store.js +408 -0
- package/dest/storage/fact_store/fact_store_keys.d.ts +34 -0
- package/dest/storage/fact_store/fact_store_keys.d.ts.map +1 -0
- package/dest/storage/fact_store/fact_store_keys.js +50 -0
- package/dest/storage/fact_store/index.d.ts +5 -0
- package/dest/storage/fact_store/index.d.ts.map +1 -0
- package/dest/storage/fact_store/index.js +3 -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 +2 -1
- package/dest/storage/index.d.ts.map +1 -1
- package/dest/storage/index.js +1 -0
- package/dest/storage/metadata.d.ts +1 -1
- package/dest/storage/metadata.js +1 -1
- package/dest/storage/open_pxe_stores.d.ts +5 -3
- package/dest/storage/open_pxe_stores.d.ts.map +1 -1
- package/dest/storage/open_pxe_stores.js +5 -3
- package/dest/storage/tagging_store/index.d.ts +2 -2
- package/dest/storage/tagging_store/index.d.ts.map +1 -1
- package/dest/storage/tagging_store/index.js +1 -1
- package/dest/storage/tagging_store/tagging_secret_sources_store.d.ts +40 -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 +92 -0
- package/package.json +17 -17
- package/src/block_synchronizer/block_stream_source.ts +6 -45
- package/src/block_synchronizer/block_synchronizer.ts +56 -23
- package/src/config/index.ts +1 -0
- package/src/contract_function_simulator/contract_function_simulator.ts +32 -31
- package/src/contract_function_simulator/index.ts +17 -8
- package/src/contract_function_simulator/noir-structs/bounded_vec.ts +12 -24
- 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/event_validation_request.ts +1 -1
- package/src/contract_function_simulator/noir-structs/fact.ts +13 -0
- package/src/contract_function_simulator/noir-structs/fact_collection.ts +59 -0
- package/src/contract_function_simulator/noir-structs/log_retrieval_request.ts +20 -46
- package/src/contract_function_simulator/noir-structs/log_retrieval_response.ts +7 -60
- package/src/contract_function_simulator/noir-structs/note_validation_request.ts +2 -2
- package/src/contract_function_simulator/noir-structs/option.ts +17 -11
- package/src/contract_function_simulator/noir-structs/origin_block.ts +8 -0
- package/src/contract_function_simulator/noir-structs/provided_secret.ts +3 -14
- package/src/contract_function_simulator/noir-structs/resolved_tagging_strategy.ts +45 -0
- package/src/contract_function_simulator/noir-structs/resolved_tx.ts +53 -0
- package/src/contract_function_simulator/noir-structs/tx_effect_data.ts +15 -0
- package/src/contract_function_simulator/noir-structs/utility_context.ts +5 -17
- package/src/contract_function_simulator/oracle/message_load_oracle_inputs.ts +6 -21
- package/src/contract_function_simulator/oracle/oracle_registry.ts +87 -79
- package/src/contract_function_simulator/oracle/oracle_type_mappings.ts +641 -247
- package/src/contract_function_simulator/oracle/private_execution_oracle.ts +94 -14
- package/src/contract_function_simulator/oracle/utility_execution_oracle.ts +206 -66
- package/src/contract_sync/helpers.ts +11 -18
- package/src/entrypoints/client/bundle/utils.ts +1 -0
- package/src/entrypoints/client/lazy/utils.ts +1 -0
- package/src/entrypoints/pxe_creation_options.ts +7 -1
- package/src/entrypoints/server/index.ts +0 -1
- package/src/entrypoints/server/utils.ts +3 -1
- package/src/error_enriching.ts +1 -1
- package/src/hooks/execution_hooks.ts +17 -8
- package/src/hooks/index.ts +6 -2
- package/src/hooks/resolve_tagging_secret_strategy.ts +46 -0
- package/src/logs/log_service.ts +71 -37
- package/src/messages/{message_context_service.ts → tx_resolver_service.ts} +16 -9
- package/src/oracle_version.ts +2 -2
- package/src/private_kernel/hints/test_utils.ts +1 -1
- package/src/pxe.ts +150 -54
- package/src/storage/allowed_scopes.ts +14 -0
- package/src/storage/backwards_compatibility_tests/__snapshots__/FactStore.json +40 -0
- package/src/storage/backwards_compatibility_tests/__snapshots__/L2TipsKVStore.json +1 -1
- package/src/storage/backwards_compatibility_tests/__snapshots__/TaggingSecretSourcesStore.json +30 -0
- package/src/storage/backwards_compatibility_tests/__snapshots__/opened_stores.json +21 -5
- package/src/storage/backwards_compatibility_tests/schema_tests.ts +88 -33
- package/src/storage/capsule_store/capsule_service.ts +8 -13
- package/src/storage/contract_store/contract_store.ts +2 -2
- package/src/storage/fact_store/fact_service.ts +45 -0
- package/src/storage/fact_store/fact_store.ts +487 -0
- package/src/storage/fact_store/fact_store_keys.ts +75 -0
- package/src/storage/fact_store/index.ts +4 -0
- package/src/storage/fact_store/stored_fact.ts +80 -0
- package/src/storage/index.ts +1 -0
- package/src/storage/metadata.ts +1 -1
- package/src/storage/open_pxe_stores.ts +6 -3
- package/src/storage/tagging_store/index.ts +1 -1
- package/src/storage/tagging_store/tagging_secret_sources_store.ts +117 -0
- package/dest/messages/message_context_service.d.ts +0 -17
- package/dest/messages/message_context_service.d.ts.map +0 -1
- package/dest/storage/tagging_store/sender_address_book_store.d.ts +0 -14
- package/dest/storage/tagging_store/sender_address_book_store.d.ts.map +0 -1
- package/dest/storage/tagging_store/sender_address_book_store.js +0 -36
- package/src/storage/backwards_compatibility_tests/__snapshots__/SenderAddressBookStore.json +0 -16
- package/src/storage/tagging_store/sender_address_book_store.ts +0 -48
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
import type { AuthorizeUtilityCall } from './authorize_utility_call.js';
|
|
2
|
+
import type { ResolveTaggingSecretStrategy } from './resolve_tagging_secret_strategy.js';
|
|
2
3
|
/**
|
|
3
|
-
* Hooks that PXE invokes during client-side simulation to gate operations that the protocol
|
|
4
|
+
* Hooks that PXE invokes during client-side simulation to gate or steer operations that the protocol
|
|
4
5
|
* does not restrict on its own. They give the wallet a chance to apply custom policies (e.g.
|
|
5
6
|
* prompting the user, consulting a dynamic allowlist, or inspecting call arguments) before the
|
|
6
|
-
* execution proceeds.
|
|
7
|
+
* execution proceeds. All hooks are optional, and when a hook is absent PXE applies a safe default.
|
|
7
8
|
*
|
|
8
9
|
* For example, {@link authorizeUtilityCall} is called whenever a utility function makes a cross-contract call. A call
|
|
9
10
|
* made by a malicious contract could leak private information, so the hook lets the wallet decide, per-call, whether
|
|
10
11
|
* to allow it. A static allowlist would not work here because neither the app nor the wallet can predict ahead of
|
|
11
12
|
* time which contracts will be invoked during execution. Calls to standard contracts (such as the HandshakeRegistry)
|
|
12
|
-
* bypass this hook and are always authorized.
|
|
13
|
+
* bypass this hook and are always authorized. When the hook is absent, cross-contract utility calls are denied.
|
|
13
14
|
*
|
|
14
15
|
* Note: hooks are unrelated to authentication witnesses (authwits). Authwits are an on-chain
|
|
15
16
|
* mechanism where a contract verifies that a caller was authorized by a specific account; hooks
|
|
@@ -26,17 +27,25 @@ import type { AuthorizeUtilityCall } from './authorize_utility_call.js';
|
|
|
26
27
|
* ? { authorized: true }
|
|
27
28
|
* : { authorized: false, reason: 'Unknown target' };
|
|
28
29
|
* },
|
|
30
|
+
* // When there's no established way to reach the recipient, fall back to a non-interactive handshake.
|
|
31
|
+
* resolveTaggingSecretStrategy: async () => ({ type: 'non-interactive-handshake' }),
|
|
29
32
|
* },
|
|
30
33
|
* });
|
|
31
34
|
* ```
|
|
32
35
|
*/
|
|
33
36
|
export interface ExecutionHooks {
|
|
34
|
-
/** Called when a contract attempts a cross-contract utility call. */
|
|
35
|
-
authorizeUtilityCall
|
|
37
|
+
/** Called when a contract attempts a cross-contract utility call. Calls are denied when absent. */
|
|
38
|
+
authorizeUtilityCall?: AuthorizeUtilityCall;
|
|
39
|
+
/**
|
|
40
|
+
* 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 privacy-safe default when absent.
|
|
42
|
+
* See {@link ResolveTaggingSecretStrategy} for the request shape and defaults.
|
|
43
|
+
*/
|
|
44
|
+
resolveTaggingSecretStrategy?: ResolveTaggingSecretStrategy;
|
|
36
45
|
}
|
|
37
46
|
/**
|
|
38
47
|
* Builds an {@link ExecutionHooks} from individually-constructed hook callbacks. Returns `undefined`
|
|
39
48
|
* when every field is absent, so callers can unconditionally pass the result as `hooks`.
|
|
40
49
|
*/
|
|
41
|
-
export declare function composeHooks(
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
50
|
+
export declare function composeHooks(hooks: ExecutionHooks): ExecutionHooks | undefined;
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhlY3V0aW9uX2hvb2tzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaG9va3MvZXhlY3V0aW9uX2hvb2tzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDeEUsT0FBTyxLQUFLLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUV6Rjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQ0c7QUFDSCxNQUFNLFdBQVcsY0FBYztJQUM3QixtR0FBbUc7SUFDbkcsb0JBQW9CLENBQUMsRUFBRSxvQkFBb0IsQ0FBQztJQUM1Qzs7OztPQUlHO0lBQ0gsNEJBQTRCLENBQUMsRUFBRSw0QkFBNEIsQ0FBQztDQUM3RDtBQUVEOzs7R0FHRztBQUNILHdCQUFnQixZQUFZLENBQUMsS0FBSyxFQUFFLGNBQWMsR0FBRyxjQUFjLEdBQUcsU0FBUyxDQUs5RSJ9
|
|
@@ -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;
|
|
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,MAAM,WAAW,cAAc;IAC7B,mGAAmG;IACnG,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C;;;;OAIG;IACH,4BAA4B,CAAC,EAAE,4BAA4B,CAAC;CAC7D;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,cAAc,GAAG,cAAc,GAAG,SAAS,CAK9E"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Builds an {@link ExecutionHooks} from individually-constructed hook callbacks. Returns `undefined`
|
|
3
3
|
* when every field is absent, so callers can unconditionally pass the result as `hooks`.
|
|
4
|
-
*/ export function composeHooks(
|
|
5
|
-
if (Object.values(
|
|
4
|
+
*/ export function composeHooks(hooks) {
|
|
5
|
+
if (Object.values(hooks).every((v)=>v === undefined)) {
|
|
6
6
|
return undefined;
|
|
7
7
|
}
|
|
8
|
-
return
|
|
8
|
+
return hooks;
|
|
9
9
|
}
|
package/dest/hooks/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export type { AuthorizeUtilityCall, UtilityCallAuthorizationRequest, UtilityCallAuthorizationResponse, } from './authorize_utility_call.js';
|
|
2
|
-
export type
|
|
3
|
-
export {
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
export { type ExecutionHooks, composeHooks } from './execution_hooks.js';
|
|
3
|
+
export { type ResolveTaggingSecretStrategy, type TaggingSecretStrategy, type TaggingSecretStrategyRequest, } from './resolve_tagging_secret_strategy.js';
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ob29rcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZLEVBQ1Ysb0JBQW9CLEVBQ3BCLCtCQUErQixFQUMvQixnQ0FBZ0MsR0FDakMsTUFBTSw2QkFBNkIsQ0FBQztBQUNyQyxPQUFPLEVBQUUsS0FBSyxjQUFjLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekUsT0FBTyxFQUNMLEtBQUssNEJBQTRCLEVBQ2pDLEtBQUsscUJBQXFCLEVBQzFCLEtBQUssNEJBQTRCLEdBQ2xDLE1BQU0sc0NBQXNDLENBQUMifQ==
|
|
@@ -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,
|
|
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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { Fr } from '@aztec/foundation/curves/bn254';
|
|
2
|
+
import type { Point } from '@aztec/foundation/curves/grumpkin';
|
|
3
|
+
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
4
|
+
import type { AppTaggingSecretKind } from '@aztec/stdlib/logs';
|
|
5
|
+
/**
|
|
6
|
+
* How a message's tagging secret is chosen: the wallet's strategy, returned by the `resolveTaggingSecretStrategy` hook
|
|
7
|
+
* when no onchain handshake has been registered for the sender/recipient pair. This is intent (plus, for an arbitrary
|
|
8
|
+
* secret, the raw material); PXE resolves it into the secret it hands the contract.
|
|
9
|
+
*/
|
|
10
|
+
export type TaggingSecretStrategy = {
|
|
11
|
+
/** Establish a fresh non-interactive handshake via the onchain registry; reveals the recipient onchain. */
|
|
12
|
+
type: 'non-interactive-handshake';
|
|
13
|
+
} | {
|
|
14
|
+
/** Derive the secret from the sender's and recipient's address keys via ECDH. PXE computes and silos it. */
|
|
15
|
+
type: 'address-derived';
|
|
16
|
+
} | {
|
|
17
|
+
/**
|
|
18
|
+
* A raw shared secret point the two parties already share offchain (e.g. coordinated out-of-band), supplied by
|
|
19
|
+
* the wallet. PXE app-silos it before use. Only sound for unconstrained delivery, since nothing onchain proves
|
|
20
|
+
* the recipient knows it.
|
|
21
|
+
*/
|
|
22
|
+
type: 'arbitrary-secret';
|
|
23
|
+
/** The raw (un-siloed) shared secret point to derive the tag from. */
|
|
24
|
+
secret: Point;
|
|
25
|
+
};
|
|
26
|
+
/** Information about the message delivery requesting a tagging secret strategy. */
|
|
27
|
+
export type TaggingSecretStrategyRequest = {
|
|
28
|
+
contractAddress: AztecAddress;
|
|
29
|
+
/**
|
|
30
|
+
* The contract class ID of the executing contract, so wallets can apply class-level (not just per-address) policy.
|
|
31
|
+
*/
|
|
32
|
+
contractClassId: Fr;
|
|
33
|
+
sender: AztecAddress;
|
|
34
|
+
recipient: AztecAddress;
|
|
35
|
+
deliveryMode: AppTaggingSecretKind;
|
|
36
|
+
};
|
|
37
|
+
/**
|
|
38
|
+
* Hook returning the {@link TaggingSecretStrategy} for an outgoing message.
|
|
39
|
+
*/
|
|
40
|
+
export type ResolveTaggingSecretStrategy = (request: TaggingSecretStrategyRequest) => Promise<TaggingSecretStrategy>;
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZV90YWdnaW5nX3NlY3JldF9zdHJhdGVneS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hvb2tzL3Jlc29sdmVfdGFnZ2luZ19zZWNyZXRfc3RyYXRlZ3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDekQsT0FBTyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDL0QsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDaEUsT0FBTyxLQUFLLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUUvRDs7OztHQUlHO0FBQ0gsTUFBTSxNQUFNLHFCQUFxQixHQUM3QjtJQUNFLDJHQUEyRztJQUMzRyxJQUFJLEVBQUUsMkJBQTJCLENBQUM7Q0FDbkMsR0FDRDtJQUNFLDRHQUE0RztJQUM1RyxJQUFJLEVBQUUsaUJBQWlCLENBQUM7Q0FDekIsR0FDRDtJQUNFOzs7O09BSUc7SUFDSCxJQUFJLEVBQUUsa0JBQWtCLENBQUM7SUFDekIsc0VBQXNFO0lBQ3RFLE1BQU0sRUFBRSxLQUFLLENBQUM7Q0FDZixDQUFDO0FBRU4sbUZBQW1GO0FBQ25GLE1BQU0sTUFBTSw0QkFBNEIsR0FBRztJQUN6QyxlQUFlLEVBQUUsWUFBWSxDQUFDO0lBQzlCOztPQUVHO0lBQ0gsZUFBZSxFQUFFLEVBQUUsQ0FBQztJQUNwQixNQUFNLEVBQUUsWUFBWSxDQUFDO0lBQ3JCLFNBQVMsRUFBRSxZQUFZLENBQUM7SUFDeEIsWUFBWSxFQUFFLG9CQUFvQixDQUFDO0NBQ3BDLENBQUM7QUFFRjs7R0FFRztBQUNILE1BQU0sTUFBTSw0QkFBNEIsR0FBRyxDQUFDLE9BQU8sRUFBRSw0QkFBNEIsS0FBSyxPQUFPLENBQUMscUJBQXFCLENBQUMsQ0FBQyJ9
|
|
@@ -0,0 +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;AAE/D;;;;GAIG;AACH,MAAM,MAAM,qBAAqB,GAC7B;IACE,2GAA2G;IAC3G,IAAI,EAAE,2BAA2B,CAAC;CACnC,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,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"}
|
|
@@ -3,13 +3,13 @@ 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, PendingTaggedLog } from '@aztec/stdlib/logs';
|
|
6
|
+
import { AppTaggingSecret, type PendingTaggedLog } 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
|
-
import { LogRetrievalResponse } from '../contract_function_simulator/noir-structs/log_retrieval_response.js';
|
|
9
|
+
import type { LogRetrievalResponse } from '../contract_function_simulator/noir-structs/log_retrieval_response.js';
|
|
10
10
|
import { AddressStore } from '../storage/address_store/address_store.js';
|
|
11
11
|
import type { RecipientTaggingStore } from '../storage/tagging_store/recipient_tagging_store.js';
|
|
12
|
-
import type {
|
|
12
|
+
import type { TaggingSecretSourcesStore } from '../storage/tagging_store/tagging_secret_sources_store.js';
|
|
13
13
|
export declare class LogService {
|
|
14
14
|
#private;
|
|
15
15
|
private readonly aztecNode;
|
|
@@ -17,13 +17,13 @@ export declare class LogService {
|
|
|
17
17
|
private readonly l2TipsStore;
|
|
18
18
|
private readonly keyStore;
|
|
19
19
|
private readonly recipientTaggingStore;
|
|
20
|
-
private readonly
|
|
20
|
+
private readonly taggingSecretSourcesStore;
|
|
21
21
|
private readonly addressStore;
|
|
22
22
|
private readonly jobId;
|
|
23
23
|
private log;
|
|
24
|
-
constructor(aztecNode: AztecNode, anchorBlockHeader: BlockHeader, l2TipsStore: L2TipsProvider, keyStore: KeyStore, recipientTaggingStore: RecipientTaggingStore,
|
|
24
|
+
constructor(aztecNode: AztecNode, anchorBlockHeader: BlockHeader, l2TipsStore: L2TipsProvider, keyStore: KeyStore, recipientTaggingStore: RecipientTaggingStore, taggingSecretSourcesStore: TaggingSecretSourcesStore, addressStore: AddressStore, jobId: string, bindings?: LoggerBindings);
|
|
25
25
|
/** Fetches all logs matching each request's tag, returning an array of log arrays (one per request). */
|
|
26
26
|
fetchLogsByTag(contractAddress: AztecAddress, logRetrievalRequests: LogRetrievalRequest[]): Promise<LogRetrievalResponse[][]>;
|
|
27
27
|
fetchTaggedLogs(contractAddress: AztecAddress, recipient: AztecAddress, providedSecrets: AppTaggingSecret[]): Promise<PendingTaggedLog[]>;
|
|
28
28
|
}
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nX3NlcnZpY2UuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sb2dzL2xvZ19zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBZSxLQUFLLGNBQWMsRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUN2RixPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDM0QsT0FBTyxLQUFLLEVBQWEsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFckUsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDakUsT0FBTyxFQUNMLGdCQUFnQixFQUVoQixLQUFLLGdCQUFnQixFQUd0QixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRXBELE9BQU8sRUFDTCxLQUFLLG1CQUFtQixFQUV6QixNQUFNLHNFQUFzRSxDQUFDO0FBQzlFLE9BQU8sS0FBSyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUVBQXVFLENBQUM7QUFDbEgsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ3pFLE9BQU8sS0FBSyxFQUFFLHFCQUFxQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDakcsT0FBTyxLQUFLLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQVcxRyxxQkFBYSxVQUFVOztJQUluQixPQUFPLENBQUMsUUFBUSxDQUFDLFNBQVM7SUFDMUIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxpQkFBaUI7SUFDbEMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxXQUFXO0lBQzVCLE9BQU8sQ0FBQyxRQUFRLENBQUMsUUFBUTtJQUN6QixPQUFPLENBQUMsUUFBUSxDQUFDLHFCQUFxQjtJQUN0QyxPQUFPLENBQUMsUUFBUSxDQUFDLHlCQUF5QjtJQUMxQyxPQUFPLENBQUMsUUFBUSxDQUFDLFlBQVk7SUFDN0IsT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLO0lBVnhCLE9BQU8sQ0FBQyxHQUFHLENBQVM7SUFFcEIsWUFDbUIsU0FBUyxFQUFFLFNBQVMsRUFDcEIsaUJBQWlCLEVBQUUsV0FBVyxFQUM5QixXQUFXLEVBQUUsY0FBYyxFQUMzQixRQUFRLEVBQUUsUUFBUSxFQUNsQixxQkFBcUIsRUFBRSxxQkFBcUIsRUFDNUMseUJBQXlCLEVBQUUseUJBQXlCLEVBQ3BELFlBQVksRUFBRSxZQUFZLEVBQzFCLEtBQUssRUFBRSxNQUFNLEVBQzlCLFFBQVEsQ0FBQyxFQUFFLGNBQWMsRUFHMUI7SUFFRCx3R0FBd0c7SUFDM0YsY0FBYyxDQUN6QixlQUFlLEVBQUUsWUFBWSxFQUM3QixvQkFBb0IsRUFBRSxtQkFBbUIsRUFBRSxHQUMxQyxPQUFPLENBQUMsb0JBQW9CLEVBQUUsRUFBRSxDQUFDLENBc0JuQztJQXNHWSxlQUFlLENBQzFCLGVBQWUsRUFBRSxZQUFZLEVBQzdCLFNBQVMsRUFBRSxZQUFZLEVBQ3ZCLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxHQUNsQyxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQW9DN0I7Q0FpREYifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"log_service.d.ts","sourceRoot":"","sources":["../../src/logs/log_service.ts"],"names":[],"mappings":"
|
|
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,EAEhB,KAAK,gBAAgB,EAGtB,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,EAAE,YAAY,EAAE,MAAM,2CAA2C,CAAC;AACzE,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,KAAK;IAVxB,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,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;IAsGY,eAAe,CAC1B,eAAe,EAAE,YAAY,EAC7B,SAAS,EAAE,YAAY,EACvB,eAAe,EAAE,gBAAgB,EAAE,GAClC,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAoC7B;CAiDF"}
|
package/dest/logs/log_service.js
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
|
+
import { PRIVATE_LOG_CIPHERTEXT_LEN } from '@aztec/constants';
|
|
1
2
|
import { createLogger } from '@aztec/foundation/log';
|
|
2
|
-
import {
|
|
3
|
-
import { AppTaggingSecret, PendingTaggedLog, SiloedTag } from '@aztec/stdlib/logs';
|
|
3
|
+
import { AppTaggingSecret, SiloedTag, computeSharedTaggingSecret } from '@aztec/stdlib/logs';
|
|
4
4
|
import { LogSource } from '../contract_function_simulator/noir-structs/log_retrieval_request.js';
|
|
5
|
-
import { LogRetrievalResponse } from '../contract_function_simulator/noir-structs/log_retrieval_response.js';
|
|
6
5
|
import { getAllPrivateLogsByTags, getAllPublicLogsByTagsFromContract, syncTaggedPrivateLogs } from '../tagging/index.js';
|
|
7
6
|
const rangeKey = (fromBlock, toBlock)=>`${fromBlock ?? ''}-${toBlock ?? ''}`;
|
|
8
7
|
export class LogService {
|
|
@@ -11,17 +10,17 @@ export class LogService {
|
|
|
11
10
|
l2TipsStore;
|
|
12
11
|
keyStore;
|
|
13
12
|
recipientTaggingStore;
|
|
14
|
-
|
|
13
|
+
taggingSecretSourcesStore;
|
|
15
14
|
addressStore;
|
|
16
15
|
jobId;
|
|
17
16
|
log;
|
|
18
|
-
constructor(aztecNode, anchorBlockHeader, l2TipsStore, keyStore, recipientTaggingStore,
|
|
17
|
+
constructor(aztecNode, anchorBlockHeader, l2TipsStore, keyStore, recipientTaggingStore, taggingSecretSourcesStore, addressStore, jobId, bindings){
|
|
19
18
|
this.aztecNode = aztecNode;
|
|
20
19
|
this.anchorBlockHeader = anchorBlockHeader;
|
|
21
20
|
this.l2TipsStore = l2TipsStore;
|
|
22
21
|
this.keyStore = keyStore;
|
|
23
22
|
this.recipientTaggingStore = recipientTaggingStore;
|
|
24
|
-
this.
|
|
23
|
+
this.taggingSecretSourcesStore = taggingSecretSourcesStore;
|
|
25
24
|
this.addressStore = addressStore;
|
|
26
25
|
this.jobId = jobId;
|
|
27
26
|
this.log = createLogger('pxe:log_service', bindings);
|
|
@@ -101,14 +100,16 @@ export class LogService {
|
|
|
101
100
|
*/ static #groupByRange(entries) {
|
|
102
101
|
const groups = new Map();
|
|
103
102
|
for (const entry of entries){
|
|
104
|
-
const
|
|
103
|
+
const fromBlock = entry.request.fromBlock.value;
|
|
104
|
+
const toBlock = entry.request.toBlock.value;
|
|
105
|
+
const key = rangeKey(fromBlock, toBlock);
|
|
105
106
|
const existing = groups.get(key);
|
|
106
107
|
if (existing) {
|
|
107
108
|
existing.entries.push(entry);
|
|
108
109
|
} else {
|
|
109
110
|
groups.set(key, {
|
|
110
|
-
fromBlock
|
|
111
|
-
toBlock
|
|
111
|
+
fromBlock,
|
|
112
|
+
toBlock,
|
|
112
113
|
entries: [
|
|
113
114
|
entry
|
|
114
115
|
]
|
|
@@ -125,17 +126,31 @@ export class LogService {
|
|
|
125
126
|
if (nullifiers.length === 0) {
|
|
126
127
|
throw new Error(`Log for tx ${log.txHash} returned no nullifiers from the node`);
|
|
127
128
|
}
|
|
128
|
-
return
|
|
129
|
+
return {
|
|
130
|
+
// Skip the tag, and clip to the wire cap: public logs can exceed PRIVATE_LOG_CIPHERTEXT_LEN, which is the fixed
|
|
131
|
+
// size of the oracle's BoundedVec slot. A no-op for private logs, which are already within the cap.
|
|
132
|
+
logPayload: log.logData.slice(1, 1 + PRIVATE_LOG_CIPHERTEXT_LEN),
|
|
133
|
+
txHash: log.txHash,
|
|
134
|
+
uniqueNoteHashesInTx: noteHashes,
|
|
135
|
+
firstNullifierInTx: nullifiers[0]
|
|
136
|
+
};
|
|
129
137
|
}
|
|
130
138
|
async fetchTaggedLogs(contractAddress, recipient, providedSecrets) {
|
|
131
|
-
this.log.verbose(`Fetching tagged logs for ${contractAddress.toString()}`);
|
|
139
|
+
this.log.verbose(`Fetching tagged logs for contract ${contractAddress.toString()} and recipient ${recipient.toString()}`);
|
|
132
140
|
const l2Tips = await this.l2TipsStore.getL2Tips();
|
|
133
|
-
//
|
|
134
|
-
// enumerate itself (e.g. handshake-derived ones).
|
|
135
|
-
|
|
136
|
-
|
|
141
|
+
// Secrets PXE can enumerate for this recipient (senders via ECDH + pre-shared store secrets), plus any the app
|
|
142
|
+
// supplies explicitly for secrets PXE cannot enumerate itself (e.g. handshake-derived ones). The latter arrive
|
|
143
|
+
// already computed and are searched even when the recipient's account is unknown locally, since they need no ECDH.
|
|
144
|
+
const combinedSecrets = [
|
|
145
|
+
...await this.#getPointDerivedSecrets(contractAddress, recipient),
|
|
137
146
|
...providedSecrets
|
|
138
147
|
];
|
|
148
|
+
// These sources can overlap (a sender that is also a PXE account, or a pre-shared secret that coincides with a
|
|
149
|
+
// sender-derived one), so we deduplicate the combined set.
|
|
150
|
+
const secrets = Array.from(new Map(combinedSecrets.map((secret)=>[
|
|
151
|
+
secret.toString(),
|
|
152
|
+
secret
|
|
153
|
+
])).values());
|
|
139
154
|
const logs = await syncTaggedPrivateLogs(secrets, this.aztecNode, this.recipientTaggingStore, this.anchorBlockHeader, l2Tips.finalized.block.number, this.jobId);
|
|
140
155
|
return logs.map((log)=>{
|
|
141
156
|
const noteHashes = log.noteHashes;
|
|
@@ -143,30 +158,49 @@ export class LogService {
|
|
|
143
158
|
if (nullifiers.length === 0) {
|
|
144
159
|
throw new Error(`Log for tx ${log.txHash} returned no nullifiers from the node`);
|
|
145
160
|
}
|
|
146
|
-
return
|
|
161
|
+
return {
|
|
162
|
+
log: log.logData,
|
|
163
|
+
context: {
|
|
164
|
+
txHash: log.txHash,
|
|
165
|
+
uniqueNoteHashesInTx: noteHashes,
|
|
166
|
+
firstNullifierInTx: nullifiers[0]
|
|
167
|
+
}
|
|
168
|
+
};
|
|
147
169
|
});
|
|
148
170
|
}
|
|
149
|
-
|
|
171
|
+
/**
|
|
172
|
+
* Computes the tagging secrets PXE can enumerate for a recipient: one per known sender (via ECDH) plus any
|
|
173
|
+
* pre-shared secret points registered directly for the recipient, each siloed to `contractAddress` and directed to
|
|
174
|
+
* `recipient`. These require knowing the recipient's address preimage and keys, so returns an empty array when those
|
|
175
|
+
* are unavailable. App-supplied secrets (e.g. handshake-derived) are handled separately by the caller and do not go
|
|
176
|
+
* through here.
|
|
177
|
+
*/ async #getPointDerivedSecrets(contractAddress, recipient) {
|
|
150
178
|
const recipientCompleteAddress = await this.addressStore.getCompleteAddress(recipient);
|
|
151
|
-
if (!recipientCompleteAddress) {
|
|
179
|
+
if (!recipientCompleteAddress || !await this.keyStore.hasAccount(recipient)) {
|
|
180
|
+
this.log.warn(`Skipping sender-derived tag retrieval for ${recipient.toString()} due to unknown address preimage`);
|
|
152
181
|
return [];
|
|
153
182
|
}
|
|
154
183
|
const recipientIvsk = await this.keyStore.getMasterIncomingViewingSecretKey(recipient);
|
|
155
|
-
|
|
156
|
-
|
|
184
|
+
const points = [
|
|
185
|
+
...await this.#getSecretsForSenders(recipientCompleteAddress, recipientIvsk),
|
|
186
|
+
...await this.taggingSecretSourcesStore.getSharedSecretsForRecipient(recipient)
|
|
187
|
+
];
|
|
188
|
+
return Promise.all(points.map((secret)=>AppTaggingSecret.compute(secret, contractAddress, recipient)));
|
|
189
|
+
}
|
|
190
|
+
async #getSecretsForSenders(recipientCompleteAddress, recipientIvsk) {
|
|
191
|
+
// We implicitly add all PXE accounts as senders, this helps us decrypt tags on notes that we send to ourselves
|
|
192
|
+
// (recipient = us, sender = us).
|
|
157
193
|
const allSenders = [
|
|
158
|
-
...await this.
|
|
194
|
+
...await this.taggingSecretSourcesStore.getSenders(),
|
|
159
195
|
...await this.keyStore.getAccounts()
|
|
160
196
|
];
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
if (!secret) {
|
|
166
|
-
// Note that all senders originate from either the SenderAddressBookStore or the KeyStore.
|
|
197
|
+
return Promise.all(allSenders.map(async (sender)=>{
|
|
198
|
+
const taggingSecretPoint = await computeSharedTaggingSecret(recipientCompleteAddress, recipientIvsk, sender);
|
|
199
|
+
if (!taggingSecretPoint) {
|
|
200
|
+
// Note that all senders originate from either the TaggingSecretSourcesStore or the KeyStore.
|
|
167
201
|
throw new Error(`Failed to compute a tagging secret for sender ${sender} - this implies this is an invalid address, which should not happen as they have been previously registered in PXE.`);
|
|
168
202
|
}
|
|
169
|
-
return
|
|
203
|
+
return taggingSecretPoint;
|
|
170
204
|
}));
|
|
171
205
|
}
|
|
172
206
|
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
2
|
+
import type { AztecNode } from '@aztec/stdlib/interfaces/server';
|
|
3
|
+
import { ResolvedTx } from '../contract_function_simulator/noir-structs/resolved_tx.js';
|
|
4
|
+
/** Resolves transaction hashes into their on-chain context (note hashes, first nullifier, and mined block). */
|
|
5
|
+
export declare class TxResolverService {
|
|
6
|
+
private readonly aztecNode;
|
|
7
|
+
constructor(aztecNode: AztecNode);
|
|
8
|
+
/**
|
|
9
|
+
* Resolves a list of tx hashes into their on-chain context.
|
|
10
|
+
*
|
|
11
|
+
* For each tx hash, looks up the corresponding tx effect and extracts the note hashes, first nullifier, and the
|
|
12
|
+
* number and hash of the block it was mined in. Returns `null` for tx hashes that are zero, not yet available, or in
|
|
13
|
+
* blocks beyond the anchor block.
|
|
14
|
+
*/
|
|
15
|
+
resolveTxs(txHashes: Fr[], anchorBlockNumber: number): Promise<(ResolvedTx | null)[]>;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhfcmVzb2x2ZXJfc2VydmljZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21lc3NhZ2VzL3R4X3Jlc29sdmVyX3NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBR2pFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUV4RiwrR0FBK0c7QUFDL0cscUJBQWEsaUJBQWlCO0lBQ2hCLE9BQU8sQ0FBQyxRQUFRLENBQUMsU0FBUztJQUF0QyxZQUE2QixTQUFTLEVBQUUsU0FBUyxFQUFJO0lBRXJEOzs7Ozs7T0FNRztJQUNHLFVBQVUsQ0FBQyxRQUFRLEVBQUUsRUFBRSxFQUFFLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLENBaUQxRjtDQUNGIn0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tx_resolver_service.d.ts","sourceRoot":"","sources":["../../src/messages/tx_resolver_service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAGjE,OAAO,EAAE,UAAU,EAAE,MAAM,4DAA4D,CAAC;AAExF,+GAA+G;AAC/G,qBAAa,iBAAiB;IAChB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAAtC,YAA6B,SAAS,EAAE,SAAS,EAAI;IAErD;;;;;;OAMG;IACG,UAAU,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,CAiD1F;CACF"}
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import { uniqueBy } from '@aztec/foundation/collection';
|
|
2
|
-
import { MessageContext } from '@aztec/stdlib/logs';
|
|
3
2
|
import { TxHash } from '@aztec/stdlib/tx';
|
|
4
|
-
|
|
3
|
+
import { ResolvedTx } from '../contract_function_simulator/noir-structs/resolved_tx.js';
|
|
4
|
+
/** Resolves transaction hashes into their on-chain context (note hashes, first nullifier, and mined block). */ export class TxResolverService {
|
|
5
5
|
aztecNode;
|
|
6
6
|
constructor(aztecNode){
|
|
7
7
|
this.aztecNode = aztecNode;
|
|
8
8
|
}
|
|
9
9
|
/**
|
|
10
|
-
* Resolves a list of tx hashes into their
|
|
10
|
+
* Resolves a list of tx hashes into their on-chain context.
|
|
11
11
|
*
|
|
12
|
-
* For each tx hash, looks up the corresponding tx effect and extracts the note hashes
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*/ async
|
|
12
|
+
* For each tx hash, looks up the corresponding tx effect and extracts the note hashes, first nullifier, and the
|
|
13
|
+
* number and hash of the block it was mined in. Returns `null` for tx hashes that are zero, not yet available, or in
|
|
14
|
+
* blocks beyond the anchor block.
|
|
15
|
+
*/ async resolveTxs(txHashes, anchorBlockNumber) {
|
|
16
16
|
const nonZeroTxHashes = txHashes.filter((h)=>!h.isZero()).map((h)=>TxHash.fromField(h));
|
|
17
17
|
const uniqueTxHashes = uniqueBy(nonZeroTxHashes, (h)=>h.toString());
|
|
18
18
|
const fetched = await Promise.all(uniqueTxHashes.map((h)=>this.aztecNode.getTxReceipt(h, {
|
|
@@ -49,7 +49,7 @@ import { TxHash } from '@aztec/stdlib/tx';
|
|
|
49
49
|
if (data.nullifiers.length === 0) {
|
|
50
50
|
throw new Error(`Tx effect for ${txHash} has no nullifiers`);
|
|
51
51
|
}
|
|
52
|
-
return new
|
|
52
|
+
return new ResolvedTx(data.txHash, data.noteHashes, data.nullifiers[0], txEffect.l2BlockNumber, txEffect.l2BlockHash.toFr());
|
|
53
53
|
});
|
|
54
54
|
}
|
|
55
55
|
}
|
package/dest/oracle_version.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare const ORACLE_VERSION_MAJOR =
|
|
1
|
+
export declare const ORACLE_VERSION_MAJOR = 30;
|
|
2
2
|
export declare const ORACLE_VERSION_MINOR = 1;
|
|
3
|
-
export declare const ORACLE_INTERFACE_HASH = "
|
|
3
|
+
export declare const ORACLE_INTERFACE_HASH = "2a441f29ab01b252bc74b91b07fc2514891c28bffdfa0042d80494271b75edee";
|
|
4
4
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JhY2xlX3ZlcnNpb24uZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9vcmFjbGVfdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFZQSxlQUFPLE1BQU0sb0JBQW9CLEtBQUssQ0FBQztBQUN2QyxlQUFPLE1BQU0sb0JBQW9CLElBQUksQ0FBQztBQVF0QyxlQUFPLE1BQU0scUJBQXFCLHFFQUFxRSxDQUFDIn0=
|
package/dest/oracle_version.js
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
/// used to provide helpful error messages if a contract calls an oracle that doesn't exist. We don't throw immediately
|
|
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
|
-
export const ORACLE_VERSION_MAJOR =
|
|
13
|
+
export const ORACLE_VERSION_MAJOR = 30;
|
|
14
14
|
export const ORACLE_VERSION_MINOR = 1;
|
|
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:
|
|
@@ -18,4 +18,4 @@ export const ORACLE_VERSION_MINOR = 1;
|
|
|
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 = '2a441f29ab01b252bc74b91b07fc2514891c28bffdfa0042d80494271b75edee';
|
|
@@ -7,7 +7,7 @@ import { PrivateLogData, ScopedPrivateLogData } from '@aztec/stdlib/kernel';
|
|
|
7
7
|
import { PrivateLog } from '@aztec/stdlib/logs';
|
|
8
8
|
import { PrivateCallExecutionResult } from '@aztec/stdlib/tx';
|
|
9
9
|
import { VerificationKeyData } from '@aztec/stdlib/vks';
|
|
10
|
-
const DEFAULT_CONTRACT_ADDRESS = AztecAddress.
|
|
10
|
+
const DEFAULT_CONTRACT_ADDRESS = AztecAddress.fromBigIntUnsafe(987654n);
|
|
11
11
|
/**
|
|
12
12
|
* Builds a ClaimedLengthArray from a list of items, padding to the required size.
|
|
13
13
|
*/ function makeClaimed(items, emptyFactory, maxSize) {
|
package/dest/pxe.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { PrivateEventFilter } from '@aztec/aztec.js/wallet';
|
|
2
2
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
|
+
import { Point } from '@aztec/foundation/curves/grumpkin';
|
|
3
4
|
import { type Logger } from '@aztec/foundation/log';
|
|
4
5
|
import type { AztecAsyncKVStore } from '@aztec/kv-store';
|
|
5
6
|
import { type ProtocolContractsProvider } from '@aztec/protocol-contracts';
|
|
@@ -8,7 +9,7 @@ import { type ContractArtifact, EventSelector, FunctionCall } from '@aztec/stdli
|
|
|
8
9
|
import type { AuthWitness } from '@aztec/stdlib/auth-witness';
|
|
9
10
|
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
10
11
|
import { CompleteAddress, type ContractInstanceWithAddress, type PartialAddress } from '@aztec/stdlib/contract';
|
|
11
|
-
import type { AztecNode, PrivateKernelProver } from '@aztec/stdlib/interfaces/client';
|
|
12
|
+
import type { AztecNode, AztecNodeDebug, PrivateKernelProver } from '@aztec/stdlib/interfaces/client';
|
|
12
13
|
import { BlockHeader, type InTx, SimulationOverrides, TxExecutionRequest, TxProfileResult, TxProvingResult, TxSimulationResult, UtilityExecutionResult } from '@aztec/stdlib/tx';
|
|
13
14
|
import type { PXEConfig } from './config/index.js';
|
|
14
15
|
import { PXEDebugUtils } from './debug/pxe_debug_utils.js';
|
|
@@ -84,6 +85,11 @@ export type PreloadedContractsProvider = {
|
|
|
84
85
|
export type PXECreateArgs = {
|
|
85
86
|
/** The Aztec node to connect to. */
|
|
86
87
|
node: AztecNode;
|
|
88
|
+
/**
|
|
89
|
+
* Optional debug API client. When provided, public function signatures are registered with the node so that
|
|
90
|
+
* node-side public-execution stack traces can be named. Skipped when the node does not expose the debug API.
|
|
91
|
+
*/
|
|
92
|
+
nodeDebug?: AztecNodeDebug;
|
|
87
93
|
/** The key-value store for persisting PXE state. */
|
|
88
94
|
store: AztecAsyncKVStore;
|
|
89
95
|
/** The prover for generating private kernel proofs. */
|
|
@@ -105,6 +111,23 @@ export type PXECreateArgs = {
|
|
|
105
111
|
/** Optional hooks to observe and influence contract execution. */
|
|
106
112
|
hooks?: ExecutionHooks;
|
|
107
113
|
};
|
|
114
|
+
/**
|
|
115
|
+
* A source from which PXE derives the tagging secrets it scans for to discover incoming private logs.
|
|
116
|
+
*
|
|
117
|
+
* - `address-derived`: derives a shared secret via ECDH from an external `sender` address against every account
|
|
118
|
+
* registered in this PXE (present and future), so registering one sender applies it to all of them. The address is
|
|
119
|
+
* not secret, so unlike `arbitrary-secret` it can be reused freely across recipients.
|
|
120
|
+
* - `arbitrary-secret`: a shared secret point provided directly, scoped to a single recipient. It bypasses ECDH, so it
|
|
121
|
+
* must not be reused across recipients (each would then be able to find the others' tags).
|
|
122
|
+
*/
|
|
123
|
+
export type TaggingSecretSource = {
|
|
124
|
+
kind: 'address-derived';
|
|
125
|
+
sender: AztecAddress;
|
|
126
|
+
} | {
|
|
127
|
+
kind: 'arbitrary-secret';
|
|
128
|
+
recipient: AztecAddress;
|
|
129
|
+
secret: Point;
|
|
130
|
+
};
|
|
108
131
|
/**
|
|
109
132
|
* Private eXecution Environment (PXE) is a library used by wallets to simulate private phase of transactions and to
|
|
110
133
|
* manage private state of users.
|
|
@@ -112,20 +135,22 @@ export type PXECreateArgs = {
|
|
|
112
135
|
export declare class PXE {
|
|
113
136
|
#private;
|
|
114
137
|
private node;
|
|
138
|
+
private nodeDebug;
|
|
115
139
|
private db;
|
|
116
140
|
private blockStateSynchronizer;
|
|
117
141
|
private keyStore;
|
|
118
142
|
private contractStore;
|
|
119
143
|
private noteStore;
|
|
120
144
|
private capsuleStore;
|
|
145
|
+
private factStore;
|
|
121
146
|
private anchorBlockStore;
|
|
122
147
|
private senderTaggingStore;
|
|
123
|
-
private
|
|
148
|
+
private taggingSecretSourcesStore;
|
|
124
149
|
private recipientTaggingStore;
|
|
125
150
|
private addressStore;
|
|
126
151
|
private privateEventStore;
|
|
127
152
|
private contractSyncService;
|
|
128
|
-
private
|
|
153
|
+
private txResolver;
|
|
129
154
|
private l2TipsStore;
|
|
130
155
|
private simulator;
|
|
131
156
|
private proverEnabled;
|
|
@@ -146,7 +171,7 @@ export declare class PXE {
|
|
|
146
171
|
*
|
|
147
172
|
* @returns A promise that resolves PXE is ready to be used.
|
|
148
173
|
*/
|
|
149
|
-
static create({ node, store, proofCreator, simulator, protocolContractsProvider, preloadedContractsProvider, config, loggerOrSuffix, hooks }: PXECreateArgs): Promise<PXE>;
|
|
174
|
+
static create({ node, nodeDebug, store, proofCreator, simulator, protocolContractsProvider, preloadedContractsProvider, config, loggerOrSuffix, hooks }: PXECreateArgs): Promise<PXE>;
|
|
150
175
|
/**
|
|
151
176
|
* Triggers a sync of PXE state with the node, regardless of the `autoSync` config flag. Use this to
|
|
152
177
|
* batch syncs across composite flows when `autoSync` is disabled (e.g. one sync per simulate+send
|
|
@@ -182,26 +207,28 @@ export declare class PXE {
|
|
|
182
207
|
*/
|
|
183
208
|
registerAccount(secretKey: Fr, partialAddress: PartialAddress): Promise<CompleteAddress>;
|
|
184
209
|
/**
|
|
185
|
-
* Registers a
|
|
186
|
-
*
|
|
187
|
-
* After registering a new sender, the PXE will sync private logs that are tagged with this sender's address.
|
|
188
|
-
* Will do nothing if the address is already registered.
|
|
210
|
+
* Registers a source from which this PXE derives the tagging secrets it scans for to discover incoming private logs.
|
|
211
|
+
* See {@link TaggingSecretSource} for the meaning of each variant. Does nothing if the source is already registered.
|
|
189
212
|
*
|
|
190
|
-
*
|
|
191
|
-
*
|
|
192
|
-
*
|
|
213
|
+
* After a new source is added we clear the cache tracking which contracts have finished syncing, so every contract
|
|
214
|
+
* re-syncs against the new source's logs (whose notes/events could belong to any contract). Already-discovered
|
|
215
|
+
* notes/events are not discarded.
|
|
193
216
|
*/
|
|
194
|
-
|
|
217
|
+
registerTaggingSecretSource(source: TaggingSecretSource): Promise<void>;
|
|
195
218
|
/**
|
|
196
|
-
*
|
|
197
|
-
* @returns Senders registered in this PXE.
|
|
219
|
+
* Removes a previously registered tagging secret source. Does nothing if it was not registered.
|
|
198
220
|
*/
|
|
199
|
-
|
|
221
|
+
removeTaggingSecretSource(source: TaggingSecretSource): Promise<void>;
|
|
200
222
|
/**
|
|
201
|
-
*
|
|
202
|
-
*
|
|
223
|
+
* Retrieves the tagging secret sources registered in this PXE. Without a filter it returns every source; pass
|
|
224
|
+
* `{ kind }` to narrow to a single variant. See {@link TaggingSecretSource}.
|
|
203
225
|
*/
|
|
204
|
-
|
|
226
|
+
getTaggingSecretSources<K extends TaggingSecretSource['kind']>(filter: {
|
|
227
|
+
kind: K;
|
|
228
|
+
}): Promise<Extract<TaggingSecretSource, {
|
|
229
|
+
kind: K;
|
|
230
|
+
}>[]>;
|
|
231
|
+
getTaggingSecretSources(): Promise<TaggingSecretSource[]>;
|
|
205
232
|
/**
|
|
206
233
|
* Retrieves the user accounts registered on this PXE.
|
|
207
234
|
* @returns An array of the accounts registered on this PXE.
|
|
@@ -301,4 +328,4 @@ export declare class PXE {
|
|
|
301
328
|
*/
|
|
302
329
|
stop(): Promise<void>;
|
|
303
330
|
}
|
|
304
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
331
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHhlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcHhlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFakUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMxRCxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQXFDLE1BQU0sdUJBQXVCLENBQUM7QUFJdkYsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsS0FBSyx5QkFBeUIsRUFBeUIsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRyxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2hFLE9BQU8sRUFDTCxLQUFLLGdCQUFnQixFQUNyQixhQUFhLEVBQ2IsWUFBWSxFQUdiLE1BQU0sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFaEUsT0FBTyxFQUNMLGVBQWUsRUFDZixLQUFLLDJCQUEyQixFQUNoQyxLQUFLLGNBQWMsRUFHcEIsTUFBTSx3QkFBd0IsQ0FBQztBQUVoQyxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFNdEcsT0FBTyxFQUNMLFdBQVcsRUFFWCxLQUFLLElBQUksRUFLVCxtQkFBbUIsRUFHbkIsa0JBQWtCLEVBQ2xCLGVBQWUsRUFDZixlQUFlLEVBQ2Ysa0JBQWtCLEVBQ2xCLHNCQUFzQixFQUN2QixNQUFNLGtCQUFrQixDQUFDO0FBSzFCLE9BQU8sS0FBSyxFQUFFLFNB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
|