@aztec/bb.js 0.0.1-commit.2ed92850 → 0.0.1-commit.43597cc1

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 (44) hide show
  1. package/build/amd64-linux/bb +0 -0
  2. package/build/amd64-linux/nodejs_module.node +0 -0
  3. package/build/amd64-macos/bb +0 -0
  4. package/build/amd64-macos/nodejs_module.node +0 -0
  5. package/build/arm64-linux/bb +0 -0
  6. package/build/arm64-linux/nodejs_module.node +0 -0
  7. package/build/arm64-macos/bb +0 -0
  8. package/build/arm64-macos/nodejs_module.node +0 -0
  9. package/dest/browser/barretenberg/backend.d.ts +3 -2
  10. package/dest/browser/barretenberg/backend.d.ts.map +1 -1
  11. package/dest/browser/barretenberg/backend.js +11 -8
  12. package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg-threads.js +1 -1
  13. package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg.js +1 -1
  14. package/dest/browser/crs/net_crs.d.ts +6 -1
  15. package/dest/browser/crs/net_crs.d.ts.map +1 -1
  16. package/dest/browser/crs/net_crs.js +30 -7
  17. package/dest/node/barretenberg/backend.d.ts +3 -2
  18. package/dest/node/barretenberg/backend.d.ts.map +1 -1
  19. package/dest/node/barretenberg/backend.js +11 -8
  20. package/dest/node/barretenberg_wasm/barretenberg-threads.wasm.gz +0 -0
  21. package/dest/node/crs/net_crs.d.ts +6 -1
  22. package/dest/node/crs/net_crs.d.ts.map +1 -1
  23. package/dest/node/crs/net_crs.js +30 -7
  24. package/dest/node/crs/net_crs.test.d.ts +2 -0
  25. package/dest/node/crs/net_crs.test.d.ts.map +1 -0
  26. package/dest/node/crs/net_crs.test.js +39 -0
  27. package/dest/node-cjs/barretenberg/backend.d.ts +3 -2
  28. package/dest/node-cjs/barretenberg/backend.d.ts.map +1 -1
  29. package/dest/node-cjs/barretenberg/backend.js +11 -8
  30. package/dest/node-cjs/barretenberg_wasm/barretenberg-threads.wasm.gz +0 -0
  31. package/dest/node-cjs/crs/net_crs.d.ts +6 -1
  32. package/dest/node-cjs/crs/net_crs.d.ts.map +1 -1
  33. package/dest/node-cjs/crs/net_crs.js +31 -7
  34. package/dest/node-cjs/crs/net_crs.test.d.ts +2 -0
  35. package/dest/node-cjs/crs/net_crs.test.d.ts.map +1 -0
  36. package/dest/node-cjs/crs/net_crs.test.js +41 -0
  37. package/package.json +1 -1
  38. package/src/barretenberg/backend.ts +8 -6
  39. package/src/cbind/generated/api_types.ts +3050 -0
  40. package/src/cbind/generated/async.ts +696 -0
  41. package/src/cbind/generated/curve_constants.ts +53 -0
  42. package/src/cbind/generated/sync.ts +644 -0
  43. package/src/crs/net_crs.test.ts +47 -0
  44. package/src/crs/net_crs.ts +45 -14
@@ -1,3 +1,8 @@
1
+ /**
2
+ * Fetches data from primary URL, falling back to secondary on failure
3
+ * @internal Exported for testing
4
+ */
5
+ export declare function fetchWithFallback(primaryUrl: string, fallbackUrl: string, options: RequestInit): Promise<Response>;
1
6
  /**
2
7
  * Downloader for CRS from the web or local.
3
8
  */
@@ -67,4 +72,4 @@ export declare class NetGrumpkinCrs {
67
72
  getG1Data(): Uint8Array;
68
73
  private fetchG1Data;
69
74
  }
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0X2Nycy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2Nycy9uZXRfY3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBOztHQUVHO0FBQ0gscUJBQWEsTUFBTTthQVFDLFNBQVMsRUFBRSxNQUFNO0lBUG5DLE9BQU8sQ0FBQyxJQUFJLENBQWM7SUFDMUIsT0FBTyxDQUFDLE1BQU0sQ0FBYztJQUU1QjtJQUNFOztPQUVHO0lBQ2EsU0FBUyxFQUFFLE1BQU0sRUFDL0I7SUFFSjs7T0FFRztJQUNHLElBQUksa0JBR1Q7SUFFRDs7T0FFRztJQUNHLFlBQVksSUFBSSxPQUFPLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBR3hEO0lBRUQ7O09BRUc7SUFDRyxZQUFZLElBQUksT0FBTyxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUd4RDtJQUVLLGNBQWMscUNBR25CO0lBRUQ7O09BRUc7SUFDRyxjQUFjLHFDQUduQjtJQUVEOzs7T0FHRztJQUNILFNBQVMsSUFBSSxVQUFVLENBRXRCO0lBRUQ7OztPQUdHO0lBQ0gsU0FBUyxJQUFJLFVBQVUsQ0FFdEI7WUFLYSxXQUFXO1lBc0JYLFdBQVc7Q0FTMUI7QUFFRDs7R0FFRztBQUNILHFCQUFhLGNBQWM7YUFPUCxTQUFTLEVBQUUsTUFBTTtJQU5uQyxPQUFPLENBQUMsSUFBSSxDQUFjO0lBRTFCO0lBQ0U7O09BRUc7SUFDYSxTQUFTLEVBQUUsTUFBTSxFQUMvQjtJQUVKOztPQUVHO0lBQ0csSUFBSSxrQkFFVDtJQUVLLGNBQWMscUNBR25CO0lBRUQ7O09BRUc7SUFDRyxZQUFZLElBQUksT0FBTyxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUd4RDtJQUVEOzs7T0FHRztJQUNILFNBQVMsSUFBSSxVQUFVLENBRXRCO1lBS2EsV0FBVztDQWUxQiJ9
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0X2Nycy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2Nycy9uZXRfY3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BOzs7R0FHRztBQUNILHdCQUFzQixpQkFBaUIsQ0FDckMsVUFBVSxFQUFFLE1BQU0sRUFDbEIsV0FBVyxFQUFFLE1BQU0sRUFDbkIsT0FBTyxFQUFFLFdBQVcsR0FDbkIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQVVuQjtBQUVEOztHQUVHO0FBQ0gscUJBQWEsTUFBTTthQVFDLFNBQVMsRUFBRSxNQUFNO0lBUG5DLE9BQU8sQ0FBQyxJQUFJLENBQWM7SUFDMUIsT0FBTyxDQUFDLE1BQU0sQ0FBYztJQUU1QjtJQUNFOztPQUVHO0lBQ2EsU0FBUyxFQUFFLE1BQU0sRUFDL0I7SUFFSjs7T0FFRztJQUNHLElBQUksa0JBR1Q7SUFFRDs7T0FFRztJQUNHLFlBQVksSUFBSSxPQUFPLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBR3hEO0lBRUQ7O09BRUc7SUFDRyxZQUFZLElBQUksT0FBTyxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUd4RDtJQUVLLGNBQWMscUNBR25CO0lBRUQ7O09BRUc7SUFDRyxjQUFjLHFDQUduQjtJQUVEOzs7T0FHRztJQUNILFNBQVMsSUFBSSxVQUFVLENBRXRCO0lBRUQ7OztPQUdHO0lBQ0gsU0FBUyxJQUFJLFVBQVUsQ0FFdEI7WUFLYSxXQUFXO1lBc0JYLFdBQVc7Q0FTMUI7QUFFRDs7R0FFRztBQUNILHFCQUFhLGNBQWM7YUFPUCxTQUFTLEVBQUUsTUFBTTtJQU5uQyxPQUFPLENBQUMsSUFBSSxDQUFjO0lBRTFCO0lBQ0U7O09BRUc7SUFDYSxTQUFTLEVBQUUsTUFBTSxFQUMvQjtJQUVKOztPQUVHO0lBQ0csSUFBSSxrQkFFVDtJQUVLLGNBQWMscUNBR25CO0lBRUQ7O09BRUc7SUFDRyxZQUFZLElBQUksT0FBTyxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUd4RDtJQUVEOzs7T0FHRztJQUNILFNBQVMsSUFBSSxVQUFVLENBRXRCO1lBS2EsV0FBVztDQW9CMUIifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"net_crs.d.ts","sourceRoot":"","sources":["../../../src/crs/net_crs.ts"],"names":[],"mappings":"AACA;;GAEG;AACH,qBAAa,MAAM;aAQC,SAAS,EAAE,MAAM;IAPnC,OAAO,CAAC,IAAI,CAAc;IAC1B,OAAO,CAAC,MAAM,CAAc;IAE5B;IACE;;OAEG;IACa,SAAS,EAAE,MAAM,EAC/B;IAEJ;;OAEG;IACG,IAAI,kBAGT;IAED;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAGxD;IAED;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAGxD;IAEK,cAAc,qCAGnB;IAED;;OAEG;IACG,cAAc,qCAGnB;IAED;;;OAGG;IACH,SAAS,IAAI,UAAU,CAEtB;IAED;;;OAGG;IACH,SAAS,IAAI,UAAU,CAEtB;YAKa,WAAW;YAsBX,WAAW;CAS1B;AAED;;GAEG;AACH,qBAAa,cAAc;aAOP,SAAS,EAAE,MAAM;IANnC,OAAO,CAAC,IAAI,CAAc;IAE1B;IACE;;OAEG;IACa,SAAS,EAAE,MAAM,EAC/B;IAEJ;;OAEG;IACG,IAAI,kBAET;IAEK,cAAc,qCAGnB;IAED;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAGxD;IAED;;;OAGG;IACH,SAAS,IAAI,UAAU,CAEtB;YAKa,WAAW;CAe1B"}
1
+ {"version":3,"file":"net_crs.d.ts","sourceRoot":"","sources":["../../../src/crs/net_crs.ts"],"names":[],"mappings":"AAOA;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,QAAQ,CAAC,CAUnB;AAED;;GAEG;AACH,qBAAa,MAAM;aAQC,SAAS,EAAE,MAAM;IAPnC,OAAO,CAAC,IAAI,CAAc;IAC1B,OAAO,CAAC,MAAM,CAAc;IAE5B;IACE;;OAEG;IACa,SAAS,EAAE,MAAM,EAC/B;IAEJ;;OAEG;IACG,IAAI,kBAGT;IAED;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAGxD;IAED;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAGxD;IAEK,cAAc,qCAGnB;IAED;;OAEG;IACG,cAAc,qCAGnB;IAED;;;OAGG;IACH,SAAS,IAAI,UAAU,CAEtB;IAED;;;OAGG;IACH,SAAS,IAAI,UAAU,CAEtB;YAKa,WAAW;YAsBX,WAAW;CAS1B;AAED;;GAEG;AACH,qBAAa,cAAc;aAOP,SAAS,EAAE,MAAM;IANnC,OAAO,CAAC,IAAI,CAAc;IAE1B;IACE;;OAEG;IACa,SAAS,EAAE,MAAM,EAC/B;IAEJ;;OAEG;IACG,IAAI,kBAET;IAEK,cAAc,qCAGnB;IAED;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAGxD;IAED;;;OAGG;IACH,SAAS,IAAI,UAAU,CAEtB;YAKa,WAAW;CAoB1B"}
@@ -1,4 +1,24 @@
1
1
  import { retry, makeBackoff } from '../retry/index.js';
