@aztec/bb.js 0.3.3 → 0.3.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dest/barretenberg-threads.wasm +0 -0
- package/dest/barretenberg.wasm +0 -0
- package/dest/browser/539.js +1963 -0
- package/dest/browser/995.js +578 -0
- 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_api/blake2s.test.d.ts.map +1 -0
- package/dest/{barretenberg_api → browser/barretenberg_api}/blake2s.test.js +1 -1
- package/dest/browser/barretenberg_api/common.test.d.ts.map +1 -0
- package/dest/browser/barretenberg_api/common.test.js +18 -0
- package/dest/browser/barretenberg_api/index.d.ts.map +1 -0
- package/dest/browser/barretenberg_api/index.js +379 -0
- package/dest/browser/barretenberg_api/pedersen.test.d.ts.map +1 -0
- package/dest/browser/barretenberg_api/pedersen.test.js +69 -0
- package/dest/browser/barretenberg_api/schnorr.test.d.ts.map +1 -0
- package/dest/{barretenberg_api → browser/barretenberg_api}/schnorr.test.js +1 -1
- package/dest/browser/barretenberg_binder/heap_allocator.d.ts.map +1 -0
- package/dest/{barretenberg_binder → browser/barretenberg_binder}/heap_allocator.js +1 -1
- package/dest/browser/barretenberg_binder/heap_allocator_sync.d.ts.map +1 -0
- package/dest/{barretenberg_binder → browser/barretenberg_binder}/heap_allocator_sync.js +1 -1
- package/dest/browser/barretenberg_binder/index.d.ts.map +1 -0
- package/dest/browser/barretenberg_binder/index.js +73 -0
- package/dest/browser/barretenberg_wasm/barretenberg_wasm.d.ts +48 -0
- package/dest/browser/barretenberg_wasm/barretenberg_wasm.d.ts.map +1 -0
- package/dest/browser/barretenberg_wasm/barretenberg_wasm.js +208 -0
- package/dest/browser/barretenberg_wasm/barretenberg_wasm.test.d.ts.map +1 -0
- package/dest/browser/barretenberg_wasm/barretenberg_wasm.test.js +47 -0
- package/dest/{barretenberg_wasm → browser/barretenberg_wasm}/browser/index.d.ts +1 -1
- package/dest/browser/barretenberg_wasm/browser/index.d.ts.map +1 -0
- package/dest/browser/barretenberg_wasm/browser/index.js +29 -0
- package/dest/browser/barretenberg_wasm/browser/worker.d.ts.map +1 -0
- package/dest/browser/barretenberg_wasm/browser/worker.js +11 -0
- package/dest/browser/barretenberg_wasm/index.d.ts.map +1 -0
- package/dest/{barretenberg_wasm → browser/barretenberg_wasm}/index.js +1 -1
- package/dest/{barretenberg_wasm → browser/barretenberg_wasm}/node/index.d.ts +1 -1
- package/dest/browser/barretenberg_wasm/node/index.d.ts.map +1 -0
- package/dest/{barretenberg_wasm → browser/barretenberg_wasm}/node/index.js +3 -3
- package/dest/{barretenberg_wasm → browser/barretenberg_wasm}/node/node_endpoint.d.ts +2 -2
- package/dest/browser/barretenberg_wasm/node/node_endpoint.d.ts.map +1 -0
- package/dest/browser/barretenberg_wasm/node/node_endpoint.js +28 -0
- package/dest/browser/barretenberg_wasm/node/worker.d.ts.map +1 -0
- package/dest/browser/barretenberg_wasm/node/worker.js +9 -0
- package/dest/browser/bigint-array/index.d.ts.map +1 -0
- package/dest/browser/bigint-array/index.js +21 -0
- package/dest/browser/bindgen/function_declaration.d.ts.map +1 -0
- package/dest/{bindgen → browser/bindgen}/function_declaration.js +1 -1
- package/dest/{bindgen → browser/bindgen}/index.d.ts.map +1 -1
- package/dest/browser/bindgen/index.js +15 -0
- package/dest/browser/bindgen/mappings.d.ts.map +1 -0
- package/dest/{bindgen → browser/bindgen}/mappings.js +1 -1
- package/dest/browser/bindgen/rust.d.ts.map +1 -0
- package/dest/browser/bindgen/rust.js +43 -0
- package/dest/browser/bindgen/to_camel_case.d.ts.map +1 -0
- package/dest/browser/bindgen/to_camel_case.js +11 -0
- package/dest/browser/bindgen/typescript.d.ts.map +1 -0
- package/dest/browser/bindgen/typescript.js +80 -0
- package/dest/{crs → browser/crs}/browser/cached_net_crs.d.ts +1 -1
- package/dest/browser/crs/browser/cached_net_crs.d.ts.map +1 -0
- package/dest/browser/crs/browser/cached_net_crs.js +56 -0
- package/dest/browser/crs/browser/index.d.ts.map +1 -0
- package/dest/{crs → browser/crs}/browser/index.js +1 -1
- 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.map +1 -0
- package/dest/{crs → browser/crs}/net_crs.js +1 -1
- package/dest/browser/crs/node/ignition_files_crs.d.ts.map +1 -0
- package/dest/{crs → browser/crs}/node/ignition_files_crs.js +1 -1
- package/dest/browser/crs/node/index.d.ts.map +1 -0
- package/dest/browser/crs/node/index.js +54 -0
- package/dest/browser/examples/simple.test.d.ts.map +1 -0
- package/dest/browser/examples/simple.test.js +22 -0
- package/dest/browser/factory/index.d.ts.map +1 -0
- package/dest/{factory → browser/factory}/index.js +1 -1
- package/dest/browser/index.d.ts.map +1 -0
- package/dest/{index.js → browser/index.js} +1 -1
- package/dest/browser/main.d.ts.map +1 -0
- package/dest/browser/main.js +6535 -0
- package/dest/browser/random/browser/index.d.ts.map +1 -0
- package/dest/{random → browser/random}/browser/index.js +1 -1
- 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/random/node/index.d.ts.map +1 -0
- package/dest/browser/random/node/index.js +5 -0
- package/dest/browser/serialize/buffer_reader.d.ts.map +1 -0
- package/dest/browser/serialize/buffer_reader.js +66 -0
- package/dest/browser/serialize/index.d.ts.map +1 -0
- package/dest/{serialize → browser/serialize}/index.js +1 -1
- package/dest/browser/serialize/output_type.d.ts.map +1 -0
- package/dest/browser/serialize/output_type.js +44 -0
- package/dest/browser/serialize/serialize.d.ts.map +1 -0
- package/dest/browser/serialize/serialize.js +139 -0
- package/dest/browser/types/browser/index.d.ts +2 -0
- package/dest/browser/types/browser/index.d.ts.map +1 -0
- package/dest/browser/types/browser/index.js +2 -0
- package/dest/browser/types/browser/point.d.ts +16 -0
- package/dest/browser/types/browser/point.d.ts.map +1 -0
- package/dest/browser/types/browser/point.js +46 -0
- package/dest/browser/types/fields.d.ts.map +1 -0
- package/dest/browser/types/fields.js +84 -0
- package/dest/browser/types/fixed_size_buffer.d.ts.map +1 -0
- package/dest/browser/types/fixed_size_buffer.js +51 -0
- package/dest/browser/types/index.d.ts +6 -0
- package/dest/browser/types/index.d.ts.map +1 -0
- package/dest/browser/types/index.js +6 -0
- package/dest/browser/types/node/index.d.ts +2 -0
- package/dest/browser/types/node/index.d.ts.map +1 -0
- package/dest/browser/types/node/index.js +2 -0
- package/dest/{types → browser/types/node}/point.d.ts +2 -2
- package/dest/browser/types/node/point.d.ts.map +1 -0
- package/dest/browser/types/node/point.js +31 -0
- package/dest/browser/types/ptr.d.ts.map +1 -0
- package/dest/browser/types/ptr.js +19 -0
- package/dest/browser/types/raw_buffer.d.ts.map +1 -0
- package/dest/{types → browser/types}/raw_buffer.js +1 -1
- 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_api/blake2s.test.d.ts +2 -0
- package/dest/node/barretenberg_api/blake2s.test.d.ts.map +1 -0
- package/dest/node/barretenberg_api/blake2s.test.js +30 -0
- package/dest/node/barretenberg_api/common.test.d.ts +2 -0
- package/dest/node/barretenberg_api/common.test.d.ts.map +1 -0
- package/dest/node/barretenberg_api/common.test.js +18 -0
- package/dest/node/barretenberg_api/index.d.ts +103 -0
- package/dest/node/barretenberg_api/index.d.ts.map +1 -0
- package/dest/node/barretenberg_api/index.js +379 -0
- package/dest/node/barretenberg_api/pedersen.test.d.ts +2 -0
- package/dest/node/barretenberg_api/pedersen.test.d.ts.map +1 -0
- package/dest/node/barretenberg_api/pedersen.test.js +69 -0
- package/dest/node/barretenberg_api/schnorr.test.d.ts +2 -0
- package/dest/node/barretenberg_api/schnorr.test.d.ts.map +1 -0
- package/dest/node/barretenberg_api/schnorr.test.js +113 -0
- package/dest/node/barretenberg_binder/heap_allocator.d.ts +22 -0
- package/dest/node/barretenberg_binder/heap_allocator.d.ts.map +1 -0
- package/dest/node/barretenberg_binder/heap_allocator.js +59 -0
- package/dest/node/barretenberg_binder/heap_allocator_sync.d.ts +22 -0
- package/dest/node/barretenberg_binder/heap_allocator_sync.d.ts.map +1 -0
- package/dest/node/barretenberg_binder/heap_allocator_sync.js +58 -0
- package/dest/node/barretenberg_binder/index.d.ts +32 -0
- package/dest/node/barretenberg_binder/index.d.ts.map +1 -0
- package/dest/node/barretenberg_binder/index.js +73 -0
- package/dest/node/barretenberg_wasm/barretenberg_wasm.d.ts.map +1 -0
- package/dest/node/barretenberg_wasm/barretenberg_wasm.js +208 -0
- package/dest/node/barretenberg_wasm/barretenberg_wasm.test.d.ts +2 -0
- package/dest/node/barretenberg_wasm/barretenberg_wasm.test.d.ts.map +1 -0
- package/dest/node/barretenberg_wasm/barretenberg_wasm.test.js +47 -0
- package/dest/node/barretenberg_wasm/browser/index.d.ts +8 -0
- package/dest/node/barretenberg_wasm/browser/index.d.ts.map +1 -0
- package/dest/node/barretenberg_wasm/browser/index.js +29 -0
- package/dest/node/barretenberg_wasm/browser/worker.d.ts +2 -0
- package/dest/node/barretenberg_wasm/browser/worker.d.ts.map +1 -0
- package/dest/node/barretenberg_wasm/browser/worker.js +11 -0
- package/dest/node/barretenberg_wasm/index.d.ts +2 -0
- package/dest/node/barretenberg_wasm/index.d.ts.map +1 -0
- package/dest/node/barretenberg_wasm/index.js +2 -0
- package/dest/node/barretenberg_wasm/node/index.d.ts +17 -0
- package/dest/node/barretenberg_wasm/node/index.d.ts.map +1 -0
- package/dest/node/barretenberg_wasm/node/index.js +40 -0
- package/dest/node/barretenberg_wasm/node/node_endpoint.d.ts +8 -0
- package/dest/node/barretenberg_wasm/node/node_endpoint.d.ts.map +1 -0
- package/dest/node/barretenberg_wasm/node/node_endpoint.js +28 -0
- package/dest/node/barretenberg_wasm/node/worker.d.ts +2 -0
- package/dest/node/barretenberg_wasm/node/worker.d.ts.map +1 -0
- package/dest/node/barretenberg_wasm/node/worker.js +9 -0
- package/dest/node/bigint-array/index.d.ts +3 -0
- package/dest/node/bigint-array/index.d.ts.map +1 -0
- package/dest/node/bigint-array/index.js +21 -0
- package/dest/node/bindgen/function_declaration.d.ts +11 -0
- package/dest/node/bindgen/function_declaration.d.ts.map +1 -0
- package/dest/node/bindgen/function_declaration.js +2 -0
- package/dest/node/bindgen/index.d.ts +2 -0
- package/dest/node/bindgen/index.d.ts.map +1 -0
- package/dest/node/bindgen/index.js +15 -0
- package/dest/node/bindgen/mappings.d.ts +4 -0
- package/dest/node/bindgen/mappings.d.ts.map +1 -0
- package/dest/node/bindgen/mappings.js +63 -0
- package/dest/node/bindgen/rust.d.ts +2 -0
- package/dest/node/bindgen/rust.d.ts.map +1 -0
- package/dest/node/bindgen/rust.js +43 -0
- package/dest/node/bindgen/to_camel_case.d.ts +2 -0
- package/dest/node/bindgen/to_camel_case.d.ts.map +1 -0
- package/dest/node/bindgen/to_camel_case.js +11 -0
- package/dest/node/bindgen/typescript.d.ts +2 -0
- package/dest/node/bindgen/typescript.d.ts.map +1 -0
- package/dest/node/bindgen/typescript.js +80 -0
- package/dest/node/crs/browser/cached_net_crs.d.ts +25 -0
- package/dest/node/crs/browser/cached_net_crs.d.ts.map +1 -0
- package/dest/node/crs/browser/cached_net_crs.js +56 -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.map +1 -0
- package/dest/{crs → node/crs}/index.js +1 -1
- package/dest/node/crs/net_crs.d.ts +36 -0
- package/dest/node/crs/net_crs.d.ts.map +1 -0
- package/dest/node/crs/net_crs.js +59 -0
- package/dest/node/crs/node/ignition_files_crs.d.ts +37 -0
- package/dest/node/crs/node/ignition_files_crs.d.ts.map +1 -0
- package/dest/node/crs/node/ignition_files_crs.js +51 -0
- package/dest/node/crs/node/index.d.ts +21 -0
- package/dest/node/crs/node/index.d.ts.map +1 -0
- package/dest/node/crs/node/index.js +54 -0
- package/dest/node/examples/simple.test.d.ts +2 -0
- package/dest/node/examples/simple.test.d.ts.map +1 -0
- package/dest/node/examples/simple.test.js +22 -0
- package/dest/node/factory/index.d.ts +21 -0
- package/dest/node/factory/index.d.ts.map +1 -0
- package/dest/node/factory/index.js +34 -0
- package/dest/node/index.d.ts +6 -0
- package/dest/node/index.d.ts.map +1 -0
- package/dest/node/index.js +6 -0
- package/dest/node/main.d.ts +10 -0
- package/dest/node/main.d.ts.map +1 -0
- package/dest/node/main.js +276 -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.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/serialize/buffer_reader.d.ts +28 -0
- package/dest/node/serialize/buffer_reader.d.ts.map +1 -0
- package/dest/node/serialize/buffer_reader.js +66 -0
- package/dest/node/serialize/index.d.ts +4 -0
- package/dest/node/serialize/index.d.ts.map +1 -0
- package/dest/node/serialize/index.js +4 -0
- package/dest/node/serialize/output_type.d.ts +11 -0
- package/dest/node/serialize/output_type.d.ts.map +1 -0
- package/dest/node/serialize/output_type.js +44 -0
- package/dest/node/serialize/serialize.d.ts +53 -0
- package/dest/node/serialize/serialize.d.ts.map +1 -0
- package/dest/node/serialize/serialize.js +139 -0
- package/dest/node/types/browser/index.d.ts +2 -0
- package/dest/node/types/browser/index.d.ts.map +1 -0
- package/dest/node/types/browser/index.js +2 -0
- package/dest/node/types/browser/point.d.ts +16 -0
- package/dest/node/types/browser/point.d.ts.map +1 -0
- package/dest/node/types/browser/point.js +46 -0
- package/dest/node/types/fields.d.ts +33 -0
- package/dest/node/types/fields.d.ts.map +1 -0
- package/dest/node/types/fields.js +84 -0
- package/dest/node/types/fixed_size_buffer.d.ts +26 -0
- package/dest/node/types/fixed_size_buffer.d.ts.map +1 -0
- package/dest/node/types/fixed_size_buffer.js +51 -0
- package/dest/{types → node/types}/index.d.ts +1 -1
- package/dest/node/types/index.d.ts.map +1 -0
- package/dest/{types → node/types}/index.js +2 -2
- package/dest/node/types/node/index.d.ts +2 -0
- package/dest/node/types/node/index.d.ts.map +1 -0
- package/dest/node/types/node/index.js +2 -0
- package/dest/node/types/node/point.d.ts +17 -0
- package/dest/node/types/node/point.d.ts.map +1 -0
- package/dest/node/types/node/point.js +31 -0
- package/dest/node/types/ptr.d.ts +13 -0
- package/dest/node/types/ptr.d.ts.map +1 -0
- package/dest/node/types/ptr.js +19 -0
- package/dest/node/types/raw_buffer.d.ts +3 -0
- package/dest/node/types/raw_buffer.d.ts.map +1 -0
- package/dest/node/types/raw_buffer.js +5 -0
- package/package.json +16 -25
- package/src/barretenberg_wasm/barretenberg_wasm.test.ts +1 -1
- package/src/barretenberg_wasm/barretenberg_wasm.ts +11 -7
- package/src/barretenberg_wasm/browser/index.ts +6 -3
- package/src/barretenberg_wasm/node/index.ts +2 -2
- package/src/crs/browser/cached_net_crs.ts +3 -1
- package/src/crs/index.ts +1 -1
- package/src/random/index.ts +1 -1
- package/src/types/browser/index.ts +1 -0
- package/src/types/browser/point.ts +50 -0
- package/src/types/index.ts +1 -1
- package/src/types/node/index.ts +1 -0
- package/src/types/{point.ts → node/point.ts} +2 -2
- package/dest/async_map/index.d.ts.map +0 -1
- package/dest/barretenberg_api/blake2s.test.d.ts.map +0 -1
- 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.map +0 -1
- package/dest/barretenberg_api/index.js +0 -379
- 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.map +0 -1
- package/dest/barretenberg_binder/heap_allocator.d.ts.map +0 -1
- package/dest/barretenberg_binder/heap_allocator_sync.d.ts.map +0 -1
- 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.map +0 -1
- package/dest/barretenberg_wasm/barretenberg_wasm.js +0 -212
- package/dest/barretenberg_wasm/barretenberg_wasm.test.d.ts.map +0 -1
- package/dest/barretenberg_wasm/barretenberg_wasm.test.js +0 -47
- 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.map +0 -1
- package/dest/barretenberg_wasm/browser/worker.js +0 -11
- package/dest/barretenberg_wasm/index.d.ts.map +0 -1
- package/dest/barretenberg_wasm/node/index.d.ts.map +0 -1
- 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.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.map +0 -1
- package/dest/bigint-array/index.js +0 -21
- package/dest/bindgen/function_declaration.d.ts.map +0 -1
- package/dest/bindgen/index.js +0 -15
- package/dest/bindgen/mappings.d.ts.map +0 -1
- package/dest/bindgen/rust.d.ts.map +0 -1
- package/dest/bindgen/rust.js +0 -43
- 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.map +0 -1
- package/dest/bindgen/typescript.js +0 -80
- 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.map +0 -1
- package/dest/crs/index.d.ts.map +0 -1
- package/dest/crs/net_crs.d.ts.map +0 -1
- package/dest/crs/node/ignition_files_crs.d.ts.map +0 -1
- 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.map +0 -1
- package/dest/examples/simple.test.js +0 -22
- package/dest/factory/index.d.ts.map +0 -1
- package/dest/index.d.ts.map +0 -1
- package/dest/index.html +0 -1
- package/dest/main.d.ts.map +0 -1
- package/dest/main.js +0 -276
- package/dest/random/browser/index.d.ts.map +0 -1
- package/dest/random/index.d.ts.map +0 -1
- 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.map +0 -1
- package/dest/serialize/buffer_reader.js +0 -66
- package/dest/serialize/index.d.ts.map +0 -1
- package/dest/serialize/output_type.d.ts.map +0 -1
- package/dest/serialize/output_type.js +0 -44
- 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.map +0 -1
- package/dest/types/fields.js +0 -86
- 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.map +0 -1
- package/dest/types/point.d.ts.map +0 -1
- package/dest/types/point.js +0 -32
- package/dest/types/ptr.d.ts.map +0 -1
- package/dest/types/ptr.js +0 -20
- package/dest/types/raw_buffer.d.ts.map +0 -1
- package/src/examples/simple.rawtest.ts +0 -37
- /package/dest/{async_map → browser/async_map}/index.d.ts +0 -0
- /package/dest/{barretenberg_api → browser/barretenberg_api}/blake2s.test.d.ts +0 -0
- /package/dest/{barretenberg_api → browser/barretenberg_api}/common.test.d.ts +0 -0
- /package/dest/{barretenberg_api → browser/barretenberg_api}/index.d.ts +0 -0
- /package/dest/{barretenberg_api → browser/barretenberg_api}/pedersen.test.d.ts +0 -0
- /package/dest/{barretenberg_api → browser/barretenberg_api}/schnorr.test.d.ts +0 -0
- /package/dest/{barretenberg_binder → browser/barretenberg_binder}/heap_allocator.d.ts +0 -0
- /package/dest/{barretenberg_binder → browser/barretenberg_binder}/heap_allocator_sync.d.ts +0 -0
- /package/dest/{barretenberg_binder → browser/barretenberg_binder}/index.d.ts +0 -0
- /package/dest/{barretenberg_wasm → browser/barretenberg_wasm}/barretenberg_wasm.test.d.ts +0 -0
- /package/dest/{barretenberg_wasm → browser/barretenberg_wasm}/browser/worker.d.ts +0 -0
- /package/dest/{barretenberg_wasm → browser/barretenberg_wasm}/index.d.ts +0 -0
- /package/dest/{barretenberg_wasm → browser/barretenberg_wasm}/node/worker.d.ts +0 -0
- /package/dest/{bigint-array → browser/bigint-array}/index.d.ts +0 -0
- /package/dest/{bindgen → browser/bindgen}/function_declaration.d.ts +0 -0
- /package/dest/{bindgen → browser/bindgen}/index.d.ts +0 -0
- /package/dest/{bindgen → browser/bindgen}/mappings.d.ts +0 -0
- /package/dest/{bindgen → browser/bindgen}/rust.d.ts +0 -0
- /package/dest/{bindgen → browser/bindgen}/to_camel_case.d.ts +0 -0
- /package/dest/{bindgen → browser/bindgen}/typescript.d.ts +0 -0
- /package/dest/{crs → browser/crs}/browser/index.d.ts +0 -0
- /package/dest/{crs → browser/crs}/net_crs.d.ts +0 -0
- /package/dest/{crs → browser/crs}/node/ignition_files_crs.d.ts +0 -0
- /package/dest/{crs → browser/crs}/node/index.d.ts +0 -0
- /package/dest/{examples → browser/examples}/simple.test.d.ts +0 -0
- /package/dest/{factory → browser/factory}/index.d.ts +0 -0
- /package/dest/{index.d.ts → browser/index.d.ts} +0 -0
- /package/dest/{main.d.ts → browser/main.d.ts} +0 -0
- /package/dest/{random → browser/random}/browser/index.d.ts +0 -0
- /package/dest/{random → browser/random}/node/index.d.ts +0 -0
- /package/dest/{serialize → browser/serialize}/buffer_reader.d.ts +0 -0
- /package/dest/{serialize → browser/serialize}/index.d.ts +0 -0
- /package/dest/{serialize → browser/serialize}/output_type.d.ts +0 -0
- /package/dest/{serialize → browser/serialize}/serialize.d.ts +0 -0
- /package/dest/{types → browser/types}/fields.d.ts +0 -0
- /package/dest/{types → browser/types}/fixed_size_buffer.d.ts +0 -0
- /package/dest/{types → browser/types}/ptr.d.ts +0 -0
- /package/dest/{types → browser/types}/raw_buffer.d.ts +0 -0
- /package/dest/{barretenberg_wasm → node/barretenberg_wasm}/barretenberg_wasm.d.ts +0 -0
- /package/dest/{crs → node/crs}/index.d.ts +0 -0
- /package/dest/{random → node/random}/index.d.ts +0 -0
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { HeapAllocator } from './heap_allocator.js';
|
|
2
|
+
import { asyncMap } from '../async_map/index.js';
|
|
3
|
+
import { HeapAllocatorSync } from './heap_allocator_sync.js';
|
|
4
|
+
/**
|
|
5
|
+
* Calls a WASM export function, handles allocating/freeing of memory, and serializing/deserializing to types.
|
|
6
|
+
*
|
|
7
|
+
* Notes on function binding ABI:
|
|
8
|
+
* All functions can have an arbitrary number of input and output args.
|
|
9
|
+
* All arguments must be pointers.
|
|
10
|
+
* Input args are determined by being const or pointer to const.
|
|
11
|
+
* Output args must come after input args.
|
|
12
|
+
* All input data is big-endian.
|
|
13
|
+
* All output data is big-endian, except output heap alloc pointers.
|
|
14
|
+
* As integer types are converted to/from big-endian form, we shouldn't have to worry about memory alignment. (SURE?)
|
|
15
|
+
* All functions should return void.
|
|
16
|
+
* This binding function is responsible for allocating argument memory (including output memory).
|
|
17
|
+
* Variable length output args are allocated on the heap, and the resulting pointer is written to the output arg ptr,
|
|
18
|
+
* hence the above statement remains true.
|
|
19
|
+
* Binding will free any variable length output args that were allocated on the heap.
|
|
20
|
+
*/
|
|
21
|
+
export class BarretenbergBinder {
|
|
22
|
+
constructor(wasm) {
|
|
23
|
+
this.wasm = wasm;
|
|
24
|
+
}
|
|
25
|
+
async callWasmExport(funcName, inArgs, outTypes) {
|
|
26
|
+
const alloc = new HeapAllocator(this.wasm);
|
|
27
|
+
const inPtrs = await alloc.copyToMemory(inArgs);
|
|
28
|
+
const outPtrs = await alloc.getOutputPtrs(outTypes);
|
|
29
|
+
await this.wasm.call(funcName, ...inPtrs, ...outPtrs);
|
|
30
|
+
const outArgs = this.deserializeOutputArgs(outTypes, outPtrs, alloc);
|
|
31
|
+
await alloc.freeAll();
|
|
32
|
+
return outArgs;
|
|
33
|
+
}
|
|
34
|
+
deserializeOutputArgs(outTypes, outPtrs, alloc) {
|
|
35
|
+
return asyncMap(outTypes, async (t, i) => {
|
|
36
|
+
if (t.SIZE_IN_BYTES) {
|
|
37
|
+
const slice = await this.wasm.getMemorySlice(outPtrs[i], outPtrs[i] + t.SIZE_IN_BYTES);
|
|
38
|
+
return t.fromBuffer(slice);
|
|
39
|
+
}
|
|
40
|
+
const slice = await this.wasm.getMemorySlice(outPtrs[i], outPtrs[i] + 4);
|
|
41
|
+
const ptr = new DataView(slice.buffer, slice.byteOffset, slice.byteLength).getUint32(0, true);
|
|
42
|
+
alloc.addOutputPtr(ptr);
|
|
43
|
+
return t.fromBuffer(await this.wasm.getMemorySlice(ptr));
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
export class BarretenbergBinderSync {
|
|
48
|
+
constructor(wasm) {
|
|
49
|
+
this.wasm = wasm;
|
|
50
|
+
}
|
|
51
|
+
callWasmExport(funcName, inArgs, outTypes) {
|
|
52
|
+
const alloc = new HeapAllocatorSync(this.wasm);
|
|
53
|
+
const inPtrs = alloc.copyToMemory(inArgs);
|
|
54
|
+
const outPtrs = alloc.getOutputPtrs(outTypes);
|
|
55
|
+
this.wasm.call(funcName, ...inPtrs, ...outPtrs);
|
|
56
|
+
const outArgs = this.deserializeOutputArgs(outTypes, outPtrs, alloc);
|
|
57
|
+
alloc.freeAll();
|
|
58
|
+
return outArgs;
|
|
59
|
+
}
|
|
60
|
+
deserializeOutputArgs(outTypes, outPtrs, alloc) {
|
|
61
|
+
return outTypes.map((t, i) => {
|
|
62
|
+
if (t.SIZE_IN_BYTES) {
|
|
63
|
+
const slice = this.wasm.getMemorySlice(outPtrs[i], outPtrs[i] + t.SIZE_IN_BYTES);
|
|
64
|
+
return t.fromBuffer(slice);
|
|
65
|
+
}
|
|
66
|
+
const slice = this.wasm.getMemorySlice(outPtrs[i], outPtrs[i] + 4);
|
|
67
|
+
const ptr = new DataView(slice.buffer, slice.byteOffset, slice.byteLength).getUint32(0, true);
|
|
68
|
+
alloc.addOutputPtr(ptr);
|
|
69
|
+
return t.fromBuffer(this.wasm.getMemorySlice(ptr));
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmFycmV0ZW5iZXJnX2JpbmRlci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFcEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTdEOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBQ0gsTUFBTSxPQUFPLGtCQUFrQjtJQUM3QixZQUFtQixJQUErQztRQUEvQyxTQUFJLEdBQUosSUFBSSxDQUEyQztJQUFHLENBQUM7SUFFdEUsS0FBSyxDQUFDLGNBQWMsQ0FBQyxRQUFnQixFQUFFLE1BQW9CLEVBQUUsUUFBc0I7UUFDakYsTUFBTSxLQUFLLEdBQUcsSUFBSSxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNDLE1BQU0sTUFBTSxHQUFHLE1BQU0sS0FBSyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNoRCxNQUFNLE9BQU8sR0FBRyxNQUFNLEtBQUssQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDcEQsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsR0FBRyxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsQ0FBQztRQUN0RCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNyRSxNQUFNLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUN0QixPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRU8scUJBQXFCLENBQUMsUUFBc0IsRUFBRSxPQUFpQixFQUFFLEtBQW9CO1FBQzNGLE9BQU8sUUFBUSxDQUFDLFFBQVEs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
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { Remote } from 'comlink';
|
|
2
|
+
export declare class BarretenbergWasm {
|
|
3
|
+
static MAX_THREADS: number;
|
|
4
|
+
private memStore;
|
|
5
|
+
private memory;
|
|
6
|
+
private instance;
|
|
7
|
+
private workers;
|
|
8
|
+
private remoteWasms;
|
|
9
|
+
private nextWorker;
|
|
10
|
+
private nextThreadId;
|
|
11
|
+
private isThread;
|
|
12
|
+
private logger;
|
|
13
|
+
static new(): Promise<BarretenbergWasm>;
|
|
14
|
+
/**
|
|
15
|
+
* Construct and initialise BarretenbergWasm within a Worker. Return both the worker and the wasm proxy.
|
|
16
|
+
* Used when running in the browser, because we can't block the main thread.
|
|
17
|
+
*/
|
|
18
|
+
static newWorker(threads?: number): Promise<{
|
|
19
|
+
worker: globalThis.Worker;
|
|
20
|
+
wasm: BarretenbergWasmWorker;
|
|
21
|
+
}>;
|
|
22
|
+
getNumThreads(): number;
|
|
23
|
+
/**
|
|
24
|
+
* Init as main thread. Spawn child threads.
|
|
25
|
+
*/
|
|
26
|
+
init(threads?: number, logger?: (msg: string) => void, initial?: number, maximum?: number): Promise<void>;
|
|
27
|
+
/**
|
|
28
|
+
* Init as worker thread.
|
|
29
|
+
*/
|
|
30
|
+
initThread(module: WebAssembly.Module, memory: WebAssembly.Memory): Promise<void>;
|
|
31
|
+
/**
|
|
32
|
+
* Called on main thread. Signals child threads to gracefully exit.
|
|
33
|
+
*/
|
|
34
|
+
destroy(): Promise<void>;
|
|
35
|
+
private getImportObj;
|
|
36
|
+
exports(): any;
|
|
37
|
+
/**
|
|
38
|
+
* When returning values from the WASM, use >>> operator to convert signed representation to unsigned representation.
|
|
39
|
+
*/
|
|
40
|
+
call(name: string, ...args: any): number;
|
|
41
|
+
memSize(): number;
|
|
42
|
+
getMemorySlice(start: number, end?: number): Uint8Array;
|
|
43
|
+
writeMemory(offset: number, arr: Uint8Array): void;
|
|
44
|
+
private getMemory;
|
|
45
|
+
private stringFromAddress;
|
|
46
|
+
}
|
|
47
|
+
export type BarretenbergWasmWorker = Remote<BarretenbergWasm>;
|
|
48
|
+
//# sourceMappingURL=barretenberg_wasm.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"barretenberg_wasm.d.ts","sourceRoot":"","sources":["../../../src/barretenberg_wasm/barretenberg_wasm.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAS,MAAM,SAAS,CAAC;AAexC,qBAAa,gBAAgB;IAC3B,MAAM,CAAC,WAAW,SAAM;IACxB,OAAO,CAAC,QAAQ,CAAqC;IACrD,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,QAAQ,CAAwB;IACxC,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,WAAW,CAAgC;IACnD,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,MAAM,CAAgC;WAE1B,GAAG;IAMvB;;;OAGG;WACiB,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM;;;;IAOvC,aAAa;IAIpB;;OAEG;IACU,IAAI,CACf,OAAO,SAAsD,EAC7D,MAAM,GAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAY,EACrC,OAAO,SAAK,EACZ,OAAO,SAAU;IAgCnB;;OAEG;IACU,UAAU,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,MAAM;IAO9E;;OAEG;IACU,OAAO;IAIpB,OAAO,CAAC,YAAY;IAwFb,OAAO,IAAI,GAAG;IAIrB;;OAEG;IACI,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG;IAkB/B,OAAO;IAIP,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM;IAI1C,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU;IAOlD,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,iBAAiB;CAQ1B;AAED,MAAM,MAAM,sBAAsB,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC"}
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
import { EventEmitter } from 'events';
|
|
2
|
+
import createDebug from 'debug';
|
|
3
|
+
import { proxy } from 'comlink';
|
|
4
|
+
import { randomBytes } from '../random/index.js';
|
|
5
|
+
import { fetchCode, getNumCpu, createWorker, getRemoteBarretenbergWasm, threadLogger, killSelf, } from './browser/index.js';
|
|
6
|
+
const debug = createDebug('bb.js:wasm');
|
|
7
|
+
EventEmitter.defaultMaxListeners = 30;
|
|
8
|
+
export class BarretenbergWasm {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.memStore = {};
|
|
11
|
+
this.workers = [];
|
|
12
|
+
this.remoteWasms = [];
|
|
13
|
+
this.nextWorker = 0;
|
|
14
|
+
this.nextThreadId = 1;
|
|
15
|
+
this.isThread = false;
|
|
16
|
+
this.logger = debug;
|
|
17
|
+
}
|
|
18
|
+
static async new() {
|
|
19
|
+
const barretenberg = new BarretenbergWasm();
|
|
20
|
+
await barretenberg.init(1);
|
|
21
|
+
return barretenberg;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Construct and initialise BarretenbergWasm within a Worker. Return both the worker and the wasm proxy.
|
|
25
|
+
* Used when running in the browser, because we can't block the main thread.
|
|
26
|
+
*/
|
|
27
|
+
static async newWorker(threads) {
|
|
28
|
+
const worker = createWorker();
|
|
29
|
+
const wasm = getRemoteBarretenbergWasm(worker);
|
|
30
|
+
await wasm.init(threads, proxy(debug));
|
|
31
|
+
return { worker, wasm };
|
|
32
|
+
}
|
|
33
|
+
getNumThreads() {
|
|
34
|
+
return this.workers.length + 1;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Init as main thread. Spawn child threads.
|
|
38
|
+
*/
|
|
39
|
+
async init(threads = Math.min(getNumCpu(), BarretenbergWasm.MAX_THREADS), logger = debug, initial = 25, maximum = 2 ** 16) {
|
|
40
|
+
this.logger = logger;
|
|
41
|
+
const initialMb = (initial * 2 ** 16) / (1024 * 1024);
|
|
42
|
+
const maxMb = (maximum * 2 ** 16) / (1024 * 1024);
|
|
43
|
+
this.logger(`initial mem: ${initial} pages, ${initialMb}MiB. ` +
|
|
44
|
+
`max mem: ${maximum} pages, ${maxMb}MiB. ` +
|
|
45
|
+
`threads: ${threads}`);
|
|
46
|
+
this.memory = new WebAssembly.Memory({ initial, maximum, shared: threads > 1 });
|
|
47
|
+
// Annoyingly the wasm declares if it's memory is shared or not. So now we need two wasms if we want to be
|
|
48
|
+
// able to fallback on "non shared memory" situations.
|
|
49
|
+
const code = await fetchCode(threads > 1);
|
|
50
|
+
const { instance, module } = await WebAssembly.instantiate(code, this.getImportObj(this.memory));
|
|
51
|
+
this.instance = instance;
|
|
52
|
+
// Init all global/static data.
|
|
53
|
+
this.call('_initialize');
|
|
54
|
+
// Create worker threads. Create 1 less than requested, as main thread counts as a thread.
|
|
55
|
+
this.logger('creating worker threads...');
|
|
56
|
+
this.workers = (await Promise.all(Array.from({ length: threads - 1 }).map(createWorker)));
|
|
57
|
+
this.remoteWasms = await Promise.all(this.workers.map(getRemoteBarretenbergWasm));
|
|
58
|
+
await Promise.all(this.remoteWasms.map(w => w.initThread(module, this.memory)));
|
|
59
|
+
this.logger('init complete.');
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Init as worker thread.
|
|
63
|
+
*/
|
|
64
|
+
async initThread(module, memory) {
|
|
65
|
+
this.isThread = true;
|
|
66
|
+
this.logger = threadLogger() || this.logger;
|
|
67
|
+
this.memory = memory;
|
|
68
|
+
this.instance = await WebAssembly.instantiate(module, this.getImportObj(this.memory));
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Called on main thread. Signals child threads to gracefully exit.
|
|
72
|
+
*/
|
|
73
|
+
async destroy() {
|
|
74
|
+
await Promise.all(this.workers.map(w => w.terminate()));
|
|
75
|
+
}
|
|
76
|
+
getImportObj(memory) {
|
|
77
|
+
/* eslint-disable camelcase */
|
|
78
|
+
const importObj = {
|
|
79
|
+
// We need to implement a part of the wasi api:
|
|
80
|
+
// https://github.com/WebAssembly/WASI/blob/main/phases/snapshot/docs.md
|
|
81
|
+
// We literally only need to support random_get, everything else is noop implementated in barretenberg.wasm.
|
|
82
|
+
wasi_snapshot_preview1: {
|
|
83
|
+
random_get: (out, length) => {
|
|
84
|
+
out = out >>> 0;
|
|
85
|
+
const randomData = randomBytes(length);
|
|
86
|
+
const mem = this.getMemory();
|
|
87
|
+
mem.set(randomData, out);
|
|
88
|
+
},
|
|
89
|
+
clock_time_get: (a1, a2, out) => {
|
|
90
|
+
out = out >>> 0;
|
|
91
|
+
const ts = BigInt(new Date().getTime()) * 1000000n;
|
|
92
|
+
const view = new DataView(this.getMemory().buffer);
|
|
93
|
+
view.setBigUint64(out, ts, true);
|
|
94
|
+
},
|
|
95
|
+
proc_exit: () => {
|
|
96
|
+
this.logger('PANIC: proc_exit was called. This is maybe caused by "joining" with unstable wasi pthreads.');
|
|
97
|
+
this.logger(new Error().stack);
|
|
98
|
+
killSelf();
|
|
99
|
+
},
|
|
100
|
+
},
|
|
101
|
+
wasi: {
|
|
102
|
+
'thread-spawn': (arg) => {
|
|
103
|
+
arg = arg >>> 0;
|
|
104
|
+
const id = this.nextThreadId++;
|
|
105
|
+
const worker = this.nextWorker++ % this.remoteWasms.length;
|
|
106
|
+
// this.logger(`spawning thread ${id} on worker ${worker} with arg ${arg >>> 0}`);
|
|
107
|
+
this.remoteWasms[worker].call('wasi_thread_start', id, arg).catch(this.logger);
|
|
108
|
+
// this.remoteWasms[worker].postMessage({ msg: 'thread', data: { id, arg } });
|
|
109
|
+
return id;
|
|
110
|
+
},
|
|
111
|
+
},
|
|
112
|
+
// These are functions implementations for imports we've defined are needed.
|
|
113
|
+
// The native C++ build defines these in a module called "env". We must implement TypeScript versions here.
|
|
114
|
+
env: {
|
|
115
|
+
env_hardware_concurrency: () => {
|
|
116
|
+
// If there are no workers (we're already running as a worker, or the main thread requested no workers)
|
|
117
|
+
// then we return 1, which should cause any algos using threading to just not create a thread.
|
|
118
|
+
return this.remoteWasms.length + 1;
|
|
119
|
+
},
|
|
120
|
+
/**
|
|
121
|
+
* The 'info' call we use for logging in C++, calls this under the hood.
|
|
122
|
+
* The native code will just print to std:err (to avoid std::cout which is used for IPC).
|
|
123
|
+
* Here we just emit the log line for the client to decide what to do with.
|
|
124
|
+
*/
|
|
125
|
+
logstr: (addr) => {
|
|
126
|
+
const str = this.stringFromAddress(addr);
|
|
127
|
+
const m = this.getMemory();
|
|
128
|
+
const str2 = `${str} (mem: ${(m.length / (1024 * 1024)).toFixed(2)}MiB)`;
|
|
129
|
+
this.logger(str2);
|
|
130
|
+
if (str2.startsWith('WARNING:')) {
|
|
131
|
+
this.logger(new Error().stack);
|
|
132
|
+
}
|
|
133
|
+
},
|
|
134
|
+
get_data: (keyAddr, outBufAddr) => {
|
|
135
|
+
const key = this.stringFromAddress(keyAddr);
|
|
136
|
+
outBufAddr = outBufAddr >>> 0;
|
|
137
|
+
const data = this.memStore[key];
|
|
138
|
+
if (!data) {
|
|
139
|
+
this.logger(`get_data miss ${key}`);
|
|
140
|
+
return;
|
|
141
|
+
}
|
|
142
|
+
// this.logger(`get_data hit ${key} size: ${data.length} dest: ${outBufAddr}`);
|
|
143
|
+
// this.logger(Buffer.from(data.slice(0, 64)).toString('hex'));
|
|
144
|
+
this.writeMemory(outBufAddr, data);
|
|
145
|
+
},
|
|
146
|
+
set_data: (keyAddr, dataAddr, dataLength) => {
|
|
147
|
+
const key = this.stringFromAddress(keyAddr);
|
|
148
|
+
dataAddr = dataAddr >>> 0;
|
|
149
|
+
this.memStore[key] = this.getMemorySlice(dataAddr, dataAddr + dataLength).slice();
|
|
150
|
+
// this.logger(`set_data: ${key} length: ${dataLength}`);
|
|
151
|
+
},
|
|
152
|
+
memory,
|
|
153
|
+
},
|
|
154
|
+
};
|
|
155
|
+
/* eslint-enable camelcase */
|
|
156
|
+
return importObj;
|
|
157
|
+
}
|
|
158
|
+
exports() {
|
|
159
|
+
return this.instance.exports;
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* When returning values from the WASM, use >>> operator to convert signed representation to unsigned representation.
|
|
163
|
+
*/
|
|
164
|
+
call(name, ...args) {
|
|
165
|
+
if (!this.exports()[name]) {
|
|
166
|
+
throw new Error(`WASM function ${name} not found.`);
|
|
167
|
+
}
|
|
168
|
+
try {
|
|
169
|
+
return this.exports()[name](...args) >>> 0;
|
|
170
|
+
}
|
|
171
|
+
catch (err) {
|
|
172
|
+
const message = `WASM function ${name} aborted, error: ${err}`;
|
|
173
|
+
this.logger(message);
|
|
174
|
+
this.logger(err.stack);
|
|
175
|
+
if (this.isThread) {
|
|
176
|
+
killSelf();
|
|
177
|
+
}
|
|
178
|
+
else {
|
|
179
|
+
throw err;
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
memSize() {
|
|
184
|
+
return this.getMemory().length;
|
|
185
|
+
}
|
|
186
|
+
getMemorySlice(start, end) {
|
|
187
|
+
return this.getMemory().subarray(start, end);
|
|
188
|
+
}
|
|
189
|
+
writeMemory(offset, arr) {
|
|
190
|
+
const mem = this.getMemory();
|
|
191
|
+
mem.set(arr, offset);
|
|
192
|
+
}
|
|
193
|
+
// PRIVATE METHODS
|
|
194
|
+
getMemory() {
|
|
195
|
+
return new Uint8Array(this.memory.buffer);
|
|
196
|
+
}
|
|
197
|
+
stringFromAddress(addr) {
|
|
198
|
+
addr = addr >>> 0;
|
|
199
|
+
const m = this.getMemory();
|
|
200
|
+
let i = addr;
|
|
201
|
+
for (; m[i] !== 0; ++i)
|
|
202
|
+
;
|
|
203
|
+
const textDecoder = new TextDecoder('ascii');
|
|
204
|
+
return textDecoder.decode(m.slice(addr, i));
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
BarretenbergWasm.MAX_THREADS = 32;
|
|
208
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFycmV0ZW5iZXJnX3dhc20uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmFycmV0ZW5iZXJnX3dhc20vYmFycmV0ZW5iZXJnX3dhc20udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUN0QyxPQUFPLFdBQVcsTUFBTSxPQUFPLENBQUM7QUFDaEMsT0FBTyxFQUFVLEtBQUssRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUN4QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDakQsT0FBTyxFQUNMLFNBQVMsRUFDVCxTQUFTLEVBQ1QsWUFBWSxFQUNaLHlCQUF5QixFQUN6QixZQUFZLEVBQ1osUUFBUSxHQUNULE1BQU0sMkJBQTJCLENBQUM7QUFFbkMsTUFBTSxLQUFLLEdBQUcsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDO0FBRXhDLFlBQVksQ0FBQyxtQkFBbUIsR0FBRyxFQUFFLENBQUM7QUFFdEMsTUFBTSxPQUFPLGdCQUFnQjtJQUE3QjtRQUVVLGFBQVEsR0FBa0MsRUFBRSxDQUFDO1FBRzdDLFlBQU8sR0FBYSxFQUFFLENBQUM7UUFDdkIsZ0JBQVcsR0FBNkIsRUFBRSxDQUFDO1FBQzNDLGVBQVUsR0FBRyxDQUFDLENBQUM7UUFDZixpQkFBWSxHQUFHLENBQUMsQ0FBQztRQUNqQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLFdBQU0sR0FBMEIsS0FBSyxDQUFDO0lBMk5oRCxDQUFDO0lBek5RLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRztRQUNyQixNQUFNLFlBQVksR0FBRyxJQUFJLGdCQUFnQixFQUFFLENBQUM7UUFDNUMsTUFBTSxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNCLE9BQU8sWUFBWSxDQUFDO0lBQ3RCLENBQUM7SUFFRDs7O09BR0c7SUFDSSxNQUFNLENBQUMsS0FBSyxDQUFDLFNB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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"barretenberg_wasm.test.d.ts","sourceRoot":"","sources":["../../../src/barretenberg_wasm/barretenberg_wasm.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { BarretenbergWasm } from './barretenberg_wasm.js';
|
|
2
|
+
describe('barretenberg wasm', () => {
|
|
3
|
+
let wasm;
|
|
4
|
+
beforeAll(async () => {
|
|
5
|
+
wasm = await BarretenbergWasm.new();
|
|
6
|
+
});
|
|
7
|
+
afterAll(async () => {
|
|
8
|
+
await wasm.destroy();
|
|
9
|
+
});
|
|
10
|
+
it('should new malloc, transfer and slice mem', () => {
|
|
11
|
+
const length = 1024;
|
|
12
|
+
const ptr = wasm.call('bbmalloc', length);
|
|
13
|
+
const buf = Buffer.alloc(length, 128);
|
|
14
|
+
wasm.writeMemory(ptr, buf);
|
|
15
|
+
const result = Buffer.from(wasm.getMemorySlice(ptr, ptr + length));
|
|
16
|
+
wasm.call('bbfree', ptr);
|
|
17
|
+
expect(result).toStrictEqual(buf);
|
|
18
|
+
});
|
|
19
|
+
it('test abort', () => {
|
|
20
|
+
expect(() => wasm.call('test_abort')).toThrow();
|
|
21
|
+
});
|
|
22
|
+
it('test c/c++ stdout/stderr', () => {
|
|
23
|
+
// We're checking we don't crash, but you can manually confirm you see log lines handled by logstr.
|
|
24
|
+
wasm.call('test_stdout_stderr');
|
|
25
|
+
});
|
|
26
|
+
});
|
|
27
|
+
describe('barretenberg wasm worker', () => {
|
|
28
|
+
let worker;
|
|
29
|
+
let wasm;
|
|
30
|
+
beforeAll(async () => {
|
|
31
|
+
({ wasm, worker } = (await BarretenbergWasm.newWorker(2)));
|
|
32
|
+
}, 20000);
|
|
33
|
+
afterAll(async () => {
|
|
34
|
+
await wasm.destroy();
|
|
35
|
+
await worker.terminate();
|
|
36
|
+
});
|
|
37
|
+
it('should new malloc, transfer and slice mem', async () => {
|
|
38
|
+
const length = 1024;
|
|
39
|
+
const ptr = await wasm.call('bbmalloc', length);
|
|
40
|
+
const buf = Buffer.alloc(length, 128);
|
|
41
|
+
await wasm.writeMemory(ptr, buf);
|
|
42
|
+
const result = Buffer.from(await wasm.getMemorySlice(ptr, ptr + length));
|
|
43
|
+
await wasm.call('bbfree', ptr);
|
|
44
|
+
expect(result).toStrictEqual(buf);
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFycmV0ZW5iZXJnX3dhc20udGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iYXJyZXRlbmJlcmdfd2FzbS9iYXJyZXRlbmJlcmdfd2FzbS50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBMEIsTUFBTSx3QkFBd0IsQ0FBQztBQUVsRixRQUFRLENBQUMsbUJBQW1CLEVBQUUsR0FBRyxFQUFFO0lBQ2pDLElBQUksSUFBdUIsQ0FBQztJQUU1QixTQUFTLENBQUMsS0FBSyxJQUFJLEVBQUU7UUFDbkIsSUFBSSxHQUFHLE1BQU0sZ0JBQWdCLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDdEMsQ0FBQyxDQUFDLENBQUM7SUFFSCxRQUFRLENBQUMsS0FBSyxJQUFJLEVBQUU7UUFDbEIsTUFBTSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDdkIsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsMkNBQTJDLEVBQUUsR0FBRyxFQUFFO1FBQ25ELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQztRQUNwQixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUMxQyxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUMzQixNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxFQUFFLEdBQUcsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ25FLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ3pCLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDcEMsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsWUFBWSxFQUFFLEdBQUcsRUFBRTtRQUNwQixNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2xELENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLDBCQUEwQixFQUFFLEdBQUcsRUFBRTtRQUNsQyxtR0FBbUc7UUFDbkcsSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBQ2xDLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUM7QUFFSCxRQUFRLENBQUMsMEJBQTBCLEVBQUUsR0FBRyxFQUFFO0lBQ3hDLElBQUksTUFBZSxDQUFDO0lBQ3BCLElBQUksSUFBNkIsQ0FBQztJQUVsQyxTQUFTLENBQUMsS0FBSyxJQUFJLEVBQUU7UUFDbkIsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDLE1BQU0sZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFRLENBQUMsQ0FBQztJQUNwRSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFFVixRQUFRLENBQUMsS0FBSyxJQUFJLEVBQUU7UUFDbEIsTUFBTSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDckIsTUFBTSxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDM0IsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsMkNBQTJDLEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDekQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDaEQsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDdEMsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNqQyxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDekUsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUMvQixNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3BDLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMifQ==
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BarretenbergWasmWorker } from '../barretenberg_wasm.js';
|
|
2
|
-
export declare function fetchCode(
|
|
2
|
+
export declare function fetchCode(multithreading: boolean): Promise<ArrayBuffer>;
|
|
3
3
|
export declare function createWorker(): Worker;
|
|
4
4
|
export declare function getRemoteBarretenbergWasm(worker: Worker): BarretenbergWasmWorker;
|
|
5
5
|
export declare function getNumCpu(): number;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/barretenberg_wasm/browser/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAyB,MAAM,yBAAyB,CAAC;AAGxF,wBAAsB,SAAS,CAAC,cAAc,EAAE,OAAO,wBAMtD;AAED,wBAAgB,YAAY,WAM3B;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,GAAG,sBAAsB,CAEhF;AAED,wBAAgB,SAAS,WAExB;AAED,wBAAgB,YAAY,IAAI,CAAC,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAElE;AAED,wBAAgB,QAAQ,SAEvB"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { wrap } from 'comlink';
|
|
2
|
+
import debug from 'debug';
|
|
3
|
+
export async function fetchCode(multithreading) {
|
|
4
|
+
const wasmModuleUrl = multithreading
|
|
5
|
+
? new URL(`../../../barretenberg-threads.wasm`, import.meta.url)
|
|
6
|
+
: new URL(`../../../barretenberg.wasm`, import.meta.url);
|
|
7
|
+
const res = await fetch(wasmModuleUrl.href);
|
|
8
|
+
return await res.arrayBuffer();
|
|
9
|
+
}
|
|
10
|
+
export function createWorker() {
|
|
11
|
+
const worker = new Worker(new URL(`./worker.js`, import.meta.url));
|
|
12
|
+
const debugStr = debug.disable();
|
|
13
|
+
debug.enable(debugStr);
|
|
14
|
+
worker.postMessage({ debug: debugStr });
|
|
15
|
+
return worker;
|
|
16
|
+
}
|
|
17
|
+
export function getRemoteBarretenbergWasm(worker) {
|
|
18
|
+
return wrap(worker);
|
|
19
|
+
}
|
|
20
|
+
export function getNumCpu() {
|
|
21
|
+
return navigator.hardwareConcurrency;
|
|
22
|
+
}
|
|
23
|
+
export function threadLogger() {
|
|
24
|
+
return undefined;
|
|
25
|
+
}
|
|
26
|
+
export function killSelf() {
|
|
27
|
+
self.close();
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYmFycmV0ZW5iZXJnX3dhc20vYnJvd3Nlci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRS9CLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUUxQixNQUFNLENBQUMsS0FBSyxVQUFVLFNBQVMsQ0FBQyxjQUF1QjtJQUNyRCxNQUFNLGFBQWEsR0FBRyxjQUFjO1FBQ2xDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxpQ0FBaUMsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztRQUM3RCxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMseUJBQXlCLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN4RCxNQUFNLEdBQUcsR0FBRyxNQUFNLEtBQUssQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUMsT0FBTyxNQUFNLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztBQUNqQyxDQUFDO0FBRUQsTUFBTSxVQUFVLFlBQVk7SUFDMUIsTUFBTSxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxHQUFHLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNuRSxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDakMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN2QixNQUFNLENBQUMsV0FBVyxDQUFDLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDeEMsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztBQUVELE1BQU0sVUFBVSx5QkFBeUIsQ0FBQyxNQUFjO0lBQ3RELE9BQU8sSUFBSSxDQUFtQixNQUFNLENBQUMsQ0FBQztBQUN4QyxDQUFDO0FBRUQsTUFBTSxVQUFVLFNBQVM7SUFDdkIsT0FBTyxTQUFTLENBQUMsbUJBQW1CLENBQUM7QUFDdkMsQ0FBQztBQUVELE1BQU0sVUFBVSxZQUFZO0lBQzFCLE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUM7QUFFRCxNQUFNLFVBQVUsUUFBUTtJQUN0QixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7QUFDZixDQUFDIn0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../../../src/barretenberg_wasm/browser/worker.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { expose } from 'comlink';
|
|
2
|
+
import { BarretenbergWasm } from '../index.js';
|
|
3
|
+
import debug from 'debug';
|
|
4
|
+
self.onmessage = function (e) {
|
|
5
|
+
if (e.data.debug) {
|
|
6
|
+
debug.enable(e.data.debug);
|
|
7
|
+
}
|
|
8
|
+
};
|
|
9
|
+
expose(new BarretenbergWasm());
|
|
10
|
+
self.postMessage({ ready: true });
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2JhcnJldGVuYmVyZ193YXNtL2Jyb3dzZXIvd29ya2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDakMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQy9DLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUUxQixJQUFJLENBQUMsU0FBUyxHQUFHLFVBQVUsQ0FBQztJQUMxQixJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO1FBQ2hCLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUM1QjtBQUNILENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxJQUFJLGdCQUFnQixFQUFFLENBQUMsQ0FBQztBQUUvQixJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMifQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/barretenberg_wasm/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export * from './barretenberg_wasm.js';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmFycmV0ZW5iZXJnX3dhc20vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx3QkFBd0IsQ0FBQyJ9
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/// <reference types="node" resolution-mode="require"/>
|
|
3
3
|
import { Worker } from 'worker_threads';
|
|
4
4
|
import { type BarretenbergWasmWorker } from '../barretenberg_wasm.js';
|
|
5
|
-
export declare function fetchCode(
|
|
5
|
+
export declare function fetchCode(multithreading: boolean): Promise<Buffer>;
|
|
6
6
|
export declare function createWorker(): Worker;
|
|
7
7
|
export declare function getRemoteBarretenbergWasm(worker: Worker): BarretenbergWasmWorker;
|
|
8
8
|
export declare function getNumCpu(): number;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/barretenberg_wasm/node/index.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAKxC,OAAO,EAAyB,KAAK,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAK7F,wBAAsB,SAAS,CAAC,cAAc,EAAE,OAAO,mBAGtD;AAED,wBAAgB,YAAY,WAG3B;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,GAAG,sBAAsB,CAEhF;AAED,wBAAgB,SAAS,WAExB;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,IAAI,CAAC,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAIlE;AAED,wBAAgB,QAAQ,IAAI,KAAK,CAKhC"}
|
|
@@ -6,9 +6,9 @@ import os from 'os';
|
|
|
6
6
|
import { wrap } from 'comlink';
|
|
7
7
|
import { nodeEndpoint } from './node_endpoint.js';
|
|
8
8
|
import { writeSync } from 'fs';
|
|
9
|
-
export async function fetchCode(
|
|
9
|
+
export async function fetchCode(multithreading) {
|
|
10
10
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
11
|
-
return await readFile(__dirname + '
|
|
11
|
+
return await readFile(__dirname + `/../../${multithreading ? 'barretenberg-threads.wasm' : 'barretenberg.wasm'}`);
|
|
12
12
|
}
|
|
13
13
|
export function createWorker() {
|
|
14
14
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
@@ -37,4 +37,4 @@ export function killSelf() {
|
|
|
37
37
|
process.kill(process.pid);
|
|
38
38
|
throw new Error();
|
|
39
39
|
}
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYmFycmV0ZW5iZXJnX3dhc20vbm9kZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDdkMsT0FBTyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBRXBCLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDL0IsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFFL0IsTUFBTSxDQUFDLEtBQUssVUFBVSxTQUFTLENBQUMsY0FBdUI7SUFDckQsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDMUQsT0FBTyxNQUFNLFFBQVEsQ0FBQyxTQUFTLEdBQUcsVUFBVSxjQUFjLENBQUMsQ0FBQyxDQUFDLDJCQUEyQixDQUFDLENBQUMsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLENBQUM7QUFDcEgsQ0FBQztBQUVELE1BQU0sVUFBVSxZQUFZO0lBQzFCLE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzFELE9BQU8sSUFBSSxNQUFNLENBQUMsU0FBUyxHQUFHLFlBQVksQ0FBQyxDQUFDO0FBQzlDLENBQUM7QUFFRCxNQUFNLFVBQVUseUJBQXlCLENBQUMsTUFBYztJQUN0RCxPQUFPLElBQUksQ0FBbUIsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUEyQixDQUFDO0FBQ2hGLENBQUM7QUFFRCxNQUFNLFVBQVUsU0FBUztJQUN2QixPQUFPLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxNQUFNLENBQUM7QUFDMUIsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLFlBQVk7SUFDMUIsT0FBTyxDQUFDLEdBQVcsRUFBRSxFQUFFO1FBQ3JCLFNBQVMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDO0lBQzNCLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsUUFBUTtJQUN0QixrSEFBa0g7SUFDbEgsb0VBQW9FO0lBQ3BFLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzFCLE1BQU0sSUFBSSxLQUFLLEVBQUUsQ0FBQztBQUNwQixDQUFDIn0=
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { NodeEndpoint } from 'comlink/dist/esm/node-adapter.js';
|
|
2
2
|
export declare function nodeEndpoint(nep: NodeEndpoint): {
|
|
3
|
-
postMessage:
|
|
3
|
+
postMessage: any;
|
|
4
4
|
addEventListener: (_: any, eh: any) => void;
|
|
5
5
|
removeEventListener: (_: any, eh: any) => void;
|
|
6
|
-
start:
|
|
6
|
+
start: any;
|
|
7
7
|
};
|
|
8
8
|
//# sourceMappingURL=node_endpoint.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node_endpoint.d.ts","sourceRoot":"","sources":["../../../../src/barretenberg_wasm/node/node_endpoint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAEhE,wBAAgB,YAAY,CAAC,GAAG,EAAE,YAAY;;0BAIpB,GAAG,MAAM,GAAG;6BAWT,GAAG,MAAM,GAAG;;EAUxC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export function nodeEndpoint(nep) {
|
|
2
|
+
const listeners = new WeakMap();
|
|
3
|
+
return {
|
|
4
|
+
postMessage: nep.postMessage.bind(nep),
|
|
5
|
+
addEventListener: (_, eh) => {
|
|
6
|
+
const l = (data) => {
|
|
7
|
+
if ('handleEvent' in eh) {
|
|
8
|
+
eh.handleEvent({ data });
|
|
9
|
+
}
|
|
10
|
+
else {
|
|
11
|
+
eh({ data });
|
|
12
|
+
}
|
|
13
|
+
};
|
|
14
|
+
nep.on('message', l);
|
|
15
|
+
listeners.set(eh, l);
|
|
16
|
+
},
|
|
17
|
+
removeEventListener: (_, eh) => {
|
|
18
|
+
const l = listeners.get(eh);
|
|
19
|
+
if (!l) {
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
nep.off('message', l);
|
|
23
|
+
listeners.delete(eh);
|
|
24
|
+
},
|
|
25
|
+
start: nep.start && nep.start.bind(nep),
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZV9lbmRwb2ludC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9iYXJyZXRlbmJlcmdfd2FzbS9ub2RlL25vZGVfZW5kcG9pbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxVQUFVLFlBQVksQ0FBQyxHQUFpQjtJQUM1QyxNQUFNLFNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBQ2hDLE9BQU87UUFDTCxXQUFXLEVBQUUsR0FBRyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO1FBQ3RDLGdCQUFnQixFQUFFLENBQUMsQ0FBTSxFQUFFLEVBQU8sRUFBRSxFQUFFO1lBQ3BDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBUyxFQUFFLEVBQUU7Z0JBQ3RCLElBQUksYUFBYSxJQUFJLEVBQUUsRUFBRTtvQkFDdkIsRUFBRSxDQUFDLFdBQVcsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7aUJBQzFCO3FCQUFNO29CQUNMLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7aUJBQ2Q7WUFDSCxDQUFDLENBQUM7WUFDRixHQUFHLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNyQixTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN2QixDQUFDO1FBQ0QsbUJBQW1CLEVBQUUsQ0FBQyxDQUFNLEVBQUUsRUFBTyxFQUFFLEVBQUU7WUFDdkMsTUFBTSxDQUFDLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUM1QixJQUFJLENBQUMsQ0FBQyxFQUFFO2dCQUNOLE9BQU87YUFDUjtZQUNELEdBQUcsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3RCLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdkIsQ0FBQztRQUNELEtBQUssRUFBRSxHQUFHLENBQUMsS0FBSyxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztLQUN4QyxDQUFDO0FBQ0osQ0FBQyJ9
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../../../src/barretenberg_wasm/node/worker.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { parentPort } from 'worker_threads';
|
|
2
|
+
import { expose } from 'comlink';
|
|
3
|
+
import { BarretenbergWasm } from '../index.js';
|
|
4
|
+
import { nodeEndpoint } from './node_endpoint.js';
|
|
5
|
+
if (!parentPort) {
|
|
6
|
+
throw new Error('No parentPort');
|
|
7
|
+
}
|
|
8
|
+
expose(new BarretenbergWasm(), nodeEndpoint(parentPort));
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2JhcnJldGVuYmVyZ193YXNtL25vZGUvd29ya2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFbEQsSUFBSSxDQUFDLFVBQVUsRUFBRTtJQUNmLE1BQU0sSUFBSSxLQUFLLENBQUMsZUFBZSxDQUFDLENBQUM7Q0FDbEM7QUFFRCxNQUFNLENBQUMsSUFBSSxnQkFBZ0IsRUFBRSxFQUFFLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDIn0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/bigint-array/index.ts"],"names":[],"mappings":"AAAA,wBAAgB,UAAU,CAAC,KAAK,EAAE,UAAU,UAU3C;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,SAAK,cAQxD"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export function toBigIntBE(bytes) {
|
|
2
|
+
// A Buffer in node, *is* a Uint8Array. We can't refuse it's type.
|
|
3
|
+
// However the algo below only works on an actual Uint8Array, hence we make a new one to be safe.
|
|
4
|
+
bytes = new Uint8Array(bytes);
|
|
5
|
+
let bigint = BigInt(0);
|
|
6
|
+
const view = new DataView(bytes.buffer);
|
|
7
|
+
for (let i = 0; i < bytes.byteLength; i++) {
|
|
8
|
+
bigint = (bigint << BigInt(8)) + BigInt(view.getUint8(i));
|
|
9
|
+
}
|
|
10
|
+
return bigint;
|
|
11
|
+
}
|
|
12
|
+
export function toBufferBE(value, byteLength = 32) {
|
|
13
|
+
const bytes = new Uint8Array(byteLength);
|
|
14
|
+
const view = new DataView(bytes.buffer);
|
|
15
|
+
for (let i = 0; i < byteLength; i++) {
|
|
16
|
+
view.setUint8(byteLength - i - 1, Number(value & BigInt(0xff)));
|
|
17
|
+
value >>= BigInt(8);
|
|
18
|
+
}
|
|
19
|
+
return bytes;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmlnaW50LWFycmF5L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxVQUFVLENBQUMsS0FBaUI7SUFDMUMsa0VBQWtFO0lBQ2xFLGlHQUFpRztJQUNqRyxLQUFLLEdBQUcsSUFBSSxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsSUFBSSxNQUFNLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3ZCLE1BQU0sSUFBSSxHQUFHLElBQUksUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN4QyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUN6QyxNQUFNLEdBQUcsQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUMzRDtJQUNELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFFRCxNQUFNLFVBQVUsVUFBVSxDQUFDLEtBQWEsRUFBRSxVQUFVLEdBQUcsRUFBRTtJQUN2RCxNQUFNLEtBQUssR0FBRyxJQUFJLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN6QyxNQUFNLElBQUksR0FBRyxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDeEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFVBQVUsRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUNuQyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNoRSxLQUFLLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ3JCO0lBQ0QsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDIn0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"function_declaration.d.ts","sourceRoot":"","sources":["../../../src/bindgen/function_declaration.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,GAAG;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,GAAG,EAAE,CAAC;IACd,OAAO,EAAE,GAAG,EAAE,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;CAClB"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb25fZGVjbGFyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmluZGdlbi9mdW5jdGlvbl9kZWNsYXJhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/bindgen/index.ts"],"names":[],"mappings":""}
|