@aztec/bb.js 0.86.0 → 0.87.0-nightly.20250521

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 (117) hide show
  1. package/dest/browser/barretenberg-threads.js +1 -1
  2. package/dest/browser/barretenberg.js +1 -1
  3. package/dest/browser/index.js +179 -345
  4. package/dest/browser/main.worker.js +116 -116
  5. package/dest/browser/thread.worker.js +116 -116
  6. package/dest/node/barretenberg/backend.d.ts +5 -40
  7. package/dest/node/barretenberg/backend.d.ts.map +1 -1
  8. package/dest/node/barretenberg/backend.js +28 -108
  9. package/dest/node/barretenberg/index.d.ts +1 -1
  10. package/dest/node/barretenberg/index.d.ts.map +1 -1
  11. package/dest/node/barretenberg/index.js +6 -6
  12. package/dest/node/barretenberg/verifier.d.ts +0 -2
  13. package/dest/node/barretenberg/verifier.d.ts.map +1 -1
  14. package/dest/node/barretenberg/verifier.js +2 -12
  15. package/dest/node/barretenberg_api/index.d.ts +7 -11
  16. package/dest/node/barretenberg_api/index.d.ts.map +1 -1
  17. package/dest/node/barretenberg_api/index.js +46 -74
  18. package/dest/node/barretenberg_wasm/barretenberg-threads.wasm.gz +0 -0
  19. package/dest/node/bigint-array/index.d.ts +1 -0
  20. package/dest/node/bigint-array/index.d.ts.map +1 -1
  21. package/dest/node/bindgen/mappings.js +2 -2
  22. package/dest/node/bindgen/typescript.js +1 -1
  23. package/dest/node/crs/net_crs.d.ts.map +1 -1
  24. package/dest/node/crs/net_crs.js +6 -7
  25. package/dest/node/crs/node/index.js +4 -4
  26. package/dest/node/index.d.ts +1 -1
  27. package/dest/node/index.d.ts.map +1 -1
  28. package/dest/node/index.js +2 -2
  29. package/dest/node/main.d.ts +0 -8
  30. package/dest/node/main.d.ts.map +1 -1
  31. package/dest/node/main.js +38 -244
  32. package/dest/node/proof/index.d.ts +1 -2
  33. package/dest/node/proof/index.d.ts.map +1 -1
  34. package/dest/node/proof/index.js +2 -9
  35. package/dest/node/serialize/buffer_reader.d.ts.map +1 -1
  36. package/dest/node/serialize/buffer_reader.js +1 -1
  37. package/dest/node/types/fields.d.ts +1 -0
  38. package/dest/node/types/fields.d.ts.map +1 -1
  39. package/dest/node/types/fields.js +1 -1
  40. package/dest/node/types/point.d.ts +1 -0
  41. package/dest/node/types/point.d.ts.map +1 -1
  42. package/dest/node/types/point.js +1 -1
  43. package/dest/node-cjs/barretenberg/backend.d.ts +5 -40
  44. package/dest/node-cjs/barretenberg/backend.d.ts.map +1 -1
  45. package/dest/node-cjs/barretenberg/backend.js +28 -109
  46. package/dest/node-cjs/barretenberg/index.d.ts +1 -1
  47. package/dest/node-cjs/barretenberg/index.d.ts.map +1 -1
  48. package/dest/node-cjs/barretenberg/index.js +6 -7
  49. package/dest/node-cjs/barretenberg/verifier.d.ts +0 -2
  50. package/dest/node-cjs/barretenberg/verifier.d.ts.map +1 -1
  51. package/dest/node-cjs/barretenberg/verifier.js +1 -11
  52. package/dest/node-cjs/barretenberg_api/index.d.ts +7 -11
  53. package/dest/node-cjs/barretenberg_api/index.d.ts.map +1 -1
  54. package/dest/node-cjs/barretenberg_api/index.js +45 -73
  55. package/dest/node-cjs/barretenberg_wasm/barretenberg-threads.wasm.gz +0 -0
  56. package/dest/node-cjs/bigint-array/index.d.ts +1 -0
  57. package/dest/node-cjs/bigint-array/index.d.ts.map +1 -1
  58. package/dest/node-cjs/bindgen/mappings.js +2 -2
  59. package/dest/node-cjs/bindgen/typescript.js +1 -1
  60. package/dest/node-cjs/crs/net_crs.d.ts.map +1 -1
  61. package/dest/node-cjs/crs/net_crs.js +6 -7
  62. package/dest/node-cjs/crs/node/index.js +4 -4
  63. package/dest/node-cjs/index.d.ts +1 -1
  64. package/dest/node-cjs/index.d.ts.map +1 -1
  65. package/dest/node-cjs/index.js +2 -3
  66. package/dest/node-cjs/main.d.ts +0 -8
  67. package/dest/node-cjs/main.d.ts.map +1 -1
  68. package/dest/node-cjs/main.js +39 -253
  69. package/dest/node-cjs/proof/index.d.ts +1 -2
  70. package/dest/node-cjs/proof/index.d.ts.map +1 -1
  71. package/dest/node-cjs/proof/index.js +3 -11
  72. package/dest/node-cjs/serialize/buffer_reader.d.ts.map +1 -1
  73. package/dest/node-cjs/serialize/buffer_reader.js +1 -1
  74. package/dest/node-cjs/types/fields.d.ts +1 -0
  75. package/dest/node-cjs/types/fields.d.ts.map +1 -1
  76. package/dest/node-cjs/types/fields.js +1 -1
  77. package/dest/node-cjs/types/point.d.ts +1 -0
  78. package/dest/node-cjs/types/point.d.ts.map +1 -1
  79. package/dest/node-cjs/types/point.js +1 -1
  80. package/package.json +7 -8
  81. package/src/barretenberg/backend.ts +41 -159
  82. package/src/barretenberg/index.ts +10 -6
  83. package/src/barretenberg/verifier.ts +1 -13
  84. package/src/barretenberg_api/index.ts +74 -130
  85. package/src/bindgen/mappings.ts +1 -1
  86. package/src/bindgen/typescript.ts +4 -4
  87. package/src/crs/net_crs.ts +5 -6
  88. package/src/crs/node/index.ts +3 -3
  89. package/src/index.html +1 -1
  90. package/src/index.ts +0 -1
  91. package/src/main.ts +44 -279
  92. package/src/proof/index.ts +1 -13
  93. package/src/serialize/buffer_reader.ts +4 -1
  94. package/src/types/fields.ts +2 -2
  95. package/src/types/point.ts +4 -1
  96. package/dest/browser/733.655674bbbb79bdf168c4.js +0 -7
  97. package/dest/node/crs/node/ignition_files_crs.d.ts +0 -38
  98. package/dest/node/crs/node/ignition_files_crs.d.ts.map +0 -1
  99. package/dest/node/crs/node/ignition_files_crs.js +0 -65
  100. package/dest/node/examples/simple.rawtest.d.ts +0 -2
  101. package/dest/node/examples/simple.rawtest.d.ts.map +0 -1
  102. package/dest/node/examples/simple.rawtest.js +0 -30
  103. package/dest/node/examples/simple.test.d.ts +0 -2
  104. package/dest/node/examples/simple.test.d.ts.map +0 -1
  105. package/dest/node/examples/simple.test.js +0 -23
  106. package/dest/node-cjs/crs/node/ignition_files_crs.d.ts +0 -38
  107. package/dest/node-cjs/crs/node/ignition_files_crs.d.ts.map +0 -1
  108. package/dest/node-cjs/crs/node/ignition_files_crs.js +0 -69
  109. package/dest/node-cjs/examples/simple.rawtest.d.ts +0 -2
  110. package/dest/node-cjs/examples/simple.rawtest.d.ts.map +0 -1
  111. package/dest/node-cjs/examples/simple.rawtest.js +0 -33
  112. package/dest/node-cjs/examples/simple.test.d.ts +0 -2
  113. package/dest/node-cjs/examples/simple.test.d.ts.map +0 -1
  114. package/dest/node-cjs/examples/simple.test.js +0 -25
  115. package/src/crs/node/ignition_files_crs.ts +0 -74
  116. package/src/examples/simple.rawtest.ts +0 -38
  117. package/src/examples/simple.test.ts +0 -28