2
+ // Primary CRS host (Cloudflare R2)
3
+ const CRS_PRIMARY_HOST = 'https://crs.aztec-cdn.foundation';
4
+ // Fallback CRS host (AWS S3)
5
+ const CRS_FALLBACK_HOST = 'https://crs.aztec-labs.com';
6
+ /**
7
+ * Fetches data from primary URL, falling back to secondary on failure
8
+ * @internal Exported for testing
9
+ */
10
+ export async function fetchWithFallback(primaryUrl, fallbackUrl, options) {
11
+ try {
12
+ const response = await fetch(primaryUrl, options);
13
+ if (response.ok || response.status === 206) {
14
+ return response;
15
+ }
16
+ throw new Error(`HTTP ${response.status}`);
17
+ }
18
+ catch {
19
+ return await fetch(fallbackUrl, options);
20
+ }
21
+ }
2
22
  /**
3
23
  * Downloader for CRS from the web or local.
4
24
  */
@@ -68,20 +88,22 @@ export class NetCrs {
68
88
  return new Response(new Uint8Array([]));
69
89
  }
70
90
  const g1End = this.numPoints * 64 - 1;
71
- return await retry(() => fetch('https://crs.aztec.network/g1.dat', {
91
+ const options = {
72
92
  headers: {
73
93
  Range: `bytes=0-${g1End}`,
74
94
  },
75
95
  cache: 'force-cache',
76
- }), makeBackoff([5, 5, 5]));
96
+ };
97
+ return await retry(() => fetchWithFallback(`${CRS_PRIMARY_HOST}/g1.dat`, `${CRS_FALLBACK_HOST}/g1.dat`, options), makeBackoff([5, 5, 5]));
77
98
  }
78
99
  /**
79
100
  * Fetches the appropriate range of points from a remote source
80
101
  */
81
102
  async fetchG2Data() {
82
- return await retry(() => fetch('https://crs.aztec.network/g2.dat', {
103
+ const options = {
83
104
  cache: 'force-cache',
84
- }), makeBackoff([5, 5, 5]));
105
+ };
106
+ return await retry(() => fetchWithFallback(`${CRS_PRIMARY_HOST}/g2.dat`, `${CRS_FALLBACK_HOST}/g2.dat`, options), makeBackoff([5, 5, 5]));
85
107
  }
86
108
  }
87
109
  /**
@@ -130,12 +152,13 @@ export class NetGrumpkinCrs {
130
152
  return new Response(new Uint8Array([]));
131
153
  }
132
154
  const g1End = this.numPoints * 64 - 1;
133
- return await fetch('https://crs.aztec.network/grumpkin_g1.dat', {
155
+ const options = {
134
156
  headers: {
135
157
  Range: `bytes=0-${g1End}`,
136
158
  },
137
159
  cache: 'force-cache',
138
- });
160
+ };
161
+ return await fetchWithFallback(`${CRS_PRIMARY_HOST}/grumpkin_g1.dat`, `${CRS_FALLBACK_HOST}/grumpkin_g1.dat`, options);
139
162
  }
140
163
  }
141
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0X2Nycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jcnMvbmV0X2Nycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3ZEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLE1BQU07SUFRQyxTQUFTO0lBUG5CLElBQUksQ0FBYztJQUNsQixNQUFNLENBQWM7SUFFNUI7SUFDRTs7T0FFRztJQUNhLFNBQWlCLEVBQ2pDO3lCQURnQixTQUFTO0lBQ3hCLENBQUM7SUFFSjs7T0FFRztJQUNILEtBQUssQ0FBQyxJQUFJLEdBQUc7UUFDWCxNQUFNLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUM1QixNQUFNLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUFBLENBQzdCO0lBRUQ7O09BRUc7SUFDSCxLQUFLLENBQUMsWUFBWSxHQUF3QztRQUN4RCxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUMxQyxPQUFPLFFBQVEsQ0FBQyxJQUFLLENBQUM7SUFBQSxDQUN2QjtJQUVEOztPQUVHO0lBQ0gsS0FBSyxDQUFDLFlBQVksR0FBd0M7UUFDeEQsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDMUMsT0FBTyxRQUFRLENBQUMsSUFBSyxDQUFDO0lBQUEsQ0FDdkI7SUFFRCxLQUFLLENBQUMsY0FBYyxHQUFHO1FBQ3JCLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksVUFBVSxDQUFDLE1BQU0sUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUFBLENBQ25FO0lBRUQ7O09BRUc7SUFDSCxLQUFLLENBQUMsY0FBYyxHQUFHO1FBQ3JCLE1BQU0s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
164
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0X2Nycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jcnMvbmV0X2Nycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXZELG1DQUFtQztBQUNuQyxNQUFNLGdCQUFnQixHQUFHLGtDQUFrQyxDQUFDO0FBQzVELDZCQUE2QjtBQUM3QixNQUFNLGlCQUFpQixHQUFHLDRCQUE0QixDQUFDO0FBRXZEOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsaUJBQWlCLENBQ3JDLFVBQWtCLEVBQ2xCLFdBQW1CLEVBQ25CLE9BQW9CLEVBQ0Q7SUFDbkIsSUFBSSxDQUFDO1FBQ0gsTUFBTSxRQUFRLEdBQUcsTUFBTSxLQUFLLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ2xELElBQUksUUFBUSxDQUFDLEVBQUUsSUFBSSxRQUFRLENBQUMsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDO1lBQzNDLE9BQU8sUUFBUSxDQUFDO1FBQ2xCLENBQUM7UUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLFFBQVEsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUFDLE1BQU0sQ0FBQztRQUNQLE9BQU8sTUFBTSxLQUFLLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzNDLENBQUM7QUFBQSxDQUNGO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sTUFBTTtJQVFDLFNBQVM7SUFQbkIsSUFBSSxDQUFjO0lBQ2xCLE1BQU0sQ0FBYztJQUU1QjtJQUNFOztPQUVHO0lBQ2EsU0FBaUIsRUFDakM7eUJBRGdCLFNBQVM7SUFDeEIsQ0FBQztJQUVKOztPQUVHO0lBQ0gsS0FBSyxDQUFDLElBQUksR0FBRztRQUNYLE1BQU0sSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQzVCLE1BQU0sSUFBSSxDQUFD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
@@ -58,7 +58,8 @@ export declare class UltraHonkBackend {
58
58
  export declare class AztecClientBackend {
59
59
  private acirBuf;
60
60
  private api;
61
- constructor(acirBuf: Uint8Array[], api: Barretenberg);
61
+ private circuitNames;
62
+ constructor(acirBuf: Uint8Array[], api: Barretenberg, circuitNames?: string[]);
62
63
  prove(witnessBuf: Uint8Array[], vksBuf?: Uint8Array[]): Promise<[Uint8Array[], Uint8Array, Uint8Array]>;
63
64
  verify(proof: Uint8Array, vk: Uint8Array): Promise<boolean>;
64
65
  private verifyNative;
@@ -90,4 +91,4 @@ export declare function fieldToString(field: Uint8Array, radix?: number): string
90
91
  * const vkHexStrings = fieldsToStrings(vkAsFields.fields, 16); // ["bc614e", "5397fb1", ...]
91
92
  */
