@aztec/bb.js 0.5.0 → 0.6.7
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 +29 -24
- package/dest/browser/barretenberg/index.d.ts +20 -0
- package/dest/browser/barretenberg/index.d.ts.map +1 -0
- package/dest/browser/barretenberg_api/index.d.ts +1 -51
- package/dest/browser/barretenberg_api/index.d.ts.map +1 -1
- package/dest/browser/barretenberg_binder/heap_allocator.d.ts +1 -1
- package/dest/browser/barretenberg_binder/heap_allocator.d.ts.map +1 -1
- package/dest/browser/barretenberg_binder/index.d.ts +1 -7
- package/dest/browser/barretenberg_binder/index.d.ts.map +1 -1
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_base/index.d.ts +40 -0
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_base/index.d.ts.map +1 -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/main.worker.d.ts +3 -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/node/index.d.ts +4 -0
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.d.ts.map +1 -0
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/index.d.ts +37 -0
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/index.d.ts.map +1 -0
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.d.ts +4 -0
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.d.ts.map +1 -0
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts +28 -0
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts.map +1 -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/node/index.d.ts +3 -0
- package/dest/browser/barretenberg_wasm/fetch_code/node/index.d.ts.map +1 -0
- package/dest/browser/barretenberg_wasm/helpers/browser/index.d.ts +6 -0
- package/dest/browser/barretenberg_wasm/helpers/browser/index.d.ts.map +1 -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/{node/barretenberg_wasm → browser/barretenberg_wasm/helpers}/node/index.d.ts +7 -5
- package/dest/browser/barretenberg_wasm/helpers/node/index.d.ts.map +1 -0
- package/dest/browser/barretenberg_wasm/{node → helpers/node}/node_endpoint.d.ts +2 -2
- package/dest/browser/barretenberg_wasm/helpers/node/node_endpoint.d.ts.map +1 -0
- package/dest/browser/barretenberg_wasm/index.d.ts +13 -1
- package/dest/browser/barretenberg_wasm/index.d.ts.map +1 -1
- package/dest/browser/crs/browser/cached_net_crs.d.ts +1 -1
- package/dest/browser/crs/browser/cached_net_crs.d.ts.map +1 -1
- package/dest/browser/crs/index.d.ts +1 -1
- package/dest/browser/crs/index.d.ts.map +1 -1
- package/dest/browser/index.d.ts +2 -4
- package/dest/browser/index.d.ts.map +1 -1
- package/dest/browser/index.js +2 -6
- package/dest/browser/index.js.LICENSE.txt +14 -0
- package/dest/browser/index.worker.js.LICENSE.txt +5 -0
- package/dest/browser/index.worker.worker.js.LICENSE.txt +5 -0
- package/dest/browser/random/index.d.ts +1 -1
- package/dest/browser/random/index.d.ts.map +1 -1
- package/dest/browser/types/index.d.ts +1 -1
- package/dest/browser/types/index.d.ts.map +1 -1
- package/dest/{node/types/node → browser/types}/point.d.ts +2 -2
- package/dest/browser/types/point.d.ts.map +1 -0
- package/dest/node/barretenberg/index.d.ts +20 -0
- package/dest/node/barretenberg/index.d.ts.map +1 -0
- package/dest/node/barretenberg/index.js +38 -0
- package/dest/node/barretenberg-threads.wasm +0 -0
- package/dest/node/barretenberg_api/blake2s.test.js +7 -7
- package/dest/node/barretenberg_api/common.test.js +3 -3
- package/dest/node/barretenberg_api/index.d.ts +1 -51
- package/dest/node/barretenberg_api/index.d.ts.map +1 -1
- package/dest/node/barretenberg_api/index.js +1 -189
- package/dest/node/barretenberg_api/pedersen.test.js +29 -29
- package/dest/node/barretenberg_api/schnorr.test.js +37 -36
- package/dest/node/barretenberg_binder/heap_allocator.d.ts +1 -1
- package/dest/node/barretenberg_binder/heap_allocator.d.ts.map +1 -1
- package/dest/node/barretenberg_binder/index.d.ts +1 -7
- package/dest/node/barretenberg_binder/index.d.ts.map +1 -1
- package/dest/node/barretenberg_binder/index.js +10 -30
- package/dest/node/barretenberg_wasm/barretenberg_wasm_base/index.d.ts +40 -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 +123 -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 +10 -0
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.d.ts +3 -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 +12 -0
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.d.ts +4 -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 +8 -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/index.d.ts +37 -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 +83 -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 +10 -0
- package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.d.ts +3 -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 +12 -0
- package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.d.ts +4 -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 +8 -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 +9 -0
- package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts +28 -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 +40 -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 +9 -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 +3 -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 +9 -0
- package/dest/node/barretenberg_wasm/helpers/browser/index.d.ts +6 -0
- package/dest/node/barretenberg_wasm/helpers/browser/index.d.ts.map +1 -0
- package/dest/node/barretenberg_wasm/helpers/browser/index.js +18 -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/{browser/barretenberg_wasm → node/barretenberg_wasm/helpers}/node/index.d.ts +7 -5
- package/dest/node/barretenberg_wasm/helpers/node/index.d.ts.map +1 -0
- package/dest/node/barretenberg_wasm/helpers/node/index.js +36 -0
- package/dest/node/barretenberg_wasm/{node → helpers/node}/node_endpoint.d.ts +2 -2
- 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 +13 -1
- package/dest/node/barretenberg_wasm/index.d.ts.map +1 -1
- package/dest/node/barretenberg_wasm/index.js +19 -2
- 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 +38 -0
- package/dest/node/bindgen/typescript.d.ts.map +1 -1
- package/dest/node/bindgen/typescript.js +2 -35
- package/dest/node/crs/browser/cached_net_crs.d.ts +1 -1
- package/dest/node/crs/browser/cached_net_crs.d.ts.map +1 -1
- package/dest/node/crs/browser/cached_net_crs.js +2 -4
- package/dest/node/crs/index.d.ts.map +1 -1
- package/dest/node/crs/index.js +1 -1
- package/dest/node/examples/simple.rawtest.d.ts +2 -0
- package/dest/node/examples/simple.rawtest.d.ts.map +1 -0
- package/dest/node/examples/simple.rawtest.js +29 -0
- package/dest/node/examples/simple.test.js +5 -5
- package/dest/node/index.d.ts +2 -4
- package/dest/node/index.d.ts.map +1 -1
- package/dest/node/index.js +3 -5
- package/dest/node/info.json +22 -0
- package/dest/node/main.d.ts +2 -1
- package/dest/node/main.d.ts.map +1 -1
- package/dest/node/main.js +46 -26
- package/dest/node/random/index.d.ts.map +1 -1
- package/dest/node/random/index.js +1 -1
- package/dest/node/types/fields.js +5 -3
- package/dest/node/types/fixed_size_buffer.js +7 -4
- package/dest/node/types/index.d.ts +1 -1
- package/dest/node/types/index.d.ts.map +1 -1
- package/dest/node/types/index.js +2 -2
- package/dest/{browser/types/node → node/types}/point.d.ts +2 -2
- package/dest/node/types/point.d.ts.map +1 -0
- package/dest/node/types/point.js +32 -0
- package/dest/node/types/ptr.js +3 -2
- package/package.json +35 -27
- package/src/barretenberg/index.ts +42 -0
- package/src/barretenberg_api/blake2s.test.ts +7 -8
- package/src/barretenberg_api/common.test.ts +3 -3
- package/src/barretenberg_api/index.ts +1 -306
- package/src/barretenberg_api/pedersen.test.ts +31 -30
- package/src/barretenberg_api/schnorr.test.ts +73 -59
- package/src/barretenberg_binder/heap_allocator.ts +1 -1
- package/src/barretenberg_binder/index.ts +12 -29
- package/src/barretenberg_wasm/barretenberg_wasm_base/index.ts +136 -0
- package/src/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.ts +10 -0
- package/src/barretenberg_wasm/{browser/worker.ts → barretenberg_wasm_main/factory/browser/main.worker.ts} +4 -2
- package/src/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.ts +8 -0
- package/src/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.ts +10 -0
- package/src/barretenberg_wasm/barretenberg_wasm_main/index.ts +105 -0
- package/src/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.ts +10 -0
- package/src/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.ts +15 -0
- package/src/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.ts +8 -0
- package/src/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.ts +10 -0
- package/src/barretenberg_wasm/barretenberg_wasm_thread/index.ts +47 -0
- package/src/barretenberg_wasm/fetch_code/browser/index.ts +9 -0
- package/src/barretenberg_wasm/fetch_code/browser/wasm-module.d.ts +4 -0
- package/src/barretenberg_wasm/fetch_code/index.ts +1 -0
- package/src/barretenberg_wasm/fetch_code/node/index.ts +9 -0
- package/src/barretenberg_wasm/helpers/browser/index.ts +22 -0
- package/src/barretenberg_wasm/helpers/index.ts +1 -0
- package/src/barretenberg_wasm/{node → helpers/node}/index.ts +9 -14
- package/src/barretenberg_wasm/{barretenberg_wasm.test.ts → index.test.ts} +15 -27
- package/src/barretenberg_wasm/index.ts +22 -1
- package/src/bindgen/typescript.ts +1 -38
- package/src/crs/browser/cached_net_crs.ts +1 -3
- package/src/crs/index.ts +1 -1
- package/src/examples/simple.rawtest.ts +37 -0
- package/src/examples/simple.test.ts +5 -5
- package/src/index.ts +2 -4
- package/src/info.json +22 -0
- package/src/main.ts +48 -28
- package/src/random/index.ts +1 -1
- package/src/types/index.ts +1 -1
- package/src/types/{node/point.ts → point.ts} +2 -2
- package/dest/barretenberg-threads.wasm +0 -0
- package/dest/barretenberg.wasm +0 -0
- package/dest/browser/539.js +0 -2014
- package/dest/browser/995.js +0 -578
- package/dest/browser/async_map/index.js +0 -16
- package/dest/browser/barretenberg_api/blake2s.test.d.ts +0 -2
- package/dest/browser/barretenberg_api/blake2s.test.d.ts.map +0 -1
- package/dest/browser/barretenberg_api/blake2s.test.js +0 -30
- package/dest/browser/barretenberg_api/common.test.d.ts +0 -2
- package/dest/browser/barretenberg_api/common.test.d.ts.map +0 -1
- package/dest/browser/barretenberg_api/common.test.js +0 -18
- package/dest/browser/barretenberg_api/index.js +0 -379
- package/dest/browser/barretenberg_api/pedersen.test.d.ts +0 -2
- package/dest/browser/barretenberg_api/pedersen.test.d.ts.map +0 -1
- package/dest/browser/barretenberg_api/pedersen.test.js +0 -69
- package/dest/browser/barretenberg_api/schnorr.test.d.ts +0 -2
- package/dest/browser/barretenberg_api/schnorr.test.d.ts.map +0 -1
- package/dest/browser/barretenberg_api/schnorr.test.js +0 -113
- package/dest/browser/barretenberg_binder/heap_allocator.js +0 -59
- package/dest/browser/barretenberg_binder/heap_allocator_sync.d.ts +0 -22
- package/dest/browser/barretenberg_binder/heap_allocator_sync.d.ts.map +0 -1
- package/dest/browser/barretenberg_binder/heap_allocator_sync.js +0 -58
- package/dest/browser/barretenberg_binder/index.js +0 -73
- package/dest/browser/barretenberg_wasm/barretenberg_wasm.d.ts +0 -48
- package/dest/browser/barretenberg_wasm/barretenberg_wasm.d.ts.map +0 -1
- package/dest/browser/barretenberg_wasm/barretenberg_wasm.js +0 -208
- package/dest/browser/barretenberg_wasm/barretenberg_wasm.test.d.ts +0 -2
- package/dest/browser/barretenberg_wasm/barretenberg_wasm.test.d.ts.map +0 -1
- package/dest/browser/barretenberg_wasm/barretenberg_wasm.test.js +0 -47
- package/dest/browser/barretenberg_wasm/browser/index.d.ts +0 -8
- package/dest/browser/barretenberg_wasm/browser/index.d.ts.map +0 -1
- package/dest/browser/barretenberg_wasm/browser/index.js +0 -29
- package/dest/browser/barretenberg_wasm/browser/worker.d.ts +0 -2
- package/dest/browser/barretenberg_wasm/browser/worker.d.ts.map +0 -1
- package/dest/browser/barretenberg_wasm/browser/worker.js +0 -11
- package/dest/browser/barretenberg_wasm/index.js +0 -2
- package/dest/browser/barretenberg_wasm/node/index.d.ts.map +0 -1
- package/dest/browser/barretenberg_wasm/node/index.js +0 -40
- package/dest/browser/barretenberg_wasm/node/node_endpoint.d.ts.map +0 -1
- package/dest/browser/barretenberg_wasm/node/node_endpoint.js +0 -28
- package/dest/browser/barretenberg_wasm/node/worker.d.ts +0 -2
- package/dest/browser/barretenberg_wasm/node/worker.d.ts.map +0 -1
- package/dest/browser/barretenberg_wasm/node/worker.js +0 -9
- package/dest/browser/bigint-array/index.js +0 -21
- package/dest/browser/bindgen/function_declaration.d.ts +0 -11
- package/dest/browser/bindgen/function_declaration.d.ts.map +0 -1
- package/dest/browser/bindgen/function_declaration.js +0 -2
- package/dest/browser/bindgen/index.d.ts +0 -2
- package/dest/browser/bindgen/index.d.ts.map +0 -1
- package/dest/browser/bindgen/index.js +0 -15
- package/dest/browser/bindgen/mappings.d.ts +0 -4
- package/dest/browser/bindgen/mappings.d.ts.map +0 -1
- package/dest/browser/bindgen/mappings.js +0 -63
- package/dest/browser/bindgen/rust.d.ts +0 -2
- package/dest/browser/bindgen/rust.d.ts.map +0 -1
- package/dest/browser/bindgen/rust.js +0 -43
- package/dest/browser/bindgen/to_camel_case.d.ts +0 -2
- package/dest/browser/bindgen/to_camel_case.d.ts.map +0 -1
- package/dest/browser/bindgen/to_camel_case.js +0 -11
- package/dest/browser/bindgen/typescript.d.ts +0 -2
- package/dest/browser/bindgen/typescript.d.ts.map +0 -1
- package/dest/browser/bindgen/typescript.js +0 -80
- package/dest/browser/crs/browser/cached_net_crs.js +0 -56
- package/dest/browser/crs/browser/index.js +0 -2
- package/dest/browser/crs/index.js +0 -2
- package/dest/browser/crs/net_crs.js +0 -59
- package/dest/browser/crs/node/ignition_files_crs.js +0 -51
- package/dest/browser/crs/node/index.js +0 -54
- package/dest/browser/examples/simple.test.d.ts +0 -2
- package/dest/browser/examples/simple.test.d.ts.map +0 -1
- package/dest/browser/examples/simple.test.js +0 -22
- package/dest/browser/factory/index.d.ts +0 -21
- package/dest/browser/factory/index.d.ts.map +0 -1
- package/dest/browser/factory/index.js +0 -34
- package/dest/browser/main.d.ts +0 -10
- package/dest/browser/main.d.ts.map +0 -1
- package/dest/browser/main.js +0 -6586
- package/dest/browser/random/browser/index.js +0 -31
- package/dest/browser/random/index.js +0 -2
- package/dest/browser/random/node/index.js +0 -5
- package/dest/browser/serialize/buffer_reader.js +0 -66
- package/dest/browser/serialize/index.js +0 -4
- package/dest/browser/serialize/output_type.js +0 -44
- package/dest/browser/serialize/serialize.js +0 -139
- package/dest/browser/types/browser/index.d.ts +0 -2
- package/dest/browser/types/browser/index.d.ts.map +0 -1
- package/dest/browser/types/browser/index.js +0 -2
- package/dest/browser/types/browser/point.d.ts +0 -16
- package/dest/browser/types/browser/point.d.ts.map +0 -1
- package/dest/browser/types/browser/point.js +0 -46
- package/dest/browser/types/fields.js +0 -84
- package/dest/browser/types/fixed_size_buffer.js +0 -51
- package/dest/browser/types/index.js +0 -6
- package/dest/browser/types/node/index.d.ts +0 -2
- package/dest/browser/types/node/index.d.ts.map +0 -1
- package/dest/browser/types/node/index.js +0 -2
- package/dest/browser/types/node/point.d.ts.map +0 -1
- package/dest/browser/types/node/point.js +0 -31
- package/dest/browser/types/ptr.js +0 -19
- package/dest/browser/types/raw_buffer.js +0 -5
- package/dest/node/barretenberg_binder/heap_allocator_sync.d.ts +0 -22
- package/dest/node/barretenberg_binder/heap_allocator_sync.d.ts.map +0 -1
- package/dest/node/barretenberg_binder/heap_allocator_sync.js +0 -58
- package/dest/node/barretenberg_wasm/barretenberg_wasm.d.ts +0 -50
- package/dest/node/barretenberg_wasm/barretenberg_wasm.d.ts.map +0 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm.js +0 -208
- package/dest/node/barretenberg_wasm/barretenberg_wasm.test.d.ts +0 -2
- package/dest/node/barretenberg_wasm/barretenberg_wasm.test.d.ts.map +0 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm.test.js +0 -47
- package/dest/node/barretenberg_wasm/browser/index.d.ts +0 -8
- package/dest/node/barretenberg_wasm/browser/index.d.ts.map +0 -1
- package/dest/node/barretenberg_wasm/browser/index.js +0 -29
- package/dest/node/barretenberg_wasm/browser/worker.d.ts +0 -2
- package/dest/node/barretenberg_wasm/browser/worker.d.ts.map +0 -1
- package/dest/node/barretenberg_wasm/browser/worker.js +0 -11
- package/dest/node/barretenberg_wasm/node/index.d.ts.map +0 -1
- package/dest/node/barretenberg_wasm/node/index.js +0 -40
- package/dest/node/barretenberg_wasm/node/node_endpoint.d.ts.map +0 -1
- package/dest/node/barretenberg_wasm/node/node_endpoint.js +0 -28
- package/dest/node/barretenberg_wasm/node/worker.d.ts +0 -2
- package/dest/node/barretenberg_wasm/node/worker.d.ts.map +0 -1
- package/dest/node/barretenberg_wasm/node/worker.js +0 -9
- package/dest/node/factory/index.d.ts +0 -21
- package/dest/node/factory/index.d.ts.map +0 -1
- package/dest/node/factory/index.js +0 -34
- package/dest/node/types/browser/index.d.ts +0 -2
- package/dest/node/types/browser/index.d.ts.map +0 -1
- package/dest/node/types/browser/index.js +0 -2
- package/dest/node/types/browser/point.d.ts +0 -16
- package/dest/node/types/browser/point.d.ts.map +0 -1
- package/dest/node/types/browser/point.js +0 -46
- package/dest/node/types/node/index.d.ts +0 -2
- package/dest/node/types/node/index.d.ts.map +0 -1
- package/dest/node/types/node/index.js +0 -2
- package/dest/node/types/node/point.d.ts.map +0 -1
- package/dest/node/types/node/point.js +0 -31
- package/src/barretenberg_binder/heap_allocator_sync.ts +0 -61
- package/src/barretenberg_wasm/barretenberg_wasm.ts +0 -250
- package/src/barretenberg_wasm/browser/index.ts +0 -35
- package/src/barretenberg_wasm/node/worker.ts +0 -10
- package/src/factory/index.ts +0 -36
- package/src/types/browser/index.ts +0 -1
- package/src/types/browser/point.ts +0 -50
- package/src/types/node/index.ts +0 -1
- /package/src/barretenberg_wasm/{node → helpers/node}/node_endpoint.ts +0 -0
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
import { TextEncoder } from 'util';
|
|
2
|
-
import { Buffer128, Buffer32, Fr, Point } from '../types/index.js';
|
|
3
|
-
import { newBarretenbergApiSync } from '../factory/index.js';
|
|
4
|
-
describe('schnorr', () => {
|
|
5
|
-
const msg = Buffer.from(new TextEncoder().encode('The quick brown dog jumped over the lazy fox.'));
|
|
6
|
-
let api;
|
|
7
|
-
beforeAll(async () => {
|
|
8
|
-
api = await newBarretenbergApiSync();
|
|
9
|
-
api.pedersenInit();
|
|
10
|
-
});
|
|
11
|
-
afterAll(async () => {
|
|
12
|
-
await api.destroy();
|
|
13
|
-
});
|
|
14
|
-
it('should verify signature', () => {
|
|
15
|
-
const pk = Fr.fromBuffer(new Uint8Array([
|
|
16
|
-
0x0b, 0x9b, 0x3a, 0xde, 0xe6, 0xb3, 0xd8, 0x1b, 0x28, 0xa0, 0x88, 0x6b, 0x2a, 0x84, 0x15, 0xc7, 0xda, 0x31,
|
|
17
|
-
0x29, 0x1a, 0x5e, 0x96, 0xbb, 0x7a, 0x56, 0x63, 0x9e, 0x17, 0x7d, 0x30, 0x1b, 0xeb,
|
|
18
|
-
]));
|
|
19
|
-
const pubKey = api.schnorrComputePublicKey(pk);
|
|
20
|
-
const [s, e] = api.schnorrConstructSignature(msg, pk);
|
|
21
|
-
const verified = api.schnorrVerifySignature(msg, pubKey, s, e);
|
|
22
|
-
expect(verified).toBe(true);
|
|
23
|
-
});
|
|
24
|
-
it('public key negation should work', () => {
|
|
25
|
-
const publicKeyStr = '0x164f01b1011a1b292217acf53eef4d74f625f6e9bd5edfdb74c56fd81aafeebb21912735f9266a3719f61c1eb747ddee0cac9917f5c807485d356709b529b62c';
|
|
26
|
-
const publicKey = Point.fromString(publicKeyStr);
|
|
27
|
-
// hardcoded expected negated public key
|
|
28
|
-
const expectedInvertedStr = '0x164f01b1011a1b292217acf53eef4d74f625f6e9bd5edfdb74c56fd81aafeebb0ed3273ce80b35f29e5a2997ca397a6f1b874f3083f16948e6ac8e8a3ad649d5';
|
|
29
|
-
const expectedInverted = Point.fromString(expectedInvertedStr);
|
|
30
|
-
// negate - should match expected negated key
|
|
31
|
-
const negatedPublicKey = api.schnorrNegatePublicKey(publicKey);
|
|
32
|
-
expect(negatedPublicKey.equals(expectedInverted)).toEqual(true);
|
|
33
|
-
// negate again - should be original public key now
|
|
34
|
-
expect(api.schnorrNegatePublicKey(negatedPublicKey).equals(publicKey)).toEqual(true);
|
|
35
|
-
});
|
|
36
|
-
it('should create + verify multi signature', () => {
|
|
37
|
-
// set up multisig accounts
|
|
38
|
-
const numSigners = 7;
|
|
39
|
-
const pks = [...Array(numSigners)].map(() => Fr.random());
|
|
40
|
-
const pubKeys = pks.map(pk => api.schnorrMultisigCreateMultisigPublicKey(pk));
|
|
41
|
-
// round one
|
|
42
|
-
const roundOnePublicOutputs = [];
|
|
43
|
-
const roundOnePrivateOutputs = [];
|
|
44
|
-
for (let i = 0; i < numSigners; ++i) {
|
|
45
|
-
const [publicOutput, privateOutput] = api.schnorrMultisigConstructSignatureRound1();
|
|
46
|
-
roundOnePublicOutputs.push(publicOutput);
|
|
47
|
-
roundOnePrivateOutputs.push(privateOutput);
|
|
48
|
-
}
|
|
49
|
-
// round two
|
|
50
|
-
const roundTwoOutputs = pks.map((pk, i) => api.schnorrMultisigConstructSignatureRound2(msg, pk, roundOnePrivateOutputs[i], pubKeys, roundOnePublicOutputs)[0]);
|
|
51
|
-
// generate signature
|
|
52
|
-
const [s, e] = api.schnorrMultisigCombineSignatures(msg, pubKeys, roundOnePublicOutputs, roundTwoOutputs);
|
|
53
|
-
const [combinedKey] = api.schnorrMultisigValidateAndCombineSignerPubkeys(pubKeys);
|
|
54
|
-
expect(combinedKey).not.toEqual(Buffer.alloc(64));
|
|
55
|
-
const verified = api.schnorrVerifySignature(msg, combinedKey, s, e);
|
|
56
|
-
expect(verified).toBe(true);
|
|
57
|
-
});
|
|
58
|
-
it('should identify invalid multi signature', () => {
|
|
59
|
-
const pks = [...Array(3)].map(() => Fr.random());
|
|
60
|
-
const pubKeys = pks.map(pk => api.schnorrMultisigCreateMultisigPublicKey(pk));
|
|
61
|
-
const [combinedKey] = api.schnorrMultisigValidateAndCombineSignerPubkeys(pubKeys);
|
|
62
|
-
const verified = api.schnorrVerifySignature(msg, combinedKey, Buffer32.random(), Buffer32.random());
|
|
63
|
-
expect(verified).toBe(false);
|
|
64
|
-
});
|
|
65
|
-
it('should not construct invalid multi signature', () => {
|
|
66
|
-
// set up multisig accounts
|
|
67
|
-
const numSigners = 7;
|
|
68
|
-
const pks = [...Array(numSigners)].map(() => Fr.random());
|
|
69
|
-
const pubKeys = pks.map(pk => api.schnorrMultisigCreateMultisigPublicKey(pk));
|
|
70
|
-
// round one
|
|
71
|
-
const roundOnePublicOutputs = [];
|
|
72
|
-
const roundOnePrivateOutputs = [];
|
|
73
|
-
for (let i = 0; i < numSigners; ++i) {
|
|
74
|
-
const [publicOutput, privateOutput] = api.schnorrMultisigConstructSignatureRound1();
|
|
75
|
-
roundOnePublicOutputs.push(publicOutput);
|
|
76
|
-
roundOnePrivateOutputs.push(privateOutput);
|
|
77
|
-
}
|
|
78
|
-
// round two
|
|
79
|
-
const roundTwoOutputs = pks.map((pk, i) => api.schnorrMultisigConstructSignatureRound2(msg, pk, roundOnePrivateOutputs[i], pubKeys, roundOnePublicOutputs)[0]);
|
|
80
|
-
// wrong number of data
|
|
81
|
-
{
|
|
82
|
-
expect(api.schnorrMultisigCombineSignatures(msg, pubKeys.slice(0, -1), roundOnePublicOutputs.slice(0, -1), roundTwoOutputs.slice(0, -1))[2]).toBe(false);
|
|
83
|
-
}
|
|
84
|
-
// invalid round two output
|
|
85
|
-
{
|
|
86
|
-
const invalidOutputs = [...roundTwoOutputs];
|
|
87
|
-
invalidOutputs[1] = api.schnorrMultisigConstructSignatureRound2(msg, pks[2], // <- Wrong private key.
|
|
88
|
-
roundOnePrivateOutputs[1], pubKeys, roundOnePublicOutputs)[0];
|
|
89
|
-
expect(api.schnorrMultisigCombineSignatures(msg, pubKeys, roundOnePublicOutputs, invalidOutputs)[2]).toBe(false);
|
|
90
|
-
}
|
|
91
|
-
// contains duplicates
|
|
92
|
-
{
|
|
93
|
-
const invalidOutputs = [...roundTwoOutputs];
|
|
94
|
-
invalidOutputs[1] = roundTwoOutputs[2];
|
|
95
|
-
expect(api.schnorrMultisigCombineSignatures(msg, pubKeys, roundOnePublicOutputs, invalidOutputs)[2]).toBe(false);
|
|
96
|
-
}
|
|
97
|
-
});
|
|
98
|
-
it('should not create combined key from public keys containing invalid key', () => {
|
|
99
|
-
const pks = [...Array(5)].map(() => Fr.random());
|
|
100
|
-
const pubKeys = pks.map(pk => api.schnorrMultisigCreateMultisigPublicKey(pk));
|
|
101
|
-
// not a valid point
|
|
102
|
-
{
|
|
103
|
-
pubKeys[1] = new Buffer128(Buffer.alloc(128));
|
|
104
|
-
expect(api.schnorrMultisigValidateAndCombineSignerPubkeys(pubKeys)[1]).toBe(false);
|
|
105
|
-
}
|
|
106
|
-
// contains duplicates
|
|
107
|
-
{
|
|
108
|
-
pubKeys[1] = pubKeys[2];
|
|
109
|
-
expect(api.schnorrMultisigValidateAndCombineSignerPubkeys(pubKeys)[1]).toBe(false);
|
|
110
|
-
}
|
|
111
|
-
});
|
|
112
|
-
});
|
|
113
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nobm9yci50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2JhcnJldGVuYmVyZ19hcGkvc2Nobm9yci50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbkMsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRW5FLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRTdELFFBQVEsQ0FBQyxTQUFTLEVBQUUsR0FBRyxFQUFFO0lBQ3ZCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxXQUFXLEVBQUUsQ0FBQyxNQUFNLENBQUMsK0NBQStDLENBQUMsQ0FBQyxDQUFDO0lBQ25HLElBQUksR0FBd0IsQ0FBQztJQUU3QixTQUFTLENBQUMsS0FBSyxJQUFJLEVBQUU7UUFDbkIsR0FBRyxHQUFHLE1BQU0sc0JBQXNCLEVBQUUsQ0FBQztRQUNyQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDckIsQ0FBQyxDQUFDLENBQUM7SUFFSCxRQUFRLENBQUMsS0FBSyxJQUFJLEVBQUU7UUFDbEIsTUFBTSxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDdEIsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMseUJBQXlCLEVBQUUsR0FBRyxFQUFFO1FBQ2pDLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQ3RCLElBQUksVUFBVSxDQUFDO1lBQ2IsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVB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
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import { serializeBufferable } from '../serialize/index.js';
|
|
2
|
-
import { asyncMap } from '../async_map/index.js';
|
|
3
|
-
/**
|
|
4
|
-
* Keeps track of heap allocations so they can be easily freed.
|
|
5
|
-
* The WASM memory layout has 1024 bytes of unused "scratch" space at the start (addresses 0-1023).
|
|
6
|
-
* We can leverage this for IO rather than making expensive bb_malloc bb_free calls.
|
|
7
|
-
* Heap allocations will be created for input/output args that don't fit into the scratch space.
|
|
8
|
-
* Input and output args can use the same scratch space as it's assume all input reads will be performed before any
|
|
9
|
-
* output writes are performed.
|
|
10
|
-
*/
|
|
11
|
-
export class HeapAllocator {
|
|
12
|
-
constructor(wasm) {
|
|
13
|
-
this.wasm = wasm;
|
|
14
|
-
this.allocs = [];
|
|
15
|
-
this.inScratchRemaining = 1024;
|
|
16
|
-
this.outScratchRemaining = 1024;
|
|
17
|
-
}
|
|
18
|
-
async copyToMemory(bufferable) {
|
|
19
|
-
return await asyncMap(bufferable.map(serializeBufferable), async (buf) => {
|
|
20
|
-
if (buf.length <= this.inScratchRemaining) {
|
|
21
|
-
const ptr = (this.inScratchRemaining -= buf.length);
|
|
22
|
-
await this.wasm.writeMemory(ptr, buf);
|
|
23
|
-
return ptr;
|
|
24
|
-
}
|
|
25
|
-
else {
|
|
26
|
-
const ptr = await this.wasm.call('bbmalloc', buf.length);
|
|
27
|
-
await this.wasm.writeMemory(ptr, buf);
|
|
28
|
-
this.allocs.push(ptr);
|
|
29
|
-
return ptr;
|
|
30
|
-
}
|
|
31
|
-
});
|
|
32
|
-
}
|
|
33
|
-
async getOutputPtrs(objs) {
|
|
34
|
-
return await asyncMap(objs, async (obj) => {
|
|
35
|
-
// If the obj is variable length, we need a 4 byte ptr to write the serialized data address to.
|
|
36
|
-
// WARNING: 4 only works with WASM as it has 32 bit memory.
|
|
37
|
-
const size = obj.SIZE_IN_BYTES || 4;
|
|
38
|
-
if (size <= this.outScratchRemaining) {
|
|
39
|
-
return (this.outScratchRemaining -= size);
|
|
40
|
-
}
|
|
41
|
-
else {
|
|
42
|
-
const ptr = await this.wasm.call('bbmalloc', size);
|
|
43
|
-
this.allocs.push(ptr);
|
|
44
|
-
return ptr;
|
|
45
|
-
}
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
addOutputPtr(ptr) {
|
|
49
|
-
if (ptr >= 1024) {
|
|
50
|
-
this.allocs.push(ptr);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
async freeAll() {
|
|
54
|
-
for (const ptr of this.allocs) {
|
|
55
|
-
await this.wasm.call('bbfree', ptr);
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhcF9hbGxvY2F0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmFycmV0ZW5iZXJnX2JpbmRlci9oZWFwX2FsbG9jYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsbUJBQW1CLEVBQWMsTUFBTSx1QkFBdUIsQ0FBQztBQUVwRixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFakQ7Ozs7Ozs7R0FPRztBQUNILE1BQU0sT0FBTyxhQUFhO0lBS3hCLFlBQW9CLElBQStDO1FBQS9DLFNBQUksR0FBSixJQUFJLENBQTJDO1FBSjNELFdBQU0sR0FBYSxFQUFFLENBQUM7UUFDdEIsdUJBQWtCLEdBQUcsSUFBSSxDQUFDO1FBQzFCLHdCQUFtQixHQUFHLElBQUksQ0FBQztJQUVtQyxDQUFDO0lBRXZFLEtBQUssQ0FBQyxZQUFZLENBQUMsVUFBd0I7UUFDekMsT0FBTyxNQUFNLFFBQVEsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFDLEVBQUUsS0FBSyxFQUFDLEdBQUcsRUFBQyxFQUFFO1lBQ3JFLElBQUksR0FBRyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUU7Z0JBQ3pDLE1BQU0sR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLGtCQUFrQixJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDcEQsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQ3RDLE9BQU8sR0FBRyxDQUFDO2FBQ1o7aUJBQU07Z0JBQ0wsTUFBTSxHQUFHLEdBQUcsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUN6RCxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztnQkFDdEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ3RCLE9BQU8sR0FBRyxDQUFDO2FBQ1o7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxLQUFLLENBQUMsYUFBYSxDQUFDLElBQWtCO1FBQ3BDLE9BQU8sTUFBTSxRQUFRLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBQyxHQUFHLEVBQUMsRUFBRTtZQUN0QywrRkFBK0Y7WUFDL0YsMkRBQTJEO1lBQzNELE1BQU0sSUFBSSxHQUFHLEdBQUcsQ0FBQyxhQUFhLElBQUksQ0FBQyxDQUFDO1lBRXBDLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxtQkFBbUIsRUFBRTtnQkFDcEMsT0FBTyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsSUFBSSxJQUFJLENBQUMsQ0FBQzthQUMzQztpQkFBTTtnQkFDTCxNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDbkQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ3RCLE9BQU8sR0FBRyxDQUFDO2FBQ1o7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxZQUFZLENBQUMsR0FBVztRQUN0QixJQUFJLEdBQUcsSUFBSSxJQUFJLEVBQUU7WUFDZixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUN2QjtJQUNILENBQUM7SUFFRCxLQUFLLENBQUMsT0FBTztRQUNYLEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUM3QixNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQztTQUNyQztJQUNILENBQUM7Q0FDRiJ9
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { Bufferable, OutputType } from '../serialize/index.js';
|
|
2
|
-
import { BarretenbergWasm } from '../barretenberg_wasm/barretenberg_wasm.js';
|
|
3
|
-
/**
|
|
4
|
-
* Keeps track of heap allocations so they can be easily freed.
|
|
5
|
-
* The WASM memory layout has 1024 bytes of unused "scratch" space at the start (addresses 0-1023).
|
|
6
|
-
* We can leverage this for IO rather than making expensive bb_malloc bb_free calls.
|
|
7
|
-
* Heap allocations will be created for input/output args that don't fit into the scratch space.
|
|
8
|
-
* Input and output args can use the same scratch space as it's assume all input reads will be performed before any
|
|
9
|
-
* output writes are performed.
|
|
10
|
-
*/
|
|
11
|
-
export declare class HeapAllocatorSync {
|
|
12
|
-
private wasm;
|
|
13
|
-
private allocs;
|
|
14
|
-
private inScratchRemaining;
|
|
15
|
-
private outScratchRemaining;
|
|
16
|
-
constructor(wasm: BarretenbergWasm);
|
|
17
|
-
copyToMemory(bufferable: Bufferable[]): number[];
|
|
18
|
-
getOutputPtrs(objs: OutputType[]): number[];
|
|
19
|
-
addOutputPtr(ptr: number): void;
|
|
20
|
-
freeAll(): void;
|
|
21
|
-
}
|
|
22
|
-
//# sourceMappingURL=heap_allocator_sync.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"heap_allocator_sync.d.ts","sourceRoot":"","sources":["../../../src/barretenberg_binder/heap_allocator_sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAuB,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACpF,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAE7E;;;;;;;GAOG;AACH,qBAAa,iBAAiB;IAKhB,OAAO,CAAC,IAAI;IAJxB,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,kBAAkB,CAAQ;IAClC,OAAO,CAAC,mBAAmB,CAAQ;gBAEf,IAAI,EAAE,gBAAgB;IAE1C,YAAY,CAAC,UAAU,EAAE,UAAU,EAAE;IAerC,aAAa,CAAC,IAAI,EAAE,UAAU,EAAE;IAgBhC,YAAY,CAAC,GAAG,EAAE,MAAM;IAMxB,OAAO;CAKR"}
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import { serializeBufferable } from '../serialize/index.js';
|
|
2
|
-
/**
|
|
3
|
-
* Keeps track of heap allocations so they can be easily freed.
|
|
4
|
-
* The WASM memory layout has 1024 bytes of unused "scratch" space at the start (addresses 0-1023).
|
|
5
|
-
* We can leverage this for IO rather than making expensive bb_malloc bb_free calls.
|
|
6
|
-
* Heap allocations will be created for input/output args that don't fit into the scratch space.
|
|
7
|
-
* Input and output args can use the same scratch space as it's assume all input reads will be performed before any
|
|
8
|
-
* output writes are performed.
|
|
9
|
-
*/
|
|
10
|
-
export class HeapAllocatorSync {
|
|
11
|
-
constructor(wasm) {
|
|
12
|
-
this.wasm = wasm;
|
|
13
|
-
this.allocs = [];
|
|
14
|
-
this.inScratchRemaining = 1024;
|
|
15
|
-
this.outScratchRemaining = 1024;
|
|
16
|
-
}
|
|
17
|
-
copyToMemory(bufferable) {
|
|
18
|
-
return bufferable.map(serializeBufferable).map(buf => {
|
|
19
|
-
if (buf.length <= this.inScratchRemaining) {
|
|
20
|
-
const ptr = (this.inScratchRemaining -= buf.length);
|
|
21
|
-
this.wasm.writeMemory(ptr, buf);
|
|
22
|
-
return ptr;
|
|
23
|
-
}
|
|
24
|
-
else {
|
|
25
|
-
const ptr = this.wasm.call('bbmalloc', buf.length);
|
|
26
|
-
this.wasm.writeMemory(ptr, buf);
|
|
27
|
-
this.allocs.push(ptr);
|
|
28
|
-
return ptr;
|
|
29
|
-
}
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
getOutputPtrs(objs) {
|
|
33
|
-
return objs.map(obj => {
|
|
34
|
-
// If the obj is variable length, we need a 4 byte ptr to write the serialized data address to.
|
|
35
|
-
// WARNING: 4 only works with WASM as it has 32 bit memory.
|
|
36
|
-
const size = obj.SIZE_IN_BYTES || 4;
|
|
37
|
-
if (size <= this.outScratchRemaining) {
|
|
38
|
-
return (this.outScratchRemaining -= size);
|
|
39
|
-
}
|
|
40
|
-
else {
|
|
41
|
-
const ptr = this.wasm.call('bbmalloc', size);
|
|
42
|
-
this.allocs.push(ptr);
|
|
43
|
-
return ptr;
|
|
44
|
-
}
|
|
45
|
-
});
|
|
46
|
-
}
|
|
47
|
-
addOutputPtr(ptr) {
|
|
48
|
-
if (ptr >= 1024) {
|
|
49
|
-
this.allocs.push(ptr);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
freeAll() {
|
|
53
|
-
for (const ptr of this.allocs) {
|
|
54
|
-
this.wasm.call('bbfree', ptr);
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhcF9hbGxvY2F0b3Jfc3luYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iYXJyZXRlbmJlcmdfYmluZGVyL2hlYXBfYWxsb2NhdG9yX3N5bmMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLG1CQUFtQixFQUFjLE1BQU0sdUJBQXVCLENBQUM7QUFHcEY7Ozs7Ozs7R0FPRztBQUNILE1BQU0sT0FBTyxpQkFBaUI7SUFLNUIsWUFBb0IsSUFBc0I7UUFBdEIsU0FBSSxHQUFKLElBQUksQ0FBa0I7UUFKbEMsV0FBTSxHQUFhLEVBQUUsQ0FBQztRQUN0Qix1QkFBa0IsR0FBRyxJQUFJLENBQUM7UUFDMUIsd0JBQW1CLEdBQUcsSUFBSSxDQUFDO0lBRVUsQ0FBQztJQUU5QyxZQUFZLENBQUMsVUFBd0I7UUFDbkMsT0FBTyxVQUFVLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ25ELElBQUksR0FBRyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUU7Z0JBQ3pDLE1BQU0sR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLGtCQUFrQixJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDcEQsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO2dCQUNoQyxPQUFPLEdBQUcsQ0FBQzthQUNaO2lCQUFNO2dCQUNMLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ25ELElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztnQkFDaEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ3RCLE9BQU8sR0FBRyxDQUFDO2FBQ1o7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxhQUFhLENBQUMsSUFBa0I7UUFDOUIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3BCLCtGQUErRjtZQUMvRiwyREFBMkQ7WUFDM0QsTUFBTSxJQUFJLEdBQUcsR0FBRyxDQUFDLGFBQWEsSUFBSSxDQUFDLENBQUM7WUFFcEMsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLG1CQUFtQixFQUFFO2dCQUNwQyxPQUFPLENBQUMsSUFBSSxDQUFDLG1CQUFtQixJQUFJLElBQUksQ0FBQyxDQUFDO2FBQzNDO2lCQUFNO2dCQUNMLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDN0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ3RCLE9BQU8sR0FBRyxDQUFDO2FBQ1o7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxZQUFZLENBQUMsR0FBVztRQUN0QixJQUFJLEdBQUcsSUFBSSxJQUFJLEVBQUU7WUFDZixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUN2QjtJQUNILENBQUM7SUFFRCxPQUFPO1FBQ0wsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQzdCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQztTQUMvQjtJQUNILENBQUM7Q0FDRiJ9
|
|
@@ -1,73 +0,0 @@
|
|
|
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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
|
|
@@ -1,48 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,208 +0,0 @@
|
|
|
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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
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"barretenberg_wasm.test.d.ts","sourceRoot":"","sources":["../../../src/barretenberg_wasm/barretenberg_wasm.test.ts"],"names":[],"mappings":""}
|