@@ -1 +1 @@
1
- {"version":3,"file":"buffer_reader.d.ts","sourceRoot":"","sources":["../../../src/serialize/buffer_reader.ts"],"names":[],"mappings":"AAAA,qBAAa,YAAY;IAEX,OAAO,CAAC,MAAM;IAD1B,OAAO,CAAC,KAAK,CAAS;gBACF,MAAM,EAAE,UAAU,EAAE,MAAM,SAAI;WAIpC,QAAQ,CAAC,cAAc,EAAE,UAAU,GAAG,YAAY;IAIzD,UAAU,IAAI,MAAM;IAMpB,WAAW,IAAI,OAAO;IAKtB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,UAAU;IAKhC,gBAAgB,IAAI,MAAM,EAAE;IAM5B,UAAU,CAAC,CAAC,EAAE,gBAAgB,EAAE;QAAE,UAAU,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,CAAC,CAAA;KAAE,GAAG,CAAC,EAAE;IASjF,SAAS,CAAC,CAAC,EAChB,IAAI,EAAE,MAAM,EACZ,gBAAgB,EAAE;QAChB,UAAU,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,CAAC,CAAC;KACzC,GACA,CAAC,EAAE;IAQC,UAAU,CAAC,CAAC,EAAE,YAAY,EAAE;QAAE,UAAU,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,CAAC,CAAA;KAAE,GAAG,CAAC;IAI3E,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM;IAIpB,UAAU,IAAI,MAAM;IAIpB,UAAU,IAAI,UAAU;IAKxB,OAAO,CAAC,CAAC,EAAE,YAAY,EAAE;QAAE,UAAU,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,CAAC,CAAA;KAAE,GAAG;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,CAAA;KAAE;CAUnG"}
1
+ {"version":3,"file":"buffer_reader.d.ts","sourceRoot":"","sources":["../../../src/serialize/buffer_reader.ts"],"names":[],"mappings":"AAAA,qBAAa,YAAY;IAGrB,OAAO,CAAC,MAAM;IAFhB,OAAO,CAAC,KAAK,CAAS;gBAEZ,MAAM,EAAE,UAAU,EAC1B,MAAM,SAAI;WAKE,QAAQ,CAAC,cAAc,EAAE,UAAU,GAAG,YAAY;IAIzD,UAAU,IAAI,MAAM;IAMpB,WAAW,IAAI,OAAO;IAKtB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,UAAU;IAKhC,gBAAgB,IAAI,MAAM,EAAE;IAM5B,UAAU,CAAC,CAAC,EAAE,gBAAgB,EAAE;QAAE,UAAU,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,CAAC,CAAA;KAAE,GAAG,CAAC,EAAE;IASjF,SAAS,CAAC,CAAC,EAChB,IAAI,EAAE,MAAM,EACZ,gBAAgB,EAAE;QAChB,UAAU,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,CAAC,CAAC;KACzC,GACA,CAAC,EAAE;IAQC,UAAU,CAAC,CAAC,EAAE,YAAY,EAAE;QAAE,UAAU,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,CAAC,CAAA;KAAE,GAAG,CAAC;IAI3E,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM;IAIpB,UAAU,IAAI,MAAM;IAIpB,UAAU,IAAI,UAAU;IAKxB,OAAO,CAAC,CAAC,EAAE,YAAY,EAAE;QAAE,UAAU,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,CAAC,CAAA;KAAE,GAAG;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,CAAA;KAAE;CAUnG"}
@@ -67,4 +67,4 @@ class BufferReader {
67
67
  }
