@aztec/bb.js 0.0.1-alpha.6 → 0.0.1-fake-ceab37513c

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 (227) hide show
  1. package/README.md +69 -33
  2. package/package.json +56 -41
  3. package/src/barretenberg/__snapshots__/pedersen.test.ts.snap +156 -0
  4. package/src/barretenberg/__snapshots__/poseidon.test.ts.snap +40 -0
  5. package/src/barretenberg/backend.ts +378 -0
  6. package/src/barretenberg/blake2s.test.ts +70 -0
  7. package/src/{barretenberg_api → barretenberg}/common.test.ts +7 -5
  8. package/src/barretenberg/index.ts +204 -0
  9. package/src/barretenberg/pedersen.test.ts +62 -0
  10. package/src/barretenberg/poseidon.test.ts +39 -0
  11. package/src/barretenberg_api/index.ts +1128 -383
  12. package/src/barretenberg_wasm/barretenberg_wasm_base/index.ts +138 -0
  13. package/src/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.ts +11 -0
  14. package/src/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.ts +13 -0
  15. package/src/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.ts +21 -0
  16. package/src/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.ts +19 -0
  17. package/src/{barretenberg_binder/heap_allocator_sync.ts → barretenberg_wasm/barretenberg_wasm_main/heap_allocator.ts} +20 -17
  18. package/src/barretenberg_wasm/barretenberg_wasm_main/index.ts +167 -0
  19. package/src/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.ts +11 -0
  20. package/src/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.ts +13 -0
  21. package/src/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.ts +21 -0
  22. package/src/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.ts +19 -0
  23. package/src/barretenberg_wasm/barretenberg_wasm_thread/index.ts +47 -0
  24. package/src/barretenberg_wasm/fetch_code/browser/barretenberg-threads.ts +3 -0
  25. package/src/barretenberg_wasm/fetch_code/browser/barretenberg.ts +3 -0
  26. package/src/barretenberg_wasm/fetch_code/browser/index.ts +34 -0
  27. package/src/barretenberg_wasm/fetch_code/index.ts +1 -0
  28. package/src/barretenberg_wasm/fetch_code/node/index.ts +34 -0
  29. package/src/barretenberg_wasm/fetch_code/wasm-module.d.ts +4 -0
  30. package/src/barretenberg_wasm/helpers/browser/index.ts +47 -0
  31. package/src/barretenberg_wasm/helpers/index.ts +1 -0
  32. package/src/barretenberg_wasm/{node → helpers/node}/index.ts +24 -15
  33. package/src/barretenberg_wasm/index.test.ts +45 -0
  34. package/src/barretenberg_wasm/index.ts +22 -1
  35. package/src/benchmark/index.ts +26 -0
  36. package/src/benchmark/timer.ts +45 -0
  37. package/src/bigint-array/index.ts +39 -17
  38. package/src/bindgen/index.ts +2 -2
  39. package/src/bindgen/mappings.ts +3 -2
  40. package/src/bindgen/typescript.ts +50 -25
  41. package/src/cbind/README.md +1 -0
  42. package/src/cbind/generate.ts +89 -0
  43. package/src/cbind/schema_compiler.ts +833 -0
  44. package/src/crs/browser/cached_net_crs.ts +41 -2
  45. package/src/crs/browser/index.ts +1 -1
  46. package/src/crs/index.ts +1 -1
  47. package/src/crs/net_crs.ts +114 -19
  48. package/src/crs/node/index.ts +98 -20
  49. package/src/index.html +1 -1
  50. package/src/index.ts +13 -5
  51. package/src/log/browser/index.ts +35 -0
  52. package/src/log/index.ts +1 -0
  53. package/src/log/node/index.ts +52 -0
  54. package/src/log/types.ts +6 -0
  55. package/src/main.ts +395 -185
  56. package/src/proof/index.ts +94 -0
  57. package/src/random/browser/index.ts +1 -1
  58. package/src/retry/index.ts +50 -0
  59. package/src/serialize/buffer_reader.ts +4 -1
  60. package/src/types/fields.ts +46 -18
  61. package/src/types/point.ts +4 -1
  62. package/dest/async_map/index.d.ts +0 -10
  63. package/dest/async_map/index.d.ts.map +0 -1
  64. package/dest/async_map/index.js +0 -16
  65. package/dest/barretenberg-threads.wasm +0 -0
  66. package/dest/barretenberg.wasm +0 -0
  67. package/dest/barretenberg_api/blake2s.test.d.ts +0 -2
  68. package/dest/barretenberg_api/blake2s.test.d.ts.map +0 -1
  69. package/dest/barretenberg_api/blake2s.test.js +0 -30
  70. package/dest/barretenberg_api/common.test.d.ts +0 -2
  71. package/dest/barretenberg_api/common.test.d.ts.map +0 -1
  72. package/dest/barretenberg_api/common.test.js +0 -18
  73. package/dest/barretenberg_api/index.d.ts +0 -103
  74. package/dest/barretenberg_api/index.d.ts.map +0 -1
  75. package/dest/barretenberg_api/index.js +0 -379
  76. package/dest/barretenberg_api/pedersen.test.d.ts +0 -2
  77. package/dest/barretenberg_api/pedersen.test.d.ts.map +0 -1
  78. package/dest/barretenberg_api/pedersen.test.js +0 -69
  79. package/dest/barretenberg_api/schnorr.test.d.ts +0 -2
  80. package/dest/barretenberg_api/schnorr.test.d.ts.map +0 -1
  81. package/dest/barretenberg_api/schnorr.test.js +0 -113
  82. package/dest/barretenberg_binder/heap_allocator.d.ts +0 -22
  83. package/dest/barretenberg_binder/heap_allocator.d.ts.map +0 -1
  84. package/dest/barretenberg_binder/heap_allocator.js +0 -59
  85. package/dest/barretenberg_binder/heap_allocator_sync.d.ts +0 -22
  86. package/dest/barretenberg_binder/heap_allocator_sync.d.ts.map +0 -1
  87. package/dest/barretenberg_binder/heap_allocator_sync.js +0 -58
  88. package/dest/barretenberg_binder/index.d.ts +0 -32
  89. package/dest/barretenberg_binder/index.d.ts.map +0 -1
  90. package/dest/barretenberg_binder/index.js +0 -73
  91. package/dest/barretenberg_wasm/barretenberg_wasm.d.ts +0 -50
  92. package/dest/barretenberg_wasm/barretenberg_wasm.d.ts.map +0 -1
  93. package/dest/barretenberg_wasm/barretenberg_wasm.js +0 -212
  94. package/dest/barretenberg_wasm/barretenberg_wasm.test.d.ts +0 -2
  95. package/dest/barretenberg_wasm/barretenberg_wasm.test.d.ts.map +0 -1
  96. package/dest/barretenberg_wasm/barretenberg_wasm.test.js +0 -43
  97. package/dest/barretenberg_wasm/browser/index.d.ts +0 -8
  98. package/dest/barretenberg_wasm/browser/index.d.ts.map +0 -1
  99. package/dest/barretenberg_wasm/browser/index.js +0 -26
  100. package/dest/barretenberg_wasm/browser/worker.d.ts +0 -2
  101. package/dest/barretenberg_wasm/browser/worker.d.ts.map +0 -1
  102. package/dest/barretenberg_wasm/browser/worker.js +0 -11
  103. package/dest/barretenberg_wasm/index.d.ts +0 -2
  104. package/dest/barretenberg_wasm/index.d.ts.map +0 -1
  105. package/dest/barretenberg_wasm/index.js +0 -2
  106. package/dest/barretenberg_wasm/node/index.d.ts +0 -17
  107. package/dest/barretenberg_wasm/node/index.d.ts.map +0 -1
  108. package/dest/barretenberg_wasm/node/index.js +0 -40
  109. package/dest/barretenberg_wasm/node/node_endpoint.d.ts +0 -8
  110. package/dest/barretenberg_wasm/node/node_endpoint.d.ts.map +0 -1
  111. package/dest/barretenberg_wasm/node/node_endpoint.js +0 -28
  112. package/dest/barretenberg_wasm/node/worker.d.ts +0 -2
  113. package/dest/barretenberg_wasm/node/worker.d.ts.map +0 -1
  114. package/dest/barretenberg_wasm/node/worker.js +0 -9
  115. package/dest/barretenberg_wasm.js +0 -2
  116. package/dest/barretenberg_wasm.js.LICENSE.txt +0 -5
  117. package/dest/bigint-array/index.d.ts +0 -3
  118. package/dest/bigint-array/index.d.ts.map +0 -1
  119. package/dest/bigint-array/index.js +0 -21
  120. package/dest/bindgen/function_declaration.d.ts +0 -11
  121. package/dest/bindgen/function_declaration.d.ts.map +0 -1
  122. package/dest/bindgen/function_declaration.js +0 -2
  123. package/dest/bindgen/index.d.ts +0 -2
  124. package/dest/bindgen/index.d.ts.map +0 -1
  125. package/dest/bindgen/index.js +0 -15
  126. package/dest/bindgen/mappings.d.ts +0 -4
  127. package/dest/bindgen/mappings.d.ts.map +0 -1
  128. package/dest/bindgen/mappings.js +0 -63
  129. package/dest/bindgen/rust.d.ts +0 -2
  130. package/dest/bindgen/rust.d.ts.map +0 -1
  131. package/dest/bindgen/rust.js +0 -43
  132. package/dest/bindgen/to_camel_case.d.ts +0 -2
  133. package/dest/bindgen/to_camel_case.d.ts.map +0 -1
  134. package/dest/bindgen/to_camel_case.js +0 -11
  135. package/dest/bindgen/typescript.d.ts +0 -2
  136. package/dest/bindgen/typescript.d.ts.map +0 -1
  137. package/dest/bindgen/typescript.js +0 -80
  138. package/dest/crs/browser/cached_net_crs.d.ts +0 -25
  139. package/dest/crs/browser/cached_net_crs.d.ts.map +0 -1
  140. package/dest/crs/browser/cached_net_crs.js +0 -54
  141. package/dest/crs/browser/index.d.ts +0 -2
  142. package/dest/crs/browser/index.d.ts.map +0 -1
  143. package/dest/crs/browser/index.js +0 -2
  144. package/dest/crs/index.d.ts +0 -2
  145. package/dest/crs/index.d.ts.map +0 -1
  146. package/dest/crs/index.js +0 -2
  147. package/dest/crs/net_crs.d.ts +0 -36
  148. package/dest/crs/net_crs.d.ts.map +0 -1
  149. package/dest/crs/net_crs.js +0 -59
  150. package/dest/crs/node/file_crs.d.ts +0 -37
  151. package/dest/crs/node/file_crs.d.ts.map +0 -1
  152. package/dest/crs/node/file_crs.js +0 -51
  153. package/dest/crs/node/index.d.ts +0 -31
  154. package/dest/crs/node/index.d.ts.map +0 -1
  155. package/dest/crs/node/index.js +0 -41
  156. package/dest/examples/simple.rawtest.d.ts +0 -2
  157. package/dest/examples/simple.rawtest.d.ts.map +0 -1
  158. package/dest/examples/simple.rawtest.js +0 -29
  159. package/dest/examples/simple.test.d.ts +0 -2
  160. package/dest/examples/simple.test.d.ts.map +0 -1
  161. package/dest/examples/simple.test.js +0 -22
  162. package/dest/factory/index.d.ts +0 -21
  163. package/dest/factory/index.d.ts.map +0 -1
  164. package/dest/factory/index.js +0 -34
  165. package/dest/index.d.ts +0 -6
  166. package/dest/index.d.ts.map +0 -1
  167. package/dest/index.html +0 -1
  168. package/dest/index.js +0 -6
  169. package/dest/main.d.ts +0 -10
  170. package/dest/main.d.ts.map +0 -1
  171. package/dest/main.js +0 -280
  172. package/dest/random/browser/index.d.ts +0 -2
  173. package/dest/random/browser/index.d.ts.map +0 -1
  174. package/dest/random/browser/index.js +0 -31
  175. package/dest/random/index.d.ts +0 -2
  176. package/dest/random/index.d.ts.map +0 -1
  177. package/dest/random/index.js +0 -2
  178. package/dest/random/node/index.d.ts +0 -2
  179. package/dest/random/node/index.d.ts.map +0 -1
  180. package/dest/random/node/index.js +0 -5
  181. package/dest/serialize/buffer_reader.d.ts +0 -28
  182. package/dest/serialize/buffer_reader.d.ts.map +0 -1
  183. package/dest/serialize/buffer_reader.js +0 -66
  184. package/dest/serialize/index.d.ts +0 -4
  185. package/dest/serialize/index.d.ts.map +0 -1
  186. package/dest/serialize/index.js +0 -4
  187. package/dest/serialize/output_type.d.ts +0 -11
  188. package/dest/serialize/output_type.d.ts.map +0 -1
  189. package/dest/serialize/output_type.js +0 -44
  190. package/dest/serialize/serialize.d.ts +0 -53
  191. package/dest/serialize/serialize.d.ts.map +0 -1
  192. package/dest/serialize/serialize.js +0 -139
  193. package/dest/simple_test.js +0 -2
  194. package/dest/simple_test.js.LICENSE.txt +0 -14
  195. package/dest/types/fields.d.ts +0 -33
  196. package/dest/types/fields.d.ts.map +0 -1
  197. package/dest/types/fields.js +0 -86
  198. package/dest/types/fixed_size_buffer.d.ts +0 -26
  199. package/dest/types/fixed_size_buffer.d.ts.map +0 -1
  200. package/dest/types/fixed_size_buffer.js +0 -54
  201. package/dest/types/index.d.ts +0 -6
  202. package/dest/types/index.d.ts.map +0 -1
  203. package/dest/types/index.js +0 -6
  204. package/dest/types/point.d.ts +0 -17
  205. package/dest/types/point.d.ts.map +0 -1
  206. package/dest/types/point.js +0 -32
  207. package/dest/types/ptr.d.ts +0 -13
  208. package/dest/types/ptr.d.ts.map +0 -1
  209. package/dest/types/ptr.js +0 -20
  210. package/dest/types/raw_buffer.d.ts +0 -3
  211. package/dest/types/raw_buffer.d.ts.map +0 -1
  212. package/dest/types/raw_buffer.js +0 -5
  213. package/src/barretenberg_api/blake2s.test.ts +0 -39
  214. package/src/barretenberg_api/pedersen.test.ts +0 -84
  215. package/src/barretenberg_api/schnorr.test.ts +0 -169
  216. package/src/barretenberg_binder/heap_allocator.ts +0 -62
  217. package/src/barretenberg_binder/index.ts +0 -76
  218. package/src/barretenberg_wasm/barretenberg_wasm.test.ts +0 -52
  219. package/src/barretenberg_wasm/barretenberg_wasm.ts +0 -246
  220. package/src/barretenberg_wasm/browser/index.ts +0 -32
  221. package/src/barretenberg_wasm/browser/worker.ts +0 -13
  222. package/src/barretenberg_wasm/node/worker.ts +0 -10
  223. package/src/crs/node/file_crs.ts +0 -60
  224. package/src/examples/simple.rawtest.ts +0 -37
  225. package/src/examples/simple.test.ts +0 -27
  226. package/src/factory/index.ts +0 -36
  227. /package/src/barretenberg_wasm/{node → helpers/node}/node_endpoint.ts +0 -0
