@aztec/wallets 5.3.0-nightly.20260901 → 5.3.0-nightly.20260902

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.
@@ -31,7 +31,11 @@ export declare class WalletDB {
31
31
  }>;
32
32
  listAccounts(): Promise<Aliased<AztecAddress>[]>;
33
33
  listSenders(): Promise<Aliased<AztecAddress>[]>;
34
+ /**
35
+ * Deletes an account's stored data and every alias pointing at it atomically. Deletion is local to this store;
36
+ * any state the PXE holds for the account is unaffected.
37
+ */
34
38
  deleteAccount(address: AztecAddress): Promise<void>;
35
39
  close(): Promise<void>;
36
40
  }
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FsbGV0X2RiLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZW1iZWRkZWQvd2FsbGV0X2RiLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEQsT0FBTyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbkQsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQWlCLE1BQU0saUJBQWlCLENBQUM7QUFDeEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRTNELGVBQU8sTUFBTSxZQUFZLHFGQUFzRixDQUFDO0FBQ2hILE1BQU0sTUFBTSxXQUFXLEdBQUcsQ0FBQyxPQUFPLFlBQVksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBTXhELDhHQUE4RztBQUM5RyxlQUFPLE1BQU0sMEJBQTBCLElBQUksQ0FBQztBQUU1QyxxQkFBYSxRQUFROztJQUtqQixPQUFPLENBQUMsS0FBSztJQUNiLE9BQU8sQ0FBQyxPQUFPO0lBTGpCLE9BQU8sQ0FBQyxRQUFRLENBQWdDO0lBQ2hELE9BQU8sQ0FBQyxPQUFPLENBQWdDO0lBRS9DLFlBQ1UsS0FBSyxFQUFFLGlCQUFpQixFQUN4QixPQUFPLEVBQUUsS0FBSyxFQUl2QjtJQUVLLFlBQVksQ0FDaEIsT0FBTyxFQUFFLFlBQVksRUFDckIsRUFDRSxJQUFJLEVBQ0osU0FBUyxFQUNULElBQUksRUFDSixLQUFLLEVBQ0wsVUFBVSxFQUNYLEVBQUU7UUFDRCxJQUFJLEVBQUUsV0FBVyxDQUFDO1FBQ2xCLFNBQVMsRUFBRSxFQUFFLENBQUM7UUFDZCxJQUFJLEVBQUUsRUFBRSxDQUFDO1FBQ1QsVUFBVSxFQUFFLEVBQUUsR0FBRyxNQUFNLENBQUM7UUFDeEIsS0FBSyxFQUFFLE1BQU0sR0FBRyxTQUFTLENBQUM7S0FDM0IsRUFDRCxHQUFHLEdBQUUsS0FBb0IsaUJBYTFCO0lBRUssV0FBVyxDQUFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxHQUFHLEdBQUUsS0FBb0IsaUJBR2hGO0lBRUssZUFBZSxDQUFDLE9BQU8sRUFBRSxZQUFZLEdBQUcsTUFBTTs7Ozs7O09BY25EO0lBRUssWUFBWSxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQVdyRDtJQUVLLFdBQVcsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FTcEQ7SUFvQkssYUFBYSxDQUFDLE9BQU8sRUFBRSxZQUFZLGlCQWF4QztJQUVLLEtBQUssa0JBRVY7Q0FDRiJ9
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FsbGV0X2RiLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZW1iZWRkZWQvd2FsbGV0X2RiLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEQsT0FBTyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbkQsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQWlCLE1BQU0saUJBQWlCLENBQUM7QUFDeEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRTNELGVBQU8sTUFBTSxZQUFZLHFGQUFzRixDQUFDO0FBQ2hILE1BQU0sTUFBTSxXQUFXLEdBQUcsQ0FBQyxPQUFPLFlBQVksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBTXhELDhHQUE4RztBQUM5RyxlQUFPLE1BQU0sMEJBQTBCLElBQUksQ0FBQztBQUU1QyxxQkFBYSxRQUFROztJQUtqQixPQUFPLENBQUMsS0FBSztJQUNiLE9BQU8sQ0FBQyxPQUFPO0lBTGpCLE9BQU8sQ0FBQyxRQUFRLENBQWdDO0lBQ2hELE9BQU8sQ0FBQyxPQUFPLENBQWdDO0lBRS9DLFlBQ1UsS0FBSyxFQUFFLGlCQUFpQixFQUN4QixPQUFPLEVBQUUsS0FBSyxFQUl2QjtJQUVLLFlBQVksQ0FDaEIsT0FBTyxFQUFFLFlBQVksRUFDckIsRUFDRSxJQUFJLEVBQ0osU0FBUyxFQUNULElBQUksRUFDSixLQUFLLEVBQ0wsVUFBVSxFQUNYLEVBQUU7UUFDRCxJQUFJLEVBQUUsV0FBVyxDQUFDO1FBQ2xCLFNBQVMsRUFBRSxFQUFFLENBQUM7UUFDZCxJQUFJLEVBQUUsRUFBRSxDQUFDO1FBQ1QsVUFBVSxFQUFFLEVBQUUsR0FBRyxNQUFNLENBQUM7UUFDeEIsS0FBSyxFQUFFLE1BQU0sR0FBRyxTQUFTLENBQUM7S0FDM0IsRUFDRCxHQUFHLEdBQUUsS0FBb0IsaUJBZTFCO0lBRUssV0FBVyxDQUFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxHQUFHLEdBQUUsS0FBb0IsaUJBR2hGO0lBRUssZUFBZSxDQUFDLE9BQU8sRUFBRSxZQUFZLEdBQUcsTUFBTTs7Ozs7O09BY25EO0lBRUssWUFBWSxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQVdyRDtJQUVLLFdBQVcsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FTcEQ7SUFvQkQ7OztPQUdHO0lBQ0csYUFBYSxDQUFDLE9BQU8sRUFBRSxZQUFZLGlCQWlCeEM7SUFFSyxLQUFLLGtCQUVWO0NBQ0YifQ==
@@ -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,qFAAsF,CAAC;AAChH,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AAMxD,8GAA8G;AAC9G,eAAO,MAAM,0BAA0B,IAAI,CAAC;AAE5C,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"}
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,8GAA8G;AAC9G,eAAO,MAAM,0BAA0B,IAAI,CAAC;AAE5C,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,iBAe1B;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;IAoBD;;;OAGG;IACG,aAAa,CAAC,OAAO,EAAE,YAAY,iBAiBxC;IAEK,KAAK,kBAEV;CACF"}
@@ -22,13 +22,15 @@ export class WalletDB {
22
22
  this.aliases = store.openMap('aliases');
23
23
  }
