@aztec/bb.js 0.0.1-commit.24de95ac → 0.0.1-commit.5daedc8

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 (572) hide show
  1. package/build/amd64-linux/bb +0 -0
  2. package/build/amd64-linux/nodejs_module.node +0 -0
  3. package/build/amd64-macos/bb +0 -0
  4. package/build/amd64-macos/nodejs_module.node +0 -0
  5. package/build/arm64-linux/bb +0 -0
  6. package/build/arm64-linux/nodejs_module.node +0 -0
  7. package/build/arm64-macos/bb +0 -0
  8. package/build/arm64-macos/nodejs_module.node +0 -0
  9. package/dest/browser/async_map/index.d.ts +1 -1
  10. package/dest/browser/async_map/index.js +1 -1
  11. package/dest/browser/barretenberg/backend.d.ts +10 -24
  12. package/dest/browser/barretenberg/backend.d.ts.map +1 -1
  13. package/dest/browser/barretenberg/backend.js +33 -84
  14. package/dest/browser/barretenberg/index.d.ts +2 -4
  15. package/dest/browser/barretenberg/index.d.ts.map +1 -1
  16. package/dest/browser/barretenberg/index.js +18 -27
  17. package/dest/browser/barretenberg/testing/bigint-buffer.d.ts +17 -0
  18. package/dest/browser/barretenberg/testing/bigint-buffer.d.ts.map +1 -0
  19. package/dest/browser/barretenberg/testing/bigint-buffer.js +37 -0
  20. package/dest/browser/barretenberg/testing/fields.d.ts +16 -0
  21. package/dest/browser/barretenberg/testing/fields.d.ts.map +1 -0
  22. package/dest/browser/barretenberg/testing/fields.js +47 -0
  23. package/dest/browser/barretenberg_wasm/barretenberg_wasm_base/index.d.ts +1 -1
  24. package/dest/browser/barretenberg_wasm/barretenberg_wasm_base/index.d.ts.map +1 -1
  25. package/dest/browser/barretenberg_wasm/barretenberg_wasm_base/index.js +5 -6
  26. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts +1 -1
  27. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts.map +1 -1
  28. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.js +1 -3
  29. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.d.ts +1 -1
  30. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.js +1 -7
  31. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts +1 -1
  32. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts.map +1 -1
  33. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.js +5 -4
  34. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/index.d.ts +13 -7
  35. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/index.d.ts.map +1 -1
  36. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/index.js +45 -18
  37. package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts +1 -1
  38. package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts.map +1 -1
  39. package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.js +1 -3
  40. package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.d.ts +1 -1
  41. package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.js +1 -7
  42. package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts +9 -8
  43. package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts.map +1 -1
  44. package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/index.js +4 -3
  45. package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg-threads.d.ts +1 -1
  46. package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg-threads.js +1 -1
  47. package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg.d.ts +1 -1
  48. package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg.js +1 -1
  49. package/dest/browser/barretenberg_wasm/fetch_code/browser/index.d.ts +1 -1
  50. package/dest/browser/barretenberg_wasm/fetch_code/browser/index.js +1 -1
  51. package/dest/browser/barretenberg_wasm/fetch_code/index.d.ts +1 -1
  52. package/dest/browser/barretenberg_wasm/helpers/browser/index.d.ts +2 -2
  53. package/dest/browser/barretenberg_wasm/helpers/browser/index.d.ts.map +1 -1
  54. package/dest/browser/barretenberg_wasm/helpers/browser/index.js +9 -2
  55. package/dest/browser/barretenberg_wasm/helpers/index.d.ts +1 -1
  56. package/dest/browser/barretenberg_wasm/index.d.ts +1 -1
  57. package/dest/browser/barretenberg_wasm/index.d.ts.map +1 -1
  58. package/dest/browser/barretenberg_wasm/index.js +2 -3
  59. package/dest/browser/bb_backends/browser/index.d.ts +1 -1
  60. package/dest/browser/bb_backends/browser/index.js +1 -1
  61. package/dest/browser/bb_backends/browser/platform.d.ts +4 -0
  62. package/dest/browser/bb_backends/browser/platform.d.ts.map +1 -0
  63. package/dest/browser/bb_backends/browser/platform.js +10 -0
  64. package/dest/browser/bb_backends/index.d.ts +10 -7
  65. package/dest/browser/bb_backends/index.d.ts.map +1 -1
  66. package/dest/browser/bb_backends/index.js +8 -7
  67. package/dest/browser/bb_backends/interface.d.ts +1 -1
  68. package/dest/browser/bb_backends/wasm.d.ts +1 -1
  69. package/dest/browser/bb_backends/wasm.d.ts.map +1 -1
  70. package/dest/browser/bb_backends/wasm.js +5 -3
  71. package/dest/browser/bbapi_exception.d.ts +1 -1
  72. package/dest/browser/bbapi_exception.d.ts.map +1 -1
  73. package/dest/browser/bbapi_exception.js +1 -1
  74. package/dest/browser/bin/index.d.ts +3 -0
  75. package/dest/browser/bin/index.d.ts.map +1 -0
  76. package/dest/browser/bin/index.js +11 -0
  77. package/dest/browser/cbind/generate.d.ts +1 -1
  78. package/dest/browser/cbind/generate.js +1 -1
  79. package/dest/browser/cbind/generated/api_types.d.ts +1 -1
  80. package/dest/browser/cbind/generated/api_types.js +1 -1
  81. package/dest/browser/cbind/generated/async.d.ts +1 -1
  82. package/dest/browser/cbind/generated/async.d.ts.map +1 -1
  83. package/dest/browser/cbind/generated/async.js +2 -1
  84. package/dest/browser/cbind/generated/curve_constants.d.ts +1 -1
  85. package/dest/browser/cbind/generated/sync.d.ts +1 -1
  86. package/dest/browser/cbind/generated/sync.d.ts.map +1 -1
  87. package/dest/browser/cbind/generated/sync.js +2 -1
  88. package/dest/browser/cbind/schema_compiler.d.ts +1 -1
  89. package/dest/browser/cbind/schema_compiler.d.ts.map +1 -1
  90. package/dest/browser/cbind/schema_compiler.js +6 -5
  91. package/dest/browser/crs/browser/cached_net_crs.d.ts +1 -1
  92. package/dest/browser/crs/browser/cached_net_crs.d.ts.map +1 -1
  93. package/dest/browser/crs/browser/cached_net_crs.js +6 -1
  94. package/dest/browser/crs/browser/index.d.ts +1 -1
  95. package/dest/browser/crs/index.d.ts +1 -1
  96. package/dest/browser/crs/net_crs.d.ts +1 -16
  97. package/dest/browser/crs/net_crs.d.ts.map +1 -1
  98. package/dest/browser/crs/net_crs.js +6 -1
  99. package/dest/browser/index.d.ts +2 -1
  100. package/dest/browser/index.d.ts.map +1 -1
  101. package/dest/browser/index.js +2 -1
  102. package/dest/browser/proof/index.d.ts +1 -1
  103. package/dest/browser/proof/index.js +1 -1
  104. package/dest/browser/random/browser/index.d.ts +1 -1
  105. package/dest/browser/random/browser/index.d.ts.map +1 -1
  106. package/dest/browser/random/browser/index.js +1 -1
  107. package/dest/browser/random/index.d.ts +1 -1
  108. package/dest/browser/retry/index.d.ts +1 -1
  109. package/dest/browser/retry/index.js +1 -1
  110. package/dest/node/async_map/index.d.ts +1 -1
  111. package/dest/node/async_map/index.js +1 -1
  112. package/dest/node/barretenberg/backend.d.ts +10 -24
  113. package/dest/node/barretenberg/backend.d.ts.map +1 -1
  114. package/dest/node/barretenberg/backend.js +33 -84
  115. package/dest/node/barretenberg/blake2s.test.d.ts +1 -1
  116. package/dest/node/barretenberg/blake2s.test.js +2 -2
  117. package/dest/node/barretenberg/index.d.ts +2 -4
  118. package/dest/node/barretenberg/index.d.ts.map +1 -1
  119. package/dest/node/barretenberg/index.js +18 -27
  120. package/dest/node/barretenberg/pedersen.test.d.ts +1 -1
  121. package/dest/node/barretenberg/pedersen.test.js +2 -2
  122. package/dest/node/barretenberg/poseidon.bench.test.d.ts +1 -1
  123. package/dest/node/barretenberg/poseidon.bench.test.js +80 -79
  124. package/dest/node/barretenberg/poseidon.test.d.ts +1 -1
  125. package/dest/node/barretenberg/poseidon.test.js +2 -2
  126. package/dest/node/barretenberg/testing/bigint-buffer.d.ts +17 -0
  127. package/dest/node/barretenberg/testing/bigint-buffer.d.ts.map +1 -0
  128. package/dest/node/barretenberg/testing/bigint-buffer.js +37 -0
  129. package/dest/node/barretenberg/testing/fields.d.ts +16 -0
  130. package/dest/node/barretenberg/testing/fields.d.ts.map +1 -0
  131. package/dest/node/barretenberg/testing/fields.js +47 -0
  132. package/dest/node/barretenberg_wasm/barretenberg-threads.wasm.gz +0 -0
  133. package/dest/node/barretenberg_wasm/barretenberg_wasm_base/index.d.ts +1 -1
  134. package/dest/node/barretenberg_wasm/barretenberg_wasm_base/index.d.ts.map +1 -1
  135. package/dest/node/barretenberg_wasm/barretenberg_wasm_base/index.js +5 -6
  136. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts +1 -1
  137. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts.map +1 -1
  138. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.js +1 -3
  139. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.d.ts +1 -1
  140. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.js +1 -7
  141. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.d.ts +1 -1
  142. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.d.ts.map +1 -1
  143. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.js +1 -3
  144. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.d.ts +1 -1
  145. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.js +1 -8
  146. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts +1 -1
  147. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts.map +1 -1
  148. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.js +5 -4
  149. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/index.d.ts +13 -7
  150. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/index.d.ts.map +1 -1
  151. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/index.js +45 -18
  152. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts +1 -1
  153. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts.map +1 -1
  154. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.js +1 -3
  155. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.d.ts +1 -1
  156. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.js +1 -7
  157. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.d.ts +1 -1
  158. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.d.ts.map +1 -1
  159. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.js +1 -3
  160. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.d.ts +1 -1
  161. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.js +1 -7
  162. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts +9 -8
  163. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts.map +1 -1
  164. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/index.js +4 -3
  165. package/dest/node/barretenberg_wasm/fetch_code/browser/barretenberg-threads.d.ts +1 -1
  166. package/dest/node/barretenberg_wasm/fetch_code/browser/barretenberg.d.ts +1 -1
  167. package/dest/node/barretenberg_wasm/fetch_code/browser/index.d.ts +1 -1
  168. package/dest/node/barretenberg_wasm/fetch_code/browser/index.js +1 -1
  169. package/dest/node/barretenberg_wasm/fetch_code/index.d.ts +1 -1
  170. package/dest/node/barretenberg_wasm/fetch_code/node/index.d.ts +1 -1
  171. package/dest/node/barretenberg_wasm/fetch_code/node/index.js +1 -1
  172. package/dest/node/barretenberg_wasm/helpers/browser/index.d.ts +2 -2
  173. package/dest/node/barretenberg_wasm/helpers/browser/index.d.ts.map +1 -1
  174. package/dest/node/barretenberg_wasm/helpers/browser/index.js +9 -2
  175. package/dest/node/barretenberg_wasm/helpers/index.d.ts +1 -1
  176. package/dest/node/barretenberg_wasm/helpers/node/index.d.ts +5 -6
  177. package/dest/node/barretenberg_wasm/helpers/node/index.d.ts.map +1 -1
  178. package/dest/node/barretenberg_wasm/helpers/node/index.js +14 -6
  179. package/dest/node/barretenberg_wasm/helpers/node/node_endpoint.d.ts +2 -2
  180. package/dest/node/barretenberg_wasm/helpers/node/node_endpoint.d.ts.map +1 -1
  181. package/dest/node/barretenberg_wasm/helpers/node/node_endpoint.js +1 -1
  182. package/dest/node/barretenberg_wasm/index.d.ts +1 -1
  183. package/dest/node/barretenberg_wasm/index.d.ts.map +1 -1
  184. package/dest/node/barretenberg_wasm/index.js +2 -3
  185. package/dest/node/barretenberg_wasm/index.test.d.ts +1 -1
  186. package/dest/node/barretenberg_wasm/index.test.js +1 -1
  187. package/dest/node/bb_backends/browser/index.d.ts +1 -1
  188. package/dest/node/bb_backends/browser/index.js +1 -1
  189. package/dest/node/bb_backends/browser/platform.d.ts +4 -0
  190. package/dest/node/bb_backends/browser/platform.d.ts.map +1 -0
  191. package/dest/node/bb_backends/browser/platform.js +10 -0
  192. package/dest/node/bb_backends/index.d.ts +10 -7
  193. package/dest/node/bb_backends/index.d.ts.map +1 -1
  194. package/dest/node/bb_backends/index.js +8 -7
  195. package/dest/node/bb_backends/interface.d.ts +1 -1
  196. package/dest/node/bb_backends/node/index.d.ts +1 -1
  197. package/dest/node/bb_backends/node/index.d.ts.map +1 -1
  198. package/dest/node/bb_backends/node/index.js +15 -9
  199. package/dest/node/bb_backends/node/native_pipe.d.ts +1 -1
  200. package/dest/node/bb_backends/node/native_pipe.d.ts.map +1 -1
  201. package/dest/node/bb_backends/node/native_pipe.js +11 -10
  202. package/dest/node/bb_backends/node/native_shm.d.ts +3 -3
  203. package/dest/node/bb_backends/node/native_shm.d.ts.map +1 -1
  204. package/dest/node/bb_backends/node/native_shm.js +49 -22
  205. package/dest/node/bb_backends/node/native_shm_async.d.ts +51 -0
  206. package/dest/node/bb_backends/node/native_shm_async.d.ts.map +1 -0
  207. package/dest/node/bb_backends/node/native_shm_async.js +237 -0
  208. package/dest/node/bb_backends/node/native_socket.d.ts +2 -2
  209. package/dest/node/bb_backends/node/native_socket.d.ts.map +1 -1
  210. package/dest/node/bb_backends/node/native_socket.js +43 -31
  211. package/dest/node/bb_backends/node/platform.d.ts +1 -1
  212. package/dest/node/bb_backends/node/platform.js +1 -1
  213. package/dest/node/bb_backends/wasm.d.ts +1 -1
  214. package/dest/node/bb_backends/wasm.d.ts.map +1 -1
  215. package/dest/node/bb_backends/wasm.js +5 -3
  216. package/dest/node/bbapi/exception_handling.test.d.ts +2 -0
  217. package/dest/node/bbapi/exception_handling.test.d.ts.map +1 -0
  218. package/dest/node/bbapi/exception_handling.test.js +48 -0
  219. package/dest/node/bbapi_exception.d.ts +1 -1
  220. package/dest/node/bbapi_exception.d.ts.map +1 -1
  221. package/dest/node/bbapi_exception.js +1 -1
  222. package/dest/node/benchmark/index.d.ts +1 -1
  223. package/dest/node/benchmark/index.js +1 -1
  224. package/dest/node/benchmark/timer.d.ts +1 -1
  225. package/dest/node/benchmark/timer.d.ts.map +1 -1
  226. package/dest/node/benchmark/timer.js +2 -1
  227. package/dest/node/bin/index.d.ts +3 -0
  228. package/dest/node/bin/index.d.ts.map +1 -0
  229. package/dest/node/bin/index.js +11 -0
  230. package/dest/node/cbind/generate.d.ts +1 -1
  231. package/dest/node/cbind/generate.js +1 -1
  232. package/dest/node/cbind/generated/api_types.d.ts +1 -1
  233. package/dest/node/cbind/generated/api_types.js +1 -1
  234. package/dest/node/cbind/generated/async.d.ts +1 -1
  235. package/dest/node/cbind/generated/async.d.ts.map +1 -1
  236. package/dest/node/cbind/generated/async.js +2 -1
  237. package/dest/node/cbind/generated/curve_constants.d.ts +1 -1
  238. package/dest/node/cbind/generated/sync.d.ts +1 -1
  239. package/dest/node/cbind/generated/sync.d.ts.map +1 -1
  240. package/dest/node/cbind/generated/sync.js +2 -1
  241. package/dest/node/cbind/schema_compiler.d.ts +1 -1
  242. package/dest/node/cbind/schema_compiler.d.ts.map +1 -1
  243. package/dest/node/cbind/schema_compiler.js +6 -5
  244. package/dest/node/crs/browser/cached_net_crs.d.ts +1 -1
  245. package/dest/node/crs/browser/cached_net_crs.d.ts.map +1 -1
  246. package/dest/node/crs/browser/cached_net_crs.js +6 -1
  247. package/dest/node/crs/browser/index.d.ts +1 -1
  248. package/dest/node/crs/index.d.ts +1 -1
  249. package/dest/node/crs/net_crs.d.ts +1 -16
  250. package/dest/node/crs/net_crs.d.ts.map +1 -1
  251. package/dest/node/crs/net_crs.js +6 -1
  252. package/dest/node/crs/node/index.d.ts +1 -1
  253. package/dest/node/crs/node/index.d.ts.map +1 -1
  254. package/dest/node/crs/node/index.js +11 -6
  255. package/dest/node/index.d.ts +2 -1
  256. package/dest/node/index.d.ts.map +1 -1
  257. package/dest/node/index.js +2 -1
  258. package/dest/node/proof/index.d.ts +1 -1
  259. package/dest/node/proof/index.js +1 -1
  260. package/dest/node/random/browser/index.d.ts +1 -1
  261. package/dest/node/random/browser/index.d.ts.map +1 -1
  262. package/dest/node/random/browser/index.js +1 -1
  263. package/dest/node/random/index.d.ts +1 -1
  264. package/dest/node/random/node/index.d.ts +1 -1
  265. package/dest/node/random/node/index.js +1 -1
  266. package/dest/node/retry/index.d.ts +1 -1
  267. package/dest/node/retry/index.js +1 -1
  268. package/dest/node-cjs/async_map/index.d.ts +1 -1
  269. package/dest/node-cjs/async_map/index.js +1 -1
  270. package/dest/node-cjs/barretenberg/backend.d.ts +10 -24
  271. package/dest/node-cjs/barretenberg/backend.d.ts.map +1 -1
  272. package/dest/node-cjs/barretenberg/backend.js +39 -90
  273. package/dest/node-cjs/barretenberg/blake2s.test.d.ts +1 -1
  274. package/dest/node-cjs/barretenberg/blake2s.test.js +6 -6
  275. package/dest/node-cjs/barretenberg/index.d.ts +2 -4
  276. package/dest/node-cjs/barretenberg/index.d.ts.map +1 -1
  277. package/dest/node-cjs/barretenberg/index.js +24 -33
  278. package/dest/node-cjs/barretenberg/pedersen.test.d.ts +1 -1
  279. package/dest/node-cjs/barretenberg/pedersen.test.js +9 -9
  280. package/dest/node-cjs/barretenberg/poseidon.bench.test.d.ts +1 -1
  281. package/dest/node-cjs/barretenberg/poseidon.bench.test.js +89 -88
  282. package/dest/node-cjs/barretenberg/poseidon.test.d.ts +1 -1
  283. package/dest/node-cjs/barretenberg/poseidon.test.js +4 -4
  284. package/dest/node-cjs/barretenberg/testing/bigint-buffer.d.ts +17 -0
  285. package/dest/node-cjs/barretenberg/testing/bigint-buffer.d.ts.map +1 -0
  286. package/dest/node-cjs/barretenberg/testing/bigint-buffer.js +43 -0
  287. package/dest/node-cjs/barretenberg/testing/fields.d.ts +16 -0
  288. package/dest/node-cjs/barretenberg/testing/fields.d.ts.map +1 -0
  289. package/dest/node-cjs/barretenberg/testing/fields.js +51 -0
  290. package/dest/node-cjs/barretenberg_wasm/barretenberg-threads.wasm.gz +0 -0
  291. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_base/index.d.ts +1 -1
  292. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_base/index.d.ts.map +1 -1
  293. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_base/index.js +7 -8
  294. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts +1 -1
  295. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts.map +1 -1
  296. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.js +3 -5
  297. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.d.ts +1 -1
  298. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.js +1 -7
  299. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.d.ts +1 -1
  300. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.d.ts.map +1 -1
  301. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.js +1 -3
  302. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.d.ts +1 -1
  303. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.js +1 -8
  304. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts +1 -1
  305. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts.map +1 -1
  306. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.js +5 -4
  307. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/index.d.ts +13 -7
  308. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/index.d.ts.map +1 -1
  309. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/index.js +45 -18
  310. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts +1 -1
  311. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts.map +1 -1
  312. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.js +3 -5
  313. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.d.ts +1 -1
  314. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.js +1 -7
  315. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.d.ts +1 -1
  316. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.d.ts.map +1 -1
  317. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.js +1 -3
  318. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.d.ts +1 -1
  319. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.js +1 -7
  320. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts +9 -8
  321. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts.map +1 -1
  322. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/index.js +4 -3
  323. package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/barretenberg-threads.d.ts +1 -1
  324. package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/barretenberg-threads.js +1 -1
  325. package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/barretenberg.d.ts +1 -1
  326. package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/barretenberg.js +1 -1
  327. package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/index.d.ts +1 -1
  328. package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/index.js +2 -2
  329. package/dest/node-cjs/barretenberg_wasm/fetch_code/index.d.ts +1 -1
  330. package/dest/node-cjs/barretenberg_wasm/fetch_code/node/index.d.ts +1 -1
  331. package/dest/node-cjs/barretenberg_wasm/fetch_code/node/index.js +2 -2
  332. package/dest/node-cjs/barretenberg_wasm/helpers/browser/index.d.ts +2 -2
  333. package/dest/node-cjs/barretenberg_wasm/helpers/browser/index.d.ts.map +1 -1
  334. package/dest/node-cjs/barretenberg_wasm/helpers/browser/index.js +9 -2
  335. package/dest/node-cjs/barretenberg_wasm/helpers/index.d.ts +1 -1
  336. package/dest/node-cjs/barretenberg_wasm/helpers/node/index.d.ts +5 -6
  337. package/dest/node-cjs/barretenberg_wasm/helpers/node/index.d.ts.map +1 -1
  338. package/dest/node-cjs/barretenberg_wasm/helpers/node/index.js +15 -7
  339. package/dest/node-cjs/barretenberg_wasm/helpers/node/node_endpoint.d.ts +2 -2
  340. package/dest/node-cjs/barretenberg_wasm/helpers/node/node_endpoint.d.ts.map +1 -1
  341. package/dest/node-cjs/barretenberg_wasm/helpers/node/node_endpoint.js +1 -1
  342. package/dest/node-cjs/barretenberg_wasm/index.d.ts +1 -1
  343. package/dest/node-cjs/barretenberg_wasm/index.d.ts.map +1 -1
  344. package/dest/node-cjs/barretenberg_wasm/index.js +2 -3
  345. package/dest/node-cjs/barretenberg_wasm/index.test.d.ts +1 -1
  346. package/dest/node-cjs/barretenberg_wasm/index.test.js +1 -1
  347. package/dest/node-cjs/bb_backends/browser/index.d.ts +1 -1
  348. package/dest/node-cjs/bb_backends/browser/index.js +1 -1
  349. package/dest/node-cjs/bb_backends/browser/platform.d.ts +4 -0
  350. package/dest/node-cjs/bb_backends/browser/platform.d.ts.map +1 -0
  351. package/dest/node-cjs/bb_backends/browser/platform.js +15 -0
  352. package/dest/node-cjs/bb_backends/index.d.ts +10 -7
  353. package/dest/node-cjs/bb_backends/index.d.ts.map +1 -1
  354. package/dest/node-cjs/bb_backends/index.js +6 -6
  355. package/dest/node-cjs/bb_backends/interface.d.ts +1 -1
  356. package/dest/node-cjs/bb_backends/node/index.d.ts +1 -1
  357. package/dest/node-cjs/bb_backends/node/index.d.ts.map +1 -1
  358. package/dest/node-cjs/bb_backends/node/index.js +15 -9
  359. package/dest/node-cjs/bb_backends/node/native_pipe.d.ts +1 -1
  360. package/dest/node-cjs/bb_backends/node/native_pipe.d.ts.map +1 -1
  361. package/dest/node-cjs/bb_backends/node/native_pipe.js +11 -10
  362. package/dest/node-cjs/bb_backends/node/native_shm.d.ts +3 -3
  363. package/dest/node-cjs/bb_backends/node/native_shm.d.ts.map +1 -1
  364. package/dest/node-cjs/bb_backends/node/native_shm.js +49 -22
  365. package/dest/node-cjs/bb_backends/node/native_shm_async.d.ts +51 -0
  366. package/dest/node-cjs/bb_backends/node/native_shm_async.d.ts.map +1 -0
  367. package/dest/node-cjs/bb_backends/node/native_shm_async.js +241 -0
  368. package/dest/node-cjs/bb_backends/node/native_socket.d.ts +2 -2
  369. package/dest/node-cjs/bb_backends/node/native_socket.d.ts.map +1 -1
  370. package/dest/node-cjs/bb_backends/node/native_socket.js +43 -31
  371. package/dest/node-cjs/bb_backends/node/platform.d.ts +1 -1
  372. package/dest/node-cjs/bb_backends/node/platform.js +2 -2
  373. package/dest/node-cjs/bb_backends/wasm.d.ts +1 -1
  374. package/dest/node-cjs/bb_backends/wasm.d.ts.map +1 -1
  375. package/dest/node-cjs/bb_backends/wasm.js +5 -3
  376. package/dest/node-cjs/bbapi/exception_handling.test.d.ts +2 -0
  377. package/dest/node-cjs/bbapi/exception_handling.test.d.ts.map +1 -0
  378. package/dest/node-cjs/bbapi/exception_handling.test.js +50 -0
  379. package/dest/node-cjs/bbapi_exception.d.ts +1 -1
  380. package/dest/node-cjs/bbapi_exception.d.ts.map +1 -1
  381. package/dest/node-cjs/bbapi_exception.js +1 -1
  382. package/dest/node-cjs/benchmark/index.d.ts +1 -1
  383. package/dest/node-cjs/benchmark/index.js +2 -2
  384. package/dest/node-cjs/benchmark/timer.d.ts +1 -1
  385. package/dest/node-cjs/benchmark/timer.d.ts.map +1 -1
  386. package/dest/node-cjs/benchmark/timer.js +2 -1
  387. package/dest/node-cjs/bin/index.d.ts +3 -0
  388. package/dest/node-cjs/bin/index.d.ts.map +1 -0
  389. package/dest/node-cjs/bin/index.js +13 -0
  390. package/dest/node-cjs/cbind/generate.d.ts +1 -1
  391. package/dest/node-cjs/cbind/generate.js +1 -1
  392. package/dest/node-cjs/cbind/generated/api_types.d.ts +1 -1
  393. package/dest/node-cjs/cbind/generated/api_types.js +1 -1
  394. package/dest/node-cjs/cbind/generated/async.d.ts +1 -1
  395. package/dest/node-cjs/cbind/generated/async.d.ts.map +1 -1
  396. package/dest/node-cjs/cbind/generated/async.js +2 -1
  397. package/dest/node-cjs/cbind/generated/curve_constants.d.ts +1 -1
  398. package/dest/node-cjs/cbind/generated/sync.d.ts +1 -1
  399. package/dest/node-cjs/cbind/generated/sync.d.ts.map +1 -1
  400. package/dest/node-cjs/cbind/generated/sync.js +2 -1
  401. package/dest/node-cjs/cbind/schema_compiler.d.ts +1 -1
  402. package/dest/node-cjs/cbind/schema_compiler.d.ts.map +1 -1
  403. package/dest/node-cjs/cbind/schema_compiler.js +6 -5
  404. package/dest/node-cjs/crs/browser/cached_net_crs.d.ts +1 -1
  405. package/dest/node-cjs/crs/browser/cached_net_crs.d.ts.map +1 -1
  406. package/dest/node-cjs/crs/browser/cached_net_crs.js +6 -1
  407. package/dest/node-cjs/crs/browser/index.d.ts +1 -1
  408. package/dest/node-cjs/crs/browser/index.js +2 -2
  409. package/dest/node-cjs/crs/index.d.ts +1 -1
  410. package/dest/node-cjs/crs/index.js +2 -2
  411. package/dest/node-cjs/crs/net_crs.d.ts +1 -16
  412. package/dest/node-cjs/crs/net_crs.d.ts.map +1 -1
  413. package/dest/node-cjs/crs/net_crs.js +6 -1
  414. package/dest/node-cjs/crs/node/index.d.ts +1 -1
  415. package/dest/node-cjs/crs/node/index.d.ts.map +1 -1
  416. package/dest/node-cjs/crs/node/index.js +11 -6
  417. package/dest/node-cjs/index.d.ts +2 -1
  418. package/dest/node-cjs/index.d.ts.map +1 -1
  419. package/dest/node-cjs/index.js +10 -8
  420. package/dest/node-cjs/proof/index.d.ts +1 -1
  421. package/dest/node-cjs/proof/index.js +1 -1
  422. package/dest/node-cjs/random/browser/index.d.ts +1 -1
  423. package/dest/node-cjs/random/browser/index.d.ts.map +1 -1
  424. package/dest/node-cjs/random/browser/index.js +1 -1
  425. package/dest/node-cjs/random/index.d.ts +1 -1
  426. package/dest/node-cjs/random/node/index.d.ts +1 -1
  427. package/dest/node-cjs/random/node/index.js +1 -1
  428. package/dest/node-cjs/retry/index.d.ts +1 -1
  429. package/dest/node-cjs/retry/index.js +1 -1
  430. package/package.json +8 -6
  431. package/src/barretenberg/backend.ts +19 -97
  432. package/src/barretenberg/blake2s.test.ts +1 -1
  433. package/src/barretenberg/index.ts +16 -27
  434. package/src/barretenberg/pedersen.test.ts +1 -1
  435. package/src/barretenberg/poseidon.bench.test.ts +160 -157
  436. package/src/barretenberg/poseidon.test.ts +1 -1
  437. package/src/{types → barretenberg/testing}/fields.ts +12 -26
  438. package/src/barretenberg_wasm/barretenberg_wasm_base/index.ts +1 -2
  439. package/src/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.ts +0 -2
  440. package/src/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.ts +0 -7
  441. package/src/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.ts +0 -2
  442. package/src/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.ts +0 -9
  443. package/src/barretenberg_wasm/barretenberg_wasm_main/index.ts +37 -4
  444. package/src/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.ts +0 -2
  445. package/src/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.ts +0 -7
  446. package/src/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.ts +0 -2
  447. package/src/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.ts +0 -7
  448. package/src/barretenberg_wasm/barretenberg_wasm_thread/index.ts +3 -2
  449. package/src/barretenberg_wasm/helpers/browser/index.ts +8 -1
  450. package/src/barretenberg_wasm/helpers/node/index.ts +13 -6
  451. package/src/barretenberg_wasm/index.ts +1 -2
  452. package/src/bb_backends/browser/platform.ts +11 -0
  453. package/src/bb_backends/index.ts +9 -6
  454. package/src/bb_backends/node/index.ts +16 -8
  455. package/src/bb_backends/node/native_shm.ts +48 -24
  456. package/src/bb_backends/node/native_shm_async.ts +266 -0
  457. package/src/bb_backends/node/native_socket.ts +31 -17
  458. package/src/bb_backends/wasm.ts +1 -2
  459. package/src/bbapi/exception_handling.test.ts +54 -0
  460. package/src/bin/index.ts +14 -0
  461. package/src/crs/node/index.ts +4 -5
  462. package/src/index.ts +2 -0
  463. package/dest/browser/bb_backends/sync_to_async_adapter.d.ts +0 -15
  464. package/dest/browser/bb_backends/sync_to_async_adapter.d.ts.map +0 -1
  465. package/dest/browser/bb_backends/sync_to_async_adapter.js +0 -20
  466. package/dest/browser/bigint-array/index.d.ts +0 -17
  467. package/dest/browser/bigint-array/index.d.ts.map +0 -1
  468. package/dest/browser/bigint-array/index.js +0 -37
  469. package/dest/browser/log/browser/index.d.ts +0 -6
  470. package/dest/browser/log/browser/index.d.ts.map +0 -1
  471. package/dest/browser/log/browser/index.js +0 -28
  472. package/dest/browser/log/index.d.ts +0 -2
  473. package/dest/browser/log/index.d.ts.map +0 -1
  474. package/dest/browser/log/index.js +0 -2
  475. package/dest/browser/log/types.d.ts +0 -6
  476. package/dest/browser/log/types.d.ts.map +0 -1
  477. package/dest/browser/log/types.js +0 -2
  478. package/dest/browser/serialize/index.d.ts +0 -2
  479. package/dest/browser/serialize/index.d.ts.map +0 -1
  480. package/dest/browser/serialize/index.js +0 -2
  481. package/dest/browser/serialize/serialize.d.ts +0 -18
  482. package/dest/browser/serialize/serialize.d.ts.map +0 -1
  483. package/dest/browser/serialize/serialize.js +0 -72
  484. package/dest/browser/types/fields.d.ts +0 -23
  485. package/dest/browser/types/fields.d.ts.map +0 -1
  486. package/dest/browser/types/fields.js +0 -61
  487. package/dest/browser/types/index.d.ts +0 -3
  488. package/dest/browser/types/index.d.ts.map +0 -1
  489. package/dest/browser/types/index.js +0 -3
  490. package/dest/browser/types/point.d.ts +0 -18
  491. package/dest/browser/types/point.d.ts.map +0 -1
  492. package/dest/browser/types/point.js +0 -28
  493. package/dest/node/bb_backends/sync_to_async_adapter.d.ts +0 -15
  494. package/dest/node/bb_backends/sync_to_async_adapter.d.ts.map +0 -1
  495. package/dest/node/bb_backends/sync_to_async_adapter.js +0 -20
  496. package/dest/node/bigint-array/index.d.ts +0 -17
  497. package/dest/node/bigint-array/index.d.ts.map +0 -1
  498. package/dest/node/bigint-array/index.js +0 -37
  499. package/dest/node/log/browser/index.d.ts +0 -6
  500. package/dest/node/log/browser/index.d.ts.map +0 -1
  501. package/dest/node/log/browser/index.js +0 -28
  502. package/dest/node/log/index.d.ts +0 -2
  503. package/dest/node/log/index.d.ts.map +0 -1
  504. package/dest/node/log/index.js +0 -2
  505. package/dest/node/log/node/index.d.ts +0 -6
  506. package/dest/node/log/node/index.d.ts.map +0 -1
  507. package/dest/node/log/node/index.js +0 -40
  508. package/dest/node/log/types.d.ts +0 -6
  509. package/dest/node/log/types.d.ts.map +0 -1
  510. package/dest/node/log/types.js +0 -2
  511. package/dest/node/serialize/index.d.ts +0 -2
  512. package/dest/node/serialize/index.d.ts.map +0 -1
  513. package/dest/node/serialize/index.js +0 -2
  514. package/dest/node/serialize/serialize.d.ts +0 -18
  515. package/dest/node/serialize/serialize.d.ts.map +0 -1
  516. package/dest/node/serialize/serialize.js +0 -72
  517. package/dest/node/types/fields.d.ts +0 -23
  518. package/dest/node/types/fields.d.ts.map +0 -1
  519. package/dest/node/types/fields.js +0 -61
  520. package/dest/node/types/index.d.ts +0 -3
  521. package/dest/node/types/index.d.ts.map +0 -1
  522. package/dest/node/types/index.js +0 -3
  523. package/dest/node/types/point.d.ts +0 -18
  524. package/dest/node/types/point.d.ts.map +0 -1
  525. package/dest/node/types/point.js +0 -28
  526. package/dest/node-cjs/bb_backends/sync_to_async_adapter.d.ts +0 -15
  527. package/dest/node-cjs/bb_backends/sync_to_async_adapter.d.ts.map +0 -1
  528. package/dest/node-cjs/bb_backends/sync_to_async_adapter.js +0 -24
  529. package/dest/node-cjs/bigint-array/index.d.ts +0 -17
  530. package/dest/node-cjs/bigint-array/index.d.ts.map +0 -1
  531. package/dest/node-cjs/bigint-array/index.js +0 -43
  532. package/dest/node-cjs/log/browser/index.d.ts +0 -6
  533. package/dest/node-cjs/log/browser/index.d.ts.map +0 -1
  534. package/dest/node-cjs/log/browser/index.js +0 -30
  535. package/dest/node-cjs/log/index.d.ts +0 -2
  536. package/dest/node-cjs/log/index.d.ts.map +0 -1
  537. package/dest/node-cjs/log/index.js +0 -8
  538. package/dest/node-cjs/log/node/index.d.ts +0 -6
  539. package/dest/node-cjs/log/node/index.d.ts.map +0 -1
  540. package/dest/node-cjs/log/node/index.js +0 -42
  541. package/dest/node-cjs/log/types.d.ts +0 -6
  542. package/dest/node-cjs/log/types.d.ts.map +0 -1
  543. package/dest/node-cjs/log/types.js +0 -3
  544. package/dest/node-cjs/serialize/index.d.ts +0 -2
  545. package/dest/node-cjs/serialize/index.d.ts.map +0 -1
  546. package/dest/node-cjs/serialize/index.js +0 -5
  547. package/dest/node-cjs/serialize/serialize.d.ts +0 -18
  548. package/dest/node-cjs/serialize/serialize.d.ts.map +0 -1
  549. package/dest/node-cjs/serialize/serialize.js +0 -82
  550. package/dest/node-cjs/types/fields.d.ts +0 -23
  551. package/dest/node-cjs/types/fields.d.ts.map +0 -1
  552. package/dest/node-cjs/types/fields.js +0 -65
  553. package/dest/node-cjs/types/index.d.ts +0 -3
  554. package/dest/node-cjs/types/index.d.ts.map +0 -1
  555. package/dest/node-cjs/types/index.js +0 -6
  556. package/dest/node-cjs/types/point.d.ts +0 -18
  557. package/dest/node-cjs/types/point.d.ts.map +0 -1
  558. package/dest/node-cjs/types/point.js +0 -32
  559. package/src/bb_backends/sync_to_async_adapter.ts +0 -21
  560. package/src/cbind/generated/api_types.ts +0 -4271
  561. package/src/cbind/generated/async.ts +0 -717
  562. package/src/cbind/generated/curve_constants.ts +0 -53
  563. package/src/cbind/generated/sync.ts +0 -663
  564. package/src/log/browser/index.ts +0 -35
  565. package/src/log/index.ts +0 -1
  566. package/src/log/node/index.ts +0 -52
  567. package/src/log/types.ts +0 -6
  568. package/src/serialize/index.ts +0 -1
  569. package/src/serialize/serialize.ts +0 -75
  570. package/src/types/index.ts +0 -2
  571. package/src/types/point.ts +0 -32
  572. /package/src/{bigint-array/index.ts → barretenberg/testing/bigint-buffer.ts} +0 -0
