@aztec/bb.js 3.0.0-canary.a9708bd → 3.0.0-manual.20251030

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 (410) hide show
  1. package/README.md +13 -79
  2. package/dest/browser/barretenberg/backend.d.ts +2 -2
  3. package/dest/browser/barretenberg/backend.d.ts.map +1 -1
  4. package/dest/browser/barretenberg/backend.js +40 -25
  5. package/dest/browser/barretenberg/index.d.ts +45 -44
  6. package/dest/browser/barretenberg/index.d.ts.map +1 -1
  7. package/dest/browser/barretenberg/index.js +131 -80
  8. package/dest/browser/barretenberg_wasm/barretenberg_wasm_base/index.d.ts +1 -1
  9. package/dest/browser/barretenberg_wasm/barretenberg_wasm_base/index.d.ts.map +1 -1
  10. package/dest/browser/barretenberg_wasm/barretenberg_wasm_base/index.js +2 -2
  11. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts +4 -4
  12. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts.map +1 -1
  13. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.js +18 -10
  14. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/index.d.ts +3 -0
  15. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/index.d.ts.map +1 -1
  16. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/index.js +55 -14
  17. package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg-threads.js +1 -1
  18. package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg.js +1 -1
  19. package/dest/browser/bb_backends/browser/index.d.ts +11 -0
  20. package/dest/browser/bb_backends/browser/index.d.ts.map +1 -0
  21. package/dest/browser/bb_backends/browser/index.js +39 -0
  22. package/dest/browser/bb_backends/index.d.ts +45 -0
  23. package/dest/browser/bb_backends/index.d.ts.map +1 -0
  24. package/dest/browser/bb_backends/index.js +15 -0
  25. package/dest/browser/bb_backends/interface.d.ts +33 -0
  26. package/dest/browser/bb_backends/interface.d.ts.map +1 -0
  27. package/dest/browser/bb_backends/interface.js +2 -0
  28. package/dest/browser/bb_backends/sync_to_async_adapter.d.ts +15 -0
  29. package/dest/browser/bb_backends/sync_to_async_adapter.d.ts.map +1 -0
  30. package/dest/browser/bb_backends/sync_to_async_adapter.js +20 -0
  31. package/dest/browser/bb_backends/wasm.d.ts +49 -0
  32. package/dest/browser/bb_backends/wasm.d.ts.map +1 -0
  33. package/dest/browser/bb_backends/wasm.js +83 -0
  34. package/dest/browser/bbapi_exception.d.ts +7 -0
  35. package/dest/browser/bbapi_exception.d.ts.map +1 -0
  36. package/dest/browser/bbapi_exception.js +14 -0
  37. package/dest/browser/cbind/generate.js +94 -7
  38. package/dest/browser/cbind/generated/api_types.d.ts +1640 -227
  39. package/dest/browser/cbind/generated/api_types.d.ts.map +1 -1
  40. package/dest/browser/cbind/generated/api_types.js +2366 -478
  41. package/dest/browser/cbind/generated/async.d.ts +52 -13
  42. package/dest/browser/cbind/generated/async.d.ts.map +1 -1
  43. package/dest/browser/cbind/generated/async.js +586 -72
  44. package/dest/browser/cbind/generated/curve_constants.d.ts +45 -0
  45. package/dest/browser/cbind/generated/curve_constants.d.ts.map +1 -0
  46. package/dest/browser/cbind/generated/curve_constants.js +45 -0
  47. package/dest/browser/cbind/generated/sync.d.ts +53 -14
  48. package/dest/browser/cbind/generated/sync.d.ts.map +1 -1
  49. package/dest/browser/cbind/generated/sync.js +548 -72
  50. package/dest/browser/cbind/schema_compiler.d.ts +2 -4
  51. package/dest/browser/cbind/schema_compiler.d.ts.map +1 -1
  52. package/dest/browser/cbind/schema_compiler.js +97 -181
  53. package/dest/browser/index.d.ts +4 -2
  54. package/dest/browser/index.d.ts.map +1 -1
  55. package/dest/browser/index.js +5 -3
  56. package/dest/browser/serialize/index.d.ts +0 -2
  57. package/dest/browser/serialize/index.d.ts.map +1 -1
  58. package/dest/browser/serialize/index.js +1 -3
  59. package/dest/browser/serialize/serialize.d.ts +0 -35
  60. package/dest/browser/serialize/serialize.d.ts.map +1 -1
  61. package/dest/browser/serialize/serialize.js +1 -68
  62. package/dest/browser/types/fields.d.ts +6 -26
  63. package/dest/browser/types/fields.d.ts.map +1 -1
  64. package/dest/browser/types/fields.js +16 -57
  65. package/dest/browser/types/index.d.ts +0 -3
  66. package/dest/browser/types/index.d.ts.map +1 -1
  67. package/dest/browser/types/index.js +1 -4
  68. package/dest/browser/types/point.d.ts +8 -6
  69. package/dest/browser/types/point.d.ts.map +1 -1
  70. package/dest/browser/types/point.js +12 -15
  71. package/dest/node/barretenberg/__snapshots__/pedersen.test.js.snap +2 -2
  72. package/dest/node/barretenberg/__snapshots__/poseidon.test.js.snap +3 -3
  73. package/dest/node/barretenberg/backend.d.ts +2 -2
  74. package/dest/node/barretenberg/backend.d.ts.map +1 -1
  75. package/dest/node/barretenberg/backend.js +40 -25
  76. package/dest/node/barretenberg/blake2s.test.js +21 -18
  77. package/dest/node/barretenberg/index.d.ts +45 -44
  78. package/dest/node/barretenberg/index.d.ts.map +1 -1
  79. package/dest/node/barretenberg/index.js +131 -80
  80. package/dest/node/barretenberg/pedersen.test.js +24 -17
  81. package/dest/node/barretenberg/poseidon.bench.test.d.ts +2 -0
  82. package/dest/node/barretenberg/poseidon.bench.test.d.ts.map +1 -0
  83. package/dest/node/barretenberg/poseidon.bench.test.js +217 -0
  84. package/dest/node/barretenberg/poseidon.test.js +15 -15
  85. package/dest/node/barretenberg_wasm/barretenberg-threads.wasm.gz +0 -0
  86. package/dest/node/barretenberg_wasm/barretenberg_wasm_base/index.d.ts +1 -1
  87. package/dest/node/barretenberg_wasm/barretenberg_wasm_base/index.d.ts.map +1 -1
  88. package/dest/node/barretenberg_wasm/barretenberg_wasm_base/index.js +2 -2
  89. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts +4 -4
  90. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts.map +1 -1
  91. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.js +18 -10
  92. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/index.d.ts +3 -0
  93. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/index.d.ts.map +1 -1
  94. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/index.js +55 -14
  95. package/dest/node/barretenberg_wasm/index.test.js +11 -10
  96. package/dest/node/bb_backends/browser/index.d.ts +11 -0
  97. package/dest/node/bb_backends/browser/index.d.ts.map +1 -0
  98. package/dest/node/bb_backends/browser/index.js +39 -0
  99. package/dest/node/bb_backends/index.d.ts +45 -0
  100. package/dest/node/bb_backends/index.d.ts.map +1 -0
  101. package/dest/node/bb_backends/index.js +15 -0
  102. package/dest/node/bb_backends/interface.d.ts +33 -0
  103. package/dest/node/bb_backends/interface.d.ts.map +1 -0
  104. package/dest/node/bb_backends/interface.js +2 -0
  105. package/dest/node/bb_backends/node/index.d.ts +11 -0
  106. package/dest/node/bb_backends/node/index.d.ts.map +1 -0
  107. package/dest/node/bb_backends/node/index.js +80 -0
  108. package/dest/node/bb_backends/node/native_pipe.d.ts +25 -0
  109. package/dest/node/bb_backends/node/native_pipe.d.ts.map +1 -0
  110. package/dest/node/bb_backends/node/native_pipe.js +113 -0
  111. package/dest/node/bb_backends/node/native_shm.d.ts +28 -0
  112. package/dest/node/bb_backends/node/native_shm.d.ts.map +1 -0
  113. package/dest/node/bb_backends/node/native_shm.js +150 -0
  114. package/dest/node/bb_backends/node/native_socket.d.ts +34 -0
  115. package/dest/node/bb_backends/node/native_socket.d.ts.map +1 -0
  116. package/dest/node/bb_backends/node/native_socket.js +269 -0
  117. package/dest/node/bb_backends/node/platform.d.ts +27 -0
  118. package/dest/node/bb_backends/node/platform.d.ts.map +1 -0
  119. package/dest/node/bb_backends/node/platform.js +124 -0
  120. package/dest/node/bb_backends/sync_to_async_adapter.d.ts +15 -0
  121. package/dest/node/bb_backends/sync_to_async_adapter.d.ts.map +1 -0
  122. package/dest/node/bb_backends/sync_to_async_adapter.js +20 -0
  123. package/dest/node/bb_backends/wasm.d.ts +49 -0
  124. package/dest/node/bb_backends/wasm.d.ts.map +1 -0
  125. package/dest/node/bb_backends/wasm.js +83 -0
  126. package/dest/node/bbapi_exception.d.ts +7 -0
  127. package/dest/node/bbapi_exception.d.ts.map +1 -0
  128. package/dest/node/bbapi_exception.js +14 -0
  129. package/dest/node/cbind/generate.js +94 -7
  130. package/dest/node/cbind/generated/api_types.d.ts +1640 -227
  131. package/dest/node/cbind/generated/api_types.d.ts.map +1 -1
  132. package/dest/node/cbind/generated/api_types.js +2366 -478
  133. package/dest/node/cbind/generated/async.d.ts +52 -13
  134. package/dest/node/cbind/generated/async.d.ts.map +1 -1
  135. package/dest/node/cbind/generated/async.js +586 -72
  136. package/dest/node/cbind/generated/curve_constants.d.ts +45 -0
  137. package/dest/node/cbind/generated/curve_constants.d.ts.map +1 -0
  138. package/dest/node/cbind/generated/curve_constants.js +45 -0
  139. package/dest/node/cbind/generated/sync.d.ts +53 -14
  140. package/dest/node/cbind/generated/sync.d.ts.map +1 -1
  141. package/dest/node/cbind/generated/sync.js +548 -72
  142. package/dest/node/cbind/schema_compiler.d.ts +2 -4
  143. package/dest/node/cbind/schema_compiler.d.ts.map +1 -1
  144. package/dest/node/cbind/schema_compiler.js +97 -181
  145. package/dest/node/index.d.ts +4 -2
  146. package/dest/node/index.d.ts.map +1 -1
  147. package/dest/node/index.js +5 -3
  148. package/dest/node/serialize/index.d.ts +0 -2
  149. package/dest/node/serialize/index.d.ts.map +1 -1
  150. package/dest/node/serialize/index.js +1 -3
  151. package/dest/node/serialize/serialize.d.ts +0 -35
  152. package/dest/node/serialize/serialize.d.ts.map +1 -1
  153. package/dest/node/serialize/serialize.js +1 -68
  154. package/dest/node/types/fields.d.ts +6 -26
  155. package/dest/node/types/fields.d.ts.map +1 -1
  156. package/dest/node/types/fields.js +16 -57
  157. package/dest/node/types/index.d.ts +0 -3
  158. package/dest/node/types/index.d.ts.map +1 -1
  159. package/dest/node/types/index.js +1 -4
  160. package/dest/node/types/point.d.ts +8 -6
  161. package/dest/node/types/point.d.ts.map +1 -1
  162. package/dest/node/types/point.js +12 -15
  163. package/dest/node-cjs/barretenberg/backend.d.ts +2 -2
  164. package/dest/node-cjs/barretenberg/backend.d.ts.map +1 -1
  165. package/dest/node-cjs/barretenberg/backend.js +38 -23
  166. package/dest/node-cjs/barretenberg/blake2s.test.js +19 -16
  167. package/dest/node-cjs/barretenberg/index.d.ts +45 -44
  168. package/dest/node-cjs/barretenberg/index.d.ts.map +1 -1
  169. package/dest/node-cjs/barretenberg/index.js +137 -85
  170. package/dest/node-cjs/barretenberg/pedersen.test.js +24 -17
  171. package/dest/node-cjs/barretenberg/poseidon.bench.test.d.ts +2 -0
  172. package/dest/node-cjs/barretenberg/poseidon.bench.test.d.ts.map +1 -0
  173. package/dest/node-cjs/barretenberg/poseidon.bench.test.js +219 -0
  174. package/dest/node-cjs/barretenberg/poseidon.test.js +15 -15
  175. package/dest/node-cjs/barretenberg_wasm/barretenberg-threads.wasm.gz +0 -0
  176. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_base/index.d.ts +1 -1
  177. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_base/index.d.ts.map +1 -1
  178. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_base/index.js +2 -2
  179. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts +4 -4
  180. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts.map +1 -1
  181. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.js +18 -10
  182. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/index.d.ts +3 -0
  183. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/index.d.ts.map +1 -1
  184. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/index.js +55 -14
  185. package/dest/node-cjs/barretenberg_wasm/index.test.js +11 -10
  186. package/dest/node-cjs/bb_backends/browser/index.d.ts +11 -0
  187. package/dest/node-cjs/bb_backends/browser/index.d.ts.map +1 -0
  188. package/dest/node-cjs/bb_backends/browser/index.js +43 -0
  189. package/dest/node-cjs/bb_backends/index.d.ts +45 -0
  190. package/dest/node-cjs/bb_backends/index.d.ts.map +1 -0
  191. package/dest/node-cjs/bb_backends/index.js +18 -0
  192. package/dest/node-cjs/bb_backends/interface.d.ts +33 -0
  193. package/dest/node-cjs/bb_backends/interface.d.ts.map +1 -0
  194. package/dest/node-cjs/bb_backends/interface.js +3 -0
  195. package/dest/node-cjs/bb_backends/node/index.d.ts +11 -0
  196. package/dest/node-cjs/bb_backends/node/index.d.ts.map +1 -0
  197. package/dest/node-cjs/bb_backends/node/index.js +84 -0
  198. package/dest/node-cjs/bb_backends/node/native_pipe.d.ts +25 -0
  199. package/dest/node-cjs/bb_backends/node/native_pipe.d.ts.map +1 -0
  200. package/dest/node-cjs/bb_backends/node/native_pipe.js +117 -0
  201. package/dest/node-cjs/bb_backends/node/native_shm.d.ts +28 -0
  202. package/dest/node-cjs/bb_backends/node/native_shm.d.ts.map +1 -0
  203. package/dest/node-cjs/bb_backends/node/native_shm.js +154 -0
  204. package/dest/node-cjs/bb_backends/node/native_socket.d.ts +34 -0
  205. package/dest/node-cjs/bb_backends/node/native_socket.d.ts.map +1 -0
  206. package/dest/node-cjs/bb_backends/node/native_socket.js +274 -0
  207. package/dest/node-cjs/bb_backends/node/platform.d.ts +27 -0
  208. package/dest/node-cjs/bb_backends/node/platform.d.ts.map +1 -0
  209. package/dest/node-cjs/bb_backends/node/platform.js +131 -0
  210. package/dest/node-cjs/bb_backends/sync_to_async_adapter.d.ts +15 -0
  211. package/dest/node-cjs/bb_backends/sync_to_async_adapter.d.ts.map +1 -0
  212. package/dest/node-cjs/bb_backends/sync_to_async_adapter.js +24 -0
  213. package/dest/node-cjs/bb_backends/wasm.d.ts +49 -0
  214. package/dest/node-cjs/bb_backends/wasm.d.ts.map +1 -0
  215. package/dest/node-cjs/bb_backends/wasm.js +88 -0
  216. package/dest/node-cjs/bbapi_exception.d.ts +7 -0
  217. package/dest/node-cjs/bbapi_exception.d.ts.map +1 -0
  218. package/dest/node-cjs/bbapi_exception.js +18 -0
  219. package/dest/node-cjs/cbind/generate.js +93 -6
  220. package/dest/node-cjs/cbind/generated/api_types.d.ts +1640 -227
  221. package/dest/node-cjs/cbind/generated/api_types.d.ts.map +1 -1
  222. package/dest/node-cjs/cbind/generated/api_types.js +2572 -516
  223. package/dest/node-cjs/cbind/generated/async.d.ts +52 -13
  224. package/dest/node-cjs/cbind/generated/async.d.ts.map +1 -1
  225. package/dest/node-cjs/cbind/generated/async.js +585 -71
  226. package/dest/node-cjs/cbind/generated/curve_constants.d.ts +45 -0
  227. package/dest/node-cjs/cbind/generated/curve_constants.d.ts.map +1 -0
  228. package/dest/node-cjs/cbind/generated/curve_constants.js +48 -0
  229. package/dest/node-cjs/cbind/generated/sync.d.ts +53 -14
  230. package/dest/node-cjs/cbind/generated/sync.d.ts.map +1 -1
  231. package/dest/node-cjs/cbind/generated/sync.js +547 -71
  232. package/dest/node-cjs/cbind/schema_compiler.d.ts +2 -4
  233. package/dest/node-cjs/cbind/schema_compiler.d.ts.map +1 -1
  234. package/dest/node-cjs/cbind/schema_compiler.js +97 -182
  235. package/dest/node-cjs/index.d.ts +4 -2
  236. package/dest/node-cjs/index.d.ts.map +1 -1
  237. package/dest/node-cjs/index.js +24 -9
  238. package/dest/node-cjs/serialize/index.d.ts +0 -2
  239. package/dest/node-cjs/serialize/index.d.ts.map +1 -1
  240. package/dest/node-cjs/serialize/index.js +1 -3
  241. package/dest/node-cjs/serialize/serialize.d.ts +0 -35
  242. package/dest/node-cjs/serialize/serialize.d.ts.map +1 -1
  243. package/dest/node-cjs/serialize/serialize.js +1 -79
  244. package/dest/node-cjs/types/fields.d.ts +6 -26
  245. package/dest/node-cjs/types/fields.d.ts.map +1 -1
  246. package/dest/node-cjs/types/fields.js +16 -58
  247. package/dest/node-cjs/types/index.d.ts +0 -3
  248. package/dest/node-cjs/types/index.d.ts.map +1 -1
  249. package/dest/node-cjs/types/index.js +1 -4
  250. package/dest/node-cjs/types/point.d.ts +8 -6
  251. package/dest/node-cjs/types/point.d.ts.map +1 -1
  252. package/dest/node-cjs/types/point.js +13 -16
  253. package/package.json +6 -6
  254. package/src/barretenberg/__snapshots__/pedersen.test.ts.snap +2 -2
  255. package/src/barretenberg/__snapshots__/poseidon.test.ts.snap +3 -3
  256. package/src/barretenberg/backend.ts +54 -42
  257. package/src/barretenberg/blake2s.test.ts +20 -21
  258. package/src/barretenberg/index.ts +137 -118
  259. package/src/barretenberg/pedersen.test.ts +23 -16
  260. package/src/barretenberg/poseidon.bench.test.ts +268 -0
  261. package/src/barretenberg/poseidon.test.ts +14 -14
  262. package/src/barretenberg_wasm/barretenberg_wasm_base/index.ts +3 -3
  263. package/src/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.ts +17 -9
  264. package/src/barretenberg_wasm/barretenberg_wasm_main/index.ts +67 -16
  265. package/src/barretenberg_wasm/index.test.ts +12 -11
  266. package/src/bb_backends/browser/index.ts +50 -0
  267. package/src/bb_backends/index.ts +49 -0
  268. package/src/bb_backends/interface.ts +35 -0
  269. package/src/bb_backends/node/index.ts +94 -0
  270. package/src/bb_backends/node/native_pipe.ts +127 -0
  271. package/src/bb_backends/node/native_shm.ts +171 -0
  272. package/src/bb_backends/node/native_socket.ts +312 -0
  273. package/src/bb_backends/node/platform.ts +151 -0
  274. package/src/bb_backends/sync_to_async_adapter.ts +21 -0
  275. package/src/bb_backends/wasm.ts +103 -0
  276. package/src/bbapi_exception.ts +13 -0
  277. package/src/cbind/README.md +1 -1
  278. package/src/cbind/generate.ts +99 -6
  279. package/src/cbind/schema_compiler.ts +156 -244
  280. package/src/index.ts +29 -1
  281. package/src/serialize/index.ts +0 -2
  282. package/src/serialize/serialize.ts +0 -82
  283. package/src/types/fields.ts +15 -64
  284. package/src/types/index.ts +0 -3
  285. package/src/types/point.ts +13 -19
  286. package/dest/browser/barretenberg_api/index.d.ts +0 -109
  287. package/dest/browser/barretenberg_api/index.d.ts.map +0 -1
  288. package/dest/browser/barretenberg_api/index.js +0 -699
  289. package/dest/browser/cbind/generated/native.d.ts +0 -31
  290. package/dest/browser/cbind/generated/native.d.ts.map +0 -1
  291. package/dest/browser/cbind/generated/native.js +0 -234
  292. package/dest/browser/serialize/buffer_reader.d.ts +0 -28
  293. package/dest/browser/serialize/buffer_reader.d.ts.map +0 -1
  294. package/dest/browser/serialize/buffer_reader.js +0 -66
  295. package/dest/browser/serialize/output_type.d.ts +0 -11
  296. package/dest/browser/serialize/output_type.d.ts.map +0 -1
  297. package/dest/browser/serialize/output_type.js +0 -44
  298. package/dest/browser/types/fixed_size_buffer.d.ts +0 -26
  299. package/dest/browser/types/fixed_size_buffer.d.ts.map +0 -1
  300. package/dest/browser/types/fixed_size_buffer.js +0 -51
  301. package/dest/browser/types/ptr.d.ts +0 -13
  302. package/dest/browser/types/ptr.d.ts.map +0 -1
  303. package/dest/browser/types/ptr.js +0 -19
  304. package/dest/browser/types/raw_buffer.d.ts +0 -3
  305. package/dest/browser/types/raw_buffer.d.ts.map +0 -1
  306. package/dest/browser/types/raw_buffer.js +0 -5
  307. package/dest/node/barretenberg/common.test.d.ts +0 -2
  308. package/dest/node/barretenberg/common.test.d.ts.map +0 -1
  309. package/dest/node/barretenberg/common.test.js +0 -20
  310. package/dest/node/barretenberg_api/index.d.ts +0 -109
  311. package/dest/node/barretenberg_api/index.d.ts.map +0 -1
  312. package/dest/node/barretenberg_api/index.js +0 -699
  313. package/dest/node/bindgen/function_declaration.d.ts +0 -11
  314. package/dest/node/bindgen/function_declaration.d.ts.map +0 -1
  315. package/dest/node/bindgen/function_declaration.js +0 -2
  316. package/dest/node/bindgen/index.d.ts +0 -2
  317. package/dest/node/bindgen/index.d.ts.map +0 -1
  318. package/dest/node/bindgen/index.js +0 -15
  319. package/dest/node/bindgen/mappings.d.ts +0 -4
  320. package/dest/node/bindgen/mappings.d.ts.map +0 -1
  321. package/dest/node/bindgen/mappings.js +0 -64
  322. package/dest/node/bindgen/rust.d.ts +0 -2
  323. package/dest/node/bindgen/rust.d.ts.map +0 -1
  324. package/dest/node/bindgen/rust.js +0 -43
  325. package/dest/node/bindgen/to_camel_case.d.ts +0 -2
  326. package/dest/node/bindgen/to_camel_case.d.ts.map +0 -1
  327. package/dest/node/bindgen/to_camel_case.js +0 -11
  328. package/dest/node/bindgen/typescript.d.ts +0 -2
  329. package/dest/node/bindgen/typescript.d.ts.map +0 -1
  330. package/dest/node/bindgen/typescript.js +0 -100
  331. package/dest/node/cbind/generated/native.d.ts +0 -31
  332. package/dest/node/cbind/generated/native.d.ts.map +0 -1
  333. package/dest/node/cbind/generated/native.js +0 -234
  334. package/dest/node/main.d.ts +0 -13
  335. package/dest/node/main.d.ts.map +0 -1
  336. package/dest/node/main.js +0 -459
  337. package/dest/node/serialize/buffer_reader.d.ts +0 -28
  338. package/dest/node/serialize/buffer_reader.d.ts.map +0 -1
  339. package/dest/node/serialize/buffer_reader.js +0 -66
  340. package/dest/node/serialize/output_type.d.ts +0 -11
  341. package/dest/node/serialize/output_type.d.ts.map +0 -1
  342. package/dest/node/serialize/output_type.js +0 -44
  343. package/dest/node/types/fixed_size_buffer.d.ts +0 -26
  344. package/dest/node/types/fixed_size_buffer.d.ts.map +0 -1
  345. package/dest/node/types/fixed_size_buffer.js +0 -51
  346. package/dest/node/types/ptr.d.ts +0 -13
  347. package/dest/node/types/ptr.d.ts.map +0 -1
  348. package/dest/node/types/ptr.js +0 -19
  349. package/dest/node/types/raw_buffer.d.ts +0 -3
  350. package/dest/node/types/raw_buffer.d.ts.map +0 -1
  351. package/dest/node/types/raw_buffer.js +0 -5
  352. package/dest/node-cjs/barretenberg/common.test.d.ts +0 -2
  353. package/dest/node-cjs/barretenberg/common.test.d.ts.map +0 -1
  354. package/dest/node-cjs/barretenberg/common.test.js +0 -22
  355. package/dest/node-cjs/barretenberg_api/index.d.ts +0 -109
  356. package/dest/node-cjs/barretenberg_api/index.d.ts.map +0 -1
  357. package/dest/node-cjs/barretenberg_api/index.js +0 -704
  358. package/dest/node-cjs/bindgen/function_declaration.d.ts +0 -11
  359. package/dest/node-cjs/bindgen/function_declaration.d.ts.map +0 -1
  360. package/dest/node-cjs/bindgen/function_declaration.js +0 -3
  361. package/dest/node-cjs/bindgen/index.d.ts +0 -2
  362. package/dest/node-cjs/bindgen/index.d.ts.map +0 -1
  363. package/dest/node-cjs/bindgen/index.js +0 -17
  364. package/dest/node-cjs/bindgen/mappings.d.ts +0 -4
  365. package/dest/node-cjs/bindgen/mappings.d.ts.map +0 -1
  366. package/dest/node-cjs/bindgen/mappings.js +0 -69
  367. package/dest/node-cjs/bindgen/rust.d.ts +0 -2
  368. package/dest/node-cjs/bindgen/rust.d.ts.map +0 -1
  369. package/dest/node-cjs/bindgen/rust.js +0 -47
  370. package/dest/node-cjs/bindgen/to_camel_case.d.ts +0 -2
  371. package/dest/node-cjs/bindgen/to_camel_case.d.ts.map +0 -1
  372. package/dest/node-cjs/bindgen/to_camel_case.js +0 -14
  373. package/dest/node-cjs/bindgen/typescript.d.ts +0 -2
  374. package/dest/node-cjs/bindgen/typescript.d.ts.map +0 -1
  375. package/dest/node-cjs/bindgen/typescript.js +0 -104
  376. package/dest/node-cjs/cbind/generated/native.d.ts +0 -31
  377. package/dest/node-cjs/cbind/generated/native.d.ts.map +0 -1
  378. package/dest/node-cjs/cbind/generated/native.js +0 -238
  379. package/dest/node-cjs/main.d.ts +0 -13
  380. package/dest/node-cjs/main.d.ts.map +0 -1
  381. package/dest/node-cjs/main.js +0 -470
  382. package/dest/node-cjs/serialize/buffer_reader.d.ts +0 -28
  383. package/dest/node-cjs/serialize/buffer_reader.d.ts.map +0 -1
  384. package/dest/node-cjs/serialize/buffer_reader.js +0 -70
  385. package/dest/node-cjs/serialize/output_type.d.ts +0 -11
  386. package/dest/node-cjs/serialize/output_type.d.ts.map +0 -1
  387. package/dest/node-cjs/serialize/output_type.js +0 -51
  388. package/dest/node-cjs/types/fixed_size_buffer.d.ts +0 -26
  389. package/dest/node-cjs/types/fixed_size_buffer.d.ts.map +0 -1
  390. package/dest/node-cjs/types/fixed_size_buffer.js +0 -57
  391. package/dest/node-cjs/types/ptr.d.ts +0 -13
  392. package/dest/node-cjs/types/ptr.d.ts.map +0 -1
  393. package/dest/node-cjs/types/ptr.js +0 -23
  394. package/dest/node-cjs/types/raw_buffer.d.ts +0 -3
  395. package/dest/node-cjs/types/raw_buffer.d.ts.map +0 -1
  396. package/dest/node-cjs/types/raw_buffer.js +0 -9
  397. package/src/barretenberg/common.test.ts +0 -23
  398. package/src/barretenberg_api/index.ts +0 -1216
  399. package/src/bindgen/function_declaration.ts +0 -11
  400. package/src/bindgen/index.ts +0 -17
  401. package/src/bindgen/mappings.ts +0 -67
  402. package/src/bindgen/rust.ts +0 -52
  403. package/src/bindgen/to_camel_case.ts +0 -10
  404. package/src/bindgen/typescript.ts +0 -116
  405. package/src/main.ts +0 -534
  406. package/src/serialize/buffer_reader.ts +0 -85
  407. package/src/serialize/output_type.ts +0 -53
  408. package/src/types/fixed_size_buffer.ts +0 -59
  409. package/src/types/ptr.ts +0 -20
  410. package/src/types/raw_buffer.ts +0 -3
