@aztec/bb.js 0.5.0 → 0.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +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
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { type Worker } from 'worker_threads';
|
|
2
|
+
import createDebug from 'debug';
|
|
3
|
+
import { Remote } from 'comlink';
|
|
4
|
+
import { getNumCpu, getRemoteBarretenbergWasm, getSharedMemoryAvailable } from '../helpers/index.js';
|
|
5
|
+
import { fetchCode } from '../fetch_code/index.js';
|
|
6
|
+
import { createThreadWorker } from '../barretenberg_wasm_thread/factory/node/index.js';
|
|
7
|
+
import { type BarretenbergWasmThreadWorker } from '../barretenberg_wasm_thread/index.js';
|
|
8
|
+
import { BarretenbergWasmBase } from '../barretenberg_wasm_base/index.js';
|
|
9
|
+
|
|
10
|
+
const debug = createDebug('bb.js:wasm');
|
|
11
|
+
|
|
12
|
+
export class BarretenbergWasmMain extends BarretenbergWasmBase {
|
|
13
|
+
static MAX_THREADS = 32;
|
|
14
|
+
private workers: Worker[] = [];
|
|
15
|
+
private remoteWasms: BarretenbergWasmThreadWorker[] = [];
|
|
16
|
+
private nextWorker = 0;
|
|
17
|
+
private nextThreadId = 1;
|
|
18
|
+
|
|
19
|
+
public getNumThreads() {
|
|
20
|
+
return this.workers.length + 1;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Init as main thread. Spawn child threads.
|
|
25
|
+
*/
|
|
26
|
+
public async init(
|
|
27
|
+
threads = Math.min(getNumCpu(), BarretenbergWasmMain.MAX_THREADS),
|
|
28
|
+
logger: (msg: string) => void = debug,
|
|
29
|
+
initial = 25,
|
|
30
|
+
maximum = 2 ** 16,
|
|
31
|
+
) {
|
|
32
|
+
this.logger = logger;
|
|
33
|
+
|
|
34
|
+
const initialMb = (initial * 2 ** 16) / (1024 * 1024);
|
|
35
|
+
const maxMb = (maximum * 2 ** 16) / (1024 * 1024);
|
|
36
|
+
const shared = getSharedMemoryAvailable();
|
|
37
|
+
|
|
38
|
+
if (!shared) {
|
|
39
|
+
threads = 1;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
this.logger(
|
|
43
|
+
`initial mem: ${initial} pages, ${initialMb}MiB. ` +
|
|
44
|
+
`max mem: ${maximum} pages, ${maxMb}MiB. ` +
|
|
45
|
+
`threads: ${threads}, shared: ${shared}`,
|
|
46
|
+
);
|
|
47
|
+
|
|
48
|
+
this.memory = new WebAssembly.Memory({ initial, maximum, shared });
|
|
49
|
+
|
|
50
|
+
const code = await fetchCode(shared);
|
|
51
|
+
const { instance, module } = await WebAssembly.instantiate(code, this.getImportObj(this.memory));
|
|
52
|
+
|
|
53
|
+
this.instance = instance;
|
|
54
|
+
|
|
55
|
+
// Init all global/static data.
|
|
56
|
+
this.call('_initialize');
|
|
57
|
+
|
|
58
|
+
// Create worker threads. Create 1 less than requested, as main thread counts as a thread.
|
|
59
|
+
if (threads > 1) {
|
|
60
|
+
this.logger(`creating ${threads} worker threads...`);
|
|
61
|
+
this.workers = await Promise.all(Array.from({ length: threads - 1 }).map(createThreadWorker));
|
|
62
|
+
this.remoteWasms = await Promise.all(this.workers.map(getRemoteBarretenbergWasm<BarretenbergWasmThreadWorker>));
|
|
63
|
+
await Promise.all(this.remoteWasms.map(w => w.initThread(module, this.memory)));
|
|
64
|
+
}
|
|
65
|
+
this.logger('init complete.');
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* Called on main thread. Signals child threads to gracefully exit.
|
|
70
|
+
*/
|
|
71
|
+
public async destroy() {
|
|
72
|
+
await Promise.all(this.workers.map(w => w.terminate()));
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
protected getImportObj(memory: WebAssembly.Memory) {
|
|
76
|
+
const baseImports = super.getImportObj(memory);
|
|
77
|
+
|
|
78
|
+
/* eslint-disable camelcase */
|
|
79
|
+
return {
|
|
80
|
+
...baseImports,
|
|
81
|
+
wasi: {
|
|
82
|
+
'thread-spawn': (arg: number) => {
|
|
83
|
+
arg = arg >>> 0;
|
|
84
|
+
const id = this.nextThreadId++;
|
|
85
|
+
const worker = this.nextWorker++ % this.remoteWasms.length;
|
|
86
|
+
// this.logger(`spawning thread ${id} on worker ${worker} with arg ${arg >>> 0}`);
|
|
87
|
+
this.remoteWasms[worker].call('wasi_thread_start', id, arg).catch(this.logger);
|
|
88
|
+
// this.remoteWasms[worker].postMessage({ msg: 'thread', data: { id, arg } });
|
|
89
|
+
return id;
|
|
90
|
+
},
|
|
91
|
+
},
|
|
92
|
+
env: {
|
|
93
|
+
...baseImports.env,
|
|
94
|
+
env_hardware_concurrency: () => {
|
|
95
|
+
// If there are no workers (we're already running as a worker, or the main thread requested no workers)
|
|
96
|
+
// then we return 1, which should cause any algos using threading to just not create a thread.
|
|
97
|
+
return this.remoteWasms.length + 1;
|
|
98
|
+
},
|
|
99
|
+
},
|
|
100
|
+
};
|
|
101
|
+
/* eslint-enable camelcase */
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
export type BarretenbergWasmMainWorker = Remote<BarretenbergWasmMain>;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import debug from 'debug';
|
|
2
|
+
import ThreadWorker from './thread.worker.js';
|
|
3
|
+
|
|
4
|
+
export function createThreadWorker() {
|
|
5
|
+
const worker = new ThreadWorker();
|
|
6
|
+
const debugStr = debug.disable();
|
|
7
|
+
debug.enable(debugStr);
|
|
8
|
+
worker.postMessage({ debug: debugStr });
|
|
9
|
+
return worker;
|
|
10
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { expose } from 'comlink';
|
|
2
|
+
import { BarretenbergWasmThread } from '../../index.js';
|
|
3
|
+
import debug from 'debug';
|
|
4
|
+
|
|
5
|
+
self.onmessage = function (e) {
|
|
6
|
+
if (e.data.debug) {
|
|
7
|
+
debug.enable(e.data.debug);
|
|
8
|
+
}
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
expose(new BarretenbergWasmThread());
|
|
12
|
+
|
|
13
|
+
self.postMessage({ ready: true });
|
|
14
|
+
|
|
15
|
+
export default null as any;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Worker } from 'worker_threads';
|
|
2
|
+
import { dirname } from 'path';
|
|
3
|
+
import { fileURLToPath } from 'url';
|
|
4
|
+
|
|
5
|
+
export function createThreadWorker() {
|
|
6
|
+
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
7
|
+
return new Worker(__dirname + `/thread.worker.js`);
|
|
8
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { parentPort } from 'worker_threads';
|
|
2
|
+
import { expose } from 'comlink';
|
|
3
|
+
import { BarretenbergWasmThread } from '../../index.js';
|
|
4
|
+
import { nodeEndpoint } from '../../../helpers/node/node_endpoint.js';
|
|
5
|
+
|
|
6
|
+
if (!parentPort) {
|
|
7
|
+
throw new Error('No parentPort');
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
expose(new BarretenbergWasmThread(), nodeEndpoint(parentPort));
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { Remote } from 'comlink';
|
|
2
|
+
import { killSelf, threadLogger } from '../helpers/index.js';
|
|
3
|
+
import { BarretenbergWasmBase } from '../barretenberg_wasm_base/index.js';
|
|
4
|
+
|
|
5
|
+
export class BarretenbergWasmThread extends BarretenbergWasmBase {
|
|
6
|
+
/**
|
|
7
|
+
* Init as worker thread.
|
|
8
|
+
*/
|
|
9
|
+
public async initThread(module: WebAssembly.Module, memory: WebAssembly.Memory) {
|
|
10
|
+
this.logger = threadLogger() || this.logger;
|
|
11
|
+
this.memory = memory;
|
|
12
|
+
this.instance = await WebAssembly.instantiate(module, this.getImportObj(this.memory));
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
public destroy() {
|
|
16
|
+
killSelf();
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
protected getImportObj(memory: WebAssembly.Memory) {
|
|
20
|
+
const baseImports = super.getImportObj(memory);
|
|
21
|
+
|
|
22
|
+
/* eslint-disable camelcase */
|
|
23
|
+
return {
|
|
24
|
+
...baseImports,
|
|
25
|
+
wasi: {
|
|
26
|
+
'thread-spawn': () => {
|
|
27
|
+
this.logger('PANIC: threads cannot spawn threads!');
|
|
28
|
+
this.logger(new Error().stack!);
|
|
29
|
+
killSelf();
|
|
30
|
+
},
|
|
31
|
+
},
|
|
32
|
+
|
|
33
|
+
// These are functions implementations for imports we've defined are needed.
|
|
34
|
+
// The native C++ build defines these in a module called "env". We must implement TypeScript versions here.
|
|
35
|
+
env: {
|
|
36
|
+
...baseImports.env,
|
|
37
|
+
env_hardware_concurrency: () => {
|
|
38
|
+
// We return 1, which should cause any algos using threading to just not create a thread.
|
|
39
|
+
return 1;
|
|
40
|
+
},
|
|
41
|
+
},
|
|
42
|
+
};
|
|
43
|
+
/* eslint-enable camelcase */
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export type BarretenbergWasmThreadWorker = Remote<BarretenbergWasmThread>;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import barretenbergModule from '../../../barretenberg.wasm';
|
|
2
|
+
import barretenbergThreadsModule from '../../../barretenberg-threads.wasm';
|
|
3
|
+
|
|
4
|
+
// Annoyingly the wasm declares if it's memory is shared or not. So now we need two wasms if we want to be
|
|
5
|
+
// able to fallback on "non shared memory" situations.
|
|
6
|
+
export async function fetchCode(multithreaded: boolean) {
|
|
7
|
+
const res = await fetch(multithreaded ? barretenbergThreadsModule : barretenbergModule);
|
|
8
|
+
return await res.arrayBuffer();
|
|
9
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './node/index.js';
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { readFile } from 'fs/promises';
|
|
2
|
+
import { dirname } from 'path';
|
|
3
|
+
import { fileURLToPath } from 'url';
|
|
4
|
+
|
|
5
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
6
|
+
export async function fetchCode(multithreaded: boolean) {
|
|
7
|
+
const path = dirname(fileURLToPath(import.meta.url)) + '/../../../barretenberg-threads.wasm';
|
|
8
|
+
return await readFile(path);
|
|
9
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { wrap } from 'comlink';
|
|
2
|
+
|
|
3
|
+
export function getSharedMemoryAvailable() {
|
|
4
|
+
const globalScope = typeof window !== 'undefined' ? window : self;
|
|
5
|
+
return typeof SharedArrayBuffer !== 'undefined' && globalScope.crossOriginIsolated;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export function getRemoteBarretenbergWasm<T>(worker: Worker) {
|
|
9
|
+
return wrap(worker) as T;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export function getNumCpu() {
|
|
13
|
+
return navigator.hardwareConcurrency;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export function threadLogger(): ((msg: string) => void) | undefined {
|
|
17
|
+
return undefined;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export function killSelf() {
|
|
21
|
+
self.close();
|
|
22
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './node/index.js';
|
|
@@ -1,25 +1,20 @@
|
|
|
1
1
|
import { Worker } from 'worker_threads';
|
|
2
|
-
import { dirname } from 'path';
|
|
3
|
-
import { fileURLToPath } from 'url';
|
|
4
|
-
import { readFile } from 'fs/promises';
|
|
5
2
|
import os from 'os';
|
|
6
|
-
import { type BarretenbergWasm, type BarretenbergWasmWorker } from '../barretenberg_wasm.js';
|
|
7
3
|
import { wrap } from 'comlink';
|
|
8
4
|
import { nodeEndpoint } from './node_endpoint.js';
|
|
9
5
|
import { writeSync } from 'fs';
|
|
10
6
|
|
|
11
|
-
export
|
|
12
|
-
|
|
13
|
-
return await readFile(__dirname + `/../../${multithreading ? 'barretenberg-threads.wasm' : 'barretenberg.wasm'}`);
|
|
7
|
+
export function getSharedMemoryAvailable() {
|
|
8
|
+
return true;
|
|
14
9
|
}
|
|
15
10
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
export function getRemoteBarretenbergWasm(worker: Worker):
|
|
22
|
-
return wrap
|
|
11
|
+
/**
|
|
12
|
+
* Comlink allows you to produce a Proxy to the worker, enabling you to call methods as if it were a normal class.
|
|
13
|
+
* Note we give it the type information it needs so the returned Proxy object looks like that type.
|
|
14
|
+
* Node has a different implementation, needing this nodeEndpoint wrapper, hence this function exists here.
|
|
15
|
+
*/
|
|
16
|
+
export function getRemoteBarretenbergWasm<T>(worker: Worker): T {
|
|
17
|
+
return wrap(nodeEndpoint(worker)) as T;
|
|
23
18
|
}
|
|
24
19
|
|
|
25
20
|
export function getNumCpu() {
|
|
@@ -1,48 +1,36 @@
|
|
|
1
1
|
import { type Worker } from 'worker_threads';
|
|
2
|
-
import { BarretenbergWasm, BarretenbergWasmWorker } from './
|
|
2
|
+
import { BarretenbergWasm, BarretenbergWasmWorker } from './index.js';
|
|
3
3
|
|
|
4
4
|
describe('barretenberg wasm', () => {
|
|
5
|
-
let
|
|
5
|
+
let worker!: Worker;
|
|
6
|
+
let wasm!: BarretenbergWasmWorker;
|
|
6
7
|
|
|
7
8
|
beforeAll(async () => {
|
|
8
|
-
wasm = await BarretenbergWasm.new();
|
|
9
|
-
});
|
|
9
|
+
({ wasm, worker } = await BarretenbergWasm.new(2));
|
|
10
|
+
}, 20000);
|
|
10
11
|
|
|
11
12
|
afterAll(async () => {
|
|
12
13
|
await wasm.destroy();
|
|
14
|
+
await worker.terminate();
|
|
13
15
|
});
|
|
14
16
|
|
|
15
|
-
it('should new malloc, transfer and slice mem', () => {
|
|
17
|
+
it('should new malloc, transfer and slice mem', async () => {
|
|
16
18
|
const length = 1024;
|
|
17
|
-
const ptr = wasm.call('bbmalloc', length);
|
|
19
|
+
const ptr = await wasm.call('bbmalloc', length);
|
|
18
20
|
const buf = Buffer.alloc(length, 128);
|
|
19
|
-
wasm.writeMemory(ptr, buf);
|
|
20
|
-
const result = Buffer.from(wasm.getMemorySlice(ptr, ptr + length));
|
|
21
|
-
wasm.call('bbfree', ptr);
|
|
21
|
+
await wasm.writeMemory(ptr, buf);
|
|
22
|
+
const result = Buffer.from(await wasm.getMemorySlice(ptr, ptr + length));
|
|
23
|
+
await wasm.call('bbfree', ptr);
|
|
22
24
|
expect(result).toStrictEqual(buf);
|
|
23
25
|
});
|
|
24
26
|
|
|
25
|
-
it('test abort', () => {
|
|
26
|
-
expect(() => wasm.call('test_abort')).toThrow();
|
|
27
|
+
it('test abort', async () => {
|
|
28
|
+
await expect(() => wasm.call('test_abort')).rejects.toThrow();
|
|
27
29
|
});
|
|
28
30
|
|
|
29
|
-
it('test c/c++ stdout/stderr', () => {
|
|
31
|
+
it('test c/c++ stdout/stderr', async () => {
|
|
30
32
|
// We're checking we don't crash, but you can manually confirm you see log lines handled by logstr.
|
|
31
|
-
wasm.call('test_stdout_stderr');
|
|
32
|
-
});
|
|
33
|
-
});
|
|
34
|
-
|
|
35
|
-
describe('barretenberg wasm worker', () => {
|
|
36
|
-
let worker!: Worker;
|
|
37
|
-
let wasm!: BarretenbergWasmWorker;
|
|
38
|
-
|
|
39
|
-
beforeAll(async () => {
|
|
40
|
-
({ wasm, worker } = (await BarretenbergWasm.newWorker(2)) as any);
|
|
41
|
-
}, 20000);
|
|
42
|
-
|
|
43
|
-
afterAll(async () => {
|
|
44
|
-
await wasm.destroy();
|
|
45
|
-
await worker.terminate();
|
|
33
|
+
await wasm.call('test_stdout_stderr');
|
|
46
34
|
});
|
|
47
35
|
|
|
48
36
|
it('should new malloc, transfer and slice mem', async () => {
|
|
@@ -1 +1,22 @@
|
|
|
1
|
-
|
|
1
|
+
import { proxy } from 'comlink';
|
|
2
|
+
import createDebug from 'debug';
|
|
3
|
+
import { createMainWorker } from './barretenberg_wasm_main/factory/node/index.js';
|
|
4
|
+
import { getRemoteBarretenbergWasm } from './helpers/node/index.js';
|
|
5
|
+
import { BarretenbergWasmMain, BarretenbergWasmMainWorker } from './barretenberg_wasm_main/index.js';
|
|
6
|
+
|
|
7
|
+
const debug = createDebug('bb.js:wasm');
|
|
8
|
+
|
|
9
|
+
export class BarretenbergWasm extends BarretenbergWasmMain {
|
|
10
|
+
/**
|
|
11
|
+
* Construct and initialise BarretenbergWasm within a Worker. Return both the worker and the wasm proxy.
|
|
12
|
+
* Used when running in the browser, because we can't block the main thread.
|
|
13
|
+
*/
|
|
14
|
+
public static async new(threads?: number) {
|
|
15
|
+
const worker = createMainWorker();
|
|
16
|
+
const wasm = getRemoteBarretenbergWasm<BarretenbergWasmMainWorker>(worker);
|
|
17
|
+
await wasm.init(threads, proxy(debug));
|
|
18
|
+
return { worker, wasm };
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export type BarretenbergWasmWorker = BarretenbergWasmMainWorker;
|
|
@@ -48,44 +48,7 @@ export class BarretenbergApi {
|
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
50
|
|
|
51
|
-
output += `}
|
|
52
|
-
|
|
53
|
-
export class BarretenbergApiSync {
|
|
54
|
-
constructor(public binder: BarretenbergBinderSync) {}
|
|
55
|
-
|
|
56
|
-
async destroy() {
|
|
57
|
-
await this.binder.wasm.destroy();
|
|
58
|
-
}
|
|
59
|
-
`;
|
|
60
|
-
|
|
61
|
-
for (const { functionName, inArgs, outArgs } of functionDeclarations) {
|
|
62
|
-
try {
|
|
63
|
-
const parameters = inArgs.map(({ name, type }) => `${toCamelCase(name)}: ${mapType(type)}`).join(', ');
|
|
64
|
-
const inArgsVar = `[${inArgs.map(arg => toCamelCase(arg.name)).join(', ')}]`;
|
|
65
|
-
const outTypesVar = `[${outArgs.map(arg => mapDeserializer(arg.type)).join(', ')}]`;
|
|
66
|
-
const wasmCall = `const result = this.binder.callWasmExport('${functionName}', ${inArgsVar}, ${outTypesVar});`;
|
|
67
|
-
|
|
68
|
-
const n = outArgs.length;
|
|
69
|
-
const returnStmt = n === 0 ? 'return;' : n === 1 ? 'return result[0];' : 'return result as any;';
|
|
70
|
-
const returnType =
|
|
71
|
-
outArgs.length === 0
|
|
72
|
-
? 'void'
|
|
73
|
-
: outArgs.length === 1
|
|
74
|
-
? `${mapType(outArgs[0].type)}`
|
|
75
|
-
: `[${outArgs.map(a => mapType(a.type)).join(', ')}]`;
|
|
76
|
-
|
|
77
|
-
output += `
|
|
78
|
-
${toCamelCase(functionName)}(${parameters}): ${returnType} {
|
|
79
|
-
${wasmCall}
|
|
80
|
-
${returnStmt}
|
|
81
|
-
}
|
|
82
|
-
`;
|
|
83
|
-
} catch (err: any) {
|
|
84
|
-
throw new Error(`Function ${functionName}: ${err.message}`);
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
output += '}';
|
|
51
|
+
output += `}`;
|
|
89
52
|
|
|
90
53
|
return output;
|
|
91
54
|
}
|
|
@@ -10,9 +10,7 @@ export class CachedNetCrs {
|
|
|
10
10
|
|
|
11
11
|
constructor(public readonly numPoints: number) {}
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
15
|
-
static async new(numPoints: number, _?: string) {
|
|
13
|
+
static async new(numPoints: number) {
|
|
16
14
|
const crs = new CachedNetCrs(numPoints);
|
|
17
15
|
await crs.init();
|
|
18
16
|
return crs;
|
package/src/crs/index.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { Crs } from '
|
|
1
|
+
export { Crs } from './node/index.js';
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { Crs } from '../crs/index.js';
|
|
2
|
+
import createDebug from 'debug';
|
|
3
|
+
import { Barretenberg } from '../barretenberg/index.js';
|
|
4
|
+
import { RawBuffer } from '../types/index.js';
|
|
5
|
+
|
|
6
|
+
createDebug.enable('*');
|
|
7
|
+
const debug = createDebug('simple_test');
|
|
8
|
+
|
|
9
|
+
async function main() {
|
|
10
|
+
const CIRCUIT_SIZE = 2 ** 19;
|
|
11
|
+
|
|
12
|
+
debug('starting test...');
|
|
13
|
+
const api = await Barretenberg.new();
|
|
14
|
+
|
|
15
|
+
// Important to init slab allocator as first thing, to ensure maximum memory efficiency.
|
|
16
|
+
await api.commonInitSlabAllocator(CIRCUIT_SIZE);
|
|
17
|
+
|
|
18
|
+
// Plus 1 needed!
|
|
19
|
+
const crs = await Crs.new(CIRCUIT_SIZE + 1);
|
|
20
|
+
await api.srsInitSrs(new RawBuffer(crs.getG1Data()), crs.numPoints, new RawBuffer(crs.getG2Data()));
|
|
21
|
+
|
|
22
|
+
const iterations = 10;
|
|
23
|
+
let totalTime = 0;
|
|
24
|
+
for (let i = 0; i < iterations; ++i) {
|
|
25
|
+
const start = new Date().getTime();
|
|
26
|
+
debug(`iteration ${i} starting...`);
|
|
27
|
+
await api.examplesSimpleCreateAndVerifyProof();
|
|
28
|
+
totalTime += new Date().getTime() - start;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
await api.destroy();
|
|
32
|
+
|
|
33
|
+
debug(`avg iteration time: ${totalTime / iterations}ms`);
|
|
34
|
+
debug('test complete.');
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
void main();
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { Crs } from '../index.js';
|
|
2
|
-
import {
|
|
1
|
+
import { Crs } from '../crs/index.js';
|
|
2
|
+
import { Barretenberg } from '../barretenberg/index.js';
|
|
3
3
|
import { RawBuffer } from '../types/index.js';
|
|
4
4
|
|
|
5
5
|
describe('simple', () => {
|
|
6
|
-
let api:
|
|
6
|
+
let api: Barretenberg;
|
|
7
7
|
|
|
8
8
|
beforeAll(async () => {
|
|
9
|
-
api = await
|
|
9
|
+
api = await Barretenberg.new();
|
|
10
10
|
|
|
11
11
|
// Important to init slab allocator as first thing, to ensure maximum memory efficiency.
|
|
12
12
|
const CIRCUIT_SIZE = 2 ** 19;
|
|
@@ -23,5 +23,5 @@ describe('simple', () => {
|
|
|
23
23
|
it('should construct 512k gate proof', async () => {
|
|
24
24
|
const valid = await api.examplesSimpleCreateAndVerifyProof();
|
|
25
25
|
expect(valid).toBe(true);
|
|
26
|
-
},
|
|
26
|
+
}, 300000);
|
|
27
27
|
});
|
package/src/index.ts
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
export
|
|
2
|
-
export
|
|
3
|
-
export * from './barretenberg_api/index.js';
|
|
4
|
-
export * from './factory/index.js';
|
|
1
|
+
export { Crs } from './crs/index.js';
|
|
2
|
+
export { Barretenberg } from './barretenberg/index.js';
|
|
5
3
|
export { RawBuffer } from './types/index.js';
|
package/src/info.json
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"language": {
|
|
3
|
+
"name": "PLONK-CSAT",
|
|
4
|
+
"width": 3
|
|
5
|
+
},
|
|
6
|
+
"opcodes_supported": ["arithmetic", "directive", "brillig", "memory_init", "memory_op"],
|
|
7
|
+
"black_box_functions_supported": [
|
|
8
|
+
"and",
|
|
9
|
+
"xor",
|
|
10
|
+
"range",
|
|
11
|
+
"sha256",
|
|
12
|
+
"blake2s",
|
|
13
|
+
"keccak256",
|
|
14
|
+
"schnorr_verify",
|
|
15
|
+
"pedersen",
|
|
16
|
+
"hash_to_field_128_security",
|
|
17
|
+
"ecdsa_secp256k1",
|
|
18
|
+
"ecdsa_secp256r1",
|
|
19
|
+
"fixed_base_scalar_mul",
|
|
20
|
+
"recursive_aggregation"
|
|
21
|
+
]
|
|
22
|
+
}
|