@aztec/bb.js 3.0.0-nightly.20251026 → 3.0.0-nightly.20251030-2

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 (147) hide show
  1. package/README.md +1 -1
  2. package/dest/browser/barretenberg/backend.js +13 -13
  3. package/dest/browser/barretenberg/index.d.ts +1 -1
  4. package/dest/browser/barretenberg/index.d.ts.map +1 -1
  5. package/dest/browser/barretenberg/index.js +2 -2
  6. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.js +1 -1
  7. package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg-threads.js +1 -1
  8. package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg.js +1 -1
  9. package/dest/browser/bb_backends/wasm.d.ts +2 -9
  10. package/dest/browser/bb_backends/wasm.d.ts.map +1 -1
  11. package/dest/browser/bb_backends/wasm.js +3 -10
  12. package/dest/browser/bbapi_exception.d.ts +7 -0
  13. package/dest/browser/bbapi_exception.d.ts.map +1 -0
  14. package/dest/browser/bbapi_exception.js +14 -0
  15. package/dest/browser/cbind/generate.js +93 -1
  16. package/dest/browser/cbind/generated/api_types.d.ts +623 -377
  17. package/dest/browser/cbind/generated/api_types.d.ts.map +1 -1
  18. package/dest/browser/cbind/generated/api_types.js +778 -452
  19. package/dest/browser/cbind/generated/async.d.ts +15 -10
  20. package/dest/browser/cbind/generated/async.d.ts.map +1 -1
  21. package/dest/browser/cbind/generated/async.js +304 -96
  22. package/dest/browser/cbind/generated/curve_constants.d.ts +45 -0
  23. package/dest/browser/cbind/generated/curve_constants.d.ts.map +1 -0
  24. package/dest/browser/cbind/generated/curve_constants.js +45 -0
  25. package/dest/browser/cbind/generated/sync.d.ts +15 -10
  26. package/dest/browser/cbind/generated/sync.d.ts.map +1 -1
  27. package/dest/browser/cbind/generated/sync.js +299 -96
  28. package/dest/browser/cbind/schema_compiler.d.ts.map +1 -1
  29. package/dest/browser/cbind/schema_compiler.js +24 -4
  30. package/dest/browser/index.d.ts +3 -1
  31. package/dest/browser/index.d.ts.map +1 -1
  32. package/dest/browser/index.js +4 -2
  33. package/dest/browser/serialize/index.d.ts +0 -1
  34. package/dest/browser/serialize/index.d.ts.map +1 -1
  35. package/dest/browser/serialize/index.js +1 -2
  36. package/dest/browser/types/fields.d.ts +6 -26
  37. package/dest/browser/types/fields.d.ts.map +1 -1
  38. package/dest/browser/types/fields.js +15 -56
  39. package/dest/browser/types/point.d.ts +8 -6
  40. package/dest/browser/types/point.d.ts.map +1 -1
  41. package/dest/browser/types/point.js +12 -15
  42. package/dest/node/barretenberg/backend.js +13 -13
  43. package/dest/node/barretenberg/index.d.ts +1 -1
  44. package/dest/node/barretenberg/index.d.ts.map +1 -1
  45. package/dest/node/barretenberg/index.js +2 -2
  46. package/dest/node/barretenberg/poseidon.bench.test.js +3 -2
  47. package/dest/node/barretenberg_wasm/barretenberg-threads.wasm.gz +0 -0
  48. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.js +1 -1
  49. package/dest/node/bb_backends/wasm.d.ts +2 -9
  50. package/dest/node/bb_backends/wasm.d.ts.map +1 -1
  51. package/dest/node/bb_backends/wasm.js +3 -10
  52. package/dest/node/bbapi_exception.d.ts +7 -0
  53. package/dest/node/bbapi_exception.d.ts.map +1 -0
  54. package/dest/node/bbapi_exception.js +14 -0
  55. package/dest/node/cbind/generate.js +93 -1
  56. package/dest/node/cbind/generated/api_types.d.ts +623 -377
  57. package/dest/node/cbind/generated/api_types.d.ts.map +1 -1
  58. package/dest/node/cbind/generated/api_types.js +778 -452
  59. package/dest/node/cbind/generated/async.d.ts +15 -10
  60. package/dest/node/cbind/generated/async.d.ts.map +1 -1
  61. package/dest/node/cbind/generated/async.js +304 -96
  62. package/dest/node/cbind/generated/curve_constants.d.ts +45 -0
  63. package/dest/node/cbind/generated/curve_constants.d.ts.map +1 -0
  64. package/dest/node/cbind/generated/curve_constants.js +45 -0
  65. package/dest/node/cbind/generated/sync.d.ts +15 -10
  66. package/dest/node/cbind/generated/sync.d.ts.map +1 -1
  67. package/dest/node/cbind/generated/sync.js +299 -96
  68. package/dest/node/cbind/schema_compiler.d.ts.map +1 -1
  69. package/dest/node/cbind/schema_compiler.js +24 -4
  70. package/dest/node/index.d.ts +3 -1
  71. package/dest/node/index.d.ts.map +1 -1
  72. package/dest/node/index.js +4 -2
  73. package/dest/node/serialize/index.d.ts +0 -1
  74. package/dest/node/serialize/index.d.ts.map +1 -1
  75. package/dest/node/serialize/index.js +1 -2
  76. package/dest/node/types/fields.d.ts +6 -26
  77. package/dest/node/types/fields.d.ts.map +1 -1
  78. package/dest/node/types/fields.js +15 -56
  79. package/dest/node/types/point.d.ts +8 -6
  80. package/dest/node/types/point.d.ts.map +1 -1
  81. package/dest/node/types/point.js +12 -15
  82. package/dest/node-cjs/barretenberg/backend.js +12 -12
  83. package/dest/node-cjs/barretenberg/index.d.ts +1 -1
  84. package/dest/node-cjs/barretenberg/index.d.ts.map +1 -1
  85. package/dest/node-cjs/barretenberg/index.js +2 -2
  86. package/dest/node-cjs/barretenberg/poseidon.bench.test.js +5 -4
  87. package/dest/node-cjs/barretenberg_wasm/barretenberg-threads.wasm.gz +0 -0
  88. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.js +1 -1
  89. package/dest/node-cjs/bb_backends/wasm.d.ts +2 -9
  90. package/dest/node-cjs/bb_backends/wasm.d.ts.map +1 -1
  91. package/dest/node-cjs/bb_backends/wasm.js +3 -10
  92. package/dest/node-cjs/bbapi_exception.d.ts +7 -0
  93. package/dest/node-cjs/bbapi_exception.d.ts.map +1 -0
  94. package/dest/node-cjs/bbapi_exception.js +18 -0
  95. package/dest/node-cjs/cbind/generate.js +93 -1
  96. package/dest/node-cjs/cbind/generated/api_types.d.ts +623 -377
  97. package/dest/node-cjs/cbind/generated/api_types.d.ts.map +1 -1
  98. package/dest/node-cjs/cbind/generated/api_types.js +848 -492
  99. package/dest/node-cjs/cbind/generated/async.d.ts +15 -10
  100. package/dest/node-cjs/cbind/generated/async.d.ts.map +1 -1
  101. package/dest/node-cjs/cbind/generated/async.js +303 -95
  102. package/dest/node-cjs/cbind/generated/curve_constants.d.ts +45 -0
  103. package/dest/node-cjs/cbind/generated/curve_constants.d.ts.map +1 -0
  104. package/dest/node-cjs/cbind/generated/curve_constants.js +48 -0
  105. package/dest/node-cjs/cbind/generated/sync.d.ts +15 -10
  106. package/dest/node-cjs/cbind/generated/sync.d.ts.map +1 -1
  107. package/dest/node-cjs/cbind/generated/sync.js +298 -95
  108. package/dest/node-cjs/cbind/schema_compiler.d.ts.map +1 -1
  109. package/dest/node-cjs/cbind/schema_compiler.js +24 -4
  110. package/dest/node-cjs/index.d.ts +3 -1
  111. package/dest/node-cjs/index.d.ts.map +1 -1
  112. package/dest/node-cjs/index.js +23 -8
  113. package/dest/node-cjs/serialize/index.d.ts +0 -1
  114. package/dest/node-cjs/serialize/index.d.ts.map +1 -1
  115. package/dest/node-cjs/serialize/index.js +1 -2
  116. package/dest/node-cjs/types/fields.d.ts +6 -26
  117. package/dest/node-cjs/types/fields.d.ts.map +1 -1
  118. package/dest/node-cjs/types/fields.js +15 -57
  119. package/dest/node-cjs/types/point.d.ts +8 -6
  120. package/dest/node-cjs/types/point.d.ts.map +1 -1
  121. package/dest/node-cjs/types/point.js +13 -16
  122. package/package.json +4 -3
  123. package/src/barretenberg/backend.ts +12 -12
  124. package/src/barretenberg/index.ts +1 -1
  125. package/src/barretenberg/poseidon.bench.test.ts +2 -1
  126. package/src/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.ts +4 -4
  127. package/src/bb_backends/wasm.ts +2 -9
  128. package/src/bbapi_exception.ts +13 -0
  129. package/src/cbind/generate.ts +99 -0
  130. package/src/cbind/schema_compiler.ts +25 -3
  131. package/src/index.ts +28 -1
  132. package/src/serialize/index.ts +0 -1
  133. package/src/types/fields.ts +14 -63
  134. package/src/types/point.ts +13 -19
  135. package/dest/browser/serialize/buffer_reader.d.ts +0 -28
  136. package/dest/browser/serialize/buffer_reader.d.ts.map +0 -1
  137. package/dest/browser/serialize/buffer_reader.js +0 -66
  138. package/dest/node/serialize/buffer_reader.d.ts +0 -28
  139. package/dest/node/serialize/buffer_reader.d.ts.map +0 -1
  140. package/dest/node/serialize/buffer_reader.js +0 -66
  141. package/dest/node-cjs/serialize/buffer_reader.d.ts +0 -28
  142. package/dest/node-cjs/serialize/buffer_reader.d.ts.map +0 -1
  143. package/dest/node-cjs/serialize/buffer_reader.js +0 -70
  144. package/src/cbind/generated/api_types.ts +0 -3757
  145. package/src/cbind/generated/async.ts +0 -504
  146. package/src/cbind/generated/sync.ts +0 -455
  147. package/src/serialize/buffer_reader.ts +0 -85
