@aztec/wallet-sdk 0.0.1-commit.0208eb9

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 (62) hide show
  1. package/README.md +321 -0
  2. package/dest/base-wallet/base_wallet.d.ts +117 -0
  3. package/dest/base-wallet/base_wallet.d.ts.map +1 -0
  4. package/dest/base-wallet/base_wallet.js +271 -0
  5. package/dest/base-wallet/index.d.ts +2 -0
  6. package/dest/base-wallet/index.d.ts.map +1 -0
  7. package/dest/base-wallet/index.js +1 -0
  8. package/dest/crypto.d.ts +192 -0
  9. package/dest/crypto.d.ts.map +1 -0
  10. package/dest/crypto.js +394 -0
  11. package/dest/emoji_alphabet.d.ts +35 -0
  12. package/dest/emoji_alphabet.d.ts.map +1 -0
  13. package/dest/emoji_alphabet.js +299 -0
  14. package/dest/extension/handlers/background_connection_handler.d.ts +158 -0
  15. package/dest/extension/handlers/background_connection_handler.d.ts.map +1 -0
  16. package/dest/extension/handlers/background_connection_handler.js +258 -0
  17. package/dest/extension/handlers/content_script_connection_handler.d.ts +56 -0
  18. package/dest/extension/handlers/content_script_connection_handler.d.ts.map +1 -0
  19. package/dest/extension/handlers/content_script_connection_handler.js +174 -0
  20. package/dest/extension/handlers/index.d.ts +12 -0
  21. package/dest/extension/handlers/index.d.ts.map +1 -0
  22. package/dest/extension/handlers/index.js +10 -0
  23. package/dest/extension/handlers/internal_message_types.d.ts +63 -0
  24. package/dest/extension/handlers/internal_message_types.d.ts.map +1 -0
  25. package/dest/extension/handlers/internal_message_types.js +22 -0
  26. package/dest/extension/provider/extension_provider.d.ts +107 -0
  27. package/dest/extension/provider/extension_provider.d.ts.map +1 -0
  28. package/dest/extension/provider/extension_provider.js +160 -0
  29. package/dest/extension/provider/extension_wallet.d.ts +131 -0
  30. package/dest/extension/provider/extension_wallet.d.ts.map +1 -0
  31. package/dest/extension/provider/extension_wallet.js +271 -0
  32. package/dest/extension/provider/index.d.ts +3 -0
  33. package/dest/extension/provider/index.d.ts.map +1 -0
  34. package/dest/extension/provider/index.js +2 -0
  35. package/dest/manager/index.d.ts +3 -0
  36. package/dest/manager/index.d.ts.map +1 -0
  37. package/dest/manager/index.js +1 -0
  38. package/dest/manager/types.d.ts +167 -0
  39. package/dest/manager/types.d.ts.map +1 -0
  40. package/dest/manager/types.js +19 -0
  41. package/dest/manager/wallet_manager.d.ts +70 -0
  42. package/dest/manager/wallet_manager.d.ts.map +1 -0
  43. package/dest/manager/wallet_manager.js +226 -0
  44. package/dest/types.d.ts +123 -0
  45. package/dest/types.d.ts.map +1 -0
  46. package/dest/types.js +11 -0
  47. package/package.json +99 -0
  48. package/src/base-wallet/base_wallet.ts +394 -0
  49. package/src/base-wallet/index.ts +1 -0
  50. package/src/crypto.ts +499 -0
  51. package/src/emoji_alphabet.ts +317 -0
  52. package/src/extension/handlers/background_connection_handler.ts +423 -0
  53. package/src/extension/handlers/content_script_connection_handler.ts +246 -0
  54. package/src/extension/handlers/index.ts +25 -0
  55. package/src/extension/handlers/internal_message_types.ts +69 -0
  56. package/src/extension/provider/extension_provider.ts +233 -0
  57. package/src/extension/provider/extension_wallet.ts +321 -0
  58. package/src/extension/provider/index.ts +7 -0
  59. package/src/manager/index.ts +12 -0
  60. package/src/manager/types.ts +177 -0
  61. package/src/manager/wallet_manager.ts +259 -0
  62. package/src/types.ts +132 -0
