@aztec/bb.js 3.0.0-devnet.2 → 3.0.0-devnet.2-patch.1

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 (599) 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 +30 -39
  12. package/dest/browser/barretenberg/backend.d.ts.map +1 -1
  13. package/dest/browser/barretenberg/backend.js +103 -98
  14. package/dest/browser/barretenberg/index.d.ts +4 -6
  15. package/dest/browser/barretenberg/index.d.ts.map +1 -1
  16. package/dest/browser/barretenberg/index.js +20 -29
  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 +12 -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 +7 -0
  72. package/dest/browser/bbapi_exception.d.ts.map +1 -0
  73. package/dest/browser/bbapi_exception.js +14 -0
  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 +93 -1
  79. package/dest/browser/cbind/generated/api_types.d.ts +632 -400
  80. package/dest/browser/cbind/generated/api_types.d.ts.map +1 -1
  81. package/dest/browser/cbind/generated/api_types.js +773 -465
  82. package/dest/browser/cbind/generated/async.d.ts +16 -11
  83. package/dest/browser/cbind/generated/async.d.ts.map +1 -1
  84. package/dest/browser/cbind/generated/async.js +305 -96
  85. package/dest/browser/cbind/generated/curve_constants.d.ts +45 -0
  86. package/dest/browser/cbind/generated/curve_constants.d.ts.map +1 -0
  87. package/dest/browser/cbind/generated/curve_constants.js +45 -0
  88. package/dest/browser/cbind/generated/sync.d.ts +16 -11
  89. package/dest/browser/cbind/generated/sync.d.ts.map +1 -1
  90. package/dest/browser/cbind/generated/sync.js +300 -96
  91. package/dest/browser/cbind/schema_compiler.d.ts +1 -1
  92. package/dest/browser/cbind/schema_compiler.d.ts.map +1 -1
  93. package/dest/browser/cbind/schema_compiler.js +29 -8
  94. package/dest/browser/crs/browser/cached_net_crs.d.ts +1 -1
  95. package/dest/browser/crs/browser/cached_net_crs.d.ts.map +1 -1
  96. package/dest/browser/crs/browser/cached_net_crs.js +6 -1
  97. package/dest/browser/crs/browser/index.d.ts +1 -1
  98. package/dest/browser/crs/index.d.ts +1 -1
  99. package/dest/browser/crs/net_crs.d.ts +1 -16
  100. package/dest/browser/crs/net_crs.d.ts.map +1 -1
  101. package/dest/browser/crs/net_crs.js +6 -1
  102. package/dest/browser/index.d.ts +6 -3
  103. package/dest/browser/index.d.ts.map +1 -1
  104. package/dest/browser/index.js +5 -2
  105. package/dest/browser/proof/index.d.ts +1 -1
  106. package/dest/browser/proof/index.js +1 -1
  107. package/dest/browser/random/browser/index.d.ts +1 -1
  108. package/dest/browser/random/browser/index.d.ts.map +1 -1
  109. package/dest/browser/random/browser/index.js +1 -1
  110. package/dest/browser/random/index.d.ts +1 -1
  111. package/dest/browser/retry/index.d.ts +1 -1
  112. package/dest/browser/retry/index.js +1 -1
  113. package/dest/node/async_map/index.d.ts +1 -1
  114. package/dest/node/async_map/index.js +1 -1
  115. package/dest/node/barretenberg/backend.d.ts +30 -39
  116. package/dest/node/barretenberg/backend.d.ts.map +1 -1
  117. package/dest/node/barretenberg/backend.js +103 -98
  118. package/dest/node/barretenberg/blake2s.test.d.ts +1 -1
  119. package/dest/node/barretenberg/blake2s.test.js +2 -2
  120. package/dest/node/barretenberg/index.d.ts +4 -6
  121. package/dest/node/barretenberg/index.d.ts.map +1 -1
  122. package/dest/node/barretenberg/index.js +20 -29
  123. package/dest/node/barretenberg/pedersen.test.d.ts +1 -1
  124. package/dest/node/barretenberg/pedersen.test.js +2 -2
  125. package/dest/node/barretenberg/poseidon.bench.test.d.ts +1 -1
  126. package/dest/node/barretenberg/poseidon.bench.test.js +81 -79
  127. package/dest/node/barretenberg/poseidon.test.d.ts +1 -1
  128. package/dest/node/barretenberg/poseidon.test.js +2 -2
  129. package/dest/node/barretenberg/testing/bigint-buffer.d.ts +17 -0
  130. package/dest/node/barretenberg/testing/bigint-buffer.d.ts.map +1 -0
  131. package/dest/node/barretenberg/testing/bigint-buffer.js +37 -0
  132. package/dest/node/barretenberg/testing/fields.d.ts +16 -0
  133. package/dest/node/barretenberg/testing/fields.d.ts.map +1 -0
  134. package/dest/node/barretenberg/testing/fields.js +47 -0
  135. package/dest/node/barretenberg_wasm/barretenberg-threads.wasm.gz +0 -0
  136. package/dest/node/barretenberg_wasm/barretenberg_wasm_base/index.d.ts +1 -1
  137. package/dest/node/barretenberg_wasm/barretenberg_wasm_base/index.d.ts.map +1 -1
  138. package/dest/node/barretenberg_wasm/barretenberg_wasm_base/index.js +5 -6
  139. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts +1 -1
  140. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts.map +1 -1
  141. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.js +1 -3
  142. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.d.ts +1 -1
  143. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.js +1 -7
  144. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.d.ts +1 -1
  145. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.d.ts.map +1 -1
  146. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.js +1 -3
  147. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.d.ts +1 -1
  148. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.js +1 -8
  149. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts +1 -1
  150. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts.map +1 -1
  151. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.js +5 -4
  152. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/index.d.ts +13 -7
  153. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/index.d.ts.map +1 -1
  154. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/index.js +45 -18
  155. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts +1 -1
  156. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts.map +1 -1
  157. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.js +1 -3
  158. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.d.ts +1 -1
  159. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.js +1 -7
  160. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.d.ts +1 -1
  161. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.d.ts.map +1 -1
  162. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.js +1 -3
  163. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.d.ts +1 -1
  164. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.js +1 -7
  165. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts +9 -8
  166. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts.map +1 -1
  167. package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/index.js +4 -3
  168. package/dest/node/barretenberg_wasm/fetch_code/browser/barretenberg-threads.d.ts +1 -1
  169. package/dest/node/barretenberg_wasm/fetch_code/browser/barretenberg.d.ts +1 -1
  170. package/dest/node/barretenberg_wasm/fetch_code/browser/index.d.ts +1 -1
  171. package/dest/node/barretenberg_wasm/fetch_code/browser/index.js +1 -1
  172. package/dest/node/barretenberg_wasm/fetch_code/index.d.ts +1 -1
  173. package/dest/node/barretenberg_wasm/fetch_code/node/index.d.ts +1 -1
  174. package/dest/node/barretenberg_wasm/fetch_code/node/index.js +1 -1
  175. package/dest/node/barretenberg_wasm/helpers/browser/index.d.ts +2 -2
  176. package/dest/node/barretenberg_wasm/helpers/browser/index.d.ts.map +1 -1
  177. package/dest/node/barretenberg_wasm/helpers/browser/index.js +9 -2
  178. package/dest/node/barretenberg_wasm/helpers/index.d.ts +1 -1
  179. package/dest/node/barretenberg_wasm/helpers/node/index.d.ts +5 -6
  180. package/dest/node/barretenberg_wasm/helpers/node/index.d.ts.map +1 -1
  181. package/dest/node/barretenberg_wasm/helpers/node/index.js +14 -6
  182. package/dest/node/barretenberg_wasm/helpers/node/node_endpoint.d.ts +2 -2
  183. package/dest/node/barretenberg_wasm/helpers/node/node_endpoint.d.ts.map +1 -1
  184. package/dest/node/barretenberg_wasm/helpers/node/node_endpoint.js +1 -1
  185. package/dest/node/barretenberg_wasm/index.d.ts +1 -1
  186. package/dest/node/barretenberg_wasm/index.d.ts.map +1 -1
  187. package/dest/node/barretenberg_wasm/index.js +2 -3
  188. package/dest/node/barretenberg_wasm/index.test.d.ts +1 -1
  189. package/dest/node/barretenberg_wasm/index.test.js +1 -1
  190. package/dest/node/bb_backends/browser/index.d.ts +1 -1
  191. package/dest/node/bb_backends/browser/index.js +1 -1
  192. package/dest/node/bb_backends/browser/platform.d.ts +4 -0
  193. package/dest/node/bb_backends/browser/platform.d.ts.map +1 -0
  194. package/dest/node/bb_backends/browser/platform.js +10 -0
  195. package/dest/node/bb_backends/index.d.ts +12 -7
  196. package/dest/node/bb_backends/index.d.ts.map +1 -1
  197. package/dest/node/bb_backends/index.js +8 -7
  198. package/dest/node/bb_backends/interface.d.ts +1 -1
  199. package/dest/node/bb_backends/node/index.d.ts +1 -1
  200. package/dest/node/bb_backends/node/index.d.ts.map +1 -1
  201. package/dest/node/bb_backends/node/index.js +17 -11
  202. package/dest/node/bb_backends/node/native_pipe.d.ts +1 -1
  203. package/dest/node/bb_backends/node/native_pipe.d.ts.map +1 -1
  204. package/dest/node/bb_backends/node/native_pipe.js +11 -10
  205. package/dest/node/bb_backends/node/native_shm.d.ts +3 -3
  206. package/dest/node/bb_backends/node/native_shm.d.ts.map +1 -1
  207. package/dest/node/bb_backends/node/native_shm.js +61 -39
  208. package/dest/node/bb_backends/node/native_shm_async.d.ts +51 -0
  209. package/dest/node/bb_backends/node/native_shm_async.d.ts.map +1 -0
  210. package/dest/node/bb_backends/node/native_shm_async.js +232 -0
  211. package/dest/node/bb_backends/node/native_socket.d.ts +2 -2
  212. package/dest/node/bb_backends/node/native_socket.d.ts.map +1 -1
  213. package/dest/node/bb_backends/node/native_socket.js +43 -31
  214. package/dest/node/bb_backends/node/platform.d.ts +1 -1
  215. package/dest/node/bb_backends/node/platform.d.ts.map +1 -1
  216. package/dest/node/bb_backends/node/platform.js +7 -2
  217. package/dest/node/bb_backends/wasm.d.ts +1 -1
  218. package/dest/node/bb_backends/wasm.d.ts.map +1 -1
  219. package/dest/node/bb_backends/wasm.js +5 -3
  220. package/dest/node/bbapi/exception_handling.test.d.ts +2 -0
  221. package/dest/node/bbapi/exception_handling.test.d.ts.map +1 -0
  222. package/dest/node/bbapi/exception_handling.test.js +48 -0
  223. package/dest/node/bbapi_exception.d.ts +7 -0
  224. package/dest/node/bbapi_exception.d.ts.map +1 -0
  225. package/dest/node/bbapi_exception.js +14 -0
  226. package/dest/node/benchmark/index.d.ts +1 -1
  227. package/dest/node/benchmark/index.js +1 -1
  228. package/dest/node/benchmark/timer.d.ts +1 -1
  229. package/dest/node/benchmark/timer.d.ts.map +1 -1
  230. package/dest/node/benchmark/timer.js +2 -1
  231. package/dest/node/bin/index.d.ts +3 -0
  232. package/dest/node/bin/index.d.ts.map +1 -0
  233. package/dest/node/bin/index.js +11 -0
  234. package/dest/node/cbind/generate.d.ts +1 -1
  235. package/dest/node/cbind/generate.js +93 -1
  236. package/dest/node/cbind/generated/api_types.d.ts +632 -400
  237. package/dest/node/cbind/generated/api_types.d.ts.map +1 -1
  238. package/dest/node/cbind/generated/api_types.js +773 -465
  239. package/dest/node/cbind/generated/async.d.ts +16 -11
  240. package/dest/node/cbind/generated/async.d.ts.map +1 -1
  241. package/dest/node/cbind/generated/async.js +305 -96
  242. package/dest/node/cbind/generated/curve_constants.d.ts +45 -0
  243. package/dest/node/cbind/generated/curve_constants.d.ts.map +1 -0
  244. package/dest/node/cbind/generated/curve_constants.js +45 -0
  245. package/dest/node/cbind/generated/sync.d.ts +16 -11
  246. package/dest/node/cbind/generated/sync.d.ts.map +1 -1
  247. package/dest/node/cbind/generated/sync.js +300 -96
  248. package/dest/node/cbind/schema_compiler.d.ts +1 -1
  249. package/dest/node/cbind/schema_compiler.d.ts.map +1 -1
  250. package/dest/node/cbind/schema_compiler.js +29 -8
  251. package/dest/node/crs/browser/cached_net_crs.d.ts +1 -1
  252. package/dest/node/crs/browser/cached_net_crs.d.ts.map +1 -1
  253. package/dest/node/crs/browser/cached_net_crs.js +6 -1
  254. package/dest/node/crs/browser/index.d.ts +1 -1
  255. package/dest/node/crs/index.d.ts +1 -1
  256. package/dest/node/crs/net_crs.d.ts +1 -16
  257. package/dest/node/crs/net_crs.d.ts.map +1 -1
  258. package/dest/node/crs/net_crs.js +6 -1
  259. package/dest/node/crs/node/index.d.ts +1 -1
  260. package/dest/node/crs/node/index.d.ts.map +1 -1
  261. package/dest/node/crs/node/index.js +11 -6
  262. package/dest/node/index.d.ts +6 -3
  263. package/dest/node/index.d.ts.map +1 -1
  264. package/dest/node/index.js +5 -2
  265. package/dest/node/proof/index.d.ts +1 -1
  266. package/dest/node/proof/index.js +1 -1
  267. package/dest/node/random/browser/index.d.ts +1 -1
  268. package/dest/node/random/browser/index.d.ts.map +1 -1
  269. package/dest/node/random/browser/index.js +1 -1
  270. package/dest/node/random/index.d.ts +1 -1
  271. package/dest/node/random/node/index.d.ts +1 -1
  272. package/dest/node/random/node/index.js +1 -1
  273. package/dest/node/retry/index.d.ts +1 -1
  274. package/dest/node/retry/index.js +1 -1
  275. package/dest/node-cjs/async_map/index.d.ts +1 -1
  276. package/dest/node-cjs/async_map/index.js +1 -1
  277. package/dest/node-cjs/barretenberg/backend.d.ts +30 -39
  278. package/dest/node-cjs/barretenberg/backend.d.ts.map +1 -1
  279. package/dest/node-cjs/barretenberg/backend.js +108 -103
  280. package/dest/node-cjs/barretenberg/blake2s.test.d.ts +1 -1
  281. package/dest/node-cjs/barretenberg/blake2s.test.js +6 -6
  282. package/dest/node-cjs/barretenberg/index.d.ts +4 -6
  283. package/dest/node-cjs/barretenberg/index.d.ts.map +1 -1
  284. package/dest/node-cjs/barretenberg/index.js +25 -34
  285. package/dest/node-cjs/barretenberg/pedersen.test.d.ts +1 -1
  286. package/dest/node-cjs/barretenberg/pedersen.test.js +9 -9
  287. package/dest/node-cjs/barretenberg/poseidon.bench.test.d.ts +1 -1
  288. package/dest/node-cjs/barretenberg/poseidon.bench.test.js +89 -87
  289. package/dest/node-cjs/barretenberg/poseidon.test.d.ts +1 -1
  290. package/dest/node-cjs/barretenberg/poseidon.test.js +4 -4
  291. package/dest/node-cjs/barretenberg/testing/bigint-buffer.d.ts +17 -0
  292. package/dest/node-cjs/barretenberg/testing/bigint-buffer.d.ts.map +1 -0
  293. package/dest/node-cjs/barretenberg/testing/bigint-buffer.js +43 -0
  294. package/dest/node-cjs/barretenberg/testing/fields.d.ts +16 -0
  295. package/dest/node-cjs/barretenberg/testing/fields.d.ts.map +1 -0
  296. package/dest/node-cjs/barretenberg/testing/fields.js +51 -0
  297. package/dest/node-cjs/barretenberg_wasm/barretenberg-threads.wasm.gz +0 -0
  298. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_base/index.d.ts +1 -1
  299. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_base/index.d.ts.map +1 -1
  300. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_base/index.js +7 -8
  301. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts +1 -1
  302. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts.map +1 -1
  303. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.js +3 -5
  304. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.d.ts +1 -1
  305. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.js +1 -7
  306. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.d.ts +1 -1
  307. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.d.ts.map +1 -1
  308. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.js +1 -3
  309. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.d.ts +1 -1
  310. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.js +1 -8
  311. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts +1 -1
  312. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts.map +1 -1
  313. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.js +5 -4
  314. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/index.d.ts +13 -7
  315. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/index.d.ts.map +1 -1
  316. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/index.js +45 -18
  317. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts +1 -1
  318. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts.map +1 -1
  319. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.js +3 -5
  320. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.d.ts +1 -1
  321. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.js +1 -7
  322. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.d.ts +1 -1
  323. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.d.ts.map +1 -1
  324. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.js +1 -3
  325. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.d.ts +1 -1
  326. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.js +1 -7
  327. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts +9 -8
  328. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts.map +1 -1
  329. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/index.js +4 -3
  330. package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/barretenberg-threads.d.ts +1 -1
  331. package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/barretenberg-threads.js +1 -1
  332. package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/barretenberg.d.ts +1 -1
  333. package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/barretenberg.js +1 -1
  334. package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/index.d.ts +1 -1
  335. package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/index.js +2 -2
  336. package/dest/node-cjs/barretenberg_wasm/fetch_code/index.d.ts +1 -1
  337. package/dest/node-cjs/barretenberg_wasm/fetch_code/node/index.d.ts +1 -1
  338. package/dest/node-cjs/barretenberg_wasm/fetch_code/node/index.js +2 -2
  339. package/dest/node-cjs/barretenberg_wasm/helpers/browser/index.d.ts +2 -2
  340. package/dest/node-cjs/barretenberg_wasm/helpers/browser/index.d.ts.map +1 -1
  341. package/dest/node-cjs/barretenberg_wasm/helpers/browser/index.js +9 -2
  342. package/dest/node-cjs/barretenberg_wasm/helpers/index.d.ts +1 -1
  343. package/dest/node-cjs/barretenberg_wasm/helpers/node/index.d.ts +5 -6
  344. package/dest/node-cjs/barretenberg_wasm/helpers/node/index.d.ts.map +1 -1
  345. package/dest/node-cjs/barretenberg_wasm/helpers/node/index.js +15 -7
  346. package/dest/node-cjs/barretenberg_wasm/helpers/node/node_endpoint.d.ts +2 -2
  347. package/dest/node-cjs/barretenberg_wasm/helpers/node/node_endpoint.d.ts.map +1 -1
  348. package/dest/node-cjs/barretenberg_wasm/helpers/node/node_endpoint.js +1 -1
  349. package/dest/node-cjs/barretenberg_wasm/index.d.ts +1 -1
  350. package/dest/node-cjs/barretenberg_wasm/index.d.ts.map +1 -1
  351. package/dest/node-cjs/barretenberg_wasm/index.js +2 -3
  352. package/dest/node-cjs/barretenberg_wasm/index.test.d.ts +1 -1
  353. package/dest/node-cjs/barretenberg_wasm/index.test.js +1 -1
  354. package/dest/node-cjs/bb_backends/browser/index.d.ts +1 -1
  355. package/dest/node-cjs/bb_backends/browser/index.js +1 -1
  356. package/dest/node-cjs/bb_backends/browser/platform.d.ts +4 -0
  357. package/dest/node-cjs/bb_backends/browser/platform.d.ts.map +1 -0
  358. package/dest/node-cjs/bb_backends/browser/platform.js +15 -0
  359. package/dest/node-cjs/bb_backends/index.d.ts +12 -7
  360. package/dest/node-cjs/bb_backends/index.d.ts.map +1 -1
  361. package/dest/node-cjs/bb_backends/index.js +6 -6
  362. package/dest/node-cjs/bb_backends/interface.d.ts +1 -1
  363. package/dest/node-cjs/bb_backends/node/index.d.ts +1 -1
  364. package/dest/node-cjs/bb_backends/node/index.d.ts.map +1 -1
  365. package/dest/node-cjs/bb_backends/node/index.js +17 -11
  366. package/dest/node-cjs/bb_backends/node/native_pipe.d.ts +1 -1
  367. package/dest/node-cjs/bb_backends/node/native_pipe.d.ts.map +1 -1
  368. package/dest/node-cjs/bb_backends/node/native_pipe.js +11 -10
  369. package/dest/node-cjs/bb_backends/node/native_shm.d.ts +3 -3
  370. package/dest/node-cjs/bb_backends/node/native_shm.d.ts.map +1 -1
  371. package/dest/node-cjs/bb_backends/node/native_shm.js +61 -39
  372. package/dest/node-cjs/bb_backends/node/native_shm_async.d.ts +51 -0
  373. package/dest/node-cjs/bb_backends/node/native_shm_async.d.ts.map +1 -0
  374. package/dest/node-cjs/bb_backends/node/native_shm_async.js +236 -0
  375. package/dest/node-cjs/bb_backends/node/native_socket.d.ts +2 -2
  376. package/dest/node-cjs/bb_backends/node/native_socket.d.ts.map +1 -1
  377. package/dest/node-cjs/bb_backends/node/native_socket.js +43 -31
  378. package/dest/node-cjs/bb_backends/node/platform.d.ts +1 -1
  379. package/dest/node-cjs/bb_backends/node/platform.d.ts.map +1 -1
  380. package/dest/node-cjs/bb_backends/node/platform.js +8 -3
  381. package/dest/node-cjs/bb_backends/wasm.d.ts +1 -1
  382. package/dest/node-cjs/bb_backends/wasm.d.ts.map +1 -1
  383. package/dest/node-cjs/bb_backends/wasm.js +5 -3
  384. package/dest/node-cjs/bbapi/exception_handling.test.d.ts +2 -0
  385. package/dest/node-cjs/bbapi/exception_handling.test.d.ts.map +1 -0
  386. package/dest/node-cjs/bbapi/exception_handling.test.js +50 -0
  387. package/dest/node-cjs/bbapi_exception.d.ts +7 -0
  388. package/dest/node-cjs/bbapi_exception.d.ts.map +1 -0
  389. package/dest/node-cjs/bbapi_exception.js +18 -0
  390. package/dest/node-cjs/benchmark/index.d.ts +1 -1
  391. package/dest/node-cjs/benchmark/index.js +2 -2
  392. package/dest/node-cjs/benchmark/timer.d.ts +1 -1
  393. package/dest/node-cjs/benchmark/timer.d.ts.map +1 -1
  394. package/dest/node-cjs/benchmark/timer.js +2 -1
  395. package/dest/node-cjs/bin/index.d.ts +3 -0
  396. package/dest/node-cjs/bin/index.d.ts.map +1 -0
  397. package/dest/node-cjs/bin/index.js +13 -0
  398. package/dest/node-cjs/cbind/generate.d.ts +1 -1
  399. package/dest/node-cjs/cbind/generate.js +93 -1
  400. package/dest/node-cjs/cbind/generated/api_types.d.ts +632 -400
  401. package/dest/node-cjs/cbind/generated/api_types.d.ts.map +1 -1
  402. package/dest/node-cjs/cbind/generated/api_types.js +843 -507
  403. package/dest/node-cjs/cbind/generated/async.d.ts +16 -11
  404. package/dest/node-cjs/cbind/generated/async.d.ts.map +1 -1
  405. package/dest/node-cjs/cbind/generated/async.js +304 -95
  406. package/dest/node-cjs/cbind/generated/curve_constants.d.ts +45 -0
  407. package/dest/node-cjs/cbind/generated/curve_constants.d.ts.map +1 -0
  408. package/dest/node-cjs/cbind/generated/curve_constants.js +48 -0
  409. package/dest/node-cjs/cbind/generated/sync.d.ts +16 -11
  410. package/dest/node-cjs/cbind/generated/sync.d.ts.map +1 -1
  411. package/dest/node-cjs/cbind/generated/sync.js +299 -95
  412. package/dest/node-cjs/cbind/schema_compiler.d.ts +1 -1
  413. package/dest/node-cjs/cbind/schema_compiler.d.ts.map +1 -1
  414. package/dest/node-cjs/cbind/schema_compiler.js +29 -8
  415. package/dest/node-cjs/crs/browser/cached_net_crs.d.ts +1 -1
  416. package/dest/node-cjs/crs/browser/cached_net_crs.d.ts.map +1 -1
  417. package/dest/node-cjs/crs/browser/cached_net_crs.js +6 -1
  418. package/dest/node-cjs/crs/browser/index.d.ts +1 -1
  419. package/dest/node-cjs/crs/browser/index.js +2 -2
  420. package/dest/node-cjs/crs/index.d.ts +1 -1
  421. package/dest/node-cjs/crs/index.js +2 -2
  422. package/dest/node-cjs/crs/net_crs.d.ts +1 -16
  423. package/dest/node-cjs/crs/net_crs.d.ts.map +1 -1
  424. package/dest/node-cjs/crs/net_crs.js +6 -1
  425. package/dest/node-cjs/crs/node/index.d.ts +1 -1
  426. package/dest/node-cjs/crs/node/index.d.ts.map +1 -1
  427. package/dest/node-cjs/crs/node/index.js +11 -6
  428. package/dest/node-cjs/index.d.ts +6 -3
  429. package/dest/node-cjs/index.d.ts.map +1 -1
  430. package/dest/node-cjs/index.js +28 -11
  431. package/dest/node-cjs/proof/index.d.ts +1 -1
  432. package/dest/node-cjs/proof/index.js +1 -1
  433. package/dest/node-cjs/random/browser/index.d.ts +1 -1
  434. package/dest/node-cjs/random/browser/index.d.ts.map +1 -1
  435. package/dest/node-cjs/random/browser/index.js +1 -1
  436. package/dest/node-cjs/random/index.d.ts +1 -1
  437. package/dest/node-cjs/random/node/index.d.ts +1 -1
  438. package/dest/node-cjs/random/node/index.js +1 -1
  439. package/dest/node-cjs/retry/index.d.ts +1 -1
  440. package/dest/node-cjs/retry/index.js +1 -1
  441. package/package.json +8 -6
  442. package/src/barretenberg/backend.ts +125 -126
  443. package/src/barretenberg/blake2s.test.ts +1 -1
  444. package/src/barretenberg/index.ts +24 -29
  445. package/src/barretenberg/pedersen.test.ts +1 -1
  446. package/src/barretenberg/poseidon.bench.test.ts +161 -157
  447. package/src/barretenberg/poseidon.test.ts +1 -1
  448. package/src/barretenberg/testing/fields.ts +63 -0
  449. package/src/barretenberg_wasm/barretenberg_wasm_base/index.ts +1 -2
  450. package/src/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.ts +0 -2
  451. package/src/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.ts +0 -7
  452. package/src/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.ts +0 -2
  453. package/src/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.ts +0 -9
  454. package/src/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.ts +4 -4
  455. package/src/barretenberg_wasm/barretenberg_wasm_main/index.ts +37 -4
  456. package/src/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.ts +0 -2
  457. package/src/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.ts +0 -7
  458. package/src/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.ts +0 -2
  459. package/src/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.ts +0 -7
  460. package/src/barretenberg_wasm/barretenberg_wasm_thread/index.ts +3 -2
  461. package/src/barretenberg_wasm/helpers/browser/index.ts +8 -1
  462. package/src/barretenberg_wasm/helpers/node/index.ts +13 -6
  463. package/src/barretenberg_wasm/index.ts +1 -2
  464. package/src/bb_backends/browser/platform.ts +11 -0
  465. package/src/bb_backends/index.ts +12 -6
  466. package/src/bb_backends/node/index.ts +23 -10
  467. package/src/bb_backends/node/native_shm.ts +59 -40
  468. package/src/bb_backends/node/native_shm_async.ts +261 -0
  469. package/src/bb_backends/node/native_socket.ts +31 -18
  470. package/src/bb_backends/node/platform.ts +6 -1
  471. package/src/bb_backends/wasm.ts +1 -2
  472. package/src/bbapi/exception_handling.test.ts +54 -0
  473. package/src/bbapi_exception.ts +13 -0
  474. package/src/bin/index.ts +14 -0
  475. package/src/cbind/generate.ts +99 -0
  476. package/src/cbind/generated/api_types.ts +1267 -783
  477. package/src/cbind/generated/async.ts +308 -95
  478. package/src/cbind/generated/curve_constants.ts +53 -0
  479. package/src/cbind/generated/sync.ts +303 -95
  480. package/src/cbind/schema_compiler.ts +25 -3
  481. package/src/crs/node/index.ts +4 -5
  482. package/src/index.ts +32 -1
  483. package/dest/browser/bb_backends/sync_to_async_adapter.d.ts +0 -15
  484. package/dest/browser/bb_backends/sync_to_async_adapter.d.ts.map +0 -1
  485. package/dest/browser/bb_backends/sync_to_async_adapter.js +0 -20
  486. package/dest/browser/bigint-array/index.d.ts +0 -17
  487. package/dest/browser/bigint-array/index.d.ts.map +0 -1
  488. package/dest/browser/bigint-array/index.js +0 -37
  489. package/dest/browser/log/browser/index.d.ts +0 -6
  490. package/dest/browser/log/browser/index.d.ts.map +0 -1
  491. package/dest/browser/log/browser/index.js +0 -28
  492. package/dest/browser/log/index.d.ts +0 -2
  493. package/dest/browser/log/index.d.ts.map +0 -1
  494. package/dest/browser/log/index.js +0 -2
  495. package/dest/browser/log/types.d.ts +0 -6
  496. package/dest/browser/log/types.d.ts.map +0 -1
  497. package/dest/browser/log/types.js +0 -2
  498. package/dest/browser/serialize/buffer_reader.d.ts +0 -28
  499. package/dest/browser/serialize/buffer_reader.d.ts.map +0 -1
  500. package/dest/browser/serialize/buffer_reader.js +0 -66
  501. package/dest/browser/serialize/index.d.ts +0 -3
  502. package/dest/browser/serialize/index.d.ts.map +0 -1
  503. package/dest/browser/serialize/index.js +0 -3
  504. package/dest/browser/serialize/serialize.d.ts +0 -18
  505. package/dest/browser/serialize/serialize.d.ts.map +0 -1
  506. package/dest/browser/serialize/serialize.js +0 -72
  507. package/dest/browser/types/fields.d.ts +0 -43
  508. package/dest/browser/types/fields.d.ts.map +0 -1
  509. package/dest/browser/types/fields.js +0 -102
  510. package/dest/browser/types/index.d.ts +0 -3
  511. package/dest/browser/types/index.d.ts.map +0 -1
  512. package/dest/browser/types/index.js +0 -3
  513. package/dest/browser/types/point.d.ts +0 -16
  514. package/dest/browser/types/point.d.ts.map +0 -1
  515. package/dest/browser/types/point.js +0 -31
  516. package/dest/node/bb_backends/sync_to_async_adapter.d.ts +0 -15
  517. package/dest/node/bb_backends/sync_to_async_adapter.d.ts.map +0 -1
  518. package/dest/node/bb_backends/sync_to_async_adapter.js +0 -20
  519. package/dest/node/bigint-array/index.d.ts +0 -17
  520. package/dest/node/bigint-array/index.d.ts.map +0 -1
  521. package/dest/node/bigint-array/index.js +0 -37
  522. package/dest/node/log/browser/index.d.ts +0 -6
  523. package/dest/node/log/browser/index.d.ts.map +0 -1
  524. package/dest/node/log/browser/index.js +0 -28
  525. package/dest/node/log/index.d.ts +0 -2
  526. package/dest/node/log/index.d.ts.map +0 -1
  527. package/dest/node/log/index.js +0 -2
  528. package/dest/node/log/node/index.d.ts +0 -6
  529. package/dest/node/log/node/index.d.ts.map +0 -1
  530. package/dest/node/log/node/index.js +0 -40
  531. package/dest/node/log/types.d.ts +0 -6
  532. package/dest/node/log/types.d.ts.map +0 -1
  533. package/dest/node/log/types.js +0 -2
  534. package/dest/node/serialize/buffer_reader.d.ts +0 -28
  535. package/dest/node/serialize/buffer_reader.d.ts.map +0 -1
  536. package/dest/node/serialize/buffer_reader.js +0 -66
  537. package/dest/node/serialize/index.d.ts +0 -3
  538. package/dest/node/serialize/index.d.ts.map +0 -1
  539. package/dest/node/serialize/index.js +0 -3
  540. package/dest/node/serialize/serialize.d.ts +0 -18
  541. package/dest/node/serialize/serialize.d.ts.map +0 -1
  542. package/dest/node/serialize/serialize.js +0 -72
  543. package/dest/node/types/fields.d.ts +0 -43
  544. package/dest/node/types/fields.d.ts.map +0 -1
  545. package/dest/node/types/fields.js +0 -102
  546. package/dest/node/types/index.d.ts +0 -3
  547. package/dest/node/types/index.d.ts.map +0 -1
  548. package/dest/node/types/index.js +0 -3
  549. package/dest/node/types/point.d.ts +0 -16
  550. package/dest/node/types/point.d.ts.map +0 -1
  551. package/dest/node/types/point.js +0 -31
  552. package/dest/node-cjs/bb_backends/sync_to_async_adapter.d.ts +0 -15
  553. package/dest/node-cjs/bb_backends/sync_to_async_adapter.d.ts.map +0 -1
  554. package/dest/node-cjs/bb_backends/sync_to_async_adapter.js +0 -24
  555. package/dest/node-cjs/bigint-array/index.d.ts +0 -17
  556. package/dest/node-cjs/bigint-array/index.d.ts.map +0 -1
  557. package/dest/node-cjs/bigint-array/index.js +0 -43
  558. package/dest/node-cjs/log/browser/index.d.ts +0 -6
  559. package/dest/node-cjs/log/browser/index.d.ts.map +0 -1
  560. package/dest/node-cjs/log/browser/index.js +0 -30
  561. package/dest/node-cjs/log/index.d.ts +0 -2
  562. package/dest/node-cjs/log/index.d.ts.map +0 -1
  563. package/dest/node-cjs/log/index.js +0 -8
  564. package/dest/node-cjs/log/node/index.d.ts +0 -6
  565. package/dest/node-cjs/log/node/index.d.ts.map +0 -1
  566. package/dest/node-cjs/log/node/index.js +0 -42
  567. package/dest/node-cjs/log/types.d.ts +0 -6
  568. package/dest/node-cjs/log/types.d.ts.map +0 -1
  569. package/dest/node-cjs/log/types.js +0 -3
  570. package/dest/node-cjs/serialize/buffer_reader.d.ts +0 -28
  571. package/dest/node-cjs/serialize/buffer_reader.d.ts.map +0 -1
  572. package/dest/node-cjs/serialize/buffer_reader.js +0 -70
  573. package/dest/node-cjs/serialize/index.d.ts +0 -3
  574. package/dest/node-cjs/serialize/index.d.ts.map +0 -1
  575. package/dest/node-cjs/serialize/index.js +0 -6
  576. package/dest/node-cjs/serialize/serialize.d.ts +0 -18
  577. package/dest/node-cjs/serialize/serialize.d.ts.map +0 -1
  578. package/dest/node-cjs/serialize/serialize.js +0 -82
  579. package/dest/node-cjs/types/fields.d.ts +0 -43
  580. package/dest/node-cjs/types/fields.d.ts.map +0 -1
  581. package/dest/node-cjs/types/fields.js +0 -107
  582. package/dest/node-cjs/types/index.d.ts +0 -3
  583. package/dest/node-cjs/types/index.d.ts.map +0 -1
  584. package/dest/node-cjs/types/index.js +0 -6
  585. package/dest/node-cjs/types/point.d.ts +0 -16
  586. package/dest/node-cjs/types/point.d.ts.map +0 -1
  587. package/dest/node-cjs/types/point.js +0 -35
  588. package/src/bb_backends/sync_to_async_adapter.ts +0 -21
  589. package/src/log/browser/index.ts +0 -35
  590. package/src/log/index.ts +0 -1
  591. package/src/log/node/index.ts +0 -52
  592. package/src/log/types.ts +0 -6
  593. package/src/serialize/buffer_reader.ts +0 -85
  594. package/src/serialize/index.ts +0 -2
  595. package/src/serialize/serialize.ts +0 -75
  596. package/src/types/fields.ts +0 -126
  597. package/src/types/index.ts +0 -2
  598. package/src/types/point.ts +0 -38
  599. /package/src/{bigint-array/index.ts → barretenberg/testing/bigint-buffer.ts} +0 -0
