@aztec/bb.js 0.0.1-alpha.7 → 0.0.1-commit.0208eb9
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 +55 -84
- package/build/amd64-linux/bb +0 -0
- package/build/amd64-linux/nodejs_module.node +0 -0
- package/build/amd64-macos/bb +0 -0
- package/build/amd64-macos/nodejs_module.node +0 -0
- package/build/arm64-linux/bb +0 -0
- package/build/arm64-linux/nodejs_module.node +0 -0
- package/build/arm64-macos/bb +0 -0
- package/build/arm64-macos/nodejs_module.node +0 -0
- package/dest/{async_map → browser/async_map}/index.d.ts +1 -1
- package/dest/browser/async_map/index.d.ts.map +1 -0
- package/dest/{async_map → browser/async_map}/index.js +1 -1
- package/dest/browser/barretenberg/backend.d.ts +93 -0
- package/dest/browser/barretenberg/backend.d.ts.map +1 -0
- package/dest/browser/barretenberg/backend.js +350 -0
- package/dest/browser/barretenberg/index.d.ts +65 -0
- package/dest/browser/barretenberg/index.d.ts.map +1 -0
- package/dest/browser/barretenberg/index.js +182 -0
- package/dest/browser/barretenberg/testing/bigint-buffer.d.ts +17 -0
- package/dest/browser/barretenberg/testing/bigint-buffer.d.ts.map +1 -0
- package/dest/browser/barretenberg/testing/bigint-buffer.js +37 -0
- package/dest/browser/barretenberg/testing/fields.d.ts +16 -0
- package/dest/browser/barretenberg/testing/fields.d.ts.map +1 -0
- package/dest/browser/barretenberg/testing/fields.js +47 -0
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_base/index.d.ts +45 -0
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_base/index.d.ts.map +1 -0
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_base/index.js +124 -0
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts +2 -0
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts.map +1 -0
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.js +9 -0
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.d.ts +2 -0
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.d.ts.map +1 -0
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.js +6 -0
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts +21 -0
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts.map +1 -0
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.js +71 -0
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/index.d.ts +59 -0
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/index.d.ts.map +1 -0
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/index.js +197 -0
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts +2 -0
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts.map +1 -0
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.js +9 -0
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.d.ts +2 -0
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.d.ts.map +1 -0
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.js +6 -0
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts +30 -0
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts.map +1 -0
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/index.js +41 -0
- package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg-threads.d.ts +3 -0
- package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg-threads.d.ts.map +1 -0
- package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg-threads.js +2 -0
- package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg.d.ts +3 -0
- package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg.d.ts.map +1 -0
- package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg.js +2 -0
- package/dest/browser/barretenberg_wasm/fetch_code/browser/index.d.ts +2 -0
- package/dest/browser/barretenberg_wasm/fetch_code/browser/index.d.ts.map +1 -0
- package/dest/browser/barretenberg_wasm/fetch_code/browser/index.js +36 -0
- package/dest/browser/barretenberg_wasm/fetch_code/index.d.ts +2 -0
- package/dest/browser/barretenberg_wasm/fetch_code/index.d.ts.map +1 -0
- package/dest/browser/barretenberg_wasm/fetch_code/index.js +2 -0
- package/dest/browser/barretenberg_wasm/helpers/browser/index.d.ts +13 -0
- package/dest/browser/barretenberg_wasm/helpers/browser/index.d.ts.map +1 -0
- package/dest/browser/barretenberg_wasm/helpers/browser/index.js +47 -0
- package/dest/browser/barretenberg_wasm/helpers/index.d.ts +2 -0
- package/dest/browser/barretenberg_wasm/helpers/index.d.ts.map +1 -0
- package/dest/browser/barretenberg_wasm/helpers/index.js +2 -0
- package/dest/browser/barretenberg_wasm/index.d.ts +5 -0
- package/dest/browser/barretenberg_wasm/index.d.ts.map +1 -0
- package/dest/browser/barretenberg_wasm/index.js +15 -0
- package/dest/browser/bb_backends/browser/index.d.ts +11 -0
- package/dest/browser/bb_backends/browser/index.d.ts.map +1 -0
- package/dest/browser/bb_backends/browser/index.js +39 -0
- package/dest/browser/bb_backends/browser/platform.d.ts +4 -0
- package/dest/browser/bb_backends/browser/platform.d.ts.map +1 -0
- package/dest/browser/bb_backends/browser/platform.js +10 -0
- package/dest/browser/bb_backends/index.d.ts +50 -0
- package/dest/browser/bb_backends/index.d.ts.map +1 -0
- package/dest/browser/bb_backends/index.js +16 -0
- package/dest/browser/bb_backends/interface.d.ts +33 -0
- package/dest/browser/bb_backends/interface.d.ts.map +1 -0
- package/dest/browser/bb_backends/interface.js +2 -0
- package/dest/browser/bb_backends/wasm.d.ts +49 -0
- package/dest/browser/bb_backends/wasm.d.ts.map +1 -0
- package/dest/browser/bb_backends/wasm.js +85 -0
- package/dest/browser/bbapi_exception.d.ts +7 -0
- package/dest/browser/bbapi_exception.d.ts.map +1 -0
- package/dest/browser/bbapi_exception.js +14 -0
- package/dest/browser/bin/index.d.ts +3 -0
- package/dest/{bindgen → browser/bin}/index.d.ts.map +1 -1
- package/dest/browser/bin/index.js +11 -0
- package/dest/browser/cbind/generate.d.ts +8 -0
- package/dest/browser/cbind/generate.d.ts.map +1 -0
- package/dest/browser/cbind/generate.js +173 -0
- package/dest/browser/cbind/generated/api_types.d.ts +1130 -0
- package/dest/browser/cbind/generated/api_types.d.ts.map +1 -0
- package/dest/browser/cbind/generated/api_types.js +2657 -0
- package/dest/browser/cbind/generated/async.d.ts +60 -0
- package/dest/browser/cbind/generated/async.d.ts.map +1 -0
- package/dest/browser/cbind/generated/async.js +643 -0
- package/dest/browser/cbind/generated/curve_constants.d.ts +45 -0
- package/dest/browser/cbind/generated/curve_constants.d.ts.map +1 -0
- package/dest/browser/cbind/generated/curve_constants.js +45 -0
- package/dest/browser/cbind/generated/sync.d.ts +60 -0
- package/dest/browser/cbind/generated/sync.d.ts.map +1 -0
- package/dest/browser/cbind/generated/sync.js +592 -0
- package/dest/browser/cbind/naming.d.ts +16 -0
- package/dest/browser/cbind/naming.d.ts.map +1 -0
- package/dest/browser/cbind/naming.js +24 -0
- package/dest/browser/cbind/rust_codegen.d.ts +26 -0
- package/dest/browser/cbind/rust_codegen.d.ts.map +1 -0
- package/dest/browser/cbind/rust_codegen.js +461 -0
- package/dest/browser/cbind/schema_visitor.d.ts +47 -0
- package/dest/browser/cbind/schema_visitor.d.ts.map +1 -0
- package/dest/browser/cbind/schema_visitor.js +158 -0
- package/dest/browser/cbind/typescript_codegen.d.ts +30 -0
- package/dest/browser/cbind/typescript_codegen.d.ts.map +1 -0
- package/dest/browser/cbind/typescript_codegen.js +365 -0
- package/dest/browser/crs/browser/cached_net_crs.d.ts +43 -0
- package/dest/browser/crs/browser/cached_net_crs.d.ts.map +1 -0
- package/dest/browser/crs/browser/cached_net_crs.js +95 -0
- package/dest/browser/crs/browser/index.d.ts +2 -0
- package/dest/browser/crs/browser/index.d.ts.map +1 -0
- package/dest/browser/crs/browser/index.js +2 -0
- package/dest/browser/crs/index.d.ts +2 -0
- package/dest/browser/crs/index.d.ts.map +1 -0
- package/dest/browser/crs/index.js +2 -0
- package/dest/browser/crs/net_crs.d.ts +75 -0
- package/dest/browser/crs/net_crs.d.ts.map +1 -0
- package/dest/browser/crs/net_crs.js +164 -0
- package/dest/browser/index.d.ts +9 -0
- package/dest/browser/index.d.ts.map +1 -0
- package/dest/browser/index.js +9 -0
- package/dest/browser/proof/index.d.ts +21 -0
- package/dest/browser/proof/index.d.ts.map +1 -0
- package/dest/browser/proof/index.js +63 -0
- package/dest/browser/random/browser/index.d.ts +2 -0
- package/dest/browser/random/browser/index.d.ts.map +1 -0
- package/dest/browser/random/browser/index.js +31 -0
- package/dest/browser/random/index.d.ts +2 -0
- package/dest/browser/random/index.d.ts.map +1 -0
- package/dest/browser/random/index.js +2 -0
- package/dest/browser/retry/index.d.ts +26 -0
- package/dest/browser/retry/index.d.ts.map +1 -0
- package/dest/browser/retry/index.js +50 -0
- package/dest/node/async_map/index.d.ts +10 -0
- package/dest/node/async_map/index.d.ts.map +1 -0
- package/dest/node/async_map/index.js +16 -0
- package/dest/node/barretenberg/__snapshots__/pedersen.test.js.snap +156 -0
- package/dest/node/barretenberg/__snapshots__/poseidon.test.js.snap +40 -0
- package/dest/node/barretenberg/backend.d.ts +93 -0
- package/dest/node/barretenberg/backend.d.ts.map +1 -0
- package/dest/node/barretenberg/backend.js +350 -0
- package/dest/node/barretenberg/backend.test.d.ts +2 -0
- package/dest/node/barretenberg/backend.test.d.ts.map +1 -0
- package/dest/node/barretenberg/backend.test.js +103 -0
- package/dest/node/barretenberg/blake2s.test.d.ts +2 -0
- package/dest/node/barretenberg/blake2s.test.d.ts.map +1 -0
- package/dest/node/barretenberg/blake2s.test.js +57 -0
- package/dest/node/barretenberg/index.d.ts +65 -0
- package/dest/node/barretenberg/index.d.ts.map +1 -0
- package/dest/node/barretenberg/index.js +182 -0
- package/dest/node/barretenberg/pedersen.test.d.ts +2 -0
- package/dest/node/barretenberg/pedersen.test.d.ts.map +1 -0
- package/dest/node/barretenberg/pedersen.test.js +62 -0
- package/dest/node/barretenberg/poseidon.bench.test.d.ts +2 -0
- package/dest/node/barretenberg/poseidon.bench.test.d.ts.map +1 -0
- package/dest/node/barretenberg/poseidon.bench.test.js +218 -0
- package/dest/node/barretenberg/poseidon.test.d.ts +2 -0
- package/dest/node/barretenberg/poseidon.test.d.ts.map +1 -0
- package/dest/node/barretenberg/poseidon.test.js +35 -0
- package/dest/node/barretenberg/testing/bigint-buffer.d.ts +17 -0
- package/dest/node/barretenberg/testing/bigint-buffer.d.ts.map +1 -0
- package/dest/node/barretenberg/testing/bigint-buffer.js +37 -0
- package/dest/node/barretenberg/testing/fields.d.ts +16 -0
- package/dest/node/barretenberg/testing/fields.d.ts.map +1 -0
- package/dest/node/barretenberg/testing/fields.js +47 -0
- package/dest/node/barretenberg_wasm/barretenberg-threads.wasm.gz +0 -0
- package/dest/node/barretenberg_wasm/barretenberg_wasm_base/index.d.ts +45 -0
- package/dest/node/barretenberg_wasm/barretenberg_wasm_base/index.d.ts.map +1 -0
- package/dest/node/barretenberg_wasm/barretenberg_wasm_base/index.js +124 -0
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts +2 -0
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts.map +1 -0
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.js +9 -0
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.d.ts +2 -0
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.d.ts.map +1 -0
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.js +6 -0
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.d.ts +3 -0
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.d.ts.map +1 -0
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.js +19 -0
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.d.ts +2 -0
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.d.ts.map +1 -0
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.js +9 -0
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts +21 -0
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts.map +1 -0
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.js +71 -0
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/index.d.ts +59 -0
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/index.d.ts.map +1 -0
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/index.js +197 -0
- package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts +2 -0
- package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts.map +1 -0
- package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.js +9 -0
- package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.d.ts +2 -0
- package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.d.ts.map +1 -0
- package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.js +6 -0
- package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.d.ts +3 -0
- package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.d.ts.map +1 -0
- package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.js +19 -0
- package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.d.ts +2 -0
- package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.d.ts.map +1 -0
- package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.js +10 -0
- package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts +30 -0
- package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts.map +1 -0
- package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/index.js +41 -0
- package/dest/node/barretenberg_wasm/fetch_code/browser/barretenberg-threads.d.ts +3 -0
- package/dest/node/barretenberg_wasm/fetch_code/browser/barretenberg-threads.d.ts.map +1 -0
- package/dest/node/barretenberg_wasm/fetch_code/browser/barretenberg-threads.js +3 -0
- package/dest/node/barretenberg_wasm/fetch_code/browser/barretenberg.d.ts +3 -0
- package/dest/node/barretenberg_wasm/fetch_code/browser/barretenberg.d.ts.map +1 -0
- package/dest/node/barretenberg_wasm/fetch_code/browser/barretenberg.js +3 -0
- package/dest/node/barretenberg_wasm/fetch_code/browser/index.d.ts +2 -0
- package/dest/node/barretenberg_wasm/fetch_code/browser/index.d.ts.map +1 -0
- package/dest/node/barretenberg_wasm/fetch_code/browser/index.js +36 -0
- package/dest/node/barretenberg_wasm/fetch_code/index.d.ts +2 -0
- package/dest/node/barretenberg_wasm/fetch_code/index.d.ts.map +1 -0
- package/dest/node/barretenberg_wasm/fetch_code/index.js +2 -0
- package/dest/node/barretenberg_wasm/fetch_code/node/index.d.ts +2 -0
- package/dest/node/barretenberg_wasm/fetch_code/node/index.d.ts.map +1 -0
- package/dest/node/barretenberg_wasm/fetch_code/node/index.js +35 -0
- package/dest/node/barretenberg_wasm/helpers/browser/index.d.ts +13 -0
- package/dest/node/barretenberg_wasm/helpers/browser/index.d.ts.map +1 -0
- package/dest/node/barretenberg_wasm/helpers/browser/index.js +47 -0
- package/dest/node/barretenberg_wasm/helpers/index.d.ts +2 -0
- package/dest/node/barretenberg_wasm/helpers/index.d.ts.map +1 -0
- package/dest/node/barretenberg_wasm/helpers/index.js +2 -0
- package/dest/node/barretenberg_wasm/helpers/node/index.d.ts +21 -0
- package/dest/node/barretenberg_wasm/helpers/node/index.d.ts.map +1 -0
- package/dest/node/barretenberg_wasm/helpers/node/index.js +56 -0
- package/dest/node/barretenberg_wasm/helpers/node/node_endpoint.d.ts +8 -0
- package/dest/node/barretenberg_wasm/helpers/node/node_endpoint.d.ts.map +1 -0
- package/dest/node/barretenberg_wasm/helpers/node/node_endpoint.js +28 -0
- package/dest/node/barretenberg_wasm/index.d.ts +5 -0
- package/dest/node/barretenberg_wasm/index.d.ts.map +1 -0
- package/dest/node/barretenberg_wasm/index.js +15 -0
- package/dest/node/barretenberg_wasm/index.test.d.ts +2 -0
- package/dest/node/barretenberg_wasm/index.test.d.ts.map +1 -0
- package/dest/node/barretenberg_wasm/index.test.js +39 -0
- package/dest/node/bb_backends/browser/index.d.ts +11 -0
- package/dest/node/bb_backends/browser/index.d.ts.map +1 -0
- package/dest/node/bb_backends/browser/index.js +39 -0
- package/dest/node/bb_backends/browser/platform.d.ts +4 -0
- package/dest/node/bb_backends/browser/platform.d.ts.map +1 -0
- package/dest/node/bb_backends/browser/platform.js +10 -0
- package/dest/node/bb_backends/index.d.ts +50 -0
- package/dest/node/bb_backends/index.d.ts.map +1 -0
- package/dest/node/bb_backends/index.js +16 -0
- package/dest/node/bb_backends/interface.d.ts +33 -0
- package/dest/node/bb_backends/interface.d.ts.map +1 -0
- package/dest/node/bb_backends/interface.js +2 -0
- package/dest/node/bb_backends/node/index.d.ts +11 -0
- package/dest/node/bb_backends/node/index.d.ts.map +1 -0
- package/dest/node/bb_backends/node/index.js +86 -0
- package/dest/node/bb_backends/node/native_pipe.d.ts +25 -0
- package/dest/node/bb_backends/node/native_pipe.d.ts.map +1 -0
- package/dest/node/bb_backends/node/native_pipe.js +114 -0
- package/dest/node/bb_backends/node/native_shm.d.ts +29 -0
- package/dest/node/bb_backends/node/native_shm.d.ts.map +1 -0
- package/dest/node/bb_backends/node/native_shm.js +196 -0
- package/dest/node/bb_backends/node/native_shm_async.d.ts +51 -0
- package/dest/node/bb_backends/node/native_shm_async.d.ts.map +1 -0
- package/dest/node/bb_backends/node/native_shm_async.js +233 -0
- package/dest/node/bb_backends/node/native_socket.d.ts +34 -0
- package/dest/node/bb_backends/node/native_socket.d.ts.map +1 -0
- package/dest/node/bb_backends/node/native_socket.js +283 -0
- package/dest/node/bb_backends/node/platform.d.ts +27 -0
- package/dest/node/bb_backends/node/platform.d.ts.map +1 -0
- package/dest/node/bb_backends/node/platform.js +129 -0
- package/dest/node/bb_backends/wasm.d.ts +49 -0
- package/dest/node/bb_backends/wasm.d.ts.map +1 -0
- package/dest/node/bb_backends/wasm.js +85 -0
- package/dest/node/bbapi/exception_handling.test.d.ts +2 -0
- package/dest/node/bbapi/exception_handling.test.d.ts.map +1 -0
- package/dest/node/bbapi/exception_handling.test.js +48 -0
- package/dest/node/bbapi_exception.d.ts +7 -0
- package/dest/node/bbapi_exception.d.ts.map +1 -0
- package/dest/node/bbapi_exception.js +14 -0
- package/dest/node/benchmark/index.d.ts +3 -0
- package/dest/node/benchmark/index.d.ts.map +1 -0
- package/dest/node/benchmark/index.js +25 -0
- package/dest/node/benchmark/timer.d.ts +34 -0
- package/dest/node/benchmark/timer.d.ts.map +1 -0
- package/dest/node/benchmark/timer.js +42 -0
- package/dest/node/bin/index.d.ts +3 -0
- package/dest/node/bin/index.d.ts.map +1 -0
- package/dest/node/bin/index.js +11 -0
- package/dest/node/cbind/generate.d.ts +8 -0
- package/dest/node/cbind/generate.d.ts.map +1 -0
- package/dest/node/cbind/generate.js +173 -0
- package/dest/node/cbind/generated/api_types.d.ts +1130 -0
- package/dest/node/cbind/generated/api_types.d.ts.map +1 -0
- package/dest/node/cbind/generated/api_types.js +2657 -0
- package/dest/node/cbind/generated/async.d.ts +60 -0
- package/dest/node/cbind/generated/async.d.ts.map +1 -0
- package/dest/node/cbind/generated/async.js +643 -0
- package/dest/node/cbind/generated/curve_constants.d.ts +45 -0
- package/dest/node/cbind/generated/curve_constants.d.ts.map +1 -0
- package/dest/node/cbind/generated/curve_constants.js +45 -0
- package/dest/node/cbind/generated/sync.d.ts +60 -0
- package/dest/node/cbind/generated/sync.d.ts.map +1 -0
- package/dest/node/cbind/generated/sync.js +592 -0
- package/dest/node/cbind/naming.d.ts +16 -0
- package/dest/node/cbind/naming.d.ts.map +1 -0
- package/dest/node/cbind/naming.js +24 -0
- package/dest/node/cbind/rust_codegen.d.ts +26 -0
- package/dest/node/cbind/rust_codegen.d.ts.map +1 -0
- package/dest/node/cbind/rust_codegen.js +461 -0
- package/dest/node/cbind/schema_visitor.d.ts +47 -0
- package/dest/node/cbind/schema_visitor.d.ts.map +1 -0
- package/dest/node/cbind/schema_visitor.js +158 -0
- package/dest/node/cbind/typescript_codegen.d.ts +30 -0
- package/dest/node/cbind/typescript_codegen.d.ts.map +1 -0
- package/dest/node/cbind/typescript_codegen.js +365 -0
- package/dest/node/crs/browser/cached_net_crs.d.ts +43 -0
- package/dest/node/crs/browser/cached_net_crs.d.ts.map +1 -0
- package/dest/node/crs/browser/cached_net_crs.js +95 -0
- package/dest/node/crs/browser/index.d.ts +2 -0
- package/dest/node/crs/browser/index.d.ts.map +1 -0
- package/dest/node/crs/browser/index.js +2 -0
- package/dest/node/crs/index.d.ts +2 -0
- package/dest/node/crs/index.d.ts.map +1 -0
- package/dest/node/crs/index.js +2 -0
- package/dest/node/crs/net_crs.d.ts +75 -0
- package/dest/node/crs/net_crs.d.ts.map +1 -0
- package/dest/node/crs/net_crs.js +164 -0
- package/dest/node/crs/net_crs.test.d.ts +2 -0
- package/dest/node/crs/net_crs.test.d.ts.map +1 -0
- package/dest/node/crs/net_crs.test.js +39 -0
- package/dest/node/crs/node/index.d.ts +38 -0
- package/dest/node/crs/node/index.d.ts.map +1 -0
- package/dest/node/crs/node/index.js +107 -0
- package/dest/node/index.d.ts +9 -0
- package/dest/node/index.d.ts.map +1 -0
- package/dest/node/index.js +9 -0
- package/dest/node/proof/index.d.ts +21 -0
- package/dest/node/proof/index.d.ts.map +1 -0
- package/dest/node/proof/index.js +63 -0
- package/dest/node/random/browser/index.d.ts +2 -0
- package/dest/node/random/browser/index.d.ts.map +1 -0
- package/dest/node/random/browser/index.js +31 -0
- package/dest/node/random/index.d.ts +2 -0
- package/dest/node/random/index.d.ts.map +1 -0
- package/dest/{random → node/random}/index.js +1 -1
- package/dest/node/random/node/index.d.ts +2 -0
- package/dest/node/random/node/index.d.ts.map +1 -0
- package/dest/node/random/node/index.js +5 -0
- package/dest/node/retry/index.d.ts +26 -0
- package/dest/node/retry/index.d.ts.map +1 -0
- package/dest/node/retry/index.js +50 -0
- 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 +19 -0
- package/dest/node-cjs/barretenberg/backend.d.ts +93 -0
- package/dest/node-cjs/barretenberg/backend.d.ts.map +1 -0
- package/dest/node-cjs/barretenberg/backend.js +359 -0
- package/dest/node-cjs/barretenberg/backend.test.d.ts +2 -0
- package/dest/node-cjs/barretenberg/backend.test.d.ts.map +1 -0
- package/dest/node-cjs/barretenberg/backend.test.js +105 -0
- package/dest/node-cjs/barretenberg/blake2s.test.d.ts +2 -0
- package/dest/node-cjs/barretenberg/blake2s.test.d.ts.map +1 -0
- package/dest/node-cjs/barretenberg/blake2s.test.js +59 -0
- package/dest/node-cjs/barretenberg/index.d.ts +65 -0
- package/dest/node-cjs/barretenberg/index.d.ts.map +1 -0
- package/dest/node-cjs/barretenberg/index.js +193 -0
- package/dest/node-cjs/barretenberg/pedersen.test.d.ts +2 -0
- package/dest/node-cjs/barretenberg/pedersen.test.d.ts.map +1 -0
- package/dest/node-cjs/barretenberg/pedersen.test.js +64 -0
- package/dest/node-cjs/barretenberg/poseidon.bench.test.d.ts +2 -0
- package/dest/node-cjs/barretenberg/poseidon.bench.test.d.ts.map +1 -0
- package/dest/node-cjs/barretenberg/poseidon.bench.test.js +220 -0
- package/dest/node-cjs/barretenberg/poseidon.test.d.ts +2 -0
- package/dest/node-cjs/barretenberg/poseidon.test.d.ts.map +1 -0
- package/dest/node-cjs/barretenberg/poseidon.test.js +37 -0
- package/dest/node-cjs/barretenberg/testing/bigint-buffer.d.ts +17 -0
- package/dest/node-cjs/barretenberg/testing/bigint-buffer.d.ts.map +1 -0
- package/dest/node-cjs/barretenberg/testing/bigint-buffer.js +43 -0
- package/dest/node-cjs/barretenberg/testing/fields.d.ts +16 -0
- package/dest/node-cjs/barretenberg/testing/fields.d.ts.map +1 -0
- package/dest/node-cjs/barretenberg/testing/fields.js +51 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg-threads.wasm.gz +0 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_base/index.d.ts +45 -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 +12 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.d.ts +2 -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 +8 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.d.ts +3 -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/heap_allocator.d.ts +21 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts.map +1 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.js +75 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/index.d.ts +59 -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 +201 -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 +12 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.d.ts +2 -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 +8 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.d.ts +3 -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 +12 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts +30 -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 +45 -0
- package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/barretenberg-threads.d.ts +3 -0
- package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/barretenberg-threads.d.ts.map +1 -0
- package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/barretenberg-threads.js +6 -0
- package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/barretenberg.d.ts +3 -0
- package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/barretenberg.d.ts.map +1 -0
- package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/barretenberg.js +6 -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 +40 -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 +2 -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 +39 -0
- package/dest/node-cjs/barretenberg_wasm/helpers/browser/index.d.ts +13 -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 +57 -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 +21 -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 +65 -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 +31 -0
- package/dest/node-cjs/barretenberg_wasm/index.d.ts +5 -0
- package/dest/node-cjs/barretenberg_wasm/index.d.ts.map +1 -0
- package/dest/node-cjs/barretenberg_wasm/index.js +18 -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 +41 -0
- package/dest/node-cjs/bb_backends/browser/index.d.ts +11 -0
- package/dest/node-cjs/bb_backends/browser/index.d.ts.map +1 -0
- package/dest/node-cjs/bb_backends/browser/index.js +43 -0
- package/dest/node-cjs/bb_backends/browser/platform.d.ts +4 -0
- package/dest/node-cjs/bb_backends/browser/platform.d.ts.map +1 -0
- package/dest/node-cjs/bb_backends/browser/platform.js +15 -0
- package/dest/node-cjs/bb_backends/index.d.ts +50 -0
- package/dest/node-cjs/bb_backends/index.d.ts.map +1 -0
- package/dest/node-cjs/bb_backends/index.js +18 -0
- package/dest/node-cjs/bb_backends/interface.d.ts +33 -0
- package/dest/node-cjs/bb_backends/interface.d.ts.map +1 -0
- package/dest/node-cjs/bb_backends/interface.js +3 -0
- package/dest/node-cjs/bb_backends/node/index.d.ts +11 -0
- package/dest/node-cjs/bb_backends/node/index.d.ts.map +1 -0
- package/dest/node-cjs/bb_backends/node/index.js +90 -0
- package/dest/node-cjs/bb_backends/node/native_pipe.d.ts +25 -0
- package/dest/node-cjs/bb_backends/node/native_pipe.d.ts.map +1 -0
- package/dest/node-cjs/bb_backends/node/native_pipe.js +118 -0
- package/dest/node-cjs/bb_backends/node/native_shm.d.ts +29 -0
- package/dest/node-cjs/bb_backends/node/native_shm.d.ts.map +1 -0
- package/dest/node-cjs/bb_backends/node/native_shm.js +200 -0
- package/dest/node-cjs/bb_backends/node/native_shm_async.d.ts +51 -0
- package/dest/node-cjs/bb_backends/node/native_shm_async.d.ts.map +1 -0
- package/dest/node-cjs/bb_backends/node/native_shm_async.js +237 -0
- package/dest/node-cjs/bb_backends/node/native_socket.d.ts +34 -0
- package/dest/node-cjs/bb_backends/node/native_socket.d.ts.map +1 -0
- package/dest/node-cjs/bb_backends/node/native_socket.js +288 -0
- package/dest/node-cjs/bb_backends/node/platform.d.ts +27 -0
- package/dest/node-cjs/bb_backends/node/platform.d.ts.map +1 -0
- package/dest/node-cjs/bb_backends/node/platform.js +136 -0
- package/dest/node-cjs/bb_backends/wasm.d.ts +49 -0
- package/dest/node-cjs/bb_backends/wasm.d.ts.map +1 -0
- package/dest/node-cjs/bb_backends/wasm.js +90 -0
- package/dest/node-cjs/bbapi/exception_handling.test.d.ts +2 -0
- package/dest/node-cjs/bbapi/exception_handling.test.d.ts.map +1 -0
- package/dest/node-cjs/bbapi/exception_handling.test.js +50 -0
- package/dest/node-cjs/bbapi_exception.d.ts +7 -0
- package/dest/node-cjs/bbapi_exception.d.ts.map +1 -0
- package/dest/node-cjs/bbapi_exception.js +18 -0
- package/dest/node-cjs/benchmark/index.d.ts +3 -0
- package/dest/node-cjs/benchmark/index.d.ts.map +1 -0
- package/dest/node-cjs/benchmark/index.js +29 -0
- package/dest/node-cjs/benchmark/timer.d.ts +34 -0
- package/dest/node-cjs/benchmark/timer.d.ts.map +1 -0
- package/dest/node-cjs/benchmark/timer.js +46 -0
- package/dest/node-cjs/bin/index.d.ts +3 -0
- package/dest/node-cjs/bin/index.d.ts.map +1 -0
- package/dest/node-cjs/bin/index.js +13 -0
- package/dest/node-cjs/cbind/generate.d.ts +8 -0
- package/dest/node-cjs/cbind/generate.d.ts.map +1 -0
- package/dest/node-cjs/cbind/generate.js +175 -0
- package/dest/node-cjs/cbind/generated/api_types.d.ts +1130 -0
- package/dest/node-cjs/cbind/generated/api_types.d.ts.map +1 -0
- package/dest/node-cjs/cbind/generated/api_types.js +2889 -0
- package/dest/node-cjs/cbind/generated/async.d.ts +60 -0
- package/dest/node-cjs/cbind/generated/async.d.ts.map +1 -0
- package/dest/node-cjs/cbind/generated/async.js +647 -0
- package/dest/node-cjs/cbind/generated/curve_constants.d.ts +45 -0
- package/dest/node-cjs/cbind/generated/curve_constants.d.ts.map +1 -0
- package/dest/node-cjs/cbind/generated/curve_constants.js +48 -0
- package/dest/node-cjs/cbind/generated/sync.d.ts +60 -0
- package/dest/node-cjs/cbind/generated/sync.d.ts.map +1 -0
- package/dest/node-cjs/cbind/generated/sync.js +596 -0
- package/dest/node-cjs/cbind/naming.d.ts +16 -0
- package/dest/node-cjs/cbind/naming.d.ts.map +1 -0
- package/dest/node-cjs/cbind/naming.js +28 -0
- package/dest/node-cjs/cbind/rust_codegen.d.ts +26 -0
- package/dest/node-cjs/cbind/rust_codegen.d.ts.map +1 -0
- package/dest/node-cjs/cbind/rust_codegen.js +465 -0
- package/dest/node-cjs/cbind/schema_visitor.d.ts +47 -0
- package/dest/node-cjs/cbind/schema_visitor.d.ts.map +1 -0
- package/dest/node-cjs/cbind/schema_visitor.js +162 -0
- package/dest/node-cjs/cbind/typescript_codegen.d.ts +30 -0
- package/dest/node-cjs/cbind/typescript_codegen.d.ts.map +1 -0
- package/dest/node-cjs/cbind/typescript_codegen.js +369 -0
- package/dest/node-cjs/crs/browser/cached_net_crs.d.ts +43 -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 +100 -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 +7 -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 +7 -0
- package/dest/node-cjs/crs/net_crs.d.ts +75 -0
- package/dest/node-cjs/crs/net_crs.d.ts.map +1 -0
- package/dest/node-cjs/crs/net_crs.js +170 -0
- package/dest/node-cjs/crs/net_crs.test.d.ts +2 -0
- package/dest/node-cjs/crs/net_crs.test.d.ts.map +1 -0
- package/dest/node-cjs/crs/net_crs.test.js +41 -0
- package/dest/node-cjs/crs/node/index.d.ts +38 -0
- package/dest/node-cjs/crs/node/index.d.ts.map +1 -0
- package/dest/node-cjs/crs/node/index.js +112 -0
- package/dest/node-cjs/index.d.ts +9 -0
- package/dest/node-cjs/index.d.ts.map +1 -0
- package/dest/node-cjs/index.js +41 -0
- package/dest/node-cjs/package.json +3 -0
- package/dest/node-cjs/proof/index.d.ts +21 -0
- package/dest/node-cjs/proof/index.d.ts.map +1 -0
- package/dest/node-cjs/proof/index.js +72 -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 +8 -0
- package/dest/node-cjs/retry/index.d.ts +26 -0
- package/dest/node-cjs/retry/index.d.ts.map +1 -0
- package/dest/node-cjs/retry/index.js +55 -0
- package/package.json +59 -46
- package/src/barretenberg/__snapshots__/pedersen.test.ts.snap +156 -0
- package/src/barretenberg/__snapshots__/poseidon.test.ts.snap +40 -0
- package/src/barretenberg/backend.test.ts +122 -0
- package/src/barretenberg/backend.ts +438 -0
- package/src/barretenberg/blake2s.test.ts +69 -0
- package/src/barretenberg/index.ts +220 -0
- package/src/barretenberg/pedersen.test.ts +69 -0
- package/src/barretenberg/poseidon.bench.test.ts +271 -0
- package/src/barretenberg/poseidon.test.ts +39 -0
- package/src/barretenberg/testing/bigint-buffer.ts +43 -0
- package/src/barretenberg/testing/fields.ts +63 -0
- package/src/barretenberg_wasm/barretenberg_wasm_base/index.ts +137 -0
- package/src/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.ts +9 -0
- package/src/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.ts +6 -0
- package/src/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.ts +19 -0
- package/src/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.ts +10 -0
- package/src/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.ts +72 -0
- package/src/barretenberg_wasm/barretenberg_wasm_main/index.ts +251 -0
- package/src/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.ts +9 -0
- package/src/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.ts +6 -0
- package/src/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.ts +19 -0
- package/src/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.ts +12 -0
- package/src/barretenberg_wasm/barretenberg_wasm_thread/index.ts +48 -0
- package/src/barretenberg_wasm/fetch_code/browser/barretenberg-threads.ts +3 -0
- package/src/barretenberg_wasm/fetch_code/browser/barretenberg.ts +3 -0
- package/src/barretenberg_wasm/fetch_code/browser/index.ts +34 -0
- package/src/barretenberg_wasm/fetch_code/index.ts +1 -0
- package/src/barretenberg_wasm/fetch_code/node/index.ts +34 -0
- package/src/barretenberg_wasm/fetch_code/wasm-module.d.ts +4 -0
- package/src/barretenberg_wasm/helpers/browser/index.ts +54 -0
- package/src/barretenberg_wasm/helpers/index.ts +1 -0
- package/src/barretenberg_wasm/helpers/node/index.ts +62 -0
- package/src/barretenberg_wasm/index.test.ts +46 -0
- package/src/barretenberg_wasm/index.ts +21 -1
- package/src/bb_backends/browser/index.ts +50 -0
- package/src/bb_backends/browser/platform.ts +11 -0
- package/src/bb_backends/index.ts +55 -0
- package/src/bb_backends/interface.ts +35 -0
- package/src/bb_backends/node/index.ts +107 -0
- package/src/bb_backends/node/native_pipe.ts +127 -0
- package/src/bb_backends/node/native_shm.ts +214 -0
- package/src/bb_backends/node/native_shm_async.ts +262 -0
- package/src/bb_backends/node/native_socket.ts +328 -0
- package/src/bb_backends/node/platform.ts +156 -0
- package/src/bb_backends/wasm.ts +102 -0
- package/src/bbapi/exception_handling.test.ts +54 -0
- package/src/bbapi_exception.ts +13 -0
- package/src/benchmark/index.ts +26 -0
- package/src/benchmark/timer.ts +45 -0
- package/src/bin/index.ts +14 -0
- package/src/cbind/README.md +1 -0
- package/src/cbind/generate.ts +201 -0
- package/src/cbind/naming.ts +27 -0
- package/src/cbind/rust_codegen.ts +504 -0
- package/src/cbind/schema_visitor.ts +219 -0
- package/src/cbind/typescript_codegen.ts +419 -0
- package/src/crs/browser/cached_net_crs.ts +41 -1
- package/src/crs/browser/index.ts +1 -1
- package/src/crs/index.ts +1 -1
- package/src/crs/net_crs.test.ts +47 -0
- package/src/crs/net_crs.ts +145 -19
- package/src/crs/node/index.ts +95 -26
- package/src/index.html +1 -1
- package/src/index.ts +47 -5
- package/src/proof/index.ts +94 -0
- package/src/random/browser/index.ts +1 -1
- package/src/retry/index.ts +50 -0
- package/dest/async_map/index.d.ts.map +0 -1
- package/dest/barretenberg-threads.wasm +0 -0
- package/dest/barretenberg.wasm +0 -0
- package/dest/barretenberg_api/blake2s.test.d.ts +0 -2
- package/dest/barretenberg_api/blake2s.test.d.ts.map +0 -1
- package/dest/barretenberg_api/blake2s.test.js +0 -30
- package/dest/barretenberg_api/common.test.d.ts +0 -2
- package/dest/barretenberg_api/common.test.d.ts.map +0 -1
- package/dest/barretenberg_api/common.test.js +0 -18
- package/dest/barretenberg_api/index.d.ts +0 -103
- package/dest/barretenberg_api/index.d.ts.map +0 -1
- package/dest/barretenberg_api/index.js +0 -379
- package/dest/barretenberg_api/pedersen.test.d.ts +0 -2
- package/dest/barretenberg_api/pedersen.test.d.ts.map +0 -1
- package/dest/barretenberg_api/pedersen.test.js +0 -69
- package/dest/barretenberg_api/schnorr.test.d.ts +0 -2
- package/dest/barretenberg_api/schnorr.test.d.ts.map +0 -1
- package/dest/barretenberg_api/schnorr.test.js +0 -113
- package/dest/barretenberg_binder/heap_allocator.d.ts +0 -22
- package/dest/barretenberg_binder/heap_allocator.d.ts.map +0 -1
- package/dest/barretenberg_binder/heap_allocator.js +0 -59
- package/dest/barretenberg_binder/heap_allocator_sync.d.ts +0 -22
- package/dest/barretenberg_binder/heap_allocator_sync.d.ts.map +0 -1
- package/dest/barretenberg_binder/heap_allocator_sync.js +0 -58
- package/dest/barretenberg_binder/index.d.ts +0 -32
- package/dest/barretenberg_binder/index.d.ts.map +0 -1
- package/dest/barretenberg_binder/index.js +0 -73
- package/dest/barretenberg_wasm/barretenberg_wasm.d.ts +0 -50
- package/dest/barretenberg_wasm/barretenberg_wasm.d.ts.map +0 -1
- package/dest/barretenberg_wasm/barretenberg_wasm.js +0 -212
- package/dest/barretenberg_wasm/barretenberg_wasm.test.d.ts +0 -2
- package/dest/barretenberg_wasm/barretenberg_wasm.test.d.ts.map +0 -1
- package/dest/barretenberg_wasm/barretenberg_wasm.test.js +0 -43
- package/dest/barretenberg_wasm/browser/index.d.ts +0 -8
- package/dest/barretenberg_wasm/browser/index.d.ts.map +0 -1
- package/dest/barretenberg_wasm/browser/index.js +0 -26
- package/dest/barretenberg_wasm/browser/worker.d.ts +0 -2
- package/dest/barretenberg_wasm/browser/worker.d.ts.map +0 -1
- package/dest/barretenberg_wasm/browser/worker.js +0 -11
- package/dest/barretenberg_wasm/index.d.ts +0 -2
- package/dest/barretenberg_wasm/index.d.ts.map +0 -1
- package/dest/barretenberg_wasm/index.js +0 -2
- package/dest/barretenberg_wasm/node/index.d.ts +0 -17
- package/dest/barretenberg_wasm/node/index.d.ts.map +0 -1
- package/dest/barretenberg_wasm/node/index.js +0 -40
- package/dest/barretenberg_wasm/node/node_endpoint.d.ts +0 -8
- package/dest/barretenberg_wasm/node/node_endpoint.d.ts.map +0 -1
- package/dest/barretenberg_wasm/node/node_endpoint.js +0 -28
- package/dest/barretenberg_wasm/node/worker.d.ts +0 -2
- package/dest/barretenberg_wasm/node/worker.d.ts.map +0 -1
- package/dest/barretenberg_wasm/node/worker.js +0 -9
- package/dest/barretenberg_wasm.js +0 -2
- package/dest/barretenberg_wasm.js.LICENSE.txt +0 -5
- package/dest/bigint-array/index.d.ts +0 -3
- package/dest/bigint-array/index.d.ts.map +0 -1
- package/dest/bigint-array/index.js +0 -21
- package/dest/bindgen/function_declaration.d.ts +0 -11
- package/dest/bindgen/function_declaration.d.ts.map +0 -1
- package/dest/bindgen/function_declaration.js +0 -2
- package/dest/bindgen/index.d.ts +0 -2
- package/dest/bindgen/index.js +0 -15
- package/dest/bindgen/mappings.d.ts +0 -4
- package/dest/bindgen/mappings.d.ts.map +0 -1
- package/dest/bindgen/mappings.js +0 -63
- package/dest/bindgen/rust.d.ts +0 -2
- package/dest/bindgen/rust.d.ts.map +0 -1
- package/dest/bindgen/rust.js +0 -43
- package/dest/bindgen/to_camel_case.d.ts +0 -2
- package/dest/bindgen/to_camel_case.d.ts.map +0 -1
- package/dest/bindgen/to_camel_case.js +0 -11
- package/dest/bindgen/typescript.d.ts +0 -2
- package/dest/bindgen/typescript.d.ts.map +0 -1
- package/dest/bindgen/typescript.js +0 -80
- package/dest/crs/browser/cached_net_crs.d.ts +0 -25
- package/dest/crs/browser/cached_net_crs.d.ts.map +0 -1
- package/dest/crs/browser/cached_net_crs.js +0 -54
- package/dest/crs/browser/index.d.ts +0 -2
- package/dest/crs/browser/index.d.ts.map +0 -1
- package/dest/crs/browser/index.js +0 -2
- package/dest/crs/index.d.ts +0 -2
- package/dest/crs/index.d.ts.map +0 -1
- package/dest/crs/index.js +0 -2
- package/dest/crs/net_crs.d.ts +0 -36
- package/dest/crs/net_crs.d.ts.map +0 -1
- package/dest/crs/net_crs.js +0 -59
- package/dest/crs/node/ignition_files_crs.d.ts +0 -37
- package/dest/crs/node/ignition_files_crs.d.ts.map +0 -1
- package/dest/crs/node/ignition_files_crs.js +0 -51
- package/dest/crs/node/index.d.ts +0 -21
- package/dest/crs/node/index.d.ts.map +0 -1
- package/dest/crs/node/index.js +0 -54
- package/dest/examples/simple.rawtest.d.ts +0 -2
- package/dest/examples/simple.rawtest.d.ts.map +0 -1
- package/dest/examples/simple.rawtest.js +0 -29
- package/dest/examples/simple.test.d.ts +0 -2
- package/dest/examples/simple.test.d.ts.map +0 -1
- package/dest/examples/simple.test.js +0 -22
- package/dest/factory/index.d.ts +0 -21
- package/dest/factory/index.d.ts.map +0 -1
- package/dest/factory/index.js +0 -34
- package/dest/index.d.ts +0 -6
- package/dest/index.d.ts.map +0 -1
- package/dest/index.html +0 -1
- package/dest/index.js +0 -6
- package/dest/main.d.ts +0 -10
- package/dest/main.d.ts.map +0 -1
- package/dest/main.js +0 -275
- package/dest/random/browser/index.d.ts +0 -2
- package/dest/random/browser/index.d.ts.map +0 -1
- package/dest/random/browser/index.js +0 -31
- package/dest/random/index.d.ts +0 -2
- package/dest/random/index.d.ts.map +0 -1
- package/dest/random/node/index.d.ts +0 -2
- package/dest/random/node/index.d.ts.map +0 -1
- package/dest/random/node/index.js +0 -5
- package/dest/serialize/buffer_reader.d.ts +0 -28
- package/dest/serialize/buffer_reader.d.ts.map +0 -1
- package/dest/serialize/buffer_reader.js +0 -66
- package/dest/serialize/index.d.ts +0 -4
- package/dest/serialize/index.d.ts.map +0 -1
- package/dest/serialize/index.js +0 -4
- package/dest/serialize/output_type.d.ts +0 -11
- package/dest/serialize/output_type.d.ts.map +0 -1
- package/dest/serialize/output_type.js +0 -44
- package/dest/serialize/serialize.d.ts +0 -53
- package/dest/serialize/serialize.d.ts.map +0 -1
- package/dest/serialize/serialize.js +0 -139
- package/dest/simple_test.js +0 -2
- package/dest/simple_test.js.LICENSE.txt +0 -14
- package/dest/types/fields.d.ts +0 -33
- package/dest/types/fields.d.ts.map +0 -1
- package/dest/types/fields.js +0 -86
- package/dest/types/fixed_size_buffer.d.ts +0 -26
- package/dest/types/fixed_size_buffer.d.ts.map +0 -1
- package/dest/types/fixed_size_buffer.js +0 -54
- package/dest/types/index.d.ts +0 -6
- package/dest/types/index.d.ts.map +0 -1
- package/dest/types/index.js +0 -6
- package/dest/types/point.d.ts +0 -17
- package/dest/types/point.d.ts.map +0 -1
- package/dest/types/point.js +0 -32
- package/dest/types/ptr.d.ts +0 -13
- package/dest/types/ptr.d.ts.map +0 -1
- package/dest/types/ptr.js +0 -20
- package/dest/types/raw_buffer.d.ts +0 -3
- package/dest/types/raw_buffer.d.ts.map +0 -1
- package/dest/types/raw_buffer.js +0 -5
- package/src/barretenberg_api/blake2s.test.ts +0 -39
- package/src/barretenberg_api/common.test.ts +0 -21
- package/src/barretenberg_api/index.ts +0 -649
- package/src/barretenberg_api/pedersen.test.ts +0 -84
- package/src/barretenberg_api/schnorr.test.ts +0 -169
- package/src/barretenberg_binder/heap_allocator.ts +0 -62
- package/src/barretenberg_binder/heap_allocator_sync.ts +0 -61
- package/src/barretenberg_binder/index.ts +0 -76
- package/src/barretenberg_wasm/barretenberg_wasm.test.ts +0 -52
- package/src/barretenberg_wasm/barretenberg_wasm.ts +0 -246
- package/src/barretenberg_wasm/browser/index.ts +0 -32
- package/src/barretenberg_wasm/browser/worker.ts +0 -13
- package/src/barretenberg_wasm/node/index.ts +0 -46
- package/src/barretenberg_wasm/node/worker.ts +0 -10
- package/src/bigint-array/index.ts +0 -21
- package/src/bindgen/function_declaration.ts +0 -11
- package/src/bindgen/index.ts +0 -17
- package/src/bindgen/mappings.ts +0 -66
- package/src/bindgen/rust.ts +0 -52
- package/src/bindgen/to_camel_case.ts +0 -10
- package/src/bindgen/typescript.ts +0 -91
- package/src/crs/node/ignition_files_crs.ts +0 -60
- package/src/examples/simple.rawtest.ts +0 -37
- package/src/examples/simple.test.ts +0 -27
- package/src/factory/index.ts +0 -36
- package/src/main.ts +0 -311
- package/src/serialize/buffer_reader.ts +0 -82
- package/src/serialize/index.ts +0 -3
- package/src/serialize/output_type.ts +0 -53
- package/src/serialize/serialize.ts +0 -157
- package/src/types/fields.ts +0 -98
- package/src/types/fixed_size_buffer.ts +0 -59
- package/src/types/index.ts +0 -5
- package/src/types/point.ts +0 -35
- package/src/types/ptr.ts +0 -20
- package/src/types/raw_buffer.ts +0 -3
- /package/src/barretenberg_wasm/{node → helpers/node}/node_endpoint.ts +0 -0
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { randomBytes } from '../../random/index.js';
|
|
2
|
+
import {
|
|
3
|
+
buffer32BytesToBigIntBE,
|
|
4
|
+
uint8ArrayToBigIntBE,
|
|
5
|
+
bigIntToBufferBE,
|
|
6
|
+
bigIntToUint8ArrayBE,
|
|
7
|
+
} from './bigint-buffer.js';
|
|
8
|
+
|
|
9
|
+
export class Fr {
|
|
10
|
+
static ZERO = new Fr(0n);
|
|
11
|
+
static MODULUS = 0x30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001n;
|
|
12
|
+
static MAX_VALUE = this.MODULUS - 1n;
|
|
13
|
+
static SIZE_IN_BYTES = 32;
|
|
14
|
+
value: Uint8Array;
|
|
15
|
+
|
|
16
|
+
constructor(value: Uint8Array | Buffer | bigint) {
|
|
17
|
+
// We convert buffer value to bigint to be able to check it fits within modulus
|
|
18
|
+
const valueBigInt =
|
|
19
|
+
typeof value === 'bigint'
|
|
20
|
+
? value
|
|
21
|
+
: value instanceof Buffer
|
|
22
|
+
? buffer32BytesToBigIntBE(value)
|
|
23
|
+
: uint8ArrayToBigIntBE(value);
|
|
24
|
+
|
|
25
|
+
if (valueBigInt > Fr.MAX_VALUE) {
|
|
26
|
+
throw new Error(`Value 0x${valueBigInt.toString(16)} is greater or equal to field modulus.`);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
this.value =
|
|
30
|
+
typeof value === 'bigint' ? bigIntToUint8ArrayBE(value) : value instanceof Buffer ? new Uint8Array(value) : value;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
static random() {
|
|
34
|
+
const r = uint8ArrayToBigIntBE(randomBytes(64)) % Fr.MODULUS;
|
|
35
|
+
return new this(r);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
toBuffer() {
|
|
39
|
+
return this.value;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
toString() {
|
|
43
|
+
return '0x' + this.toBuffer().reduce((accumulator, byte) => accumulator + byte.toString(16).padStart(2, '0'), '');
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
equals(rhs: Fr) {
|
|
47
|
+
return this.value.every((v, i) => v === rhs.value[i]);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
isZero() {
|
|
51
|
+
return this.value.every(v => v === 0);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
static fromBuffer(value: Uint8Array): Fr {
|
|
55
|
+
return Fr.fromBufferReduce(value);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
static fromBufferReduce(value: Uint8Array): Fr {
|
|
59
|
+
const valueBigInt = uint8ArrayToBigIntBE(value);
|
|
60
|
+
const reducedValue = valueBigInt % Fr.MODULUS;
|
|
61
|
+
return new Fr(reducedValue);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import { randomBytes } from '../../random/index.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Base implementation of BarretenbergWasm.
|
|
5
|
+
* Contains code that is common to the "main thread" implementation and the "child thread" implementation.
|
|
6
|
+
*/
|
|
7
|
+
export class BarretenbergWasmBase {
|
|
8
|
+
protected memStore: { [key: string]: Uint8Array } = {};
|
|
9
|
+
protected memory!: WebAssembly.Memory;
|
|
10
|
+
protected instance!: WebAssembly.Instance;
|
|
11
|
+
protected logger: (msg: string) => void = () => {};
|
|
12
|
+
|
|
13
|
+
protected getImportObj(memory: WebAssembly.Memory) {
|
|
14
|
+
/* eslint-disable camelcase */
|
|
15
|
+
const importObj = {
|
|
16
|
+
// We need to implement a part of the wasi api:
|
|
17
|
+
// https://github.com/WebAssembly/WASI/blob/main/phases/snapshot/docs.md
|
|
18
|
+
// We literally only need to support random_get, everything else is noop implementated in barretenberg.wasm.
|
|
19
|
+
wasi_snapshot_preview1: {
|
|
20
|
+
random_get: (out: any, length: number) => {
|
|
21
|
+
out = out >>> 0;
|
|
22
|
+
const randomData = randomBytes(length);
|
|
23
|
+
const mem = this.getMemory();
|
|
24
|
+
mem.set(randomData, out);
|
|
25
|
+
},
|
|
26
|
+
clock_time_get: (a1: number, a2: number, out: number) => {
|
|
27
|
+
out = out >>> 0;
|
|
28
|
+
const ts = BigInt(new Date().getTime()) * 1000000n;
|
|
29
|
+
const view = new DataView(this.getMemory().buffer);
|
|
30
|
+
view.setBigUint64(out, ts, true);
|
|
31
|
+
},
|
|
32
|
+
proc_exit: () => {
|
|
33
|
+
this.logger('PANIC: proc_exit was called.');
|
|
34
|
+
throw new Error();
|
|
35
|
+
},
|
|
36
|
+
},
|
|
37
|
+
|
|
38
|
+
// These are functions implementations for imports we've defined are needed.
|
|
39
|
+
// The native C++ build defines these in a module called "env". We must implement TypeScript versions here.
|
|
40
|
+
env: {
|
|
41
|
+
/**
|
|
42
|
+
* The 'info' call we use for logging in C++, calls this under the hood.
|
|
43
|
+
* The native code will just print to std:err (to avoid std::cout which is used for IPC).
|
|
44
|
+
* Here we just emit the log line for the client to decide what to do with.
|
|
45
|
+
*/
|
|
46
|
+
logstr: (addr: number) => {
|
|
47
|
+
const str = this.stringFromAddress(addr);
|
|
48
|
+
const m = this.getMemory();
|
|
49
|
+
const str2 = `${str} (mem: ${(m.length / (1024 * 1024)).toFixed(2)}MiB)`;
|
|
50
|
+
this.logger(str2);
|
|
51
|
+
},
|
|
52
|
+
|
|
53
|
+
throw_or_abort_impl: (addr: number) => {
|
|
54
|
+
const str = this.stringFromAddress(addr);
|
|
55
|
+
throw new Error(str);
|
|
56
|
+
},
|
|
57
|
+
|
|
58
|
+
get_data: (keyAddr: number, outBufAddr: number) => {
|
|
59
|
+
const key = this.stringFromAddress(keyAddr);
|
|
60
|
+
outBufAddr = outBufAddr >>> 0;
|
|
61
|
+
const data = this.memStore[key];
|
|
62
|
+
if (!data) {
|
|
63
|
+
this.logger(`get_data miss ${key}`);
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
// this.logger(`get_data hit ${key} size: ${data.length} dest: ${outBufAddr}`);
|
|
67
|
+
// this.logger(Buffer.from(data.slice(0, 64)).toString('hex'));
|
|
68
|
+
this.writeMemory(outBufAddr, data);
|
|
69
|
+
},
|
|
70
|
+
|
|
71
|
+
set_data: (keyAddr: number, dataAddr: number, dataLength: number) => {
|
|
72
|
+
const key = this.stringFromAddress(keyAddr);
|
|
73
|
+
dataAddr = dataAddr >>> 0;
|
|
74
|
+
this.memStore[key] = this.getMemorySlice(dataAddr, dataAddr + dataLength);
|
|
75
|
+
// this.logger(`set_data: ${key} length: ${dataLength}`);
|
|
76
|
+
},
|
|
77
|
+
|
|
78
|
+
memory,
|
|
79
|
+
},
|
|
80
|
+
};
|
|
81
|
+
/* eslint-enable camelcase */
|
|
82
|
+
|
|
83
|
+
return importObj;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
public exports(): any {
|
|
87
|
+
return this.instance.exports;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* When returning values from the WASM, use >>> operator to convert signed representation to unsigned representation.
|
|
92
|
+
*/
|
|
93
|
+
public call(name: string, ...args: any) {
|
|
94
|
+
if (!this.exports()[name]) {
|
|
95
|
+
throw new Error(`WASM function ${name} not found.`);
|
|
96
|
+
}
|
|
97
|
+
try {
|
|
98
|
+
return this.exports()[name](...args) >>> 0;
|
|
99
|
+
} catch (err: any) {
|
|
100
|
+
const message = `WASM function ${name} aborted, error: ${err}`;
|
|
101
|
+
this.logger(message);
|
|
102
|
+
this.logger(err.stack);
|
|
103
|
+
throw err;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
public memSize() {
|
|
108
|
+
return this.getMemory().length;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* Returns a copy of the data, not a view.
|
|
113
|
+
*/
|
|
114
|
+
public getMemorySlice(start: number, end: number) {
|
|
115
|
+
return this.getMemory().subarray(start, end).slice();
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
public writeMemory(offset: number, arr: Uint8Array) {
|
|
119
|
+
const mem = this.getMemory();
|
|
120
|
+
mem.set(arr, offset);
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
public getMemory() {
|
|
124
|
+
return new Uint8Array(this.memory.buffer);
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
// PRIVATE METHODS
|
|
128
|
+
|
|
129
|
+
private stringFromAddress(addr: number) {
|
|
130
|
+
addr = addr >>> 0;
|
|
131
|
+
const m = this.getMemory();
|
|
132
|
+
let i = addr;
|
|
133
|
+
for (; m[i] !== 0; ++i);
|
|
134
|
+
const textDecoder = new TextDecoder('ascii');
|
|
135
|
+
return textDecoder.decode(m.slice(addr, i));
|
|
136
|
+
}
|
|
137
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { readinessListener } from '../../../helpers/browser/index.js';
|
|
2
|
+
|
|
3
|
+
export async function createMainWorker() {
|
|
4
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
5
|
+
// @ts-ignore
|
|
6
|
+
const worker = new Worker(new URL('./main.worker.js', import.meta.url), { type: 'module' });
|
|
7
|
+
await new Promise<void>(resolve => readinessListener(worker, resolve));
|
|
8
|
+
return worker;
|
|
9
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Worker } from 'worker_threads';
|
|
2
|
+
import { dirname } from 'path';
|
|
3
|
+
import { fileURLToPath } from 'url';
|
|
4
|
+
|
|
5
|
+
function getCurrentDir() {
|
|
6
|
+
if (typeof __dirname !== 'undefined') {
|
|
7
|
+
return __dirname;
|
|
8
|
+
} else {
|
|
9
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
10
|
+
// @ts-ignore
|
|
11
|
+
return dirname(fileURLToPath(import.meta.url));
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export function createMainWorker() {
|
|
16
|
+
const __dirname = getCurrentDir();
|
|
17
|
+
const worker = new Worker(__dirname + `/main.worker.js`);
|
|
18
|
+
return Promise.resolve(worker);
|
|
19
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { parentPort } from 'worker_threads';
|
|
2
|
+
import { expose } from 'comlink';
|
|
3
|
+
import { BarretenbergWasmMain } from '../../index.js';
|
|
4
|
+
import { nodeEndpoint } from '../../../helpers/node/node_endpoint.js';
|
|
5
|
+
|
|
6
|
+
if (!parentPort) {
|
|
7
|
+
throw new Error('No parentPort');
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
expose(new BarretenbergWasmMain(), nodeEndpoint(parentPort));
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { type BarretenbergWasmMain } from './index.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Keeps track of heap allocations so they can be easily freed.
|
|
5
|
+
* The WASM memory layout has 1024 bytes of unused "scratch" space at the start (addresses 0-1023).
|
|
6
|
+
* We can leverage this for IO rather than making expensive bb_malloc bb_free calls.
|
|
7
|
+
* Heap allocations will be created for input/output args that don't fit into the scratch space.
|
|
8
|
+
* Input scratch grows UP from 0, output scratch grows DOWN from 1024, meeting in the middle.
|
|
9
|
+
* This maximizes space utilization while preventing overlap.
|
|
10
|
+
*/
|
|
11
|
+
export class HeapAllocator {
|
|
12
|
+
private allocs: number[] = [];
|
|
13
|
+
private inScratchPtr = 0; // Next input starts here, grows UP
|
|
14
|
+
private outScratchPtr = 1024; // Next output ends here, grows DOWN
|
|
15
|
+
|
|
16
|
+
constructor(private wasm: BarretenbergWasmMain) {}
|
|
17
|
+
|
|
18
|
+
getInputs(buffers: (Uint8Array | number)[]) {
|
|
19
|
+
return buffers.map(bufOrNum => {
|
|
20
|
+
if (typeof bufOrNum === 'object') {
|
|
21
|
+
const size = bufOrNum.length;
|
|
22
|
+
// Check if there's room in scratch space (inputs grow up, outputs grow down)
|
|
23
|
+
if (this.inScratchPtr + size <= this.outScratchPtr) {
|
|
24
|
+
const ptr = this.inScratchPtr;
|
|
25
|
+
this.inScratchPtr += size; // Grow UP
|
|
26
|
+
this.wasm.writeMemory(ptr, bufOrNum);
|
|
27
|
+
return ptr;
|
|
28
|
+
} else {
|
|
29
|
+
// Fall back to heap allocation
|
|
30
|
+
const ptr = this.wasm.call('bbmalloc', size);
|
|
31
|
+
this.wasm.writeMemory(ptr, bufOrNum);
|
|
32
|
+
this.allocs.push(ptr);
|
|
33
|
+
return ptr;
|
|
34
|
+
}
|
|
35
|
+
} else {
|
|
36
|
+
return bufOrNum;
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
getOutputPtrs(outLens: (number | undefined)[]) {
|
|
42
|
+
return outLens.map(len => {
|
|
43
|
+
// If the obj is variable length, we need a 4 byte ptr to write the serialized data address to.
|
|
44
|
+
// WARNING: 4 only works with WASM as it has 32 bit memory.
|
|
45
|
+
const size = len || 4;
|
|
46
|
+
|
|
47
|
+
// Check if there's room in scratch space (inputs grow up, outputs grow down)
|
|
48
|
+
if (this.inScratchPtr + size <= this.outScratchPtr) {
|
|
49
|
+
this.outScratchPtr -= size; // Grow DOWN
|
|
50
|
+
return this.outScratchPtr;
|
|
51
|
+
} else {
|
|
52
|
+
// Fall back to heap allocation
|
|
53
|
+
const ptr = this.wasm.call('bbmalloc', size);
|
|
54
|
+
this.allocs.push(ptr);
|
|
55
|
+
return ptr;
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
addOutputPtr(ptr: number) {
|
|
61
|
+
// Only add to dealloc list if it's a heap allocation (not in scratch space 0-1023)
|
|
62
|
+
if (ptr >= 1024) {
|
|
63
|
+
this.allocs.push(ptr);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
freeAll() {
|
|
68
|
+
for (const ptr of this.allocs) {
|
|
69
|
+
this.wasm.call('bbfree', ptr);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
import { type Worker } from 'worker_threads';
|
|
2
|
+
import { Remote } from 'comlink';
|
|
3
|
+
import { getNumCpu, getRemoteBarretenbergWasm, getSharedMemoryAvailable } from '../helpers/index.js';
|
|
4
|
+
import { createThreadWorker } from '../barretenberg_wasm_thread/factory/node/index.js';
|
|
5
|
+
import { type BarretenbergWasmThreadWorker } from '../barretenberg_wasm_thread/index.js';
|
|
6
|
+
import { BarretenbergWasmBase } from '../barretenberg_wasm_base/index.js';
|
|
7
|
+
import { HeapAllocator } from './heap_allocator.js';
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* This is the "main thread" implementation of BarretenbergWasm.
|
|
11
|
+
* It spawns a bunch of "child thread" implementations.
|
|
12
|
+
* In a browser context, this still runs on a worker, as it will block waiting on child threads.
|
|
13
|
+
*/
|
|
14
|
+
export class BarretenbergWasmMain extends BarretenbergWasmBase {
|
|
15
|
+
static MAX_THREADS = 32;
|
|
16
|
+
private workers: Worker[] = [];
|
|
17
|
+
private remoteWasms: BarretenbergWasmThreadWorker[] = [];
|
|
18
|
+
private nextWorker = 0;
|
|
19
|
+
private nextThreadId = 1;
|
|
20
|
+
private useCustomLogger = false;
|
|
21
|
+
|
|
22
|
+
// Pre-allocated scratch buffers for msgpack I/O to avoid malloc/free overhead
|
|
23
|
+
private msgpackInputScratch: number = 0; // 8MB input buffer
|
|
24
|
+
private msgpackOutputScratch: number = 0; // 8MB output buffer
|
|
25
|
+
private readonly MSGPACK_SCRATCH_SIZE = 1024 * 1024 * 8; // 8MB
|
|
26
|
+
|
|
27
|
+
public getNumThreads() {
|
|
28
|
+
return this.workers.length + 1;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Init as main thread. Spawn child threads.
|
|
33
|
+
*/
|
|
34
|
+
public async init(
|
|
35
|
+
module: WebAssembly.Module,
|
|
36
|
+
threads = Math.min(getNumCpu(), BarretenbergWasmMain.MAX_THREADS),
|
|
37
|
+
logger?: (msg: string) => void,
|
|
38
|
+
initial = 35,
|
|
39
|
+
maximum = this.getDefaultMaximumMemoryPages(),
|
|
40
|
+
) {
|
|
41
|
+
// Track whether a custom logger was provided so workers know whether to postMessage logs
|
|
42
|
+
this.useCustomLogger = logger !== undefined;
|
|
43
|
+
this.logger = logger ?? (() => {});
|
|
44
|
+
|
|
45
|
+
const initialMb = (initial * 2 ** 16) / (1024 * 1024);
|
|
46
|
+
const maxMb = (maximum * 2 ** 16) / (1024 * 1024);
|
|
47
|
+
const shared = getSharedMemoryAvailable();
|
|
48
|
+
|
|
49
|
+
this.logger(
|
|
50
|
+
`Initializing bb wasm: initial memory ${initial} pages ${initialMb}MiB; ` +
|
|
51
|
+
`max memory: ${maximum} pages, ${maxMb}MiB; ` +
|
|
52
|
+
`threads: ${threads}; shared memory: ${shared}`,
|
|
53
|
+
);
|
|
54
|
+
|
|
55
|
+
this.memory = new WebAssembly.Memory({ initial, maximum, shared });
|
|
56
|
+
|
|
57
|
+
const instance = await WebAssembly.instantiate(module, this.getImportObj(this.memory));
|
|
58
|
+
|
|
59
|
+
this.instance = instance;
|
|
60
|
+
|
|
61
|
+
// Init all global/static data.
|
|
62
|
+
this.call('_initialize');
|
|
63
|
+
|
|
64
|
+
// Allocate dedicated msgpack scratch buffers (never freed, reused for all msgpack calls)
|
|
65
|
+
this.msgpackInputScratch = this.call('bbmalloc', this.MSGPACK_SCRATCH_SIZE);
|
|
66
|
+
this.msgpackOutputScratch = this.call('bbmalloc', this.MSGPACK_SCRATCH_SIZE);
|
|
67
|
+
this.logger(
|
|
68
|
+
`Allocated msgpack scratch buffers: ` +
|
|
69
|
+
`input @ ${this.msgpackInputScratch}, output @ ${this.msgpackOutputScratch} (${this.MSGPACK_SCRATCH_SIZE} bytes each)`,
|
|
70
|
+
);
|
|
71
|
+
|
|
72
|
+
// Create worker threads. Create 1 less than requested, as main thread counts as a thread.
|
|
73
|
+
if (threads > 1) {
|
|
74
|
+
this.logger(`Creating ${threads} worker threads`);
|
|
75
|
+
this.workers = await Promise.all(Array.from({ length: threads - 1 }).map(createThreadWorker));
|
|
76
|
+
|
|
77
|
+
// Set up log message forwarding from workers to our logger (only if custom logger provided)
|
|
78
|
+
if (this.useCustomLogger) {
|
|
79
|
+
this.workers.forEach(worker => this.setupWorkerLogForwarding(worker));
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
this.remoteWasms = await Promise.all(this.workers.map(getRemoteBarretenbergWasm<BarretenbergWasmThreadWorker>));
|
|
83
|
+
await Promise.all(this.remoteWasms.map(w => w.initThread(module, this.memory, this.useCustomLogger)));
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
private getDefaultMaximumMemoryPages(): number {
|
|
88
|
+
// iOS browser is very aggressive with memory. Check if running in browser and on iOS
|
|
89
|
+
// We at any rate expect the mobile iOS browser to kill us >=1GB, so we don't set a maximum higher than that.
|
|
90
|
+
if (typeof window !== 'undefined' && /iPad|iPhone/.test(navigator.userAgent)) {
|
|
91
|
+
return 2 ** 14;
|
|
92
|
+
}
|
|
93
|
+
return 2 ** 16;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* Set up forwarding of log messages from worker threads to our logger.
|
|
98
|
+
* Workers post messages with { type: 'log', msg: string } which we intercept here.
|
|
99
|
+
*/
|
|
100
|
+
private setupWorkerLogForwarding(worker: Worker) {
|
|
101
|
+
const handler = (data: unknown) => {
|
|
102
|
+
if (data && typeof data === 'object' && 'type' in data && data.type === 'log' && 'msg' in data) {
|
|
103
|
+
this.logger(data.msg as string);
|
|
104
|
+
}
|
|
105
|
+
};
|
|
106
|
+
|
|
107
|
+
// Node Workers use 'on' method, browser Workers use 'addEventListener'
|
|
108
|
+
// The 'worker' variable is typed as Node's Worker, but at runtime in browser
|
|
109
|
+
// it will be a browser Worker (due to browser_postprocess.sh import rewriting)
|
|
110
|
+
if ('on' in worker && typeof worker.on === 'function') {
|
|
111
|
+
// Node.js worker_threads Worker
|
|
112
|
+
worker.on('message', handler);
|
|
113
|
+
} else if ('addEventListener' in worker) {
|
|
114
|
+
// Browser Web Worker
|
|
115
|
+
(worker as unknown as globalThis.Worker).addEventListener('message', (event: MessageEvent) => {
|
|
116
|
+
handler(event.data);
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
* Called on main thread. Signals child threads to gracefully exit.
|
|
123
|
+
*/
|
|
124
|
+
public async destroy() {
|
|
125
|
+
await Promise.all(this.workers.map(w => w.terminate()));
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
protected getImportObj(memory: WebAssembly.Memory) {
|
|
129
|
+
const baseImports = super.getImportObj(memory);
|
|
130
|
+
|
|
131
|
+
/* eslint-disable camelcase */
|
|
132
|
+
return {
|
|
133
|
+
...baseImports,
|
|
134
|
+
wasi: {
|
|
135
|
+
'thread-spawn': (arg: number) => {
|
|
136
|
+
arg = arg >>> 0;
|
|
137
|
+
const id = this.nextThreadId++;
|
|
138
|
+
const worker = this.nextWorker++ % this.remoteWasms.length;
|
|
139
|
+
// this.logger(`spawning thread ${id} on worker ${worker} with arg ${arg >>> 0}`);
|
|
140
|
+
this.remoteWasms[worker].call('wasi_thread_start', id, arg).catch(this.logger);
|
|
141
|
+
// this.remoteWasms[worker].postMessage({ msg: 'thread', data: { id, arg } });
|
|
142
|
+
return id;
|
|
143
|
+
},
|
|
144
|
+
},
|
|
145
|
+
env: {
|
|
146
|
+
...baseImports.env,
|
|
147
|
+
env_hardware_concurrency: () => {
|
|
148
|
+
// If there are no workers (we're already running as a worker, or the main thread requested no workers)
|
|
149
|
+
// then we return 1, which should cause any algos using threading to just not create a thread.
|
|
150
|
+
return this.remoteWasms.length + 1;
|
|
151
|
+
},
|
|
152
|
+
},
|
|
153
|
+
};
|
|
154
|
+
/* eslint-enable camelcase */
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
callWasmExport(funcName: string, inArgs: (Uint8Array | number)[], outLens: (number | undefined)[]) {
|
|
158
|
+
const alloc = new HeapAllocator(this);
|
|
159
|
+
const inPtrs = alloc.getInputs(inArgs);
|
|
160
|
+
const outPtrs = alloc.getOutputPtrs(outLens);
|
|
161
|
+
this.call(funcName, ...inPtrs, ...outPtrs);
|
|
162
|
+
const outArgs = this.getOutputArgs(outLens, outPtrs, alloc);
|
|
163
|
+
alloc.freeAll();
|
|
164
|
+
return outArgs;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
private getOutputArgs(outLens: (number | undefined)[], outPtrs: number[], alloc: HeapAllocator) {
|
|
168
|
+
return outLens.map((len, i) => {
|
|
169
|
+
if (len) {
|
|
170
|
+
return this.getMemorySlice(outPtrs[i], outPtrs[i] + len);
|
|
171
|
+
}
|
|
172
|
+
const slice = this.getMemorySlice(outPtrs[i], outPtrs[i] + 4);
|
|
173
|
+
const ptr = new DataView(slice.buffer, slice.byteOffset, slice.byteLength).getUint32(0, true);
|
|
174
|
+
|
|
175
|
+
// Add our heap buffer to the dealloc list.
|
|
176
|
+
alloc.addOutputPtr(ptr);
|
|
177
|
+
|
|
178
|
+
// The length will be found in the first 4 bytes of the buffer, big endian. See to_heap_buffer.
|
|
179
|
+
const lslice = this.getMemorySlice(ptr, ptr + 4);
|
|
180
|
+
const length = new DataView(lslice.buffer, lslice.byteOffset, lslice.byteLength).getUint32(0, false);
|
|
181
|
+
|
|
182
|
+
return this.getMemorySlice(ptr + 4, ptr + 4 + length);
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
cbindCall(cbind: string, inputBuffer: Uint8Array): any {
|
|
187
|
+
const needsCustomInputBuffer = inputBuffer.length > this.MSGPACK_SCRATCH_SIZE;
|
|
188
|
+
let inputPtr: number;
|
|
189
|
+
|
|
190
|
+
if (needsCustomInputBuffer) {
|
|
191
|
+
// Allocate temporary buffer for oversized input
|
|
192
|
+
inputPtr = this.call('bbmalloc', inputBuffer.length);
|
|
193
|
+
} else {
|
|
194
|
+
// Use pre-allocated scratch buffer
|
|
195
|
+
inputPtr = this.msgpackInputScratch;
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
// Write input to buffer
|
|
199
|
+
this.writeMemory(inputPtr, inputBuffer);
|
|
200
|
+
|
|
201
|
+
// Setup output scratch buffer with IN-OUT parameter pattern:
|
|
202
|
+
// Reserve 8 bytes for metadata (pointer + size), rest is scratch data space
|
|
203
|
+
const METADATA_SIZE = 8;
|
|
204
|
+
const outputPtrLocation = this.msgpackOutputScratch;
|
|
205
|
+
const outputSizeLocation = this.msgpackOutputScratch + 4;
|
|
206
|
+
const scratchDataPtr = this.msgpackOutputScratch + METADATA_SIZE;
|
|
207
|
+
const scratchDataSize = this.MSGPACK_SCRATCH_SIZE - METADATA_SIZE;
|
|
208
|
+
|
|
209
|
+
// Get memory and create DataView for writing IN values
|
|
210
|
+
let mem = this.getMemory();
|
|
211
|
+
let view = new DataView(mem.buffer);
|
|
212
|
+
|
|
213
|
+
// Write IN values: provide scratch buffer pointer and size to C++
|
|
214
|
+
view.setUint32(outputPtrLocation, scratchDataPtr, true);
|
|
215
|
+
view.setUint32(outputSizeLocation, scratchDataSize, true);
|
|
216
|
+
|
|
217
|
+
// Call WASM
|
|
218
|
+
this.call(cbind, inputPtr, inputBuffer.length, outputPtrLocation, outputSizeLocation);
|
|
219
|
+
|
|
220
|
+
// Free custom input buffer if allocated
|
|
221
|
+
if (needsCustomInputBuffer) {
|
|
222
|
+
this.call('bbfree', inputPtr);
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
// Re-fetch memory after WASM call, as the buffer may have been detached if memory grew
|
|
226
|
+
mem = this.getMemory();
|
|
227
|
+
view = new DataView(mem.buffer);
|
|
228
|
+
|
|
229
|
+
// Read OUT values: C++ returns actual buffer pointer and size
|
|
230
|
+
const outputDataPtr = view.getUint32(outputPtrLocation, true);
|
|
231
|
+
const outputSize = view.getUint32(outputSizeLocation, true);
|
|
232
|
+
|
|
233
|
+
// Check if C++ used scratch (pointer unchanged) or allocated (pointer changed)
|
|
234
|
+
const usedScratch = outputDataPtr === scratchDataPtr;
|
|
235
|
+
|
|
236
|
+
// Copy output data from WASM memory
|
|
237
|
+
const encodedResult = this.getMemorySlice(outputDataPtr, outputDataPtr + outputSize);
|
|
238
|
+
|
|
239
|
+
// Only free if C++ allocated beyond scratch
|
|
240
|
+
if (!usedScratch) {
|
|
241
|
+
this.call('bbfree', outputDataPtr);
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
return encodedResult;
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
/**
|
|
249
|
+
* The comlink type that asyncifies the BarretenbergWasmMain api.
|
|
250
|
+
*/
|
|
251
|
+
export type BarretenbergWasmMainWorker = Remote<BarretenbergWasmMain>;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { readinessListener } from '../../../helpers/browser/index.js';
|
|
2
|
+
|
|
3
|
+
export async function createThreadWorker() {
|
|
4
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
5
|
+
// @ts-ignore
|
|
6
|
+
const worker = new Worker(new URL('./thread.worker.js', import.meta.url), { type: 'module' });
|
|
7
|
+
await new Promise<void>(resolve => readinessListener(worker, resolve));
|
|
8
|
+
return worker;
|
|
9
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Worker } from 'worker_threads';
|
|
2
|
+
import { dirname } from 'path';
|
|
3
|
+
import { fileURLToPath } from 'url';
|
|
4
|
+
|
|
5
|
+
function getCurrentDir() {
|
|
6
|
+
if (typeof __dirname !== 'undefined') {
|
|
7
|
+
return __dirname;
|
|
8
|
+
} else {
|
|
9
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
10
|
+
// @ts-ignore
|
|
11
|
+
return dirname(fileURLToPath(import.meta.url));
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export function createThreadWorker() {
|
|
16
|
+
const __dirname = getCurrentDir();
|
|
17
|
+
const worker = new Worker(__dirname + `/thread.worker.js`);
|
|
18
|
+
return Promise.resolve(worker);
|
|
19
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { parentPort } from 'worker_threads';
|
|
2
|
+
import { expose } from 'comlink';
|
|
3
|
+
import { BarretenbergWasmThread } from '../../index.js';
|
|
4
|
+
import { nodeEndpoint } from '../../../helpers/node/node_endpoint.js';
|
|
5
|
+
|
|
6
|
+
if (!parentPort) {
|
|
7
|
+
throw new Error('No parentPort');
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
const endpoint = nodeEndpoint(parentPort);
|
|
11
|
+
|
|
12
|
+
expose(new BarretenbergWasmThread(), endpoint);
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { Remote } from 'comlink';
|
|
2
|
+
import { killSelf, threadLogger } from '../helpers/index.js';
|
|
3
|
+
import { BarretenbergWasmBase } from '../barretenberg_wasm_base/index.js';
|
|
4
|
+
|
|
5
|
+
export class BarretenbergWasmThread extends BarretenbergWasmBase {
|
|
6
|
+
/**
|
|
7
|
+
* Init as worker thread.
|
|
8
|
+
* @param useCustomLogger - If true, logs will be posted back to main thread for custom logger routing
|
|
9
|
+
*/
|
|
10
|
+
public async initThread(module: WebAssembly.Module, memory: WebAssembly.Memory, useCustomLogger = false) {
|
|
11
|
+
this.logger = threadLogger(useCustomLogger) || this.logger;
|
|
12
|
+
this.memory = memory;
|
|
13
|
+
this.instance = await WebAssembly.instantiate(module, this.getImportObj(this.memory));
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
public destroy() {
|
|
17
|
+
killSelf();
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
protected getImportObj(memory: WebAssembly.Memory) {
|
|
21
|
+
const baseImports = super.getImportObj(memory);
|
|
22
|
+
|
|
23
|
+
/* eslint-disable camelcase */
|
|
24
|
+
return {
|
|
25
|
+
...baseImports,
|
|
26
|
+
wasi: {
|
|
27
|
+
'thread-spawn': () => {
|
|
28
|
+
this.logger('PANIC: threads cannot spawn threads!');
|
|
29
|
+
this.logger(new Error().stack!);
|
|
30
|
+
killSelf();
|
|
31
|
+
},
|
|
32
|
+
},
|
|
33
|
+
|
|
34
|
+
// These are functions implementations for imports we've defined are needed.
|
|
35
|
+
// The native C++ build defines these in a module called "env". We must implement TypeScript versions here.
|
|
36
|
+
env: {
|
|
37
|
+
...baseImports.env,
|
|
38
|
+
env_hardware_concurrency: () => {
|
|
39
|
+
// We return 1, which should cause any algos using threading to just not create a thread.
|
|
40
|
+
return 1;
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
};
|
|
44
|
+
/* eslint-enable camelcase */
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export type BarretenbergWasmThreadWorker = Remote<BarretenbergWasmThread>;
|