@aztec/wallet-sdk 0.0.1-commit.9ee6fcc6 → 0.0.1-commit.9ef841308

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.
Files changed (50) hide show
  1. package/dest/base-wallet/base_wallet.d.ts +10 -13
  2. package/dest/base-wallet/base_wallet.d.ts.map +1 -1
  3. package/dest/base-wallet/base_wallet.js +46 -34
  4. package/dest/crypto.d.ts +39 -1
  5. package/dest/crypto.d.ts.map +1 -1
  6. package/dest/crypto.js +88 -0
  7. package/dest/extension/provider/extension_wallet.d.ts +2 -5
  8. package/dest/extension/provider/extension_wallet.d.ts.map +1 -1
  9. package/dest/extension/provider/index.d.ts +2 -2
  10. package/dest/extension/provider/index.d.ts.map +1 -1
  11. package/dest/iframe/handlers/iframe_connection_handler.d.ts +118 -0
  12. package/dest/iframe/handlers/iframe_connection_handler.d.ts.map +1 -0
  13. package/dest/iframe/handlers/iframe_connection_handler.js +228 -0
  14. package/dest/iframe/handlers/index.d.ts +2 -0
  15. package/dest/iframe/handlers/index.d.ts.map +1 -0
  16. package/dest/iframe/handlers/index.js +1 -0
  17. package/dest/iframe/provider/iframe_discovery.d.ts +25 -0
  18. package/dest/iframe/provider/iframe_discovery.d.ts.map +1 -0
  19. package/dest/iframe/provider/iframe_discovery.js +167 -0
  20. package/dest/iframe/provider/iframe_provider.d.ts +65 -0
  21. package/dest/iframe/provider/iframe_provider.d.ts.map +1 -0
  22. package/dest/iframe/provider/iframe_provider.js +257 -0
  23. package/dest/iframe/provider/iframe_wallet.d.ts +68 -0
  24. package/dest/iframe/provider/iframe_wallet.d.ts.map +1 -0
  25. package/dest/iframe/provider/iframe_wallet.js +200 -0
  26. package/dest/iframe/provider/index.d.ts +4 -0
  27. package/dest/iframe/provider/index.d.ts.map +1 -0
  28. package/dest/iframe/provider/index.js +3 -0
  29. package/dest/manager/types.d.ts +3 -2
  30. package/dest/manager/types.d.ts.map +1 -1
  31. package/dest/manager/wallet_manager.d.ts +1 -1
  32. package/dest/manager/wallet_manager.d.ts.map +1 -1
  33. package/dest/manager/wallet_manager.js +46 -16
  34. package/dest/types.d.ts +14 -2
  35. package/dest/types.d.ts.map +1 -1
  36. package/dest/types.js +4 -0
  37. package/package.json +12 -8
  38. package/src/base-wallet/base_wallet.ts +79 -58
  39. package/src/crypto.ts +104 -0
  40. package/src/extension/provider/extension_wallet.ts +1 -6
  41. package/src/extension/provider/index.ts +1 -1
  42. package/src/iframe/handlers/iframe_connection_handler.ts +328 -0
  43. package/src/iframe/handlers/index.ts +7 -0
  44. package/src/iframe/provider/iframe_discovery.ts +185 -0
  45. package/src/iframe/provider/iframe_provider.ts +331 -0
  46. package/src/iframe/provider/iframe_wallet.ts +229 -0
  47. package/src/iframe/provider/index.ts +3 -0
  48. package/src/manager/types.ts +2 -1
  49. package/src/manager/wallet_manager.ts +48 -14
  50. package/src/types.ts +13 -0
@@ -1,8 +1,8 @@
1
- import type { Account } from '@aztec/aztec.js/account';
1
+ import type { Account, NoFrom } from '@aztec/aztec.js/account';
2
2
  import type { CallIntent, IntentInnerHash } from '@aztec/aztec.js/authorization';
3
3
  import { type InteractionWaitOptions, type SendReturn } from '@aztec/aztec.js/contracts';
4
4
  import type { FeePaymentMethod } from '@aztec/aztec.js/fee';
5
- import type { Aliased, AppCapabilities, BatchResults, BatchedMethod, ExecuteUtilityOptions, PrivateEvent, PrivateEventFilter, ProfileOptions, SendOptions, SimulateOptions, Wallet, WalletCapabilities } from '@aztec/aztec.js/wallet';
5
+ import { type Aliased, type AppCapabilities, type BatchResults, type BatchedMethod, ContractInitializationStatus, type ExecuteUtilityOptions, type PrivateEvent, type PrivateEventFilter, type ProfileOptions, type SendOptions, type SimulateOptions, type Wallet, type WalletCapabilities } from '@aztec/aztec.js/wallet';
6
6
  import { AccountFeePaymentMethodOptions } from '@aztec/entrypoints/account';
7
7
  import type { ChainInfo } from '@aztec/entrypoints/interfaces';
8
8
  import { Fr } from '@aztec/foundation/curves/bn254';
@@ -27,7 +27,7 @@ export type FeeOptions = {
27
27
  */
28
28
  walletFeePaymentMethod?: FeePaymentMethod;
29
29
  /** Configuration options for the account to properly handle the selected fee payment method */
30
- accountFeePaymentMethodOptions: AccountFeePaymentMethodOptions;
30
+ accountFeePaymentMethodOptions?: AccountFeePaymentMethodOptions;
31
31
  /** The gas settings to use for the transaction */
32
32
  gasSettings: GasSettings;
33
33
  };