@@ -0,0 +1,94 @@
1
+ /**
2
+ * @description
3
+ * The representation of a proof
4
+ * */
5
+ export type ProofData = {
6
+ /** @description Public inputs of a proof */
7
+ publicInputs: string[];
8
+ /** @description An byte array representing the proof */
9
+ proof: Uint8Array;
10
+ };
11
+
12
+ export const PAIRING_POINTS_SIZE = 16;
13
+
14
+ // Fields are 32 bytes
15
+ const fieldByteSize = 32;
16
+
17
+ export function splitHonkProof(
18
+ proofWithPublicInputs: Uint8Array,
19
+ numPublicInputs: number,
20
+ ): { publicInputs: Uint8Array; proof: Uint8Array } {
21
+ const publicInputs = proofWithPublicInputs.slice(0, numPublicInputs * fieldByteSize);
22
+ const proof = proofWithPublicInputs.slice(numPublicInputs * fieldByteSize);
23
+
24
+ return {
25
+ proof,
26
+ publicInputs,
27
+ };
28
+ }
29
+
30
+ export function reconstructHonkProof(publicInputs: Uint8Array, proof: Uint8Array): Uint8Array {
31
+ const proofWithPublicInputs = Uint8Array.from([...publicInputs, ...proof]);
32
+ return proofWithPublicInputs;
33
+ }
34
+
35
+ export function deflattenFields(flattenedFields: Uint8Array): string[] {
36
+ const publicInputSize = 32;
37
+ const chunkedFlattenedPublicInputs: Uint8Array[] = [];
38
+
39
+ for (let i = 0; i < flattenedFields.length; i += publicInputSize) {
40
+ const publicInput = flattenedFields.slice(i, i + publicInputSize);
41
+ chunkedFlattenedPublicInputs.push(publicInput);
42
+ }
43
+
44
+ return chunkedFlattenedPublicInputs.map(uint8ArrayToHex);
45
+ }
46
+
47
+ export function flattenFieldsAsArray(fields: string[]): Uint8Array {
48
+ const flattenedPublicInputs = fields.map(hexToUint8Array);
49
+ return flattenUint8Arrays(flattenedPublicInputs);
50
+ }
51
+
52
+ function flattenUint8Arrays(arrays: Uint8Array[]): Uint8Array {
53
+ const totalLength = arrays.reduce((acc, val) => acc + val.length, 0);
54
+ const result = new Uint8Array(totalLength);
55
+
56
+ let offset = 0;
57
+ for (const arr of arrays) {
58
+ result.set(arr, offset);
59
+ offset += arr.length;
60
+ }
61
+
62
+ return result;
63
+ }
64
+
65
+ export function uint8ArrayToHex(buffer: Uint8Array): string {
66
+ const hex: string[] = [];
67
+
68
+ buffer.forEach(function (i) {
69
+ let h = i.toString(16);
70
+ if (h.length % 2) {
71
+ h = '0' + h;
72
+ }
73
+ hex.push(h);
74
+ });
75
+
76
+ return '0x' + hex.join('');
77
+ }
78
+
79
+ export function hexToUint8Array(hex: string): Uint8Array {
80
+ const sanitizedHex = BigInt(hex).toString(16).padStart(64, '0');
81
+
82
+ const len = sanitizedHex.length / 2;
83
+ const u8 = new Uint8Array(len);
84
+
85
+ let i = 0;
86
+ let j = 0;
87
+ while (i < len) {
88
+ u8[i] = parseInt(sanitizedHex.slice(j, j + 2), 16);
89
+ i += 1;
90
+ j += 2;
91
+ }
92
+
93
+ return u8;
94
+ }
@@ -1,7 +1,7 @@
1
1
  export const randomBytes = (len: number) => {
2
2
  const getWebCrypto = () => {
3
3
  if (typeof window !== 'undefined' && window.crypto) return window.crypto;
4
- if (typeof self !== 'undefined' && self.crypto) return self.crypto;
4
+ if (typeof globalThis !== 'undefined' && globalThis.crypto) return globalThis.crypto;
5
5
  return undefined;
6
6
  };
7
7
 
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Generates a backoff sequence for retrying operations with an increasing delay.
3
+ * The backoff sequence follows this pattern: 1, 1, 1, 2, 4, 8, 16, 32, 64, ...
4
+ * This generator can be used in combination with the `retry` function to perform
5
+ * retries with exponential backoff and capped at 64 seconds between attempts.
6
+ *
7
+ * @returns A generator that yields the next backoff value in seconds as an integer.
8
+ */
9
+ export function* backoffGenerator() {
10
+ const v = [1, 1, 1, 2, 4, 8, 16, 32, 64];
11
+ let i = 0;
12
+ while (true) {
13
+ yield v[Math.min(i++, v.length - 1)];
14
+ }
15
+ }
16
+
17
+ /**
18
+ * Generates a backoff sequence based on the array of retry intervals to use with the `retry` function.
19
+ * @param retries - Intervals to retry (in seconds).
20
+ * @returns A generator sequence.
21
+ */
22
+ export function* makeBackoff(retries: number[]) {
23
+ for (const retry of retries) {
24
+ yield retry;
25
+ }
26
+ }
27
+
28
+ /**
29
+ * Retry a given asynchronous function with a specific backoff strategy, until it succeeds or backoff generator ends.
30
+ * It logs the error and retry interval in case an error is caught. The function can be named for better log output.
31
+ *
32
+ * @param fn - The asynchronous function to be retried.
33
+ * @param backoff - The optional backoff generator providing the intervals in seconds between retries. Defaults to a predefined series.
34
+ * @returns A Promise that resolves with the successful result of the provided function, or rejects if backoff generator ends.
35
+ * @throws If `NoRetryError` is thrown by the `fn`, it is rethrown.
36
+ */
37
+ export async function retry<Result>(fn: () => Promise<Result>, backoff = backoffGenerator()) {
38
+ while (true) {
39
+ try {
40
+ return await fn();
41
+ } catch (err: any) {
42
+ const s = backoff.next().value;
43
+ if (s === undefined) {
44
+ throw err;
45
+ }
46
+ await new Promise(resolve => setTimeout(resolve, s * 1000));
47
+ continue;
48
+ }
49
+ }
50
+ }
@@ -1,6 +1,9 @@
1
1
  export class BufferReader {
2
2
  private index: number;
3
- constructor(private buffer: Uint8Array, offset = 0) {
3
+ constructor(
4
+ private buffer: Uint8Array,
5
+ offset = 0,
6
+ ) {
4
7
  this.index = offset;
5
8
  }
6
9
 
@@ -1,32 +1,55 @@
1
1
  import { randomBytes } from '../random/index.js';
2
- import { toBigIntBE, toBufferBE } from '../bigint-array/index.js';
2
+ import {
3
+ buffer32BytesToBigIntBE,
4
+ uint8ArrayToBigIntBE,
5
+ bigIntToBufferBE,
6
+ bigIntToUint8ArrayBE,
7
+ } from '../bigint-array/index.js';
3
8
  import { BufferReader, uint8ArrayToHexString } from '../serialize/index.js';
4
9
 
10
+ // TODO(#4189): Replace with implementation in yarn-project/foundation/src/fields/fields.ts
11
+ /**
12
+ * Fr field class.
13
+ * @dev This class is used to represent elements of BN254 scalar field or elements in the base field of Grumpkin.
14
+ * (Grumpkin's scalar field corresponds to BN254's base field and vice versa.)
15
+ */
5
16
  export class Fr {
6
17
  static ZERO = new Fr(0n);
7
18
  static MODULUS = 0x30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001n;
8
19
  static MAX_VALUE = this.MODULUS - 1n;
9
20
  static SIZE_IN_BYTES = 32;
10
-
11
- constructor(public readonly value: bigint) {
12
- if (value > Fr.MAX_VALUE) {
13
- throw new Error(`Fr out of range ${value}.`);
21
+ value: Uint8Array;
22
+
23
+ constructor(value: Uint8Array | Buffer | bigint) {
24
+ // We convert buffer value to bigint to be able to check it fits within modulus
25
+ const valueBigInt =
26
+ typeof value === 'bigint'
27
+ ? value
28
+ : value instanceof Buffer
29
+ ? buffer32BytesToBigIntBE(value)
30
+ : uint8ArrayToBigIntBE(value);
31
+
32
+ if (valueBigInt > Fr.MAX_VALUE) {
33
+ throw new Error(`Value 0x${valueBigInt.toString(16)} is greater or equal to field modulus.`);
14
34
  }
35
+
36
+ this.value =
37
+ typeof value === 'bigint' ? bigIntToUint8ArrayBE(value) : value instanceof Buffer ? new Uint8Array(value) : value;
15
38
  }
16
39
 
17
40
  static random() {
18
- const r = toBigIntBE(randomBytes(64)) % Fr.MODULUS;
41
+ const r = uint8ArrayToBigIntBE(randomBytes(64)) % Fr.MODULUS;
19
42
  return new this(r);
20
43
  }
21
44
 
22
- static fromBuffer(buffer: Uint8Array | BufferReader) {
45
+ static fromBuffer(buffer: Uint8Array | Buffer | BufferReader) {
23
46
  const reader = BufferReader.asReader(buffer);
24
- return new this(toBigIntBE(reader.readBytes(this.SIZE_IN_BYTES)));
47
+ return new this(reader.readBytes(this.SIZE_IN_BYTES));
25
48
  }
26
49
 
27
50
  static fromBufferReduce(buffer: Uint8Array | BufferReader) {
28
51
  const reader = BufferReader.asReader(buffer);
29
- return new this(toBigIntBE(reader.readBytes(this.SIZE_IN_BYTES)) % Fr.MODULUS);
52
+ return new this(uint8ArrayToBigIntBE(reader.readBytes(this.SIZE_IN_BYTES)) % Fr.MODULUS);
30
53
  }
31
54
 
32
55
  static fromString(str: string) {
@@ -34,7 +57,7 @@ export class Fr {
34
57
  }
35
58
 
36
59
  toBuffer() {
37
- return toBufferBE(this.value, Fr.SIZE_IN_BYTES);
60
+ return this.value;
38
61
  }
39
62
 
40
63
  toString() {
@@ -42,14 +65,19 @@ export class Fr {
42
65
  }
43
66
 
44
67
  equals(rhs: Fr) {
45
- return this.value === rhs.value;
68
+ return this.value.every((v, i) => v === rhs.value[i]);
46
69
  }
47
70
 
48
71
  isZero() {
49
- return this.value === 0n;
72
+ return this.value.every(v => v === 0);
50
73
  }
51
74
  }
52
75
 
76
+ /**
77
+ * Fq field class.
78
+ * @dev This class is used to represent elements of BN254 base field or elements in the scalar field of Grumpkin.
79
+ * (Grumpkin's scalar field corresponds to BN254's base field and vice versa.)
80
+ */
53
81
  export class Fq {
54
82
  static MODULUS = 0x30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47n;
55
83
  static MAX_VALUE = this.MODULUS - 1n;
@@ -62,18 +90,18 @@ export class Fq {
62
90
  }
63
91
 
64
92
  static random() {
65
- const r = toBigIntBE(randomBytes(64)) % Fq.MODULUS;
93
+ const r = uint8ArrayToBigIntBE(randomBytes(64)) % Fq.MODULUS;
66
94
  return new this(r);
67
95
  }
68
96
 
69
- static fromBuffer(buffer: Uint8Array | BufferReader) {
97
+ static fromBuffer(buffer: Uint8Array | Buffer | BufferReader) {
70
98
  const reader = BufferReader.asReader(buffer);
71
- return new this(toBigIntBE(reader.readBytes(this.SIZE_IN_BYTES)));
99
+ return new this(uint8ArrayToBigIntBE(reader.readBytes(this.SIZE_IN_BYTES)));
72
100
  }
73
101
 
74
- static fromBufferReduce(buffer: Uint8Array | BufferReader) {
102
+ static fromBufferReduce(buffer: Uint8Array | Buffer | BufferReader) {
75
103
  const reader = BufferReader.asReader(buffer);
76
- return new this(toBigIntBE(reader.readBytes(this.SIZE_IN_BYTES)) % Fr.MODULUS);
104
+ return new this(uint8ArrayToBigIntBE(reader.readBytes(this.SIZE_IN_BYTES)) % Fr.MODULUS);
77
105
  }
78
106
 
79
107
  static fromString(str: string) {
@@ -81,7 +109,7 @@ export class Fq {
81
109
  }
82
110
 
83
111
  toBuffer() {
84
- return toBufferBE(this.value, Fq.SIZE_IN_BYTES);
112
+ return bigIntToBufferBE(this.value, Fq.SIZE_IN_BYTES);
85
113
  }
86
114
 
87
115
  toString() {
@@ -5,7 +5,10 @@ export class Point {
5
5
  static SIZE_IN_BYTES = 64;
6
6
  static EMPTY = new Point(Fr.ZERO, Fr.ZERO);
7
7
 
8
- constructor(public readonly x: Fr, public readonly y: Fr) {}
8
+ constructor(
9
+ public readonly x: Fr,
10
+ public readonly y: Fr,
11
+ ) {}
9
12
 
10
13
  static random() {
11
14
  // TODO: This is not a point on the curve!
@@ -1,10 +0,0 @@
1
- /**
2
- * Much the same as Array.map, only it takes an async fn as an element handler, and ensures that each element handler
3
- * is executed sequentially.
4
- * The pattern of `await Promise.all(arr.map(async e => { ... }))` only works if one's happy with each element handler
5
- * being run concurrently.
6
- * If one required sequential execution of async fn's, the only alternative was regular loops with mutable state vars.
7
- * The equivalent with asyncMap: `await asyncMap(arr, async e => { ... })`.
8
- */
9
- export declare function asyncMap<T, U>(arr: T[], fn: (e: T, i: number) => Promise<U>): Promise<U[]>;
10
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/async_map/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,wBAAsB,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAMhG"}
@@ -1,16 +0,0 @@
1
- /**
2
- * Much the same as Array.map, only it takes an async fn as an element handler, and ensures that each element handler
3
- * is executed sequentially.
4
- * The pattern of `await Promise.all(arr.map(async e => { ... }))` only works if one's happy with each element handler
5
- * being run concurrently.
6
- * If one required sequential execution of async fn's, the only alternative was regular loops with mutable state vars.
7
- * The equivalent with asyncMap: `await asyncMap(arr, async e => { ... })`.
8
- */
9
- export async function asyncMap(arr, fn) {
10
- const results = [];
11
- for (let i = 0; i < arr.length; ++i) {
12
- results.push(await fn(arr[i], i));
13
- }
14
- return results;
15
- }
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXN5bmNfbWFwL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLFFBQVEsQ0FBTyxHQUFRLEVBQUUsRUFBbUM7SUFDaEYsTUFBTSxPQUFPLEdBQVEsRUFBRSxDQUFDO0lBQ3hCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxFQUFFO1FBQ25DLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDbkM7SUFDRCxPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDIn0=
Binary file
Binary file
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=blake2s.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"blake2s.test.d.ts","sourceRoot":"","sources":["../../src/barretenberg_api/blake2s.test.ts"],"names":[],"mappings":""}
@@ -1,30 +0,0 @@
1
- import { newBarretenbergApiSync } from '../factory/index.js';
2
- import { Buffer32, Fr } from '../types/index.js';
3
- describe('blake2s', () => {
4
- let api;
5
- beforeAll(async () => {
6
- api = await newBarretenbergApiSync();
7
- });
8
- afterAll(async () => {
9
- await api.destroy();
10
- });
11
- it('blake2s', () => {
12
- const input = Buffer.from('abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789');
13
- const expected = Buffer32.fromBuffer(new Uint8Array([
14
- 0x44, 0xdd, 0xdb, 0x39, 0xbd, 0xb2, 0xaf, 0x80, 0xc1, 0x47, 0x89, 0x4c, 0x1d, 0x75, 0x6a, 0xda, 0x3d, 0x1c,
15
- 0x2a, 0xc2, 0xb1, 0x00, 0x54, 0x1e, 0x04, 0xfe, 0x87, 0xb4, 0xa5, 0x9e, 0x12, 0x43,
16
- ]));
17
- const result = api.blake2s(input);
18
- expect(result).toEqual(expected);
19
- });
20
- it('blake2sToField', () => {
21
- const input = Buffer.from('abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789');
22
- const expected = Fr.fromBufferReduce(new Uint8Array([
23
- 0x44, 0xdd, 0xdb, 0x39, 0xbd, 0xb2, 0xaf, 0x80, 0xc1, 0x47, 0x89, 0x4c, 0x1d, 0x75, 0x6a, 0xda, 0x3d, 0x1c,
24
- 0x2a, 0xc2, 0xb1, 0x00, 0x54, 0x1e, 0x04, 0xfe, 0x87, 0xb4, 0xa5, 0x9e, 0x12, 0x43,
25
- ]));
26
- const result = api.blake2sToField(input);
27
- expect(result).toEqual(expected);
28
- });
29
- });
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxha2Uycy50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2JhcnJldGVuYmVyZ19hcGkvYmxha2Uycy50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzdELE9BQU8sRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHakQsUUFBUSxDQUFDLFNBQVMsRUFBRSxHQUFHLEVBQUU7SUFDdkIsSUFBSSxHQUF3QixDQUFDO0lBRTdCLFNBQVMsQ0FBQyxLQUFLLElBQUksRUFBRTtRQUNuQixHQUFHLEdBQUcsTUFBTSxzQkFBc0IsRUFBRSxDQUFDO0lBQ3ZDLENBQUMsQ0FBQyxDQUFDO0lBRUgsUUFBUSxDQUFDLEtBQUssSUFBSSxFQUFFO1FBQ2xCLE1BQU0sR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3RCLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLFNBQVMsRUFBRSxHQUFHLEVBQUU7UUFDakIsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQywwRUFBMEUsQ0FBQyxDQUFDO1FBQ3RHLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxVQUFVLENBQ2xDLElBQUksVUFBVSxDQUFDO1lBQ2IsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJO1lBQzFHLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJO1NBQ25GLENBQUMsQ0FDSCxDQUFDO1FBQ0YsTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ25DLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLGdCQUFnQixFQUFFLEdBQUcsRUFBRTtRQUN4QixNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLDBFQUEwRSxDQUFDLENBQUM7UUFDdEcsTUFBTSxRQUFRLEdBQUcsRUFBRSxDQUFDLGdCQUFnQixDQUNsQyxJQUFJLFVBQVUsQ0FBQztZQUNiLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSTtZQUMxRyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSTtTQUNuRixDQUFDLENBQ0gsQ0FBQztRQUNGLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNuQyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIn0=
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=common.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"common.test.d.ts","sourceRoot":"","sources":["../../src/barretenberg_api/common.test.ts"],"names":[],"mappings":""}
@@ -1,18 +0,0 @@
1
- import { newBarretenbergApiAsync } from '../factory/index.js';
2
- describe('env', () => {
3
- let api;
4
- beforeAll(async () => {
5
- api = await newBarretenbergApiAsync(3);
6
- });
7
- afterAll(async () => {
8
- await api.destroy();
9
- });
10
- it('thread test', async () => {
11
- // Main thread doesn't do anything in this test, so -1.
12
- const threads = (await api.getNumThreads()) - 1;
13
- const iterations = 100000;
14
- const result = await api.testThreads(threads, iterations);
15
- expect(result).toBe(iterations);
16
- });
17
- });
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYmFycmV0ZW5iZXJnX2FwaS9jb21tb24udGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXdCLHVCQUF1QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFcEYsUUFBUSxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUU7SUFDbkIsSUFBSSxHQUF5QixDQUFDO0lBRTlCLFNBQVMsQ0FBQyxLQUFLLElBQUksRUFBRTtRQUNuQixHQUFHLEdBQUcsTUFBTSx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN6QyxDQUFDLENBQUMsQ0FBQztJQUVILFFBQVEsQ0FBQyxLQUFLLElBQUksRUFBRTtRQUNsQixNQUFNLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN0QixDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyxhQUFhLEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDM0IsdURBQXVEO1FBQ3ZELE1BQU0sT0FBTyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDaEQsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDO1FBQzFCLE1BQU0sTUFBTSxHQUFHLE1BQU0sR0FBRyxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDMUQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNsQyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIn0=
@@ -1,103 +0,0 @@
1
- import { BarretenbergBinder, BarretenbergBinderSync } from '../barretenberg_binder/index.js';
2
- import { Fr, Fq, Point, Buffer32, Buffer128, Ptr } from '../types/index.js';
3
- export declare class BarretenbergApi {
4
- binder: BarretenbergBinder;
5
- constructor(binder: BarretenbergBinder);
6
- destroy(): Promise<void>;
7
- pedersenInit(): Promise<void>;
8
- pedersenCompressFields(left: Fr, right: Fr): Promise<Fr>;
9
- pedersenPlookupCompressFields(left: Fr, right: Fr): Promise<Fr>;
10
- pedersenCompress(inputsBuffer: Fr[]): Promise<Fr>;
11
- pedersenPlookupCompress(inputsBuffer: Fr[]): Promise<Fr>;
12
- pedersenCompressWithHashIndex(inputsBuffer: Fr[], hashIndex: number): Promise<Fr>;
13
- pedersenCommit(inputsBuffer: Fr[]): Promise<Fr>;
14
- pedersenPlookupCommit(inputsBuffer: Fr[]): Promise<Fr>;
15
- pedersenPlookupCommitWithHashIndex(inputsBuffer: Fr[], hashIndex: number): Promise<Fr>;
16
- pedersenBufferToField(data: Uint8Array): Promise<Fr>;
17
- pedersenHashInit(): Promise<void>;
18
- pedersenHashPair(left: Fr, right: Fr): Promise<Fr>;
19
- pedersenHashMultiple(inputsBuffer: Fr[]): Promise<Fr>;
20
- pedersenHashMultipleWithHashIndex(inputsBuffer: Fr[], hashIndex: number): Promise<Fr>;
21
- pedersenHashToTree(data: Fr[]): Promise<Fr[]>;
22
- blake2s(data: Uint8Array): Promise<Buffer32>;
23
- blake2sToField(data: Uint8Array): Promise<Fr>;
24
- schnorrComputePublicKey(privateKey: Fr): Promise<Point>;
25
- schnorrNegatePublicKey(publicKeyBuffer: Point): Promise<Point>;
26
- schnorrConstructSignature(message: Uint8Array, privateKey: Fr): Promise<[Buffer32, Buffer32]>;
27
- schnorrVerifySignature(message: Uint8Array, pubKey: Point, sigS: Buffer32, sigE: Buffer32): Promise<boolean>;
28
- schnorrMultisigCreateMultisigPublicKey(privateKey: Fq): Promise<Buffer128>;
29
- schnorrMultisigValidateAndCombineSignerPubkeys(signerPubkeyBuf: Buffer128[]): Promise<[Point, boolean]>;
30
- schnorrMultisigConstructSignatureRound1(): Promise<[Buffer128, Buffer128]>;
31
- schnorrMultisigConstructSignatureRound2(message: Uint8Array, privateKey: Fq, signerRoundOnePrivateBuf: Buffer128, signerPubkeysBuf: Buffer128[], roundOnePublicBuf: Buffer128[]): Promise<[Fq, boolean]>;
32
- schnorrMultisigCombineSignatures(message: Uint8Array, signerPubkeysBuf: Buffer128[], roundOneBuf: Buffer128[], roundTwoBuf: Fr[]): Promise<[Buffer32, Buffer32, boolean]>;
33
- srsInitSrs(pointsBuf: Uint8Array, numPoints: number, g2PointBuf: Uint8Array): Promise<void>;
34
- examplesSimpleCreateAndVerifyProof(): Promise<boolean>;
35
- testThreads(threads: number, iterations: number): Promise<number>;
36
- testThreadAbort(): Promise<void>;
37
- testAbort(): Promise<void>;
38
- commonInitSlabAllocator(circuitSize: number): Promise<void>;
39
- acirGetCircuitSizes(constraintSystemBuf: Uint8Array): Promise<[number, number, number]>;
40
- acirNewAcirComposer(sizeHint: number): Promise<Ptr>;
41
- acirDeleteAcirComposer(acirComposerPtr: Ptr): Promise<void>;
42
- acirCreateCircuit(acirComposerPtr: Ptr, constraintSystemBuf: Uint8Array, sizeHint: number): Promise<void>;
43
- acirInitProvingKey(acirComposerPtr: Ptr, constraintSystemBuf: Uint8Array): Promise<void>;
44
- acirCreateProof(acirComposerPtr: Ptr, constraintSystemBuf: Uint8Array, witnessBuf: Uint8Array, isRecursive: boolean): Promise<Uint8Array>;
45
- acirLoadVerificationKey(acirComposerPtr: Ptr, vkBuf: Uint8Array): Promise<void>;
46
- acirInitVerificationKey(acirComposerPtr: Ptr): Promise<void>;
47
- acirGetVerificationKey(acirComposerPtr: Ptr): Promise<Uint8Array>;
48
- acirVerifyProof(acirComposerPtr: Ptr, proofBuf: Uint8Array, isRecursive: boolean): Promise<boolean>;
49
- acirGetSolidityVerifier(acirComposerPtr: Ptr): Promise<string>;
50
- acirSerializeProofIntoFields(acirComposerPtr: Ptr, proofBuf: Uint8Array, numInnerPublicInputs: number): Promise<Fr[]>;
51
- acirSerializeVerificationKeyIntoFields(acirComposerPtr: Ptr): Promise<[Fr[], Fr]>;
52
- }
53
- export declare class BarretenbergApiSync {
54
- binder: BarretenbergBinderSync;
55
- constructor(binder: BarretenbergBinderSync);
56
- destroy(): Promise<void>;
57
- pedersenInit(): void;
58
- pedersenCompressFields(left: Fr, right: Fr): Fr;
59
- pedersenPlookupCompressFields(left: Fr, right: Fr): Fr;
60
- pedersenCompress(inputsBuffer: Fr[]): Fr;
61
- pedersenPlookupCompress(inputsBuffer: Fr[]): Fr;
62
- pedersenCompressWithHashIndex(inputsBuffer: Fr[], hashIndex: number): Fr;
63
- pedersenCommit(inputsBuffer: Fr[]): Fr;
64
- pedersenPlookupCommit(inputsBuffer: Fr[]): Fr;
65
- pedersenPlookupCommitWithHashIndex(inputsBuffer: Fr[], hashIndex: number): Fr;
66
- pedersenBufferToField(data: Uint8Array): Fr;
67
- pedersenHashInit(): void;
68
- pedersenHashPair(left: Fr, right: Fr): Fr;
69
- pedersenHashMultiple(inputsBuffer: Fr[]): Fr;
70
- pedersenHashMultipleWithHashIndex(inputsBuffer: Fr[], hashIndex: number): Fr;
71
- pedersenHashToTree(data: Fr[]): Fr[];
72
- blake2s(data: Uint8Array): Buffer32;
73
- blake2sToField(data: Uint8Array): Fr;
74
- schnorrComputePublicKey(privateKey: Fr): Point;
75
- schnorrNegatePublicKey(publicKeyBuffer: Point): Point;
76
- schnorrConstructSignature(message: Uint8Array, privateKey: Fr): [Buffer32, Buffer32];
77
- schnorrVerifySignature(message: Uint8Array, pubKey: Point, sigS: Buffer32, sigE: Buffer32): boolean;
78
- schnorrMultisigCreateMultisigPublicKey(privateKey: Fq): Buffer128;
79
- schnorrMultisigValidateAndCombineSignerPubkeys(signerPubkeyBuf: Buffer128[]): [Point, boolean];
80
- schnorrMultisigConstructSignatureRound1(): [Buffer128, Buffer128];
81
- schnorrMultisigConstructSignatureRound2(message: Uint8Array, privateKey: Fq, signerRoundOnePrivateBuf: Buffer128, signerPubkeysBuf: Buffer128[], roundOnePublicBuf: Buffer128[]): [Fq, boolean];
82
- schnorrMultisigCombineSignatures(message: Uint8Array, signerPubkeysBuf: Buffer128[], roundOneBuf: Buffer128[], roundTwoBuf: Fr[]): [Buffer32, Buffer32, boolean];
83
- srsInitSrs(pointsBuf: Uint8Array, numPoints: number, g2PointBuf: Uint8Array): void;
84
- examplesSimpleCreateAndVerifyProof(): boolean;
85
- testThreads(threads: number, iterations: number): number;
86
- testThreadAbort(): void;
87
- testAbort(): void;
88
- commonInitSlabAllocator(circuitSize: number): void;
89
- acirGetCircuitSizes(constraintSystemBuf: Uint8Array): [number, number, number];
90
- acirNewAcirComposer(sizeHint: number): Ptr;
91
- acirDeleteAcirComposer(acirComposerPtr: Ptr): void;
92
- acirCreateCircuit(acirComposerPtr: Ptr, constraintSystemBuf: Uint8Array, sizeHint: number): void;
93
- acirInitProvingKey(acirComposerPtr: Ptr, constraintSystemBuf: Uint8Array): void;
94
- acirCreateProof(acirComposerPtr: Ptr, constraintSystemBuf: Uint8Array, witnessBuf: Uint8Array, isRecursive: boolean): Uint8Array;
95
- acirLoadVerificationKey(acirComposerPtr: Ptr, vkBuf: Uint8Array): void;
96
- acirInitVerificationKey(acirComposerPtr: Ptr): void;
97
- acirGetVerificationKey(acirComposerPtr: Ptr): Uint8Array;
98
- acirVerifyProof(acirComposerPtr: Ptr, proofBuf: Uint8Array, isRecursive: boolean): boolean;
99
- acirGetSolidityVerifier(acirComposerPtr: Ptr): string;
100
- acirSerializeProofIntoFields(acirComposerPtr: Ptr, proofBuf: Uint8Array, numInnerPublicInputs: number): Fr[];
101
- acirSerializeVerificationKeyIntoFields(acirComposerPtr: Ptr): [Fr[], Fr];
102
- }
103
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/barretenberg_api/index.ts"],"names":[],"mappings":"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"}