@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.
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVuZGxlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZW1iZWRkZWQvYWNjb3VudC1jb250cmFjdC1wcm92aWRlcnMvYnVuZGxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sS0FBSyxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN4RSxPQUFPLEtBQUssRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUV6RCxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzFELE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTNGLE9BQU8sS0FBSyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRTNEOzs7R0FHRztBQUNILHFCQUFhLDhCQUErQixZQUFXLHdCQUF3QjtJQUM3RSx5QkFBeUIsQ0FBQyxVQUFVLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FFbEU7SUFFRCx3QkFBd0IsQ0FBQyxVQUFVLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FFckU7SUFFRCx3QkFBd0IsQ0FBQyxVQUFVLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FFckU7SUFFRCw4QkFBOEIsSUFBSSxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FFMUQ7SUFFRCxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsZUFBZSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FFNUQ7SUFFRCxvQkFBb0IsSUFBSSxPQUFPLENBQUM7UUFBRSxRQUFRLEVBQUUsMkJBQTJCLENBQUM7UUFBQyxRQUFRLEVBQUUsZ0JBQWdCLENBQUE7S0FBRSxDQUFDLENBRXJHO0NBQ0YifQ==
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":"AAGA,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,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,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAE1D;IAED,iBAAiB,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,CAE5D;IAED,oBAAoB,IAAI,OAAO,CAAC;QAAE,QAAQ,EAAE,2BAA2B,CAAC;QAAC,QAAQ,EAAE,gBAAgB,CAAA;KAAE,CAAC,CAErG;CACF"}
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 { StubAccountContractArtifact, createStubAccount } from '@aztec/accounts/stub';
3
+ import { StubEcdsaAccountContractArtifact, createStubEcdsaAccount } from '@aztec/accounts/stub/ecdsa';
4
+ import { StubSchnorrAccountContractArtifact, createStubSchnorrAccount } from '@aztec/accounts/stub/schnorr';
4
5
  import { 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(StubAccountContractArtifact);
19
+ getStubAccountContractArtifact(type) {
20
+ return Promise.resolve(type === 'schnorr' ? StubSchnorrAccountContractArtifact : StubEcdsaAccountContractArtifact);
20
21
  }
21
- createStubAccount(address) {
22
- return Promise.resolve(createStubAccount(address));
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VtYmVkZGVkL2FjY291bnQtY29udHJhY3QtcHJvdmlkZXJzL2xhenkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3hFLE9BQU8sS0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXpELE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDMUQsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLDJCQUEyQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFM0YsT0FBTyxLQUFLLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFM0Q7OztHQUdHO0FBQ0gscUJBQWEsNEJBQTZCLFlBQVcsd0JBQXdCO0lBQ3JFLHlCQUF5QixDQUFDLFVBQVUsRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUd4RTtJQUVLLHdCQUF3QixDQUFDLFVBQVUsRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUczRTtJQUVLLHdCQUF3QixDQUFDLFVBQVUsRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUczRTtJQUVLLDhCQUE4QixJQUFJLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUdoRTtJQUVLLGlCQUFpQixDQUFDLE9BQU8sRUFBRSxlQUFlLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUdsRTtJQUVELG9CQUFvQixJQUFJLE9BQU8sQ0FBQztRQUFFLFFBQVEsRUFBRSwyQkFBMkIsQ0FBQztRQUFDLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQTtLQUFFLENBQUMsQ0FFckc7Q0FDRiJ9
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,CAGhE;IAEK,iBAAiB,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,CAGlE;IAED,oBAAoB,IAAI,OAAO,CAAC;QAAE,QAAQ,EAAE,2BAA2B,CAAC;QAAC,QAAQ,EAAE,gBAAgB,CAAA;KAAE,CAAC,CAErG;CACF"}
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
- const { getStubAccountContractArtifact } = await import('@aztec/accounts/stub/lazy');
20
- return getStubAccountContractArtifact();
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
- const { createStubAccount } = await import('@aztec/accounts/stub/lazy');
24
- return createStubAccount(address);
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbWJlZGRlZC9hY2NvdW50LWNvbnRyYWN0LXByb3ZpZGVycy90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDeEUsT0FBTyxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDekQsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMxRCxPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUUzRjs7Ozs7R0FLRztBQUNILE1BQU0sV0FBVyx3QkFBd0I7SUFDdkMseUJBQXlCLENBQUMsVUFBVSxFQUFFLEVBQUUsR0FBRyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDcEUsd0JBQXdCLENBQUMsVUFBVSxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDdkUsd0JBQXdCLENBQUMsVUFBVSxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDdkUsOEJBQThCLElBQUksT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDNUQsb0JBQW9CLElBQUksT0FBTyxDQUFDO1FBQUUsUUFBUSxFQUFFLDJCQUEyQixDQUFDO1FBQUMsUUFBUSxFQUFFLGdCQUFnQixDQUFBO0tBQUUsQ0FBQyxDQUFDO0lBQ3ZHLGlCQUFpQixDQUFDLE9BQU8sRUFBRSxlQUFlLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0NBQy9EIn0=
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;IAC5D,oBAAoB,IAAI,OAAO,CAAC;QAAE,QAAQ,EAAE,2BAA2B,CAAC;QAAC,QAAQ,EAAE,gBAAgB,CAAA;KAAE,CAAC,CAAC;IACvG,iBAAiB,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC/D"}
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, type TxSimulationResult } from '@aztec/stdlib/tx';
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
- /** Override PXE configuration. */
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
- /** Advanced PXE creation options (custom store, prover, simulator). */
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<TxSimulationResult>;
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1iZWRkZWRfd2FsbGV0LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZW1iZWRkZWQvZW1iZWRkZWRfd2FsbGV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLE9BQU8sRUFBVyxNQUFNLHlCQUF5QixDQUFDO0FBRWhFLE9BQU8sRUFBRSxLQUFLLHNCQUFzQixFQUFFLEtBQUssVUFBVSxFQUErQixNQUFNLDJCQUEyQixDQUFDO0FBQ3RILE9BQU8sS0FBSyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFHeEQsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4RCxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRCxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RSxPQUFPLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFHM0QsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFakUsT0FBTyxFQUNMLEtBQUssaUJBQWlCLEVBQ3RCLGdCQUFnQixFQUdoQixLQUFLLGtCQUFrQixFQUl4QixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBRSxVQUFVLEVBQUUsS0FBSyw0QkFBNEIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRTlGLE9BQU8sS0FBSyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDdEYsT0FBTyxFQUFFLEtBQUssV0FBVyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FB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
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":"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"}
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
- scopes: this.scopesFrom(opts.from, opts.additionalScopes),
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, scopes, skipTxValidation, skipFeeEnforcement } = opts;
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(this.scopesFrom(from, opts.additionalScopes));
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
- return this.pxe.simulateTx(txRequest, {
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJvd3Nlci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VtYmVkZGVkL2VudHJ5cG9pbnRzL2Jyb3dzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssU0FBUyxFQUF5QixNQUFNLHNCQUFzQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUVsRSxPQUFPLEVBQUUsS0FBSyxHQUFHLEVBQXNDLE1BQU0sd0JBQXdCLENBQUM7QUFJdEYsT0FBTyxLQUFLLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUN2RixPQUFPLEVBQUUsY0FBYyxFQUFFLEtBQUsscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFM0MscUJBQWEscUJBQXNCLFNBQVEsY0FBYztJQUN2RCxPQUFhLE1BQU0sQ0FBQyxDQUFDLFNBQVMscUJBQXFCLEdBQUcscUJBQXFCLEVBQ3pFLElBQUksRUFBRSxLQUNKLEdBQUcsRUFBRSxHQUFHLEVBQ1IsU0FBUyxFQUFFLFNBQVMsRUFDcEIsUUFBUSxFQUFFLFFBQVEsRUFDbEIsZ0JBQWdCLEVBQUUsd0JBQXdCLEVBQzFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sS0FDVCxDQUFDLEVBQ04sU0FBUyxFQUFFLE1BQU0sR0FBRyxTQUFTLEVBQzdCLE9BQU8sR0FBRSxxQkFBMEIsR0FDbEMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQTJDWjtDQUNGO0FBRUQsT0FBTyxFQUFFLHFCQUFxQixJQUFJLGNBQWMsRUFBRSxDQUFDO0FBQ25ELFlBQVksRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxZQUFZLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUMifQ==
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,EAAE,MAAM,uBAAuB,CAAC;AACnF,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,CA2CZ;CACF;AAED,OAAO,EAAE,qBAAqB,IAAI,cAAc,EAAE,CAAC;AACnD,YAAY,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../../src/embedded/entrypoints/browser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAyB,MAAM,sBAAsB,CAAC;AAC7E,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAElE,OAAO,EAAE,KAAK,GAAG,EAAsC,MAAM,wBAAwB,CAAC;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: options.pxeConfig?.proverEnabled ?? false,
25
+ proverEnabled: mergedConfigOverrides.proverEnabled ?? false,
16
26
  dataDirectory: `pxe_data_${l1Contracts.rollupAddress}`,
17
- ...options.pxeConfig
27
+ ...mergedConfigOverrides
18
28
  });