24
24
  async storeAccount(address, { type, secretKey, salt, alias, signingKey }, log = this.userLog) {
25
- if (alias) {
26
- await this.aliases.set(`accounts:${alias}`, Buffer.from(address.toString()));
27
- }
28
- await this.accounts.set(accountKey('type', address), Buffer.from(type));
29
- await this.accounts.set(accountKey('sk', address), secretKey.toBuffer());
30
- await this.accounts.set(accountKey('salt', address), salt.toBuffer());
31
- await this.accounts.set(accountKey('signingKey', address), 'toBuffer' in signingKey ? signingKey.toBuffer() : signingKey);
25
+ await this.store.transactionAsync(async ()=>{
26
+ if (alias) {
27
+ await this.aliases.set(`accounts:${alias}`, Buffer.from(address.toString()));
28
+ }
29
+ await this.accounts.set(accountKey('type', address), Buffer.from(type));
30
+ await this.accounts.set(accountKey('sk', address), secretKey.toBuffer());
31
+ await this.accounts.set(accountKey('salt', address), salt.toBuffer());
32
+ await this.accounts.set(accountKey('signingKey', address), 'toBuffer' in signingKey ? signingKey.toBuffer() : signingKey);
33
+ });
32
34
  log(`Account stored in database${alias ? ` with alias ${alias}` : ''}`);
33
35
  }
34
36
  async storeSender(address, alias, log = this.userLog) {
@@ -102,19 +104,28 @@ export class WalletDB {
102
104
  }
103
105
  return addresses;
104
106
  }
