@aztec/bb.js 3.0.0-nightly.20251114 → 3.0.0-nightly.20251118

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 (149) 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 +9 -23
  10. package/dest/browser/barretenberg/backend.d.ts.map +1 -1
  11. package/dest/browser/barretenberg/backend.js +24 -84
  12. package/dest/browser/barretenberg/index.d.ts +1 -3
  13. package/dest/browser/barretenberg/index.d.ts.map +1 -1
  14. package/dest/browser/barretenberg/index.js +15 -24
  15. package/dest/browser/{bigint-array/index.d.ts → barretenberg/testing/bigint-buffer.d.ts} +1 -1
  16. package/dest/browser/barretenberg/testing/bigint-buffer.d.ts.map +1 -0
  17. package/dest/browser/barretenberg/testing/bigint-buffer.js +37 -0
  18. package/dest/browser/barretenberg/testing/fields.d.ts +16 -0
  19. package/dest/browser/barretenberg/testing/fields.d.ts.map +1 -0
  20. package/dest/browser/barretenberg/testing/fields.js +48 -0
  21. package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg-threads.js +1 -1
  22. package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg.js +1 -1
  23. package/dest/browser/bb_backends/index.d.ts +8 -5
  24. package/dest/browser/bb_backends/index.d.ts.map +1 -1
  25. package/dest/browser/bb_backends/index.js +5 -5
  26. package/dest/node/barretenberg/backend.d.ts +9 -23
  27. package/dest/node/barretenberg/backend.d.ts.map +1 -1
  28. package/dest/node/barretenberg/backend.js +24 -84
  29. package/dest/node/barretenberg/blake2s.test.js +2 -2
  30. package/dest/node/barretenberg/index.d.ts +1 -3
  31. package/dest/node/barretenberg/index.d.ts.map +1 -1
  32. package/dest/node/barretenberg/index.js +15 -24
  33. package/dest/node/barretenberg/pedersen.test.js +2 -2
  34. package/dest/node/barretenberg/poseidon.bench.test.js +27 -68
  35. package/dest/node/barretenberg/poseidon.test.js +2 -2
  36. package/dest/node/{bigint-array/index.d.ts → barretenberg/testing/bigint-buffer.d.ts} +1 -1
  37. package/dest/node/barretenberg/testing/bigint-buffer.d.ts.map +1 -0
  38. package/dest/node/barretenberg/testing/bigint-buffer.js +37 -0
  39. package/dest/node/barretenberg/testing/fields.d.ts +16 -0
  40. package/dest/node/barretenberg/testing/fields.d.ts.map +1 -0
  41. package/dest/node/barretenberg/testing/fields.js +48 -0
  42. package/dest/node/barretenberg_wasm/barretenberg-threads.wasm.gz +0 -0
  43. package/dest/node/bb_backends/index.d.ts +8 -5
  44. package/dest/node/bb_backends/index.d.ts.map +1 -1
  45. package/dest/node/bb_backends/index.js +5 -5
  46. package/dest/node/bb_backends/node/index.d.ts.map +1 -1
  47. package/dest/node/bb_backends/node/index.js +12 -4
  48. package/dest/node/bb_backends/node/native_shm.d.ts +2 -1
  49. package/dest/node/bb_backends/node/native_shm.d.ts.map +1 -1
  50. package/dest/node/bb_backends/node/native_shm.js +50 -15
  51. package/dest/node/bb_backends/node/native_socket.d.ts +1 -1
  52. package/dest/node/bb_backends/node/native_socket.d.ts.map +1 -1
  53. package/dest/node/bb_backends/node/native_socket.js +28 -19
  54. package/dest/node-cjs/barretenberg/backend.d.ts +9 -23
  55. package/dest/node-cjs/barretenberg/backend.d.ts.map +1 -1
  56. package/dest/node-cjs/barretenberg/backend.js +30 -90
  57. package/dest/node-cjs/barretenberg/blake2s.test.js +6 -6
  58. package/dest/node-cjs/barretenberg/index.d.ts +1 -3
  59. package/dest/node-cjs/barretenberg/index.d.ts.map +1 -1
  60. package/dest/node-cjs/barretenberg/index.js +15 -24
  61. package/dest/node-cjs/barretenberg/pedersen.test.js +9 -9
  62. package/dest/node-cjs/barretenberg/poseidon.bench.test.js +36 -77
  63. package/dest/node-cjs/barretenberg/poseidon.test.js +4 -4
  64. package/dest/node-cjs/{bigint-array/index.d.ts → barretenberg/testing/bigint-buffer.d.ts} +1 -1
  65. package/dest/node-cjs/barretenberg/testing/bigint-buffer.d.ts.map +1 -0
  66. package/dest/node-cjs/barretenberg/testing/bigint-buffer.js +43 -0
  67. package/dest/node-cjs/barretenberg/testing/fields.d.ts +16 -0
  68. package/dest/node-cjs/barretenberg/testing/fields.d.ts.map +1 -0
  69. package/dest/node-cjs/barretenberg/testing/fields.js +52 -0
  70. package/dest/node-cjs/barretenberg_wasm/barretenberg-threads.wasm.gz +0 -0
  71. package/dest/node-cjs/bb_backends/index.d.ts +8 -5
  72. package/dest/node-cjs/bb_backends/index.d.ts.map +1 -1
  73. package/dest/node-cjs/bb_backends/index.js +5 -5
  74. package/dest/node-cjs/bb_backends/node/index.d.ts.map +1 -1
  75. package/dest/node-cjs/bb_backends/node/index.js +12 -4
  76. package/dest/node-cjs/bb_backends/node/native_shm.d.ts +2 -1
  77. package/dest/node-cjs/bb_backends/node/native_shm.d.ts.map +1 -1
  78. package/dest/node-cjs/bb_backends/node/native_shm.js +50 -15
  79. package/dest/node-cjs/bb_backends/node/native_socket.d.ts +1 -1
  80. package/dest/node-cjs/bb_backends/node/native_socket.d.ts.map +1 -1
  81. package/dest/node-cjs/bb_backends/node/native_socket.js +28 -19
  82. package/package.json +1 -1
  83. package/src/barretenberg/backend.ts +19 -97
  84. package/src/barretenberg/blake2s.test.ts +1 -1
  85. package/src/barretenberg/index.ts +14 -24
  86. package/src/barretenberg/pedersen.test.ts +1 -1
  87. package/src/barretenberg/poseidon.bench.test.ts +109 -156
  88. package/src/barretenberg/poseidon.test.ts +1 -1
  89. package/src/{types → barretenberg/testing}/fields.ts +12 -26
  90. package/src/bb_backends/index.ts +8 -5
  91. package/src/bb_backends/node/index.ts +23 -3
  92. package/src/bb_backends/node/native_shm.ts +51 -14
  93. package/src/bb_backends/node/native_socket.ts +31 -17
  94. package/dest/browser/bigint-array/index.d.ts.map +0 -1
  95. package/dest/browser/bigint-array/index.js +0 -37
  96. package/dest/browser/serialize/index.d.ts +0 -2
  97. package/dest/browser/serialize/index.d.ts.map +0 -1
  98. package/dest/browser/serialize/index.js +0 -2
  99. package/dest/browser/serialize/serialize.d.ts +0 -18
  100. package/dest/browser/serialize/serialize.d.ts.map +0 -1
  101. package/dest/browser/serialize/serialize.js +0 -72
  102. package/dest/browser/types/fields.d.ts +0 -23
  103. package/dest/browser/types/fields.d.ts.map +0 -1
  104. package/dest/browser/types/fields.js +0 -61
  105. package/dest/browser/types/index.d.ts +0 -3
  106. package/dest/browser/types/index.d.ts.map +0 -1
  107. package/dest/browser/types/index.js +0 -3
  108. package/dest/browser/types/point.d.ts +0 -18
  109. package/dest/browser/types/point.d.ts.map +0 -1
  110. package/dest/browser/types/point.js +0 -28
  111. package/dest/node/bigint-array/index.d.ts.map +0 -1
  112. package/dest/node/bigint-array/index.js +0 -37
  113. package/dest/node/serialize/index.d.ts +0 -2
  114. package/dest/node/serialize/index.d.ts.map +0 -1
  115. package/dest/node/serialize/index.js +0 -2
  116. package/dest/node/serialize/serialize.d.ts +0 -18
  117. package/dest/node/serialize/serialize.d.ts.map +0 -1
  118. package/dest/node/serialize/serialize.js +0 -72
  119. package/dest/node/types/fields.d.ts +0 -23
  120. package/dest/node/types/fields.d.ts.map +0 -1
  121. package/dest/node/types/fields.js +0 -61
  122. package/dest/node/types/index.d.ts +0 -3
  123. package/dest/node/types/index.d.ts.map +0 -1
  124. package/dest/node/types/index.js +0 -3
  125. package/dest/node/types/point.d.ts +0 -18
  126. package/dest/node/types/point.d.ts.map +0 -1
  127. package/dest/node/types/point.js +0 -28
  128. package/dest/node-cjs/bigint-array/index.d.ts.map +0 -1
  129. package/dest/node-cjs/bigint-array/index.js +0 -43
  130. package/dest/node-cjs/serialize/index.d.ts +0 -2
  131. package/dest/node-cjs/serialize/index.d.ts.map +0 -1
  132. package/dest/node-cjs/serialize/index.js +0 -5
  133. package/dest/node-cjs/serialize/serialize.d.ts +0 -18
  134. package/dest/node-cjs/serialize/serialize.d.ts.map +0 -1
  135. package/dest/node-cjs/serialize/serialize.js +0 -82
  136. package/dest/node-cjs/types/fields.d.ts +0 -23
  137. package/dest/node-cjs/types/fields.d.ts.map +0 -1
  138. package/dest/node-cjs/types/fields.js +0 -65
  139. package/dest/node-cjs/types/index.d.ts +0 -3
  140. package/dest/node-cjs/types/index.d.ts.map +0 -1
  141. package/dest/node-cjs/types/index.js +0 -6
  142. package/dest/node-cjs/types/point.d.ts +0 -18
  143. package/dest/node-cjs/types/point.d.ts.map +0 -1
  144. package/dest/node-cjs/types/point.js +0 -32
  145. package/src/serialize/index.ts +0 -1
  146. package/src/serialize/serialize.ts +0 -75
  147. package/src/types/index.ts +0 -2
  148. package/src/types/point.ts +0 -32
  149. /package/src/{bigint-array/index.ts → barretenberg/testing/bigint-buffer.ts} +0 -0
