@aztec/wallets 4.2.0-nightly.20260409 → 4.2.0-nightly.20260411
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/account-contract-providers/bundle.d.ts +4 -3
- package/dest/embedded/account-contract-providers/bundle.d.ts.map +1 -1
- package/dest/embedded/account-contract-providers/bundle.js +6 -5
- package/dest/embedded/account-contract-providers/lazy.d.ts +4 -3
- package/dest/embedded/account-contract-providers/lazy.d.ts.map +1 -1
- package/dest/embedded/account-contract-providers/lazy.js +16 -6
- package/dest/embedded/account-contract-providers/types.d.ts +4 -3
- package/dest/embedded/account-contract-providers/types.d.ts.map +1 -1
- package/dest/embedded/embedded_wallet.d.ts +22 -6
- package/dest/embedded/embedded_wallet.d.ts.map +1 -1
- package/dest/embedded/embedded_wallet.js +41 -8
- package/dest/embedded/entrypoints/browser.d.ts +2 -2
- package/dest/embedded/entrypoints/browser.d.ts.map +1 -1
- package/dest/embedded/entrypoints/browser.js +15 -5
- package/dest/embedded/entrypoints/node.d.ts +2 -2
- package/dest/embedded/entrypoints/node.d.ts.map +1 -1
- package/dest/embedded/entrypoints/node.js +15 -5
- package/package.json +10 -10
- package/src/embedded/account-contract-providers/bundle.ts +7 -5
- package/src/embedded/account-contract-providers/lazy.ts +17 -6
- package/src/embedded/account-contract-providers/types.ts +4 -2
- package/src/embedded/embedded_wallet.ts +42 -12
- package/src/embedded/entrypoints/browser.ts +11 -6
- package/src/embedded/entrypoints/node.ts +11 -6
|
@@ -2,6 +2,7 @@ import type { Account, AccountContract } from '@aztec/aztec.js/account';
|
|
|
2
2
|
import type { Fq } from '@aztec/foundation/curves/bn254';
|
|
3
3
|
import type { ContractArtifact } from '@aztec/stdlib/abi';
|
|
4
4
|
import type { CompleteAddress, ContractInstanceWithAddress } from '@aztec/stdlib/contract';
|
|
5
|
+
import type { AccountType } from '../wallet_db.js';
|
|
5
6
|
import type { AccountContractsProvider } from './types.js';
|
|
6
7
|
/**
|
|
7
8
|
* Loads account contract artifacts eagerly via static imports.
|
|
@@ -11,11 +12,11 @@ export declare class BundleAccountContractsProvider implements AccountContractsP
|
|
|
11
12
|
getSchnorrAccountContract(signingKey: Fq): Promise<AccountContract>;
|
|
12
13
|
getEcdsaRAccountContract(signingKey: Buffer): Promise<AccountContract>;
|
|
13
14
|
getEcdsaKAccountContract(signingKey: Buffer): Promise<AccountContract>;
|
|
14
|
-
getStubAccountContractArtifact(): Promise<ContractArtifact>;
|
|
15
|
-
createStubAccount(address: CompleteAddress): Promise<Account>;
|
|
15
|
+
getStubAccountContractArtifact(type: AccountType): Promise<ContractArtifact>;
|
|
16
|
+
createStubAccount(address: CompleteAddress, type: AccountType): Promise<Account>;
|
|
16
17
|
getMulticallContract(): Promise<{
|
|
17
18
|
instance: ContractInstanceWithAddress;
|
|
18
19
|
artifact: ContractArtifact;
|
|
19
20
|
}>;
|
|
20
21
|
}
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVuZGxlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZW1iZWRkZWQvYWNjb3VudC1jb250cmFjdC1wcm92aWRlcnMvYnVuZGxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE9BQU8sS0FBSyxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN4RSxPQUFPLEtBQUssRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUV6RCxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzFELE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTNGLE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sS0FBSyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRTNEOzs7R0FHRztBQUNILHFCQUFhLDhCQUErQixZQUFXLHdCQUF3QjtJQUM3RSx5QkFBeUIsQ0FBQyxVQUFVLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FFbEU7SUFFRCx3QkFBd0IsQ0FBQyxVQUFVLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FFckU7SUFFRCx3QkFBd0IsQ0FBQyxVQUFVLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FFckU7SUFFRCw4QkFBOEIsQ0FBQyxJQUFJLEVBQUUsV0FBVyxHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUUzRTtJQUVELGlCQUFpQixDQUFDLE9BQU8sRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLFdBQVcsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBRS9FO0lBRUQsb0JBQW9CLElBQUksT0FBTyxDQUFDO1FBQUUsUUFBUSxFQUFFLDJCQUEyQixDQUFDO1FBQUMsUUFBUSxFQUFFLGdCQUFnQixDQUFBO0tBQUUsQ0FBQyxDQUVyRztDQUNGIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bundle.d.ts","sourceRoot":"","sources":["../../../src/embedded/account-contract-providers/bundle.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"bundle.d.ts","sourceRoot":"","sources":["../../../src/embedded/account-contract-providers/bundle.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAEzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,EAAE,eAAe,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAE3F,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAE3D;;;GAGG;AACH,qBAAa,8BAA+B,YAAW,wBAAwB;IAC7E,yBAAyB,CAAC,UAAU,EAAE,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC,CAElE;IAED,wBAAwB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAErE;IAED,wBAAwB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAErE;IAED,8BAA8B,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAE3E;IAED,iBAAiB,CAAC,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAE/E;IAED,oBAAoB,IAAI,OAAO,CAAC;QAAE,QAAQ,EAAE,2BAA2B,CAAC;QAAC,QAAQ,EAAE,gBAAgB,CAAA;KAAE,CAAC,CAErG;CACF"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { EcdsaKAccountContract, EcdsaRAccountContract } from '@aztec/accounts/ecdsa';
|
|
2
2
|
import { SchnorrAccountContract } from '@aztec/accounts/schnorr';
|
|
3
|
-
import {
|
|
3
|
+
import { StubEcdsaAccountContractArtifact, createStubEcdsaAccount } from '@aztec/accounts/stub/ecdsa';
|
|
4
|
+
import { StubSchnorrAccountContractArtifact, createStubSchnorrAccount } from '@aztec/accounts/stub/schnorr';
|
|
4
5
|
import { getCanonicalMultiCallEntrypoint } from '@aztec/protocol-contracts/multi-call-entrypoint';
|
|
5
6
|
/**
|
|
6
7
|
* Loads account contract artifacts eagerly via static imports.
|
|
@@ -15,11 +16,11 @@ import { getCanonicalMultiCallEntrypoint } from '@aztec/protocol-contracts/multi
|
|
|
15
16
|
getEcdsaKAccountContract(signingKey) {
|
|
16
17
|
return Promise.resolve(new EcdsaKAccountContract(signingKey));
|
|
17
18
|
}
|
|
18
|
-
getStubAccountContractArtifact() {
|
|
19
|
-
return Promise.resolve(
|
|
19
|
+
getStubAccountContractArtifact(type) {
|
|
20
|
+
return Promise.resolve(type === 'schnorr' ? StubSchnorrAccountContractArtifact : StubEcdsaAccountContractArtifact);
|
|
20
21
|
}
|
|
21
|
-
createStubAccount(address) {
|
|
22
|
-
return Promise.resolve(
|
|
22
|
+
createStubAccount(address, type) {
|
|
23
|
+
return Promise.resolve(type === 'schnorr' ? createStubSchnorrAccount(address) : createStubEcdsaAccount(address));
|
|
23
24
|
}
|
|
24
25
|
getMulticallContract() {
|
|
25
26
|
return getCanonicalMultiCallEntrypoint();
|
|
@@ -2,6 +2,7 @@ import type { Account, AccountContract } from '@aztec/aztec.js/account';
|
|
|
2
2
|
import type { Fq } from '@aztec/foundation/curves/bn254';
|
|
3
3
|
import type { ContractArtifact } from '@aztec/stdlib/abi';
|
|
4
4
|
import type { CompleteAddress, ContractInstanceWithAddress } from '@aztec/stdlib/contract';
|
|
5
|
+
import type { AccountType } from '../wallet_db.js';
|
|
5
6
|
import type { AccountContractsProvider } from './types.js';
|
|
6
7
|
/**
|
|
7
8
|
* Loads account contract artifacts lazily via dynamic imports.
|
|
@@ -11,11 +12,11 @@ export declare class LazyAccountContractsProvider implements AccountContractsPro
|
|
|
11
12
|
getSchnorrAccountContract(signingKey: Fq): Promise<AccountContract>;
|
|
12
13
|
getEcdsaRAccountContract(signingKey: Buffer): Promise<AccountContract>;
|
|
13
14
|
getEcdsaKAccountContract(signingKey: Buffer): Promise<AccountContract>;
|
|
14
|
-
getStubAccountContractArtifact(): Promise<ContractArtifact>;
|
|
15
|
-
createStubAccount(address: CompleteAddress): Promise<Account>;
|
|
15
|
+
getStubAccountContractArtifact(type: AccountType): Promise<ContractArtifact>;
|
|
16
|
+
createStubAccount(address: CompleteAddress, type: AccountType): Promise<Account>;
|
|
16
17
|
getMulticallContract(): Promise<{
|
|
17
18
|
instance: ContractInstanceWithAddress;
|
|
18
19
|
artifact: ContractArtifact;
|
|
19
20
|
}>;
|
|
20
21
|
}
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VtYmVkZGVkL2FjY291bnQtY29udHJhY3QtcHJvdmlkZXJzL2xhenkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3hFLE9BQU8sS0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXpELE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDMUQsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLDJCQUEyQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFM0YsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxLQUFLLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFM0Q7OztHQUdHO0FBQ0gscUJBQWEsNEJBQTZCLFlBQVcsd0JBQXdCO0lBQ3JFLHlCQUF5QixDQUFDLFVBQVUsRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUd4RTtJQUVLLHdCQUF3QixDQUFDLFVBQVUsRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUczRTtJQUVLLHdCQUF3QixDQUFDLFVBQVUsRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUczRTtJQUVLLDhCQUE4QixDQUFDLElBQUksRUFBRSxXQUFXLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBUWpGO0lBRUssaUJBQWlCLENBQUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsV0FBVyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FRckY7SUFFRCxvQkFBb0IsSUFBSSxPQUFPLENBQUM7UUFBRSxRQUFRLEVBQUUsMkJBQTJCLENBQUM7UUFBQyxRQUFRLEVBQUUsZ0JBQWdCLENBQUE7S0FBRSxDQUFDLENBRXJHO0NBQ0YifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lazy.d.ts","sourceRoot":"","sources":["../../../src/embedded/account-contract-providers/lazy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAEzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,EAAE,eAAe,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAE3F,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAE3D;;;GAGG;AACH,qBAAa,4BAA6B,YAAW,wBAAwB;IACrE,yBAAyB,CAAC,UAAU,EAAE,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC,CAGxE;IAEK,wBAAwB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAG3E;IAEK,wBAAwB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAG3E;IAEK,8BAA8B,IAAI,OAAO,CAAC,gBAAgB,CAAC,
|
|
1
|
+
{"version":3,"file":"lazy.d.ts","sourceRoot":"","sources":["../../../src/embedded/account-contract-providers/lazy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAEzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,EAAE,eAAe,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAE3F,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAE3D;;;GAGG;AACH,qBAAa,4BAA6B,YAAW,wBAAwB;IACrE,yBAAyB,CAAC,UAAU,EAAE,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC,CAGxE;IAEK,wBAAwB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAG3E;IAEK,wBAAwB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAG3E;IAEK,8BAA8B,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAQjF;IAEK,iBAAiB,CAAC,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAQrF;IAED,oBAAoB,IAAI,OAAO,CAAC;QAAE,QAAQ,EAAE,2BAA2B,CAAC;QAAC,QAAQ,EAAE,gBAAgB,CAAA;KAAE,CAAC,CAErG;CACF"}
|
|
@@ -15,13 +15,23 @@ import { getCanonicalMultiCallEntrypoint } from '@aztec/protocol-contracts/multi
|
|
|
15
15
|
const { EcdsaKAccountContract } = await import('@aztec/accounts/ecdsa/lazy');
|
|
16
16
|
return new EcdsaKAccountContract(signingKey);
|
|
17
17
|
}
|
|
18
|
-
async getStubAccountContractArtifact() {
|
|
19
|
-
|
|
20
|
-
|
|
18
|
+
async getStubAccountContractArtifact(type) {
|
|
19
|
+
if (type === 'schnorr') {
|
|
20
|
+
const { getStubSchnorrAccountContractArtifact } = await import('@aztec/accounts/stub/schnorr/lazy');
|
|
21
|
+
return getStubSchnorrAccountContractArtifact();
|
|
22
|
+
} else {
|
|
23
|
+
const { getStubEcdsaAccountContractArtifact } = await import('@aztec/accounts/stub/ecdsa/lazy');
|
|
24
|
+
return getStubEcdsaAccountContractArtifact();
|
|
25
|
+
}
|
|
21
26
|
}
|
|
22
|
-
async createStubAccount(address) {
|
|
23
|
-
|
|
24
|
-
|
|
27
|
+
async createStubAccount(address, type) {
|
|
28
|
+
if (type === 'schnorr') {
|
|
29
|
+
const { createStubSchnorrAccount } = await import('@aztec/accounts/stub/schnorr/lazy');
|
|
30
|
+
return createStubSchnorrAccount(address);
|
|
31
|
+
} else {
|
|
32
|
+
const { createStubEcdsaAccount } = await import('@aztec/accounts/stub/ecdsa/lazy');
|
|
33
|
+
return createStubEcdsaAccount(address);
|
|
34
|
+
}
|
|
25
35
|
}
|
|
26
36
|
getMulticallContract() {
|
|
27
37
|
return getCanonicalMultiCallEntrypoint();
|
|
@@ -2,6 +2,7 @@ import type { Account, AccountContract } from '@aztec/aztec.js/account';
|
|
|
2
2
|
import type { Fq } from '@aztec/foundation/curves/bn254';
|
|
3
3
|
import type { ContractArtifact } from '@aztec/stdlib/abi';
|
|
4
4
|
import type { CompleteAddress, ContractInstanceWithAddress } from '@aztec/stdlib/contract';
|
|
5
|
+
import type { AccountType } from '../wallet_db.js';
|
|
5
6
|
/**
|
|
6
7
|
* Provides account contract implementations and stub accounts for the EmbeddedWallet.
|
|
7
8
|
* Two implementations exist:
|
|
@@ -12,11 +13,11 @@ export interface AccountContractsProvider {
|
|
|
12
13
|
getSchnorrAccountContract(signingKey: Fq): Promise<AccountContract>;
|
|
13
14
|
getEcdsaRAccountContract(signingKey: Buffer): Promise<AccountContract>;
|
|
14
15
|
getEcdsaKAccountContract(signingKey: Buffer): Promise<AccountContract>;
|
|
15
|
-
getStubAccountContractArtifact(): Promise<ContractArtifact>;
|
|
16
|
+
getStubAccountContractArtifact(type: AccountType): Promise<ContractArtifact>;
|
|
16
17
|
getMulticallContract(): Promise<{
|
|
17
18
|
instance: ContractInstanceWithAddress;
|
|
18
19
|
artifact: ContractArtifact;
|
|
19
20
|
}>;
|
|
20
|
-
createStubAccount(address: CompleteAddress): Promise<Account>;
|
|
21
|
+
createStubAccount(address: CompleteAddress, type: AccountType): Promise<Account>;
|
|
21
22
|
}
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbWJlZGRlZC9hY2NvdW50LWNvbnRyYWN0LXByb3ZpZGVycy90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDeEUsT0FBTyxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDekQsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMxRCxPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUUzRixPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVuRDs7Ozs7R0FLRztBQUNILE1BQU0sV0FBVyx3QkFBd0I7SUFDdkMseUJBQXlCLENBQUMsVUFBVSxFQUFFLEVBQUUsR0FBRyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDcEUsd0JBQXdCLENBQUMsVUFBVSxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDdkUsd0JBQXdCLENBQUMsVUFBVSxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDdkUsOEJBQThCLENBQUMsSUFBSSxFQUFFLFdBQVcsR0FBRyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUM3RSxvQkFBb0IsSUFBSSxPQUFPLENBQUM7UUFBRSxRQUFRLEVBQUUsMkJBQTJCLENBQUM7UUFBQyxRQUFRLEVBQUUsZ0JBQWdCLENBQUE7S0FBRSxDQUFDLENBQUM7SUFDdkcsaUJBQWlCLENBQUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsV0FBVyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztDQUNsRiJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/embedded/account-contract-providers/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,EAAE,eAAe,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAE3F;;;;;GAKG;AACH,MAAM,WAAW,wBAAwB;IACvC,yBAAyB,CAAC,UAAU,EAAE,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IACpE,wBAAwB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IACvE,wBAAwB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IACvE,8BAA8B,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/embedded/account-contract-providers/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,EAAE,eAAe,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAE3F,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnD;;;;;GAKG;AACH,MAAM,WAAW,wBAAwB;IACvC,yBAAyB,CAAC,UAAU,EAAE,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IACpE,wBAAwB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IACvE,wBAAwB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IACvE,8BAA8B,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC7E,oBAAoB,IAAI,OAAO,CAAC;QAAE,QAAQ,EAAE,2BAA2B,CAAC;QAAC,QAAQ,EAAE,gBAAgB,CAAA;KAAE,CAAC,CAAC;IACvG,iBAAiB,CAAC,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAClF"}
|
|
@@ -1,25 +1,40 @@
|
|
|
1
1
|
import { type Account } from '@aztec/aztec.js/account';
|
|
2
2
|
import { type InteractionWaitOptions, type SendReturn } from '@aztec/aztec.js/contracts';
|
|
3
3
|
import type { Aliased, SendOptions } from '@aztec/aztec.js/wallet';
|
|
4
|
-
import { AccountManager } from '@aztec/aztec.js/wallet';
|
|
4
|
+
import { AccountManager, TxSimulationResultWithAppOffset } from '@aztec/aztec.js/wallet';
|
|
5
5
|
import { Fq, Fr } from '@aztec/foundation/curves/bn254';
|
|
6
6
|
import type { Logger } from '@aztec/foundation/log';
|
|
7
7
|
import type { PXEConfig, PXECreationOptions } from '@aztec/pxe/client/lazy';
|
|
8
8
|
import type { PXE } from '@aztec/pxe/server';
|
|
9
9
|
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
10
10
|
import type { AztecNode } from '@aztec/stdlib/interfaces/client';
|
|
11
|
-
import { type ContractOverrides, ExecutionPayload
|
|
11
|
+
import { type ContractOverrides, ExecutionPayload } from '@aztec/stdlib/tx';
|
|
12
12
|
import { BaseWallet, type SimulateViaEntrypointOptions } from '@aztec/wallet-sdk/base-wallet';
|
|
13
13
|
import type { AccountContractsProvider } from './account-contract-providers/types.js';
|
|
14
14
|
import { type AccountType, WalletDB } from './wallet_db.js';
|
|
15
|
+
/** Options for the PXE instance created by the EmbeddedWallet. */
|
|
16
|
+
export type EmbeddedWalletPXEOptions = Partial<PXEConfig> & PXECreationOptions;
|
|
17
|
+
/** Splits a unified EmbeddedWalletPXEOptions into PXEConfig overrides and PXECreationOptions. */
|
|
18
|
+
export declare function splitPxeOptions(pxe?: EmbeddedWalletPXEOptions): {
|
|
19
|
+
config: Partial<PXEConfig>;
|
|
20
|
+
creation: PXECreationOptions;
|
|
21
|
+
};
|
|
15
22
|
export type EmbeddedWalletOptions = {
|
|
16
23
|
/** Parent logger. Child loggers are derived via createChild() for each subsystem. */
|
|
17
24
|
logger?: Logger;
|
|
18
25
|
/** Use ephemeral (in-memory) stores. Data will not persist across sessions. */
|
|
19
26
|
ephemeral?: boolean;
|
|
20
|
-
/**
|
|
27
|
+
/** PXE configuration and dependency overrides (custom store, prover, simulator). */
|
|
28
|
+
pxe?: EmbeddedWalletPXEOptions;
|
|
29
|
+
/**
|
|
30
|
+
* Override PXE configuration.
|
|
31
|
+
* @deprecated Use `pxe` instead.
|
|
32
|
+
*/
|
|
21
33
|
pxeConfig?: Partial<PXEConfig>;
|
|
22
|
-
/**
|
|
34
|
+
/**
|
|
35
|
+
* Advanced PXE creation options (custom store, prover, simulator).
|
|
36
|
+
* @deprecated Use `pxe` instead.
|
|
37
|
+
*/
|
|
23
38
|
pxeOptions?: PXECreationOptions;
|
|
24
39
|
};
|
|
25
40
|
export declare class EmbeddedWallet extends BaseWallet {
|
|
@@ -39,6 +54,7 @@ export declare class EmbeddedWallet extends BaseWallet {
|
|
|
39
54
|
sendTx<W extends InteractionWaitOptions = undefined>(executionPayload: ExecutionPayload, opts: SendOptions<W>): Promise<SendReturn<W>>;
|
|
40
55
|
/**
|
|
41
56
|
* Builds contract overrides for all provided addresses by replacing their account contracts with stub implementations.
|
|
57
|
+
* Uses a type-specific stub artifact so that the stub's constructor selector matches the real account's constructor.
|
|
42
58
|
*/
|
|
43
59
|
protected buildAccountOverrides(addresses: AztecAddress[]): Promise<ContractOverrides>;
|
|
44
60
|
/**
|
|
@@ -46,7 +62,7 @@ export declare class EmbeddedWallet extends BaseWallet {
|
|
|
46
62
|
* This allows kernelless simulation with contract overrides, skipping expensive
|
|
47
63
|
* private kernel circuit execution.
|
|
48
64
|
*/
|
|
49
|
-
protected simulateViaEntrypoint(executionPayload: ExecutionPayload, opts: SimulateViaEntrypointOptions): Promise<
|
|
65
|
+
protected simulateViaEntrypoint(executionPayload: ExecutionPayload, opts: SimulateViaEntrypointOptions): Promise<TxSimulationResultWithAppOffset>;
|
|
50
66
|
protected createAccountInternal(type: AccountType, secret: Fr, salt: Fr, signingKey: Buffer): Promise<AccountManager>;
|
|
51
67
|
createAndStoreAccount(alias: string, type: AccountType, secret: Fr, salt: Fr, signingKey: Buffer): Promise<AccountManager>;
|
|
52
68
|
createSchnorrAccount(secret: Fr, salt: Fr, signingKey?: Fq, alias?: string): Promise<AccountManager>;
|
|
@@ -56,4 +72,4 @@ export declare class EmbeddedWallet extends BaseWallet {
|
|
|
56
72
|
setEstimatedGasPadding(value?: number): void;
|
|
57
73
|
stop(): Promise<void>;
|
|
58
74
|
}
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1iZWRkZWRfd2FsbGV0LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZW1iZWRkZWQvZW1iZWRkZWRfd2FsbGV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLE9BQU8sRUFBVyxNQUFNLHlCQUF5QixDQUFDO0FBRWhFLE9BQU8sRUFBRSxLQUFLLHNCQUFzQixFQUFFLEtBQUssVUFBVSxFQUErQixNQUFNLDJCQUEyQixDQUFDO0FBQ3RILE9BQU8sS0FBSyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsY0FBYyxFQUFFLCtCQUErQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFHekYsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4RCxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRCxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RSxPQUFPLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFHM0QsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFakUsT0FBTyxFQUNMLEtBQUssaUJBQWlCLEVBQ3RCLGdCQUFnQixFQU1qQixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBRSxVQUFVLEVBQUUsS0FBSyw0QkFBNEIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRTlGLE9BQU8sS0FBSyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDdEYsT0FBTyxFQUFFLEtBQUssV0FBVyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTVELGtF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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,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"embedded_wallet.d.ts","sourceRoot":"","sources":["../../src/embedded/embedded_wallet.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { NO_FROM } from '@aztec/aztec.js/account';
|
|
2
2
|
import { CallAuthorizationRequest } from '@aztec/aztec.js/authorization';
|
|
3
3
|
import { getGasLimits } from '@aztec/aztec.js/contracts';
|
|
4
|
-
import { AccountManager } from '@aztec/aztec.js/wallet';
|
|
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
7
|
import { getContractInstanceFromInstantiationParams } from '@aztec/stdlib/contract';
|
|
@@ -9,6 +9,25 @@ 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';
|
|
11
11
|
import { BaseWallet } from '@aztec/wallet-sdk/base-wallet';
|
|
12
|
+
/** Splits a unified EmbeddedWalletPXEOptions into PXEConfig overrides and PXECreationOptions. */ export function splitPxeOptions(pxe) {
|
|
13
|
+
if (!pxe) {
|
|
14
|
+
return {
|
|
15
|
+
config: {},
|
|
16
|
+
creation: {}
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
const { loggers, loggerActorLabel, proverOrOptions, store, simulator, ...config } = pxe;
|
|
20
|
+
return {
|
|
21
|
+
config,
|
|
22
|
+
creation: {
|
|
23
|
+
loggers,
|
|
24
|
+
loggerActorLabel,
|
|
25
|
+
proverOrOptions,
|
|
26
|
+
store,
|
|
27
|
+
simulator
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
}
|
|
12
31
|
const DEFAULT_ESTIMATED_GAS_PADDING = 0.1;
|
|
13
32
|
export class EmbeddedWallet extends BaseWallet {
|
|
14
33
|
walletDB;
|
|
@@ -59,7 +78,7 @@ export class EmbeddedWallet extends BaseWallet {
|
|
|
59
78
|
const simulationResult = await this.simulateViaEntrypoint(executionPayload, {
|
|
60
79
|
from: opts.from,
|
|
61
80
|
feeOptions,
|
|
62
|
-
|
|
81
|
+
additionalScopes: opts.additionalScopes,
|
|
63
82
|
skipTxValidation: true
|
|
64
83
|
});
|
|
65
84
|
const offchainEffects = collectOffchainEffects(simulationResult.privateExecutionResult);
|
|
@@ -109,21 +128,31 @@ export class EmbeddedWallet extends BaseWallet {
|
|
|
109
128
|
}
|
|
110
129
|
/**
|
|
111
130
|
* Builds contract overrides for all provided addresses by replacing their account contracts with stub implementations.
|
|
131
|
+
* Uses a type-specific stub artifact so that the stub's constructor selector matches the real account's constructor.
|
|
112
132
|
*/ async buildAccountOverrides(addresses) {
|
|
113
133
|
const accounts = await this.getAccounts();
|
|
114
134
|
const contracts = {};
|
|
115
|
-
const stubArtifact = await this.accountContracts.getStubAccountContractArtifact();
|
|
116
135
|
const filtered = accounts.filter((acc)=>addresses.some((addr)=>addr.equals(acc.item)));
|
|
117
136
|
for (const account of filtered){
|
|
118
137
|
const address = account.item;
|
|
138
|
+
const { type } = await this.walletDB.retrieveAccount(address);
|
|
139
|
+
const stubArtifact = await this.accountContracts.getStubAccountContractArtifact(type);
|
|
119
140
|
const originalAccount = await this.getAccountFromAddress(address);
|
|
120
141
|
const completeAddress = originalAccount.getCompleteAddress();
|
|
121
142
|
const contractInstance = await this.pxe.getContractInstance(completeAddress.address);
|
|
122
143
|
if (!contractInstance) {
|
|
123
144
|
throw new Error(`No contract instance found for address: ${completeAddress.address} during account override building. This is a bug!`);
|
|
124
145
|
}
|
|
146
|
+
const stubConstructorArgs = type === 'schnorr' ? [
|
|
147
|
+
Fr.ZERO,
|
|
148
|
+
Fr.ZERO
|
|
149
|
+
] : [
|
|
150
|
+
Buffer.alloc(32),
|
|
151
|
+
Buffer.alloc(32)
|
|
152
|
+
];
|
|
125
153
|
const stubInstance = await getContractInstanceFromInstantiationParams(stubArtifact, {
|
|
126
|
-
salt: Fr.random()
|
|
154
|
+
salt: Fr.random(),
|
|
155
|
+
constructorArgs: stubConstructorArgs
|
|
127
156
|
});
|
|
128
157
|
contracts[address.toString()] = {
|
|
129
158
|
instance: stubInstance,
|
|
@@ -137,23 +166,25 @@ export class EmbeddedWallet extends BaseWallet {
|
|
|
137
166
|
* This allows kernelless simulation with contract overrides, skipping expensive
|
|
138
167
|
* private kernel circuit execution.
|
|
139
168
|
*/ async simulateViaEntrypoint(executionPayload, opts) {
|
|
140
|
-
const { from, feeOptions,
|
|
169
|
+
const { from, feeOptions, additionalScopes, skipTxValidation, skipFeeEnforcement } = opts;
|
|
170
|
+
const scopes = this.scopesFrom(from, additionalScopes);
|
|
141
171
|
const feeExecutionPayload = await feeOptions.walletFeePaymentMethod?.getExecutionPayload();
|
|
142
172
|
const finalExecutionPayload = feeExecutionPayload ? mergeExecutionPayloads([
|
|
143
173
|
feeExecutionPayload,
|
|
144
174
|
executionPayload
|
|
145
175
|
]) : executionPayload;
|
|
146
176
|
const chainInfo = await this.getChainInfo();
|
|
147
|
-
const accountOverrides = await this.buildAccountOverrides(
|
|
177
|
+
const accountOverrides = await this.buildAccountOverrides(scopes);
|
|
148
178
|
const overrides = new SimulationOverrides(accountOverrides);
|
|
149
179
|
let txRequest;
|
|
150
180
|
if (from === NO_FROM) {
|
|
151
181
|
const entrypoint = new DefaultEntrypoint();
|
|
152
182
|
txRequest = await entrypoint.createTxExecutionRequest(finalExecutionPayload, feeOptions.gasSettings, chainInfo);
|
|
153
183
|
} else {
|
|
184
|
+
const { type } = await this.walletDB.retrieveAccount(from);
|
|
154
185
|
const originalAccount = await this.getAccountFromAddress(from);
|
|
155
186
|
const completeAddress = originalAccount.getCompleteAddress();
|
|
156
|
-
const account = await this.accountContracts.createStubAccount(completeAddress);
|
|
187
|
+
const account = await this.accountContracts.createStubAccount(completeAddress, type);
|
|
157
188
|
const executionOptions = {
|
|
158
189
|
txNonce: Fr.random(),
|
|
159
190
|
cancellable: this.cancellableTransactions,
|
|
@@ -162,13 +193,15 @@ export class EmbeddedWallet extends BaseWallet {
|
|
|
162
193
|
};
|
|
163
194
|
txRequest = await account.createTxExecutionRequest(finalExecutionPayload, feeOptions.gasSettings, chainInfo, executionOptions);
|
|
164
195
|
}
|
|
165
|
-
|
|
196
|
+
const result = await this.pxe.simulateTx(txRequest, {
|
|
166
197
|
simulatePublic: true,
|
|
167
198
|
skipFeeEnforcement,
|
|
168
199
|
skipTxValidation,
|
|
169
200
|
overrides,
|
|
170
201
|
scopes
|
|
171
202
|
});
|
|
203
|
+
const appCallOffset = await this.computeAppCallOffset(from, feeOptions);
|
|
204
|
+
return TxSimulationResultWithAppOffset.fromResultAndOffset(result, appCallOffset);
|
|
172
205
|
}
|
|
173
206
|
async createAccountInternal(type, secret, salt, signingKey) {
|
|
174
207
|
let contract;
|
|
@@ -8,7 +8,7 @@ export declare class BrowserEmbeddedWallet extends EmbeddedWallet {
|
|
|
8
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>;
|
|
9
9
|
}
|
|
10
10
|
export { BrowserEmbeddedWallet as EmbeddedWallet };
|
|
11
|
-
export type { EmbeddedWalletOptions } from '../embedded_wallet.js';
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJvd3Nlci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VtYmVkZGVkL2VudHJ5cG9pbnRzL2Jyb3dzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssU0FBUyxFQUF5QixNQUFNLHNCQUFzQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUVsRSxPQUFPLEVBQUUsS0FBSyxHQUFHLEVBQXNDLE1BQU0sd0JBQXdCLENBQUM7QUFJdEYsT0FBTyxLQUFLLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUN2RixPQUFPLEVBQUUsY0FBYyxFQUFFLEtBQUsscUJBQXFCLEVBQW1CLE1BQU0sdUJBQXVCLENBQUM7QUFDcEcsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTNDLHFCQUFhLHFCQUFzQixTQUFRLGNBQWM7SUFDdkQsT0FBYSxNQUFNLENBQUMsQ0FBQyxTQUFTLHFCQUFxQixHQUFHLHFCQUFxQixFQUN6RSxJQUFJLEVBQUUsS0FDSixHQUFHLEVBQUUsR0FBRyxFQUNSLFNBQVMsRUFBRSxTQUFTLEVBQ3BCLFFBQVEsRUFBRSxRQUFRLEVBQ2xCLGdCQUFnQixFQUFFLHdCQUF3QixFQUMxQyxHQUFHLENBQUMsRUFBRSxNQUFNLEtBQ1QsQ0FBQyxFQUNOLFNBQVMsRUFBRSxNQUFNLEdBQUcsU0FBUyxFQUM3QixPQUFPLEdBQUUscUJBQTBCLEdBQ2xDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FnRFo7Q0FDRjtBQUVELE9BQU8sRUFBRSxxQkFBcUIsSUFBSSxjQUFjLEVBQUUsQ0FBQztBQUNuRCxZQUFZLEVBQUUscUJBQXFCLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM3RixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsWUFBWSxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDIn0=
|
|
@@ -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,
|
|
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,CAgDZ;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"}
|
|
@@ -4,28 +4,38 @@ 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
6
|
import { LazyAccountContractsProvider } from '../account-contract-providers/lazy.js';
|
|
7
|
-
import { EmbeddedWallet } from '../embedded_wallet.js';
|
|
7
|
+
import { EmbeddedWallet, splitPxeOptions } from '../embedded_wallet.js';
|
|
8
8
|
import { WalletDB } from '../wallet_db.js';
|
|
9
9
|
export class BrowserEmbeddedWallet extends EmbeddedWallet {
|
|
10
10
|
static async create(nodeOrUrl, options = {}) {
|
|
11
11
|
const rootLogger = options.logger ?? createLogger('embedded-wallet');
|
|
12
12
|
const aztecNode = typeof nodeOrUrl === 'string' ? createAztecNodeClient(nodeOrUrl) : nodeOrUrl;
|
|
13
13
|
const l1Contracts = await aztecNode.getL1ContractAddresses();
|
|
14
|
+
// Support both the new unified `pxe` option and the deprecated `pxeConfig`/`pxeOptions`.
|
|
15
|
+
const { config: pxeConfigFromPxe, creation: pxeCreationFromPxe } = splitPxeOptions(options.pxe);
|
|
16
|
+
const mergedConfigOverrides = {
|
|
17
|
+
...options.pxeConfig,
|
|
18
|
+
...pxeConfigFromPxe
|
|
19
|
+
};
|
|
20
|
+
const mergedCreationOverrides = {
|
|
21
|
+
...options.pxeOptions,
|
|
22
|
+
...pxeCreationFromPxe
|
|
23
|
+
};
|
|
14
24
|
const pxeConfig = Object.assign(getPXEConfig(), {
|
|
15
|
-
proverEnabled:
|
|
25
|
+
proverEnabled: mergedConfigOverrides.proverEnabled ?? false,
|
|
16
26
|
dataDirectory: `pxe_data_${l1Contracts.rollupAddress}`,
|
|
17
|
-
...
|
|
27
|
+
...mergedConfigOverrides
|
|
18
28
|
});
|
|
19
29
|
if (options.ephemeral) {
|
|
20
30
|
delete pxeConfig.dataDirectory;
|
|
21
31
|
}
|
|
22
32
|
const pxeOptions = {
|
|
23
|
-
...
|
|
33
|
+
...mergedCreationOverrides,
|
|
24
34
|
loggers: {
|
|
25
35
|
store: rootLogger.createChild('pxe:data'),
|
|
26
36
|
pxe: rootLogger.createChild('pxe:service'),
|
|
27
37
|
prover: rootLogger.createChild('pxe:prover'),
|
|
28
|
-
...
|
|
38
|
+
...mergedCreationOverrides.loggers
|
|
29
39
|
}
|
|
30
40
|
};
|
|
31
41
|
const pxe = await createPXE(aztecNode, pxeConfig, pxeOptions);
|
|
@@ -8,7 +8,7 @@ export declare class NodeEmbeddedWallet extends EmbeddedWallet {
|
|
|
8
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>;
|
|
9
9
|
}
|
|
10
10
|
export { NodeEmbeddedWallet as EmbeddedWallet };
|
|
11
|
-
export type { EmbeddedWalletOptions } from '../embedded_wallet.js';
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VtYmVkZGVkL2VudHJ5cG9pbnRzL25vZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFnQixNQUFNLHVCQUF1QixDQUFDO0FBR2xFLE9BQU8sRUFBRSxLQUFLLEdBQUcsRUFBc0MsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRixPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUdqRSxPQUFPLEtBQUssRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxjQUFjLEVBQUUsS0FBSyxxQkFBcUIsRUFBbUIsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFM0MscUJBQWEsa0JBQW1CLFNBQVEsY0FBYztJQUNwRCxPQUFhLE1BQU0sQ0FBQyxDQUFDLFNBQVMsa0JBQWtCLEdBQUcsa0JBQWtCLEVBQ25FLElBQUksRUFBRSxLQUNKLEdBQUcsRUFBRSxHQUFHLEVBQ1IsU0FBUyxFQUFFLFNBQVMsRUFDcEIsUUFBUSxFQUFFLFFBQVEsRUFDbEIsZ0JBQWdCLEVBQUUsd0JBQXdCLEVBQzFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sS0FDVCxDQUFDLEVBQ04sU0FBUyxFQUFFLE1BQU0sR0FBRyxTQUFTLEVBQzdCLE9BQU8sR0FBRSxxQkFBMEIsR0FDbEMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQXNEWjtDQUNGO0FBRUQsT0FBTyxFQUFFLGtCQUFrQixJQUFJLGNBQWMsRUFBRSxDQUFDO0FBQ2hELFlBQVksRUFBRSxxQkFBcUIsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzdGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxZQUFZLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUMifQ==
|
|
@@ -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,
|
|
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,CAsDZ;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"}
|
|
@@ -4,28 +4,38 @@ 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
6
|
import { BundleAccountContractsProvider } from '../account-contract-providers/bundle.js';
|
|
7
|
-
import { EmbeddedWallet } from '../embedded_wallet.js';
|
|
7
|
+
import { EmbeddedWallet, splitPxeOptions } from '../embedded_wallet.js';
|
|
8
8
|
import { WalletDB } from '../wallet_db.js';
|
|
9
9
|
export class NodeEmbeddedWallet extends EmbeddedWallet {
|
|
10
10
|
static async create(nodeOrUrl, options = {}) {
|
|
11
11
|
const rootLogger = options.logger ?? createLogger('embedded-wallet');
|
|
12
12
|
const aztecNode = typeof nodeOrUrl === 'string' ? createAztecNodeClient(nodeOrUrl) : nodeOrUrl;
|
|
13
13
|
const l1Contracts = await aztecNode.getL1ContractAddresses();
|
|
14
|
+
// Support both the new unified `pxe` option and the deprecated `pxeConfig`/`pxeOptions`.
|
|
15
|
+
const { config: pxeConfigFromPxe, creation: pxeCreationFromPxe } = splitPxeOptions(options.pxe);
|
|
16
|
+
const mergedConfigOverrides = {
|
|
17
|
+
...options.pxeConfig,
|
|
18
|
+
...pxeConfigFromPxe
|
|
19
|
+
};
|
|
20
|
+
const mergedCreationOverrides = {
|
|
21
|
+
...options.pxeOptions,
|
|
22
|
+
...pxeCreationFromPxe
|
|
23
|
+
};
|
|
14
24
|
const pxeConfig = Object.assign(getPXEConfig(), {
|
|
15
|
-
proverEnabled:
|
|
25
|
+
proverEnabled: mergedConfigOverrides.proverEnabled ?? false,
|
|
16
26
|
dataDirectory: `pxe_data_${l1Contracts.rollupAddress}`,
|
|
17
|
-
...
|
|
27
|
+
...mergedConfigOverrides
|
|
18
28
|
});
|
|
19
29
|
if (options.ephemeral) {
|
|
20
30
|
delete pxeConfig.dataDirectory;
|
|
21
31
|
}
|
|
22
32
|
const pxeOptions = {
|
|
23
|
-
...
|
|
33
|
+
...mergedCreationOverrides,
|
|
24
34
|
loggers: {
|
|
25
35
|
store: rootLogger.createChild('pxe:data'),
|
|
26
36
|
pxe: rootLogger.createChild('pxe:service'),
|
|
27
37
|
prover: rootLogger.createChild('pxe:prover'),
|
|
28
|
-
...
|
|
38
|
+
...mergedCreationOverrides.loggers
|
|
29
39
|
}
|
|
30
40
|
};
|
|
31
41
|
const pxe = await createPXE(aztecNode, pxeConfig, pxeOptions);
|
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": "4.2.0-nightly.
|
|
4
|
+
"version": "4.2.0-nightly.20260411",
|
|
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": "4.2.0-nightly.
|
|
31
|
-
"@aztec/aztec.js": "4.2.0-nightly.
|
|
32
|
-
"@aztec/entrypoints": "4.2.0-nightly.
|
|
33
|
-
"@aztec/foundation": "4.2.0-nightly.
|
|
34
|
-
"@aztec/kv-store": "4.2.0-nightly.
|
|
35
|
-
"@aztec/protocol-contracts": "4.2.0-nightly.
|
|
36
|
-
"@aztec/pxe": "4.2.0-nightly.
|
|
37
|
-
"@aztec/stdlib": "4.2.0-nightly.
|
|
38
|
-
"@aztec/wallet-sdk": "4.2.0-nightly.
|
|
30
|
+
"@aztec/accounts": "4.2.0-nightly.20260411",
|
|
31
|
+
"@aztec/aztec.js": "4.2.0-nightly.20260411",
|
|
32
|
+
"@aztec/entrypoints": "4.2.0-nightly.20260411",
|
|
33
|
+
"@aztec/foundation": "4.2.0-nightly.20260411",
|
|
34
|
+
"@aztec/kv-store": "4.2.0-nightly.20260411",
|
|
35
|
+
"@aztec/protocol-contracts": "4.2.0-nightly.20260411",
|
|
36
|
+
"@aztec/pxe": "4.2.0-nightly.20260411",
|
|
37
|
+
"@aztec/stdlib": "4.2.0-nightly.20260411",
|
|
38
|
+
"@aztec/wallet-sdk": "4.2.0-nightly.20260411"
|
|
39
39
|
},
|
|
40
40
|
"devDependencies": {
|
|
41
41
|
"@jest/globals": "^30.0.0",
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import { EcdsaKAccountContract, EcdsaRAccountContract } from '@aztec/accounts/ecdsa';
|
|
2
2
|
import { SchnorrAccountContract } from '@aztec/accounts/schnorr';
|
|
3
|
-
import {
|
|
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 { getCanonicalMultiCallEntrypoint } from '@aztec/protocol-contracts/multi-call-entrypoint';
|
|
7
8
|
import type { ContractArtifact } from '@aztec/stdlib/abi';
|
|
8
9
|
import type { CompleteAddress, ContractInstanceWithAddress } from '@aztec/stdlib/contract';
|
|
9
10
|
|
|
11
|
+
import type { AccountType } from '../wallet_db.js';
|
|
10
12
|
import type { AccountContractsProvider } from './types.js';
|
|
11
13
|
|
|
12
14
|
/**
|
|
@@ -26,12 +28,12 @@ export class BundleAccountContractsProvider implements AccountContractsProvider
|
|
|
26
28
|
return Promise.resolve(new EcdsaKAccountContract(signingKey));
|
|
27
29
|
}
|
|
28
30
|
|
|
29
|
-
getStubAccountContractArtifact(): Promise<ContractArtifact> {
|
|
30
|
-
return Promise.resolve(
|
|
31
|
+
getStubAccountContractArtifact(type: AccountType): Promise<ContractArtifact> {
|
|
32
|
+
return Promise.resolve(type === 'schnorr' ? StubSchnorrAccountContractArtifact : StubEcdsaAccountContractArtifact);
|
|
31
33
|
}
|
|
32
34
|
|
|
33
|
-
createStubAccount(address: CompleteAddress): Promise<Account> {
|
|
34
|
-
return Promise.resolve(
|
|
35
|
+
createStubAccount(address: CompleteAddress, type: AccountType): Promise<Account> {
|
|
36
|
+
return Promise.resolve(type === 'schnorr' ? createStubSchnorrAccount(address) : createStubEcdsaAccount(address));
|
|
35
37
|
}
|
|
36
38
|
|
|
37
39
|
getMulticallContract(): Promise<{ instance: ContractInstanceWithAddress; artifact: ContractArtifact }> {
|
|
@@ -4,6 +4,7 @@ import { getCanonicalMultiCallEntrypoint } from '@aztec/protocol-contracts/multi
|
|
|
4
4
|
import type { ContractArtifact } from '@aztec/stdlib/abi';
|
|
5
5
|
import type { CompleteAddress, ContractInstanceWithAddress } from '@aztec/stdlib/contract';
|
|
6
6
|
|
|
7
|
+
import type { AccountType } from '../wallet_db.js';
|
|
7
8
|
import type { AccountContractsProvider } from './types.js';
|
|
8
9
|
|
|
9
10
|
/**
|
|
@@ -26,14 +27,24 @@ export class LazyAccountContractsProvider implements AccountContractsProvider {
|
|
|
26
27
|
return new EcdsaKAccountContract(signingKey);
|
|
27
28
|
}
|
|
28
29
|
|
|
29
|
-
async getStubAccountContractArtifact(): Promise<ContractArtifact> {
|
|
30
|
-
|
|
31
|
-
|
|
30
|
+
async getStubAccountContractArtifact(type: AccountType): Promise<ContractArtifact> {
|
|
31
|
+
if (type === 'schnorr') {
|
|
32
|
+
const { getStubSchnorrAccountContractArtifact } = await import('@aztec/accounts/stub/schnorr/lazy');
|
|
33
|
+
return getStubSchnorrAccountContractArtifact();
|
|
34
|
+
} else {
|
|
35
|
+
const { getStubEcdsaAccountContractArtifact } = await import('@aztec/accounts/stub/ecdsa/lazy');
|
|
36
|
+
return getStubEcdsaAccountContractArtifact();
|
|
37
|
+
}
|
|
32
38
|
}
|
|
33
39
|
|
|
34
|
-
async createStubAccount(address: CompleteAddress): Promise<Account> {
|
|
35
|
-
|
|
36
|
-
|
|
40
|
+
async createStubAccount(address: CompleteAddress, type: AccountType): Promise<Account> {
|
|
41
|
+
if (type === 'schnorr') {
|
|
42
|
+
const { createStubSchnorrAccount } = await import('@aztec/accounts/stub/schnorr/lazy');
|
|
43
|
+
return createStubSchnorrAccount(address);
|
|
44
|
+
} else {
|
|
45
|
+
const { createStubEcdsaAccount } = await import('@aztec/accounts/stub/ecdsa/lazy');
|
|
46
|
+
return createStubEcdsaAccount(address);
|
|
47
|
+
}
|
|
37
48
|
}
|
|
38
49
|
|
|
39
50
|
getMulticallContract(): Promise<{ instance: ContractInstanceWithAddress; artifact: ContractArtifact }> {
|
|
@@ -3,6 +3,8 @@ import type { Fq } from '@aztec/foundation/curves/bn254';
|
|
|
3
3
|
import type { ContractArtifact } from '@aztec/stdlib/abi';
|
|
4
4
|
import type { CompleteAddress, ContractInstanceWithAddress } from '@aztec/stdlib/contract';
|
|
5
5
|
|
|
6
|
+
import type { AccountType } from '../wallet_db.js';
|
|
7
|
+
|
|
6
8
|
/**
|
|
7
9
|
* Provides account contract implementations and stub accounts for the EmbeddedWallet.
|
|
8
10
|
* Two implementations exist:
|
|
@@ -13,7 +15,7 @@ export interface AccountContractsProvider {
|
|
|
13
15
|
getSchnorrAccountContract(signingKey: Fq): Promise<AccountContract>;
|
|
14
16
|
getEcdsaRAccountContract(signingKey: Buffer): Promise<AccountContract>;
|
|
15
17
|
getEcdsaKAccountContract(signingKey: Buffer): Promise<AccountContract>;
|
|
16
|
-
getStubAccountContractArtifact(): Promise<ContractArtifact>;
|
|
18
|
+
getStubAccountContractArtifact(type: AccountType): Promise<ContractArtifact>;
|
|
17
19
|
getMulticallContract(): Promise<{ instance: ContractInstanceWithAddress; artifact: ContractArtifact }>;
|
|
18
|
-
createStubAccount(address: CompleteAddress): Promise<Account>;
|
|
20
|
+
createStubAccount(address: CompleteAddress, type: AccountType): Promise<Account>;
|
|
19
21
|
}
|
|
@@ -2,7 +2,7 @@ import { type Account, NO_FROM } from '@aztec/aztec.js/account';
|
|
|
2
2
|
import { CallAuthorizationRequest } from '@aztec/aztec.js/authorization';
|
|
3
3
|
import { type InteractionWaitOptions, type SendReturn, type WaitOpts, getGasLimits } from '@aztec/aztec.js/contracts';
|
|
4
4
|
import type { Aliased, SendOptions } from '@aztec/aztec.js/wallet';
|
|
5
|
-
import { AccountManager } from '@aztec/aztec.js/wallet';
|
|
5
|
+
import { AccountManager, TxSimulationResultWithAppOffset } from '@aztec/aztec.js/wallet';
|
|
6
6
|
import type { DefaultAccountEntrypointOptions } from '@aztec/entrypoints/account';
|
|
7
7
|
import { DefaultEntrypoint } from '@aztec/entrypoints/default';
|
|
8
8
|
import { Fq, Fr } from '@aztec/foundation/curves/bn254';
|
|
@@ -19,7 +19,6 @@ import {
|
|
|
19
19
|
ExecutionPayload,
|
|
20
20
|
SimulationOverrides,
|
|
21
21
|
type TxExecutionRequest,
|
|
22
|
-
type TxSimulationResult,
|
|
23
22
|
TxStatus,
|
|
24
23
|
collectOffchainEffects,
|
|
25
24
|
mergeExecutionPayloads,
|
|
@@ -29,14 +28,37 @@ import { BaseWallet, type SimulateViaEntrypointOptions } from '@aztec/wallet-sdk
|
|
|
29
28
|
import type { AccountContractsProvider } from './account-contract-providers/types.js';
|
|
30
29
|
import { type AccountType, WalletDB } from './wallet_db.js';
|
|
31
30
|
|
|
31
|
+
/** Options for the PXE instance created by the EmbeddedWallet. */
|
|
32
|
+
export type EmbeddedWalletPXEOptions = Partial<PXEConfig> & PXECreationOptions;
|
|
33
|
+
|
|
34
|
+
/** Splits a unified EmbeddedWalletPXEOptions into PXEConfig overrides and PXECreationOptions. */
|
|
35
|
+
export function splitPxeOptions(pxe?: EmbeddedWalletPXEOptions): {
|
|
36
|
+
config: Partial<PXEConfig>;
|
|
37
|
+
creation: PXECreationOptions;
|
|
38
|
+
} {
|
|
39
|
+
if (!pxe) {
|
|
40
|
+
return { config: {}, creation: {} };
|
|
41
|
+
}
|
|
42
|
+
const { loggers, loggerActorLabel, proverOrOptions, store, simulator, ...config } = pxe;
|
|
43
|
+
return { config, creation: { loggers, loggerActorLabel, proverOrOptions, store, simulator } };
|
|
44
|
+
}
|
|
45
|
+
|
|
32
46
|
export type EmbeddedWalletOptions = {
|
|
33
47
|
/** Parent logger. Child loggers are derived via createChild() for each subsystem. */
|
|
34
48
|
logger?: Logger;
|
|
35
49
|
/** Use ephemeral (in-memory) stores. Data will not persist across sessions. */
|
|
36
50
|
ephemeral?: boolean;
|
|
37
|
-
/**
|
|
51
|
+
/** PXE configuration and dependency overrides (custom store, prover, simulator). */
|
|
52
|
+
pxe?: EmbeddedWalletPXEOptions;
|
|
53
|
+
/**
|
|
54
|
+
* Override PXE configuration.
|
|
55
|
+
* @deprecated Use `pxe` instead.
|
|
56
|
+
*/
|
|
38
57
|
pxeConfig?: Partial<PXEConfig>;
|
|
39
|
-
/**
|
|
58
|
+
/**
|
|
59
|
+
* Advanced PXE creation options (custom store, prover, simulator).
|
|
60
|
+
* @deprecated Use `pxe` instead.
|
|
61
|
+
*/
|
|
40
62
|
pxeOptions?: PXECreationOptions;
|
|
41
63
|
};
|
|
42
64
|
|
|
@@ -108,7 +130,7 @@ export class EmbeddedWallet extends BaseWallet {
|
|
|
108
130
|
const simulationResult = await this.simulateViaEntrypoint(executionPayload, {
|
|
109
131
|
from: opts.from,
|
|
110
132
|
feeOptions,
|
|
111
|
-
|
|
133
|
+
additionalScopes: opts.additionalScopes,
|
|
112
134
|
skipTxValidation: true,
|
|
113
135
|
});
|
|
114
136
|
|
|
@@ -162,17 +184,19 @@ export class EmbeddedWallet extends BaseWallet {
|
|
|
162
184
|
|
|
163
185
|
/**
|
|
164
186
|
* Builds contract overrides for all provided addresses by replacing their account contracts with stub implementations.
|
|
187
|
+
* Uses a type-specific stub artifact so that the stub's constructor selector matches the real account's constructor.
|
|
165
188
|
*/
|
|
166
189
|
protected async buildAccountOverrides(addresses: AztecAddress[]): Promise<ContractOverrides> {
|
|
167
190
|
const accounts = await this.getAccounts();
|
|
168
191
|
const contracts: ContractOverrides = {};
|
|
169
192
|
|
|
170
|
-
const stubArtifact = await this.accountContracts.getStubAccountContractArtifact();
|
|
171
|
-
|
|
172
193
|
const filtered = accounts.filter(acc => addresses.some(addr => addr.equals(acc.item)));
|
|
173
194
|
|
|
174
195
|
for (const account of filtered) {
|
|
175
196
|
const address = account.item;
|
|
197
|
+
const { type } = await this.walletDB.retrieveAccount(address);
|
|
198
|
+
const stubArtifact = await this.accountContracts.getStubAccountContractArtifact(type);
|
|
199
|
+
|
|
176
200
|
const originalAccount = await this.getAccountFromAddress(address);
|
|
177
201
|
const completeAddress = originalAccount.getCompleteAddress();
|
|
178
202
|
const contractInstance = await this.pxe.getContractInstance(completeAddress.address);
|
|
@@ -182,8 +206,10 @@ export class EmbeddedWallet extends BaseWallet {
|
|
|
182
206
|
);
|
|
183
207
|
}
|
|
184
208
|
|
|
209
|
+
const stubConstructorArgs = type === 'schnorr' ? [Fr.ZERO, Fr.ZERO] : [Buffer.alloc(32), Buffer.alloc(32)];
|
|
185
210
|
const stubInstance = await getContractInstanceFromInstantiationParams(stubArtifact, {
|
|
186
211
|
salt: Fr.random(),
|
|
212
|
+
constructorArgs: stubConstructorArgs,
|
|
187
213
|
});
|
|
188
214
|
|
|
189
215
|
contracts[address.toString()] = {
|
|
@@ -203,8 +229,9 @@ export class EmbeddedWallet extends BaseWallet {
|
|
|
203
229
|
protected override async simulateViaEntrypoint(
|
|
204
230
|
executionPayload: ExecutionPayload,
|
|
205
231
|
opts: SimulateViaEntrypointOptions,
|
|
206
|
-
): Promise<
|
|
207
|
-
const { from, feeOptions,
|
|
232
|
+
): Promise<TxSimulationResultWithAppOffset> {
|
|
233
|
+
const { from, feeOptions, additionalScopes, skipTxValidation, skipFeeEnforcement } = opts;
|
|
234
|
+
const scopes = this.scopesFrom(from, additionalScopes);
|
|
208
235
|
|
|
209
236
|
const feeExecutionPayload = await feeOptions.walletFeePaymentMethod?.getExecutionPayload();
|
|
210
237
|
const finalExecutionPayload = feeExecutionPayload
|
|
@@ -212,7 +239,7 @@ export class EmbeddedWallet extends BaseWallet {
|
|
|
212
239
|
: executionPayload;
|
|
213
240
|
const chainInfo = await this.getChainInfo();
|
|
214
241
|
|
|
215
|
-
const accountOverrides = await this.buildAccountOverrides(
|
|
242
|
+
const accountOverrides = await this.buildAccountOverrides(scopes);
|
|
216
243
|
const overrides = new SimulationOverrides(accountOverrides);
|
|
217
244
|
|
|
218
245
|
let txRequest: TxExecutionRequest;
|
|
@@ -220,9 +247,10 @@ export class EmbeddedWallet extends BaseWallet {
|
|
|
220
247
|
const entrypoint = new DefaultEntrypoint();
|
|
221
248
|
txRequest = await entrypoint.createTxExecutionRequest(finalExecutionPayload, feeOptions.gasSettings, chainInfo);
|
|
222
249
|
} else {
|
|
250
|
+
const { type } = await this.walletDB.retrieveAccount(from);
|
|
223
251
|
const originalAccount = await this.getAccountFromAddress(from);
|
|
224
252
|
const completeAddress = originalAccount.getCompleteAddress();
|
|
225
|
-
const account = await this.accountContracts.createStubAccount(completeAddress);
|
|
253
|
+
const account = await this.accountContracts.createStubAccount(completeAddress, type);
|
|
226
254
|
const executionOptions: DefaultAccountEntrypointOptions = {
|
|
227
255
|
txNonce: Fr.random(),
|
|
228
256
|
cancellable: this.cancellableTransactions,
|
|
@@ -237,13 +265,15 @@ export class EmbeddedWallet extends BaseWallet {
|
|
|
237
265
|
);
|
|
238
266
|
}
|
|
239
267
|
|
|
240
|
-
|
|
268
|
+
const result = await this.pxe.simulateTx(txRequest, {
|
|
241
269
|
simulatePublic: true,
|
|
242
270
|
skipFeeEnforcement,
|
|
243
271
|
skipTxValidation,
|
|
244
272
|
overrides,
|
|
245
273
|
scopes,
|
|
246
274
|
});
|
|
275
|
+
const appCallOffset = await this.computeAppCallOffset(from, feeOptions);
|
|
276
|
+
return TxSimulationResultWithAppOffset.fromResultAndOffset(result, appCallOffset);
|
|
247
277
|
}
|
|
248
278
|
|
|
249
279
|
protected async createAccountInternal(
|
|
@@ -6,7 +6,7 @@ import { type PXEConfig, getPXEConfig } from '@aztec/pxe/config';
|
|
|
6
6
|
|
|
7
7
|
import { LazyAccountContractsProvider } from '../account-contract-providers/lazy.js';
|
|
8
8
|
import type { AccountContractsProvider } from '../account-contract-providers/types.js';
|
|
9
|
-
import { EmbeddedWallet, type EmbeddedWalletOptions } from '../embedded_wallet.js';
|
|
9
|
+
import { EmbeddedWallet, type EmbeddedWalletOptions, splitPxeOptions } from '../embedded_wallet.js';
|
|
10
10
|
import { WalletDB } from '../wallet_db.js';
|
|
11
11
|
|
|
12
12
|
export class BrowserEmbeddedWallet extends EmbeddedWallet {
|
|
@@ -26,10 +26,15 @@ export class BrowserEmbeddedWallet extends EmbeddedWallet {
|
|
|
26
26
|
const aztecNode = typeof nodeOrUrl === 'string' ? createAztecNodeClient(nodeOrUrl) : nodeOrUrl;
|
|
27
27
|
const l1Contracts = await aztecNode.getL1ContractAddresses();
|
|
28
28
|
|
|
29
|
+
// Support both the new unified `pxe` option and the deprecated `pxeConfig`/`pxeOptions`.
|
|
30
|
+
const { config: pxeConfigFromPxe, creation: pxeCreationFromPxe } = splitPxeOptions(options.pxe);
|
|
31
|
+
const mergedConfigOverrides = { ...options.pxeConfig, ...pxeConfigFromPxe };
|
|
32
|
+
const mergedCreationOverrides: PXECreationOptions = { ...options.pxeOptions, ...pxeCreationFromPxe };
|
|
33
|
+
|
|
29
34
|
const pxeConfig: PXEConfig = Object.assign(getPXEConfig(), {
|
|
30
|
-
proverEnabled:
|
|
35
|
+
proverEnabled: mergedConfigOverrides.proverEnabled ?? false,
|
|
31
36
|
dataDirectory: `pxe_data_${l1Contracts.rollupAddress}`,
|
|
32
|
-
...
|
|
37
|
+
...mergedConfigOverrides,
|
|
33
38
|
});
|
|
34
39
|
|
|
35
40
|
if (options.ephemeral) {
|
|
@@ -37,12 +42,12 @@ export class BrowserEmbeddedWallet extends EmbeddedWallet {
|
|
|
37
42
|
}
|
|
38
43
|
|
|
39
44
|
const pxeOptions: PXECreationOptions = {
|
|
40
|
-
...
|
|
45
|
+
...mergedCreationOverrides,
|
|
41
46
|
loggers: {
|
|
42
47
|
store: rootLogger.createChild('pxe:data'),
|
|
43
48
|
pxe: rootLogger.createChild('pxe:service'),
|
|
44
49
|
prover: rootLogger.createChild('pxe:prover'),
|
|
45
|
-
...
|
|
50
|
+
...mergedCreationOverrides.loggers,
|
|
46
51
|
},
|
|
47
52
|
};
|
|
48
53
|
|
|
@@ -67,6 +72,6 @@ export class BrowserEmbeddedWallet extends EmbeddedWallet {
|
|
|
67
72
|
}
|
|
68
73
|
|
|
69
74
|
export { BrowserEmbeddedWallet as EmbeddedWallet };
|
|
70
|
-
export type { EmbeddedWalletOptions } from '../embedded_wallet.js';
|
|
75
|
+
export type { EmbeddedWalletOptions, EmbeddedWalletPXEOptions } from '../embedded_wallet.js';
|
|
71
76
|
export { WalletDB } from '../wallet_db.js';
|
|
72
77
|
export type { AccountType } from '../wallet_db.js';
|
|
@@ -7,7 +7,7 @@ import type { AztecNode } from '@aztec/stdlib/interfaces/client';
|
|
|
7
7
|
|
|
8
8
|
import { BundleAccountContractsProvider } from '../account-contract-providers/bundle.js';
|
|
9
9
|
import type { AccountContractsProvider } from '../account-contract-providers/types.js';
|
|
10
|
-
import { EmbeddedWallet, type EmbeddedWalletOptions } from '../embedded_wallet.js';
|
|
10
|
+
import { EmbeddedWallet, type EmbeddedWalletOptions, splitPxeOptions } from '../embedded_wallet.js';
|
|
11
11
|
import { WalletDB } from '../wallet_db.js';
|
|
12
12
|
|
|
13
13
|
export class NodeEmbeddedWallet extends EmbeddedWallet {
|
|
@@ -27,10 +27,15 @@ export class NodeEmbeddedWallet extends EmbeddedWallet {
|
|
|
27
27
|
const aztecNode = typeof nodeOrUrl === 'string' ? createAztecNodeClient(nodeOrUrl) : nodeOrUrl;
|
|
28
28
|
const l1Contracts = await aztecNode.getL1ContractAddresses();
|
|
29
29
|
|
|
30
|
+
// Support both the new unified `pxe` option and the deprecated `pxeConfig`/`pxeOptions`.
|
|
31
|
+
const { config: pxeConfigFromPxe, creation: pxeCreationFromPxe } = splitPxeOptions(options.pxe);
|
|
32
|
+
const mergedConfigOverrides = { ...options.pxeConfig, ...pxeConfigFromPxe };
|
|
33
|
+
const mergedCreationOverrides: PXECreationOptions = { ...options.pxeOptions, ...pxeCreationFromPxe };
|
|
34
|
+
|
|
30
35
|
const pxeConfig: PXEConfig = Object.assign(getPXEConfig(), {
|
|
31
|
-
proverEnabled:
|
|
36
|
+
proverEnabled: mergedConfigOverrides.proverEnabled ?? false,
|
|
32
37
|
dataDirectory: `pxe_data_${l1Contracts.rollupAddress}`,
|
|
33
|
-
...
|
|
38
|
+
...mergedConfigOverrides,
|
|
34
39
|
});
|
|
35
40
|
|
|
36
41
|
if (options.ephemeral) {
|
|
@@ -38,12 +43,12 @@ export class NodeEmbeddedWallet extends EmbeddedWallet {
|
|
|
38
43
|
}
|
|
39
44
|
|
|
40
45
|
const pxeOptions: PXECreationOptions = {
|
|
41
|
-
...
|
|
46
|
+
...mergedCreationOverrides,
|
|
42
47
|
loggers: {
|
|
43
48
|
store: rootLogger.createChild('pxe:data'),
|
|
44
49
|
pxe: rootLogger.createChild('pxe:service'),
|
|
45
50
|
prover: rootLogger.createChild('pxe:prover'),
|
|
46
|
-
...
|
|
51
|
+
...mergedCreationOverrides.loggers,
|
|
47
52
|
},
|
|
48
53
|
};
|
|
49
54
|
|
|
@@ -74,6 +79,6 @@ export class NodeEmbeddedWallet extends EmbeddedWallet {
|
|
|
74
79
|
}
|
|
75
80
|
|
|
76
81
|
export { NodeEmbeddedWallet as EmbeddedWallet };
|
|
77
|
-
export type { EmbeddedWalletOptions } from '../embedded_wallet.js';
|
|
82
|
+
export type { EmbeddedWalletOptions, EmbeddedWalletPXEOptions } from '../embedded_wallet.js';
|
|
78
83
|
export { WalletDB } from '../wallet_db.js';
|
|
79
84
|
export type { AccountType } from '../wallet_db.js';
|