@aztec/wallets 0.0.1-commit.cf93bcc56 → 0.0.1-commit.db765a8

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 +6 -2
  10. package/dest/embedded/embedded_wallet.d.ts.map +1 -1
  11. package/dest/embedded/embedded_wallet.js +37 -20
  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 +46 -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,7 +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 } from '@aztec/pxe/client/lazy';
6
+ import type { AccessScopes, PXEConfig, PXECreationOptions } from '@aztec/pxe/client/lazy';
7
7
  import type { PXE } from '@aztec/pxe/server';
8
8
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
9
9
  import type { AztecNode } from '@aztec/stdlib/interfaces/client';
@@ -16,6 +16,10 @@ export type EmbeddedWalletOptions = {
16
16
  logger?: Logger;
17
17
  /** Use ephemeral (in-memory) stores. Data will not persist across sessions. */
18
18
  ephemeral?: boolean;
19
+ /** Override PXE configuration. */
20
+ pxeConfig?: Partial<PXEConfig>;
21
+ /** Advanced PXE creation options (custom store, prover, simulator). */
22
+ pxeOptions?: PXECreationOptions;
19
23
  };
20
24
  export declare class EmbeddedWallet extends BaseWallet {
21
25
  protected walletDB: WalletDB;
@@ -40,4 +44,4 @@ export declare class EmbeddedWallet extends BaseWallet {
40
44
  setMinFeePadding(value?: number): void;
41
45
  stop(): Promise<void>;
42
46
  }
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1iZWRkZWRfd2FsbGV0LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZW1iZWRkZWQvZW1iZWRkZWRfd2FsbGV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLE9BQU8sRUFBcUIsTUFBTSx5QkFBeUIsQ0FBQztBQUMxRSxPQUFPLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFeEQsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4RCxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRCxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMzRCxPQUFPLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFM0QsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFakUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLEtBQUssa0JBQWtCLEVBQTBCLE1BQU0sa0JBQWtCLENBQUM7QUFDckcsT0FBTyxFQUFFLFVBQVUsRUFBRSxLQUFLLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRTVFLE9BQU8sS0FBSyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDdEYsT0FBTyxFQUFFLEtBQUssV0FBVyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTVELE1BQU0sTUFBTSxxQkFBcUIsR0FBRztJQUNsQyxxRkFBcUY7SUFDckYsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQ2hCLCtFQUErRTtJQUMvRSxTQUFTLENBQUMsRUFBRSxPQUFPLENBQUM7Q0FDckIsQ0FBQztBQUVGLHFCQUFhLGNBQWUsU0FBUSxVQUFVO0lBSTFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsUUFBUTtJQUM1QixTQUFTLENBQUMsZ0JBQWdCLEVBQUUsd0JBQXdCO0lBSnRELFlBQ0UsR0FBRyxFQUFFLEdBQUcsRUFDUixTQUFTLEVBQUUsU0FBUyxFQUNWLFFBQVEsRUFBRSxRQUFRLEVBQ2xCLGdCQUFnQixFQUFFLHdCQUF3QixFQUNwRCxHQUFHLENBQUMsRUFBRSxNQUFNLEVBR2I7SUFFRCxVQUFnQixxQkFBcUIsQ0FBQyxPQUFPLEVBQUUsWUFBWSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FjN0U7SUFFRCxXQUFXLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLENBRTlDO0lBRWMsY0FBYyxDQUFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0seUJBR2pFO0lBRWMsY0FBYyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQVNoRTtJQUVEOzs7O09BSUc7SUFDSCxVQUF5QixxQkFBcUIsQ0FDNUMsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQ2xDLElBQUksRUFBRSxZQUFZLEVBQ2xCLFVBQVUsRUFBRSxVQUFVLEVBQ3RCLE1BQU0sRUFBRSxZQUFZLEVBQ3BCLGlCQUFpQixDQUFDLEVBQUUsT0FBTyxFQUMzQixtQkFBbUIsQ0FBQyxFQUFFLE9BQU8sR0FDNUIsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBNEI3QjtZQUVhLHFCQUFxQjtJQXNCbkMsVUFBZ0IscUJBQXFCLENBQ25DLElBQUksRUFBRSxXQUFXLEVBQ2pCLE1BQU0sRUFBRSxFQUFFLEVBQ1YsSUFBSSxFQUFFLEVBQUUsRUFDUixVQUFVLEVBQUUsTUFBTSxHQUNqQixPQUFPLENBQUMsY0FBYyxDQUFDLENBNEJ6QjtJQUVLLHFCQUFxQixDQUN6QixLQUFLLEVBQUUsTUFBTSxFQUNiLElBQUksRUFBRSxXQUFXLEVBQ2pCLE1BQU0sRUFBRSxFQUFFLEVBQ1YsSUFBSSxFQUFFLEVBQUUsRUFDUixVQUFVLEVBQUUsTUFBTSxHQUNqQixPQUFPLENBQUMsY0FBYyxDQUFDLENBSXpCO0lBRUQsb0JBQW9CLENBQUMsTUFBTSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLFVBQVUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUduRztJQUVELG1CQUFtQixDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsY0FBYyxDQUFDLENBRXJHO0lBRUQsbUJBQW1CLENBQUMsTUFBTSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FFckc7SUFFRCxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsRUFBRSxNQUFNLFFBRTlCO0lBRUQsSUFBSSxrQkFFSDtDQUNGIn0=
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":"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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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"}
@@ -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.cf93bcc56",
4
+ "version": "0.0.1-commit.db765a8",
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.cf93bcc56",
31
- "@aztec/aztec.js": "0.0.1-commit.cf93bcc56",
32
- "@aztec/entrypoints": "0.0.1-commit.cf93bcc56",
33
- "@aztec/foundation": "0.0.1-commit.cf93bcc56",
34
- "@aztec/kv-store": "0.0.1-commit.cf93bcc56",
35
- "@aztec/pxe": "0.0.1-commit.cf93bcc56",
36
- "@aztec/stdlib": "0.0.1-commit.cf93bcc56",
37
- "@aztec/wallet-sdk": "0.0.1-commit.cf93bcc56"
30
+ "@aztec/accounts": "0.0.1-commit.db765a8",
31
+ "@aztec/aztec.js": "0.0.1-commit.db765a8",
32
+ "@aztec/entrypoints": "0.0.1-commit.db765a8",
33
+ "@aztec/foundation": "0.0.1-commit.db765a8",
34
+ "@aztec/kv-store": "0.0.1-commit.db765a8",
35
+ "@aztec/protocol-contracts": "0.0.1-commit.db765a8",
36
+ "@aztec/pxe": "0.0.1-commit.db765a8",
37
+ "@aztec/stdlib": "0.0.1-commit.db765a8",
38
+ "@aztec/wallet-sdk": "0.0.1-commit.db765a8"
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,7 +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 } from '@aztec/pxe/client/lazy';
7
+ import type { AccessScopes, 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 { getContractInstanceFromInstantiationParams } from '@aztec/stdlib/contract';
@@ -21,6 +21,10 @@ export type EmbeddedWalletOptions = {
21
21
  logger?: Logger;
22
22
  /** Use ephemeral (in-memory) stores. Data will not persist across sessions. */
23
23
  ephemeral?: boolean;
24
+ /** Override PXE configuration. */
25
+ pxeConfig?: Partial<PXEConfig>;
26
+ /** Advanced PXE creation options (custom store, prover, simulator). */
27
+ pxeOptions?: PXECreationOptions;
24
28
  };
25
29
 
26
30
  export class EmbeddedWallet extends BaseWallet {
@@ -113,25 +117,39 @@ export class EmbeddedWallet extends BaseWallet {
113
117
  }
114
118
 
115
119
  private async getFakeAccountDataFor(address: AztecAddress) {
116
- const originalAccount = await this.getAccountFromAddress(address);
117
- if (originalAccount instanceof SignerlessAccount) {
118
- throw new Error(`Cannot create fake account data for SignerlessAccount at address: ${address}`);
119
- }
120
- const originalAddress = (originalAccount as Account).getCompleteAddress();
121
- const contractInstance = await this.pxe.getContractInstance(originalAddress.address);
122
- if (!contractInstance) {
123
- 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
+ };
124
152
  }
125
- const stubAccount = await this.accountContracts.createStubAccount(originalAddress);
126
- const stubArtifact = await this.accountContracts.getStubAccountContractArtifact();
127
- const instance = await getContractInstanceFromInstantiationParams(stubArtifact, {
128
- salt: Fr.random(),
129
- });
130
- return {
131
- account: stubAccount,
132
- instance,
133
- artifact: stubArtifact,
134
- };
135
153
  }
136
154
 
137
155
  protected async createAccountInternal(
@@ -162,10 +180,15 @@ export class EmbeddedWallet extends BaseWallet {
162
180
  const accountManager = await AccountManager.create(this, secret, contract, salt);
163
181
 
164
182
  const instance = accountManager.getInstance();
165
- const artifact = await accountManager.getAccountContract().getContractArtifact();
166
-
167
- await this.registerContract(instance, artifact, accountManager.getSecretKey());
168
-
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
+ }
169
192
  return accountManager;
170
193
  }
171
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
- }