@aztec/wallets 5.0.0-nightly.20260504 → 5.0.0-nightly.20260512
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/embedded_wallet.d.ts +7 -1
- package/dest/embedded/embedded_wallet.d.ts.map +1 -1
- package/dest/embedded/embedded_wallet.js +34 -19
- 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 +4 -2
- 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 +4 -2
- package/dest/embedded/wallet_db.d.ts +5 -4
- package/dest/embedded/wallet_db.d.ts.map +1 -1
- package/dest/embedded/wallet_db.js +9 -9
- package/package.json +10 -10
- package/src/embedded/embedded_wallet.ts +35 -13
- package/src/embedded/entrypoints/browser.ts +4 -2
- package/src/embedded/entrypoints/node.ts +4 -2
- package/src/embedded/wallet_db.ts +12 -9
|
@@ -49,6 +49,7 @@ export declare class EmbeddedWallet extends BaseWallet {
|
|
|
49
49
|
protected walletDB: WalletDB;
|
|
50
50
|
protected accountContracts: AccountContractsProvider;
|
|
51
51
|
protected estimatedGasPadding: number;
|
|
52
|
+
protected stubClassIds: Map<"ecdsasecp256k1" | "ecdsasecp256r1" | "schnorr", Fr>;
|
|
52
53
|
constructor(pxe: PXE, aztecNode: AztecNode, walletDB: WalletDB, accountContracts: AccountContractsProvider, log?: Logger);
|
|
53
54
|
protected getAccountFromAddress(address: AztecAddress): Promise<Account>;
|
|
54
55
|
getAccounts(): Promise<Aliased<AztecAddress>[]>;
|
|
@@ -60,6 +61,11 @@ export declare class EmbeddedWallet extends BaseWallet {
|
|
|
60
61
|
* the necessary authwitnesses.
|
|
61
62
|
*/
|
|
62
63
|
sendTx<W extends InteractionWaitOptions = undefined>(executionPayload: ExecutionPayload, opts: SendOptions<W>): Promise<SendReturn<W>>;
|
|
64
|
+
/**
|
|
65
|
+
* Hashes and registers the stub class for every supported account type with PXE, populating
|
|
66
|
+
* stubClassIds. Called on wallet initialization.
|
|
67
|
+
*/
|
|
68
|
+
initStubClasses(): Promise<void>;
|
|
63
69
|
/**
|
|
64
70
|
* Builds contract overrides for all provided addresses by replacing their account contracts with stub implementations.
|
|
65
71
|
* Uses a type-specific stub artifact so that the stub's constructor selector matches the real account's constructor.
|
|
@@ -80,4 +86,4 @@ export declare class EmbeddedWallet extends BaseWallet {
|
|
|
80
86
|
setEstimatedGasPadding(value?: number): void;
|
|
81
87
|
stop(): Promise<void>;
|
|
82
88
|
}
|
|
83
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
89
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1iZWRkZWRfd2FsbGV0LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZW1iZWRkZWQvZW1iZWRkZWRfd2FsbGV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLE9BQU8sRUFBVyxNQUFNLHlCQUF5QixDQUFDO0FBRWhFLE9BQU8sRUFBRSxLQUFLLHNCQUFzQixFQUFFLEtBQUssVUFBVSxFQUErQixNQUFNLDJCQUEyQixDQUFDO0FBQ3RILE9BQU8sS0FBSyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsY0FBYyxFQUFFLCtCQUErQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFHekYsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4RCxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRCxPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVFLE9BQU8sS0FBSyxFQUFFLEdBQUcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUczRCxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUVqRSxPQUFPLEVBQ0wsS0FBSyxpQkFBaUIsRUFDdEIsZ0JBQWdCLEVBTWpCLE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUFFLFVBQVUsRUFBRSxLQUFLLDRCQUE0QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFOUYsT0FBTyxLQUFLLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN0RixPQUFPLEVBQUUs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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"embedded_wallet.d.ts","sourceRoot":"","sources":["../../src/embedded/embedded_wallet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAW,MAAM,yBAAyB,CAAC;AAEhE,OAAO,EAAE,KAAK,sBAAsB,EAAE,KAAK,UAAU,EAA+B,MAAM,2BAA2B,CAAC;AACtH,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,+BAA+B,EAAE,MAAM,wBAAwB,CAAC;AAGzF,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACxD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5E,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAG3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAEjE,OAAO,EACL,KAAK,iBAAiB,EACtB,gBAAgB,EAMjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,KAAK,4BAA4B,EAAE,MAAM,+BAA+B,CAAC;AAE9F,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AACtF,OAAO,EAAE,KAAK,WAAW,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE5D,kEAAkE;AAClE,MAAM,MAAM,wBAAwB,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,kBAAkB,CAAC;AAE/E,iGAAiG;AACjG,wBAAgB,eAAe,CAAC,GAAG,CAAC,EAAE,wBAAwB,GAAG;IAC/D,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAC3B,QAAQ,EAAE,kBAAkB,CAAC;CAC9B,CAMA;AAED,+FAA6F;AAC7F,MAAM,MAAM,uBAAuB,GAAG;IACpC,yGAAyG;IACzG,KAAK,CAAC,EAAE,iBAAiB,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,qFAAqF;IACrF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+EAA+E;IAC/E,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,oFAAoF;IACpF,GAAG,CAAC,EAAE,wBAAwB,CAAC;IAC/B,qDAAqD;IACrD,QAAQ,CAAC,EAAE,uBAAuB,CAAC;IACnC;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAC/B;;;OAGG;IACH,UAAU,CAAC,EAAE,kBAAkB,CAAC;CACjC,CAAC;AAIF,qBAAa,cAAe,SAAQ,UAAU;
|
|
1
|
+
{"version":3,"file":"embedded_wallet.d.ts","sourceRoot":"","sources":["../../src/embedded/embedded_wallet.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ import { getGasLimits } from '@aztec/aztec.js/contracts';
|
|
|
4
4
|
import { AccountManager, TxSimulationResultWithAppOffset } from '@aztec/aztec.js/wallet';
|
|
5
5
|
import { DefaultEntrypoint } from '@aztec/entrypoints/default';
|
|
6
6
|
import { Fq, Fr } from '@aztec/foundation/curves/bn254';
|
|
7
|
-
import {
|
|
7
|
+
import { getContractClassFromArtifact } from '@aztec/stdlib/contract';
|
|
8
8
|
import { GasSettings } from '@aztec/stdlib/gas';
|
|
9
9
|
import { deriveSigningKey } from '@aztec/stdlib/keys';
|
|
10
10
|
import { SimulationOverrides, TxStatus, collectOffchainEffects, mergeExecutionPayloads } from '@aztec/stdlib/tx';
|
|
@@ -33,8 +33,11 @@ export class EmbeddedWallet extends BaseWallet {
|
|
|
33
33
|
walletDB;
|
|
34
34
|
accountContracts;
|
|
35
35
|
estimatedGasPadding;
|
|
36
|
+
// Stub class ids, populated on wallet startup
|
|
37
|
+
// to avoid redundant work per simulation
|
|
38
|
+
stubClassIds;
|
|
36
39
|
constructor(pxe, aztecNode, walletDB, accountContracts, log){
|
|
37
|
-
super(pxe, aztecNode, log), this.walletDB = walletDB, this.accountContracts = accountContracts, this.estimatedGasPadding = DEFAULT_ESTIMATED_GAS_PADDING;
|
|
40
|
+
super(pxe, aztecNode, log), this.walletDB = walletDB, this.accountContracts = accountContracts, this.estimatedGasPadding = DEFAULT_ESTIMATED_GAS_PADDING, this.stubClassIds = new Map();
|
|
38
41
|
}
|
|
39
42
|
async getAccountFromAddress(address) {
|
|
40
43
|
const { secretKey, salt, signingKey, type } = await this.walletDB.retrieveAccount(address);
|
|
@@ -128,6 +131,21 @@ export class EmbeddedWallet extends BaseWallet {
|
|
|
128
131
|
});
|
|
129
132
|
}
|
|
130
133
|
/**
|
|
134
|
+
* Hashes and registers the stub class for every supported account type with PXE, populating
|
|
135
|
+
* stubClassIds. Called on wallet initialization.
|
|
136
|
+
*/ async initStubClasses() {
|
|
137
|
+
const schnorrArtifact = await this.accountContracts.getStubAccountContractArtifact('schnorr');
|
|
138
|
+
const { id: schnorrClassId } = await getContractClassFromArtifact(schnorrArtifact);
|
|
139
|
+
await this.pxe.registerContractClass(schnorrArtifact);
|
|
140
|
+
// ecdsa stubs share the same class id
|
|
141
|
+
const ecdsaArtifact = await this.accountContracts.getStubAccountContractArtifact('ecdsasecp256r1');
|
|
142
|
+
const { id: ecdsaClassId } = await getContractClassFromArtifact(ecdsaArtifact);
|
|
143
|
+
await this.pxe.registerContractClass(ecdsaArtifact);
|
|
144
|
+
this.stubClassIds.set('schnorr', schnorrClassId);
|
|
145
|
+
this.stubClassIds.set('ecdsasecp256k1', ecdsaClassId);
|
|
146
|
+
this.stubClassIds.set('ecdsasecp256r1', ecdsaClassId);
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
131
149
|
* Builds contract overrides for all provided addresses by replacing their account contracts with stub implementations.
|
|
132
150
|
* Uses a type-specific stub artifact so that the stub's constructor selector matches the real account's constructor.
|
|
133
151
|
*/ async buildAccountOverrides(addresses) {
|
|
@@ -137,27 +155,21 @@ export class EmbeddedWallet extends BaseWallet {
|
|
|
137
155
|
for (const account of filtered){
|
|
138
156
|
const address = account.item;
|
|
139
157
|
const { type } = await this.walletDB.retrieveAccount(address);
|
|
140
|
-
const
|
|
158
|
+
const stubClassId = this.stubClassIds.get(type);
|
|
159
|
+
if (!stubClassId) {
|
|
160
|
+
throw new Error(`Stub class for account type '${type}' was not registered at wallet init. This is a bug — initStubClasses should cover every supported AccountType.`);
|
|
161
|
+
}
|
|
141
162
|
const originalAccount = await this.getAccountFromAddress(address);
|
|
142
163
|
const completeAddress = originalAccount.getCompleteAddress();
|
|
143
164
|
const contractInstance = await this.pxe.getContractInstance(completeAddress.address);
|
|
144
165
|
if (!contractInstance) {
|
|
145
166
|
throw new Error(`No contract instance found for address: ${completeAddress.address} during account override building. This is a bug!`);
|
|
146
167
|
}
|
|
147
|
-
const stubConstructorArgs = type === 'schnorr' ? [
|
|
148
|
-
Fr.ZERO,
|
|
149
|
-
Fr.ZERO
|
|
150
|
-
] : [
|
|
151
|
-
Buffer.alloc(32),
|
|
152
|
-
Buffer.alloc(32)
|
|
153
|
-
];
|
|
154
|
-
const stubInstance = await getContractInstanceFromInstantiationParams(stubArtifact, {
|
|
155
|
-
salt: Fr.random(),
|
|
156
|
-
constructorArgs: stubConstructorArgs
|
|
157
|
-
});
|
|
158
168
|
contracts[address.toString()] = {
|
|
159
|
-
instance:
|
|
160
|
-
|
|
169
|
+
instance: {
|
|
170
|
+
...contractInstance,
|
|
171
|
+
currentContractClassId: stubClassId
|
|
172
|
+
}
|
|
161
173
|
};
|
|
162
174
|
}
|
|
163
175
|
return contracts;
|
|
@@ -176,7 +188,9 @@ export class EmbeddedWallet extends BaseWallet {
|
|
|
176
188
|
]) : executionPayload;
|
|
177
189
|
const chainInfo = await this.getChainInfo();
|
|
178
190
|
const accountOverrides = await this.buildAccountOverrides(scopes);
|
|
179
|
-
const overrides = new SimulationOverrides(
|
|
191
|
+
const overrides = new SimulationOverrides({
|
|
192
|
+
contracts: accountOverrides
|
|
193
|
+
});
|
|
180
194
|
let txRequest;
|
|
181
195
|
if (from === NO_FROM) {
|
|
182
196
|
const entrypoint = new DefaultEntrypoint();
|
|
@@ -264,7 +278,8 @@ export class EmbeddedWallet extends BaseWallet {
|
|
|
264
278
|
setEstimatedGasPadding(value) {
|
|
265
279
|
this.estimatedGasPadding = value ?? DEFAULT_ESTIMATED_GAS_PADDING;
|
|
266
280
|
}
|
|
267
|
-
stop() {
|
|
268
|
-
|
|
281
|
+
async stop() {
|
|
282
|
+
await this.pxe.stop();
|
|
283
|
+
await this.walletDB.close();
|
|
269
284
|
}
|
|
270
285
|
}
|
|
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJvd3Nlci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VtYmVkZGVkL2VudHJ5cG9pbnRzL2Jyb3dzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssU0FBUyxFQUF5QixNQUFNLHNCQUFzQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUVsRSxPQUFPLEVBQUUsS0FBSyxHQUFHLEVBQXNDLE1BQU0sd0JBQXdCLENBQUM7QUFJdEYsT0FBTyxLQUFLLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUN2RixPQUFPLEVBQUUsY0FBYyxFQUFFLEtBQUsscUJBQXFCLEVBQW1CLE1BQU0sdUJBQXVCLENBQUM7QUFDcEcsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTNDLHFCQUFhLHFCQUFzQixTQUFRLGNBQWM7SUFDdkQsT0FBYSxNQUFNLENBQUMsQ0FBQyxTQUFTLHFCQUFxQixHQUFHLHFCQUFxQixFQUN6RSxJQUFJLEVBQUUsS0FDSixHQUFHLEVBQUUsR0FBRyxFQUNSLFNBQVMsRUFBRSxTQUFTLEVBQ3BCLFFBQVEsRUFBRSxRQUFRLEVBQ2xCLGdCQUFnQixFQUFFLHdCQUF3QixFQUMxQyxHQUFHLENBQUMsRUFBRSxNQUFNLEtBQ1QsQ0FBQyxFQUNOLFNBQVMsRUFBRSxNQUFNLEdBQUcsU0FBUyxFQUM3QixPQUFPLEdBQUUscUJBQTBCLEdBQ2xDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FvRFo7Q0FDRjtBQUVELE9BQU8sRUFBRSxxQkFBcUIsSUFBSSxjQUFjLEVBQUUsQ0FBQztBQUNuRCxZQUFZLEVBQUUscUJBQXFCLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM3RixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsWUFBWSxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDIn0=
|
|
@@ -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,EAAsC,MAAM,wBAAwB,CAAC;AAItF,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,
|
|
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;AAItF,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,CAoDZ;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"}
|
|
@@ -44,8 +44,10 @@ export class BrowserEmbeddedWallet extends EmbeddedWallet {
|
|
|
44
44
|
dataStoreMapSizeKb: pxeConfig.dataStoreMapSizeKb,
|
|
45
45
|
l1Contracts
|
|
46
46
|
}, 1, rootLogger.createChild('wallet:data')));
|
|
47
|
-
const walletDB = WalletDB
|
|
48
|
-
|
|
47
|
+
const walletDB = new WalletDB(walletDBStore, rootLogger.createChild('wallet:db').info);
|
|
48
|
+
const wallet = new this(pxe, aztecNode, walletDB, new LazyAccountContractsProvider(), rootLogger);
|
|
49
|
+
await wallet.initStubClasses();
|
|
50
|
+
return wallet;
|
|
49
51
|
}
|
|
50
52
|
}
|
|
51
53
|
export { BrowserEmbeddedWallet as EmbeddedWallet };
|
|
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VtYmVkZGVkL2VudHJ5cG9pbnRzL25vZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFnQixNQUFNLHVCQUF1QixDQUFDO0FBR2xFLE9BQU8sRUFBRSxLQUFLLEdBQUcsRUFBc0MsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRixPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUdqRSxPQUFPLEtBQUssRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxjQUFjLEVBQUUsS0FBSyxxQkFBcUIsRUFBbUIsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFM0MscUJBQWEsa0JBQW1CLFNBQVEsY0FBYztJQUNwRCxPQUFhLE1BQU0sQ0FBQyxDQUFDLFNBQVMsa0JBQWtCLEdBQUcsa0JBQWtCLEVBQ25FLElBQUksRUFBRSxLQUNKLEdBQUcsRUFBRSxHQUFHLEVBQ1IsU0FBUyxFQUFFLFNBQVMsRUFDcEIsUUFBUSxFQUFFLFFBQVEsRUFDbEIsZ0JBQWdCLEVBQUUsd0JBQXdCLEVBQzFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sS0FDVCxDQUFDLEVBQ04sU0FBUyxFQUFFLE1BQU0sR0FBRyxTQUFTLEVBQzdCLE9BQU8sR0FBRSxxQkFBMEIsR0FDbEMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQTBEWjtDQUNGO0FBRUQsT0FBTyxFQUFFLGtCQUFrQixJQUFJLGNBQWMsRUFBRSxDQUFDO0FBQ2hELFlBQVksRUFBRSxxQkFBcUIsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzdGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxZQUFZLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUMifQ==
|
|
@@ -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,EAAsC,MAAM,mBAAmB,CAAC;AACjF,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,
|
|
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;AACjF,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,CA0DZ;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"}
|
|
@@ -44,8 +44,10 @@ export class NodeEmbeddedWallet extends EmbeddedWallet {
|
|
|
44
44
|
dataStoreMapSizeKb: pxeConfig.dataStoreMapSizeKb,
|
|
45
45
|
l1Contracts
|
|
46
46
|
}, rootLogger.createChild('wallet:data').getBindings()));
|
|
47
|
-
const walletDB = WalletDB
|
|
48
|
-
|
|
47
|
+
const walletDB = new WalletDB(walletDBStore, rootLogger.createChild('wallet:db').info);
|
|
48
|
+
const wallet = new this(pxe, aztecNode, walletDB, new BundleAccountContractsProvider(), rootLogger);
|
|
49
|
+
await wallet.initStubClasses();
|
|
50
|
+
return wallet;
|
|
49
51
|
}
|
|
50
52
|
}
|
|
51
53
|
export { NodeEmbeddedWallet as EmbeddedWallet };
|
|
@@ -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
|
-
|
|
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,
|
|
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;;
|
|
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
|
-
|
|
16
|
-
this.accounts = accounts;
|
|
17
|
-
this.aliases = aliases;
|
|
16
|
+
constructor(store, userLog){
|
|
17
|
+
this.store = store;
|
|
18
18
|
this.userLog = userLog;
|
|
19
|
-
|
|
20
|
-
|
|
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/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.0-nightly.
|
|
4
|
+
"version": "5.0.0-nightly.20260512",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
7
7
|
"./embedded": {
|
|
@@ -27,15 +27,15 @@
|
|
|
27
27
|
"../package.common.json"
|
|
28
28
|
],
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@aztec/accounts": "5.0.0-nightly.
|
|
31
|
-
"@aztec/aztec.js": "5.0.0-nightly.
|
|
32
|
-
"@aztec/entrypoints": "5.0.0-nightly.
|
|
33
|
-
"@aztec/foundation": "5.0.0-nightly.
|
|
34
|
-
"@aztec/kv-store": "5.0.0-nightly.
|
|
35
|
-
"@aztec/protocol-contracts": "5.0.0-nightly.
|
|
36
|
-
"@aztec/pxe": "5.0.0-nightly.
|
|
37
|
-
"@aztec/stdlib": "5.0.0-nightly.
|
|
38
|
-
"@aztec/wallet-sdk": "5.0.0-nightly.
|
|
30
|
+
"@aztec/accounts": "5.0.0-nightly.20260512",
|
|
31
|
+
"@aztec/aztec.js": "5.0.0-nightly.20260512",
|
|
32
|
+
"@aztec/entrypoints": "5.0.0-nightly.20260512",
|
|
33
|
+
"@aztec/foundation": "5.0.0-nightly.20260512",
|
|
34
|
+
"@aztec/kv-store": "5.0.0-nightly.20260512",
|
|
35
|
+
"@aztec/protocol-contracts": "5.0.0-nightly.20260512",
|
|
36
|
+
"@aztec/pxe": "5.0.0-nightly.20260512",
|
|
37
|
+
"@aztec/stdlib": "5.0.0-nightly.20260512",
|
|
38
|
+
"@aztec/wallet-sdk": "5.0.0-nightly.20260512"
|
|
39
39
|
},
|
|
40
40
|
"devDependencies": {
|
|
41
41
|
"@jest/globals": "^30.0.0",
|
|
@@ -11,7 +11,7 @@ import type { AztecAsyncKVStore } from '@aztec/kv-store';
|
|
|
11
11
|
import type { PXEConfig, PXECreationOptions } from '@aztec/pxe/client/lazy';
|
|
12
12
|
import type { PXE } from '@aztec/pxe/server';
|
|
13
13
|
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
14
|
-
import {
|
|
14
|
+
import { getContractClassFromArtifact } from '@aztec/stdlib/contract';
|
|
15
15
|
import { GasSettings } from '@aztec/stdlib/gas';
|
|
16
16
|
import type { AztecNode } from '@aztec/stdlib/interfaces/client';
|
|
17
17
|
import { deriveSigningKey } from '@aztec/stdlib/keys';
|
|
@@ -76,6 +76,10 @@ const DEFAULT_ESTIMATED_GAS_PADDING = 0.1;
|
|
|
76
76
|
export class EmbeddedWallet extends BaseWallet {
|
|
77
77
|
protected estimatedGasPadding = DEFAULT_ESTIMATED_GAS_PADDING;
|
|
78
78
|
|
|
79
|
+
// Stub class ids, populated on wallet startup
|
|
80
|
+
// to avoid redundant work per simulation
|
|
81
|
+
protected stubClassIds = new Map<AccountType, Fr>();
|
|
82
|
+
|
|
79
83
|
constructor(
|
|
80
84
|
pxe: PXE,
|
|
81
85
|
aztecNode: AztecNode,
|
|
@@ -192,6 +196,25 @@ export class EmbeddedWallet extends BaseWallet {
|
|
|
192
196
|
});
|
|
193
197
|
}
|
|
194
198
|
|
|
199
|
+
/**
|
|
200
|
+
* Hashes and registers the stub class for every supported account type with PXE, populating
|
|
201
|
+
* stubClassIds. Called on wallet initialization.
|
|
202
|
+
*/
|
|
203
|
+
async initStubClasses(): Promise<void> {
|
|
204
|
+
const schnorrArtifact = await this.accountContracts.getStubAccountContractArtifact('schnorr');
|
|
205
|
+
const { id: schnorrClassId } = await getContractClassFromArtifact(schnorrArtifact);
|
|
206
|
+
await this.pxe.registerContractClass(schnorrArtifact);
|
|
207
|
+
|
|
208
|
+
// ecdsa stubs share the same class id
|
|
209
|
+
const ecdsaArtifact = await this.accountContracts.getStubAccountContractArtifact('ecdsasecp256r1');
|
|
210
|
+
const { id: ecdsaClassId } = await getContractClassFromArtifact(ecdsaArtifact);
|
|
211
|
+
await this.pxe.registerContractClass(ecdsaArtifact);
|
|
212
|
+
|
|
213
|
+
this.stubClassIds.set('schnorr', schnorrClassId);
|
|
214
|
+
this.stubClassIds.set('ecdsasecp256k1', ecdsaClassId);
|
|
215
|
+
this.stubClassIds.set('ecdsasecp256r1', ecdsaClassId);
|
|
216
|
+
}
|
|
217
|
+
|
|
195
218
|
/**
|
|
196
219
|
* Builds contract overrides for all provided addresses by replacing their account contracts with stub implementations.
|
|
197
220
|
* Uses a type-specific stub artifact so that the stub's constructor selector matches the real account's constructor.
|
|
@@ -205,7 +228,12 @@ export class EmbeddedWallet extends BaseWallet {
|
|
|
205
228
|
for (const account of filtered) {
|
|
206
229
|
const address = account.item;
|
|
207
230
|
const { type } = await this.walletDB.retrieveAccount(address);
|
|
208
|
-
const
|
|
231
|
+
const stubClassId = this.stubClassIds.get(type);
|
|
232
|
+
if (!stubClassId) {
|
|
233
|
+
throw new Error(
|
|
234
|
+
`Stub class for account type '${type}' was not registered at wallet init. This is a bug — initStubClasses should cover every supported AccountType.`,
|
|
235
|
+
);
|
|
236
|
+
}
|
|
209
237
|
|
|
210
238
|
const originalAccount = await this.getAccountFromAddress(address);
|
|
211
239
|
const completeAddress = originalAccount.getCompleteAddress();
|
|
@@ -216,15 +244,8 @@ export class EmbeddedWallet extends BaseWallet {
|
|
|
216
244
|
);
|
|
217
245
|
}
|
|
218
246
|
|
|
219
|
-
const stubConstructorArgs = type === 'schnorr' ? [Fr.ZERO, Fr.ZERO] : [Buffer.alloc(32), Buffer.alloc(32)];
|
|
220
|
-
const stubInstance = await getContractInstanceFromInstantiationParams(stubArtifact, {
|
|
221
|
-
salt: Fr.random(),
|
|
222
|
-
constructorArgs: stubConstructorArgs,
|
|
223
|
-
});
|
|
224
|
-
|
|
225
247
|
contracts[address.toString()] = {
|
|
226
|
-
instance:
|
|
227
|
-
artifact: stubArtifact,
|
|
248
|
+
instance: { ...contractInstance, currentContractClassId: stubClassId },
|
|
228
249
|
};
|
|
229
250
|
}
|
|
230
251
|
|
|
@@ -250,7 +271,7 @@ export class EmbeddedWallet extends BaseWallet {
|
|
|
250
271
|
const chainInfo = await this.getChainInfo();
|
|
251
272
|
|
|
252
273
|
const accountOverrides = await this.buildAccountOverrides(scopes);
|
|
253
|
-
const overrides = new SimulationOverrides(accountOverrides);
|
|
274
|
+
const overrides = new SimulationOverrides({ contracts: accountOverrides });
|
|
254
275
|
|
|
255
276
|
let txRequest: TxExecutionRequest;
|
|
256
277
|
if (from === NO_FROM) {
|
|
@@ -360,7 +381,8 @@ export class EmbeddedWallet extends BaseWallet {
|
|
|
360
381
|
this.estimatedGasPadding = value ?? DEFAULT_ESTIMATED_GAS_PADDING;
|
|
361
382
|
}
|
|
362
383
|
|
|
363
|
-
stop() {
|
|
364
|
-
|
|
384
|
+
async stop(): Promise<void> {
|
|
385
|
+
await this.pxe.stop();
|
|
386
|
+
await this.walletDB.close();
|
|
365
387
|
}
|
|
366
388
|
}
|
|
@@ -67,9 +67,11 @@ export class BrowserEmbeddedWallet extends EmbeddedWallet {
|
|
|
67
67
|
1,
|
|
68
68
|
rootLogger.createChild('wallet:data'),
|
|
69
69
|
));
|
|
70
|
-
const walletDB = WalletDB
|
|
70
|
+
const walletDB = new WalletDB(walletDBStore, rootLogger.createChild('wallet:db').info);
|
|
71
71
|
|
|
72
|
-
|
|
72
|
+
const wallet = new this(pxe, aztecNode, walletDB, new LazyAccountContractsProvider(), rootLogger) as T;
|
|
73
|
+
await wallet.initStubClasses();
|
|
74
|
+
return wallet;
|
|
73
75
|
}
|
|
74
76
|
}
|
|
75
77
|
|
|
@@ -74,9 +74,11 @@ export class NodeEmbeddedWallet extends EmbeddedWallet {
|
|
|
74
74
|
},
|
|
75
75
|
rootLogger.createChild('wallet:data').getBindings(),
|
|
76
76
|
));
|
|
77
|
-
const walletDB = WalletDB
|
|
77
|
+
const walletDB = new WalletDB(walletDBStore, rootLogger.createChild('wallet:db').info);
|
|
78
78
|
|
|
79
|
-
|
|
79
|
+
const wallet = new this(pxe, aztecNode, walletDB, new BundleAccountContractsProvider(), rootLogger) as T;
|
|
80
|
+
await wallet.initStubClasses();
|
|
81
|
+
return wallet;
|
|
80
82
|
}
|
|
81
83
|
}
|
|
82
84
|
|
|
@@ -12,16 +12,15 @@ function accountKey(field: string, address: AztecAddress | string): string {
|
|
|
12
12
|
}
|
|
13
13
|
|
|
14
14
|
export class WalletDB {
|
|
15
|
-
private
|
|
16
|
-
|
|
17
|
-
private aliases: AztecAsyncMap<string, Buffer>,
|
|
18
|
-
private userLog: LogFn,
|
|
19
|
-
) {}
|
|
15
|
+
private accounts: AztecAsyncMap<string, Buffer>;
|
|
16
|
+
private aliases: AztecAsyncMap<string, Buffer>;
|
|
20
17
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
18
|
+
constructor(
|
|
19
|
+
private store: AztecAsyncKVStore,
|
|
20
|
+
private userLog: LogFn,
|
|
21
|
+
) {
|
|
22
|
+
this.accounts = store.openMap<string, Buffer>('accounts');
|
|
23
|
+
this.aliases = store.openMap<string, Buffer>('aliases');
|
|
25
24
|
}
|
|
26
25
|
|
|
27
26
|
async storeAccount(
|
|
@@ -131,4 +130,8 @@ export class WalletDB {
|
|
|
131
130
|
await this.aliases.delete(`accounts:${alias}`);
|
|
132
131
|
}
|
|
133
132
|
}
|
|
133
|
+
|
|
134
|
+
async close() {
|
|
135
|
+
await this.store.close();
|
|
136
|
+
}
|
|
134
137
|
}
|