@aztec/wallets 0.0.1-commit.e2b2873ed → 0.0.1-commit.e57c76e

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 (40) hide show
  1. package/dest/embedded/account-contract-providers/bundle.d.ts +4 -3
  2. package/dest/embedded/account-contract-providers/bundle.d.ts.map +1 -1
  3. package/dest/embedded/account-contract-providers/bundle.js +6 -5
  4. package/dest/embedded/account-contract-providers/lazy.d.ts +4 -3
  5. package/dest/embedded/account-contract-providers/lazy.d.ts.map +1 -1
  6. package/dest/embedded/account-contract-providers/lazy.js +16 -6
  7. package/dest/embedded/account-contract-providers/types.d.ts +4 -3
  8. package/dest/embedded/account-contract-providers/types.d.ts.map +1 -1
  9. package/dest/embedded/embedded_wallet.d.ts +66 -7
  10. package/dest/embedded/embedded_wallet.d.ts.map +1 -1
  11. package/dest/embedded/embedded_wallet.js +223 -54
  12. package/dest/embedded/entrypoints/browser.d.ts +8 -3
  13. package/dest/embedded/entrypoints/browser.d.ts.map +1 -1
  14. package/dest/embedded/entrypoints/browser.js +50 -16
  15. package/dest/embedded/entrypoints/node.d.ts +7 -11
  16. package/dest/embedded/entrypoints/node.d.ts.map +1 -1
  17. package/dest/embedded/entrypoints/node.js +35 -16
  18. package/dest/embedded/store_encryption.d.ts +67 -0
  19. package/dest/embedded/store_encryption.d.ts.map +1 -0
  20. package/dest/embedded/store_encryption.js +71 -0
  21. package/dest/embedded/wallet_db.d.ts +5 -4
  22. package/dest/embedded/wallet_db.d.ts.map +1 -1
  23. package/dest/embedded/wallet_db.js +9 -9
  24. package/dest/testing.d.ts +1 -1
  25. package/dest/testing.d.ts.map +1 -1
  26. package/dest/testing.js +2 -2
  27. package/package.json +21 -9
  28. package/src/embedded/account-contract-providers/bundle.ts +7 -5
  29. package/src/embedded/account-contract-providers/lazy.ts +17 -6
  30. package/src/embedded/account-contract-providers/types.ts +4 -2
  31. package/src/embedded/embedded_wallet.ts +321 -63
  32. package/src/embedded/entrypoints/browser.ts +70 -26
  33. package/src/embedded/entrypoints/node.ts +59 -45
  34. package/src/embedded/store_encryption.ts +107 -0
  35. package/src/embedded/wallet_db.ts +12 -9
  36. package/src/testing.ts +2 -1
  37. package/dest/embedded/embedded_wallet_browser.d.ts +0 -5
  38. package/dest/embedded/embedded_wallet_browser.d.ts.map +0 -1
  39. package/dest/embedded/embedded_wallet_browser.js +0 -31
  40. package/src/embedded/embedded_wallet_browser.ts +0 -40
@@ -1,9 +1,14 @@
1
+ import { type AztecNode } from '@aztec/aztec.js/node';
2
+ import { type Logger } from '@aztec/foundation/log';
3
+ import { type PXE } from '@aztec/pxe/client/lazy';
4
+ import type { AccountContractsProvider } from '../account-contract-providers/types.js';
1
5
  import { EmbeddedWallet, type EmbeddedWalletOptions } from '../embedded_wallet.js';
6
+ import { WalletDB } from '../wallet_db.js';
2
7
  export declare class BrowserEmbeddedWallet extends EmbeddedWallet {
3
- static create(nodeUrl: string, options?: EmbeddedWalletOptions): Promise<BrowserEmbeddedWallet>;
8
+ static create<T extends BrowserEmbeddedWallet = BrowserEmbeddedWallet>(this: new (pxe: PXE, aztecNode: AztecNode, walletDB: WalletDB, accountContracts: AccountContractsProvider, log?: Logger) => T, nodeOrUrl: string | AztecNode, options?: EmbeddedWalletOptions): Promise<T>;
4
9
  }
5
10
  export { BrowserEmbeddedWallet as EmbeddedWallet };
6
- export type { EmbeddedWalletOptions } from '../embedded_wallet.js';
11
+ export type { EmbeddedWalletOptions, EmbeddedWalletPXEOptions } from '../embedded_wallet.js';
7
12
  export { WalletDB } from '../wallet_db.js';
8
13
  export type { AccountType } from '../wallet_db.js';
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJvd3Nlci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VtYmVkZGVkL2VudHJ5cG9pbnRzL2Jyb3dzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT0EsT0FBTyxFQUFFLGNBQWMsRUFBRSxLQUFLLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFHbkYscUJBQWEscUJBQXNCLFNBQVEsY0FBYztJQUN2RCxPQUFhLE1BQU0sQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sR0FBRSxxQkFBMEIsR0FBRyxPQUFPLENBQUMscUJBQXFCLENBQUMsQ0FnQ3hHO0NBQ0Y7QUFFRCxPQUFPLEVBQUUscUJBQXFCLElBQUksY0FBYyxFQUFFLENBQUM7QUFDbkQsWUFBWSxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbkUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLFlBQVksRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQyJ9
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJvd3Nlci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VtYmVkZGVkL2VudHJ5cG9pbnRzL2Jyb3dzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssU0FBUyxFQUF5QixNQUFNLHNCQUFzQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUVsRSxPQUFPLEVBQUUsS0FBSyxHQUFHLEVBQXNDLE1BQU0sd0JBQXdCLENBQUM7QUFNdEYsT0FBTyxLQUFLLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUN2RixPQUFPLEVBQUUsY0FBYyxFQUFFLEtBQUsscUJBQXFCLEVBQW1CLE1BQU0sdUJBQXVCLENBQUM7QUFDcEcsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTNDLHFCQUFhLHFCQUFzQixTQUFRLGNBQWM7SUFDdkQsT0FBYSxNQUFNLENBQUMsQ0FBQyxTQUFTLHFCQUFxQixHQUFHLHFCQUFxQixFQUN6RSxJQUFJLEVBQUUsS0FDSixHQUFHLEVBQUUsR0FBRyxFQUNSLFNBQVMsRUFBRSxTQUFTLEVBQ3BCLFFBQVEsRUFBRSxRQUFRLEVBQ2xCLGdCQUFnQixFQUFFLHdCQUF3QixFQUMxQyxHQUFHLENBQUMsRUFBRSxNQUFNLEtBQ1QsQ0FBQyxFQUNOLFNBQVMsRUFBRSxNQUFNLEdBQUcsU0FBUyxFQUM3QixPQUFPLEdBQUUscUJBQTBCLEdBQ2xDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0F3RFo7Q0FDRjtBQUVELE9BQU8sRUFBRSxxQkFBcUIsSUFBSSxjQUFjLEVBQUUsQ0FBQztBQUNuRCxZQUFZLEVBQUUscUJBQXFCLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM3RixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsWUFBWSxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../../src/embedded/entrypoints/browser.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,cAAc,EAAE,KAAK,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAGnF,qBAAa,qBAAsB,SAAQ,cAAc;IACvD,OAAa,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,qBAA0B,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAgCxG;CACF;AAED,OAAO,EAAE,qBAAqB,IAAI,cAAc,EAAE,CAAC;AACnD,YAAY,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../../src/embedded/entrypoints/browser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAyB,MAAM,sBAAsB,CAAC;AAC7E,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAElE,OAAO,EAAE,KAAK,GAAG,EAAsC,MAAM,wBAAwB,CAAC;AAMtF,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AACvF,OAAO,EAAE,cAAc,EAAE,KAAK,qBAAqB,EAAmB,MAAM,uBAAuB,CAAC;AACpG,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C,qBAAa,qBAAsB,SAAQ,cAAc;IACvD,OAAa,MAAM,CAAC,CAAC,SAAS,qBAAqB,GAAG,qBAAqB,EACzE,IAAI,EAAE,KACJ,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,QAAQ,EAClB,gBAAgB,EAAE,wBAAwB,EAC1C,GAAG,CAAC,EAAE,MAAM,KACT,CAAC,EACN,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,CAAC,CAAC,CAwDZ;CACF;AAED,OAAO,EAAE,qBAAqB,IAAI,cAAc,EAAE,CAAC;AACnD,YAAY,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAC7F,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC"}
@@ -3,33 +3,67 @@ import { createLogger } from '@aztec/foundation/log';
3
3
  import { createStore, openTmpStore } from '@aztec/kv-store/indexeddb';
