@aztec/foundation 0.22.0 → 0.24.0

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 (121) hide show
  1. package/dest/abi/buffer.js +2 -2
  2. package/dest/fields/fields.d.ts +1 -0
  3. package/dest/fields/fields.d.ts.map +1 -1
  4. package/dest/fields/fields.js +6 -3
  5. package/package.json +2 -2
  6. package/src/abi/abi.ts +337 -0
  7. package/src/abi/buffer.ts +36 -0
  8. package/src/abi/decoder.ts +176 -0
  9. package/src/abi/encoder.ts +143 -0
  10. package/src/abi/index.ts +6 -0
  11. package/src/abi/selector.ts +243 -0
  12. package/src/abi/utils.ts +50 -0
  13. package/src/array/array.ts +86 -0
  14. package/src/array/index.ts +1 -0
  15. package/src/async-map/index.ts +18 -0
  16. package/src/aztec-address/index.ts +36 -0
  17. package/src/bigint-buffer/index.ts +87 -0
  18. package/src/collection/array.ts +64 -0
  19. package/src/collection/index.ts +1 -0
  20. package/src/committable/committable.ts +46 -0
  21. package/src/committable/index.ts +1 -0
  22. package/src/crypto/index.ts +16 -0
  23. package/src/crypto/keccak/index.ts +33 -0
  24. package/src/crypto/pedersen/index.ts +1 -0
  25. package/src/crypto/pedersen/pedersen.elliptic.ts +584 -0
  26. package/src/crypto/pedersen/pedersen.noble.ts +573 -0
  27. package/src/crypto/pedersen/pedersen.wasm.ts +42 -0
  28. package/src/crypto/random/index.ts +42 -0
  29. package/src/crypto/sha256/index.ts +3 -0
  30. package/src/errors/index.ts +6 -0
  31. package/src/eth-address/index.ts +234 -0
  32. package/src/fields/coordinate.ts +104 -0
  33. package/src/fields/fields.ts +328 -0
  34. package/src/fields/index.ts +3 -0
  35. package/src/fields/point.ts +145 -0
  36. package/src/fifo/bounded_serial_queue.ts +100 -0
  37. package/src/fifo/index.ts +4 -0
  38. package/src/fifo/memory_fifo.ts +118 -0
  39. package/src/fifo/semaphore.ts +33 -0
  40. package/src/fifo/serial_queue.ts +81 -0
  41. package/src/index.ts +29 -0
  42. package/src/json-rpc/README.md +55 -0
  43. package/src/json-rpc/class_converter.ts +213 -0
  44. package/src/json-rpc/client/index.ts +1 -0
  45. package/src/json-rpc/client/json_rpc_client.ts +147 -0
  46. package/src/json-rpc/convert.ts +163 -0
  47. package/src/json-rpc/fixtures/class_a.ts +15 -0
  48. package/src/json-rpc/fixtures/class_b.ts +15 -0
  49. package/src/json-rpc/fixtures/test_state.ts +59 -0
  50. package/src/json-rpc/index.ts +8 -0
  51. package/src/json-rpc/js_utils.ts +20 -0
  52. package/src/json-rpc/server/index.ts +2 -0
  53. package/src/json-rpc/server/json_proxy.ts +60 -0
  54. package/src/json-rpc/server/json_rpc_server.ts +269 -0
  55. package/src/log/console.ts +39 -0
  56. package/src/log/debug.ts +83 -0
  57. package/src/log/index.ts +5 -0
  58. package/src/log/log_fn.ts +5 -0
  59. package/src/log/log_history.ts +44 -0
  60. package/src/log/logger.ts +137 -0
  61. package/src/mutex/index.ts +83 -0
  62. package/src/mutex/mutex_database.ts +12 -0
  63. package/src/noir/index.ts +1 -0
  64. package/src/noir/noir_package_config.ts +54 -0
  65. package/src/retry/index.ts +99 -0
  66. package/src/running-promise/index.ts +60 -0
  67. package/src/serialize/buffer_reader.ts +286 -0
  68. package/src/serialize/field_reader.ts +143 -0
  69. package/src/serialize/free_funcs.ts +147 -0
  70. package/src/serialize/index.ts +5 -0
  71. package/src/serialize/serialize.ts +303 -0
  72. package/src/serialize/types.ts +40 -0
  73. package/src/sleep/index.ts +71 -0
  74. package/src/testing/index.ts +1 -0
  75. package/src/testing/test_data.ts +36 -0
  76. package/src/timer/elapsed.ts +23 -0
  77. package/src/timer/index.ts +3 -0
  78. package/src/timer/timeout.ts +64 -0
  79. package/src/timer/timer.ts +48 -0
  80. package/src/transport/browser/index.ts +4 -0
  81. package/src/transport/browser/message_port_socket.ts +48 -0
  82. package/src/transport/browser/shared_worker_connector.ts +21 -0
  83. package/src/transport/browser/shared_worker_listener.ts +53 -0
  84. package/src/transport/browser/worker_connector.ts +30 -0
  85. package/src/transport/browser/worker_listener.ts +54 -0
  86. package/src/transport/dispatch/create_dispatch_fn.ts +35 -0
  87. package/src/transport/dispatch/create_dispatch_proxy.ts +141 -0
  88. package/src/transport/dispatch/messages.ts +58 -0
  89. package/src/transport/index.ts +11 -0
  90. package/src/transport/interface/connector.ts +9 -0
  91. package/src/transport/interface/listener.ts +16 -0
  92. package/src/transport/interface/socket.ts +15 -0
  93. package/src/transport/interface/transferable.ts +125 -0
  94. package/src/transport/node/index.ts +2 -0
  95. package/src/transport/node/node_connector.ts +30 -0
  96. package/src/transport/node/node_connector_socket.ts +52 -0
  97. package/src/transport/node/node_listener.ts +34 -0
  98. package/src/transport/node/node_listener_socket.ts +48 -0
  99. package/src/transport/transport_client.ts +131 -0
  100. package/src/transport/transport_server.ts +108 -0
  101. package/src/trees/index.ts +54 -0
  102. package/src/types/index.ts +8 -0
  103. package/src/url/index.ts +73 -0
  104. package/src/wasm/README.md +6 -0
  105. package/src/wasm/empty_wasi_sdk.ts +166 -0
  106. package/src/wasm/fixtures/gcd.wasm +0 -0
  107. package/src/wasm/fixtures/gcd.wat +27 -0
  108. package/src/wasm/index.ts +1 -0
  109. package/src/wasm/wasm_module.ts +260 -0
  110. package/src/worker/browser/index.ts +2 -0
  111. package/src/worker/browser/start_web_module.ts +23 -0
  112. package/src/worker/browser/web_data_store.ts +38 -0
  113. package/src/worker/browser/web_worker.ts +24 -0
  114. package/src/worker/data_store.ts +19 -0
  115. package/src/worker/index.ts +2 -0
  116. package/src/worker/node/index.ts +2 -0
  117. package/src/worker/node/node_data_store.ts +27 -0
  118. package/src/worker/node/node_worker.ts +22 -0
  119. package/src/worker/node/start_node_module.ts +29 -0
  120. package/src/worker/wasm_worker.ts +7 -0
  121. package/src/worker/worker_pool.ts +73 -0