@@ -2,20 +2,20 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const index_js_1 = require("./index.js");
4
4
  const timer_js_1 = require("../benchmark/timer.js");
5
- const index_js_2 = require("../types/index.js");
5
+ const fields_js_1 = require("./testing/fields.js");
6
6
  describe('pedersen sync', () => {
7
7
  let api;
8
8
  beforeAll(async () => {
9
9
  api = await index_js_1.BarretenbergSync.initSingleton();
10
10
  });
11
11
  it('pedersenHash', () => {
12
- const response = api.pedersenHash({ inputs: [new index_js_2.Fr(4n).toBuffer(), new index_js_2.Fr(8n).toBuffer()], hashIndex: 7 });
13
- const result = index_js_2.Fr.fromBuffer(response.hash);
12
+ const response = api.pedersenHash({ inputs: [new fields_js_1.Fr(4n).toBuffer(), new fields_js_1.Fr(8n).toBuffer()], hashIndex: 7 });
13
+ const result = fields_js_1.Fr.fromBuffer(response.hash);
14
14
  expect(result).toMatchSnapshot();
15
15
  });
16
16
  it('pedersenHash perf test', () => {
17
17
  const loops = 1000;
18
- const fields = Array.from({ length: loops * 2 }).map(() => index_js_2.Fr.random());
18
+ const fields = Array.from({ length: loops * 2 }).map(() => fields_js_1.Fr.random());
19
19
  const t = new timer_js_1.Timer();
20
20
  for (let i = 0; i < loops; ++i) {
21
21
  api.pedersenHash({ inputs: [fields[i * 2].toBuffer(), fields[i * 2 + 1].toBuffer()], hashIndex: 0 });
@@ -40,20 +40,20 @@ describe('pedersen sync', () => {
40
40
  input.writeUint32BE(321, 0);
41
41
  input.writeUint32BE(456, 119);
42
42
  const response = api.pedersenHashBuffer({ input, hashIndex: 0 });
43
- const r = index_js_2.Fr.fromBuffer(response.hash);
43
+ const r = fields_js_1.Fr.fromBuffer(response.hash);
44
44
  expect(r).toMatchSnapshot();
45
45
  });
46
46
  it('pedersenCommit', () => {
47
47
  const response = api.pedersenCommit({
48
- inputs: [new index_js_2.Fr(4n).toBuffer(), new index_js_2.Fr(8n).toBuffer(), new index_js_2.Fr(12n).toBuffer()],
48
+ inputs: [new fields_js_1.Fr(4n).toBuffer(), new fields_js_1.Fr(8n).toBuffer(), new fields_js_1.Fr(12n).toBuffer()],
49
49
  hashIndex: 0,
50
50
  });
51
- const result = { x: index_js_2.Fr.fromBuffer(response.point.x), y: index_js_2.Fr.fromBuffer(response.point.y) };
51
+ const result = { x: fields_js_1.Fr.fromBuffer(response.point.x), y: fields_js_1.Fr.fromBuffer(response.point.y) };
52
52
  expect(result).toMatchSnapshot();
53
53
  });
54
54
  it.skip('pedersenCommit perf test', () => {
55
55
  const loops = 1000;
56
- const fields = Array.from({ length: loops * 2 }).map(() => index_js_2.Fr.random());
56
+ const fields = Array.from({ length: loops * 2 }).map(() => fields_js_1.Fr.random());
57
57
  const t = new timer_js_1.Timer();
58
58
  for (let i = 0; i < loops; ++i) {
59
59
  api.pedersenCommit({ inputs: [fields[i * 2].toBuffer(), fields[i * 2 + 1].toBuffer()], hashIndex: 0 });
@@ -61,4 +61,4 @@ describe('pedersen sync', () => {
61
61
  console.log(t.us() / loops);
62
62
  });
63
63
  });
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVkZXJzZW4udGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iYXJyZXRlbmJlcmcvcGVkZXJzZW4udGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHlDQUE4QztBQUM5QyxvREFBOEM7QUFDOUMsZ0RBQXVDO0FBRXZDLFFBQVEsQ0FBQyxlQUFlLEVBQUUsR0FBRyxFQUFFO0lBQzdCLElBQUksR0FBcUIsQ0FBQztJQUUxQixTQUFTLENBQUMsS0FBSyxJQUFJLEVBQUU7UUFDbkIsR0FBRyxHQUFHLE1BQU0sMkJBQWdCLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDL0MsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsY0FBYyxFQUFFLEdBQUcsRUFBRTtRQUN0QixNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUMsWUFBWSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsSUFBSSxhQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsSUFBSSxhQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM1RyxNQUFNLE1BQU0sR0FBRyxhQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1QyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDbkMsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsd0JBQXdCLEVBQUUsR0FBRyxFQUFFO1FBQ2hDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQztRQUNuQixNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLEtBQUssR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxhQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUN4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
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVkZXJzZW4udGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iYXJyZXRlbmJlcmcvcGVkZXJzZW4udGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHlDQUE4QztBQUM5QyxvREFBOEM7QUFDOUMsbURBQXlDO0FBRXpDLFFBQVEsQ0FBQyxlQUFlLEVBQUUsR0FBRyxFQUFFLENBQUM7SUFDOUIsSUFBSSxHQUFxQixDQUFDO0lBRTFCLFNBQVMsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO1FBQ3BCLEdBQUcsR0FBRyxNQUFNLDJCQUFnQixDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQUEsQ0FDOUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLGNBQWMsRUFBRSxHQUFHLEVBQUUsQ0FBQztRQUN2QixNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUMsWUFBWSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsSUFBSSxjQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsSUFBSSxjQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM1RyxNQUFNLE1BQU0sR0FBRyxjQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1QyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsZUFBZSxFQUFFLENBQUM7SUFBQSxDQUNsQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsd0JBQXdCLEVBQUUsR0FBRyxFQUFFLENBQUM7UUFDakMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ25CLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsS0FBSyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLGNBQUUsQ0FBQyxNQUFN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
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=poseidon.bench.test.d.ts.map
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9zZWlkb24uYmVuY2gudGVzdC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2JhcnJldGVuYmVyZy9wb3NlaWRvbi5iZW5jaC50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==
@@ -1,11 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const index_js_1 = require("../index.js");
4
- const fields_js_1 = require("../types/fields.js");
5
- const index_js_2 = require("../serialize/index.js");
6
- const index_js_3 = require("../barretenberg_wasm/barretenberg_wasm_main/index.js");
7
- const index_js_4 = require("../barretenberg_wasm/index.js");
8
- const index_js_5 = require("./index.js");
4
+ const index_js_2 = require("../barretenberg_wasm/barretenberg_wasm_main/index.js");
5
+ const index_js_3 = require("../barretenberg_wasm/index.js");
6
+ const index_js_4 = require("./index.js");
7
+ const fields_js_1 = require("./testing/fields.js");
9
8
  /**
10
9
  * Async API benchmark test: WASM vs Native backends with proper non-blocking I/O
11
10
  *
@@ -24,196 +23,198 @@ describe('poseidon2Hash benchmark (Async API): WASM vs Native', () => {
24
23
  let wasm;
25
24
  beforeAll(async () => {
26
25
  // Setup direct WASM access for baseline benchmark (always required)
27
- wasm = new index_js_3.BarretenbergWasmMain();
28
- const { module } = await (0, index_js_4.fetchModuleAndThreads)(1);
26
+ wasm = new index_js_2.BarretenbergWasmMain();
27
+ const { module } = await (0, index_js_3.fetchModuleAndThreads)(1);
29
28
  await wasm.init(module, 1);
30
29
  // Setup WASM API
31
30
  try {
32
- wasmApi = await index_js_1.Barretenberg.new({ backend: index_js_5.BackendType.Wasm, threads: 1 });
31
+ wasmApi = await index_js_1.Barretenberg.new({ backend: index_js_4.BackendType.Wasm, threads: 1 });
33
32
  }
34
33
  catch (error) {
35
34
  console.warn('Failed to initialize WASM backend:', error instanceof Error ? error.message : String(error));
36
35
  }
37
36
  // Setup native socket API
38
37
  try {
39
- nativeSocketApi = await index_js_1.Barretenberg.new({ backend: index_js_5.BackendType.NativeUnixSocket, threads: 1 });
38
+ nativeSocketApi = await index_js_1.Barretenberg.new({ backend: index_js_4.BackendType.NativeUnixSocket, threads: 1 });
40
39
  }
41
40
  catch (error) {
42
41
  console.warn('Failed to initialize Native Socket backend:', error instanceof Error ? error.message : String(error));
43
42
  }
44
43
  // Setup native shared memory API (async)
45
44
  try {
46
- nativeShmApi = await index_js_1.Barretenberg.new({ backend: index_js_5.BackendType.NativeSharedMemory, threads: 1 });
45
+ nativeShmApi = await index_js_1.Barretenberg.new({ backend: index_js_4.BackendType.NativeSharedMemory, threads: 1 });
47
46
  }
48
47
  catch (error) {
49
48
  console.warn('Failed to initialize Native Shared Memory (async) backend:', error instanceof Error ? error.message : String(error));
50
49
  }
51
50
  // Setup native shared memory API (sync)
52
51
  try {
53
- nativeShmSyncApi = await index_js_1.BarretenbergSync.new({ backend: index_js_5.BackendType.NativeSharedMemory, threads: 1 });
52
+ nativeShmSyncApi = await index_js_1.BarretenbergSync.new({ backend: index_js_4.BackendType.NativeSharedMemory, threads: 1 });
54
53
  }
55
54
  catch (error) {
56
55
  console.warn('Failed to initialize Native Shared Memory (sync) backend:', error instanceof Error ? error.message : String(error));
57
56
  }
58
57
  }, 20000);
59
- afterAll(async () => {
60
- await wasm.destroy();
61
- if (wasmApi) {
62
- await wasmApi.destroy();
63
- }
64
- if (nativeSocketApi) {
65
- await nativeSocketApi.destroy();
66
- }
67
- if (nativeShmApi) {
68
- await nativeShmApi.destroy();
69
- }
70
- if (nativeShmSyncApi) {
71
- nativeShmSyncApi.destroy();
72
- }
73
- });
74
- async function directPoseidon2Hash(inputsBuffer) {
75
- const inArgs = [inputsBuffer].map(index_js_2.serializeBufferable);
76
- const outTypes = [fields_js_1.Fr];
77
- const result = wasm.callWasmExport('poseidon2_hash', inArgs, outTypes.map(t => t.SIZE_IN_BYTES));
78
- const out = result.map((r, i) => outTypes[i].fromBuffer(r));
79
- return Promise.resolve(out[0]);
80
- }
81
- it.each(SIZES)('benchmark with %p field elements', async (size) => {
58
+ it.each(SIZES)('benchmark with %p field elements', async size => {
82
59
  // Generate random inputs
83
60
  const inputs = Array(size)
84
61
  .fill(0)
85
- .map(() => fields_js_1.Fr.random());
86
- // Benchmark 1: Direct WASM (baseline - always available)
87
- const directStart = performance.now();
88
- for (let i = 0; i < ITERATIONS; i++) {
89
- await directPoseidon2Hash(inputs);
90
- }
91
- const directTime = performance.now() - directStart;
92
- // Benchmark 2: WASM (async)
62
+ .map(() => fields_js_1.Fr.random().toBuffer());
63
+ // Benchmark 1: WASM (async)
93
64
  let wasmTime = 0;
94
65
  if (wasmApi) {
95
66
  const wasmStart = performance.now();
96
67
  for (let i = 0; i < ITERATIONS; i++) {
97
- await wasmApi.poseidon2Hash({ inputs: inputs.map(fr => fr.toBuffer()) });
68
+ await wasmApi.poseidon2Hash({ inputs });
98
69
  }
99
70
  wasmTime = performance.now() - wasmStart;
100
71
  }
101
- // Benchmark 3: Native Socket (async with non-blocking I/O)
72
+ // Benchmark 2: Native Socket (async with non-blocking I/O)
102
73
  let nativeSocketTime = 0;
103
74
  if (nativeSocketApi) {
104
75
  const nativeSocketStart = performance.now();
105
76
  for (let i = 0; i < ITERATIONS; i++) {
106
- await nativeSocketApi.poseidon2Hash({ inputs: inputs.map(fr => fr.toBuffer()) });
77
+ await nativeSocketApi.poseidon2Hash({ inputs });
107
78
  }
108
79
  nativeSocketTime = performance.now() - nativeSocketStart;
109
80
  }
81
+ // Benchmark 3: Native Socket (async, request pipelined)
82
+ let nativeSocketPipelinedTime = 0;
83
+ if (nativeSocketApi) {
84
+ const nativeSocketPipelinedStart = performance.now();
85
+ // Use promise.all to pipeline requests
86
+ const promises = [];
87
+ for (let i = 0; i < ITERATIONS; i++) {
88
+ promises.push(nativeSocketApi.poseidon2Hash({ inputs }));
89
+ }
90
+ await Promise.all(promises);
91
+ nativeSocketPipelinedTime = performance.now() - nativeSocketPipelinedStart;
92
+ }
110
93
  // Benchmark 4: Native Shared Memory (async)
111
94
  let nativeShmTime = 0;
112
95
  if (nativeShmApi) {
113
96
  const nativeShmStart = performance.now();
114
97
  for (let i = 0; i < ITERATIONS; i++) {
115
- await nativeShmApi.poseidon2Hash({ inputs: inputs.map(fr => fr.toBuffer()) });
98
+ await nativeShmApi.poseidon2Hash({ inputs });
116
99
  }
117
100
  nativeShmTime = performance.now() - nativeShmStart;
118
101
  }
119
- // Benchmark 5: Native Shared Memory (sync)
102
+ // Benchmark 5: Native Shared Memory (async, request pipelined)
103
+ let nativeShmPipelinedTime = 0;
104
+ if (nativeShmApi) {
105
+ const nativeShmPipelinedStart = performance.now();
106
+ // Use promise.all to pipeline requests
107
+ const promises = [];
108
+ for (let i = 0; i < ITERATIONS; i++) {
109
+ promises.push(nativeShmApi.poseidon2Hash({ inputs }));
110
+ }
111
+ await Promise.all(promises);
112
+ nativeShmPipelinedTime = performance.now() - nativeShmPipelinedStart;
113
+ }
114
+ // Benchmark 6: Native Shared Memory (sync)
120
115
  let nativeShmSyncTime = 0;
121
116
  if (nativeShmSyncApi) {
122
117
  const nativeShmSyncStart = performance.now();
123
118
  for (let i = 0; i < ITERATIONS; i++) {
124
- nativeShmSyncApi.poseidon2Hash({ inputs: inputs.map(fr => fr.toBuffer()) });
119
+ nativeShmSyncApi.poseidon2Hash({ inputs });
125
120
  }
126
121
  nativeShmSyncTime = performance.now() - nativeShmSyncStart;
127
122
  }
128
123
  // Calculate metrics (all relative to WASM baseline)
129
- const directOverhead = ((directTime - wasmTime) / wasmTime) * 100;
130
124
  const nativeSocketOverhead = ((nativeSocketTime - wasmTime) / wasmTime) * 100;
125
+ const nativeSocketPipelinedOverhead = ((nativeSocketPipelinedTime - wasmTime) / wasmTime) * 100;
131
126
  const nativeShmOverhead = ((nativeShmTime - wasmTime) / wasmTime) * 100;
127
+ const nativeShmPipelinedOverhead = ((nativeShmPipelinedTime - wasmTime) / wasmTime) * 100;
132
128
  const nativeShmSyncOverhead = ((nativeShmSyncTime - wasmTime) / wasmTime) * 100;
133
- const avgDirectTimeUs = (directTime / ITERATIONS) * 1000; // microseconds
134
129
  const avgWasmTimeUs = (wasmTime / ITERATIONS) * 1000;
135
130
  const avgNativeSocketTimeUs = (nativeSocketTime / ITERATIONS) * 1000;
131
+ const avgNativeSocketPipelinedTimeUs = (nativeSocketPipelinedTime / ITERATIONS) * 1000;
136
132
  const avgNativeShmTimeUs = (nativeShmTime / ITERATIONS) * 1000;
133
+ const avgNativeShmPipelinedTimeUs = (nativeShmPipelinedTime / ITERATIONS) * 1000;
137
134
  const avgNativeShmSyncTimeUs = (nativeShmSyncTime / ITERATIONS) * 1000;
138
- process.stdout.write(`┌─ Size ${size.toString().padStart(3)} field elements ──────────────────────────────────┐\n`);
135
+ process.stdout.write(`┌─ Size ${size.toString().padStart(3)} field elements ───────────────────────────────────────┐\n`);
139
136
  const formatOverhead = (overhead) => {
140
137
  const sign = overhead >= 0 ? '+' : '-';
141
138
  const value = Math.abs(overhead).toFixed(1).padStart(6);
142
139
  return `${sign}${value}%`;
143
140
  };
144
141
  if (wasmApi) {
145
- process.stdout.write(`│ WASM: ${wasmTime.toFixed(2).padStart(8)}ms (${avgWasmTimeUs.toFixed(2).padStart(7)}µs/call) [baseline] │\n`);
142
+ process.stdout.write(`│ WASM: ${wasmTime.toFixed(2).padStart(8)}ms (${avgWasmTimeUs.toFixed(2).padStart(7)}µs/call) [baseline] │\n`);
146
143
  }
147
144
  else {
148
- process.stdout.write(`│ WASM: unavailable │\n`);
145
+ process.stdout.write(`│ WASM: unavailable │\n`);
149
146
  }
150
- process.stdout.write(`│ Direct WASM: ${directTime.toFixed(2).padStart(8)}ms (${avgDirectTimeUs.toFixed(2).padStart(7)}µs/call) ${formatOverhead(directOverhead)} │\n`);
151
147
  if (nativeSocketApi) {
152
- process.stdout.write(`│ Native Socket: ${nativeSocketTime.toFixed(2).padStart(8)}ms (${avgNativeSocketTimeUs.toFixed(2).padStart(7)}µs/call) ${formatOverhead(nativeSocketOverhead)} │\n`);
148
+ process.stdout.write(`│ Native Socket: ${nativeSocketTime.toFixed(2).padStart(8)}ms (${avgNativeSocketTimeUs.toFixed(2).padStart(7)}µs/call) ${formatOverhead(nativeSocketOverhead)} │\n`);
153
149
  }
154
150
  else {
155
- process.stdout.write(`│ Native Socket: unavailable │\n`);
151
+ process.stdout.write(`│ Native Socket: unavailable │\n`);
152
+ }
153
+ if (nativeSocketApi) {
154
+ process.stdout.write(`│ Native Socket Pipelined: ${nativeSocketPipelinedTime
155
+ .toFixed(2)
156
+ .padStart(8)}ms (${avgNativeSocketPipelinedTimeUs.toFixed(2).padStart(7)}µs/call) ${formatOverhead(nativeSocketPipelinedOverhead)} │\n`);
157
+ }
158
+ else {
159
+ process.stdout.write(`│ Native Socket Pipelined: unavailable │\n`);
156
160
  }
157
161
  if (nativeShmApi) {
158
- process.stdout.write(`│ Native Shared: ${nativeShmTime.toFixed(2).padStart(8)}ms (${avgNativeShmTimeUs.toFixed(2).padStart(7)}µs/call) ${formatOverhead(nativeShmOverhead)} │\n`);
162
+ process.stdout.write(`│ Native Shared: ${nativeShmTime.toFixed(2).padStart(8)}ms (${avgNativeShmTimeUs.toFixed(2).padStart(7)}µs/call) ${formatOverhead(nativeShmOverhead)} │\n`);
159
163
  }
160
164
  else {
161
- process.stdout.write(`│ Native Shared: unavailable │\n`);
165
+ process.stdout.write(`│ Native Shared: unavailable │\n`);
162
166
  }
163
- if (nativeShmSyncApi) {
164
- process.stdout.write(`│ Native Shared Sync: ${nativeShmSyncTime.toFixed(2).padStart(8)}ms (${avgNativeShmSyncTimeUs.toFixed(2).padStart(7)}µs/call) ${formatOverhead(nativeShmSyncOverhead)} │\n`);
167
+ if (nativeShmApi) {
168
+ process.stdout.write(`│ Native Shared Pipelined: ${nativeShmPipelinedTime.toFixed(2).padStart(8)}ms (${avgNativeShmPipelinedTimeUs.toFixed(2).padStart(7)}µs/call) ${formatOverhead(nativeShmPipelinedOverhead)} │\n`);
165
169
  }
166
170
  else {
167
- process.stdout.write(`│ Native Shared Sync: unavailable │\n`);
171
+ process.stdout.write(`│ Native Shared Pipelined: unavailable │\n`);
168
172
  }
169
- process.stdout.write(`└────────────────────────────────────────────────────────────┘\n`);
170
- // Sanity check: verify all backends produce same result as direct WASM
171
- const directResult = await directPoseidon2Hash(inputs);
172
- if (wasmApi) {
173
- const wasmResult = await wasmApi.poseidon2Hash({ inputs: inputs.map(fr => fr.toBuffer()) });
174
- expect(Buffer.from(wasmResult.hash)).toEqual(directResult.toBuffer());
173
+ if (nativeShmSyncApi) {
174
+ process.stdout.write(`│ Native Shared Sync: ${nativeShmSyncTime.toFixed(2).padStart(8)}ms (${avgNativeShmSyncTimeUs.toFixed(2).padStart(7)}µs/call) ${formatOverhead(nativeShmSyncOverhead)} │\n`);
175
175
  }
176
+ else {
177
+ process.stdout.write(`│ Native Shared Sync: unavailable │\n`);
178
+ }
179
+ process.stdout.write(`└─────────────────────────────────────────────────────────────────┘\n`);
180
+ const wasmResult = await wasmApi.poseidon2Hash({ inputs });
176
181
  if (nativeSocketApi) {
177
- const nativeSocketResult = await nativeSocketApi.poseidon2Hash({ inputs: inputs.map(fr => fr.toBuffer()) });
178
- expect(Buffer.from(nativeSocketResult.hash)).toEqual(directResult.toBuffer());
182
+ const nativeSocketResult = await nativeSocketApi.poseidon2Hash({ inputs });
183
+ expect(Buffer.from(nativeSocketResult.hash)).toEqual(wasmResult.hash);
179
184
  }
180
185
  if (nativeShmApi) {
181
- const nativeShmResult = await nativeShmApi.poseidon2Hash({ inputs: inputs.map(fr => fr.toBuffer()) });
182
- expect(Buffer.from(nativeShmResult.hash)).toEqual(directResult.toBuffer());
186
+ const nativeShmResult = await nativeShmApi.poseidon2Hash({ inputs });
187
+ expect(Buffer.from(nativeShmResult.hash)).toEqual(wasmResult.hash);
183
188
  }
184
189
  if (nativeShmSyncApi) {
185
- const nativeShmSyncResult = nativeShmSyncApi.poseidon2Hash({ inputs: inputs.map(fr => fr.toBuffer()) });
186
- expect(Buffer.from(nativeShmSyncResult.hash)).toEqual(directResult.toBuffer());
190
+ const nativeShmSyncResult = nativeShmSyncApi.poseidon2Hash({ inputs });
191
+ expect(Buffer.from(nativeShmSyncResult.hash)).toEqual(wasmResult.hash);
187
192
  }
188
193
  // Test always passes, this is just for measuring performance
189
194
  expect(true).toBe(true);
190
- });
195
+ }, 10000);
191
196
  const TEST_VECTORS = [1, 2, 3, 5, 10, 50, 100];
192
197
  const NUM_RANDOM_TESTS = 10;
193
- it.each(TEST_VECTORS)('produces identical results for %p field elements', async (size) => {
198
+ it.each(TEST_VECTORS)('produces identical results for %p field elements', async size => {
194
199
  // Test with multiple random input vectors
195
200
  for (let test = 0; test < NUM_RANDOM_TESTS; test++) {
196
201
  const inputs = Array(size)
197
202
  .fill(0)
198
- .map(() => fields_js_1.Fr.random());
199
- const directResult = await directPoseidon2Hash(inputs);
200
- if (wasmApi) {
201
- const wasmResult = await wasmApi.poseidon2Hash({ inputs: inputs.map(fr => fr.toBuffer()) });
202
- expect(Buffer.from(wasmResult.hash)).toEqual(directResult.toBuffer());
203
- }
203
+ .map(() => fields_js_1.Fr.random().toBuffer());
204
+ const wasmResult = await wasmApi.poseidon2Hash({ inputs });
204
205
  if (nativeSocketApi) {
205
- const nativeSocketResult = await nativeSocketApi.poseidon2Hash({ inputs: inputs.map(fr => fr.toBuffer()) });
206
- expect(Buffer.from(nativeSocketResult.hash)).toEqual(directResult.toBuffer());
206
+ const nativeSocketResult = await nativeSocketApi.poseidon2Hash({ inputs });
207
+ expect(Buffer.from(nativeSocketResult.hash)).toEqual(wasmResult.hash);
207
208
  }
208
209
  if (nativeShmApi) {
209
- const nativeShmResult = await nativeShmApi.poseidon2Hash({ inputs: inputs.map(fr => fr.toBuffer()) });
210
- expect(Buffer.from(nativeShmResult.hash)).toEqual(directResult.toBuffer());
210
+ const nativeShmResult = await nativeShmApi.poseidon2Hash({ inputs });
211
+ expect(Buffer.from(nativeShmResult.hash)).toEqual(wasmResult.hash);
211
212
  }
212
213
  if (nativeShmSyncApi) {
213
- const nativeShmSyncResult = nativeShmSyncApi.poseidon2Hash({ inputs: inputs.map(fr => fr.toBuffer()) });
214
- expect(Buffer.from(nativeShmSyncResult.hash)).toEqual(directResult.toBuffer());
214
+ const nativeShmSyncResult = nativeShmSyncApi.poseidon2Hash({ inputs });
215
+ expect(Buffer.from(nativeShmSyncResult.hash)).toEqual(wasmResult.hash);
215
216
  }
216
217
  }
217
218
  });
218
219
  });
219
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9zZWlkb24uYmVuY2gudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iYXJyZXRlbmJlcmcvcG9zZWlkb24uYmVuY2gudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDBDQUE2RDtBQUM3RCxrREFBd0M7QUFDeEMsb0RBQTREO0FBQzVELG1GQUE0RjtBQUM1Riw0REFBc0U7QUFDdEUseUNBQXlDO0FBRXpDOzs7Ozs7O0dBT0c7QUFDSCxRQUFRLENBQUMscURBQXFELEVBQUUsR0FBRyxFQUFFO0lBQ25FLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQztJQUN6QixNQUFNLEtBQUssR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFFeEIsSUFBSSxPQUFPLEdBQXdCLElBQUksQ0FBQztJQUN4QyxJQUFJLGVBQWUsR0FBd0IsSUFBSSxDQUFDO0lBQ2hELElBQUksWUFBWSxHQUF3QixJQUFJLENBQUM7SUFDN0MsSUFBSSxnQkFBZ0IsR0FBNEIsSUFBSSxDQUFDO0lBQ3JELElBQUksSUFBMEIsQ0FBQztJQUUvQixTQUFTLENBQUMsS0FBSyxJQUFJLEVBQUU7UUFDbkIsb0VBQW9FO1FBQ3BFLElBQUksR0FBRyxJQUFJLCtCQUFvQixFQUFFLENBQUM7UUFDbEMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLE1BQU0sSUFBQSxnQ0FBcUIsRUFBQyxDQUFDLENBQUMsQ0FBQztRQUNsRCxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRTNCLGlCQUFpQjtRQUNqQixJQUFJLENBQUM7WUFDSCxPQUFPLEdBQUcsTUFBTSx1QkFBWSxDQUFDLEdBQUcsQ0FBQyxFQUFFLE9BQU8sRUFBRSxzQkFBVyxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM5RSxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FB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
220
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9zZWlkb24uYmVuY2gudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iYXJyZXRlbmJlcmcvcG9zZWlkb24uYmVuY2gudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDBDQUE2RDtBQUM3RCxtRkFBNEY7QUFDNUYsNERBQXNFO0FBQ3RFLHlDQUF5QztBQUN6QyxtREFBeUM7QUFFekM7Ozs7Ozs7R0FPRztBQUNILFFBQVEsQ0FBQyxxREFBcUQsRUFBRSxHQUFHLEVBQUUsQ0FBQztJQUNwRSxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFDekIsTUFBTSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRXhCLElBQUksT0FBTyxHQUF3QixJQUFJLENBQUM7SUFDeEMsSUFBSSxlQUFlLEdBQXdCLElBQUksQ0FBQztJQUNoRCxJQUFJLFlBQVksR0FBd0IsSUFBSSxDQUFDO0lBQzdDLElBQUksZ0JBQWdCLEdBQTRCLElBQUksQ0FBQztJQUNyRCxJQUFJLElBQTBCLENBQUM7SUFFL0IsU0FBUyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDcEIsb0VBQW9FO1FBQ3BFLElBQUksR0FBRyxJQUFJLCtCQUFvQixFQUFFLENBQUM7UUFDbEMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLE1BQU0sSUFBQSxnQ0FBcUIsRUFBQyxDQUFDLENBQUMsQ0FBQztRQUNsRCxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRTNCLGlCQUFpQjtRQUNqQixJQUFJLENBQUM7WUFDSCxPQUFPLEdBQUcsTUFBTSx1QkFBWSxDQUFDLEdBQUcsQ0FBQyxFQUFFLE9BQU8sRUFBRSxzQkFBVyxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM5RSxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZ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
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=poseidon.test.d.ts.map
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9zZWlkb24udGVzdC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2JhcnJldGVuYmVyZy9wb3NlaWRvbi50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==
@@ -2,19 +2,19 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const index_js_1 = require("./index.js");
4
4
  const timer_js_1 = require("../benchmark/timer.js");
5
- const index_js_2 = require("../types/index.js");
5
+ const fields_js_1 = require("./testing/fields.js");
6
6
  describe('poseidon sync', () => {
7
7
  let api;
8
8
  beforeAll(async () => {
9
9
  api = await index_js_1.BarretenbergSync.initSingleton();
10
10
  });
11
11
  it('poseidonHash', () => {
12
- const result = api.poseidon2Hash({ inputs: [new index_js_2.Fr(4n).toBuffer(), new index_js_2.Fr(8n).toBuffer()] });
12
+ const result = api.poseidon2Hash({ inputs: [new fields_js_1.Fr(4n).toBuffer(), new fields_js_1.Fr(8n).toBuffer()] });
13
13
  expect(result).toMatchSnapshot();
14
14
  });
15
15
  it('poseidonHash perf test', () => {
16
16
  const loops = 1000;
17
- const fields = Array.from({ length: loops * 2 }).map(() => index_js_2.Fr.random().toBuffer());
17
+ const fields = Array.from({ length: loops * 2 }).map(() => fields_js_1.Fr.random().toBuffer());
18
18
  const t = new timer_js_1.Timer();
19
19
  for (let i = 0; i < loops; ++i) {
20
20
  api.poseidon2Hash({ inputs: [fields[i * 2], fields[i * 2 + 1]] });
@@ -34,4 +34,4 @@ describe('poseidon sync', () => {
34
34
  // console.log(`Executed ${numHashesPerLoop * loops} hashes at an average ${us}us / hash`);
35
35
  // });
36
36
  });
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9zZWlkb24udGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iYXJyZXRlbmJlcmcvcG9zZWlkb24udGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHlDQUE4QztBQUM5QyxvREFBOEM7QUFDOUMsZ0RBQXVDO0FBRXZDLFFBQVEsQ0FBQyxlQUFlLEVBQUUsR0FBRyxFQUFFO0lBQzdCLElBQUksR0FBcUIsQ0FBQztJQUUxQixTQUFTLENBQUMsS0FBSyxJQUFJLEVBQUU7UUFDbkIsR0FBRyxHQUFHLE1BQU0sMkJBQWdCLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDL0MsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsY0FBYyxFQUFFLEdBQUcsRUFBRTtRQUN0QixNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsYUFBYSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsSUFBSSxhQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsSUFBSSxhQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDN0YsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ25DLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLHdCQUF3QixFQUFFLEdBQUcsRUFBRTtRQUNoQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDbkIsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxLQUFLLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsYUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDbkYsTUFBTSxDQUFDLEdBQUcsSUFBSSxnQkFBSyxFQUFFLENBQUM7UUFDdEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQy9CLEdBQUcsQ0FBQyxhQUFhLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3BFLENBQUM7UUFDRCxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUcsS0FBSyxDQUFDO1FBQzFCLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxLQUFLLHlCQUF5QixFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ3ZFLENBQUMsQ0FBQyxDQUFDO0lBRUgseUNBQXlDO0lBQ3pDLHNCQUFzQjtJQUN0QixtQ0FBbUM7SUFDbkMsd0ZBQXdGO0lBQ3hGLDJCQUEyQjtJQUMzQixzQ0FBc0M7SUFDdEMsbUNBQW1DO0lBQ25DLE1BQU07SUFDTixvREFBb0Q7SUFDcEQsNkZBQTZGO0lBQzdGLE1BQU07QUFDUixDQUFDLENBQUMsQ0FBQyJ9
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9zZWlkb24udGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iYXJyZXRlbmJlcmcvcG9zZWlkb24udGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHlDQUE4QztBQUM5QyxvREFBOEM7QUFDOUMsbURBQXlDO0FBRXpDLFFBQVEsQ0FBQyxlQUFlLEVBQUUsR0FBRyxFQUFFLENBQUM7SUFDOUIsSUFBSSxHQUFxQixDQUFDO0lBRTFCLFNBQVMsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO1FBQ3BCLEdBQUcsR0FBRyxNQUFNLDJCQUFnQixDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQUEsQ0FDOUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLGNBQWMsRUFBRSxHQUFHLEVBQUUsQ0FBQztRQUN2QixNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsYUFBYSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsSUFBSSxjQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsSUFBSSxjQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDN0YsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQUEsQ0FDbEMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLHdCQUF3QixFQUFFLEdBQUcsRUFBRSxDQUFDO1FBQ2pDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQztRQUNuQixNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLEtBQUssR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxjQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUNuRixNQUFNLENBQUMsR0FBRyxJQUFJLGdCQUFLLEVBQUUsQ0FBQztRQUN0QixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDL0IsR0FBRyxDQUFDLGFBQWEsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDcEUsQ0FBQztRQUNELE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxLQUFLLENBQUM7UUFDMUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLEtBQUsseUJBQXlCLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFBQSxDQUN0RSxDQUFDLENBQUM7SUFFSCx5Q0FBeUM7SUFDekMsc0JBQXNCO0lBQ3RCLG1DQUFtQztJQUNuQyx3RkFBd0Y7SUFDeEYsMkJBQTJCO0lBQzNCLHNDQUFzQztJQUN0QyxtQ0FBbUM7SUFDbkMsTUFBTTtJQUNOLG9EQUFvRDtJQUNwRCw2RkFBNkY7SUFDN0YsTUFBTTtBQVpILENBYUosQ0FBQyxDQUFDIn0=
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Convert a 32-byte BE Buffer to a BigInt.
3
+ */
4
+ export declare function buffer32BytesToBigIntBE(buf: Buffer): bigint;
5
+ /**
6
+ * Convert a BE Uint8Array to a BigInt.
7
+ */
8
+ export declare function uint8ArrayToBigIntBE(bytes: Uint8Array): bigint;
9
+ /**
10
+ * Convert a BigInt to a 32-byte BE Buffer.
11
+ */
12
+ export declare function bigIntToBufferBE(value: bigint, byteLength?: number): Buffer;
13
+ /**
14
+ * Convert a BigInt to a 32-byte BE Uint8Array.
15
+ */
16
+ export declare function bigIntToUint8ArrayBE(value: bigint, byteLength?: number): Uint8Array;
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmlnaW50LWJ1ZmZlci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2JhcnJldGVuYmVyZy90ZXN0aW5nL2JpZ2ludC1idWZmZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCx3QkFBZ0IsdUJBQXVCLENBQUMsR0FBRyxFQUFFLE1BQU0sR0FBRyxNQUFNLENBTzNEO0FBRUQ7O0dBRUc7QUFDSCx3QkFBZ0Isb0JBQW9CLENBQUMsS0FBSyxFQUFFLFVBQVUsR0FBRyxNQUFNLENBRzlEO0FBRUQ7O0dBRUc7QUFDSCx3QkFBZ0IsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxVQUFVLFNBQUssR0FBRyxNQUFNLENBWXZFO0FBRUQ7O0dBRUc7QUFDSCx3QkFBZ0Isb0JBQW9CLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxVQUFVLFNBQUssR0FBRyxVQUFVLENBRS9FIn0=
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bigint-buffer.d.ts","sourceRoot":"","sources":["../../../../src/barretenberg/testing/bigint-buffer.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAO3D;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAG9D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,SAAK,GAAG,MAAM,CAYvE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,SAAK,GAAG,UAAU,CAE/E"}
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buffer32BytesToBigIntBE = buffer32BytesToBigIntBE;
4
+ exports.uint8ArrayToBigIntBE = uint8ArrayToBigIntBE;
5
+ exports.bigIntToBufferBE = bigIntToBufferBE;
6
+ exports.bigIntToUint8ArrayBE = bigIntToUint8ArrayBE;
7
+ /**
8
+ * Convert a 32-byte BE Buffer to a BigInt.
9
+ */
10
+ function buffer32BytesToBigIntBE(buf) {
11
+ return ((buf.readBigUInt64BE(0) << 192n) +
12
+ (buf.readBigUInt64BE(8) << 128n) +
13
+ (buf.readBigUInt64BE(16) << 64n) +
14
+ buf.readBigUInt64BE(24));
15
+ }
16
+ /**
17
+ * Convert a BE Uint8Array to a BigInt.
18
+ */
19
+ function uint8ArrayToBigIntBE(bytes) {
20
+ const buffer = Buffer.from(bytes);
21
+ return buffer32BytesToBigIntBE(buffer);
22
+ }
23
+ /**
24
+ * Convert a BigInt to a 32-byte BE Buffer.
25
+ */
26
+ function bigIntToBufferBE(value, byteLength = 32) {
27
+ if (byteLength != 32) {
28
+ throw new Error(`Only 32 bytes supported for conversion from bigint to buffer, attempted byte length: ${byteLength}`);
29
+ }
30
+ const buf = Buffer.alloc(byteLength);
31
+ buf.writeBigUInt64BE(value >> 192n, 0);
32
+ buf.writeBigUInt64BE((value >> 128n) & 0xffffffffffffffffn, 8);
33
+ buf.writeBigUInt64BE((value >> 64n) & 0xffffffffffffffffn, 16);
34
+ buf.writeBigUInt64BE(value & 0xffffffffffffffffn, 24);
35
+ return buf;
36
+ }
37
+ /**
38
+ * Convert a BigInt to a 32-byte BE Uint8Array.
39
+ */
40
+ function bigIntToUint8ArrayBE(value, byteLength = 32) {
41
+ return new Uint8Array(bigIntToBufferBE(value, byteLength));
42
+ }
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmlnaW50LWJ1ZmZlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9iYXJyZXRlbmJlcmcvdGVzdGluZy9iaWdpbnQtYnVmZmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBOztHQUVHO0FBQ0gsaUNBQXdDLEdBQVcsRUFBVTtJQUMzRCxPQUFPLENBQ0wsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQztRQUNoQyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDO1FBQ2hDLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsSUFBSSxHQUFHLENBQUM7UUFDaEMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FDeEIsQ0FBQztBQUFBLENBQ0g7QUFFRDs7R0FFRztBQUNILDhCQUFxQyxLQUFpQixFQUFVO0lBQzlELE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEMsT0FBTyx1QkFBdUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUFBLENBQ3hDO0FBRUQ7O0dBRUc7QUFDSCwwQkFBaUMsS0FBYSxFQUFFLFVBQVUsR0FBRyxFQUFFLEVBQVU7SUFDdkUsSUFBSSxVQUFVLElBQUksRUFBRSxFQUFFLENBQUM7UUFDckIsTUFBTSxJQUFJLEtBQUssQ0FDYix3RkFBd0YsVUFBVSxFQUFFLENBQ3JHLENBQUM7SUFDSixDQUFDO0lBQ0QsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNyQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN2QyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEdBQUcsbUJBQW1CLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDL0QsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUMsS0FBSyxJQUFJLEdBQUcsQ0FBQyxHQUFHLG1CQUFtQixFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQy9ELEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEdBQUcsbUJBQW1CLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDdEQsT0FBTyxHQUFHLENBQUM7QUFBQSxDQUNaO0FBRUQ7O0dBRUc7QUFDSCw4QkFBcUMsS0FBYSxFQUFFLFVBQVUsR0FBRyxFQUFFLEVBQWM7SUFDL0UsT0FBTyxJQUFJLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQztBQUFBLENBQzVEIn0=
@@ -0,0 +1,16 @@
1
+ export declare class Fr {
2
+ static ZERO: Fr;
3
+ static MODULUS: bigint;
4
+ static MAX_VALUE: bigint;
5
+ static SIZE_IN_BYTES: number;
6
+ value: Uint8Array;
7
+ constructor(value: Uint8Array | Buffer | bigint);
8
+ static random(): Fr;
9
+ toBuffer(): Uint8Array<ArrayBufferLike>;
10
+ toString(): string;
11
+ equals(rhs: Fr): boolean;
12
+ isZero(): boolean;
13
+ static fromBuffer(value: Uint8Array): Fr;
14
+ static fromBufferReduce(value: Uint8Array): Fr;
15
+ }
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGRzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYmFycmV0ZW5iZXJnL3Rlc3RpbmcvZmllbGRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVFBLHFCQUFhLEVBQUU7SUFDYixNQUFNLENBQUMsSUFBSSxLQUFjO0lBQ3pCLE1BQU0sQ0FBQyxPQUFPLFNBQXVFO0lBQ3JGLE1BQU0sQ0FBQyxTQUFTLFNBQXFCO0lBQ3JDLE1BQU0sQ0FBQyxhQUFhLFNBQU07SUFDMUIsS0FBSyxFQUFFLFVBQVUsQ0FBQztJQUVsQixZQUFZLEtBQUssRUFBRSxVQUFVLEdBQUcsTUFBTSxHQUFHLE1BQU0sRUFlOUM7SUFFRCxNQUFNLENBQUMsTUFBTSxPQUdaO0lBRUQsUUFBUSxnQ0FFUDtJQUVELFFBQVEsV0FFUDtJQUVELE1BQU0sQ0FBQyxHQUFHLEVBQUUsRUFBRSxXQUViO0lBRUQsTUFBTSxZQUVMO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsVUFBVSxHQUFHLEVBQUUsQ0FFdkM7SUFFRCxNQUFNLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLFVBQVUsR0FBRyxFQUFFLENBSTdDO0NBQ0YifQ==
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../../../../src/barretenberg/testing/fields.ts"],"names":[],"mappings":"AAQA,qBAAa,EAAE;IACb,MAAM,CAAC,IAAI,KAAc;IACzB,MAAM,CAAC,OAAO,SAAuE;IACrF,MAAM,CAAC,SAAS,SAAqB;IACrC,MAAM,CAAC,aAAa,SAAM;IAC1B,KAAK,EAAE,UAAU,CAAC;IAElB,YAAY,KAAK,EAAE,UAAU,GAAG,MAAM,GAAG,MAAM,EAe9C;IAED,MAAM,CAAC,MAAM,OAGZ;IAED,QAAQ,gCAEP;IAED,QAAQ,WAEP;IAED,MAAM,CAAC,GAAG,EAAE,EAAE,WAEb;IAED,MAAM,YAEL;IAED,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,GAAG,EAAE,CAEvC;IAED,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,UAAU,GAAG,EAAE,CAI7C;CACF"}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Fr = void 0;
4
+ const index_js_1 = require("../../random/index.js");
5
+ const bigint_buffer_js_1 = require("./bigint-buffer.js");
6
+ class Fr {
7
+ static ZERO = new Fr(0n);
8
+ static MODULUS = 0x30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001n;
9
+ static MAX_VALUE = this.MODULUS - 1n;
10
+ static SIZE_IN_BYTES = 32;
11
+ value;
12
+ constructor(value) {
13
+ // We convert buffer value to bigint to be able to check it fits within modulus
14
+ const valueBigInt = typeof value === 'bigint'
15
+ ? value
16
+ : value instanceof Buffer
17
+ ? (0, bigint_buffer_js_1.buffer32BytesToBigIntBE)(value)
18
+ : (0, bigint_buffer_js_1.uint8ArrayToBigIntBE)(value);
19
+ if (valueBigInt > Fr.MAX_VALUE) {
20
+ throw new Error(`Value 0x${valueBigInt.toString(16)} is greater or equal to field modulus.`);
21
+ }
22
+ this.value =
23
+ typeof value === 'bigint' ? (0, bigint_buffer_js_1.bigIntToUint8ArrayBE)(value) : value instanceof Buffer ? new Uint8Array(value) : value;
24
+ }
25
+ static random() {
26
+ const r = (0, bigint_buffer_js_1.uint8ArrayToBigIntBE)((0, index_js_1.randomBytes)(64)) % Fr.MODULUS;
27
+ return new this(r);
28
+ }
29
+ toBuffer() {
30
+ return this.value;
31
+ }
32
+ toString() {
33
+ return '0x' + this.toBuffer().reduce((accumulator, byte) => accumulator + byte.toString(16).padStart(2, '0'), '');
34
+ }
35
+ equals(rhs) {
36
+ return this.value.every((v, i) => v === rhs.value[i]);
37
+ }
38
+ isZero() {
39
+ return this.value.every(v => v === 0);
40
+ }
41
+ static fromBuffer(value) {
42
+ return Fr.fromBufferReduce(value);
43
+ }
44
+ static fromBufferReduce(value) {
45
+ const valueBigInt = (0, bigint_buffer_js_1.uint8ArrayToBigIntBE)(value);
46
+ const reducedValue = valueBigInt % Fr.MODULUS;
47
+ return new Fr(reducedValue);
48
+ }
49
+ }
50
+ exports.Fr = Fr;
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2JhcnJldGVuYmVyZy90ZXN0aW5nL2ZpZWxkcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxvREFBb0Q7QUFDcEQseURBSzRCO0FBRTVCO0lBQ0UsTUFBTSxDQUFDLElBQUksR0FBRyxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN6QixNQUFNLENBQUMsT0FBTyxHQUFHLG1FQUFtRSxDQUFDO0lBQ3JGLE1BQU0sQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7SUFDckMsTUFBTSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7SUFDMUIsS0FBSyxDQUFhO0lBRWxCLFlBQVksS0FBbUMsRUFBRTtRQUMvQywrRUFBK0U7UUFDL0UsTUFBTSxXQUFXLEdBQ2YsT0FBTyxLQUFLLEtBQUssUUFBUTtZQUN2QixDQUFDLENBQUMsS0FBSztZQUNQLENBQUMsQ0FBQyxLQUFLLFlBQVksTUFBTTtnQkFDdkIsQ0FBQyxDQUFDLElBQUEsMENBQXVCLEVBQUMsS0FBSyxDQUFDO2dCQUNoQyxDQUFDLENBQUMsSUFBQSx1Q0FBb0IsRUFBQyxLQUFLLENBQUMsQ0FBQztRQUVwQyxJQUFJLFdBQVcsR0FBRyxFQUFFLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDL0IsTUFBTSxJQUFJLEtBQUssQ0FBQyxXQUFXLFdBQVcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLHdDQUF3QyxDQUFDLENBQUM7UUFDL0YsQ0FBQztRQUVELElBQUksQ0FBQyxLQUFLO1lBQ1IsT0FBTyxLQUFLLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFBLHVDQUFvQixFQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLFlBQVksTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQUEsQ0FDckg7SUFFRCxNQUFNLENBQUMsTUFBTSxHQUFHO1FBQ2QsTUFBTSxDQUFDLEdBQUcsSUFBQSx1Q0FBb0IsRUFBQyxJQUFBLHNCQUFXLEVBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDO1FBQzdELE9BQU8sSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFBQSxDQUNwQjtJQUVELFFBQVEsR0FBRztRQUNULE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUFBLENBQ25CO0lBRUQsUUFBUSxHQUFHO1FBQ1QsT0FBTyxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFdBQVcsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFBQSxDQUNuSDtJQUVELE1BQU0sQ0FBQyxHQUFPLEVBQUU7UUFDZCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUFBLENBQ3ZEO0lBRUQsTUFBTSxHQUFHO1FBQ1AsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUFBLENBQ3ZDO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxLQUFpQixFQUFNO1FBQ3ZDLE9BQU8sRUFBRSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQUEsQ0FDbkM7SUFFRCxNQUFNLENBQUMsZ0JBQWdCLENBQUMsS0FBaUIsRUFBTTtRQUM3QyxNQUFNLFdBQVcsR0FBRyxJQUFBLHVDQUFvQixFQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hELE1BQU0sWUFBWSxHQUFHLFdBQVcsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDO1FBQzlDLE9BQU8sSUFBSSxFQUFFLENBQUMsWUFBWSxDQUFDLENBQUM7SUFBQSxDQUM3QjtDQUNGIn0=