@@ -34,7 +34,7 @@ export interface FunctionMetadata {
34
34
 
35
35
  // Compiler configuration
36
36
  export interface CompilerConfig {
37
- mode: 'types' | 'sync' | 'async' | 'native';
37
+ mode: 'types' | 'sync' | 'async';
38
38
  imports?: string[];
39
39
  wasmImport?: string;
40
40
  }
@@ -72,17 +72,28 @@ export class SchemaCompiler {
72
72
  this.processSchema(responsesSchema);
73
73
 
74
74
  // Extract function metadata from named unions
75
- if (!Array.isArray(commandsSchema) || commandsSchema[0] !== 'named_union' ||
76
- !Array.isArray(responsesSchema) || responsesSchema[0] !== 'named_union') {
75
+ if (
76
+ !Array.isArray(commandsSchema) ||
77
+ commandsSchema[0] !== 'named_union' ||
78
+ !Array.isArray(responsesSchema) ||
79
+ responsesSchema[0] !== 'named_union'
80
+ ) {
77
81
  throw new Error('Expected named_union schema format');
78
82
  }
79
83
 
80
84
  const commands = commandsSchema[1] as Array<[string, Schema]>;
81
85
  const responses = responsesSchema[1] as Array<[string, Schema]>;
82
86
 
87
+ // Filter out ErrorResponse - it's a special error variant, not a command response
88
+ const normalResponses = responses.filter(([name]) => name !== 'ErrorResponse');
89
+
90
+ if (commands.length !== normalResponses.length) {
91
+ throw new Error(`Command count (${commands.length}) does not match response count (${normalResponses.length})`);
92
+ }
93
+
83
94
  for (let i = 0; i < commands.length; i++) {
84
95
  const [commandName] = commands[i];
85
- const [responseName] = responses[i];
96
+ const [responseName] = normalResponses[i];
86
97
 
87
98
  this.functionMetadata.push({
88
99
  name: camelCase(commandName),
@@ -115,10 +126,7 @@ export class SchemaCompiler {
115
126
  * Generate the complete output
116
127
  */
117
128
  compile(): string {
118
- const parts: string[] = [
119
- '// AUTOGENERATED FILE - DO NOT EDIT',
120
- '',
121
- ];
129
+ const parts: string[] = ['// AUTOGENERATED FILE - DO NOT EDIT', ''];
122
130
 
123
131
  // Generate imports
124
132
  parts.push(...this.generateImports());
@@ -131,55 +139,51 @@ export class SchemaCompiler {
131
139
  .sort((a, b) => a.typeName.localeCompare(b.typeName));
132
140
 
133
141
  // Group declarations
134
- const typeAliases = sortedTypes.filter(t =>
135
- t.declaration?.startsWith('export type') && !t.declaration?.includes('interface')
142
+ const typeAliases = sortedTypes.filter(
143
+ t => t.declaration?.startsWith('export type') && !t.declaration?.includes('interface'),
136
144
  );
137
- const publicInterfaces = sortedTypes.filter(t =>
138
- t.declaration?.includes('export interface')
139
- );
140
- const privateInterfaces = sortedTypes.filter(t =>
141
- t.declaration?.includes('interface Msgpack')
142
- );
143
-
144
- // Add type aliases if needed
145
- if (typeAliases.length > 0) {
146
- parts.push('// Type aliases');
147
- for (const type of typeAliases) {
148
- parts.push(type.declaration!);
145
+ const publicInterfaces = sortedTypes.filter(t => t.declaration?.includes('export interface'));
146
+ const privateInterfaces = sortedTypes.filter(t => t.declaration?.includes('interface Msgpack'));
147
+
148
+ // Add type aliases if needed
149
+ if (typeAliases.length > 0) {
150
+ parts.push('// Type aliases');
151
+ for (const type of typeAliases) {
152
+ parts.push(type.declaration!);
153
+ }
154
+ parts.push('');
149
155
  }
150
- parts.push('');
151
- }
152
156
 
153
- // Add tuple helper if needed
154
- if (this.needsTupleHelper()) {
155
- parts.push(
156
- '// Tuple type for fixed-size arrays',
157
- 'type Tuple<T, N extends number> = N extends N ? (number extends N ? T[] : _TupleOf<T, N, []>) : never;',
158
- 'type _TupleOf<T, N extends number, R extends unknown[]> = R[\'length\'] extends N ? R : _TupleOf<T, N, [T, ...R]>;',
159
- '',
160
- '// Helper functions',
161
- 'function mapTuple<T, S, N extends number>(tuple: Tuple<T, N>, fn: (item: T) => S): Tuple<S, N> {',
162
- ' return tuple.map(fn) as Tuple<S, N>;',
163
- '}',
164
- ''
165
- );
166
- }
157
+ // Add tuple helper if needed
158
+ if (this.needsTupleHelper()) {
159
+ parts.push(
160
+ '// Tuple type for fixed-size arrays',
161
+ 'type Tuple<T, N extends number> = N extends N ? (number extends N ? T[] : _TupleOf<T, N, []>) : never;',
162
+ "type _TupleOf<T, N extends number, R extends unknown[]> = R['length'] extends N ? R : _TupleOf<T, N, [T, ...R]>;",
163
+ '',
164
+ '// Helper functions',
165
+ 'function mapTuple<T, S, N extends number>(tuple: Tuple<T, N>, fn: (item: T) => S): Tuple<S, N> {',
166
+ ' return tuple.map(fn) as Tuple<S, N>;',
167
+ '}',
168
+ '',
169
+ );
170
+ }
167
171
 
168
- // Add public interfaces
169
- if (publicInterfaces.length > 0) {
170
- parts.push('// Public interfaces (exported)');
171
- for (const type of publicInterfaces) {
172
- parts.push(type.declaration!, '');
172
+ // Add public interfaces
173
+ if (publicInterfaces.length > 0) {
174
+ parts.push('// Public interfaces (exported)');
175
+ for (const type of publicInterfaces) {
176
+ parts.push(type.declaration!, '');
177
+ }
173
178
  }
174
- }
175
179
 
176
- // Add private interfaces
177
- if (privateInterfaces.length > 0) {
178
- parts.push('// Private Msgpack interfaces (not exported)');
179
- for (const type of privateInterfaces) {
180
- parts.push(type.declaration!, '');
180
+ // Add private interfaces
181
+ if (privateInterfaces.length > 0) {
182
+ parts.push('// Private Msgpack interfaces (not exported)');
183
+ for (const type of privateInterfaces) {
184
+ parts.push(type.declaration!, '');
185
+ }
181
186
  }
182
- }
183
187
 
184
188
  // Add conversion functions (only for api_types.ts)
185
189
  const conversions = sortedTypes.filter(t => t.toMethod || t.fromMethod);
@@ -218,9 +222,7 @@ export class SchemaCompiler {
218
222
  }
219
223
 
220
224
  private needsTupleHelper(): boolean {
221
- return Array.from(this.typeCache.values()).some(t =>
222
- t.typeName.includes('Tuple<')
223
- );
225
+ return Array.from(this.typeCache.values()).some(t => t.typeName.includes('Tuple<'));
224
226
  }
225
227
 
226
228
  private trackTypeUsage(typeName: string): void {
@@ -296,10 +298,15 @@ export class SchemaCompiler {
296
298
  switch (type) {
297
299
  case 'array': {
298
300
  const [subtype, size] = args[0];
301
+ // Special case: byte arrays should be Uint8Array
302
+ if (subtype === 'unsigned char') {
303
+ return { typeName: 'Uint8Array' };
304
+ }
305
+ // For other types, use T[] - idiomatic TypeScript for fixed-length homogeneous arrays
299
306
  const subtypeInfo = this.processSchema(subtype);
300
307
  return {
301
- typeName: `Tuple<${subtypeInfo.typeName}, ${size}>`,
302
- msgpackTypeName: `Tuple<${subtypeInfo.msgpackTypeName || subtypeInfo.typeName}, ${size}>`,
308
+ typeName: `${subtypeInfo.typeName}[]`,
309
+ msgpackTypeName: `${subtypeInfo.msgpackTypeName || subtypeInfo.typeName}[]`,
303
310
  };
304
311
  }
305
312
 
@@ -392,12 +399,20 @@ export class SchemaCompiler {
392
399
  case 'unsigned int':
393
400
  case 'unsigned short':
394
401
  case 'unsigned long':
402
+ case 'unsigned char':
395
403
  case 'double':
396
404
  return { typeName: 'number' };
397
405
  case 'string':
398
406
  return { typeName: 'string' };
399
407
  case 'bin32':
400
408
  return { typeName: 'Uint8Array' };
409
+ case 'field2':
410
+ // field2 is an extension field type (fq2) represented as a tuple of two Uint8Arrays
411
+ return {
412
+ typeName: 'Field2',
413
+ msgpackTypeName: '[Uint8Array, Uint8Array]',
414
+ declaration: 'export type Field2 = [Uint8Array, Uint8Array];',
415
+ };
401
416
  default:
402
417
  return { typeName: pascalCase(schema) };
403
418
  }
@@ -477,15 +492,19 @@ export class SchemaCompiler {
477
492
  return `function to${name}(o: Msgpack${name}): ${name} {\n return {};\n}`;
478
493
  }
479
494
 
480
- const checks = fields.map(([key]) =>
481
- ` if (o.${key} === undefined) { throw new Error("Expected ${key} in ${name} deserialization"); }`
482
- ).join('\n');
495
+ const checks = fields
496
+ .map(
497
+ ([key]) => ` if (o.${key} === undefined) { throw new Error("Expected ${key} in ${name} deserialization"); }`,
498
+ )
499
+ .join('\n');
483
500
 
484
- const conversions = fields.map(([key, value]) => {
485
- const typeInfo = this.processSchema(value);
486
- const converter = this.generateConverter(typeInfo, `o.${key}`, 'to');
487
- return ` ${camelCase(key)}: ${converter},`;
488
- }).join('\n');
501
+ const conversions = fields
502
+ .map(([key, value]) => {
503
+ const typeInfo = this.processSchema(value);
504
+ const converter = this.generateConverter(typeInfo, `o.${key}`, 'to');
505
+ return ` ${camelCase(key)}: ${converter},`;
506
+ })
507
+ .join('\n');
489
508
 
490
509
  return `function to${name}(o: Msgpack${name}): ${name} {
491
510
  ${checks};
@@ -502,15 +521,20 @@ ${conversions}
502
521
  return `function from${name}(o: ${name}): Msgpack${name} {\n return {};\n}`;
503
522
  }
504
523
 
505
- const checks = fields.map(([key]) =>
506
- ` if (o.${camelCase(key)} === undefined) { throw new Error("Expected ${camelCase(key)} in ${name} serialization"); }`
507
- ).join('\n');
524
+ const checks = fields
525
+ .map(
526
+ ([key]) =>
527
+ ` if (o.${camelCase(key)} === undefined) { throw new Error("Expected ${camelCase(key)} in ${name} serialization"); }`,
528
+ )
529
+ .join('\n');
508
530
 
509
- const conversions = fields.map(([key, value]) => {
510
- const typeInfo = this.processSchema(value);
511
- const converter = this.generateConverter(typeInfo, `o.${camelCase(key)}`, 'from');
512
- return ` ${key}: ${converter},`;
513
- }).join('\n');
531
+ const conversions = fields
532
+ .map(([key, value]) => {
533
+ const typeInfo = this.processSchema(value);
534
+ const converter = this.generateConverter(typeInfo, `o.${camelCase(key)}`, 'from');
535
+ return ` ${key}: ${converter},`;
536
+ })
537
+ .join('\n');
514
538
 
515
539
  return `function from${name}(o: ${name}): Msgpack${name} {
516
540
  ${checks};
@@ -531,8 +555,8 @@ ${conversions}
531
555
  }
532
556
  }
533
557
 
534
- // Handle custom types
535
- if (typeInfo.declaration) {
558
+ // Handle custom types that have conversion methods (not just type aliases)
559
+ if (typeInfo.toMethod || typeInfo.fromMethod) {
536
560
  return `${direction}${typeInfo.typeName}(${value})`;
537
561
  }
538
562
 
@@ -579,9 +603,9 @@ ${conversions}
579
603
  }
580
604
 
581
605
  private generateBbApiBaseInterface(): string {
582
- const methods = this.functionMetadata.map(m =>
583
- ` ${m.name}(command: ${m.commandType}): Promise<${m.responseType}>;`
584
- ).join('\n');
606
+ const methods = this.functionMetadata
607
+ .map(m => ` ${m.name}(command: ${m.commandType}): Promise<${m.responseType}>;`)
608
+ .join('\n');
585
609
 
586
610
  return `export interface BbApiBase {
587
611
  ${methods}
@@ -593,71 +617,82 @@ ${methods}
593
617
  const className = this.getApiClassName();
594
618
  const methods = this.functionMetadata.map(m => this.generateApiMethod(m)).join('\n\n');
595
619
 
596
- if (this.config.mode === 'native') {
597
- return this.generateNativeApiClass(methods);
598
- }
599
-
600
620
  // For sync API, don't implement BbApiBase since methods are synchronous
601
621
  const implementsClause = this.config.mode === 'sync' ? '' : ' implements BbApiBase';
602
622
 
603
- const msgpackCallHelper = `${this.config.mode === 'async' ? 'async ' : ''}function msgpackCall(wasm: ${this.getWasmType()}, cbind: string, input: any[]) {` +
604
- ` const inputBuffer = new Encoder({ useRecords: false }).pack(input);` +
605
- ` const encodedResult = ${this.config.mode === 'async' ? 'await ' : ''}wasm.cbindCall(cbind, inputBuffer);` +
606
- ` return new Decoder({ useRecords: false }).unpack(encodedResult);` +
607
- `}\n`;
623
+ // For tracing all calls to bb.
624
+ // const msgpackCallHelper =
625
+ // `${this.config.mode === 'async' ? 'async ' : ''}function msgpackCall(backend: ${this.getBackendType()}, input: any[]) {\n` +
626
+ // ` const commandName = input[0]?.[0] || 'unknown';\n` +
627
+ // ` process.stderr.write(\`[BB MSGPACK ${this.config.mode === 'async' ? 'ASYNC' : 'SYNC'}] \${commandName}\\n\`);\n` +
628
+ // ` const inputBuffer = new Encoder({ useRecords: false }).pack(input);\n` +
629
+ // ` const encodedResult = ${this.config.mode === 'async' ? 'await ' : ''}backend.call(inputBuffer);\n` +
630
+ // ` const result = new Decoder({ useRecords: false }).unpack(encodedResult);\n` +
631
+ // ` process.stderr.write(\`[BB MSGPACK ${this.config.mode === 'async' ? 'ASYNC' : 'SYNC'}] \${commandName} => completed\\n\`);\n` +
632
+ // ` return result;\n` +
633
+ // `}\n`;
634
+ const msgpackCallHelper =
635
+ `${this.config.mode === 'async' ? 'async ' : ''}function msgpackCall(backend: ${this.getBackendType()}, input: any[]) {` +
636
+ ` const inputBuffer = new Encoder({ useRecords: false }).pack(input);` +
637
+ ` const encodedResult = ${this.config.mode === 'async' ? 'await ' : ''}backend.call(inputBuffer);` +
638
+ ` return new Decoder({ useRecords: false }).unpack(encodedResult);` +
639
+ `}\n`;
640
+ const destroyMethod =
641
+ this.config.mode === 'sync'
642
+ ? ` destroy(): void {
643
+ if (this.backend.destroy) this.backend.destroy();
644
+ }`
645
+ : ` destroy(): Promise<void> {
646
+ return this.backend.destroy ? this.backend.destroy() : Promise.resolve();
647
+ }`;
648
+
608
649
  return (
609
650
  msgpackCallHelper +
610
651
  `export class ${className}${implementsClause} {
611
- constructor(protected wasm: ${this.getWasmType()}) {}
652
+ constructor(protected backend: ${this.getBackendType()}) {}
612
653
 
613
654
  ${methods}
614
655
 
615
- destroy(): Promise<void> {
616
- return this.wasm.destroy();
617
- }
656
+ ${destroyMethod}
618
657
  }`
619
658
  );
620
659
  }
621
660
 
622
661
  private getApiClassName(): string {
623
662
  switch (this.config.mode) {
624
- case 'sync': return 'SyncApi';
625
- case 'async': return 'AsyncApi';
626
- case 'native': return 'NativeApi';
627
- default: throw new Error(`Invalid mode: ${this.config.mode}`);
663
+ case 'sync':
664
+ return 'SyncApi';
665
+ case 'async':
666
+ return 'AsyncApi';
667
+ default:
668
+ throw new Error(`Invalid mode: ${this.config.mode}`);
628
669
  }
629
670
  }
630
671
 
631
- private getWasmType(): string {
672
+ private getBackendType(): string {
632
673
  switch (this.config.mode) {
633
- case 'sync': return 'BarretenbergWasmMain';
634
- case 'async': return 'BarretenbergWasmMainWorker';
635
- default: return '';
674
+ case 'sync':
675
+ return 'IMsgpackBackendSync';
676
+ case 'async':
677
+ return 'IMsgpackBackendAsync';
678
+ default:
679
+ return '';
636
680
  }
637
681
  }
638
682
 
639
683
  private generateApiMethod(metadata: FunctionMetadata): string {
640
684
  const { name, commandType, responseType } = metadata;
641
685
 
642
- if (this.config.mode === 'native') {
643
- return ` ${name}(command: ${commandType}): Promise<${responseType}> {
644
- const msgpackCommand = from${commandType}(command);
645
- return this.sendCommand(['${metadata.commandType}', msgpackCommand]).then(([variantName, result]: [string, any]) => {
646
- if (variantName !== '${responseType}') {
647
- throw new Error(\`Expected variant name '${responseType}' but got '\${variantName}'\`);
648
- }
649
- return to${responseType}(result);
650
- });
651
- }`;
652
- }
653
-
654
686
  // For async mode, queue immediately and return promise
655
687
  if (this.config.mode === 'async') {
656
688
  return ` ${name}(command: ${commandType}): Promise<${responseType}> {
657
689
  const msgpackCommand = from${commandType}(command);
658
- return msgpackCall(this.wasm, 'bbapi', [["${capitalize(name)}", msgpackCommand]]).then(([variantName, result]: [string, any]) => {
690
+ return msgpackCall(this.backend, [["${capitalize(name)}", msgpackCommand]]).then(([variantName, result]: [string, any]) => {
691
+ if (variantName === 'ErrorResponse') {
692
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
693
+ }
659
694
  if (variantName !== '${responseType}') {
660
- throw new Error(\`Expected variant name '${responseType}' but got '\${variantName}'\`);
695
+ throw new BBApiException(\`Expected variant name '${responseType}' but got '\${variantName}'\`);
661
696
  }
662
697
  return to${responseType}(result);
663
698
  });
@@ -667,131 +702,16 @@ ${methods}
667
702
  // For sync mode, keep the synchronous behavior
668
703
  return ` ${name}(command: ${commandType}): ${responseType} {
669
704
  const msgpackCommand = from${commandType}(command);
670
- const [variantName, result] = msgpackCall(this.wasm, 'bbapi', [["${capitalize(name)}", msgpackCommand]]);
705
+ const [variantName, result] = msgpackCall(this.backend, [["${capitalize(name)}", msgpackCommand]]);
706
+ if (variantName === 'ErrorResponse') {
707
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
708
+ }
671
709
  if (variantName !== '${responseType}') {
672
- throw new Error(\`Expected variant name '${responseType}' but got '\${variantName}'\`);
710
+ throw new BBApiException(\`Expected variant name '${responseType}' but got '\${variantName}'\`);
673
711
  }
674
712
  return to${responseType}(result);
675
713
  }`;
676
714
  }
677
-
678
- private generateNativeApiClass(methods: string): string {
679
- return `interface NativeApiRequest {
680
- resolve: (value: any) => void;
681
- reject: (error: any) => void;
682
- }
683
-
684
- class StreamBuffer {
685
- private buffer = Buffer.alloc(0);
686
- private expectedLength: number | null = null;
687
-
688
- addData(data: Buffer): Buffer[] {
689
- // Create buffer to grow as needed
690
- const newBuffer = Buffer.allocUnsafe(this.buffer.length + data.length);
691
- this.buffer.copy(newBuffer, 0);
692
- data.copy(newBuffer, this.buffer.length);
693
- this.buffer = newBuffer;
694
-
695
- const messages: Buffer[] = [];
696
-
697
- while (true) {
698
- if (this.expectedLength === null) {
699
- if (this.buffer.length < 4) break;
700
- this.expectedLength = this.buffer.readUInt32LE(0);
701
- this.buffer = this.buffer.subarray(4);
702
- }
703
-
704
- if (this.buffer.length < this.expectedLength) break;
705
-
706
- // Extract complete message
707
- const messageBuffer = this.buffer.subarray(0, this.expectedLength);
708
- messages.push(messageBuffer);
709
- this.buffer = this.buffer.subarray(this.expectedLength);
710
- this.expectedLength = null;
711
- }
712
-
713
- return messages;
714
- }
715
- }
716
-
717
- export class NativeApi implements BbApiBase {
718
- private decoder = new Decoder({ useRecords: false });
719
- private encoder = new Encoder({ useRecords: false });
720
- private pendingRequests: NativeApiRequest[] = [];
721
-
722
- private constructor(private proc: ChildProcess) {}
723
-
724
- static async new(bbPath = 'bb', logger = console.log): Promise<NativeApi> {
725
- const proc = spawn(bbPath, ['msgpack', 'run'], {
726
- stdio: ['pipe', 'pipe', 'pipe'],
727
- });
728
-
729
- if (!proc.stdout || !proc.stdin) {
730
- throw new Error('Failed to initialize bb process');
731
- }
732
-
733
- const api = new NativeApi(proc);
734
- const streamBuffer = new StreamBuffer();
735
-
736
- proc.stdout.on('data', (data: Buffer) => {
737
- const messages = streamBuffer.addData(data);
738
-
739
- for (const messageBuffer of messages) {
740
- const pendingRequest = api.pendingRequests.shift();
741
- if (!pendingRequest) {
742
- throw new Error('Received response without a pending request');
743
- }
744
-
745
- try {
746
- const decoded = api.decoder.decode(messageBuffer);
747
- if (!Array.isArray(decoded) || decoded.length !== 2) {
748
- throw new Error(\`Invalid response format: \${JSON.stringify(decoded)}\`);
749
- }
750
- const [variantName, result] = decoded;
751
- pendingRequest.resolve([variantName, result]);
752
- } catch (error) {
753
- pendingRequest.reject(error);
754
- break;
755
- }
756
- }
757
- });
758
-
759
- proc.stderr.on('data', (data: Buffer) => {
760
- logger(data.toString().trim());
761
- });
762
-
763
- proc.on('error', err => {
764
- throw new Error(err.message);
765
- });
766
- return api;
767
- }
768
-
769
- private sendCommand(command: any): Promise<any> {
770
- return new Promise((resolve, reject) => {
771
- this.pendingRequests.push({ resolve, reject });
772
- const encoded = this.encoder.encode(command);
773
-
774
- // Write length prefix (4 bytes, little-endian)
775
- const lengthBuffer = Buffer.allocUnsafe(4);
776
- lengthBuffer.writeUInt32LE(encoded.length, 0);
777
-
778
- // Write length prefix followed by the encoded data
779
- this.proc.stdin!.write(lengthBuffer);
780
- this.proc.stdin!.write(encoded);
781
- });
782
- }
783
-
784
- async close(): Promise<void> {
785
- this.proc.kill();
786
- }
787
-
788
- destroy(): Promise<void> {
789
- return this.close();
790
- }
791
-
792
- ${methods}
793
- }`;
794
- }
795
715
  }
796
716
 
797
717
  // Factory methods for creating configured compilers
@@ -806,8 +726,9 @@ export function createSyncApiCompiler(): SchemaCompiler {
806
726
  return new SchemaCompiler({
807
727
  mode: 'sync',
808
728
  imports: [
809
- `import { BarretenbergWasmMain } from "../../barretenberg_wasm/barretenberg_wasm_main/index.js";`,
729
+ `import { IMsgpackBackendSync } from '../../bb_backends/interface.js';`,
810
730
  `import { Decoder, Encoder } from 'msgpackr';`,
731
+ `import { BBApiException } from '../../bbapi_exception.js';`,
811
732
  ],
812
733
  });
813
734
  }
@@ -816,18 +737,9 @@ export function createAsyncApiCompiler(): SchemaCompiler {
816
737
  return new SchemaCompiler({
817
738
  mode: 'async',
818
739
  imports: [
819
- `import { BarretenbergWasmMainWorker } from "../../barretenberg_wasm/barretenberg_wasm_main/index.js";`,
820
- `import { Decoder, Encoder } from 'msgpackr';`
821
- ],
822
- });
823
- }
824
-
825
- export function createNativeApiCompiler(): SchemaCompiler {
826
- return new SchemaCompiler({
827
- mode: 'native',
828
- imports: [
829
- `import { spawn, ChildProcess } from 'child_process';`,
830
- `import { Decoder, Encoder } from 'msgpackr';`
740
+ `import { IMsgpackBackendAsync } from '../../bb_backends/interface.js';`,
741
+ `import { Decoder, Encoder } from 'msgpackr';`,
742
+ `import { BBApiException } from '../../bbapi_exception.js';`,
831
743
  ],
832
744
  });
833
745
  }
package/src/index.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  export { Crs, GrumpkinCrs } from './crs/index.js';
2
2
  export {
3
3
  type BackendOptions,
4
+ BackendType,
4
5
  Barretenberg,
5
6
  BarretenbergSync,
6
7
  UltraHonkVerifierBackend,
@@ -9,5 +10,32 @@ export {
9
10
  } from './barretenberg/index.js';
10
11
 
11
12
  export { randomBytes } from './random/index.js';
12
- export { RawBuffer, Fr } from './types/index.js';
13
13
  export { splitHonkProof, reconstructHonkProof, deflattenFields, type ProofData } from './proof/index.js';
14
+ export { BBApiException } from './bbapi_exception.js';
15
+
16
+ // Export Point types for use in foundation and other packages
17
+ export type {
18
+ Bn254G1Point,
19
+ Bn254G2Point,
20
+ GrumpkinPoint,
21
+ Secp256k1Point,
22
+ Secp256r1Point,
23
+ Field2,
24
+ } from './cbind/generated/api_types.js';
25
+
26
+ // Export curve constants for use in foundation
27
+ export {
28
+ BN254_FQ_MODULUS,
29
+ BN254_FR_MODULUS,
30
+ BN254_G1_GENERATOR,
31
+ BN254_G2_GENERATOR,
32
+ GRUMPKIN_FR_MODULUS,
33
+ GRUMPKIN_FQ_MODULUS,
34
+ GRUMPKIN_G1_GENERATOR,
35
+ SECP256K1_FR_MODULUS,
36
+ SECP256K1_FQ_MODULUS,
37
+ SECP256K1_G1_GENERATOR,
38
+ SECP256R1_FR_MODULUS,
39
+ SECP256R1_FQ_MODULUS,
40
+ SECP256R1_G1_GENERATOR,
41
+ } from './cbind/generated/curve_constants.js';
@@ -1,3 +1 @@
1
- export * from './buffer_reader.js';
2
- export * from './output_type.js';
3
1
  export * from './serialize.js';