@@ -0,0 +1,573 @@
1
+ /* cSpell:disable */
2
+ import { Field } from '@noble/curves/abstract/modular';
3
+ import { weierstrassPoints } from '@noble/curves/abstract/weierstrass';
4
+
5
+ import { toBigIntBE, toBufferBE } from '../../bigint-buffer/index.js';
6
+
7
+ const grumpkin = weierstrassPoints({
8
+ a: 0n,
9
+ b: 0x30644e72e131a029b85045b68181585d2833e84879b9709143e1f593effffff0n,
10
+ Fp: Field(0x30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001n),
11
+ n: 0x30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47n,
12
+ h: 1n,
13
+ Gx: 1n,
14
+ Gy: 0x0000000000000002cf135e7506a45d632d270d45f1181294833fc48d823f272cn,
15
+ });
16
+
17
+ const defaultGenerators = [
18
+ [
19
+ 0x083e7911d835097629f0067531fc15cafd79a89beecb39903f69572c636f4a5an,
20
+ 0x1a7f5efaad7f315c25a918f30cc8d7333fccab7ad7c90f14de81bcc528f9935dn,
21
+ ],
22
+ [
23
+ 0x054aa86a73cb8a34525e5bbed6e43ba1198e860f5f3950268f71df4591bde402n,
24
+ 0x209dcfbf2cfb57f9f6046f44d71ac6faf87254afc7407c04eb621a6287cac126n,
25
+ ],
26
+ [
27
+ 0x1c44f2a5207c81c28a8321a5815ce8b1311024bbed131819bbdaf5a2ada84748n,
28
+ 0x03aaee36e6422a1d0191632ac6599ae9eba5ac2c17a8c920aa3caf8b89c5f8a8n,
29
+ ],
30
+ [
31
+ 0x26d8b1160c6821a30c65f6cb47124afe01c29f4338f44d4a12c9fccf22fb6fb2n,
32
+ 0x05c70c3b9c0d25a4c100e3a27bf3cc375f8af8cdd9498ec4089a823d7464caffn,
33
+ ],
34
+ [
35
+ 0x20ed9c6a1d27271c4498bfce0578d59db1adbeaa8734f7facc097b9b994fcf6en,
36
+ 0x29cd7d370938b358c62c4a00f73a0d10aba7e5aaa04704a0713f891ebeb92371n,
37
+ ],
38
+ [
39
+ 0x0224a8abc6c8b8d50373d64cd2a1ab1567bf372b3b1f7b861d7f01257052d383n,
40
+ 0x2358629b90eafb299d6650a311e79914b0215eb0a790810b26da5a826726d711n,
41
+ ],
42
+ [
43
+ 0x0f106f6d46bc904a5290542490b2f238775ff3c445b2f8f704c466655f460a2an,
44
+ 0x29ab84d472f1d33f42fe09c47b8f7710f01920d6155250126731e486877bcf27n,
45
+ ],
46
+ [
47
+ 0x0298f2e42249f0519c8a8abd91567ebe016e480f219b8c19461d6a595cc33696n,
48
+ 0x035bec4b8520a4ece27bd5aafabee3dfe1390d7439c419a8c55aceb207aac83bn,
49
+ ],
50
+ [
51
+ 0x2c9628479de4181ea77e7b0913ccf41d2a74155b1d9c82eaa220c218781f6f3bn,
52
+ 0x278f86b8fd95520b5da23bee1a5e354dc5dcb0cb43d6b76e628ddbffb101d776n,
53
+ ],
54
+ [
55
+ 0x0be1916f382e3532aa53a766fe74b1a983784caab90290aea7bf616bc371fb41n,
56
+ 0x0f65545005e896f14249956344faf9addd762b7573a487b58f805a361d920a20n,
57
+ ],
58
+ [
59
+ 0x29ff8437ae5bec89981441b23036a22b7fd5bee9eff0e83c0dd5b87bfb5bd60en,
60
+ 0x1fd247352b77e2676b22db23cf7cd482474f543e3480b5a39c42f839a306be10n,
61
+ ],
62
+ [
63
+ 0x2f3bd4e98f8c8458cd58888749f0f5e582a43565767398e08e50e94b9b19a4d9n,
64
+ 0x1f534906d1aa8b4ba74ad9e3f85ae3f8295e51eaafd15b5d116801b96360205bn,
65
+ ],
66
+ [
67
+ 0x27759098f425b76447c2c52728576803a1ac5de37bba875ac47cdcff539ab931n,
68
+ 0x0aa47ee64d12d856cfb81b595c1d60ceecb693f0fdae644746ff333e39f61db7n,
69
+ ],
70
+ [
71
+ 0x015ca8d68616fde86c9108e3db04f588e0f308e60d367e963b7d460fe9a65e6cn,
72
+ 0x2cf918009dda942ac9d59903cd2d0294d8738f938b1394170d892a027d0f347bn,
73
+ ],
74
+ [
75
+ 0x0d1783d5b256765515f3c9988df9f1ba7e6f5fb0248c8971fbc503ffd5187714n,
76
+ 0x2ebb434ff4857fc3621f3bc3c6b8002b17d02d9c204e75f19b8f0b99ea68402cn,
77
+ ],
78
+ [
79
+ 0x300f20942e37abb19520f931f7bf7c6bbac93e4461a7789677f986e344d1f5e5n,
80
+ 0x1172a6b674c66bb037109fbb4d93d4ca8054bb9dda08839a6189eb578511116dn,
81
+ ],
82
+ [
83
+ 0x13a6b381a663aa8a757dd386a3a8947d456874a356f52f8af1a3d84ba1067eaan,
84
+ 0x224854000fa9c70e873fb14ad7c0d01dcf6df5f30261333d6b63c78a7da5a348n,
85
+ ],
86
+ [
87
+ 0x2b37dc5eb4c3f8cba62f0085ec131053eae6181a3e73a82e7d79764a023394ccn,
88
+ 0x27c817c1376228a3a9f5ac6caed57857a3baa580a0c1b70a17f75a6ab7e2377cn,
89
+ ],
90
+ [
91
+ 0x26ae1cc453dab3f2cf4810cc3fb8f71257383333aa4f3ace8eb69c8ba4fa5da1n,
92
+ 0x28bfbf80541bde37e9db113ae1eb049cf163ff4ea9654d61f42a95bc2e0b17bdn,
93
+ ],
94
+ [
95
+ 0x0e29626ab6be74417d08b28c8f8ebf02fd701e28d1d47b1961e716e735e02d12n,
96
+ 0x119f55d6bffb6bba81779eaf98f310c5661d85397b094ffbddbb41fb264b0876n,
97
+ ],
98
+ [
99
+ 0x055cda53e781f3eedd760ba2c48c6d36d2a061544c3d33e76100bd4c65e89748n,
100
+ 0x28391e899d6407e40294faa5e5561ab472e43ea5d54c15343b9a47cb7a80ed09n,
101
+ ],
102
+ [
103
+ 0x203c402369e8b2bc2c3827bc82a278d32c51dc9ab95e55ce1566e8b625b7bce7n,
104
+ 0x2bf25525d4a62f1252355559dd496b68ba4d6ea65f4b669bb3da73c42455f0a3n,
105
+ ],
106
+ [
107
+ 0x2468739cedeabea49dbc46c2356bd5cf341aa4574272ba53a40d8049e5ee949fn,
108
+ 0x0e8b73bcac6b2ccffaa2e50fce992db11a0b46dcdb8ad4b8325393f903a2543an,
109
+ ],
110
+ [
111
+ 0x242d8ad05dc6e2a8a6fd636f48eec881e05ee8d2a58e2653173f4954ec867654n,
112
+ 0x0afe0d7aa588a3dcf791f11fcdf54c1d07cfc805c5ae0b02101faafab9cb55f0n,
113
+ ],
114
+ [
115
+ 0x05c378d0596af9f9a2471be52b7ad0112d48ef355c372088eb0db86e42887e14n,
116
+ 0x1ba1f1adb66e67bc88c1b3eafe95b202812803a8b71ca62de9ed06c8b9f3cff3n,
117
+ ],
118
+ [
119
+ 0x04e5c213eebfffcdb42b6c371e52f0d598646cf0ca2a353b4b99889074c5a2bcn,
120
+ 0x0ae6442bc73b0f2b2d45829fd8fa321ab6b5eecdd3988a39f0c5850544de5082n,
121
+ ],
122
+ [
123
+ 0x2c96765650bd7c3bee01114b9097b036e20d5c774afe2ba7d5d6099f498f47fdn,
124
+ 0x0879c9cc5e7eea97f1f9193e1fd08b8d0390320197dee299af1eb67f92c506a3n,
125
+ ],
126
+ [
127
+ 0x2113980404df880af7d25a27aec16e61c770619912435b618914da7fa1a88385n,
128
+ 0x106827183994d8da15037851748b05392620516277bf0000f8b38e97f5db602an,
129
+ ],
130
+ [
131
+ 0x13b4c5f15cc69af871b91e862db8b0044834c5e8da5a287d0794342bb97ffca6n,
132
+ 0x17941f13343835b572e18d37ab3897f80e0461f9b72ab61da61927fc980a6bd2n,
133
+ ],
134
+ [
135
+ 0x085c0f69b19e05986883dcc9d53334bb6799968688935d938cebd4b4455f9187n,
136
+ 0x242b8a5ab074d09e26427b1b6633a79a82ba41d64c4d658017f3186d6926721bn,
137
+ ],
138
+ [
139
+ 0x1bb111daaf71e632a4c9244a362bdde16a5efc5e7c7dda42b20f3290c2776d2cn,
140
+ 0x2b4506bf741b2dc59f71f7036716cac04b6f808b4ca1469eb2fd7bccff5882c0n,
141
+ ],
142
+ [
143
+ 0x1a76ba8ca6b8e2c65915521b175da98137dfcaf0b5faff1019f37afce77c99ean,
144
+ 0x1894c8c79e69e52a495bf6fe467aa4f5bdbe606490d6803df325a075c5b0079an,
145
+ ],
146
+ [
147
+ 0x2fea40a9bfb252ba7e192be641a4051381982719b77d567caee2657f36b701abn,
148
+ 0x1e80d5ea79b50a722e65ce274b8ba2a133de94b757ef71b452183ee958c620e1n,
149
+ ],
150
+ [
151
+ 0x217c100e6cd64b68e91fe26e90eda02eaa505859201253bd5e550e0bb8f0f29an,
152
+ 0x12a5c4fc942353f962bc5b97f36b9a326d5dbb6c505266d2a016415d8da0be65n,
153
+ ],
154
+ [
155
+ 0x2f50fc293e4529108595329b6e7b0110c0db563927bd57a169e81884535660f9n,
156
+ 0x03547f619f9c30a761963381fe31f031ecd5b393d2281455a66e01aff0896338n,
157
+ ],
158
+ [
159
+ 0x06e0f1aab04c530ed9e9584b7c06cb40d6dbd1752313b1bf8498accb8227e743n,
160
+ 0x2b47e83f03e635a9c20eb0d6412955dec1578a197c7d51f648550623ac5b3baen,
161
+ ],
162
+ [
163
+ 0x1dee7c6f5d7527d26da506eec28cc3b71acf9a8e694567749dc5e6b073748632n,
164
+ 0x235955a911e3744859c1db3996aa1f0f64424f67c2ef1c8fcc8c767af5749068n,
165
+ ],
166
+ [
167
+ 0x1e5aa70095a858d1c4153691e91c19f01a883f422efc19ec766c86bc416ceb2an,
168
+ 0x0f1e06c820067d8d0af14cf87633c1bd761d65bc5b3889a17bae7d70d2b19f5dn,
169
+ ],
170
+ [
171
+ 0x2f4d8f60344443350f226f19c4b01e2198f6b475b0291dd2e0c3981e3797a5e0n,
172
+ 0x1aaab92caf692c5fb89e6eab983f26ebe009463c1ddece0a650508994cb84a82n,
173
+ ],
174
+ [
175
+ 0x06e0aba4044a552343f7ba02f234dafe4ccca7fd552342a8493ce544758df012n,
176
+ 0x243269273e7c7ee7a50288f282cb6a7169ec2aac03d2ff7b40463638ad5722d5n,
177
+ ],
178
+ [
179
+ 0x1aecf2ef53262227e12a9ca29ae7f14be031c03488a7604a03cdc77115f26136n,
180
+ 0x0753180b7d445c215d55dbfd6ebfb1c6aabd690ac92fd76cea5144ef3c9a8b3fn,
181
+ ],
182
+ [
183
+ 0x207d50d783c727a979303bc8f50538ad75e5f856180d4f3dc2c7ee186916cef8n,
184
+ 0x20155253cd087a980aad326564240cca45a72c888e69395e4d8f5ca3d2b96e0an,
185
+ ],
186
+ [
187
+ 0x21db09b3c2c299f1b0be7a8f3031fd283cd5f1efca0a468b7ea9a0f170e81fc7n,
188
+ 0x21b50f8107353afc7a1656040c9888ee393608420d88c2a07f34293fb609a26dn,
189
+ ],
190
+ [
191
+ 0x02190016f4cc44935d100bc7b7dae46cea5922261e9889112cc815fafd5c45ccn,
192
+ 0x01dfaacfa00ddb9133042d9833d1201172f69a456f0c9483d0b58e5f01b571fdn,
193
+ ],
194
+ [
195
+ 0x04e67573df0c1591ec51d2f60b74f1964abeef3e201084425a55cd71ffe0b4f8n,
196
+ 0x1f0285b2ede69aff961919827312afad0753c112cab001cb28ff6c2c27f277c6n,
197
+ ],
198
+ [
199
+ 0x092450548d189dfe4e852370c17343aeef92ac3a8fbdeb8fdd244f87d3af03cdn,
200
+ 0x23e3c53d9265d6debfdb40988a908e64673b2f87b1fe2a08b56c6a3fcf84f5d1n,
201
+ ],
202
+ [
203
+ 0x2935be388ee1365bf6a9cc6fd25d130607835dbf7926c5cafed690b9072cd316n,
204
+ 0x059edfbc50a9699e29b975a2fc3bfe7855997e708ce82fa30ed19cc91850f6ccn,
205
+ ],
206
+ [
207
+ 0x21cc891713fb8570152149a9fbb23410d7c42dece266bc6093650e46111a465cn,
208
+ 0x248f486105ee09f447e7e0ff522b5ff1db5f64522f2bbbb28e7a07595cff3e79n,
209
+ ],
210
+ [
211
+ 0x147f06fa12cbb8d1c98f9c06d57899e20d9651bb8da104ad5168c9be10d4419fn,
212
+ 0x2766f677196fb611814f5d7af22aa8555c3c65b572151576b116df5b9f05857dn,
213
+ ],
214
+ [
215
+ 0x0143beefa7f0b8fb72262a3c3d1502a36d8b4cb35befbb37dba3a70ffe2571c7n,
216
+ 0x1808ba6988bbb8585b77765760fb2afccdfe4946702043a46b8d461c7d211b11n,
217
+ ],
218
+ [
219
+ 0x1ac3c1edb1eddd9c5011f88769fac4050aa8820de1f84fcda7e400f87028ba3an,
220
+ 0x050cbb4da87ecd3f0c84d6252e76e19b3678b955c603f35abdcee3b988a57fa4n,
221
+ ],
222
+ [
223
+ 0x05a7092c674d8f44add477edf7369dc7bcb9da4d1b903fd58dd8bd4d166de73en,
224
+ 0x182545ce8ba6fa781823673d50fc62c7d1bb5f3515da6e5c2bdfd7248f311e1bn,
225
+ ],
226
+ [
227
+ 0x0154a12dbf3fd3ae8957fe154f378630c12306eb55425d9732e0ae2b56ca0306n,
228
+ 0x140688ffb0de33c9625e323a13e9df6fb37c841b34c4b18b7e19d51792d393ccn,
229
+ ],
230
+ [
231
+ 0x2fcdf4e4b421286df484fdd08725ffe53728759508f74f0d87e65bd932af28d4n,
232
+ 0x25f57213413f9f0982573c4a6640efe32b612c6c8f0b027425260c4629d38b21n,
233
+ ],
234
+ [
235
+ 0x203ed9a7ff1ef21910003e658dbff87a3e10da7782de00af71995c233587961dn,
236
+ 0x0c7ae4445018e5d451f197d7881b1b95fb66574c26ff6967a37c1eab5f907a08n,
237
+ ],
238
+ [
239
+ 0x131abdc8d6c6319aeee7e8b186ace3c07d140eb4037b21285b2260cd7bf310f7n,
240
+ 0x2371e4c2b73ce0af013b30ee9f434584742cdd7e91f1d842c1a6a95bd12d915dn,
241
+ ],
242
+ [
243
+ 0x124029864085263e79448fdeef91ee2ea5a4952637646b02f132c1ac917edbdan,
244
+ 0x29d11c62ccfca5d8328e5171466137e6cfd19d56bdc3bbc4633a0aed34a90e69n,
245
+ ],
246
+ [
247
+ 0x1ded46fcf96cba70ac0cb4ca58348c90041b257232e476acd236b45271413fben,
248
+ 0x26d04c6660ab9693743bf5c5fcf13047860dfeed3dd903e6ff6fe917fddf73fbn,
249
+ ],
250
+ [
251
+ 0x2b31b48b7313f6a5c3f1f59fe9ad3d4b8900d873056af1691d143208eb5c8790n,
252
+ 0x27cec87606fe5f9562a3d0b1fef90da3e8d17721c668c342b681468a501deff3n,
253
+ ],
254
+ [
255
+ 0x22080b093f3b3c98f9afc52b80594dcf51a714e77c40c3a08513897d73a70806n,
256
+ 0x1cbcacedf498eaebd03b602c4908c165c50ba184230c7c52244c9a5d0e9759ebn,
257
+ ],
258
+ [
259
+ 0x0560b3857af53bc7262482310593e316543551ee57417583161bfce9d12a4d40n,
260
+ 0x2c91b186a9740d4b9f49c8889878381833cc5b5fe29e6e83affa2916e2008988n,
261
+ ],
262
+ [
263
+ 0x2cf006347b380b6e0eb766ebdd1d24dc1eed9a43c206ee58e9457303d509c308n,
264
+ 0x03d11688f54726466399ddce8523148453cd1b6cad3cd414ee6e2af66a6b6addn,
265
+ ],
266
+ [
267
+ 0x2e5c7e4d9a6069892bac121490fee89df1c238c7738c9f3ab599d6b4cc2ff491n,
268
+ 0x0f3c26f5de9ad898d4a4b1a08d1e87fd5cf4362f9796fb8715c60d431902cd54n,
269
+ ],
270
+ [
271
+ 0x15298a52895eb8c9399509dc1f0ef68a90afc29084d3a0cec6956c8420819b5cn,
272
+ 0x2dc0ccd80f1bbbdf364f5b912a961332d9f5db54763745b64e0d85e33faf87c7n,
273
+ ],
274
+ [
275
+ 0x132026c02d21e2ccabf1338f0d93f4223ecca5f0f2a96208561c9d5a5ef79c88n,
276
+ 0x09224bf821c64b105233fb98964f9ee0d3365f59e054c4693492ac07956d5c87n,
277
+ ],
278
+ [
279
+ 0x2d6c6f3d040ad0c71760e8139ed3aef03c01d86e03f4ff0919f97899649d4bden,
280
+ 0x1a186b79fdcea1c8bb184097418bc68279fc5f682c48f5f21809bd2087944935n,
281
+ ],
282
+ [
283
+ 0x1d69440baeb72617846c275fd817a4dbf9a8d39ddd38ca87b6a9e54ec6cc2adcn,
284
+ 0x239c44e43c9a91c9d126e745b949bf87844de4f2775aad804f81b8dcd3c232c7n,
285
+ ],
286
+ [
287
+ 0x1e80e18c68865cf7bfcc6964613ba1aa1ae749a2d6154288d9572f022b2a4dd5n,
288
+ 0x1fa00a74773c3214ed7dfd125c82192d4c24ce557f720c98827aeec194dc9a30n,
289
+ ],
290
+ [
291
+ 0x01b1362ee72c3e3ef5d63f67b54a6c5f547db48126b640fc8356e4cc19382dd3n,
292
+ 0x13e340c7dea9488aa6f9fe7443d7d1aa4b937800dd213c8bb4b301ba4a1a583cn,
293
+ ],
294
+ [
295
+ 0x21f121f9754a315b922f8464a6cbe5a9fe191f30cbd2218cc4997c3d028fa52dn,
296
+ 0x2b8e094f90ea155bd675e389c69c3b021095801905efcfbcfeced8d7e25d6e96n,
297
+ ],
298
+ [
299
+ 0x0d03c9e026afecdaf0f1b68679faf85830f2e16edf65c80c04b032441935e7b1n,
300
+ 0x18a285be0228b819cdd475d2f08192c02a998c85802b10d0ab3256fe367d9cf3n,
301
+ ],
302
+ [
303
+ 0x12db390e5305fd19780de901727bb248778b6077f75ee6f8ae9c2b8629a8c037n,
304
+ 0x16952c652e2719fd93571b55357e6533410e2cb115cb970676c5d08a39d1be87n,
305
+ ],
306
+ [
307
+ 0x04598dbf51d48775d7acafd239192aa850b72785472238e79f65a89292ac238bn,
308
+ 0x06872dca2aac431fbcb2fc3196b516bb791afb6136cc457b3aeeb85d1b02e4ecn,
309
+ ],
310
+ [
311
+ 0x015ae13d6981f433340a44f9d33ebfda3b7108fbed96fabbbdd96e95b9f2cf23n,
312
+ 0x269b90e34244790294b66b9699510444a01ef16661fa80a2a41d368c6371af4bn,
313
+ ],
314
+ [
315
+ 0x0a3d1c57e4d12a2041a41cc6483b63d8616af9b11a272535e3c88a4bb0f293a7n,
316
+ 0x092cf2eec8c9c1cefcaac51028875fb2f9abc46d111c852466d479edb244d852n,
317
+ ],
318
+ [
319
+ 0x054e837ebc7a6b5142d527fd0e0b052aca6b91dd6dc4827e0196acea8bd04af5n,
320
+ 0x294164cfdfc4ddde270ccef912a1ac370f1aced76d933f702937db9ae0f6ab13n,
321
+ ],
322
+ [
323
+ 0x1d175a456220eaa15ac082acf8a910da24751810edad87b1d558e229064c8da4n,
324
+ 0x1c0db158fb28522527eeffec568c97f8b7bc7a3927d1ba93ffcdab8de75e7ecbn,
325
+ ],
326
+ [
327
+ 0x254c3c07450ac82ed0479ce88ace7cc5223b7cdc07557c234620d006df28fb09n,
328
+ 0x09e22217e07537054ab2c6c3947690ec12620ab0f0e7d03b023f51160c1df68dn,
329
+ ],
330
+ [
331
+ 0x1cf4eece13e6e8b9bfd4644614cb0df16b38f76e70b11b4e72c283bc47439ffcn,
332
+ 0x18fcd0501cc6d30faf81f21b62ab175d5b5fff6b16a80b23700c9094ee3f779an,
333
+ ],
334
+ [
335
+ 0x2ca6acd35e2ff4527399a13876563461726f08e629bd5897dfbf9a576f4d6641n,
336
+ 0x303c6102e21ec7518cc4181436345be6af5916b8f604bb1054c02d5ee1362c6en,
337
+ ],
338
+ [
339
+ 0x037612d11f47ede28098ea80adef547f4912031fd236c9a7e5d5cdf00ba4911fn,
340
+ 0x0d547e26bf94386d4ba5a69caa4baac73aaff2bf4abdfadaaa42b892cfa033d8n,
341
+ ],
342
+ [
343
+ 0x2494d804f242aa8a8a7e5eaf09829b04b4c7690c810a5ab01d3fbe2dae54a1f3n,
344
+ 0x093b3e5ca5fdfdb2e58ba6649e9c13f97b79d8e7f4cf65e3255b98a14689c94an,
345
+ ],
346
+ [
347
+ 0x020c10d95e90a551134c8ad77cfb5f11465c23efd81c7713efe22ad54c048403n,
348
+ 0x03eea8fd0ad7fc2ea2eae6a082bb199959a6a361f7e8865d251d6ff547c15207n,
349
+ ],
350
+ [
351
+ 0x0e274ceca67b5c0ff0b8774e5c8adb780b62e3e4a1065b190c2c28da6c808f50n,
352
+ 0x21c6675fbe4ae752919ab3f92f412394c138807af9adc3a5dd81400a83db3bc5n,
353
+ ],
354
+ [
355
+ 0x0158f7157c016635f6f878fb58e1b59f2741a2315939fea4536e056bb7f35ce7n,
356
+ 0x20b454ec327caab24f39f8eb5caf9eda33a9274a8f4bab8f03de09a3c176e7d4n,
357
+ ],
358
+ [
359
+ 0x1fee261ad59b9bb95733b499820beb21ed40156dc89dea7f02739661eafd81a5n,
360
+ 0x003e98b3f725336c5a13aeddb2e2c1e894860365915d06733d847f3a01dced7fn,
361
+ ],
362
+ [
363
+ 0x237e59a6bfc3ff0e1f5fada642d1d1a5c349502bed14f64a6c5b03caf3975008n,
364
+ 0x2362bf67d5eff33ec19af5ef915557363bd3aa313f3610bd6b1a93cf6bd8b045n,
365
+ ],
366
+ [
367
+ 0x0204a6de6d1e5243dabb6485d5eb0231aa1487f417f7677fb56f398269b07fefn,
368
+ 0x01b9bbb78a97b65bd9854d56e5bd50be8ca60f18b73f012ef28775ef3fc0901bn,
369
+ ],
370
+ [
371
+ 0x18ad002f659998c9bd8543361f97a2a454e5b87aa62893406298f3e37f2720ben,
372
+ 0x227bd053f0ba47f463cee2caa96c4d00516f579a1646ec4a2a70dc1700b06a50n,
373
+ ],
374
+ [
375
+ 0x03a74f956daea99179061720902ed0f3206c92f215fe1dc2b1a10545803a99e9n,
376
+ 0x2a279b91188c2bd770f5b23f0cc724ec9eab26971db684d4d8a1623e150d0e4cn,
377
+ ],
378
+ [
379
+ 0x26b3364b6285c48a552b5f1a977d9be8728a8493855bf5acc49d5815af84dd2cn,
380
+ 0x1898136f0513c863a49ba1b27f7de7452f004ebe7409dfae1f28966f918e6ba4n,
381
+ ],
382
+ [
383
+ 0x2ead9bee2969459504a0fa26e953a7caafe76dee6da60ca921e9f78743378589n,
384
+ 0x0934d50a9d9007be2e47f077044775b50d33438443853dc1e81ba011816faccen,
385
+ ],
386
+ [
387
+ 0x03b638cfae5057787fc620d2a8fa257b7126603402dade0789093853eca1b6a1n,
388
+ 0x1e57da2d7d7c7087e58b74ae04e3be194424a64e21ee94feb20859dc1f65438bn,
389
+ ],
390
+ [
391
+ 0x1253e8cce9c54cc1f0c2f38eb583f48f7421b516ff629c9764bc187f768cb0d3n,
392
+ 0x1164460615286ea5972631b0e2d96f68cdbf17c327cd1a0399666e34950375a3n,
393
+ ],
394
+ [
395
+ 0x0de7b3c645363ac23ff2c8af302e995251419b52ea1936cf58805b589485ed08n,
396
+ 0x29ac530d28441b612678ff86c9f48cbee512260e21aacb7ae1a6abc05d0df10fn,
397
+ ],
398
+ [
399
+ 0x11ee0a33439f8e1da5fbaec6ad6368a2c1ecd2590ebe06bb0269a2c28bd389a5n,
400
+ 0x0d37b9e16c881409be41d42601fdaecfc7b67bca0f088eb0bef1c4e4c428a1f1n,
401
+ ],
402
+ [
403
+ 0x00ef4d130e14eb610f533b395d18db4708b4154a689cd4acddac1f1b43ed6854n,
404
+ 0x2c485355a6a340b718e1a20206ec5c55da5dacc9045d3454b2947b759a1401ban,
405
+ ],
406
+ [
407
+ 0x0b2500eddb982dc3ef2728e010260a5e33aa06e6960ac8d3926e3e4b441c978an,
408
+ 0x023919ab917efd33a4e07c3da64b5c0af384c7487e23333c43c4b62a315014cbn,
409
+ ],
410
+ [
411
+ 0x2e9eb27d5d8f60d282cf0866e4f0fb92d045388f1d227852f85c1518dddc503an,
412
+ 0x1f0edc2cc1602d4f66b658f676446a7ebd3bab1a08cfe60184390600c2b0044dn,
413
+ ],
414
+ [
415
+ 0x05c545ab45ef4d781e551674ce7027668b384667c7e3e04be02a921410223713n,
416
+ 0x0e8988769b7f561fd70e9a761c198ab9d5807fbe6ecd327241a8f10815ac4d76n,
417
+ ],
418
+ [
419
+ 0x252896bd06ea09d5260c6053b96a3c9f0fe2bf520debabc1422b298e1b823ff0n,
420
+ 0x0beba0fe2d2ed0e028356ae129ba2a444a871a7aad25d5e90fc022b963e0c5e3n,
421
+ ],
422
+ [
423
+ 0x17c2b8543fe3ba1042342557072eb30e941f8b93c879512e590a761454458694n,
424
+ 0x2de5011cc9b603ba43cfcc082671de63da3de9b9f0021879e7f482058f9fae0fn,
425
+ ],
426
+ [
427
+ 0x0792855505a783cb49f954bccca6120e8990a7092b4ab0bd08168203932c7bacn,
428
+ 0x09e95a4c731b378b80991239ff87b90ba00b9439c287dbf01aaac56f05aa550dn,
429
+ ],
430
+ [
431
+ 0x0d4beeb972497603c3a1d7d7ad79c45615f12844a530580ca2de18ef8fa1b1efn,
432
+ 0x004998039050599d55e744c51f8846dbc7db25a8318abcaf217ae68bff075d77n,
433
+ ],
434
+ [
435
+ 0x12c6d0a3726a805bc04506282ce0218ce5de5386b1eb4aaa893722fe80983688n,
436
+ 0x2394def51425f2cee78f4ac1f0c04e25b60d1fdc9e84bacad67500f7ebcfca34n,
437
+ ],
438
+ [
439
+ 0x1a19096c5c3522d45e2827449adef54d91287ede96b3d39818da08a0b93e9dc3n,
440
+ 0x27a0dde36f91156a87d746a58477553ec138d108fb471f157175e22a75a495dbn,
441
+ ],
442
+ [
443
+ 0x0b7748b109ba5798a8d2803be7fd015f2ca5af9eaad8ddddde16d50a07a7bc10n,
444
+ 0x12214803947f2969d86455b1a47213f04a9309620d9692ec91114237acb84eebn,
445
+ ],
446
+ [
447
+ 0x0c02dbea3ecb6bacc7390d53b6fe23feb49a58c571d95d01fabac5a42489a7can,
448
+ 0x0d73b846a5cf707f3e5abf9ba2b4f5602a55b5fbad7fbd7bd9b9ab48977c1005n,
449
+ ],
450
+ [
451
+ 0x169623c619bc3ac95ec3315d5e01afecebafb1931826551b86c007070001fe90n,
452
+ 0x00cb91b18d7097d4fa2d7600ae1bf31a3b4df9479e39f1bf23f231773258ea3cn,
453
+ ],
454
+ [
455
+ 0x0fd5b9f9d183b6da8ba0f99503e851450b3efb33c6a7807a6239e0707b5af271n,
456
+ 0x2a4153eb0395955d7d7ee71519d1d600bc32dd39b6283224fbc92d23b860eb54n,
457
+ ],
458
+ [
459
+ 0x1209e1604a9b10afde568fcfe0ea9f1e09cdf13fe17747abeff0a1454dcf947bn,
460
+ 0x0e1d63b8ab7b9a4a7ef8d3d17207dcbbc22e9c21da661ddfdc1ac961e0032b57n,
461
+ ],
462
+ [
463
+ 0x2982c7c825f0e86293b7a0c9eefea7f5383e222a054ffa4c5d4e5908c543c2a6n,
464
+ 0x151b990dec385eab48210cd7766d2de58eba95ff76faeee4eb64e6f3dbd3c139n,
465
+ ],
466
+ [
467
+ 0x124faaed649b6df79325991151fb88952c9acfd57a6b3cb20b18f2fe63529818n,
468
+ 0x229dfd4712f46fe904c28adccd1165786e96baaa2c74a0a7744dbb4ab4300d41n,
469
+ ],
470
+ [
471
+ 0x0963070c9042bbbbe66468d9e75a719123b52b76ee9797f4b039b5de1b5c9651n,
472
+ 0x06aa3729a947ec02394d82a46a0c2c2f8e2013e15f46cc97b96944937da731d0n,
473
+ ],
474
+ [
475
+ 0x279040e3e8f1e0effaf0450099574e134c3eef819f04cadff27851de962da0d3n,
476
+ 0x1ee7f53a1b21c4fbd2ef56895bc274e520140858ba51eff6968eae9d0a03a2f8n,
477
+ ],
478
+ [
479
+ 0x0502d68753a132e8b268e02362166d6c0e43494aef2a5173eff138aadfe05ad0n,
480
+ 0x21629dc5334c80a75f79a4b75169c40bb6eb665796a8c4d1024231cbc4604f1en,
481
+ ],
482
+ [
483
+ 0x13edf560ae7a1c78296f4609233337cd8fbb009b22d89a27d2e5c94983095fe9n,
484
+ 0x039c043f9ac7c68faf473565cdcb51785597c90d8ba14dd8e577bf14d70c53e5n,
485
+ ],
486
+ [
487
+ 0x075a3019dc700efd12e8b91be0029407d59c3dfeeeced4d8f8d35fed14900d79n,
488
+ 0x073d003f8998a46ba32780d2e50c2a287b6902ecb2b82672a817980666c406c1n,
489
+ ],
490
+ [
491
+ 0x1e8509ab9d961e5dea389e1498be69790390a5f77c7dc68cc55858207ece11c5n,
492
+ 0x19979a1f1a22dc051a45427d70f66fc27c064fd451b64b6b609d74f0a6439b2cn,
493
+ ],
494
+ [
495
+ 0x0dc528103070ee030c96bdfe9004693f52a22042abad186aba5616918c701f56n,
496
+ 0x05f194973a699889fecfedf291c50be0526c35c22faba00aec84b967e1a0f278n,
497
+ ],
498
+ [
499
+ 0x1f795886933d543108a9cb86291f04ba487cd95fb6ff9a062d8e6ac9f267d3fan,
500
+ 0x127fe0e1209741e32c0a093bada5517cbab952de68241df774b6ddeabc2a6397n,
501
+ ],
502
+ [
503
+ 0x156c18df6da11a7f9657751e43b50abea544017d347f27406cf4751e51a81e42n,
504
+ 0x28e38ee1433b9eefac4b22ba5d88f1d7979d1fce9920d20213b1c01fb204f725n,
505
+ ],
506
+ [
507
+ 0x2341ce02c131e47cec7777567cc7996ac3b6fd6255ba880ba819ae4982465becn,
508
+ 0x0913340a3a212e4e0adb678d500a70e99e24f7a8370cab3b92df8cb6ec2766f3n,
509
+ ],
510
+ [
511
+ 0x2ee690cd26ee66b12bfe6a7d4fe3077a8c2a41ce96216a964c1a94227b0cb8f9n,
512
+ 0x1e207e2e40816da78ca89b8d98f0ada6208f014beef4efec812f629d42e5e304n,
513
+ ],
514
+ [
515
+ 0x086d9eebd9fbb9b6394cb155b8ee9e3558857f65053abb4a04c6d956d1fdfe95n,
516
+ 0x08deaf603a5fee68ccbf892f95f787dd437283b46362a9071ee1e73ec4e03edcn,
517
+ ],
518
+ [
519
+ 0x0f63792ebcefa16d26dbfeb58db005dced755740bd047de3fde3013575b57022n,
520
+ 0x1cbd79e5b8ac132920b495e66d47f2969df49423452a34336796d152ac7de76bn,
521
+ ],
522
+ [
523
+ 0x05f6732fe8526a3340e547d2a19a97a5c4538a94ce607eb0909db67c8880bdedn,
524
+ 0x1e0bbf2a4e501a83460c96e919bec020187f51ce94c328b3b38b07f34dea2cb2n,
525
+ ],
526
+ [
527
+ 0x1f1df03870f616146c84545722f1e8064bc9db8180caf35061367af95445bb3fn,
528
+ 0x077004e054257d7389065f3f11be644084b357c1b9214a9869d5b6761ccee13cn,
529
+ ],
530
+ ].map(([x, y]) => new grumpkin.ProjectivePoint(x, y, 1n));
531
+
532
+ const lengthGenerator = new grumpkin.ProjectivePoint(
533
+ 0x2df8b940e5890e4e1377e05373fae69a1d754f6935e6a780b666947431f2cdcdn,
534
+ 0x2ecd88d15967bc53b885912e0d16866154acb6aac2d3f85e27ca7eefb2c19083n,
535
+ 1n,
536
+ );
537
+
538
+ const pointAtInfinity = new grumpkin.ProjectivePoint(0n, 1n, 0n);
539
+
540
+ /**
541
+ * Create a pedersen commitment (point) from an array of input fields.
542
+ */
543
+ function pedersenCommitInternal(input: Buffer[], generatorOffset = 0) {
544
+ if (generatorOffset + input.length > defaultGenerators.length) {
545
+ throw new Error(
546
+ `Pedersen commit overflowed default generators. offset: ${generatorOffset} length: ${input.length}`,
547
+ );
548
+ }
549
+ let result = pointAtInfinity;
550
+ for (let i = 0; i < input.length; ++i) {
551
+ // TODO: WARNING! Merkle tree tests fail if we don't reduce modulo p as they feed in 256 bits.
552
+ // Is it right that we accept 256 bit buffers here and reduce mod p? Is the right thing to only accept fields?
553
+ const ie = toBigIntBE(input[i]) % grumpkin.CURVE.Fp.ORDER;
554
+ result = ie ? result.add(defaultGenerators[generatorOffset + i].multiply(ie)) : result;
555
+ }
556
+ return result;
557
+ }
558
+
559
+ /**
560
+ * Create a pedersen commitment (point) from an array of input fields.
561
+ */
562
+ export function pedersenCommitNoble(input: Buffer[], generatorOffset = 0) {
563
+ const result = pedersenCommitInternal(input, generatorOffset);
564
+ return [toBufferBE(result.x, 32), toBufferBE(result.y, 32)];
565
+ }
566
+
567
+ /**
568
+ * Create a pedersen hash (field) from an array of input fields.
569
+ */
570
+ export function pedersenHashWithHashIndexNoble(input: Buffer[], index = 0) {
571
+ const result = lengthGenerator.multiply(BigInt(input.length));
572
+ return toBufferBE(result.add(pedersenCommitInternal(input, index)).x, 32);
573
+ }
@@ -0,0 +1,42 @@
1
+ import { BarretenbergSync, Fr } from '@aztec/bb.js';
2
+
3
+ /**
4
+ * Create a pedersen commitment (point) from an array of input fields.
5
+ * Left pads any inputs less than 32 bytes.
6
+ */
7
+ export function pedersenCommit(input: Buffer[]) {
8
+ if (!input.every(i => i.length <= 32)) {
9
+ throw new Error('All Pedersen Commit input buffers must be <= 32 bytes.');
10
+ }
11
+ input = input.map(i => (i.length < 32 ? Buffer.concat([Buffer.alloc(32 - i.length, 0), i]) : i));
12
+ const point = BarretenbergSync.getSingleton().pedersenCommit(input.map(i => new Fr(i)));
13
+ // toBuffer returns Uint8Arrays (browser/worker-boundary friendly).
14
+ // TODO: rename toTypedArray()?
15
+ return [Buffer.from(point.x.toBuffer()), Buffer.from(point.y.toBuffer())];
16
+ }
17
+
18
+ /**
19
+ * Create a pedersen hash (field) from an array of input fields.
20
+ * Left pads any inputs less than 32 bytes.
21
+ */
22
+ export function pedersenHash(input: Buffer[], index = 0) {
23
+ if (!input.every(i => i.length <= 32)) {
24
+ throw new Error('All Pedersen Hash input buffers must be <= 32 bytes.');
25
+ }
26
+ input = input.map(i => (i.length < 32 ? Buffer.concat([Buffer.alloc(32 - i.length, 0), i]) : i));
27
+ return Buffer.from(
28
+ BarretenbergSync.getSingleton()
29
+ .pedersenHash(
30
+ input.map(i => new Fr(i)),
31
+ index,
32
+ )
33
+ .toBuffer(),
34
+ );
35
+ }
36
+
37
+ /**
38
+ * Create a pedersen hash from an arbitrary length buffer.
39
+ */
40
+ export function pedersenHashBuffer(input: Buffer, index = 0) {
41
+ return Buffer.from(BarretenbergSync.getSingleton().pedersenHashBuffer(input, index).toBuffer());
42
+ }
@@ -0,0 +1,42 @@
1
+ import nodeCrypto from 'crypto';
2
+ import isNode from 'detect-node';
3
+
4
+ // limit of Crypto.getRandomValues()
5
+ // https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues
6
+ const MAX_BYTES = 65536;
7
+
8
+ const getWebCrypto = () => {
9
+ if (typeof window !== 'undefined' && window.crypto) {
10
+ return window.crypto;
11
+ }
12
+ if (typeof self !== 'undefined' && self.crypto) {
13
+ return self.crypto;
14
+ }
15
+ return undefined;
16
+ };
17
+
18
+ export const randomBytes = (len: number) => {
19
+ if (isNode) {
20
+ return nodeCrypto.randomBytes(len) as Buffer;
21
+ }
22
+
23
+ const crypto = getWebCrypto();
24
+ if (!crypto) {
25
+ throw new Error('randomBytes UnsupportedEnvironment');
26
+ }
27
+
28
+ const buf = Buffer.allocUnsafe(len);
29
+ if (len > MAX_BYTES) {
30
+ // this is the max bytes crypto.getRandomValues
31
+ // can do at once see https://developer.mozilla.org/en-US/docs/Web/API/window.crypto.getRandomValues
32
+ for (let generated = 0; generated < len; generated += MAX_BYTES) {
33
+ // buffer.slice automatically checks if the end is past the end of
34
+ // the buffer so we don't have to here
35
+ crypto.getRandomValues(buf.slice(generated, generated + MAX_BYTES));
36
+ }
37
+ } else {
38
+ crypto.getRandomValues(buf);
39
+ }
40
+
41
+ return buf;
42
+ };
@@ -0,0 +1,3 @@
1
+ import { default as hash } from 'hash.js';
2
+
3
+ export const sha256 = (data: Buffer) => Buffer.from(hash.sha256().update(data).digest());
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Represents an error thrown when an operation is interrupted unexpectedly.
3
+ * This custom error class extends the built-in Error class in JavaScript and
4
+ * can be used to handle cases where a process or task is terminated before completion.
5
+ */
6
+ export class InterruptError extends Error {}