@aztec/bb.js 0.0.1-alpha.7 → 0.0.1-commit.5daedc8
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,312 @@
|
|
|
1
|
+
import { Barretenberg } from './index.js';
|
|
2
|
+
import { ProofData, uint8ArrayToHex, hexToUint8Array } from '../proof/index.js';
|
|
3
|
+
import { fromChonkProof, toChonkProof } from '../cbind/generated/api_types.js';
|
|
4
|
+
import { ungzip } from 'pako';
|
|
5
|
+
import { Decoder, Encoder } from 'msgpackr';
|
|
6
|
+
|
|
7
|
+
export class AztecClientBackendError extends Error {
|
|
8
|
+
constructor(message: string) {
|
|
9
|
+
super(message);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Options for the UltraHonkBackend.
|
|
15
|
+
*/
|
|
16
|
+
export type UltraHonkBackendOptions = {
|
|
17
|
+
/** Selecting this option will use the keccak hash function instead of poseidon
|
|
18
|
+
* when generating challenges in the proof.
|
|
19
|
+
* Use this when you want to verify the created proof on an EVM chain.
|
|
20
|
+
*/
|
|
21
|
+
keccak?: boolean;
|
|
22
|
+
/** Selecting this option will use the keccak hash function instead of poseidon
|
|
23
|
+
* when generating challenges in the proof.
|
|
24
|
+
* Use this when you want to verify the created proof on an EVM chain.
|
|
25
|
+
*/
|
|
26
|
+
keccakZK?: boolean;
|
|
27
|
+
/** Selecting this option will use the poseidon/stark252 hash function instead of poseidon
|
|
28
|
+
* when generating challenges in the proof.
|
|
29
|
+
* Use this when you want to verify the created proof on an Starknet chain with Garaga.
|
|
30
|
+
*/
|
|
31
|
+
starknet?: boolean;
|
|
32
|
+
/** Selecting this option will use the poseidon/stark252 hash function instead of poseidon
|
|
33
|
+
* when generating challenges in the proof.
|
|
34
|
+
* Use this when you want to verify the created proof on an Starknet chain with Garaga.
|
|
35
|
+
*/
|
|
36
|
+
starknetZK?: boolean;
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
function getProofSettingsFromOptions(options?: UltraHonkBackendOptions): {
|
|
40
|
+
ipaAccumulation: boolean;
|
|
41
|
+
oracleHashType: string;
|
|
42
|
+
disableZk: boolean;
|
|
43
|
+
optimizedSolidityVerifier: boolean;
|
|
44
|
+
} {
|
|
45
|
+
return {
|
|
46
|
+
ipaAccumulation: false,
|
|
47
|
+
oracleHashType:
|
|
48
|
+
options?.keccak || options?.keccakZK
|
|
49
|
+
? 'keccak'
|
|
50
|
+
: options?.starknet || options?.starknetZK
|
|
51
|
+
? 'starknet'
|
|
52
|
+
: 'poseidon2',
|
|
53
|
+
// TODO no current way to target non-zk poseidon2 hash
|
|
54
|
+
disableZk: options?.keccak || options?.starknet ? true : false,
|
|
55
|
+
optimizedSolidityVerifier: false,
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
export class UltraHonkVerifierBackend {
|
|
60
|
+
constructor(private api: Barretenberg) {}
|
|
61
|
+
|
|
62
|
+
async verifyProof(
|
|
63
|
+
proofData: ProofData & { verificationKey: Uint8Array },
|
|
64
|
+
options?: UltraHonkBackendOptions,
|
|
65
|
+
): Promise<boolean> {
|
|
66
|
+
const proofFrs: Uint8Array[] = [];
|
|
67
|
+
for (let i = 0; i < proofData.proof.length; i += 32) {
|
|
68
|
+
proofFrs.push(proofData.proof.slice(i, i + 32));
|
|
69
|
+
}
|
|
70
|
+
const { verified } = await this.api.circuitVerify({
|
|
71
|
+
verificationKey: proofData.verificationKey,
|
|
72
|
+
publicInputs: proofData.publicInputs.map(hexToUint8Array),
|
|
73
|
+
proof: proofFrs,
|
|
74
|
+
settings: getProofSettingsFromOptions(options),
|
|
75
|
+
});
|
|
76
|
+
return verified;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
export class UltraHonkBackend {
|
|
81
|
+
// These type assertions are used so that we don't
|
|
82
|
+
// have to initialize `api` in the constructor.
|
|
83
|
+
// These are initialized asynchronously in the `init` function,
|
|
84
|
+
// constructors cannot be asynchronous which is why we do this.
|
|
85
|
+
|
|
86
|
+
private acirUncompressedBytecode: Uint8Array;
|
|
87
|
+
|
|
88
|
+
constructor(
|
|
89
|
+
acirBytecode: string,
|
|
90
|
+
private api: Barretenberg,
|
|
91
|
+
) {
|
|
92
|
+
this.acirUncompressedBytecode = acirToUint8Array(acirBytecode);
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
async generateProof(compressedWitness: Uint8Array, options?: UltraHonkBackendOptions): Promise<ProofData> {
|
|
96
|
+
const witness = ungzip(compressedWitness);
|
|
97
|
+
const { proof, publicInputs } = await this.api.circuitProve({
|
|
98
|
+
witness,
|
|
99
|
+
circuit: {
|
|
100
|
+
name: 'circuit',
|
|
101
|
+
bytecode: this.acirUncompressedBytecode,
|
|
102
|
+
verificationKey: new Uint8Array(0), // Empty VK - lower performance.
|
|
103
|
+
},
|
|
104
|
+
settings: getProofSettingsFromOptions(options),
|
|
105
|
+
});
|
|
106
|
+
console.log(`Generated proof for circuit with ${publicInputs.length} public inputs and ${proof.length} fields.`);
|
|
107
|
+
|
|
108
|
+
// We return ProofData as a flat buffer and an array of strings to match the current ProofData class.
|
|
109
|
+
const flatProof = new Uint8Array(proof.length * 32);
|
|
110
|
+
proof.forEach((fr, i) => {
|
|
111
|
+
flatProof.set(fr, i * 32);
|
|
112
|
+
});
|
|
113
|
+
|
|
114
|
+
return { proof: flatProof, publicInputs: publicInputs.map(uint8ArrayToHex) };
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
async verifyProof(proofData: ProofData, options?: UltraHonkBackendOptions): Promise<boolean> {
|
|
118
|
+
const proofFrs: Uint8Array[] = [];
|
|
119
|
+
for (let i = 0; i < proofData.proof.length; i += 32) {
|
|
120
|
+
proofFrs.push(proofData.proof.slice(i, i + 32));
|
|
121
|
+
}
|
|
122
|
+
// TODO reconsider API - computing the VK at this point is not optimal
|
|
123
|
+
const vkResult = await this.api.circuitComputeVk({
|
|
124
|
+
circuit: {
|
|
125
|
+
name: 'circuit',
|
|
126
|
+
bytecode: this.acirUncompressedBytecode,
|
|
127
|
+
},
|
|
128
|
+
settings: getProofSettingsFromOptions(options),
|
|
129
|
+
});
|
|
130
|
+
const { verified } = await this.api.circuitVerify({
|
|
131
|
+
verificationKey: vkResult.bytes,
|
|
132
|
+
publicInputs: proofData.publicInputs.map(hexToUint8Array),
|
|
133
|
+
proof: proofFrs,
|
|
134
|
+
settings: getProofSettingsFromOptions(options),
|
|
135
|
+
});
|
|
136
|
+
return verified;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
async getVerificationKey(options?: UltraHonkBackendOptions): Promise<Uint8Array> {
|
|
140
|
+
const vkResult = await this.api.circuitComputeVk({
|
|
141
|
+
circuit: {
|
|
142
|
+
name: 'circuit',
|
|
143
|
+
bytecode: this.acirUncompressedBytecode,
|
|
144
|
+
},
|
|
145
|
+
settings: getProofSettingsFromOptions(options),
|
|
146
|
+
});
|
|
147
|
+
return vkResult.bytes;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
/** @description Returns a solidity verifier */
|
|
151
|
+
async getSolidityVerifier(vk: Uint8Array, options?: UltraHonkBackendOptions): Promise<string> {
|
|
152
|
+
const result = await this.api.circuitWriteSolidityVerifier({
|
|
153
|
+
verificationKey: vk,
|
|
154
|
+
settings: getProofSettingsFromOptions(options),
|
|
155
|
+
});
|
|
156
|
+
return result.solidityCode;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
// TODO(https://github.com/noir-lang/noir/issues/5661): Update this to handle Honk recursive aggregation in the browser once it is ready in the backend itself
|
|
160
|
+
async generateRecursiveProofArtifacts(
|
|
161
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
162
|
+
_proof: Uint8Array,
|
|
163
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
164
|
+
_numOfPublicInputs: number,
|
|
165
|
+
): Promise<{ proofAsFields: string[]; vkAsFields: string[]; vkHash: string }> {
|
|
166
|
+
// TODO(https://github.com/noir-lang/noir/issues/5661): This needs to be updated to handle recursive aggregation.
|
|
167
|
+
// There is still a proofAsFields method but we could consider getting rid of it as the proof itself
|
|
168
|
+
// is a list of field elements.
|
|
169
|
+
// UltraHonk also does not have public inputs directly prepended to the proof and they are still instead
|
|
170
|
+
// inserted at an offset.
|
|
171
|
+
// const proof = reconstructProofWithPublicInputs(proofData);
|
|
172
|
+
// const proofAsFields = (await this.api.acirProofAsFieldsUltraHonk(proof)).slice(numOfPublicInputs);
|
|
173
|
+
|
|
174
|
+
// TODO: perhaps we should put this in the init function. Need to benchmark
|
|
175
|
+
// TODO how long it takes.
|
|
176
|
+
const vkResult = await this.api.circuitComputeVk({
|
|
177
|
+
circuit: {
|
|
178
|
+
name: 'circuit',
|
|
179
|
+
bytecode: this.acirUncompressedBytecode,
|
|
180
|
+
},
|
|
181
|
+
settings: getProofSettingsFromOptions({}),
|
|
182
|
+
});
|
|
183
|
+
|
|
184
|
+
// Convert VK bytes to field elements (32-byte chunks)
|
|
185
|
+
const vkAsFields: string[] = [];
|
|
186
|
+
for (let i = 0; i < vkResult.bytes.length; i += 32) {
|
|
187
|
+
const chunk = vkResult.bytes.slice(i, i + 32);
|
|
188
|
+
vkAsFields.push(uint8ArrayToHex(chunk));
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
return {
|
|
192
|
+
// TODO(https://github.com/noir-lang/noir/issues/5661)
|
|
193
|
+
proofAsFields: [],
|
|
194
|
+
vkAsFields,
|
|
195
|
+
// We use an empty string for the vk hash here as it is unneeded as part of the recursive artifacts
|
|
196
|
+
// The user can be expected to hash the vk inside their circuit to check whether the vk is the circuit
|
|
197
|
+
// they expect
|
|
198
|
+
vkHash: uint8ArrayToHex(vkResult.hash),
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
export class AztecClientBackend {
|
|
204
|
+
// These type assertions are used so that we don't
|
|
205
|
+
// have to initialize `api` in the constructor.
|
|
206
|
+
// These are initialized asynchronously in the `init` function,
|
|
207
|
+
// constructors cannot be asynchronous which is why we do this.
|
|
208
|
+
|
|
209
|
+
constructor(
|
|
210
|
+
private acirBuf: Uint8Array[],
|
|
211
|
+
private api: Barretenberg,
|
|
212
|
+
) {}
|
|
213
|
+
|
|
214
|
+
async prove(witnessBuf: Uint8Array[], vksBuf: Uint8Array[] = []): Promise<[Uint8Array[], Uint8Array, Uint8Array]> {
|
|
215
|
+
if (vksBuf.length !== 0 && this.acirBuf.length !== witnessBuf.length) {
|
|
216
|
+
throw new AztecClientBackendError('Witness and bytecodes must have the same stack depth!');
|
|
217
|
+
}
|
|
218
|
+
if (vksBuf.length !== 0 && vksBuf.length !== witnessBuf.length) {
|
|
219
|
+
// NOTE: we allow 0 as an explicit 'I have no VKs'. This is a deprecated feature.
|
|
220
|
+
throw new AztecClientBackendError('Witness and VKs must have the same stack depth!');
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
// Queue IVC start with the number of circuits
|
|
224
|
+
this.api.chonkStart({ numCircuits: this.acirBuf.length });
|
|
225
|
+
|
|
226
|
+
// Queue load and accumulate for each circuit
|
|
227
|
+
for (let i = 0; i < this.acirBuf.length; i++) {
|
|
228
|
+
const bytecode = this.acirBuf[i];
|
|
229
|
+
const witness = witnessBuf[i] || new Uint8Array(0);
|
|
230
|
+
const vk = vksBuf[i] || new Uint8Array(0);
|
|
231
|
+
const functionName = `unknown_wasm_${i}`;
|
|
232
|
+
|
|
233
|
+
// Load the circuit
|
|
234
|
+
this.api.chonkLoad({
|
|
235
|
+
circuit: {
|
|
236
|
+
name: functionName,
|
|
237
|
+
bytecode: bytecode,
|
|
238
|
+
verificationKey: vk,
|
|
239
|
+
},
|
|
240
|
+
});
|
|
241
|
+
|
|
242
|
+
// Accumulate with witness
|
|
243
|
+
this.api.chonkAccumulate({
|
|
244
|
+
witness,
|
|
245
|
+
});
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
// Generate the proof (and wait for all previous steps to finish)
|
|
249
|
+
const proveResult = await this.api.chonkProve({});
|
|
250
|
+
// The API currently expects a msgpack-encoded API.
|
|
251
|
+
const proof = new Encoder({ useRecords: false }).encode(fromChonkProof(proveResult.proof));
|
|
252
|
+
// Generate the VK
|
|
253
|
+
const vkResult = await this.api.chonkComputeIvcVk({
|
|
254
|
+
circuit: {
|
|
255
|
+
name: 'hiding',
|
|
256
|
+
bytecode: this.acirBuf[this.acirBuf.length - 1],
|
|
257
|
+
},
|
|
258
|
+
});
|
|
259
|
+
|
|
260
|
+
const proofFields = [
|
|
261
|
+
proveResult.proof.megaProof,
|
|
262
|
+
proveResult.proof.goblinProof.mergeProof,
|
|
263
|
+
proveResult.proof.goblinProof.eccvmProof.preIpaProof,
|
|
264
|
+
proveResult.proof.goblinProof.eccvmProof.ipaProof,
|
|
265
|
+
proveResult.proof.goblinProof.translatorProof,
|
|
266
|
+
].flat();
|
|
267
|
+
|
|
268
|
+
// Note: Verification may not work correctly until we properly serialize the proof
|
|
269
|
+
if (!(await this.verify(proof, vkResult.bytes))) {
|
|
270
|
+
throw new AztecClientBackendError('Failed to verify the private (Chonk) transaction proof!');
|
|
271
|
+
}
|
|
272
|
+
return [proofFields, proof, vkResult.bytes];
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
async verify(proof: Uint8Array, vk: Uint8Array): Promise<boolean> {
|
|
276
|
+
const result = await this.api.chonkVerify({
|
|
277
|
+
proof: toChonkProof(new Decoder({ useRecords: false }).decode(proof)),
|
|
278
|
+
vk,
|
|
279
|
+
});
|
|
280
|
+
return result.valid;
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
async gates(): Promise<number[]> {
|
|
284
|
+
const circuitSizes: number[] = [];
|
|
285
|
+
for (const buf of this.acirBuf) {
|
|
286
|
+
const gates = await this.api.chonkStats({
|
|
287
|
+
circuit: {
|
|
288
|
+
name: 'circuit',
|
|
289
|
+
bytecode: buf,
|
|
290
|
+
},
|
|
291
|
+
includeGatesPerOpcode: false,
|
|
292
|
+
});
|
|
293
|
+
circuitSizes.push(gates.circuitSize);
|
|
294
|
+
}
|
|
295
|
+
return circuitSizes;
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
// Converts bytecode from a base64 string to a Uint8Array
|
|
300
|
+
function acirToUint8Array(base64EncodedBytecode: string): Uint8Array {
|
|
301
|
+
const compressedByteCode = base64Decode(base64EncodedBytecode);
|
|
302
|
+
return ungzip(compressedByteCode);
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
// Base64 decode using atob (works in both browser and Node.js 18+)
|
|
306
|
+
function base64Decode(input: string): Uint8Array {
|
|
307
|
+
if (typeof atob === 'function') {
|
|
308
|
+
return Uint8Array.from(atob(input), c => c.charCodeAt(0));
|
|
309
|
+
} else {
|
|
310
|
+
throw new Error('atob is not available. Node.js 18+ or browser required.');
|
|
311
|
+
}
|
|
312
|
+
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { BackendType, Barretenberg, BarretenbergSync } from './index.js';
|
|
2
|
+
import { Fr } from './testing/fields.js';
|
|
3
|
+
|
|
4
|
+
describe('blake2s async', () => {
|
|
5
|
+
let api: Barretenberg;
|
|
6
|
+
|
|
7
|
+
beforeAll(async () => {
|
|
8
|
+
// We're going to test over a worker backend to cover more code paths.
|
|
9
|
+
api = await Barretenberg.new({ threads: 1, backend: BackendType.WasmWorker });
|
|
10
|
+
});
|
|
11
|
+
|
|
12
|
+
afterAll(async () => {
|
|
13
|
+
await api.destroy();
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
it('blake2s', async () => {
|
|
17
|
+
const input = Buffer.from('abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789');
|
|
18
|
+
const expected = new Uint8Array([
|
|
19
|
+
0x44, 0xdd, 0xdb, 0x39, 0xbd, 0xb2, 0xaf, 0x80, 0xc1, 0x47, 0x89, 0x4c, 0x1d, 0x75, 0x6a, 0xda, 0x3d, 0x1c, 0x2a,
|
|
20
|
+
0xc2, 0xb1, 0x00, 0x54, 0x1e, 0x04, 0xfe, 0x87, 0xb4, 0xa5, 0x9e, 0x12, 0x43,
|
|
21
|
+
]);
|
|
22
|
+
const response = await api.blake2s({ data: input });
|
|
23
|
+
expect(response.hash).toEqual(expected);
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
it('blake2sToField', async () => {
|
|
27
|
+
const input = Buffer.from('abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789');
|
|
28
|
+
const expected = Fr.fromBufferReduce(
|
|
29
|
+
new Uint8Array([
|
|
30
|
+
0x44, 0xdd, 0xdb, 0x39, 0xbd, 0xb2, 0xaf, 0x80, 0xc1, 0x47, 0x89, 0x4c, 0x1d, 0x75, 0x6a, 0xda, 0x3d, 0x1c,
|
|
31
|
+
0x2a, 0xc2, 0xb1, 0x00, 0x54, 0x1e, 0x04, 0xfe, 0x87, 0xb4, 0xa5, 0x9e, 0x12, 0x43,
|
|
32
|
+
]),
|
|
33
|
+
);
|
|
34
|
+
const response = await api.blake2sToField({ data: input });
|
|
35
|
+
const result = Fr.fromBuffer(response.field);
|
|
36
|
+
expect(result).toEqual(expected);
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
describe('blake2s sync', () => {
|
|
41
|
+
let api: BarretenbergSync;
|
|
42
|
+
|
|
43
|
+
beforeAll(async () => {
|
|
44
|
+
api = await BarretenbergSync.initSingleton();
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
it('blake2s', () => {
|
|
48
|
+
const input = Buffer.from('abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789');
|
|
49
|
+
const expected = new Uint8Array([
|
|
50
|
+
0x44, 0xdd, 0xdb, 0x39, 0xbd, 0xb2, 0xaf, 0x80, 0xc1, 0x47, 0x89, 0x4c, 0x1d, 0x75, 0x6a, 0xda, 0x3d, 0x1c, 0x2a,
|
|
51
|
+
0xc2, 0xb1, 0x00, 0x54, 0x1e, 0x04, 0xfe, 0x87, 0xb4, 0xa5, 0x9e, 0x12, 0x43,
|
|
52
|
+
]);
|
|
53
|
+
const response = api.blake2s({ data: input });
|
|
54
|
+
expect(response.hash).toEqual(expected);
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
it('blake2sToField', () => {
|
|
58
|
+
const input = Buffer.from('abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789');
|
|
59
|
+
const expected = Fr.fromBufferReduce(
|
|
60
|
+
new Uint8Array([
|
|
61
|
+
0x44, 0xdd, 0xdb, 0x39, 0xbd, 0xb2, 0xaf, 0x80, 0xc1, 0x47, 0x89, 0x4c, 0x1d, 0x75, 0x6a, 0xda, 0x3d, 0x1c,
|
|
62
|
+
0x2a, 0xc2, 0xb1, 0x00, 0x54, 0x1e, 0x04, 0xfe, 0x87, 0xb4, 0xa5, 0x9e, 0x12, 0x43,
|
|
63
|
+
]),
|
|
64
|
+
);
|
|
65
|
+
const response = api.blake2sToField({ data: input });
|
|
66
|
+
const result = Fr.fromBuffer(response.field);
|
|
67
|
+
expect(result).toEqual(expected);
|
|
68
|
+
});
|
|
69
|
+
});
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
import { Crs, GrumpkinCrs } from '../crs/index.js';
|
|
2
|
+
import { AsyncApi } from '../cbind/generated/async.js';
|
|
3
|
+
import { SyncApi } from '../cbind/generated/sync.js';
|
|
4
|
+
import { IMsgpackBackendSync, IMsgpackBackendAsync } from '../bb_backends/interface.js';
|
|
5
|
+
import { BackendOptions, BackendType } from '../bb_backends/index.js';
|
|
6
|
+
import { createAsyncBackend, createSyncBackend } from '../bb_backends/node/index.js';
|
|
7
|
+
|
|
8
|
+
export { UltraHonkBackend, UltraHonkVerifierBackend, AztecClientBackend } from './backend.js';
|
|
9
|
+
export * from '../bb_backends/index.js';
|
|
10
|
+
|
|
11
|
+
export type CircuitOptions = {
|
|
12
|
+
/** @description Whether to produce SNARK friendly proofs */
|
|
13
|
+
recursive: boolean;
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* The main class library consumers interact with.
|
|
18
|
+
* It extends the generated api, and provides a static constructor "new" to compose components.
|
|
19
|
+
*/
|
|
20
|
+
export class Barretenberg extends AsyncApi {
|
|
21
|
+
private options: BackendOptions;
|
|
22
|
+
|
|
23
|
+
constructor(backend: IMsgpackBackendAsync, options: BackendOptions) {
|
|
24
|
+
super(backend);
|
|
25
|
+
this.options = options;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Constructs an instance of Barretenberg.
|
|
30
|
+
*
|
|
31
|
+
* If options.backend is set: uses that specific backend (throws if unavailable)
|
|
32
|
+
* If options.backend is unset: tries backends in order with fallback:
|
|
33
|
+
* 1. NativeUnixSocket (if bb binary available)
|
|
34
|
+
* 2. WasmWorker (in browser) or Wasm (in Node.js)
|
|
35
|
+
*/
|
|
36
|
+
static async new(options: BackendOptions = {}) {
|
|
37
|
+
const logger = options.logger ?? (() => {});
|
|
38
|
+
|
|
39
|
+
if (options.backend) {
|
|
40
|
+
// Explicit backend required - no fallback
|
|
41
|
+
const backend = await createAsyncBackend(options.backend, options, logger);
|
|
42
|
+
if (options.backend === BackendType.Wasm || options.backend === BackendType.WasmWorker) {
|
|
43
|
+
await backend.initSRSChonk();
|
|
44
|
+
}
|
|
45
|
+
return backend;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
if (typeof window === 'undefined') {
|
|
49
|
+
try {
|
|
50
|
+
return await createAsyncBackend(BackendType.NativeUnixSocket, options, logger);
|
|
51
|
+
} catch (err: any) {
|
|
52
|
+
logger(`Unix socket unavailable (${err.message}), falling back to WASM`);
|
|
53
|
+
const backend = await createAsyncBackend(BackendType.Wasm, options, logger);
|
|
54
|
+
await backend.initSRSChonk();
|
|
55
|
+
return backend;
|
|
56
|
+
}
|
|
57
|
+
} else {
|
|
58
|
+
logger(`In browser, using WASM over worker backend.`);
|
|
59
|
+
const backend = await createAsyncBackend(BackendType.WasmWorker, options, logger);
|
|
60
|
+
await backend.initSRSChonk();
|
|
61
|
+
return backend;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
async initSRSChonk(srsSize = this.getDefaultSrsSize()): Promise<void> {
|
|
66
|
+
// crsPath can be undefined
|
|
67
|
+
const crs = await Crs.new(srsSize + 1, this.options.crsPath, this.options.logger);
|
|
68
|
+
const grumpkinCrs = await GrumpkinCrs.new(2 ** 16 + 1, this.options.crsPath, this.options.logger);
|
|
69
|
+
|
|
70
|
+
// Load CRS into wasm global CRS state.
|
|
71
|
+
// TODO: Make RawBuffer be default behavior, and have a specific Vector type for when wanting length prefixed.
|
|
72
|
+
await this.srsInitSrs({ pointsBuf: crs.getG1Data(), numPoints: crs.numPoints, g2Point: crs.getG2Data() });
|
|
73
|
+
await this.srsInitGrumpkinSrs({ pointsBuf: grumpkinCrs.getG1Data(), numPoints: grumpkinCrs.numPoints });
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
getDefaultSrsSize(): number {
|
|
77
|
+
// iOS browser is very aggressive with memory. Check if running in browser and on iOS
|
|
78
|
+
// We expect the mobile iOS browser to kill us >=1GB, so no real use in using a larger SRS.
|
|
79
|
+
if (typeof window !== 'undefined' && /iPad|iPhone/.test(navigator.userAgent)) {
|
|
80
|
+
return 2 ** 18;
|
|
81
|
+
}
|
|
82
|
+
return 2 ** 20;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
async acirGetCircuitSizes(
|
|
86
|
+
bytecode: Uint8Array,
|
|
87
|
+
recursive: boolean,
|
|
88
|
+
honkRecursion: boolean,
|
|
89
|
+
): Promise<[number, number]> {
|
|
90
|
+
const response = await this.circuitStats({
|
|
91
|
+
circuit: { name: '', bytecode, verificationKey: new Uint8Array() },
|
|
92
|
+
includeGatesPerOpcode: false,
|
|
93
|
+
settings: {
|
|
94
|
+
ipaAccumulation: false,
|
|
95
|
+
oracleHashType: honkRecursion ? 'poseidon2' : 'keccak',
|
|
96
|
+
disableZk: !recursive,
|
|
97
|
+
optimizedSolidityVerifier: false,
|
|
98
|
+
},
|
|
99
|
+
});
|
|
100
|
+
return [response.numGates, response.numGatesDyadic];
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
async destroy() {
|
|
104
|
+
return super.destroy();
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
/**
|
|
108
|
+
* Initialize the singleton instance of Barretenberg.
|
|
109
|
+
* @param options Backend configuration options
|
|
110
|
+
*/
|
|
111
|
+
static async initSingleton(options: BackendOptions = {}) {
|
|
112
|
+
if (!barretenbergSingletonPromise) {
|
|
113
|
+
barretenbergSingletonPromise = Barretenberg.new(options);
|
|
114
|
+
}
|
|
115
|
+
try {
|
|
116
|
+
barretenbergSingleton = await barretenbergSingletonPromise;
|
|
117
|
+
return barretenbergSingleton;
|
|
118
|
+
} catch (error) {
|
|
119
|
+
// If initialization fails, clear the singleton so next call can retry
|
|
120
|
+
barretenbergSingleton = undefined!;
|
|
121
|
+
barretenbergSingletonPromise = undefined!;
|
|
122
|
+
throw error;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
static async destroySingleton() {
|
|
127
|
+
if (barretenbergSingleton) {
|
|
128
|
+
await barretenbergSingleton.destroy();
|
|
129
|
+
barretenbergSingleton = undefined!;
|
|
130
|
+
barretenbergSingletonPromise = undefined!;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
/**
|
|
135
|
+
* Get the singleton instance of Barretenberg.
|
|
136
|
+
* Must call initSingleton() first.
|
|
137
|
+
*/
|
|
138
|
+
static getSingleton() {
|
|
139
|
+
if (!barretenbergSingleton) {
|
|
140
|
+
throw new Error('First call Barretenberg.initSingleton() on @aztec/bb.js module.');
|
|
141
|
+
}
|
|
142
|
+
return barretenbergSingleton;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
let barretenbergSingletonPromise: Promise<Barretenberg>;
|
|
147
|
+
let barretenbergSingleton: Barretenberg;
|
|
148
|
+
|
|
149
|
+
let barretenbergSyncSingletonPromise: Promise<BarretenbergSync>;
|
|
150
|
+
let barretenbergSyncSingleton: BarretenbergSync;
|
|
151
|
+
|
|
152
|
+
export class BarretenbergSync extends SyncApi {
|
|
153
|
+
constructor(backend: IMsgpackBackendSync) {
|
|
154
|
+
super(backend);
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
/**
|
|
158
|
+
* Create a new BarretenbergSync instance.
|
|
159
|
+
*
|
|
160
|
+
* If options.backend is set: uses that specific backend (throws if unavailable)
|
|
161
|
+
* If options.backend is unset: tries backends in order with fallback:
|
|
162
|
+
* 1. NativeSharedMem (if bb binary + NAPI module available)
|
|
163
|
+
* 2. Wasm
|
|
164
|
+
*
|
|
165
|
+
* Supported backends: Wasm, NativeSharedMem
|
|
166
|
+
* Not supported: WasmWorker (no workers in sync), NativeUnixSocket (async only)
|
|
167
|
+
*/
|
|
168
|
+
static async new(options: BackendOptions = {}) {
|
|
169
|
+
const logger = options.logger ?? (() => {});
|
|
170
|
+
|
|
171
|
+
if (options.backend) {
|
|
172
|
+
return await createSyncBackend(options.backend, options, logger);
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
// Try native, fallback to WASM.
|
|
176
|
+
try {
|
|
177
|
+
return await createSyncBackend(BackendType.NativeSharedMemory, options, logger);
|
|
178
|
+
} catch (err: any) {
|
|
179
|
+
logger(`Shared memory unavailable (${err.message}), falling back to WASM`);
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
return await createSyncBackend(BackendType.Wasm, options, logger);
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
/**
|
|
186
|
+
* Initialize the singleton instance.
|
|
187
|
+
* @param options Backend configuration options
|
|
188
|
+
*/
|
|
189
|
+
static async initSingleton(options: BackendOptions = {}) {
|
|
190
|
+
if (!barretenbergSyncSingletonPromise) {
|
|
191
|
+
barretenbergSyncSingletonPromise = BarretenbergSync.new(options);
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
barretenbergSyncSingleton = await barretenbergSyncSingletonPromise;
|
|
195
|
+
return barretenbergSyncSingleton;
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
static destroySingleton() {
|
|
199
|
+
if (barretenbergSyncSingleton) {
|
|
200
|
+
barretenbergSyncSingleton.destroy();
|
|
201
|
+
barretenbergSyncSingleton = undefined!;
|
|
202
|
+
barretenbergSyncSingletonPromise = undefined!;
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
static getSingleton() {
|
|
207
|
+
if (!barretenbergSyncSingleton) {
|
|
208
|
+
throw new Error('First call BarretenbergSync.initSingleton() on @aztec/bb.js module.');
|
|
209
|
+
}
|
|
210
|
+
return barretenbergSyncSingleton;
|
|
211
|
+
}
|
|
212
|
+
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { BarretenbergSync } from './index.js';
|
|
2
|
+
import { Timer } from '../benchmark/timer.js';
|
|
3
|
+
import { Fr } from './testing/fields.js';
|
|
4
|
+
|
|
5
|
+
describe('pedersen sync', () => {
|
|
6
|
+
let api: BarretenbergSync;
|
|
7
|
+
|
|
8
|
+
beforeAll(async () => {
|
|
9
|
+
api = await BarretenbergSync.initSingleton();
|
|
10
|
+
});
|
|
11
|
+
|
|
12
|
+
it('pedersenHash', () => {
|
|
13
|
+
const response = api.pedersenHash({ inputs: [new Fr(4n).toBuffer(), new Fr(8n).toBuffer()], hashIndex: 7 });
|
|
14
|
+
const result = Fr.fromBuffer(response.hash);
|
|
15
|
+
expect(result).toMatchSnapshot();
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
it('pedersenHash perf test', () => {
|
|
19
|
+
const loops = 1000;
|
|
20
|
+
const fields = Array.from({ length: loops * 2 }).map(() => Fr.random());
|
|
21
|
+
const t = new Timer();
|
|
22
|
+
for (let i = 0; i < loops; ++i) {
|
|
23
|
+
api.pedersenHash({ inputs: [fields[i * 2].toBuffer(), fields[i * 2 + 1].toBuffer()], hashIndex: 0 });
|
|
24
|
+
}
|
|
25
|
+
const us = t.us() / loops;
|
|
26
|
+
console.log(`Executed ${loops} hashes at an average ${us}us / hash`);
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
// TODO: pedersenHashes not yet in new msgpack API
|
|
30
|
+
// it.skip('pedersenHashes perf test', () => {
|
|
31
|
+
// const loops = 10;
|
|
32
|
+
// const numHashesPerLoop = 1024;
|
|
33
|
+
// const fields = Array.from({ length: numHashesPerLoop * 2 }).map(() => Fr.random());
|
|
34
|
+
// const t = new Timer();
|
|
35
|
+
// for (let i = 0; i < loops; ++i) {
|
|
36
|
+
// // api.pedersenHashes(fields, 0); // Not in new API yet
|
|
37
|
+
// }
|
|
38
|
+
// const us = t.us() / (numHashesPerLoop * loops);
|
|
39
|
+
// console.log(`Executed ${numHashesPerLoop * loops} hashes at an average ${us}us / hash`);
|
|
40
|
+
// });
|
|
41
|
+
|
|
42
|
+
it('pedersenHashBuffer', () => {
|
|
43
|
+
const input = Buffer.alloc(123);
|
|
44
|
+
input.writeUint32BE(321, 0);
|
|
45
|
+
input.writeUint32BE(456, 119);
|
|
46
|
+
const response = api.pedersenHashBuffer({ input, hashIndex: 0 });
|
|
47
|
+
const r = Fr.fromBuffer(response.hash);
|
|
48
|
+
expect(r).toMatchSnapshot();
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
it('pedersenCommit', () => {
|
|
52
|
+
const response = api.pedersenCommit({
|
|
53
|
+
inputs: [new Fr(4n).toBuffer(), new Fr(8n).toBuffer(), new Fr(12n).toBuffer()],
|
|
54
|
+
hashIndex: 0,
|
|
55
|
+
});
|
|
56
|
+
const result = { x: Fr.fromBuffer(response.point.x), y: Fr.fromBuffer(response.point.y) };
|
|
57
|
+
expect(result).toMatchSnapshot();
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
it.skip('pedersenCommit perf test', () => {
|
|
61
|
+
const loops = 1000;
|
|
62
|
+
const fields = Array.from({ length: loops * 2 }).map(() => Fr.random());
|
|
63
|
+
const t = new Timer();
|
|
64
|
+
for (let i = 0; i < loops; ++i) {
|
|
65
|
+
api.pedersenCommit({ inputs: [fields[i * 2].toBuffer(), fields[i * 2 + 1].toBuffer()], hashIndex: 0 });
|
|
66
|
+
}
|
|
67
|
+
console.log(t.us() / loops);
|
|
68
|
+
});
|
|
69
|
+
});
|