68
68
  }
69
69
  exports.BufferReader = BufferReader;
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVmZmVyX3JlYWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJpYWxpemUvYnVmZmVyX3JlYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxNQUFhLFlBQVk7SUFFdkIsWUFBb0IsTUFBa0IsRUFBRSxNQUFNLEdBQUcsQ0FBQztRQUE5QixXQUFNLEdBQU4sTUFBTSxDQUFZO1FBQ3BDLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDO0lBQ3RCLENBQUM7SUFFTSxNQUFNLENBQUMsUUFBUSxDQUFDLGNBQXlDO1FBQzlELE9BQU8sY0FBYyxZQUFZLFlBQVksQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxJQUFJLFlBQVksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNwRyxDQUFDO0lBRU0sVUFBVTtRQUNmLE1BQU0sUUFBUSxHQUFHLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDMUYsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUM7UUFDaEIsT0FBTyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQztRQUNoQixPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVNLFNBQVMsQ0FBQyxDQUFTO1FBQ3hCLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssR0FB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
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVmZmVyX3JlYWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJpYWxpemUvYnVmZmVyX3JlYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxNQUFhLFlBQVk7SUFFdkIsWUFDVSxNQUFrQixFQUMxQixNQUFNLEdBQUcsQ0FBQztRQURGLFdBQU0sR0FBTixNQUFNLENBQVk7UUFHMUIsSUFBSSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUM7SUFDdEIsQ0FBQztJQUVNLE1BQU0sQ0FBQyxRQUFRLENBQUMsY0FBeUM7UUFDOUQsT0FBTyxjQUFjLFlBQVksWUFBWSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLElBQUksWUFBWSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3BHLENBQUM7SUFFTSxVQUFVO1FBQ2YsTUFBTSxRQUFRLEdBQUcsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMxRixJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQztRQUNoQixPQUFPLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDO1FBQ2hCLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRU0sU0FBUyxDQUFDLENBQVM7UUFDeEIsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUM7UUFDaEIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFH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
@@ -1,4 +1,5 @@
1
1
  /// <reference types="node" />
2
+ /// <reference types="node" />
2
3
  import { BufferReader } from '../serialize/index.js';