4
4
  import { createPXE } from '@aztec/pxe/client/lazy';
5
5
  import { getPXEConfig } from '@aztec/pxe/config';
6
+ import { getStandardAuthRegistry } from '@aztec/standard-contracts/auth-registry/lazy';
7
+ import { getStandardMultiCallEntrypoint } from '@aztec/standard-contracts/multi-call-entrypoint/lazy';
6
8
  import { LazyAccountContractsProvider } from '../account-contract-providers/lazy.js';
7
- import { EmbeddedWallet } from '../embedded_wallet.js';
9
+ import { EmbeddedWallet, splitPxeOptions } from '../embedded_wallet.js';
8
10
  import { WalletDB } from '../wallet_db.js';
9
11
  export class BrowserEmbeddedWallet extends EmbeddedWallet {
10
- static async create(nodeUrl, options = {}) {
12
+ static async create(nodeOrUrl, options = {}) {
11
13
  const rootLogger = options.logger ?? createLogger('embedded-wallet');
12
- const aztecNode = createAztecNodeClient(nodeUrl);
14
+ const aztecNode = typeof nodeOrUrl === 'string' ? createAztecNodeClient(nodeOrUrl) : nodeOrUrl;
13
15
  const l1Contracts = await aztecNode.getL1ContractAddresses();
14
- const rollupAddress = l1Contracts.rollupAddress;
15
- const config = getPXEConfig();
16
- if (!options.ephemeral) {
17
- config.dataDirectory = `pxe-${rollupAddress}`;
16
+ // Support both the new unified `pxe` option and the deprecated `pxeConfig`/`pxeOptions`.
17
+ const { config: pxeConfigFromPxe, creation: pxeCreationFromPxe } = splitPxeOptions(options.pxe);
18
+ const mergedConfigOverrides = {
19
+ ...options.pxeConfig,
20
+ ...pxeConfigFromPxe
21
+ };
22
+ const mergedCreationOverrides = {
23
+ ...options.pxeOptions,
24
+ ...pxeCreationFromPxe
25
+ };
26
+ const pxeConfig = Object.assign(getPXEConfig(), {
27
+ proverEnabled: mergedConfigOverrides.proverEnabled ?? false,
28
+ dataDirectory: `pxe_data_${l1Contracts.rollupAddress}`,
29
+ autoSync: false,
30
+ ...mergedConfigOverrides
31
+ });
32
+ if (options.ephemeral) {
33
+ delete pxeConfig.dataDirectory;
18
34
  }
19
- const pxe = await createPXE(aztecNode, config, {
35
+ const pxeOptions = {
36
+ ...mergedCreationOverrides,
37
+ preloadedContractsProvider: mergedCreationOverrides.preloadedContractsProvider ?? {
38
+ getPreloadedContracts: async ()=>[
39
+ await getStandardMultiCallEntrypoint(),
40
+ await getStandardAuthRegistry()
41
+ ]
42
+ },
20
43
  loggers: {
21
44
  store: rootLogger.createChild('pxe:data'),
22
45
  pxe: rootLogger.createChild('pxe:service'),
23
- prover: rootLogger.createChild('pxe:prover')
46
+ prover: rootLogger.createChild('pxe:prover'),
47
+ ...mergedCreationOverrides.loggers
24
48
  }
25
- });
26
- const walletDBStore = options.ephemeral ? await openTmpStore(true) : await createStore(`wallet-${rollupAddress}`, {
27
- dataDirectory: 'wallet',
28
- dataStoreMapSizeKb: 2e10
29
- }, undefined, rootLogger.createChild('wallet:data'));
30
- const walletDB = WalletDB.init(walletDBStore, rootLogger.createChild('wallet:db').info);
31
- return new BrowserEmbeddedWallet(pxe, aztecNode, walletDB, new LazyAccountContractsProvider(), rootLogger);
49
+ };
50
+ const pxe = await createPXE(aztecNode, pxeConfig, pxeOptions);
51
+ const walletDBStore = options.walletDb?.store ?? (options.ephemeral ? await openTmpStore(true) : await createStore('wallet_data', {
52
+ dataDirectory: `wallet_data_${l1Contracts.rollupAddress}`,
53
+ dataStoreMapSizeKb: pxeConfig.dataStoreMapSizeKb,
54
+ rollupAddress: l1Contracts.rollupAddress
55
+ }, 1, rootLogger.createChild('wallet:data')));
56
+ const walletDB = new WalletDB(walletDBStore, rootLogger.createChild('wallet:db').info);
57
+ const wallet = new this(pxe, aztecNode, walletDB, new LazyAccountContractsProvider(), rootLogger);
58
+ await wallet.initStubClasses();
59
+ return wallet;
32
60
  }
33
61
  }
34
62
  export { BrowserEmbeddedWallet as EmbeddedWallet };
35
63
  export { WalletDB } from '../wallet_db.js';
64
+ // At-rest encryption helpers are intentionally NOT re-exported here. They live
65
+ // on the `@aztec/wallets/embedded/store-encryption` sub-path so consumers
66
+ // (and bundlers) of this entrypoint don't transitively pull in
67
+ // `@aztec/kv-store/sqlite-opfs` and its `new Worker(new URL('./worker.js'))`
68
+ // chain into `@aztec/sqlite3mc-wasm`. Apps that don't use encryption-at-rest
69
+ // (e.g. the playground) should never see sqlite-opfs in their bundle.
@@ -1,18 +1,14 @@
1
- import type { PXEConfig } from '@aztec/pxe/config';
2
- import { type PXECreationOptions } from '@aztec/pxe/server';
1
+ import { type Logger } from '@aztec/foundation/log';
2
+ import { type PXE } from '@aztec/pxe/server';
3
3
  import type { AztecNode } from '@aztec/stdlib/interfaces/client';
4
+ import type { AccountContractsProvider } from '../account-contract-providers/types.js';
4
5
  import { EmbeddedWallet, type EmbeddedWalletOptions } from '../embedded_wallet.js';
5
- export type NodeEmbeddedWalletOptions = EmbeddedWalletOptions & {
6
- /** Override PXE configuration. */
7
- pxeConfig?: Partial<PXEConfig>;
8
- /** Advanced PXE creation options (custom store, prover, simulator). */
9
- pxeOptions?: PXECreationOptions;
10
- };
6
+ import { WalletDB } from '../wallet_db.js';
11
7
  export declare class NodeEmbeddedWallet extends EmbeddedWallet {
12
- static create(nodeOrUrl: string | AztecNode, options?: NodeEmbeddedWalletOptions): Promise<NodeEmbeddedWallet>;
8
+ static create<T extends NodeEmbeddedWallet = NodeEmbeddedWallet>(this: new (pxe: PXE, aztecNode: AztecNode, walletDB: WalletDB, accountContracts: AccountContractsProvider, log?: Logger) => T, nodeOrUrl: string | AztecNode, options?: EmbeddedWalletOptions): Promise<T>;
13
9
  }
14
10
  export { NodeEmbeddedWallet as EmbeddedWallet };
15
- export type { EmbeddedWalletOptions } from '../embedded_wallet.js';
11
+ export type { EmbeddedWalletOptions, EmbeddedWalletPXEOptions } from '../embedded_wallet.js';
16
12
  export { WalletDB } from '../wallet_db.js';
17
13
  export type { AccountType } from '../wallet_db.js';
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VtYmVkZGVkL2VudHJ5cG9pbnRzL25vZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFbkQsT0FBTyxFQUFFLEtBQUssa0JBQWtCLEVBQWEsTUFBTSxtQkFBbUIsQ0FBQztBQUN2RSxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUdqRSxPQUFPLEVBQUUsY0FBYyxFQUFFLEtBQUsscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUduRixNQUFNLE1BQU0seUJBQXlCLEdBQUcscUJBQXFCLEdBQUc7SUFDOUQsa0NBQWtDO0lBQ2xDLFNBQVMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMvQix1RUFBdUU7SUFDdkUsVUFBVSxDQUFDLEVBQUUsa0JBQWtCLENBQUM7Q0FDakMsQ0FBQztBQUVGLHFCQUFhLGtCQUFtQixTQUFRLGNBQWM7SUFDcEQsT0FBYSxNQUFNLENBQ2pCLFNBQVMsRUFBRSxNQUFNLEdBQUcsU0FBUyxFQUM3QixPQUFPLEdBQUUseUJBQThCLEdBQ3RDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQWtEN0I7Q0FDRjtBQUVELE9BQU8sRUFBRSxrQkFBa0IsSUFBSSxjQUFjLEVBQUUsQ0FBQztBQUNoRCxZQUFZLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsWUFBWSxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDIn0=
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VtYmVkZGVkL2VudHJ5cG9pbnRzL25vZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFnQixNQUFNLHVCQUF1QixDQUFDO0FBR2xFLE9BQU8sRUFBRSxLQUFLLEdBQUcsRUFBc0MsTUFBTSxtQkFBbUIsQ0FBQztBQUdqRixPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUdqRSxPQUFPLEtBQUssRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxjQUFjLEVBQUUsS0FBSyxxQkFBcUIsRUFBbUIsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFM0MscUJBQWEsa0JBQW1CLFNBQVEsY0FBYztJQUNwRCxPQUFhLE1BQU0sQ0FBQyxDQUFDLFNBQVMsa0JBQWtCLEdBQUcsa0JBQWtCLEVBQ25FLElBQUksRUFBRSxLQUNKLEdBQUcsRUFBRSxHQUFHLEVBQ1IsU0FBUyxFQUFFLFNBQVMsRUFDcEIsUUFBUSxFQUFFLFFBQVEsRUFDbEIsZ0JBQWdCLEVBQUUsd0JBQXdCLEVBQzFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sS0FDVCxDQUFDLEVBQ04sU0FBUyxFQUFFLE1BQU0sR0FBRyxTQUFTLEVBQzdCLE9BQU8sR0FBRSxxQkFBMEIsR0FDbEMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQThEWjtDQUNGO0FBRUQsT0FBTyxFQUFFLGtCQUFrQixJQUFJLGNBQWMsRUFBRSxDQUFDO0FBQ2hELFlBQVksRUFBRSxxQkFBcUIsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzdGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxZQUFZLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUMifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../../src/embedded/entrypoints/node.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,EAAE,KAAK,kBAAkB,EAAa,MAAM,mBAAmB,CAAC;AACvE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAGjE,OAAO,EAAE,cAAc,EAAE,KAAK,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAGnF,MAAM,MAAM,yBAAyB,GAAG,qBAAqB,GAAG;IAC9D,kCAAkC;IAClC,SAAS,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAC/B,uEAAuE;IACvE,UAAU,CAAC,EAAE,kBAAkB,CAAC;CACjC,CAAC;AAEF,qBAAa,kBAAmB,SAAQ,cAAc;IACpD,OAAa,MAAM,CACjB,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,OAAO,GAAE,yBAA8B,GACtC,OAAO,CAAC,kBAAkB,CAAC,CAkD7B;CACF;AAED,OAAO,EAAE,kBAAkB,IAAI,cAAc,EAAE,CAAC;AAChD,YAAY,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../../src/embedded/entrypoints/node.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAGlE,OAAO,EAAE,KAAK,GAAG,EAAsC,MAAM,mBAAmB,CAAC;AAGjF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAGjE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AACvF,OAAO,EAAE,cAAc,EAAE,KAAK,qBAAqB,EAAmB,MAAM,uBAAuB,CAAC;AACpG,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C,qBAAa,kBAAmB,SAAQ,cAAc;IACpD,OAAa,MAAM,CAAC,CAAC,SAAS,kBAAkB,GAAG,kBAAkB,EACnE,IAAI,EAAE,KACJ,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,QAAQ,EAClB,gBAAgB,EAAE,wBAAwB,EAC1C,GAAG,CAAC,EAAE,MAAM,KACT,CAAC,EACN,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,CAAC,CAAC,CA8DZ;CACF;AAED,OAAO,EAAE,kBAAkB,IAAI,cAAc,EAAE,CAAC;AAChD,YAAY,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAC7F,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC"}
@@ -1,43 +1,62 @@
1
1
  import { createAztecNodeClient } from '@aztec/aztec.js/node';
2
2
  import { createLogger } from '@aztec/foundation/log';
3
- import { createStore as createWalletStore, openTmpStore } from '@aztec/kv-store/lmdb-v2';
3
+ import { createStore, openTmpStore } from '@aztec/kv-store/lmdb-v2';
4
4
  import { getPXEConfig } from '@aztec/pxe/config';
5
5
  import { createPXE } from '@aztec/pxe/server';
6
+ import { getStandardAuthRegistry } from '@aztec/standard-contracts/auth-registry';
7
+ import { getStandardMultiCallEntrypoint } from '@aztec/standard-contracts/multi-call-entrypoint';
6
8
  import { BundleAccountContractsProvider } from '../account-contract-providers/bundle.js';
7
- import { EmbeddedWallet } from '../embedded_wallet.js';
9
+ import { EmbeddedWallet, splitPxeOptions } from '../embedded_wallet.js';
8
10
  import { WalletDB } from '../wallet_db.js';
9
11
  export class NodeEmbeddedWallet extends EmbeddedWallet {
10
12
  static async create(nodeOrUrl, options = {}) {
11
13
  const rootLogger = options.logger ?? createLogger('embedded-wallet');
12
14
  const aztecNode = typeof nodeOrUrl === 'string' ? createAztecNodeClient(nodeOrUrl) : nodeOrUrl;
15
+ const l1Contracts = await aztecNode.getL1ContractAddresses();
16
+ // Support both the new unified `pxe` option and the deprecated `pxeConfig`/`pxeOptions`.
17
+ const { config: pxeConfigFromPxe, creation: pxeCreationFromPxe } = splitPxeOptions(options.pxe);
18
+ const mergedConfigOverrides = {
19
+ ...options.pxeConfig,
20
+ ...pxeConfigFromPxe
21
+ };
22
+ const mergedCreationOverrides = {
23
+ ...options.pxeOptions,
24
+ ...pxeCreationFromPxe
25
+ };
13
26
  const pxeConfig = Object.assign(getPXEConfig(), {
14
- proverEnabled: options.pxeConfig?.proverEnabled ?? false,
15
- ...options.pxeConfig
27
+ proverEnabled: mergedConfigOverrides.proverEnabled ?? false,
28
+ dataDirectory: `pxe_data_${l1Contracts.rollupAddress}`,
29
+ autoSync: false,
30
+ ...mergedConfigOverrides
16
31
  });
17
32
  if (options.ephemeral) {
18
33
  delete pxeConfig.dataDirectory;
19
34
  }
20
35
  const pxeOptions = {
21
- ...options.pxeOptions,
36
+ ...mergedCreationOverrides,
37
+ preloadedContractsProvider: mergedCreationOverrides.preloadedContractsProvider ?? {
38
+ getPreloadedContracts: async ()=>[
39
+ await getStandardMultiCallEntrypoint(),
40
+ await getStandardAuthRegistry()
41
+ ]
42
+ },
22
43
  loggers: {
23
44
  store: rootLogger.createChild('pxe:data'),
24
45
  pxe: rootLogger.createChild('pxe:service'),
25
46
  prover: rootLogger.createChild('pxe:prover'),
26
- ...options.pxeOptions?.loggers
47
+ ...mergedCreationOverrides.loggers
27
48
  }
28
49
  };
29
50
  const pxe = await createPXE(aztecNode, pxeConfig, pxeOptions);
30
- const l1Contracts = await aztecNode.getL1ContractAddresses();
31
- const rollupAddress = l1Contracts.rollupAddress;
32
- const walletDBStore = options.ephemeral ? await openTmpStore('wallet_data', true, undefined, undefined, rootLogger.createChild('wallet:data').getBindings()) : await createWalletStore('wallet_data', 1, {
33
- dataDirectory: pxeConfig.dataDirectory,
51
+ const walletDBStore = options.walletDb?.store ?? (options.ephemeral ? await openTmpStore(`wallet_data_${l1Contracts.rollupAddress}`, true, undefined, undefined, rootLogger.createChild('wallet:data').getBindings()) : await createStore('wallet_data', 1, {
52
+ dataDirectory: `wallet_data_${l1Contracts.rollupAddress}`,
34
53
  dataStoreMapSizeKb: pxeConfig.dataStoreMapSizeKb,
35
- l1Contracts: {
36
- rollupAddress
37
- }
38
- }, rootLogger.createChild('wallet:data').getBindings());
39
- const walletDB = WalletDB.init(walletDBStore, rootLogger.createChild('wallet:db').info);
40
- return new NodeEmbeddedWallet(pxe, aztecNode, walletDB, new BundleAccountContractsProvider(), rootLogger);
54
+ rollupAddress: l1Contracts.rollupAddress
55
+ }, rootLogger.createChild('wallet:data').getBindings()));
56
+ const walletDB = new WalletDB(walletDBStore, rootLogger.createChild('wallet:db').info);
57
+ const wallet = new this(pxe, aztecNode, walletDB, new BundleAccountContractsProvider(), rootLogger);
58
+ await wallet.initStubClasses();
59
+ return wallet;
41
60
  }
42
61
  }
43
62
  export { NodeEmbeddedWallet as EmbeddedWallet };
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Wallet-layer helpers for opening the embedded wallet's two encrypted stores (PXE + walletDB) as a cohesive unit.
3
+ *
4
+ * Sits on top of `@aztec/kv-store/sqlite-opfs`'s typed `SqliteEncryptionError` and adds:
5
+ *
6
+ * - `storeName: 'pxe' | 'wallet'`, telling callers WHICH store failed.
7
+ * - Cleanup: when the wallet store fails to open, ensures the already-opened PXE store is closed before the error
8
+ * surfaces, so callers don't leak the SAH Pool's OPFS lock.
9
+ */
10
+ import type { Logger } from '@aztec/foundation/log';
11
+ import { AztecSQLiteOPFSStore, SqliteEncryptionError } from '@aztec/kv-store/sqlite-opfs';
12
+ /** Which of the embedded wallet's two stores failed to open. */
13
+ export type EmbeddedStoreName = 'pxe' | 'wallet';
14
+ /**
15
+ * Thrown by {@link openEncryptedEmbeddedStores} when one of the two stores cannot be decrypted with the supplied
16
+ * key. The original {@link SqliteEncryptionError} is preserved as `cause`.
17
+ */
18
+ export declare class EmbeddedWalletEncryptionError extends Error {
19
+ readonly storeName: EmbeddedStoreName;
20
+ constructor(storeName: EmbeddedStoreName, opts: {
21
+ cause: SqliteEncryptionError;
22
+ });
23
+ }
24
+ /** Configuration for {@link openEncryptedEmbeddedStores}. */
25
+ export interface OpenEncryptedEmbeddedStoresOptions {
26
+ pxe: {
27
+ name: string;
28
+ poolDirectory?: string;
29
+ };
30
+ wallet: {
31
+ name: string;
32
+ poolDirectory?: string;
33
+ };
34
+ }
35
+ /**
36
+ * Internal seam for tests to inject a fake store opener. Defaults to `AztecSQLiteOPFSStore.open`. Not part of the
37
+ * public API.
38
+ *
39
+ * @internal
40
+ */
41
+ export type OpenSqliteEncryptedStoreFn = (log: Logger, name: string, poolDirectory: string | undefined, encryptionKey: Uint8Array) => Promise<AztecSQLiteOPFSStore>;
42
+ /**
43
+ * Opens the PXE and wallet stores in sequence, both encrypted with keys obtained from `getEncryptionKey`.
44
+ *
45
+ * The callback is invoked once per store (twice total per call) because `AztecSQLiteOPFSStore.open` *transfers*
46
+ * the key buffer to its worker. A single buffer would detach between the two opens.
47
+ *
48
+ * Failure modes:
49
+ *
50
+ * - PXE store fails to decrypt → throws `EmbeddedWalletEncryptionError({ storeName: 'pxe', cause })`. No cleanup
51
+ * needed (nothing was opened).
52
+ * - Wallet store fails to decrypt → closes the already-opened PXE store then throws
53
+ * `EmbeddedWalletEncryptionError({ storeName: 'wallet', cause })`.
54
+ * - Any non-decrypt error during the wallet open → still closes PXE, then re-throws the original error unwrapped
55
+ * (preserves callers' existing untyped error handling for non-encryption faults).
56
+ *
57
+ * @param config - Per-store name/poolDirectory.
58
+ * @param getEncryptionKey - Returns a fresh 32-byte key per call (the buffer
59
+ * detaches on transfer, so each call must allocate).
60
+ * @param log - Logger for both stores.
61
+ * @param openStore - Internal test seam. Do not pass in production code.
62
+ */
63
+ export declare function openEncryptedEmbeddedStores(config: OpenEncryptedEmbeddedStoresOptions, getEncryptionKey: () => Promise<Uint8Array>, log: Logger, openStore?: OpenSqliteEncryptedStoreFn): Promise<{
64
+ pxeStore: AztecSQLiteOPFSStore;
65
+ walletStore: AztecSQLiteOPFSStore;
66
+ }>;
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmVfZW5jcnlwdGlvbi5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2VtYmVkZGVkL3N0b3JlX2VuY3J5cHRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7O0dBUUc7QUFDSCxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUUxRixnRUFBZ0U7QUFDaEUsTUFBTSxNQUFNLGlCQUFpQixHQUFHLEtBQUssR0FBRyxRQUFRLENBQUM7QUFFakQ7OztHQUdHO0FBQ0gscUJBQWEsNkJBQThCLFNBQVEsS0FBSztJQUN0RCxRQUFRLENBQUMsU0FBUyxFQUFFLGlCQUFpQixDQUFDO0lBRXRDLFlBQVksU0FBUyxFQUFFLGlCQUFpQixFQUFFLElBQUksRUFBRTtRQUFFLEtBQUssRUFBRSxxQkFBcUIsQ0FBQTtLQUFFLEVBSS9FO0NBQ0Y7QUFFRCw2REFBNkQ7QUFDN0QsTUFBTSxXQUFXLGtDQUFrQztJQUNqRCxHQUFHLEVBQUU7UUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDO1FBQUMsYUFBYSxDQUFDLEVBQUUsTUFBTSxDQUFBO0tBQUUsQ0FBQztJQUM5QyxNQUFNLEVBQUU7UUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDO1FBQUMsYUFBYSxDQUFDLEVBQUUsTUFBTSxDQUFBO0tBQUUsQ0FBQztDQUNsRDtBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxNQUFNLDBCQUEwQixHQUFHLENBQ3ZDLEdBQUcsRUFBRSxNQUFNLEVBQ1gsSUFBSSxFQUFFLE1BQU0sRUFDWixhQUFhLEVBQUUsTUFBTSxHQUFHLFNBQVMsRUFDakMsYUFBYSxFQUFFLFVBQVUsS0FDdEIsT0FBTyxDQUFDLG9CQUFvQixDQUFDLENBQUM7QUFLbkM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0JHO0FBQ0gsd0JBQXNCLDJCQUEyQixDQUMvQyxNQUFNLEVBQUUsa0NBQWtDLEVBQzFDLGdCQUFnQixFQUFFLE1BQU0sT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUMzQyxHQUFHLEVBQUUsTUFBTSxFQUNYLFNBQVMsR0FBRSwwQkFBNkMsR0FDdkQsT0FBTyxDQUFDO0lBQUUsUUFBUSxFQUFFLG9CQUFvQixDQUFDO0lBQUMsV0FBVyxFQUFFLG9CQUFvQixDQUFBO0NBQUUsQ0FBQyxDQVdoRiJ9
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store_encryption.d.ts","sourceRoot":"","sources":["../../src/embedded/store_encryption.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAE1F,gEAAgE;AAChE,MAAM,MAAM,iBAAiB,GAAG,KAAK,GAAG,QAAQ,CAAC;AAEjD;;;GAGG;AACH,qBAAa,6BAA8B,SAAQ,KAAK;IACtD,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC;IAEtC,YAAY,SAAS,EAAE,iBAAiB,EAAE,IAAI,EAAE;QAAE,KAAK,EAAE,qBAAqB,CAAA;KAAE,EAI/E;CACF;AAED,6DAA6D;AAC7D,MAAM,WAAW,kCAAkC;IACjD,GAAG,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9C,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAClD;AAED;;;;;GAKG;AACH,MAAM,MAAM,0BAA0B,GAAG,CACvC,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,aAAa,EAAE,UAAU,KACtB,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAKnC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,kCAAkC,EAC1C,gBAAgB,EAAE,MAAM,OAAO,CAAC,UAAU,CAAC,EAC3C,GAAG,EAAE,MAAM,EACX,SAAS,GAAE,0BAA6C,GACvD,OAAO,CAAC;IAAE,QAAQ,EAAE,oBAAoB,CAAC;IAAC,WAAW,EAAE,oBAAoB,CAAA;CAAE,CAAC,CAWhF"}
@@ -0,0 +1,71 @@
1
+ /**
2
+ * Wallet-layer helpers for opening the embedded wallet's two encrypted stores (PXE + walletDB) as a cohesive unit.
3
+ *
4
+ * Sits on top of `@aztec/kv-store/sqlite-opfs`'s typed `SqliteEncryptionError` and adds:
5
+ *
6
+ * - `storeName: 'pxe' | 'wallet'`, telling callers WHICH store failed.
7
+ * - Cleanup: when the wallet store fails to open, ensures the already-opened PXE store is closed before the error
8
+ * surfaces, so callers don't leak the SAH Pool's OPFS lock.
9
+ */ import { AztecSQLiteOPFSStore, SqliteEncryptionError } from '@aztec/kv-store/sqlite-opfs';
10
+ /**
11
+ * Thrown by {@link openEncryptedEmbeddedStores} when one of the two stores cannot be decrypted with the supplied
12
+ * key. The original {@link SqliteEncryptionError} is preserved as `cause`.
13
+ */ export class EmbeddedWalletEncryptionError extends Error {
14
+ storeName;
15
+ constructor(storeName, opts){
16
+ super(`Embedded wallet '${storeName}' store could not be decrypted with the provided key`, {
17
+ cause: opts.cause
18
+ });
19
+ this.name = 'EmbeddedWalletEncryptionError';
20
+ this.storeName = storeName;
21
+ }
22
+ }
23
+ const defaultOpenStore = (log, name, poolDirectory, encryptionKey)=>AztecSQLiteOPFSStore.open(log, name, false, poolDirectory, encryptionKey);
24
+ /**
25
+ * Opens the PXE and wallet stores in sequence, both encrypted with keys obtained from `getEncryptionKey`.
26
+ *
27
+ * The callback is invoked once per store (twice total per call) because `AztecSQLiteOPFSStore.open` *transfers*
28
+ * the key buffer to its worker. A single buffer would detach between the two opens.
29
+ *
30
+ * Failure modes:
31
+ *
32
+ * - PXE store fails to decrypt → throws `EmbeddedWalletEncryptionError({ storeName: 'pxe', cause })`. No cleanup
33
+ * needed (nothing was opened).
34
+ * - Wallet store fails to decrypt → closes the already-opened PXE store then throws
35
+ * `EmbeddedWalletEncryptionError({ storeName: 'wallet', cause })`.
36
+ * - Any non-decrypt error during the wallet open → still closes PXE, then re-throws the original error unwrapped
37
+ * (preserves callers' existing untyped error handling for non-encryption faults).
38
+ *
39
+ * @param config - Per-store name/poolDirectory.
40
+ * @param getEncryptionKey - Returns a fresh 32-byte key per call (the buffer
41
+ * detaches on transfer, so each call must allocate).
42
+ * @param log - Logger for both stores.
43
+ * @param openStore - Internal test seam. Do not pass in production code.
44
+ */ export async function openEncryptedEmbeddedStores(config, getEncryptionKey, log, openStore = defaultOpenStore) {
45
+ const pxeStore = await openOneStore('pxe', config.pxe, getEncryptionKey, log, openStore);
46
+ try {
47
+ const walletStore = await openOneStore('wallet', config.wallet, getEncryptionKey, log, openStore);
48
+ return {
49
+ pxeStore,
50
+ walletStore
51
+ };
52
+ } catch (err) {
53
+ // Cleanup is best-effort — if close() itself throws (e.g. worker already dead), swallow it so the original error
54
+ // surfaces unobstructed.
55
+ await pxeStore.close().catch(()=>{});
56
+ throw err;
57
+ }
58
+ }
59
+ async function openOneStore(storeName, { name, poolDirectory }, getEncryptionKey, log, openStore) {
60
+ const key = await getEncryptionKey();
61
+ try {
62
+ return await openStore(log, name, poolDirectory, key);
63
+ } catch (err) {
64
+ if (err instanceof SqliteEncryptionError && err.code === 'decrypt_failed') {
65
+ throw new EmbeddedWalletEncryptionError(storeName, {
66
+ cause: err
67
+ });
68
+ }
69
+ throw err;
70
+ }
71
+ }
@@ -7,11 +7,11 @@ export declare const AccountTypes: readonly ["schnorr", "ecdsasecp256r1", "ecdsa
7
7
  export type AccountType = (typeof AccountTypes)[number];
8
8
  export declare class WalletDB {
9
9
  #private;
10
+ private store;
11
+ private userLog;
10
12
  private accounts;
11
13
  private aliases;
12
- private userLog;
13
- private constructor();
14
- static init(store: AztecAsyncKVStore, userLog: LogFn): WalletDB;
14
+ constructor(store: AztecAsyncKVStore, userLog: LogFn);
15
15
  storeAccount(address: AztecAddress, { type, secretKey, salt, alias, signingKey }: {
16
16
  type: AccountType;
17
17
  secretKey: Fr;
@@ -30,5 +30,6 @@ export declare class WalletDB {
30
30
  listAccounts(): Promise<Aliased<AztecAddress>[]>;
31
31
  listSenders(): Promise<Aliased<AztecAddress>[]>;
32
32
  deleteAccount(address: AztecAddress): Promise<void>;
33
+ close(): Promise<void>;
33
34
  }
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FsbGV0X2RiLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZW1iZWRkZWQvd2FsbGV0X2RiLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEQsT0FBTyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbkQsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQWlCLE1BQU0saUJBQWlCLENBQUM7QUFDeEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRTNELGVBQU8sTUFBTSxZQUFZLDBEQUEyRCxDQUFDO0FBQ3JGLE1BQU0sTUFBTSxXQUFXLEdBQUcsQ0FBQyxPQUFPLFlBQVksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBTXhELHFCQUFhLFFBQVE7O0lBRWpCLE9BQU8sQ0FBQyxRQUFRO0lBQ2hCLE9BQU8sQ0FBQyxPQUFPO0lBQ2YsT0FBTyxDQUFDLE9BQU87SUFIakIsT0FBTyxlQUlIO0lBRUosTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsT0FBTyxFQUFFLEtBQUssWUFJbkQ7SUFFSyxZQUFZLENBQ2hCLE9BQU8sRUFBRSxZQUFZLEVBQ3JCLEVBQ0UsSUFBSSxFQUNKLFNBQVMsRUFDVCxJQUFJLEVBQ0osS0FBSyxFQUNMLFVBQVUsRUFDWCxFQUFFO1FBQ0QsSUFBSSxFQUFFLFdBQVcsQ0FBQztRQUNsQixTQUFTLEVBQUUsRUFBRSxDQUFDO1FBQ2QsSUFBSSxFQUFFLEVBQUUsQ0FBQztRQUNULFVBQVUsRUFBRSxFQUFFLEdBQUcsTUFBTSxDQUFDO1FBQ3hCLEtBQUssRUFBRSxNQUFNLEdBQUcsU0FBUyxDQUFDO0tBQzNCLEVBQ0QsR0FBRyxHQUFFLEtBQW9CLGlCQWExQjtJQUVLLFdBQVcsQ0FBQyxPQUFPLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxHQUFFLEtBQW9CLGlCQUdoRjtJQUVLLGVBQWUsQ0FBQyxPQUFPLEVBQUUsWUFBWSxHQUFHLE1BQU07Ozs7OztPQWNuRDtJQUVLLFlBQVksSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FXckQ7SUFFSyxXQUFXLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLENBU3BEO0lBb0JLLGFBQWEsQ0FBQyxPQUFPLEVBQUUsWUFBWSxpQkFheEM7Q0FDRiJ9
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FsbGV0X2RiLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZW1iZWRkZWQvd2FsbGV0X2RiLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEQsT0FBTyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbkQsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQWlCLE1BQU0saUJBQWlCLENBQUM7QUFDeEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRTNELGVBQU8sTUFBTSxZQUFZLDBEQUEyRCxDQUFDO0FBQ3JGLE1BQU0sTUFBTSxXQUFXLEdBQUcsQ0FBQyxPQUFPLFlBQVksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBTXhELHFCQUFhLFFBQVE7O0lBS2pCLE9BQU8sQ0FBQyxLQUFLO0lBQ2IsT0FBTyxDQUFDLE9BQU87SUFMakIsT0FBTyxDQUFDLFFBQVEsQ0FBZ0M7SUFDaEQsT0FBTyxDQUFDLE9BQU8sQ0FBZ0M7SUFFL0MsWUFDVSxLQUFLLEVBQUUsaUJBQWlCLEVBQ3hCLE9BQU8sRUFBRSxLQUFLLEVBSXZCO0lBRUssWUFBWSxDQUNoQixPQUFPLEVBQUUsWUFBWSxFQUNyQixFQUNFLElBQUksRUFDSixTQUFTLEVBQ1QsSUFBSSxFQUNKLEtBQUssRUFDTCxVQUFVLEVBQ1gsRUFBRTtRQUNELElBQUksRUFBRSxXQUFXLENBQUM7UUFDbEIsU0FBUyxFQUFFLEVBQUUsQ0FBQztRQUNkLElBQUksRUFBRSxFQUFFLENBQUM7UUFDVCxVQUFVLEVBQUUsRUFBRSxHQUFHLE1BQU0sQ0FBQztRQUN4QixLQUFLLEVBQUUsTUFBTSxHQUFHLFNBQVMsQ0FBQztLQUMzQixFQUNELEdBQUcsR0FBRSxLQUFvQixpQkFhMUI7SUFFSyxXQUFXLENBQUMsT0FBTyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEdBQUcsR0FBRSxLQUFvQixpQkFHaEY7SUFFSyxlQUFlLENBQUMsT0FBTyxFQUFFLFlBQVksR0FBRyxNQUFNOzs7Ozs7T0FjbkQ7SUFFSyxZQUFZLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLENBV3JEO0lBRUssV0FBVyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQVNwRDtJQW9CSyxhQUFhLENBQUMsT0FBTyxFQUFFLFlBQVksaUJBYXhDO0lBRUssS0FBSyxrQkFFVjtDQUNGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"wallet_db.d.ts","sourceRoot":"","sources":["../../src/embedded/wallet_db.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACxD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,KAAK,EAAE,iBAAiB,EAAiB,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAE3D,eAAO,MAAM,YAAY,0DAA2D,CAAC;AACrF,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AAMxD,qBAAa,QAAQ;;IAEjB,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,OAAO;IAHjB,OAAO,eAIH;IAEJ,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,iBAAiB,EAAE,OAAO,EAAE,KAAK,YAInD;IAEK,YAAY,CAChB,OAAO,EAAE,YAAY,EACrB,EACE,IAAI,EACJ,SAAS,EACT,IAAI,EACJ,KAAK,EACL,UAAU,EACX,EAAE;QACD,IAAI,EAAE,WAAW,CAAC;QAClB,SAAS,EAAE,EAAE,CAAC;QACd,IAAI,EAAE,EAAE,CAAC;QACT,UAAU,EAAE,EAAE,GAAG,MAAM,CAAC;QACxB,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;KAC3B,EACD,GAAG,GAAE,KAAoB,iBAa1B;IAEK,WAAW,CAAC,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,GAAE,KAAoB,iBAGhF;IAEK,eAAe,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM;;;;;;OAcnD;IAEK,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,CAWrD;IAEK,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,CASpD;IAoBK,aAAa,CAAC,OAAO,EAAE,YAAY,iBAaxC;CACF"}
1
+ {"version":3,"file":"wallet_db.d.ts","sourceRoot":"","sources":["../../src/embedded/wallet_db.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACxD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,KAAK,EAAE,iBAAiB,EAAiB,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAE3D,eAAO,MAAM,YAAY,0DAA2D,CAAC;AACrF,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AAMxD,qBAAa,QAAQ;;IAKjB,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,OAAO;IALjB,OAAO,CAAC,QAAQ,CAAgC;IAChD,OAAO,CAAC,OAAO,CAAgC;IAE/C,YACU,KAAK,EAAE,iBAAiB,EACxB,OAAO,EAAE,KAAK,EAIvB;IAEK,YAAY,CAChB,OAAO,EAAE,YAAY,EACrB,EACE,IAAI,EACJ,SAAS,EACT,IAAI,EACJ,KAAK,EACL,UAAU,EACX,EAAE;QACD,IAAI,EAAE,WAAW,CAAC;QAClB,SAAS,EAAE,EAAE,CAAC;QACd,IAAI,EAAE,EAAE,CAAC;QACT,UAAU,EAAE,EAAE,GAAG,MAAM,CAAC;QACxB,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;KAC3B,EACD,GAAG,GAAE,KAAoB,iBAa1B;IAEK,WAAW,CAAC,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,GAAE,KAAoB,iBAGhF;IAEK,eAAe,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM;;;;;;OAcnD;IAEK,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,CAWrD;IAEK,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,CASpD;IAoBK,aAAa,CAAC,OAAO,EAAE,YAAY,iBAaxC;IAEK,KAAK,kBAEV;CACF"}
@@ -9,18 +9,15 @@ function accountKey(field, address) {
9
9
  return `${field}:${address.toString()}`;
10
10
  }
11
11
  export class WalletDB {
12
+ store;
13
+ userLog;
12
14
  accounts;
13
15
  aliases;
14
- userLog;
15
- constructor(accounts, aliases, userLog){
16
- this.accounts = accounts;
17
- this.aliases = aliases;
16
+ constructor(store, userLog){
17
+ this.store = store;
18
18
  this.userLog = userLog;
19
- }
20
- static init(store, userLog) {
21
- const accounts = store.openMap('accounts');
22
- const aliases = store.openMap('aliases');
23
- return new WalletDB(accounts, aliases, userLog);
19
+ this.accounts = store.openMap('accounts');
20
+ this.aliases = store.openMap('aliases');
24
21
  }
25
22
  async storeAccount(address, { type, secretKey, salt, alias, signingKey }, log = this.userLog) {
26
23
  if (alias) {
@@ -117,4 +114,7 @@ export class WalletDB {
117
114
  await this.aliases.delete(`accounts:${alias}`);
118
115
  }
119
116
  }
117
+ async close() {
118
+ await this.store.close();
119
+ }
120
120
  }
package/dest/testing.d.ts CHANGED
@@ -9,4 +9,4 @@ interface WalletWithSchnorrAccounts {
9
9
  export declare function deployFundedSchnorrAccounts(wallet: WalletWithSchnorrAccounts, accountsData: InitialAccountData[], waitOptions?: WaitOpts): Promise<AccountManager[]>;
10
10
  export declare function registerInitialLocalNetworkAccountsInWallet(wallet: WalletWithSchnorrAccounts): Promise<AztecAddress[]>;
11
11
  export {};
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdGluZy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3Rlc3RpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVsRSxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRCxPQUFPLEtBQUssRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM3RCxPQUFPLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDN0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRTNELFVBQVUseUJBQXlCO0lBQ2pDLG9CQUFvQixDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxVQUFVLENBQUMsRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQztDQUN0RztBQUVELHdCQUFzQiwyQkFBMkIsQ0FDL0MsTUFBTSxFQUFFLHlCQUF5QixFQUNqQyxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsRUFDbEMsV0FBVyxDQUFDLEVBQUUsUUFBUSw2QkFnQnZCO0FBRUQsd0JBQXNCLDJDQUEyQyxDQUMvRCxNQUFNLEVBQUUseUJBQXlCLEdBQ2hDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQU96QiJ9
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdGluZy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3Rlc3RpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUdsRSxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRCxPQUFPLEtBQUssRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM3RCxPQUFPLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDN0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRTNELFVBQVUseUJBQXlCO0lBQ2pDLG9CQUFvQixDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxVQUFVLENBQUMsRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQztDQUN0RztBQUVELHdCQUFzQiwyQkFBMkIsQ0FDL0MsTUFBTSxFQUFFLHlCQUF5QixFQUNqQyxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsRUFDbEMsV0FBVyxDQUFDLEVBQUUsUUFBUSw2QkFnQnZCO0FBRUQsd0JBQXNCLDJDQUEyQyxDQUMvRCxNQUFNLEVBQUUseUJBQXlCLEdBQ2hDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQU96QiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAElE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAE3D,UAAU,yBAAyB;IACjC,oBAAoB,CAAC,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;CACtG;AAED,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,yBAAyB,EACjC,YAAY,EAAE,kBAAkB,EAAE,EAClC,WAAW,CAAC,EAAE,QAAQ,6BAgBvB;AAED,wBAAsB,2CAA2C,CAC/D,MAAM,EAAE,yBAAyB,GAChC,OAAO,CAAC,YAAY,EAAE,CAAC,CAOzB"}
1
+ {"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAGlE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAE3D,UAAU,yBAAyB;IACjC,oBAAoB,CAAC,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;CACtG;AAED,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,yBAAyB,EACjC,YAAY,EAAE,kBAAkB,EAAE,EAClC,WAAW,CAAC,EAAE,QAAQ,6BAgBvB;AAED,wBAAsB,2CAA2C,CAC/D,MAAM,EAAE,yBAAyB,GAChC,OAAO,CAAC,YAAY,EAAE,CAAC,CAOzB"}
package/dest/testing.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { getInitialTestAccountsData } from '@aztec/accounts/testing/lazy';
2
- import { AztecAddress } from '@aztec/stdlib/aztec-address';
2
+ import { NO_FROM } from '@aztec/aztec.js/account';
3
3
  export async function deployFundedSchnorrAccounts(wallet, accountsData, waitOptions) {
4
4
  const accountManagers = [];
5
5
  // Serial due to https://github.com/AztecProtocol/aztec-packages/issues/12045
@@ -8,7 +8,7 @@ export async function deployFundedSchnorrAccounts(wallet, accountsData, waitOpti
8
8
  const accountManager = await wallet.createSchnorrAccount(secret, salt, signingKey);
9
9
  const deployMethod = await accountManager.getDeployMethod();
10
10
  await deployMethod.send({
11
- from: AztecAddress.ZERO,
11
+ from: NO_FROM,
12
12
  skipClassPublication: i !== 0,
13
13
  wait: waitOptions
14
14
  });
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@aztec/wallets",
3
3
  "homepage": "https://github.com/AztecProtocol/aztec-packages/tree/master/yarn-project/wallets",
4
- "version": "0.0.1-commit.e2b2873ed",
4
+ "version": "0.0.1-commit.e57c76e",
5
5
  "type": "module",
6
6
  "exports": {
7
7
  "./embedded": {
@@ -14,6 +14,7 @@
14
14
  "default": "./dest/embedded/entrypoints/node.js"
15
15
  }
16
16
  },
17
+ "./embedded/store-encryption": "./dest/embedded/store_encryption.js",
17
18
  "./testing": "./dest/testing.js"
18
19
  },
19
20
  "scripts": {
@@ -27,14 +28,16 @@
27
28
  "../package.common.json"
28
29
  ],
29
30
  "dependencies": {
30
- "@aztec/accounts": "0.0.1-commit.e2b2873ed",
31
- "@aztec/aztec.js": "0.0.1-commit.e2b2873ed",
32
- "@aztec/entrypoints": "0.0.1-commit.e2b2873ed",
33
- "@aztec/foundation": "0.0.1-commit.e2b2873ed",
34
- "@aztec/kv-store": "0.0.1-commit.e2b2873ed",
35
- "@aztec/pxe": "0.0.1-commit.e2b2873ed",
36
- "@aztec/stdlib": "0.0.1-commit.e2b2873ed",
37
- "@aztec/wallet-sdk": "0.0.1-commit.e2b2873ed"
31
+ "@aztec/accounts": "0.0.1-commit.e57c76e",
32
+ "@aztec/aztec.js": "0.0.1-commit.e57c76e",
33
+ "@aztec/entrypoints": "0.0.1-commit.e57c76e",
34
+ "@aztec/foundation": "0.0.1-commit.e57c76e",
35
+ "@aztec/kv-store": "0.0.1-commit.e57c76e",
36
+ "@aztec/protocol-contracts": "0.0.1-commit.e57c76e",
37
+ "@aztec/pxe": "0.0.1-commit.e57c76e",
38
+ "@aztec/standard-contracts": "0.0.1-commit.e57c76e",
39
+ "@aztec/stdlib": "0.0.1-commit.e57c76e",
40
+ "@aztec/wallet-sdk": "0.0.1-commit.e57c76e"
38
41
  },
39
42
  "devDependencies": {
40
43
  "@jest/globals": "^30.0.0",
@@ -43,6 +46,15 @@
43
46
  "ts-node": "^10.9.1",
44
47
  "typescript": "^5.3.3"
45
48
  },
49
+ "typedocOptions": {
50
+ "entryPoints": [
51
+ "./src/embedded/entrypoints/browser.ts",
52
+ "./src/embedded/entrypoints/node.ts",
53
+ "./src/testing.ts"
54
+ ],
55
+ "name": "Wallets",
56
+ "tsconfig": "./tsconfig.json"
57
+ },
46
58
  "files": [
47
59
  "dest",
48
60
  "src",
@@ -1,11 +1,13 @@
1
1
  import { EcdsaKAccountContract, EcdsaRAccountContract } from '@aztec/accounts/ecdsa';
2
2
  import { SchnorrAccountContract } from '@aztec/accounts/schnorr';
3
- import { StubAccountContractArtifact, createStubAccount } from '@aztec/accounts/stub';
3
+ import { StubEcdsaAccountContractArtifact, createStubEcdsaAccount } from '@aztec/accounts/stub/ecdsa';
4
+ import { StubSchnorrAccountContractArtifact, createStubSchnorrAccount } from '@aztec/accounts/stub/schnorr';
4
5
  import type { Account, AccountContract } from '@aztec/aztec.js/account';
5
6
  import type { Fq } from '@aztec/foundation/curves/bn254';
6
7
  import type { ContractArtifact } from '@aztec/stdlib/abi';
7
8
  import type { CompleteAddress } from '@aztec/stdlib/contract';
8
9
 
10
+ import type { AccountType } from '../wallet_db.js';
9
11
  import type { AccountContractsProvider } from './types.js';
10
12
 
11
13
  /**
@@ -25,11 +27,11 @@ export class BundleAccountContractsProvider implements AccountContractsProvider
25
27
  return Promise.resolve(new EcdsaKAccountContract(signingKey));
26
28
  }
27
29
 
28
- getStubAccountContractArtifact(): Promise<ContractArtifact> {
29
- return Promise.resolve(StubAccountContractArtifact);
30
+ getStubAccountContractArtifact(type: AccountType): Promise<ContractArtifact> {
31
+ return Promise.resolve(type === 'schnorr' ? StubSchnorrAccountContractArtifact : StubEcdsaAccountContractArtifact);
30
32
  }
31
33
 
32
- createStubAccount(address: CompleteAddress): Promise<Account> {
33
- return Promise.resolve(createStubAccount(address));
34
+ createStubAccount(address: CompleteAddress, type: AccountType): Promise<Account> {
35
+ return Promise.resolve(type === 'schnorr' ? createStubSchnorrAccount(address) : createStubEcdsaAccount(address));
34
36
  }
35
37
  }
@@ -3,6 +3,7 @@ import type { Fq } from '@aztec/foundation/curves/bn254';
3
3
  import type { ContractArtifact } from '@aztec/stdlib/abi';
4
4
  import type { CompleteAddress } from '@aztec/stdlib/contract';
5
5
 
6
+ import type { AccountType } from '../wallet_db.js';
6
7
  import type { AccountContractsProvider } from './types.js';
7
8
 
8
9
  /**
@@ -25,13 +26,23 @@ export class LazyAccountContractsProvider implements AccountContractsProvider {
25
26
  return new EcdsaKAccountContract(signingKey);
26
27
  }
27
28
 
28
- async getStubAccountContractArtifact(): Promise<ContractArtifact> {
29
- const { getStubAccountContractArtifact } = await import('@aztec/accounts/stub/lazy');
30
- return getStubAccountContractArtifact();
29
+ async getStubAccountContractArtifact(type: AccountType): Promise<ContractArtifact> {
30
+ if (type === 'schnorr') {
31
+ const { getStubSchnorrAccountContractArtifact } = await import('@aztec/accounts/stub/schnorr/lazy');
32
+ return getStubSchnorrAccountContractArtifact();
33
+ } else {
34
+ const { getStubEcdsaAccountContractArtifact } = await import('@aztec/accounts/stub/ecdsa/lazy');
35
+ return getStubEcdsaAccountContractArtifact();
36
+ }
31
37
  }
32
38
 
33
- async createStubAccount(address: CompleteAddress): Promise<Account> {
34
- const { createStubAccount } = await import('@aztec/accounts/stub/lazy');
35
- return createStubAccount(address);
39
+ async createStubAccount(address: CompleteAddress, type: AccountType): Promise<Account> {
40
+ if (type === 'schnorr') {
41
+ const { createStubSchnorrAccount } = await import('@aztec/accounts/stub/schnorr/lazy');
42
+ return createStubSchnorrAccount(address);
43
+ } else {
44
+ const { createStubEcdsaAccount } = await import('@aztec/accounts/stub/ecdsa/lazy');
45
+ return createStubEcdsaAccount(address);
46
+ }
36
47
  }
37
48
  }