@aztec/bb.js 0.7.9 → 0.8.1
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.
- package/README.md +1 -10
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.d.ts.map +1 -1
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.d.ts.map +1 -1
- package/dest/browser/barretenberg_wasm/fetch_code/node/index.d.ts.map +1 -1
- package/dest/browser/crs/node/ignition_files_crs.d.ts.map +1 -1
- package/dest/browser/index.js +1 -1
- package/dest/node/barretenberg_wasm/barretenberg-threads.wasm +0 -0
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.d.ts.map +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.js +12 -2
- package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.d.ts.map +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.js +12 -2
- package/dest/node/barretenberg_wasm/fetch_code/browser/index.js +3 -3
- package/dest/node/barretenberg_wasm/fetch_code/node/index.d.ts.map +1 -1
- package/dest/node/barretenberg_wasm/fetch_code/node/index.js +12 -2
- package/dest/node/bindgen/index.js +3 -3
- package/dest/node/bindgen/typescript.js +1 -1
- package/dest/node/crs/node/ignition_files_crs.d.ts.map +1 -1
- package/dest/node/crs/node/ignition_files_crs.js +12 -2
- package/dest/node/info.d.ts +9 -0
- package/dest/node/info.d.ts.map +1 -0
- package/dest/node/info.js +24 -0
- package/dest/node/main.d.ts.map +1 -1
- package/dest/node/main.js +9 -3
- package/dest/node-cjs/async_map/index.d.ts +10 -0
- package/dest/node-cjs/async_map/index.d.ts.map +1 -0
- package/dest/node-cjs/async_map/index.js +20 -0
- package/dest/node-cjs/barretenberg/index.d.ts +20 -0
- package/dest/node-cjs/barretenberg/index.d.ts.map +1 -0
- package/dest/node-cjs/barretenberg/index.js +43 -0
- package/dest/node-cjs/barretenberg_api/blake2s.test.d.ts +2 -0
- package/dest/node-cjs/barretenberg_api/blake2s.test.d.ts.map +1 -0
- package/dest/node-cjs/barretenberg_api/blake2s.test.js +32 -0
- package/dest/node-cjs/barretenberg_api/common.test.d.ts +2 -0
- package/dest/node-cjs/barretenberg_api/common.test.d.ts.map +1 -0
- package/dest/node-cjs/barretenberg_api/common.test.js +20 -0
- package/dest/node-cjs/barretenberg_api/index.d.ts +53 -0
- package/dest/node-cjs/barretenberg_api/index.d.ts.map +1 -0
- package/dest/node-cjs/barretenberg_api/index.js +195 -0
- package/dest/node-cjs/barretenberg_api/pedersen.test.d.ts +2 -0
- package/dest/node-cjs/barretenberg_api/pedersen.test.d.ts.map +1 -0
- package/dest/node-cjs/barretenberg_api/pedersen.test.js +71 -0
- package/dest/node-cjs/barretenberg_api/schnorr.test.d.ts +2 -0
- package/dest/node-cjs/barretenberg_api/schnorr.test.d.ts.map +1 -0
- package/dest/node-cjs/barretenberg_api/schnorr.test.js +116 -0
- package/dest/node-cjs/barretenberg_binder/heap_allocator.d.ts +22 -0
- package/dest/node-cjs/barretenberg_binder/heap_allocator.d.ts.map +1 -0
- package/dest/node-cjs/barretenberg_binder/heap_allocator.js +63 -0
- package/dest/node-cjs/barretenberg_binder/index.d.ts +26 -0
- package/dest/node-cjs/barretenberg_binder/index.d.ts.map +1 -0
- package/dest/node-cjs/barretenberg_binder/index.js +57 -0
- package/dest/{node → node-cjs/barretenberg_wasm}/barretenberg-threads.wasm +0 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_base/index.d.ts +40 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_base/index.d.ts.map +1 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_base/index.js +128 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts +2 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts.map +1 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.js +15 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.d.ts +3 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.d.ts.map +1 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.js +15 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.d.ts +4 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.d.ts.map +1 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.js +22 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.d.ts +2 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.d.ts.map +1 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.js +11 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/index.d.ts +37 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/index.d.ts.map +1 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/index.js +87 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts +2 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts.map +1 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.js +15 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.d.ts +3 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.d.ts.map +1 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.js +15 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.d.ts +4 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.d.ts.map +1 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.js +22 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.d.ts +2 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.d.ts.map +1 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.js +11 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts +28 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts.map +1 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/index.js +44 -0
- package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/index.d.ts +2 -0
- package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/index.d.ts.map +1 -0
- package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/index.js +14 -0
- package/dest/node-cjs/barretenberg_wasm/fetch_code/index.d.ts +2 -0
- package/dest/node-cjs/barretenberg_wasm/fetch_code/index.d.ts.map +1 -0
- package/dest/node-cjs/barretenberg_wasm/fetch_code/index.js +5 -0
- package/dest/node-cjs/barretenberg_wasm/fetch_code/node/index.d.ts +3 -0
- package/dest/node-cjs/barretenberg_wasm/fetch_code/node/index.d.ts.map +1 -0
- package/dest/node-cjs/barretenberg_wasm/fetch_code/node/index.js +23 -0
- package/dest/node-cjs/barretenberg_wasm/helpers/browser/index.d.ts +6 -0
- package/dest/node-cjs/barretenberg_wasm/helpers/browser/index.d.ts.map +1 -0
- package/dest/node-cjs/barretenberg_wasm/helpers/browser/index.js +26 -0
- package/dest/node-cjs/barretenberg_wasm/helpers/index.d.ts +2 -0
- package/dest/node-cjs/barretenberg_wasm/helpers/index.d.ts.map +1 -0
- package/dest/node-cjs/barretenberg_wasm/helpers/index.js +5 -0
- package/dest/node-cjs/barretenberg_wasm/helpers/node/index.d.ts +19 -0
- package/dest/node-cjs/barretenberg_wasm/helpers/node/index.d.ts.map +1 -0
- package/dest/node-cjs/barretenberg_wasm/helpers/node/index.js +45 -0
- package/dest/node-cjs/barretenberg_wasm/helpers/node/node_endpoint.d.ts +8 -0
- package/dest/node-cjs/barretenberg_wasm/helpers/node/node_endpoint.d.ts.map +1 -0
- package/dest/node-cjs/barretenberg_wasm/helpers/node/node_endpoint.js +32 -0
- package/dest/node-cjs/barretenberg_wasm/index.d.ts +14 -0
- package/dest/node-cjs/barretenberg_wasm/index.d.ts.map +1 -0
- package/dest/node-cjs/barretenberg_wasm/index.js +24 -0
- package/dest/node-cjs/barretenberg_wasm/index.test.d.ts +2 -0
- package/dest/node-cjs/barretenberg_wasm/index.test.d.ts.map +1 -0
- package/dest/node-cjs/barretenberg_wasm/index.test.js +40 -0
- package/dest/node-cjs/bigint-array/index.d.ts +3 -0
- package/dest/node-cjs/bigint-array/index.d.ts.map +1 -0
- package/dest/node-cjs/bigint-array/index.js +26 -0
- package/dest/node-cjs/bindgen/function_declaration.d.ts +11 -0
- package/dest/node-cjs/bindgen/function_declaration.d.ts.map +1 -0
- package/dest/node-cjs/bindgen/function_declaration.js +3 -0
- package/dest/node-cjs/bindgen/index.d.ts +2 -0
- package/dest/node-cjs/bindgen/index.d.ts.map +1 -0
- package/dest/node-cjs/bindgen/index.js +17 -0
- package/dest/node-cjs/bindgen/mappings.d.ts +4 -0
- package/dest/node-cjs/bindgen/mappings.d.ts.map +1 -0
- package/dest/node-cjs/bindgen/mappings.js +68 -0
- package/dest/node-cjs/bindgen/rust.d.ts +2 -0
- package/dest/node-cjs/bindgen/rust.d.ts.map +1 -0
- package/dest/node-cjs/bindgen/rust.js +48 -0
- package/dest/node-cjs/bindgen/to_camel_case.d.ts +2 -0
- package/dest/node-cjs/bindgen/to_camel_case.d.ts.map +1 -0
- package/dest/node-cjs/bindgen/to_camel_case.js +15 -0
- package/dest/node-cjs/bindgen/typescript.d.ts +2 -0
- package/dest/node-cjs/bindgen/typescript.d.ts.map +1 -0
- package/dest/node-cjs/bindgen/typescript.js +52 -0
- package/dest/node-cjs/crs/browser/cached_net_crs.d.ts +25 -0
- package/dest/node-cjs/crs/browser/cached_net_crs.d.ts.map +1 -0
- package/dest/node-cjs/crs/browser/cached_net_crs.js +58 -0
- package/dest/node-cjs/crs/browser/index.d.ts +2 -0
- package/dest/node-cjs/crs/browser/index.d.ts.map +1 -0
- package/dest/node-cjs/crs/browser/index.js +6 -0
- package/dest/node-cjs/crs/index.d.ts +2 -0
- package/dest/node-cjs/crs/index.d.ts.map +1 -0
- package/dest/node-cjs/crs/index.js +6 -0
- package/dest/node-cjs/crs/net_crs.d.ts +36 -0
- package/dest/node-cjs/crs/net_crs.d.ts.map +1 -0
- package/dest/node-cjs/crs/net_crs.js +63 -0
- package/dest/node-cjs/crs/node/ignition_files_crs.d.ts +37 -0
- package/dest/node-cjs/crs/node/ignition_files_crs.d.ts.map +1 -0
- package/dest/node-cjs/crs/node/ignition_files_crs.js +65 -0
- package/dest/node-cjs/crs/node/index.d.ts +21 -0
- package/dest/node-cjs/crs/node/index.d.ts.map +1 -0
- package/dest/node-cjs/crs/node/index.js +59 -0
- package/dest/node-cjs/examples/simple.rawtest.d.ts +2 -0
- package/dest/node-cjs/examples/simple.rawtest.d.ts.map +1 -0
- package/dest/node-cjs/examples/simple.rawtest.js +32 -0
- package/dest/node-cjs/examples/simple.test.d.ts +2 -0
- package/dest/node-cjs/examples/simple.test.d.ts.map +1 -0
- package/dest/node-cjs/examples/simple.test.js +24 -0
- package/dest/node-cjs/index.d.ts +4 -0
- package/dest/node-cjs/index.d.ts.map +1 -0
- package/dest/node-cjs/index.js +10 -0
- package/dest/node-cjs/info.d.ts +9 -0
- package/dest/node-cjs/info.d.ts.map +1 -0
- package/dest/node-cjs/info.js +27 -0
- package/dest/node-cjs/main.d.ts +11 -0
- package/dest/node-cjs/main.d.ts.map +1 -0
- package/dest/node-cjs/main.js +332 -0
- package/dest/node-cjs/package.json +3 -0
- package/dest/node-cjs/random/browser/index.d.ts +2 -0
- package/dest/node-cjs/random/browser/index.d.ts.map +1 -0
- package/dest/node-cjs/random/browser/index.js +35 -0
- package/dest/node-cjs/random/index.d.ts +2 -0
- package/dest/node-cjs/random/index.d.ts.map +1 -0
- package/dest/node-cjs/random/index.js +5 -0
- package/dest/node-cjs/random/node/index.d.ts +2 -0
- package/dest/node-cjs/random/node/index.d.ts.map +1 -0
- package/dest/node-cjs/random/node/index.js +9 -0
- package/dest/node-cjs/serialize/buffer_reader.d.ts +28 -0
- package/dest/node-cjs/serialize/buffer_reader.d.ts.map +1 -0
- package/dest/node-cjs/serialize/buffer_reader.js +70 -0
- package/dest/node-cjs/serialize/index.d.ts +4 -0
- package/dest/node-cjs/serialize/index.d.ts.map +1 -0
- package/dest/node-cjs/serialize/index.js +7 -0
- package/dest/node-cjs/serialize/output_type.d.ts +11 -0
- package/dest/node-cjs/serialize/output_type.d.ts.map +1 -0
- package/dest/node-cjs/serialize/output_type.js +52 -0
- package/dest/node-cjs/serialize/serialize.d.ts +53 -0
- package/dest/node-cjs/serialize/serialize.d.ts.map +1 -0
- package/dest/node-cjs/serialize/serialize.js +161 -0
- package/dest/node-cjs/types/fields.d.ts +33 -0
- package/dest/node-cjs/types/fields.d.ts.map +1 -0
- package/dest/node-cjs/types/fields.js +89 -0
- package/dest/node-cjs/types/fixed_size_buffer.d.ts +26 -0
- package/dest/node-cjs/types/fixed_size_buffer.d.ts.map +1 -0
- package/dest/node-cjs/types/fixed_size_buffer.js +57 -0
- package/dest/node-cjs/types/index.d.ts +6 -0
- package/dest/node-cjs/types/index.d.ts.map +1 -0
- package/dest/node-cjs/types/index.js +9 -0
- package/dest/node-cjs/types/point.d.ts +17 -0
- package/dest/node-cjs/types/point.d.ts.map +1 -0
- package/dest/node-cjs/types/point.js +35 -0
- package/dest/node-cjs/types/ptr.d.ts +13 -0
- package/dest/node-cjs/types/ptr.d.ts.map +1 -0
- package/dest/node-cjs/types/ptr.js +23 -0
- package/dest/node-cjs/types/raw_buffer.d.ts +3 -0
- package/dest/node-cjs/types/raw_buffer.d.ts.map +1 -0
- package/dest/node-cjs/types/raw_buffer.js +9 -0
- package/package.json +9 -8
- package/src/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.ts +11 -1
- package/src/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.ts +11 -1
- package/src/barretenberg_wasm/fetch_code/browser/index.ts +2 -2
- package/src/barretenberg_wasm/fetch_code/node/index.ts +11 -1
- package/src/bindgen/index.ts +2 -2
- package/src/bindgen/typescript.ts +1 -1
- package/src/crs/node/ignition_files_crs.ts +11 -1
- package/src/info.ts +23 -0
- package/src/main.ts +10 -2
- package/cjs-entry/index.cjs +0 -10
- package/cjs-entry/index.d.ts +0 -1
- package/dest/node/info.json +0 -22
- package/src/info.json +0 -22
|
Binary file
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
export declare class BarretenbergWasmBase {
|
|
2
|
+
protected memStore: {
|
|
3
|
+
[key: string]: Uint8Array;
|
|
4
|
+
};
|
|
5
|
+
protected memory: WebAssembly.Memory;
|
|
6
|
+
protected instance: WebAssembly.Instance;
|
|
7
|
+
protected logger: (msg: string) => void;
|
|
8
|
+
protected getImportObj(memory: WebAssembly.Memory): {
|
|
9
|
+
wasi_snapshot_preview1: {
|
|
10
|
+
random_get: (out: any, length: number) => void;
|
|
11
|
+
clock_time_get: (a1: number, a2: number, out: number) => void;
|
|
12
|
+
proc_exit: () => never;
|
|
13
|
+
};
|
|
14
|
+
env: {
|
|
15
|
+
/**
|
|
16
|
+
* The 'info' call we use for logging in C++, calls this under the hood.
|
|
17
|
+
* The native code will just print to std:err (to avoid std::cout which is used for IPC).
|
|
18
|
+
* Here we just emit the log line for the client to decide what to do with.
|
|
19
|
+
*/
|
|
20
|
+
logstr: (addr: number) => void;
|
|
21
|
+
get_data: (keyAddr: number, outBufAddr: number) => void;
|
|
22
|
+
set_data: (keyAddr: number, dataAddr: number, dataLength: number) => void;
|
|
23
|
+
memory: WebAssembly.Memory;
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
exports(): any;
|
|
27
|
+
/**
|
|
28
|
+
* When returning values from the WASM, use >>> operator to convert signed representation to unsigned representation.
|
|
29
|
+
*/
|
|
30
|
+
call(name: string, ...args: any): number;
|
|
31
|
+
memSize(): number;
|
|
32
|
+
/**
|
|
33
|
+
* Returns a copy of the data, not a view.
|
|
34
|
+
*/
|
|
35
|
+
getMemorySlice(start: number, end: number): Uint8Array;
|
|
36
|
+
writeMemory(offset: number, arr: Uint8Array): void;
|
|
37
|
+
private getMemory;
|
|
38
|
+
private stringFromAddress;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/barretenberg_wasm/barretenberg_wasm_base/index.ts"],"names":[],"mappings":"AAMA,qBAAa,oBAAoB;IAC/B,SAAS,CAAC,QAAQ,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAAA;KAAE,CAAM;IACvD,SAAS,CAAC,MAAM,EAAG,WAAW,CAAC,MAAM,CAAC;IACtC,SAAS,CAAC,QAAQ,EAAG,WAAW,CAAC,QAAQ,CAAC;IAC1C,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAS;IAEhD,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM;;8BAOzB,GAAG,UAAU,MAAM;iCAMhB,MAAM,MAAM,MAAM,OAAO,MAAM;;;;YAgBpD;;;;eAIG;2BACY,MAAM;gCAUD,MAAM,cAAc,MAAM;gCAa1B,MAAM,YAAY,MAAM,cAAc,MAAM;;;;IAe/D,OAAO,IAAI,GAAG;IAIrB;;OAEG;IACI,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG;IAc/B,OAAO;IAId;;OAEG;IACI,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;IAIzC,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU;IAOlD,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,iBAAiB;CAQ1B"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BarretenbergWasmBase = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const debug_1 = tslib_1.__importDefault(require("debug"));
|
|
6
|
+
const index_js_1 = require("../../random/index.js");
|
|
7
|
+
const index_js_2 = require("../helpers/index.js");
|
|
8
|
+
const debug = (0, debug_1.default)('bb.js:wasm');
|
|
9
|
+
class BarretenbergWasmBase {
|
|
10
|
+
constructor() {
|
|
11
|
+
this.memStore = {};
|
|
12
|
+
this.logger = debug;
|
|
13
|
+
}
|
|
14
|
+
getImportObj(memory) {
|
|
15
|
+
/* eslint-disable camelcase */
|
|
16
|
+
const importObj = {
|
|
17
|
+
// We need to implement a part of the wasi api:
|
|
18
|
+
// https://github.com/WebAssembly/WASI/blob/main/phases/snapshot/docs.md
|
|
19
|
+
// We literally only need to support random_get, everything else is noop implementated in barretenberg.wasm.
|
|
20
|
+
wasi_snapshot_preview1: {
|
|
21
|
+
random_get: (out, length) => {
|
|
22
|
+
out = out >>> 0;
|
|
23
|
+
const randomData = (0, index_js_1.randomBytes)(length);
|
|
24
|
+
const mem = this.getMemory();
|
|
25
|
+
mem.set(randomData, out);
|
|
26
|
+
},
|
|
27
|
+
clock_time_get: (a1, a2, out) => {
|
|
28
|
+
out = out >>> 0;
|
|
29
|
+
const ts = BigInt(new Date().getTime()) * 1000000n;
|
|
30
|
+
const view = new DataView(this.getMemory().buffer);
|
|
31
|
+
view.setBigUint64(out, ts, true);
|
|
32
|
+
},
|
|
33
|
+
proc_exit: () => {
|
|
34
|
+
this.logger('PANIC: proc_exit was called. This is maybe caused by "joining" with unstable wasi pthreads.');
|
|
35
|
+
this.logger(new Error().stack);
|
|
36
|
+
(0, index_js_2.killSelf)();
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
// These are functions implementations for imports we've defined are needed.
|
|
40
|
+
// The native C++ build defines these in a module called "env". We must implement TypeScript versions here.
|
|
41
|
+
env: {
|
|
42
|
+
/**
|
|
43
|
+
* The 'info' call we use for logging in C++, calls this under the hood.
|
|
44
|
+
* The native code will just print to std:err (to avoid std::cout which is used for IPC).
|
|
45
|
+
* Here we just emit the log line for the client to decide what to do with.
|
|
46
|
+
*/
|
|
47
|
+
logstr: (addr) => {
|
|
48
|
+
const str = this.stringFromAddress(addr);
|
|
49
|
+
const m = this.getMemory();
|
|
50
|
+
const str2 = `${str} (mem: ${(m.length / (1024 * 1024)).toFixed(2)}MiB)`;
|
|
51
|
+
this.logger(str2);
|
|
52
|
+
if (str2.startsWith('WARNING:')) {
|
|
53
|
+
this.logger(new Error().stack);
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
get_data: (keyAddr, outBufAddr) => {
|
|
57
|
+
const key = this.stringFromAddress(keyAddr);
|
|
58
|
+
outBufAddr = outBufAddr >>> 0;
|
|
59
|
+
const data = this.memStore[key];
|
|
60
|
+
if (!data) {
|
|
61
|
+
this.logger(`get_data miss ${key}`);
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
// this.logger(`get_data hit ${key} size: ${data.length} dest: ${outBufAddr}`);
|
|
65
|
+
// this.logger(Buffer.from(data.slice(0, 64)).toString('hex'));
|
|
66
|
+
this.writeMemory(outBufAddr, data);
|
|
67
|
+
},
|
|
68
|
+
set_data: (keyAddr, dataAddr, dataLength) => {
|
|
69
|
+
const key = this.stringFromAddress(keyAddr);
|
|
70
|
+
dataAddr = dataAddr >>> 0;
|
|
71
|
+
this.memStore[key] = this.getMemorySlice(dataAddr, dataAddr + dataLength);
|
|
72
|
+
// this.logger(`set_data: ${key} length: ${dataLength}`);
|
|
73
|
+
},
|
|
74
|
+
memory,
|
|
75
|
+
},
|
|
76
|
+
};
|
|
77
|
+
/* eslint-enable camelcase */
|
|
78
|
+
return importObj;
|
|
79
|
+
}
|
|
80
|
+
exports() {
|
|
81
|
+
return this.instance.exports;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* When returning values from the WASM, use >>> operator to convert signed representation to unsigned representation.
|
|
85
|
+
*/
|
|
86
|
+
call(name, ...args) {
|
|
87
|
+
if (!this.exports()[name]) {
|
|
88
|
+
throw new Error(`WASM function ${name} not found.`);
|
|
89
|
+
}
|
|
90
|
+
try {
|
|
91
|
+
return this.exports()[name](...args) >>> 0;
|
|
92
|
+
}
|
|
93
|
+
catch (err) {
|
|
94
|
+
const message = `WASM function ${name} aborted, error: ${err}`;
|
|
95
|
+
this.logger(message);
|
|
96
|
+
this.logger(err.stack);
|
|
97
|
+
throw err;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
memSize() {
|
|
101
|
+
return this.getMemory().length;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Returns a copy of the data, not a view.
|
|
105
|
+
*/
|
|
106
|
+
getMemorySlice(start, end) {
|
|
107
|
+
return this.getMemory().subarray(start, end).slice();
|
|
108
|
+
}
|
|
109
|
+
writeMemory(offset, arr) {
|
|
110
|
+
const mem = this.getMemory();
|
|
111
|
+
mem.set(arr, offset);
|
|
112
|
+
}
|
|
113
|
+
// PRIVATE METHODS
|
|
114
|
+
getMemory() {
|
|
115
|
+
return new Uint8Array(this.memory.buffer);
|
|
116
|
+
}
|
|
117
|
+
stringFromAddress(addr) {
|
|
118
|
+
addr = addr >>> 0;
|
|
119
|
+
const m = this.getMemory();
|
|
120
|
+
let i = addr;
|
|
121
|
+
for (; m[i] !== 0; ++i)
|
|
122
|
+
;
|
|
123
|
+
const textDecoder = new TextDecoder('ascii');
|
|
124
|
+
return textDecoder.decode(m.slice(addr, i));
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
exports.BarretenbergWasmBase = BarretenbergWasmBase;
|
|
128
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYmFycmV0ZW5iZXJnX3dhc20vYmFycmV0ZW5iZXJnX3dhc21fYmFzZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsMERBQWdDO0FBQ2hDLG9EQUFvRDtBQUNwRCxrREFBK0M7QUFFL0MsTUFBTSxLQUFLLEdBQUcsSUFBQSxlQUFXLEVBQUMsWUFBWSxDQUFDLENBQUM7QUFFeEMsTUFBYSxvQkFBb0I7SUFBakM7UUFDWSxhQUFRLEdBQWtDLEVBQUUsQ0FBQztRQUc3QyxXQUFNLEdBQTBCLEtBQUssQ0FBQztJQTZIbEQsQ0FBQztJQTNIVyxZQUFZLENBQUMsTUFBMEI7UUFDL0MsOEJBQThCO1FBQzlCLE1BQU0sU0FBUyxHQUFHO1lBQ2hCLCtDQUErQztZQUMvQyx3RUFBd0U7WUFDeEUsNEdBQTRHO1lBQzVHLHNCQUFzQixFQUFFO2dCQUN0QixVQUFVLEVBQUUsQ0FBQyxHQUFRLEVBQUUsTUFBYyxFQUFFLEVBQUU7b0JBQ3ZDLEdBQUcsR0FBRyxHQUFHLEtBQUssQ0FBQyxDQUFDO29CQUNoQixNQUFNLFVBQVUsR0FBRyxJQUFBLHNCQUFXLEVBQUMsTUFBTSxDQUFDLENBQUM7b0JBQ3ZDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztvQkFDN0IsR0FBRyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQzNCLENBQUM7Z0JBQ0QsY0FBYyxFQUFFLENBQUMsRUFBVSxFQUFFLEVBQVUsRUFBRSxHQUFXLEVBQUUsRUFBRTtvQkFDdEQsR0FBRyxHQUFHLEdBQUcsS0FBSyxDQUFDLENBQUM7b0JBQ2hCLE1BQU0sRUFBRSxHQUFHLE1BQU0sQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQUcsUUFBUSxDQUFDO29CQUNuRCxNQUFNLElBQUksR0FBRyxJQUFJLFFBQVEs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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.ts"],"names":[],"mappings":"AAGA,wBAAgB,gBAAgB,QAM/B"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createMainWorker = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const debug_1 = tslib_1.__importDefault(require("debug"));
|
|
6
|
+
const main_worker_js_1 = tslib_1.__importDefault(require("./main.worker.js"));
|
|
7
|
+
function createMainWorker() {
|
|
8
|
+
const worker = new main_worker_js_1.default();
|
|
9
|
+
const debugStr = debug_1.default.disable();
|
|
10
|
+
debug_1.default.enable(debugStr);
|
|
11
|
+
worker.postMessage({ debug: debugStr });
|
|
12
|
+
return worker;
|
|
13
|
+
}
|
|
14
|
+
exports.createMainWorker = createMainWorker;
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYmFycmV0ZW5iZXJnX3dhc20vYmFycmV0ZW5iZXJnX3dhc21fbWFpbi9mYWN0b3J5L2Jyb3dzZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLDBEQUEwQjtBQUMxQiw4RUFBMEM7QUFFMUMsU0FBZ0IsZ0JBQWdCO0lBQzlCLE1BQU0sTUFBTSxHQUFHLElBQUksd0JBQVUsRUFBRSxDQUFDO0lBQ2hDLE1BQU0sUUFBUSxHQUFHLGVBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNqQyxlQUFLLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3ZCLE1BQU0sQ0FBQyxXQUFXLENBQUMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUN4QyxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDO0FBTkQsNENBTUMifQ==
|
package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"main.worker.d.ts","sourceRoot":"","sources":["../../../../../../src/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.ts"],"names":[],"mappings":";AAcA,wBAA2B"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
const comlink_1 = require("comlink");
|
|
5
|
+
const index_js_1 = require("../../index.js");
|
|
6
|
+
const debug_1 = tslib_1.__importDefault(require("debug"));
|
|
7
|
+
self.onmessage = function (e) {
|
|
8
|
+
if (e.data.debug) {
|
|
9
|
+
debug_1.default.enable(e.data.debug);
|
|
10
|
+
}
|
|
11
|
+
};
|
|
12
|
+
(0, comlink_1.expose)(new index_js_1.BarretenbergWasmMain());
|
|
13
|
+
self.postMessage({ ready: true });
|
|
14
|
+
exports.default = null;
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi53b3JrZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYmFycmV0ZW5iZXJnX3dhc20vYmFycmV0ZW5iZXJnX3dhc21fbWFpbi9mYWN0b3J5L2Jyb3dzZXIvbWFpbi53b3JrZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUNBQWlDO0FBQ2pDLDZDQUFzRDtBQUN0RCwwREFBMEI7QUFFMUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxVQUFVLENBQUM7SUFDMUIsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtRQUNoQixlQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDNUI7QUFDSCxDQUFDLENBQUM7QUFFRixJQUFBLGdCQUFNLEVBQUMsSUFBSSwrQkFBb0IsRUFBRSxDQUFDLENBQUM7QUFFbkMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0FBRWxDLGtCQUFlLElBQVcsQ0FBQyJ9
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAcxC,wBAAgB,gBAAgB,WAG/B"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createMainWorker = void 0;
|
|
4
|
+
const worker_threads_1 = require("worker_threads");
|
|
5
|
+
const path_1 = require("path");
|
|
6
|
+
const url_1 = require("url");
|
|
7
|
+
function getCurrentDir() {
|
|
8
|
+
if (typeof __dirname !== 'undefined') {
|
|
9
|
+
return __dirname;
|
|
10
|
+
}
|
|
11
|
+
else {
|
|
12
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
13
|
+
// @ts-ignore
|
|
14
|
+
return (0, path_1.dirname)((0, url_1.fileURLToPath)(""));
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
function createMainWorker() {
|
|
18
|
+
const __dirname = getCurrentDir();
|
|
19
|
+
return new worker_threads_1.Worker(__dirname + `/main.worker.js`);
|
|
20
|
+
}
|
|
21
|
+
exports.createMainWorker = createMainWorker;
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYmFycmV0ZW5iZXJnX3dhc20vYmFycmV0ZW5iZXJnX3dhc21fbWFpbi9mYWN0b3J5L25vZGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbURBQXdDO0FBQ3hDLCtCQUErQjtBQUMvQiw2QkFBb0M7QUFFcEMsU0FBUyxhQUFhO0lBQ3BCLElBQUksT0FBTyxTQUFTLEtBQUssV0FBVyxFQUFFO1FBQ3BDLE9BQU8sU0FBUyxDQUFDO0tBQ2xCO1NBQU07UUFDTCw2REFBNkQ7UUFDN0QsYUFBYTtRQUNiLE9BQU8sSUFBQSxjQUFPLEVBQUMsSUFBQSxtQkFBYSxFQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztLQUNoRDtBQUNILENBQUM7QUFFRCxTQUFnQixnQkFBZ0I7SUFDOUIsTUFBTSxTQUFTLEdBQUcsYUFBYSxFQUFFLENBQUM7SUFDbEMsT0FBTyxJQUFJLHVCQUFNLENBQUMsU0FBUyxHQUFHLGlCQUFpQixDQUFDLENBQUM7QUFDbkQsQ0FBQztBQUhELDRDQUdDIn0=
|
package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"main.worker.d.ts","sourceRoot":"","sources":["../../../../../../src/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const worker_threads_1 = require("worker_threads");
|
|
4
|
+
const comlink_1 = require("comlink");
|
|
5
|
+
const index_js_1 = require("../../index.js");
|
|
6
|
+
const node_endpoint_js_1 = require("../../../helpers/node/node_endpoint.js");
|
|
7
|
+
if (!worker_threads_1.parentPort) {
|
|
8
|
+
throw new Error('No parentPort');
|
|
9
|
+
}
|
|
10
|
+
(0, comlink_1.expose)(new index_js_1.BarretenbergWasmMain(), (0, node_endpoint_js_1.nodeEndpoint)(worker_threads_1.parentPort));
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi53b3JrZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYmFycmV0ZW5iZXJnX3dhc20vYmFycmV0ZW5iZXJnX3dhc21fbWFpbi9mYWN0b3J5L25vZGUvbWFpbi53b3JrZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxtREFBNEM7QUFDNUMscUNBQWlDO0FBQ2pDLDZDQUFzRDtBQUN0RCw2RUFBc0U7QUFFdEUsSUFBSSxDQUFDLDJCQUFVLEVBQUU7SUFDZixNQUFNLElBQUksS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0NBQ2xDO0FBRUQsSUFBQSxnQkFBTSxFQUFDLElBQUksK0JBQW9CLEVBQUUsRUFBRSxJQUFBLCtCQUFZLEVBQUMsMkJBQVUsQ0FBQyxDQUFDLENBQUMifQ==
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { Remote } from 'comlink';
|
|
2
|
+
import { BarretenbergWasmBase } from '../barretenberg_wasm_base/index.js';
|
|
3
|
+
export declare class BarretenbergWasmMain extends BarretenbergWasmBase {
|
|
4
|
+
static MAX_THREADS: number;
|
|
5
|
+
private workers;
|
|
6
|
+
private remoteWasms;
|
|
7
|
+
private nextWorker;
|
|
8
|
+
private nextThreadId;
|
|
9
|
+
getNumThreads(): number;
|
|
10
|
+
/**
|
|
11
|
+
* Init as main thread. Spawn child threads.
|
|
12
|
+
*/
|
|
13
|
+
init(threads?: number, logger?: (msg: string) => void, initial?: number, maximum?: number): Promise<void>;
|
|
14
|
+
/**
|
|
15
|
+
* Called on main thread. Signals child threads to gracefully exit.
|
|
16
|
+
*/
|
|
17
|
+
destroy(): Promise<void>;
|
|
18
|
+
protected getImportObj(memory: WebAssembly.Memory): {
|
|
19
|
+
wasi: {
|
|
20
|
+
'thread-spawn': (arg: number) => number;
|
|
21
|
+
};
|
|
22
|
+
env: {
|
|
23
|
+
env_hardware_concurrency: () => number;
|
|
24
|
+
logstr: (addr: number) => void;
|
|
25
|
+
get_data: (keyAddr: number, outBufAddr: number) => void;
|
|
26
|
+
set_data: (keyAddr: number, dataAddr: number, dataLength: number) => void;
|
|
27
|
+
memory: WebAssembly.Memory;
|
|
28
|
+
};
|
|
29
|
+
wasi_snapshot_preview1: {
|
|
30
|
+
random_get: (out: any, length: number) => void;
|
|
31
|
+
clock_time_get: (a1: number, a2: number, out: number) => void;
|
|
32
|
+
proc_exit: () => never;
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
export type BarretenbergWasmMainWorker = Remote<BarretenbergWasmMain>;
|
|
37
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/barretenberg_wasm/barretenberg_wasm_main/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAKjC,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAI1E,qBAAa,oBAAqB,SAAQ,oBAAoB;IAC5D,MAAM,CAAC,WAAW,SAAM;IACxB,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,WAAW,CAAsC;IACzD,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,YAAY,CAAK;IAElB,aAAa;IAIpB;;OAEG;IACU,IAAI,CACf,OAAO,SAA0D,EACjE,MAAM,GAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAY,EACrC,OAAO,SAAK,EACZ,OAAO,SAAU;IAsCnB;;OAEG;IACU,OAAO;IAIpB,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM;;kCAOrB,MAAM;;;;;;;;;;;;;;;CAqBnC;AAED,MAAM,MAAM,0BAA0B,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BarretenbergWasmMain = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const debug_1 = tslib_1.__importDefault(require("debug"));
|
|
6
|
+
const index_js_1 = require("../helpers/index.js");
|
|
7
|
+
const index_js_2 = require("../fetch_code/index.js");
|
|
8
|
+
const index_js_3 = require("../barretenberg_wasm_thread/factory/node/index.js");
|
|
9
|
+
const index_js_4 = require("../barretenberg_wasm_base/index.js");
|
|
10
|
+
const debug = (0, debug_1.default)('bb.js:wasm');
|
|
11
|
+
class BarretenbergWasmMain extends index_js_4.BarretenbergWasmBase {
|
|
12
|
+
constructor() {
|
|
13
|
+
super(...arguments);
|
|
14
|
+
this.workers = [];
|
|
15
|
+
this.remoteWasms = [];
|
|
16
|
+
this.nextWorker = 0;
|
|
17
|
+
this.nextThreadId = 1;
|
|
18
|
+
}
|
|
19
|
+
getNumThreads() {
|
|
20
|
+
return this.workers.length + 1;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Init as main thread. Spawn child threads.
|
|
24
|
+
*/
|
|
25
|
+
async init(threads = Math.min((0, index_js_1.getNumCpu)(), BarretenbergWasmMain.MAX_THREADS), logger = debug, initial = 25, maximum = 2 ** 16) {
|
|
26
|
+
this.logger = logger;
|
|
27
|
+
const initialMb = (initial * 2 ** 16) / (1024 * 1024);
|
|
28
|
+
const maxMb = (maximum * 2 ** 16) / (1024 * 1024);
|
|
29
|
+
const shared = (0, index_js_1.getSharedMemoryAvailable)();
|
|
30
|
+
if (!shared) {
|
|
31
|
+
threads = 1;
|
|
32
|
+
}
|
|
33
|
+
this.logger(`initial mem: ${initial} pages, ${initialMb}MiB. ` +
|
|
34
|
+
`max mem: ${maximum} pages, ${maxMb}MiB. ` +
|
|
35
|
+
`threads: ${threads}, shared: ${shared}`);
|
|
36
|
+
this.memory = new WebAssembly.Memory({ initial, maximum, shared });
|
|
37
|
+
const code = await (0, index_js_2.fetchCode)(shared);
|
|
38
|
+
const { instance, module } = await WebAssembly.instantiate(code, this.getImportObj(this.memory));
|
|
39
|
+
this.instance = instance;
|
|
40
|
+
// Init all global/static data.
|
|
41
|
+
this.call('_initialize');
|
|
42
|
+
// Create worker threads. Create 1 less than requested, as main thread counts as a thread.
|
|
43
|
+
if (threads > 1) {
|
|
44
|
+
this.logger(`creating ${threads} worker threads...`);
|
|
45
|
+
this.workers = await Promise.all(Array.from({ length: threads - 1 }).map(index_js_3.createThreadWorker));
|
|
46
|
+
this.remoteWasms = await Promise.all(this.workers.map((index_js_1.getRemoteBarretenbergWasm)));
|
|
47
|
+
await Promise.all(this.remoteWasms.map(w => w.initThread(module, this.memory)));
|
|
48
|
+
}
|
|
49
|
+
this.logger('init complete.');
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Called on main thread. Signals child threads to gracefully exit.
|
|
53
|
+
*/
|
|
54
|
+
async destroy() {
|
|
55
|
+
await Promise.all(this.workers.map(w => w.terminate()));
|
|
56
|
+
}
|
|
57
|
+
getImportObj(memory) {
|
|
58
|
+
const baseImports = super.getImportObj(memory);
|
|
59
|
+
/* eslint-disable camelcase */
|
|
60
|
+
return {
|
|
61
|
+
...baseImports,
|
|
62
|
+
wasi: {
|
|
63
|
+
'thread-spawn': (arg) => {
|
|
64
|
+
arg = arg >>> 0;
|
|
65
|
+
const id = this.nextThreadId++;
|
|
66
|
+
const worker = this.nextWorker++ % this.remoteWasms.length;
|
|
67
|
+
// this.logger(`spawning thread ${id} on worker ${worker} with arg ${arg >>> 0}`);
|
|
68
|
+
this.remoteWasms[worker].call('wasi_thread_start', id, arg).catch(this.logger);
|
|
69
|
+
// this.remoteWasms[worker].postMessage({ msg: 'thread', data: { id, arg } });
|
|
70
|
+
return id;
|
|
71
|
+
},
|
|
72
|
+
},
|
|
73
|
+
env: {
|
|
74
|
+
...baseImports.env,
|
|
75
|
+
env_hardware_concurrency: () => {
|
|
76
|
+
// If there are no workers (we're already running as a worker, or the main thread requested no workers)
|
|
77
|
+
// then we return 1, which should cause any algos using threading to just not create a thread.
|
|
78
|
+
return this.remoteWasms.length + 1;
|
|
79
|
+
},
|
|
80
|
+
},
|
|
81
|
+
};
|
|
82
|
+
/* eslint-enable camelcase */
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
BarretenbergWasmMain.MAX_THREADS = 32;
|
|
86
|
+
exports.BarretenbergWasmMain = BarretenbergWasmMain;
|
|
87
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYmFycmV0ZW5iZXJnX3dhc20vYmFycmV0ZW5iZXJnX3dhc21fbWFpbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQ0EsMERBQWdDO0FBRWhDLGtEQUFxRztBQUNyRyxxREFBbUQ7QUFDbkQsZ0ZBQXVGO0FBRXZGLGlFQUEwRTtBQUUxRSxNQUFNLEtBQUssR0FBRyxJQUFBLGVBQVcsRUFBQyxZQUFZLENBQUMsQ0FBQztBQUV4QyxNQUFhLG9CQUFxQixTQUFRLCtCQUFvQjtJQUE5RDs7UUFFVSxZQUFPLEdBQWEsRUFBRSxDQUFDO1FBQ3ZCLGdCQUFXLEdBQW1DLEVBQUUsQ0FBQztRQUNqRCxlQUFVLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsaUJBQVksR0FBRyxDQUFDLENBQUM7SUFzRjNCLENBQUM7SUFwRlEsYUFBYTtRQUNsQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsSUFBSSxDQUNmLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUEsb0JBQVMsR0FBRSxFQUFFLG9CQUFvQixDQUFDLFdBQVcsQ0FBQyxFQUNqRSxTQUFnQyxLQUFLLEVBQ3JDLE9BQU8sR0FBRyxFQUFFLEVBQ1osT0FBTyxHQUFHLENBQUMsSUFBSSxFQUFFO1FBRWpCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBRXJCLE1BQU0sU0FBUyxHQUFHLENBQUMsT0FBTyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQztRQUN0RCxNQUFNLEtBQUssR0FBRyxDQUFDLE9BQU8sR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDbEQsTUFB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
|
package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.ts"],"names":[],"mappings":"AAGA,wBAAgB,kBAAkB,QAMjC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createThreadWorker = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const debug_1 = tslib_1.__importDefault(require("debug"));
|
|
6
|
+
const thread_worker_js_1 = tslib_1.__importDefault(require("./thread.worker.js"));
|
|
7
|
+
function createThreadWorker() {
|
|
8
|
+
const worker = new thread_worker_js_1.default();
|
|
9
|
+
const debugStr = debug_1.default.disable();
|
|
10
|
+
debug_1.default.enable(debugStr);
|
|
11
|
+
worker.postMessage({ debug: debugStr });
|
|
12
|
+
return worker;
|
|
13
|
+
}
|
|
14
|
+
exports.createThreadWorker = createThreadWorker;
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYmFycmV0ZW5iZXJnX3dhc20vYmFycmV0ZW5iZXJnX3dhc21fdGhyZWFkL2ZhY3RvcnkvYnJvd3Nlci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsMERBQTBCO0FBQzFCLGtGQUE4QztBQUU5QyxTQUFnQixrQkFBa0I7SUFDaEMsTUFBTSxNQUFNLEdBQUcsSUFBSSwwQkFBWSxFQUFFLENBQUM7SUFDbEMsTUFBTSxRQUFRLEdBQUcsZUFBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2pDLGVBQUssQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdkIsTUFBTSxDQUFDLFdBQVcsQ0FBQyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ3hDLE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFORCxnREFNQyJ9
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"thread.worker.d.ts","sourceRoot":"","sources":["../../../../../../src/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.ts"],"names":[],"mappings":";AAcA,wBAA2B"}
|
package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.js
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
const comlink_1 = require("comlink");
|
|
5
|
+
const index_js_1 = require("../../index.js");
|
|
6
|
+
const debug_1 = tslib_1.__importDefault(require("debug"));
|
|
7
|
+
self.onmessage = function (e) {
|
|
8
|
+
if (e.data.debug) {
|
|
9
|
+
debug_1.default.enable(e.data.debug);
|
|
10
|
+
}
|
|
11
|
+
};
|
|
12
|
+
(0, comlink_1.expose)(new index_js_1.BarretenbergWasmThread());
|
|
13
|
+
self.postMessage({ ready: true });
|
|
14
|
+
exports.default = null;
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhyZWFkLndvcmtlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9iYXJyZXRlbmJlcmdfd2FzbS9iYXJyZXRlbmJlcmdfd2FzbV90aHJlYWQvZmFjdG9yeS9icm93c2VyL3RocmVhZC53b3JrZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUNBQWlDO0FBQ2pDLDZDQUF3RDtBQUN4RCwwREFBMEI7QUFFMUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxVQUFVLENBQUM7SUFDMUIsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtRQUNoQixlQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDNUI7QUFDSCxDQUFDLENBQUM7QUFFRixJQUFBLGdCQUFNLEVBQUMsSUFBSSxpQ0FBc0IsRUFBRSxDQUFDLENBQUM7QUFFckMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0FBRWxDLGtCQUFlLElBQVcsQ0FBQyJ9
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAcxC,wBAAgB,kBAAkB,WAGjC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createThreadWorker = void 0;
|
|
4
|
+
const worker_threads_1 = require("worker_threads");
|
|
5
|
+
const path_1 = require("path");
|
|
6
|
+
const url_1 = require("url");
|
|
7
|
+
function getCurrentDir() {
|
|
8
|
+
if (typeof __dirname !== 'undefined') {
|
|
9
|
+
return __dirname;
|
|
10
|
+
}
|
|
11
|
+
else {
|
|
12
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
13
|
+
// @ts-ignore
|
|
14
|
+
return (0, path_1.dirname)((0, url_1.fileURLToPath)(""));
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
function createThreadWorker() {
|
|
18
|
+
const __dirname = getCurrentDir();
|
|
19
|
+
return new worker_threads_1.Worker(__dirname + `/thread.worker.js`);
|
|
20
|
+
}
|
|
21
|
+
exports.createThreadWorker = createThreadWorker;
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYmFycmV0ZW5iZXJnX3dhc20vYmFycmV0ZW5iZXJnX3dhc21fdGhyZWFkL2ZhY3Rvcnkvbm9kZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtREFBd0M7QUFDeEMsK0JBQStCO0FBQy9CLDZCQUFvQztBQUVwQyxTQUFTLGFBQWE7SUFDcEIsSUFBSSxPQUFPLFNBQVMsS0FBSyxXQUFXLEVBQUU7UUFDcEMsT0FBTyxTQUFTLENBQUM7S0FDbEI7U0FBTTtRQUNMLDZEQUE2RDtRQUM3RCxhQUFhO1FBQ2IsT0FBTyxJQUFBLGNBQU8sRUFBQyxJQUFBLG1CQUFhLEVBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0tBQ2hEO0FBQ0gsQ0FBQztBQUVELFNBQWdCLGtCQUFrQjtJQUNoQyxNQUFNLFNBQVMsR0FBRyxhQUFhLEVBQUUsQ0FBQztJQUNsQyxPQUFPLElBQUksdUJBQU0sQ0FBQyxTQUFTLEdBQUcsbUJBQW1CLENBQUMsQ0FBQztBQUNyRCxDQUFDO0FBSEQsZ0RBR0MifQ==
|
package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"thread.worker.d.ts","sourceRoot":"","sources":["../../../../../../src/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.ts"],"names":[],"mappings":""}
|
package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.js
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const worker_threads_1 = require("worker_threads");
|
|
4
|
+
const comlink_1 = require("comlink");
|
|
5
|
+
const index_js_1 = require("../../index.js");
|
|
6
|
+
const node_endpoint_js_1 = require("../../../helpers/node/node_endpoint.js");
|
|
7
|
+
if (!worker_threads_1.parentPort) {
|
|
8
|
+
throw new Error('No parentPort');
|
|
9
|
+
}
|
|
10
|
+
(0, comlink_1.expose)(new index_js_1.BarretenbergWasmThread(), (0, node_endpoint_js_1.nodeEndpoint)(worker_threads_1.parentPort));
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhyZWFkLndvcmtlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9iYXJyZXRlbmJlcmdfd2FzbS9iYXJyZXRlbmJlcmdfd2FzbV90aHJlYWQvZmFjdG9yeS9ub2RlL3RocmVhZC53b3JrZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxtREFBNEM7QUFDNUMscUNBQWlDO0FBQ2pDLDZDQUF3RDtBQUN4RCw2RUFBc0U7QUFFdEUsSUFBSSxDQUFDLDJCQUFVLEVBQUU7SUFDZixNQUFNLElBQUksS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0NBQ2xDO0FBRUQsSUFBQSxnQkFBTSxFQUFDLElBQUksaUNBQXNCLEVBQUUsRUFBRSxJQUFBLCtCQUFZLEVBQUMsMkJBQVUsQ0FBQyxDQUFDLENBQUMifQ==
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Remote } from 'comlink';
|
|
2
|
+
import { BarretenbergWasmBase } from '../barretenberg_wasm_base/index.js';
|
|
3
|
+
export declare class BarretenbergWasmThread extends BarretenbergWasmBase {
|
|
4
|
+
/**
|
|
5
|
+
* Init as worker thread.
|
|
6
|
+
*/
|
|
7
|
+
initThread(module: WebAssembly.Module, memory: WebAssembly.Memory): Promise<void>;
|
|
8
|
+
destroy(): void;
|
|
9
|
+
protected getImportObj(memory: WebAssembly.Memory): {
|
|
10
|
+
wasi: {
|
|
11
|
+
'thread-spawn': () => never;
|
|
12
|
+
};
|
|
13
|
+
env: {
|
|
14
|
+
env_hardware_concurrency: () => number;
|
|
15
|
+
logstr: (addr: number) => void;
|
|
16
|
+
get_data: (keyAddr: number, outBufAddr: number) => void;
|
|
17
|
+
set_data: (keyAddr: number, dataAddr: number, dataLength: number) => void;
|
|
18
|
+
memory: WebAssembly.Memory;
|
|
19
|
+
};
|
|
20
|
+
wasi_snapshot_preview1: {
|
|
21
|
+
random_get: (out: any, length: number) => void;
|
|
22
|
+
clock_time_get: (a1: number, a2: number, out: number) => void;
|
|
23
|
+
proc_exit: () => never;
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
export type BarretenbergWasmThreadWorker = Remote<BarretenbergWasmThread>;
|
|
28
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/barretenberg_wasm/barretenberg_wasm_thread/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEjC,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAE1E,qBAAa,sBAAuB,SAAQ,oBAAoB;IAC9D;;OAEG;IACU,UAAU,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,MAAM;IAMvE,OAAO;IAId,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM;;;;;;;;;;;;;;;;;CA0BlD;AAED,MAAM,MAAM,4BAA4B,GAAG,MAAM,CAAC,sBAAsB,CAAC,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BarretenbergWasmThread = void 0;
|
|
4
|
+
const index_js_1 = require("../helpers/index.js");
|
|
5
|
+
const index_js_2 = require("../barretenberg_wasm_base/index.js");
|
|
6
|
+
class BarretenbergWasmThread extends index_js_2.BarretenbergWasmBase {
|
|
7
|
+
/**
|
|
8
|
+
* Init as worker thread.
|
|
9
|
+
*/
|
|
10
|
+
async initThread(module, memory) {
|
|
11
|
+
this.logger = (0, index_js_1.threadLogger)() || this.logger;
|
|
12
|
+
this.memory = memory;
|
|
13
|
+
this.instance = await WebAssembly.instantiate(module, this.getImportObj(this.memory));
|
|
14
|
+
}
|
|
15
|
+
destroy() {
|
|
16
|
+
(0, index_js_1.killSelf)();
|
|
17
|
+
}
|
|
18
|
+
getImportObj(memory) {
|
|
19
|
+
const baseImports = super.getImportObj(memory);
|
|
20
|
+
/* eslint-disable camelcase */
|
|
21
|
+
return {
|
|
22
|
+
...baseImports,
|
|
23
|
+
wasi: {
|
|
24
|
+
'thread-spawn': () => {
|
|
25
|
+
this.logger('PANIC: threads cannot spawn threads!');
|
|
26
|
+
this.logger(new Error().stack);
|
|
27
|
+
(0, index_js_1.killSelf)();
|
|
28
|
+
},
|
|
29
|
+
},
|
|
30
|
+
// These are functions implementations for imports we've defined are needed.
|
|
31
|
+
// The native C++ build defines these in a module called "env". We must implement TypeScript versions here.
|
|
32
|
+
env: {
|
|
33
|
+
...baseImports.env,
|
|
34
|
+
env_hardware_concurrency: () => {
|
|
35
|
+
// We return 1, which should cause any algos using threading to just not create a thread.
|
|
36
|
+
return 1;
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
};
|
|
40
|
+
/* eslint-enable camelcase */
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
exports.BarretenbergWasmThread = BarretenbergWasmThread;
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYmFycmV0ZW5iZXJnX3dhc20vYmFycmV0ZW5iZXJnX3dhc21fdGhyZWFkL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLGtEQUE2RDtBQUM3RCxpRUFBMEU7QUFFMUUsTUFBYSxzQkFBdUIsU0FBUSwrQkFBb0I7SUFDOUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsVUFBVSxDQUFDLE1BQTBCLEVBQUUsTUFBMEI7UUFDNUUsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFBLHVCQUFZLEdBQUUsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQzVDLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxRQUFRLEdBQUcsTUFBTSxXQUFXLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ3hGLENBQUM7SUFFTSxPQUFPO1FBQ1osSUFBQSxtQkFBUSxHQUFFLENBQUM7SUFDYixDQUFDO0lBRVMsWUFBWSxDQUFDLE1BQTBCO1FBQy9DLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFL0MsOEJBQThCO1FBQzlCLE9BQU87WUFDTCxHQUFHLFdBQVc7WUFDZCxJQUFJLEVBQUU7Z0JBQ0osY0FBYyxFQUFFLEdBQUcsRUFBRTtvQkFDbkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO29CQUNwRCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxFQUFFLENBQUMsS0FBTSxDQUFDLENBQUM7b0JBQ2hDLElBQUEsbUJBQVEsR0FBRSxDQUFDO2dCQUNiLENBQUM7YUFDRjtZQUVELDRFQUE0RTtZQUM1RSwyR0FBMkc7WUFDM0csR0FBRyxFQUFFO2dCQUNILEdBQUcsV0FBVyxDQUFDLEdBQUc7Z0JBQ2xCLHdCQUF3QixFQUFFLEdBQUcsRUFBRTtvQkFDN0IseUZBQXlGO29CQUN6RixPQUFPLENBQUMsQ0FBQztnQkFDWCxDQUFDO2FBQ0Y7U0FDRixDQUFDO1FBQ0YsNkJBQTZCO0lBQy9CLENBQUM7Q0FDRjtBQXhDRCx3REF3Q0MifQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/barretenberg_wasm/fetch_code/browser/index.ts"],"names":[],"mappings":"AAKA,wBAAsB,SAAS,CAAC,aAAa,EAAE,OAAO,wBAGrD"}
|