@aztec/wallets 0.0.1-commit.0c875d939 → 0.0.1-commit.125b3452

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 +18 -5
  10. package/dest/embedded/embedded_wallet.d.ts.map +1 -1
  11. package/dest/embedded/embedded_wallet.js +84 -16
  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 +19 -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 +111 -19
  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"}
@@ -1,14 +1,15 @@
1
1
  import { type Account } from '@aztec/aztec.js/account';
2
- import type { Aliased } from '@aztec/aztec.js/wallet';
2
+ import { type InteractionWaitOptions, type SendReturn } from '@aztec/aztec.js/contracts';
3
+ import type { Aliased, SendOptions } from '@aztec/aztec.js/wallet';
3
4
  import { AccountManager } from '@aztec/aztec.js/wallet';
4
5
  import { Fq, Fr } from '@aztec/foundation/curves/bn254';
5
6
  import type { Logger } from '@aztec/foundation/log';
6
- import type { AccessScopes } from '@aztec/pxe/client/lazy';
7
+ import type { 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 type { AztecNode } from '@aztec/stdlib/interfaces/client';
10
11
  import { ExecutionPayload, type TxSimulationResult } from '@aztec/stdlib/tx';
11
- import { BaseWallet, type FeeOptions } from '@aztec/wallet-sdk/base-wallet';
12
+ import { BaseWallet, type SimulateViaEntrypointOptions } from '@aztec/wallet-sdk/base-wallet';
12
13
  import type { AccountContractsProvider } from './account-contract-providers/types.js';
13
14
  import { type AccountType, WalletDB } from './wallet_db.js';
14
15
  export type EmbeddedWalletOptions = {
@@ -16,21 +17,32 @@ export type EmbeddedWalletOptions = {
16
17
  logger?: Logger;
17
18
  /** Use ephemeral (in-memory) stores. Data will not persist across sessions. */
18
19
  ephemeral?: boolean;
20
+ /** Override PXE configuration. */
21
+ pxeConfig?: Partial<PXEConfig>;
22
+ /** Advanced PXE creation options (custom store, prover, simulator). */
23
+ pxeOptions?: PXECreationOptions;
19
24
  };
20
25
  export declare class EmbeddedWallet extends BaseWallet {
21
26
  protected walletDB: WalletDB;
22
27
  protected accountContracts: AccountContractsProvider;
28
+ protected estimatedGasPadding: number;
23
29
  constructor(pxe: PXE, aztecNode: AztecNode, walletDB: WalletDB, accountContracts: AccountContractsProvider, log?: Logger);
24
30
  protected getAccountFromAddress(address: AztecAddress): Promise<Account>;
25
31
  getAccounts(): Promise<Aliased<AztecAddress>[]>;
26
32
  registerSender(address: AztecAddress, alias: string): Promise<AztecAddress>;
27
33
  getAddressBook(): Promise<Aliased<AztecAddress>[]>;
34
+ /**
35
+ * Overrides the base sendTx to add a pre-simulation step before the actual send. The simulation
36
+ * estimates actual gas usage and captures call authorization requests to generate
37
+ * the necessary authwitnesses.
38
+ */
39
+ sendTx<W extends InteractionWaitOptions = undefined>(executionPayload: ExecutionPayload, opts: SendOptions<W>): Promise<SendReturn<W>>;
28
40
  /**
29
41
  * Simulates calls via a stub account entrypoint, bypassing real account authorization.
30
42
  * This allows kernelless simulation with contract overrides, skipping expensive
31
43
  * private kernel circuit execution.
32
44
  */
33
- protected simulateViaEntrypoint(executionPayload: ExecutionPayload, from: AztecAddress, feeOptions: FeeOptions, scopes: AccessScopes, _skipTxValidation?: boolean, _skipFeeEnforcement?: boolean): Promise<TxSimulationResult>;
45
+ protected simulateViaEntrypoint(executionPayload: ExecutionPayload, opts: SimulateViaEntrypointOptions): Promise<TxSimulationResult>;
34
46
  private getFakeAccountDataFor;
35
47
  protected createAccountInternal(type: AccountType, secret: Fr, salt: Fr, signingKey: Buffer): Promise<AccountManager>;
36
48
  createAndStoreAccount(alias: string, type: AccountType, secret: Fr, salt: Fr, signingKey: Buffer): Promise<AccountManager>;
@@ -38,6 +50,7 @@ export declare class EmbeddedWallet extends BaseWallet {
38
50
  createECDSARAccount(secret: Fr, salt: Fr, signingKey: Buffer, alias?: string): Promise<AccountManager>;
39
51
  createECDSAKAccount(secret: Fr, salt: Fr, signingKey: Buffer, alias?: string): Promise<AccountManager>;
40
52
  setMinFeePadding(value?: number): void;
53
+ setEstimatedGasPadding(value?: number): void;
41
54
  stop(): Promise<void>;
42
55
  }
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1iZWRkZWRfd2FsbGV0LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZW1iZWRkZWQvZW1iZWRkZWRfd2FsbGV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLE9BQU8sRUFBcUIsTUFBTSx5QkFBeUIsQ0FBQztBQUMxRSxPQUFPLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFeEQsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4RCxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRCxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMzRCxPQUFPLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFM0QsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFakUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLEtBQUssa0JBQWtCLEVBQTBCLE1BQU0sa0JBQWtCLENBQUM7QUFDckcsT0FBTyxFQUFFLFVBQVUsRUFBRSxLQUFLLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRTVFLE9BQU8sS0FBSyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDdEYsT0FBTyxFQUFFLEtBQUssV0FBVyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTVELE1BQU0sTUFBTSxxQkFBcUIsR0FBRztJQUNsQyxxRkFBcUY7SUFDckYsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQ2hCLCtFQUErRTtJQUMvRSxTQUFTLENBQUMsRUFBRSxPQUFPLENBQUM7Q0FDckIsQ0FBQztBQUVGLHFCQUFhLGNBQWUsU0FBUSxVQUFVO0lBSTFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsUUFBUTtJQUM1QixTQUFTLENBQUMsZ0JBQWdCLEVBQUUsd0JBQXdCO0lBSnRELFlBQ0UsR0FBRyxFQUFFLEdBQUcsRUFDUixTQUFTLEVBQUUsU0FBUyxFQUNWLFFBQVEsRUFBRSxRQUFRLEVBQ2xCLGdCQUFnQixFQUFFLHdCQUF3QixFQUNwRCxHQUFHLENBQUMsRUFBRSxNQUFNLEVBR2I7SUFFRCxVQUFnQixxQkFBcUIsQ0FBQyxPQUFPLEVBQUUsWUFBWSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FjN0U7SUFFRCxXQUFXLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLENBRTlDO0lBRWMsY0FBYyxDQUFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0seUJBR2pFO0lBRWMsY0FBYyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQVNoRTtJQUVEOzs7O09BSUc7SUFDSCxVQUF5QixxQkFBcUIsQ0FDNUMsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQ2xDLElBQUksRUFBRSxZQUFZLEVBQ2xCLFVBQVUsRUFBRSxVQUFVLEVBQ3RCLE1BQU0sRUFBRSxZQUFZLEVBQ3BCLGlCQUFpQixDQUFDLEVBQUUsT0FBTyxFQUMzQixtQkFBbUIsQ0FBQyxFQUFFLE9BQU8sR0FDNUIsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBNEI3QjtZQUVhLHFCQUFxQjtJQXNCbkMsVUFBZ0IscUJBQXFCLENBQ25DLElBQUksRUFBRSxXQUFXLEVBQ2pCLE1BQU0sRUFBRSxFQUFFLEVBQ1YsSUFBSSxFQUFFLEVBQUUsRUFDUixVQUFVLEVBQUUsTUFBTSxHQUNqQixPQUFPLENBQUMsY0FBYyxDQUFDLENBNEJ6QjtJQUVLLHFCQUFxQixDQUN6QixLQUFLLEVBQUUsTUFBTSxFQUNiLElBQUksRUFBRSxXQUFXLEVBQ2pCLE1BQU0sRUFBRSxFQUFFLEVBQ1YsSUFBSSxFQUFFLEVBQUUsRUFDUixVQUFVLEVBQUUsTUFBTSxHQUNqQixPQUFPLENBQUMsY0FBYyxDQUFDLENBSXpCO0lBRUQsb0JBQW9CLENBQUMsTUFBTSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLFVBQVUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUduRztJQUVELG1CQUFtQixDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsY0FBYyxDQUFDLENBRXJHO0lBRUQsbUJBQW1CLENBQUMsTUFBTSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FFckc7SUFFRCxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsRUFBRSxNQUFNLFFBRTlCO0lBRUQsSUFBSSxrQkFFSDtDQUNGIn0=
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1iZWRkZWRfd2FsbGV0LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZW1iZWRkZWQvZW1iZWRkZWRfd2FsbGV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLE9BQU8sRUFBcUIsTUFBTSx5QkFBeUIsQ0FBQztBQUUxRSxPQUFPLEVBQUUsS0FBSyxzQkFBc0IsRUFBRSxLQUFLLFVBQVUsRUFBZ0IsTUFBTSwyQkFBMkIsQ0FBQztBQUN2RyxPQUFPLEtBQUssRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXhELE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEQsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDcEQsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUUsT0FBTyxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDN0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRzNELE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRWpFLE9BQU8sRUFDTCxnQkFBZ0IsRUFFaEIsS0FBSyxrQkFBa0IsRUFHeEIsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQUUsVUFBVSxFQUFFLEtBQUssNEJBQTRCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUU5RixPQUFPLEtBQUssRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxLQUFLLFdBQVcsRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU1RCxNQUFNLE1BQU0scUJB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
@@ -1 +1 @@
1
- {"version":3,"file":"embedded_wallet.d.ts","sourceRoot":"","sources":["../../src/embedded/embedded_wallet.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"embedded_wallet.d.ts","sourceRoot":"","sources":["../../src/embedded/embedded_wallet.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,21 @@
1
1
  import { SignerlessAccount } from '@aztec/aztec.js/account';
2
+ import { CallAuthorizationRequest } from '@aztec/aztec.js/authorization';
3
+ import { getGasLimits } from '@aztec/aztec.js/contracts';
2
4
  import { AccountManager } from '@aztec/aztec.js/wallet';
3
5
  import { Fq, Fr } from '@aztec/foundation/curves/bn254';
4
6
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
5
7
  import { getContractInstanceFromInstantiationParams } from '@aztec/stdlib/contract';
8
+ import { GasSettings } from '@aztec/stdlib/gas';
6
9
  import { deriveSigningKey } from '@aztec/stdlib/keys';
7
- import { mergeExecutionPayloads } from '@aztec/stdlib/tx';
10
+ import { collectOffchainEffects, mergeExecutionPayloads } from '@aztec/stdlib/tx';
8
11
  import { BaseWallet } from '@aztec/wallet-sdk/base-wallet';
12
+ const DEFAULT_ESTIMATED_GAS_PADDING = 0.1;
9
13
  export class EmbeddedWallet extends BaseWallet {
10
14
  walletDB;
11
15
  accountContracts;
16
+ estimatedGasPadding;
12
17
  constructor(pxe, aztecNode, walletDB, accountContracts, log){
13
- super(pxe, aztecNode, log), this.walletDB = walletDB, this.accountContracts = accountContracts;
18
+ super(pxe, aztecNode, log), this.walletDB = walletDB, this.accountContracts = accountContracts, this.estimatedGasPadding = DEFAULT_ESTIMATED_GAS_PADDING;
14
19
  }
15
20
  async getAccountFromAddress(address) {
16
21
  if (address.equals(AztecAddress.ZERO)) {
@@ -42,11 +47,75 @@ export class EmbeddedWallet extends BaseWallet {
42
47
  return storedSenders;
43
48
  }
44
49
  /**
50
+ * Overrides the base sendTx to add a pre-simulation step before the actual send. The simulation
51
+ * estimates actual gas usage and captures call authorization requests to generate
52
+ * the necessary authwitnesses.
53
+ */ async sendTx(executionPayload, opts) {
54
+ const feeOptions = await this.completeFeeOptionsForEstimation(opts.from, executionPayload.feePayer, opts.fee?.gasSettings);
55
+ // Simulate the transaction first to estimate gas and capture required
56
+ // private authwitnesses based on offchain effects.
57
+ const simulationResult = await this.simulateViaEntrypoint(executionPayload, {
58
+ from: opts.from,
59
+ feeOptions,
60
+ scopes: this.scopesFrom(opts.from, opts.additionalScopes),
61
+ skipTxValidation: true
62
+ });
63
+ const offchainEffects = collectOffchainEffects(simulationResult.privateExecutionResult);
64
+ const authWitnesses = await Promise.all(offchainEffects.map(async (effect)=>{
65
+ try {
66
+ const authRequest = await CallAuthorizationRequest.fromFields(effect.data);
67
+ return this.createAuthWit(opts.from, {
68
+ consumer: effect.contractAddress,
69
+ innerHash: authRequest.innerHash
70
+ });
71
+ } catch {
72
+ return undefined;
73
+ }
74
+ }));
75
+ for (const authwit of authWitnesses){
76
+ if (authwit) {
77
+ executionPayload.authWitnesses.push(authwit);
78
+ }
79
+ }
80
+ const estimated = getGasLimits(simulationResult, this.estimatedGasPadding);
81
+ this.log.verbose(`Estimated gas limits for tx: DA=${estimated.gasLimits.daGas} L2=${estimated.gasLimits.l2Gas} teardownDA=${estimated.teardownGasLimits.daGas} teardownL2=${estimated.teardownGasLimits.l2Gas}`);
82
+ const gasSettings = GasSettings.from({
83
+ ...opts.fee?.gasSettings,
84
+ maxFeesPerGas: feeOptions.gasSettings.maxFeesPerGas,
85
+ maxPriorityFeesPerGas: feeOptions.gasSettings.maxPriorityFeesPerGas,
86
+ gasLimits: opts.fee?.gasSettings?.gasLimits ?? estimated.gasLimits,
87
+ teardownGasLimits: opts.fee?.gasSettings?.teardownGasLimits ?? estimated.teardownGasLimits
88
+ });
89
+ return super.sendTx(executionPayload, {
90
+ ...opts,
91
+ fee: {
92
+ ...opts.fee,
93
+ gasSettings
94
+ }
95
+ });
96
+ }
97
+ /**
45
98
  * Simulates calls via a stub account entrypoint, bypassing real account authorization.
46
99
  * This allows kernelless simulation with contract overrides, skipping expensive
47
100
  * private kernel circuit execution.
48
- */ async simulateViaEntrypoint(executionPayload, from, feeOptions, scopes, _skipTxValidation, _skipFeeEnforcement) {
49
- const { account: fromAccount, instance, artifact } = await this.getFakeAccountDataFor(from);
101
+ */ async simulateViaEntrypoint(executionPayload, opts) {
102
+ const { from, feeOptions, scopes, skipTxValidation, skipFeeEnforcement } = opts;
103
+ let overrides;
104
+ let fromAccount;
105
+ if (!from.equals(AztecAddress.ZERO)) {
106
+ const { account, instance, artifact } = await this.getFakeAccountDataFor(from);
107
+ fromAccount = account;
108
+ overrides = {
109
+ contracts: {
110
+ [from.toString()]: {
111
+ instance,
112
+ artifact
113
+ }
114
+ }
115
+ };
116
+ } else {
117
+ fromAccount = await this.getAccountFromAddress(from);
118
+ }
50
119
  const feeExecutionPayload = await feeOptions.walletFeePaymentMethod?.getExecutionPayload();
51
120
  const executionOptions = {
52
121
  txNonce: Fr.random(),
@@ -61,16 +130,9 @@ export class EmbeddedWallet extends BaseWallet {
61
130
  const txRequest = await fromAccount.createTxExecutionRequest(finalExecutionPayload, feeOptions.gasSettings, chainInfo, executionOptions);
62
131
  return this.pxe.simulateTx(txRequest, {
63
132
  simulatePublic: true,
64
- skipFeeEnforcement: true,
65
- skipTxValidation: true,
66
- overrides: {
67
- contracts: {
68
- [from.toString()]: {
69
- instance,
70
- artifact
71
- }
72
- }
73
- },
133
+ skipFeeEnforcement,
134
+ skipTxValidation,
135
+ overrides,
74
136
  scopes
75
137
  });
76
138
  }
@@ -120,8 +182,11 @@ export class EmbeddedWallet extends BaseWallet {
120
182
  }
121
183
  const accountManager = await AccountManager.create(this, secret, contract, salt);
122
184
  const instance = accountManager.getInstance();
123
- const artifact = await accountManager.getAccountContract().getContractArtifact();
124
- await this.registerContract(instance, artifact, accountManager.getSecretKey());
185
+ const existingInstance = await this.pxe.getContractInstance(instance.address);
186
+ if (!existingInstance) {
187
+ const existingArtifact = await this.pxe.getContractArtifact(instance.currentContractClassId);
188
+ await this.registerContract(instance, !existingArtifact ? await accountManager.getAccountContract().getContractArtifact() : undefined, accountManager.getSecretKey());
189
+ }
125
190
  return accountManager;
126
191
  }
127
192
  async createAndStoreAccount(alias, type, secret, salt, signingKey) {
@@ -148,6 +213,9 @@ export class EmbeddedWallet extends BaseWallet {
148
213
  setMinFeePadding(value) {
149
214
  this.minFeePadding = value ?? 0.5;
150
215
  }
216
+ setEstimatedGasPadding(value) {
217
+ this.estimatedGasPadding = value ?? DEFAULT_ESTIMATED_GAS_PADDING;
218
+ }
151
219
  stop() {
152
220
  return this.pxe.stop();
153
221
  }
@@ -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.0c875d939",
4
+ "version": "0.0.1-commit.125b3452",
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.0c875d939",
31
- "@aztec/aztec.js": "0.0.1-commit.0c875d939",
32
- "@aztec/entrypoints": "0.0.1-commit.0c875d939",
33
- "@aztec/foundation": "0.0.1-commit.0c875d939",
34
- "@aztec/kv-store": "0.0.1-commit.0c875d939",
35
- "@aztec/pxe": "0.0.1-commit.0c875d939",
36
- "@aztec/stdlib": "0.0.1-commit.0c875d939",
37
- "@aztec/wallet-sdk": "0.0.1-commit.0c875d939"
30
+ "@aztec/accounts": "0.0.1-commit.125b3452",
31
+ "@aztec/aztec.js": "0.0.1-commit.125b3452",
32
+ "@aztec/entrypoints": "0.0.1-commit.125b3452",
33
+ "@aztec/foundation": "0.0.1-commit.125b3452",
34
+ "@aztec/kv-store": "0.0.1-commit.125b3452",
35
+ "@aztec/protocol-contracts": "0.0.1-commit.125b3452",
36
+ "@aztec/pxe": "0.0.1-commit.125b3452",
37
+ "@aztec/stdlib": "0.0.1-commit.125b3452",
38
+ "@aztec/wallet-sdk": "0.0.1-commit.125b3452"
38
39
  },
39
40
  "devDependencies": {
40
41
  "@jest/globals": "^30.0.0",
@@ -43,6 +44,15 @@
43
44
  "ts-node": "^10.9.1",
44
45
  "typescript": "^5.3.3"
45
46
  },
47
+ "typedocOptions": {
48
+ "entryPoints": [
49
+ "./src/embedded/entrypoints/browser.ts",
50
+ "./src/embedded/entrypoints/node.ts",
51
+ "./src/testing.ts"
52
+ ],
53
+ "name": "Wallets",
54
+ "tsconfig": "./tsconfig.json"
55
+ },
46
56
  "files": [
47
57
  "dest",
48
58
  "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
  }
@@ -1,17 +1,26 @@
1
1
  import { type Account, SignerlessAccount } from '@aztec/aztec.js/account';
2
- import type { Aliased } from '@aztec/aztec.js/wallet';
2
+ import { CallAuthorizationRequest } from '@aztec/aztec.js/authorization';
3
+ import { type InteractionWaitOptions, type SendReturn, getGasLimits } from '@aztec/aztec.js/contracts';
4
+ import type { Aliased, SendOptions } from '@aztec/aztec.js/wallet';
3
5
  import { AccountManager } from '@aztec/aztec.js/wallet';
4
6
  import type { DefaultAccountEntrypointOptions } from '@aztec/entrypoints/account';
5
7
  import { Fq, Fr } from '@aztec/foundation/curves/bn254';
6
8
  import type { Logger } from '@aztec/foundation/log';
7
- import type { AccessScopes } from '@aztec/pxe/client/lazy';
9
+ import type { PXEConfig, PXECreationOptions } from '@aztec/pxe/client/lazy';
8
10
  import type { PXE } from '@aztec/pxe/server';
9
11
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
10
12
  import { getContractInstanceFromInstantiationParams } from '@aztec/stdlib/contract';
13
+ import { GasSettings } from '@aztec/stdlib/gas';
11
14
  import type { AztecNode } from '@aztec/stdlib/interfaces/client';
12
15
  import { deriveSigningKey } from '@aztec/stdlib/keys';
13
- import { ExecutionPayload, type TxSimulationResult, mergeExecutionPayloads } from '@aztec/stdlib/tx';
14
- import { BaseWallet, type FeeOptions } from '@aztec/wallet-sdk/base-wallet';
16
+ import {
17
+ ExecutionPayload,
18
+ SimulationOverrides,
19
+ type TxSimulationResult,
20
+ collectOffchainEffects,
21
+ mergeExecutionPayloads,
22
+ } from '@aztec/stdlib/tx';
23
+ import { BaseWallet, type SimulateViaEntrypointOptions } from '@aztec/wallet-sdk/base-wallet';
15
24
 
16
25
  import type { AccountContractsProvider } from './account-contract-providers/types.js';
17
26
  import { type AccountType, WalletDB } from './wallet_db.js';
@@ -21,9 +30,17 @@ export type EmbeddedWalletOptions = {
21
30
  logger?: Logger;
22
31
  /** Use ephemeral (in-memory) stores. Data will not persist across sessions. */
23
32
  ephemeral?: boolean;
33
+ /** Override PXE configuration. */
34
+ pxeConfig?: Partial<PXEConfig>;
35
+ /** Advanced PXE creation options (custom store, prover, simulator). */
36
+ pxeOptions?: PXECreationOptions;
24
37
  };
25
38
 
39
+ const DEFAULT_ESTIMATED_GAS_PADDING = 0.1;
40
+
26
41
  export class EmbeddedWallet extends BaseWallet {
42
+ protected estimatedGasPadding = DEFAULT_ESTIMATED_GAS_PADDING;
43
+
27
44
  constructor(
28
45
  pxe: PXE,
29
46
  aztecNode: AztecNode,
@@ -70,6 +87,66 @@ export class EmbeddedWallet extends BaseWallet {
70
87
  return storedSenders;
71
88
  }
72
89
 
90
+ /**
91
+ * Overrides the base sendTx to add a pre-simulation step before the actual send. The simulation
92
+ * estimates actual gas usage and captures call authorization requests to generate
93
+ * the necessary authwitnesses.
94
+ */
95
+ public override async sendTx<W extends InteractionWaitOptions = undefined>(
96
+ executionPayload: ExecutionPayload,
97
+ opts: SendOptions<W>,
98
+ ): Promise<SendReturn<W>> {
99
+ const feeOptions = await this.completeFeeOptionsForEstimation(
100
+ opts.from,
101
+ executionPayload.feePayer,
102
+ opts.fee?.gasSettings,
103
+ );
104
+
105
+ // Simulate the transaction first to estimate gas and capture required
106
+ // private authwitnesses based on offchain effects.
107
+ const simulationResult = await this.simulateViaEntrypoint(executionPayload, {
108
+ from: opts.from,
109
+ feeOptions,
110
+ scopes: this.scopesFrom(opts.from, opts.additionalScopes),
111
+ skipTxValidation: true,
112
+ });
113
+
114
+ const offchainEffects = collectOffchainEffects(simulationResult.privateExecutionResult);
115
+ const authWitnesses = await Promise.all(
116
+ offchainEffects.map(async effect => {
117
+ try {
118
+ const authRequest = await CallAuthorizationRequest.fromFields(effect.data);
119
+ return this.createAuthWit(opts.from, {
120
+ consumer: effect.contractAddress,
121
+ innerHash: authRequest.innerHash,
122
+ });
123
+ } catch {
124
+ return undefined;
125
+ }
126
+ }),
127
+ );
128
+ for (const authwit of authWitnesses) {
129
+ if (authwit) {
130
+ executionPayload.authWitnesses.push(authwit);
131
+ }
132
+ }
133
+ const estimated = getGasLimits(simulationResult, this.estimatedGasPadding);
134
+ this.log.verbose(
135
+ `Estimated gas limits for tx: DA=${estimated.gasLimits.daGas} L2=${estimated.gasLimits.l2Gas} teardownDA=${estimated.teardownGasLimits.daGas} teardownL2=${estimated.teardownGasLimits.l2Gas}`,
136
+ );
137
+ const gasSettings = GasSettings.from({
138
+ ...opts.fee?.gasSettings,
139
+ maxFeesPerGas: feeOptions.gasSettings.maxFeesPerGas,
140
+ maxPriorityFeesPerGas: feeOptions.gasSettings.maxPriorityFeesPerGas,
141
+ gasLimits: opts.fee?.gasSettings?.gasLimits ?? estimated.gasLimits,
142
+ teardownGasLimits: opts.fee?.gasSettings?.teardownGasLimits ?? estimated.teardownGasLimits,
143
+ });
144
+ return super.sendTx(executionPayload, {
145
+ ...opts,
146
+ fee: { ...opts.fee, gasSettings },
147
+ });
148
+ }
149
+
73
150
  /**
74
151
  * Simulates calls via a stub account entrypoint, bypassing real account authorization.
75
152
  * This allows kernelless simulation with contract overrides, skipping expensive
@@ -77,13 +154,21 @@ export class EmbeddedWallet extends BaseWallet {
77
154
  */
78
155
  protected override async simulateViaEntrypoint(
79
156
  executionPayload: ExecutionPayload,
80
- from: AztecAddress,
81
- feeOptions: FeeOptions,
82
- scopes: AccessScopes,
83
- _skipTxValidation?: boolean,
84
- _skipFeeEnforcement?: boolean,
157
+ opts: SimulateViaEntrypointOptions,
85
158
  ): Promise<TxSimulationResult> {
86
- const { account: fromAccount, instance, artifact } = await this.getFakeAccountDataFor(from);
159
+ const { from, feeOptions, scopes, skipTxValidation, skipFeeEnforcement } = opts;
160
+
161
+ let overrides: SimulationOverrides | undefined;
162
+ let fromAccount: Account;
163
+ if (!from.equals(AztecAddress.ZERO)) {
164
+ const { account, instance, artifact } = await this.getFakeAccountDataFor(from);
165
+ fromAccount = account;
166
+ overrides = {
167
+ contracts: { [from.toString()]: { instance, artifact } },
168
+ };
169
+ } else {
170
+ fromAccount = await this.getAccountFromAddress(from);
171
+ }
87
172
 
88
173
  const feeExecutionPayload = await feeOptions.walletFeePaymentMethod?.getExecutionPayload();
89
174
  const executionOptions: DefaultAccountEntrypointOptions = {
@@ -103,11 +188,9 @@ export class EmbeddedWallet extends BaseWallet {
103
188
  );
104
189
  return this.pxe.simulateTx(txRequest, {
105
190
  simulatePublic: true,
106
- skipFeeEnforcement: true,
107
- skipTxValidation: true,
108
- overrides: {
109
- contracts: { [from.toString()]: { instance, artifact } },
110
- },
191
+ skipFeeEnforcement,
192
+ skipTxValidation,
193
+ overrides,
111
194
  scopes,
112
195
  });
113
196
  }
@@ -162,10 +245,15 @@ export class EmbeddedWallet extends BaseWallet {
162
245
  const accountManager = await AccountManager.create(this, secret, contract, salt);
163
246
 
164
247
  const instance = accountManager.getInstance();
165
- const artifact = await accountManager.getAccountContract().getContractArtifact();
166
-
167
- await this.registerContract(instance, artifact, accountManager.getSecretKey());
168
-
248
+ const existingInstance = await this.pxe.getContractInstance(instance.address);
249
+ if (!existingInstance) {
250
+ const existingArtifact = await this.pxe.getContractArtifact(instance.currentContractClassId);
251
+ await this.registerContract(
252
+ instance,
253
+ !existingArtifact ? await accountManager.getAccountContract().getContractArtifact() : undefined,
254
+ accountManager.getSecretKey(),
255
+ );
256
+ }
169
257
  return accountManager;
170
258
  }
171
259
 
@@ -198,6 +286,10 @@ export class EmbeddedWallet extends BaseWallet {
198
286
  this.minFeePadding = value ?? 0.5;
199
287
  }
200
288
 
289
+ setEstimatedGasPadding(value?: number) {
290
+ this.estimatedGasPadding = value ?? DEFAULT_ESTIMATED_GAS_PADDING;
291
+ }
292
+
201
293
  stop() {
202
294
  return this.pxe.stop();
203
295
  }
@@ -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
- }