@@ -1,16 +1,21 @@
1
1
  // AUTOGENERATED FILE - DO NOT EDIT
2
2
  import { Decoder, Encoder } from 'msgpackr';
3
- import { fromAesDecrypt, fromAesEncrypt, fromBlake2s, fromBlake2sToField, fromBn254FrSqrt, fromCircuitComputeVk, fromCircuitProve, fromCircuitStats, fromCircuitVerify, fromCircuitWriteSolidityVerifier, fromClientIvcAccumulate, fromClientIvcCheckPrecomputedVk, fromClientIvcComputeIvcVk, fromClientIvcComputeStandaloneVk, fromClientIvcLoad, fromClientIvcProve, fromClientIvcStart, fromClientIvcStats, fromClientIvcVerify, fromEcdsaSecp256k1ComputePublicKey, fromEcdsaSecp256k1ConstructSignature, fromEcdsaSecp256k1RecoverPublicKey, fromEcdsaSecp256k1VerifySignature, fromEcdsaSecp256r1ComputePublicKey, fromEcdsaSecp256r1ConstructSignature, fromEcdsaSecp256r1RecoverPublicKey, fromEcdsaSecp256r1VerifySignature, fromGrumpkinAdd, fromGrumpkinBatchMul, fromGrumpkinGetRandomFr, fromGrumpkinMul, fromGrumpkinReduce512, fromMegaVkAsFields, fromPedersenCommit, fromPedersenHash, fromPedersenHashBuffer, fromPoseidon2Hash, fromPoseidon2HashAccumulate, fromPoseidon2Permutation, fromSchnorrComputePublicKey, fromSchnorrConstructSignature, fromSchnorrVerifySignature, fromSecp256k1GetRandomFr, fromSecp256k1Mul, fromSecp256k1Reduce512, fromShutdown, fromSrsInitGrumpkinSrs, fromSrsInitSrs, fromVkAsFields, toAesDecryptResponse, toAesEncryptResponse, toBlake2sResponse, toBlake2sToFieldResponse, toBn254FrSqrtResponse, toCircuitComputeVkResponse, toCircuitInfoResponse, toCircuitProveResponse, toCircuitVerifyResponse, toCircuitWriteSolidityVerifierResponse, toClientIvcAccumulateResponse, toClientIvcCheckPrecomputedVkResponse, toClientIvcComputeIvcVkResponse, toClientIvcComputeStandaloneVkResponse, toClientIvcLoadResponse, toClientIvcProveResponse, toClientIvcStartResponse, toClientIvcStatsResponse, toClientIvcVerifyResponse, toEcdsaSecp256k1ComputePublicKeyResponse, toEcdsaSecp256k1ConstructSignatureResponse, toEcdsaSecp256k1RecoverPublicKeyResponse, toEcdsaSecp256k1VerifySignatureResponse, toEcdsaSecp256r1ComputePublicKeyResponse, toEcdsaSecp256r1ConstructSignatureResponse, toEcdsaSecp256r1RecoverPublicKeyResponse, toEcdsaSecp256r1VerifySignatureResponse, toGrumpkinAddResponse, toGrumpkinBatchMulResponse, toGrumpkinGetRandomFrResponse, toGrumpkinMulResponse, toGrumpkinReduce512Response, toMegaVkAsFieldsResponse, toPedersenCommitResponse, toPedersenHashBufferResponse, toPedersenHashResponse, toPoseidon2HashAccumulateResponse, toPoseidon2HashResponse, toPoseidon2PermutationResponse, toSchnorrComputePublicKeyResponse, toSchnorrConstructSignatureResponse, toSchnorrVerifySignatureResponse, toSecp256k1GetRandomFrResponse, toSecp256k1MulResponse, toSecp256k1Reduce512Response, toShutdownResponse, toSrsInitGrumpkinSrsResponse, toSrsInitSrsResponse, toVkAsFieldsResponse } from './api_types.js';
3
+ import { BBApiException } from '../../bbapi_exception.js';
4
+ import { fromAesDecrypt, fromAesEncrypt, fromBlake2s, fromBlake2sToField, fromBn254FqSqrt, fromBn254FrSqrt, fromBn254G1FromCompressed, fromBn254G1IsOnCurve, fromBn254G1Mul, fromBn254G2Mul, fromChonkAccumulate, fromChonkCheckPrecomputedVk, fromChonkComputeIvcVk, fromChonkComputeStandaloneVk, fromChonkLoad, fromChonkProve, fromChonkStart, fromChonkStats, fromChonkVerify, fromCircuitComputeVk, fromCircuitProve, fromCircuitStats, fromCircuitVerify, fromCircuitWriteSolidityVerifier, fromEcdsaSecp256k1ComputePublicKey, fromEcdsaSecp256k1ConstructSignature, fromEcdsaSecp256k1RecoverPublicKey, fromEcdsaSecp256k1VerifySignature, fromEcdsaSecp256r1ComputePublicKey, fromEcdsaSecp256r1ConstructSignature, fromEcdsaSecp256r1RecoverPublicKey, fromEcdsaSecp256r1VerifySignature, fromGrumpkinAdd, fromGrumpkinBatchMul, fromGrumpkinGetRandomFr, fromGrumpkinMul, fromGrumpkinReduce512, fromMegaVkAsFields, fromPedersenCommit, fromPedersenHash, fromPedersenHashBuffer, fromPoseidon2Hash, fromPoseidon2HashAccumulate, fromPoseidon2Permutation, fromSchnorrComputePublicKey, fromSchnorrConstructSignature, fromSchnorrVerifySignature, fromSecp256k1GetRandomFr, fromSecp256k1Mul, fromSecp256k1Reduce512, fromShutdown, fromSrsInitGrumpkinSrs, fromSrsInitSrs, fromVkAsFields, toAesDecryptResponse, toAesEncryptResponse, toBlake2sResponse, toBlake2sToFieldResponse, toBn254FqSqrtResponse, toBn254FrSqrtResponse, toBn254G1FromCompressedResponse, toBn254G1IsOnCurveResponse, toBn254G1MulResponse, toBn254G2MulResponse, toChonkAccumulateResponse, toChonkCheckPrecomputedVkResponse, toChonkComputeIvcVkResponse, toChonkComputeStandaloneVkResponse, toChonkLoadResponse, toChonkProveResponse, toChonkStartResponse, toChonkStatsResponse, toChonkVerifyResponse, toCircuitComputeVkResponse, toCircuitInfoResponse, toCircuitProveResponse, toCircuitVerifyResponse, toCircuitWriteSolidityVerifierResponse, toEcdsaSecp256k1ComputePublicKeyResponse, toEcdsaSecp256k1ConstructSignatureResponse, toEcdsaSecp256k1RecoverPublicKeyResponse, toEcdsaSecp256k1VerifySignatureResponse, toEcdsaSecp256r1ComputePublicKeyResponse, toEcdsaSecp256r1ConstructSignatureResponse, toEcdsaSecp256r1RecoverPublicKeyResponse, toEcdsaSecp256r1VerifySignatureResponse, toGrumpkinAddResponse, toGrumpkinBatchMulResponse, toGrumpkinGetRandomFrResponse, toGrumpkinMulResponse, toGrumpkinReduce512Response, toMegaVkAsFieldsResponse, toPedersenCommitResponse, toPedersenHashBufferResponse, toPedersenHashResponse, toPoseidon2HashAccumulateResponse, toPoseidon2HashResponse, toPoseidon2PermutationResponse, toSchnorrComputePublicKeyResponse, toSchnorrConstructSignatureResponse, toSchnorrVerifySignatureResponse, toSecp256k1GetRandomFrResponse, toSecp256k1MulResponse, toSecp256k1Reduce512Response, toShutdownResponse, toSrsInitGrumpkinSrsResponse, toSrsInitSrsResponse, toVkAsFieldsResponse } from './api_types.js';
4
5
  async function msgpackCall(backend, input) { const inputBuffer = new Encoder({ useRecords: false }).pack(input); const encodedResult = await backend.call(inputBuffer); return new Decoder({ useRecords: false }).unpack(encodedResult); }
