@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,6 +1,9 @@
1
+ export type Field2 = [Uint8Array, Uint8Array];
1
2
  export type Fq = Uint8Array;
2
3
  export type Fr = Uint8Array;
4
+ export type Secp256k1Fq = Uint8Array;
3
5
  export type Secp256k1Fr = Uint8Array;
6
+ export type Secp256r1Fq = Uint8Array;
4
7
  export type Secp256r1Fr = Uint8Array;
5
8
  export type Uint256T = Uint8Array;
6
9
  export interface AesDecrypt {
@@ -39,14 +42,6 @@ export interface AesEncryptResponse {
39
42
  interface MsgpackAesEncryptResponse {
40
43
  ciphertext: Uint8Array;
41
44
  }
42
- export interface AffineElement {
43
- x: Fr;
44
- y: Fr;
45
- }
46
- interface MsgpackAffineElement {
47
- x: Uint8Array;
48
- y: Uint8Array;
49
- }
50
45
  export interface Blake2s {
51
46
  data: Uint8Array;
52
47
  }
@@ -71,6 +66,20 @@ export interface Blake2sToFieldResponse {
71
66
  interface MsgpackBlake2sToFieldResponse {
72
67
  field: Uint8Array;
73
68
  }
69
+ export interface Bn254FqSqrt {
70
+ input: Fq;
71
+ }
72
+ interface MsgpackBn254FqSqrt {
73
+ input: Uint8Array;
74
+ }
75
+ export interface Bn254FqSqrtResponse {
76
+ isSquareRoot: boolean;
77
+ value: Fq;
78
+ }
79
+ interface MsgpackBn254FqSqrtResponse {
80
+ is_square_root: boolean;
81
+ value: Uint8Array;
82
+ }
74
83
  export interface Bn254FrSqrt {
75
84
  input: Fr;
76
85
  }
@@ -85,6 +94,194 @@ interface MsgpackBn254FrSqrtResponse {
85
94
  is_square_root: boolean;
86
95
  value: Uint8Array;
87
96
  }
97
+ export interface Bn254G1FromCompressed {
98
+ compressed: Uint8Array;
99
+ }
100
+ interface MsgpackBn254G1FromCompressed {
101
+ compressed: Uint8Array;
102
+ }
103
+ export interface Bn254G1FromCompressedResponse {
104
+ point: Bn254G1Point;
105
+ }
106
+ interface MsgpackBn254G1FromCompressedResponse {
107
+ point: MsgpackBn254G1Point;
108
+ }
109
+ export interface Bn254G1IsOnCurve {
110
+ point: Bn254G1Point;
111
+ }
112
+ interface MsgpackBn254G1IsOnCurve {
113
+ point: MsgpackBn254G1Point;
114
+ }
115
+ export interface Bn254G1IsOnCurveResponse {
116
+ isOnCurve: boolean;
117
+ }
118
+ interface MsgpackBn254G1IsOnCurveResponse {
119
+ is_on_curve: boolean;
120
+ }
121
+ export interface Bn254G1Mul {
122
+ point: Bn254G1Point;
123
+ scalar: Fr;
124
+ }
125
+ interface MsgpackBn254G1Mul {
126
+ point: MsgpackBn254G1Point;
127
+ scalar: Uint8Array;
128
+ }
129
+ export interface Bn254G1MulResponse {
130
+ point: Bn254G1Point;
131
+ }
132
+ interface MsgpackBn254G1MulResponse {
133
+ point: MsgpackBn254G1Point;
134
+ }
135
+ export interface Bn254G1Point {
136
+ x: Fq;
137
+ y: Fq;
138
+ }
139
+ interface MsgpackBn254G1Point {
140
+ x: Uint8Array;
141
+ y: Uint8Array;
142
+ }
143
+ export interface Bn254G2Mul {
144
+ point: Bn254G2Point;
145
+ scalar: Fr;
146
+ }
147
+ interface MsgpackBn254G2Mul {
148
+ point: MsgpackBn254G2Point;
149
+ scalar: Uint8Array;
150
+ }
151
+ export interface Bn254G2MulResponse {
152
+ point: Bn254G2Point;
153
+ }
154
+ interface MsgpackBn254G2MulResponse {
155
+ point: MsgpackBn254G2Point;
156
+ }
157
+ export interface Bn254G2Point {
158
+ x: Field2;
159
+ y: Field2;
160
+ }
161
+ interface MsgpackBn254G2Point {
162
+ x: [Uint8Array, Uint8Array];
163
+ y: [Uint8Array, Uint8Array];
164
+ }
165
+ export interface ChonkAccumulate {
166
+ witness: Uint8Array;
167
+ }
168
+ interface MsgpackChonkAccumulate {
169
+ witness: Uint8Array;
170
+ }
171
+ export interface ChonkAccumulateResponse {
172
+ }
173
+ interface MsgpackChonkAccumulateResponse {
174
+ }
175
+ export interface ChonkCheckPrecomputedVk {
176
+ circuit: CircuitInput;
177
+ }
178
+ interface MsgpackChonkCheckPrecomputedVk {
179
+ circuit: MsgpackCircuitInput;
180
+ }
181
+ export interface ChonkCheckPrecomputedVkResponse {
182
+ valid: boolean;
183
+ actualVk: Uint8Array;
184
+ }
185
+ interface MsgpackChonkCheckPrecomputedVkResponse {
186
+ valid: boolean;
187
+ actual_vk: Uint8Array;
188
+ }
189
+ export interface ChonkComputeIvcVk {
190
+ circuit: CircuitInputNoVK;
191
+ }
192
+ interface MsgpackChonkComputeIvcVk {
193
+ circuit: MsgpackCircuitInputNoVK;
194
+ }
195
+ export interface ChonkComputeIvcVkResponse {
196
+ bytes: Uint8Array;
197
+ }
198
+ interface MsgpackChonkComputeIvcVkResponse {
199
+ bytes: Uint8Array;
200
+ }
201
+ export interface ChonkComputeStandaloneVk {
202
+ circuit: CircuitInputNoVK;
203
+ }
204
+ interface MsgpackChonkComputeStandaloneVk {
205
+ circuit: MsgpackCircuitInputNoVK;
206
+ }
207
+ export interface ChonkComputeStandaloneVkResponse {
208
+ bytes: Uint8Array;
209
+ fields: Fr[];
210
+ }
211
+ interface MsgpackChonkComputeStandaloneVkResponse {
212
+ bytes: Uint8Array;
213
+ fields: Uint8Array[];
214
+ }
215
+ export interface ChonkLoad {
216
+ circuit: CircuitInput;
217
+ }
218
+ interface MsgpackChonkLoad {
219
+ circuit: MsgpackCircuitInput;
220
+ }
221
+ export interface ChonkLoadResponse {
222
+ }
223
+ interface MsgpackChonkLoadResponse {
224
+ }
225
+ export interface ChonkProof {
226
+ megaProof: Fr[];
227
+ goblinProof: GoblinProof;
228
+ }
229
+ interface MsgpackChonkProof {
230
+ mega_proof: Uint8Array[];
231
+ goblin_proof: MsgpackGoblinProof;
232
+ }
233
+ export interface ChonkProve {
234
+ }
235
+ interface MsgpackChonkProve {
236
+ }
237
+ export interface ChonkProveResponse {
238
+ proof: ChonkProof;
239
+ }
240
+ interface MsgpackChonkProveResponse {
241
+ proof: MsgpackChonkProof;
242
+ }
243
+ export interface ChonkStart {
244
+ numCircuits: number;
245
+ }
246
+ interface MsgpackChonkStart {
247
+ num_circuits: number;
248
+ }
249
+ export interface ChonkStartResponse {
250
+ }
251
+ interface MsgpackChonkStartResponse {
252
+ }
253
+ export interface ChonkStats {
254
+ circuit: CircuitInputNoVK;
255
+ includeGatesPerOpcode: boolean;
256
+ }
257
+ interface MsgpackChonkStats {
258
+ circuit: MsgpackCircuitInputNoVK;
259
+ include_gates_per_opcode: boolean;
260
+ }
261
+ export interface ChonkStatsResponse {
262
+ acirOpcodes: number;
263
+ circuitSize: number;
264
+ gatesPerOpcode: number[];
265
+ }
266
+ interface MsgpackChonkStatsResponse {
267
+ acir_opcodes: number;
268
+ circuit_size: number;
269
+ gates_per_opcode: number[];
270
+ }
271
+ export interface ChonkVerify {
272
+ proof: ChonkProof;
273
+ vk: Uint8Array;
274
+ }
275
+ interface MsgpackChonkVerify {
276
+ proof: MsgpackChonkProof;
277
+ vk: Uint8Array;
278
+ }
279
+ export interface ChonkVerifyResponse {
280
+ valid: boolean;
281
+ }
282
+ interface MsgpackChonkVerifyResponse {
283
+ valid: boolean;
284
+ }
88
285
  export interface CircuitComputeVk {
89
286
  circuit: CircuitInputNoVK;
90
287
  settings: ProofSystemSettings;
@@ -195,134 +392,6 @@ export interface CircuitWriteSolidityVerifierResponse {
195
392
  interface MsgpackCircuitWriteSolidityVerifierResponse {
196
393
  solidity_code: string;
197
394
  }
198
- export interface ClientIvcAccumulate {
199
- witness: Uint8Array;
200
- }
201
- interface MsgpackClientIvcAccumulate {
202
- witness: Uint8Array;
203
- }
204
- export interface ClientIvcAccumulateResponse {
205
- }
206
- interface MsgpackClientIvcAccumulateResponse {
207
- }
208
- export interface ClientIvcCheckPrecomputedVk {
209
- circuit: CircuitInput;
210
- }
211
- interface MsgpackClientIvcCheckPrecomputedVk {
212
- circuit: MsgpackCircuitInput;
213
- }
214
- export interface ClientIvcCheckPrecomputedVkResponse {
215
- valid: boolean;
216
- actualVk: Uint8Array;
217
- }
218
- interface MsgpackClientIvcCheckPrecomputedVkResponse {
219
- valid: boolean;
220
- actual_vk: Uint8Array;
221
- }
222
- export interface ClientIvcComputeIvcVk {
223
- circuit: CircuitInputNoVK;
224
- }
225
- interface MsgpackClientIvcComputeIvcVk {
226
- circuit: MsgpackCircuitInputNoVK;
227
- }
228
- export interface ClientIvcComputeIvcVkResponse {
229
- bytes: Uint8Array;
230
- }
231
- interface MsgpackClientIvcComputeIvcVkResponse {
232
- bytes: Uint8Array;
233
- }
234
- export interface ClientIvcComputeStandaloneVk {
235
- circuit: CircuitInputNoVK;
236
- }
237
- interface MsgpackClientIvcComputeStandaloneVk {
238
- circuit: MsgpackCircuitInputNoVK;
239
- }
240
- export interface ClientIvcComputeStandaloneVkResponse {
241
- bytes: Uint8Array;
242
- fields: Fr[];
243
- }
244
- interface MsgpackClientIvcComputeStandaloneVkResponse {
245
- bytes: Uint8Array;
246
- fields: Uint8Array[];
247
- }
248
- export interface ClientIvcLoad {
249
- circuit: CircuitInput;
250
- }
251
- interface MsgpackClientIvcLoad {
252
- circuit: MsgpackCircuitInput;
253
- }
254
- export interface ClientIvcLoadResponse {
255
- }
256
- interface MsgpackClientIvcLoadResponse {
257
- }
258
- export interface ClientIVCProof {
259
- megaProof: Fr[];
260
- goblinProof: GoblinProof;
261
- }
262
- interface MsgpackClientIVCProof {
263
- mega_proof: Uint8Array[];
264
- goblin_proof: MsgpackGoblinProof;
265
- }
266
- export interface ClientIvcProve {
267
- }
268
- interface MsgpackClientIvcProve {
269
- }
270
- export interface ClientIvcProveResponse {
271
- proof: ClientIVCProof;
272
- }
273
- interface MsgpackClientIvcProveResponse {
274
- proof: MsgpackClientIVCProof;
275
- }
276
- export interface ClientIvcStart {
277
- numCircuits: number;
278
- }
279
- interface MsgpackClientIvcStart {
280
- num_circuits: number;
281
- }
282
- export interface ClientIvcStartResponse {
283
- }
284
- interface MsgpackClientIvcStartResponse {
285
- }
286
- export interface ClientIvcStats {
287
- circuit: CircuitInputNoVK;
288
- includeGatesPerOpcode: boolean;
289
- }
290
- interface MsgpackClientIvcStats {
291
- circuit: MsgpackCircuitInputNoVK;
292
- include_gates_per_opcode: boolean;
293
- }
294
- export interface ClientIvcStatsResponse {
295
- acirOpcodes: number;
296
- circuitSize: number;
297
- gatesPerOpcode: number[];
298
- }
299
- interface MsgpackClientIvcStatsResponse {
300
- acir_opcodes: number;
301
- circuit_size: number;
302
- gates_per_opcode: number[];
303
- }
304
- export interface ClientIvcVerify {
305
- proof: ClientIVCProof;
306
- vk: Uint8Array;
307
- }
308
- interface MsgpackClientIvcVerify {
309
- proof: MsgpackClientIVCProof;
310
- vk: Uint8Array;
311
- }
312
- export interface ClientIvcVerifyResponse {
313
- valid: boolean;
314
- }
315
- interface MsgpackClientIvcVerifyResponse {
316
- valid: boolean;
317
- }
318
- export interface ECCVMProof {
319
- preIpaProof: Fr[];
320
- ipaProof: Fr[];
321
- }
322
- interface MsgpackECCVMProof {
323
- pre_ipa_proof: Uint8Array[];
324
- ipa_proof: Uint8Array[];
325
- }
326
395
  export interface EcdsaSecp256k1ComputePublicKey {
327
396
  privateKey: Secp256k1Fr;
328
397
  }
@@ -330,10 +399,10 @@ interface MsgpackEcdsaSecp256k1ComputePublicKey {
330
399
  private_key: Uint8Array;
331
400
  }
332
401
  export interface EcdsaSecp256k1ComputePublicKeyResponse {
333
- publicKey: AffineElement;
402
+ publicKey: Secp256k1Point;
334
403
  }
335
404
  interface MsgpackEcdsaSecp256k1ComputePublicKeyResponse {
336
- public_key: MsgpackAffineElement;
405
+ public_key: MsgpackSecp256k1Point;
337
406
  }
338
407
  export interface EcdsaSecp256k1ConstructSignature {
339
408
  message: Uint8Array;
@@ -366,21 +435,21 @@ interface MsgpackEcdsaSecp256k1RecoverPublicKey {
366
435
  v: number;
367
436
  }
368
437
  export interface EcdsaSecp256k1RecoverPublicKeyResponse {
369
- publicKey: AffineElement;
438
+ publicKey: Secp256k1Point;
370
439
  }
371
440
  interface MsgpackEcdsaSecp256k1RecoverPublicKeyResponse {
372
- public_key: MsgpackAffineElement;
441
+ public_key: MsgpackSecp256k1Point;
373
442
  }
374
443
  export interface EcdsaSecp256k1VerifySignature {
375
444
  message: Uint8Array;
376
- publicKey: AffineElement;
445
+ publicKey: Secp256k1Point;
377
446
  r: Uint8Array;
378
447
  s: Uint8Array;
379
448
  v: number;
380
449
  }
381
450
  interface MsgpackEcdsaSecp256k1VerifySignature {
382
451
  message: Uint8Array;
383
- public_key: MsgpackAffineElement;
452
+ public_key: MsgpackSecp256k1Point;
384
453
  r: Uint8Array;
385
454
  s: Uint8Array;
386
455
  v: number;
@@ -398,10 +467,10 @@ interface MsgpackEcdsaSecp256r1ComputePublicKey {
398
467
  private_key: Uint8Array;
399
468
  }
400
469
  export interface EcdsaSecp256r1ComputePublicKeyResponse {
401
- publicKey: AffineElement;
470
+ publicKey: Secp256r1Point;
402
471
  }
403
472
  interface MsgpackEcdsaSecp256r1ComputePublicKeyResponse {
404
- public_key: MsgpackAffineElement;
473
+ public_key: MsgpackSecp256r1Point;
405
474
  }
406
475
  export interface EcdsaSecp256r1ConstructSignature {
407
476
  message: Uint8Array;
@@ -434,21 +503,21 @@ interface MsgpackEcdsaSecp256r1RecoverPublicKey {
434
503
  v: number;
435
504
  }
436
505
  export interface EcdsaSecp256r1RecoverPublicKeyResponse {
437
- publicKey: AffineElement;
506
+ publicKey: Secp256r1Point;
438
507
  }
439
508
  interface MsgpackEcdsaSecp256r1RecoverPublicKeyResponse {
440
- public_key: MsgpackAffineElement;
509
+ public_key: MsgpackSecp256r1Point;
441
510
  }
442
511
  export interface EcdsaSecp256r1VerifySignature {
443
512
  message: Uint8Array;
444
- publicKey: AffineElement;
513
+ publicKey: Secp256r1Point;
445
514
  r: Uint8Array;
446
515
  s: Uint8Array;
447
516
  v: number;
448
517
  }
449
518
  interface MsgpackEcdsaSecp256r1VerifySignature {
450
519
  message: Uint8Array;
451
- public_key: MsgpackAffineElement;
520
+ public_key: MsgpackSecp256r1Point;
452
521
  r: Uint8Array;
453
522
  s: Uint8Array;
454
523
  v: number;
@@ -459,43 +528,51 @@ export interface EcdsaSecp256r1VerifySignatureResponse {
459
528
  interface MsgpackEcdsaSecp256r1VerifySignatureResponse {
460
529
  verified: boolean;
461
530
  }
531
+ export interface ErrorResponse {
532
+ message: string;
533
+ }
534
+ interface MsgpackErrorResponse {
535
+ message: string;
536
+ }
462
537
  export interface GoblinProof {
463
538
  mergeProof: Fr[];
464
- eccvmProof: ECCVMProof;
539
+ eccvmProof: Fr[];
540
+ ipaProof: Fr[];
465
541
  translatorProof: Fr[];
466
542
  }
467
543
  interface MsgpackGoblinProof {
468
544
  merge_proof: Uint8Array[];
469
- eccvm_proof: MsgpackECCVMProof;
545
+ eccvm_proof: Uint8Array[];
546
+ ipa_proof: Uint8Array[];
470
547
  translator_proof: Uint8Array[];
471
548
  }
472
549
  export interface GrumpkinAdd {
473
- pointA: AffineElement;
474
- pointB: AffineElement;
550
+ pointA: GrumpkinPoint;
551
+ pointB: GrumpkinPoint;
475
552
  }
476
553
  interface MsgpackGrumpkinAdd {
477
- point_a: MsgpackAffineElement;
478
- point_b: MsgpackAffineElement;
554
+ point_a: MsgpackGrumpkinPoint;
555
+ point_b: MsgpackGrumpkinPoint;
479
556
  }
480
557
  export interface GrumpkinAddResponse {
481
- point: AffineElement;
558
+ point: GrumpkinPoint;
482
559
  }
483
560
  interface MsgpackGrumpkinAddResponse {
484
- point: MsgpackAffineElement;
561
+ point: MsgpackGrumpkinPoint;
485
562
  }
486
563
  export interface GrumpkinBatchMul {
487
- points: AffineElement[];
564
+ points: GrumpkinPoint[];
488
565
  scalar: Fq;
489
566
  }
490
567
  interface MsgpackGrumpkinBatchMul {
491
- points: MsgpackAffineElement[];
568
+ points: MsgpackGrumpkinPoint[];
492
569
  scalar: Uint8Array;
493
570
  }
494
571
  export interface GrumpkinBatchMulResponse {
495
- points: AffineElement[];
572
+ points: GrumpkinPoint[];
496
573
  }
497
574
  interface MsgpackGrumpkinBatchMulResponse {
498
- points: MsgpackAffineElement[];
575
+ points: MsgpackGrumpkinPoint[];
499
576
  }
500
577
  export interface GrumpkinGetRandomFr {
501
578
  dummy: number;
@@ -510,18 +587,26 @@ interface MsgpackGrumpkinGetRandomFrResponse {
510
587
  value: Uint8Array;
511
588
  }
512
589
  export interface GrumpkinMul {
513
- point: AffineElement;
590
+ point: GrumpkinPoint;
514
591
  scalar: Fq;
515
592
  }
516
593
  interface MsgpackGrumpkinMul {
517
- point: MsgpackAffineElement;
594
+ point: MsgpackGrumpkinPoint;
518
595
  scalar: Uint8Array;
519
596
  }
520
597
  export interface GrumpkinMulResponse {
521
- point: AffineElement;
598
+ point: GrumpkinPoint;
522
599
  }
523
600
  interface MsgpackGrumpkinMulResponse {
524
- point: MsgpackAffineElement;
601
+ point: MsgpackGrumpkinPoint;
602
+ }
603
+ export interface GrumpkinPoint {
604
+ x: Fr;
605
+ y: Fr;
606
+ }
607
+ interface MsgpackGrumpkinPoint {
608
+ x: Uint8Array;
609
+ y: Uint8Array;
525
610
  }
526
611
  export interface GrumpkinReduce512 {
527
612
  input: Uint8Array;
@@ -556,10 +641,10 @@ interface MsgpackPedersenCommit {
556
641
  hash_index: number;
557
642
  }
558
643
  export interface PedersenCommitResponse {
559
- point: AffineElement;
644
+ point: GrumpkinPoint;
560
645
  }
561
646
  interface MsgpackPedersenCommitResponse {
562
- point: MsgpackAffineElement;
647
+ point: MsgpackGrumpkinPoint;
563
648
  }
564
649
  export interface PedersenHash {
565
650
  inputs: Fr[];
@@ -644,10 +729,10 @@ interface MsgpackSchnorrComputePublicKey {
644
729
  private_key: Uint8Array;
645
730
  }
646
731
  export interface SchnorrComputePublicKeyResponse {
647
- publicKey: AffineElement;
732
+ publicKey: GrumpkinPoint;
648
733
  }
649
734
  interface MsgpackSchnorrComputePublicKeyResponse {
650
- public_key: MsgpackAffineElement;
735
+ public_key: MsgpackGrumpkinPoint;
651
736
  }
652
737
  export interface SchnorrConstructSignature {
653
738
  message: Uint8Array;
@@ -667,13 +752,13 @@ interface MsgpackSchnorrConstructSignatureResponse {
667
752
  }
668
753
  export interface SchnorrVerifySignature {
669
754
  message: Uint8Array;
670
- publicKey: AffineElement;
755
+ publicKey: GrumpkinPoint;
671
756
  s: Uint8Array;
672
757
  e: Uint8Array;
673
758
  }
674
759
  interface MsgpackSchnorrVerifySignature {
675
760
  message: Uint8Array;
676
- public_key: MsgpackAffineElement;
761
+ public_key: MsgpackGrumpkinPoint;
677
762
  s: Uint8Array;
678
763
  e: Uint8Array;
679
764
  }
@@ -696,18 +781,26 @@ interface MsgpackSecp256k1GetRandomFrResponse {
696
781
  value: Uint8Array;
697
782
  }
698
783
  export interface Secp256k1Mul {
699
- point: AffineElement;
784
+ point: Secp256k1Point;
700
785
  scalar: Secp256k1Fr;
701
786
  }
702
787
  interface MsgpackSecp256k1Mul {
703
- point: MsgpackAffineElement;
788
+ point: MsgpackSecp256k1Point;
704
789
  scalar: Uint8Array;
705
790
  }
706
791
  export interface Secp256k1MulResponse {
707
- point: AffineElement;
792
+ point: Secp256k1Point;
708
793
  }
709
794
  interface MsgpackSecp256k1MulResponse {
710
- point: MsgpackAffineElement;
795
+ point: MsgpackSecp256k1Point;
796
+ }
797
+ export interface Secp256k1Point {
798
+ x: Secp256k1Fq;
799
+ y: Secp256k1Fq;
800
+ }
801
+ interface MsgpackSecp256k1Point {
802
+ x: Uint8Array;
803
+ y: Uint8Array;
711
804
  }
712
805
  export interface Secp256k1Reduce512 {
713
806
  input: Uint8Array;
@@ -721,6 +814,14 @@ export interface Secp256k1Reduce512Response {
721
814
  interface MsgpackSecp256k1Reduce512Response {
722
815
  value: Uint8Array;
723
816
  }
817
+ export interface Secp256r1Point {
818
+ x: Secp256r1Fq;
819
+ y: Secp256r1Fq;
820
+ }
821
+ interface MsgpackSecp256r1Point {
822
+ x: Uint8Array;
823
+ y: Uint8Array;
824
+ }
724
825
  export interface Shutdown {
725
826
  }
726
827
  interface MsgpackShutdown {
@@ -807,14 +908,6 @@ export interface AesEncryptResponse {
807
908
  interface MsgpackAesEncryptResponse {
808
909
  ciphertext: Uint8Array;
809
910
  }
810
- export interface AffineElement {
811
- x: Fr;
812
- y: Fr;
813
- }
814
- interface MsgpackAffineElement {
815
- x: Uint8Array;
816
- y: Uint8Array;
817
- }
818
911
  export interface Blake2s {
819
912
  data: Uint8Array;
820
913
  }
@@ -839,6 +932,20 @@ export interface Blake2sToFieldResponse {
839
932
  interface MsgpackBlake2sToFieldResponse {
840
933
  field: Uint8Array;
841
934
  }
935
+ export interface Bn254FqSqrt {
936
+ input: Fq;
937
+ }
938
+ interface MsgpackBn254FqSqrt {
939
+ input: Uint8Array;
940
+ }
941
+ export interface Bn254FqSqrtResponse {
942
+ isSquareRoot: boolean;
943
+ value: Fq;
944
+ }
945
+ interface MsgpackBn254FqSqrtResponse {
946
+ is_square_root: boolean;
947
+ value: Uint8Array;
948
+ }
842
949
  export interface Bn254FrSqrt {
843
950
  input: Fr;
844
951
  }
@@ -853,6 +960,194 @@ interface MsgpackBn254FrSqrtResponse {
853
960
  is_square_root: boolean;
854
961
  value: Uint8Array;
855
962
  }
963
+ export interface Bn254G1FromCompressed {
964
+ compressed: Uint8Array;
965
+ }
966
+ interface MsgpackBn254G1FromCompressed {
967
+ compressed: Uint8Array;
968
+ }
969
+ export interface Bn254G1FromCompressedResponse {
970
+ point: Bn254G1Point;
971
+ }
972
+ interface MsgpackBn254G1FromCompressedResponse {
973
+ point: MsgpackBn254G1Point;
974
+ }
975
+ export interface Bn254G1IsOnCurve {
976
+ point: Bn254G1Point;
977
+ }
978
+ interface MsgpackBn254G1IsOnCurve {
979
+ point: MsgpackBn254G1Point;
980
+ }
981
+ export interface Bn254G1IsOnCurveResponse {
982
+ isOnCurve: boolean;
983
+ }
984
+ interface MsgpackBn254G1IsOnCurveResponse {
985
+ is_on_curve: boolean;
986
+ }
987
+ export interface Bn254G1Mul {
988
+ point: Bn254G1Point;
989
+ scalar: Fr;
990
+ }
991
+ interface MsgpackBn254G1Mul {
992
+ point: MsgpackBn254G1Point;
993
+ scalar: Uint8Array;
994
+ }
995
+ export interface Bn254G1MulResponse {
996
+ point: Bn254G1Point;
997
+ }
998
+ interface MsgpackBn254G1MulResponse {
999
+ point: MsgpackBn254G1Point;
1000
+ }
1001
+ export interface Bn254G1Point {
1002
+ x: Fq;
1003
+ y: Fq;
1004
+ }
1005
+ interface MsgpackBn254G1Point {
1006
+ x: Uint8Array;
1007
+ y: Uint8Array;
1008
+ }
1009
+ export interface Bn254G2Mul {
1010
+ point: Bn254G2Point;
1011
+ scalar: Fr;
1012
+ }
1013
+ interface MsgpackBn254G2Mul {
1014
+ point: MsgpackBn254G2Point;
1015
+ scalar: Uint8Array;
1016
+ }
1017
+ export interface Bn254G2MulResponse {
1018
+ point: Bn254G2Point;
1019
+ }
1020
+ interface MsgpackBn254G2MulResponse {
1021
+ point: MsgpackBn254G2Point;
1022
+ }
1023
+ export interface Bn254G2Point {
1024
+ x: Field2;
1025
+ y: Field2;
1026
+ }
1027
+ interface MsgpackBn254G2Point {
1028
+ x: [Uint8Array, Uint8Array];
1029
+ y: [Uint8Array, Uint8Array];
1030
+ }
1031
+ export interface ChonkAccumulate {
1032
+ witness: Uint8Array;
1033
+ }
1034
+ interface MsgpackChonkAccumulate {
1035
+ witness: Uint8Array;
1036
+ }
1037
+ export interface ChonkAccumulateResponse {
1038
+ }
1039
+ interface MsgpackChonkAccumulateResponse {
1040
+ }
1041
+ export interface ChonkCheckPrecomputedVk {
1042
+ circuit: CircuitInput;
1043
+ }
1044
+ interface MsgpackChonkCheckPrecomputedVk {
1045
+ circuit: MsgpackCircuitInput;
1046
+ }
1047
+ export interface ChonkCheckPrecomputedVkResponse {
1048
+ valid: boolean;
1049
+ actualVk: Uint8Array;
1050
+ }
1051
+ interface MsgpackChonkCheckPrecomputedVkResponse {
1052
+ valid: boolean;
1053
+ actual_vk: Uint8Array;
1054
+ }
1055
+ export interface ChonkComputeIvcVk {
1056
+ circuit: CircuitInputNoVK;
1057
+ }
1058
+ interface MsgpackChonkComputeIvcVk {
1059
+ circuit: MsgpackCircuitInputNoVK;
1060
+ }
1061
+ export interface ChonkComputeIvcVkResponse {
1062
+ bytes: Uint8Array;
1063
+ }
1064
+ interface MsgpackChonkComputeIvcVkResponse {
1065
+ bytes: Uint8Array;
1066
+ }
1067
+ export interface ChonkComputeStandaloneVk {
1068
+ circuit: CircuitInputNoVK;
1069
+ }
1070
+ interface MsgpackChonkComputeStandaloneVk {
1071
+ circuit: MsgpackCircuitInputNoVK;
1072
+ }
1073
+ export interface ChonkComputeStandaloneVkResponse {
1074
+ bytes: Uint8Array;
1075
+ fields: Fr[];
1076
+ }
1077
+ interface MsgpackChonkComputeStandaloneVkResponse {
1078
+ bytes: Uint8Array;
1079
+ fields: Uint8Array[];
1080
+ }
1081
+ export interface ChonkLoad {
1082
+ circuit: CircuitInput;
1083
+ }
1084
+ interface MsgpackChonkLoad {
1085
+ circuit: MsgpackCircuitInput;
1086
+ }
1087
+ export interface ChonkLoadResponse {
1088
+ }
1089
+ interface MsgpackChonkLoadResponse {
1090
+ }
1091
+ export interface ChonkProof {
1092
+ megaProof: Fr[];
1093
+ goblinProof: GoblinProof;
1094
+ }
1095
+ interface MsgpackChonkProof {
1096
+ mega_proof: Uint8Array[];
1097
+ goblin_proof: MsgpackGoblinProof;
1098
+ }
1099
+ export interface ChonkProve {
1100
+ }
1101
+ interface MsgpackChonkProve {
1102
+ }
1103
+ export interface ChonkProveResponse {
1104
+ proof: ChonkProof;
1105
+ }
1106
+ interface MsgpackChonkProveResponse {
1107
+ proof: MsgpackChonkProof;
1108
+ }
1109
+ export interface ChonkStart {
1110
+ numCircuits: number;
1111
+ }
1112
+ interface MsgpackChonkStart {
1113
+ num_circuits: number;
1114
+ }
1115
+ export interface ChonkStartResponse {
1116
+ }
1117
+ interface MsgpackChonkStartResponse {
1118
+ }
1119
+ export interface ChonkStats {
1120
+ circuit: CircuitInputNoVK;
1121
+ includeGatesPerOpcode: boolean;
1122
+ }
1123
+ interface MsgpackChonkStats {
1124
+ circuit: MsgpackCircuitInputNoVK;
1125
+ include_gates_per_opcode: boolean;
1126
+ }
1127
+ export interface ChonkStatsResponse {
1128
+ acirOpcodes: number;
1129
+ circuitSize: number;
1130
+ gatesPerOpcode: number[];
1131
+ }
1132
+ interface MsgpackChonkStatsResponse {
1133
+ acir_opcodes: number;
1134
+ circuit_size: number;
1135
+ gates_per_opcode: number[];
1136
+ }
1137
+ export interface ChonkVerify {
1138
+ proof: ChonkProof;
1139
+ vk: Uint8Array;
1140
+ }
1141
+ interface MsgpackChonkVerify {
1142
+ proof: MsgpackChonkProof;
1143
+ vk: Uint8Array;
1144
+ }
1145
+ export interface ChonkVerifyResponse {
1146
+ valid: boolean;
1147
+ }
1148
+ interface MsgpackChonkVerifyResponse {
1149
+ valid: boolean;
1150
+ }
856
1151
  export interface CircuitComputeVk {
857
1152
  circuit: CircuitInputNoVK;
858
1153
  settings: ProofSystemSettings;
@@ -963,134 +1258,6 @@ export interface CircuitWriteSolidityVerifierResponse {
963
1258
  interface MsgpackCircuitWriteSolidityVerifierResponse {
964
1259
  solidity_code: string;
965
1260
  }
966
- export interface ClientIvcAccumulate {
967
- witness: Uint8Array;
968
- }
969
- interface MsgpackClientIvcAccumulate {
970
- witness: Uint8Array;
971
- }
972
- export interface ClientIvcAccumulateResponse {
973
- }
974
- interface MsgpackClientIvcAccumulateResponse {
975
- }
976
- export interface ClientIvcCheckPrecomputedVk {
977
- circuit: CircuitInput;
978
- }
979
- interface MsgpackClientIvcCheckPrecomputedVk {
980
- circuit: MsgpackCircuitInput;
981
- }
982
- export interface ClientIvcCheckPrecomputedVkResponse {
983
- valid: boolean;
984
- actualVk: Uint8Array;
985
- }
986
- interface MsgpackClientIvcCheckPrecomputedVkResponse {
987
- valid: boolean;
988
- actual_vk: Uint8Array;
989
- }
990
- export interface ClientIvcComputeIvcVk {
991
- circuit: CircuitInputNoVK;
992
- }
993
- interface MsgpackClientIvcComputeIvcVk {
994
- circuit: MsgpackCircuitInputNoVK;
995
- }
996
- export interface ClientIvcComputeIvcVkResponse {
997
- bytes: Uint8Array;
998
- }
999
- interface MsgpackClientIvcComputeIvcVkResponse {
1000
- bytes: Uint8Array;
1001
- }
1002
- export interface ClientIvcComputeStandaloneVk {
1003
- circuit: CircuitInputNoVK;
1004
- }
1005
- interface MsgpackClientIvcComputeStandaloneVk {
1006
- circuit: MsgpackCircuitInputNoVK;
1007
- }
1008
- export interface ClientIvcComputeStandaloneVkResponse {
1009
- bytes: Uint8Array;
1010
- fields: Fr[];
1011
- }
1012
- interface MsgpackClientIvcComputeStandaloneVkResponse {
1013
- bytes: Uint8Array;
1014
- fields: Uint8Array[];
1015
- }
1016
- export interface ClientIvcLoad {
1017
- circuit: CircuitInput;
1018
- }
1019
- interface MsgpackClientIvcLoad {
1020
- circuit: MsgpackCircuitInput;
1021
- }
1022
- export interface ClientIvcLoadResponse {
1023
- }
1024
- interface MsgpackClientIvcLoadResponse {
1025
- }
1026
- export interface ClientIVCProof {
1027
- megaProof: Fr[];
1028
- goblinProof: GoblinProof;
1029
- }
1030
- interface MsgpackClientIVCProof {
1031
- mega_proof: Uint8Array[];
1032
- goblin_proof: MsgpackGoblinProof;
1033
- }
1034
- export interface ClientIvcProve {
1035
- }
1036
- interface MsgpackClientIvcProve {
1037
- }
1038
- export interface ClientIvcProveResponse {
1039
- proof: ClientIVCProof;
1040
- }
1041
- interface MsgpackClientIvcProveResponse {
1042
- proof: MsgpackClientIVCProof;
1043
- }
1044
- export interface ClientIvcStart {
1045
- numCircuits: number;
1046
- }
1047
- interface MsgpackClientIvcStart {
1048
- num_circuits: number;
1049
- }
1050
- export interface ClientIvcStartResponse {
1051
- }
1052
- interface MsgpackClientIvcStartResponse {
1053
- }
1054
- export interface ClientIvcStats {
1055
- circuit: CircuitInputNoVK;
1056
- includeGatesPerOpcode: boolean;
1057
- }
1058
- interface MsgpackClientIvcStats {
1059
- circuit: MsgpackCircuitInputNoVK;
1060
- include_gates_per_opcode: boolean;
1061
- }
1062
- export interface ClientIvcStatsResponse {
1063
- acirOpcodes: number;
1064
- circuitSize: number;
1065
- gatesPerOpcode: number[];
1066
- }
1067
- interface MsgpackClientIvcStatsResponse {
1068
- acir_opcodes: number;
1069
- circuit_size: number;
1070
- gates_per_opcode: number[];
1071
- }
1072
- export interface ClientIvcVerify {
1073
- proof: ClientIVCProof;
1074
- vk: Uint8Array;
1075
- }
1076
- interface MsgpackClientIvcVerify {
1077
- proof: MsgpackClientIVCProof;
1078
- vk: Uint8Array;
1079
- }
1080
- export interface ClientIvcVerifyResponse {
1081
- valid: boolean;
1082
- }
1083
- interface MsgpackClientIvcVerifyResponse {
1084
- valid: boolean;
1085
- }
1086
- export interface ECCVMProof {
1087
- preIpaProof: Fr[];
1088
- ipaProof: Fr[];
1089
- }
1090
- interface MsgpackECCVMProof {
1091
- pre_ipa_proof: Uint8Array[];
1092
- ipa_proof: Uint8Array[];
1093
- }
1094
1261
  export interface EcdsaSecp256k1ComputePublicKey {
1095
1262
  privateKey: Secp256k1Fr;
1096
1263
  }
@@ -1098,10 +1265,10 @@ interface MsgpackEcdsaSecp256k1ComputePublicKey {
1098
1265
  private_key: Uint8Array;
1099
1266
  }
1100
1267
  export interface EcdsaSecp256k1ComputePublicKeyResponse {
1101
- publicKey: AffineElement;
1268
+ publicKey: Secp256k1Point;
1102
1269
  }
1103
1270
  interface MsgpackEcdsaSecp256k1ComputePublicKeyResponse {
1104
- public_key: MsgpackAffineElement;
1271
+ public_key: MsgpackSecp256k1Point;
1105
1272
  }
1106
1273
  export interface EcdsaSecp256k1ConstructSignature {
1107
1274
  message: Uint8Array;
@@ -1134,21 +1301,21 @@ interface MsgpackEcdsaSecp256k1RecoverPublicKey {
1134
1301
  v: number;
1135
1302
  }
1136
1303
  export interface EcdsaSecp256k1RecoverPublicKeyResponse {
1137
- publicKey: AffineElement;
1304
+ publicKey: Secp256k1Point;
1138
1305
  }
1139
1306
  interface MsgpackEcdsaSecp256k1RecoverPublicKeyResponse {
1140
- public_key: MsgpackAffineElement;
1307
+ public_key: MsgpackSecp256k1Point;
1141
1308
  }
1142
1309
  export interface EcdsaSecp256k1VerifySignature {
1143
1310
  message: Uint8Array;
1144
- publicKey: AffineElement;
1311
+ publicKey: Secp256k1Point;
1145
1312
  r: Uint8Array;
1146
1313
  s: Uint8Array;
1147
1314
  v: number;
1148
1315
  }
1149
1316
  interface MsgpackEcdsaSecp256k1VerifySignature {
1150
1317
  message: Uint8Array;
1151
- public_key: MsgpackAffineElement;
1318
+ public_key: MsgpackSecp256k1Point;
1152
1319
  r: Uint8Array;
1153
1320
  s: Uint8Array;
1154
1321
  v: number;
@@ -1166,10 +1333,10 @@ interface MsgpackEcdsaSecp256r1ComputePublicKey {
1166
1333
  private_key: Uint8Array;
1167
1334
  }
1168
1335
  export interface EcdsaSecp256r1ComputePublicKeyResponse {
1169
- publicKey: AffineElement;
1336
+ publicKey: Secp256r1Point;
1170
1337
  }
1171
1338
  interface MsgpackEcdsaSecp256r1ComputePublicKeyResponse {
1172
- public_key: MsgpackAffineElement;
1339
+ public_key: MsgpackSecp256r1Point;
1173
1340
  }
1174
1341
  export interface EcdsaSecp256r1ConstructSignature {
1175
1342
  message: Uint8Array;
@@ -1202,21 +1369,21 @@ interface MsgpackEcdsaSecp256r1RecoverPublicKey {
1202
1369
  v: number;
1203
1370
  }
1204
1371
  export interface EcdsaSecp256r1RecoverPublicKeyResponse {
1205
- publicKey: AffineElement;
1372
+ publicKey: Secp256r1Point;
1206
1373
  }
1207
1374
  interface MsgpackEcdsaSecp256r1RecoverPublicKeyResponse {
1208
- public_key: MsgpackAffineElement;
1375
+ public_key: MsgpackSecp256r1Point;
1209
1376
  }
1210
1377
  export interface EcdsaSecp256r1VerifySignature {
1211
1378
  message: Uint8Array;
1212
- publicKey: AffineElement;
1379
+ publicKey: Secp256r1Point;
1213
1380
  r: Uint8Array;
1214
1381
  s: Uint8Array;
1215
1382
  v: number;
1216
1383
  }
1217
1384
  interface MsgpackEcdsaSecp256r1VerifySignature {
1218
1385
  message: Uint8Array;
1219
- public_key: MsgpackAffineElement;
1386
+ public_key: MsgpackSecp256r1Point;
1220
1387
  r: Uint8Array;
1221
1388
  s: Uint8Array;
1222
1389
  v: number;
@@ -1227,43 +1394,51 @@ export interface EcdsaSecp256r1VerifySignatureResponse {
1227
1394
  interface MsgpackEcdsaSecp256r1VerifySignatureResponse {
1228
1395
  verified: boolean;
1229
1396
  }
1397
+ export interface ErrorResponse {
1398
+ message: string;
1399
+ }
1400
+ interface MsgpackErrorResponse {
1401
+ message: string;
1402
+ }
1230
1403
  export interface GoblinProof {
1231
1404
  mergeProof: Fr[];
1232
- eccvmProof: ECCVMProof;
1405
+ eccvmProof: Fr[];
1406
+ ipaProof: Fr[];
1233
1407
  translatorProof: Fr[];
1234
1408
  }
1235
1409
  interface MsgpackGoblinProof {
1236
1410
  merge_proof: Uint8Array[];
1237
- eccvm_proof: MsgpackECCVMProof;
1411
+ eccvm_proof: Uint8Array[];
1412
+ ipa_proof: Uint8Array[];
1238
1413
  translator_proof: Uint8Array[];
1239
1414
  }
1240
1415
  export interface GrumpkinAdd {
1241
- pointA: AffineElement;
1242
- pointB: AffineElement;
1416
+ pointA: GrumpkinPoint;
1417
+ pointB: GrumpkinPoint;
1243
1418
  }
1244
1419
  interface MsgpackGrumpkinAdd {
1245
- point_a: MsgpackAffineElement;
1246
- point_b: MsgpackAffineElement;
1420
+ point_a: MsgpackGrumpkinPoint;
1421
+ point_b: MsgpackGrumpkinPoint;
1247
1422
  }
1248
1423
  export interface GrumpkinAddResponse {
1249
- point: AffineElement;
1424
+ point: GrumpkinPoint;
1250
1425
  }
1251
1426
  interface MsgpackGrumpkinAddResponse {
1252
- point: MsgpackAffineElement;
1427
+ point: MsgpackGrumpkinPoint;
1253
1428
  }
1254
1429
  export interface GrumpkinBatchMul {
1255
- points: AffineElement[];
1430
+ points: GrumpkinPoint[];
1256
1431
  scalar: Fq;
1257
1432
  }
1258
1433
  interface MsgpackGrumpkinBatchMul {
1259
- points: MsgpackAffineElement[];
1434
+ points: MsgpackGrumpkinPoint[];
1260
1435
  scalar: Uint8Array;
1261
1436
  }
1262
1437
  export interface GrumpkinBatchMulResponse {
1263
- points: AffineElement[];
1438
+ points: GrumpkinPoint[];
1264
1439
  }
1265
1440
  interface MsgpackGrumpkinBatchMulResponse {
1266
- points: MsgpackAffineElement[];
1441
+ points: MsgpackGrumpkinPoint[];
1267
1442
  }
1268
1443
  export interface GrumpkinGetRandomFr {
1269
1444
  dummy: number;
@@ -1278,18 +1453,26 @@ interface MsgpackGrumpkinGetRandomFrResponse {
1278
1453
  value: Uint8Array;
1279
1454
  }
1280
1455
  export interface GrumpkinMul {
1281
- point: AffineElement;
1456
+ point: GrumpkinPoint;
1282
1457
  scalar: Fq;
1283
1458
  }
1284
1459
  interface MsgpackGrumpkinMul {
1285
- point: MsgpackAffineElement;
1460
+ point: MsgpackGrumpkinPoint;
1286
1461
  scalar: Uint8Array;
1287
1462
  }
1288
1463
  export interface GrumpkinMulResponse {
1289
- point: AffineElement;
1464
+ point: GrumpkinPoint;
1290
1465
  }
1291
1466
  interface MsgpackGrumpkinMulResponse {
1292
- point: MsgpackAffineElement;
1467
+ point: MsgpackGrumpkinPoint;
1468
+ }
1469
+ export interface GrumpkinPoint {
1470
+ x: Fr;
1471
+ y: Fr;
1472
+ }
1473
+ interface MsgpackGrumpkinPoint {
1474
+ x: Uint8Array;
1475
+ y: Uint8Array;
1293
1476
  }
1294
1477
  export interface GrumpkinReduce512 {
1295
1478
  input: Uint8Array;
@@ -1324,10 +1507,10 @@ interface MsgpackPedersenCommit {
1324
1507
  hash_index: number;
1325
1508
  }
1326
1509
  export interface PedersenCommitResponse {
1327
- point: AffineElement;
1510
+ point: GrumpkinPoint;
1328
1511
  }
1329
1512
  interface MsgpackPedersenCommitResponse {
1330
- point: MsgpackAffineElement;
1513
+ point: MsgpackGrumpkinPoint;
1331
1514
  }
1332
1515
  export interface PedersenHash {
1333
1516
  inputs: Fr[];
@@ -1412,10 +1595,10 @@ interface MsgpackSchnorrComputePublicKey {
1412
1595
  private_key: Uint8Array;
1413
1596
  }
1414
1597
  export interface SchnorrComputePublicKeyResponse {
1415
- publicKey: AffineElement;
1598
+ publicKey: GrumpkinPoint;
1416
1599
  }
1417
1600
  interface MsgpackSchnorrComputePublicKeyResponse {
1418
- public_key: MsgpackAffineElement;
1601
+ public_key: MsgpackGrumpkinPoint;
1419
1602
  }
1420
1603
  export interface SchnorrConstructSignature {
1421
1604
  message: Uint8Array;
@@ -1435,13 +1618,13 @@ interface MsgpackSchnorrConstructSignatureResponse {
1435
1618
  }
1436
1619
  export interface SchnorrVerifySignature {
1437
1620
  message: Uint8Array;
1438
- publicKey: AffineElement;
1621
+ publicKey: GrumpkinPoint;
1439
1622
  s: Uint8Array;
1440
1623
  e: Uint8Array;
1441
1624
  }
1442
1625
  interface MsgpackSchnorrVerifySignature {
1443
1626
  message: Uint8Array;
1444
- public_key: MsgpackAffineElement;
1627
+ public_key: MsgpackGrumpkinPoint;
1445
1628
  s: Uint8Array;
1446
1629
  e: Uint8Array;
1447
1630
  }
@@ -1464,18 +1647,26 @@ interface MsgpackSecp256k1GetRandomFrResponse {
1464
1647
  value: Uint8Array;
1465
1648
  }
1466
1649
  export interface Secp256k1Mul {
1467
- point: AffineElement;
1650
+ point: Secp256k1Point;
1468
1651
  scalar: Secp256k1Fr;
1469
1652
  }
1470
1653
  interface MsgpackSecp256k1Mul {
1471
- point: MsgpackAffineElement;
1654
+ point: MsgpackSecp256k1Point;
1472
1655
  scalar: Uint8Array;
1473
1656
  }
1474
1657
  export interface Secp256k1MulResponse {
1475
- point: AffineElement;
1658
+ point: Secp256k1Point;
1476
1659
  }
1477
1660
  interface MsgpackSecp256k1MulResponse {
1478
- point: MsgpackAffineElement;
1661
+ point: MsgpackSecp256k1Point;
1662
+ }
1663
+ export interface Secp256k1Point {
1664
+ x: Secp256k1Fq;
1665
+ y: Secp256k1Fq;
1666
+ }
1667
+ interface MsgpackSecp256k1Point {
1668
+ x: Uint8Array;
1669
+ y: Uint8Array;
1479
1670
  }
1480
1671
  export interface Secp256k1Reduce512 {
1481
1672
  input: Uint8Array;
@@ -1489,6 +1680,14 @@ export interface Secp256k1Reduce512Response {
1489
1680
  interface MsgpackSecp256k1Reduce512Response {
1490
1681
  value: Uint8Array;
1491
1682
  }
1683
+ export interface Secp256r1Point {
1684
+ x: Secp256r1Fq;
1685
+ y: Secp256r1Fq;
1686
+ }
1687
+ interface MsgpackSecp256r1Point {
1688
+ x: Uint8Array;
1689
+ y: Uint8Array;
1690
+ }
1492
1691
  export interface Shutdown {
1493
1692
  }
1494
1693
  interface MsgpackShutdown {
@@ -1547,8 +1746,6 @@ export declare function toAesEncrypt(o: MsgpackAesEncrypt): AesEncrypt;
1547
1746
  export declare function fromAesEncrypt(o: AesEncrypt): MsgpackAesEncrypt;
1548
1747
  export declare function toAesEncryptResponse(o: MsgpackAesEncryptResponse): AesEncryptResponse;
1549
1748
  export declare function fromAesEncryptResponse(o: AesEncryptResponse): MsgpackAesEncryptResponse;
1550
- export declare function toAffineElement(o: MsgpackAffineElement): AffineElement;
1551
- export declare function fromAffineElement(o: AffineElement): MsgpackAffineElement;
1552
1749
  export declare function toBlake2s(o: MsgpackBlake2s): Blake2s;
1553
1750
  export declare function fromBlake2s(o: Blake2s): MsgpackBlake2s;
1554
1751
  export declare function toBlake2sResponse(o: MsgpackBlake2sResponse): Blake2sResponse;
@@ -1557,10 +1754,72 @@ export declare function toBlake2sToField(o: MsgpackBlake2sToField): Blake2sToFie
1557
1754
  export declare function fromBlake2sToField(o: Blake2sToField): MsgpackBlake2sToField;
1558
1755
  export declare function toBlake2sToFieldResponse(o: MsgpackBlake2sToFieldResponse): Blake2sToFieldResponse;
1559
1756
  export declare function fromBlake2sToFieldResponse(o: Blake2sToFieldResponse): MsgpackBlake2sToFieldResponse;
1757
+ export declare function toBn254FqSqrt(o: MsgpackBn254FqSqrt): Bn254FqSqrt;
1758
+ export declare function fromBn254FqSqrt(o: Bn254FqSqrt): MsgpackBn254FqSqrt;
1759
+ export declare function toBn254FqSqrtResponse(o: MsgpackBn254FqSqrtResponse): Bn254FqSqrtResponse;
1760
+ export declare function fromBn254FqSqrtResponse(o: Bn254FqSqrtResponse): MsgpackBn254FqSqrtResponse;
1560
1761
  export declare function toBn254FrSqrt(o: MsgpackBn254FrSqrt): Bn254FrSqrt;
1561
1762
  export declare function fromBn254FrSqrt(o: Bn254FrSqrt): MsgpackBn254FrSqrt;
1562
1763
  export declare function toBn254FrSqrtResponse(o: MsgpackBn254FrSqrtResponse): Bn254FrSqrtResponse;
1563
1764
  export declare function fromBn254FrSqrtResponse(o: Bn254FrSqrtResponse): MsgpackBn254FrSqrtResponse;
1765
+ export declare function toBn254G1FromCompressed(o: MsgpackBn254G1FromCompressed): Bn254G1FromCompressed;
1766
+ export declare function fromBn254G1FromCompressed(o: Bn254G1FromCompressed): MsgpackBn254G1FromCompressed;
1767
+ export declare function toBn254G1FromCompressedResponse(o: MsgpackBn254G1FromCompressedResponse): Bn254G1FromCompressedResponse;
1768
+ export declare function fromBn254G1FromCompressedResponse(o: Bn254G1FromCompressedResponse): MsgpackBn254G1FromCompressedResponse;
1769
+ export declare function toBn254G1IsOnCurve(o: MsgpackBn254G1IsOnCurve): Bn254G1IsOnCurve;
1770
+ export declare function fromBn254G1IsOnCurve(o: Bn254G1IsOnCurve): MsgpackBn254G1IsOnCurve;
1771
+ export declare function toBn254G1IsOnCurveResponse(o: MsgpackBn254G1IsOnCurveResponse): Bn254G1IsOnCurveResponse;
1772
+ export declare function fromBn254G1IsOnCurveResponse(o: Bn254G1IsOnCurveResponse): MsgpackBn254G1IsOnCurveResponse;
1773
+ export declare function toBn254G1Mul(o: MsgpackBn254G1Mul): Bn254G1Mul;
1774
+ export declare function fromBn254G1Mul(o: Bn254G1Mul): MsgpackBn254G1Mul;
1775
+ export declare function toBn254G1MulResponse(o: MsgpackBn254G1MulResponse): Bn254G1MulResponse;
1776
+ export declare function fromBn254G1MulResponse(o: Bn254G1MulResponse): MsgpackBn254G1MulResponse;
1777
+ export declare function toBn254G1Point(o: MsgpackBn254G1Point): Bn254G1Point;
1778
+ export declare function fromBn254G1Point(o: Bn254G1Point): MsgpackBn254G1Point;
1779
+ export declare function toBn254G2Mul(o: MsgpackBn254G2Mul): Bn254G2Mul;
1780
+ export declare function fromBn254G2Mul(o: Bn254G2Mul): MsgpackBn254G2Mul;
1781
+ export declare function toBn254G2MulResponse(o: MsgpackBn254G2MulResponse): Bn254G2MulResponse;
1782
+ export declare function fromBn254G2MulResponse(o: Bn254G2MulResponse): MsgpackBn254G2MulResponse;
1783
+ export declare function toBn254G2Point(o: MsgpackBn254G2Point): Bn254G2Point;
1784
+ export declare function fromBn254G2Point(o: Bn254G2Point): MsgpackBn254G2Point;
1785
+ export declare function toChonkAccumulate(o: MsgpackChonkAccumulate): ChonkAccumulate;
1786
+ export declare function fromChonkAccumulate(o: ChonkAccumulate): MsgpackChonkAccumulate;
1787
+ export declare function toChonkAccumulateResponse(o: MsgpackChonkAccumulateResponse): ChonkAccumulateResponse;
1788
+ export declare function fromChonkAccumulateResponse(o: ChonkAccumulateResponse): MsgpackChonkAccumulateResponse;
1789
+ export declare function toChonkCheckPrecomputedVk(o: MsgpackChonkCheckPrecomputedVk): ChonkCheckPrecomputedVk;
1790
+ export declare function fromChonkCheckPrecomputedVk(o: ChonkCheckPrecomputedVk): MsgpackChonkCheckPrecomputedVk;
1791
+ export declare function toChonkCheckPrecomputedVkResponse(o: MsgpackChonkCheckPrecomputedVkResponse): ChonkCheckPrecomputedVkResponse;
1792
+ export declare function fromChonkCheckPrecomputedVkResponse(o: ChonkCheckPrecomputedVkResponse): MsgpackChonkCheckPrecomputedVkResponse;
1793
+ export declare function toChonkComputeIvcVk(o: MsgpackChonkComputeIvcVk): ChonkComputeIvcVk;
1794
+ export declare function fromChonkComputeIvcVk(o: ChonkComputeIvcVk): MsgpackChonkComputeIvcVk;
1795
+ export declare function toChonkComputeIvcVkResponse(o: MsgpackChonkComputeIvcVkResponse): ChonkComputeIvcVkResponse;
1796
+ export declare function fromChonkComputeIvcVkResponse(o: ChonkComputeIvcVkResponse): MsgpackChonkComputeIvcVkResponse;
1797
+ export declare function toChonkComputeStandaloneVk(o: MsgpackChonkComputeStandaloneVk): ChonkComputeStandaloneVk;
1798
+ export declare function fromChonkComputeStandaloneVk(o: ChonkComputeStandaloneVk): MsgpackChonkComputeStandaloneVk;
1799
+ export declare function toChonkComputeStandaloneVkResponse(o: MsgpackChonkComputeStandaloneVkResponse): ChonkComputeStandaloneVkResponse;
1800
+ export declare function fromChonkComputeStandaloneVkResponse(o: ChonkComputeStandaloneVkResponse): MsgpackChonkComputeStandaloneVkResponse;
1801
+ export declare function toChonkLoad(o: MsgpackChonkLoad): ChonkLoad;
1802
+ export declare function fromChonkLoad(o: ChonkLoad): MsgpackChonkLoad;
1803
+ export declare function toChonkLoadResponse(o: MsgpackChonkLoadResponse): ChonkLoadResponse;
1804
+ export declare function fromChonkLoadResponse(o: ChonkLoadResponse): MsgpackChonkLoadResponse;
1805
+ export declare function toChonkProof(o: MsgpackChonkProof): ChonkProof;
1806
+ export declare function fromChonkProof(o: ChonkProof): MsgpackChonkProof;
1807
+ export declare function toChonkProve(o: MsgpackChonkProve): ChonkProve;
1808
+ export declare function fromChonkProve(o: ChonkProve): MsgpackChonkProve;
1809
+ export declare function toChonkProveResponse(o: MsgpackChonkProveResponse): ChonkProveResponse;
1810
+ export declare function fromChonkProveResponse(o: ChonkProveResponse): MsgpackChonkProveResponse;
1811
+ export declare function toChonkStart(o: MsgpackChonkStart): ChonkStart;
1812
+ export declare function fromChonkStart(o: ChonkStart): MsgpackChonkStart;
1813
+ export declare function toChonkStartResponse(o: MsgpackChonkStartResponse): ChonkStartResponse;
1814
+ export declare function fromChonkStartResponse(o: ChonkStartResponse): MsgpackChonkStartResponse;
1815
+ export declare function toChonkStats(o: MsgpackChonkStats): ChonkStats;
1816
+ export declare function fromChonkStats(o: ChonkStats): MsgpackChonkStats;
1817
+ export declare function toChonkStatsResponse(o: MsgpackChonkStatsResponse): ChonkStatsResponse;
1818
+ export declare function fromChonkStatsResponse(o: ChonkStatsResponse): MsgpackChonkStatsResponse;
1819
+ export declare function toChonkVerify(o: MsgpackChonkVerify): ChonkVerify;
1820
+ export declare function fromChonkVerify(o: ChonkVerify): MsgpackChonkVerify;
1821
+ export declare function toChonkVerifyResponse(o: MsgpackChonkVerifyResponse): ChonkVerifyResponse;
1822
+ export declare function fromChonkVerifyResponse(o: ChonkVerifyResponse): MsgpackChonkVerifyResponse;
1564
1823
  export declare function toCircuitComputeVk(o: MsgpackCircuitComputeVk): CircuitComputeVk;
1565
1824
  export declare function fromCircuitComputeVk(o: CircuitComputeVk): MsgpackCircuitComputeVk;
1566
1825
  export declare function toCircuitComputeVkResponse(o: MsgpackCircuitComputeVkResponse): CircuitComputeVkResponse;
@@ -1585,46 +1844,6 @@ export declare function toCircuitWriteSolidityVerifier(o: MsgpackCircuitWriteSol
1585
1844
  export declare function fromCircuitWriteSolidityVerifier(o: CircuitWriteSolidityVerifier): MsgpackCircuitWriteSolidityVerifier;
1586
1845
  export declare function toCircuitWriteSolidityVerifierResponse(o: MsgpackCircuitWriteSolidityVerifierResponse): CircuitWriteSolidityVerifierResponse;
1587
1846
  export declare function fromCircuitWriteSolidityVerifierResponse(o: CircuitWriteSolidityVerifierResponse): MsgpackCircuitWriteSolidityVerifierResponse;
1588
- export declare function toClientIvcAccumulate(o: MsgpackClientIvcAccumulate): ClientIvcAccumulate;
1589
- export declare function fromClientIvcAccumulate(o: ClientIvcAccumulate): MsgpackClientIvcAccumulate;
1590
- export declare function toClientIvcAccumulateResponse(o: MsgpackClientIvcAccumulateResponse): ClientIvcAccumulateResponse;
1591
- export declare function fromClientIvcAccumulateResponse(o: ClientIvcAccumulateResponse): MsgpackClientIvcAccumulateResponse;
1592
- export declare function toClientIvcCheckPrecomputedVk(o: MsgpackClientIvcCheckPrecomputedVk): ClientIvcCheckPrecomputedVk;
1593
- export declare function fromClientIvcCheckPrecomputedVk(o: ClientIvcCheckPrecomputedVk): MsgpackClientIvcCheckPrecomputedVk;
1594
- export declare function toClientIvcCheckPrecomputedVkResponse(o: MsgpackClientIvcCheckPrecomputedVkResponse): ClientIvcCheckPrecomputedVkResponse;
1595
- export declare function fromClientIvcCheckPrecomputedVkResponse(o: ClientIvcCheckPrecomputedVkResponse): MsgpackClientIvcCheckPrecomputedVkResponse;
1596
- export declare function toClientIvcComputeIvcVk(o: MsgpackClientIvcComputeIvcVk): ClientIvcComputeIvcVk;
1597
- export declare function fromClientIvcComputeIvcVk(o: ClientIvcComputeIvcVk): MsgpackClientIvcComputeIvcVk;
1598
- export declare function toClientIvcComputeIvcVkResponse(o: MsgpackClientIvcComputeIvcVkResponse): ClientIvcComputeIvcVkResponse;
1599
- export declare function fromClientIvcComputeIvcVkResponse(o: ClientIvcComputeIvcVkResponse): MsgpackClientIvcComputeIvcVkResponse;
1600
- export declare function toClientIvcComputeStandaloneVk(o: MsgpackClientIvcComputeStandaloneVk): ClientIvcComputeStandaloneVk;
1601
- export declare function fromClientIvcComputeStandaloneVk(o: ClientIvcComputeStandaloneVk): MsgpackClientIvcComputeStandaloneVk;
1602
- export declare function toClientIvcComputeStandaloneVkResponse(o: MsgpackClientIvcComputeStandaloneVkResponse): ClientIvcComputeStandaloneVkResponse;
1603
- export declare function fromClientIvcComputeStandaloneVkResponse(o: ClientIvcComputeStandaloneVkResponse): MsgpackClientIvcComputeStandaloneVkResponse;
1604
- export declare function toClientIvcLoad(o: MsgpackClientIvcLoad): ClientIvcLoad;
1605
- export declare function fromClientIvcLoad(o: ClientIvcLoad): MsgpackClientIvcLoad;
1606
- export declare function toClientIvcLoadResponse(o: MsgpackClientIvcLoadResponse): ClientIvcLoadResponse;
1607
- export declare function fromClientIvcLoadResponse(o: ClientIvcLoadResponse): MsgpackClientIvcLoadResponse;
1608
- export declare function toClientIVCProof(o: MsgpackClientIVCProof): ClientIVCProof;
1609
- export declare function fromClientIVCProof(o: ClientIVCProof): MsgpackClientIVCProof;
1610
- export declare function toClientIvcProve(o: MsgpackClientIvcProve): ClientIvcProve;
1611
- export declare function fromClientIvcProve(o: ClientIvcProve): MsgpackClientIvcProve;
1612
- export declare function toClientIvcProveResponse(o: MsgpackClientIvcProveResponse): ClientIvcProveResponse;
1613
- export declare function fromClientIvcProveResponse(o: ClientIvcProveResponse): MsgpackClientIvcProveResponse;
1614
- export declare function toClientIvcStart(o: MsgpackClientIvcStart): ClientIvcStart;
1615
- export declare function fromClientIvcStart(o: ClientIvcStart): MsgpackClientIvcStart;
1616
- export declare function toClientIvcStartResponse(o: MsgpackClientIvcStartResponse): ClientIvcStartResponse;
1617
- export declare function fromClientIvcStartResponse(o: ClientIvcStartResponse): MsgpackClientIvcStartResponse;
1618
- export declare function toClientIvcStats(o: MsgpackClientIvcStats): ClientIvcStats;
1619
- export declare function fromClientIvcStats(o: ClientIvcStats): MsgpackClientIvcStats;
1620
- export declare function toClientIvcStatsResponse(o: MsgpackClientIvcStatsResponse): ClientIvcStatsResponse;
1621
- export declare function fromClientIvcStatsResponse(o: ClientIvcStatsResponse): MsgpackClientIvcStatsResponse;
1622
- export declare function toClientIvcVerify(o: MsgpackClientIvcVerify): ClientIvcVerify;
1623
- export declare function fromClientIvcVerify(o: ClientIvcVerify): MsgpackClientIvcVerify;
1624
- export declare function toClientIvcVerifyResponse(o: MsgpackClientIvcVerifyResponse): ClientIvcVerifyResponse;
1625
- export declare function fromClientIvcVerifyResponse(o: ClientIvcVerifyResponse): MsgpackClientIvcVerifyResponse;
1626
- export declare function toECCVMProof(o: MsgpackECCVMProof): ECCVMProof;
1627
- export declare function fromECCVMProof(o: ECCVMProof): MsgpackECCVMProof;
1628
1847
  export declare function toEcdsaSecp256k1ComputePublicKey(o: MsgpackEcdsaSecp256k1ComputePublicKey): EcdsaSecp256k1ComputePublicKey;
1629
1848
  export declare function fromEcdsaSecp256k1ComputePublicKey(o: EcdsaSecp256k1ComputePublicKey): MsgpackEcdsaSecp256k1ComputePublicKey;
1630
1849
  export declare function toEcdsaSecp256k1ComputePublicKeyResponse(o: MsgpackEcdsaSecp256k1ComputePublicKeyResponse): EcdsaSecp256k1ComputePublicKeyResponse;
@@ -1657,6 +1876,8 @@ export declare function toEcdsaSecp256r1VerifySignature(o: MsgpackEcdsaSecp256r1
1657
1876
  export declare function fromEcdsaSecp256r1VerifySignature(o: EcdsaSecp256r1VerifySignature): MsgpackEcdsaSecp256r1VerifySignature;
1658
1877
  export declare function toEcdsaSecp256r1VerifySignatureResponse(o: MsgpackEcdsaSecp256r1VerifySignatureResponse): EcdsaSecp256r1VerifySignatureResponse;
1659
1878
  export declare function fromEcdsaSecp256r1VerifySignatureResponse(o: EcdsaSecp256r1VerifySignatureResponse): MsgpackEcdsaSecp256r1VerifySignatureResponse;
1879
+ export declare function toErrorResponse(o: MsgpackErrorResponse): ErrorResponse;
1880
+ export declare function fromErrorResponse(o: ErrorResponse): MsgpackErrorResponse;
1660
1881
  export declare function toGoblinProof(o: MsgpackGoblinProof): GoblinProof;
1661
1882
  export declare function fromGoblinProof(o: GoblinProof): MsgpackGoblinProof;
1662
1883
  export declare function toGrumpkinAdd(o: MsgpackGrumpkinAdd): GrumpkinAdd;
@@ -1675,6 +1896,8 @@ export declare function toGrumpkinMul(o: MsgpackGrumpkinMul): GrumpkinMul;
1675
1896
  export declare function fromGrumpkinMul(o: GrumpkinMul): MsgpackGrumpkinMul;
1676
1897
  export declare function toGrumpkinMulResponse(o: MsgpackGrumpkinMulResponse): GrumpkinMulResponse;
1677
1898
  export declare function fromGrumpkinMulResponse(o: GrumpkinMulResponse): MsgpackGrumpkinMulResponse;
1899
+ export declare function toGrumpkinPoint(o: MsgpackGrumpkinPoint): GrumpkinPoint;
1900
+ export declare function fromGrumpkinPoint(o: GrumpkinPoint): MsgpackGrumpkinPoint;
1678
1901
  export declare function toGrumpkinReduce512(o: MsgpackGrumpkinReduce512): GrumpkinReduce512;
1679
1902
  export declare function fromGrumpkinReduce512(o: GrumpkinReduce512): MsgpackGrumpkinReduce512;
1680
1903
  export declare function toGrumpkinReduce512Response(o: MsgpackGrumpkinReduce512Response): GrumpkinReduce512Response;
@@ -1729,10 +1952,14 @@ export declare function toSecp256k1Mul(o: MsgpackSecp256k1Mul): Secp256k1Mul;
1729
1952
  export declare function fromSecp256k1Mul(o: Secp256k1Mul): MsgpackSecp256k1Mul;
1730
1953
  export declare function toSecp256k1MulResponse(o: MsgpackSecp256k1MulResponse): Secp256k1MulResponse;
1731
1954
  export declare function fromSecp256k1MulResponse(o: Secp256k1MulResponse): MsgpackSecp256k1MulResponse;
1955
+ export declare function toSecp256k1Point(o: MsgpackSecp256k1Point): Secp256k1Point;
1956
+ export declare function fromSecp256k1Point(o: Secp256k1Point): MsgpackSecp256k1Point;
1732
1957
  export declare function toSecp256k1Reduce512(o: MsgpackSecp256k1Reduce512): Secp256k1Reduce512;
1733
1958
  export declare function fromSecp256k1Reduce512(o: Secp256k1Reduce512): MsgpackSecp256k1Reduce512;
1734
1959
  export declare function toSecp256k1Reduce512Response(o: MsgpackSecp256k1Reduce512Response): Secp256k1Reduce512Response;
1735
1960
  export declare function fromSecp256k1Reduce512Response(o: Secp256k1Reduce512Response): MsgpackSecp256k1Reduce512Response;
1961
+ export declare function toSecp256r1Point(o: MsgpackSecp256r1Point): Secp256r1Point;
1962
+ export declare function fromSecp256r1Point(o: Secp256r1Point): MsgpackSecp256r1Point;
1736
1963
  export declare function toShutdown(o: MsgpackShutdown): Shutdown;
1737
1964
  export declare function fromShutdown(o: Shutdown): MsgpackShutdown;
1738
1965
  export declare function toShutdownResponse(o: MsgpackShutdownResponse): ShutdownResponse;
@@ -1754,18 +1981,18 @@ export interface BbApiBase {
1754
1981
  circuitComputeVk(command: CircuitComputeVk): Promise<CircuitComputeVkResponse>;
1755
1982
  circuitStats(command: CircuitStats): Promise<CircuitInfoResponse>;
1756
1983
  circuitVerify(command: CircuitVerify): Promise<CircuitVerifyResponse>;
1757
- clientIvcComputeStandaloneVk(command: ClientIvcComputeStandaloneVk): Promise<ClientIvcComputeStandaloneVkResponse>;
1758
- clientIvcComputeIvcVk(command: ClientIvcComputeIvcVk): Promise<ClientIvcComputeIvcVkResponse>;
1759
- clientIvcStart(command: ClientIvcStart): Promise<ClientIvcStartResponse>;
1760
- clientIvcLoad(command: ClientIvcLoad): Promise<ClientIvcLoadResponse>;
1761
- clientIvcAccumulate(command: ClientIvcAccumulate): Promise<ClientIvcAccumulateResponse>;
1762
- clientIvcProve(command: ClientIvcProve): Promise<ClientIvcProveResponse>;
1763
- clientIvcVerify(command: ClientIvcVerify): Promise<ClientIvcVerifyResponse>;
1984
+ chonkComputeStandaloneVk(command: ChonkComputeStandaloneVk): Promise<ChonkComputeStandaloneVkResponse>;
1985
+ chonkComputeIvcVk(command: ChonkComputeIvcVk): Promise<ChonkComputeIvcVkResponse>;
1986
+ chonkStart(command: ChonkStart): Promise<ChonkStartResponse>;
1987
+ chonkLoad(command: ChonkLoad): Promise<ChonkLoadResponse>;
1988
+ chonkAccumulate(command: ChonkAccumulate): Promise<ChonkAccumulateResponse>;
1989
+ chonkProve(command: ChonkProve): Promise<ChonkProveResponse>;
1990
+ chonkVerify(command: ChonkVerify): Promise<ChonkVerifyResponse>;
1764
1991
  vkAsFields(command: VkAsFields): Promise<VkAsFieldsResponse>;
1765
1992
  megaVkAsFields(command: MegaVkAsFields): Promise<MegaVkAsFieldsResponse>;
1766
1993
  circuitWriteSolidityVerifier(command: CircuitWriteSolidityVerifier): Promise<CircuitWriteSolidityVerifierResponse>;
1767
- clientIvcCheckPrecomputedVk(command: ClientIvcCheckPrecomputedVk): Promise<ClientIvcCheckPrecomputedVkResponse>;
1768
- clientIvcStats(command: ClientIvcStats): Promise<ClientIvcStatsResponse>;
1994
+ chonkCheckPrecomputedVk(command: ChonkCheckPrecomputedVk): Promise<ChonkCheckPrecomputedVkResponse>;
1995
+ chonkStats(command: ChonkStats): Promise<ChonkStatsResponse>;
1769
1996
  poseidon2Hash(command: Poseidon2Hash): Promise<Poseidon2HashResponse>;
1770
1997
  poseidon2Permutation(command: Poseidon2Permutation): Promise<Poseidon2PermutationResponse>;
1771
1998
  poseidon2HashAccumulate(command: Poseidon2HashAccumulate): Promise<Poseidon2HashAccumulateResponse>;
@@ -1785,6 +2012,11 @@ export interface BbApiBase {
1785
2012
  secp256k1GetRandomFr(command: Secp256k1GetRandomFr): Promise<Secp256k1GetRandomFrResponse>;
1786
2013
  secp256k1Reduce512(command: Secp256k1Reduce512): Promise<Secp256k1Reduce512Response>;
1787
2014
  bn254FrSqrt(command: Bn254FrSqrt): Promise<Bn254FrSqrtResponse>;
2015
+ bn254FqSqrt(command: Bn254FqSqrt): Promise<Bn254FqSqrtResponse>;
2016
+ bn254G1Mul(command: Bn254G1Mul): Promise<Bn254G1MulResponse>;
2017
+ bn254G2Mul(command: Bn254G2Mul): Promise<Bn254G2MulResponse>;
2018
+ bn254G1IsOnCurve(command: Bn254G1IsOnCurve): Promise<Bn254G1IsOnCurveResponse>;
2019
+ bn254G1FromCompressed(command: Bn254G1FromCompressed): Promise<Bn254G1FromCompressedResponse>;
1788
2020
  schnorrComputePublicKey(command: SchnorrComputePublicKey): Promise<SchnorrComputePublicKeyResponse>;
1789
2021
  schnorrConstructSignature(command: SchnorrConstructSignature): Promise<SchnorrConstructSignatureResponse>;
1790
2022
  schnorrVerifySignature(command: SchnorrVerifySignature): Promise<SchnorrVerifySignatureResponse>;
@@ -1802,4 +2034,4 @@ export interface BbApiBase {
1802
2034
  destroy(): Promise<void>;
1803
2035
  }
1804
2036
  export {};
1805
- //# sourceMappingURL=api_types.d.ts.map
2037
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpX3R5cGVzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY2JpbmQvZ2VuZXJhdGVkL2FwaV90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxNQUFNLE1BQU0sTUFBTSxHQUFHLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBQzlDLE1BQU0sTUFBTSxFQUFFLEdBQUcsVUFBVSxDQUFDO0FBQzVCLE1BQU0sTUFBTSxFQUFFLEdBQUcsVUFBVSxDQUFDO0FBQzVCLE1BQU0sTUFBTSxXQUFXLEdBQUcsVUFBVSxDQUFDO0FBQ3JDLE1BQU0sTUFBTSxXQUFXLEdBQUcsVUFBVSxDQUFDO0FBQ3JDLE1BQU0sTUFBTSxXQUFXLEdBQUcsVUFBVSxDQUFDO0FBQ3JDLE1BQU0sTUFBTSxXQUFXLEdBQUcsVUFBVSxDQUFDO0FBQ3JDLE1BQU0sTUFBTSxRQUFRLEdBQUcsVUFBVSxDQUFDO0FBR2xDLE1BQU0sV0FBVyxVQUFVO0lBQ3pCLFVBQVUsRUFBRSxVQUFVLENBQUM7SUFDdkIsRUFBRSxFQUFFLFVBQVUsQ0FBQztJQUNmLEdBQUcsRUFBRSxVQUFVLENBQUM7SUFDaEIsTUFBTSxFQUFFLE1BQU0sQ0FBQztDQUNoQjtBQUVELFVBQVUsaUJBQWlCO0lBQ3pCLFVBQVUsRUFBRSxVQUFVLENBQUM7SUFDdkIsRUFBRSxFQUFFLFVBQVUsQ0FBQztJQUNmLEdBQUcsRUFBRSxVQUFVLENBQUM7SUFDaEIsTUFBTSxFQUFFLE1BQU0sQ0FBQztDQUNoQjtBQUVELE1BQU0sV0FBVyxrQkFBa0I7SUFDakMsU0FBUyxFQUFFLFVBQVUsQ0FBQztDQUN2QjtBQUVELFVBQVUseUJBQXlCO0lBQ2pDLFNBQVMsRUFBRSxVQUFVLENBQUM7Q0FDdkI7QUFFRCxNQUFNLFdBQVcsVUFBVTtJQUN6QixTQUFTLEVBQUUsVUFBVSxDQUFDO0lBQ3RCLEVBQUUsRUFBRSxVQUFVLENBQUM7SUFDZixHQUFHLEVBQUUsVUFBVSxDQUFDO0lB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