@aztec/wallets 0.0.1-commit.2e20a94 → 0.0.1-commit.3100065

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 (36) hide show
  1. package/dest/embedded/account-contract-providers/bundle.d.ts +3 -6
  2. package/dest/embedded/account-contract-providers/bundle.d.ts.map +1 -1
  3. package/dest/embedded/account-contract-providers/bundle.js +10 -9
  4. package/dest/embedded/account-contract-providers/lazy.d.ts +3 -6
  5. package/dest/embedded/account-contract-providers/lazy.d.ts.map +1 -1
  6. package/dest/embedded/account-contract-providers/lazy.js +10 -10
  7. package/dest/embedded/account-contract-providers/types.d.ts +3 -6
  8. package/dest/embedded/account-contract-providers/types.d.ts.map +1 -1
  9. package/dest/embedded/embedded_wallet.d.ts +29 -4
  10. package/dest/embedded/embedded_wallet.d.ts.map +1 -1
  11. package/dest/embedded/embedded_wallet.js +135 -44
  12. package/dest/embedded/entrypoints/browser.d.ts +1 -1
  13. package/dest/embedded/entrypoints/browser.d.ts.map +1 -1
  14. package/dest/embedded/entrypoints/browser.js +20 -7
  15. package/dest/embedded/entrypoints/node.d.ts +1 -1
  16. package/dest/embedded/entrypoints/node.d.ts.map +1 -1
  17. package/dest/embedded/entrypoints/node.js +19 -6
  18. package/dest/embedded/store_encryption.d.ts +67 -0
  19. package/dest/embedded/store_encryption.d.ts.map +1 -0
  20. package/dest/embedded/store_encryption.js +71 -0
  21. package/dest/embedded/wallet_db.d.ts +7 -6
  22. package/dest/embedded/wallet_db.d.ts.map +1 -1
  23. package/dest/embedded/wallet_db.js +12 -11
  24. package/dest/testing.d.ts +8 -4
  25. package/dest/testing.d.ts.map +1 -1
  26. package/dest/testing.js +8 -14
  27. package/package.json +12 -10
  28. package/src/embedded/account-contract-providers/bundle.ts +12 -11
  29. package/src/embedded/account-contract-providers/lazy.ts +12 -12
  30. package/src/embedded/account-contract-providers/types.ts +2 -2
  31. package/src/embedded/embedded_wallet.ts +162 -39
  32. package/src/embedded/entrypoints/browser.ts +31 -16
  33. package/src/embedded/entrypoints/node.ts +36 -21
  34. package/src/embedded/store_encryption.ts +107 -0
  35. package/src/embedded/wallet_db.ts +15 -12
  36. package/src/testing.ts +11 -17
@@ -3,15 +3,15 @@ import { Fq, Fr } from '@aztec/foundation/curves/bn254';
3
3
  import type { LogFn } from '@aztec/foundation/log';
4
4
  import type { AztecAsyncKVStore } from '@aztec/kv-store';
5
5
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
6
- export declare const AccountTypes: readonly ["schnorr", "ecdsasecp256r1", "ecdsasecp256k1"];
6
+ export declare const AccountTypes: readonly ["schnorr", "schnorr_initializerless", "ecdsasecp256r1", "ecdsasecp256k1"];
7
7
  export type AccountType = (typeof AccountTypes)[number];
