@aztec/bb.js 0.86.0 → 0.87.0

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,5 +1,120 @@
1
1
  /*! For license information please see index.js.LICENSE.txt */
2
2
  var __webpack_modules__ = {
3
+ 0: module => {
4
+ var s = 1e3;
5
+ var m = s * 60;
6
+ var h = m * 60;
7
+ var d = h * 24;
8
+ var w = d * 7;
9
+ var y = d * 365.25;
10
+ module.exports = function(val, options) {
11
+ options = options || {};
12
+ var type = typeof val;
13
+ if (type === "string" && val.length > 0) {
14
+ return parse(val);
15
+ } else if (type === "number" && isFinite(val)) {
16
+ return options.long ? fmtLong(val) : fmtShort(val);
17
+ }
18
+ throw new Error("val is not a non-empty string or a valid number. val=" + JSON.stringify(val));
19
+ };
20
+ function parse(str) {
21
+ str = String(str);
22
+ if (str.length > 100) {
23
+ return;
24
+ }
25
+ var match = /^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(str);
26
+ if (!match) {
27
+ return;
28
+ }
29
+ var n = parseFloat(match[1]);
30
+ var type = (match[2] || "ms").toLowerCase();
31
+ switch (type) {
32
+ case "years":
33
+ case "year":
34
+ case "yrs":
35
+ case "yr":
36
+ case "y":
37
+ return n * y;
38
+
39
+ case "weeks":
40
+ case "week":
41
+ case "w":
42
+ return n * w;
43
+
44
+ case "days":
45
+ case "day":
46
+ case "d":
47
+ return n * d;
48
+
49
+ case "hours":
50
+ case "hour":
51
+ case "hrs":
52
+ case "hr":
53
+ case "h":
54
+ return n * h;
55
+
56
+ case "minutes":
57
+ case "minute":
58
+ case "mins":
59
+ case "min":
60
+ case "m":
61
+ return n * m;
62
+
63
+ case "seconds":
64
+ case "second":
65
+ case "secs":
66
+ case "sec":
67
+ case "s":
68
+ return n * s;
69
+
70
+ case "milliseconds":
71
+ case "millisecond":
72
+ case "msecs":
73
+ case "msec":
74
+ case "ms":
75
+ return n;
76
+
77
+ default:
78
+ return undefined;
79
+ }
80
+ }
81
+ function fmtShort(ms) {
82
+ var msAbs = Math.abs(ms);
83
+ if (msAbs >= d) {
84
+ return Math.round(ms / d) + "d";
85
+ }
86
+ if (msAbs >= h) {
87
+ return Math.round(ms / h) + "h";
88
+ }
89
+ if (msAbs >= m) {
90
+ return Math.round(ms / m) + "m";
91
+ }
92
+ if (msAbs >= s) {
93
+ return Math.round(ms / s) + "s";
94
+ }
95
+ return ms + "ms";
96
+ }
97
+ function fmtLong(ms) {
98
+ var msAbs = Math.abs(ms);
99
+ if (msAbs >= d) {
100
+ return plural(ms, msAbs, d, "day");
101
+ }
102
+ if (msAbs >= h) {
103
+ return plural(ms, msAbs, h, "hour");
104
+ }
105
+ if (msAbs >= m) {
106
+ return plural(ms, msAbs, m, "minute");
107
+ }
108
+ if (msAbs >= s) {
109
+ return plural(ms, msAbs, s, "second");
110
+ }
111
+ return ms + " ms";
112
+ }
113
+ function plural(ms, msAbs, n, name) {
114
+ var isPlural = msAbs >= n * 1.5;
115
+ return Math.round(ms / n) + " " + name + (isPlural ? "s" : "");
116
+ }
117
+ },
3
118
  19: (module, exports) => {
4
119
  Object.defineProperty(exports, "__esModule", {
5
120
  value: true
@@ -1966,121 +2081,7 @@ var __webpack_modules__ = {
1966
2081
  return parts.join("");
1967
2082
  }
1968
2083
  },
1969
- 585: module => {
1970
- var s = 1e3;
1971
- var m = s * 60;
1972
- var h = m * 60;
1973
- var d = h * 24;
1974
- var w = d * 7;
1975
- var y = d * 365.25;
1976
- module.exports = function(val, options) {
1977
- options = options || {};
1978
- var type = typeof val;
1979
- if (type === "string" && val.length > 0) {
1980
- return parse(val);
1981
- } else if (type === "number" && isFinite(val)) {
1982
- return options.long ? fmtLong(val) : fmtShort(val);
1983
- }
1984
- throw new Error("val is not a non-empty string or a valid number. val=" + JSON.stringify(val));
1985
- };
1986
- function parse(str) {
1987
- str = String(str);
1988
- if (str.length > 100) {
1989
- return;
1990
- }
1991
- var match = /^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(str);
1992
- if (!match) {
1993
- return;
1994
- }
1995
- var n = parseFloat(match[1]);
1996
- var type = (match[2] || "ms").toLowerCase();
1997
- switch (type) {
1998
- case "years":
1999
- case "year":
2000
- case "yrs":
2001
- case "yr":
2002
- case "y":
2003
- return n * y;
2004
-
2005
- case "weeks":
2006
- case "week":
2007
- case "w":
2008
- return n * w;
2009
-
2010
- case "days":
2011
- case "day":
2012
- case "d":
2013
- return n * d;
2014
-
2015
- case "hours":
2016
- case "hour":
2017
- case "hrs":
2018
- case "hr":
2019
- case "h":
2020
- return n * h;
2021
-
2022
- case "minutes":
2023
- case "minute":
2024
- case "mins":
2025
- case "min":
2026
- case "m":
2027
- return n * m;
2028
-
2029
- case "seconds":
2030
- case "second":
2031
- case "secs":
2032
- case "sec":
2033
- case "s":
2034
- return n * s;
2035
-
2036
- case "milliseconds":
2037
- case "millisecond":
2038
- case "msecs":
2039
- case "msec":
2040
- case "ms":
2041
- return n;
2042
-
2043
- default:
2044
- return undefined;
2045
- }
2046
- }
2047
- function fmtShort(ms) {
2048
- var msAbs = Math.abs(ms);
2049
- if (msAbs >= d) {
2050
- return Math.round(ms / d) + "d";
2051
- }
2052
- if (msAbs >= h) {
2053
- return Math.round(ms / h) + "h";
2054
- }
2055
- if (msAbs >= m) {
2056
- return Math.round(ms / m) + "m";
2057
- }
2058
- if (msAbs >= s) {
2059
- return Math.round(ms / s) + "s";
2060
- }
2061
- return ms + "ms";
2062
- }
2063
- function fmtLong(ms) {
2064
- var msAbs = Math.abs(ms);
2065
- if (msAbs >= d) {
2066
- return plural(ms, msAbs, d, "day");
2067
- }
2068
- if (msAbs >= h) {
2069
- return plural(ms, msAbs, h, "hour");
2070
- }
2071
- if (msAbs >= m) {
2072
- return plural(ms, msAbs, m, "minute");
2073
- }
2074
- if (msAbs >= s) {
2075
- return plural(ms, msAbs, s, "second");
2076
- }
2077
- return ms + " ms";
2078
- }
2079
- function plural(ms, msAbs, n, name) {
2080
- var isPlural = msAbs >= n * 1.5;
2081
- return Math.round(ms / n) + " " + name + (isPlural ? "s" : "");
2082
- }
2083
- },
2084
+ 733: () => {},
2084
2085
  736: (module, __unused_webpack_exports, __webpack_require__) => {
2085
2086
  function setup(env) {
2086
2087
  createDebug.debug = createDebug;
@@ -2089,7 +2090,7 @@ var __webpack_modules__ = {
2089
2090
  createDebug.disable = disable;
2090
2091
  createDebug.enable = enable;
2091
2092
  createDebug.enabled = enabled;
2092
- createDebug.humanize = __webpack_require__(585);
2093
+ createDebug.humanize = __webpack_require__(0);
2093
2094
  createDebug.destroy = destroy;
2094
2095
  Object.keys(env).forEach((key => {
2095
2096
  createDebug[key] = env[key];
@@ -2334,8 +2335,6 @@ function __webpack_require__(moduleId) {
2334
2335
  return module.exports;
2335
2336
  }
2336
2337
 
2337
- __webpack_require__.m = __webpack_modules__;
2338
-
2339
2338
  (() => {
2340
2339
  __webpack_require__.n = module => {
2341
2340
  var getter = module && module.__esModule ? () => module["default"] : () => module;
@@ -2382,18 +2381,6 @@ __webpack_require__.m = __webpack_modules__;
2382
2381
  };
2383
2382
  })();
2384
2383
 
2385
- (() => {
2386
- __webpack_require__.f = {};
2387
- __webpack_require__.e = chunkId => Promise.all(Object.keys(__webpack_require__.f).reduce(((promises, key) => {
2388
- __webpack_require__.f[key](chunkId, promises);
2389
- return promises;
2390
- }), []));
2391
- })();
2392
-
2393
- (() => {
2394
- __webpack_require__.u = chunkId => "" + chunkId + "." + "655674bbbb79bdf168c4" + ".js";
2395
- })();
2396
-
2397
2384
  (() => {
2398
2385
  __webpack_require__.o = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop);
2399
2386
  })();
@@ -2411,46 +2398,6 @@ __webpack_require__.m = __webpack_modules__;
2411
2398
  };
2412
2399
  })();
2413
2400
 
2414
- (() => {
2415
- var installedChunks = {
2416
- 57: 0
2417
- };
2418
- var installChunk = data => {
2419
- var {__webpack_ids__, __webpack_modules__, __webpack_runtime__} = data;
2420
- var moduleId, chunkId, i = 0;
2421
- for (moduleId in __webpack_modules__) {
2422
- if (__webpack_require__.o(__webpack_modules__, moduleId)) {
2423
- __webpack_require__.m[moduleId] = __webpack_modules__[moduleId];
2424
- }
2425
- }
2426
- if (__webpack_runtime__) __webpack_runtime__(__webpack_require__);
2427
- for (;i < __webpack_ids__.length; i++) {
2428
- chunkId = __webpack_ids__[i];
2429
- if (__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {
2430
- installedChunks[chunkId][0]();
2431
- }
2432
- installedChunks[__webpack_ids__[i]] = 0;
2433
- }
2434
- };
2435
- __webpack_require__.f.j = (chunkId, promises) => {
2436
- var installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;
2437
- if (installedChunkData !== 0) {
2438
- if (installedChunkData) {
2439
- promises.push(installedChunkData[1]);
2440
- } else {
2441
- if (true) {
2442
- var promise = import("./" + __webpack_require__.u(chunkId)).then(installChunk, (e => {
2443
- if (installedChunks[chunkId] !== 0) installedChunks[chunkId] = undefined;
2444
- throw e;
2445
- }));
2446
- var promise = Promise.race([ promise, new Promise((resolve => installedChunkData = installedChunks[chunkId] = [ resolve ])) ]);
2447
- promises.push(installedChunkData[1] = promise);
2448
- }
2449
- }
2450
- }
2451
- };
2452
- })();
2453
-
2454
2401
  var __webpack_exports__ = {};
2455
2402
 
2456
2403
  function* backoffGenerator() {
@@ -2517,7 +2464,7 @@ class NetCrs {
2517
2464
  return new Response(new Uint8Array([]));
2518
2465
  }
2519
2466
  const g1End = this.numPoints * 64 - 1;
2520
- return await retry((() => fetch("https://aztec-ignition.s3.amazonaws.com/MAIN%20IGNITION/flat/g1.dat", {
2467
+ return await retry((() => fetch("https://crs.aztec.network/g1.dat", {
2521
2468
  headers: {
2522
2469
  Range: `bytes=0-${g1End}`
2523
2470
  },
@@ -2525,7 +2472,7 @@ class NetCrs {
2525
2472
  })), makeBackoff([ 5, 5, 5 ]));
2526
2473
  }
2527
2474
  async fetchG2Data() {
2528
- return await retry((() => fetch("https://aztec-ignition.s3.amazonaws.com/MAIN%20IGNITION/flat/g2.dat", {
2475
+ return await retry((() => fetch("https://crs.aztec.network/g2.dat", {
2529
2476
  cache: "force-cache"
2530
2477
  })), makeBackoff([ 5, 5, 5 ]));
2531
2478
  }
@@ -2553,11 +2500,10 @@ class NetGrumpkinCrs {
2553
2500
  if (this.numPoints === 0) {
2554
2501
  return new Response(new Uint8Array([]));
2555
2502
  }
2556
- const g1Start = 28;
2557
- const g1End = g1Start + (this.numPoints * 64 - 1);
2558
- return await fetch("https://aztec-ignition.s3.amazonaws.com/TEST%20GRUMPKIN/monomial/transcript00.dat", {
2503
+ const g1End = this.numPoints * 64 - 1;
2504
+ return await fetch("https://crs.aztec.network/grumpkin_g1.dat", {
2559
2505
  headers: {
2560
- Range: `bytes=${g1Start}-${g1End}`
2506
+ Range: `bytes=0-${g1End}`
2561
2507
  },
2562
2508
  cache: "force-cache"
2563
2509
  });
@@ -3724,13 +3670,6 @@ class BarretenbergApi {
3724
3670
  const out = result.map(((r, i) => outTypes[i].fromBuffer(r)));
3725
3671
  return;
3726
3672
  }
3727
- async examplesSimpleCreateAndVerifyProof() {
3728
- const inArgs = [].map(serializeBufferable);
3729
- const outTypes = [ BoolDeserializer() ];
3730
- const result = await this.wasm.callWasmExport("examples_simple_create_and_verify_proof", inArgs, outTypes.map((t => t.SIZE_IN_BYTES)));
3731
- const out = result.map(((r, i) => outTypes[i].fromBuffer(r)));
3732
- return out[0];
3733
- }
3734
3673
  async testThreads(threads, iterations) {
3735
3674
  const inArgs = [ threads, iterations ].map(serializeBufferable);
3736
3675
  const outTypes = [ NumberDeserializer() ];
@@ -3752,34 +3691,6 @@ class BarretenbergApi {
3752
3691
  const out = result.map(((r, i) => outTypes[i].fromBuffer(r)));
3753
3692
  return out;
3754
3693
  }
3755
- async acirNewAcirComposer(sizeHint) {
3756
- const inArgs = [ sizeHint ].map(serializeBufferable);
3757
- const outTypes = [ Ptr ];
3758
- const result = await this.wasm.callWasmExport("acir_new_acir_composer", inArgs, outTypes.map((t => t.SIZE_IN_BYTES)));
3759
- const out = result.map(((r, i) => outTypes[i].fromBuffer(r)));
3760
- return out[0];
3761
- }
3762
- async acirDeleteAcirComposer(acirComposerPtr) {
3763
- const inArgs = [ acirComposerPtr ].map(serializeBufferable);
3764
- const outTypes = [];
3765
- const result = await this.wasm.callWasmExport("acir_delete_acir_composer", inArgs, outTypes.map((t => t.SIZE_IN_BYTES)));
3766
- const out = result.map(((r, i) => outTypes[i].fromBuffer(r)));
3767
- return;
3768
- }
3769
- async acirInitProvingKey(acirComposerPtr, constraintSystemBuf, recursive) {
3770
- const inArgs = [ acirComposerPtr, constraintSystemBuf, recursive ].map(serializeBufferable);
3771
- const outTypes = [];
3772
- const result = await this.wasm.callWasmExport("acir_init_proving_key", inArgs, outTypes.map((t => t.SIZE_IN_BYTES)));
3773
- const out = result.map(((r, i) => outTypes[i].fromBuffer(r)));
3774
- return;
3775
- }
3776
- async acirCreateProof(acirComposerPtr, constraintSystemBuf, recursive, witnessBuf) {
3777
- const inArgs = [ acirComposerPtr, constraintSystemBuf, recursive, witnessBuf ].map(serializeBufferable);
3778
- const outTypes = [ BufferDeserializer() ];
3779
- const result = await this.wasm.callWasmExport("acir_create_proof", inArgs, outTypes.map((t => t.SIZE_IN_BYTES)));
3780
- const out = result.map(((r, i) => outTypes[i].fromBuffer(r)));
3781
- return out[0];
3782
- }
3783
3694
  async acirProveAndVerifyUltraHonk(constraintSystemBuf, witnessBuf) {
3784
3695
  const inArgs = [ constraintSystemBuf, witnessBuf ].map(serializeBufferable);
3785
3696
  const outTypes = [ BoolDeserializer() ];
@@ -3885,6 +3796,13 @@ class BarretenbergApi {
3885
3796
  const out = result.map(((r, i) => outTypes[i].fromBuffer(r)));
3886
3797
  return out[0];
3887
3798
  }
3799
+ async acirProveUltraKeccakZKHonk(acirVec, witnessVec) {
3800
+ const inArgs = [ acirVec, witnessVec ].map(serializeBufferable);
3801
+ const outTypes = [ BufferDeserializer() ];
3802
+ const result = await this.wasm.callWasmExport("acir_prove_ultra_keccak_zk_honk", inArgs, outTypes.map((t => t.SIZE_IN_BYTES)));
3803
+ const out = result.map(((r, i) => outTypes[i].fromBuffer(r)));
3804
+ return out[0];
3805
+ }
3888
3806
  async acirProveUltraStarknetHonk(acirVec, witnessVec) {
3889
3807
  const inArgs = [ acirVec, witnessVec ].map(serializeBufferable);
3890
3808
  const outTypes = [ BufferDeserializer() ];
@@ -3906,6 +3824,13 @@ class BarretenbergApi {
3906
3824
  const out = result.map(((r, i) => outTypes[i].fromBuffer(r)));
3907
3825
  return out[0];
3908
3826
  }
3827
+ async acirVerifyUltraKeccakZKHonk(proofBuf, vkBuf) {
3828
+ const inArgs = [ proofBuf, vkBuf ].map(serializeBufferable);
3829
+ const outTypes = [ BoolDeserializer() ];
3830
+ const result = await this.wasm.callWasmExport("acir_verify_ultra_keccak_zk_honk", inArgs, outTypes.map((t => t.SIZE_IN_BYTES)));
3831
+ const out = result.map(((r, i) => outTypes[i].fromBuffer(r)));
3832
+ return out[0];
3833
+ }
3909
3834
  async acirVerifyUltraStarknetHonk(proofBuf, vkBuf) {
3910
3835
  const inArgs = [ proofBuf, vkBuf ].map(serializeBufferable);
3911
3836
  const outTypes = [ BoolDeserializer() ];
@@ -3927,6 +3852,13 @@ class BarretenbergApi {
3927
3852
  const out = result.map(((r, i) => outTypes[i].fromBuffer(r)));
3928
3853
  return out[0];
3929
3854
  }
3855
+ async acirWriteVkUltraKeccakZKHonk(acirVec) {
3856
+ const inArgs = [ acirVec ].map(serializeBufferable);
3857
+ const outTypes = [ BufferDeserializer() ];
3858
+ const result = await this.wasm.callWasmExport("acir_write_vk_ultra_keccak_zk_honk", inArgs, outTypes.map((t => t.SIZE_IN_BYTES)));
3859
+ const out = result.map(((r, i) => outTypes[i].fromBuffer(r)));
3860
+ return out[0];
3861
+ }
3930
3862
  async acirWriteVkUltraStarknetHonk(acirVec) {
3931
3863
  const inArgs = [ acirVec ].map(serializeBufferable);
3932
3864
  const outTypes = [ BufferDeserializer() ];
@@ -4066,13 +3998,6 @@ class BarretenbergApiSync {
4066
3998
  const out = result.map(((r, i) => outTypes[i].fromBuffer(r)));
4067
3999
  return;
4068
4000
  }
4069
- examplesSimpleCreateAndVerifyProof() {
4070
- const inArgs = [].map(serializeBufferable);
4071
- const outTypes = [ BoolDeserializer() ];
4072
- const result = this.wasm.callWasmExport("examples_simple_create_and_verify_proof", inArgs, outTypes.map((t => t.SIZE_IN_BYTES)));
4073
- const out = result.map(((r, i) => outTypes[i].fromBuffer(r)));
4074
- return out[0];
4075
- }
4076
4001
  testThreads(threads, iterations) {
4077
4002
  const inArgs = [ threads, iterations ].map(serializeBufferable);
4078
4003
  const outTypes = [ NumberDeserializer() ];
@@ -4094,34 +4019,6 @@ class BarretenbergApiSync {
4094
4019
  const out = result.map(((r, i) => outTypes[i].fromBuffer(r)));
4095
4020
  return out;
4096
4021
  }
4097
- acirNewAcirComposer(sizeHint) {
4098
- const inArgs = [ sizeHint ].map(serializeBufferable);
4099
- const outTypes = [ Ptr ];
4100
- const result = this.wasm.callWasmExport("acir_new_acir_composer", inArgs, outTypes.map((t => t.SIZE_IN_BYTES)));
4101
- const out = result.map(((r, i) => outTypes[i].fromBuffer(r)));
4102
- return out[0];
4103
- }
4104
- acirDeleteAcirComposer(acirComposerPtr) {
4105
- const inArgs = [ acirComposerPtr ].map(serializeBufferable);
4106
- const outTypes = [];
4107
- const result = this.wasm.callWasmExport("acir_delete_acir_composer", inArgs, outTypes.map((t => t.SIZE_IN_BYTES)));
4108
- const out = result.map(((r, i) => outTypes[i].fromBuffer(r)));
4109
- return;
4110
- }
4111
- acirInitProvingKey(acirComposerPtr, constraintSystemBuf, recursive) {
4112
- const inArgs = [ acirComposerPtr, constraintSystemBuf, recursive ].map(serializeBufferable);
4113
- const outTypes = [];
4114
- const result = this.wasm.callWasmExport("acir_init_proving_key", inArgs, outTypes.map((t => t.SIZE_IN_BYTES)));
4115
- const out = result.map(((r, i) => outTypes[i].fromBuffer(r)));
4116
- return;
4117
- }
4118
- acirCreateProof(acirComposerPtr, constraintSystemBuf, recursive, witnessBuf) {
4119
- const inArgs = [ acirComposerPtr, constraintSystemBuf, recursive, witnessBuf ].map(serializeBufferable);
4120
- const outTypes = [ BufferDeserializer() ];
4121
- const result = this.wasm.callWasmExport("acir_create_proof", inArgs, outTypes.map((t => t.SIZE_IN_BYTES)));
4122
- const out = result.map(((r, i) => outTypes[i].fromBuffer(r)));
4123
- return out[0];
4124
- }
4125
4022
  acirProveAndVerifyUltraHonk(constraintSystemBuf, witnessBuf) {
4126
4023
  const inArgs = [ constraintSystemBuf, witnessBuf ].map(serializeBufferable);
4127
4024
  const outTypes = [ BoolDeserializer() ];
@@ -4227,6 +4124,20 @@ class BarretenbergApiSync {
4227
4124
  const out = result.map(((r, i) => outTypes[i].fromBuffer(r)));
4228
4125
  return out[0];
4229
4126
  }
4127
+ acirProveUltraKeccakZKHonk(acirVec, witnessVec) {
4128
+ const inArgs = [ acirVec, witnessVec ].map(serializeBufferable);
4129
+ const outTypes = [ BufferDeserializer() ];
4130
+ const result = this.wasm.callWasmExport("acir_prove_ultra_keccak_zk_honk", inArgs, outTypes.map((t => t.SIZE_IN_BYTES)));
4131
+ const out = result.map(((r, i) => outTypes[i].fromBuffer(r)));
4132
+ return out[0];
4133
+ }
4134
+ acirProveUltraKeccakZkHonk(acirVec, witnessVec) {
4135
+ const inArgs = [ acirVec, witnessVec ].map(serializeBufferable);
4136
+ const outTypes = [ BufferDeserializer() ];
4137
+ const result = this.wasm.callWasmExport("acir_prove_ultra_keccak_zk_honk", inArgs, outTypes.map((t => t.SIZE_IN_BYTES)));
4138
+ const out = result.map(((r, i) => outTypes[i].fromBuffer(r)));
4139
+ return out[0];
4140
+ }
4230
4141
  acirVerifyUltraHonk(proofBuf, vkBuf) {
4231
4142
  const inArgs = [ proofBuf, vkBuf ].map(serializeBufferable);
4232
4143
  const outTypes = [ BoolDeserializer() ];
@@ -4234,10 +4145,10 @@ class BarretenbergApiSync {
4234
4145
  const out = result.map(((r, i) => outTypes[i].fromBuffer(r)));
4235
4146
  return out[0];
4236
4147
  }
4237
- acirVerifyUltraKeccakHonk(proofBuf, vkBuf) {
4148
+ acirVerifyUltraKeccakZKHonk(proofBuf, vkBuf) {
4238
4149
  const inArgs = [ proofBuf, vkBuf ].map(serializeBufferable);
4239
4150
  const outTypes = [ BoolDeserializer() ];
4240
- const result = this.wasm.callWasmExport("acir_verify_ultra_keccak_honk", inArgs, outTypes.map((t => t.SIZE_IN_BYTES)));
4151
+ const result = this.wasm.callWasmExport("acir_verify_ultra_keccak_zk_honk", inArgs, outTypes.map((t => t.SIZE_IN_BYTES)));
4241
4152
  const out = result.map(((r, i) => outTypes[i].fromBuffer(r)));
4242
4153
  return out[0];
4243
4154
  }
@@ -4255,6 +4166,13 @@ class BarretenbergApiSync {
4255
4166
  const out = result.map(((r, i) => outTypes[i].fromBuffer(r)));
4256
4167
  return out[0];
4257
4168
  }
4169
+ acirWriteVkUltraKeccakZKHonk(acirVec) {
4170
+ const inArgs = [ acirVec ].map(serializeBufferable);
4171
+ const outTypes = [ BufferDeserializer() ];
4172
+ const result = this.wasm.callWasmExport("acir_write_vk_ultra_keccak_zk_honk", inArgs, outTypes.map((t => t.SIZE_IN_BYTES)));
4173
+ const out = result.map(((r, i) => outTypes[i].fromBuffer(r)));
4174
+ return out[0];
4175
+ }
4258
4176
  acirProofAsFieldsUltraHonk(proofBuf) {
4259
4177
  const inArgs = [ proofBuf ].map(serializeBufferable);
4260
4178
  const outTypes = [ VectorDeserializer(Fr) ];
@@ -8803,7 +8721,7 @@ async function getAvailableThreads(logger) {
8803
8721
  return navigator.hardwareConcurrency;
8804
8722
  } else {
8805
8723
  try {
8806
- const os = await __webpack_require__.e(733).then(__webpack_require__.t.bind(__webpack_require__, 733, 23));
8724
+ const os = await Promise.resolve().then(__webpack_require__.t.bind(__webpack_require__, 733, 23));
8807
8725
  return os.cpus().length;
8808
8726
  } catch (e) {
8809
8727
  logger(`Could not detect environment to query number of threads. Falling back to one thread. Error: ${e.message ?? e}`);
@@ -8812,7 +8730,7 @@ async function getAvailableThreads(logger) {
8812
8730
  }
8813
8731
  }
8814
8732
 
8815
- const AGGREGATION_OBJECT_LENGTH = 16;
8733
+ const PAIRING_POINTS_SIZE = 16;
8816
8734
 
8817
8735
  const fieldByteSize = 32;
8818
8736
 
@@ -8830,12 +8748,6 @@ function reconstructHonkProof(publicInputs, proof) {
8830
8748
  return proofWithPublicInputs;
8831
8749
  }
8832
8750
 
8833
- function reconstructUltraPlonkProof(proofData) {
8834
- const publicInputsConcatenated = flattenFieldsAsArray(proofData.publicInputs);
8835
- const proofWithPublicInputs = Uint8Array.from([ ...publicInputsConcatenated, ...proofData.proof ]);
8836
- return proofWithPublicInputs;
8837
- }
8838
-
8839
8751
  function deflattenFields(flattenedFields) {
8840
8752
  const publicInputSize = 32;
8841
8753
  const chunkedFlattenedPublicInputs = [];
@@ -8898,16 +8810,9 @@ class BarretenbergVerifier {
8898
8810
  if (!this.api) {
8899
8811
  const api = await Barretenberg.new(this.options);
8900
8812
  await api.initSRSForCircuitSize(0);
8901
- this.acirComposer = await api.acirNewAcirComposer(0);
8902
8813
  this.api = api;
8903
8814
  }
8904
8815
  }
8905
- async verifyUltraPlonkProof(proofData, verificationKey) {
8906
- await this.instantiate();
8907
- await this.api.acirLoadVerificationKey(this.acirComposer, new RawBuffer(verificationKey));
8908
- const proof = reconstructUltraPlonkProof(proofData);
8909
- return await this.api.acirVerifyProof(this.acirComposer, proof);
8910
- }
8911
8816
  async verifyUltraHonkProof(proofData, verificationKey) {
8912
8817
  await this.instantiate();
8913
8818
  const proof = reconstructHonkProof(flattenFieldsAsArray(proofData.publicInputs), proofData.proof);
@@ -13146,7 +13051,6 @@ function parseBigEndianU32Array(buffer) {
13146
13051
  const dv = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);
13147
13052
  let offset = 0;
13148
13053
  const count = buffer.byteLength >>> 2;
13149
- console.log(buffer);
13150
13054
  const out = new Array(count);
13151
13055
  for (let i = 0; i < count; i++) {
13152
13056
  out[i] = dv.getUint32(offset, false);
@@ -13155,76 +13059,6 @@ function parseBigEndianU32Array(buffer) {
13155
13059
  return out;
13156
13060
  }
13157
13061
 
13158
- class UltraPlonkBackend {
13159
- constructor(acirBytecode, backendOptions = {
13160
- threads: 1
13161
- }, circuitOptions = {
13162
- recursive: false
13163
- }) {
13164
- this.backendOptions = backendOptions;
13165
- this.circuitOptions = circuitOptions;
13166
- this.acirUncompressedBytecode = acirToUint8Array(acirBytecode);
13167
- }
13168
- async instantiate() {
13169
- if (!this.api) {
13170
- const api = await Barretenberg.new(this.backendOptions);
13171
- const honkRecursion = false;
13172
- const [_total, subgroupSize] = await api.acirGetCircuitSizes(this.acirUncompressedBytecode, this.circuitOptions.recursive, honkRecursion);
13173
- await api.initSRSForCircuitSize(subgroupSize);
13174
- this.acirComposer = await api.acirNewAcirComposer(subgroupSize);
13175
- await api.acirInitProvingKey(this.acirComposer, this.acirUncompressedBytecode, this.circuitOptions.recursive);
13176
- this.api = api;
13177
- }
13178
- }
13179
- async generateProof(compressedWitness) {
13180
- await this.instantiate();
13181
- const proofWithPublicInputs = await this.api.acirCreateProof(this.acirComposer, this.acirUncompressedBytecode, this.circuitOptions.recursive, decompressSync(compressedWitness));
13182
- const numBytesInProofWithoutPublicInputs = 2144;
13183
- const splitIndex = proofWithPublicInputs.length - numBytesInProofWithoutPublicInputs;
13184
- const publicInputsConcatenated = proofWithPublicInputs.slice(0, splitIndex);
13185
- const proof = proofWithPublicInputs.slice(splitIndex);
13186
- const publicInputs = deflattenFields(publicInputsConcatenated);
13187
- return {
13188
- proof,
13189
- publicInputs
13190
- };
13191
- }
13192
- async generateRecursiveProofArtifacts(proofData, numOfPublicInputs = 0) {
13193
- await this.instantiate();
13194
- const proof = reconstructUltraPlonkProof(proofData);
13195
- const proofAsFields = (await this.api.acirSerializeProofIntoFields(this.acirComposer, proof, numOfPublicInputs)).slice(numOfPublicInputs);
13196
- await this.api.acirInitVerificationKey(this.acirComposer);
13197
- const vk = await this.api.acirSerializeVerificationKeyIntoFields(this.acirComposer);
13198
- return {
13199
- proofAsFields: proofAsFields.map((p => p.toString())),
13200
- vkAsFields: vk[0].map((vk => vk.toString())),
13201
- vkHash: vk[1].toString()
13202
- };
13203
- }
13204
- async verifyProof(proofData) {
13205
- await this.instantiate();
13206
- await this.api.acirInitVerificationKey(this.acirComposer);
13207
- const proof = reconstructUltraPlonkProof(proofData);
13208
- return await this.api.acirVerifyProof(this.acirComposer, proof);
13209
- }
13210
- async getVerificationKey() {
13211
- await this.instantiate();
13212
- await this.api.acirInitVerificationKey(this.acirComposer);
13213
- return await this.api.acirGetVerificationKey(this.acirComposer);
13214
- }
13215
- async getSolidityVerifier() {
13216
- await this.instantiate();
13217
- await this.api.acirInitVerificationKey(this.acirComposer);
13218
- return await this.api.acirGetSolidityVerifier(this.acirComposer);
13219
- }
13220
- async destroy() {
13221
- if (!this.api) {
13222
- return;
13223
- }
13224
- await this.api.destroy();
13225
- }
13226
- }
13227
-
13228
13062
  class UltraHonkBackend {
13229
13063
  constructor(acirBytecode, backendOptions = {
13230
13064
  threads: 1
@@ -13245,13 +13079,13 @@ class UltraHonkBackend {
13245
13079
  }
13246
13080
  async generateProof(compressedWitness, options) {
13247
13081
  await this.instantiate();
13248
- const proveUltraHonk = options?.keccak ? this.api.acirProveUltraKeccakHonk.bind(this.api) : options?.starknet ? this.api.acirProveUltraStarknetHonk.bind(this.api) : this.api.acirProveUltraHonk.bind(this.api);
13082
+ const proveUltraHonk = options?.keccak ? this.api.acirProveUltraKeccakHonk.bind(this.api) : options?.keccakZK ? this.api.acirProveUltraKeccakZKHonk.bind(this.api) : options?.starknet ? this.api.acirProveUltraStarknetHonk.bind(this.api) : this.api.acirProveUltraHonk.bind(this.api);
13249
13083
  const proofWithPublicInputs = await proveUltraHonk(this.acirUncompressedBytecode, decompressSync(compressedWitness));
13250
- const writeVKUltraHonk = options?.keccak ? this.api.acirWriteVkUltraKeccakHonk.bind(this.api) : options?.starknet ? this.api.acirWriteVkUltraStarknetHonk.bind(this.api) : this.api.acirWriteVkUltraHonk.bind(this.api);
13084
+ const writeVKUltraHonk = options?.keccak ? this.api.acirWriteVkUltraKeccakHonk.bind(this.api) : options?.keccakZK ? this.api.acirWriteVkUltraKeccakZKHonk.bind(this.api) : options?.starknet ? this.api.acirWriteVkUltraStarknetHonk.bind(this.api) : this.api.acirWriteVkUltraHonk.bind(this.api);
13251
13085
  const vk = await writeVKUltraHonk(this.acirUncompressedBytecode);
13252
13086
  const vkAsFields = await this.api.acirVkAsFieldsUltraHonk(new RawBuffer(vk));
13253
13087
  const publicInputsSizeIndex = 1;
13254
- const numPublicInputs = Number(vkAsFields[publicInputsSizeIndex].toString()) - AGGREGATION_OBJECT_LENGTH;
13088
+ const numPublicInputs = Number(vkAsFields[publicInputsSizeIndex].toString()) - PAIRING_POINTS_SIZE;
13255
13089
  const {proof, publicInputs: publicInputsBytes} = splitHonkProof(proofWithPublicInputs, numPublicInputs);
13256
13090
  const publicInputs = deflattenFields(publicInputsBytes);
13257
13091
  return {
@@ -13262,14 +13096,14 @@ class UltraHonkBackend {
13262
13096
  async verifyProof(proofData, options) {
13263
13097
  await this.instantiate();
13264
13098
  const proof = reconstructHonkProof(flattenFieldsAsArray(proofData.publicInputs), proofData.proof);
13265
- const writeVkUltraHonk = options?.keccak ? this.api.acirWriteVkUltraKeccakHonk.bind(this.api) : options?.starknet ? this.api.acirWriteVkUltraStarknetHonk.bind(this.api) : this.api.acirWriteVkUltraHonk.bind(this.api);
13266
- const verifyUltraHonk = options?.keccak ? this.api.acirVerifyUltraKeccakHonk.bind(this.api) : options?.starknet ? this.api.acirVerifyUltraStarknetHonk.bind(this.api) : this.api.acirVerifyUltraHonk.bind(this.api);
13099
+ const writeVkUltraHonk = options?.keccak ? this.api.acirWriteVkUltraKeccakHonk.bind(this.api) : options?.keccakZK ? this.api.acirWriteVkUltraKeccakZKHonk.bind(this.api) : options?.starknet ? this.api.acirWriteVkUltraStarknetHonk.bind(this.api) : this.api.acirWriteVkUltraHonk.bind(this.api);
13100
+ const verifyUltraHonk = options?.keccak ? this.api.acirVerifyUltraKeccakHonk.bind(this.api) : options?.keccakZK ? this.api.acirVerifyUltraKeccakZKHonk.bind(this.api) : options?.starknet ? this.api.acirVerifyUltraStarknetHonk.bind(this.api) : this.api.acirVerifyUltraHonk.bind(this.api);
13267
13101
  const vkBuf = await writeVkUltraHonk(this.acirUncompressedBytecode);
13268
13102
  return await verifyUltraHonk(proof, new RawBuffer(vkBuf));
13269
13103
  }
13270
13104
  async getVerificationKey(options) {
13271
13105
  await this.instantiate();
13272
- return options?.keccak ? await this.api.acirWriteVkUltraKeccakHonk(this.acirUncompressedBytecode) : options?.starknet ? await this.api.acirWriteVkUltraStarknetHonk(this.acirUncompressedBytecode) : await this.api.acirWriteVkUltraHonk(this.acirUncompressedBytecode);
13106
+ return options?.keccak ? await this.api.acirWriteVkUltraKeccakHonk(this.acirUncompressedBytecode) : options?.keccakZK ? await this.api.acirWriteVkUltraKeccakZKHonk(this.acirUncompressedBytecode) : options?.starknet ? await this.api.acirWriteVkUltraStarknetHonk(this.acirUncompressedBytecode) : await this.api.acirWriteVkUltraHonk(this.acirUncompressedBytecode);
13273
13107
  }
13274
13108
  async getSolidityVerifier(vk) {
13275
13109
  await this.instantiate();
@@ -13416,7 +13250,7 @@ class Barretenberg extends BarretenbergApi {
13416
13250
  }
13417
13251
  }
13418
13252
 
13419
- let barrentenbergSyncSingletonPromise;
13253
+ let barretenbergSyncSingletonPromise;
13420
13254
 
13421
13255
  let barretenbergSyncSingleton;
13422
13256
 
@@ -13431,10 +13265,10 @@ class BarretenbergSync extends BarretenbergApiSync {
13431
13265
  return new BarretenbergSync(wasm);
13432
13266
  }
13433
13267
  static async initSingleton(wasmPath, logger = browser_default()("bb.js:bb_wasm_sync")) {
13434
- if (!barrentenbergSyncSingletonPromise) {
13435
- barrentenbergSyncSingletonPromise = BarretenbergSync.new(wasmPath, logger);
13268
+ if (!barretenbergSyncSingletonPromise) {
13269
+ barretenbergSyncSingletonPromise = BarretenbergSync.new(wasmPath, logger);
13436
13270
  }
13437
- barretenbergSyncSingleton = await barrentenbergSyncSingletonPromise;
13271
+ barretenbergSyncSingleton = await barretenbergSyncSingletonPromise;
13438
13272
  return barretenbergSyncSingleton;
13439
13273
  }
13440
13274
  static getSingleton() {
@@ -13448,4 +13282,4 @@ class BarretenbergSync extends BarretenbergApiSync {
13448
13282
  }
13449
13283
  }
13450
13284
 
13451
- export { AztecClientBackend, Barretenberg, BarretenbergSync, BarretenbergVerifier, CachedNetCrs as Crs, Fr, CachedNetGrumpkinCrs as GrumpkinCrs, RawBuffer, UltraHonkBackend, UltraPlonkBackend, deflattenFields, reconstructHonkProof, splitHonkProof };
13285
+ export { AztecClientBackend, Barretenberg, BarretenbergSync, BarretenbergVerifier, CachedNetCrs as Crs, Fr, CachedNetGrumpkinCrs as GrumpkinCrs, RawBuffer, UltraHonkBackend, deflattenFields, reconstructHonkProof, splitHonkProof };