19
29
  if (options.ephemeral) {
20
30
  delete pxeConfig.dataDirectory;
21
31
  }
22
32
  const pxeOptions = {
23
- ...options.pxeOptions,
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
- ...options.pxeOptions?.loggers
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VtYmVkZGVkL2VudHJ5cG9pbnRzL25vZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFnQixNQUFNLHVCQUF1QixDQUFDO0FBR2xFLE9BQU8sRUFBRSxLQUFLLEdBQUcsRUFBc0MsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRixPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUdqRSxPQUFPLEtBQUssRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxjQUFjLEVBQUUsS0FBSyxxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ25GLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUzQyxxQkFBYSxrQkFBbUIsU0FBUSxjQUFjO0lBQ3BELE9BQWEsTUFBTSxDQUFDLENBQUMsU0FBUyxrQkFBa0IsR0FBRyxrQkFBa0IsRUFDbkUsSUFBSSxFQUFFLEtBQ0osR0FBRyxFQUFFLEdBQUcsRUFDUixTQUFTLEVBQUUsU0FBUyxFQUNwQixRQUFRLEVBQUUsUUFBUSxFQUNsQixnQkFBZ0IsRUFBRSx3QkFBd0IsRUFDMUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxLQUNULENBQUMsRUFDTixTQUFTLEVBQUUsTUFBTSxHQUFHLFNBQVMsRUFDN0IsT0FBTyxHQUFFLHFCQUEwQixHQUNsQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBaURaO0NBQ0Y7QUFFRCxPQUFPLEVBQUUsa0JBQWtCLElBQUksY0FBYyxFQUFFLENBQUM7QUFDaEQsWUFBWSxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbkUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLFlBQVksRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQyJ9
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,EAAE,MAAM,uBAAuB,CAAC;AACnF,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,CAiDZ;CACF;AAED,OAAO,EAAE,kBAAkB,IAAI,cAAc,EAAE,CAAC;AAChD,YAAY,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../../src/embedded/entrypoints/node.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAGlE,OAAO,EAAE,KAAK,GAAG,EAAsC,MAAM,mBAAmB,CAAC;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: options.pxeConfig?.proverEnabled ?? false,
25
+ proverEnabled: mergedConfigOverrides.proverEnabled ?? false,
16
26
  dataDirectory: `pxe_data_${l1Contracts.rollupAddress}`,
17
- ...options.pxeConfig
27
+ ...mergedConfigOverrides
18
28
  });