92
93
  export declare function fieldsToStrings(fields: Uint8Array[], radix?: number): string[];
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFja2VuZC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2JhcnJldGVuYmVyZy9iYWNrZW5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDMUMsT0FBTyxFQUFFLFNBQVMsRUFBb0MsTUFBTSxtQkFBbUIsQ0FBQztBQUtoRixxQkFBYSx1QkFBd0IsU0FBUSxLQUFLO0lBQ2hELFlBQVksT0FBTyxFQUFFLE1BQU0sRUFFMUI7Q0FDRjtBQUVEOzs7R0FHRztBQUNILE1BQU0sTUFBTSxjQUFjLEdBQ3RCLEtBQUssR0FDTCxXQUFXLEdBQ1gsZ0JBQWdCLEdBQ2hCLHNCQUFzQixHQUN0QixhQUFhLEdBQ2IsbUJBQW1CLEdBQ25CLFVBQVUsR0FDVixnQkFBZ0IsQ0FBQztBQUVyQjs7R0FFRztBQUNILE1BQU0sTUFBTSx1QkFBdUIsR0FBRztJQUNwQzs7Ozs7Ozs7OztPQVVHO0lBQ0gsY0FBYyxDQUFDLEVBQUUsY0FBYyxDQUFDO0lBSWhDLDBEQUEwRDtJQUMxRCxNQUFNLENBQUMsRUFBRSxPQUFPLENBQUM7SUFDakIsb0RBQW9EO0lBQ3BELFFBQVEsQ0FBQyxFQUFFLE9BQU8sQ0FBQztJQUNuQiwrREFBK0Q7SUFDL0QsUUFBUSxDQUFDLEVBQUUsT0FBTyxDQUFDO0lBQ25CLHlEQUF5RDtJQUN6RCxVQUFVLENBQUMsRUFBRSxPQUFPLENBQUM7Q0FDdEIsQ0FBQztBQWtGRixxQkFBYSx3QkFBd0I7SUFDdkIsT0FBTyxDQUFDLEdBQUc7SUFBdkIsWUFBb0IsR0FBRyxFQUFFLFlBQVksRUFBSTtJQUVuQyxXQUFXLENBQ2YsU0FBUyxFQUFFLFNBQVMsR0FBRztRQUFFLGVBQWUsRUFBRSxVQUFVLENBQUE7S0FBRSxFQUN0RCxPQUFPLENBQUMsRUFBRSx1QkFBdUIsR0FDaEMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQVlsQjtDQUNGO0FBRUQscUJBQWEsZ0JBQWdCO0lBVXpCLE9BQU8sQ0FBQyxHQUFHO0lBSmIsT0FBTyxDQUFDLHdCQUF3QixDQUFhO0lBRTdDLFlBQ0UsWUFBWSxFQUFFLE1BQU0sRUFDWixHQUFHLEVBQUUsWUFBWSxFQUcxQjtJQUVLLGFBQWEsQ0FBQyxpQkFBaUIsRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLEVBQUUsdUJBQXVCLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQW9CeEc7SUFFSyxXQUFXLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsRUFBRSx1QkFBdUIsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBb0IzRjtJQUVLLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxFQUFFLHVCQUF1QixHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FTL0U7SUFFRCwrQ0FBK0M7SUFDekMsbUJBQW1CLENBQUMsRUFBRSxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsRUFBRSx1QkFBdUIsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBTTVGO0lBR0ssK0JBQStCLENBRW5DLE1BQU0sRUFBRSxVQUFVLEVBRWxCLGtCQUFrQixFQUFFLE1BQU0sRUFDMUIsT0FBTyxDQUFDLEVBQUUsdUJBQXVCLEdBQ2hDLE9BQU8sQ0FBQztRQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsQ0FBQztRQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsQ0FBQztRQUFDLE1BQU0sRUFBRSxNQUFNLENBQUE7S0FBRSxDQUFDLENBaUM1RTtDQUNGO0FBRUQscUJBQWEsa0JBQWtCO0lBTzNCLE9BQU8sQ0FBQyxPQUFPO0lBQ2YsT0FBTyxDQUFDLEdBQUc7SUFGYixZQUNVLE9BQU8sRUFBRSxVQUFVLEVBQUUsRUFDckIsR0FBRyxFQUFFLFlBQVksRUFDdkI7SUFFRSxLQUFLLENBQUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxFQUFFLE1BQU0sR0FBRSxVQUFVLEVBQU8sR0FBRyxPQUFPLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0EyRGhIO0lBRUssTUFBTSxDQUFDLEtBQUssRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLFVBQVUsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBTWhFO1lBTWEsWUFBWTtJQVFwQixLQUFLLElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBYS9CO0NBQ0Y7QUFpQkQ7Ozs7Ozs7Ozs7R0FVRztBQUNILHdCQUFnQixhQUFhLENBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRSxLQUFLLEdBQUUsTUFBVyxHQUFHLE1BQU0sQ0FPM0U7QUFFRDs7Ozs7Ozs7Ozs7O0dBWUc7QUFDSCx3QkFBZ0IsZUFBZSxDQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsRUFBRSxLQUFLLEdBQUUsTUFBVyxHQUFHLE1BQU0sRUFBRSxDQUVsRiJ9
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFja2VuZC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2JhcnJldGVuYmVyZy9iYWNrZW5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDMUMsT0FBTyxFQUFFLFNBQVMsRUFBb0MsTUFBTSxtQkFBbUIsQ0FBQztBQUtoRixxQkFBYSx1QkFBd0IsU0FBUSxLQUFLO0lBQ2hELFlBQVksT0FBTyxFQUFFLE1BQU0sRUFFMUI7Q0FDRjtBQUVEOzs7R0FHRztBQUNILE1BQU0sTUFBTSxjQUFjLEdBQ3RCLEtBQUssR0FDTCxXQUFXLEdBQ1gsZ0JBQWdCLEdBQ2hCLHNCQUFzQixHQUN0QixhQUFhLEdBQ2IsbUJBQW1CLEdBQ25CLFVBQVUsR0FDVixnQkFBZ0IsQ0FBQztBQUVyQjs7R0FFRztBQUNILE1BQU0sTUFBTSx1QkFBdUIsR0FBRztJQUNwQzs7Ozs7Ozs7OztPQVVHO0lBQ0gsY0FBYyxDQUFDLEVBQUUsY0FBYyxDQUFDO0lBSWhDLDBEQUEwRDtJQUMxRCxNQUFNLENBQUMsRUFBRSxPQUFPLENBQUM7SUFDakIsb0RBQW9EO0lBQ3BELFFBQVEsQ0FBQyxFQUFFLE9BQU8sQ0FBQztJQUNuQiwrREFBK0Q7SUFDL0QsUUFBUSxDQUFDLEVBQUUsT0FBTyxDQUFDO0lBQ25CLHlEQUF5RDtJQUN6RCxVQUFVLENBQUMsRUFBRSxPQUFPLENBQUM7Q0FDdEIsQ0FBQztBQWtGRixxQkFBYSx3QkFBd0I7SUFDdkIsT0FBTyxDQUFDLEdBQUc7SUFBdkIsWUFBb0IsR0FBRyxFQUFFLFlBQVksRUFBSTtJQUVuQyxXQUFXLENBQ2YsU0FBUyxFQUFFLFNBQVMsR0FBRztRQUFFLGVBQWUsRUFBRSxVQUFVLENBQUE7S0FBRSxFQUN0RCxPQUFPLENBQUMsRUFBRSx1QkFBdUIsR0FDaEMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQVlsQjtDQUNGO0FBRUQscUJBQWEsZ0JBQWdCO0lBVXpCLE9BQU8sQ0FBQyxHQUFHO0lBSmIsT0FBTyxDQUFDLHdCQUF3QixDQUFhO0lBRTdDLFlBQ0UsWUFBWSxFQUFFLE1BQU0sRUFDWixHQUFHLEVBQUUsWUFBWSxFQUcxQjtJQUVLLGFBQWEsQ0FBQyxpQkFBaUIsRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLEVBQUUsdUJBQXVCLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQW9CeEc7SUFFSyxXQUFXLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsRUFBRSx1QkFBdUIsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBb0IzRjtJQUVLLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxFQUFFLHVCQUF1QixHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FTL0U7SUFFRCwrQ0FBK0M7SUFDekMsbUJBQW1CLENBQUMsRUFBRSxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsRUFBRSx1QkFBdUIsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBTTVGO0lBR0ssK0JBQStCLENBRW5DLE1BQU0sRUFBRSxVQUFVLEVBRWxCLGtCQUFrQixFQUFFLE1BQU0sRUFDMUIsT0FBTyxDQUFDLEVBQUUsdUJBQXVCLEdBQ2hDLE9BQU8sQ0FBQztRQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsQ0FBQztRQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsQ0FBQztRQUFDLE1BQU0sRUFBRSxNQUFNLENBQUE7S0FBRSxDQUFDLENBaUM1RTtDQUNGO0FBRUQscUJBQWEsa0JBQWtCO0lBTzNCLE9BQU8sQ0FBQyxPQUFPO0lBQ2YsT0FBTyxDQUFDLEdBQUc7SUFDWCxPQUFPLENBQUMsWUFBWTtJQUh0QixZQUNVLE9BQU8sRUFBRSxVQUFVLEVBQUUsRUFDckIsR0FBRyxFQUFFLFlBQVksRUFDakIsWUFBWSxHQUFFLE1BQU0sRUFBTyxFQUNqQztJQUVFLEtBQUssQ0FBQyxVQUFVLEVBQUUsVUFBVSxFQUFFLEVBQUUsTUFBTSxHQUFFLFVBQVUsRUFBTyxHQUFHLE9BQU8sQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQTREaEg7SUFFSyxNQUFNLENBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsVUFBVSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FNaEU7WUFNYSxZQUFZO0lBUXBCLEtBQUssSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FhL0I7Q0FDRjtBQWlCRDs7Ozs7Ozs7OztHQVVHO0FBQ0gsd0JBQWdCLGFBQWEsQ0FBQyxLQUFLLEVBQUUsVUFBVSxFQUFFLEtBQUssR0FBRSxNQUFXLEdBQUcsTUFBTSxDQU8zRTtBQUVEOzs7Ozs7Ozs7Ozs7R0FZRztBQUNILHdCQUFnQixlQUFlLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxFQUFFLEtBQUssR0FBRSxNQUFXLEdBQUcsTUFBTSxFQUFFLENBRWxGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../../../src/barretenberg/backend.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../../../src/barretenberg/backend.ts"],"names":[],"mappings":"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"}
@@ -204,13 +204,15 @@ export class UltraHonkBackend {
204
204
  export class AztecClientBackend {
205
205
  acirBuf;
206
206
  api;
207
+ circuitNames;
207
208
  // These type assertions are used so that we don't
208
209
  // have to initialize `api` in the constructor.
209
210
  // These are initialized asynchronously in the `init` function,
210
211
  // constructors cannot be asynchronous which is why we do this.
211
- constructor(acirBuf, api) {
212
+ constructor(acirBuf, api, circuitNames = []) {
212
213
  this.acirBuf = acirBuf;
213
214
  this.api = api;
215
+ this.circuitNames = circuitNames;
214
216
  }
215
217
  async prove(witnessBuf, vksBuf = []) {
216
218
  if (vksBuf.length !== 0 && this.acirBuf.length !== witnessBuf.length) {
@@ -227,7 +229,7 @@ export class AztecClientBackend {
227
229
  const bytecode = this.acirBuf[i];
228
230
  const witness = witnessBuf[i] || new Uint8Array(0);
229
231
  const vk = vksBuf[i] || new Uint8Array(0);
230
- const functionName = `unknown_wasm_${i}`;
232
+ const functionName = this.circuitNames[i] || `circuit_${i}`;
231
233
  // Load the circuit
232
234
  this.api.chonkLoad({
233
235
  circuit: {
@@ -246,10 +248,11 @@ export class AztecClientBackend {
246
248
  // The API currently expects a msgpack-encoded API.
247
249
  const proof = new Encoder({ useRecords: false }).encode(fromChonkProof(proveResult.proof));
248
250
  // Generate the VK
251
+ const lastIdx = this.acirBuf.length - 1;
249
252
  const vkResult = await this.api.chonkComputeVk({
250
253
  circuit: {
251
- name: 'hiding',
252
- bytecode: this.acirBuf[this.acirBuf.length - 1],
254
+ name: this.circuitNames[lastIdx] || 'circuit',
255
+ bytecode: this.acirBuf[lastIdx],
253
256
  },
254
257
  });
255
258
  const proofFields = [
@@ -285,11 +288,11 @@ export class AztecClientBackend {
285
288
  }
286
289
  async gates() {
287
290
  const circuitSizes = [];
288
- for (const buf of this.acirBuf) {
291
+ for (let i = 0; i < this.acirBuf.length; i++) {
289
292
  const gates = await this.api.chonkStats({
290
293
  circuit: {
291
- name: 'circuit',
292
- bytecode: buf,
294
+ name: this.circuitNames[i] || `circuit_${i}`,
295
+ bytecode: this.acirBuf[i],
293
296
  },
294
297
  includeGatesPerOpcode: false,
295
298
  });
@@ -347,4 +350,4 @@ export function fieldToString(field, radix = 10) {
347
350
  export function fieldsToStrings(fields, radix = 10) {
348
351
  return fields.map(field => fieldToString(field, radix));
349
352
  }
350
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFja2VuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iYXJyZXRlbmJlcmcvYmFja2VuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQWEsZUFBZSxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFjLE1BQU0saUNBQWlDLENBQUM7QUFDM0YsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5QixPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUU1QyxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsS0FBSztJQUNoRCxZQUFZLE9BQWUsRUFBRTtRQUMzQixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFBQSxDQUNoQjtDQUNGO0FBNkNELFNBQVMsMkJBQTJCLENBQUMsT0FBaUMsRUFLcEU7SUFDQSw0RkFBNEY7SUFDNUYsSUFBSSxPQUFPLEVBQUUsY0FBYyxFQUFFLENBQUM7UUFDNUIsTUFBTSxhQUFhLEdBQUcsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQy9HLElBQUksYUFBYSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUM3QixNQUFNLElBQUksS0FBSyxDQUNiLDBGQUEwRjtnQkFDeEYsMkJBQTJCLENBQzlCLENBQUM7UUFDSixDQUFDO1FBRUQsUUFBUSxPQUFPLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDL0IsS0FBSyxLQUFLO2dCQUNSLE9BQU8sRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSx5QkFBeUIsRUFBRSxLQUFLLEVB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
353
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFja2VuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iYXJyZXRlbmJlcmcvYmFja2VuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQWEsZUFBZSxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFjLE1BQU0saUNBQWlDLENBQUM7QUFDM0YsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5QixPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUU1QyxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsS0FBSztJQUNoRCxZQUFZLE9BQWUsRUFBRTtRQUMzQixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFBQSxDQUNoQjtDQUNGO0FBNkNELFNBQVMsMkJBQTJCLENBQUMsT0FBaUMsRUFLcEU7SUFDQSw0RkFBNEY7SUFDNUYsSUFBSSxPQUFPLEVBQUUsY0FBYyxFQUFFLENBQUM7UUFDNUIsTUFBTSxhQUFhLEdBQUcsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQy9HLElBQUksYUFBYSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUM3QixNQUFNLElBQUksS0FBSyxDQUNiLDBGQUEwRjtnQkFDeEYsMkJBQTJCLENBQzlCLENBQUM7UUFDSixDQUFDO1FBRUQsUUFBUSxPQUFPLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDL0IsS0FBSyxLQUFLO2dCQUNSLE9BQU8sRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSx5QkFBeUIsRUFBRSxLQUFLLEVBQUUsQ0FBQztZQUNsSCxLQUFLLFdBQVc7Z0JBQ2QsT0FBTyxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLHlCQUF5QixFQUFFLEtBQUssRUFBRSxDQUFDO1lBQ2pILEtBQUssZ0JBQWdCO2dCQUNuQixPQUFPO29CQUNMLGVBQWUsRUFBRSxLQUFLO29CQUN0QixjQUFjLEVBQUUsV0FBVztvQkFDM0IsU0FBUyxFQUFFLEtBQUs7b0JBQ2hCLHlCQUF5QixFQUFFLEtBQUs7aUJBQ2pDLENBQUM7WUFDSixLQUFLLHNCQUFzQjtnQkFDekIsT0FBTztvQkFDTCxlQUFlLEVBQUUsS0FBSztvQkFDdEIsY0FBYyxFQUFFLFdBQVc7b0JBQzNCLFNBQVMsRUFBRSxJQUFJO29CQUNmLHlCQUF5QixFQUFFLEtBQUs7aUJBQ2pDLENBQUM7WUFDSixLQUFLLGFBQWE7Z0JBQ2hCLE9BQU87b0JBQ0wsZUFBZSxFQUFFLElBQUk7b0JBQ3JCLGNBQWMsRUFBRSxXQUFXO29CQUMzQixTQUFTLEVBQUUsS0FBSztvQkFDaEIseUJBQXlCLEVBQUUsS0FBSztpQkFDakMsQ0FBQztZQUNKLEtBQUssbUJBQW1CO2dCQUN0QixPQUFPO29CQUNMLGVBQWUsRUFBRSxJQUFJO29CQUNyQixjQUFjLEVBQUUsV0FBVztvQkFDM0IsU0FBUyxFQUFFLElBQUk7b0JBQ2YseUJBQXlCLEVBQUUsS0FBSztpQkFDakMsQ0FBQztZQUNKLEtBQUssVUFBVTtnQkFDYixPQUFPO29CQUNMLGVBQWUsRUFBRSxLQUFLO29CQUN0QixjQUFjLEVBQUUsVUFBVTtvQkFDMUIsU0FBUyxFQUFFLEtBQUs7b0JBQ2hCLHlCQUF5QixFQUFFLEtBQUs7aUJBQ2pDLENBQUM7WUFDSixLQUFLLGdCQUFnQjtnQkFDbkIsT0FBTztvQkFDTCxlQUFlLEVBQUUsS0FBSztvQkFDdEIsY0FBYyxFQUFFLFVBQVU7b0JBQzFCLFNBQVMsRUFBRSxJQUFJO29CQUNmLHlCQUF5QixFQUFFLEtBQUs7aUJBQ2pDLENBQUM7UUFDTixDQUFDO0lBQ0gsQ0FBQztJQUVELHNDQUFzQztJQUN0QyxPQUFPO1FBQ0wsZUFBZSxFQUFFLEtBQUs7UUFDdEIsY0FBYyxFQUNaLE9BQU8sRUFBRSxNQUFNLElBQUksT0FBTyxFQUFFLFFBQVE7WUFDbEMsQ0FBQyxDQUFDLFFBQVE7WUFDVixDQUFDLENBQUMsT0FBTyxFQUFFLFFBQVEsSUFBSSxPQUFPLEVBQUUsVUFBVTtnQkFDeEMsQ0FBQyxDQUFDLFVBQVU7Z0JBQ1osQ0FBQyxDQUFDLFdBQVc7UUFDbkIsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLElBQUksT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLO1FBQzlELHlCQUF5QixFQUFFLEtBQUs7S0FDakMsQ0FBQztBQUFBLENBQ0g7QUFFRCxNQUFNLE9BQU8sd0JBQXdCO0lBQ2YsR0FBRztJQUF2QixZQUFvQixHQUFpQixFQUFFO21CQUFuQixHQUFHO0lBQWlCLENBQUM7SUFFekMsS0FBSyxDQUFDLFdBQVcsQ0FDZixTQUFzRCxFQUN0RCxPQUFpQyxFQUNmO1FBQ2xCLE1BQU0sUUFBUSxHQUFpQixFQUFFLENBQUM7UUFDbEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUNwRCxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNsRCxDQUFDO1FBQ0QsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUM7WUFDaEQsZUFBZSxFQUFFLFNBQVMsQ0FBQyxlQUFlO1lBQzFDLFlBQVksRUFBRSxTQUFTLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUM7WUFDekQsS0FBSyxFQUFFLFFBQVE7WUFDZixRQUFRLEVBQUUsMkJBQTJCLENBQUMsT0FBTyxDQUFDO1NBQy9DLENBQUMsQ0FBQztRQUNILE9BQU8sUUFBUSxDQUFDO0lBQUEsQ0FDakI7Q0FDRjtBQUVELE1BQU0sT0FBTyxnQkFBZ0I7SUFVakIsR0FBRztJQVRiLGtEQUFrRDtJQUNsRCwrQ0FBK0M7SUFDL0MsK0RBQStEO0lBQy9ELCtEQUErRDtJQUV2RCx3QkFBd0IsQ0FBYTtJQUU3QyxZQUNFLFlBQW9CLEVBQ1osR0FBaUIsRUFDekI7bUJBRFEsR0FBRztRQUVYLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUFBLENBQ2hFO0lBRUQsS0FBSyxDQUFDLGFBQWEsQ0FBQyxpQkFBNkIsRUFBRSxPQUFpQyxFQUFzQjtRQUN4RyxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUMxQyxNQUFNLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUM7WUFDMUQsT0FBTztZQUNQLE9BQU8sRUFBRTtnQkFDUCxJQUFJLEVBQUUsU0FBUztnQkFDZixRQUFRLEVBQUUsSUFBSSxDQUFDLHdCQUF3QjtnQkFDdkMsZUFBZSxFQUFFLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLGdDQUFnQzthQUNyRTtZQUNELFFBQVEsRUFBRSwyQkFBMkIsQ0FBQyxPQUFPLENBQUM7U0FDL0MsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxDQUFDLEdBQUcsQ0FBQyxvQ0FBb0MsWUFBWSxDQUFDLE1BQU0sc0JBQXNCLEtBQUssQ0FBQyxNQUFNLFVBQVUsQ0FBQyxDQUFDO1FBRWpILHFHQUFxRztRQUNyRyxNQUFNLFNBQVMsR0FBRyxJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ3BELEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUN2QixTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFBQSxDQUMzQixDQUFDLENBQUM7UUFFSCxPQUFPLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsWUFBWSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDO0lBQUEsQ0FDOUU7SUFFRCxLQUFLLENBQUMsV0FBVyxDQUFDLFNBQW9CLEVBQUUsT0FBaUMsRUFBb0I7UUFDM0YsTUFBTSxRQUFRLEdBQWlCLEVBQUUsQ0FBQztRQUNsQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ3BELFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2xELENBQUM7UUFDRCxzRUFBc0U7UUFDdEUsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDO1lBQy9DLE9BQU8sRUFBRTtnQkFDUCxJQUFJLEVBQUUsU0FBUztnQkFDZixRQUFRLEVBQUUsSUFBSSxDQUFDLHdCQUF3QjthQUN4QztZQUNELFFBQVEsRUFBRSwyQkFBMkIsQ0FBQyxPQUFPLENBQUM7U0FDL0MsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUM7WUFDaEQsZUFBZSxFQUFFLFFBQVEsQ0FBQyxLQUFLO1lBQy9CLFlBQVksRUFBRSxTQUFTLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUM7WUFDekQsS0FBSyxFQUFFLFFBQVE7WUFDZixRQUFRLEVBQUUsMkJBQTJCLENBQUMsT0FBTyxDQUFDO1NBQy9DLENBQUMsQ0FBQztRQUNILE9BQU8sUUFBUSxDQUFDO0lBQUEsQ0FDakI7SUFFRCxLQUFLLENBQUMsa0JBQWtCLENBQUMsT0FBaUMsRUFBdUI7UUFDL0UsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDO1lBQy9DLE9BQU8sRUFBRTtnQkFDUCxJQUFJLEVBQUUsU0FBUztnQkFDZixRQUFRLEVBQUUsSUFBSSxDQUFDLHdCQUF3QjthQUN4QztZQUNELFFBQVEsRUFBRSwyQkFBMkIsQ0FBQyxPQUFPLENBQUM7U0FDL0MsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxRQUFRLENBQUMsS0FBSyxDQUFDO0lBQUEsQ0FDdkI7SUFFRCwrQ0FBK0M7SUFDL0MsS0FBSyxDQUFDLG1CQUFtQixDQUFDLEVBQWMsRUFBRSxPQUFpQyxFQUFtQjtRQUM1RixNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsNEJBQTRCLENBQUM7WUFDekQsZUFBZSxFQUFFLEVBQUU7WUFDbkIsUUFBUSxFQUFFLDJCQUEyQixDQUFDLE9BQU8sQ0FBQztTQUMvQyxDQUFDLENBQUM7UUFDSCxPQUFPLE1BQU0sQ0FBQyxZQUFZLENBQUM7SUFBQSxDQUM1QjtJQUVELDhKQUE4SjtJQUM5SixLQUFLLENBQUMsK0JBQStCO0lBQ25DLDZEQUE2RDtJQUM3RCxNQUFrQjtJQUNsQiw2REFBNkQ7SUFDN0Qsa0JBQTBCLEVBQzFCLE9BQWlDLEVBQzJDO1FBQzVFLGlIQUFpSDtRQUNqSCxvR0FBb0c7UUFDcEcsK0JBQStCO1FBQy9CLHdHQUF3RztRQUN4Ryx5QkFBeUI7UUFDekIsNkRBQTZEO1FBQzdELHFHQUFxRztRQUVyRyxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUM7WUFDL0MsT0FBTyxFQUFFO2dCQUNQLElBQUksRUFBRSxTQUFTO2dCQUNmLFFBQVEsRUFBRSxJQUFJLENBQUMsd0JBQXdCO2FBQ3hDO1lBQ0QsUUFBUSxFQUFFLDJCQUEyQixDQUFDLE9BQU8sQ0FBQztTQUMvQyxDQUFDLENBQUM7UUFFSCxzREFBc0Q7UUFDdEQsTUFBTSxVQUFVLEdBQWEsRUFBRSxDQUFDO1FBQ2hDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7WUFDbkQsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztZQUM5QyxVQUFVLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQzFDLENBQUM7UUFFRCxPQUFPO1lBQ0wsc0RBQXNEO1lBQ3RELGFBQWEsRUFBRSxFQUFFO1lBQ2pCLFVBQVU7WUFDVixtR0FBbUc7WUFDbkcsc0dBQXNHO1lBQ3RHLGNBQWM7WUFDZCxNQUFNLEVBQUUsZUFBZSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7U0FDdkMsQ0FBQztJQUFBLENBQ0g7Q0FDRjtBQUVELE1BQU0sT0FBTyxrQkFBa0I7SUFPbkIsT0FBTztJQUNQLEdBQUc7SUFDSCxZQUFZO0lBUnRCLGtEQUFrRDtJQUNsRCwrQ0FBK0M7SUFDL0MsK0RBQStEO0lBQy9ELCtEQUErRDtJQUUvRCxZQUNVLE9BQXFCLEVBQ3JCLEdBQWlCLEVBQ2pCLFlBQVksR0FBYSxFQUFFLEVBQ25DO3VCQUhRLE9BQU87bUJBQ1AsR0FBRzs0QkFDSCxZQUFZO0lBQ25CLENBQUM7SUFFSixLQUFLLENBQUMsS0FBSyxDQUFDLFVBQXdCLEVBQUUsTUFBTSxHQUFpQixFQUFFLEVBQW1EO1FBQ2hILElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEtBQUssVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3JFLE1BQU0sSUFBSSx1QkFBdUIsQ0FBQyx1REFBdUQsQ0FBQyxDQUFDO1FBQzdGLENBQUM7UUFDRCxJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQy9ELGlGQUFpRjtZQUNqRixNQUFNLElBQUksdUJBQXVCLENBQUMsaURBQWlELENBQUMsQ0FBQztRQUN2RixDQUFDO1FBRUQsOENBQThDO1FBQzlDLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUUxRCw2Q0FBNkM7UUFDN0MsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDN0MsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNqQyxNQUFNLE9BQU8sR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbkQsTUFBTSxFQUFFLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzFDLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksV0FBVyxDQUFDLEVBQUUsQ0FBQztZQUU1RCxtQkFBbUI7WUFDbkIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUM7Z0JBQ2pCLE9BQU8sRUFBRTtvQkFDUCxJQUFJLEVBQUUsWUFBWTtvQkFDbEIsUUFBUSxFQUFFLFFBQVE7b0JBQ2xCLGVBQWUsRUFBRSxFQUFFO2lCQUNwQjthQUNGLENBQUMsQ0FBQztZQUVILDBCQUEwQjtZQUMxQixJQUFJLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQztnQkFDdkIsT0FBTzthQUNSLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFRCxpRUFBaUU7UUFDakUsTUFBTSxXQUFXLEdBQUcsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNsRCxtREFBbUQ7UUFDbkQsTUFBTSxLQUFLLEdBQUcsSUFBSSxPQUFPLENBQUMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQzNGLGtCQUFrQjtRQUNsQixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDeEMsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQztZQUM3QyxPQUFPLEVBQUU7Z0JBQ1AsSUFBSSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksU0FBUztnQkFDN0MsUUFBUSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDO2FBQ2hDO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsTUFBTSxXQUFXLEdBQUc7WUFDbEIsV0FBVyxDQUFDLEtBQUssQ0FBQyxTQUFTO1lBQzNCLFdBQVcsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLFVBQVU7WUFDeEMsV0FBVyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsVUFBVTtZQUN4QyxXQUFXLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxRQUFRO1lBQ3RDLFdBQVcsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLGVBQWU7U0FDOUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUVULDRFQUE0RTtRQUM1RSxJQUFJLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ2xFLE1BQU0sSUFBSSx1QkFBdUIsQ0FBQyx5REFBeUQsQ0FBQyxDQUFDO1FBQy9GLENBQUM7UUFDRCxPQUFPLENBQUMsV0FBVyxFQUFFLEtBQUssRUFBRSxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFBQSxDQUM3QztJQUVELEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBaUIsRUFBRSxFQUFjLEVBQW9CO1FBQ2hFLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUM7WUFDeEMsS0FBSyxFQUFFLFlBQVksQ0FBQyxJQUFJLE9BQU8sQ0FBQyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNyRSxFQUFFO1NBQ0gsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDO0lBQUEsQ0FDckI7SUFFRDs7O09BR0c7SUFDSyxLQUFLLENBQUMsWUFBWSxDQUFDLEtBQWlCLEVBQUUsRUFBYyxFQUFvQjtRQUM5RSxNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDO1lBQ3hDLEtBQUs7WUFDTCxFQUFFO1NBQ0gsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDO0lBQUEsQ0FDckI7SUFFRCxLQUFLLENBQUMsS0FBSyxHQUFzQjtRQUMvQixNQUFNLFlBQVksR0FBYSxFQUFFLENBQUM7UUFDbEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDN0MsTUFBTSxLQUFLLEdBQUcsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQztnQkFDdEMsT0FBTyxFQUFFO29CQUNQLElBQUksRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLFdBQVcsQ0FBQyxFQUFFO29CQUM1QyxRQUFRLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7aUJBQzFCO2dCQUNELHFCQUFxQixFQUFFLEtBQUs7YUFDN0IsQ0FBQyxDQUFDO1lBQ0gsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDdkMsQ0FBQztRQUNELE9BQU8sWUFBWSxDQUFDO0lBQUEsQ0FDckI7Q0FDRjtBQUVELHlEQUF5RDtBQUN6RCxTQUFTLGdCQUFnQixDQUFDLHFCQUE2QixFQUFjO0lBQ25FLE1BQU0sa0JBQWtCLEdBQUcsWUFBWSxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFDL0QsT0FBTyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztBQUFBLENBQ25DO0FBRUQsbUVBQW1FO0FBQ25FLFNBQVMsWUFBWSxDQUFDLEtBQWEsRUFBYztJQUMvQyxJQUFJLE9BQU8sSUFBSSxLQUFLLFVBQVUsRUFBRSxDQUFDO1FBQy9CLE9BQU8sVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDNUQsQ0FBQztTQUFNLENBQUM7UUFDTixNQUFNLElBQUksS0FBSyxDQUFDLHlEQUF5RCxDQUFDLENBQUM7SUFDN0UsQ0FBQztBQUFBLENBQ0Y7QUFFRDs7Ozs7Ozs7OztHQVVHO0FBQ0gsTUFBTSxVQUFVLGFBQWEsQ0FBQyxLQUFpQixFQUFFLEtBQUssR0FBVyxFQUFFLEVBQVU7SUFDM0UsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDO0lBQ2hCLEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxFQUFFLENBQUM7UUFDekIsTUFBTSxLQUFLLEVBQUUsQ0FBQztRQUNkLE1BQU0sSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUNELE9BQU8sTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUFBLENBQy9CO0FBRUQ7Ozs7Ozs7Ozs7OztHQVlHO0FBQ0gsTUFBTSxVQUFVLGVBQWUsQ0FBQyxNQUFvQixFQUFFLEtBQUssR0FBVyxFQUFFLEVBQVk7SUFDbEYsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQUEsQ0FDekQifQ==
@@ -1,3 +1,8 @@
1
+ /**
2
+ * Fetches data from primary URL, falling back to secondary on failure
3
+ * @internal Exported for testing
4
+ */
5
+ export declare function fetchWithFallback(primaryUrl: string, fallbackUrl: string, options: RequestInit): Promise<Response>;
1
6
  /**
2
7
  * Downloader for CRS from the web or local.
3
8
  */
@@ -67,4 +72,4 @@ export declare class NetGrumpkinCrs {
67
72
  getG1Data(): Uint8Array;
68
73
  private fetchG1Data;
69
74
  }
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0X2Nycy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2Nycy9uZXRfY3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBOztHQUVHO0FBQ0gscUJBQWEsTUFBTTthQVFDLFNBQVMsRUFBRSxNQUFNO0lBUG5DLE9BQU8sQ0FBQyxJQUFJLENBQWM7SUFDMUIsT0FBTyxDQUFDLE1BQU0sQ0FBYztJQUU1QjtJQUNFOztPQUVHO0lBQ2EsU0FBUyxFQUFFLE1BQU0sRUFDL0I7SUFFSjs7T0FFRztJQUNHLElBQUksa0JBR1Q7SUFFRDs7T0FFRztJQUNHLFlBQVksSUFBSSxPQUFPLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBR3hEO0lBRUQ7O09BRUc7SUFDRyxZQUFZLElBQUksT0FBTyxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUd4RDtJQUVLLGNBQWMscUNBR25CO0lBRUQ7O09BRUc7SUFDRyxjQUFjLHFDQUduQjtJQUVEOzs7T0FHRztJQUNILFNBQVMsSUFBSSxVQUFVLENBRXRCO0lBRUQ7OztPQUdHO0lBQ0gsU0FBUyxJQUFJLFVBQVUsQ0FFdEI7WUFLYSxXQUFXO1lBc0JYLFdBQVc7Q0FTMUI7QUFFRDs7R0FFRztBQUNILHFCQUFhLGNBQWM7YUFPUCxTQUFTLEVBQUUsTUFBTTtJQU5uQyxPQUFPLENBQUMsSUFBSSxDQUFjO0lBRTFCO0lBQ0U7O09BRUc7SUFDYSxTQUFTLEVBQUUsTUFBTSxFQUMvQjtJQUVKOztPQUVHO0lBQ0csSUFBSSxrQkFFVDtJQUVLLGNBQWMscUNBR25CO0lBRUQ7O09BRUc7SUFDRyxZQUFZLElBQUksT0FBTyxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUd4RDtJQUVEOzs7T0FHRztJQUNILFNBQVMsSUFBSSxVQUFVLENBRXRCO1lBS2EsV0FBVztDQWUxQiJ9
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0X2Nycy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2Nycy9uZXRfY3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BOzs7R0FHRztBQUNILHdCQUFzQixpQkFBaUIsQ0FDckMsVUFBVSxFQUFFLE1BQU0sRUFDbEIsV0FBVyxFQUFFLE1BQU0sRUFDbkIsT0FBTyxFQUFFLFdBQVcsR0FDbkIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQVVuQjtBQUVEOztHQUVHO0FBQ0gscUJBQWEsTUFBTTthQVFDLFNBQVMsRUFBRSxNQUFNO0lBUG5DLE9BQU8sQ0FBQyxJQUFJLENBQWM7SUFDMUIsT0FBTyxDQUFDLE1BQU0sQ0FBYztJQUU1QjtJQUNFOztPQUVHO0lBQ2EsU0FBUyxFQUFFLE1BQU0sRUFDL0I7SUFFSjs7T0FFRztJQUNHLElBQUksa0JBR1Q7SUFFRDs7T0FFRztJQUNHLFlBQVksSUFBSSxPQUFPLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBR3hEO0lBRUQ7O09BRUc7SUFDRyxZQUFZLElBQUksT0FBTyxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUd4RDtJQUVLLGNBQWMscUNBR25CO0lBRUQ7O09BRUc7SUFDRyxjQUFjLHFDQUduQjtJQUVEOzs7T0FHRztJQUNILFNBQVMsSUFBSSxVQUFVLENBRXRCO0lBRUQ7OztPQUdHO0lBQ0gsU0FBUyxJQUFJLFVBQVUsQ0FFdEI7WUFLYSxXQUFXO1lBc0JYLFdBQVc7Q0FTMUI7QUFFRDs7R0FFRztBQUNILHFCQUFhLGNBQWM7YUFPUCxTQUFTLEVBQUUsTUFBTTtJQU5uQyxPQUFPLENBQUMsSUFBSSxDQUFjO0lBRTFCO0lBQ0U7O09BRUc7SUFDYSxTQUFTLEVBQUUsTUFBTSxFQUMvQjtJQUVKOztPQUVHO0lBQ0csSUFBSSxrQkFFVDtJQUVLLGNBQWMscUNBR25CO0lBRUQ7O09BRUc7SUFDRyxZQUFZLElBQUksT0FBTyxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUd4RDtJQUVEOzs7T0FHRztJQUNILFNBQVMsSUFBSSxVQUFVLENBRXRCO1lBS2EsV0FBVztDQW9CMUIifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"net_crs.d.ts","sourceRoot":"","sources":["../../../src/crs/net_crs.ts"],"names":[],"mappings":"AACA;;GAEG;AACH,qBAAa,MAAM;aAQC,SAAS,EAAE,MAAM;IAPnC,OAAO,CAAC,IAAI,CAAc;IAC1B,OAAO,CAAC,MAAM,CAAc;IAE5B;IACE;;OAEG;IACa,SAAS,EAAE,MAAM,EAC/B;IAEJ;;OAEG;IACG,IAAI,kBAGT;IAED;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAGxD;IAED;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAGxD;IAEK,cAAc,qCAGnB;IAED;;OAEG;IACG,cAAc,qCAGnB;IAED;;;OAGG;IACH,SAAS,IAAI,UAAU,CAEtB;IAED;;;OAGG;IACH,SAAS,IAAI,UAAU,CAEtB;YAKa,WAAW;YAsBX,WAAW;CAS1B;AAED;;GAEG;AACH,qBAAa,cAAc;aAOP,SAAS,EAAE,MAAM;IANnC,OAAO,CAAC,IAAI,CAAc;IAE1B;IACE;;OAEG;IACa,SAAS,EAAE,MAAM,EAC/B;IAEJ;;OAEG;IACG,IAAI,kBAET;IAEK,cAAc,qCAGnB;IAED;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAGxD;IAED;;;OAGG;IACH,SAAS,IAAI,UAAU,CAEtB;YAKa,WAAW;CAe1B"}
1
+ {"version":3,"file":"net_crs.d.ts","sourceRoot":"","sources":["../../../src/crs/net_crs.ts"],"names":[],"mappings":"AAOA;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,QAAQ,CAAC,CAUnB;AAED;;GAEG;AACH,qBAAa,MAAM;aAQC,SAAS,EAAE,MAAM;IAPnC,OAAO,CAAC,IAAI,CAAc;IAC1B,OAAO,CAAC,MAAM,CAAc;IAE5B;IACE;;OAEG;IACa,SAAS,EAAE,MAAM,EAC/B;IAEJ;;OAEG;IACG,IAAI,kBAGT;IAED;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAGxD;IAED;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAGxD;IAEK,cAAc,qCAGnB;IAED;;OAEG;IACG,cAAc,qCAGnB;IAED;;;OAGG;IACH,SAAS,IAAI,UAAU,CAEtB;IAED;;;OAGG;IACH,SAAS,IAAI,UAAU,CAEtB;YAKa,WAAW;YAsBX,WAAW;CAS1B;AAED;;GAEG;AACH,qBAAa,cAAc;aAOP,SAAS,EAAE,MAAM;IANnC,OAAO,CAAC,IAAI,CAAc;IAE1B;IACE;;OAEG;IACa,SAAS,EAAE,MAAM,EAC/B;IAEJ;;OAEG;IACG,IAAI,kBAET;IAEK,cAAc,qCAGnB;IAED;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAGxD;IAED;;;OAGG;IACH,SAAS,IAAI,UAAU,CAEtB;YAKa,WAAW;CAoB1B"}
@@ -1,4 +1,24 @@
1
1
  import { retry, makeBackoff } from '../retry/index.js';
2
+ // Primary CRS host (Cloudflare R2)
3
+ const CRS_PRIMARY_HOST = 'https://crs.aztec-cdn.foundation';
4
+ // Fallback CRS host (AWS S3)
5
+ const CRS_FALLBACK_HOST = 'https://crs.aztec-labs.com';
6
+ /**
7
+ * Fetches data from primary URL, falling back to secondary on failure
8
+ * @internal Exported for testing
9
+ */
10
+ export async function fetchWithFallback(primaryUrl, fallbackUrl, options) {
11
+ try {
12
+ const response = await fetch(primaryUrl, options);
13
+ if (response.ok || response.status === 206) {
14
+ return response;
15
+ }
16
+ throw new Error(`HTTP ${response.status}`);
17
+ }
18
+ catch {
19
+ return await fetch(fallbackUrl, options);
20
+ }
21
+ }
2
22
  /**
3
23
  * Downloader for CRS from the web or local.
4
24
  */
@@ -68,20 +88,22 @@ export class NetCrs {
68
88
  return new Response(new Uint8Array([]));
69
89
  }
70
90
  const g1End = this.numPoints * 64 - 1;
71
- return await retry(() => fetch('https://crs.aztec.network/g1.dat', {
91
+ const options = {
72
92
  headers: {
73
93
  Range: `bytes=0-${g1End}`,
74
94
  },
75
95
  cache: 'force-cache',
76
- }), makeBackoff([5, 5, 5]));
96
+ };
97
+ return await retry(() => fetchWithFallback(`${CRS_PRIMARY_HOST}/g1.dat`, `${CRS_FALLBACK_HOST}/g1.dat`, options), makeBackoff([5, 5, 5]));
77
98
  }
78
99
  /**
79
100
  * Fetches the appropriate range of points from a remote source
80
101
  */
81
102
  async fetchG2Data() {
82
- return await retry(() => fetch('https://crs.aztec.network/g2.dat', {
103
+ const options = {
83
104
  cache: 'force-cache',
84
- }), makeBackoff([5, 5, 5]));
105
+ };
106
+ return await retry(() => fetchWithFallback(`${CRS_PRIMARY_HOST}/g2.dat`, `${CRS_FALLBACK_HOST}/g2.dat`, options), makeBackoff([5, 5, 5]));
85
107
  }
86
108
  }
87
109
  /**
@@ -130,12 +152,13 @@ export class NetGrumpkinCrs {
130
152
  return new Response(new Uint8Array([]));
131
153
  }
132
154
  const g1End = this.numPoints * 64 - 1;
133
- return await fetch('https://crs.aztec.network/grumpkin_g1.dat', {
155
+ const options = {
134
156
  headers: {
135
157
  Range: `bytes=0-${g1End}`,
136
158
  },
137
159
  cache: 'force-cache',
138
- });
160
+ };
161
+ return await fetchWithFallback(`${CRS_PRIMARY_HOST}/grumpkin_g1.dat`, `${CRS_FALLBACK_HOST}/grumpkin_g1.dat`, options);
139
162
  }
140
163
  }
141
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0X2Nycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jcnMvbmV0X2Nycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3ZEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLE1BQU07SUFRQyxTQUFTO0lBUG5CLElBQUksQ0FBYztJQUNsQixNQUFNLENBQWM7SUFFNUI7SUFDRTs7T0FFRztJQUNhLFNBQWlCLEVBQ2pDO3lCQURnQixTQUFTO0lBQ3hCLENBQUM7SUFFSjs7T0FFRztJQUNILEtBQUssQ0FBQyxJQUFJLEdBQUc7UUFDWCxNQUFNLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUM1QixNQUFNLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUFBLENBQzdCO0lBRUQ7O09BRUc7SUFDSCxLQUFLLENBQUMsWUFBWSxHQUF3QztRQUN4RCxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUMxQyxPQUFPLFFBQVEsQ0FBQyxJQUFLLENBQUM7SUFBQSxDQUN2QjtJQUVEOztPQUVHO0lBQ0gsS0FBSyxDQUFDLFlBQVksR0FBd0M7UUFDeEQsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDMUMsT0FBTyxRQUFRLENBQUMsSUFBSyxDQUFDO0lBQUEsQ0FDdkI7SUFFRCxLQUFLLENBQUMsY0FBYyxHQUFHO1FBQ3JCLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksVUFBVSxDQUFDLE1BQU0sUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUFBLENBQ25FO0lBRUQ7O09BRUc7SUFDSCxLQUFLLENBQUMsY0FBYyxHQUFHO1FBQ3JCLE1BQU0s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
164
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0X2Nycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jcnMvbmV0X2Nycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXZELG1DQUFtQztBQUNuQyxNQUFNLGdCQUFnQixHQUFHLGtDQUFrQyxDQUFDO0FBQzVELDZCQUE2QjtBQUM3QixNQUFNLGlCQUFpQixHQUFHLDRCQUE0QixDQUFDO0FBRXZEOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsaUJBQWlCLENBQ3JDLFVBQWtCLEVBQ2xCLFdBQW1CLEVBQ25CLE9BQW9CLEVBQ0Q7SUFDbkIsSUFBSSxDQUFDO1FBQ0gsTUFBTSxRQUFRLEdBQUcsTUFBTSxLQUFLLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ2xELElBQUksUUFBUSxDQUFDLEVBQUUsSUFBSSxRQUFRLENBQUMsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDO1lBQzNDLE9BQU8sUUFBUSxDQUFDO1FBQ2xCLENBQUM7UUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLFFBQVEsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUFDLE1BQU0sQ0FBQztRQUNQLE9BQU8sTUFBTSxLQUFLLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzNDLENBQUM7QUFBQSxDQUNGO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sTUFBTTtJQVFDLFNBQVM7SUFQbkIsSUFBSSxDQUFjO0lBQ2xCLE1BQU0sQ0FBYztJQUU1QjtJQUNFOztPQUVHO0lBQ2EsU0FBaUIsRUFDakM7eUJBRGdCLFNBQVM7SUFDeEIsQ0FBQztJQUVKOztPQUVHO0lBQ0gsS0FBSyxDQUFDLElBQUksR0FBRztRQUNYLE1BQU0sSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQzVCLE1BQU0sSUFBSSxDQUFD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
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0X2Nycy50ZXN0LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY3JzL25ldF9jcnMudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
@@ -0,0 +1 @@
1
+ {"version":3,"file":"net_crs.test.d.ts","sourceRoot":"","sources":["../../../src/crs/net_crs.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,39 @@
1
+ import { NetCrs, fetchWithFallback } from './net_crs.js';
2
+ // Expected first G1 point from BN254 CRS (generator point with x=1, y=2 in big-endian)
3
+ const BN254_G1_FIRST_ELEMENT = new Uint8Array([
4
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
5
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,
6
+ ]);
7
+ describe('NetCrs', () => {
8
+ it('should download CRS data from primary host', async () => {
9
+ const crs = new NetCrs(1);
10
+ await crs.init();
11
+ const g1Data = crs.getG1Data();
12
+ expect(g1Data.length).toBe(64); // 1 point * 64 bytes
13
+ // Verify first point matches expected generator
14
+ expect(g1Data).toEqual(BN254_G1_FIRST_ELEMENT);
15
+ }, 30000);
16
+ it('should download G2 data', async () => {
17
+ const crs = new NetCrs(1);
18
+ await crs.init();
19
+ const g2Data = crs.getG2Data();
20
+ expect(g2Data.length).toBe(128); // G2 point is 128 bytes
21
+ }, 30000);
22
+ });
23
+ describe('fetchWithFallback', () => {
24
+ it('should fallback to secondary URL when primary fails', async () => {
25
+ const badPrimaryUrl = 'https://nonexistent.invalid/g1.dat';
26
+ const goodFallbackUrl = 'https://crs.aztec-labs.com/g1.dat';
27
+ const options = {
28
+ headers: {
29
+ Range: 'bytes=0-63',
30
+ },
31
+ };
32
+ const response = await fetchWithFallback(badPrimaryUrl, goodFallbackUrl, options);
33
+ expect(response.ok || response.status === 206).toBe(true);
34
+ const data = new Uint8Array(await response.arrayBuffer());
35
+ expect(data.length).toBe(64);
36
+ expect(data).toEqual(BN254_G1_FIRST_ELEMENT);
37
+ }, 30000);
38
+ });
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0X2Nycy50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2Nycy9uZXRfY3JzLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUV6RCx1RkFBdUY7QUFDdkYsTUFBTSxzQkFBc0IsR0FBRyxJQUFJLFVBQVUsQ0FBQztJQUM1QyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO0lBQ3RILENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztDQUN2RSxDQUFDLENBQUM7QUFFSCxRQUFRLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRSxDQUFDO0lBQ3ZCLEVBQUUsQ0FBQyw0Q0FBNEMsRUFBRSxLQUFLLElBQUksRUFBRSxDQUFDO1FBQzNELE1BQU0sR0FBRyxHQUFHLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFCLE1BQU0sR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDO1FBRWpCLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUMvQixNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLHFCQUFxQjtRQUVyRCxnREFBZ0Q7UUFDaEQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0lBQUEsQ0FDaEQsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUVWLEVBQUUsQ0FBQyx5QkFBeUIsRUFBRSxLQUFLLElBQUksRUFBRSxDQUFDO1FBQ3hDLE1BQU0sR0FBRyxHQUFHLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFCLE1BQU0sR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDO1FBRWpCLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUMvQixNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLHdCQUF3QjtJQUF6QixDQUNqQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQUEsQ0FDWCxDQUFDLENBQUM7QUFFSCxRQUFRLENBQUMsbUJBQW1CLEVBQUUsR0FBRyxFQUFFLENBQUM7SUFDbEMsRUFBRSxDQUFDLHFEQUFxRCxFQUFFLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDcEUsTUFBTSxhQUFhLEdBQUcsb0NBQW9DLENBQUM7UUFDM0QsTUFBTSxlQUFlLEdBQUcsbUNBQW1DLENBQUM7UUFDNUQsTUFBTSxPQUFPLEdBQWdCO1lBQzNCLE9BQU8sRUFBRTtnQkFDUCxLQUFLLEVBQUUsWUFBWTthQUNwQjtTQUNGLENBQUM7UUFFRixNQUFNLFFBQVEsR0FBRyxNQUFNLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxlQUFlLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDbEYsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLElBQUksUUFBUSxDQUFDLE1BQU0sS0FBSyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFMUQsTUFBTSxJQUFJLEdBQUcsSUFBSSxVQUFVLENBQUMsTUFBTSxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUMxRCxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM3QixNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLHNCQUFzQixDQUFDLENBQUM7SUFBQSxDQUM5QyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQUEsQ0FDWCxDQUFDLENBQUMifQ==
@@ -58,7 +58,8 @@ export declare class UltraHonkBackend {
58
58
  export declare class AztecClientBackend {
59
59
  private acirBuf;
60
60
  private api;
61
- constructor(acirBuf: Uint8Array[], api: Barretenberg);
61
+ private circuitNames;
62
+ constructor(acirBuf: Uint8Array[], api: Barretenberg, circuitNames?: string[]);
62
63
  prove(witnessBuf: Uint8Array[], vksBuf?: Uint8Array[]): Promise<[Uint8Array[], Uint8Array, Uint8Array]>;
63
64
  verify(proof: Uint8Array, vk: Uint8Array): Promise<boolean>;
64
65
  private verifyNative;
@@ -90,4 +91,4 @@ export declare function fieldToString(field: Uint8Array, radix?: number): string
90
91
  * const vkHexStrings = fieldsToStrings(vkAsFields.fields, 16); // ["bc614e", "5397fb1", ...]
91
92
  */
92
93
  export declare function fieldsToStrings(fields: Uint8Array[], radix?: number): string[];
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFja2VuZC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2JhcnJldGVuYmVyZy9iYWNrZW5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDMUMsT0FBTyxFQUFFLFNBQVMsRUFBb0MsTUFBTSxtQkFBbUIsQ0FBQztBQUtoRixxQkFBYSx1QkFBd0IsU0FBUSxLQUFLO0lBQ2hELFlBQVksT0FBTyxFQUFFLE1BQU0sRUFFMUI7Q0FDRjtBQUVEOzs7R0FHRztBQUNILE1BQU0sTUFBTSxjQUFjLEdBQ3RCLEtBQUssR0FDTCxXQUFXLEdBQ1gsZ0JBQWdCLEdBQ2hCLHNCQUFzQixHQUN0QixhQUFhLEdBQ2IsbUJBQW1CLEdBQ25CLFVBQVUsR0FDVixnQkFBZ0IsQ0FBQztBQUVyQjs7R0FFRztBQUNILE1BQU0sTUFBTSx1QkFBdUIsR0FBRztJQUNwQzs7Ozs7Ozs7OztPQVVHO0lBQ0gsY0FBYyxDQUFDLEVBQUUsY0FBYyxDQUFDO0lBSWhDLDBEQUEwRDtJQUMxRCxNQUFNLENBQUMsRUFBRSxPQUFPLENBQUM7SUFDakIsb0RBQW9EO0lBQ3BELFFBQVEsQ0FBQyxFQUFFLE9BQU8sQ0FBQztJQUNuQiwrREFBK0Q7SUFDL0QsUUFBUSxDQUFDLEVBQUUsT0FBTyxDQUFDO0lBQ25CLHlEQUF5RDtJQUN6RCxVQUFVLENBQUMsRUFBRSxPQUFPLENBQUM7Q0FDdEIsQ0FBQztBQWtGRixxQkFBYSx3QkFBd0I7SUFDdkIsT0FBTyxDQUFDLEdBQUc7SUFBdkIsWUFBb0IsR0FBRyxFQUFFLFlBQVksRUFBSTtJQUVuQyxXQUFXLENBQ2YsU0FBUyxFQUFFLFNBQVMsR0FBRztRQUFFLGVBQWUsRUFBRSxVQUFVLENBQUE7S0FBRSxFQUN0RCxPQUFPLENBQUMsRUFBRSx1QkFBdUIsR0FDaEMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQVlsQjtDQUNGO0FBRUQscUJBQWEsZ0JBQWdCO0lBVXpCLE9BQU8sQ0FBQyxHQUFHO0lBSmIsT0FBTyxDQUFDLHdCQUF3QixDQUFhO0lBRTdDLFlBQ0UsWUFBWSxFQUFFLE1BQU0sRUFDWixHQUFHLEVBQUUsWUFBWSxFQUcxQjtJQUVLLGFBQWEsQ0FBQyxpQkFBaUIsRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLEVBQUUsdUJBQXVCLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQW9CeEc7SUFFSyxXQUFXLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsRUFBRSx1QkFBdUIsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBb0IzRjtJQUVLLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxFQUFFLHVCQUF1QixHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FTL0U7SUFFRCwrQ0FBK0M7SUFDekMsbUJBQW1CLENBQUMsRUFBRSxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsRUFBRSx1QkFBdUIsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBTTVGO0lBR0ssK0JBQStCLENBRW5DLE1BQU0sRUFBRSxVQUFVLEVBRWxCLGtCQUFrQixFQUFFLE1BQU0sRUFDMUIsT0FBTyxDQUFDLEVBQUUsdUJBQXVCLEdBQ2hDLE9BQU8sQ0FBQztRQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsQ0FBQztRQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsQ0FBQztRQUFDLE1BQU0sRUFBRSxNQUFNLENBQUE7S0FBRSxDQUFDLENBaUM1RTtDQUNGO0FBRUQscUJBQWEsa0JBQWtCO0lBTzNCLE9BQU8sQ0FBQyxPQUFPO0lBQ2YsT0FBTyxDQUFDLEdBQUc7SUFGYixZQUNVLE9BQU8sRUFBRSxVQUFVLEVBQUUsRUFDckIsR0FBRyxFQUFFLFlBQVksRUFDdkI7SUFFRSxLQUFLLENBQUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxFQUFFLE1BQU0sR0FBRSxVQUFVLEVBQU8sR0FBRyxPQUFPLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0EyRGhIO0lBRUssTUFBTSxDQUFDLEtBQUssRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLFVBQVUsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBTWhFO1lBTWEsWUFBWTtJQVFwQixLQUFLLElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBYS9CO0NBQ0Y7QUFpQkQ7Ozs7Ozs7Ozs7R0FVRztBQUNILHdCQUFnQixhQUFhLENBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRSxLQUFLLEdBQUUsTUFBVyxHQUFHLE1BQU0sQ0FPM0U7QUFFRDs7Ozs7Ozs7Ozs7O0dBWUc7QUFDSCx3QkFBZ0IsZUFBZSxDQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsRUFBRSxLQUFLLEdBQUUsTUFBVyxHQUFHLE1BQU0sRUFBRSxDQUVsRiJ9
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFja2VuZC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2JhcnJldGVuYmVyZy9iYWNrZW5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDMUMsT0FBTyxFQUFFLFNBQVMsRUFBb0MsTUFBTSxtQkFBbUIsQ0FBQztBQUtoRixxQkFBYSx1QkFBd0IsU0FBUSxLQUFLO0lBQ2hELFlBQVksT0FBTyxFQUFFLE1BQU0sRUFFMUI7Q0FDRjtBQUVEOzs7R0FHRztBQUNILE1BQU0sTUFBTSxjQUFjLEdBQ3RCLEtBQUssR0FDTCxXQUFXLEdBQ1gsZ0JBQWdCLEdBQ2hCLHNCQUFzQixHQUN0QixhQUFhLEdBQ2IsbUJBQW1CLEdBQ25CLFVBQVUsR0FDVixnQkFBZ0IsQ0FBQztBQUVyQjs7R0FFRztBQUNILE1BQU0sTUFBTSx1QkFBdUIsR0FBRztJQUNwQzs7Ozs7Ozs7OztPQVVHO0lBQ0gsY0FBYyxDQUFDLEVBQUUsY0FBYyxDQUFDO0lBSWhDLDBEQUEwRDtJQUMxRCxNQUFNLENBQUMsRUFBRSxPQUFPLENBQUM7SUFDakIsb0RBQW9EO0lBQ3BELFFBQVEsQ0FBQyxFQUFFLE9BQU8sQ0FBQztJQUNuQiwrREFBK0Q7SUFDL0QsUUFBUSxDQUFDLEVBQUUsT0FBTyxDQUFDO0lBQ25CLHlEQUF5RDtJQUN6RCxVQUFVLENBQUMsRUFBRSxPQUFPLENBQUM7Q0FDdEIsQ0FBQztBQWtGRixxQkFBYSx3QkFBd0I7SUFDdkIsT0FBTyxDQUFDLEdBQUc7SUFBdkIsWUFBb0IsR0FBRyxFQUFFLFlBQVksRUFBSTtJQUVuQyxXQUFXLENBQ2YsU0FBUyxFQUFFLFNBQVMsR0FBRztRQUFFLGVBQWUsRUFBRSxVQUFVLENBQUE7S0FBRSxFQUN0RCxPQUFPLENBQUMsRUFBRSx1QkFBdUIsR0FDaEMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQVlsQjtDQUNGO0FBRUQscUJBQWEsZ0JBQWdCO0lBVXpCLE9BQU8sQ0FBQyxHQUFHO0lBSmIsT0FBTyxDQUFDLHdCQUF3QixDQUFhO0lBRTdDLFlBQ0UsWUFBWSxFQUFFLE1BQU0sRUFDWixHQUFHLEVBQUUsWUFBWSxFQUcxQjtJQUVLLGFBQWEsQ0FBQyxpQkFBaUIsRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLEVBQUUsdUJBQXVCLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQW9CeEc7SUFFSyxXQUFXLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsRUFBRSx1QkFBdUIsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBb0IzRjtJQUVLLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxFQUFFLHVCQUF1QixHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FTL0U7SUFFRCwrQ0FBK0M7SUFDekMsbUJBQW1CLENBQUMsRUFBRSxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsRUFBRSx1QkFBdUIsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBTTVGO0lBR0ssK0JBQStCLENBRW5DLE1BQU0sRUFBRSxVQUFVLEVBRWxCLGtCQUFrQixFQUFFLE1BQU0sRUFDMUIsT0FBTyxDQUFDLEVBQUUsdUJBQXVCLEdBQ2hDLE9BQU8sQ0FBQztRQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsQ0FBQztRQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsQ0FBQztRQUFDLE1BQU0sRUFBRSxNQUFNLENBQUE7S0FBRSxDQUFDLENBaUM1RTtDQUNGO0FBRUQscUJBQWEsa0JBQWtCO0lBTzNCLE9BQU8sQ0FBQyxPQUFPO0lBQ2YsT0FBTyxDQUFDLEdBQUc7SUFDWCxPQUFPLENBQUMsWUFBWTtJQUh0QixZQUNVLE9BQU8sRUFBRSxVQUFVLEVBQUUsRUFDckIsR0FBRyxFQUFFLFlBQVksRUFDakIsWUFBWSxHQUFFLE1BQU0sRUFBTyxFQUNqQztJQUVFLEtBQUssQ0FBQyxVQUFVLEVBQUUsVUFBVSxFQUFFLEVBQUUsTUFBTSxHQUFFLFVBQVUsRUFBTyxHQUFHLE9BQU8sQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQTREaEg7SUFFSyxNQUFNLENBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsVUFBVSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FNaEU7WUFNYSxZQUFZO0lBUXBCLEtBQUssSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FhL0I7Q0FDRjtBQWlCRDs7Ozs7Ozs7OztHQVVHO0FBQ0gsd0JBQWdCLGFBQWEsQ0FBQyxLQUFLLEVBQUUsVUFBVSxFQUFFLEtBQUssR0FBRSxNQUFXLEdBQUcsTUFBTSxDQU8zRTtBQUVEOzs7Ozs7Ozs7Ozs7R0FZRztBQUNILHdCQUFnQixlQUFlLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxFQUFFLEtBQUssR0FBRSxNQUFXLEdBQUcsTUFBTSxFQUFFLENBRWxGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../../../src/barretenberg/backend.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../../../src/barretenberg/backend.ts"],"names":[],"mappings":"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"}
@@ -212,13 +212,15 @@ exports.UltraHonkBackend = UltraHonkBackend;
212
212
  class AztecClientBackend {
213
213
  acirBuf;
214
214
  api;
215
+ circuitNames;
215
216
  // These type assertions are used so that we don't
216
217
  // have to initialize `api` in the constructor.
217
218
  // These are initialized asynchronously in the `init` function,
218
219
  // constructors cannot be asynchronous which is why we do this.
219
- constructor(acirBuf, api) {
220
+ constructor(acirBuf, api, circuitNames = []) {
220
221
  this.acirBuf = acirBuf;
221
222
  this.api = api;
223
+ this.circuitNames = circuitNames;
222
224
  }
223
225
  async prove(witnessBuf, vksBuf = []) {
224
226
  if (vksBuf.length !== 0 && this.acirBuf.length !== witnessBuf.length) {
@@ -235,7 +237,7 @@ class AztecClientBackend {
235
237
  const bytecode = this.acirBuf[i];
236
238
  const witness = witnessBuf[i] || new Uint8Array(0);
237
239
  const vk = vksBuf[i] || new Uint8Array(0);
238
- const functionName = `unknown_wasm_${i}`;
240
+ const functionName = this.circuitNames[i] || `circuit_${i}`;
239
241
  // Load the circuit
240
242
  this.api.chonkLoad({
241
243
  circuit: {
@@ -254,10 +256,11 @@ class AztecClientBackend {
254
256
  // The API currently expects a msgpack-encoded API.
255
257
  const proof = new msgpackr_1.Encoder({ useRecords: false }).encode((0, api_types_js_1.fromChonkProof)(proveResult.proof));
256
258
  // Generate the VK
259
+ const lastIdx = this.acirBuf.length - 1;
257
260
  const vkResult = await this.api.chonkComputeVk({
258
261
  circuit: {
259
- name: 'hiding',
260
- bytecode: this.acirBuf[this.acirBuf.length - 1],
262
+ name: this.circuitNames[lastIdx] || 'circuit',
263
+ bytecode: this.acirBuf[lastIdx],
261
264
  },
262
265
  });
263
266
  const proofFields = [
@@ -293,11 +296,11 @@ class AztecClientBackend {
293
296
  }
294
297
  async gates() {
295
298
  const circuitSizes = [];
296
- for (const buf of this.acirBuf) {
299
+ for (let i = 0; i < this.acirBuf.length; i++) {
297
300
  const gates = await this.api.chonkStats({
298
301
  circuit: {
299
- name: 'circuit',
300
- bytecode: buf,
302
+ name: this.circuitNames[i] || `circuit_${i}`,
303
+ bytecode: this.acirBuf[i],
301
304
  },
302
305
  includeGatesPerOpcode: false,
303
306
  });
@@ -356,4 +359,4 @@ function fieldToString(field, radix = 10) {
356
359
  function fieldsToStrings(fields, radix = 10) {
357
360
  return fields.map(field => fieldToString(field, radix));
358
361
  }
359
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFja2VuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iYXJyZXRlbmJlcmcvYmFja2VuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLGdEQUFnRjtBQUNoRixrRUFBMkY7QUFDM0YsK0JBQThCO0FBQzlCLHVDQUE0QztBQUU1Qyw2QkFBcUMsU0FBUSxLQUFLO0lBQ2hELFlBQVksT0FBZSxFQUFFO1FBQzNCLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUFBLENBQ2hCO0NBQ0Y7O0FBNkNELFNBQVMsMkJBQTJCLENBQUMsT0FBaUMsRUFLcEU7SUFDQSw0RkFBNEY7SUFDNUYsSUFBSSxPQUFPLEVBQUUsY0FBYyxFQUFFLENBQUM7UUFDNUIsTUFBTSxhQUFhLEdBQUcsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQy9HLElBQUksYUFBYSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUM3QixNQUFNLElBQUksS0FBSyxDQUNiLDBGQUEwRjtnQkFDeEYsMkJBQTJCLENBQzlCLENBQUM7UUFDSixDQUFDO1FBRUQsUUFBUSxPQUFPLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDL0IsS0FBSyxLQUFLO2dCQUNSLE9BQU8sRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSx5QkFBeUIsRUFBRSxLQUFLLEVBQUUsQ0FBQztZQUNsSCxLQUFLLFdBQVc7Z0JBQ2QsT0FBTyxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLHlCQUF5QixFQUFFLEtBQUssRUFBRSxDQUFDO1lBQ2pILEtBQUssZ0JBQWdCO2dCQUNu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
362
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFja2VuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iYXJyZXRlbmJlcmcvYmFja2VuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLGdEQUFnRjtBQUNoRixrRUFBMkY7QUFDM0YsK0JBQThCO0FBQzlCLHVDQUE0QztBQUU1Qyw2QkFBcUMsU0FBUSxLQUFLO0lBQ2hELFlBQVksT0FBZSxFQUFFO1FBQzNCLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUFBLENBQ2hCO0NBQ0Y7O0FBNkNELFNBQVMsMkJBQTJCLENBQUMsT0FBaUMsRUFLcEU7SUFDQSw0RkFBNEY7SUFDNUYsSUFBSSxPQUFPLEVBQUUsY0FBYyxFQUFFLENBQUM7UUFDNUIsTUFBTSxhQUFhLEdBQUcsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQy9HLElBQUksYUFBYSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUM3QixNQUFNLElBQUksS0FBSyxDQUNiLDBGQUEwRjtnQkFDeEYsMkJBQTJCLENBQzlCLENBQUM7UUFDSixDQUFDO1FBRUQsUUFBUSxPQUFPLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDL0IsS0FBSyxLQUFLO2dCQUNSLE9BQU8sRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSx5QkFBeUIsRUFBRSxLQUFLLEVBQUUsQ0FBQztZQUNsSCxLQUFLLFdBQVc7Z0JBQ2QsT0FBTyxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLHlCQUF5QixFQUFFLEtBQUssRUFBRSxDQUFDO1lBQ2pILEtBQUssZ0JBQWdCO2dCQUNu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