@@ -18,15 +18,8 @@ export declare class BarretenbergWasmSyncBackend implements IMsgpackBackendSync
18
18
  /**
19
19
  * Asynchronous WASM backend that supports both direct WASM and worker-based modes.
20
20
  *
21
- * Worker mode (default): Runs WASM on a worker thread to avoid blocking the main thread.
22
- * - Browser-safe: Won't block UI during long operations
23
- * - Overhead: ~3-4x slower due to serialize/deserialize for each call
24
- * - Use for: Browser environments, long-running operations
25
- *
26
- * Direct mode (useWorker: false): Runs WASM directly on the calling thread.
27
- * - Performance: ~3-4x faster (no serialize/deserialize overhead)
28
- * - Warning: Will block the thread during operations
29
- * - Use for: Node.js, benchmarks, tight loops where performance is critical
21
+ * Worker mode (default): Runs WASM on a worker thread to avoid blocking the main thread. Used in browsers.
22
+ * Direct mode: Runs WASM directly on the calling thread. Used by node.js for better performance.
30
23
  */
31
24
  export declare class BarretenbergWasmAsyncBackend implements IMsgpackBackendAsync {
32
25
  private wasm;
@@ -1 +1 @@
1
- {"version":3,"file":"wasm.d.ts","sourceRoot":"","sources":["../../../src/bb_backends/wasm.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAM3E;;;GAGG;AACH,qBAAa,2BAA4B,YAAW,mBAAmB;IACjD,OAAO,CAAC,IAAI;IAAhC,OAAO;IAEP;;;;OAIG;WACU,GAAG,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,2BAA2B,CAAC;IAOzG,IAAI,CAAC,WAAW,EAAE,UAAU,GAAG,UAAU;IAIzC,OAAO,IAAI,IAAI;CAKhB;AAED;;;;;;;;;;;;GAYG;AACH,qBAAa,4BAA6B,YAAW,oBAAoB;IAErE,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,MAAM,CAAC;IAFjB,OAAO;IAKP;;;;;;;OAOG;WACU,GAAG,CACd,OAAO,GAAE;QACP,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;QAC/B,MAAM,CAAC,EAAE;YAAE,OAAO,CAAC,EAAE,MAAM,CAAC;YAAC,OAAO,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QAChD,SAAS,CAAC,EAAE,OAAO,CAAC;KAChB,GACL,OAAO,CAAC,4BAA4B,CAAC;IA0BlC,IAAI,CAAC,WAAW,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IAIlD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAM/B"}
1
+ {"version":3,"file":"wasm.d.ts","sourceRoot":"","sources":["../../../src/bb_backends/wasm.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAM3E;;;GAGG;AACH,qBAAa,2BAA4B,YAAW,mBAAmB;IACjD,OAAO,CAAC,IAAI;IAAhC,OAAO;IAEP;;;;OAIG;WACU,GAAG,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,2BAA2B,CAAC;IAOzG,IAAI,CAAC,WAAW,EAAE,UAAU,GAAG,UAAU;IAIzC,OAAO,IAAI,IAAI;CAKhB;AAED;;;;;GAKG;AACH,qBAAa,4BAA6B,YAAW,oBAAoB;IAErE,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,MAAM,CAAC;IAFjB,OAAO;IAKP;;;;;;;OAOG;WACU,GAAG,CACd,OAAO,GAAE;QACP,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;QAC/B,MAAM,CAAC,EAAE;YAAE,OAAO,CAAC,EAAE,MAAM,CAAC;YAAC,OAAO,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QAChD,SAAS,CAAC,EAAE,OAAO,CAAC;KAChB,GACL,OAAO,CAAC,4BAA4B,CAAC;IA0BlC,IAAI,CAAC,WAAW,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IAIlD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAM/B"}
@@ -35,15 +35,8 @@ export class BarretenbergWasmSyncBackend {
35
35
  /**
36
36
  * Asynchronous WASM backend that supports both direct WASM and worker-based modes.
37
37
  *
38
- * Worker mode (default): Runs WASM on a worker thread to avoid blocking the main thread.
39
- * - Browser-safe: Won't block UI during long operations
40
- * - Overhead: ~3-4x slower due to serialize/deserialize for each call
41
- * - Use for: Browser environments, long-running operations
42
- *
43
- * Direct mode (useWorker: false): Runs WASM directly on the calling thread.
44
- * - Performance: ~3-4x faster (no serialize/deserialize overhead)
45
- * - Warning: Will block the thread during operations
46
- * - Use for: Node.js, benchmarks, tight loops where performance is critical
38
+ * Worker mode (default): Runs WASM on a worker thread to avoid blocking the main thread. Used in browsers.
39
+ * Direct mode: Runs WASM directly on the calling thread. Used by node.js for better performance.
47
40
  */
48
41
  export class BarretenbergWasmAsyncBackend {
49
42
  constructor(wasm, worker) {
@@ -87,4 +80,4 @@ export class BarretenbergWasmAsyncBackend {
87
80
  }
88
81
  }
89
82
  }
90
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FzbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iYl9iYWNrZW5kcy93YXNtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxvQkFBb0IsRUFBOEIsTUFBTSxzREFBc0QsQ0FBQztBQUN4SCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUV0RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtRUFBbUUsQ0FBQztBQUNyRyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNsRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRWhDOzs7R0FHRztBQUNILE1BQU0sT0FBTywyQkFBMkI7SUFDdEMsWUFBNEIsSUFBMEI7UUFBMUIsU0FBSSxHQUFKLElBQUksQ0FBc0I7SUFBRyxDQUFDO0lBRTFEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFpQixFQUFFLE1BQThCO1FBQ2hFLE1BQU0sSUFBSSxHQUFHLElBQUksb0JBQW9CLEVBQUUsQ0FBQztRQUN4QyxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLE1BQU0scUJBQXFCLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM3RSxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUN6QyxPQUFPLElBQUksMkJBQTJCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELElBQUksQ0FBQyxXQUF1QjtRQUMxQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsT0FB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
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FzbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iYl9iYWNrZW5kcy93YXNtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxvQkFBb0IsRUFBOEIsTUFBTSxzREFBc0QsQ0FBQztBQUN4SCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUV0RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtRUFBbUUsQ0FBQztBQUNyRyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNsRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRWhDOzs7R0FHRztBQUNILE1BQU0sT0FBTywyQkFBMkI7SUFDdEMsWUFBNEIsSUFBMEI7UUFBMUIsU0FBSSxHQUFKLElBQUksQ0FBc0I7SUFBRyxDQUFDO0lBRTFEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFpQixFQUFFLE1BQThCO1FBQ2hFLE1BQU0sSUFBSSxHQUFHLElBQUksb0JBQW9CLEVBQUUsQ0FBQztRQUN4QyxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLE1BQU0scUJBQXFCLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM3RSxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUN6QyxPQUFPLElBQUksMkJBQTJCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELElBQUksQ0FBQyxXQUF1QjtRQUMxQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsT0FB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
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Exception thrown when barretenberg API operations fail
3
+ */
4
+ export declare class BBApiException extends Error {
5
+ constructor(message: string);
6
+ }
7
+ //# sourceMappingURL=bbapi_exception.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bbapi_exception.d.ts","sourceRoot":"","sources":["../../src/bbapi_exception.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,qBAAa,cAAe,SAAQ,KAAK;gBAC3B,OAAO,EAAE,MAAM;CAQ5B"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Exception thrown when barretenberg API operations fail
3
+ */
4
+ export class BBApiException extends Error {
5
+ constructor(message) {
6
+ super(message);
7
+ this.name = 'BBApiException';
8
+ // Maintains proper stack trace for where our error was thrown (only available on V8)
9
+ if (Error.captureStackTrace) {
10
+ Error.captureStackTrace(this, BBApiException);
11
+ }
12
+ }
13
+ }
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmJhcGlfZXhjZXB0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2JiYXBpX2V4Y2VwdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE1BQU0sT0FBTyxjQUFlLFNBQVEsS0FBSztJQUN2QyxZQUFZLE9BQWU7UUFDekIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2YsSUFBSSxDQUFDLElBQUksR0FBRyxnQkFBZ0IsQ0FBQztRQUM3QixxRkFBcUY7UUFDckYsSUFBSSxLQUFLLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUM1QixLQUFLLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQ2hELENBQUM7SUFDSCxDQUFDO0NBQ0YifQ==
@@ -6,6 +6,7 @@ import { dirname, join } from 'path';
6
6
  import { exec } from 'child_process';
7
7
  import { promisify } from 'util';
8
8
  import { fileURLToPath } from 'url';
9
+ import { unpack } from 'msgpackr';
9
10
  import { createSharedTypesCompiler, createSyncApiCompiler, createAsyncApiCompiler, } from './schema_compiler.js';
10
11
  const execAsync = promisify(exec);
11
12
  const GENERATORS = [
@@ -49,11 +50,102 @@ async function generate() {
49
50
  writeFileSync(outputPath, content);
50
51
  console.log(`✓ ${config.name}: ${outputPath}`);
51
52
  }
53
+ // Generate curve constants
54
+ console.log('\nGenerating curve constants...');
55
+ await generateCurveConstants(bbBuildPath, outputDir);
52
56
  console.log('\nGeneration complete!');
53
57
  }
58
+ async function generateCurveConstants(bbBuildPath, outputDir) {
59
+ // Get curve constants from bb as msgpack binary
60
+ const { stdout: constantsBuffer } = await execAsync(`${bbBuildPath} msgpack curve_constants`, {
61
+ encoding: 'buffer',
62
+ maxBuffer: 10 * 1024 * 1024, // 10MB buffer
63
+ });
64
+ // Decode msgpack
65
+ const constants = unpack(constantsBuffer);
66
+ // Helper to convert Uint8Array to hex string
67
+ const toHex = (bytes) => '0x' + Buffer.from(bytes).toString('hex');
68
+ // Helper to convert Uint8Array to bigint (big-endian)
69
+ const toBigInt = (bytes) => {
70
+ let result = 0n;
71
+ for (const byte of bytes) {
72
+ result = (result << 8n) | BigInt(byte);
73
+ }
74
+ return result;
75
+ };
76
+ // Helper to serialize point coordinate (handles both Uint8Array and array of Uint8Array for field2)
77
+ const serializeCoordinate = (coord) => {
78
+ if (Array.isArray(coord)) {
79
+ // For field2 (like BN254 G2), we have array of two Uint8Arrays
80
+ return `[${coord.map(c => `new Uint8Array([${Array.from(c).join(', ')}])`).join(', ')}]`;
81
+ }
82
+ else {
83
+ // For regular fields, single Uint8Array
84
+ return `new Uint8Array([${Array.from(coord).join(', ')}])`;
85
+ }
86
+ };
87
+ // Generate TypeScript file
88
+ const content = `/**
89
+ * Curve constants generated from barretenberg native binary.
90
+ * DO NOT EDIT - This file is auto-generated by generate.ts
91
+ */
92
+
93
+ /**
94
+ * BN254 curve constants
95
+ */
96
+ export const BN254_FR_MODULUS = ${toBigInt(constants.bn254_fr_modulus)}n;
97
+ export const BN254_FQ_MODULUS = ${toBigInt(constants.bn254_fq_modulus)}n;
98
+
99
+ export const BN254_G1_GENERATOR = {
100
+ x: ${serializeCoordinate(constants.bn254_g1_generator.x)},
101
+ y: ${serializeCoordinate(constants.bn254_g1_generator.y)},
102
+ } as const;
103
+
104
+ export const BN254_G2_GENERATOR = {
105
+ x: ${serializeCoordinate(constants.bn254_g2_generator.x)},
106
+ y: ${serializeCoordinate(constants.bn254_g2_generator.y)},
107
+ } as const;
108
+
109
+ /**
110
+ * Grumpkin curve constants
111
+ */
112
+ export const GRUMPKIN_FR_MODULUS = ${toBigInt(constants.grumpkin_fr_modulus)}n;
113
+ export const GRUMPKIN_FQ_MODULUS = ${toBigInt(constants.grumpkin_fq_modulus)}n;
114
+
115
+ export const GRUMPKIN_G1_GENERATOR = {
116
+ x: ${serializeCoordinate(constants.grumpkin_g1_generator.x)},
117
+ y: ${serializeCoordinate(constants.grumpkin_g1_generator.y)},
118
+ } as const;
119
+
120
+ /**
121
+ * Secp256k1 curve constants
122
+ */
123
+ export const SECP256K1_FR_MODULUS = ${toBigInt(constants.secp256k1_fr_modulus)}n;
124
+ export const SECP256K1_FQ_MODULUS = ${toBigInt(constants.secp256k1_fq_modulus)}n;
125
+
126
+ export const SECP256K1_G1_GENERATOR = {
127
+ x: ${serializeCoordinate(constants.secp256k1_g1_generator.x)},
128
+ y: ${serializeCoordinate(constants.secp256k1_g1_generator.y)},
129
+ } as const;
130
+
131
+ /**
132
+ * Secp256r1 curve constants
133
+ */
134
+ export const SECP256R1_FR_MODULUS = ${toBigInt(constants.secp256r1_fr_modulus)}n;
135
+ export const SECP256R1_FQ_MODULUS = ${toBigInt(constants.secp256r1_fq_modulus)}n;
136
+
137
+ export const SECP256R1_G1_GENERATOR = {
138
+ x: ${serializeCoordinate(constants.secp256r1_g1_generator.x)},
139
+ y: ${serializeCoordinate(constants.secp256r1_g1_generator.y)},
140
+ } as const;
141
+ `;
142
+ const outputPath = join(outputDir, 'curve_constants.ts');
143
+ writeFileSync(outputPath, content);
144
+ console.log(`✓ Curve constants: ${outputPath}`);
145
+ }
54
146
  // Run the generator
55
147
  generate().catch(error => {
56
148
  console.error('Generation failed:', error);
57
149
  process.exit(1);
58
150
  });
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY2JpbmQvZ2VuZXJhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxPQUFPLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxNQUFNLElBQUksQ0FBQztBQUM5QyxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUNwQyxPQUFPLEVBQ0wseUJBQXlCLEVBQ3pCLHFCQUFxQixFQUNyQixzQkFBc0IsR0FFdkIsTUFBTSxzQkFBc0IsQ0FBQztBQUU5QixNQUFNLFNBQVMsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7QUFRbEMsTUFBTSxVQUFVLEdBQXNCO0lBQ3BDO1FBQ0UsSUFBSSxFQUFFLGNBQWM7UUFDcEIsVUFBVSxFQUFFLHdCQUF3QjtRQUNwQyxjQUFjLEVBQUUseUJBQXlCO0tBQzFDO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsVUFBVTtRQUNoQixVQUFVLEVBQUUsbUJBQW1CO1FBQy9CLGNBQWMsRUFBRSxxQkFBcUI7S0FDdEM7SUFDRDtRQUNFLElBQUksRUFBRSxXQUFXO1FBQ2pCLFVBQVUsRUFBRSxvQkFBb0I7UUFDaEMsY0FBYyxFQUFFLHNCQUFzQjtLQUN2QztDQUNGLENBQUM7QUFFRixhQUFhO0FBQ2IsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFFMUQsS0FBSyxVQUFVLFFBQVE7SUFDckIsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSwyQkFBMkIsQ0FBQyxDQUFDO0lBRS9GLHFCQUFxQjtJQUNyQixPQUFPLENBQUMsR0FBRyxDQUFDLG9DQUFvQyxDQUFDLENBQUM7SUFDbEQsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLE1BQU0sU0FBUyxDQUFDLEdBQUcsV0FBVyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3BFLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFFekMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDMUMsTUFBTSxJQUFJLEtBQUssQ0FBQywrQ0FBK0MsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFRCxPQUFPLENBQUMsR0FBRyxDQUFDLHFDQUFxQyxDQUFDLENBQUM7SUFFbkQsaUNBQWlDO0lBQ2pDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDL0MsU0FBUyxDQUFDLFNBQVMsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBRTFDLDRCQUE0QjtJQUM1QixLQUFLLE1BQU0sTUFBTSxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ2hDLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN6QyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFN0QsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDdEQsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ25DLGFBQWEsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFbkMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLE1BQU0sQ0FBQyxJQUFJLEtBQUssVUFBVSxFQUFFLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsT0FBTyxDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0FBQ3hDLENBQUM7QUFFRCxvQkFBb0I7QUFDcEIsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFO0lBQ3ZCLE9BQU8sQ0FBQyxLQUFLLENBQUMsb0JBQW9CLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDM0MsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNsQixDQUFDLENBQUMsQ0FBQyJ9
151
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY2JpbmQvZ2VuZXJhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxPQUFPLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxNQUFNLElBQUksQ0FBQztBQUM5QyxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUNwQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2xDLE9BQU8sRUFDTCx5QkFBeUIsRUFDekIscUJBQXFCLEVBQ3JCLHNCQUFzQixHQUV2QixNQUFNLHNCQUFzQixDQUFDO0FBRTlCLE1BQU0sU0FBUyxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQVFsQyxNQUFNLFVBQVUsR0FBc0I7SUFDcEM7UUFDRSxJQUFJLEVBQUUsY0FBYztRQUNwQixVQUFVLEVBQUUsd0JBQXdCO1FBQ3BDLGNBQWMsRUFBRSx5QkFBeUI7S0FDMUM7SUFDRDtRQUNFLElBQUksRUFBRSxVQUFVO1FBQ2hCLFVBQVUsRUFBRSxtQkFBbUI7UUFDL0IsY0FBYyxFQUFFLHFCQUFxQjtLQUN0QztJQUNEO1FBQ0UsSUFBSSxFQUFFLFdBQVc7UUFDakIsVUFBVSxFQUFFLG9CQUFvQjtRQUNoQyxjQUFjLEVBQUUsc0JBQXNCO0tBQ3ZDO0NBQ0YsQ0FBQztBQUVGLGFBQWE7QUFDYixNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUUxRCxLQUFLLFVBQVUsUUFBUTtJQUNyQixNQUFNLFdB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