3
4
  /**
4
5
  * Fr field class.
@@ -1 +1 @@
1
- {"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../../../src/types/fields.ts"],"names":[],"mappings":";AAOA,OAAO,EAAE,YAAY,EAAyB,MAAM,uBAAuB,CAAC;AAG5E;;;;GAIG;AACH,qBAAa,EAAE;IACb,MAAM,CAAC,IAAI,KAAc;IACzB,MAAM,CAAC,OAAO,SAAuE;IACrF,MAAM,CAAC,SAAS,SAAqB;IACrC,MAAM,CAAC,aAAa,SAAM;IAC1B,KAAK,EAAE,UAAU,CAAC;gBAEN,KAAK,EAAE,UAAU,GAAG,MAAM,GAAG,MAAM;IAiB/C,MAAM,CAAC,MAAM;IAKb,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,GAAG,YAAY;IAK5D,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,UAAU,GAAG,YAAY;IAKzD,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM;IAI7B,QAAQ;IAIR,QAAQ;IAIR,MAAM,CAAC,GAAG,EAAE,EAAE;IAId,MAAM;CAGP;AAED;;;;GAIG;AACH,qBAAa,EAAE;aAKe,KAAK,EAAE,MAAM;IAJzC,MAAM,CAAC,OAAO,SAAuE;IACrF,MAAM,CAAC,SAAS,SAAqB;IACrC,MAAM,CAAC,aAAa,SAAM;gBAEE,KAAK,EAAE,MAAM;IAMzC,MAAM,CAAC,MAAM;IAKb,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,GAAG,YAAY;IAK5D,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,GAAG,YAAY;IAKlE,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM;IAI7B,QAAQ;IAIR,QAAQ;IAIR,MAAM,CAAC,GAAG,EAAE,EAAE;IAId,MAAM;CAGP"}
1
+ {"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../../../src/types/fields.ts"],"names":[],"mappings":";;AAOA,OAAO,EAAE,YAAY,EAAyB,MAAM,uBAAuB,CAAC;AAG5E;;;;GAIG;AACH,qBAAa,EAAE;IACb,MAAM,CAAC,IAAI,KAAc;IACzB,MAAM,CAAC,OAAO,SAAuE;IACrF,MAAM,CAAC,SAAS,SAAqB;IACrC,MAAM,CAAC,aAAa,SAAM;IAC1B,KAAK,EAAE,UAAU,CAAC;gBAEN,KAAK,EAAE,UAAU,GAAG,MAAM,GAAG,MAAM;IAiB/C,MAAM,CAAC,MAAM;IAKb,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,GAAG,YAAY;IAK5D,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,UAAU,GAAG,YAAY;IAKzD,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM;IAI7B,QAAQ;IAIR,QAAQ;IAIR,MAAM,CAAC,GAAG,EAAE,EAAE;IAId,MAAM;CAGP;AAED;;;;GAIG;AACH,qBAAa,EAAE;aAKe,KAAK,EAAE,MAAM;IAJzC,MAAM,CAAC,OAAO,SAAuE;IACrF,MAAM,CAAC,SAAS,SAAqB;IACrC,MAAM,CAAC,aAAa,SAAM;gBAEE,KAAK,EAAE,MAAM;IAMzC,MAAM,CAAC,MAAM;IAKb,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,GAAG,YAAY;IAK5D,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,GAAG,YAAY;IAKlE,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM;IAI7B,QAAQ;IAIR,QAAQ;IAIR,MAAM,CAAC,GAAG,EAAE,EAAE;IAId,MAAM;CAGP"}
@@ -104,4 +104,4 @@ _b = Fq;
104
104
  Fq.MODULUS = 0x30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47n;
105
105
  Fq.MAX_VALUE = _b.MODULUS - 1n;
106
106
  Fq.SIZE_IN_BYTES = 32;
107
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3R5cGVzL2ZpZWxkcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsaURBQWlEO0FBQ2pELHVEQUtrQztBQUNsQyxvREFBNEU7QUFFNUUsMkZBQTJGO0FBQzNGOzs7O0dBSUc7QUFDSCxNQUFhLEVBQUU7SUFPYixZQUFZLEtBQW1DO1FBQzdDLCtFQUErRTtRQUMvRSxNQUFNLFdBQVcsR0FDZixPQUFPLEtBQUssS0FBSyxRQUFRO1lBQ3ZCLENBQUMsQ0FBQyxLQUFLO1lBQ1AsQ0FBQyxDQUFDLEtBQUssWUFBWSxNQUFNO2dCQUN6QixDQUFDLENBQUMsSUFBQSxrQ0FBdUIsRUFBQyxLQUFLLENBQUM7Z0JBQ2hDLENBQUMsQ0FBQyxJQUFBLCtCQUFvQixFQUFDLEtBQUssQ0FBQyxDQUFDO1FBRWxDLElBQUksV0FBVyxHQUFHLEVBQUUsQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUMvQixNQUFNLElBQUksS0FBSyxDQUFDLFdBQVcsV0FBVyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsd0NBQXdDLENBQUMsQ0FBQztRQUMvRixDQUFDO1FBRUQsSUFBSSxDQUFDLEtBQUs7WUFDUixPQUFPLEtBQUssS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUEsK0JBQW9CLEVBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssWUFBWSxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDdEgsQ0FBQztJQUVELE1BQU0sQ0FBQyxNQUFNO1FBQ1gsTUFBTSxDQUFDLEdBQUcsSUFBQSwrQkFBb0IsRUFBQyxJQUFBLHNCQUFXLEVBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDO1FBQzdELE9BQU8sSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDckIs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
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3R5cGVzL2ZpZWxkcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsaURBQWlEO0FBQ2pELHVEQUtrQztBQUNsQyxvREFBNEU7QUFFNUUsMkZBQTJGO0FBQzNGOzs7O0dBSUc7QUFDSCxNQUFhLEVBQUU7SUFPYixZQUFZLEtBQW1DO1FBQzdDLCtFQUErRTtRQUMvRSxNQUFNLFdBQVcsR0FDZixPQUFPLEtBQUssS0FBSyxRQUFRO1lBQ3ZCLENBQUMsQ0FBQyxLQUFLO1lBQ1AsQ0FBQyxDQUFDLEtBQUssWUFBWSxNQUFNO2dCQUN2QixDQUFDLENBQUMsSUFBQSxrQ0FBdUIsRUFBQyxLQUFLLENBQUM7Z0JBQ2hDLENBQUMsQ0FBQyxJQUFBLCtCQUFvQixFQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXBDLElBQUksV0FBVyxHQUFHLEVBQUUsQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUMvQixNQUFNLElBQUksS0FBSyxDQUFDLFdBQVcsV0FBVyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsd0NBQXdDLENBQUMsQ0FBQztRQUMvRixDQUFDO1FBRUQsSUFBSSxDQUFDLEtBQUs7WUFDUixPQUFPLEtBQUssS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUEsK0JBQW9CLEVBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssWUFBWSxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDdEgsQ0FBQztJQUVELE1BQU0sQ0FBQyxNQUFNO1FBQ1gsTUFBTSxDQUFDLEdBQUcsSUFBQSwrQkFBb0IsRUFBQyxJQUFBLHNCQUFXLEVBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDO1FBQzdELE9BQU8sSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDckIs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
@@ -1,4 +1,5 @@
1
1
  /// <reference types="node" />
2
+ /// <reference types="node" />
2
3
  import { Fr } from './index.js';
3
4
  import { BufferReader } from '../serialize/buffer_reader.js';
4
5
  export declare class Point {
@@ -1 +1 @@
1
- {"version":3,"file":"point.d.ts","sourceRoot":"","sources":["../../../src/types/point.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,YAAY,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE7D,qBAAa,KAAK;aAIY,CAAC,EAAE,EAAE;aAAkB,CAAC,EAAE,EAAE;IAHxD,MAAM,CAAC,aAAa,SAAM;IAC1B,MAAM,CAAC,KAAK,QAA+B;gBAEf,CAAC,EAAE,EAAE,EAAkB,CAAC,EAAE,EAAE;IAExD,MAAM,CAAC,MAAM;IAKb,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,YAAY;IAKnD,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM;IAIjC,QAAQ;IAIR,QAAQ;IAIR,MAAM,CAAC,GAAG,EAAE,KAAK;CAGlB"}
1
+ {"version":3,"file":"point.d.ts","sourceRoot":"","sources":["../../../src/types/point.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,YAAY,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE7D,qBAAa,KAAK;aAKE,CAAC,EAAE,EAAE;aACL,CAAC,EAAE,EAAE;IALvB,MAAM,CAAC,aAAa,SAAM;IAC1B,MAAM,CAAC,KAAK,QAA+B;gBAGzB,CAAC,EAAE,EAAE,EACL,CAAC,EAAE,EAAE;IAGvB,MAAM,CAAC,MAAM;IAKb,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,YAAY;IAKnD,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM;IAIjC,QAAQ;IAIR,QAAQ;IAIR,MAAM,CAAC,GAAG,EAAE,KAAK;CAGlB"}
@@ -32,4 +32,4 @@ class Point {
32
32
  exports.Point = Point;
33
33
  Point.SIZE_IN_BYTES = 64;
34
34
  Point.EMPTY = new Point(index_js_1.Fr.ZERO, index_js_1.Fr.ZERO);
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9pbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdHlwZXMvcG9pbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUNBQWdDO0FBQ2hDLG9FQUE2RDtBQUU3RCxNQUFhLEtBQUs7SUFJaEIsWUFBNEIsQ0FBSyxFQUFrQixDQUFLO1FBQTVCLE1BQUMsR0FBRCxDQUFDLENBQUk7UUFBa0IsTUFBQyxHQUFELENBQUMsQ0FBSTtJQUFHLENBQUM7SUFFNUQsTUFBTSxDQUFDLE1BQU07UUFDWCwwQ0FBMEM7UUFDMUMsT0FBTyxJQUFJLEtBQUssQ0FBQyxhQUFFLENBQUMsTUFBTSxFQUFFLEVBQUUsYUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBaUM7UUFDakQsTUFBTSxNQUFNLEdBQUcsK0JBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDN0MsT0FBTyxJQUFJLElBQUksQ0FBQyxhQUFFLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFLGFBQUUsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxPQUFlO1FBQy9CLE9BQU8sS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUVELFFBQVE7UUFDTixPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsTUFBTSxDQUFDLEdBQVU7UUFDZixPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEQsQ0FBQzs7QUE5Qkgsc0JBK0JDO0FBOUJRLG1CQUFhLEdBQUcsRUFBRSxDQUFDO0FBQ25CLFdBQUssR0FBRyxJQUFJLEtBQUssQ0FBQyxhQUFFLENBQUMsSUFBSSxFQUFFLGFBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyJ9
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9pbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdHlwZXMvcG9pbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUNBQWdDO0FBQ2hDLG9FQUE2RDtBQUU3RCxNQUFhLEtBQUs7SUFJaEIsWUFDa0IsQ0FBSyxFQUNMLENBQUs7UUFETCxNQUFDLEdBQUQsQ0FBQyxDQUFJO1FBQ0wsTUFBQyxHQUFELENBQUMsQ0FBSTtJQUNwQixDQUFDO0lBRUosTUFBTSxDQUFDLE1BQU07UUFDWCwwQ0FBMEM7UUFDMUMsT0FBTyxJQUFJLEtBQUssQ0FBQyxhQUFFLENBQUMsTUFBTSxFQUFFLEVBQUUsYUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBaUM7UUFDakQsTUFBTSxNQUFNLEdBQUcsK0JBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDN0MsT0FBTyxJQUFJLElBQUksQ0FBQyxhQUFFLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFLGFBQUUsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxPQUFlO1FBQy9CLE9BQU8sS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUVELFFBQVE7UUFDTixPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsTUFBTSxDQUFDLEdBQVU7UUFDZixPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEQsQ0FBQzs7QUFqQ0gsc0JBa0NDO0FBakNRLG1CQUFhLEdBQUcsRUFBRSxDQUFDO0FBQ25CLFdBQUssR0FBRyxJQUFJLEtBQUssQ0FBQyxhQUFFLENBQUMsSUFBSSxFQUFFLGFBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyJ9
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@aztec/bb.js",
3
3
  "packageManager": "yarn@4.5.2",
4
- "version": "0.86.0",
4
+ "version": "0.87.0-nightly.20250521",
5
5
  "homepage": "https://github.com/AztecProtocol/aztec-packages/tree/master/barretenberg/ts",
6
6
  "license": "MIT",
7
7
  "type": "module",
@@ -67,6 +67,7 @@
67
67
  "commander": "^12.1.0",
68
68
  "debug": "^4.3.4",
69
69
  "fflate": "^0.8.0",
70
+ "msgpackr": "^1.11.2",
70
71
  "pako": "^2.1.0",
71
72
  "tslib": "^2.4.0"
72
73
  },
@@ -77,25 +78,23 @@
77
78
  "@types/debug": "^4.1.7",
78
79
  "@types/detect-node": "^2.0.0",
79
80
  "@types/jest": "^29.4.0",
80
- "@types/node": "^18.7.23",
81
+ "@types/node": "^22.15.17",
81
82
  "@types/pako": "^2.0.3",
82
83
  "@types/source-map-support": "^0.5.6",
83
- "@typescript-eslint/eslint-plugin": "^5.54.1",
84
- "@typescript-eslint/parser": "^5.54.1",
85
84
  "buffer": "^6.0.3",
86
- "eslint": "^8.35.0",
87
- "eslint-config-prettier": "^8.8.0",
85
+ "eslint": "^9.26.0",
86
+ "eslint-config-prettier": "^10.1.5",
88
87
  "html-webpack-plugin": "^5.6.3",
89
88
  "idb-keyval": "^6.2.1",
90
89
  "jest": "^29.5.0",
91
- "msgpackr": "^1.11.2",
92
90
  "node-polyfill-webpack-plugin": "^4.1.0",
93
- "prettier": "^2.8.4",
91
+ "prettier": "^3.5.3",
94
92
  "terser-webpack-plugin": "^5.3.14",
95
93
  "ts-jest": "^29.1.0",
96
94
  "ts-loader": "^9.4.2",
97
95
  "ts-node": "^10.9.1",
98
96
  "typescript": "5.4.5",
97
+ "typescript-eslint": "^8.32.1",
99
98
  "webpack": "^5.99.6",
100
99
  "webpack-cli": "^6.0.1",
101
100
  "webpack-dev-server": "^5.2.1"
@@ -6,9 +6,8 @@ import {
6
6
  flattenFieldsAsArray,
7
7
  ProofData,
8
8
  reconstructHonkProof,
9
- reconstructUltraPlonkProof,
10
9
  splitHonkProof,
11
- AGGREGATION_OBJECT_LENGTH,
10
+ PAIRING_POINTS_SIZE,
12
11
  } from '../proof/index.js';
13
12
  import { Encoder } from 'msgpackr/pack';
14
13
 
@@ -25,7 +24,6 @@ function parseBigEndianU32Array(buffer: Uint8Array): number[] {
25
24
 
26
25
  let offset = 0;
27
26
  const count = buffer.byteLength >>> 2; // default is entire buffer length / 4
28
- console.log(buffer);
29
27
 
30
28
  const out: number[] = new Array(count);
31
29
  for (let i = 0; i < count; i++) {
@@ -36,144 +34,6 @@ function parseBigEndianU32Array(buffer: Uint8Array): number[] {
36
34
  return out;
37
35
  }
38
36
 
39
- export class UltraPlonkBackend {
40
- // These type assertions are used so that we don't
41
- // have to initialize `api` and `acirComposer` in the constructor.
42
- // These are initialized asynchronously in the `init` function,
43
- // constructors cannot be asynchronous which is why we do this.
44
-
45
- protected api!: Barretenberg;
46
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
47
- protected acirComposer: any;
48
-
49
- protected acirUncompressedBytecode: Uint8Array;
50
-
51
- constructor(
52
- acirBytecode: string,
53
- protected backendOptions: BackendOptions = { threads: 1 },
54
- protected circuitOptions: CircuitOptions = { recursive: false },
55
- ) {
56
- this.acirUncompressedBytecode = acirToUint8Array(acirBytecode);
57
- }
58
-
59
- /** @ignore */
60
- async instantiate(): Promise<void> {
61
- if (!this.api) {
62
- const api = await Barretenberg.new(this.backendOptions);
63
-
64
- const honkRecursion = false;
65
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
66
- const [_total, subgroupSize] = await api.acirGetCircuitSizes(
67
- this.acirUncompressedBytecode,
68
- this.circuitOptions.recursive,
69
- honkRecursion,
70
- );
71
-
72
- await api.initSRSForCircuitSize(subgroupSize);
73
- this.acirComposer = await api.acirNewAcirComposer(subgroupSize);
74
- await api.acirInitProvingKey(this.acirComposer, this.acirUncompressedBytecode, this.circuitOptions.recursive);
75
- this.api = api;
76
- }
77
- }
78
-
79
- /** @description Generates a proof */
80
- async generateProof(compressedWitness: Uint8Array): Promise<ProofData> {
81
- await this.instantiate();
82
- const proofWithPublicInputs = await this.api.acirCreateProof(
83
- this.acirComposer,
84
- this.acirUncompressedBytecode,
85
- this.circuitOptions.recursive,
86
- gunzip(compressedWitness),
87
- );
88
-
89
- // This is the number of bytes in a UltraPlonk proof
90
- // minus the public inputs.
91
- const numBytesInProofWithoutPublicInputs = 2144;
92
-
93
- const splitIndex = proofWithPublicInputs.length - numBytesInProofWithoutPublicInputs;
94
-
95
- const publicInputsConcatenated = proofWithPublicInputs.slice(0, splitIndex);
96
- const proof = proofWithPublicInputs.slice(splitIndex);
97
- const publicInputs = deflattenFields(publicInputsConcatenated);
98
-
99
- return { proof, publicInputs };
100
- }
101
-
102
- /**
103
- * Generates artifacts that will be passed to a circuit that will verify this proof.
104
- *
105
- * Instead of passing the proof and verification key as a byte array, we pass them
106
- * as fields which makes it cheaper to verify in a circuit.
107
- *
108
- * The proof that is passed here will have been created by passing the `recursive`
109
- * parameter to a backend.
110
- *
111
- * The number of public inputs denotes how many public inputs are in the inner proof.
112
- *
113
- * @example
114
- * ```typescript
115
- * const artifacts = await backend.generateRecursiveProofArtifacts(proof, numOfPublicInputs);
116
- * ```
117
- */
118
- async generateRecursiveProofArtifacts(
119
- proofData: ProofData,
120
- numOfPublicInputs = 0,
121
- ): Promise<{
122
- proofAsFields: string[];
123
- vkAsFields: string[];
124
- vkHash: string;
125
- }> {
126
- await this.instantiate();
127
-
128
- const proof = reconstructUltraPlonkProof(proofData);
129
- const proofAsFields = (
130
- await this.api.acirSerializeProofIntoFields(this.acirComposer, proof, numOfPublicInputs)
131
- ).slice(numOfPublicInputs);
132
-
133
- // TODO: perhaps we should put this in the init function. Need to benchmark
134
- // TODO how long it takes.
135
- await this.api.acirInitVerificationKey(this.acirComposer);
136
-
137
- // Note: If you don't init verification key, `acirSerializeVerificationKeyIntoFields`` will just hang on serialization
138
- const vk = await this.api.acirSerializeVerificationKeyIntoFields(this.acirComposer);
139
-
140
- return {
141
- proofAsFields: proofAsFields.map(p => p.toString()),
142
- vkAsFields: vk[0].map(vk => vk.toString()),
143
- vkHash: vk[1].toString(),
144
- };
145
- }
146
-
147
- /** @description Verifies a proof */
148
- async verifyProof(proofData: ProofData): Promise<boolean> {
149
- await this.instantiate();
150
- await this.api.acirInitVerificationKey(this.acirComposer);
151
- const proof = reconstructUltraPlonkProof(proofData);
152
- return await this.api.acirVerifyProof(this.acirComposer, proof);
153
- }
154
-
155
- /** @description Returns the verification key */
156
- async getVerificationKey(): Promise<Uint8Array> {
157
- await this.instantiate();
158
- await this.api.acirInitVerificationKey(this.acirComposer);
159
- return await this.api.acirGetVerificationKey(this.acirComposer);
160
- }
161
-
162
- /** @description Returns a solidity verifier */
163
- async getSolidityVerifier(): Promise<string> {
164
- await this.instantiate();
165
- await this.api.acirInitVerificationKey(this.acirComposer);
166
- return await this.api.acirGetSolidityVerifier(this.acirComposer);
167
- }
168
-
169
- async destroy(): Promise<void> {
170
- if (!this.api) {
171
- return;
172
- }
173
- await this.api.destroy();
174
- }
175
- }
176
-
177
37
  /**
178
38
  * Options for the UltraHonkBackend.
179
39
  */