105
- async deleteAccount(address) {
106
- await Promise.all([
107
- this.accounts.delete(accountKey('sk', address)),
108
- this.accounts.delete(accountKey('salt', address)),
109
- this.accounts.delete(accountKey('type', address)),
110
- this.accounts.delete(accountKey('signingKey', address))
111
- ]);
112
- // Clean up alias if one exists
113
- const aliasesByAddress = await this.#readAccountAliases();
114
- const alias = aliasesByAddress.get(address.toString());
115
- if (alias) {
116
- await this.aliases.delete(`accounts:${alias}`);
117
- }
107
+ /**
108
+ * Deletes an account's stored data and every alias pointing at it atomically. Deletion is local to this store;
109
+ * any state the PXE holds for the account is unaffected.
110
+ */ async deleteAccount(address) {
111
+ await this.store.transactionAsync(async ()=>{
112
+ await Promise.all([
113
+ this.accounts.delete(accountKey('sk', address)),
114
+ this.accounts.delete(accountKey('salt', address)),
115
+ this.accounts.delete(accountKey('type', address)),
116
+ this.accounts.delete(accountKey('signingKey', address))
117
+ ]);
118
+ const aliasKeys = [];
119
+ for await (const [key, item] of this.aliases.entriesAsync({
120
+ start: 'accounts:',
121
+ end: 'accounts:\uffff'
122
+ })){
123
+ if (item.toString() === address.toString()) {
124
+ aliasKeys.push(key);
125
+ }
126
+ }
127
+ await Promise.all(aliasKeys.map((key)=>this.aliases.delete(key)));
128
+ });
118
129
  }
119
130
  async close() {
120
131
  await this.store.close();
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": "5.3.0-nightly.20260901",
4
+ "version": "5.3.0-nightly.20260902",
5
5
  "type": "module",
6
6
  "exports": {
7
7
  "./embedded": {
@@ -28,16 +28,16 @@
28
28
  "../package.common.json"
29
29
  ],
30
30
  "dependencies": {
31
- "@aztec/accounts": "5.3.0-nightly.20260901",
32
- "@aztec/aztec.js": "5.3.0-nightly.20260901",
33
- "@aztec/entrypoints": "5.3.0-nightly.20260901",
34
- "@aztec/foundation": "5.3.0-nightly.20260901",
35
- "@aztec/kv-store": "5.3.0-nightly.20260901",
36
- "@aztec/protocol-contracts": "5.3.0-nightly.20260901",
37
- "@aztec/pxe": "5.3.0-nightly.20260901",
38
- "@aztec/standard-contracts": "5.3.0-nightly.20260901",
39
- "@aztec/stdlib": "5.3.0-nightly.20260901",
40
- "@aztec/wallet-sdk": "5.3.0-nightly.20260901"
31
+ "@aztec/accounts": "5.3.0-nightly.20260902",
32
+ "@aztec/aztec.js": "5.3.0-nightly.20260902",
33
+ "@aztec/entrypoints": "5.3.0-nightly.20260902",
34
+ "@aztec/foundation": "5.3.0-nightly.20260902",
35
+ "@aztec/kv-store": "5.3.0-nightly.20260902",
36
+ "@aztec/protocol-contracts": "5.3.0-nightly.20260902",
37
+ "@aztec/pxe": "5.3.0-nightly.20260902",
38
+ "@aztec/standard-contracts": "5.3.0-nightly.20260902",
39
+ "@aztec/stdlib": "5.3.0-nightly.20260902",
40
+ "@aztec/wallet-sdk": "5.3.0-nightly.20260902"
41
41
  },
42
42
  "devDependencies": {
43
43
  "@jest/globals": "^30.0.0",
@@ -43,16 +43,18 @@ export class WalletDB {
43
43
  },
44
44
  log: LogFn = this.userLog,
45
45
  ) {
46
- if (alias) {
47
- await this.aliases.set(`accounts:${alias}`, Buffer.from(address.toString()));
48
- }
49
- await this.accounts.set(accountKey('type', address), Buffer.from(type));
50
- await this.accounts.set(accountKey('sk', address), secretKey.toBuffer());
51
- await this.accounts.set(accountKey('salt', address), salt.toBuffer());
52
- await this.accounts.set(
53
- accountKey('signingKey', address),
54
- 'toBuffer' in signingKey ? signingKey.toBuffer() : signingKey,
55
- );
46
+ await this.store.transactionAsync(async () => {
47
+ if (alias) {
48
+ await this.aliases.set(`accounts:${alias}`, Buffer.from(address.toString()));
49
+ }
50
+ await this.accounts.set(accountKey('type', address), Buffer.from(type));
51
+ await this.accounts.set(accountKey('sk', address), secretKey.toBuffer());
52
+ await this.accounts.set(accountKey('salt', address), salt.toBuffer());
53
+ await this.accounts.set(
54
+ accountKey('signingKey', address),
55
+ 'toBuffer' in signingKey ? signingKey.toBuffer() : signingKey,
56
+ );
57
+ });
56
58
  log(`Account stored in database${alias ? ` with alias ${alias}` : ''}`);
57
59
  }
58
60
 
@@ -119,19 +121,27 @@ export class WalletDB {
119
121
  return addresses;
120
122
  }
121
123
 
124
+ /**
125
+ * Deletes an account's stored data and every alias pointing at it atomically. Deletion is local to this store;
126
+ * any state the PXE holds for the account is unaffected.
127
+ */
122
128
  async deleteAccount(address: AztecAddress) {
123
- await Promise.all([
124
- this.accounts.delete(accountKey('sk', address)),
125
- this.accounts.delete(accountKey('salt', address)),
126
- this.accounts.delete(accountKey('type', address)),
127
- this.accounts.delete(accountKey('signingKey', address)),
128
- ]);
129
- // Clean up alias if one exists
130
- const aliasesByAddress = await this.#readAccountAliases();
131
- const alias = aliasesByAddress.get(address.toString());
132
- if (alias) {
133
- await this.aliases.delete(`accounts:${alias}`);
134
- }
129
+ await this.store.transactionAsync(async () => {
130
+ await Promise.all([
131
+ this.accounts.delete(accountKey('sk', address)),
132
+ this.accounts.delete(accountKey('salt', address)),
133
+ this.accounts.delete(accountKey('type', address)),
134
+ this.accounts.delete(accountKey('signingKey', address)),
135
+ ]);
136
+
137
+ const aliasKeys: string[] = [];
138
+ for await (const [key, item] of this.aliases.entriesAsync({ start: 'accounts:', end: 'accounts:\uffff' })) {
139
+ if (item.toString() === address.toString()) {
140
+ aliasKeys.push(key);
141
+ }
142
+ }
143
+ await Promise.all(aliasKeys.map(key => this.aliases.delete(key)));
144
+ });
135
145
  }
136
146
 
137
147
  async close() {