19
29
  if (options.ephemeral) {
20
30
  delete pxeConfig.dataDirectory;
21
31
  }
22
32
  const pxeOptions = {
23
- ...options.pxeOptions,
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
- ...options.pxeOptions?.loggers
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.20260409",
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.20260409",
31
- "@aztec/aztec.js": "4.2.0-nightly.20260409",
32
- "@aztec/entrypoints": "4.2.0-nightly.20260409",
33
- "@aztec/foundation": "4.2.0-nightly.20260409",
34
- "@aztec/kv-store": "4.2.0-nightly.20260409",
35
- "@aztec/protocol-contracts": "4.2.0-nightly.20260409",
36
- "@aztec/pxe": "4.2.0-nightly.20260409",
37
- "@aztec/stdlib": "4.2.0-nightly.20260409",
38
- "@aztec/wallet-sdk": "4.2.0-nightly.20260409"
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 { StubAccountContractArtifact, createStubAccount } from '@aztec/accounts/stub';
3
+ import { StubEcdsaAccountContractArtifact, createStubEcdsaAccount } from '@aztec/accounts/stub/ecdsa';
4
+ import { StubSchnorrAccountContractArtifact, createStubSchnorrAccount } from '@aztec/accounts/stub/schnorr';
4
5
  import type { Account, AccountContract } from '@aztec/aztec.js/account';
5
6
  import type { Fq } from '@aztec/foundation/curves/bn254';
6
7
  import { 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(StubAccountContractArtifact);
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(createStubAccount(address));
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
- const { getStubAccountContractArtifact } = await import('@aztec/accounts/stub/lazy');
31
- return getStubAccountContractArtifact();
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
- const { createStubAccount } = await import('@aztec/accounts/stub/lazy');
36
- return createStubAccount(address);
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
- /** Override PXE configuration. */
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
- /** Advanced PXE creation options (custom store, prover, simulator). */
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
- scopes: this.scopesFrom(opts.from, opts.additionalScopes),
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<TxSimulationResult> {
207
- const { from, feeOptions, scopes, skipTxValidation, skipFeeEnforcement } = opts;
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(this.scopesFrom(from, opts.additionalScopes));
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
- return this.pxe.simulateTx(txRequest, {
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: options.pxeConfig?.proverEnabled ?? false,
35
+ proverEnabled: mergedConfigOverrides.proverEnabled ?? false,
31
36
  dataDirectory: `pxe_data_${l1Contracts.rollupAddress}`,
32
- ...options.pxeConfig,
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
- ...options.pxeOptions,
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
- ...options.pxeOptions?.loggers,
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: options.pxeConfig?.proverEnabled ?? false,
36
+ proverEnabled: mergedConfigOverrides.proverEnabled ?? false,
32
37
  dataDirectory: `pxe_data_${l1Contracts.rollupAddress}`,
33
- ...options.pxeConfig,
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
- ...options.pxeOptions,
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
- ...options.pxeOptions?.loggers,
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';