@@ -1,7 +1,9 @@
1
1
  import { createRequire } from 'module';
2
2
  import { spawn, ChildProcess } from 'child_process';
3
+ import { openSync, closeSync } from 'fs';
3
4
  import { IMsgpackBackendSync } from '../interface.js';
4
5
  import { findNapiBinary, findPackageRoot } from './platform.js';
6
+ import readline from 'readline';
5
7
 
6
8
  // Import the NAPI module
7
9
  // The addon is built to the nodejs_module directory
@@ -32,10 +34,12 @@ try {
32
34
  export class BarretenbergNativeShmSyncBackend implements IMsgpackBackendSync {
33
35
  private process: ChildProcess;
34
36
  private client: any; // NAPI MsgpackClient instance
37
+ private logFd?: number; // File descriptor for logs
35
38
 
36
- private constructor(process: ChildProcess, client: any) {
39
+ private constructor(process: ChildProcess, client: any, logFd?: number) {
37
40
  this.process = process;
38
41
  this.client = client;
42
+ this.logFd = logFd;
39
43
  }
40
44
 
41
45
  /**
@@ -48,6 +52,7 @@ export class BarretenbergNativeShmSyncBackend implements IMsgpackBackendSync {
48
52
  bbBinaryPath: string,
49
53
  threads?: number,
50
54
  maxClients?: number,
55
+ logger?: (msg: string) => void,
51
56
  ): Promise<BarretenbergNativeShmSyncBackend> {
52
57
  if (!addon || !addon.MsgpackClient) {
53
58
  throw new Error('Shared memory NAPI not available.');
@@ -59,22 +64,40 @@ export class BarretenbergNativeShmSyncBackend implements IMsgpackBackendSync {
59
64
  // Default maxClients to 1 if not specified
60
65
  const clientCount = maxClients ?? 1;
61
66
 
62
- // Set HARDWARE_CONCURRENCY if threads specified
63
- const env = threads !== undefined ? { ...process.env, HARDWARE_CONCURRENCY: threads.toString() } : process.env;
67
+ // If threads not set use 1 thread. We're not expected to do long lived work on sync backends.
68
+ const hwc = threads ? threads.toString() : '1';
69
+ const env = { ...process.env, HARDWARE_CONCURRENCY: '1' };
70
+
71
+ // Set up file logging if logger is provided.
72
+ // Direct file redirection bypasses Node event loop - logs are written even if process hangs.
73
+ let logFd: number | undefined;
74
+ let logPath: string | undefined;
75
+ if (logger) {
76
+ logPath = `/tmp/${shmName}.log`;
77
+ logFd = openSync(logPath, 'w');
78
+ logger(`BB process logs redirected to: ${logPath}`);
79
+ }
64
80
 
65
81
  // Spawn bb process with shared memory mode
66
- const args = [bbBinaryPath, 'msgpack', 'run', '--input', `${shmName}.shm`, '--max-clients', clientCount.toString()];
67
- const bbProcess = spawn(findPackageRoot() + '/scripts/kill_wrapper.sh', args, {
68
- stdio: ['ignore', 'ignore', 'ignore'],
82
+ const args = [
83
+ 'msgpack',
84
+ 'run',
85
+ '--input',
86
+ `${shmName}.shm`,
87
+ '--max-clients',
88
+ clientCount.toString(),
89
+ '--request-ring-size',
90
+ `${1024 * 1024 * 2}`,
91
+ ];
92
+ const bbProcess = spawn(bbBinaryPath, args, {
93
+ stdio: ['ignore', logFd ?? 'ignore', logFd ?? 'ignore'],
69
94
  env,
70
95
  });
71
- // Disconnect from event loop so process can exit. The kill wrapper will reap bb once parent (node) dies.
72
- bbProcess.unref();
73
96
 
74
- // Capture stderr for error diagnostics
75
- // bbProcess.stderr?.on('data', (data: Buffer) => {
76
- // stderrOutput += data.toString();
77
- // });
97
+ // Disconnect from event loop so process can exit without waiting for bb
98
+ // The bb process has parent death monitoring (prctl on Linux, kqueue on macOS)
99
+ // so it will automatically exit when Node.js exits
100
+ bbProcess.unref();
78
101
 
79
102
  // Track if process has exited
80
103
  let processExited = false;
@@ -133,12 +156,19 @@ export class BarretenbergNativeShmSyncBackend implements IMsgpackBackendSync {
133
156
  throw new Error('Failed to create client connection');
134
157
  }
135
158
 
136
- return new BarretenbergNativeShmSyncBackend(bbProcess, client);
159
+ return new BarretenbergNativeShmSyncBackend(bbProcess, client, logFd);
137
160
  } finally {
138
- // If we failed to connect, ensure the process is killed
161
+ // If we failed to connect, ensure the process is killed and log file closed
139
162
  // kill() returns false if process already exited, but doesn't throw
140
163
  if (!client) {
141
164
  bbProcess.kill('SIGKILL');
165
+ if (logFd !== undefined) {
166
+ try {
167
+ closeSync(logFd);
168
+ } catch (e) {
169
+ // Ignore errors during cleanup
170
+ }
171
+ }
142
172
  }
143
173
  }
144
174
  }
@@ -160,6 +190,13 @@ export class BarretenbergNativeShmSyncBackend implements IMsgpackBackendSync {
160
190
  // Ignore errors during cleanup
161
191
  }
162
192
  }
193
+ if (this.logFd !== undefined) {
194
+ try {
195
+ closeSync(this.logFd);
196
+ } catch (e) {
197
+ // Ignore errors during cleanup
198
+ }
199
+ }
163
200
  }
164
201
 
165
202
  destroy(): void {
@@ -5,6 +5,7 @@ import * as os from 'os';
5
5
  import * as path from 'path';
6
6
  import { IMsgpackBackendAsync } from '../interface.js';
7
7
  import { findPackageRoot } from './platform.js';
8
+ import readline from 'readline';
8
9
 
9
10
  /**
10
11
  * Asynchronous native backend that communicates with bb binary via Unix Domain Socket.
@@ -40,7 +41,7 @@ export class BarretenbergNativeSocketAsyncBackend implements IMsgpackBackendAsyn
40
41
  private responseBuffer: Buffer | null = null;
41
42
  private responseBytesRead: number = 0;
42
43
 
43
- constructor(bbBinaryPath: string, threads?: number) {
44
+ constructor(bbBinaryPath: string, threads?: number, logger?: (msg: string) => void) {
44
45
  // Create a unique socket path in temp directory
45
46
  this.socketPath = path.join(os.tmpdir(), `bb-${process.pid}-${Date.now()}.sock`);
46
47
 
@@ -57,18 +58,28 @@ export class BarretenbergNativeSocketAsyncBackend implements IMsgpackBackendAsyn
57
58
  connectionReject = reject;
58
59
  });
59
60
 
60
- // Set HARDWARE_CONCURRENCY if threads specified
61
- const env = threads !== undefined ? { ...process.env, HARDWARE_CONCURRENCY: threads.toString() } : process.env;
61
+ // If threads not set use num cpu cores, max 32.
62
+ const hwc = threads ? threads.toString() : Math.min(32, os.cpus.length).toString();
63
+ const env = { ...process.env, HARDWARE_CONCURRENCY: '1' };
62
64
 
63
65
  // Spawn bb process - it will create the socket server
64
- const args = [bbBinaryPath, 'msgpack', 'run', '--input', this.socketPath];
65
- this.process = spawn(findPackageRoot() + '/scripts/kill_wrapper.sh', args, {
66
- stdio: ['ignore', 'ignore', 'ignore'],
66
+ const args = ['msgpack', 'run', '--input', this.socketPath];
67
+ this.process = spawn(bbBinaryPath, args, {
68
+ stdio: ['ignore', logger ? 'pipe' : 'ignore', logger ? 'pipe' : 'ignore'],
67
69
  env,
68
70
  });
69
- // Disconnect from event loop so process can exit. The kill wrapper will reap bb once parent (node) dies.
71
+
72
+ // Disconnect from event loop so process can exit without waiting for bb
73
+ // The bb process has parent death monitoring (prctl on Linux, kqueue on macOS)
74
+ // so it will automatically exit when Node.js exits
70
75
  this.process.unref();
71
76
 
77
+ if (logger) {
78
+ logger("Logger attached to bb process. DON'T FORGET TO DESTROY THE BACKEND to allow Node.js to exit.");
79
+ readline.createInterface({ input: this.process.stdout! }).on('line', logger);
80
+ readline.createInterface({ input: this.process.stderr! }).on('line', logger);
81
+ }
82
+
72
83
  this.process.on('error', err => {
73
84
  if (connectionReject) {
74
85
  connectionReject(new Error(`Native backend process error: ${err.message}`));
@@ -157,7 +168,7 @@ export class BarretenbergNativeSocketAsyncBackend implements IMsgpackBackendAsyn
157
168
 
158
169
  // Set up event handlers
159
170
  this.socket.once('connect', () => {
160
- this.socket!.unref();
171
+ // Socket starts referenced - will be unreferenced when no callbacks pending
161
172
 
162
173
  // Clear connection timeout on successful connection
163
174
  if (this.connectionTimeout) {
@@ -232,6 +243,11 @@ export class BarretenbergNativeSocketAsyncBackend implements IMsgpackBackendAsyn
232
243
  console.warn('Received response but no pending callback');
233
244
  }
234
245
 
246
+ // If no more pending callbacks, unref socket to allow process to exit
247
+ if (this.pendingCallbacks.length === 0 && this.socket) {
248
+ this.socket.unref();
249
+ }
250
+
235
251
  // Reset state for next message
236
252
  this.readingLength = true;
237
253
  this.lengthBytesRead = 0;
@@ -252,6 +268,11 @@ export class BarretenbergNativeSocketAsyncBackend implements IMsgpackBackendAsyn
252
268
  }
253
269
 
254
270
  return new Promise((resolve, reject) => {
271
+ // If this is the first pending callback, ref the socket to keep event loop alive
272
+ if (this.pendingCallbacks.length === 0) {
273
+ this.socket!.ref();
274
+ }
275
+
255
276
  // Enqueue this promise's callbacks (FIFO order)
256
277
  this.pendingCallbacks.push({ resolve, reject });
257
278
 
@@ -298,15 +319,8 @@ export class BarretenbergNativeSocketAsyncBackend implements IMsgpackBackendAsyn
298
319
  }
299
320
 
300
321
  async destroy(): Promise<void> {
301
- // Cleanup first (closes socket, unrefs everything)
302
322
  this.cleanup();
303
-
304
- // Send SIGTERM for graceful shutdown
305
- // Process is unref'd so won't block event loop - just kill and return
306
- try {
307
- this.process.kill('SIGTERM');
308
- } catch (e) {
309
- // Already dead
310
- }
323
+ this.process.kill('SIGTERM');
324
+ this.process.removeAllListeners();
311
325
  }
312
326
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/bigint-array/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAO3D;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAG9D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,SAAK,GAAG,MAAM,CAYvE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,SAAK,GAAG,UAAU,CAE/E"}
@@ -1,37 +0,0 @@
1
- /**
2
- * Convert a 32-byte BE Buffer to a BigInt.
3
- */
4
- export function buffer32BytesToBigIntBE(buf) {
5
- return ((buf.readBigUInt64BE(0) << 192n) +
6
- (buf.readBigUInt64BE(8) << 128n) +
7
- (buf.readBigUInt64BE(16) << 64n) +
8
- buf.readBigUInt64BE(24));
9
- }
10
- /**
11
- * Convert a BE Uint8Array to a BigInt.
12
- */
13
- export function uint8ArrayToBigIntBE(bytes) {
14
- const buffer = Buffer.from(bytes);
15
- return buffer32BytesToBigIntBE(buffer);
16
- }
17
- /**
18
- * Convert a BigInt to a 32-byte BE Buffer.
19
- */
20
- export function bigIntToBufferBE(value, byteLength = 32) {
21
- if (byteLength != 32) {
22
- throw new Error(`Only 32 bytes supported for conversion from bigint to buffer, attempted byte length: ${byteLength}`);
23
- }
24
- const buf = Buffer.alloc(byteLength);
25
- buf.writeBigUInt64BE(value >> 192n, 0);
26
- buf.writeBigUInt64BE((value >> 128n) & 0xffffffffffffffffn, 8);
27
- buf.writeBigUInt64BE((value >> 64n) & 0xffffffffffffffffn, 16);
28
- buf.writeBigUInt64BE(value & 0xffffffffffffffffn, 24);
29
- return buf;
30
- }
31
- /**
32
- * Convert a BigInt to a 32-byte BE Uint8Array.
33
- */
34
- export function bigIntToUint8ArrayBE(value, byteLength = 32) {
35
- return new Uint8Array(bigIntToBufferBE(value, byteLength));
36
- }
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmlnaW50LWFycmF5L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxVQUFVLHVCQUF1QixDQUFDLEdBQVc7SUFDakQsT0FBTyxDQUNMLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUM7UUFDaEMsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQztRQUNoQyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLElBQUksR0FBRyxDQUFDO1FBQ2hDLEdBQUcsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLENBQ3hCLENBQUM7QUFDSixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsS0FBaUI7SUFDcEQsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsQyxPQUFPLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ3pDLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxLQUFhLEVBQUUsVUFBVSxHQUFHLEVBQUU7SUFDN0QsSUFBSSxVQUFVLElBQUksRUFBRSxFQUFFLENBQUM7UUFDckIsTUFBTSxJQUFJLEtBQUssQ0FDYix3RkFBd0YsVUFBVSxFQUFFLENBQ3JHLENBQUM7SUFDSixDQUFDO0lBQ0QsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNyQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN2QyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEdBQUcsbUJBQW1CLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDL0QsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUMsS0FBSyxJQUFJLEdBQUcsQ0FBQyxHQUFHLG1CQUFtQixFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQy9ELEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEdBQUcsbUJBQW1CLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDdEQsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsS0FBYSxFQUFFLFVBQVUsR0FBRyxFQUFFO0lBQ2pFLE9BQU8sSUFBSSxVQUFVLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUM7QUFDN0QsQ0FBQyJ9
@@ -1,2 +0,0 @@
1
- export * from './serialize.js';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/serialize/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC"}
@@ -1,2 +0,0 @@
1
- export * from './serialize.js';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VyaWFsaXplL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsZ0JBQWdCLENBQUMifQ==
@@ -1,18 +0,0 @@
1
- export declare function boolToBuffer(b: boolean): Uint8Array<ArrayBuffer>;
2
- export declare function numToUInt32BE(n: number, bufferSize?: number): Uint8Array<ArrayBuffer>;
3
- export declare function numToInt32BE(n: number, bufferSize?: number): Uint8Array<ArrayBuffer>;
4
- export declare function concatenateUint8Arrays(arrayOfUint8Arrays: Uint8Array[]): Uint8Array<ArrayBuffer>;
5
- export declare function serializeBufferToVector(buf: Uint8Array): Uint8Array<ArrayBuffer>;
6
- export declare function serializeBigInt(n: bigint, width?: number): Uint8Array<ArrayBuffer>;
7
- export declare function serializeBufferArrayToVector(arr: Uint8Array[]): Uint8Array<ArrayBuffer>;
8
- /** A type that can be written to a buffer. */
9
- export type Bufferable = boolean | Uint8Array | number | string | {
10
- toBuffer: () => Uint8Array;
11
- } | Bufferable[];
12
- /**
13
- * Serializes a list of objects contiguously for calling into wasm.
14
- * @param objs - Objects to serialize.
15
- * @returns A buffer list with the concatenation of all fields.
16
- */
17
- export declare function serializeBufferable(obj: Bufferable): Uint8Array;
18
- //# sourceMappingURL=serialize.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"serialize.d.ts","sourceRoot":"","sources":["../../../src/serialize/serialize.ts"],"names":[],"mappings":"AACA,wBAAgB,YAAY,CAAC,CAAC,EAAE,OAAO,2BAItC;AAGD,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,SAAI,2BAItD;AAGD,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,SAAI,2BAIrD;AAED,wBAAgB,sBAAsB,CAAC,kBAAkB,EAAE,UAAU,EAAE,2BAStE;AAGD,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,UAAU,2BAEtD;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,SAAK,2BAMpD;AAGD,wBAAgB,4BAA4B,CAAC,GAAG,EAAE,UAAU,EAAE,2BAE7D;AAED,8CAA8C;AAC9C,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG;IAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;CAAE,GAAG,UAAU,EAAE,CAAC;AAEhH;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,UAAU,GAAG,UAAU,CAgB/D"}
@@ -1,72 +0,0 @@
1
- // For serializing bool.
2
- export function boolToBuffer(b) {
3
- const buf = new Uint8Array(1);
4
- buf[0] = b ? 1 : 0;
5
- return buf;
6
- }
7
- // For serializing numbers to 32 bit big-endian form.
8
- export function numToUInt32BE(n, bufferSize = 4) {
9
- const buf = new Uint8Array(bufferSize);
10
- new DataView(buf.buffer).setUint32(buf.byteLength - 4, n, false);
11
- return buf;
12
- }
13
- // For serializing signed numbers to 32 bit big-endian form.
14
- export function numToInt32BE(n, bufferSize = 4) {
15
- const buf = new Uint8Array(bufferSize);
16
- new DataView(buf.buffer).setInt32(buf.byteLength - 4, n, false);
17
- return buf;
18
- }
19
- export function concatenateUint8Arrays(arrayOfUint8Arrays) {
20
- const totalLength = arrayOfUint8Arrays.reduce((prev, curr) => prev + curr.length, 0);
21
- const result = new Uint8Array(totalLength);
22
- let length = 0;
23
- for (const array of arrayOfUint8Arrays) {
24
- result.set(array, length);
25
- length += array.length;
26
- }
27
- return result;
28
- }
29
- // For serializing a buffer as a vector.
30
- export function serializeBufferToVector(buf) {
31
- return concatenateUint8Arrays([numToInt32BE(buf.length), buf]);
32
- }
33
- export function serializeBigInt(n, width = 32) {
34
- const buf = new Uint8Array(width);
35
- for (let i = 0; i < width; i++) {
36
- buf[width - i - 1] = Number((n >> BigInt(i * 8)) & 0xffn);
37
- }
38
- return buf;
39
- }
40
- // For serializing an array of fixed length elements.
41
- export function serializeBufferArrayToVector(arr) {
42
- return concatenateUint8Arrays([numToUInt32BE(arr.length), ...arr.flat()]);
43
- }
44
- /**
45
- * Serializes a list of objects contiguously for calling into wasm.
46
- * @param objs - Objects to serialize.
47
- * @returns A buffer list with the concatenation of all fields.
48
- */
49
- export function serializeBufferable(obj) {
50
- if (Array.isArray(obj)) {
51
- return serializeBufferArrayToVector(obj.map(serializeBufferable));
52
- }
53
- else if (obj instanceof Uint8Array) {
54
- return serializeBufferToVector(obj);
55
- }
56
- else if (typeof obj === 'boolean') {
57
- return boolToBuffer(obj);
58
- }
59
- else if (typeof obj === 'number') {
60
- return numToUInt32BE(obj);
61
- }
62
- else if (typeof obj === 'bigint') {
63
- return serializeBigInt(obj);
64
- }
65
- else if (typeof obj === 'string') {
66
- return serializeBufferToVector(new TextEncoder().encode(obj));
67
- }
68
- else {
69
- return obj.toBuffer();
70
- }
71
- }
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyaWFsaXplLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlcmlhbGl6ZS9zZXJpYWxpemUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsd0JBQXdCO0FBQ3hCLE1BQU0sVUFBVSxZQUFZLENBQUMsQ0FBVTtJQUNyQyxNQUFNLEdBQUcsR0FBRyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM5QixHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNuQixPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUM7QUFFRCxxREFBcUQ7QUFDckQsTUFBTSxVQUFVLGFBQWEsQ0FBQyxDQUFTLEVBQUUsVUFBVSxHQUFHLENBQUM7SUFDckQsTUFBTSxHQUFHLEdBQUcsSUFBSSxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDdkMsSUFBSSxRQUFRLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsVUFBVSxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDakUsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDO0FBRUQsNERBQTREO0FBQzVELE1BQU0sVUFBVSxZQUFZLENBQUMsQ0FBUyxFQUFFLFVBQVUsR0FBRyxDQUFDO0lBQ3BELE1BQU0sR0FBRyxHQUFHLElBQUksVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3ZDLElBQUksUUFBUSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFVBQVUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ2hFLE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQztBQUVELE1BQU0sVUFBVSxzQkFBc0IsQ0FBQyxrQkFBZ0M7SUFDckUsTUFBTSxXQUFXLEdBQUcsa0JB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
@@ -1,23 +0,0 @@
1
- /**
2
- * Internal Fr field class for tests.
3
- * @dev This minimal implementation is provided for testing barretenberg directly.
4
- * Projects using bb.js should create their own field abstraction using the curve constants
5
- * exported from the barretenberg binary (see CurveConstants generation).
6
- */
7
- export declare class Fr {
8
- static ZERO: Fr;
9
- static MODULUS: bigint;
10
- static MAX_VALUE: bigint;
11
- static SIZE_IN_BYTES: number;
12
- value: Uint8Array;
13
- constructor(value: Uint8Array | Buffer | bigint);
14
- static random(): Fr;
15
- static fromBuffer(buffer: Uint8Array | Buffer): Fr;
16
- static fromBufferReduce(buffer: Uint8Array | Buffer): Fr;
17
- static fromString(str: string): Fr;
18
- toBuffer(): Uint8Array<ArrayBufferLike>;
19
- toString(): string;
20
- equals(rhs: Fr): boolean;
21
- isZero(): boolean;
22
- }
23
- //# sourceMappingURL=fields.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../../../src/types/fields.ts"],"names":[],"mappings":"AAQA;;;;;GAKG;AACH,qBAAa,EAAE;IACb,MAAM,CAAC,IAAI,KAAc;IACzB,MAAM,CAAC,OAAO,SAAuE;IACrF,MAAM,CAAC,SAAS,SAAqB;IACrC,MAAM,CAAC,aAAa,SAAM;IAC1B,KAAK,EAAE,UAAU,CAAC;gBAEN,KAAK,EAAE,UAAU,GAAG,MAAM,GAAG,MAAM;IAiB/C,MAAM,CAAC,MAAM;IAKb,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM;IAO7C,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM;IAOnD,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM;IAI7B,QAAQ;IAIR,QAAQ;IAIR,MAAM,CAAC,GAAG,EAAE,EAAE;IAId,MAAM;CAGP"}
@@ -1,61 +0,0 @@
1
- var _a;
2
- import { randomBytes } from '../random/index.js';
3
- import { buffer32BytesToBigIntBE, uint8ArrayToBigIntBE, bigIntToUint8ArrayBE, } from '../bigint-array/index.js';
4
- /**
5
- * Internal Fr field class for tests.
6
- * @dev This minimal implementation is provided for testing barretenberg directly.
7
- * Projects using bb.js should create their own field abstraction using the curve constants
8
- * exported from the barretenberg binary (see CurveConstants generation).
9
- */
10
- export class Fr {
11
- constructor(value) {
12
- // We convert buffer value to bigint to be able to check it fits within modulus
13
- const valueBigInt = typeof value === 'bigint'
14
- ? value
15
- : value instanceof Buffer
16
- ? buffer32BytesToBigIntBE(value)
17
- : uint8ArrayToBigIntBE(value);
18
- if (valueBigInt > _a.MAX_VALUE) {
19
- throw new Error(`Value 0x${valueBigInt.toString(16)} is greater or equal to field modulus.`);
20
- }
21
- this.value =
22
- typeof value === 'bigint' ? bigIntToUint8ArrayBE(value) : value instanceof Buffer ? new Uint8Array(value) : value;
23
- }
24
- static random() {
25
- const r = uint8ArrayToBigIntBE(randomBytes(64)) % _a.MODULUS;
26
- return new this(r);
27
- }
28
- static fromBuffer(buffer) {
29
- if (buffer.length !== this.SIZE_IN_BYTES) {
30
- throw new Error(`Expected ${this.SIZE_IN_BYTES} bytes, got ${buffer.length}`);
31
- }
32
- return new this(buffer);
33
- }
34
- static fromBufferReduce(buffer) {
35
- if (buffer.length !== this.SIZE_IN_BYTES) {
36
- throw new Error(`Expected ${this.SIZE_IN_BYTES} bytes, got ${buffer.length}`);
37
- }
38
- return new this(uint8ArrayToBigIntBE(buffer instanceof Buffer ? new Uint8Array(buffer) : buffer) % _a.MODULUS);
39
- }
40
- static fromString(str) {
41
- return this.fromBuffer(Buffer.from(str.replace(/^0x/i, ''), 'hex'));
42
- }
43
- toBuffer() {
44
- return this.value;
45
- }
46
- toString() {
47
- return '0x' + this.toBuffer().reduce((accumulator, byte) => accumulator + byte.toString(16).padStart(2, '0'), '');
48
- }
49
- equals(rhs) {
50
- return this.value.every((v, i) => v === rhs.value[i]);
51
- }
52
- isZero() {
53
- return this.value.every(v => v === 0);
54
- }
55
- }
56
- _a = Fr;
57
- Fr.ZERO = new _a(0n);
58
- Fr.MODULUS = 0x30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001n;
59
- Fr.MAX_VALUE = _a.MODULUS - 1n;
60
- Fr.SIZE_IN_BYTES = 32;
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3R5cGVzL2ZpZWxkcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pELE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsb0JBQW9CLEVBRXBCLG9CQUFvQixHQUNyQixNQUFNLDBCQUEwQixDQUFDO0FBRWxDOzs7OztHQUtHO0FBQ0gsTUFBTSxPQUFPLEVBQUU7SUFPYixZQUFZLEtBQW1DO1FBQzdDLCtFQUErRTtRQUMvRSxNQUFNLFdBQVcsR0FDZixPQUFPLEtBQUssS0FBSyxRQUFRO1lBQ3ZCLENBQUMsQ0FBQyxLQUFLO1lBQ1AsQ0FBQyxDQUFDLEtBQUssWUFBWSxNQUFNO2dCQUN2QixDQUFDLENBQUMsdUJBQXVCLENBQUMsS0FBSyxDQUFDO2dCQUNoQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFcEMsSUFBSSxXQUFXLEdBQUcsRUFBRSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQy9CLE1BQU0sSUFBSSxLQUFLLENBQUMsV0FBVyxXQUFXLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyx3Q0FBd0MsQ0FBQyxDQUFDO1FBQy9GLENBQUM7UUFFRCxJQUFJLENBQUMsS0FBSztZQUNSLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssWUFBWSxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDdEgsQ0FBQztJQUVELE1BQU0sQ0FBQyxNQUFNO1FBQ1gsTUFBTSxDQUFDLEdBQUcsb0JBQW9CLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQztRQUM3RCxPQUFPLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQTJCO1FBQzNDLElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDekMsTUFBTSxJQUFJLEtBQUssQ0FBQyxZQUFZLElBQUksQ0FBQyxhQUFhLGVBQWUsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDaEYsQ0FBQztRQUNELE9BQU8sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVELE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxNQUEyQjtRQUNqRCxJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3pDLE1BQU0sSUFBSSxLQUFLLENBQUMsWUFBWSxJQUFJLENBQUMsYUFBYSxlQUFlLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ2hGLENBQUM7UUFDRCxPQUFPLElBQUksSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sWUFBWSxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakgsQ0FBQztJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBVztRQUMzQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFdBQVcsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDcEgsQ0FBQztJQUVELE1BQU0sQ0FBQyxHQUFPO1FBQ1osT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELE1BQU07UUFDSixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7OztBQTVETSxPQUFJLEdBQUcsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEFBQWIsQ0FBYztBQUNsQixVQUFPLEdBQUcsbUVBQW1FLEFBQXRFLENBQXVFO0FBQzlFLFlBQVMsR0FBRyxFQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQUFBcEIsQ0FBcUI7QUFDOUIsZ0JBQWEsR0FBRyxFQUFFLEFBQUwsQ0FBTSJ9
@@ -1,3 +0,0 @@
1
- export * from './fields.js';
2
- export * from './point.js';
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC"}
@@ -1,3 +0,0 @@
1
- export * from './fields.js';
2
- export * from './point.js';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdHlwZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxZQUFZLENBQUMifQ==
@@ -1,18 +0,0 @@
1
- import { Fr } from './fields.js';
2
- /**
3
- * Internal Point class for tests.
4
- * @dev This minimal implementation is provided for testing barretenberg directly.
5
- * Projects using bb.js should create their own point abstraction using the curve point
6
- * types and operations exported from the barretenberg API.
7
- */
8
- export declare class Point {
9
- readonly x: Fr;
10
- readonly y: Fr;
11
- static SIZE_IN_BYTES: number;
12
- static EMPTY: Point;
13
- constructor(x: Fr, y: Fr);
14
- static fromBuffer(buffer: Uint8Array): Point;
15
- toBuffer(): Buffer<ArrayBuffer>;
16
- equals(rhs: Point): boolean;
17
- }
18
- //# sourceMappingURL=point.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"point.d.ts","sourceRoot":"","sources":["../../../src/types/point.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAEjC;;;;;GAKG;AACH,qBAAa,KAAK;aAKE,CAAC,EAAE,EAAE;aACL,CAAC,EAAE,EAAE;IALvB,MAAM,CAAC,aAAa,SAAM;IAC1B,MAAM,CAAC,KAAK,QAA+B;gBAGzB,CAAC,EAAE,EAAE,EACL,CAAC,EAAE,EAAE;IAGvB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU;IAOpC,QAAQ;IAIR,MAAM,CAAC,GAAG,EAAE,KAAK;CAGlB"}
@@ -1,28 +0,0 @@
1
- import { Fr } from './fields.js';
2
- /**
3
- * Internal Point class for tests.
4
- * @dev This minimal implementation is provided for testing barretenberg directly.
5
- * Projects using bb.js should create their own point abstraction using the curve point
6
- * types and operations exported from the barretenberg API.
7
- */
8
- export class Point {
9
- constructor(x, y) {
10
- this.x = x;
11
- this.y = y;
12
- }
13
- static fromBuffer(buffer) {
14
- if (buffer.length !== this.SIZE_IN_BYTES) {
15
- throw new Error(`Expected ${this.SIZE_IN_BYTES} bytes, got ${buffer.length}`);
16
- }
17
- return new this(Fr.fromBuffer(buffer.subarray(0, 32)), Fr.fromBuffer(buffer.subarray(32, 64)));
18
- }
19
- toBuffer() {
20
- return Buffer.concat([this.x.toBuffer(), this.y.toBuffer()]);
21
- }
22
- equals(rhs) {
23
- return this.x.equals(rhs.x) && this.y.equals(rhs.y);
24
- }
25
- }
26
- Point.SIZE_IN_BYTES = 64;
27
- Point.EMPTY = new Point(Fr.ZERO, Fr.ZERO);
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9pbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdHlwZXMvcG9pbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVqQzs7Ozs7R0FLRztBQUNILE1BQU0sT0FBTyxLQUFLO0lBSWhCLFlBQ2tCLENBQUssRUFDTCxDQUFLO1FBREwsTUFBQyxHQUFELENBQUMsQ0FBSTtRQUNMLE1BQUMsR0FBRCxDQUFDLENBQUk7SUFDcEIsQ0FBQztJQUVKLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBa0I7UUFDbEMsSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN6QyxNQUFNLElBQUksS0FBSyxDQUFDLFlBQVksSUFBSSxDQUFDLGFBQWEsZUFBZSxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUNoRixDQUFDO1FBQ0QsT0FBTyxJQUFJLElBQUksQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakcsQ0FBQztJQUVELFFBQVE7UUFDTixPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRCxNQUFNLENBQUMsR0FBVTtRQUNmLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0RCxDQUFDOztBQXJCTSxtQkFBYSxHQUFHLEVBQUUsQ0FBQztBQUNuQixXQUFLLEdBQUcsSUFBSSxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMifQ==
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/bigint-array/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAO3D;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAG9D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,SAAK,GAAG,MAAM,CAYvE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,SAAK,GAAG,UAAU,CAE/E"}
@@ -1,37 +0,0 @@
1
- /**
2
- * Convert a 32-byte BE Buffer to a BigInt.
3
- */
4
- export function buffer32BytesToBigIntBE(buf) {
5
- return ((buf.readBigUInt64BE(0) << 192n) +
6
- (buf.readBigUInt64BE(8) << 128n) +
7
- (buf.readBigUInt64BE(16) << 64n) +
8
- buf.readBigUInt64BE(24));
9
- }
10
- /**
11
- * Convert a BE Uint8Array to a BigInt.
12
- */
13
- export function uint8ArrayToBigIntBE(bytes) {
14
- const buffer = Buffer.from(bytes);
15
- return buffer32BytesToBigIntBE(buffer);
16
- }
17
- /**
18
- * Convert a BigInt to a 32-byte BE Buffer.
19
- */
20
- export function bigIntToBufferBE(value, byteLength = 32) {
21
- if (byteLength != 32) {
22
- throw new Error(`Only 32 bytes supported for conversion from bigint to buffer, attempted byte length: ${byteLength}`);
23
- }
24
- const buf = Buffer.alloc(byteLength);
25
- buf.writeBigUInt64BE(value >> 192n, 0);
26
- buf.writeBigUInt64BE((value >> 128n) & 0xffffffffffffffffn, 8);
27
- buf.writeBigUInt64BE((value >> 64n) & 0xffffffffffffffffn, 16);
28
- buf.writeBigUInt64BE(value & 0xffffffffffffffffn, 24);
29
- return buf;
30
- }
31
- /**
32
- * Convert a BigInt to a 32-byte BE Uint8Array.
33
- */
34
- export function bigIntToUint8ArrayBE(value, byteLength = 32) {
35
- return new Uint8Array(bigIntToBufferBE(value, byteLength));
36
- }
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmlnaW50LWFycmF5L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxVQUFVLHVCQUF1QixDQUFDLEdBQVc7SUFDakQsT0FBTyxDQUNMLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUM7UUFDaEMsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQztRQUNoQyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLElBQUksR0FBRyxDQUFDO1FBQ2hDLEdBQUcsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLENBQ3hCLENBQUM7QUFDSixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsS0FBaUI7SUFDcEQsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsQyxPQUFPLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ3pDLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxLQUFhLEVBQUUsVUFBVSxHQUFHLEVBQUU7SUFDN0QsSUFBSSxVQUFVLElBQUksRUFBRSxFQUFFLENBQUM7UUFDckIsTUFBTSxJQUFJLEtBQUssQ0FDYix3RkFBd0YsVUFBVSxFQUFFLENBQ3JHLENBQUM7SUFDSixDQUFDO0lBQ0QsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNyQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN2QyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEdBQUcsbUJBQW1CLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDL0QsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUMsS0FBSyxJQUFJLEdBQUcsQ0FBQyxHQUFHLG1CQUFtQixFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQy9ELEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEdBQUcsbUJBQW1CLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDdEQsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsS0FBYSxFQUFFLFVBQVUsR0FBRyxFQUFFO0lBQ2pFLE9BQU8sSUFBSSxVQUFVLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUM7QUFDN0QsQ0FBQyJ9
@@ -1,2 +0,0 @@
1
- export * from './serialize.js';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/serialize/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC"}
@@ -1,2 +0,0 @@
1
- export * from './serialize.js';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VyaWFsaXplL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsZ0JBQWdCLENBQUMifQ==
@@ -1,18 +0,0 @@
1
- export declare function boolToBuffer(b: boolean): Uint8Array<ArrayBuffer>;
2
- export declare function numToUInt32BE(n: number, bufferSize?: number): Uint8Array<ArrayBuffer>;
3
- export declare function numToInt32BE(n: number, bufferSize?: number): Uint8Array<ArrayBuffer>;
4
- export declare function concatenateUint8Arrays(arrayOfUint8Arrays: Uint8Array[]): Uint8Array<ArrayBuffer>;
5
- export declare function serializeBufferToVector(buf: Uint8Array): Uint8Array<ArrayBuffer>;
6
- export declare function serializeBigInt(n: bigint, width?: number): Uint8Array<ArrayBuffer>;
7
- export declare function serializeBufferArrayToVector(arr: Uint8Array[]): Uint8Array<ArrayBuffer>;
8
- /** A type that can be written to a buffer. */
9
- export type Bufferable = boolean | Uint8Array | number | string | {
10
- toBuffer: () => Uint8Array;
11
- } | Bufferable[];
12
- /**
13
- * Serializes a list of objects contiguously for calling into wasm.
14
- * @param objs - Objects to serialize.
15
- * @returns A buffer list with the concatenation of all fields.
16
- */
17
- export declare function serializeBufferable(obj: Bufferable): Uint8Array;
18
- //# sourceMappingURL=serialize.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"serialize.d.ts","sourceRoot":"","sources":["../../../src/serialize/serialize.ts"],"names":[],"mappings":"AACA,wBAAgB,YAAY,CAAC,CAAC,EAAE,OAAO,2BAItC;AAGD,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,SAAI,2BAItD;AAGD,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,SAAI,2BAIrD;AAED,wBAAgB,sBAAsB,CAAC,kBAAkB,EAAE,UAAU,EAAE,2BAStE;AAGD,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,UAAU,2BAEtD;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,SAAK,2BAMpD;AAGD,wBAAgB,4BAA4B,CAAC,GAAG,EAAE,UAAU,EAAE,2BAE7D;AAED,8CAA8C;AAC9C,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG;IAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;CAAE,GAAG,UAAU,EAAE,CAAC;AAEhH;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,UAAU,GAAG,UAAU,CAgB/D"}