@@ -183,6 +43,11 @@ export type UltraHonkBackendOptions = {
183
43
  * Use this when you want to verify the created proof on an EVM chain.
184
44
  */
185
45
  keccak?: boolean;
46
+ /** Selecting this option will use the keccak hash function instead of poseidon
47
+ * when generating challenges in the proof.
48
+ * Use this when you want to verify the created proof on an EVM chain.
49
+ */
50
+ keccakZK?: boolean;
186
51
  /**S electing this option will use the poseidon/stark252 hash function instead of poseidon
187
52
  * when generating challenges in the proof.
188
53
  * Use this when you want to verify the created proof on an Starknet chain with Garaga.
@@ -224,25 +89,29 @@ export class UltraHonkBackend {
224
89
 
225
90
  const proveUltraHonk = options?.keccak
226
91
  ? this.api.acirProveUltraKeccakHonk.bind(this.api)
227
- : options?.starknet
228
- ? this.api.acirProveUltraStarknetHonk.bind(this.api)
229
- : this.api.acirProveUltraHonk.bind(this.api);
92
+ : options?.keccakZK
93
+ ? this.api.acirProveUltraKeccakZKHonk.bind(this.api)
94
+ : options?.starknet
95
+ ? this.api.acirProveUltraStarknetHonk.bind(this.api)
96
+ : this.api.acirProveUltraHonk.bind(this.api);
230
97
 
231
98
  const proofWithPublicInputs = await proveUltraHonk(this.acirUncompressedBytecode, gunzip(compressedWitness));
232
99
 
233
100
  // Write VK to get the number of public inputs
234
101
  const writeVKUltraHonk = options?.keccak
235
102
  ? this.api.acirWriteVkUltraKeccakHonk.bind(this.api)
236
- : options?.starknet
237
- ? this.api.acirWriteVkUltraStarknetHonk.bind(this.api)
238
- : this.api.acirWriteVkUltraHonk.bind(this.api);
103
+ : options?.keccakZK
104
+ ? this.api.acirWriteVkUltraKeccakZKHonk.bind(this.api)
105
+ : options?.starknet
106
+ ? this.api.acirWriteVkUltraStarknetHonk.bind(this.api)
107
+ : this.api.acirWriteVkUltraHonk.bind(this.api);
239
108
 
240
109
  const vk = await writeVKUltraHonk(this.acirUncompressedBytecode);
241
110
  const vkAsFields = await this.api.acirVkAsFieldsUltraHonk(new RawBuffer(vk));
242
111
 
243
112
  // Item at index 1 in VK is the number of public inputs
244
113
  const publicInputsSizeIndex = 1; // index into VK for numPublicInputs
245
- const numPublicInputs = Number(vkAsFields[publicInputsSizeIndex].toString()) - AGGREGATION_OBJECT_LENGTH;
114
+ const numPublicInputs = Number(vkAsFields[publicInputsSizeIndex].toString()) - PAIRING_POINTS_SIZE;
246
115
 
247
116
  const { proof, publicInputs: publicInputsBytes } = splitHonkProof(proofWithPublicInputs, numPublicInputs);
248
117
  const publicInputs = deflattenFields(publicInputsBytes);
@@ -257,14 +126,18 @@ export class UltraHonkBackend {
257
126
 
258
127
  const writeVkUltraHonk = options?.keccak
259
128
  ? this.api.acirWriteVkUltraKeccakHonk.bind(this.api)
260
- : options?.starknet
261
- ? this.api.acirWriteVkUltraStarknetHonk.bind(this.api)
262
- : this.api.acirWriteVkUltraHonk.bind(this.api);
129
+ : options?.keccakZK
130
+ ? this.api.acirWriteVkUltraKeccakZKHonk.bind(this.api)
131
+ : options?.starknet
132
+ ? this.api.acirWriteVkUltraStarknetHonk.bind(this.api)
133
+ : this.api.acirWriteVkUltraHonk.bind(this.api);
263
134
  const verifyUltraHonk = options?.keccak
264
135
  ? this.api.acirVerifyUltraKeccakHonk.bind(this.api)
265
- : options?.starknet
266
- ? this.api.acirVerifyUltraStarknetHonk.bind(this.api)
267
- : this.api.acirVerifyUltraHonk.bind(this.api);
136
+ : options?.keccakZK
137
+ ? this.api.acirVerifyUltraKeccakZKHonk.bind(this.api)
138
+ : options?.starknet
139
+ ? this.api.acirVerifyUltraStarknetHonk.bind(this.api)
140
+ : this.api.acirVerifyUltraHonk.bind(this.api);
268
141
 
269
142
  const vkBuf = await writeVkUltraHonk(this.acirUncompressedBytecode);
270
143
  return await verifyUltraHonk(proof, new RawBuffer(vkBuf));
@@ -274,9 +147,11 @@ export class UltraHonkBackend {
274
147
  await this.instantiate();
275
148
  return options?.keccak
276
149
  ? await this.api.acirWriteVkUltraKeccakHonk(this.acirUncompressedBytecode)
277
- : options?.starknet
278
- ? await this.api.acirWriteVkUltraStarknetHonk(this.acirUncompressedBytecode)
279
- : await this.api.acirWriteVkUltraHonk(this.acirUncompressedBytecode);
150
+ : options?.keccakZK
151
+ ? await this.api.acirWriteVkUltraKeccakZKHonk(this.acirUncompressedBytecode)
152
+ : options?.starknet
153
+ ? await this.api.acirWriteVkUltraStarknetHonk(this.acirUncompressedBytecode)
154
+ : await this.api.acirWriteVkUltraHonk(this.acirUncompressedBytecode);
280
155
  }
281
156
 
282
157
  /** @description Returns a solidity verifier */
@@ -336,7 +211,11 @@ interface AztecClientExecutionStep {
336
211
  vk: Uint8Array;
337
212
  }
338
213
 
339
- function serializeAztecClientExecutionSteps(acirBuf: Uint8Array[], witnessBuf: Uint8Array[], vksBuf: Uint8Array[]): Uint8Array {
214
+ function serializeAztecClientExecutionSteps(
215
+ acirBuf: Uint8Array[],
216
+ witnessBuf: Uint8Array[],
217
+ vksBuf: Uint8Array[],
218
+ ): Uint8Array {
340
219
  const steps: AztecClientExecutionStep[] = [];
341
220
  for (let i = 0; i < acirBuf.length; i++) {
342
221
  const bytecode = acirBuf[i];
@@ -363,7 +242,10 @@ export class AztecClientBackend {
363
242
 
364
243
  protected api!: Barretenberg;
365
244
 
366
- constructor(protected acirBuf: Uint8Array[], protected options: BackendOptions = { threads: 1 }) {}
245
+ constructor(
246
+ protected acirBuf: Uint8Array[],
247
+ protected options: BackendOptions = { threads: 1 },
248
+ ) {}
367
249
 
368
250
  /** @ignore */
369
251
  private async instantiate(): Promise<void> {
@@ -9,7 +9,7 @@ import { RawBuffer } from '../types/raw_buffer.js';
9
9
  import { fetchModuleAndThreads } from '../barretenberg_wasm/index.js';
10
10
 
11
11
  export { BarretenbergVerifier } from './verifier.js';
12
- export { UltraPlonkBackend, UltraHonkBackend, AztecClientBackend } from './backend.js';
12
+ export { UltraHonkBackend, AztecClientBackend } from './backend.js';
13
13
 
14
14
  export type BackendOptions = {
15
15
  /** @description Number of threads to run the backend worker on */
@@ -40,7 +40,11 @@ export type CircuitOptions = {
40
40
  export class Barretenberg extends BarretenbergApi {
41
41
  private options: BackendOptions;
42
42
 
43
- private constructor(private worker: any, wasm: BarretenbergWasmMainWorker, options: BackendOptions) {
43
+ private constructor(
44
+ private worker: any,
45
+ wasm: BarretenbergWasmMainWorker,
46
+ options: BackendOptions,
47
+ ) {
44
48
  super(wasm);
45
49
  this.options = options;
46
50
  }
@@ -103,7 +107,7 @@ export class Barretenberg extends BarretenbergApi {
103
107
  }
104
108
  }
105
109
 
106
- let barrentenbergSyncSingletonPromise: Promise<BarretenbergSync>;
110
+ let barretenbergSyncSingletonPromise: Promise<BarretenbergSync>;
107
111
  let barretenbergSyncSingleton: BarretenbergSync;
108
112
 
109
113
  export class BarretenbergSync extends BarretenbergApiSync {
@@ -119,11 +123,11 @@ export class BarretenbergSync extends BarretenbergApiSync {
119
123
  }
120
124
 
121
125
  static async initSingleton(wasmPath?: string, logger: (msg: string) => void = createDebug('bb.js:bb_wasm_sync')) {
122
- if (!barrentenbergSyncSingletonPromise) {
123
- barrentenbergSyncSingletonPromise = BarretenbergSync.new(wasmPath, logger);
126
+ if (!barretenbergSyncSingletonPromise) {
127
+ barretenbergSyncSingletonPromise = BarretenbergSync.new(wasmPath, logger);
124
128
  }
125
129
 
126
- barretenbergSyncSingleton = await barrentenbergSyncSingletonPromise;
130
+ barretenbergSyncSingleton = await barretenbergSyncSingletonPromise;
127
131
  return barretenbergSyncSingleton;
128
132
  }
129
133
 
@@ -1,6 +1,6 @@
1
1
  import { BackendOptions, Barretenberg } from './index.js';
2
2
  import { RawBuffer } from '../types/raw_buffer.js';
3
- import { flattenFieldsAsArray, ProofData, reconstructHonkProof, reconstructUltraPlonkProof } from '../proof/index.js';
3
+ import { flattenFieldsAsArray, ProofData, reconstructHonkProof } from '../proof/index.js';
4
4
 
5
5
  // TODO: once UP is removed we can just roll this into the bas `Barretenberg` class.
6
6
 
@@ -22,22 +22,10 @@ export class BarretenbergVerifier {
22
22
  const api = await Barretenberg.new(this.options);
23
23
  await api.initSRSForCircuitSize(0);
24
24
 
25
- this.acirComposer = await api.acirNewAcirComposer(0);
26
25
  this.api = api;
27
26
  }
28
27
  }
29
28
 
30
- /** @description Verifies a proof */
31
- async verifyUltraPlonkProof(proofData: ProofData, verificationKey: Uint8Array): Promise<boolean> {
32
- await this.instantiate();
33
- // The verifier can be used for a variety of ACIR programs so we should not assume that it
34
- // is preloaded with the correct verification key.
35
- await this.api.acirLoadVerificationKey(this.acirComposer, new RawBuffer(verificationKey));
36
-
37
- const proof = reconstructUltraPlonkProof(proofData);
38
- return await this.api.acirVerifyProof(this.acirComposer, proof);
39
- }
40
-
41
29
  /** @description Verifies a proof */
42
30
  async verifyUltraHonkProof(proofData: ProofData, verificationKey: Uint8Array): Promise<boolean> {
43
31
  await this.instantiate();