@@ -0,0 +1,317 @@
1
+ /**
2
+ * Emoji alphabet for visual verification of shared secrets.
3
+ *
4
+ * This alphabet contains 256 distinct, easily recognizable emojis for
5
+ * anti-spoofing verification. With 256 emojis, each emoji represents
6
+ * exactly 8 bits of entropy (log2(256) = 8).
7
+ *
8
+ * A 3x3 grid of 9 emojis provides 72 bits of security (9 ร— 8 = 72 bits),
9
+ * making brute-force attacks computationally infeasible for real-time
10
+ * MITM verification scenarios.
11
+ *
12
+ * Selection criteria:
13
+ * - Visually distinct from each other
14
+ * - Commonly supported across platforms (Unicode 12+)
15
+ * - Easy to recognize and compare at a glance
16
+ * - No text-based or flag emojis (platform-dependent rendering)
17
+ * - No variation selectors (base emojis only)
18
+ *
19
+ * @packageDocumentation
20
+ */
21
+
22
+ /**
23
+ * 256 distinct emojis for visual verification.
24
+ * Index directly maps to byte value (0-255) for simple lookup.
25
+ */
26
+ export const EMOJI_ALPHABET: readonly string[] = [
27
+ // 0-15: Faces & figures (16)
28
+ '๐Ÿ˜€',
29
+ '๐Ÿ˜Ž',
30
+ '๐Ÿค–',
31
+ '๐Ÿ‘ป',
32
+ '๐Ÿ’€',
33
+ '๐Ÿ‘ฝ',
34
+ '๐Ÿคก',
35
+ '๐ŸŽƒ',
36
+ '๐Ÿ˜บ',
37
+ '๐Ÿ˜ˆ',
38
+ '๐Ÿ‘พ',
39
+ '๐Ÿ—ฟ',
40
+ '๐Ÿค ',
41
+ '๐Ÿฅธ',
42
+ '๐Ÿง',
43
+ '๐Ÿ˜ต',
44
+
45
+ // 16-47: Animals (32)
46
+ '๐Ÿถ',
47
+ '๐Ÿฑ',
48
+ '๐Ÿธ',
49
+ '๐Ÿต',
50
+ '๐ŸฆŠ',
51
+ '๐Ÿป',
52
+ '๐Ÿฆ',
53
+ '๐Ÿฏ',
54
+ '๐Ÿฎ',
55
+ '๐Ÿท',
56
+ '๐Ÿ”',
57
+ '๐Ÿง',
58
+ '๐Ÿฆ‰',
59
+ '๐Ÿฆ‡',
60
+ '๐Ÿบ',
61
+ '๐Ÿฆ„',
62
+ '๐Ÿ˜',
63
+ '๐Ÿฆ’',
64
+ '๐ŸŠ',
65
+ '๐Ÿฆˆ',
66
+ '๐Ÿ™',
67
+ '๐Ÿฆ‹',
68
+ '๐Ÿข',
69
+ '๐Ÿฆ€',
70
+ '๐Ÿ',
71
+ '๐Ÿฆ…',
72
+ '๐Ÿฆ†',
73
+ '๐Ÿณ',
74
+ '๐Ÿฆญ',
75
+ '๐Ÿฆฉ',
76
+ '๐Ÿฆš',
77
+ '๐Ÿ‰',
78
+
79
+ // 48-63: Nature & weather (16)
80
+ '๐ŸŒต',
81
+ '๐ŸŒด',
82
+ '๐ŸŒฒ',
83
+ '๐ŸŒณ',
84
+ '๐Ÿ„',
85
+ '๐ŸŒ',
86
+ '๐ŸŒ•',
87
+ '๐ŸŒ™',
88
+ '๐ŸŒŸ',
89
+ '๐ŸŒˆ',
90
+ '๐Ÿ”ฅ',
91
+ '๐Ÿ’ง',
92
+ '๐ŸŒจ',
93
+ '๐Ÿ’ข',
94
+ '๐ŸŒž',
95
+ '๐ŸŒค',
96
+
97
+ // 64-95: Food & drinks (32)
98
+ '๐ŸŽ',
99
+ '๐ŸŒ',
100
+ '๐Ÿ‡',
101
+ '๐Ÿ‰',
102
+ '๐Ÿ“',
103
+ '๐Ÿ',
104
+ '๐Ÿฅ‘',
105
+ '๐ŸŒฝ',
106
+ '๐Ÿฅ•',
107
+ '๐Ÿ”',
108
+ '๐Ÿ•',
109
+ '๐ŸŒฎ',
110
+ '๐Ÿฃ',
111
+ '๐Ÿช',
112
+ '๐ŸŽ‚',
113
+ '๐Ÿฉ',
114
+ '๐Ÿบ',
115
+ '๐Ÿท',
116
+ '๐Ÿธ',
117
+ '๐Ÿซ—',
118
+ '๐Ÿงƒ',
119
+ '๐Ÿฅ›',
120
+ '๐Ÿต',
121
+ '๐Ÿง',
122
+ '๐Ÿซ',
123
+ '๐Ÿฌ',
124
+ '๐Ÿญ',
125
+ '๐Ÿฅจ',
126
+ '๐Ÿฅฏ',
127
+ '๐Ÿฅž',
128
+ '๐Ÿง‡',
129
+ '๐Ÿฟ',
130
+
131
+ // 96-127: Symbols & colors (32)
132
+ '๐Ÿ’ฏ',
133
+ '๐Ÿ’”',
134
+ '๐Ÿ’ฅ',
135
+ '๐Ÿ’ซ',
136
+ '๐ŸŒ€',
137
+ '๐Ÿซจ',
138
+ '๐Ÿšง',
139
+ '๐Ÿ›‘',
140
+ '๐Ÿ”ด',
141
+ '๐Ÿ”ต',
142
+ '๐ŸŸข',
143
+ '๐ŸŸก',
144
+ '๐ŸŸฃ',
145
+ 'โฌ›',
146
+ 'โฌœ',
147
+ '๐ŸŸค',
148
+ '๐Ÿ’œ',
149
+ '๐Ÿ’™',
150
+ '๐Ÿ’š',
151
+ '๐Ÿงก',
152
+ '๐Ÿ–ค',
153
+ '๐Ÿค',
154
+ '๐Ÿ’˜',
155
+ '๐Ÿ’',
156
+ '๐Ÿ’Ž',
157
+ '๐Ÿ‘‘',
158
+ '๐ŸŽฉ',
159
+ '๐Ÿงข',
160
+ '๐Ÿชญ',
161
+ '๐ŸŽ—',
162
+ '๐ŸŽŸ',
163
+ '๐Ÿท',
164
+
165
+ // 128-159: Electronics & tools (32)
166
+ '๐Ÿ•',
167
+ '๐Ÿ“ฑ',
168
+ '๐Ÿ’ป',
169
+ '๐Ÿ–ฅ',
170
+ '๐Ÿ“ท',
171
+ '๐ŸŽฅ',
172
+ '๐Ÿ“บ',
173
+ '๐Ÿ“ป',
174
+ '๐Ÿ”‹',
175
+ '๐Ÿ’ก',
176
+ '๐Ÿ”‘',
177
+ '๐Ÿ”จ',
178
+ '๐Ÿ› ',
179
+ '๐Ÿงฒ',
180
+ '๐Ÿงช',
181
+ '๐Ÿ”ฌ',
182
+ '๐Ÿ”ง',
183
+ '๐Ÿช›',
184
+ '๐Ÿ”ฉ',
185
+ '๐Ÿชš',
186
+ '๐Ÿช“',
187
+ '๐Ÿงน',
188
+ '๐Ÿชฃ',
189
+ '๐Ÿงด',
190
+ '๐Ÿ›',
191
+ '๐Ÿšฝ',
192
+ '๐Ÿชœ',
193
+ '๐Ÿ””',
194
+ '๐Ÿ•ฏ',
195
+ '๐Ÿชค',
196
+ '๐Ÿงฏ',
197
+ '๐Ÿช',
198
+
199
+ // 160-175: Transport (16)
200
+ '๐Ÿš—',
201
+ '๐ŸšŒ',
202
+ '๐Ÿš“',
203
+ '๐Ÿš‘',
204
+ '๐Ÿš’',
205
+ '๐Ÿšœ',
206
+ '๐Ÿšฒ',
207
+ '๐Ÿ',
208
+ '๐Ÿ›ฉ',
209
+ '๐Ÿš€',
210
+ '๐Ÿ›ธ',
211
+ '๐Ÿš',
212
+ '๐Ÿšข',
213
+ '๐Ÿšค',
214
+ '๐Ÿš‚',
215
+ '๐Ÿš ',
216
+
217
+ // 176-191: Sports & games (16)
218
+ '๐Ÿฅ…',
219
+ '๐Ÿ€',
220
+ '๐Ÿˆ',
221
+ '๐Ÿ',
222
+ '๐Ÿ“',
223
+ '๐ŸŽฑ',
224
+ '๐ŸŽฏ',
225
+ '๐ŸŽณ',
226
+ '๐ŸŽฒ',
227
+ '๐ŸŽฎ',
228
+ '๐Ÿ•น',
229
+ '๐Ÿงฉ',
230
+ '๐ŸŽด',
231
+ '๐ŸŽฐ',
232
+ '๐Ÿƒ',
233
+ '๐Ÿ€„',
234
+
235
+ // 192-207: Music & arts (16)
236
+ '๐ŸŽธ',
237
+ '๐ŸŽน',
238
+ '๐ŸŽบ',
239
+ '๐ŸŽป',
240
+ '๐Ÿฅ',
241
+ '๐ŸŽท',
242
+ '๐ŸŽค',
243
+ '๐ŸŽง',
244
+ '๐ŸŽจ',
245
+ '๐Ÿ–Œ',
246
+ '๐ŸŽญ',
247
+ '๐ŸŽช',
248
+ '๐ŸŽฌ',
249
+ '๐ŸŽผ',
250
+ '๐Ÿช•',
251
+ '๐Ÿช—',
252
+
253
+ // 208-223: Buildings & places (16)
254
+ '๐Ÿ ',
255
+ '๐Ÿฐ',
256
+ '๐Ÿ—ผ',
257
+ '๐Ÿ—ฝ',
258
+ '๐Ÿ›',
259
+ '๐Ÿ•Œ',
260
+ '๐Ÿ›•',
261
+ '๐Ÿฏ',
262
+ '๐ŸŽข',
263
+ '๐ŸŽก',
264
+ '๐Ÿ›–',
265
+ '๐Ÿ•',
266
+ '๐Ÿ—ป',
267
+ '๐Ÿ',
268
+ '๐ŸŒ‹',
269
+ '๐Ÿœ',
270
+
271
+ // 224-239: Science & medical (16)
272
+ '๐Ÿ“ฆ',
273
+ '๐Ÿงณ',
274
+ '๐Ÿ•ฐ',
275
+ '๐Ÿ”ฆ',
276
+ '๐Ÿชซ',
277
+ '๐Ÿ“ก',
278
+ '๐Ÿ”ญ',
279
+ '๐Ÿ”ฎ',
280
+ '๐Ÿงฟ',
281
+ '๐Ÿ“ฟ',
282
+ '๐Ÿซ™',
283
+ '๐Ÿ’‰',
284
+ '๐Ÿฉบ',
285
+ '๐Ÿฉน',
286
+ '๐Ÿงฌ',
287
+ '๐Ÿฆ ',
288
+
289
+ // 240-255: Miscellaneous (16)
290
+ '๐Ÿ†',
291
+ '๐ŸŽ',
292
+ '๐ŸŽˆ',
293
+ '๐ŸŽ€',
294
+ '๐Ÿช…',
295
+ '๐Ÿงง',
296
+ '๐Ÿ“จ',
297
+ '๐Ÿ“œ',
298
+ '๐Ÿ—ƒ',
299
+ '๐Ÿ“Ž',
300
+ '๐Ÿชก',
301
+ '๐Ÿ–‹',
302
+ '๐Ÿ“Œ',
303
+ '๐Ÿ”',
304
+ '๐Ÿงธ',
305
+ '๐Ÿช†',
306
+ ] as const;
307
+
308
+ /**
309
+ * Number of emojis in the alphabet.
310
+ * Must be a power of 2 for clean bit mapping (256 = 2^8).
311
+ */
312
+ export const EMOJI_ALPHABET_SIZE = 256;
313
+
314
+ /**
315
+ * Bits of entropy per emoji (log2 of alphabet size).
316
+ */
317
+ export const BITS_PER_EMOJI = 8;