@aztec/bb.js 3.0.0-canary.a9708bd → 3.0.0-devnet.2-patch.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +13 -79
- 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/browser/async_map/index.d.ts +1 -1
- package/dest/browser/async_map/index.js +1 -1
- package/dest/browser/barretenberg/backend.d.ts +32 -41
- package/dest/browser/barretenberg/backend.d.ts.map +1 -1
- package/dest/browser/barretenberg/backend.js +128 -108
- package/dest/browser/barretenberg/index.d.ts +47 -48
- package/dest/browser/barretenberg/index.d.ts.map +1 -1
- package/dest/browser/barretenberg/index.js +132 -90
- 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 +2 -2
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_base/index.d.ts.map +1 -1
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_base/index.js +6 -7
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts +1 -1
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts.map +1 -1
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.js +1 -3
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.d.ts +1 -1
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.js +1 -7
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts +5 -5
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts.map +1 -1
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.js +20 -11
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/index.d.ts +16 -7
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/index.d.ts.map +1 -1
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/index.js +94 -26
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts +1 -1
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts.map +1 -1
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.js +1 -3
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.d.ts +1 -1
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.js +1 -7
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts +9 -8
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts.map +1 -1
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/index.js +4 -3
- package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg-threads.d.ts +1 -1
- package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg-threads.js +1 -1
- package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg.d.ts +1 -1
- package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg.js +1 -1
- package/dest/browser/barretenberg_wasm/fetch_code/browser/index.d.ts +1 -1
- package/dest/browser/barretenberg_wasm/fetch_code/browser/index.js +1 -1
- package/dest/browser/barretenberg_wasm/fetch_code/index.d.ts +1 -1
- package/dest/browser/barretenberg_wasm/helpers/browser/index.d.ts +2 -2
- package/dest/browser/barretenberg_wasm/helpers/browser/index.d.ts.map +1 -1
- package/dest/browser/barretenberg_wasm/helpers/browser/index.js +9 -2
- package/dest/browser/barretenberg_wasm/helpers/index.d.ts +1 -1
- package/dest/browser/barretenberg_wasm/index.d.ts +1 -1
- package/dest/browser/barretenberg_wasm/index.d.ts.map +1 -1
- package/dest/browser/barretenberg_wasm/index.js +2 -3
- 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/{node/bindgen → browser/bin}/index.d.ts.map +1 -1
- package/dest/browser/bin/index.js +11 -0
- package/dest/browser/cbind/generate.d.ts +1 -1
- package/dest/browser/cbind/generate.js +94 -7
- package/dest/browser/cbind/generated/api_types.d.ts +1629 -230
- package/dest/browser/cbind/generated/api_types.d.ts.map +1 -1
- package/dest/browser/cbind/generated/api_types.js +2349 -479
- package/dest/browser/cbind/generated/async.d.ts +53 -14
- package/dest/browser/cbind/generated/async.d.ts.map +1 -1
- package/dest/browser/cbind/generated/async.js +587 -72
- 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 +54 -15
- package/dest/browser/cbind/generated/sync.d.ts.map +1 -1
- package/dest/browser/cbind/generated/sync.js +549 -72
- package/dest/browser/cbind/schema_compiler.d.ts +3 -5
- package/dest/browser/cbind/schema_compiler.d.ts.map +1 -1
- package/dest/browser/cbind/schema_compiler.js +102 -185
- package/dest/browser/crs/browser/cached_net_crs.d.ts +1 -1
- package/dest/browser/crs/browser/cached_net_crs.d.ts.map +1 -1
- package/dest/browser/crs/browser/cached_net_crs.js +6 -1
- package/dest/browser/crs/browser/index.d.ts +1 -1
- package/dest/browser/crs/index.d.ts +1 -1
- package/dest/browser/crs/net_crs.d.ts +1 -16
- package/dest/browser/crs/net_crs.d.ts.map +1 -1
- package/dest/browser/crs/net_crs.js +6 -1
- package/dest/browser/index.d.ts +6 -3
- package/dest/browser/index.d.ts.map +1 -1
- package/dest/browser/index.js +6 -3
- package/dest/browser/proof/index.d.ts +1 -1
- package/dest/browser/proof/index.js +1 -1
- package/dest/browser/random/browser/index.d.ts +1 -1
- package/dest/browser/random/browser/index.d.ts.map +1 -1
- package/dest/browser/random/browser/index.js +1 -1
- package/dest/browser/random/index.d.ts +1 -1
- package/dest/browser/retry/index.d.ts +1 -1
- package/dest/browser/retry/index.js +1 -1
- package/dest/node/async_map/index.d.ts +1 -1
- package/dest/node/async_map/index.js +1 -1
- package/dest/node/barretenberg/__snapshots__/pedersen.test.js.snap +2 -2
- package/dest/node/barretenberg/__snapshots__/poseidon.test.js.snap +3 -3
- package/dest/node/barretenberg/backend.d.ts +32 -41
- package/dest/node/barretenberg/backend.d.ts.map +1 -1
- package/dest/node/barretenberg/backend.js +128 -108
- package/dest/node/barretenberg/blake2s.test.d.ts +1 -1
- package/dest/node/barretenberg/blake2s.test.js +21 -18
- package/dest/node/barretenberg/index.d.ts +47 -48
- package/dest/node/barretenberg/index.d.ts.map +1 -1
- package/dest/node/barretenberg/index.js +132 -90
- package/dest/node/barretenberg/pedersen.test.d.ts +1 -1
- package/dest/node/barretenberg/pedersen.test.js +25 -18
- 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 +1 -1
- package/dest/node/barretenberg/poseidon.test.js +16 -16
- 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 +2 -2
- package/dest/node/barretenberg_wasm/barretenberg_wasm_base/index.d.ts.map +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_base/index.js +6 -7
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts.map +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.js +1 -3
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.d.ts +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.js +1 -7
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.d.ts +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.d.ts.map +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.js +1 -3
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.d.ts +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.js +1 -8
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts +5 -5
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts.map +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.js +20 -11
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/index.d.ts +16 -7
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/index.d.ts.map +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/index.js +94 -26
- package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts.map +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.js +1 -3
- package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.d.ts +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.js +1 -7
- package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.d.ts +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.d.ts.map +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.js +1 -3
- package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.d.ts +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.js +1 -7
- package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts +9 -8
- package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts.map +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/index.js +4 -3
- package/dest/node/barretenberg_wasm/fetch_code/browser/barretenberg-threads.d.ts +1 -1
- package/dest/node/barretenberg_wasm/fetch_code/browser/barretenberg.d.ts +1 -1
- package/dest/node/barretenberg_wasm/fetch_code/browser/index.d.ts +1 -1
- package/dest/node/barretenberg_wasm/fetch_code/browser/index.js +1 -1
- package/dest/node/barretenberg_wasm/fetch_code/index.d.ts +1 -1
- package/dest/node/barretenberg_wasm/fetch_code/node/index.d.ts +1 -1
- package/dest/node/barretenberg_wasm/fetch_code/node/index.js +1 -1
- package/dest/node/barretenberg_wasm/helpers/browser/index.d.ts +2 -2
- package/dest/node/barretenberg_wasm/helpers/browser/index.d.ts.map +1 -1
- package/dest/node/barretenberg_wasm/helpers/browser/index.js +9 -2
- package/dest/node/barretenberg_wasm/helpers/index.d.ts +1 -1
- package/dest/node/barretenberg_wasm/helpers/node/index.d.ts +5 -6
- package/dest/node/barretenberg_wasm/helpers/node/index.d.ts.map +1 -1
- package/dest/node/barretenberg_wasm/helpers/node/index.js +14 -6
- package/dest/node/barretenberg_wasm/helpers/node/node_endpoint.d.ts +2 -2
- package/dest/node/barretenberg_wasm/helpers/node/node_endpoint.d.ts.map +1 -1
- package/dest/node/barretenberg_wasm/helpers/node/node_endpoint.js +1 -1
- package/dest/node/barretenberg_wasm/index.d.ts +1 -1
- package/dest/node/barretenberg_wasm/index.d.ts.map +1 -1
- package/dest/node/barretenberg_wasm/index.js +2 -3
- package/dest/node/barretenberg_wasm/index.test.d.ts +1 -1
- package/dest/node/barretenberg_wasm/index.test.js +11 -10
- 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 +28 -0
- package/dest/node/bb_backends/node/native_shm.d.ts.map +1 -0
- package/dest/node/bb_backends/node/native_shm.js +172 -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 +232 -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 +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 +1 -1
- package/dest/node/benchmark/index.js +1 -1
- package/dest/node/benchmark/timer.d.ts +1 -1
- package/dest/node/benchmark/timer.d.ts.map +1 -1
- package/dest/node/benchmark/timer.js +2 -1
- 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 +1 -1
- package/dest/node/cbind/generate.js +94 -7
- package/dest/node/cbind/generated/api_types.d.ts +1629 -230
- package/dest/node/cbind/generated/api_types.d.ts.map +1 -1
- package/dest/node/cbind/generated/api_types.js +2349 -479
- package/dest/node/cbind/generated/async.d.ts +53 -14
- package/dest/node/cbind/generated/async.d.ts.map +1 -1
- package/dest/node/cbind/generated/async.js +587 -72
- 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 +54 -15
- package/dest/node/cbind/generated/sync.d.ts.map +1 -1
- package/dest/node/cbind/generated/sync.js +549 -72
- package/dest/node/cbind/schema_compiler.d.ts +3 -5
- package/dest/node/cbind/schema_compiler.d.ts.map +1 -1
- package/dest/node/cbind/schema_compiler.js +102 -185
- package/dest/node/crs/browser/cached_net_crs.d.ts +1 -1
- package/dest/node/crs/browser/cached_net_crs.d.ts.map +1 -1
- package/dest/node/crs/browser/cached_net_crs.js +6 -1
- package/dest/node/crs/browser/index.d.ts +1 -1
- package/dest/node/crs/index.d.ts +1 -1
- package/dest/node/crs/net_crs.d.ts +1 -16
- package/dest/node/crs/net_crs.d.ts.map +1 -1
- package/dest/node/crs/net_crs.js +6 -1
- package/dest/node/crs/node/index.d.ts +1 -1
- package/dest/node/crs/node/index.d.ts.map +1 -1
- package/dest/node/crs/node/index.js +11 -6
- package/dest/node/index.d.ts +6 -3
- package/dest/node/index.d.ts.map +1 -1
- package/dest/node/index.js +6 -3
- package/dest/node/proof/index.d.ts +1 -1
- package/dest/node/proof/index.js +1 -1
- package/dest/node/random/browser/index.d.ts +1 -1
- package/dest/node/random/browser/index.d.ts.map +1 -1
- package/dest/node/random/browser/index.js +1 -1
- package/dest/node/random/index.d.ts +1 -1
- package/dest/node/random/node/index.d.ts +1 -1
- package/dest/node/random/node/index.js +1 -1
- package/dest/node/retry/index.d.ts +1 -1
- package/dest/node/retry/index.js +1 -1
- package/dest/node-cjs/async_map/index.d.ts +1 -1
- package/dest/node-cjs/async_map/index.js +1 -1
- package/dest/node-cjs/barretenberg/backend.d.ts +32 -41
- package/dest/node-cjs/barretenberg/backend.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg/backend.js +131 -111
- package/dest/node-cjs/barretenberg/blake2s.test.d.ts +1 -1
- package/dest/node-cjs/barretenberg/blake2s.test.js +22 -19
- package/dest/node-cjs/barretenberg/index.d.ts +47 -48
- package/dest/node-cjs/barretenberg/index.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg/index.js +136 -93
- package/dest/node-cjs/barretenberg/pedersen.test.d.ts +1 -1
- package/dest/node-cjs/barretenberg/pedersen.test.js +27 -20
- 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 +1 -1
- package/dest/node-cjs/barretenberg/poseidon.test.js +16 -16
- 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 +2 -2
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_base/index.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_base/index.js +8 -9
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.js +3 -5
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.d.ts +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.js +1 -7
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.d.ts +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.js +1 -3
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.d.ts +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.js +1 -8
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts +5 -5
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.js +20 -11
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/index.d.ts +16 -7
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/index.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/index.js +94 -26
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.js +3 -5
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.d.ts +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.js +1 -7
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.d.ts +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.js +1 -3
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.d.ts +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.js +1 -7
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts +9 -8
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/index.js +4 -3
- package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/barretenberg-threads.d.ts +1 -1
- package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/barretenberg-threads.js +1 -1
- package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/barretenberg.d.ts +1 -1
- package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/barretenberg.js +1 -1
- package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/index.d.ts +1 -1
- package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/index.js +2 -2
- package/dest/node-cjs/barretenberg_wasm/fetch_code/index.d.ts +1 -1
- package/dest/node-cjs/barretenberg_wasm/fetch_code/node/index.d.ts +1 -1
- package/dest/node-cjs/barretenberg_wasm/fetch_code/node/index.js +2 -2
- package/dest/node-cjs/barretenberg_wasm/helpers/browser/index.d.ts +2 -2
- package/dest/node-cjs/barretenberg_wasm/helpers/browser/index.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg_wasm/helpers/browser/index.js +9 -2
- package/dest/node-cjs/barretenberg_wasm/helpers/index.d.ts +1 -1
- package/dest/node-cjs/barretenberg_wasm/helpers/node/index.d.ts +5 -6
- package/dest/node-cjs/barretenberg_wasm/helpers/node/index.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg_wasm/helpers/node/index.js +15 -7
- package/dest/node-cjs/barretenberg_wasm/helpers/node/node_endpoint.d.ts +2 -2
- package/dest/node-cjs/barretenberg_wasm/helpers/node/node_endpoint.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg_wasm/helpers/node/node_endpoint.js +1 -1
- package/dest/node-cjs/barretenberg_wasm/index.d.ts +1 -1
- package/dest/node-cjs/barretenberg_wasm/index.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg_wasm/index.js +2 -3
- package/dest/node-cjs/barretenberg_wasm/index.test.d.ts +1 -1
- package/dest/node-cjs/barretenberg_wasm/index.test.js +11 -10
- 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 +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 +176 -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 +236 -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 +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 +1 -1
- package/dest/node-cjs/benchmark/index.js +2 -2
- package/dest/node-cjs/benchmark/timer.d.ts +1 -1
- package/dest/node-cjs/benchmark/timer.d.ts.map +1 -1
- package/dest/node-cjs/benchmark/timer.js +2 -1
- package/dest/node-cjs/bin/index.d.ts +3 -0
- package/dest/node-cjs/{bindgen → bin}/index.d.ts.map +1 -1
- package/dest/node-cjs/bin/index.js +13 -0
- package/dest/node-cjs/cbind/generate.d.ts +1 -1
- package/dest/node-cjs/cbind/generate.js +93 -6
- package/dest/node-cjs/cbind/generated/api_types.d.ts +1629 -230
- package/dest/node-cjs/cbind/generated/api_types.d.ts.map +1 -1
- package/dest/node-cjs/cbind/generated/api_types.js +2555 -519
- package/dest/node-cjs/cbind/generated/async.d.ts +53 -14
- package/dest/node-cjs/cbind/generated/async.d.ts.map +1 -1
- package/dest/node-cjs/cbind/generated/async.js +586 -71
- 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 +54 -15
- package/dest/node-cjs/cbind/generated/sync.d.ts.map +1 -1
- package/dest/node-cjs/cbind/generated/sync.js +548 -71
- package/dest/node-cjs/cbind/schema_compiler.d.ts +3 -5
- package/dest/node-cjs/cbind/schema_compiler.d.ts.map +1 -1
- package/dest/node-cjs/cbind/schema_compiler.js +102 -186
- package/dest/node-cjs/crs/browser/cached_net_crs.d.ts +1 -1
- package/dest/node-cjs/crs/browser/cached_net_crs.d.ts.map +1 -1
- package/dest/node-cjs/crs/browser/cached_net_crs.js +6 -1
- package/dest/node-cjs/crs/browser/index.d.ts +1 -1
- package/dest/node-cjs/crs/browser/index.js +2 -2
- package/dest/node-cjs/crs/index.d.ts +1 -1
- package/dest/node-cjs/crs/index.js +2 -2
- package/dest/node-cjs/crs/net_crs.d.ts +1 -16
- package/dest/node-cjs/crs/net_crs.d.ts.map +1 -1
- package/dest/node-cjs/crs/net_crs.js +6 -1
- package/dest/node-cjs/crs/node/index.d.ts +1 -1
- package/dest/node-cjs/crs/node/index.d.ts.map +1 -1
- package/dest/node-cjs/crs/node/index.js +11 -6
- package/dest/node-cjs/index.d.ts +6 -3
- package/dest/node-cjs/index.d.ts.map +1 -1
- package/dest/node-cjs/index.js +29 -12
- package/dest/node-cjs/proof/index.d.ts +1 -1
- package/dest/node-cjs/proof/index.js +1 -1
- package/dest/node-cjs/random/browser/index.d.ts +1 -1
- package/dest/node-cjs/random/browser/index.d.ts.map +1 -1
- package/dest/node-cjs/random/browser/index.js +1 -1
- package/dest/node-cjs/random/index.d.ts +1 -1
- package/dest/node-cjs/random/node/index.d.ts +1 -1
- package/dest/node-cjs/random/node/index.js +1 -1
- package/dest/node-cjs/retry/index.d.ts +1 -1
- package/dest/node-cjs/retry/index.js +1 -1
- package/package.json +12 -10
- package/src/barretenberg/__snapshots__/pedersen.test.ts.snap +2 -2
- package/src/barretenberg/__snapshots__/poseidon.test.ts.snap +3 -3
- package/src/barretenberg/backend.ts +165 -154
- package/src/barretenberg/blake2s.test.ts +20 -21
- package/src/barretenberg/index.ts +144 -130
- package/src/barretenberg/pedersen.test.ts +24 -17
- package/src/barretenberg/poseidon.bench.test.ts +271 -0
- package/src/barretenberg/poseidon.test.ts +15 -15
- package/src/barretenberg/testing/fields.ts +63 -0
- package/src/barretenberg_wasm/barretenberg_wasm_base/index.ts +4 -5
- package/src/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.ts +0 -2
- package/src/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.ts +0 -7
- package/src/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.ts +0 -2
- package/src/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.ts +0 -9
- package/src/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.ts +17 -9
- package/src/barretenberg_wasm/barretenberg_wasm_main/index.ts +104 -20
- package/src/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.ts +0 -2
- package/src/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.ts +0 -7
- package/src/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.ts +0 -2
- package/src/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.ts +0 -7
- package/src/barretenberg_wasm/barretenberg_wasm_thread/index.ts +3 -2
- package/src/barretenberg_wasm/helpers/browser/index.ts +8 -1
- package/src/barretenberg_wasm/helpers/node/index.ts +13 -6
- package/src/barretenberg_wasm/index.test.ts +12 -11
- package/src/barretenberg_wasm/index.ts +1 -2
- 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 +190 -0
- package/src/bb_backends/node/native_shm_async.ts +261 -0
- package/src/bb_backends/node/native_socket.ts +325 -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/bin/index.ts +14 -0
- package/src/cbind/README.md +1 -1
- package/src/cbind/generate.ts +99 -6
- package/src/cbind/generated/api_types.ts +4241 -0
- package/src/cbind/generated/async.ts +717 -0
- package/src/cbind/generated/curve_constants.ts +53 -0
- package/src/cbind/generated/sync.ts +663 -0
- package/src/cbind/schema_compiler.ts +156 -244
- package/src/crs/node/index.ts +4 -5
- package/src/index.ts +33 -1
- package/dest/browser/barretenberg_api/index.d.ts +0 -109
- package/dest/browser/barretenberg_api/index.d.ts.map +0 -1
- package/dest/browser/barretenberg_api/index.js +0 -699
- package/dest/browser/bigint-array/index.d.ts +0 -17
- package/dest/browser/bigint-array/index.d.ts.map +0 -1
- package/dest/browser/bigint-array/index.js +0 -37
- package/dest/browser/cbind/generated/native.d.ts +0 -31
- package/dest/browser/cbind/generated/native.d.ts.map +0 -1
- package/dest/browser/cbind/generated/native.js +0 -234
- package/dest/browser/log/browser/index.d.ts +0 -6
- package/dest/browser/log/browser/index.d.ts.map +0 -1
- package/dest/browser/log/browser/index.js +0 -28
- package/dest/browser/log/index.d.ts +0 -2
- package/dest/browser/log/index.d.ts.map +0 -1
- package/dest/browser/log/index.js +0 -2
- package/dest/browser/log/types.d.ts +0 -6
- package/dest/browser/log/types.d.ts.map +0 -1
- package/dest/browser/log/types.js +0 -2
- package/dest/browser/serialize/buffer_reader.d.ts +0 -28
- package/dest/browser/serialize/buffer_reader.d.ts.map +0 -1
- package/dest/browser/serialize/buffer_reader.js +0 -66
- package/dest/browser/serialize/index.d.ts +0 -4
- package/dest/browser/serialize/index.d.ts.map +0 -1
- package/dest/browser/serialize/index.js +0 -4
- package/dest/browser/serialize/output_type.d.ts +0 -11
- package/dest/browser/serialize/output_type.d.ts.map +0 -1
- package/dest/browser/serialize/output_type.js +0 -44
- package/dest/browser/serialize/serialize.d.ts +0 -53
- package/dest/browser/serialize/serialize.d.ts.map +0 -1
- package/dest/browser/serialize/serialize.js +0 -139
- package/dest/browser/types/fields.d.ts +0 -43
- package/dest/browser/types/fields.d.ts.map +0 -1
- package/dest/browser/types/fields.js +0 -102
- package/dest/browser/types/fixed_size_buffer.d.ts +0 -26
- package/dest/browser/types/fixed_size_buffer.d.ts.map +0 -1
- package/dest/browser/types/fixed_size_buffer.js +0 -51
- package/dest/browser/types/index.d.ts +0 -6
- package/dest/browser/types/index.d.ts.map +0 -1
- package/dest/browser/types/index.js +0 -6
- package/dest/browser/types/point.d.ts +0 -16
- package/dest/browser/types/point.d.ts.map +0 -1
- package/dest/browser/types/point.js +0 -31
- package/dest/browser/types/ptr.d.ts +0 -13
- package/dest/browser/types/ptr.d.ts.map +0 -1
- package/dest/browser/types/ptr.js +0 -19
- package/dest/browser/types/raw_buffer.d.ts +0 -3
- package/dest/browser/types/raw_buffer.d.ts.map +0 -1
- package/dest/browser/types/raw_buffer.js +0 -5
- package/dest/node/barretenberg/common.test.d.ts +0 -2
- package/dest/node/barretenberg/common.test.d.ts.map +0 -1
- package/dest/node/barretenberg/common.test.js +0 -20
- package/dest/node/barretenberg_api/index.d.ts +0 -109
- package/dest/node/barretenberg_api/index.d.ts.map +0 -1
- package/dest/node/barretenberg_api/index.js +0 -699
- package/dest/node/bigint-array/index.d.ts +0 -17
- package/dest/node/bigint-array/index.d.ts.map +0 -1
- package/dest/node/bigint-array/index.js +0 -37
- package/dest/node/bindgen/function_declaration.d.ts +0 -11
- package/dest/node/bindgen/function_declaration.d.ts.map +0 -1
- package/dest/node/bindgen/function_declaration.js +0 -2
- package/dest/node/bindgen/index.d.ts +0 -2
- package/dest/node/bindgen/index.js +0 -15
- package/dest/node/bindgen/mappings.d.ts +0 -4
- package/dest/node/bindgen/mappings.d.ts.map +0 -1
- package/dest/node/bindgen/mappings.js +0 -64
- package/dest/node/bindgen/rust.d.ts +0 -2
- package/dest/node/bindgen/rust.d.ts.map +0 -1
- package/dest/node/bindgen/rust.js +0 -43
- package/dest/node/bindgen/to_camel_case.d.ts +0 -2
- package/dest/node/bindgen/to_camel_case.d.ts.map +0 -1
- package/dest/node/bindgen/to_camel_case.js +0 -11
- package/dest/node/bindgen/typescript.d.ts +0 -2
- package/dest/node/bindgen/typescript.d.ts.map +0 -1
- package/dest/node/bindgen/typescript.js +0 -100
- package/dest/node/cbind/generated/native.d.ts +0 -31
- package/dest/node/cbind/generated/native.d.ts.map +0 -1
- package/dest/node/cbind/generated/native.js +0 -234
- package/dest/node/log/browser/index.d.ts +0 -6
- package/dest/node/log/browser/index.d.ts.map +0 -1
- package/dest/node/log/browser/index.js +0 -28
- package/dest/node/log/index.d.ts +0 -2
- package/dest/node/log/index.d.ts.map +0 -1
- package/dest/node/log/index.js +0 -2
- package/dest/node/log/node/index.d.ts +0 -6
- package/dest/node/log/node/index.d.ts.map +0 -1
- package/dest/node/log/node/index.js +0 -40
- package/dest/node/log/types.d.ts +0 -6
- package/dest/node/log/types.d.ts.map +0 -1
- package/dest/node/log/types.js +0 -2
- package/dest/node/main.d.ts +0 -13
- package/dest/node/main.d.ts.map +0 -1
- package/dest/node/main.js +0 -459
- package/dest/node/serialize/buffer_reader.d.ts +0 -28
- package/dest/node/serialize/buffer_reader.d.ts.map +0 -1
- package/dest/node/serialize/buffer_reader.js +0 -66
- package/dest/node/serialize/index.d.ts +0 -4
- package/dest/node/serialize/index.d.ts.map +0 -1
- package/dest/node/serialize/index.js +0 -4
- package/dest/node/serialize/output_type.d.ts +0 -11
- package/dest/node/serialize/output_type.d.ts.map +0 -1
- package/dest/node/serialize/output_type.js +0 -44
- package/dest/node/serialize/serialize.d.ts +0 -53
- package/dest/node/serialize/serialize.d.ts.map +0 -1
- package/dest/node/serialize/serialize.js +0 -139
- package/dest/node/types/fields.d.ts +0 -43
- package/dest/node/types/fields.d.ts.map +0 -1
- package/dest/node/types/fields.js +0 -102
- package/dest/node/types/fixed_size_buffer.d.ts +0 -26
- package/dest/node/types/fixed_size_buffer.d.ts.map +0 -1
- package/dest/node/types/fixed_size_buffer.js +0 -51
- package/dest/node/types/index.d.ts +0 -6
- package/dest/node/types/index.d.ts.map +0 -1
- package/dest/node/types/index.js +0 -6
- package/dest/node/types/point.d.ts +0 -16
- package/dest/node/types/point.d.ts.map +0 -1
- package/dest/node/types/point.js +0 -31
- package/dest/node/types/ptr.d.ts +0 -13
- package/dest/node/types/ptr.d.ts.map +0 -1
- package/dest/node/types/ptr.js +0 -19
- package/dest/node/types/raw_buffer.d.ts +0 -3
- package/dest/node/types/raw_buffer.d.ts.map +0 -1
- package/dest/node/types/raw_buffer.js +0 -5
- package/dest/node-cjs/barretenberg/common.test.d.ts +0 -2
- package/dest/node-cjs/barretenberg/common.test.d.ts.map +0 -1
- package/dest/node-cjs/barretenberg/common.test.js +0 -22
- package/dest/node-cjs/barretenberg_api/index.d.ts +0 -109
- package/dest/node-cjs/barretenberg_api/index.d.ts.map +0 -1
- package/dest/node-cjs/barretenberg_api/index.js +0 -704
- package/dest/node-cjs/bigint-array/index.d.ts +0 -17
- package/dest/node-cjs/bigint-array/index.d.ts.map +0 -1
- package/dest/node-cjs/bigint-array/index.js +0 -43
- package/dest/node-cjs/bindgen/function_declaration.d.ts +0 -11
- package/dest/node-cjs/bindgen/function_declaration.d.ts.map +0 -1
- package/dest/node-cjs/bindgen/function_declaration.js +0 -3
- package/dest/node-cjs/bindgen/index.d.ts +0 -2
- package/dest/node-cjs/bindgen/index.js +0 -17
- package/dest/node-cjs/bindgen/mappings.d.ts +0 -4
- package/dest/node-cjs/bindgen/mappings.d.ts.map +0 -1
- package/dest/node-cjs/bindgen/mappings.js +0 -69
- package/dest/node-cjs/bindgen/rust.d.ts +0 -2
- package/dest/node-cjs/bindgen/rust.d.ts.map +0 -1
- package/dest/node-cjs/bindgen/rust.js +0 -47
- package/dest/node-cjs/bindgen/to_camel_case.d.ts +0 -2
- package/dest/node-cjs/bindgen/to_camel_case.d.ts.map +0 -1
- package/dest/node-cjs/bindgen/to_camel_case.js +0 -14
- package/dest/node-cjs/bindgen/typescript.d.ts +0 -2
- package/dest/node-cjs/bindgen/typescript.d.ts.map +0 -1
- package/dest/node-cjs/bindgen/typescript.js +0 -104
- package/dest/node-cjs/cbind/generated/native.d.ts +0 -31
- package/dest/node-cjs/cbind/generated/native.d.ts.map +0 -1
- package/dest/node-cjs/cbind/generated/native.js +0 -238
- package/dest/node-cjs/log/browser/index.d.ts +0 -6
- package/dest/node-cjs/log/browser/index.d.ts.map +0 -1
- package/dest/node-cjs/log/browser/index.js +0 -30
- package/dest/node-cjs/log/index.d.ts +0 -2
- package/dest/node-cjs/log/index.d.ts.map +0 -1
- package/dest/node-cjs/log/index.js +0 -8
- package/dest/node-cjs/log/node/index.d.ts +0 -6
- package/dest/node-cjs/log/node/index.d.ts.map +0 -1
- package/dest/node-cjs/log/node/index.js +0 -42
- package/dest/node-cjs/log/types.d.ts +0 -6
- package/dest/node-cjs/log/types.d.ts.map +0 -1
- package/dest/node-cjs/log/types.js +0 -3
- package/dest/node-cjs/main.d.ts +0 -13
- package/dest/node-cjs/main.d.ts.map +0 -1
- package/dest/node-cjs/main.js +0 -470
- package/dest/node-cjs/serialize/buffer_reader.d.ts +0 -28
- package/dest/node-cjs/serialize/buffer_reader.d.ts.map +0 -1
- package/dest/node-cjs/serialize/buffer_reader.js +0 -70
- package/dest/node-cjs/serialize/index.d.ts +0 -4
- package/dest/node-cjs/serialize/index.d.ts.map +0 -1
- package/dest/node-cjs/serialize/index.js +0 -7
- package/dest/node-cjs/serialize/output_type.d.ts +0 -11
- package/dest/node-cjs/serialize/output_type.d.ts.map +0 -1
- package/dest/node-cjs/serialize/output_type.js +0 -51
- package/dest/node-cjs/serialize/serialize.d.ts +0 -53
- package/dest/node-cjs/serialize/serialize.d.ts.map +0 -1
- package/dest/node-cjs/serialize/serialize.js +0 -160
- package/dest/node-cjs/types/fields.d.ts +0 -43
- package/dest/node-cjs/types/fields.d.ts.map +0 -1
- package/dest/node-cjs/types/fields.js +0 -107
- package/dest/node-cjs/types/fixed_size_buffer.d.ts +0 -26
- package/dest/node-cjs/types/fixed_size_buffer.d.ts.map +0 -1
- package/dest/node-cjs/types/fixed_size_buffer.js +0 -57
- package/dest/node-cjs/types/index.d.ts +0 -6
- package/dest/node-cjs/types/index.d.ts.map +0 -1
- package/dest/node-cjs/types/index.js +0 -9
- package/dest/node-cjs/types/point.d.ts +0 -16
- package/dest/node-cjs/types/point.d.ts.map +0 -1
- package/dest/node-cjs/types/point.js +0 -35
- package/dest/node-cjs/types/ptr.d.ts +0 -13
- package/dest/node-cjs/types/ptr.d.ts.map +0 -1
- package/dest/node-cjs/types/ptr.js +0 -23
- package/dest/node-cjs/types/raw_buffer.d.ts +0 -3
- package/dest/node-cjs/types/raw_buffer.d.ts.map +0 -1
- package/dest/node-cjs/types/raw_buffer.js +0 -9
- package/src/barretenberg/common.test.ts +0 -23
- package/src/barretenberg_api/index.ts +0 -1216
- package/src/bindgen/function_declaration.ts +0 -11
- package/src/bindgen/index.ts +0 -17
- package/src/bindgen/mappings.ts +0 -67
- package/src/bindgen/rust.ts +0 -52
- package/src/bindgen/to_camel_case.ts +0 -10
- package/src/bindgen/typescript.ts +0 -116
- package/src/log/browser/index.ts +0 -35
- package/src/log/index.ts +0 -1
- package/src/log/node/index.ts +0 -52
- package/src/log/types.ts +0 -6
- package/src/main.ts +0 -534
- package/src/serialize/buffer_reader.ts +0 -85
- 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 -126
- package/src/types/fixed_size_buffer.ts +0 -59
- package/src/types/index.ts +0 -5
- package/src/types/point.ts +0 -38
- package/src/types/ptr.ts +0 -20
- package/src/types/raw_buffer.ts +0 -3
- /package/src/{bigint-array/index.ts → barretenberg/testing/bigint-buffer.ts} +0 -0
|
@@ -0,0 +1,325 @@
|
|
|
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 readline from 'readline';
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Asynchronous native backend that communicates with bb binary via Unix Domain Socket.
|
|
11
|
+
* Uses event-based I/O with a state machine to handle partial reads.
|
|
12
|
+
*
|
|
13
|
+
* Architecture: bb acts as the SERVER, TypeScript is the CLIENT
|
|
14
|
+
* - bb creates the socket and listens for connections
|
|
15
|
+
* - TypeScript waits for socket file to exist, then connects
|
|
16
|
+
*
|
|
17
|
+
* Protocol:
|
|
18
|
+
* - Request: 4-byte little-endian length + msgpack buffer
|
|
19
|
+
* - Response: 4-byte little-endian length + msgpack buffer
|
|
20
|
+
*/
|
|
21
|
+
export class BarretenbergNativeSocketAsyncBackend implements IMsgpackBackendAsync {
|
|
22
|
+
private process: ChildProcess;
|
|
23
|
+
private socket: net.Socket | null = null;
|
|
24
|
+
private socketPath: string;
|
|
25
|
+
private connectionPromise: Promise<void>;
|
|
26
|
+
private connectionTimeout: NodeJS.Timeout | null = null;
|
|
27
|
+
|
|
28
|
+
// Queue of pending callbacks for pipelined requests
|
|
29
|
+
// Responses come back in FIFO order, so we match them with queued callbacks
|
|
30
|
+
private pendingCallbacks: Array<{
|
|
31
|
+
resolve: (data: Uint8Array) => void;
|
|
32
|
+
reject: (error: Error) => void;
|
|
33
|
+
}> = [];
|
|
34
|
+
|
|
35
|
+
// State machine for reading responses
|
|
36
|
+
private readingLength: boolean = true;
|
|
37
|
+
private lengthBuffer: Buffer = Buffer.alloc(4);
|
|
38
|
+
private lengthBytesRead: number = 0;
|
|
39
|
+
private responseLength: number = 0;
|
|
40
|
+
private responseBuffer: Buffer | null = null;
|
|
41
|
+
private responseBytesRead: number = 0;
|
|
42
|
+
|
|
43
|
+
constructor(bbBinaryPath: string, threads?: number, logger?: (msg: string) => void) {
|
|
44
|
+
// Create a unique socket path in temp directory
|
|
45
|
+
this.socketPath = path.join(os.tmpdir(), `bb-${process.pid}-${Date.now()}.sock`);
|
|
46
|
+
|
|
47
|
+
// Ensure socket path doesn't already exist (cleanup from previous crashes)
|
|
48
|
+
if (fs.existsSync(this.socketPath)) {
|
|
49
|
+
fs.unlinkSync(this.socketPath);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
let connectionResolve: (() => void) | null = null;
|
|
53
|
+
let connectionReject: ((error: Error) => void) | null = null;
|
|
54
|
+
|
|
55
|
+
this.connectionPromise = new Promise<void>((resolve, reject) => {
|
|
56
|
+
connectionResolve = resolve;
|
|
57
|
+
connectionReject = reject;
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
// If threads not set use num cpu cores, max 16.
|
|
61
|
+
const hwc = threads ? threads.toString() : Math.min(16, os.cpus().length).toString();
|
|
62
|
+
const env = { ...process.env, HARDWARE_CONCURRENCY: hwc };
|
|
63
|
+
|
|
64
|
+
// Spawn bb process - it will create the socket server
|
|
65
|
+
const args = ['msgpack', 'run', '--input', this.socketPath];
|
|
66
|
+
this.process = spawn(bbBinaryPath, args, {
|
|
67
|
+
stdio: ['ignore', logger ? 'pipe' : 'ignore', logger ? 'pipe' : 'ignore'],
|
|
68
|
+
env,
|
|
69
|
+
});
|
|
70
|
+
|
|
71
|
+
// Disconnect from event loop so process can exit without waiting for bb
|
|
72
|
+
// The bb process has parent death monitoring (prctl on Linux, kqueue on macOS)
|
|
73
|
+
// so it will automatically exit when Node.js exits
|
|
74
|
+
this.process.unref();
|
|
75
|
+
|
|
76
|
+
if (logger) {
|
|
77
|
+
logger("Logger attached to bb process. DON'T FORGET TO DESTROY THE BACKEND to allow Node.js to exit.");
|
|
78
|
+
readline.createInterface({ input: this.process.stdout! }).on('line', logger);
|
|
79
|
+
readline.createInterface({ input: this.process.stderr! }).on('line', logger);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
this.process.on('error', err => {
|
|
83
|
+
if (connectionReject) {
|
|
84
|
+
connectionReject(new Error(`Native backend process error: ${err.message}`));
|
|
85
|
+
connectionReject = null;
|
|
86
|
+
connectionResolve = null;
|
|
87
|
+
}
|
|
88
|
+
// Reject all pending callbacks
|
|
89
|
+
const error = new Error(`Native backend process error: ${err.message}`);
|
|
90
|
+
for (const callback of this.pendingCallbacks) {
|
|
91
|
+
callback.reject(error);
|
|
92
|
+
}
|
|
93
|
+
this.pendingCallbacks = [];
|
|
94
|
+
});
|
|
95
|
+
|
|
96
|
+
this.process.on('exit', (code, signal) => {
|
|
97
|
+
const errorMsg =
|
|
98
|
+
code !== null && code !== 0
|
|
99
|
+
? `Native backend process exited with code ${code}`
|
|
100
|
+
: signal && signal !== 'SIGTERM'
|
|
101
|
+
? `Native backend process killed with signal ${signal}`
|
|
102
|
+
: 'Native backend process exited unexpectedly';
|
|
103
|
+
|
|
104
|
+
if (connectionReject) {
|
|
105
|
+
connectionReject(new Error(errorMsg));
|
|
106
|
+
connectionReject = null;
|
|
107
|
+
connectionResolve = null;
|
|
108
|
+
}
|
|
109
|
+
// Reject all pending callbacks
|
|
110
|
+
const error = new Error(errorMsg);
|
|
111
|
+
for (const callback of this.pendingCallbacks) {
|
|
112
|
+
callback.reject(error);
|
|
113
|
+
}
|
|
114
|
+
this.pendingCallbacks = [];
|
|
115
|
+
});
|
|
116
|
+
|
|
117
|
+
// Wait for bb to create socket file, then connect
|
|
118
|
+
this.waitForSocketAndConnect()
|
|
119
|
+
.then(() => {
|
|
120
|
+
if (connectionResolve) {
|
|
121
|
+
connectionResolve();
|
|
122
|
+
connectionResolve = null;
|
|
123
|
+
connectionReject = null;
|
|
124
|
+
}
|
|
125
|
+
})
|
|
126
|
+
.catch(err => {
|
|
127
|
+
if (connectionReject) {
|
|
128
|
+
connectionReject(err);
|
|
129
|
+
connectionReject = null;
|
|
130
|
+
connectionResolve = null;
|
|
131
|
+
}
|
|
132
|
+
});
|
|
133
|
+
|
|
134
|
+
// Set a timeout for connection
|
|
135
|
+
this.connectionTimeout = setTimeout(() => {
|
|
136
|
+
if (connectionReject) {
|
|
137
|
+
connectionReject(new Error('Timeout waiting for bb socket connection'));
|
|
138
|
+
connectionReject = null;
|
|
139
|
+
connectionResolve = null;
|
|
140
|
+
this.cleanup();
|
|
141
|
+
}
|
|
142
|
+
}, 5000);
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
private async waitForSocketAndConnect(): Promise<void> {
|
|
146
|
+
// Poll for socket file to exist (bb is creating it)
|
|
147
|
+
const startTime = Date.now();
|
|
148
|
+
while (!fs.existsSync(this.socketPath)) {
|
|
149
|
+
if (Date.now() - startTime > 5000) {
|
|
150
|
+
throw new Error('Timeout waiting for bb to create socket file');
|
|
151
|
+
}
|
|
152
|
+
await new Promise(resolve => setTimeout(resolve, 50));
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
// Additional check: ensure it's actually a socket
|
|
156
|
+
const stats = fs.statSync(this.socketPath);
|
|
157
|
+
if (!stats.isSocket()) {
|
|
158
|
+
throw new Error(`Path exists but is not a socket: ${this.socketPath}`);
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
// Connect to bb's socket server as a client
|
|
162
|
+
return new Promise<void>((resolve, reject) => {
|
|
163
|
+
this.socket = net.connect(this.socketPath);
|
|
164
|
+
|
|
165
|
+
// Disable Nagle's algorithm for lower latency
|
|
166
|
+
this.socket.setNoDelay(true);
|
|
167
|
+
|
|
168
|
+
// Set up event handlers
|
|
169
|
+
this.socket.once('connect', () => {
|
|
170
|
+
// Socket starts referenced - will be unreferenced when no callbacks pending
|
|
171
|
+
|
|
172
|
+
// Clear connection timeout on successful connection
|
|
173
|
+
if (this.connectionTimeout) {
|
|
174
|
+
clearTimeout(this.connectionTimeout);
|
|
175
|
+
this.connectionTimeout = null;
|
|
176
|
+
}
|
|
177
|
+
resolve();
|
|
178
|
+
});
|
|
179
|
+
|
|
180
|
+
this.socket.once('error', err => {
|
|
181
|
+
reject(new Error(`Failed to connect to bb socket: ${err.message}`));
|
|
182
|
+
});
|
|
183
|
+
|
|
184
|
+
// Set up data handler after connection is established
|
|
185
|
+
this.socket.on('data', (chunk: Buffer) => {
|
|
186
|
+
this.handleData(chunk);
|
|
187
|
+
});
|
|
188
|
+
|
|
189
|
+
// Handle ongoing errors after initial connection
|
|
190
|
+
this.socket.on('error', err => {
|
|
191
|
+
// Reject all pending callbacks
|
|
192
|
+
const error = new Error(`Socket error: ${err.message}`);
|
|
193
|
+
for (const callback of this.pendingCallbacks) {
|
|
194
|
+
callback.reject(error);
|
|
195
|
+
}
|
|
196
|
+
this.pendingCallbacks = [];
|
|
197
|
+
});
|
|
198
|
+
|
|
199
|
+
this.socket.on('end', () => {
|
|
200
|
+
// Reject all pending callbacks
|
|
201
|
+
const error = new Error('Socket connection ended unexpectedly');
|
|
202
|
+
for (const callback of this.pendingCallbacks) {
|
|
203
|
+
callback.reject(error);
|
|
204
|
+
}
|
|
205
|
+
this.pendingCallbacks = [];
|
|
206
|
+
});
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
private handleData(chunk: Buffer): void {
|
|
211
|
+
let offset = 0;
|
|
212
|
+
|
|
213
|
+
while (offset < chunk.length) {
|
|
214
|
+
if (this.readingLength) {
|
|
215
|
+
// Reading 4-byte length prefix
|
|
216
|
+
const bytesToCopy = Math.min(4 - this.lengthBytesRead, chunk.length - offset);
|
|
217
|
+
chunk.copy(this.lengthBuffer, this.lengthBytesRead, offset, offset + bytesToCopy);
|
|
218
|
+
this.lengthBytesRead += bytesToCopy;
|
|
219
|
+
offset += bytesToCopy;
|
|
220
|
+
|
|
221
|
+
if (this.lengthBytesRead === 4) {
|
|
222
|
+
// Length is complete, switch to reading data
|
|
223
|
+
this.responseLength = this.lengthBuffer.readUInt32LE(0);
|
|
224
|
+
this.responseBuffer = Buffer.alloc(this.responseLength);
|
|
225
|
+
this.responseBytesRead = 0;
|
|
226
|
+
this.readingLength = false;
|
|
227
|
+
}
|
|
228
|
+
} else {
|
|
229
|
+
// Reading response data
|
|
230
|
+
const bytesToCopy = Math.min(this.responseLength - this.responseBytesRead, chunk.length - offset);
|
|
231
|
+
chunk.copy(this.responseBuffer!, this.responseBytesRead, offset, offset + bytesToCopy);
|
|
232
|
+
this.responseBytesRead += bytesToCopy;
|
|
233
|
+
offset += bytesToCopy;
|
|
234
|
+
|
|
235
|
+
if (this.responseBytesRead === this.responseLength) {
|
|
236
|
+
// Response is complete - dequeue the next pending callback (FIFO)
|
|
237
|
+
const callback = this.pendingCallbacks.shift();
|
|
238
|
+
if (callback) {
|
|
239
|
+
callback.resolve(new Uint8Array(this.responseBuffer!));
|
|
240
|
+
} else {
|
|
241
|
+
// This shouldn't happen - response without a pending request
|
|
242
|
+
console.warn('Received response but no pending callback');
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
// If no more pending callbacks, unref socket to allow process to exit
|
|
246
|
+
if (this.pendingCallbacks.length === 0 && this.socket) {
|
|
247
|
+
this.socket.unref();
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
// Reset state for next message
|
|
251
|
+
this.readingLength = true;
|
|
252
|
+
this.lengthBytesRead = 0;
|
|
253
|
+
this.responseLength = 0;
|
|
254
|
+
this.responseBuffer = null;
|
|
255
|
+
this.responseBytesRead = 0;
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
async call(inputBuffer: Uint8Array): Promise<Uint8Array> {
|
|
262
|
+
// Wait for connection to be established
|
|
263
|
+
await this.connectionPromise;
|
|
264
|
+
|
|
265
|
+
if (!this.socket) {
|
|
266
|
+
throw new Error('Socket not connected');
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
return new Promise((resolve, reject) => {
|
|
270
|
+
// If this is the first pending callback, ref the socket to keep event loop alive
|
|
271
|
+
if (this.pendingCallbacks.length === 0) {
|
|
272
|
+
this.socket!.ref();
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
// Enqueue this promise's callbacks (FIFO order)
|
|
276
|
+
this.pendingCallbacks.push({ resolve, reject });
|
|
277
|
+
|
|
278
|
+
// Write request: 4-byte little-endian length + msgpack data
|
|
279
|
+
// Socket will buffer these if needed, maintaining order
|
|
280
|
+
const lengthBuf = Buffer.alloc(4);
|
|
281
|
+
lengthBuf.writeUInt32LE(inputBuffer.length, 0);
|
|
282
|
+
this.socket!.write(lengthBuf);
|
|
283
|
+
this.socket!.write(inputBuffer);
|
|
284
|
+
});
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
private cleanup(): void {
|
|
288
|
+
// Reject any remaining pending callbacks
|
|
289
|
+
const error = new Error('Backend connection closed');
|
|
290
|
+
for (const callback of this.pendingCallbacks) {
|
|
291
|
+
callback.reject(error);
|
|
292
|
+
}
|
|
293
|
+
this.pendingCallbacks = [];
|
|
294
|
+
|
|
295
|
+
try {
|
|
296
|
+
// Remove all event listeners to prevent hanging
|
|
297
|
+
if (this.socket) {
|
|
298
|
+
this.socket.removeAllListeners();
|
|
299
|
+
// Unref so socket doesn't keep event loop alive
|
|
300
|
+
// this.socket.unref();
|
|
301
|
+
this.socket.destroy();
|
|
302
|
+
}
|
|
303
|
+
} catch (e) {
|
|
304
|
+
// Ignore errors during cleanup
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
// Clear connection timeout if still pending
|
|
308
|
+
if (this.connectionTimeout) {
|
|
309
|
+
clearTimeout(this.connectionTimeout);
|
|
310
|
+
this.connectionTimeout = null;
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
// Remove process event listeners and unref to not block event loop
|
|
314
|
+
this.process.removeAllListeners();
|
|
315
|
+
// this.process.unref();
|
|
316
|
+
|
|
317
|
+
// Don't try to unlink socket - bb owns it and will clean it up
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
async destroy(): Promise<void> {
|
|
321
|
+
this.cleanup();
|
|
322
|
+
this.process.kill('SIGTERM');
|
|
323
|
+
this.process.removeAllListeners();
|
|
324
|
+
}
|
|
325
|
+
}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
import * as path from 'path';
|
|
2
|
+
import * as fs from 'fs';
|
|
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 path.dirname(fileURLToPath(import.meta.url));
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Find package root by climbing directory tree until package.json is found.
|
|
17
|
+
* @param startDir Starting directory to search from
|
|
18
|
+
* @returns Absolute path to package root, or null if not found
|
|
19
|
+
*/
|
|
20
|
+
export function findPackageRoot(): string | null {
|
|
21
|
+
let currentDir = getCurrentDir();
|
|
22
|
+
const root = path.parse(currentDir).root;
|
|
23
|
+
|
|
24
|
+
while (currentDir !== root) {
|
|
25
|
+
const packageJsonPath = path.join(currentDir, 'package.json');
|
|
26
|
+
if (fs.existsSync(packageJsonPath)) {
|
|
27
|
+
// Check if this is the actual package root by verifying it has a 'build' directory
|
|
28
|
+
// This ensures we skip intermediate package.json files (e.g., in dest/node-cjs/)
|
|
29
|
+
const buildDir = path.join(currentDir, 'build');
|
|
30
|
+
if (fs.existsSync(buildDir)) {
|
|
31
|
+
return currentDir;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
currentDir = path.dirname(currentDir);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
return null;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Supported platform/architecture combinations.
|
|
42
|
+
*/
|
|
43
|
+
export type Platform = 'x86_64-linux' | 'x86_64-darwin' | 'aarch64-linux' | 'aarch64-darwin';
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Map from Platform to build directory name.
|
|
47
|
+
*/
|
|
48
|
+
const PLATFORM_TO_BUILD_DIR: Record<Platform, string> = {
|
|
49
|
+
'x86_64-linux': 'amd64-linux',
|
|
50
|
+
'x86_64-darwin': 'amd64-macos',
|
|
51
|
+
'aarch64-linux': 'arm64-linux',
|
|
52
|
+
'aarch64-darwin': 'arm64-macos',
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Detect the current platform and architecture.
|
|
57
|
+
* @returns Platform identifier or null if unsupported
|
|
58
|
+
*/
|
|
59
|
+
export function detectPlatform(): Platform | null {
|
|
60
|
+
const arch = process.arch; // 'x64' | 'arm64' | ...
|
|
61
|
+
const platform = process.platform; // 'linux' | 'darwin' | 'win32' | ...
|
|
62
|
+
|
|
63
|
+
if (arch === 'x64' && platform === 'linux') {
|
|
64
|
+
return 'x86_64-linux';
|
|
65
|
+
}
|
|
66
|
+
if (arch === 'x64' && platform === 'darwin') {
|
|
67
|
+
return 'x86_64-darwin';
|
|
68
|
+
}
|
|
69
|
+
if (arch === 'arm64' && platform === 'linux') {
|
|
70
|
+
return 'aarch64-linux';
|
|
71
|
+
}
|
|
72
|
+
if (arch === 'arm64' && platform === 'darwin') {
|
|
73
|
+
return 'aarch64-darwin';
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
return null;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Find the bb binary for the native backend.
|
|
81
|
+
* @param customPath Optional custom path to bb binary (overrides automatic detection)
|
|
82
|
+
* @returns Absolute path to bb binary, or null if not found
|
|
83
|
+
*
|
|
84
|
+
* Search order:
|
|
85
|
+
* 1. If customPath is provided and exists, return it
|
|
86
|
+
* 2. Otherwise search in <package-root>/build/<platform>/bb
|
|
87
|
+
*/
|
|
88
|
+
export function findBbBinary(customPath?: string): string | null {
|
|
89
|
+
// Check custom path first if provided
|
|
90
|
+
if (customPath) {
|
|
91
|
+
if (fs.existsSync(customPath)) {
|
|
92
|
+
return path.resolve(customPath);
|
|
93
|
+
}
|
|
94
|
+
// Custom path provided but doesn't exist - return null
|
|
95
|
+
return null;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
// Automatic detection
|
|
99
|
+
const platform = detectPlatform();
|
|
100
|
+
if (!platform) {
|
|
101
|
+
return null;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
const buildDir = PLATFORM_TO_BUILD_DIR[platform];
|
|
105
|
+
|
|
106
|
+
// Get package root by climbing directory tree to find package.json
|
|
107
|
+
const packageRoot = findPackageRoot();
|
|
108
|
+
|
|
109
|
+
if (!packageRoot) {
|
|
110
|
+
return null;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
// Check in build/<platform>/bb
|
|
114
|
+
const bbPath = path.join(packageRoot, 'build', buildDir, 'bb');
|
|
115
|
+
|
|
116
|
+
if (fs.existsSync(bbPath)) {
|
|
117
|
+
return bbPath;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
return null;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
export function findNapiBinary(customPath?: string): string | null {
|
|
124
|
+
// Check custom path first if provided
|
|
125
|
+
if (customPath) {
|
|
126
|
+
if (fs.existsSync(customPath)) {
|
|
127
|
+
return path.resolve(customPath);
|
|
128
|
+
}
|
|
129
|
+
// Custom path provided but doesn't exist - return null
|
|
130
|
+
return null;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
// Automatic detection
|
|
134
|
+
const platform = detectPlatform();
|
|
135
|
+
if (!platform) {
|
|
136
|
+
return null;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
const buildDir = PLATFORM_TO_BUILD_DIR[platform];
|
|
140
|
+
|
|
141
|
+
// Get package root by climbing directory tree to find package.json
|
|
142
|
+
const packageRoot = findPackageRoot();
|
|
143
|
+
|
|
144
|
+
if (!packageRoot) {
|
|
145
|
+
return null;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
// Check in build/<platform>/nodejs_module.node
|
|
149
|
+
const bbPath = path.join(packageRoot, 'build', buildDir, 'nodejs_module.node');
|
|
150
|
+
|
|
151
|
+
if (fs.existsSync(bbPath)) {
|
|
152
|
+
return bbPath;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
return null;
|
|
156
|
+
}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { BarretenbergWasmMain, BarretenbergWasmMainWorker } from '../barretenberg_wasm/barretenberg_wasm_main/index.js';
|
|
2
|
+
import { fetchModuleAndThreads } from '../barretenberg_wasm/index.js';
|
|
3
|
+
import { IMsgpackBackendSync, IMsgpackBackendAsync } from './interface.js';
|
|
4
|
+
import { createMainWorker } from '../barretenberg_wasm/barretenberg_wasm_main/factory/node/index.js';
|
|
5
|
+
import { getRemoteBarretenbergWasm } from '../barretenberg_wasm/helpers/index.js';
|
|
6
|
+
import { proxy } from 'comlink';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Synchronous WASM backend that wraps BarretenbergWasmMain.
|
|
10
|
+
* Encapsulates all WASM initialization and memory management.
|
|
11
|
+
*/
|
|
12
|
+
export class BarretenbergWasmSyncBackend implements IMsgpackBackendSync {
|
|
13
|
+
private constructor(private wasm: BarretenbergWasmMain) {}
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Create and initialize a synchronous WASM backend.
|
|
17
|
+
* @param wasmPath Optional path to WASM files
|
|
18
|
+
* @param logger Optional logging function
|
|
19
|
+
*/
|
|
20
|
+
static async new(wasmPath?: string, logger?: (msg: string) => void): Promise<BarretenbergWasmSyncBackend> {
|
|
21
|
+
const wasm = new BarretenbergWasmMain();
|
|
22
|
+
const { module, threads } = await fetchModuleAndThreads(1, wasmPath, logger);
|
|
23
|
+
await wasm.init(module, threads, logger);
|
|
24
|
+
return new BarretenbergWasmSyncBackend(wasm);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
call(inputBuffer: Uint8Array): Uint8Array {
|
|
28
|
+
return this.wasm.cbindCall('bbapi', inputBuffer);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
destroy(): void {
|
|
32
|
+
// BarretenbergWasmMain has async destroy, but for sync API we call it without awaiting
|
|
33
|
+
// This is consistent with the synchronous semantics expected by the caller
|
|
34
|
+
void this.wasm.destroy();
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Asynchronous WASM backend that supports both direct WASM and worker-based modes.
|
|
40
|
+
*
|
|
41
|
+
* Worker mode (default): Runs WASM on a worker thread to avoid blocking the main thread. Used in browsers.
|
|
42
|
+
* Direct mode: Runs WASM directly on the calling thread. Used by node.js for better performance.
|
|
43
|
+
*/
|
|
44
|
+
export class BarretenbergWasmAsyncBackend implements IMsgpackBackendAsync {
|
|
45
|
+
private constructor(
|
|
46
|
+
private wasm: BarretenbergWasmMain | BarretenbergWasmMainWorker,
|
|
47
|
+
private worker?: any,
|
|
48
|
+
) {}
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Create and initialize an asynchronous WASM backend.
|
|
52
|
+
* @param options.threads Number of threads (defaults to hardware max, up to 32 for parallel proving)
|
|
53
|
+
* @param options.wasmPath Optional path to WASM files
|
|
54
|
+
* @param options.logger Optional logging function
|
|
55
|
+
* @param options.memory Optional initial and maximum memory configuration
|
|
56
|
+
* @param options.useWorker Run on worker thread (default: true for browser safety)
|
|
57
|
+
*/
|
|
58
|
+
static async new(
|
|
59
|
+
options: {
|
|
60
|
+
threads?: number;
|
|
61
|
+
wasmPath?: string;
|
|
62
|
+
logger?: (msg: string) => void;
|
|
63
|
+
memory?: { initial?: number; maximum?: number };
|
|
64
|
+
useWorker?: boolean;
|
|
65
|
+
} = {},
|
|
66
|
+
): Promise<BarretenbergWasmAsyncBackend> {
|
|
67
|
+
// Default to worker mode for browser safety
|
|
68
|
+
const useWorker = options.useWorker ?? true;
|
|
69
|
+
|
|
70
|
+
if (useWorker) {
|
|
71
|
+
// Worker-based mode: runs on worker thread (browser-safe)
|
|
72
|
+
const worker = await createMainWorker();
|
|
73
|
+
const wasm = getRemoteBarretenbergWasm<BarretenbergWasmMainWorker>(worker);
|
|
74
|
+
const { module, threads } = await fetchModuleAndThreads(options.threads, options.wasmPath, options.logger);
|
|
75
|
+
await wasm.init(
|
|
76
|
+
module,
|
|
77
|
+
threads,
|
|
78
|
+
proxy(options.logger ?? (() => {})),
|
|
79
|
+
options.memory?.initial,
|
|
80
|
+
options.memory?.maximum,
|
|
81
|
+
);
|
|
82
|
+
return new BarretenbergWasmAsyncBackend(wasm, worker);
|
|
83
|
+
} else {
|
|
84
|
+
// Direct mode: runs on calling thread (faster but blocks thread)
|
|
85
|
+
const wasm = new BarretenbergWasmMain();
|
|
86
|
+
const { module, threads } = await fetchModuleAndThreads(options.threads, options.wasmPath, options.logger);
|
|
87
|
+
await wasm.init(module, threads, options.logger, options.memory?.initial, options.memory?.maximum);
|
|
88
|
+
return new BarretenbergWasmAsyncBackend(wasm);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
async call(inputBuffer: Uint8Array): Promise<Uint8Array> {
|
|
93
|
+
return this.wasm.cbindCall('bbapi', inputBuffer);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
async destroy(): Promise<void> {
|
|
97
|
+
await this.wasm.destroy();
|
|
98
|
+
if (this.worker) {
|
|
99
|
+
await this.worker.terminate();
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { BarretenbergWasmSyncBackend } from '../bb_backends/wasm.js';
|
|
2
|
+
import { SyncApi } from '../cbind/generated/sync.js';
|
|
3
|
+
import { BBApiException } from '../bbapi_exception.js';
|
|
4
|
+
|
|
5
|
+
describe('BBApi Exception Handling from bb.js', () => {
|
|
6
|
+
let backend: BarretenbergWasmSyncBackend;
|
|
7
|
+
let api: SyncApi;
|
|
8
|
+
|
|
9
|
+
beforeAll(async () => {
|
|
10
|
+
backend = await BarretenbergWasmSyncBackend.new();
|
|
11
|
+
api = new SyncApi(backend);
|
|
12
|
+
}, 60000);
|
|
13
|
+
|
|
14
|
+
afterAll(() => {
|
|
15
|
+
backend.destroy();
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
it('should catch CRS initialization exceptions from WASM', () => {
|
|
19
|
+
// Create an SrsInitSrs command with invalid data that will cause an exception in C++
|
|
20
|
+
// We pass buffers that are too small, which will cause validation to fail
|
|
21
|
+
const invalidCommand = {
|
|
22
|
+
numPoints: 100, // Request 100 points (requires 6400 bytes)
|
|
23
|
+
pointsBuf: new Uint8Array(10), // Only 10 bytes - will cause exception
|
|
24
|
+
g2Point: new Uint8Array(10), // Only 10 bytes (needs 128) - will cause exception
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
// In WASM builds, throw_or_abort calls abort directly which throws a generic Error
|
|
28
|
+
// In native builds with exceptions, our try-catch in bbapi converts it to ErrorResponse
|
|
29
|
+
// This test verifies that errors are catchable from bb.js (even if as generic Error in WASM)
|
|
30
|
+
expect(() => {
|
|
31
|
+
api.srsInitSrs(invalidCommand);
|
|
32
|
+
}).toThrow();
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
it('should return error message from caught exception', () => {
|
|
36
|
+
const invalidCommand = {
|
|
37
|
+
numPoints: 100,
|
|
38
|
+
pointsBuf: new Uint8Array(10),
|
|
39
|
+
g2Point: new Uint8Array(10),
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
try {
|
|
43
|
+
api.srsInitSrs(invalidCommand);
|
|
44
|
+
fail('Expected exception to be thrown');
|
|
45
|
+
} catch (error) {
|
|
46
|
+
// Error is catchable and contains a useful message
|
|
47
|
+
expect(error).toBeInstanceOf(Error);
|
|
48
|
+
expect((error as Error).message).toBeTruthy();
|
|
49
|
+
expect((error as Error).message.length).toBeGreaterThan(0);
|
|
50
|
+
expect((error as Error).message).toContain('g1_identity');
|
|
51
|
+
console.log('Successfully caught exception from bb.js with message:', (error as Error).message);
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
});
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Exception thrown when barretenberg API operations fail
|
|
3
|
+
*/
|
|
4
|
+
export class BBApiException extends Error {
|
|
5
|
+
constructor(message: string) {
|
|
6
|
+
super(message);
|
|
7
|
+
this.name = 'BBApiException';
|
|
8
|
+
// Maintains proper stack trace for where our error was thrown (only available on V8)
|
|
9
|
+
if (Error.captureStackTrace) {
|
|
10
|
+
Error.captureStackTrace(this, BBApiException);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
}
|
package/src/bin/index.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { findBbBinary } from '../bb_backends/node/platform.js';
|
|
3
|
+
import { spawnSync } from 'node:child_process';
|
|
4
|
+
|
|
5
|
+
const bin = findBbBinary();
|
|
6
|
+
|
|
7
|
+
if (!bin) {
|
|
8
|
+
console.error('Could not find bb binary. Please ensure it is built and accessible.');
|
|
9
|
+
process.exit(1);
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
const result = spawnSync(bin, process.argv.slice(2), { stdio: 'inherit' });
|
|
13
|
+
|
|
14
|
+
process.exit(result.status ?? 1);
|
package/src/cbind/README.md
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
Derives bindings from the reported msgpack schema from bb.
|