@aztec/wallets 5.0.0 → 5.1.0-nightly.20260716
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dest/embedded/entrypoints/browser.d.ts +1 -1
- package/dest/embedded/entrypoints/browser.d.ts.map +1 -1
- package/dest/embedded/entrypoints/browser.js +17 -10
- package/dest/embedded/entrypoints/node.d.ts +1 -1
- package/dest/embedded/entrypoints/node.d.ts.map +1 -1
- package/dest/embedded/entrypoints/node.js +20 -10
- package/dest/embedded/wallet_db.d.ts +3 -1
- package/dest/embedded/wallet_db.d.ts.map +1 -1
- package/dest/embedded/wallet_db.js +1 -0
- package/package.json +11 -11
- package/src/embedded/entrypoints/browser.ts +19 -19
- package/src/embedded/entrypoints/node.ts +26 -25
- package/src/embedded/wallet_db.ts +3 -0
|
@@ -11,4 +11,4 @@ export { BrowserEmbeddedWallet as EmbeddedWallet };
|
|
|
11
11
|
export type { EmbeddedWalletOptions, EmbeddedWalletPXEOptions } from '../embedded_wallet.js';
|
|
12
12
|
export { WalletDB } from '../wallet_db.js';
|
|
13
13
|
export type { AccountType } from '../wallet_db.js';
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJvd3Nlci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VtYmVkZGVkL2VudHJ5cG9pbnRzL2Jyb3dzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssU0FBUyxFQUF5QixNQUFNLHNCQUFzQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUVsRSxPQUFPLEVBQUUsS0FBSyxHQUFHLEVBQXdELE1BQU0sd0JBQXdCLENBQUM7QUFPeEcsT0FBTyxLQUFLLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUN2RixPQUFPLEVBQUUsY0FBYyxFQUFFLEtBQUsscUJBQXFCLEVBQW1CLE1BQU0sdUJBQXVCLENBQUM7QUFDcEcsT0FBTyxFQUE4QixRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV2RSxxQkFBYSxxQkFBc0IsU0FBUSxjQUFjO0lBQ3ZELE9BQWEsTUFBTSxDQUFDLENBQUMsU0FBUyxxQkFBcUIsR0FBRyxxQkFBcUIsRUFDekUsSUFBSSxFQUFFLEtBQ0osR0FBRyxFQUFFLEdBQUcsRUFDUixTQUFTLEVBQUUsU0FBUyxFQUNwQixRQUFRLEVBQUUsUUFBUSxFQUNsQixnQkFBZ0IsRUFBRSx3QkFBd0IsRUFDMUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxLQUNULENBQUMsRUFDTixTQUFTLEVBQUUsTUFBTSxHQUFHLFNBQVMsRUFDN0IsT0FBTyxHQUFFLHFCQUEwQixHQUNsQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBNERaO0NBQ0Y7QUFFRCxPQUFPLEVBQUUscUJBQXFCLElBQUksY0FBYyxFQUFFLENBQUM7QUFDbkQsWUFBWSxFQUFFLHFCQUFxQixFQUFFLHdCQUF3QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDN0YsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLFlBQVksRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQyJ9
|
|
@@ -1 +1 @@
|
|
|
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,
|
|
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,EAAwD,MAAM,wBAAwB,CAAC;AAOxG,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AACvF,OAAO,EAAE,cAAc,EAAE,KAAK,qBAAqB,EAAmB,MAAM,uBAAuB,CAAC;AACpG,OAAO,EAA8B,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEvE,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,CA4DZ;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"}
|
|
@@ -1,19 +1,18 @@
|
|
|
1
1
|
import { createAztecNodeClient } from '@aztec/aztec.js/node';
|
|
2
2
|
import { createLogger } from '@aztec/foundation/log';
|
|
3
|
-
import {
|
|
4
|
-
import { createPXE } from '@aztec/pxe/client/lazy';
|
|
3
|
+
import { openTmpStore } from '@aztec/kv-store/sqlite-opfs';
|
|
4
|
+
import { createPXE, openBrowserStore } from '@aztec/pxe/client/lazy';
|
|
5
5
|
import { getPXEConfig } from '@aztec/pxe/config';
|
|
6
6
|
import { getStandardAuthRegistry } from '@aztec/standard-contracts/auth-registry/lazy';
|
|
7
7
|
import { getStandardHandshakeRegistry } from '@aztec/standard-contracts/handshake-registry/lazy';
|
|
8
8
|
import { getStandardMultiCallEntrypoint } from '@aztec/standard-contracts/multi-call-entrypoint/lazy';
|
|
9
9
|
import { LazyAccountContractsProvider } from '../account-contract-providers/lazy.js';
|
|
10
10
|
import { EmbeddedWallet, splitPxeOptions } from '../embedded_wallet.js';
|
|
11
|
-
import { WalletDB } from '../wallet_db.js';
|
|
11
|
+
import { WALLET_DATA_SCHEMA_VERSION, WalletDB } from '../wallet_db.js';
|
|
12
12
|
export class BrowserEmbeddedWallet extends EmbeddedWallet {
|
|
13
13
|
static async create(nodeOrUrl, options = {}) {
|
|
14
14
|
const rootLogger = options.logger ?? createLogger('embedded-wallet');
|
|
15
15
|
const aztecNode = typeof nodeOrUrl === 'string' ? createAztecNodeClient(nodeOrUrl) : nodeOrUrl;
|
|
16
|
-
const l1Contracts = await aztecNode.getL1ContractAddresses();
|
|
17
16
|
// Support both the new unified `pxe` option and the deprecated `pxeConfig`/`pxeOptions`.
|
|
18
17
|
const { config: pxeConfigFromPxe, creation: pxeCreationFromPxe } = splitPxeOptions(options.pxe);
|
|
19
18
|
const mergedConfigOverrides = {
|
|
@@ -26,7 +25,8 @@ export class BrowserEmbeddedWallet extends EmbeddedWallet {
|
|
|
26
25
|
};
|
|
27
26
|
const pxeConfig = Object.assign(getPXEConfig(), {
|
|
28
27
|
proverEnabled: mergedConfigOverrides.proverEnabled,
|
|
29
|
-
|
|
28
|
+
// Unused in the browser: sqlite-opfs keys stores by name, not directory.
|
|
29
|
+
dataDirectory: 'pxe_data',
|
|
30
30
|
autoSync: false,
|
|
31
31
|
...mergedConfigOverrides
|
|
32
32
|
});
|
|
@@ -50,11 +50,18 @@ export class BrowserEmbeddedWallet extends EmbeddedWallet {
|
|
|
50
50
|
}
|
|
51
51
|
};
|
|
52
52
|
const pxe = await createPXE(aztecNode, pxeConfig, pxeOptions);
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
53
|
+
let walletDBStore = options.walletDb?.store;
|
|
54
|
+
if (!walletDBStore) {
|
|
55
|
+
if (options.ephemeral) {
|
|
56
|
+
walletDBStore = await openTmpStore(true);
|
|
57
|
+
} else {
|
|
58
|
+
const { l1ChainId, l1ContractAddresses } = await aztecNode.getNodeInfo();
|
|
59
|
+
walletDBStore = await openBrowserStore('wallet_data', WALLET_DATA_SCHEMA_VERSION, {
|
|
60
|
+
l1ChainId,
|
|
61
|
+
rollupAddress: l1ContractAddresses.rollupAddress
|
|
62
|
+
}, rootLogger.createChild('wallet:data'));
|
|
63
|
+
}
|
|
64
|
+
}
|
|
58
65
|
const walletDB = new WalletDB(walletDBStore, rootLogger.createChild('wallet:db').info);
|
|
59
66
|
const wallet = new this(pxe, aztecNode, walletDB, new LazyAccountContractsProvider(), rootLogger);
|
|
60
67
|
await wallet.initStubClasses();
|
|
@@ -11,4 +11,4 @@ export { NodeEmbeddedWallet as EmbeddedWallet };
|
|
|
11
11
|
export type { EmbeddedWalletOptions, EmbeddedWalletPXEOptions } from '../embedded_wallet.js';
|
|
12
12
|
export { WalletDB } from '../wallet_db.js';
|
|
13
13
|
export type { AccountType } from '../wallet_db.js';
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VtYmVkZGVkL2VudHJ5cG9pbnRzL25vZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFnQixNQUFNLHVCQUF1QixDQUFDO0FBR2xFLE9BQU8sRUFBRSxLQUFLLEdBQUcsRUFBaUQsTUFBTSxtQkFBbUIsQ0FBQztBQUk1RixPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUdqRSxPQUFPLEtBQUssRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxjQUFjLEVBQUUsS0FBSyxxQkFBcUIsRUFBbUIsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRyxPQUFPLEVBQThCLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBSXZFLHFCQUFhLGtCQUFtQixTQUFRLGNBQWM7SUFDcEQsT0FBYSxNQUFNLENBQUMsQ0FBQyxTQUFTLGtCQUFrQixHQUFHLGtCQUFrQixFQUNuRSxJQUFJLEVBQUUsS0FDSixHQUFHLEVBQUUsR0FBRyxFQUNSLFNBQVMsRUFBRSxTQUFTLEVBQ3BCLFFBQVEsRUFBRSxRQUFRLEVBQ2xCLGdCQUFnQixFQUFFLHdCQUF3QixFQUMxQyxHQUFHLENBQUMsRUFBRSxNQUFNLEtBQ1QsQ0FBQyxFQUNOLFNBQVMsRUFBRSxNQUFNLEdBQUcsU0FBUyxFQUM3QixPQUFPLEdBQUUscUJBQTBCLEdBQ2xDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FpRVo7Q0FDRjtBQUVELE9BQU8sRUFBRSxrQkFBa0IsSUFBSSxjQUFjLEVBQUUsQ0FBQztBQUNoRCxZQUFZLEVBQUUscUJBQXFCLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM3RixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsWUFBWSxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDIn0=
|
|
@@ -1 +1 @@
|
|
|
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,
|
|
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,EAAiD,MAAM,mBAAmB,CAAC;AAI5F,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,EAA8B,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAIvE,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,CAiEZ;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,19 +1,19 @@
|
|
|
1
1
|
import { createAztecNodeClient } from '@aztec/aztec.js/node';
|
|
2
2
|
import { createLogger } from '@aztec/foundation/log';
|
|
3
|
-
import {
|
|
3
|
+
import { openTmpStore } from '@aztec/kv-store/lmdb-v2';
|
|
4
4
|
import { getPXEConfig } from '@aztec/pxe/config';
|
|
5
|
-
import { createPXE } from '@aztec/pxe/server';
|
|
5
|
+
import { createPXE, openStore } from '@aztec/pxe/server';
|
|
6
6
|
import { getStandardAuthRegistry } from '@aztec/standard-contracts/auth-registry';
|
|
7
7
|
import { getStandardHandshakeRegistry } from '@aztec/standard-contracts/handshake-registry';
|
|
8
8
|
import { getStandardMultiCallEntrypoint } from '@aztec/standard-contracts/multi-call-entrypoint';
|
|
9
9
|
import { BundleAccountContractsProvider } from '../account-contract-providers/bundle.js';
|
|
10
10
|
import { EmbeddedWallet, splitPxeOptions } from '../embedded_wallet.js';
|
|
11
|
-
import { WalletDB } from '../wallet_db.js';
|
|
11
|
+
import { WALLET_DATA_SCHEMA_VERSION, WalletDB } from '../wallet_db.js';
|
|
12
|
+
const DEFAULT_WALLET_DATA_DIRECTORY = 'aztec-wallet-data';
|
|
12
13
|
export class NodeEmbeddedWallet extends EmbeddedWallet {
|
|
13
14
|
static async create(nodeOrUrl, options = {}) {
|
|
14
15
|
const rootLogger = options.logger ?? createLogger('embedded-wallet');
|
|
15
16
|
const aztecNode = typeof nodeOrUrl === 'string' ? createAztecNodeClient(nodeOrUrl) : nodeOrUrl;
|
|
16
|
-
const l1Contracts = await aztecNode.getL1ContractAddresses();
|
|
17
17
|
// Support both the new unified `pxe` option and the deprecated `pxeConfig`/`pxeOptions`.
|
|
18
18
|
const { config: pxeConfigFromPxe, creation: pxeCreationFromPxe } = splitPxeOptions(options.pxe);
|
|
19
19
|
const mergedConfigOverrides = {
|
|
@@ -26,7 +26,7 @@ export class NodeEmbeddedWallet extends EmbeddedWallet {
|
|
|
26
26
|
};
|
|
27
27
|
const pxeConfig = Object.assign(getPXEConfig(), {
|
|
28
28
|
proverEnabled: mergedConfigOverrides.proverEnabled,
|
|
29
|
-
dataDirectory:
|
|
29
|
+
dataDirectory: DEFAULT_WALLET_DATA_DIRECTORY,
|
|
30
30
|
autoSync: false,
|
|
31
31
|
...mergedConfigOverrides
|
|
32
32
|
});
|
|
@@ -50,11 +50,21 @@ export class NodeEmbeddedWallet extends EmbeddedWallet {
|
|
|
50
50
|
}
|
|
51
51
|
};
|
|
52
52
|
const pxe = await createPXE(aztecNode, pxeConfig, pxeOptions);
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
53
|
+
let walletDBStore = options.walletDb?.store;
|
|
54
|
+
if (!walletDBStore) {
|
|
55
|
+
const bindings = rootLogger.createChild('wallet:data').getBindings();
|
|
56
|
+
if (options.ephemeral) {
|
|
57
|
+
walletDBStore = await openTmpStore('wallet_data', true, undefined, undefined, bindings);
|
|
58
|
+
} else {
|
|
59
|
+
const { l1ChainId, l1ContractAddresses } = await aztecNode.getNodeInfo();
|
|
60
|
+
walletDBStore = await openStore('wallet_data', WALLET_DATA_SCHEMA_VERSION, {
|
|
61
|
+
dataDirectory: pxeConfig.dataDirectory ?? DEFAULT_WALLET_DATA_DIRECTORY,
|
|
62
|
+
dataStoreMapSizeKb: pxeConfig.dataStoreMapSizeKb,
|
|
63
|
+
l1ChainId,
|
|
64
|
+
rollupAddress: l1ContractAddresses.rollupAddress
|
|
65
|
+
}, bindings);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
58
68
|
const walletDB = new WalletDB(walletDBStore, rootLogger.createChild('wallet:db').info);
|
|
59
69
|
const wallet = new this(pxe, aztecNode, walletDB, new BundleAccountContractsProvider(), rootLogger);
|
|
60
70
|
await wallet.initStubClasses();
|
|
@@ -5,6 +5,8 @@ import type { AztecAsyncKVStore } from '@aztec/kv-store';
|
|
|
5
5
|
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
6
6
|
export declare const AccountTypes: readonly ["schnorr", "schnorr_initializerless", "ecdsasecp256r1", "ecdsasecp256k1"];
|
|
7
7
|
export type AccountType = (typeof AccountTypes)[number];
|
|
8
|
+
/** Bump when the WalletDB layout changes; a new version selects a fresh store, leaving the old one intact. */
|
|
9
|
+
export declare const WALLET_DATA_SCHEMA_VERSION = 1;
|
|
8
10
|
export declare class WalletDB {
|
|
9
11
|
#private;
|
|
10
12
|
private store;
|
|
@@ -32,4 +34,4 @@ export declare class WalletDB {
|
|
|
32
34
|
deleteAccount(address: AztecAddress): Promise<void>;
|
|
33
35
|
close(): Promise<void>;
|
|
34
36
|
}
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FsbGV0X2RiLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZW1iZWRkZWQvd2FsbGV0X2RiLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEQsT0FBTyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbkQsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQWlCLE1BQU0saUJBQWlCLENBQUM7QUFDeEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRTNELGVBQU8sTUFBTSxZQUFZLHFGQUFzRixDQUFDO0FBQ2hILE1BQU0sTUFBTSxXQUFXLEdBQUcsQ0FBQyxPQUFPLFlBQVksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBTXhELDhHQUE4RztBQUM5RyxlQUFPLE1BQU0sMEJBQTBCLElBQUksQ0FBQztBQUU1QyxxQkFBYSxRQUFROztJQUtqQixPQUFPLENBQUMsS0FBSztJQUNiLE9BQU8sQ0FBQyxPQUFPO0lBTGpCLE9BQU8sQ0FBQyxRQUFRLENBQWdDO0lBQ2hELE9BQU8sQ0FBQyxPQUFPLENBQWdDO0lBRS9DLFlBQ1UsS0FBSyxFQUFFLGlCQUFpQixFQUN4QixPQUFPLEVBQUUsS0FBSyxFQUl2QjtJQUVLLFlBQVksQ0FDaEIsT0FBTyxFQUFFLFlBQVksRUFDckIsRUFDRSxJQUFJLEVBQ0osU0FBUyxFQUNULElBQUksRUFDSixLQUFLLEVBQ0wsVUFBVSxFQUNYLEVBQUU7UUFDRCxJQUFJLEVBQUUsV0FBVyxDQUFDO1FBQ2xCLFNBQVMsRUFBRSxFQUFFLENBQUM7UUFDZCxJQUFJLEVBQUUsRUFBRSxDQUFDO1FBQ1QsVUFBVSxFQUFFLEVBQUUsR0FBRyxNQUFNLENBQUM7UUFDeEIsS0FBSyxFQUFFLE1BQU0sR0FBRyxTQUFTLENBQUM7S0FDM0IsRUFDRCxHQUFHLEdBQUUsS0FBb0IsaUJBYTFCO0lBRUssV0FBVyxDQUFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxHQUFHLEdBQUUsS0FBb0IsaUJBR2hGO0lBRUssZUFBZSxDQUFDLE9BQU8sRUFBRSxZQUFZLEdBQUcsTUFBTTs7Ozs7O09BY25EO0lBRUssWUFBWSxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQVdyRDtJQUVLLFdBQVcsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FTcEQ7SUFvQkssYUFBYSxDQUFDLE9BQU8sRUFBRSxZQUFZLGlCQWF4QztJQUVLLEtBQUssa0JBRVY7Q0FDRiJ9
|
|
@@ -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,qFAAsF,CAAC;AAChH,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"}
|
|
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,qFAAsF,CAAC;AAChH,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AAMxD,8GAA8G;AAC9G,eAAO,MAAM,0BAA0B,IAAI,CAAC;AAE5C,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,6 +9,7 @@ export const AccountTypes = [
|
|
|
9
9
|
function accountKey(field, address) {
|
|
10
10
|
return `${field}:${address.toString()}`;
|
|
11
11
|
}
|
|
12
|
+
/** Bump when the WalletDB layout changes; a new version selects a fresh store, leaving the old one intact. */ export const WALLET_DATA_SCHEMA_VERSION = 1;
|
|
12
13
|
export class WalletDB {
|
|
13
14
|
store;
|
|
14
15
|
userLog;
|
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": "5.0.
|
|
4
|
+
"version": "5.1.0-nightly.20260716",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
7
7
|
"./embedded": {
|
|
@@ -28,16 +28,16 @@
|
|
|
28
28
|
"../package.common.json"
|
|
29
29
|
],
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"@aztec/accounts": "5.0.
|
|
32
|
-
"@aztec/aztec.js": "5.0.
|
|
33
|
-
"@aztec/entrypoints": "5.0.
|
|
34
|
-
"@aztec/foundation": "5.0.
|
|
35
|
-
"@aztec/kv-store": "5.0.
|
|
36
|
-
"@aztec/protocol-contracts": "5.0.
|
|
37
|
-
"@aztec/pxe": "5.0.
|
|
38
|
-
"@aztec/standard-contracts": "5.0.
|
|
39
|
-
"@aztec/stdlib": "5.0.
|
|
40
|
-
"@aztec/wallet-sdk": "5.0.
|
|
31
|
+
"@aztec/accounts": "5.1.0-nightly.20260716",
|
|
32
|
+
"@aztec/aztec.js": "5.1.0-nightly.20260716",
|
|
33
|
+
"@aztec/entrypoints": "5.1.0-nightly.20260716",
|
|
34
|
+
"@aztec/foundation": "5.1.0-nightly.20260716",
|
|
35
|
+
"@aztec/kv-store": "5.1.0-nightly.20260716",
|
|
36
|
+
"@aztec/protocol-contracts": "5.1.0-nightly.20260716",
|
|
37
|
+
"@aztec/pxe": "5.1.0-nightly.20260716",
|
|
38
|
+
"@aztec/standard-contracts": "5.1.0-nightly.20260716",
|
|
39
|
+
"@aztec/stdlib": "5.1.0-nightly.20260716",
|
|
40
|
+
"@aztec/wallet-sdk": "5.1.0-nightly.20260716"
|
|
41
41
|
},
|
|
42
42
|
"devDependencies": {
|
|
43
43
|
"@jest/globals": "^30.0.0",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type AztecNode, createAztecNodeClient } from '@aztec/aztec.js/node';
|
|
2
2
|
import { type Logger, createLogger } from '@aztec/foundation/log';
|
|
3
|
-
import {
|
|
4
|
-
import { type PXE, type PXECreationOptions, createPXE } from '@aztec/pxe/client/lazy';
|
|
3
|
+
import { openTmpStore } from '@aztec/kv-store/sqlite-opfs';
|
|
4
|
+
import { type PXE, type PXECreationOptions, createPXE, openBrowserStore } from '@aztec/pxe/client/lazy';
|
|
5
5
|
import { type PXEConfig, getPXEConfig } from '@aztec/pxe/config';
|
|
6
6
|
import { getStandardAuthRegistry } from '@aztec/standard-contracts/auth-registry/lazy';
|
|
7
7
|
import { getStandardHandshakeRegistry } from '@aztec/standard-contracts/handshake-registry/lazy';
|
|
@@ -10,7 +10,7 @@ import { getStandardMultiCallEntrypoint } from '@aztec/standard-contracts/multi-
|
|
|
10
10
|
import { LazyAccountContractsProvider } from '../account-contract-providers/lazy.js';
|
|
11
11
|
import type { AccountContractsProvider } from '../account-contract-providers/types.js';
|
|
12
12
|
import { EmbeddedWallet, type EmbeddedWalletOptions, splitPxeOptions } from '../embedded_wallet.js';
|
|
13
|
-
import { WalletDB } from '../wallet_db.js';
|
|
13
|
+
import { WALLET_DATA_SCHEMA_VERSION, WalletDB } from '../wallet_db.js';
|
|
14
14
|
|
|
15
15
|
export class BrowserEmbeddedWallet extends EmbeddedWallet {
|
|
16
16
|
static async create<T extends BrowserEmbeddedWallet = BrowserEmbeddedWallet>(
|
|
@@ -27,7 +27,6 @@ export class BrowserEmbeddedWallet extends EmbeddedWallet {
|
|
|
27
27
|
const rootLogger = options.logger ?? createLogger('embedded-wallet');
|
|
28
28
|
|
|
29
29
|
const aztecNode = typeof nodeOrUrl === 'string' ? createAztecNodeClient(nodeOrUrl) : nodeOrUrl;
|
|
30
|
-
const l1Contracts = await aztecNode.getL1ContractAddresses();
|
|
31
30
|
|
|
32
31
|
// Support both the new unified `pxe` option and the deprecated `pxeConfig`/`pxeOptions`.
|
|
33
32
|
const { config: pxeConfigFromPxe, creation: pxeCreationFromPxe } = splitPxeOptions(options.pxe);
|
|
@@ -36,7 +35,8 @@ export class BrowserEmbeddedWallet extends EmbeddedWallet {
|
|
|
36
35
|
|
|
37
36
|
const pxeConfig: PXEConfig = Object.assign(getPXEConfig(), {
|
|
38
37
|
proverEnabled: mergedConfigOverrides.proverEnabled,
|
|
39
|
-
|
|
38
|
+
// Unused in the browser: sqlite-opfs keys stores by name, not directory.
|
|
39
|
+
dataDirectory: 'pxe_data',
|
|
40
40
|
autoSync: false,
|
|
41
41
|
...mergedConfigOverrides,
|
|
42
42
|
});
|
|
@@ -64,20 +64,20 @@ export class BrowserEmbeddedWallet extends EmbeddedWallet {
|
|
|
64
64
|
|
|
65
65
|
const pxe = await createPXE(aztecNode, pxeConfig, pxeOptions);
|
|
66
66
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
(options.ephemeral
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
67
|
+
let walletDBStore = options.walletDb?.store;
|
|
68
|
+
if (!walletDBStore) {
|
|
69
|
+
if (options.ephemeral) {
|
|
70
|
+
walletDBStore = await openTmpStore(true);
|
|
71
|
+
} else {
|
|
72
|
+
const { l1ChainId, l1ContractAddresses } = await aztecNode.getNodeInfo();
|
|
73
|
+
walletDBStore = await openBrowserStore(
|
|
74
|
+
'wallet_data',
|
|
75
|
+
WALLET_DATA_SCHEMA_VERSION,
|
|
76
|
+
{ l1ChainId, rollupAddress: l1ContractAddresses.rollupAddress },
|
|
77
|
+
rootLogger.createChild('wallet:data'),
|
|
78
|
+
);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
81
|
const walletDB = new WalletDB(walletDBStore, rootLogger.createChild('wallet:db').info);
|
|
82
82
|
|
|
83
83
|
const wallet = new this(pxe, aztecNode, walletDB, new LazyAccountContractsProvider(), rootLogger) as T;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { createAztecNodeClient } from '@aztec/aztec.js/node';
|
|
2
2
|
import { type Logger, createLogger } from '@aztec/foundation/log';
|
|
3
|
-
import {
|
|
3
|
+
import { openTmpStore } from '@aztec/kv-store/lmdb-v2';
|
|
4
4
|
import { type PXEConfig, getPXEConfig } from '@aztec/pxe/config';
|
|
5
|
-
import { type PXE, type PXECreationOptions, createPXE } from '@aztec/pxe/server';
|
|
5
|
+
import { type PXE, type PXECreationOptions, createPXE, openStore } from '@aztec/pxe/server';
|
|
6
6
|
import { getStandardAuthRegistry } from '@aztec/standard-contracts/auth-registry';
|
|
7
7
|
import { getStandardHandshakeRegistry } from '@aztec/standard-contracts/handshake-registry';
|
|
8
8
|
import { getStandardMultiCallEntrypoint } from '@aztec/standard-contracts/multi-call-entrypoint';
|
|
@@ -11,7 +11,9 @@ import type { AztecNode } from '@aztec/stdlib/interfaces/client';
|
|
|
11
11
|
import { BundleAccountContractsProvider } from '../account-contract-providers/bundle.js';
|
|
12
12
|
import type { AccountContractsProvider } from '../account-contract-providers/types.js';
|
|
13
13
|
import { EmbeddedWallet, type EmbeddedWalletOptions, splitPxeOptions } from '../embedded_wallet.js';
|
|
14
|
-
import { WalletDB } from '../wallet_db.js';
|
|
14
|
+
import { WALLET_DATA_SCHEMA_VERSION, WalletDB } from '../wallet_db.js';
|
|
15
|
+
|
|
16
|
+
const DEFAULT_WALLET_DATA_DIRECTORY = 'aztec-wallet-data';
|
|
15
17
|
|
|
16
18
|
export class NodeEmbeddedWallet extends EmbeddedWallet {
|
|
17
19
|
static async create<T extends NodeEmbeddedWallet = NodeEmbeddedWallet>(
|
|
@@ -28,7 +30,6 @@ export class NodeEmbeddedWallet extends EmbeddedWallet {
|
|
|
28
30
|
const rootLogger = options.logger ?? createLogger('embedded-wallet');
|
|
29
31
|
|
|
30
32
|
const aztecNode = typeof nodeOrUrl === 'string' ? createAztecNodeClient(nodeOrUrl) : nodeOrUrl;
|
|
31
|
-
const l1Contracts = await aztecNode.getL1ContractAddresses();
|
|
32
33
|
|
|
33
34
|
// Support both the new unified `pxe` option and the deprecated `pxeConfig`/`pxeOptions`.
|
|
34
35
|
const { config: pxeConfigFromPxe, creation: pxeCreationFromPxe } = splitPxeOptions(options.pxe);
|
|
@@ -37,7 +38,7 @@ export class NodeEmbeddedWallet extends EmbeddedWallet {
|
|
|
37
38
|
|
|
38
39
|
const pxeConfig: PXEConfig = Object.assign(getPXEConfig(), {
|
|
39
40
|
proverEnabled: mergedConfigOverrides.proverEnabled,
|
|
40
|
-
dataDirectory:
|
|
41
|
+
dataDirectory: DEFAULT_WALLET_DATA_DIRECTORY,
|
|
41
42
|
autoSync: false,
|
|
42
43
|
...mergedConfigOverrides,
|
|
43
44
|
});
|
|
@@ -65,26 +66,26 @@ export class NodeEmbeddedWallet extends EmbeddedWallet {
|
|
|
65
66
|
|
|
66
67
|
const pxe = await createPXE(aztecNode, pxeConfig, pxeOptions);
|
|
67
68
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
(
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
69
|
+
let walletDBStore = options.walletDb?.store;
|
|
70
|
+
if (!walletDBStore) {
|
|
71
|
+
const bindings = rootLogger.createChild('wallet:data').getBindings();
|
|
72
|
+
if (options.ephemeral) {
|
|
73
|
+
walletDBStore = await openTmpStore('wallet_data', true, undefined, undefined, bindings);
|
|
74
|
+
} else {
|
|
75
|
+
const { l1ChainId, l1ContractAddresses } = await aztecNode.getNodeInfo();
|
|
76
|
+
walletDBStore = await openStore(
|
|
77
|
+
'wallet_data',
|
|
78
|
+
WALLET_DATA_SCHEMA_VERSION,
|
|
79
|
+
{
|
|
80
|
+
dataDirectory: pxeConfig.dataDirectory ?? DEFAULT_WALLET_DATA_DIRECTORY,
|
|
81
|
+
dataStoreMapSizeKb: pxeConfig.dataStoreMapSizeKb,
|
|
82
|
+
l1ChainId,
|
|
83
|
+
rollupAddress: l1ContractAddresses.rollupAddress,
|
|
84
|
+
},
|
|
85
|
+
bindings,
|
|
86
|
+
);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
88
89
|
const walletDB = new WalletDB(walletDBStore, rootLogger.createChild('wallet:db').info);
|
|
89
90
|
|
|
90
91
|
const wallet = new this(pxe, aztecNode, walletDB, new BundleAccountContractsProvider(), rootLogger) as T;
|
|
@@ -11,6 +11,9 @@ function accountKey(field: string, address: AztecAddress | string): string {
|
|
|
11
11
|
return `${field}:${address.toString()}`;
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
+
/** Bump when the WalletDB layout changes; a new version selects a fresh store, leaving the old one intact. */
|
|
15
|
+
export const WALLET_DATA_SCHEMA_VERSION = 1;
|
|
16
|
+
|
|
14
17
|
export class WalletDB {
|
|
15
18
|
private accounts: AztecAsyncMap<string, Buffer>;
|
|
16
19
|
private aliases: AztecAsyncMap<string, Buffer>;
|