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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (28) hide show
  1. package/dest/embedded/account-contract-providers/bundle.d.ts +6 -2
  2. package/dest/embedded/account-contract-providers/bundle.d.ts.map +1 -1
  3. package/dest/embedded/account-contract-providers/bundle.js +4 -0
  4. package/dest/embedded/account-contract-providers/lazy.d.ts +6 -2
  5. package/dest/embedded/account-contract-providers/lazy.d.ts.map +1 -1
  6. package/dest/embedded/account-contract-providers/lazy.js +4 -0
  7. package/dest/embedded/account-contract-providers/types.d.ts +6 -2
  8. package/dest/embedded/account-contract-providers/types.d.ts.map +1 -1
  9. package/dest/embedded/embedded_wallet.d.ts +7 -2
  10. package/dest/embedded/embedded_wallet.d.ts.map +1 -1
  11. package/dest/embedded/embedded_wallet.js +38 -21
  12. package/dest/embedded/entrypoints/browser.d.ts +7 -2
  13. package/dest/embedded/entrypoints/browser.d.ts.map +1 -1
  14. package/dest/embedded/entrypoints/browser.js +21 -14
  15. package/dest/embedded/entrypoints/node.d.ts +6 -10
  16. package/dest/embedded/entrypoints/node.d.ts.map +1 -1
  17. package/dest/embedded/entrypoints/node.js +7 -9
  18. package/package.json +18 -9
  19. package/src/embedded/account-contract-providers/bundle.ts +6 -1
  20. package/src/embedded/account-contract-providers/lazy.ts +6 -1
  21. package/src/embedded/account-contract-providers/types.ts +2 -1
  22. package/src/embedded/embedded_wallet.ts +47 -23
  23. package/src/embedded/entrypoints/browser.ts +39 -17
  24. package/src/embedded/entrypoints/node.ts +23 -24
  25. package/dest/embedded/embedded_wallet_browser.d.ts +0 -5
  26. package/dest/embedded/embedded_wallet_browser.d.ts.map +0 -1
  27. package/dest/embedded/embedded_wallet_browser.js +0 -31
  28. package/src/embedded/embedded_wallet_browser.ts +0 -40
@@ -1,7 +1,7 @@
1
1
  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
- import type { CompleteAddress } from '@aztec/stdlib/contract';
4
+ import type { CompleteAddress, ContractInstanceWithAddress } from '@aztec/stdlib/contract';
5
5
  import type { AccountContractsProvider } from './types.js';
6
6
  /**
7
7
  * Loads account contract artifacts eagerly via static imports.
@@ -13,5 +13,9 @@ export declare class BundleAccountContractsProvider implements AccountContractsP
13
13
  getEcdsaKAccountContract(signingKey: Buffer): Promise<AccountContract>;
14
14
  getStubAccountContractArtifact(): Promise<ContractArtifact>;
15
15
  createStubAccount(address: CompleteAddress): Promise<Account>;
16
+ getMulticallContract(): Promise<{
17
+ instance: ContractInstanceWithAddress;
18
+ artifact: ContractArtifact;
19
+ }>;
16
20
  }
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVuZGxlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZW1iZWRkZWQvYWNjb3VudC1jb250cmFjdC1wcm92aWRlcnMvYnVuZGxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sS0FBSyxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN4RSxPQUFPLEtBQUssRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN6RCxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzFELE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTlELE9BQU8sS0FBSyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRTNEOzs7R0FHRztBQUNILHFCQUFhLDhCQUErQixZQUFXLHdCQUF3QjtJQUM3RSx5QkFBeUIsQ0FBQyxVQUFVLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FFbEU7SUFFRCx3QkFBd0IsQ0FBQyxVQUFVLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FFckU7SUFFRCx3QkFBd0IsQ0FBQyxVQUFVLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FFckU7SUFFRCw4QkFBOEIsSUFBSSxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FFMUQ7SUFFRCxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsZUFBZSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FFNUQ7Q0FDRiJ9
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVuZGxlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZW1iZWRkZWQvYWNjb3VudC1jb250cmFjdC1wcm92aWRlcnMvYnVuZGxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sS0FBSyxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN4RSxPQUFPLEtBQUssRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUV6RCxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzFELE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTNGLE9BQU8sS0FBSyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRTNEOzs7R0FHRztBQUNILHFCQUFhLDhCQUErQixZQUFXLHdCQUF3QjtJQUM3RSx5QkFBeUIsQ0FBQyxVQUFVLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FFbEU7SUFFRCx3QkFBd0IsQ0FBQyxVQUFVLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FFckU7SUFFRCx3QkFBd0IsQ0FBQyxVQUFVLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FFckU7SUFFRCw4QkFBOEIsSUFBSSxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FFMUQ7SUFFRCxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsZUFBZSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FFNUQ7SUFFRCxvQkFBb0IsSUFBSSxPQUFPLENBQUM7UUFBRSxRQUFRLEVBQUUsMkJBQTJCLENBQUM7UUFBQyxRQUFRLEVBQUUsZ0JBQWdCLENBQUE7S0FBRSxDQUFDLENBRXJHO0NBQ0YifQ==
@@ -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;AACzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,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;CACF"}
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,6 +1,7 @@
1
1
  import { EcdsaKAccountContract, EcdsaRAccountContract } from '@aztec/accounts/ecdsa';
2
2
  import { SchnorrAccountContract } from '@aztec/accounts/schnorr';
3
3
  import { StubAccountContractArtifact, createStubAccount } from '@aztec/accounts/stub';
4
+ import { getCanonicalMultiCallEntrypoint } from '@aztec/protocol-contracts/multi-call-entrypoint';
4
5
  /**
5
6
  * Loads account contract artifacts eagerly via static imports.
6
7
  * Designed for Node.js environments where all artifacts are available at startup.
@@ -20,4 +21,7 @@ import { StubAccountContractArtifact, createStubAccount } from '@aztec/accounts/
20
21
  createStubAccount(address) {
21
22
  return Promise.resolve(createStubAccount(address));
22
23
  }
24
+ getMulticallContract() {
25
+ return getCanonicalMultiCallEntrypoint();
26
+ }
23
27
  }
@@ -1,7 +1,7 @@
1
1
  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
- import type { CompleteAddress } from '@aztec/stdlib/contract';
4
+ import type { CompleteAddress, ContractInstanceWithAddress } from '@aztec/stdlib/contract';
5
5
  import type { AccountContractsProvider } from './types.js';
6
6
  /**
7
7
  * Loads account contract artifacts lazily via dynamic imports.
@@ -13,5 +13,9 @@ export declare class LazyAccountContractsProvider implements AccountContractsPro
13
13
  getEcdsaKAccountContract(signingKey: Buffer): Promise<AccountContract>;
14
14
  getStubAccountContractArtifact(): Promise<ContractArtifact>;
15
15
  createStubAccount(address: CompleteAddress): Promise<Account>;
16
+ getMulticallContract(): Promise<{
17
+ instance: ContractInstanceWithAddress;
18
+ artifact: ContractArtifact;
19
+ }>;
16
20
  }
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VtYmVkZGVkL2FjY291bnQtY29udHJhY3QtcHJvdmlkZXJzL2xhenkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3hFLE9BQU8sS0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3pELE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDMUQsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFOUQsT0FBTyxLQUFLLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFM0Q7OztHQUdHO0FBQ0gscUJBQWEsNEJBQTZCLFlBQVcsd0JBQXdCO0lBQ3JFLHlCQUF5QixDQUFDLFVBQVUsRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUd4RTtJQUVLLHdCQUF3QixDQUFDLFVBQVUsRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUczRTtJQUVLLHdCQUF3QixDQUFDLFVBQVUsRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUczRTtJQUVLLDhCQUE4QixJQUFJLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUdoRTtJQUVLLGlCQUFpQixDQUFDLE9BQU8sRUFBRSxlQUFlLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUdsRTtDQUNGIn0=
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VtYmVkZGVkL2FjY291bnQtY29udHJhY3QtcHJvdmlkZXJzL2xhenkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3hFLE9BQU8sS0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXpELE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDMUQsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLDJCQUEyQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFM0YsT0FBTyxLQUFLLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFM0Q7OztHQUdHO0FBQ0gscUJBQWEsNEJBQTZCLFlBQVcsd0JBQXdCO0lBQ3JFLHlCQUF5QixDQUFDLFVBQVUsRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUd4RTtJQUVLLHdCQUF3QixDQUFDLFVBQVUsRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUczRTtJQUVLLHdCQUF3QixDQUFDLFVBQVUsRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUczRTtJQUVLLDhCQUE4QixJQUFJLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUdoRTtJQUVLLGlCQUFpQixDQUFDLE9BQU8sRUFBRSxlQUFlLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUdsRTtJQUVELG9CQUFvQixJQUFJLE9BQU8sQ0FBQztRQUFFLFFBQVEsRUFBRSwyQkFBMkIsQ0FBQztRQUFDLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQTtLQUFFLENBQUMsQ0FFckc7Q0FDRiJ9
@@ -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;AACzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,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;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,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,3 +1,4 @@
1
+ import { getCanonicalMultiCallEntrypoint } from '@aztec/protocol-contracts/multi-call-entrypoint/lazy';
1
2
  /**
2
3
  * Loads account contract artifacts lazily via dynamic imports.
3
4
  * Designed for browser environments where code splitting reduces initial bundle size.
@@ -22,4 +23,7 @@
22
23
  const { createStubAccount } = await import('@aztec/accounts/stub/lazy');
23
24
  return createStubAccount(address);
24
25
  }
26
+ getMulticallContract() {
27
+ return getCanonicalMultiCallEntrypoint();
28
+ }
25
29
  }
@@ -1,7 +1,7 @@
1
1
  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
- import type { CompleteAddress } from '@aztec/stdlib/contract';
4
+ import type { CompleteAddress, ContractInstanceWithAddress } from '@aztec/stdlib/contract';
5
5
  /**
6
6
  * Provides account contract implementations and stub accounts for the EmbeddedWallet.
7
7
  * Two implementations exist:
@@ -13,6 +13,10 @@ export interface AccountContractsProvider {
13
13
  getEcdsaRAccountContract(signingKey: Buffer): Promise<AccountContract>;
14
14
  getEcdsaKAccountContract(signingKey: Buffer): Promise<AccountContract>;
15
15
  getStubAccountContractArtifact(): Promise<ContractArtifact>;
16
+ getMulticallContract(): Promise<{
17
+ instance: ContractInstanceWithAddress;
18
+ artifact: ContractArtifact;
19
+ }>;
16
20
  createStubAccount(address: CompleteAddress): Promise<Account>;
17
21
  }
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbWJlZGRlZC9hY2NvdW50LWNvbnRyYWN0LXByb3ZpZGVycy90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDeEUsT0FBTyxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDekQsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMxRCxPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUU5RDs7Ozs7R0FLRztBQUNILE1BQU0sV0FBVyx3QkFBd0I7SUFDdkMseUJBQXlCLENBQUMsVUFBVSxFQUFFLEVBQUUsR0FBRyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDcEUsd0JBQXdCLENBQUMsVUFBVSxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDdkUsd0JBQXdCLENBQUMsVUFBVSxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDdkUsOEJBQThCLElBQUksT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDNUQsaUJBQWlCLENBQUMsT0FBTyxFQUFFLGVBQWUsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7Q0FDL0QifQ==
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbWJlZGRlZC9hY2NvdW50LWNvbnRyYWN0LXByb3ZpZGVycy90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDeEUsT0FBTyxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDekQsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMxRCxPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUUzRjs7Ozs7R0FLRztBQUNILE1BQU0sV0FBVyx3QkFBd0I7SUFDdkMseUJBQXlCLENBQUMsVUFBVSxFQUFFLEVBQUUsR0FBRyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDcEUsd0JBQXdCLENBQUMsVUFBVSxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDdkUsd0JBQXdCLENBQUMsVUFBVSxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDdkUsOEJBQThCLElBQUksT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDNUQsb0JBQW9CLElBQUksT0FBTyxDQUFDO1FBQUUsUUFBUSxFQUFFLDJCQUEyQixDQUFDO1FBQUMsUUFBUSxFQUFFLGdCQUFnQixDQUFBO0tBQUUsQ0FBQyxDQUFDO0lBQ3ZHLGlCQUFpQixDQUFDLE9BQU8sRUFBRSxlQUFlLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0NBQy9EIn0=
@@ -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,MAAM,wBAAwB,CAAC;AAE9D;;;;;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,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;;;;;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"}
@@ -3,6 +3,7 @@ import type { Aliased } from '@aztec/aztec.js/wallet';
3
3
  import { AccountManager } from '@aztec/aztec.js/wallet';
4
4
  import { Fq, Fr } from '@aztec/foundation/curves/bn254';
5
5
  import type { Logger } from '@aztec/foundation/log';
6
+ import type { AccessScopes, PXEConfig, PXECreationOptions } from '@aztec/pxe/client/lazy';
6
7
  import type { PXE } from '@aztec/pxe/server';
7
8
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
8
9
  import type { AztecNode } from '@aztec/stdlib/interfaces/client';
@@ -15,6 +16,10 @@ export type EmbeddedWalletOptions = {
15
16
  logger?: Logger;
16
17
  /** Use ephemeral (in-memory) stores. Data will not persist across sessions. */