8
8
  export declare class WalletDB {
9
9
  #private;
10
+ private store;
11
+ private userLog;
10
12
  private accounts;
11
13
  private aliases;
12
- private userLog;
13
- private constructor();
14
- static init(store: AztecAsyncKVStore, userLog: LogFn): WalletDB;
14
+ constructor(store: AztecAsyncKVStore, userLog: LogFn);
15
15
  storeAccount(address: AztecAddress, { type, secretKey, salt, alias, signingKey }: {
16
16
  type: AccountType;
17
17
  secretKey: Fr;
@@ -24,11 +24,12 @@ export declare class WalletDB {
24
24
  address: string | AztecAddress;
25
25
  secretKey: Fr;
26
26
  salt: Fr;
27
- type: "ecdsasecp256k1" | "ecdsasecp256r1" | "schnorr";
27
+ type: "ecdsasecp256k1" | "ecdsasecp256r1" | "schnorr" | "schnorr_initializerless";
28
28
  signingKey: Buffer<ArrayBufferLike>;
29
29
  }>;
30
30
  listAccounts(): Promise<Aliased<AztecAddress>[]>;
31
31
  listSenders(): Promise<Aliased<AztecAddress>[]>;
32
32
  deleteAccount(address: AztecAddress): Promise<void>;
33
+ close(): Promise<void>;
33
34
  }
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FsbGV0X2RiLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZW1iZWRkZWQvd2FsbGV0X2RiLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEQsT0FBTyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbkQsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQWlCLE1BQU0saUJBQWlCLENBQUM7QUFDeEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRTNELGVBQU8sTUFBTSxZQUFZLDBEQUEyRCxDQUFDO0FBQ3JGLE1BQU0sTUFBTSxXQUFXLEdBQUcsQ0FBQyxPQUFPLFlBQVksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBTXhELHFCQUFhLFFBQVE7O0lBRWpCLE9BQU8sQ0FBQyxRQUFRO0lBQ2hCLE9BQU8sQ0FBQyxPQUFPO0lBQ2YsT0FBTyxDQUFDLE9BQU87SUFIakIsT0FBTyxlQUlIO0lBRUosTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsT0FBTyxFQUFFLEtBQUssWUFJbkQ7SUFFSyxZQUFZLENBQ2hCLE9BQU8sRUFBRSxZQUFZLEVBQ3JCLEVBQ0UsSUFBSSxFQUNKLFNBQVMsRUFDVCxJQUFJLEVBQ0osS0FBSyxFQUNMLFVBQVUsRUFDWCxFQUFFO1FBQ0QsSUFBSSxFQUFFLFdBQVcsQ0FBQztRQUNsQixTQUFTLEVBQUUsRUFBRSxDQUFDO1FBQ2QsSUFBSSxFQUFFLEVBQUUsQ0FBQztRQUNULFVBQVUsRUFBRSxFQUFFLEdBQUcsTUFBTSxDQUFDO1FBQ3hCLEtBQUssRUFBRSxNQUFNLEdBQUcsU0FBUyxDQUFDO0tBQzNCLEVBQ0QsR0FBRyxHQUFFLEtBQW9CLGlCQWExQjtJQUVLLFdBQVcsQ0FBQyxPQUFPLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxHQUFFLEtBQW9CLGlCQUdoRjtJQUVLLGVBQWUsQ0FBQyxPQUFPLEVBQUUsWUFBWSxHQUFHLE1BQU07Ozs7OztPQWNuRDtJQUVLLFlBQVksSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FXckQ7SUFFSyxXQUFXLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLENBU3BEO0lBb0JLLGFBQWEsQ0FBQyxPQUFPLEVBQUUsWUFBWSxpQkFheEM7Q0FDRiJ9
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FsbGV0X2RiLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZW1iZWRkZWQvd2FsbGV0X2RiLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEQsT0FBTyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbkQsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQWlCLE1BQU0saUJBQWlCLENBQUM7QUFDeEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRTNELGVBQU8sTUFBTSxZQUFZLHFGQUFzRixDQUFDO0FBQ2hILE1BQU0sTUFBTSxXQUFXLEdBQUcsQ0FBQyxPQUFPLFlBQVksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBTXhELHFCQUFhLFFBQVE7O0lBS2pCLE9BQU8sQ0FBQyxLQUFLO0lBQ2IsT0FBTyxDQUFDLE9BQU87SUFMakIsT0FBTyxDQUFDLFFBQVEsQ0FBZ0M7SUFDaEQsT0FBTyxDQUFDLE9BQU8sQ0FBZ0M7SUFFL0MsWUFDVSxLQUFLLEVBQUUsaUJBQWlCLEVBQ3hCLE9BQU8sRUFBRSxLQUFLLEVBSXZCO0lBRUssWUFBWSxDQUNoQixPQUFPLEVBQUUsWUFBWSxFQUNyQixFQUNFLElBQUksRUFDSixTQUFTLEVBQ1QsSUFBSSxFQUNKLEtBQUssRUFDTCxVQUFVLEVBQ1gsRUFBRTtRQUNELElBQUksRUFBRSxXQUFXLENBQUM7UUFDbEIsU0FBUyxFQUFFLEVBQUUsQ0FBQztRQUNkLElBQUksRUFBRSxFQUFFLENBQUM7UUFDVCxVQUFVLEVBQUUsRUFBRSxHQUFHLE1BQU0sQ0FBQztRQUN4QixLQUFLLEVBQUUsTUFBTSxHQUFHLFNBQVMsQ0FBQztLQUMzQixFQUNELEdBQUcsR0FBRSxLQUFvQixpQkFhMUI7SUFFSyxXQUFXLENBQUMsT0FBTyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEdBQUcsR0FBRSxLQUFvQixpQkFHaEY7SUFFSyxlQUFlLENBQUMsT0FBTyxFQUFFLFlBQVksR0FBRyxNQUFNOzs7Ozs7T0FjbkQ7SUFFSyxZQUFZLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLENBV3JEO0lBRUssV0FBVyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQVNwRDtJQW9CSyxhQUFhLENBQUMsT0FBTyxFQUFFLFlBQVksaUJBYXhDO0lBRUssS0FBSyxrQkFFVjtDQUNGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"wallet_db.d.ts","sourceRoot":"","sources":["../../src/embedded/wallet_db.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACxD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,KAAK,EAAE,iBAAiB,EAAiB,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAE3D,eAAO,MAAM,YAAY,0DAA2D,CAAC;AACrF,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AAMxD,qBAAa,QAAQ;;IAEjB,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,OAAO;IAHjB,OAAO,eAIH;IAEJ,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,iBAAiB,EAAE,OAAO,EAAE,KAAK,YAInD;IAEK,YAAY,CAChB,OAAO,EAAE,YAAY,EACrB,EACE,IAAI,EACJ,SAAS,EACT,IAAI,EACJ,KAAK,EACL,UAAU,EACX,EAAE;QACD,IAAI,EAAE,WAAW,CAAC;QAClB,SAAS,EAAE,EAAE,CAAC;QACd,IAAI,EAAE,EAAE,CAAC;QACT,UAAU,EAAE,EAAE,GAAG,MAAM,CAAC;QACxB,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;KAC3B,EACD,GAAG,GAAE,KAAoB,iBAa1B;IAEK,WAAW,CAAC,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,GAAE,KAAoB,iBAGhF;IAEK,eAAe,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM;;;;;;OAcnD;IAEK,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,CAWrD;IAEK,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,CASpD;IAoBK,aAAa,CAAC,OAAO,EAAE,YAAY,iBAaxC;CACF"}
1
+ {"version":3,"file":"wallet_db.d.ts","sourceRoot":"","sources":["../../src/embedded/wallet_db.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACxD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,KAAK,EAAE,iBAAiB,EAAiB,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAE3D,eAAO,MAAM,YAAY,qFAAsF,CAAC;AAChH,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AAMxD,qBAAa,QAAQ;;IAKjB,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,OAAO;IALjB,OAAO,CAAC,QAAQ,CAAgC;IAChD,OAAO,CAAC,OAAO,CAAgC;IAE/C,YACU,KAAK,EAAE,iBAAiB,EACxB,OAAO,EAAE,KAAK,EAIvB;IAEK,YAAY,CAChB,OAAO,EAAE,YAAY,EACrB,EACE,IAAI,EACJ,SAAS,EACT,IAAI,EACJ,KAAK,EACL,UAAU,EACX,EAAE;QACD,IAAI,EAAE,WAAW,CAAC;QAClB,SAAS,EAAE,EAAE,CAAC;QACd,IAAI,EAAE,EAAE,CAAC;QACT,UAAU,EAAE,EAAE,GAAG,MAAM,CAAC;QACxB,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;KAC3B,EACD,GAAG,GAAE,KAAoB,iBAa1B;IAEK,WAAW,CAAC,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,GAAE,KAAoB,iBAGhF;IAEK,eAAe,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM;;;;;;OAcnD;IAEK,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,CAWrD;IAEK,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,CASpD;IAoBK,aAAa,CAAC,OAAO,EAAE,YAAY,iBAaxC;IAEK,KAAK,kBAEV;CACF"}
@@ -2,6 +2,7 @@ import { Fr } from '@aztec/foundation/curves/bn254';
2
2
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
3
3
  export const AccountTypes = [
4
4
  'schnorr',
5
+ 'schnorr_initializerless',
5
6
  'ecdsasecp256r1',
6
7
  'ecdsasecp256k1'
7
8
  ];
@@ -9,18 +10,15 @@ function accountKey(field, address) {
9
10
  return `${field}:${address.toString()}`;
10
11
  }
11
12
  export class WalletDB {
13
+ store;
14
+ userLog;
12
15
  accounts;
13
16
  aliases;
14
- userLog;
15
- constructor(accounts, aliases, userLog){
16
- this.accounts = accounts;
17
- this.aliases = aliases;
17
+ constructor(store, userLog){
18
+ this.store = store;
18
19
  this.userLog = userLog;
19
- }
20
- static init(store, userLog) {
21
- const accounts = store.openMap('accounts');
22
- const aliases = store.openMap('aliases');
23
- return new WalletDB(accounts, aliases, userLog);
20
+ this.accounts = store.openMap('accounts');
21
+ this.aliases = store.openMap('aliases');
24
22
  }
25
23
  async storeAccount(address, { type, secretKey, salt, alias, signingKey }, log = this.userLog) {
26
24
  if (alias) {
@@ -65,7 +63,7 @@ export class WalletDB {
65
63
  ]);
66
64
  return accountAddresses.map((addressStr)=>({
67
65
  alias: aliasesByAddress.get(addressStr) ?? '',
68
- item: AztecAddress.fromString(addressStr)
66
+ item: AztecAddress.fromStringUnsafe(addressStr)
69
67
  }));
70
68
  }
71
69
  async listSenders() {
@@ -76,7 +74,7 @@ export class WalletDB {
76
74
  })){
77
75
  result.push({
78
76
  alias: alias.slice('senders:'.length),
79
- item: AztecAddress.fromString(item.toString())
77
+ item: AztecAddress.fromStringUnsafe(item.toString())
80
78
  });
81
79
  }
82
80
  return result;
@@ -117,4 +115,7 @@ export class WalletDB {
117
115
  await this.aliases.delete(`accounts:${alias}`);
118
116
  }
119
117
  }
118
+ async close() {
119
+ await this.store.close();
120
+ }
120
121
  }
package/dest/testing.d.ts CHANGED
@@ -1,12 +1,16 @@
1
1
  import type { InitialAccountData } from '@aztec/accounts/testing';
2
- import type { WaitOpts } from '@aztec/aztec.js/contracts';
3
2
  import type { AccountManager } from '@aztec/aztec.js/wallet';
4
3
  import type { Fq, Fr } from '@aztec/foundation/curves/bn254';
5
4
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
6
5
  interface WalletWithSchnorrAccounts {
7
- createSchnorrAccount(secret: Fr, salt: Fr, signingKey?: Fq, alias?: string): Promise<AccountManager>;
6
+ createSchnorrInitializerlessAccount(secret: Fr, salt: Fr, signingKey: Fq, alias?: string): Promise<AccountManager>;
8
7
  }
9
- export declare function deployFundedSchnorrAccounts(wallet: WalletWithSchnorrAccounts, accountsData: InitialAccountData[], waitOptions?: WaitOpts): Promise<AccountManager[]>;
8
+ /**
9
+ * Creates the given (genesis-funded) test accounts as initializerless schnorr accounts. Initializerless
10
+ * accounts need no deployment tx — creating one registers the instance and materializes its immutable keys
11
+ * locally — so the accounts are usable as soon as they are created, funded via genesis at their addresses.
12
+ */
13
+ export declare function createFundedInitializerlessAccounts(wallet: WalletWithSchnorrAccounts, accountsData: InitialAccountData[]): Promise<AccountManager[]>;
10
14
  export declare function registerInitialLocalNetworkAccountsInWallet(wallet: WalletWithSchnorrAccounts): Promise<AztecAddress[]>;
11
15
  export {};
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdGluZy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3Rlc3RpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUdsRSxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRCxPQUFPLEtBQUssRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM3RCxPQUFPLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDN0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRTNELFVBQVUseUJBQXlCO0lBQ2pDLG9CQUFvQixDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxVQUFVLENBQUMsRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQztDQUN0RztBQUVELHdCQUFzQiwyQkFBMkIsQ0FDL0MsTUFBTSxFQUFFLHlCQUF5QixFQUNqQyxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsRUFDbEMsV0FBVyxDQUFDLEVBQUUsUUFBUSw2QkFnQnZCO0FBRUQsd0JBQXNCLDJDQUEyQyxDQUMvRCxNQUFNLEVBQUUseUJBQXlCLEdBQ2hDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQU96QiJ9
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdGluZy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3Rlc3RpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVsRSxPQUFPLEtBQUssRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM3RCxPQUFPLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDN0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRTNELFVBQVUseUJBQXlCO0lBQ2pDLG1DQUFtQyxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7Q0FDcEg7QUFFRDs7OztHQUlHO0FBQ0gsd0JBQXNCLG1DQUFtQyxDQUN2RCxNQUFNLEVBQUUseUJBQXlCLEVBQ2pDLFlBQVksRUFBRSxrQkFBa0IsRUFBRSw2QkFPbkM7QUFFRCx3QkFBc0IsMkNBQTJDLENBQy9ELE1BQU0sRUFBRSx5QkFBeUIsR0FDaEMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDLENBUXpCIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAGlE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAE3D,UAAU,yBAAyB;IACjC,oBAAoB,CAAC,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;CACtG;AAED,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,yBAAyB,EACjC,YAAY,EAAE,kBAAkB,EAAE,EAClC,WAAW,CAAC,EAAE,QAAQ,6BAgBvB;AAED,wBAAsB,2CAA2C,CAC/D,MAAM,EAAE,yBAAyB,GAChC,OAAO,CAAC,YAAY,EAAE,CAAC,CAOzB"}
1
+ {"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAElE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAE3D,UAAU,yBAAyB;IACjC,mCAAmC,CAAC,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;CACpH;AAED;;;;GAIG;AACH,wBAAsB,mCAAmC,CACvD,MAAM,EAAE,yBAAyB,EACjC,YAAY,EAAE,kBAAkB,EAAE,6BAOnC;AAED,wBAAsB,2CAA2C,CAC/D,MAAM,EAAE,yBAAyB,GAChC,OAAO,CAAC,YAAY,EAAE,CAAC,CAQzB"}
package/dest/testing.js CHANGED
@@ -1,24 +1,18 @@
1
1
  import { getInitialTestAccountsData } from '@aztec/accounts/testing/lazy';
2
- import { NO_FROM } from '@aztec/aztec.js/account';
3
- export async function deployFundedSchnorrAccounts(wallet, accountsData, waitOptions) {
2
+ /**
3
+ * Creates the given (genesis-funded) test accounts as initializerless schnorr accounts. Initializerless
4
+ * accounts need no deployment tx — creating one registers the instance and materializes its immutable keys
5
+ * locally — so the accounts are usable as soon as they are created, funded via genesis at their addresses.
6
+ */ export async function createFundedInitializerlessAccounts(wallet, accountsData) {
4
7
  const accountManagers = [];
5
- // Serial due to https://github.com/AztecProtocol/aztec-packages/issues/12045
6
- for(let i = 0; i < accountsData.length; i++){
7
- const { secret, salt, signingKey } = accountsData[i];
8
- const accountManager = await wallet.createSchnorrAccount(secret, salt, signingKey);
9
- const deployMethod = await accountManager.getDeployMethod();
10
- await deployMethod.send({
11
- from: NO_FROM,
12
- skipClassPublication: i !== 0,
13
- wait: waitOptions
14
- });
15
- accountManagers.push(accountManager);
8
+ for (const { secret, salt, signingKey } of accountsData){
9
+ accountManagers.push(await wallet.createSchnorrInitializerlessAccount(secret, salt, signingKey));
16
10
  }
17
11
  return accountManagers;
18
12
  }
19
13
  export async function registerInitialLocalNetworkAccountsInWallet(wallet) {
20
14
  const testAccounts = await getInitialTestAccountsData();
21
15
  return Promise.all(testAccounts.map(async (account)=>{
22
- return (await wallet.createSchnorrAccount(account.secret, account.salt, account.signingKey)).address;
16
+ return (await wallet.createSchnorrInitializerlessAccount(account.secret, account.salt, account.signingKey)).address;
23
17
  }));
24
18
  }
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.2e20a94",
4
+ "version": "0.0.1-commit.3100065",
5
5
  "type": "module",
6
6
  "exports": {
7
7
  "./embedded": {
@@ -14,6 +14,7 @@
14
14
  "default": "./dest/embedded/entrypoints/node.js"
15
15
  }
16
16
  },
17
+ "./embedded/store-encryption": "./dest/embedded/store_encryption.js",
17
18
  "./testing": "./dest/testing.js"
18
19
  },
19
20
  "scripts": {
@@ -27,15 +28,16 @@
27
28
  "../package.common.json"
28
29
  ],
29
30
  "dependencies": {
30
- "@aztec/accounts": "0.0.1-commit.2e20a94",
31
- "@aztec/aztec.js": "0.0.1-commit.2e20a94",
32
- "@aztec/entrypoints": "0.0.1-commit.2e20a94",
33
- "@aztec/foundation": "0.0.1-commit.2e20a94",
34
- "@aztec/kv-store": "0.0.1-commit.2e20a94",
35
- "@aztec/protocol-contracts": "0.0.1-commit.2e20a94",
36
- "@aztec/pxe": "0.0.1-commit.2e20a94",
37
- "@aztec/stdlib": "0.0.1-commit.2e20a94",
38
- "@aztec/wallet-sdk": "0.0.1-commit.2e20a94"
31
+ "@aztec/accounts": "0.0.1-commit.3100065",
32
+ "@aztec/aztec.js": "0.0.1-commit.3100065",
33
+ "@aztec/entrypoints": "0.0.1-commit.3100065",
34
+ "@aztec/foundation": "0.0.1-commit.3100065",
35
+ "@aztec/kv-store": "0.0.1-commit.3100065",
36
+ "@aztec/protocol-contracts": "0.0.1-commit.3100065",
37
+ "@aztec/pxe": "0.0.1-commit.3100065",
38
+ "@aztec/standard-contracts": "0.0.1-commit.3100065",
39
+ "@aztec/stdlib": "0.0.1-commit.3100065",
40
+ "@aztec/wallet-sdk": "0.0.1-commit.3100065"
39
41
  },
40
42
  "devDependencies": {
41
43
  "@jest/globals": "^30.0.0",
@@ -1,12 +1,11 @@
1
1
  import { EcdsaKAccountContract, EcdsaRAccountContract } from '@aztec/accounts/ecdsa';
2
- import { SchnorrAccountContract } from '@aztec/accounts/schnorr';
3
- import { StubEcdsaAccountContractArtifact, createStubEcdsaAccount } from '@aztec/accounts/stub/ecdsa';
4
- import { StubSchnorrAccountContractArtifact, createStubSchnorrAccount } from '@aztec/accounts/stub/schnorr';
2
+ import { StubEcdsaAccountContractArtifact, createStubEcdsaAccount } from '@aztec/accounts/ecdsa/stub';
3
+ import { SchnorrAccountContract, SchnorrInitializerlessAccountContract } from '@aztec/accounts/schnorr';
4
+ import { StubSchnorrAccountContractArtifact, createStubSchnorrAccount } from '@aztec/accounts/schnorr/stub';
5
5
  import type { Account, AccountContract } from '@aztec/aztec.js/account';
6
6
  import type { Fq } from '@aztec/foundation/curves/bn254';
7
- import { getCanonicalMultiCallEntrypoint } from '@aztec/protocol-contracts/multi-call-entrypoint';
8
7
  import type { ContractArtifact } from '@aztec/stdlib/abi';
9
- import type { CompleteAddress, ContractInstanceWithAddress } from '@aztec/stdlib/contract';
8
+ import type { CompleteAddress } from '@aztec/stdlib/contract';
10
9
 
11
10
  import type { AccountType } from '../wallet_db.js';
12
11
  import type { AccountContractsProvider } from './types.js';
@@ -20,6 +19,10 @@ export class BundleAccountContractsProvider implements AccountContractsProvider
20
19
  return Promise.resolve(new SchnorrAccountContract(signingKey));
21
20
  }
22
21
 
22
+ getSchnorrInitializerlessAccountContract(signingKey: Fq): Promise<AccountContract> {
23
+ return Promise.resolve(new SchnorrInitializerlessAccountContract(signingKey));
24
+ }
25
+
23
26
  getEcdsaRAccountContract(signingKey: Buffer): Promise<AccountContract> {
24
27
  return Promise.resolve(new EcdsaRAccountContract(signingKey));
25
28
  }
@@ -29,14 +32,12 @@ export class BundleAccountContractsProvider implements AccountContractsProvider
29
32
  }
30
33
 
31
34
  getStubAccountContractArtifact(type: AccountType): Promise<ContractArtifact> {
32
- return Promise.resolve(type === 'schnorr' ? StubSchnorrAccountContractArtifact : StubEcdsaAccountContractArtifact);
35
+ const isSchnorr = type === 'schnorr' || type === 'schnorr_initializerless';
36
+ return Promise.resolve(isSchnorr ? StubSchnorrAccountContractArtifact : StubEcdsaAccountContractArtifact);
33
37
  }
34
38
 
35
39
  createStubAccount(address: CompleteAddress, type: AccountType): Promise<Account> {
36
- return Promise.resolve(type === 'schnorr' ? createStubSchnorrAccount(address) : createStubEcdsaAccount(address));
37
- }
38
-
39
- getMulticallContract(): Promise<{ instance: ContractInstanceWithAddress; artifact: ContractArtifact }> {
40
- return getCanonicalMultiCallEntrypoint();
40
+ const isSchnorr = type === 'schnorr' || type === 'schnorr_initializerless';
41
+ return Promise.resolve(isSchnorr ? createStubSchnorrAccount(address) : createStubEcdsaAccount(address));
41
42
  }
42
43
  }
@@ -1,8 +1,7 @@
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';
4
3
  import type { ContractArtifact } from '@aztec/stdlib/abi';
5
- import type { CompleteAddress, ContractInstanceWithAddress } from '@aztec/stdlib/contract';
4
+ import type { CompleteAddress } from '@aztec/stdlib/contract';
6
5
 
7
6
  import type { AccountType } from '../wallet_db.js';
8
7
  import type { AccountContractsProvider } from './types.js';
@@ -17,6 +16,11 @@ export class LazyAccountContractsProvider implements AccountContractsProvider {
17
16
  return new SchnorrAccountContract(signingKey);
18
17
  }
19
18
 
19
+ async getSchnorrInitializerlessAccountContract(signingKey: Fq): Promise<AccountContract> {
20
+ const { SchnorrInitializerlessAccountContract } = await import('@aztec/accounts/schnorr/lazy');
21
+ return new SchnorrInitializerlessAccountContract(signingKey);
22
+ }
23
+
20
24
  async getEcdsaRAccountContract(signingKey: Buffer): Promise<AccountContract> {
21
25
  const { EcdsaRAccountContract } = await import('@aztec/accounts/ecdsa/lazy');
22
26
  return new EcdsaRAccountContract(signingKey);
@@ -28,26 +32,22 @@ export class LazyAccountContractsProvider implements AccountContractsProvider {
28
32
  }
29
33
 
30
34
  async getStubAccountContractArtifact(type: AccountType): Promise<ContractArtifact> {
31
- if (type === 'schnorr') {
32
- const { getStubSchnorrAccountContractArtifact } = await import('@aztec/accounts/stub/schnorr/lazy');
35
+ if (type === 'schnorr' || type === 'schnorr_initializerless') {
36
+ const { getStubSchnorrAccountContractArtifact } = await import('@aztec/accounts/schnorr/stub/lazy');
33
37
  return getStubSchnorrAccountContractArtifact();
34
38
  } else {
35
- const { getStubEcdsaAccountContractArtifact } = await import('@aztec/accounts/stub/ecdsa/lazy');
39
+ const { getStubEcdsaAccountContractArtifact } = await import('@aztec/accounts/ecdsa/stub/lazy');
36
40
  return getStubEcdsaAccountContractArtifact();
37
41
  }
38
42
  }
39
43
 
40
44
  async createStubAccount(address: CompleteAddress, type: AccountType): Promise<Account> {
41
- if (type === 'schnorr') {
42
- const { createStubSchnorrAccount } = await import('@aztec/accounts/stub/schnorr/lazy');
45
+ if (type === 'schnorr' || type === 'schnorr_initializerless') {
46
+ const { createStubSchnorrAccount } = await import('@aztec/accounts/schnorr/stub/lazy');
43
47
  return createStubSchnorrAccount(address);
44
48
  } else {
45
- const { createStubEcdsaAccount } = await import('@aztec/accounts/stub/ecdsa/lazy');
49
+ const { createStubEcdsaAccount } = await import('@aztec/accounts/ecdsa/stub/lazy');
46
50
  return createStubEcdsaAccount(address);
47
51
  }
48
52
  }
49
-
50
- getMulticallContract(): Promise<{ instance: ContractInstanceWithAddress; artifact: ContractArtifact }> {
51
- return getCanonicalMultiCallEntrypoint();
52
- }
53
53
  }
@@ -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, ContractInstanceWithAddress } from '@aztec/stdlib/contract';
4
+ import type { CompleteAddress } from '@aztec/stdlib/contract';
5
5
 
6
6
  import type { AccountType } from '../wallet_db.js';
7
7
 
@@ -13,9 +13,9 @@ import type { AccountType } from '../wallet_db.js';
13
13
  */
14
14
  export interface AccountContractsProvider {
15
15
  getSchnorrAccountContract(signingKey: Fq): Promise<AccountContract>;
16
+ getSchnorrInitializerlessAccountContract(signingKey: Fq): Promise<AccountContract>;
16
17
  getEcdsaRAccountContract(signingKey: Buffer): Promise<AccountContract>;
17
18
  getEcdsaKAccountContract(signingKey: Buffer): Promise<AccountContract>;
18
19
  getStubAccountContractArtifact(type: AccountType): Promise<ContractArtifact>;
19
- getMulticallContract(): Promise<{ instance: ContractInstanceWithAddress; artifact: ContractArtifact }>;
20
20
  createStubAccount(address: CompleteAddress, type: AccountType): Promise<Account>;
21
21
  }