@@ -48,7 +48,7 @@ export declare abstract class BaseWallet implements Wallet {
48
48
  protected minFeePadding: number;
49
49
  protected cancellableTransactions: boolean;
50
50
  protected constructor(pxe: PXE, aztecNode: AztecNode, log?: import("@aztec/foundation/log").Logger);
51
- protected scopesFrom(from: AztecAddress, additionalScopes?: AztecAddress[]): AztecAddress[];
51
+ protected scopesFrom(from: AztecAddress | NoFrom, additionalScopes?: AztecAddress[]): AztecAddress[];
52
52
  protected abstract getAccountFromAddress(address: AztecAddress): Promise<Account>;
53
53
  abstract getAccounts(): Promise<Aliased<AztecAddress>[]>;
54
54
  /**
@@ -60,7 +60,7 @@ export declare abstract class BaseWallet implements Wallet {
60
60
  */
61
61
  getAddressBook(): Promise<Aliased<AztecAddress>[]>;
62
62
  getChainInfo(): Promise<ChainInfo>;
63
- protected createTxExecutionRequestFromPayloadAndFee(executionPayload: ExecutionPayload, from: AztecAddress, feeOptions: FeeOptions): Promise<TxExecutionRequest>;
63
+ protected createTxExecutionRequestFromPayloadAndFee(executionPayload: ExecutionPayload, from: AztecAddress | NoFrom, feeOptions: FeeOptions): Promise<TxExecutionRequest>;
64
64
  createAuthWit(from: AztecAddress, messageHashOrIntent: IntentInnerHash | CallIntent): Promise<AuthWitness>;
65
65
  /**
66
66
  * Request capabilities from the wallet.
@@ -84,7 +84,7 @@ export declare abstract class BaseWallet implements Wallet {
84
84
  * @param gasSettings - User-provided partial gas settings
85
85
  * @returns - Complete fee options that can be used to create a transaction execution request
86
86
  */
87
- protected completeFeeOptions(from: AztecAddress, feePayer?: AztecAddress, gasSettings?: Partial<FieldsOf<GasSettings>>): Promise<FeeOptions>;
87
+ protected completeFeeOptions(from: AztecAddress | NoFrom, feePayer?: AztecAddress, gasSettings?: Partial<FieldsOf<GasSettings>>): Promise<FeeOptions>;
88
88
  /**
89
89
  * Completes partial user-provided fee options with unreasonably high gas limits
90
90
  * for gas estimation. Uses the same logic as completeFeeOptions but sets high limits
@@ -93,14 +93,14 @@ export declare abstract class BaseWallet implements Wallet {
93
93
  * @param feePayer - The address paying for fees (if any fee payment method is embedded in the execution payload)
94
94
  * @param gasSettings - User-provided partial gas settings
95
95
  */
96
- protected completeFeeOptionsForEstimation(from: AztecAddress, feePayer?: AztecAddress, gasSettings?: Partial<FieldsOf<GasSettings>>): Promise<{
96
+ protected completeFeeOptionsForEstimation(from: AztecAddress | NoFrom, feePayer?: AztecAddress, gasSettings?: Partial<FieldsOf<GasSettings>>): Promise<{
97
97
  /**
98
98
  * A wallet-provided fallback fee payment method that is used only if the transaction that is being constructed
99
99
  * doesn't already include one
100
100
  */
101
101
  walletFeePaymentMethod?: FeePaymentMethod | undefined;
102
102
  /** Configuration options for the account to properly handle the selected fee payment method */
103
- accountFeePaymentMethodOptions: AccountFeePaymentMethodOptions;
103
+ accountFeePaymentMethodOptions?: AccountFeePaymentMethodOptions | undefined;
104
104
  gasSettings: GasSettings;
105
105
  }>;
106
106
  registerSender(address: AztecAddress, _alias?: string): Promise<AztecAddress>;
@@ -132,14 +132,11 @@ export declare abstract class BaseWallet implements Wallet {
132
132
  getPrivateEvents<T>(eventDef: EventMetadataDefinition, eventFilter: PrivateEventFilter): Promise<PrivateEvent<T>[]>;
133
133
  /**
134
134
  * Returns metadata about a contract, including whether it has been initialized, published, and updated.
135
- *
136
- * `isContractInitialized` requires the contract instance to be registered in the PXE (for `init_hash`). When the
137
- * instance is not available, `isContractInitialized` is `undefined` since it cannot be determined.
138
135
  * @param address - The contract address to query.
139
136
  */
140
137
  getContractMetadata(address: AztecAddress): Promise<{
141
138
  instance: ContractInstanceWithAddress | undefined;
142
- isContractInitialized: boolean | undefined;
139
+ initializationStatus: ContractInitializationStatus;
143
140
  isContractPublished: boolean;
144
141
  isContractUpdated: boolean;
145
142
  updatedContractClassId: Fr | undefined;
@@ -149,4 +146,4 @@ export declare abstract class BaseWallet implements Wallet {
149
146
  isContractClassPubliclyRegistered: boolean;
150
147
  }>;
151
148
  }
152
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZV93YWxsZXQuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9iYXNlLXdhbGxldC9iYXNlX3dhbGxldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDakYsT0FBTyxFQUNMLEtBQUssc0JBQXNCLEVBRTNCLEtBQUssVUFBVSxFQUVoQixNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFNUQsT0FBTyxLQUFLLEVBQ1YsT0FBTyxFQUNQLGVBQWUsRUFDZixZQUFZLEVBQ1osYUFBYSxFQUNiLHFCQUFxQixFQUNyQixZQUFZLEVBQ1osa0JBQWtCLEVBQ2xCLGNBQWMsRUFDZCxXQUFXLEVBQ1gsZUFBZSxFQUNmLE1BQU0sRUFDTixrQkFBa0IsRUFDbkIsTUFBTSx3QkFBd0IsQ0FBQztBQU9oQyxPQUFPLEVBQUUsOEJBQThCLEVBQXdDLE1BQU0sNEJBQTRCLENBQUM7QUFDbEgsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDL0QsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXBELE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxLQUFLLFlBQVksRUFBb0IsTUFBTSx3QkFBd0IsQ0FBQztBQUM3RSxPQUFPLEtBQUssRUFBRSxHQUFHLEVBQXNCLE1BQU0sbUJBQW1CLENBQUM7QUFDakUsT0FBTyxFQUNMLEtBQUssZ0JBQWdCLEVBQ3JCLEtBQUssdUJBQXVCLEVBQzVCLEtBQUssWUFBWSxFQUVsQixNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sS0FB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
149
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZV93YWxsZXQuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9iYXNlLXdhbGxldC9iYXNlX3dhbGxldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFL0QsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2pGLE9BQU8sRUFDTCxLQUFLLHNCQUFzQixFQUUzQixLQUFLLFVBQVUsRUFFaEIsTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRTVELE9BQU8sRUFDTCxLQUFLLE9BQU8sRUFDWixLQUFLLGVBQWUsRUFDcEIsS0FBSyxZQUFZLEVBQ2pCLEtBQUssYUFBYSxFQUNsQiw0QkFBNEIsRUFDNUIsS0FBSyxxQkFBcUIsRUFDMUIsS0FBSyxZQUFZLEVBQ2pCLEtBQUssa0JBQWtCLEVBQ3ZCLEtBQUssY0FBYyxFQUNuQixLQUFLLFdBQVcsRUFDaEIsS0FBSyxlQUFlLEVBQ3BCLEtBQUssTUFBTSxFQUNYLEtBQUssa0JBQWtCLEVBQ3hCLE1BQU0sd0JBQXdCLENBQUM7QUFPaEMsT0FBTyxFQUFFLDhCQUE4QixFQUF3QyxNQUFNLDRCQUE0QixDQUFDO0FBRWxILE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUVwRCxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsS0FBSyxZQUFZLEVBQW9CLE1BQU0sd0JBQXdCLENBQUM7QUFDN0UsT0FBTyxLQUFLLEVBQUUsR0FBRyxFQUFzQixNQUFNLG1CQUFtQixDQUFDO0FBQ2pFLE9BQU8sRUFD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
@@ -1 +1 @@
1
- {"version":3,"file":"base_wallet.d.ts","sourceRoot":"","sources":["../../src/base-wallet/base_wallet.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base_wallet.d.ts","sourceRoot":"","sources":["../../src/base-wallet/base_wallet.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,10 @@
1
+ import { NO_FROM } from '@aztec/aztec.js/account';
1
2
  import { NO_WAIT, extractOffchainOutput } from '@aztec/aztec.js/contracts';
2
3
  import { waitForTx } from '@aztec/aztec.js/node';
4
+ import { ContractInitializationStatus } from '@aztec/aztec.js/wallet';
3
5
  import { GAS_ESTIMATION_DA_GAS_LIMIT, GAS_ESTIMATION_L2_GAS_LIMIT, GAS_ESTIMATION_TEARDOWN_DA_GAS_LIMIT, GAS_ESTIMATION_TEARDOWN_L2_GAS_LIMIT } from '@aztec/constants';
4
6
  import { AccountFeePaymentMethodOptions } from '@aztec/entrypoints/account';
7
+ import { DefaultEntrypoint } from '@aztec/entrypoints/default';
5
8
  import { Fr } from '@aztec/foundation/curves/bn254';
6
9
  import { createLogger } from '@aztec/foundation/log';
7
10
  import { displayDebugLogs } from '@aztec/pxe/client/lazy';
@@ -10,7 +13,7 @@ import { AztecAddress } from '@aztec/stdlib/aztec-address';
10
13
  import { computePartialAddress, getContractClassFromArtifact } from '@aztec/stdlib/contract';
11
14
  import { SimulationError } from '@aztec/stdlib/errors';
12
15
  import { Gas, GasSettings } from '@aztec/stdlib/gas';
13
- import { computeSiloedPrivateInitializationNullifier } from '@aztec/stdlib/hash';
16
+ import { computeSiloedPrivateInitializationNullifier, computeSiloedPublicInitializationNullifier } from '@aztec/stdlib/hash';
14
17
  import { mergeExecutionPayloads } from '@aztec/stdlib/tx';
15
18
  import { inspect } from 'util';
16
19
  import { buildMergedSimulationResult, extractOptimizablePublicStaticCalls, simulateViaNode } from './utils.js';
@@ -31,7 +34,7 @@ import { buildMergedSimulationResult, extractOptimizablePublicStaticCalls, simul
31
34
  this.cancellableTransactions = false;
32
35
  }
33
36
  scopesFrom(from, additionalScopes = []) {
34
- const allScopes = from.isZero() ? additionalScopes : [
37
+ const allScopes = from === NO_FROM ? additionalScopes : [
35
38
  from,
36
39
  ...additionalScopes
37
40
  ];
@@ -62,18 +65,24 @@ import { buildMergedSimulationResult, extractOptimizablePublicStaticCalls, simul
62
65
  }
63
66
  async createTxExecutionRequestFromPayloadAndFee(executionPayload, from, feeOptions) {
64
67
  const feeExecutionPayload = await feeOptions.walletFeePaymentMethod?.getExecutionPayload();
65
- const executionOptions = {
66
- txNonce: Fr.random(),
67
- cancellable: this.cancellableTransactions,
68
- feePaymentMethodOptions: feeOptions.accountFeePaymentMethodOptions
69
- };
70
68
  const finalExecutionPayload = feeExecutionPayload ? mergeExecutionPayloads([
71
69
  feeExecutionPayload,
72
70
  executionPayload
73
71
  ]) : executionPayload;
74
- const fromAccount = await this.getAccountFromAddress(from);
75
72
  const chainInfo = await this.getChainInfo();
76
- return fromAccount.createTxExecutionRequest(finalExecutionPayload, feeOptions.gasSettings, chainInfo, executionOptions);
73
+ if (from === NO_FROM) {
74
+ const entrypoint = new DefaultEntrypoint();
75
+ return entrypoint.createTxExecutionRequest(finalExecutionPayload, feeOptions.gasSettings, chainInfo);
76
+ } else {
77
+ const fromAccount = await this.getAccountFromAddress(from);
78
+ const executionOptions = {
79
+ txNonce: Fr.random(),
80
+ cancellable: this.cancellableTransactions,
81
+ // If from is an address, feeOptions include the way the account contract should handle the fee payment
82
+ feePaymentMethodOptions: feeOptions.accountFeePaymentMethodOptions
83
+ };
84
+ return fromAccount.createTxExecutionRequest(finalExecutionPayload, feeOptions.gasSettings, chainInfo, executionOptions);
85
+ }
77
86
  }
78
87
  async createAuthWit(from, messageHashOrIntent) {
79
88
  const account = await this.getAccountFromAddress(from);
@@ -123,14 +132,18 @@ import { buildMergedSimulationResult, extractOptimizablePublicStaticCalls, simul
123
132
  */ async completeFeeOptions(from, feePayer, gasSettings) {
124
133
  const maxFeesPerGas = gasSettings?.maxFeesPerGas ?? (await this.aztecNode.getCurrentMinFees()).mul(1 + this.minFeePadding);
125
134
  let accountFeePaymentMethodOptions;
126
- // The transaction does not include a fee payment method, so we set the flag
127
- // for the account to use its fee juice balance
128
- if (!feePayer) {
129
- accountFeePaymentMethodOptions = AccountFeePaymentMethodOptions.PREEXISTING_FEE_JUICE;
130
- } else {
131
- // The transaction includes fee payment method, so we check if we are the fee payer for it
132
- // (this can only happen if the embedded payment method is FeeJuiceWithClaim)
133
- accountFeePaymentMethodOptions = from.equals(feePayer) ? AccountFeePaymentMethodOptions.FEE_JUICE_WITH_CLAIM : AccountFeePaymentMethodOptions.EXTERNAL;
135
+ // If from is an address, we need to determine the appropriate fee payment method options for the
136
+ // account contract entrypoint to use
137
+ if (from !== NO_FROM) {
138
+ if (!feePayer) {
139
+ // The transaction does not include a fee payment method, so we set the flag
140
+ // for the account to use its fee juice balance
141
+ accountFeePaymentMethodOptions = AccountFeePaymentMethodOptions.PREEXISTING_FEE_JUICE;
142
+ } else {
143
+ // The transaction includes fee payment method, so we check if we are the fee payer for it
144
+ // (this can only happen if the embedded payment method is FeeJuiceWithClaim)
145
+ accountFeePaymentMethodOptions = from.equals(feePayer) ? AccountFeePaymentMethodOptions.FEE_JUICE_WITH_CLAIM : AccountFeePaymentMethodOptions.EXTERNAL;
146
+ }
134
147
  }
135
148
  const fullGasSettings = GasSettings.default({
136
149
  ...gasSettings,
@@ -232,8 +245,9 @@ import { buildMergedSimulationResult, extractOptimizablePublicStaticCalls, simul
232
245
  } catch {
233
246
  blockHeader = await this.aztecNode.getBlockHeader();
234
247
  }
248
+ const simulationOrigin = opts.from === NO_FROM ? AztecAddress.ZERO : opts.from;
235
249
  const [optimizedResults, normalResult] = await Promise.all([
236
- optimizableCalls.length > 0 ? simulateViaNode(this.aztecNode, optimizableCalls, opts.from, chainInfo, feeOptions.gasSettings, blockHeader, opts.skipFeeEnforcement ?? true, this.getContractName.bind(this)) : Promise.resolve([]),
250
+ optimizableCalls.length > 0 ? simulateViaNode(this.aztecNode, optimizableCalls, simulationOrigin, chainInfo, feeOptions.gasSettings, blockHeader, opts.skipFeeEnforcement ?? true, this.getContractName.bind(this)) : Promise.resolve([]),
237
251
  remainingCalls.length > 0 ? this.simulateViaEntrypoint(remainingPayload, {
238
252
  from: opts.from,
239
253
  feeOptions,
@@ -314,9 +328,7 @@ import { buildMergedSimulationResult, extractOptimizablePublicStaticCalls, simul
314
328
  executeUtility(call, opts) {
315
329
  return this.pxe.executeUtility(call, {
316
330
  authwits: opts.authWitnesses,
317
- scopes: [
318
- opts.scope
319
- ]
331
+ scopes: opts.scopes
320
332
  });
321
333
  }
322
334
  async getPrivateEvents(eventDef, eventFilter) {
@@ -337,31 +349,31 @@ import { buildMergedSimulationResult, extractOptimizablePublicStaticCalls, simul
337
349
  }
338
350
  /**
339
351
  * Returns metadata about a contract, including whether it has been initialized, published, and updated.
340
- *
341
- * `isContractInitialized` requires the contract instance to be registered in the PXE (for `init_hash`). When the
342
- * instance is not available, `isContractInitialized` is `undefined` since it cannot be determined.
343
352
  * @param address - The contract address to query.
344
353
  */ async getContractMetadata(address) {
345
354
  const instance = await this.pxe.getContractInstance(address);
346
355
  const publiclyRegisteredContractPromise = this.aztecNode.getContract(address);
347
- // We check only the private initialization nullifier. It is emitted by both private and public initializers and
348
- // includes init_hash, preventing observers from determining initialization status from the address alone. Without
349
- // the instance (and thus init_hash), we can't compute it, so we return undefined.
350
- //
351
- // We skip the public initialization nullifier because it's not always emitted (contracts without public external
352
- // functions that require initialization checks won't emit it). If the private one exists, the public one was
353
- // created in the same tx and will also be present.
354
- let isContractInitialized = undefined;
356
+ let initializationStatus;
355
357
  if (instance) {
358
+ // We have the instance, so we can compute the private initialization nullifier (which includes init_hash and is
359
+ // emitted by both private and public initializers) and get a definitive INITIALIZED/UNINITIALIZED answer.
356
360
  const initNullifier = await computeSiloedPrivateInitializationNullifier(address, instance.initializationHash);
357
361
  const witness = await this.aztecNode.getNullifierMembershipWitness('latest', initNullifier);
358
- isContractInitialized = !!witness;
362
+ initializationStatus = witness ? ContractInitializationStatus.INITIALIZED : ContractInitializationStatus.UNINITIALIZED;
363
+ } else {
364
+ // Without the instance we lack the init_hash needed for the private nullifier. We fall back to checking the
365
+ // public initialization nullifier (computed from address alone). Not all contracts emit it (only those with
366
+ // public functions that require initialization checks), so its absence doesn't mean the contract is
367
+ // uninitialized.
368
+ const publicNullifier = await computeSiloedPublicInitializationNullifier(address);
369
+ const witness = await this.aztecNode.getNullifierMembershipWitness('latest', publicNullifier);
370
+ initializationStatus = witness ? ContractInitializationStatus.INITIALIZED : ContractInitializationStatus.UNKNOWN;
359
371
  }
360
372
  const publiclyRegisteredContract = await publiclyRegisteredContractPromise;
361
373
  const isContractUpdated = publiclyRegisteredContract && !publiclyRegisteredContract.currentContractClassId.equals(publiclyRegisteredContract.originalContractClassId);
362
374
  return {
363
375
  instance: instance ?? undefined,
364
- isContractInitialized,
376
+ initializationStatus,
365
377
  isContractPublished: !!publiclyRegisteredContract,
366
378
  isContractUpdated: !!isContractUpdated,
367
379
  updatedContractClassId: isContractUpdated ? publiclyRegisteredContract.currentContractClassId : undefined
package/dest/crypto.d.ts CHANGED
@@ -189,4 +189,42 @@ export declare const DEFAULT_EMOJI_GRID_SIZE = 9;
189
189
  * ```
190
190
  */
191
191
  export declare function hashToEmoji(hash: string, count?: number): string;
192
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3J5cHRvLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY3J5cHRvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQThEQTs7OztHQUlHO0FBQ0gsTUFBTSxXQUFXLGlCQUFpQjtJQUNoQyxnREFBZ0Q7SUFDaEQsR0FBRyxFQUFFLE1BQU0sQ0FBQztJQUNaLGtDQUFrQztJQUNsQyxHQUFHLEVBQUUsTUFBTSxDQUFDO0lBQ1osdUNBQXVDO0lBQ3ZDLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDVix1Q0FBdUM7SUFDdkMsQ0FBQyxFQUFFLE1BQU0sQ0FBQztDQUNYO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sV0FBVyxnQkFBZ0I7SUFDL0IsdURBQXVEO0lBQ3ZELEVBQUUsRUFBRSxNQUFNLENBQUM7SUFDWCxrQ0FBa0M7SUFDbEMsVUFBVSxFQUFFLE1BQU0sQ0FBQztDQUNwQjtBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxXQUFXLGFBQWE7SUFDNUIsaUNBQWlDO0lBQ2pDLFNBQVMsRUFBRSxTQUFTLENBQUM7SUFDckIseURBQXlEO0lBQ3pELFVBQVUsRUFBRSxTQUFTLENBQUM7Q0FDdkI7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sV0FBVyxXQUFXO0lBQzFCLHdEQUF3RDtJQUN4RCxhQUFhLEVBQUUsU0FBUyxDQUFDO0lBQ3pCLG9EQUFvRDtJQUNwRCxnQkFBZ0IsRUFBRSxNQUFNLENBQUM7Q0FDMUI7QUFTRDs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILHdCQUFzQixlQUFlLElBQUksT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQWE5RDtBQUVEOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNILHdCQUFzQixlQUFlLENBQUMsU0FBUyxFQUFFLFNBQVMsR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FRdEY7QUFFRDs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILHdCQUFnQixlQUFlLENBQUMsUUFBUSxFQUFFLGlCQUFpQixHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FnQi9FO0FBc0REOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F3Qkc7QUFDSCx3QkFBc0IsaUJBQWlCLENBQ3JDLFVBQVUsRUFBRSxhQUFhLEVBQ3pCLGFBQWEsRUFBRSxTQUFTLEVBQ3hCLEtBQUssRUFBRSxPQUFPLEdBQ2IsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQXdEdEI7QUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQkc7QUFDSCx3QkFBc0IsT0FBTyxDQUFDLEdBQUcsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FVckY7QUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQkc7QUFDSCx3QkFBc0IsT0FBTyxDQUFDLENBQUMsR0FBRyxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQVFoRztBQXdERDs7O0dBR0c7QUFDSCxlQUFPLE1BQU0sdUJBQXVCLElBQUksQ0FBQztBQUV6Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUJHO0FBQ0gsd0JBQWdCLFdBQVcsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssR0FBRSxNQUFnQyxHQUFHLE1BQU0sQ0FPekYifQ==
192
+ /**
193
+ * Derives an AES-256-GCM key from a passphrase using PBKDF2-SHA256.
194
+ *
195
+ * @param passphrase - The user-provided passphrase or PIN
196
+ * @param salt - Random salt bytes
197
+ * @param iterations - PBKDF2 iteration count (default: 2,000,000)
198
+ * @returns An AES-256-GCM CryptoKey
199
+ */
200
+ export declare function deriveKeyFromPassphrase(passphrase: string, salt: Uint8Array, iterations?: number): Promise<CryptoKey>;
201
+ /**
202
+ * Encrypts arbitrary bytes with a passphrase using PBKDF2 + AES-256-GCM.
203
+ *
204
+ * Output layout: `[salt (16)] [iv (12)] [ciphertext (...)]`
205
+ *
206
+ * @param plaintext - Data to encrypt
207
+ * @param passphrase - User passphrase or PIN
208
+ * @param iterations - PBKDF2 iteration count (default: 2,000,000)
209
+ * @returns A Uint8Array containing salt + iv + ciphertext
210
+ */
211
+ export declare function encryptWithPassphrase(plaintext: Uint8Array, passphrase: string, iterations?: number): Promise<Uint8Array>;
212
+ /**
213
+ * Decrypts data produced by {@link encryptWithPassphrase}.
214
+ *
215
+ * @param data - The encrypted blob (salt + iv + ciphertext)
216
+ * @param passphrase - The passphrase used during encryption
217
+ * @param iterations - PBKDF2 iteration count (must match encryption)
218
+ * @returns The decrypted plaintext bytes
219
+ * @throws On wrong passphrase (AES-GCM auth tag mismatch)
220
+ */
221
+ export declare function decryptWithPassphrase(data: Uint8Array, passphrase: string, iterations?: number): Promise<Uint8Array>;
222
+ /**
223
+ * Converts a Uint8Array to a base64 string.
224
+ */
225
+ export declare function uint8ToBase64(bytes: Uint8Array): string;
226
+ /**
227
+ * Converts a base64 string to a Uint8Array.
228
+ */
229
+ export declare function base64ToUint8(b64: string): Uint8Array;
230
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3J5cHRvLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY3J5cHRvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQThEQTs7OztHQUlHO0FBQ0gsTUFBTSxXQUFXLGlCQUFpQjtJQUNoQyxnREFBZ0Q7SUFDaEQsR0FBRyxFQUFFLE1BQU0sQ0FBQztJQUNaLGtDQUFrQztJQUNsQyxHQUFHLEVBQUUsTUFBTSxDQUFDO0lBQ1osdUNBQXVDO0lBQ3ZDLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDVix1Q0FBdUM7SUFDdkMsQ0FBQyxFQUFFLE1BQU0sQ0FBQztDQUNYO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sV0FBVyxnQkFBZ0I7SUFDL0IsdURBQXVEO0lBQ3ZELEVBQUUsRUFBRSxNQUFNLENBQUM7SUFDWCxrQ0FBa0M7SUFDbEMsVUFBVSxFQUFFLE1BQU0sQ0FBQztDQUNwQjtBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxXQUFXLGFBQWE7SUFDNUIsaUNBQWlDO0lBQ2pDLFNBQVMsRUFBRSxTQUFTLENBQUM7SUFDckIseURBQXlEO0lBQ3pELFVBQVUsRUFBRSxTQUFTLENBQUM7Q0FDdkI7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sV0FBVyxXQUFXO0lBQzFCLHdEQUF3RDtJQUN4RCxhQUFhLEVBQUUsU0FBUyxDQUFDO0lBQ3pCLG9EQUFvRDtJQUNwRCxnQkFBZ0IsRUFBRSxNQUFNLENBQUM7Q0FDMUI7QUFTRDs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILHdCQUFzQixlQUFlLElBQUksT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQWE5RDtBQUVEOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNILHdCQUFzQixlQUFlLENBQUMsU0FBUyxFQUFFLFNBQVMsR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FRdEY7QUFFRDs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILHdCQUFnQixlQUFlLENBQUMsUUFBUSxFQUFFLGlCQUFpQixHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FnQi9FO0FBc0REOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F3Qkc7QUFDSCx3QkFBc0IsaUJBQWlCLENBQ3JDLFVBQVUsRUFBRSxhQUFhLEVBQ3pCLGFBQWEsRUFBRSxTQUFTLEVBQ3hCLEtBQUssRUFBRSxPQUFPLEdBQ2IsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQXdEdEI7QUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQkc7QUFDSCx3QkFBc0IsT0FBTyxDQUFDLEdBQUcsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FVckY7QUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQkc7QUFDSCx3QkFBc0IsT0FBTyxDQUFDLENBQUMsR0FBRyxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQVFoRztBQXdERDs7O0dBR0c7QUFDSCxlQUFPLE1BQU0sdUJBQXVCLElBQUksQ0FBQztBQUV6Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUJHO0FBQ0gsd0JBQWdCLFdBQVcsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssR0FBRSxNQUFnQyxHQUFHLE1BQU0sQ0FPekY7QUFTRDs7Ozs7OztHQU9HO0FBQ0gsd0JBQXNCLHVCQUF1QixDQUMzQyxVQUFVLEVBQUUsTUFBTSxFQUNsQixJQUFJLEVBQUUsVUFBVSxFQUNoQixVQUFVLEdBQUUsTUFBa0MsR0FDN0MsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQVdwQjtBQUVEOzs7Ozs7Ozs7R0FTRztBQUNILHdCQUFzQixxQkFBcUIsQ0FDekMsU0FBUyxFQUFFLFVBQVUsRUFDckIsVUFBVSxFQUFFLE1BQU0sRUFDbEIsVUFBVSxHQUFFLE1BQWtDLEdBQzdDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FZckI7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILHdCQUFzQixxQkFBcUIsQ0FDekMsSUFBSSxFQUFFLFVBQVUsRUFDaEIsVUFBVSxFQUFFLE1BQU0sRUFDbEIsVUFBVSxHQUFFLE1BQWtDLEdBQzdDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FNckI7QUFFRDs7R0FFRztBQUNILHdCQUFnQixhQUFhLENBQUMsS0FBSyxFQUFFLFVBQVUsR0FBRyxNQUFNLENBTXZEO0FBRUQ7O0dBRUc7QUFDSCx3QkFBZ0IsYUFBYSxDQUFDLEdBQUcsRUFBRSxNQUFNLEdBQUcsVUFBVSxDQU9yRCJ9
@@ -1 +1 @@
1
- {"version":3,"file":"crypto.d.ts","sourceRoot":"","sources":["../src/crypto.ts"],"names":[],"mappings":"AA8DA;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,gDAAgD;IAChD,GAAG,EAAE,MAAM,CAAC;IACZ,kCAAkC;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,uCAAuC;IACvC,CAAC,EAAE,MAAM,CAAC;IACV,uCAAuC;IACvC,CAAC,EAAE,MAAM,CAAC;CACX;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,uDAAuD;IACvD,EAAE,EAAE,MAAM,CAAC;IACX,kCAAkC;IAClC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC5B,iCAAiC;IACjC,SAAS,EAAE,SAAS,CAAC;IACrB,yDAAyD;IACzD,UAAU,EAAE,SAAS,CAAC;CACvB;AAED;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC1B,wDAAwD;IACxD,aAAa,EAAE,SAAS,CAAC;IACzB,oDAAoD;IACpD,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AASD;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,aAAa,CAAC,CAa9D;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,eAAe,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAQtF;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,iBAAiB,GAAG,OAAO,CAAC,SAAS,CAAC,CAgB/E;AAsDD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAsB,iBAAiB,CACrC,UAAU,EAAE,aAAa,EACzB,aAAa,EAAE,SAAS,EACxB,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,WAAW,CAAC,CAwDtB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,OAAO,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAUrF;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,CAAC,CAAC,CAQhG;AAwDD;;;GAGG;AACH,eAAO,MAAM,uBAAuB,IAAI,CAAC;AAEzC;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,GAAE,MAAgC,GAAG,MAAM,CAOzF"}
1
+ {"version":3,"file":"crypto.d.ts","sourceRoot":"","sources":["../src/crypto.ts"],"names":[],"mappings":"AA8DA;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,gDAAgD;IAChD,GAAG,EAAE,MAAM,CAAC;IACZ,kCAAkC;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,uCAAuC;IACvC,CAAC,EAAE,MAAM,CAAC;IACV,uCAAuC;IACvC,CAAC,EAAE,MAAM,CAAC;CACX;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,uDAAuD;IACvD,EAAE,EAAE,MAAM,CAAC;IACX,kCAAkC;IAClC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC5B,iCAAiC;IACjC,SAAS,EAAE,SAAS,CAAC;IACrB,yDAAyD;IACzD,UAAU,EAAE,SAAS,CAAC;CACvB;AAED;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC1B,wDAAwD;IACxD,aAAa,EAAE,SAAS,CAAC;IACzB,oDAAoD;IACpD,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AASD;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,aAAa,CAAC,CAa9D;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,eAAe,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAQtF;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,iBAAiB,GAAG,OAAO,CAAC,SAAS,CAAC,CAgB/E;AAsDD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAsB,iBAAiB,CACrC,UAAU,EAAE,aAAa,EACzB,aAAa,EAAE,SAAS,EACxB,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,WAAW,CAAC,CAwDtB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,OAAO,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAUrF;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,CAAC,CAAC,CAQhG;AAwDD;;;GAGG;AACH,eAAO,MAAM,uBAAuB,IAAI,CAAC;AAEzC;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,GAAE,MAAgC,GAAG,MAAM,CAOzF;AASD;;;;;;;GAOG;AACH,wBAAsB,uBAAuB,CAC3C,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,UAAU,EAChB,UAAU,GAAE,MAAkC,GAC7C,OAAO,CAAC,SAAS,CAAC,CAWpB;AAED;;;;;;;;;GASG;AACH,wBAAsB,qBAAqB,CACzC,SAAS,EAAE,UAAU,EACrB,UAAU,EAAE,MAAM,EAClB,UAAU,GAAE,MAAkC,GAC7C,OAAO,CAAC,UAAU,CAAC,CAYrB;AAED;;;;;;;;GAQG;AACH,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,UAAU,EAChB,UAAU,EAAE,MAAM,EAClB,UAAU,GAAE,MAAkC,GAC7C,OAAO,CAAC,UAAU,CAAC,CAMrB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAMvD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAOrD"}
package/dest/crypto.js CHANGED
@@ -392,3 +392,91 @@ const FINGERPRINT_DATA = new TextEncoder().encode('aztec-wallet-verification-ver
392
392
  }
393
393
  return emojis.join('');
394
394
  }
395
+ // ─── Passphrase-based encryption (PBKDF2 + AES-256-GCM) ───────────────────
396
+ /** Default PBKDF2 iteration count. High to compensate for short PINs (~1-2s on modern hardware). */ const DEFAULT_PBKDF2_ITERATIONS = 2_000_000;
397
+ const PBKDF2_SALT_BYTES = 16;
398
+ const PBKDF2_IV_BYTES = 12;
399
+ /**
400
+ * Derives an AES-256-GCM key from a passphrase using PBKDF2-SHA256.
401
+ *
402
+ * @param passphrase - The user-provided passphrase or PIN
403
+ * @param salt - Random salt bytes
404
+ * @param iterations - PBKDF2 iteration count (default: 2,000,000)
405
+ * @returns An AES-256-GCM CryptoKey
406
+ */ export async function deriveKeyFromPassphrase(passphrase, salt, iterations = DEFAULT_PBKDF2_ITERATIONS) {
407
+ const keyMaterial = await crypto.subtle.importKey('raw', new TextEncoder().encode(passphrase), 'PBKDF2', false, [
408
+ 'deriveKey'
409
+ ]);
410
+ return crypto.subtle.deriveKey({
411
+ name: 'PBKDF2',
412
+ salt: salt,
413
+ iterations,
414
+ hash: 'SHA-256'
415
+ }, keyMaterial, {
416
+ name: 'AES-GCM',
417
+ length: 256
418
+ }, false, [
419
+ 'encrypt',
420
+ 'decrypt'
421
+ ]);
422
+ }
423
+ /**
424
+ * Encrypts arbitrary bytes with a passphrase using PBKDF2 + AES-256-GCM.
425
+ *
426
+ * Output layout: `[salt (16)] [iv (12)] [ciphertext (...)]`
427
+ *
428
+ * @param plaintext - Data to encrypt
429
+ * @param passphrase - User passphrase or PIN
430
+ * @param iterations - PBKDF2 iteration count (default: 2,000,000)
431
+ * @returns A Uint8Array containing salt + iv + ciphertext
432
+ */ export async function encryptWithPassphrase(plaintext, passphrase, iterations = DEFAULT_PBKDF2_ITERATIONS) {
433
+ const salt = crypto.getRandomValues(new Uint8Array(PBKDF2_SALT_BYTES));
434
+ const iv = crypto.getRandomValues(new Uint8Array(PBKDF2_IV_BYTES));
435
+ const key = await deriveKeyFromPassphrase(passphrase, salt, iterations);
436
+ const ciphertext = new Uint8Array(await crypto.subtle.encrypt({
437
+ name: 'AES-GCM',
438
+ iv
439
+ }, key, plaintext));
440
+ const result = new Uint8Array(PBKDF2_SALT_BYTES + PBKDF2_IV_BYTES + ciphertext.length);
441
+ result.set(salt, 0);
442
+ result.set(iv, PBKDF2_SALT_BYTES);
443
+ result.set(ciphertext, PBKDF2_SALT_BYTES + PBKDF2_IV_BYTES);
444
+ return result;
445
+ }
446
+ /**
447
+ * Decrypts data produced by {@link encryptWithPassphrase}.
448
+ *
449
+ * @param data - The encrypted blob (salt + iv + ciphertext)
450
+ * @param passphrase - The passphrase used during encryption
451
+ * @param iterations - PBKDF2 iteration count (must match encryption)
452
+ * @returns The decrypted plaintext bytes
453
+ * @throws On wrong passphrase (AES-GCM auth tag mismatch)
454
+ */ export async function decryptWithPassphrase(data, passphrase, iterations = DEFAULT_PBKDF2_ITERATIONS) {
455
+ const salt = data.slice(0, PBKDF2_SALT_BYTES);
456
+ const iv = data.slice(PBKDF2_SALT_BYTES, PBKDF2_SALT_BYTES + PBKDF2_IV_BYTES);
457
+ const ciphertext = data.slice(PBKDF2_SALT_BYTES + PBKDF2_IV_BYTES);
458
+ const key = await deriveKeyFromPassphrase(passphrase, salt, iterations);
459
+ return new Uint8Array(await crypto.subtle.decrypt({
460
+ name: 'AES-GCM',
461
+ iv
462
+ }, key, ciphertext));
463
+ }
464
+ /**
465
+ * Converts a Uint8Array to a base64 string.
466
+ */ export function uint8ToBase64(bytes) {
467
+ let binary = '';
468
+ for (const b of bytes){
469
+ binary += String.fromCharCode(b);
470
+ }
471
+ return btoa(binary);
472
+ }
473
+ /**
474
+ * Converts a base64 string to a Uint8Array.
475
+ */ export function base64ToUint8(b64) {
476
+ const binary = atob(b64);
477
+ const bytes = new Uint8Array(binary.length);
478
+ for(let i = 0; i < binary.length; i++){
479
+ bytes[i] = binary.charCodeAt(i);
480
+ }
481
+ return bytes;
482
+ }
@@ -1,9 +1,6 @@
1
1
  import type { ChainInfo } from '@aztec/aztec.js/account';
2
2
  import { type Wallet } from '@aztec/aztec.js/wallet';
3
- /**
4
- * Callback type for wallet disconnect events.
5
- */
6
- export type DisconnectCallback = () => void;
3
+ import { type DisconnectCallback } from '../../types.js';
7
4
  /**
8
5
  * A wallet implementation that communicates with browser extension wallets
9
6
  * using an encrypted MessageChannel.
@@ -129,4 +126,4 @@ export declare class ExtensionWallet {
129
126
  */
130
127
  disconnect(): Promise<void>;
131
128
  }
132
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5zaW9uX3dhbGxldC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2V4dGVuc2lvbi9wcm92aWRlci9leHRlbnNpb25fd2FsbGV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBZ0IsTUFBTSx3QkFBd0IsQ0FBQztBQW9CbkU7O0dBRUc7QUFDSCxNQUFNLE1BQU0sa0JBQWtCLEdBQUcsTUFBTSxJQUFJLENBQUM7QUFFNUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQThCRztBQUNILHFCQUFhLGVBQWU7SUFleEIsT0FBTyxDQUFDLFNBQVM7SUFDakIsT0FBTyxDQUFDLEtBQUs7SUFDYixPQUFPLENBQUMsV0FBVztJQUNuQixPQUFPLENBQUMsSUFBSTtJQUNaLE9BQU8sQ0FBQyxTQUFTO0lBbEJuQixzRUFBc0U7SUFDdEUsT0FBTyxDQUFDLFFBQVEsQ0FBb0Q7SUFDcEUsT0FBTyxDQUFDLFlBQVksQ0FBUztJQUM3QixPQUFPLENBQUMsbUJBQW1CLENBQTRCO0lBRXZEOzs7Ozs7O09BT0c7SUFDSCxPQUFPLGVBTUg7SUFFSjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQXlCRztJQUNILE1BQU0sQ0FBQyxNQUFNLENBQ1gsV0FBVyxFQUFFLE1BQU0sRUFDbkIsSUFBSSxFQUFFLFdBQVcsRUFDakIsU0FBUyxFQUFFLFNBQVMsRUFDcEIsU0FBUyxFQUFFLFNBQVMsRUFDcEIsS0FBSyxFQUFFLE1BQU0sR0FDWixlQUFlLENBa0NqQjtJQUVELFFBQVEsSUFBSSxNQUFNLENBSWpCO1lBVWEsdUJBQXVCO1lBOEN2QixXQUFXO0lBMEJ6Qjs7OztPQUlHO0lBQ0gsT0FBTyxDQUFDLGdCQUFnQjtJQTBCeEI7Ozs7Ozs7Ozs7Ozs7OztPQWVHO0lBQ0gsWUFBWSxDQUFDLFFBQVEsRUFBRSxrQkFBa0IsR0FBRyxNQUFNLElBQUksQ0FRckQ7SUFFRDs7OztPQUlHO0lBQ0gsY0FBYyxJQUFJLE9BQU8sQ0FFeEI7SUFFRDs7Ozs7Ozs7Ozs7OztPQWFHO0lBRUcsVUFBVSxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FhaEM7Q0FDRiJ9
129
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5zaW9uX3dhbGxldC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2V4dGVuc2lvbi9wcm92aWRlci9leHRlbnNpb25fd2FsbGV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBZ0IsTUFBTSx3QkFBd0IsQ0FBQztBQU9uRSxPQUFPLEVBQUUsS0FBSyxrQkFBa0IsRUFBOEQsTUFBTSxnQkFBZ0IsQ0FBQztBQWFySDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBOEJHO0FBQ0gscUJBQWEsZUFBZTtJQWV4QixPQUFPLENBQUMsU0FBUztJQUNqQixPQUFPLENBQUMsS0FBSztJQUNiLE9BQU8sQ0FBQyxXQUFXO0lBQ25CLE9BQU8sQ0FBQyxJQUFJO0lBQ1osT0FBTyxDQUFDLFNBQVM7SUFsQm5CLHNFQUFzRTtJQUN0RSxPQUFPLENBQUMsUUFBUSxDQUFvRDtJQUNwRSxPQUFPLENBQUMsWUFBWSxDQUFTO0lBQzdCLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBNEI7SUFFdkQ7Ozs7Ozs7T0FPRztJQUNILE9BQU8sZUFNSDtJQUVKOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09BeUJHO0lBQ0gsTUFBTSxDQUFDLE1BQU0sQ0FDWCxXQUFXLEVBQUUsTUFBTSxFQUNuQixJQUFJLEVBQUUsV0FBVyxFQUNqQixTQUFTLEVBQUUsU0FBUyxFQUNwQixTQUFTLEVBQUUsU0FBUyxFQUNwQixLQUFLLEVBQUUsTUFBTSxHQUNaLGVBQWUsQ0FrQ2pCO0lBRUQsUUFBUSxJQUFJLE1BQU0sQ0FJakI7WUFVYSx1QkFBdUI7WUE4Q3ZCLFdBQVc7SUEwQnpCOzs7O09BSUc7SUFDSCxPQUFPLENBQUMsZ0JBQWdCO0lBMEJ4Qjs7Ozs7Ozs7Ozs7Ozs7O09BZUc7SUFDSCxZQUFZLENBQUMsUUFBUSxFQUFFLGtCQUFrQixHQUFHLE1BQU0sSUFBSSxDQVFyRDtJQUVEOzs7O09BSUc7SUFDSCxjQUFjLElBQUksT0FBTyxDQUV4QjtJQUVEOzs7Ozs7Ozs7Ozs7O09BYUc7SUFFRyxVQUFVLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxDQWFoQztDQUNGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"extension_wallet.d.ts","sourceRoot":"","sources":["../../../src/extension/provider/extension_wallet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,wBAAwB,CAAC;AAoBnE;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC;AAE5C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,qBAAa,eAAe;IAexB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,SAAS;IAlBnB,sEAAsE;IACtE,OAAO,CAAC,QAAQ,CAAoD;IACpE,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,mBAAmB,CAA4B;IAEvD;;;;;;;OAOG;IACH,OAAO,eAMH;IAEJ;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,MAAM,CAAC,MAAM,CACX,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,WAAW,EACjB,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,MAAM,GACZ,eAAe,CAkCjB;IAED,QAAQ,IAAI,MAAM,CAIjB;YAUa,uBAAuB;YA8CvB,WAAW;IA0BzB;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IA0BxB;;;;;;;;;;;;;;;OAeG;IACH,YAAY,CAAC,QAAQ,EAAE,kBAAkB,GAAG,MAAM,IAAI,CAQrD;IAED;;;;OAIG;IACH,cAAc,IAAI,OAAO,CAExB;IAED;;;;;;;;;;;;;OAaG;IAEG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAahC;CACF"}
1
+ {"version":3,"file":"extension_wallet.d.ts","sourceRoot":"","sources":["../../../src/extension/provider/extension_wallet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,wBAAwB,CAAC;AAOnE,OAAO,EAAE,KAAK,kBAAkB,EAA8D,MAAM,gBAAgB,CAAC;AAarH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,qBAAa,eAAe;IAexB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,SAAS;IAlBnB,sEAAsE;IACtE,OAAO,CAAC,QAAQ,CAAoD;IACpE,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,mBAAmB,CAA4B;IAEvD;;;;;;;OAOG;IACH,OAAO,eAMH;IAEJ;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,MAAM,CAAC,MAAM,CACX,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,WAAW,EACjB,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,MAAM,GACZ,eAAe,CAkCjB;IAED,QAAQ,IAAI,MAAM,CAIjB;YAUa,uBAAuB;YA8CvB,WAAW;IA0BzB;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IA0BxB;;;;;;;;;;;;;;;OAeG;IACH,YAAY,CAAC,QAAQ,EAAE,kBAAkB,GAAG,MAAM,IAAI,CAQrD;IAED;;;;OAIG;IACH,cAAc,IAAI,OAAO,CAExB;IAED;;;;;;;;;;;;;OAaG;IAEG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAahC;CACF"}
@@ -1,3 +1,3 @@
1
- export { ExtensionWallet, type DisconnectCallback } from './extension_wallet.js';
1
+ export { ExtensionWallet } from './extension_wallet.js';
2
2
  export { ExtensionProvider, type DiscoveredWallet, type ConnectedWallet, type DiscoveryOptions, } from './extension_provider.js';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9leHRlbnNpb24vcHJvdmlkZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxLQUFLLGtCQUFrQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDakYsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixLQUFLLGdCQUFnQixFQUNyQixLQUFLLGVBQWUsRUFDcEIsS0FBSyxnQkFBZ0IsR0FDdEIsTUFBTSx5QkFBeUIsQ0FBQyJ9
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9leHRlbnNpb24vcHJvdmlkZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3hELE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsS0FBSyxnQkFBZ0IsRUFDckIsS0FBSyxlQUFlLEVBQ3BCLEtBQUssZ0JBQWdCLEdBQ3RCLE1BQU0seUJBQXlCLENBQUMifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/extension/provider/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,KAAK,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AACjF,OAAO,EACL,iBAAiB,EACjB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,gBAAgB,GACtB,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/extension/provider/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EACL,iBAAiB,EACjB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,gBAAgB,GACtB,MAAM,yBAAyB,CAAC"}
@@ -0,0 +1,118 @@
1
+ /**
2
+ * IframeConnectionHandler — wallet-side of the cross-origin iframe protocol.
3
+ *
4
+ * This mirrors {@link BackgroundConnectionHandler} from `@aztec/wallet-sdk/extension/handlers`
5
+ * but uses `window.postMessage` instead of browser.runtime messaging.
6
+ *
7
+ * Message flow (wallet receives):
8
+ * parent → DISCOVERY → show approval UI → send DISCOVERY_RESPONSE
9
+ * parent → KEY_EXCHANGE_REQUEST → ECDH → send KEY_EXCHANGE_RESPONSE
10
+ * parent → SECURE_MESSAGE → decrypt → Wallet → encrypt → SECURE_RESPONSE
11
+ * parent → DISCONNECT → terminate session
12
+ *
13
+ * The wallet announces itself by posting WALLET_READY as soon as the handler starts,
14
+ * so the dApp knows it can send a discovery request.
15
+ */
16
+ import type { ChainInfo } from '@aztec/aztec.js/account';
17
+ import type { Wallet } from '@aztec/aztec.js/wallet';
18
+ /**
19
+ * A pending discovery request from a dApp (before user approval).
20
+ */
21
+ export interface PendingSession {
22
+ /** Unique request identifier */
23
+ requestId: string;
24
+ /** Application identifier */
25
+ appId: string;
26
+ /** Origin URL of the requesting page */
27
+ origin: string;
28
+ /** Approval status */
29
+ status: 'pending' | 'approved';
30
+ }
31
+ /**
32
+ * An active session (after key exchange).
33
+ */
34
+ export interface ActiveSession {
35
+ /** Session identifier (same as the discovery requestId) */
36
+ sessionId: string;
37
+ /** AES-256-GCM shared key for this session */
38
+ sharedKey: CryptoKey;
39
+ /** Verification hash for emoji display */
40
+ verificationHash: string;
41
+ /** Origin URL of the connected dApp */
42
+ origin: string;
43
+ /** Application identifier */
44
+ appId: string;
45
+ }
46
+ /**
47
+ * Configuration for the iframe connection handler.
48
+ */
49
+ export interface IframeConnectionConfig {
50
+ /** Unique wallet identifier */
51
+ walletId: string;
52
+ /** Display name for the wallet */
53
+ walletName: string;
54
+ /** Wallet version string */
55
+ walletVersion: string;
56
+ /** Optional wallet icon URL */
57
+ walletIcon?: string;
58
+ /** Origins allowed to connect. If empty or undefined, all origins are allowed (dev mode). */
59
+ allowedOrigins?: string[];
60
+ }
61
+ /**
62
+ * Event callbacks for the iframe connection handler.
63
+ */
64
+ export interface IframeConnectionCallbacks {
65
+ /** Called when a new discovery request arrives — wallet can show approval UI */
66
+ onPendingDiscovery?: (session: PendingSession) => void;
67
+ /** Called when a session is established (key exchange complete) */
68
+ onSessionEstablished?: (session: ActiveSession) => void;
69
+ /** Called when a session is terminated */
70
+ onSessionTerminated?: (sessionId: string) => void;
71
+ /** Called when a key exchange completes — show verificationHash as emojis to the user */
72
+ onVerificationHash?: (verificationHash: string) => void;
73
+ /**
74
+ * Resolves the Wallet instance to use for a given dApp and chain.
75
+ * Called when an encrypted message arrives and needs to be dispatched.
76
+ */
77
+ getWallet: (appId: string, chainInfo: ChainInfo) => Promise<Wallet>;
78
+ }
79
+ /**
80
+ * Handles the wallet side of the cross-origin iframe protocol.
81
+ *
82
+ * Manages the full lifecycle: discovery, ECDH key exchange, encrypted message
83
+ * dispatch to a {@link Wallet} instance, and session termination.
84
+ *
85
+ * @example
86
+ * ```typescript
87
+ * const handler = new IframeConnectionHandler(
88
+ * { walletId: 'my-wallet', walletName: 'My Wallet', walletVersion: '1.0.0' },
89
+ * {
90
+ * onPendingDiscovery: (session) => showApprovalUI(session),
91
+ * getWallet: (appId, chainInfo) => createWalletForApp(appId, chainInfo),
92
+ * },
93
+ * );
94
+ * handler.start();
95
+ * ```
96
+ */
97
+ export declare class IframeConnectionHandler {
98
+ private config;
99
+ private callbacks;
100
+ private pendingSessions;
101
+ private activeSessions;
102
+ private log;
103
+ constructor(config: IframeConnectionConfig, callbacks: IframeConnectionCallbacks);
104
+ start(): void;
105
+ stop(): void;
106
+ approveDiscovery(requestId: string): void;
107
+ rejectDiscovery(requestId: string): void;
108
+ terminateSession(sessionId: string): void;
109
+ getPendingSessions(): PendingSession[];
110
+ private handleMessage;
111
+ private handleMessageAsync;
112
+ private handleDiscoveryRequest;
113
+ private handleKeyExchangeRequest;
114
+ private handleSecureMessage;
115
+ private postToParent;
116
+ private postToOrigin;
117
+ }
118
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWZyYW1lX2Nvbm5lY3Rpb25faGFuZGxlci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2lmcmFtZS9oYW5kbGVycy9pZnJhbWVfY29ubmVjdGlvbl9oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFekQsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFnQnJEOztHQUVHO0FBQ0gsTUFBTSxXQUFXLGNBQWM7SUFDN0IsZ0NBQWdDO0lBQ2hDLFNBQVMsRUFBRSxNQUFNLENBQUM7SUFDbEIsNkJBQTZCO0lBQzdCLEtBQUssRUFBRSxNQUFNLENBQUM7SUFDZCx3Q0FBd0M7SUFDeEMsTUFBTSxFQUFFLE1BQU0sQ0FBQztJQUNmLHNCQUFzQjtJQUN0QixNQUFNLEVBQUUsU0FBUyxHQUFHLFVBQVUsQ0FBQztDQUNoQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxXQUFXLGFBQWE7SUFDNUIsMkRBQTJEO0lBQzNELFNBQVMsRUFBRSxNQUFNLENBQUM7SUFDbEIsOENBQThDO0lBQzlDLFNBQVMsRUFBRSxTQUFTLENBQUM7SUFDckIsMENBQTBDO0lBQzFDLGdCQUFnQixFQUFFLE1BQU0sQ0FBQztJQUN6Qix1Q0FBdUM7SUFDdkMsTUFBTSxFQUFFLE1BQU0sQ0FBQztJQUNmLDZCQUE2QjtJQUM3QixLQUFLLEVBQUUsTUFBTSxDQUFDO0NBQ2Y7QUFFRDs7R0FFRztBQUNILE1BQU0sV0FBVyxzQkFBc0I7SUFDckMsK0JBQStCO0lBQy9CLFFBQVEsRUFBRSxNQUFNLENBQUM7SUFDakIsa0NBQWtDO0lBQ2xDLFVBQVUsRUFBRSxNQUFNLENBQUM7SUFDbkIsNEJBQTRCO0lBQzVCLGFBQWEsRUFBRSxNQUFNLENBQUM7SUFDdEIsK0JBQStCO0lBQy9CLFVBQVUsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUNwQiw2RkFBNkY7SUFDN0YsY0FBYyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUM7Q0FDM0I7QUFFRDs7R0FFRztBQUNILE1BQU0sV0FBVyx5QkFBeUI7SUFDeEMsa0ZBQWdGO0lBQ2hGLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsY0FBYyxLQUFLLElBQUksQ0FBQztJQUN2RCxtRUFBbUU7SUFDbkUsb0JBQW9CLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxhQUFhLEtBQUssSUFBSSxDQUFDO0lBQ3hELDBDQUEwQztJQUMxQyxtQkFBbUIsQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLE1BQU0sS0FBSyxJQUFJLENBQUM7SUFDbEQsMkZBQXlGO0lBQ3pGLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSxNQUFNLEtBQUssSUFBSSxDQUFDO0lBQ3hEOzs7T0FHRztJQUNILFNBQVMsRUFBRSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFNBQVMsS0FBSyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7Q0FDckU7QUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQkc7QUFDSCxxQkFBYSx1QkFBdUI7SUFNaEMsT0FBTyxDQUFDLE1BQU07SUFDZCxPQUFPLENBQUMsU0FBUztJQU5uQixPQUFPLENBQUMsZUFBZSxDQUFxQztJQUM1RCxPQUFPLENBQUMsY0FBYyxDQUFvQztJQUMxRCxPQUFPLENBQUMsR0FBRyxDQUF5QztJQUVwRCxZQUNVLE1BQU0sRUFBRSxzQkFBc0IsRUFDOUIsU0FBUyxFQUFFLHlCQUF5QixFQUMxQztJQUVKLEtBQUssSUFBSSxJQUFJLENBSVo7SUFFRCxJQUFJLElBQUksSUFBSSxDQUVYO0lBRUQsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLE1BQU0sR0FBRyxJQUFJLENBa0J4QztJQUVELGVBQWUsQ0FBQyxTQUFTLEVBQUUsTUFBTSxHQUFHLElBQUksQ0FFdkM7SUFFRCxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsTUFBTSxHQUFHLElBQUksQ0FVeEM7SUFFRCxrQkFBa0IsSUFBSSxjQUFjLEVBQUUsQ0FFckM7SUFFRCxPQUFPLENBQUMsYUFBYSxDQUVuQjtZQUVZLGtCQUFrQjtJQTRCaEMsT0FBTyxDQUFDLHNCQUFzQjtZQVNoQix3QkFBd0I7WUE2Q3hCLG1CQUFtQjtJQXNEakMsT0FBTyxDQUFDLFlBQVk7SUFNcEIsT0FBTyxDQUFDLFlBQVk7Q0FLckIifQ==
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iframe_connection_handler.d.ts","sourceRoot":"","sources":["../../../src/iframe/handlers/iframe_connection_handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEzD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAgBrD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,gCAAgC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,6BAA6B;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,wCAAwC;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,sBAAsB;IACtB,MAAM,EAAE,SAAS,GAAG,UAAU,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,2DAA2D;IAC3D,SAAS,EAAE,MAAM,CAAC;IAClB,8CAA8C;IAC9C,SAAS,EAAE,SAAS,CAAC;IACrB,0CAA0C;IAC1C,gBAAgB,EAAE,MAAM,CAAC;IACzB,uCAAuC;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,6BAA6B;IAC7B,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,+BAA+B;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,kCAAkC;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,4BAA4B;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,+BAA+B;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6FAA6F;IAC7F,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,kFAAgF;IAChF,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,IAAI,CAAC;IACvD,mEAAmE;IACnE,oBAAoB,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,IAAI,CAAC;IACxD,0CAA0C;IAC1C,mBAAmB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAClD,2FAAyF;IACzF,kBAAkB,CAAC,EAAE,CAAC,gBAAgB,EAAE,MAAM,KAAK,IAAI,CAAC;IACxD;;;OAGG;IACH,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CACrE;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,uBAAuB;IAMhC,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,SAAS;IANnB,OAAO,CAAC,eAAe,CAAqC;IAC5D,OAAO,CAAC,cAAc,CAAoC;IAC1D,OAAO,CAAC,GAAG,CAAyC;IAEpD,YACU,MAAM,EAAE,sBAAsB,EAC9B,SAAS,EAAE,yBAAyB,EAC1C;IAEJ,KAAK,IAAI,IAAI,CAIZ;IAED,IAAI,IAAI,IAAI,CAEX;IAED,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAkBxC;IAED,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAEvC;IAED,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAUxC;IAED,kBAAkB,IAAI,cAAc,EAAE,CAErC;IAED,OAAO,CAAC,aAAa,CAEnB;YAEY,kBAAkB;IA4BhC,OAAO,CAAC,sBAAsB;YAShB,wBAAwB;YA6CxB,mBAAmB;IAsDjC,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,YAAY;CAKrB"}