17
18
  ephemeral?: boolean;
19
+ /** Override PXE configuration. */
20
+ pxeConfig?: Partial<PXEConfig>;
21
+ /** Advanced PXE creation options (custom store, prover, simulator). */
22
+ pxeOptions?: PXECreationOptions;
18
23
  };
19
24
  export declare class EmbeddedWallet extends BaseWallet {
20
25
  protected walletDB: WalletDB;
@@ -29,7 +34,7 @@ export declare class EmbeddedWallet extends BaseWallet {
29
34
  * This allows kernelless simulation with contract overrides, skipping expensive
30
35
  * private kernel circuit execution.
31
36
  */
32
- protected simulateViaEntrypoint(executionPayload: ExecutionPayload, from: AztecAddress, feeOptions: FeeOptions, _skipTxValidation?: boolean, _skipFeeEnforcement?: boolean, scopes?: AztecAddress[]): Promise<TxSimulationResult>;
37
+ protected simulateViaEntrypoint(executionPayload: ExecutionPayload, from: AztecAddress, feeOptions: FeeOptions, scopes: AccessScopes, _skipTxValidation?: boolean, _skipFeeEnforcement?: boolean): Promise<TxSimulationResult>;
33
38
  private getFakeAccountDataFor;
34
39
  protected createAccountInternal(type: AccountType, secret: Fr, salt: Fr, signingKey: Buffer): Promise<AccountManager>;
35
40
  createAndStoreAccount(alias: string, type: AccountType, secret: Fr, salt: Fr, signingKey: Buffer): Promise<AccountManager>;
@@ -39,4 +44,4 @@ export declare class EmbeddedWallet extends BaseWallet {
39
44
  setMinFeePadding(value?: number): void;
40
45
  stop(): Promise<void>;
41
46
  }
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1iZWRkZWRfd2FsbGV0LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZW1iZWRkZWQvZW1iZWRkZWRfd2FsbGV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLE9BQU8sRUFBcUIsTUFBTSx5QkFBeUIsQ0FBQztBQUMxRSxPQUFPLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFeEQsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4RCxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRCxPQUFPLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFM0QsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFakUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLEtBQUssa0JBQWtCLEVBQTBCLE1BQU0sa0JBQWtCLENBQUM7QUFDckcsT0FBTyxFQUFFLFVBQVUsRUFBRSxLQUFLLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRTVFLE9BQU8sS0FBSyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDdEYsT0FBTyxFQUFFLEtBQUssV0FBVyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTVELE1BQU0sTUFBTSxxQkFBcUIsR0FBRztJQUNsQyxxRkFBcUY7SUFDckYsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQ2hCLCtFQUErRTtJQUMvRSxTQUFTLENBQUMsRUFBRSxPQUFPLENBQUM7Q0FDckIsQ0FBQztBQUVGLHFCQUFhLGNBQWUsU0FBUSxVQUFVO0lBSTFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsUUFBUTtJQUM1QixTQUFTLENBQUMsZ0JBQWdCLEVBQUUsd0JBQXdCO0lBSnRELFlBQ0UsR0FBRyxFQUFFLEdBQUcsRUFDUixTQUFTLEVBQUUsU0FBUyxFQUNWLFFBQVEsRUFBRSxRQUFRLEVBQ2xCLGdCQUFnQixFQUFFLHdCQUF3QixFQUNwRCxHQUFHLENBQUMsRUFBRSxNQUFNLEVBR2I7SUFFRCxVQUFnQixxQkFBcUIsQ0FBQyxPQUFPLEVBQUUsWUFBWSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FjN0U7SUFFRCxXQUFXLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLENBRTlDO0lBRWMsY0FBYyxDQUFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0seUJBR2pFO0lBRWMsY0FBYyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQVNoRTtJQUVEOzs7O09BSUc7SUFDSCxVQUF5QixxQkFBcUIsQ0FDNUMsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQ2xDLElBQUksRUFBRSxZQUFZLEVBQ2xCLFVBQVUsRUFBRSxVQUFVLEVBQ3RCLGlCQUFpQixDQUFDLEVBQUUsT0FBTyxFQUMzQixtQkFBbUIsQ0FBQyxFQUFFLE9BQU8sRUFDN0IsTUFBTSxDQUFDLEVBQUUsWUFBWSxFQUFFLEdBQ3RCLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQTRCN0I7WUFFYSxxQkFBcUI7SUFzQm5DLFVBQWdCLHFCQUFxQixDQUNuQyxJQUFJLEVBQUUsV0FBVyxFQUNqQixNQUFNLEVBQUUsRUFBRSxFQUNWLElBQUksRUFBRSxFQUFFLEVBQ1IsVUFBVSxFQUFFLE1BQU0sR0FDakIsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQTRCekI7SUFFSyxxQkFBcUIsQ0FDekIsS0FBSyxFQUFFLE1BQU0sRUFDYixJQUFJLEVBQUUsV0FBVyxFQUNqQixNQUFNLEVBQUUsRUFBRSxFQUNWLElBQUksRUFBRSxFQUFFLEVBQ1IsVUFBVSxFQUFFLE1BQU0sR0FDakIsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUl6QjtJQUVELG9CQUFvQixDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxVQUFVLENBQUMsRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FHbkc7SUFFRCxtQkFBbUIsQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUVyRztJQUVELG1CQUFtQixDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsY0FBYyxDQUFDLENBRXJHO0lBRUQsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLEVBQUUsTUFBTSxRQUU5QjtJQUVELElBQUksa0JBRUg7Q0FDRiJ9
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1iZWRkZWRfd2FsbGV0LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZW1iZWRkZWQvZW1iZWRkZWRfd2FsbGV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLE9BQU8sRUFBcUIsTUFBTSx5QkFBeUIsQ0FBQztBQUMxRSxPQUFPLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFeEQsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4RCxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRCxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDMUYsT0FBTyxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDN0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRTNELE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRWpFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxLQUFLLGtCQUFrQixFQUEwQixNQUFNLGtCQUFrQixDQUFDO0FBQ3JHLE9BQU8sRUFBRSxVQUFVLEVBQUUsS0FBSyxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUU1RSxPQUFPLEtBQUssRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxLQUFLLFdBQVcsRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU1RCxNQUFNLE1BQU0scUJBQXFCLEdBQUc7SUFDbEMscUZBQXFGO0lBQ3JGLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUNoQiwrRUFBK0U7SUFD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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,EAAqB,MAAM,yBAAyB,CAAC;AAC1E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACxD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAE3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAEjE,OAAO,EAAE,gBAAgB,EAAE,KAAK,kBAAkB,EAA0B,MAAM,kBAAkB,CAAC;AACrG,OAAO,EAAE,UAAU,EAAE,KAAK,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAE5E,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AACtF,OAAO,EAAE,KAAK,WAAW,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE5D,MAAM,MAAM,qBAAqB,GAAG;IAClC,qFAAqF;IACrF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+EAA+E;IAC/E,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,qBAAa,cAAe,SAAQ,UAAU;IAI1C,SAAS,CAAC,QAAQ,EAAE,QAAQ;IAC5B,SAAS,CAAC,gBAAgB,EAAE,wBAAwB;IAJtD,YACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,SAAS,EACV,QAAQ,EAAE,QAAQ,EAClB,gBAAgB,EAAE,wBAAwB,EACpD,GAAG,CAAC,EAAE,MAAM,EAGb;IAED,UAAgB,qBAAqB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,CAc7E;IAED,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,CAE9C;IAEc,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,yBAGjE;IAEc,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,CAShE;IAED;;;;OAIG;IACH,UAAyB,qBAAqB,CAC5C,gBAAgB,EAAE,gBAAgB,EAClC,IAAI,EAAE,YAAY,EAClB,UAAU,EAAE,UAAU,EACtB,iBAAiB,CAAC,EAAE,OAAO,EAC3B,mBAAmB,CAAC,EAAE,OAAO,EAC7B,MAAM,CAAC,EAAE,YAAY,EAAE,GACtB,OAAO,CAAC,kBAAkB,CAAC,CA4B7B;YAEa,qBAAqB;IAsBnC,UAAgB,qBAAqB,CACnC,IAAI,EAAE,WAAW,EACjB,MAAM,EAAE,EAAE,EACV,IAAI,EAAE,EAAE,EACR,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,cAAc,CAAC,CA4BzB;IAEK,qBAAqB,CACzB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,WAAW,EACjB,MAAM,EAAE,EAAE,EACV,IAAI,EAAE,EAAE,EACR,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,cAAc,CAAC,CAIzB;IAED,oBAAoB,CAAC,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAGnG;IAED,mBAAmB,CAAC,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAErG;IAED,mBAAmB,CAAC,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAErG;IAED,gBAAgB,CAAC,KAAK,CAAC,EAAE,MAAM,QAE9B;IAED,IAAI,kBAEH;CACF"}
1
+ {"version":3,"file":"embedded_wallet.d.ts","sourceRoot":"","sources":["../../src/embedded/embedded_wallet.ts"],"names":[],"mappings":"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"}
@@ -45,7 +45,7 @@ export class EmbeddedWallet extends BaseWallet {
45
45
  * Simulates calls via a stub account entrypoint, bypassing real account authorization.
46
46
  * This allows kernelless simulation with contract overrides, skipping expensive
47
47
  * private kernel circuit execution.
48
- */ async simulateViaEntrypoint(executionPayload, from, feeOptions, _skipTxValidation, _skipFeeEnforcement, scopes) {
48
+ */ async simulateViaEntrypoint(executionPayload, from, feeOptions, scopes, _skipTxValidation, _skipFeeEnforcement) {
49
49
  const { account: fromAccount, instance, artifact } = await this.getFakeAccountDataFor(from);
50
50
  const feeExecutionPayload = await feeOptions.walletFeePaymentMethod?.getExecutionPayload();
51
51
  const executionOptions = {
@@ -75,25 +75,39 @@ export class EmbeddedWallet extends BaseWallet {
75
75
  });
76
76
  }
77
77
  async getFakeAccountDataFor(address) {
78
- const originalAccount = await this.getAccountFromAddress(address);
79
- if (originalAccount instanceof SignerlessAccount) {
80
- throw new Error(`Cannot create fake account data for SignerlessAccount at address: ${address}`);
81
- }
82
- const originalAddress = originalAccount.getCompleteAddress();
83
- const contractInstance = await this.pxe.getContractInstance(originalAddress.address);
84
- if (!contractInstance) {
85
- throw new Error(`No contract instance found for address: ${originalAddress.address}`);
78
+ // While we have the convention of "Zero address means no auth", and also
79
+ // we don't have a way to trigger kernelless simulations without overrides,
80
+ // we need to explicitly handle the zero address case here by
81
+ // returning the actual multicall contract instead of trying to create a stub account for it.
82
+ if (!address.equals(AztecAddress.ZERO)) {
83
+ const originalAccount = await this.getAccountFromAddress(address);
84
+ if (originalAccount instanceof SignerlessAccount) {
85
+ throw new Error(`Cannot create fake account data for SignerlessAccount at address: ${address}`);
86
+ }
87
+ const originalAddress = originalAccount.getCompleteAddress();
88
+ const contractInstance = await this.pxe.getContractInstance(originalAddress.address);
89
+ if (!contractInstance) {
90
+ throw new Error(`No contract instance found for address: ${originalAddress.address}`);
91
+ }
92
+ const stubAccount = await this.accountContracts.createStubAccount(originalAddress);
93
+ const stubArtifact = await this.accountContracts.getStubAccountContractArtifact();
94
+ const instance = await getContractInstanceFromInstantiationParams(stubArtifact, {
95
+ salt: Fr.random()
96
+ });
97
+ return {
98
+ account: stubAccount,
99
+ instance,
100
+ artifact: stubArtifact
101
+ };
102
+ } else {
103
+ const { instance, artifact } = await this.accountContracts.getMulticallContract();
104
+ const account = new SignerlessAccount();
105
+ return {
106
+ instance,
107
+ account,
108
+ artifact
109
+ };
86
110
  }
87
- const stubAccount = await this.accountContracts.createStubAccount(originalAddress);
88
- const stubArtifact = await this.accountContracts.getStubAccountContractArtifact();
89
- const instance = await getContractInstanceFromInstantiationParams(stubArtifact, {
90
- salt: Fr.random()
91
- });
92
- return {
93
- account: stubAccount,
94
- instance,
95
- artifact: stubArtifact
96
- };
97
111
  }
98
112
  async createAccountInternal(type, secret, salt, signingKey) {
99
113
  let contract;
@@ -120,8 +134,11 @@ export class EmbeddedWallet extends BaseWallet {
120
134
  }
121
135
  const accountManager = await AccountManager.create(this, secret, contract, salt);
122
136
  const instance = accountManager.getInstance();
123
- const artifact = await accountManager.getAccountContract().getContractArtifact();
124
- await this.registerContract(instance, artifact, accountManager.getSecretKey());
137
+ const existingInstance = await this.pxe.getContractInstance(instance.address);
138
+ if (!existingInstance) {
139
+ const existingArtifact = await this.pxe.getContractArtifact(instance.currentContractClassId);
140
+ await this.registerContract(instance, !existingArtifact ? await accountManager.getAccountContract().getContractArtifact() : undefined, accountManager.getSecretKey());
141
+ }
125
142
  return accountManager;
126
143
  }
127
144
  async createAndStoreAccount(alias, type, secret, salt, signingKey) {
@@ -1,9 +1,14 @@
1
+ import { type AztecNode } from '@aztec/aztec.js/node';
2
+ import { type Logger } from '@aztec/foundation/log';
3
+ import { type PXE } from '@aztec/pxe/client/lazy';
4
+ import type { AccountContractsProvider } from '../account-contract-providers/types.js';
1
5
  import { EmbeddedWallet, type EmbeddedWalletOptions } from '../embedded_wallet.js';
6
+ import { WalletDB } from '../wallet_db.js';
2
7
  export declare class BrowserEmbeddedWallet extends EmbeddedWallet {
3
- static create(nodeUrl: string, options?: EmbeddedWalletOptions): Promise<BrowserEmbeddedWallet>;
8
+ static create<T extends BrowserEmbeddedWallet = BrowserEmbeddedWallet>(this: new (pxe: PXE, aztecNode: AztecNode, walletDB: WalletDB, accountContracts: AccountContractsProvider, log?: Logger) => T, nodeOrUrl: string | AztecNode, options?: EmbeddedWalletOptions): Promise<T>;
4
9
  }
5
10
  export { BrowserEmbeddedWallet as EmbeddedWallet };
6
11
  export type { EmbeddedWalletOptions } from '../embedded_wallet.js';
7
12
  export { WalletDB } from '../wallet_db.js';
8
13
  export type { AccountType } from '../wallet_db.js';
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJvd3Nlci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VtYmVkZGVkL2VudHJ5cG9pbnRzL2Jyb3dzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT0EsT0FBTyxFQUFFLGNBQWMsRUFBRSxLQUFLLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFHbkYscUJBQWEscUJBQXNCLFNBQVEsY0FBYztJQUN2RCxPQUFhLE1BQU0sQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sR0FBRSxxQkFBMEIsR0FBRyxPQUFPLENBQUMscUJBQXFCLENBQUMsQ0FnQ3hHO0NBQ0Y7QUFFRCxPQUFPLEVBQUUscUJBQXFCLElBQUksY0FBYyxFQUFFLENBQUM7QUFDbkQsWUFBWSxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbkUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLFlBQVksRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQyJ9
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJvd3Nlci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VtYmVkZGVkL2VudHJ5cG9pbnRzL2Jyb3dzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssU0FBUyxFQUF5QixNQUFNLHNCQUFzQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUVsRSxPQUFPLEVBQUUsS0FBSyxHQUFHLEVBQXNDLE1BQU0sd0JBQXdCLENBQUM7QUFJdEYsT0FBTyxLQUFLLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUN2RixPQUFPLEVBQUUsY0FBYyxFQUFFLEtBQUsscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFM0MscUJBQWEscUJBQXNCLFNBQVEsY0FBYztJQUN2RCxPQUFhLE1BQU0sQ0FBQyxDQUFDLFNBQVMscUJBQXFCLEdBQUcscUJBQXFCLEVBQ3pFLElBQUksRUFBRSxLQUNKLEdBQUcsRUFBRSxHQUFHLEVBQ1IsU0FBUyxFQUFFLFNBQVMsRUFDcEIsUUFBUSxFQUFFLFFBQVEsRUFDbEIsZ0JBQWdCLEVBQUUsd0JBQXdCLEVBQzFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sS0FDVCxDQUFDLEVBQ04sU0FBUyxFQUFFLE1BQU0sR0FBRyxTQUFTLEVBQzdCLE9BQU8sR0FBRSxxQkFBMEIsR0FDbEMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQTJDWjtDQUNGO0FBRUQsT0FBTyxFQUFFLHFCQUFxQixJQUFJLGNBQWMsRUFBRSxDQUFDO0FBQ25ELFlBQVksRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxZQUFZLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUMifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../../src/embedded/entrypoints/browser.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,cAAc,EAAE,KAAK,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAGnF,qBAAa,qBAAsB,SAAQ,cAAc;IACvD,OAAa,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,qBAA0B,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAgCxG;CACF;AAED,OAAO,EAAE,qBAAqB,IAAI,cAAc,EAAE,CAAC;AACnD,YAAY,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../../src/embedded/entrypoints/browser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAyB,MAAM,sBAAsB,CAAC;AAC7E,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAElE,OAAO,EAAE,KAAK,GAAG,EAAsC,MAAM,wBAAwB,CAAC;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"}
@@ -7,28 +7,35 @@ import { LazyAccountContractsProvider } from '../account-contract-providers/lazy
7
7
  import { EmbeddedWallet } from '../embedded_wallet.js';
8
8
  import { WalletDB } from '../wallet_db.js';
9
9
  export class BrowserEmbeddedWallet extends EmbeddedWallet {
10
- static async create(nodeUrl, options = {}) {
10
+ static async create(nodeOrUrl, options = {}) {
11
11
  const rootLogger = options.logger ?? createLogger('embedded-wallet');
12
- const aztecNode = createAztecNodeClient(nodeUrl);
12
+ const aztecNode = typeof nodeOrUrl === 'string' ? createAztecNodeClient(nodeOrUrl) : nodeOrUrl;
13
13
  const l1Contracts = await aztecNode.getL1ContractAddresses();
14
- const rollupAddress = l1Contracts.rollupAddress;
15
- const config = getPXEConfig();
16
- if (!options.ephemeral) {
17
- config.dataDirectory = `pxe-${rollupAddress}`;
14
+ const pxeConfig = Object.assign(getPXEConfig(), {
15
+ proverEnabled: options.pxeConfig?.proverEnabled ?? false,
16
+ dataDirectory: `pxe_data_${l1Contracts.rollupAddress}`,
17
+ ...options.pxeConfig
18
+ });
19
+ if (options.ephemeral) {
20
+ delete pxeConfig.dataDirectory;
18
21
  }
19
- const pxe = await createPXE(aztecNode, config, {
22
+ const pxeOptions = {
23
+ ...options.pxeOptions,
20
24
  loggers: {
21
25
  store: rootLogger.createChild('pxe:data'),
22
26
  pxe: rootLogger.createChild('pxe:service'),
23
- prover: rootLogger.createChild('pxe:prover')
27
+ prover: rootLogger.createChild('pxe:prover'),
28
+ ...options.pxeOptions?.loggers
24
29
  }
25
- });
26
- const walletDBStore = options.ephemeral ? await openTmpStore(true) : await createStore(`wallet-${rollupAddress}`, {
27
- dataDirectory: 'wallet',
28
- dataStoreMapSizeKb: 2e10
29
- }, undefined, rootLogger.createChild('wallet:data'));
30
+ };
31
+ const pxe = await createPXE(aztecNode, pxeConfig, pxeOptions);
32
+ const walletDBStore = options.ephemeral ? await openTmpStore(true) : await createStore('wallet_data', {
33
+ dataDirectory: `wallet_data_${l1Contracts.rollupAddress}`,
34
+ dataStoreMapSizeKb: pxeConfig.dataStoreMapSizeKb,
35
+ l1Contracts
36
+ }, 1, rootLogger.createChild('wallet:data'));
30
37
  const walletDB = WalletDB.init(walletDBStore, rootLogger.createChild('wallet:db').info);
31
- return new BrowserEmbeddedWallet(pxe, aztecNode, walletDB, new LazyAccountContractsProvider(), rootLogger);
38
+ return new this(pxe, aztecNode, walletDB, new LazyAccountContractsProvider(), rootLogger);
32
39
  }
33
40
  }
34
41
  export { BrowserEmbeddedWallet as EmbeddedWallet };
@@ -1,18 +1,14 @@
1
- import type { PXEConfig } from '@aztec/pxe/config';
2
- import { type PXECreationOptions } from '@aztec/pxe/server';
1
+ import { type Logger } from '@aztec/foundation/log';
2
+ import { type PXE } from '@aztec/pxe/server';
3
3
  import type { AztecNode } from '@aztec/stdlib/interfaces/client';
4
+ import type { AccountContractsProvider } from '../account-contract-providers/types.js';
4
5
  import { EmbeddedWallet, type EmbeddedWalletOptions } from '../embedded_wallet.js';
5
- export type NodeEmbeddedWalletOptions = EmbeddedWalletOptions & {
6
- /** Override PXE configuration. */
7
- pxeConfig?: Partial<PXEConfig>;
8
- /** Advanced PXE creation options (custom store, prover, simulator). */
9
- pxeOptions?: PXECreationOptions;
10
- };
6
+ import { WalletDB } from '../wallet_db.js';
11
7
  export declare class NodeEmbeddedWallet extends EmbeddedWallet {
12
- static create(nodeOrUrl: string | AztecNode, options?: NodeEmbeddedWalletOptions): Promise<NodeEmbeddedWallet>;
8
+ static create<T extends NodeEmbeddedWallet = NodeEmbeddedWallet>(this: new (pxe: PXE, aztecNode: AztecNode, walletDB: WalletDB, accountContracts: AccountContractsProvider, log?: Logger) => T, nodeOrUrl: string | AztecNode, options?: EmbeddedWalletOptions): Promise<T>;
13
9
  }
14
10
  export { NodeEmbeddedWallet as EmbeddedWallet };
15
11
  export type { EmbeddedWalletOptions } from '../embedded_wallet.js';
16
12
  export { WalletDB } from '../wallet_db.js';
17
13
  export type { AccountType } from '../wallet_db.js';
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VtYmVkZGVkL2VudHJ5cG9pbnRzL25vZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFbkQsT0FBTyxFQUFFLEtBQUssa0JBQWtCLEVBQWEsTUFBTSxtQkFBbUIsQ0FBQztBQUN2RSxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUdqRSxPQUFPLEVBQUUsY0FBYyxFQUFFLEtBQUsscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUduRixNQUFNLE1BQU0seUJBQXlCLEdBQUcscUJBQXFCLEdBQUc7SUFDOUQsa0NBQWtDO0lBQ2xDLFNBQVMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMvQix1RUFBdUU7SUFDdkUsVUFBVSxDQUFDLEVBQUUsa0JBQWtCLENBQUM7Q0FDakMsQ0FBQztBQUVGLHFCQUFhLGtCQUFtQixTQUFRLGNBQWM7SUFDcEQsT0FBYSxNQUFNLENBQ2pCLFNBQVMsRUFBRSxNQUFNLEdBQUcsU0FBUyxFQUM3QixPQUFPLEdBQUUseUJBQThCLEdBQ3RDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQWtEN0I7Q0FDRjtBQUVELE9BQU8sRUFBRSxrQkFBa0IsSUFBSSxjQUFjLEVBQUUsQ0FBQztBQUNoRCxZQUFZLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsWUFBWSxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDIn0=
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VtYmVkZGVkL2VudHJ5cG9pbnRzL25vZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFnQixNQUFNLHVCQUF1QixDQUFDO0FBR2xFLE9BQU8sRUFBRSxLQUFLLEdBQUcsRUFBc0MsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRixPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUdqRSxPQUFPLEtBQUssRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxjQUFjLEVBQUUsS0FBSyxxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ25GLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUzQyxxQkFBYSxrQkFBbUIsU0FBUSxjQUFjO0lBQ3BELE9BQWEsTUFBTSxDQUFDLENBQUMsU0FBUyxrQkFBa0IsR0FBRyxrQkFBa0IsRUFDbkUsSUFBSSxFQUFFLEtBQ0osR0FBRyxFQUFFLEdBQUcsRUFDUixTQUFTLEVBQUUsU0FBUyxFQUNwQixRQUFRLEVBQUUsUUFBUSxFQUNsQixnQkFBZ0IsRUFBRSx3QkFBd0IsRUFDMUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxLQUNULENBQUMsRUFDTixTQUFTLEVBQUUsTUFBTSxHQUFHLFNBQVMsRUFDN0IsT0FBTyxHQUFFLHFCQUEwQixHQUNsQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBaURaO0NBQ0Y7QUFFRCxPQUFPLEVBQUUsa0JBQWtCLElBQUksY0FBYyxFQUFFLENBQUM7QUFDaEQsWUFBWSxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbkUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLFlBQVksRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQyJ9
@@ -1 +1 @@
1
- {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../../src/embedded/entrypoints/node.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,EAAE,KAAK,kBAAkB,EAAa,MAAM,mBAAmB,CAAC;AACvE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAGjE,OAAO,EAAE,cAAc,EAAE,KAAK,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAGnF,MAAM,MAAM,yBAAyB,GAAG,qBAAqB,GAAG;IAC9D,kCAAkC;IAClC,SAAS,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAC/B,uEAAuE;IACvE,UAAU,CAAC,EAAE,kBAAkB,CAAC;CACjC,CAAC;AAEF,qBAAa,kBAAmB,SAAQ,cAAc;IACpD,OAAa,MAAM,CACjB,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,OAAO,GAAE,yBAA8B,GACtC,OAAO,CAAC,kBAAkB,CAAC,CAkD7B;CACF;AAED,OAAO,EAAE,kBAAkB,IAAI,cAAc,EAAE,CAAC;AAChD,YAAY,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../../src/embedded/entrypoints/node.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAGlE,OAAO,EAAE,KAAK,GAAG,EAAsC,MAAM,mBAAmB,CAAC;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,6 +1,6 @@
1
1
  import { createAztecNodeClient } from '@aztec/aztec.js/node';
2
2
  import { createLogger } from '@aztec/foundation/log';
3
- import { createStore as createWalletStore, openTmpStore } from '@aztec/kv-store/lmdb-v2';
3
+ import { createStore, openTmpStore } from '@aztec/kv-store/lmdb-v2';
4
4
  import { getPXEConfig } from '@aztec/pxe/config';
5
5
  import { createPXE } from '@aztec/pxe/server';
6
6
  import { BundleAccountContractsProvider } from '../account-contract-providers/bundle.js';
@@ -10,8 +10,10 @@ 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
+ const l1Contracts = await aztecNode.getL1ContractAddresses();
13
14
  const pxeConfig = Object.assign(getPXEConfig(), {
14
15
  proverEnabled: options.pxeConfig?.proverEnabled ?? false,
16
+ dataDirectory: `pxe_data_${l1Contracts.rollupAddress}`,
15
17
  ...options.pxeConfig
16
18
  });
17
19
  if (options.ephemeral) {
@@ -27,17 +29,13 @@ export class NodeEmbeddedWallet extends EmbeddedWallet {
27
29
  }
28
30
  };
29
31
  const pxe = await createPXE(aztecNode, pxeConfig, pxeOptions);
30
- const l1Contracts = await aztecNode.getL1ContractAddresses();
31
- const rollupAddress = l1Contracts.rollupAddress;
32
- const walletDBStore = options.ephemeral ? await openTmpStore('wallet_data', true, undefined, undefined, rootLogger.createChild('wallet:data').getBindings()) : await createWalletStore('wallet_data', 1, {
33
- dataDirectory: pxeConfig.dataDirectory,
32
+ const walletDBStore = options.ephemeral ? await openTmpStore(`wallet_data_${l1Contracts.rollupAddress}`, true, undefined, undefined, rootLogger.createChild('wallet:data').getBindings()) : await createStore('wallet_data', 1, {
33
+ dataDirectory: `wallet_data_${l1Contracts.rollupAddress}`,
34
34
  dataStoreMapSizeKb: pxeConfig.dataStoreMapSizeKb,
35
- l1Contracts: {
36
- rollupAddress
37
- }
35
+ l1Contracts
38
36
  }, rootLogger.createChild('wallet:data').getBindings());
39
37
  const walletDB = WalletDB.init(walletDBStore, rootLogger.createChild('wallet:db').info);
40
- return new NodeEmbeddedWallet(pxe, aztecNode, walletDB, new BundleAccountContractsProvider(), rootLogger);
38
+ return new this(pxe, aztecNode, walletDB, new BundleAccountContractsProvider(), rootLogger);
41
39
  }
42
40
  }
43
41
  export { NodeEmbeddedWallet as EmbeddedWallet };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@aztec/wallets",
3
3
  "homepage": "https://github.com/AztecProtocol/aztec-packages/tree/master/yarn-project/wallets",
4
- "version": "0.0.1-commit.e2b2873ed",
4
+ "version": "0.0.1-commit.ec5f612",
5
5
  "type": "module",
6
6
  "exports": {
7
7
  "./embedded": {
@@ -27,14 +27,15 @@
27
27
  "../package.common.json"
28
28
  ],
29
29
  "dependencies": {
30
- "@aztec/accounts": "0.0.1-commit.e2b2873ed",
31
- "@aztec/aztec.js": "0.0.1-commit.e2b2873ed",
32
- "@aztec/entrypoints": "0.0.1-commit.e2b2873ed",
33
- "@aztec/foundation": "0.0.1-commit.e2b2873ed",
34
- "@aztec/kv-store": "0.0.1-commit.e2b2873ed",
35
- "@aztec/pxe": "0.0.1-commit.e2b2873ed",
36
- "@aztec/stdlib": "0.0.1-commit.e2b2873ed",
37
- "@aztec/wallet-sdk": "0.0.1-commit.e2b2873ed"
30
+ "@aztec/accounts": "0.0.1-commit.ec5f612",
31
+ "@aztec/aztec.js": "0.0.1-commit.ec5f612",
32
+ "@aztec/entrypoints": "0.0.1-commit.ec5f612",
33
+ "@aztec/foundation": "0.0.1-commit.ec5f612",
34
+ "@aztec/kv-store": "0.0.1-commit.ec5f612",
35
+ "@aztec/protocol-contracts": "0.0.1-commit.ec5f612",
36
+ "@aztec/pxe": "0.0.1-commit.ec5f612",
37
+ "@aztec/stdlib": "0.0.1-commit.ec5f612",
38
+ "@aztec/wallet-sdk": "0.0.1-commit.ec5f612"
38
39
  },
39
40
  "devDependencies": {
40
41
  "@jest/globals": "^30.0.0",
@@ -43,6 +44,14 @@
43
44
  "ts-node": "^10.9.1",
44
45
  "typescript": "^5.3.3"
45
46
  },
47
+ "typedocOptions": {
48
+ "entryPoints": [
49
+ "./src/embedded/entrypoints/node.ts",
50
+ "./src/testing.ts"
51
+ ],
52
+ "name": "Wallets",
53
+ "tsconfig": "./tsconfig.json"
54
+ },
46
55
  "files": [
47
56
  "dest",
48
57
  "src",
@@ -3,8 +3,9 @@ import { SchnorrAccountContract } from '@aztec/accounts/schnorr';
3
3
  import { StubAccountContractArtifact, createStubAccount } from '@aztec/accounts/stub';
4
4
  import type { Account, AccountContract } from '@aztec/aztec.js/account';
5
5
  import type { Fq } from '@aztec/foundation/curves/bn254';
6
+ import { getCanonicalMultiCallEntrypoint } from '@aztec/protocol-contracts/multi-call-entrypoint';
6
7
  import type { ContractArtifact } from '@aztec/stdlib/abi';
7
- import type { CompleteAddress } from '@aztec/stdlib/contract';
8
+ import type { CompleteAddress, ContractInstanceWithAddress } from '@aztec/stdlib/contract';
8
9
 
9
10
  import type { AccountContractsProvider } from './types.js';
10
11
 
@@ -32,4 +33,8 @@ export class BundleAccountContractsProvider implements AccountContractsProvider
32
33
  createStubAccount(address: CompleteAddress): Promise<Account> {
33
34
  return Promise.resolve(createStubAccount(address));
34
35
  }
36
+
37
+ getMulticallContract(): Promise<{ instance: ContractInstanceWithAddress; artifact: ContractArtifact }> {
38
+ return getCanonicalMultiCallEntrypoint();
39
+ }
35
40
  }
@@ -1,7 +1,8 @@
1
1
  import type { Account, AccountContract } from '@aztec/aztec.js/account';
2
2
  import type { Fq } from '@aztec/foundation/curves/bn254';
3
+ import { getCanonicalMultiCallEntrypoint } from '@aztec/protocol-contracts/multi-call-entrypoint/lazy';
3
4
  import type { ContractArtifact } from '@aztec/stdlib/abi';
4
- import type { CompleteAddress } from '@aztec/stdlib/contract';
5
+ import type { CompleteAddress, ContractInstanceWithAddress } from '@aztec/stdlib/contract';
5
6
 
6
7
  import type { AccountContractsProvider } from './types.js';
7
8
 
@@ -34,4 +35,8 @@ export class LazyAccountContractsProvider implements AccountContractsProvider {
34
35
  const { createStubAccount } = await import('@aztec/accounts/stub/lazy');
35
36
  return createStubAccount(address);
36
37
  }
38
+
39
+ getMulticallContract(): Promise<{ instance: ContractInstanceWithAddress; artifact: ContractArtifact }> {
40
+ return getCanonicalMultiCallEntrypoint();
41
+ }
37
42
  }
@@ -1,7 +1,7 @@
1
1
  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
- import type { CompleteAddress } from '@aztec/stdlib/contract';
4
+ import type { CompleteAddress, ContractInstanceWithAddress } from '@aztec/stdlib/contract';
5
5
 
6
6
  /**
7
7
  * Provides account contract implementations and stub accounts for the EmbeddedWallet.
@@ -14,5 +14,6 @@ export interface AccountContractsProvider {
14
14
  getEcdsaRAccountContract(signingKey: Buffer): Promise<AccountContract>;
15
15
  getEcdsaKAccountContract(signingKey: Buffer): Promise<AccountContract>;
16
16
  getStubAccountContractArtifact(): Promise<ContractArtifact>;
17
+ getMulticallContract(): Promise<{ instance: ContractInstanceWithAddress; artifact: ContractArtifact }>;
17
18
  createStubAccount(address: CompleteAddress): Promise<Account>;
18
19
  }
@@ -4,6 +4,7 @@ import { AccountManager } from '@aztec/aztec.js/wallet';
4
4
  import type { DefaultAccountEntrypointOptions } from '@aztec/entrypoints/account';
5
5
  import { Fq, Fr } from '@aztec/foundation/curves/bn254';
6
6
  import type { Logger } from '@aztec/foundation/log';
7
+ import type { AccessScopes, PXEConfig, PXECreationOptions } from '@aztec/pxe/client/lazy';
7
8
  import type { PXE } from '@aztec/pxe/server';
8
9
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
9
10
  import { getContractInstanceFromInstantiationParams } from '@aztec/stdlib/contract';
@@ -20,6 +21,10 @@ export type EmbeddedWalletOptions = {
20
21
  logger?: Logger;
21
22
  /** Use ephemeral (in-memory) stores. Data will not persist across sessions. */
22
23
  ephemeral?: boolean;
24
+ /** Override PXE configuration. */
25
+ pxeConfig?: Partial<PXEConfig>;
26
+ /** Advanced PXE creation options (custom store, prover, simulator). */
27
+ pxeOptions?: PXECreationOptions;
23
28
  };
24
29
 
25
30
  export class EmbeddedWallet extends BaseWallet {
@@ -78,9 +83,9 @@ export class EmbeddedWallet extends BaseWallet {
78
83
  executionPayload: ExecutionPayload,
79
84
  from: AztecAddress,
80
85
  feeOptions: FeeOptions,
86
+ scopes: AccessScopes,
81
87
  _skipTxValidation?: boolean,
82
88
  _skipFeeEnforcement?: boolean,
83
- scopes?: AztecAddress[],
84
89
  ): Promise<TxSimulationResult> {
85
90
  const { account: fromAccount, instance, artifact } = await this.getFakeAccountDataFor(from);
86
91
 
@@ -112,25 +117,39 @@ export class EmbeddedWallet extends BaseWallet {
112
117
  }
113
118
 
114
119
  private async getFakeAccountDataFor(address: AztecAddress) {
115
- const originalAccount = await this.getAccountFromAddress(address);
116
- if (originalAccount instanceof SignerlessAccount) {
117
- throw new Error(`Cannot create fake account data for SignerlessAccount at address: ${address}`);
118
- }
119
- const originalAddress = (originalAccount as Account).getCompleteAddress();
120
- const contractInstance = await this.pxe.getContractInstance(originalAddress.address);
121
- if (!contractInstance) {
122
- throw new Error(`No contract instance found for address: ${originalAddress.address}`);
120
+ // While we have the convention of "Zero address means no auth", and also
121
+ // we don't have a way to trigger kernelless simulations without overrides,
122
+ // we need to explicitly handle the zero address case here by
123
+ // returning the actual multicall contract instead of trying to create a stub account for it.
124
+ if (!address.equals(AztecAddress.ZERO)) {
125
+ const originalAccount = await this.getAccountFromAddress(address);
126
+ if (originalAccount instanceof SignerlessAccount) {
127
+ throw new Error(`Cannot create fake account data for SignerlessAccount at address: ${address}`);
128
+ }
129
+ const originalAddress = (originalAccount as Account).getCompleteAddress();
130
+ const contractInstance = await this.pxe.getContractInstance(originalAddress.address);
131
+ if (!contractInstance) {
132
+ throw new Error(`No contract instance found for address: ${originalAddress.address}`);
133
+ }
134
+ const stubAccount = await this.accountContracts.createStubAccount(originalAddress);
135
+ const stubArtifact = await this.accountContracts.getStubAccountContractArtifact();
136
+ const instance = await getContractInstanceFromInstantiationParams(stubArtifact, {
137
+ salt: Fr.random(),
138
+ });
139
+ return {
140
+ account: stubAccount,
141
+ instance,
142
+ artifact: stubArtifact,
143
+ };
144
+ } else {
145
+ const { instance, artifact } = await this.accountContracts.getMulticallContract();
146
+ const account = new SignerlessAccount();
147
+ return {
148
+ instance,
149
+ account,
150
+ artifact,
151
+ };
123
152
  }
124
- const stubAccount = await this.accountContracts.createStubAccount(originalAddress);
125
- const stubArtifact = await this.accountContracts.getStubAccountContractArtifact();
126
- const instance = await getContractInstanceFromInstantiationParams(stubArtifact, {
127
- salt: Fr.random(),
128
- });
129
- return {
130
- account: stubAccount,
131
- instance,
132
- artifact: stubArtifact,
133
- };
134
153
  }
135
154
 
136
155
  protected async createAccountInternal(
@@ -161,10 +180,15 @@ export class EmbeddedWallet extends BaseWallet {
161
180
  const accountManager = await AccountManager.create(this, secret, contract, salt);
162
181
 
163
182
  const instance = accountManager.getInstance();
164
- const artifact = await accountManager.getAccountContract().getContractArtifact();
165
-
166
- await this.registerContract(instance, artifact, accountManager.getSecretKey());
167
-
183
+ const existingInstance = await this.pxe.getContractInstance(instance.address);
184
+ if (!existingInstance) {
185
+ const existingArtifact = await this.pxe.getContractArtifact(instance.currentContractClassId);
186
+ await this.registerContract(
187
+ instance,
188
+ !existingArtifact ? await accountManager.getAccountContract().getContractArtifact() : undefined,
189
+ accountManager.getSecretKey(),
190
+ );
191
+ }
168
192
  return accountManager;
169
193
  }
170
194
 
@@ -1,46 +1,68 @@
1
- import { createAztecNodeClient } from '@aztec/aztec.js/node';
2
- import { createLogger } from '@aztec/foundation/log';
1
+ import { type AztecNode, createAztecNodeClient } from '@aztec/aztec.js/node';
2
+ import { type Logger, createLogger } from '@aztec/foundation/log';
3
3
  import { createStore, openTmpStore } from '@aztec/kv-store/indexeddb';
4
- import { createPXE } from '@aztec/pxe/client/lazy';
5
- import { getPXEConfig } from '@aztec/pxe/config';
4
+ import { type PXE, type PXECreationOptions, createPXE } from '@aztec/pxe/client/lazy';
5
+ import { type PXEConfig, getPXEConfig } from '@aztec/pxe/config';
6
6
 
7
7
  import { LazyAccountContractsProvider } from '../account-contract-providers/lazy.js';
8
+ import type { AccountContractsProvider } from '../account-contract-providers/types.js';
8
9
  import { EmbeddedWallet, type EmbeddedWalletOptions } from '../embedded_wallet.js';
9
10
  import { WalletDB } from '../wallet_db.js';
10
11
 
11
12
  export class BrowserEmbeddedWallet extends EmbeddedWallet {
12
- static async create(nodeUrl: string, options: EmbeddedWalletOptions = {}): Promise<BrowserEmbeddedWallet> {
13
+ static async create<T extends BrowserEmbeddedWallet = BrowserEmbeddedWallet>(
14
+ this: new (
15
+ pxe: PXE,
16
+ aztecNode: AztecNode,
17
+ walletDB: WalletDB,
18
+ accountContracts: AccountContractsProvider,
19
+ log?: Logger,
20
+ ) => T,
21
+ nodeOrUrl: string | AztecNode,
22
+ options: EmbeddedWalletOptions = {},
23
+ ): Promise<T> {
13
24
  const rootLogger = options.logger ?? createLogger('embedded-wallet');
14
25
 
15
- const aztecNode = createAztecNodeClient(nodeUrl);
16
-
26
+ const aztecNode = typeof nodeOrUrl === 'string' ? createAztecNodeClient(nodeOrUrl) : nodeOrUrl;
17
27
  const l1Contracts = await aztecNode.getL1ContractAddresses();
18
- const rollupAddress = l1Contracts.rollupAddress;
19
28
 
20
- const config = getPXEConfig();
21
- if (!options.ephemeral) {
22
- config.dataDirectory = `pxe-${rollupAddress}`;
29
+ const pxeConfig: PXEConfig = Object.assign(getPXEConfig(), {
30
+ proverEnabled: options.pxeConfig?.proverEnabled ?? false,
31
+ dataDirectory: `pxe_data_${l1Contracts.rollupAddress}`,
32
+ ...options.pxeConfig,
33
+ });
34
+
35
+ if (options.ephemeral) {
36
+ delete pxeConfig.dataDirectory;
23
37
  }
24
38
 
25
- const pxe = await createPXE(aztecNode, config, {
39
+ const pxeOptions: PXECreationOptions = {
40
+ ...options.pxeOptions,
26
41
  loggers: {
27
42
  store: rootLogger.createChild('pxe:data'),
28
43
  pxe: rootLogger.createChild('pxe:service'),
29
44
  prover: rootLogger.createChild('pxe:prover'),
45
+ ...options.pxeOptions?.loggers,
30
46
  },
31
- });
47
+ };
48
+
49
+ const pxe = await createPXE(aztecNode, pxeConfig, pxeOptions);
32
50
 
33
51
  const walletDBStore = options.ephemeral
34
52
  ? await openTmpStore(true)
35
53
  : await createStore(
36
- `wallet-${rollupAddress}`,
37
- { dataDirectory: 'wallet', dataStoreMapSizeKb: 2e10 },
38
- undefined,
54
+ 'wallet_data',
55
+ {
56
+ dataDirectory: `wallet_data_${l1Contracts.rollupAddress}`,
57
+ dataStoreMapSizeKb: pxeConfig.dataStoreMapSizeKb,
58
+ l1Contracts,
59
+ },
60
+ 1,
39
61
  rootLogger.createChild('wallet:data'),
40
62
  );
41
63
  const walletDB = WalletDB.init(walletDBStore, rootLogger.createChild('wallet:db').info);
42
64
 
43
- return new BrowserEmbeddedWallet(pxe, aztecNode, walletDB, new LazyAccountContractsProvider(), rootLogger);
65
+ return new this(pxe, aztecNode, walletDB, new LazyAccountContractsProvider(), rootLogger) as T;
44
66
  }
45
67
  }
46
68
 
@@ -1,33 +1,35 @@
1
1
  import { createAztecNodeClient } from '@aztec/aztec.js/node';
2
- import { createLogger } from '@aztec/foundation/log';
3
- import { createStore as createWalletStore, openTmpStore } from '@aztec/kv-store/lmdb-v2';
4
- import type { PXEConfig } from '@aztec/pxe/config';
5
- import { getPXEConfig } from '@aztec/pxe/config';
6
- import { type PXECreationOptions, createPXE } from '@aztec/pxe/server';
2
+ import { type Logger, createLogger } from '@aztec/foundation/log';
3
+ import { createStore, openTmpStore } from '@aztec/kv-store/lmdb-v2';
4
+ import { type PXEConfig, getPXEConfig } from '@aztec/pxe/config';
5
+ import { type PXE, type PXECreationOptions, createPXE } from '@aztec/pxe/server';
7
6
  import type { AztecNode } from '@aztec/stdlib/interfaces/client';
8
7
 
9
8
  import { BundleAccountContractsProvider } from '../account-contract-providers/bundle.js';
9
+ import type { AccountContractsProvider } from '../account-contract-providers/types.js';
10
10
  import { EmbeddedWallet, type EmbeddedWalletOptions } from '../embedded_wallet.js';
11
11
  import { WalletDB } from '../wallet_db.js';
12
12
 
13
- export type NodeEmbeddedWalletOptions = EmbeddedWalletOptions & {
14
- /** Override PXE configuration. */
15
- pxeConfig?: Partial<PXEConfig>;
16
- /** Advanced PXE creation options (custom store, prover, simulator). */
17
- pxeOptions?: PXECreationOptions;
18
- };
19
-
20
13
  export class NodeEmbeddedWallet extends EmbeddedWallet {
21
- static async create(
14
+ static async create<T extends NodeEmbeddedWallet = NodeEmbeddedWallet>(
15
+ this: new (
16
+ pxe: PXE,
17
+ aztecNode: AztecNode,
18
+ walletDB: WalletDB,
19
+ accountContracts: AccountContractsProvider,
20
+ log?: Logger,
21
+ ) => T,
22
22
  nodeOrUrl: string | AztecNode,
23
- options: NodeEmbeddedWalletOptions = {},
24
- ): Promise<NodeEmbeddedWallet> {
23
+ options: EmbeddedWalletOptions = {},
24
+ ): Promise<T> {
25
25
  const rootLogger = options.logger ?? createLogger('embedded-wallet');
26
26
 
27
27
  const aztecNode = typeof nodeOrUrl === 'string' ? createAztecNodeClient(nodeOrUrl) : nodeOrUrl;
28
+ const l1Contracts = await aztecNode.getL1ContractAddresses();
28
29
 
29
- const pxeConfig = Object.assign(getPXEConfig(), {
30
+ const pxeConfig: PXEConfig = Object.assign(getPXEConfig(), {
30
31
  proverEnabled: options.pxeConfig?.proverEnabled ?? false,
32
+ dataDirectory: `pxe_data_${l1Contracts.rollupAddress}`,
31
33
  ...options.pxeConfig,
32
34
  });
33
35
 
@@ -47,30 +49,27 @@ export class NodeEmbeddedWallet extends EmbeddedWallet {
47
49
 
48
50
  const pxe = await createPXE(aztecNode, pxeConfig, pxeOptions);
49
51
 
50
- const l1Contracts = await aztecNode.getL1ContractAddresses();
51
- const rollupAddress = l1Contracts.rollupAddress;
52
-
53
52
  const walletDBStore = options.ephemeral
54
53
  ? await openTmpStore(
55
- 'wallet_data',
54
+ `wallet_data_${l1Contracts.rollupAddress}`,
56
55
  true,
57
56
  undefined,
58
57
  undefined,
59
58
  rootLogger.createChild('wallet:data').getBindings(),
60
59
  )
61
- : await createWalletStore(
60
+ : await createStore(
62
61
  'wallet_data',
63
62
  1,
64
63
  {
65
- dataDirectory: pxeConfig.dataDirectory,
64
+ dataDirectory: `wallet_data_${l1Contracts.rollupAddress}`,
66
65
  dataStoreMapSizeKb: pxeConfig.dataStoreMapSizeKb,
67
- l1Contracts: { rollupAddress },
66
+ l1Contracts,
68
67
  },
69
68
  rootLogger.createChild('wallet:data').getBindings(),
70
69
  );
71
70
  const walletDB = WalletDB.init(walletDBStore, rootLogger.createChild('wallet:db').info);
72
71
 
73
- return new NodeEmbeddedWallet(pxe, aztecNode, walletDB, new BundleAccountContractsProvider(), rootLogger);
72
+ return new this(pxe, aztecNode, walletDB, new BundleAccountContractsProvider(), rootLogger) as T;
74
73
  }
75
74
  }
76
75
 
@@ -1,5 +0,0 @@
1
- import { EmbeddedWallet } from './embedded_wallet.js';
2
- export declare class BrowserEmbeddedWallet extends EmbeddedWallet {
3
- static create(nodeUrl: string): Promise<BrowserEmbeddedWallet>;
4
- }
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1iZWRkZWRfd2FsbGV0X2Jyb3dzZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbWJlZGRlZC9lbWJlZGRlZF93YWxsZXRfYnJvd3Nlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFHdEQscUJBQWEscUJBQXNCLFNBQVEsY0FBYztJQUN2RCxPQUFhLE1BQU0sQ0FBQyxPQUFPLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxDQTJCbkU7Q0FDRiJ9
@@ -1 +0,0 @@
1
- {"version":3,"file":"embedded_wallet_browser.d.ts","sourceRoot":"","sources":["../../src/embedded/embedded_wallet_browser.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtD,qBAAa,qBAAsB,SAAQ,cAAc;IACvD,OAAa,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC,CA2BnE;CACF"}
@@ -1,31 +0,0 @@
1
- import { createAztecNodeClient } from '@aztec/aztec.js/node';
2
- import { createLogger } from '@aztec/foundation/log';
3
- import { createStore } from '@aztec/kv-store/indexeddb';
4
- import { createPXE } from '@aztec/pxe/client/lazy';
5
- import { getPXEConfig } from '@aztec/pxe/config';
6
- import { LazyAccountContractsProvider } from './account-contract-providers/lazy.js';
7
- import { EmbeddedWallet } from './embedded_wallet.js';
8
- import { WalletDB } from './wallet_db.js';
9
- export class BrowserEmbeddedWallet extends EmbeddedWallet {
10
- static async create(nodeUrl) {
11
- const aztecNode = createAztecNodeClient(nodeUrl);
12
- const l1Contracts = await aztecNode.getL1ContractAddresses();
13
- const rollupAddress = l1Contracts.rollupAddress;
14
- const config = getPXEConfig();
15
- config.dataDirectory = `pxe-${rollupAddress}`;
16
- const pxe = await createPXE(aztecNode, config, {
17
- loggers: {
18
- store: createLogger('pxe:data:idb'),
19
- pxe: createLogger('pxe:service'),
20
- prover: createLogger('bb:wasm:lazy')
21
- }
22
- });
23
- const logger = createLogger('embedded-wallet:browser');
24
- const walletDBStore = await createStore(`wallet-${rollupAddress}`, {
25
- dataDirectory: 'wallet',
26
- dataStoreMapSizeKb: 2e10
27
- }, undefined, createLogger('wallet:data:idb'));
28
- const walletDB = WalletDB.init(walletDBStore, logger.info);
29
- return new BrowserEmbeddedWallet(pxe, aztecNode, walletDB, new LazyAccountContractsProvider());
30
- }
31
- }
@@ -1,40 +0,0 @@
1
- import { createAztecNodeClient } from '@aztec/aztec.js/node';
2
- import { createLogger } from '@aztec/foundation/log';
3
- import { createStore } from '@aztec/kv-store/indexeddb';
4
- import { createPXE } from '@aztec/pxe/client/lazy';
5
- import { getPXEConfig } from '@aztec/pxe/config';
6
-
7
- import { LazyAccountContractsProvider } from './account-contract-providers/lazy.js';
8
- import { EmbeddedWallet } from './embedded_wallet.js';
9
- import { WalletDB } from './wallet_db.js';
10
-
11
- export class BrowserEmbeddedWallet extends EmbeddedWallet {
12
- static async create(nodeUrl: string): Promise<BrowserEmbeddedWallet> {
13
- const aztecNode = createAztecNodeClient(nodeUrl);
14
-
15
- const l1Contracts = await aztecNode.getL1ContractAddresses();
16
- const rollupAddress = l1Contracts.rollupAddress;
17
-
18
- const config = getPXEConfig();
19
- config.dataDirectory = `pxe-${rollupAddress}`;
20
-
21
- const pxe = await createPXE(aztecNode, config, {
22
- loggers: {
23
- store: createLogger('pxe:data:idb'),
24
- pxe: createLogger('pxe:service'),
25
- prover: createLogger('bb:wasm:lazy'),
26
- },
27
- });
28
-
29
- const logger = createLogger('embedded-wallet:browser');
30
- const walletDBStore = await createStore(
31
- `wallet-${rollupAddress}`,
32
- { dataDirectory: 'wallet', dataStoreMapSizeKb: 2e10 },
33
- undefined,
34
- createLogger('wallet:data:idb'),
35
- );
36
- const walletDB = WalletDB.init(walletDBStore, logger.info);
37
-
38
- return new BrowserEmbeddedWallet(pxe, aztecNode, walletDB, new LazyAccountContractsProvider());
39
- }
40
- }