5
6
  export class AsyncApi {
7
+ backend;
6
8
  constructor(backend) {
7
9
  this.backend = backend;
8
10
  }
9
11
  circuitProve(command) {
10
12
  const msgpackCommand = fromCircuitProve(command);
11
13
  return msgpackCall(this.backend, [["CircuitProve", msgpackCommand]]).then(([variantName, result]) => {
14
+ if (variantName === 'ErrorResponse') {
15
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
16
+ }
12
17
  if (variantName !== 'CircuitProveResponse') {
13
- throw new Error(`Expected variant name 'CircuitProveResponse' but got '${variantName}'`);
18
+ throw new BBApiException(`Expected variant name 'CircuitProveResponse' but got '${variantName}'`);
14
19
  }
15
20
  return toCircuitProveResponse(result);
16
21
  });
@@ -18,8 +23,11 @@ export class AsyncApi {
18
23
  circuitComputeVk(command) {
19
24
  const msgpackCommand = fromCircuitComputeVk(command);
20
25
  return msgpackCall(this.backend, [["CircuitComputeVk", msgpackCommand]]).then(([variantName, result]) => {
26
+ if (variantName === 'ErrorResponse') {
27
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
28
+ }
21
29
  if (variantName !== 'CircuitComputeVkResponse') {
22
- throw new Error(`Expected variant name 'CircuitComputeVkResponse' but got '${variantName}'`);
30
+ throw new BBApiException(`Expected variant name 'CircuitComputeVkResponse' but got '${variantName}'`);
23
31
  }
24
32
  return toCircuitComputeVkResponse(result);
25
33
  });
@@ -27,8 +35,11 @@ export class AsyncApi {
27
35
  circuitStats(command) {
28
36
  const msgpackCommand = fromCircuitStats(command);
29
37
  return msgpackCall(this.backend, [["CircuitStats", msgpackCommand]]).then(([variantName, result]) => {
38
+ if (variantName === 'ErrorResponse') {
39
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
40
+ }
30
41
  if (variantName !== 'CircuitInfoResponse') {
31
- throw new Error(`Expected variant name 'CircuitInfoResponse' but got '${variantName}'`);
42
+ throw new BBApiException(`Expected variant name 'CircuitInfoResponse' but got '${variantName}'`);
32
43
  }
33
44
  return toCircuitInfoResponse(result);
34
45
  });
@@ -36,80 +47,107 @@ export class AsyncApi {
36
47
  circuitVerify(command) {
37
48
  const msgpackCommand = fromCircuitVerify(command);
38
49
  return msgpackCall(this.backend, [["CircuitVerify", msgpackCommand]]).then(([variantName, result]) => {
50
+ if (variantName === 'ErrorResponse') {
51
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
52
+ }
39
53
  if (variantName !== 'CircuitVerifyResponse') {
40
- throw new Error(`Expected variant name 'CircuitVerifyResponse' but got '${variantName}'`);
54
+ throw new BBApiException(`Expected variant name 'CircuitVerifyResponse' but got '${variantName}'`);
41
55
  }
42
56
  return toCircuitVerifyResponse(result);
43
57
  });
44
58
  }
45
- clientIvcComputeStandaloneVk(command) {
46
- const msgpackCommand = fromClientIvcComputeStandaloneVk(command);
47
- return msgpackCall(this.backend, [["ClientIvcComputeStandaloneVk", msgpackCommand]]).then(([variantName, result]) => {
48
- if (variantName !== 'ClientIvcComputeStandaloneVkResponse') {
49
- throw new Error(`Expected variant name 'ClientIvcComputeStandaloneVkResponse' but got '${variantName}'`);
59
+ chonkComputeStandaloneVk(command) {
60
+ const msgpackCommand = fromChonkComputeStandaloneVk(command);
61
+ return msgpackCall(this.backend, [["ChonkComputeStandaloneVk", msgpackCommand]]).then(([variantName, result]) => {
62
+ if (variantName === 'ErrorResponse') {
63
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
64
+ }
65
+ if (variantName !== 'ChonkComputeStandaloneVkResponse') {
66
+ throw new BBApiException(`Expected variant name 'ChonkComputeStandaloneVkResponse' but got '${variantName}'`);
50
67
  }
51
- return toClientIvcComputeStandaloneVkResponse(result);
68
+ return toChonkComputeStandaloneVkResponse(result);
52
69
  });
53
70
  }
54
- clientIvcComputeIvcVk(command) {
55
- const msgpackCommand = fromClientIvcComputeIvcVk(command);
56
- return msgpackCall(this.backend, [["ClientIvcComputeIvcVk", msgpackCommand]]).then(([variantName, result]) => {
57
- if (variantName !== 'ClientIvcComputeIvcVkResponse') {
58
- throw new Error(`Expected variant name 'ClientIvcComputeIvcVkResponse' but got '${variantName}'`);
71
+ chonkComputeIvcVk(command) {
72
+ const msgpackCommand = fromChonkComputeIvcVk(command);
73
+ return msgpackCall(this.backend, [["ChonkComputeIvcVk", msgpackCommand]]).then(([variantName, result]) => {
74
+ if (variantName === 'ErrorResponse') {
75
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
59
76
  }
60
- return toClientIvcComputeIvcVkResponse(result);
77
+ if (variantName !== 'ChonkComputeIvcVkResponse') {
78
+ throw new BBApiException(`Expected variant name 'ChonkComputeIvcVkResponse' but got '${variantName}'`);
79
+ }
80
+ return toChonkComputeIvcVkResponse(result);
61
81
  });
62
82
  }
63
- clientIvcStart(command) {
64
- const msgpackCommand = fromClientIvcStart(command);
65
- return msgpackCall(this.backend, [["ClientIvcStart", msgpackCommand]]).then(([variantName, result]) => {
66
- if (variantName !== 'ClientIvcStartResponse') {
67
- throw new Error(`Expected variant name 'ClientIvcStartResponse' but got '${variantName}'`);
83
+ chonkStart(command) {
84
+ const msgpackCommand = fromChonkStart(command);
85
+ return msgpackCall(this.backend, [["ChonkStart", msgpackCommand]]).then(([variantName, result]) => {
86
+ if (variantName === 'ErrorResponse') {
87
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
88
+ }
89
+ if (variantName !== 'ChonkStartResponse') {
90
+ throw new BBApiException(`Expected variant name 'ChonkStartResponse' but got '${variantName}'`);
68
91
  }
69
- return toClientIvcStartResponse(result);
92
+ return toChonkStartResponse(result);
70
93
  });
71
94
  }
72
- clientIvcLoad(command) {
73
- const msgpackCommand = fromClientIvcLoad(command);
74
- return msgpackCall(this.backend, [["ClientIvcLoad", msgpackCommand]]).then(([variantName, result]) => {
75
- if (variantName !== 'ClientIvcLoadResponse') {
76
- throw new Error(`Expected variant name 'ClientIvcLoadResponse' but got '${variantName}'`);
95
+ chonkLoad(command) {
96
+ const msgpackCommand = fromChonkLoad(command);
97
+ return msgpackCall(this.backend, [["ChonkLoad", msgpackCommand]]).then(([variantName, result]) => {
98
+ if (variantName === 'ErrorResponse') {
99
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
77
100
  }
78
- return toClientIvcLoadResponse(result);
101
+ if (variantName !== 'ChonkLoadResponse') {
102
+ throw new BBApiException(`Expected variant name 'ChonkLoadResponse' but got '${variantName}'`);
103
+ }
104
+ return toChonkLoadResponse(result);
79
105
  });
80
106
  }
81
- clientIvcAccumulate(command) {
82
- const msgpackCommand = fromClientIvcAccumulate(command);
83
- return msgpackCall(this.backend, [["ClientIvcAccumulate", msgpackCommand]]).then(([variantName, result]) => {
84
- if (variantName !== 'ClientIvcAccumulateResponse') {
85
- throw new Error(`Expected variant name 'ClientIvcAccumulateResponse' but got '${variantName}'`);
107
+ chonkAccumulate(command) {
108
+ const msgpackCommand = fromChonkAccumulate(command);
109
+ return msgpackCall(this.backend, [["ChonkAccumulate", msgpackCommand]]).then(([variantName, result]) => {
110
+ if (variantName === 'ErrorResponse') {
111
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
112
+ }
113
+ if (variantName !== 'ChonkAccumulateResponse') {
114
+ throw new BBApiException(`Expected variant name 'ChonkAccumulateResponse' but got '${variantName}'`);
86
115
  }
87
- return toClientIvcAccumulateResponse(result);
116
+ return toChonkAccumulateResponse(result);
88
117
  });
89
118
  }
90
- clientIvcProve(command) {
91
- const msgpackCommand = fromClientIvcProve(command);
92
- return msgpackCall(this.backend, [["ClientIvcProve", msgpackCommand]]).then(([variantName, result]) => {
93
- if (variantName !== 'ClientIvcProveResponse') {
94
- throw new Error(`Expected variant name 'ClientIvcProveResponse' but got '${variantName}'`);
119
+ chonkProve(command) {
120
+ const msgpackCommand = fromChonkProve(command);
121
+ return msgpackCall(this.backend, [["ChonkProve", msgpackCommand]]).then(([variantName, result]) => {
122
+ if (variantName === 'ErrorResponse') {
123
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
95
124
  }
96
- return toClientIvcProveResponse(result);
125
+ if (variantName !== 'ChonkProveResponse') {
126
+ throw new BBApiException(`Expected variant name 'ChonkProveResponse' but got '${variantName}'`);
127
+ }
128
+ return toChonkProveResponse(result);
97
129
  });
98
130
  }
99
- clientIvcVerify(command) {
100
- const msgpackCommand = fromClientIvcVerify(command);
101
- return msgpackCall(this.backend, [["ClientIvcVerify", msgpackCommand]]).then(([variantName, result]) => {
102
- if (variantName !== 'ClientIvcVerifyResponse') {
103
- throw new Error(`Expected variant name 'ClientIvcVerifyResponse' but got '${variantName}'`);
131
+ chonkVerify(command) {
132
+ const msgpackCommand = fromChonkVerify(command);
133
+ return msgpackCall(this.backend, [["ChonkVerify", msgpackCommand]]).then(([variantName, result]) => {
134
+ if (variantName === 'ErrorResponse') {
135
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
136
+ }
137
+ if (variantName !== 'ChonkVerifyResponse') {
138
+ throw new BBApiException(`Expected variant name 'ChonkVerifyResponse' but got '${variantName}'`);
104
139
  }
105
- return toClientIvcVerifyResponse(result);
140
+ return toChonkVerifyResponse(result);
106
141
  });
107
142
  }
108
143
  vkAsFields(command) {
109
144
  const msgpackCommand = fromVkAsFields(command);
110
145
  return msgpackCall(this.backend, [["VkAsFields", msgpackCommand]]).then(([variantName, result]) => {
146
+ if (variantName === 'ErrorResponse') {
147
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
148
+ }
111
149
  if (variantName !== 'VkAsFieldsResponse') {
112
- throw new Error(`Expected variant name 'VkAsFieldsResponse' but got '${variantName}'`);
150
+ throw new BBApiException(`Expected variant name 'VkAsFieldsResponse' but got '${variantName}'`);
113
151
  }
114
152
  return toVkAsFieldsResponse(result);
115
153
  });
@@ -117,8 +155,11 @@ export class AsyncApi {
117
155
  megaVkAsFields(command) {
118
156
  const msgpackCommand = fromMegaVkAsFields(command);
119
157
  return msgpackCall(this.backend, [["MegaVkAsFields", msgpackCommand]]).then(([variantName, result]) => {
158
+ if (variantName === 'ErrorResponse') {
159
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
160
+ }
120
161
  if (variantName !== 'MegaVkAsFieldsResponse') {
121
- throw new Error(`Expected variant name 'MegaVkAsFieldsResponse' but got '${variantName}'`);
162
+ throw new BBApiException(`Expected variant name 'MegaVkAsFieldsResponse' but got '${variantName}'`);
122
163
  }
123
164
  return toMegaVkAsFieldsResponse(result);
124
165
  });
@@ -126,35 +167,47 @@ export class AsyncApi {
126
167
  circuitWriteSolidityVerifier(command) {
127
168
  const msgpackCommand = fromCircuitWriteSolidityVerifier(command);
128
169
  return msgpackCall(this.backend, [["CircuitWriteSolidityVerifier", msgpackCommand]]).then(([variantName, result]) => {
170
+ if (variantName === 'ErrorResponse') {
171
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
172
+ }
129
173
  if (variantName !== 'CircuitWriteSolidityVerifierResponse') {
130
- throw new Error(`Expected variant name 'CircuitWriteSolidityVerifierResponse' but got '${variantName}'`);
174
+ throw new BBApiException(`Expected variant name 'CircuitWriteSolidityVerifierResponse' but got '${variantName}'`);
131
175
  }
132
176
  return toCircuitWriteSolidityVerifierResponse(result);
133
177
  });
134
178
  }
135
- clientIvcCheckPrecomputedVk(command) {
136
- const msgpackCommand = fromClientIvcCheckPrecomputedVk(command);
137
- return msgpackCall(this.backend, [["ClientIvcCheckPrecomputedVk", msgpackCommand]]).then(([variantName, result]) => {
138
- if (variantName !== 'ClientIvcCheckPrecomputedVkResponse') {
139
- throw new Error(`Expected variant name 'ClientIvcCheckPrecomputedVkResponse' but got '${variantName}'`);
179
+ chonkCheckPrecomputedVk(command) {
180
+ const msgpackCommand = fromChonkCheckPrecomputedVk(command);
181
+ return msgpackCall(this.backend, [["ChonkCheckPrecomputedVk", msgpackCommand]]).then(([variantName, result]) => {
182
+ if (variantName === 'ErrorResponse') {
183
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
140
184
  }
141
- return toClientIvcCheckPrecomputedVkResponse(result);
185
+ if (variantName !== 'ChonkCheckPrecomputedVkResponse') {
186
+ throw new BBApiException(`Expected variant name 'ChonkCheckPrecomputedVkResponse' but got '${variantName}'`);
187
+ }
188
+ return toChonkCheckPrecomputedVkResponse(result);
142
189
  });
143
190
  }
144
- clientIvcStats(command) {
145
- const msgpackCommand = fromClientIvcStats(command);
146
- return msgpackCall(this.backend, [["ClientIvcStats", msgpackCommand]]).then(([variantName, result]) => {
147
- if (variantName !== 'ClientIvcStatsResponse') {
148
- throw new Error(`Expected variant name 'ClientIvcStatsResponse' but got '${variantName}'`);
191
+ chonkStats(command) {
192
+ const msgpackCommand = fromChonkStats(command);
193
+ return msgpackCall(this.backend, [["ChonkStats", msgpackCommand]]).then(([variantName, result]) => {
194
+ if (variantName === 'ErrorResponse') {
195
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
196
+ }
197
+ if (variantName !== 'ChonkStatsResponse') {
198
+ throw new BBApiException(`Expected variant name 'ChonkStatsResponse' but got '${variantName}'`);
149
199
  }
150
- return toClientIvcStatsResponse(result);
200
+ return toChonkStatsResponse(result);
151
201
  });
152
202
  }
153
203
  poseidon2Hash(command) {
154
204
  const msgpackCommand = fromPoseidon2Hash(command);
155
205
  return msgpackCall(this.backend, [["Poseidon2Hash", msgpackCommand]]).then(([variantName, result]) => {
206
+ if (variantName === 'ErrorResponse') {
207
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
208
+ }
156
209
  if (variantName !== 'Poseidon2HashResponse') {
157
- throw new Error(`Expected variant name 'Poseidon2HashResponse' but got '${variantName}'`);
210
+ throw new BBApiException(`Expected variant name 'Poseidon2HashResponse' but got '${variantName}'`);
158
211
  }
159
212
  return toPoseidon2HashResponse(result);
160
213
  });
@@ -162,8 +215,11 @@ export class AsyncApi {
162
215
  poseidon2Permutation(command) {
163
216
  const msgpackCommand = fromPoseidon2Permutation(command);
164
217
  return msgpackCall(this.backend, [["Poseidon2Permutation", msgpackCommand]]).then(([variantName, result]) => {
218
+ if (variantName === 'ErrorResponse') {
219
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
220
+ }
165
221
  if (variantName !== 'Poseidon2PermutationResponse') {
166
- throw new Error(`Expected variant name 'Poseidon2PermutationResponse' but got '${variantName}'`);
222
+ throw new BBApiException(`Expected variant name 'Poseidon2PermutationResponse' but got '${variantName}'`);
167
223
  }
168
224
  return toPoseidon2PermutationResponse(result);
169
225
  });
@@ -171,8 +227,11 @@ export class AsyncApi {
171
227
  poseidon2HashAccumulate(command) {
172
228
  const msgpackCommand = fromPoseidon2HashAccumulate(command);
173
229
  return msgpackCall(this.backend, [["Poseidon2HashAccumulate", msgpackCommand]]).then(([variantName, result]) => {
230
+ if (variantName === 'ErrorResponse') {
231
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
232
+ }
174
233
  if (variantName !== 'Poseidon2HashAccumulateResponse') {
175
- throw new Error(`Expected variant name 'Poseidon2HashAccumulateResponse' but got '${variantName}'`);
234
+ throw new BBApiException(`Expected variant name 'Poseidon2HashAccumulateResponse' but got '${variantName}'`);
176
235
  }
177
236
  return toPoseidon2HashAccumulateResponse(result);
178
237
  });
@@ -180,8 +239,11 @@ export class AsyncApi {
180
239
  pedersenCommit(command) {
181
240
  const msgpackCommand = fromPedersenCommit(command);
182
241
  return msgpackCall(this.backend, [["PedersenCommit", msgpackCommand]]).then(([variantName, result]) => {
242
+ if (variantName === 'ErrorResponse') {
243
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
244
+ }
183
245
  if (variantName !== 'PedersenCommitResponse') {
184
- throw new Error(`Expected variant name 'PedersenCommitResponse' but got '${variantName}'`);
246
+ throw new BBApiException(`Expected variant name 'PedersenCommitResponse' but got '${variantName}'`);
185
247
  }
186
248
  return toPedersenCommitResponse(result);
187
249
  });
@@ -189,8 +251,11 @@ export class AsyncApi {
189
251
  pedersenHash(command) {
190
252
  const msgpackCommand = fromPedersenHash(command);
191
253
  return msgpackCall(this.backend, [["PedersenHash", msgpackCommand]]).then(([variantName, result]) => {
254
+ if (variantName === 'ErrorResponse') {
255
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
256
+ }
192
257
  if (variantName !== 'PedersenHashResponse') {
193
- throw new Error(`Expected variant name 'PedersenHashResponse' but got '${variantName}'`);
258
+ throw new BBApiException(`Expected variant name 'PedersenHashResponse' but got '${variantName}'`);
194
259
  }
195
260
  return toPedersenHashResponse(result);
196
261
  });
@@ -198,8 +263,11 @@ export class AsyncApi {
198
263
  pedersenHashBuffer(command) {
199
264
  const msgpackCommand = fromPedersenHashBuffer(command);
200
265
  return msgpackCall(this.backend, [["PedersenHashBuffer", msgpackCommand]]).then(([variantName, result]) => {
266
+ if (variantName === 'ErrorResponse') {
267
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
268
+ }
201
269
  if (variantName !== 'PedersenHashBufferResponse') {
202
- throw new Error(`Expected variant name 'PedersenHashBufferResponse' but got '${variantName}'`);
270
+ throw new BBApiException(`Expected variant name 'PedersenHashBufferResponse' but got '${variantName}'`);
203
271
  }
204
272
  return toPedersenHashBufferResponse(result);
205
273
  });
@@ -207,8 +275,11 @@ export class AsyncApi {
207
275
  blake2s(command) {
208
276
  const msgpackCommand = fromBlake2s(command);
209
277
  return msgpackCall(this.backend, [["Blake2s", msgpackCommand]]).then(([variantName, result]) => {
278
+ if (variantName === 'ErrorResponse') {
279
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
280
+ }
210
281
  if (variantName !== 'Blake2sResponse') {
211
- throw new Error(`Expected variant name 'Blake2sResponse' but got '${variantName}'`);
282
+ throw new BBApiException(`Expected variant name 'Blake2sResponse' but got '${variantName}'`);
212
283
  }
213
284
  return toBlake2sResponse(result);
214
285
  });
@@ -216,8 +287,11 @@ export class AsyncApi {
216
287
  blake2sToField(command) {
217
288
  const msgpackCommand = fromBlake2sToField(command);
218
289
  return msgpackCall(this.backend, [["Blake2sToField", msgpackCommand]]).then(([variantName, result]) => {
290
+ if (variantName === 'ErrorResponse') {
291
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
292
+ }
219
293
  if (variantName !== 'Blake2sToFieldResponse') {
220
- throw new Error(`Expected variant name 'Blake2sToFieldResponse' but got '${variantName}'`);
294
+ throw new BBApiException(`Expected variant name 'Blake2sToFieldResponse' but got '${variantName}'`);
221
295
  }
222
296
  return toBlake2sToFieldResponse(result);
223
297
  });
@@ -225,8 +299,11 @@ export class AsyncApi {
225
299
  aesEncrypt(command) {
226
300
  const msgpackCommand = fromAesEncrypt(command);
227
301
  return msgpackCall(this.backend, [["AesEncrypt", msgpackCommand]]).then(([variantName, result]) => {
302
+ if (variantName === 'ErrorResponse') {
303
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
304
+ }
228
305
  if (variantName !== 'AesEncryptResponse') {
229
- throw new Error(`Expected variant name 'AesEncryptResponse' but got '${variantName}'`);
306
+ throw new BBApiException(`Expected variant name 'AesEncryptResponse' but got '${variantName}'`);
230
307
  }
231
308
  return toAesEncryptResponse(result);
232
309
  });
@@ -234,8 +311,11 @@ export class AsyncApi {
234
311
  aesDecrypt(command) {
235
312
  const msgpackCommand = fromAesDecrypt(command);
236
313
  return msgpackCall(this.backend, [["AesDecrypt", msgpackCommand]]).then(([variantName, result]) => {
314
+ if (variantName === 'ErrorResponse') {
315
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
316
+ }
237
317
  if (variantName !== 'AesDecryptResponse') {
238
- throw new Error(`Expected variant name 'AesDecryptResponse' but got '${variantName}'`);
318
+ throw new BBApiException(`Expected variant name 'AesDecryptResponse' but got '${variantName}'`);
239
319
  }
240
320
  return toAesDecryptResponse(result);
241
321
  });
@@ -243,8 +323,11 @@ export class AsyncApi {
243
323
  grumpkinMul(command) {
244
324
  const msgpackCommand = fromGrumpkinMul(command);
245
325
  return msgpackCall(this.backend, [["GrumpkinMul", msgpackCommand]]).then(([variantName, result]) => {
326
+ if (variantName === 'ErrorResponse') {
327
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
328
+ }
246
329
  if (variantName !== 'GrumpkinMulResponse') {
247
- throw new Error(`Expected variant name 'GrumpkinMulResponse' but got '${variantName}'`);
330
+ throw new BBApiException(`Expected variant name 'GrumpkinMulResponse' but got '${variantName}'`);
248
331
  }
249
332
  return toGrumpkinMulResponse(result);
250
333
  });
@@ -252,8 +335,11 @@ export class AsyncApi {
252
335
  grumpkinAdd(command) {
253
336
  const msgpackCommand = fromGrumpkinAdd(command);
254
337
  return msgpackCall(this.backend, [["GrumpkinAdd", msgpackCommand]]).then(([variantName, result]) => {
338
+ if (variantName === 'ErrorResponse') {
339
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
340
+ }
255
341
  if (variantName !== 'GrumpkinAddResponse') {
256
- throw new Error(`Expected variant name 'GrumpkinAddResponse' but got '${variantName}'`);
342
+ throw new BBApiException(`Expected variant name 'GrumpkinAddResponse' but got '${variantName}'`);
257
343
  }
258
344
  return toGrumpkinAddResponse(result);
259
345
  });
@@ -261,8 +347,11 @@ export class AsyncApi {
261
347
  grumpkinBatchMul(command) {
262
348
  const msgpackCommand = fromGrumpkinBatchMul(command);
263
349
  return msgpackCall(this.backend, [["GrumpkinBatchMul", msgpackCommand]]).then(([variantName, result]) => {
350
+ if (variantName === 'ErrorResponse') {
351
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
352
+ }
264
353
  if (variantName !== 'GrumpkinBatchMulResponse') {
265
- throw new Error(`Expected variant name 'GrumpkinBatchMulResponse' but got '${variantName}'`);
354
+ throw new BBApiException(`Expected variant name 'GrumpkinBatchMulResponse' but got '${variantName}'`);
266
355
  }
267
356
  return toGrumpkinBatchMulResponse(result);
268
357
  });
@@ -270,8 +359,11 @@ export class AsyncApi {
270
359
  grumpkinGetRandomFr(command) {
271
360
  const msgpackCommand = fromGrumpkinGetRandomFr(command);
272
361
  return msgpackCall(this.backend, [["GrumpkinGetRandomFr", msgpackCommand]]).then(([variantName, result]) => {
362
+ if (variantName === 'ErrorResponse') {
363
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
364
+ }
273
365
  if (variantName !== 'GrumpkinGetRandomFrResponse') {
274
- throw new Error(`Expected variant name 'GrumpkinGetRandomFrResponse' but got '${variantName}'`);
366
+ throw new BBApiException(`Expected variant name 'GrumpkinGetRandomFrResponse' but got '${variantName}'`);
275
367
  }
276
368
  return toGrumpkinGetRandomFrResponse(result);
277
369
  });
@@ -279,8 +371,11 @@ export class AsyncApi {
279
371
  grumpkinReduce512(command) {
280
372
  const msgpackCommand = fromGrumpkinReduce512(command);
281
373
  return msgpackCall(this.backend, [["GrumpkinReduce512", msgpackCommand]]).then(([variantName, result]) => {
374
+ if (variantName === 'ErrorResponse') {
375
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
376
+ }
282
377
  if (variantName !== 'GrumpkinReduce512Response') {
283
- throw new Error(`Expected variant name 'GrumpkinReduce512Response' but got '${variantName}'`);
378
+ throw new BBApiException(`Expected variant name 'GrumpkinReduce512Response' but got '${variantName}'`);
284
379
  }
285
380
  return toGrumpkinReduce512Response(result);
286
381
  });
@@ -288,8 +383,11 @@ export class AsyncApi {
288
383
  secp256k1Mul(command) {
289
384
  const msgpackCommand = fromSecp256k1Mul(command);
290
385
  return msgpackCall(this.backend, [["Secp256k1Mul", msgpackCommand]]).then(([variantName, result]) => {
386
+ if (variantName === 'ErrorResponse') {
387
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
388
+ }
291
389
  if (variantName !== 'Secp256k1MulResponse') {
292
- throw new Error(`Expected variant name 'Secp256k1MulResponse' but got '${variantName}'`);
390
+ throw new BBApiException(`Expected variant name 'Secp256k1MulResponse' but got '${variantName}'`);
293
391
  }
294
392
  return toSecp256k1MulResponse(result);
295
393
  });
@@ -297,8 +395,11 @@ export class AsyncApi {
297
395
  secp256k1GetRandomFr(command) {
298
396
  const msgpackCommand = fromSecp256k1GetRandomFr(command);
299
397
  return msgpackCall(this.backend, [["Secp256k1GetRandomFr", msgpackCommand]]).then(([variantName, result]) => {
398
+ if (variantName === 'ErrorResponse') {
399
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
400
+ }
300
401
  if (variantName !== 'Secp256k1GetRandomFrResponse') {
301
- throw new Error(`Expected variant name 'Secp256k1GetRandomFrResponse' but got '${variantName}'`);
402
+ throw new BBApiException(`Expected variant name 'Secp256k1GetRandomFrResponse' but got '${variantName}'`);
302
403
  }
303
404
  return toSecp256k1GetRandomFrResponse(result);
304
405
  });
@@ -306,8 +407,11 @@ export class AsyncApi {
306
407
  secp256k1Reduce512(command) {
307
408
  const msgpackCommand = fromSecp256k1Reduce512(command);
308
409
  return msgpackCall(this.backend, [["Secp256k1Reduce512", msgpackCommand]]).then(([variantName, result]) => {
410
+ if (variantName === 'ErrorResponse') {
411
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
412
+ }
309
413
  if (variantName !== 'Secp256k1Reduce512Response') {
310
- throw new Error(`Expected variant name 'Secp256k1Reduce512Response' but got '${variantName}'`);
414
+ throw new BBApiException(`Expected variant name 'Secp256k1Reduce512Response' but got '${variantName}'`);
311
415
  }
312
416
  return toSecp256k1Reduce512Response(result);
313
417
  });
@@ -315,17 +419,83 @@ export class AsyncApi {
315
419
  bn254FrSqrt(command) {
316
420
  const msgpackCommand = fromBn254FrSqrt(command);
317
421
  return msgpackCall(this.backend, [["Bn254FrSqrt", msgpackCommand]]).then(([variantName, result]) => {
422
+ if (variantName === 'ErrorResponse') {
423
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
424
+ }
318
425
  if (variantName !== 'Bn254FrSqrtResponse') {
319
- throw new Error(`Expected variant name 'Bn254FrSqrtResponse' but got '${variantName}'`);
426
+ throw new BBApiException(`Expected variant name 'Bn254FrSqrtResponse' but got '${variantName}'`);
320
427
  }
321
428
  return toBn254FrSqrtResponse(result);
322
429
  });
323
430
  }
431
+ bn254FqSqrt(command) {
432
+ const msgpackCommand = fromBn254FqSqrt(command);
433
+ return msgpackCall(this.backend, [["Bn254FqSqrt", msgpackCommand]]).then(([variantName, result]) => {
434
+ if (variantName === 'ErrorResponse') {
435
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
436
+ }
437
+ if (variantName !== 'Bn254FqSqrtResponse') {
438
+ throw new BBApiException(`Expected variant name 'Bn254FqSqrtResponse' but got '${variantName}'`);
439
+ }
440
+ return toBn254FqSqrtResponse(result);
441
+ });
442
+ }
443
+ bn254G1Mul(command) {
444
+ const msgpackCommand = fromBn254G1Mul(command);
445
+ return msgpackCall(this.backend, [["Bn254G1Mul", msgpackCommand]]).then(([variantName, result]) => {
446
+ if (variantName === 'ErrorResponse') {
447
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
448
+ }
449
+ if (variantName !== 'Bn254G1MulResponse') {
450
+ throw new BBApiException(`Expected variant name 'Bn254G1MulResponse' but got '${variantName}'`);
451
+ }
452
+ return toBn254G1MulResponse(result);
453
+ });
454
+ }
455
+ bn254G2Mul(command) {
456
+ const msgpackCommand = fromBn254G2Mul(command);
457
+ return msgpackCall(this.backend, [["Bn254G2Mul", msgpackCommand]]).then(([variantName, result]) => {
458
+ if (variantName === 'ErrorResponse') {
459
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
460
+ }
461
+ if (variantName !== 'Bn254G2MulResponse') {
462
+ throw new BBApiException(`Expected variant name 'Bn254G2MulResponse' but got '${variantName}'`);
463
+ }
464
+ return toBn254G2MulResponse(result);
465
+ });
466
+ }
467
+ bn254G1IsOnCurve(command) {
468
+ const msgpackCommand = fromBn254G1IsOnCurve(command);
469
+ return msgpackCall(this.backend, [["Bn254G1IsOnCurve", msgpackCommand]]).then(([variantName, result]) => {
470
+ if (variantName === 'ErrorResponse') {
471
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
472
+ }
473
+ if (variantName !== 'Bn254G1IsOnCurveResponse') {
474
+ throw new BBApiException(`Expected variant name 'Bn254G1IsOnCurveResponse' but got '${variantName}'`);
475
+ }
476
+ return toBn254G1IsOnCurveResponse(result);
477
+ });
478
+ }
479
+ bn254G1FromCompressed(command) {
480
+ const msgpackCommand = fromBn254G1FromCompressed(command);
481
+ return msgpackCall(this.backend, [["Bn254G1FromCompressed", msgpackCommand]]).then(([variantName, result]) => {
482
+ if (variantName === 'ErrorResponse') {
483
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
484
+ }
485
+ if (variantName !== 'Bn254G1FromCompressedResponse') {
486
+ throw new BBApiException(`Expected variant name 'Bn254G1FromCompressedResponse' but got '${variantName}'`);
487
+ }
488
+ return toBn254G1FromCompressedResponse(result);
489
+ });
490
+ }
324
491
  schnorrComputePublicKey(command) {
325
492
  const msgpackCommand = fromSchnorrComputePublicKey(command);
326
493
  return msgpackCall(this.backend, [["SchnorrComputePublicKey", msgpackCommand]]).then(([variantName, result]) => {
494
+ if (variantName === 'ErrorResponse') {
495
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
496
+ }
327
497
  if (variantName !== 'SchnorrComputePublicKeyResponse') {
328
- throw new Error(`Expected variant name 'SchnorrComputePublicKeyResponse' but got '${variantName}'`);
498
+ throw new BBApiException(`Expected variant name 'SchnorrComputePublicKeyResponse' but got '${variantName}'`);
329
499
  }
330
500
  return toSchnorrComputePublicKeyResponse(result);
331
501
  });
@@ -333,8 +503,11 @@ export class AsyncApi {
333
503
  schnorrConstructSignature(command) {
334
504
  const msgpackCommand = fromSchnorrConstructSignature(command);
335
505
  return msgpackCall(this.backend, [["SchnorrConstructSignature", msgpackCommand]]).then(([variantName, result]) => {
506
+ if (variantName === 'ErrorResponse') {
507
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
508
+ }
336
509
  if (variantName !== 'SchnorrConstructSignatureResponse') {
337
- throw new Error(`Expected variant name 'SchnorrConstructSignatureResponse' but got '${variantName}'`);
510
+ throw new BBApiException(`Expected variant name 'SchnorrConstructSignatureResponse' but got '${variantName}'`);
338
511
  }
339
512
  return toSchnorrConstructSignatureResponse(result);
340
513
  });
@@ -342,8 +515,11 @@ export class AsyncApi {
342
515
  schnorrVerifySignature(command) {
343
516
  const msgpackCommand = fromSchnorrVerifySignature(command);
344
517
  return msgpackCall(this.backend, [["SchnorrVerifySignature", msgpackCommand]]).then(([variantName, result]) => {
518
+ if (variantName === 'ErrorResponse') {
519
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
520
+ }
345
521
  if (variantName !== 'SchnorrVerifySignatureResponse') {
346
- throw new Error(`Expected variant name 'SchnorrVerifySignatureResponse' but got '${variantName}'`);
522
+ throw new BBApiException(`Expected variant name 'SchnorrVerifySignatureResponse' but got '${variantName}'`);
347
523
  }
348
524
  return toSchnorrVerifySignatureResponse(result);
349
525
  });
@@ -351,8 +527,11 @@ export class AsyncApi {
351
527
  ecdsaSecp256k1ComputePublicKey(command) {
352
528
  const msgpackCommand = fromEcdsaSecp256k1ComputePublicKey(command);
353
529
  return msgpackCall(this.backend, [["EcdsaSecp256k1ComputePublicKey", msgpackCommand]]).then(([variantName, result]) => {
530
+ if (variantName === 'ErrorResponse') {
531
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
532
+ }
354
533
  if (variantName !== 'EcdsaSecp256k1ComputePublicKeyResponse') {
355
- throw new Error(`Expected variant name 'EcdsaSecp256k1ComputePublicKeyResponse' but got '${variantName}'`);
534
+ throw new BBApiException(`Expected variant name 'EcdsaSecp256k1ComputePublicKeyResponse' but got '${variantName}'`);
356
535
  }
357
536
  return toEcdsaSecp256k1ComputePublicKeyResponse(result);
358
537
  });
@@ -360,8 +539,11 @@ export class AsyncApi {
360
539
  ecdsaSecp256r1ComputePublicKey(command) {
361
540
  const msgpackCommand = fromEcdsaSecp256r1ComputePublicKey(command);
362
541
  return msgpackCall(this.backend, [["EcdsaSecp256r1ComputePublicKey", msgpackCommand]]).then(([variantName, result]) => {
542
+ if (variantName === 'ErrorResponse') {
543
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
544
+ }
363
545
  if (variantName !== 'EcdsaSecp256r1ComputePublicKeyResponse') {
364
- throw new Error(`Expected variant name 'EcdsaSecp256r1ComputePublicKeyResponse' but got '${variantName}'`);
546
+ throw new BBApiException(`Expected variant name 'EcdsaSecp256r1ComputePublicKeyResponse' but got '${variantName}'`);
365
547
  }
366
548
  return toEcdsaSecp256r1ComputePublicKeyResponse(result);
367
549
  });
@@ -369,8 +551,11 @@ export class AsyncApi {
369
551
  ecdsaSecp256k1ConstructSignature(command) {
370
552
  const msgpackCommand = fromEcdsaSecp256k1ConstructSignature(command);
371
553
  return msgpackCall(this.backend, [["EcdsaSecp256k1ConstructSignature", msgpackCommand]]).then(([variantName, result]) => {
554
+ if (variantName === 'ErrorResponse') {
555
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
556
+ }
372
557
  if (variantName !== 'EcdsaSecp256k1ConstructSignatureResponse') {
373
- throw new Error(`Expected variant name 'EcdsaSecp256k1ConstructSignatureResponse' but got '${variantName}'`);
558
+ throw new BBApiException(`Expected variant name 'EcdsaSecp256k1ConstructSignatureResponse' but got '${variantName}'`);
374
559
  }
375
560
  return toEcdsaSecp256k1ConstructSignatureResponse(result);
376
561
  });
@@ -378,8 +563,11 @@ export class AsyncApi {
378
563
  ecdsaSecp256r1ConstructSignature(command) {
379
564
  const msgpackCommand = fromEcdsaSecp256r1ConstructSignature(command);
380
565
  return msgpackCall(this.backend, [["EcdsaSecp256r1ConstructSignature", msgpackCommand]]).then(([variantName, result]) => {
566
+ if (variantName === 'ErrorResponse') {
567
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
568
+ }
381
569
  if (variantName !== 'EcdsaSecp256r1ConstructSignatureResponse') {
382
- throw new Error(`Expected variant name 'EcdsaSecp256r1ConstructSignatureResponse' but got '${variantName}'`);
570
+ throw new BBApiException(`Expected variant name 'EcdsaSecp256r1ConstructSignatureResponse' but got '${variantName}'`);
383
571
  }
384
572
  return toEcdsaSecp256r1ConstructSignatureResponse(result);
385
573
  });
@@ -387,8 +575,11 @@ export class AsyncApi {
387
575
  ecdsaSecp256k1RecoverPublicKey(command) {
388
576
  const msgpackCommand = fromEcdsaSecp256k1RecoverPublicKey(command);
389
577
  return msgpackCall(this.backend, [["EcdsaSecp256k1RecoverPublicKey", msgpackCommand]]).then(([variantName, result]) => {
578
+ if (variantName === 'ErrorResponse') {
579
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
580
+ }
390
581
  if (variantName !== 'EcdsaSecp256k1RecoverPublicKeyResponse') {
391
- throw new Error(`Expected variant name 'EcdsaSecp256k1RecoverPublicKeyResponse' but got '${variantName}'`);
582
+ throw new BBApiException(`Expected variant name 'EcdsaSecp256k1RecoverPublicKeyResponse' but got '${variantName}'`);
392
583
  }
393
584
  return toEcdsaSecp256k1RecoverPublicKeyResponse(result);
394
585
  });
@@ -396,8 +587,11 @@ export class AsyncApi {
396
587
  ecdsaSecp256r1RecoverPublicKey(command) {
397
588
  const msgpackCommand = fromEcdsaSecp256r1RecoverPublicKey(command);
398
589
  return msgpackCall(this.backend, [["EcdsaSecp256r1RecoverPublicKey", msgpackCommand]]).then(([variantName, result]) => {
590
+ if (variantName === 'ErrorResponse') {
591
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
592
+ }
399
593
  if (variantName !== 'EcdsaSecp256r1RecoverPublicKeyResponse') {
400
- throw new Error(`Expected variant name 'EcdsaSecp256r1RecoverPublicKeyResponse' but got '${variantName}'`);
594
+ throw new BBApiException(`Expected variant name 'EcdsaSecp256r1RecoverPublicKeyResponse' but got '${variantName}'`);
401
595
  }
402
596
  return toEcdsaSecp256r1RecoverPublicKeyResponse(result);
403
597
  });
@@ -405,8 +599,11 @@ export class AsyncApi {
405
599
  ecdsaSecp256k1VerifySignature(command) {
406
600
  const msgpackCommand = fromEcdsaSecp256k1VerifySignature(command);
407
601
  return msgpackCall(this.backend, [["EcdsaSecp256k1VerifySignature", msgpackCommand]]).then(([variantName, result]) => {
602
+ if (variantName === 'ErrorResponse') {
603
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
604
+ }
408
605
  if (variantName !== 'EcdsaSecp256k1VerifySignatureResponse') {
409
- throw new Error(`Expected variant name 'EcdsaSecp256k1VerifySignatureResponse' but got '${variantName}'`);
606
+ throw new BBApiException(`Expected variant name 'EcdsaSecp256k1VerifySignatureResponse' but got '${variantName}'`);
410
607
  }
411
608
  return toEcdsaSecp256k1VerifySignatureResponse(result);
412
609
  });
@@ -414,8 +611,11 @@ export class AsyncApi {
414
611
  ecdsaSecp256r1VerifySignature(command) {
415
612
  const msgpackCommand = fromEcdsaSecp256r1VerifySignature(command);
416
613
  return msgpackCall(this.backend, [["EcdsaSecp256r1VerifySignature", msgpackCommand]]).then(([variantName, result]) => {
614
+ if (variantName === 'ErrorResponse') {
615
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
616
+ }
417
617
  if (variantName !== 'EcdsaSecp256r1VerifySignatureResponse') {
418
- throw new Error(`Expected variant name 'EcdsaSecp256r1VerifySignatureResponse' but got '${variantName}'`);
618
+ throw new BBApiException(`Expected variant name 'EcdsaSecp256r1VerifySignatureResponse' but got '${variantName}'`);
419
619
  }
420
620
  return toEcdsaSecp256r1VerifySignatureResponse(result);
421
621
  });
@@ -423,8 +623,11 @@ export class AsyncApi {
423
623
  srsInitSrs(command) {
424
624
  const msgpackCommand = fromSrsInitSrs(command);
425
625
  return msgpackCall(this.backend, [["SrsInitSrs", msgpackCommand]]).then(([variantName, result]) => {
626
+ if (variantName === 'ErrorResponse') {
627
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
628
+ }
426
629
  if (variantName !== 'SrsInitSrsResponse') {
427
- throw new Error(`Expected variant name 'SrsInitSrsResponse' but got '${variantName}'`);
630
+ throw new BBApiException(`Expected variant name 'SrsInitSrsResponse' but got '${variantName}'`);
428
631
  }
429
632
  return toSrsInitSrsResponse(result);
430
633
  });
@@ -432,8 +635,11 @@ export class AsyncApi {
432
635
  srsInitGrumpkinSrs(command) {
433
636
  const msgpackCommand = fromSrsInitGrumpkinSrs(command);
434
637
  return msgpackCall(this.backend, [["SrsInitGrumpkinSrs", msgpackCommand]]).then(([variantName, result]) => {
638
+ if (variantName === 'ErrorResponse') {
639
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
640
+ }
435
641
  if (variantName !== 'SrsInitGrumpkinSrsResponse') {
436
- throw new Error(`Expected variant name 'SrsInitGrumpkinSrsResponse' but got '${variantName}'`);
642
+ throw new BBApiException(`Expected variant name 'SrsInitGrumpkinSrsResponse' but got '${variantName}'`);
437
643
  }
438
644
  return toSrsInitGrumpkinSrsResponse(result);
439
645
  });
@@ -441,8 +647,11 @@ export class AsyncApi {
441
647
  shutdown(command) {
442
648
  const msgpackCommand = fromShutdown(command);
443
649
  return msgpackCall(this.backend, [["Shutdown", msgpackCommand]]).then(([variantName, result]) => {
650
+ if (variantName === 'ErrorResponse') {
651
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
652
+ }
444
653
  if (variantName !== 'ShutdownResponse') {
445
- throw new Error(`Expected variant name 'ShutdownResponse' but got '${variantName}'`);
654
+ throw new BBApiException(`Expected variant name 'ShutdownResponse' but got '${variantName}'`);
446
655
  }
447
656
  return toShutdownResponse(result);
448
657
  });
@@ -451,4 +660,4 @@ export class AsyncApi {
451
660
  return this.backend.destroy ? this.backend.destroy() : Promise.resolve();
452
661
  }
453
662
  }
454
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXN5bmMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY2JpbmQvZ2VuZXJhdGVkL2FzeW5jLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG1DQUFtQztBQUduQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUM1QyxPQUFPLEVBQTYrRSxjQUFjLEVBQUUsY0FBYyxFQUFFLFdBQVcsRUFBRSxrQkFBa0IsRUFBRSxlQUFlLEVBQUUsb0JBQW9CLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUsZ0NBQWdDLEVBQUUsdUJBQXVCLEVBQUUsK0JBQStCLEVBQUUseUJBQXlCLEVBQUUsZ0NBQWdDLEVBQUUsaUJBQWlCLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsbUJBQW1CLEVBQUUsa0NBQWtDLEVBQUUsb0NBQW9DLEVBQUUsa0NBQWtDLEVBQUUsaUNBQWlDLEVBQUUsa0NBQWtDLEVBQUUsb0NBQW9DLEVBQUUsa0NBQWtDLEVBQUUsaUNBQWlDLEVBQUUsZUFBZSxFQUFFLG9CQUFvQixFQUFFLHVCQUF1QixFQUFFLGVBQWUsRUFBRSxxQkFBcUIsRUFBRSxrQkFBa0IsRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxzQkFBc0IsRUFBRSxpQkFBaUIsRUFBRSwyQkFBMkIsRUFBRSx3QkFBd0IsRUFBRSwyQkFBMkIsRUFBRSw2QkFBNkIsRUFBRSwwQkFBMEIsRUFBRSx3QkFBd0IsRUFBRSxnQkFBZ0IsRUFBRSxzQkFBc0IsRUFBRSxZQUFZLEVBQUUsc0JBQXNCLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxvQkFBb0IsRUFBRSxvQkFBb0IsRUFBRSxpQkFBaUIsRUFBRSx3QkFBd0IsRUFBRSxxQkFBcUIsRUFBRSwwQkFBMEIsRUFBRSxxQkFBcUIsRUFBRSxzQkFBc0IsRUFBRSx1QkFBdUIsRUFBRSxzQ0FBc0MsRUFBRSw2QkFB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
663
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXN5bmMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY2JpbmQvZ2VuZXJhdGVkL2FzeW5jLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG1DQUFtQztBQUduQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDMUQsT0FBTyxFQUFzc0YsY0FBYyxFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsa0JBQWtCLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBRSx5QkFBeUIsRUFBRSxvQkFBb0IsRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLG1CQUFtQixFQUFFLDJCQUEyQixFQUFFLHFCQUFxQixFQUFFLDRCQUE0QixFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxlQUFlLEVBQUUsb0JBQW9CLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUsZ0NBQWdDLEVBQUUsa0NBQWtDLEVBQUUsb0NBQW9DLEVBQUUsa0NBQWtDLEVBQUUsaUNBQWlDLEVBQUUsa0NBQWtDLEVBQUUsb0NBQW9DLEVBQUUsa0NBQWtDLEVBQUUsaUNBQWlDLEVBQUUsZUFBZSxFQUFFLG9CQUFvQixFQUFFLHVCQUF1QixFQUFFLGVBQWUsRUFBRSxxQkFBcUIsRUFBRSxrQkFBa0IsRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxzQkFBc0IsRUFBRSxpQkFBaUIsRUFBRSwyQkFBMkIsRUFBRSx3QkFBd0IsRUFBRSwyQkFBMkIsRUFBRSw2QkFBNkIsRUFBRSwwQkFBMEIsRUFBRSx3QkFBd0IsRUFBRSxnQkFBZ0IsRUFBRSxzQkFBc0IsRUFBRSxZQUFZLEVBQUUsc0JBQXNCLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxvQkFBb0IsRUFBRSxvQkFBb0IsRUFBRSxpQkFBaUIsRUFBRSx3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