@aztec/bb.js 0.0.1-alpha.7 → 0.0.1-commit.21caa21
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 +61 -0
- package/dest/browser/barretenberg/backend.d.ts.map +1 -0
- package/dest/browser/barretenberg/backend.js +250 -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 +48 -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 +5 -0
- package/dest/browser/cbind/generate.d.ts.map +1 -0
- package/dest/browser/cbind/generate.js +151 -0
- package/dest/browser/cbind/generated/api_types.d.ts +2051 -0
- package/dest/browser/cbind/generated/api_types.d.ts.map +1 -0
- package/dest/browser/cbind/generated/api_types.js +2747 -0
- package/dest/browser/cbind/generated/async.d.ts +62 -0
- package/dest/browser/cbind/generated/async.d.ts.map +1 -0
- package/dest/browser/cbind/generated/async.js +663 -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 +62 -0
- package/dest/browser/cbind/generated/sync.d.ts.map +1 -0
- package/dest/browser/cbind/generated/sync.js +610 -0
- package/dest/browser/cbind/schema_compiler.d.ts +68 -0
- package/dest/browser/cbind/schema_compiler.d.ts.map +1 -0
- package/dest/browser/cbind/schema_compiler.js +600 -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 +70 -0
- package/dest/browser/crs/net_crs.d.ts.map +1 -0
- package/dest/browser/crs/net_crs.js +141 -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 +61 -0
- package/dest/node/barretenberg/backend.d.ts.map +1 -0
- package/dest/node/barretenberg/backend.js +250 -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 +48 -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 +28 -0
- package/dest/node/bb_backends/node/native_shm.d.ts.map +1 -0
- package/dest/node/bb_backends/node/native_shm.js +177 -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 +237 -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 +281 -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 +124 -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 +5 -0
- package/dest/node/cbind/generate.d.ts.map +1 -0
- package/dest/node/cbind/generate.js +151 -0
- package/dest/node/cbind/generated/api_types.d.ts +2051 -0
- package/dest/node/cbind/generated/api_types.d.ts.map +1 -0
- package/dest/node/cbind/generated/api_types.js +2747 -0
- package/dest/node/cbind/generated/async.d.ts +62 -0
- package/dest/node/cbind/generated/async.d.ts.map +1 -0
- package/dest/node/cbind/generated/async.js +663 -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 +62 -0
- package/dest/node/cbind/generated/sync.d.ts.map +1 -0
- package/dest/node/cbind/generated/sync.js +610 -0
- package/dest/node/cbind/schema_compiler.d.ts +68 -0
- package/dest/node/cbind/schema_compiler.d.ts.map +1 -0
- package/dest/node/cbind/schema_compiler.js +600 -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 +70 -0
- package/dest/node/crs/net_crs.d.ts.map +1 -0
- package/dest/node/crs/net_crs.js +141 -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 +61 -0
- package/dest/node-cjs/barretenberg/backend.d.ts.map +1 -0
- package/dest/node-cjs/barretenberg/backend.js +257 -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 +191 -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 +48 -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 +28 -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 +181 -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 +241 -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 +286 -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 +131 -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 +5 -0
- package/dest/node-cjs/cbind/generate.d.ts.map +1 -0
- package/dest/node-cjs/cbind/generate.js +153 -0
- package/dest/node-cjs/cbind/generated/api_types.d.ts +2051 -0
- package/dest/node-cjs/cbind/generated/api_types.d.ts.map +1 -0
- package/dest/node-cjs/cbind/generated/api_types.js +2989 -0
- package/dest/node-cjs/cbind/generated/async.d.ts +62 -0
- package/dest/node-cjs/cbind/generated/async.d.ts.map +1 -0
- package/dest/node-cjs/cbind/generated/async.js +667 -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 +62 -0
- package/dest/node-cjs/cbind/generated/sync.d.ts.map +1 -0
- package/dest/node-cjs/cbind/generated/sync.js +614 -0
- package/dest/node-cjs/cbind/schema_compiler.d.ts +68 -0
- package/dest/node-cjs/cbind/schema_compiler.d.ts.map +1 -0
- package/dest/node-cjs/cbind/schema_compiler.js +607 -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 +70 -0
- package/dest/node-cjs/crs/net_crs.d.ts.map +1 -0
- package/dest/node-cjs/crs/net_crs.js +146 -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 +39 -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.ts +312 -0
- package/src/barretenberg/blake2s.test.ts +69 -0
- package/src/barretenberg/index.ts +212 -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 +52 -0
- package/src/bb_backends/interface.ts +35 -0
- package/src/bb_backends/node/index.ts +102 -0
- package/src/bb_backends/node/native_pipe.ts +127 -0
- package/src/bb_backends/node/native_shm.ts +195 -0
- package/src/bb_backends/node/native_shm_async.ts +266 -0
- package/src/bb_backends/node/native_socket.ts +326 -0
- package/src/bb_backends/node/platform.ts +151 -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 +182 -0
- package/src/cbind/schema_compiler.ts +745 -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.ts +114 -19
- package/src/crs/node/index.ts +95 -26
- package/src/index.html +1 -1
- package/src/index.ts +43 -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,266 @@
|
|
|
1
|
+
import { createRequire } from 'module';
|
|
2
|
+
import { spawn, ChildProcess } from 'child_process';
|
|
3
|
+
import { openSync, closeSync } from 'fs';
|
|
4
|
+
import { IMsgpackBackendAsync } from '../interface.js';
|
|
5
|
+
import { findNapiBinary, findPackageRoot } from './platform.js';
|
|
6
|
+
|
|
7
|
+
// Import the NAPI module
|
|
8
|
+
// The addon is built to the nodejs_module directory
|
|
9
|
+
const addonPath = findNapiBinary();
|
|
10
|
+
// Try loading, but don't throw if it doesn't exist (will be caught in constructor)
|
|
11
|
+
let addon: any = null;
|
|
12
|
+
try {
|
|
13
|
+
if (addonPath) {
|
|
14
|
+
const require = createRequire(findPackageRoot()!);
|
|
15
|
+
addon = require(addonPath);
|
|
16
|
+
}
|
|
17
|
+
} catch (err) {
|
|
18
|
+
// Addon not built yet or not available
|
|
19
|
+
addon = null;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
let instanceCounter = 0;
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Asynchronous shared memory backend that communicates with bb binary via shared memory.
|
|
26
|
+
* Uses NAPI module with background thread polling for async operations.
|
|
27
|
+
* Supports request pipelining - multiple requests can be in flight simultaneously.
|
|
28
|
+
*
|
|
29
|
+
* Architecture (matches socket backend pattern):
|
|
30
|
+
* - bb acts as the SERVER, TypeScript is the CLIENT
|
|
31
|
+
* - bb creates the shared memory region
|
|
32
|
+
* - TypeScript connects via NAPI wrapper (MsgpackClientAsync)
|
|
33
|
+
* - TypeScript manages promise queue (single-threaded, no mutex needed)
|
|
34
|
+
* - C++ background thread polls for responses, calls JavaScript callback
|
|
35
|
+
* - JavaScript callback pops queue and resolves promises in FIFO order
|
|
36
|
+
*/
|
|
37
|
+
export class BarretenbergNativeShmAsyncBackend implements IMsgpackBackendAsync {
|
|
38
|
+
private process: ChildProcess;
|
|
39
|
+
private client: any; // NAPI MsgpackClientAsync instance
|
|
40
|
+
private logFd?: number; // File descriptor for logs
|
|
41
|
+
|
|
42
|
+
// Queue of pending callbacks for pipelined requests
|
|
43
|
+
// Responses come back in FIFO order, so we match them with queued callbacks
|
|
44
|
+
private pendingCallbacks: Array<{
|
|
45
|
+
resolve: (data: Uint8Array) => void;
|
|
46
|
+
reject: (error: Error) => void;
|
|
47
|
+
}> = [];
|
|
48
|
+
|
|
49
|
+
private constructor(process: ChildProcess, client: any, logFd?: number) {
|
|
50
|
+
this.process = process;
|
|
51
|
+
this.client = client;
|
|
52
|
+
this.logFd = logFd;
|
|
53
|
+
|
|
54
|
+
// Register our response handler with the C++ client
|
|
55
|
+
// This callback will be invoked from the background thread via ThreadSafeFunction
|
|
56
|
+
this.client.setResponseCallback((responseBuffer: Buffer) => {
|
|
57
|
+
this.handleResponse(responseBuffer);
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Handle response from C++ background thread
|
|
63
|
+
* Dequeues the next pending callback and resolves it (FIFO order)
|
|
64
|
+
*/
|
|
65
|
+
private handleResponse(responseBuffer: Buffer): void {
|
|
66
|
+
// Response is complete - dequeue the next pending callback (FIFO)
|
|
67
|
+
const callback = this.pendingCallbacks.shift();
|
|
68
|
+
if (callback) {
|
|
69
|
+
callback.resolve(new Uint8Array(responseBuffer));
|
|
70
|
+
} else {
|
|
71
|
+
// This shouldn't happen - response without a pending request
|
|
72
|
+
console.warn('Received response but no pending callback');
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
// If no more pending callbacks, release ref to allow process to exit
|
|
76
|
+
if (this.pendingCallbacks.length === 0) {
|
|
77
|
+
this.client.release();
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* Create and initialize an async shared memory backend.
|
|
83
|
+
* @param bbBinaryPath Path to bb binary
|
|
84
|
+
* @param threads Optional number of threads (defaults to min(32, num_cpus))
|
|
85
|
+
* @param logger Optional logger function for bb output
|
|
86
|
+
*/
|
|
87
|
+
static async new(
|
|
88
|
+
bbBinaryPath: string,
|
|
89
|
+
threads?: number,
|
|
90
|
+
logger?: (msg: string) => void,
|
|
91
|
+
): Promise<BarretenbergNativeShmAsyncBackend> {
|
|
92
|
+
if (!addon || !addon.MsgpackClientAsync) {
|
|
93
|
+
throw new Error('Shared memory async NAPI not available.');
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
// Create a unique shared memory name
|
|
97
|
+
const shmName = `bb-async-${process.pid}-${instanceCounter++}`;
|
|
98
|
+
|
|
99
|
+
// If threads not set use num cpu cores, max 32 (same as socket backend)
|
|
100
|
+
const hwc = threads ? threads.toString() : '1';
|
|
101
|
+
const env = { ...process.env, HARDWARE_CONCURRENCY: hwc };
|
|
102
|
+
|
|
103
|
+
// Set up file logging if logger is provided
|
|
104
|
+
// Direct file redirection bypasses Node event loop - logs are written even if process hangs
|
|
105
|
+
let logFd: number | undefined;
|
|
106
|
+
let logPath: string | undefined;
|
|
107
|
+
if (logger) {
|
|
108
|
+
logPath = `/tmp/${shmName}.log`;
|
|
109
|
+
logFd = openSync(logPath, 'w');
|
|
110
|
+
logger(`BB process logs redirected to: ${logPath}`);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
// Spawn bb process with shared memory mode
|
|
114
|
+
// Use larger ring buffers for async mode to support pipelining
|
|
115
|
+
const args = [
|
|
116
|
+
'msgpack',
|
|
117
|
+
'run',
|
|
118
|
+
'--input',
|
|
119
|
+
`${shmName}.shm`,
|
|
120
|
+
'--request-ring-size',
|
|
121
|
+
`${1024 * 1024 * 4}`,
|
|
122
|
+
'--response-ring-size',
|
|
123
|
+
`${1024 * 1024 * 4}`,
|
|
124
|
+
];
|
|
125
|
+
const bbProcess = spawn(bbBinaryPath, args, {
|
|
126
|
+
stdio: ['ignore', logFd ?? 'ignore', logFd ?? 'ignore'],
|
|
127
|
+
env,
|
|
128
|
+
});
|
|
129
|
+
|
|
130
|
+
// Disconnect from event loop so process can exit without waiting for bb
|
|
131
|
+
// The bb process has parent death monitoring (prctl on Linux, kqueue on macOS)
|
|
132
|
+
// so it will automatically exit when Node.js exits
|
|
133
|
+
bbProcess.unref();
|
|
134
|
+
|
|
135
|
+
// Track if process has exited
|
|
136
|
+
let processExited = false;
|
|
137
|
+
let exitError: Error | null = null;
|
|
138
|
+
|
|
139
|
+
bbProcess.on('error', err => {
|
|
140
|
+
processExited = true;
|
|
141
|
+
exitError = new Error(`Native backend process error: ${err.message}`);
|
|
142
|
+
});
|
|
143
|
+
|
|
144
|
+
bbProcess.on('exit', (code, signal) => {
|
|
145
|
+
processExited = true;
|
|
146
|
+
if (code !== null && code !== 0) {
|
|
147
|
+
exitError = new Error(`Native backend process exited with code ${code}`);
|
|
148
|
+
} else if (signal && signal !== 'SIGTERM') {
|
|
149
|
+
exitError = new Error(`Native backend process killed with signal ${signal}`);
|
|
150
|
+
}
|
|
151
|
+
});
|
|
152
|
+
|
|
153
|
+
// Wait for bb to create shared memory
|
|
154
|
+
// Retry connection every 100ms for up to 5 seconds (longer than sync for thread startup)
|
|
155
|
+
const retryInterval = 100; // ms
|
|
156
|
+
const timeout = 5000; // ms
|
|
157
|
+
const maxAttempts = Math.floor(timeout / retryInterval);
|
|
158
|
+
let client: any = null;
|
|
159
|
+
|
|
160
|
+
try {
|
|
161
|
+
for (let attempt = 0; attempt < maxAttempts; attempt++) {
|
|
162
|
+
// Check if bb process has exited before attempting connection
|
|
163
|
+
if (processExited) {
|
|
164
|
+
throw exitError || new Error('Native backend process exited unexpectedly during startup');
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
// Wait before attempting connection (except first attempt)
|
|
168
|
+
if (attempt > 0) {
|
|
169
|
+
await new Promise(resolve => setTimeout(resolve, retryInterval));
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
try {
|
|
173
|
+
// Create NAPI async client
|
|
174
|
+
client = new addon.MsgpackClientAsync(shmName);
|
|
175
|
+
break; // Success!
|
|
176
|
+
} catch (err: any) {
|
|
177
|
+
// Connection failed, will retry
|
|
178
|
+
if (attempt === maxAttempts - 1) {
|
|
179
|
+
// Last attempt failed - check one more time if process exited
|
|
180
|
+
if (processExited && exitError) {
|
|
181
|
+
throw exitError;
|
|
182
|
+
}
|
|
183
|
+
throw new Error(`Failed to connect to shared memory after ${timeout}ms: ${err.message}`);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
if (!client) {
|
|
189
|
+
throw new Error('Failed to create client connection');
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
return new BarretenbergNativeShmAsyncBackend(bbProcess, client, logFd);
|
|
193
|
+
} finally {
|
|
194
|
+
// If we failed to connect, ensure the process is killed and log file closed
|
|
195
|
+
if (!client) {
|
|
196
|
+
bbProcess.kill('SIGKILL');
|
|
197
|
+
if (logFd !== undefined) {
|
|
198
|
+
try {
|
|
199
|
+
closeSync(logFd);
|
|
200
|
+
} catch (e) {
|
|
201
|
+
// Ignore errors during cleanup
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
/**
|
|
209
|
+
* Send a msgpack request asynchronously.
|
|
210
|
+
* Supports pipelining - can be called multiple times before awaiting responses.
|
|
211
|
+
* Use Promise.all() to send multiple requests concurrently.
|
|
212
|
+
*
|
|
213
|
+
* Example:
|
|
214
|
+
* const results = await Promise.all([
|
|
215
|
+
* backend.call(buf1),
|
|
216
|
+
* backend.call(buf2),
|
|
217
|
+
* backend.call(buf3)
|
|
218
|
+
* ]);
|
|
219
|
+
*
|
|
220
|
+
* @param inputBuffer The msgpack-encoded request
|
|
221
|
+
* @returns Promise resolving to msgpack-encoded response
|
|
222
|
+
*/
|
|
223
|
+
async call(inputBuffer: Uint8Array): Promise<Uint8Array> {
|
|
224
|
+
return new Promise((resolve, reject) => {
|
|
225
|
+
// If this is the first pending callback, acquire ref to keep event loop alive
|
|
226
|
+
if (this.pendingCallbacks.length === 0) {
|
|
227
|
+
this.client.acquire();
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
// Enqueue this promise's callbacks (FIFO order)
|
|
231
|
+
this.pendingCallbacks.push({ resolve, reject });
|
|
232
|
+
|
|
233
|
+
try {
|
|
234
|
+
// Send request to shared memory (synchronous write)
|
|
235
|
+
// C++ call() no longer returns a promise - we manage them here
|
|
236
|
+
this.client.call(Buffer.from(inputBuffer));
|
|
237
|
+
} catch (err: any) {
|
|
238
|
+
// Send failed - dequeue the callback we just added and reject
|
|
239
|
+
this.pendingCallbacks.pop();
|
|
240
|
+
|
|
241
|
+
// If queue is now empty, release ref to allow exit
|
|
242
|
+
if (this.pendingCallbacks.length === 0) {
|
|
243
|
+
this.client.release();
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
reject(new Error(`Shared memory async call failed: ${err.message}`));
|
|
247
|
+
}
|
|
248
|
+
});
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
async destroy(): Promise<void> {
|
|
252
|
+
// Kill the bb process
|
|
253
|
+
// Background thread and callbacks will be cleaned up by OS on process exit
|
|
254
|
+
this.process.kill('SIGTERM');
|
|
255
|
+
this.process.removeAllListeners();
|
|
256
|
+
|
|
257
|
+
// Close log file if open
|
|
258
|
+
if (this.logFd !== undefined) {
|
|
259
|
+
try {
|
|
260
|
+
closeSync(this.logFd);
|
|
261
|
+
} catch (e) {
|
|
262
|
+
// Ignore errors during cleanup
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
}
|
|
@@ -0,0 +1,326 @@
|
|
|
1
|
+
import { spawn, ChildProcess } from 'child_process';
|
|
2
|
+
import * as net from 'net';
|
|
3
|
+
import * as fs from 'fs';
|
|
4
|
+
import * as os from 'os';
|
|
5
|
+
import * as path from 'path';
|
|
6
|
+
import { IMsgpackBackendAsync } from '../interface.js';
|
|
7
|
+
import { findPackageRoot } from './platform.js';
|
|
8
|
+
import readline from 'readline';
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Asynchronous native backend that communicates with bb binary via Unix Domain Socket.
|
|
12
|
+
* Uses event-based I/O with a state machine to handle partial reads.
|
|
13
|
+
*
|
|
14
|
+
* Architecture: bb acts as the SERVER, TypeScript is the CLIENT
|
|
15
|
+
* - bb creates the socket and listens for connections
|
|
16
|
+
* - TypeScript waits for socket file to exist, then connects
|
|
17
|
+
*
|
|
18
|
+
* Protocol:
|
|
19
|
+
* - Request: 4-byte little-endian length + msgpack buffer
|
|
20
|
+
* - Response: 4-byte little-endian length + msgpack buffer
|
|
21
|
+
*/
|
|
22
|
+
export class BarretenbergNativeSocketAsyncBackend implements IMsgpackBackendAsync {
|
|
23
|
+
private process: ChildProcess;
|
|
24
|
+
private socket: net.Socket | null = null;
|
|
25
|
+
private socketPath: string;
|
|
26
|
+
private connectionPromise: Promise<void>;
|
|
27
|
+
private connectionTimeout: NodeJS.Timeout | null = null;
|
|
28
|
+
|
|
29
|
+
// Queue of pending callbacks for pipelined requests
|
|
30
|
+
// Responses come back in FIFO order, so we match them with queued callbacks
|
|
31
|
+
private pendingCallbacks: Array<{
|
|
32
|
+
resolve: (data: Uint8Array) => void;
|
|
33
|
+
reject: (error: Error) => void;
|
|
34
|
+
}> = [];
|
|
35
|
+
|
|
36
|
+
// State machine for reading responses
|
|
37
|
+
private readingLength: boolean = true;
|
|
38
|
+
private lengthBuffer: Buffer = Buffer.alloc(4);
|
|
39
|
+
private lengthBytesRead: number = 0;
|
|
40
|
+
private responseLength: number = 0;
|
|
41
|
+
private responseBuffer: Buffer | null = null;
|
|
42
|
+
private responseBytesRead: number = 0;
|
|
43
|
+
|
|
44
|
+
constructor(bbBinaryPath: string, threads?: number, logger?: (msg: string) => void) {
|
|
45
|
+
// Create a unique socket path in temp directory
|
|
46
|
+
this.socketPath = path.join(os.tmpdir(), `bb-${process.pid}-${Date.now()}.sock`);
|
|
47
|
+
|
|
48
|
+
// Ensure socket path doesn't already exist (cleanup from previous crashes)
|
|
49
|
+
if (fs.existsSync(this.socketPath)) {
|
|
50
|
+
fs.unlinkSync(this.socketPath);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
let connectionResolve: (() => void) | null = null;
|
|
54
|
+
let connectionReject: ((error: Error) => void) | null = null;
|
|
55
|
+
|
|
56
|
+
this.connectionPromise = new Promise<void>((resolve, reject) => {
|
|
57
|
+
connectionResolve = resolve;
|
|
58
|
+
connectionReject = reject;
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
// If threads not set use num cpu cores, max 32.
|
|
62
|
+
const hwc = threads ? threads.toString() : Math.min(32, os.cpus.length).toString();
|
|
63
|
+
const env = { ...process.env, HARDWARE_CONCURRENCY: '1' };
|
|
64
|
+
|
|
65
|
+
// Spawn bb process - it will create the socket server
|
|
66
|
+
const args = ['msgpack', 'run', '--input', this.socketPath];
|
|
67
|
+
this.process = spawn(bbBinaryPath, args, {
|
|
68
|
+
stdio: ['ignore', logger ? 'pipe' : 'ignore', logger ? 'pipe' : 'ignore'],
|
|
69
|
+
env,
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
// Disconnect from event loop so process can exit without waiting for bb
|
|
73
|
+
// The bb process has parent death monitoring (prctl on Linux, kqueue on macOS)
|
|
74
|
+
// so it will automatically exit when Node.js exits
|
|
75
|
+
this.process.unref();
|
|
76
|
+
|
|
77
|
+
if (logger) {
|
|
78
|
+
logger("Logger attached to bb process. DON'T FORGET TO DESTROY THE BACKEND to allow Node.js to exit.");
|
|
79
|
+
readline.createInterface({ input: this.process.stdout! }).on('line', logger);
|
|
80
|
+
readline.createInterface({ input: this.process.stderr! }).on('line', logger);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
this.process.on('error', err => {
|
|
84
|
+
if (connectionReject) {
|
|
85
|
+
connectionReject(new Error(`Native backend process error: ${err.message}`));
|
|
86
|
+
connectionReject = null;
|
|
87
|
+
connectionResolve = null;
|
|
88
|
+
}
|
|
89
|
+
// Reject all pending callbacks
|
|
90
|
+
const error = new Error(`Native backend process error: ${err.message}`);
|
|
91
|
+
for (const callback of this.pendingCallbacks) {
|
|
92
|
+
callback.reject(error);
|
|
93
|
+
}
|
|
94
|
+
this.pendingCallbacks = [];
|
|
95
|
+
});
|
|
96
|
+
|
|
97
|
+
this.process.on('exit', (code, signal) => {
|
|
98
|
+
const errorMsg =
|
|
99
|
+
code !== null && code !== 0
|
|
100
|
+
? `Native backend process exited with code ${code}`
|
|
101
|
+
: signal && signal !== 'SIGTERM'
|
|
102
|
+
? `Native backend process killed with signal ${signal}`
|
|
103
|
+
: 'Native backend process exited unexpectedly';
|
|
104
|
+
|
|
105
|
+
if (connectionReject) {
|
|
106
|
+
connectionReject(new Error(errorMsg));
|
|
107
|
+
connectionReject = null;
|
|
108
|
+
connectionResolve = null;
|
|
109
|
+
}
|
|
110
|
+
// Reject all pending callbacks
|
|
111
|
+
const error = new Error(errorMsg);
|
|
112
|
+
for (const callback of this.pendingCallbacks) {
|
|
113
|
+
callback.reject(error);
|
|
114
|
+
}
|
|
115
|
+
this.pendingCallbacks = [];
|
|
116
|
+
});
|
|
117
|
+
|
|
118
|
+
// Wait for bb to create socket file, then connect
|
|
119
|
+
this.waitForSocketAndConnect()
|
|
120
|
+
.then(() => {
|
|
121
|
+
if (connectionResolve) {
|
|
122
|
+
connectionResolve();
|
|
123
|
+
connectionResolve = null;
|
|
124
|
+
connectionReject = null;
|
|
125
|
+
}
|
|
126
|
+
})
|
|
127
|
+
.catch(err => {
|
|
128
|
+
if (connectionReject) {
|
|
129
|
+
connectionReject(err);
|
|
130
|
+
connectionReject = null;
|
|
131
|
+
connectionResolve = null;
|
|
132
|
+
}
|
|
133
|
+
});
|
|
134
|
+
|
|
135
|
+
// Set a timeout for connection
|
|
136
|
+
this.connectionTimeout = setTimeout(() => {
|
|
137
|
+
if (connectionReject) {
|
|
138
|
+
connectionReject(new Error('Timeout waiting for bb socket connection'));
|
|
139
|
+
connectionReject = null;
|
|
140
|
+
connectionResolve = null;
|
|
141
|
+
this.cleanup();
|
|
142
|
+
}
|
|
143
|
+
}, 5000);
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
private async waitForSocketAndConnect(): Promise<void> {
|
|
147
|
+
// Poll for socket file to exist (bb is creating it)
|
|
148
|
+
const startTime = Date.now();
|
|
149
|
+
while (!fs.existsSync(this.socketPath)) {
|
|
150
|
+
if (Date.now() - startTime > 5000) {
|
|
151
|
+
throw new Error('Timeout waiting for bb to create socket file');
|
|
152
|
+
}
|
|
153
|
+
await new Promise(resolve => setTimeout(resolve, 50));
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
// Additional check: ensure it's actually a socket
|
|
157
|
+
const stats = fs.statSync(this.socketPath);
|
|
158
|
+
if (!stats.isSocket()) {
|
|
159
|
+
throw new Error(`Path exists but is not a socket: ${this.socketPath}`);
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
// Connect to bb's socket server as a client
|
|
163
|
+
return new Promise<void>((resolve, reject) => {
|
|
164
|
+
this.socket = net.connect(this.socketPath);
|
|
165
|
+
|
|
166
|
+
// Disable Nagle's algorithm for lower latency
|
|
167
|
+
this.socket.setNoDelay(true);
|
|
168
|
+
|
|
169
|
+
// Set up event handlers
|
|
170
|
+
this.socket.once('connect', () => {
|
|
171
|
+
// Socket starts referenced - will be unreferenced when no callbacks pending
|
|
172
|
+
|
|
173
|
+
// Clear connection timeout on successful connection
|
|
174
|
+
if (this.connectionTimeout) {
|
|
175
|
+
clearTimeout(this.connectionTimeout);
|
|
176
|
+
this.connectionTimeout = null;
|
|
177
|
+
}
|
|
178
|
+
resolve();
|
|
179
|
+
});
|
|
180
|
+
|
|
181
|
+
this.socket.once('error', err => {
|
|
182
|
+
reject(new Error(`Failed to connect to bb socket: ${err.message}`));
|
|
183
|
+
});
|
|
184
|
+
|
|
185
|
+
// Set up data handler after connection is established
|
|
186
|
+
this.socket.on('data', (chunk: Buffer) => {
|
|
187
|
+
this.handleData(chunk);
|
|
188
|
+
});
|
|
189
|
+
|
|
190
|
+
// Handle ongoing errors after initial connection
|
|
191
|
+
this.socket.on('error', err => {
|
|
192
|
+
// Reject all pending callbacks
|
|
193
|
+
const error = new Error(`Socket error: ${err.message}`);
|
|
194
|
+
for (const callback of this.pendingCallbacks) {
|
|
195
|
+
callback.reject(error);
|
|
196
|
+
}
|
|
197
|
+
this.pendingCallbacks = [];
|
|
198
|
+
});
|
|
199
|
+
|
|
200
|
+
this.socket.on('end', () => {
|
|
201
|
+
// Reject all pending callbacks
|
|
202
|
+
const error = new Error('Socket connection ended unexpectedly');
|
|
203
|
+
for (const callback of this.pendingCallbacks) {
|
|
204
|
+
callback.reject(error);
|
|
205
|
+
}
|
|
206
|
+
this.pendingCallbacks = [];
|
|
207
|
+
});
|
|
208
|
+
});
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
private handleData(chunk: Buffer): void {
|
|
212
|
+
let offset = 0;
|
|
213
|
+
|
|
214
|
+
while (offset < chunk.length) {
|
|
215
|
+
if (this.readingLength) {
|
|
216
|
+
// Reading 4-byte length prefix
|
|
217
|
+
const bytesToCopy = Math.min(4 - this.lengthBytesRead, chunk.length - offset);
|
|
218
|
+
chunk.copy(this.lengthBuffer, this.lengthBytesRead, offset, offset + bytesToCopy);
|
|
219
|
+
this.lengthBytesRead += bytesToCopy;
|
|
220
|
+
offset += bytesToCopy;
|
|
221
|
+
|
|
222
|
+
if (this.lengthBytesRead === 4) {
|
|
223
|
+
// Length is complete, switch to reading data
|
|
224
|
+
this.responseLength = this.lengthBuffer.readUInt32LE(0);
|
|
225
|
+
this.responseBuffer = Buffer.alloc(this.responseLength);
|
|
226
|
+
this.responseBytesRead = 0;
|
|
227
|
+
this.readingLength = false;
|
|
228
|
+
}
|
|
229
|
+
} else {
|
|
230
|
+
// Reading response data
|
|
231
|
+
const bytesToCopy = Math.min(this.responseLength - this.responseBytesRead, chunk.length - offset);
|
|
232
|
+
chunk.copy(this.responseBuffer!, this.responseBytesRead, offset, offset + bytesToCopy);
|
|
233
|
+
this.responseBytesRead += bytesToCopy;
|
|
234
|
+
offset += bytesToCopy;
|
|
235
|
+
|
|
236
|
+
if (this.responseBytesRead === this.responseLength) {
|
|
237
|
+
// Response is complete - dequeue the next pending callback (FIFO)
|
|
238
|
+
const callback = this.pendingCallbacks.shift();
|
|
239
|
+
if (callback) {
|
|
240
|
+
callback.resolve(new Uint8Array(this.responseBuffer!));
|
|
241
|
+
} else {
|
|
242
|
+
// This shouldn't happen - response without a pending request
|
|
243
|
+
console.warn('Received response but no pending callback');
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
// If no more pending callbacks, unref socket to allow process to exit
|
|
247
|
+
if (this.pendingCallbacks.length === 0 && this.socket) {
|
|
248
|
+
this.socket.unref();
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
// Reset state for next message
|
|
252
|
+
this.readingLength = true;
|
|
253
|
+
this.lengthBytesRead = 0;
|
|
254
|
+
this.responseLength = 0;
|
|
255
|
+
this.responseBuffer = null;
|
|
256
|
+
this.responseBytesRead = 0;
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
async call(inputBuffer: Uint8Array): Promise<Uint8Array> {
|
|
263
|
+
// Wait for connection to be established
|
|
264
|
+
await this.connectionPromise;
|
|
265
|
+
|
|
266
|
+
if (!this.socket) {
|
|
267
|
+
throw new Error('Socket not connected');
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
return new Promise((resolve, reject) => {
|
|
271
|
+
// If this is the first pending callback, ref the socket to keep event loop alive
|
|
272
|
+
if (this.pendingCallbacks.length === 0) {
|
|
273
|
+
this.socket!.ref();
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
// Enqueue this promise's callbacks (FIFO order)
|
|
277
|
+
this.pendingCallbacks.push({ resolve, reject });
|
|
278
|
+
|
|
279
|
+
// Write request: 4-byte little-endian length + msgpack data
|
|
280
|
+
// Socket will buffer these if needed, maintaining order
|
|
281
|
+
const lengthBuf = Buffer.alloc(4);
|
|
282
|
+
lengthBuf.writeUInt32LE(inputBuffer.length, 0);
|
|
283
|
+
this.socket!.write(lengthBuf);
|
|
284
|
+
this.socket!.write(inputBuffer);
|
|
285
|
+
});
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
private cleanup(): void {
|
|
289
|
+
// Reject any remaining pending callbacks
|
|
290
|
+
const error = new Error('Backend connection closed');
|
|
291
|
+
for (const callback of this.pendingCallbacks) {
|
|
292
|
+
callback.reject(error);
|
|
293
|
+
}
|
|
294
|
+
this.pendingCallbacks = [];
|
|
295
|
+
|
|
296
|
+
try {
|
|
297
|
+
// Remove all event listeners to prevent hanging
|
|
298
|
+
if (this.socket) {
|
|
299
|
+
this.socket.removeAllListeners();
|
|
300
|
+
// Unref so socket doesn't keep event loop alive
|
|
301
|
+
// this.socket.unref();
|
|
302
|
+
this.socket.destroy();
|
|
303
|
+
}
|
|
304
|
+
} catch (e) {
|
|
305
|
+
// Ignore errors during cleanup
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
// Clear connection timeout if still pending
|
|
309
|
+
if (this.connectionTimeout) {
|
|
310
|
+
clearTimeout(this.connectionTimeout);
|
|
311
|
+
this.connectionTimeout = null;
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
// Remove process event listeners and unref to not block event loop
|
|
315
|
+
this.process.removeAllListeners();
|
|
316
|
+
// this.process.unref();
|
|
317
|
+
|
|
318
|
+
// Don't try to unlink socket - bb owns it and will clean it up
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
async destroy(): Promise<void> {
|
|
322
|
+
this.cleanup();
|
|
323
|
+
this.process.kill('SIGTERM');
|
|
324
|
+
this.process.removeAllListeners();
|
|
325
|
+
}
|
|
326
|
+
}
|