@aztec/bb.js 0.0.0-devnet
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 +149 -0
- package/dest/browser/522.index.js +10 -0
- package/dest/browser/barretenberg/backend.d.ts +85 -0
- package/dest/browser/barretenberg/backend.d.ts.map +1 -0
- package/dest/browser/barretenberg/index.d.ts +47 -0
- package/dest/browser/barretenberg/index.d.ts.map +1 -0
- package/dest/browser/barretenberg/verifier.d.ts +16 -0
- package/dest/browser/barretenberg/verifier.d.ts.map +1 -0
- package/dest/browser/barretenberg_api/index.d.ts +113 -0
- package/dest/browser/barretenberg_api/index.d.ts.map +1 -0
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_base/index.d.ts +44 -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/heap_allocator.d.ts +21 -0
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts.map +1 -0
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/index.d.ts +47 -0
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/index.d.ts.map +1 -0
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts +2 -0
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts.map +1 -0
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.d.ts +3 -0
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.d.ts.map +1 -0
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/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/browser/index.d.ts +2 -0
- package/dest/browser/barretenberg_wasm/fetch_code/browser/index.d.ts.map +1 -0
- package/dest/browser/barretenberg_wasm/fetch_code/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 +2 -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/browser/barretenberg_wasm/helpers/node/index.d.ts +22 -0
- package/dest/browser/barretenberg_wasm/helpers/node/index.d.ts.map +1 -0
- package/dest/browser/barretenberg_wasm/helpers/node/node_endpoint.d.ts +8 -0
- package/dest/browser/barretenberg_wasm/helpers/node/node_endpoint.d.ts.map +1 -0
- package/dest/browser/barretenberg_wasm/index.d.ts +18 -0
- package/dest/browser/barretenberg_wasm/index.d.ts.map +1 -0
- package/dest/browser/bigint-array/index.d.ts +3 -0
- package/dest/browser/bigint-array/index.d.ts.map +1 -0
- package/dest/browser/crs/browser/cached_net_crs.d.ts +43 -0
- package/dest/browser/crs/browser/cached_net_crs.d.ts.map +1 -0
- package/dest/browser/crs/browser/index.d.ts +2 -0
- package/dest/browser/crs/browser/index.d.ts.map +1 -0
- package/dest/browser/crs/index.d.ts +2 -0
- package/dest/browser/crs/index.d.ts.map +1 -0
- package/dest/browser/crs/net_crs.d.ts +61 -0
- package/dest/browser/crs/net_crs.d.ts.map +1 -0
- package/dest/browser/crs/node/index.d.ts +36 -0
- package/dest/browser/crs/node/index.d.ts.map +1 -0
- package/dest/browser/index.d.ts +5 -0
- package/dest/browser/index.d.ts.map +1 -0
- package/dest/browser/index.js +16205 -0
- package/dest/browser/proof/index.d.ts +19 -0
- package/dest/browser/proof/index.d.ts.map +1 -0
- package/dest/browser/random/browser/index.d.ts +2 -0
- package/dest/browser/random/browser/index.d.ts.map +1 -0
- package/dest/browser/random/index.d.ts +2 -0
- package/dest/browser/random/index.d.ts.map +1 -0
- package/dest/browser/random/node/index.d.ts +2 -0
- package/dest/browser/random/node/index.d.ts.map +1 -0
- package/dest/browser/serialize/buffer_reader.d.ts +28 -0
- package/dest/browser/serialize/buffer_reader.d.ts.map +1 -0
- package/dest/browser/serialize/index.d.ts +4 -0
- package/dest/browser/serialize/index.d.ts.map +1 -0
- package/dest/browser/serialize/output_type.d.ts +11 -0
- package/dest/browser/serialize/output_type.d.ts.map +1 -0
- package/dest/browser/serialize/serialize.d.ts +53 -0
- package/dest/browser/serialize/serialize.d.ts.map +1 -0
- package/dest/browser/types/fields.d.ts +43 -0
- package/dest/browser/types/fields.d.ts.map +1 -0
- package/dest/browser/types/fixed_size_buffer.d.ts +26 -0
- package/dest/browser/types/fixed_size_buffer.d.ts.map +1 -0
- package/dest/browser/types/index.d.ts +6 -0
- package/dest/browser/types/index.d.ts.map +1 -0
- package/dest/browser/types/point.d.ts +17 -0
- package/dest/browser/types/point.d.ts.map +1 -0
- package/dest/browser/types/ptr.d.ts +13 -0
- package/dest/browser/types/ptr.d.ts.map +1 -0
- package/dest/browser/types/raw_buffer.d.ts +3 -0
- package/dest/browser/types/raw_buffer.d.ts.map +1 -0
- package/dest/node/async_map/index.d.ts +10 -0
- package/dest/node/async_map/index.d.ts.map +1 -0
- package/dest/node/async_map/index.js +16 -0
- package/dest/node/barretenberg/backend.d.ts +85 -0
- package/dest/node/barretenberg/backend.d.ts.map +1 -0
- package/dest/node/barretenberg/backend.js +247 -0
- package/dest/node/barretenberg/blake2s.test.d.ts +2 -0
- package/dest/node/barretenberg/blake2s.test.d.ts.map +1 -0
- package/dest/node/barretenberg/blake2s.test.js +54 -0
- package/dest/node/barretenberg/common.test.d.ts +2 -0
- package/dest/node/barretenberg/common.test.d.ts.map +1 -0
- package/dest/node/barretenberg/common.test.js +20 -0
- package/dest/node/barretenberg/index.d.ts +47 -0
- package/dest/node/barretenberg/index.d.ts.map +1 -0
- package/dest/node/barretenberg/index.js +97 -0
- package/dest/node/barretenberg/pedersen.test.d.ts +2 -0
- package/dest/node/barretenberg/pedersen.test.d.ts.map +1 -0
- package/dest/node/barretenberg/pedersen.test.js +55 -0
- package/dest/node/barretenberg/poseidon.test.d.ts +2 -0
- package/dest/node/barretenberg/poseidon.test.d.ts.map +1 -0
- package/dest/node/barretenberg/poseidon.test.js +35 -0
- package/dest/node/barretenberg/schnorr.test.d.ts +2 -0
- package/dest/node/barretenberg/schnorr.test.d.ts.map +1 -0
- package/dest/node/barretenberg/schnorr.test.js +113 -0
- package/dest/node/barretenberg/verifier.d.ts +16 -0
- package/dest/node/barretenberg/verifier.d.ts.map +1 -0
- package/dest/node/barretenberg/verifier.js +40 -0
- package/dest/node/barretenberg_api/index.d.ts +113 -0
- package/dest/node/barretenberg_api/index.d.ts.map +1 -0
- package/dest/node/barretenberg_api/index.js +728 -0
- package/dest/node/barretenberg_wasm/barretenberg-threads.wasm.gz +0 -0
- package/dest/node/barretenberg_wasm/barretenberg_wasm_base/index.d.ts +44 -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 +125 -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 +18 -0
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.d.ts +2 -0
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.d.ts.map +1 -0
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.js +9 -0
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts +21 -0
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts.map +1 -0
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.js +57 -0
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/index.d.ts +47 -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 +107 -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 +18 -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 +12 -0
- package/dest/node/barretenberg_wasm/fetch_code/index.d.ts +2 -0
- package/dest/node/barretenberg_wasm/fetch_code/index.d.ts.map +1 -0
- package/dest/node/barretenberg_wasm/fetch_code/index.js +2 -0
- package/dest/node/barretenberg_wasm/fetch_code/node/index.d.ts +2 -0
- package/dest/node/barretenberg_wasm/fetch_code/node/index.d.ts.map +1 -0
- package/dest/node/barretenberg_wasm/fetch_code/node/index.js +22 -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/node/barretenberg_wasm/helpers/node/index.d.ts +22 -0
- package/dest/node/barretenberg_wasm/helpers/node/index.d.ts.map +1 -0
- package/dest/node/barretenberg_wasm/helpers/node/index.js +39 -0
- package/dest/node/barretenberg_wasm/helpers/node/node_endpoint.d.ts +8 -0
- package/dest/node/barretenberg_wasm/helpers/node/node_endpoint.d.ts.map +1 -0
- package/dest/node/barretenberg_wasm/helpers/node/node_endpoint.js +28 -0
- package/dest/node/barretenberg_wasm/index.d.ts +18 -0
- package/dest/node/barretenberg_wasm/index.d.ts.map +1 -0
- package/dest/node/barretenberg_wasm/index.js +45 -0
- package/dest/node/barretenberg_wasm/index.test.d.ts +2 -0
- package/dest/node/barretenberg_wasm/index.test.d.ts.map +1 -0
- package/dest/node/barretenberg_wasm/index.test.js +38 -0
- package/dest/node/benchmark/index.d.ts +3 -0
- package/dest/node/benchmark/index.d.ts.map +1 -0
- package/dest/node/benchmark/index.js +25 -0
- package/dest/node/benchmark/timer.d.ts +34 -0
- package/dest/node/benchmark/timer.d.ts.map +1 -0
- package/dest/node/benchmark/timer.js +41 -0
- package/dest/node/bigint-array/index.d.ts +3 -0
- package/dest/node/bigint-array/index.d.ts.map +1 -0
- package/dest/node/bigint-array/index.js +21 -0
- package/dest/node/bindgen/function_declaration.d.ts +11 -0
- package/dest/node/bindgen/function_declaration.d.ts.map +1 -0
- package/dest/node/bindgen/function_declaration.js +2 -0
- package/dest/node/bindgen/index.d.ts +2 -0
- package/dest/node/bindgen/index.d.ts.map +1 -0
- package/dest/node/bindgen/index.js +15 -0
- package/dest/node/bindgen/mappings.d.ts +4 -0
- package/dest/node/bindgen/mappings.d.ts.map +1 -0
- package/dest/node/bindgen/mappings.js +63 -0
- package/dest/node/bindgen/rust.d.ts +2 -0
- package/dest/node/bindgen/rust.d.ts.map +1 -0
- package/dest/node/bindgen/rust.js +43 -0
- package/dest/node/bindgen/to_camel_case.d.ts +2 -0
- package/dest/node/bindgen/to_camel_case.d.ts.map +1 -0
- package/dest/node/bindgen/to_camel_case.js +11 -0
- package/dest/node/bindgen/typescript.d.ts +2 -0
- package/dest/node/bindgen/typescript.d.ts.map +1 -0
- package/dest/node/bindgen/typescript.js +100 -0
- package/dest/node/crs/browser/cached_net_crs.d.ts +43 -0
- package/dest/node/crs/browser/cached_net_crs.d.ts.map +1 -0
- package/dest/node/crs/browser/cached_net_crs.js +90 -0
- package/dest/node/crs/browser/index.d.ts +2 -0
- package/dest/node/crs/browser/index.d.ts.map +1 -0
- package/dest/node/crs/browser/index.js +2 -0
- package/dest/node/crs/index.d.ts +2 -0
- package/dest/node/crs/index.d.ts.map +1 -0
- package/dest/node/crs/index.js +2 -0
- package/dest/node/crs/net_crs.d.ts +61 -0
- package/dest/node/crs/net_crs.d.ts.map +1 -0
- package/dest/node/crs/net_crs.js +97 -0
- package/dest/node/crs/node/ignition_files_crs.d.ts +38 -0
- package/dest/node/crs/node/ignition_files_crs.d.ts.map +1 -0
- package/dest/node/crs/node/ignition_files_crs.js +65 -0
- package/dest/node/crs/node/index.d.ts +36 -0
- package/dest/node/crs/node/index.d.ts.map +1 -0
- package/dest/node/crs/node/index.js +93 -0
- 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 +30 -0
- package/dest/node/examples/simple.test.d.ts +2 -0
- package/dest/node/examples/simple.test.d.ts.map +1 -0
- package/dest/node/examples/simple.test.js +23 -0
- package/dest/node/index.d.ts +5 -0
- package/dest/node/index.d.ts.map +1 -0
- package/dest/node/index.js +5 -0
- package/dest/node/main.d.ts +23 -0
- package/dest/node/main.d.ts.map +1 -0
- package/dest/node/main.js +712 -0
- package/dest/node/proof/index.d.ts +19 -0
- package/dest/node/proof/index.d.ts.map +1 -0
- package/dest/node/proof/index.js +85 -0
- package/dest/node/random/browser/index.d.ts +2 -0
- package/dest/node/random/browser/index.d.ts.map +1 -0
- package/dest/node/random/browser/index.js +31 -0
- package/dest/node/random/index.d.ts +2 -0
- package/dest/node/random/index.d.ts.map +1 -0
- package/dest/node/random/index.js +2 -0
- package/dest/node/random/node/index.d.ts +2 -0
- package/dest/node/random/node/index.d.ts.map +1 -0
- package/dest/node/random/node/index.js +5 -0
- package/dest/node/serialize/buffer_reader.d.ts +28 -0
- package/dest/node/serialize/buffer_reader.d.ts.map +1 -0
- package/dest/node/serialize/buffer_reader.js +66 -0
- package/dest/node/serialize/index.d.ts +4 -0
- package/dest/node/serialize/index.d.ts.map +1 -0
- package/dest/node/serialize/index.js +4 -0
- package/dest/node/serialize/output_type.d.ts +11 -0
- package/dest/node/serialize/output_type.d.ts.map +1 -0
- package/dest/node/serialize/output_type.js +44 -0
- package/dest/node/serialize/serialize.d.ts +53 -0
- package/dest/node/serialize/serialize.d.ts.map +1 -0
- package/dest/node/serialize/serialize.js +139 -0
- package/dest/node/types/fields.d.ts +43 -0
- package/dest/node/types/fields.d.ts.map +1 -0
- package/dest/node/types/fields.js +97 -0
- package/dest/node/types/fixed_size_buffer.d.ts +26 -0
- package/dest/node/types/fixed_size_buffer.d.ts.map +1 -0
- package/dest/node/types/fixed_size_buffer.js +51 -0
- package/dest/node/types/index.d.ts +6 -0
- package/dest/node/types/index.d.ts.map +1 -0
- package/dest/node/types/index.js +6 -0
- package/dest/node/types/point.d.ts +17 -0
- package/dest/node/types/point.d.ts.map +1 -0
- package/dest/node/types/point.js +31 -0
- package/dest/node/types/ptr.d.ts +13 -0
- package/dest/node/types/ptr.d.ts.map +1 -0
- package/dest/node/types/ptr.js +19 -0
- package/dest/node/types/raw_buffer.d.ts +3 -0
- package/dest/node/types/raw_buffer.d.ts.map +1 -0
- package/dest/node/types/raw_buffer.js +5 -0
- package/dest/node-cjs/async_map/index.d.ts +10 -0
- package/dest/node-cjs/async_map/index.d.ts.map +1 -0
- package/dest/node-cjs/async_map/index.js +20 -0
- package/dest/node-cjs/barretenberg/backend.d.ts +85 -0
- package/dest/node-cjs/barretenberg/backend.d.ts.map +1 -0
- package/dest/node-cjs/barretenberg/backend.js +253 -0
- package/dest/node-cjs/barretenberg/blake2s.test.d.ts +2 -0
- package/dest/node-cjs/barretenberg/blake2s.test.d.ts.map +1 -0
- package/dest/node-cjs/barretenberg/blake2s.test.js +56 -0
- package/dest/node-cjs/barretenberg/common.test.d.ts +2 -0
- package/dest/node-cjs/barretenberg/common.test.d.ts.map +1 -0
- package/dest/node-cjs/barretenberg/common.test.js +22 -0
- package/dest/node-cjs/barretenberg/index.d.ts +47 -0
- package/dest/node-cjs/barretenberg/index.d.ts.map +1 -0
- package/dest/node-cjs/barretenberg/index.js +106 -0
- package/dest/node-cjs/barretenberg/pedersen.test.d.ts +2 -0
- package/dest/node-cjs/barretenberg/pedersen.test.d.ts.map +1 -0
- package/dest/node-cjs/barretenberg/pedersen.test.js +57 -0
- package/dest/node-cjs/barretenberg/poseidon.test.d.ts +2 -0
- package/dest/node-cjs/barretenberg/poseidon.test.d.ts.map +1 -0
- package/dest/node-cjs/barretenberg/poseidon.test.js +37 -0
- package/dest/node-cjs/barretenberg/schnorr.test.d.ts +2 -0
- package/dest/node-cjs/barretenberg/schnorr.test.d.ts.map +1 -0
- package/dest/node-cjs/barretenberg/schnorr.test.js +115 -0
- package/dest/node-cjs/barretenberg/verifier.d.ts +16 -0
- package/dest/node-cjs/barretenberg/verifier.d.ts.map +1 -0
- package/dest/node-cjs/barretenberg/verifier.js +44 -0
- package/dest/node-cjs/barretenberg_api/index.d.ts +113 -0
- package/dest/node-cjs/barretenberg_api/index.d.ts.map +1 -0
- package/dest/node-cjs/barretenberg_api/index.js +733 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg-threads.wasm.gz +0 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_base/index.d.ts +44 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_base/index.d.ts.map +1 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_base/index.js +130 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts +2 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts.map +1 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.js +15 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.d.ts +3 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.d.ts.map +1 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.js +15 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.d.ts +4 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.d.ts.map +1 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.js +22 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.d.ts +2 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.d.ts.map +1 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.js +11 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts +21 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts.map +1 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.js +61 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/index.d.ts +47 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/index.d.ts.map +1 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/index.js +112 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts +2 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts.map +1 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.js +15 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.d.ts +3 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.d.ts.map +1 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.js +15 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.d.ts +4 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.d.ts.map +1 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.js +22 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.d.ts +2 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.d.ts.map +1 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.js +11 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts +28 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts.map +1 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/index.js +44 -0
- package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/index.d.ts +2 -0
- package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/index.d.ts.map +1 -0
- package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/index.js +17 -0
- package/dest/node-cjs/barretenberg_wasm/fetch_code/index.d.ts +2 -0
- package/dest/node-cjs/barretenberg_wasm/fetch_code/index.d.ts.map +1 -0
- package/dest/node-cjs/barretenberg_wasm/fetch_code/index.js +5 -0
- package/dest/node-cjs/barretenberg_wasm/fetch_code/node/index.d.ts +2 -0
- package/dest/node-cjs/barretenberg_wasm/fetch_code/node/index.d.ts.map +1 -0
- package/dest/node-cjs/barretenberg_wasm/fetch_code/node/index.js +27 -0
- package/dest/node-cjs/barretenberg_wasm/helpers/browser/index.d.ts +6 -0
- package/dest/node-cjs/barretenberg_wasm/helpers/browser/index.d.ts.map +1 -0
- package/dest/node-cjs/barretenberg_wasm/helpers/browser/index.js +26 -0
- package/dest/node-cjs/barretenberg_wasm/helpers/index.d.ts +2 -0
- package/dest/node-cjs/barretenberg_wasm/helpers/index.d.ts.map +1 -0
- package/dest/node-cjs/barretenberg_wasm/helpers/index.js +5 -0
- package/dest/node-cjs/barretenberg_wasm/helpers/node/index.d.ts +22 -0
- package/dest/node-cjs/barretenberg_wasm/helpers/node/index.d.ts.map +1 -0
- package/dest/node-cjs/barretenberg_wasm/helpers/node/index.js +48 -0
- package/dest/node-cjs/barretenberg_wasm/helpers/node/node_endpoint.d.ts +8 -0
- package/dest/node-cjs/barretenberg_wasm/helpers/node/node_endpoint.d.ts.map +1 -0
- package/dest/node-cjs/barretenberg_wasm/helpers/node/node_endpoint.js +32 -0
- package/dest/node-cjs/barretenberg_wasm/index.d.ts +18 -0
- package/dest/node-cjs/barretenberg_wasm/index.d.ts.map +1 -0
- package/dest/node-cjs/barretenberg_wasm/index.js +51 -0
- package/dest/node-cjs/barretenberg_wasm/index.test.d.ts +2 -0
- package/dest/node-cjs/barretenberg_wasm/index.test.d.ts.map +1 -0
- package/dest/node-cjs/barretenberg_wasm/index.test.js +40 -0
- package/dest/node-cjs/benchmark/index.d.ts +3 -0
- package/dest/node-cjs/benchmark/index.d.ts.map +1 -0
- package/dest/node-cjs/benchmark/index.js +30 -0
- package/dest/node-cjs/benchmark/timer.d.ts +34 -0
- package/dest/node-cjs/benchmark/timer.d.ts.map +1 -0
- package/dest/node-cjs/benchmark/timer.js +45 -0
- package/dest/node-cjs/bigint-array/index.d.ts +3 -0
- package/dest/node-cjs/bigint-array/index.d.ts.map +1 -0
- package/dest/node-cjs/bigint-array/index.js +26 -0
- package/dest/node-cjs/bindgen/function_declaration.d.ts +11 -0
- package/dest/node-cjs/bindgen/function_declaration.d.ts.map +1 -0
- package/dest/node-cjs/bindgen/function_declaration.js +3 -0
- package/dest/node-cjs/bindgen/index.d.ts +2 -0
- package/dest/node-cjs/bindgen/index.d.ts.map +1 -0
- package/dest/node-cjs/bindgen/index.js +17 -0
- package/dest/node-cjs/bindgen/mappings.d.ts +4 -0
- package/dest/node-cjs/bindgen/mappings.d.ts.map +1 -0
- package/dest/node-cjs/bindgen/mappings.js +68 -0
- package/dest/node-cjs/bindgen/rust.d.ts +2 -0
- package/dest/node-cjs/bindgen/rust.d.ts.map +1 -0
- package/dest/node-cjs/bindgen/rust.js +48 -0
- package/dest/node-cjs/bindgen/to_camel_case.d.ts +2 -0
- package/dest/node-cjs/bindgen/to_camel_case.d.ts.map +1 -0
- package/dest/node-cjs/bindgen/to_camel_case.js +15 -0
- package/dest/node-cjs/bindgen/typescript.d.ts +2 -0
- package/dest/node-cjs/bindgen/typescript.d.ts.map +1 -0
- package/dest/node-cjs/bindgen/typescript.js +105 -0
- package/dest/node-cjs/crs/browser/cached_net_crs.d.ts +43 -0
- package/dest/node-cjs/crs/browser/cached_net_crs.d.ts.map +1 -0
- package/dest/node-cjs/crs/browser/cached_net_crs.js +95 -0
- package/dest/node-cjs/crs/browser/index.d.ts +2 -0
- package/dest/node-cjs/crs/browser/index.d.ts.map +1 -0
- package/dest/node-cjs/crs/browser/index.js +7 -0
- package/dest/node-cjs/crs/index.d.ts +2 -0
- package/dest/node-cjs/crs/index.d.ts.map +1 -0
- package/dest/node-cjs/crs/index.js +7 -0
- package/dest/node-cjs/crs/net_crs.d.ts +61 -0
- package/dest/node-cjs/crs/net_crs.d.ts.map +1 -0
- package/dest/node-cjs/crs/net_crs.js +102 -0
- package/dest/node-cjs/crs/node/ignition_files_crs.d.ts +38 -0
- package/dest/node-cjs/crs/node/ignition_files_crs.d.ts.map +1 -0
- package/dest/node-cjs/crs/node/ignition_files_crs.js +69 -0
- package/dest/node-cjs/crs/node/index.d.ts +36 -0
- package/dest/node-cjs/crs/node/index.d.ts.map +1 -0
- package/dest/node-cjs/crs/node/index.js +99 -0
- package/dest/node-cjs/examples/simple.rawtest.d.ts +2 -0
- package/dest/node-cjs/examples/simple.rawtest.d.ts.map +1 -0
- package/dest/node-cjs/examples/simple.rawtest.js +33 -0
- package/dest/node-cjs/examples/simple.test.d.ts +2 -0
- package/dest/node-cjs/examples/simple.test.d.ts.map +1 -0
- package/dest/node-cjs/examples/simple.test.js +25 -0
- package/dest/node-cjs/index.d.ts +5 -0
- package/dest/node-cjs/index.d.ts.map +1 -0
- package/dest/node-cjs/index.js +20 -0
- package/dest/node-cjs/main.d.ts +23 -0
- package/dest/node-cjs/main.d.ts.map +1 -0
- package/dest/node-cjs/main.js +735 -0
- package/dest/node-cjs/package.json +3 -0
- package/dest/node-cjs/proof/index.d.ts +19 -0
- package/dest/node-cjs/proof/index.d.ts.map +1 -0
- package/dest/node-cjs/proof/index.js +93 -0
- package/dest/node-cjs/random/browser/index.d.ts +2 -0
- package/dest/node-cjs/random/browser/index.d.ts.map +1 -0
- package/dest/node-cjs/random/browser/index.js +35 -0
- package/dest/node-cjs/random/index.d.ts +2 -0
- package/dest/node-cjs/random/index.d.ts.map +1 -0
- package/dest/node-cjs/random/index.js +5 -0
- package/dest/node-cjs/random/node/index.d.ts +2 -0
- package/dest/node-cjs/random/node/index.d.ts.map +1 -0
- package/dest/node-cjs/random/node/index.js +9 -0
- package/dest/node-cjs/serialize/buffer_reader.d.ts +28 -0
- package/dest/node-cjs/serialize/buffer_reader.d.ts.map +1 -0
- package/dest/node-cjs/serialize/buffer_reader.js +70 -0
- package/dest/node-cjs/serialize/index.d.ts +4 -0
- package/dest/node-cjs/serialize/index.d.ts.map +1 -0
- package/dest/node-cjs/serialize/index.js +7 -0
- package/dest/node-cjs/serialize/output_type.d.ts +11 -0
- package/dest/node-cjs/serialize/output_type.d.ts.map +1 -0
- package/dest/node-cjs/serialize/output_type.js +52 -0
- package/dest/node-cjs/serialize/serialize.d.ts +53 -0
- package/dest/node-cjs/serialize/serialize.d.ts.map +1 -0
- package/dest/node-cjs/serialize/serialize.js +161 -0
- package/dest/node-cjs/types/fields.d.ts +43 -0
- package/dest/node-cjs/types/fields.d.ts.map +1 -0
- package/dest/node-cjs/types/fields.js +102 -0
- package/dest/node-cjs/types/fixed_size_buffer.d.ts +26 -0
- package/dest/node-cjs/types/fixed_size_buffer.d.ts.map +1 -0
- package/dest/node-cjs/types/fixed_size_buffer.js +57 -0
- package/dest/node-cjs/types/index.d.ts +6 -0
- package/dest/node-cjs/types/index.d.ts.map +1 -0
- package/dest/node-cjs/types/index.js +9 -0
- package/dest/node-cjs/types/point.d.ts +17 -0
- package/dest/node-cjs/types/point.d.ts.map +1 -0
- package/dest/node-cjs/types/point.js +35 -0
- package/dest/node-cjs/types/ptr.d.ts +13 -0
- package/dest/node-cjs/types/ptr.d.ts.map +1 -0
- package/dest/node-cjs/types/ptr.js +23 -0
- package/dest/node-cjs/types/raw_buffer.d.ts +3 -0
- package/dest/node-cjs/types/raw_buffer.d.ts.map +1 -0
- package/dest/node-cjs/types/raw_buffer.js +9 -0
- package/package.json +105 -0
- package/src/async_map/index.ts +15 -0
- package/src/barretenberg/__snapshots__/pedersen.test.ts.snap +156 -0
- package/src/barretenberg/__snapshots__/poseidon.test.ts.snap +40 -0
- package/src/barretenberg/backend.ts +362 -0
- package/src/barretenberg/blake2s.test.ts +70 -0
- package/src/barretenberg/common.test.ts +23 -0
- package/src/barretenberg/index.ts +130 -0
- package/src/barretenberg/pedersen.test.ts +62 -0
- package/src/barretenberg/poseidon.test.ts +39 -0
- package/src/barretenberg/schnorr.test.ts +182 -0
- package/src/barretenberg/verifier.ts +55 -0
- package/src/barretenberg_api/index.ts +1305 -0
- package/src/barretenberg_wasm/barretenberg_wasm_base/index.ts +138 -0
- package/src/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.ts +10 -0
- package/src/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.ts +15 -0
- package/src/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.ts +18 -0
- package/src/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.ts +10 -0
- package/src/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.ts +60 -0
- package/src/barretenberg_wasm/barretenberg_wasm_main/index.ts +138 -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 +18 -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 +12 -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 +22 -0
- package/src/barretenberg_wasm/helpers/browser/index.ts +22 -0
- package/src/barretenberg_wasm/helpers/index.ts +1 -0
- package/src/barretenberg_wasm/helpers/node/index.ts +44 -0
- package/src/barretenberg_wasm/helpers/node/node_endpoint.ts +28 -0
- package/src/barretenberg_wasm/index.test.ts +45 -0
- package/src/barretenberg_wasm/index.ts +50 -0
- package/src/benchmark/index.ts +26 -0
- package/src/benchmark/timer.ts +45 -0
- package/src/bigint-array/index.ts +21 -0
- package/src/bindgen/function_declaration.ts +11 -0
- package/src/bindgen/index.ts +17 -0
- package/src/bindgen/mappings.ts +66 -0
- package/src/bindgen/rust.ts +52 -0
- package/src/bindgen/to_camel_case.ts +10 -0
- package/src/bindgen/typescript.ts +116 -0
- package/src/crs/browser/cached_net_crs.ts +99 -0
- package/src/crs/browser/index.ts +1 -0
- package/src/crs/index.ts +1 -0
- package/src/crs/net_crs.ts +115 -0
- package/src/crs/node/ignition_files_crs.ts +74 -0
- package/src/crs/node/index.ts +102 -0
- package/src/examples/simple.rawtest.ts +38 -0
- package/src/examples/simple.test.ts +28 -0
- package/src/index.html +9 -0
- package/src/index.ts +12 -0
- package/src/main.ts +834 -0
- package/src/proof/index.ts +120 -0
- package/src/random/browser/index.ts +32 -0
- package/src/random/index.ts +1 -0
- package/src/random/node/index.ts +5 -0
- package/src/serialize/buffer_reader.ts +82 -0
- package/src/serialize/index.ts +3 -0
- package/src/serialize/output_type.ts +53 -0
- package/src/serialize/serialize.ts +157 -0
- package/src/types/fields.ts +115 -0
- package/src/types/fixed_size_buffer.ts +59 -0
- package/src/types/index.ts +5 -0
- package/src/types/point.ts +35 -0
- package/src/types/ptr.ts +20 -0
- package/src/types/raw_buffer.ts +3 -0
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { type Worker } from 'worker_threads';
|
|
2
|
+
import { BarretenbergWasm, BarretenbergWasmWorker } from './index.js';
|
|
3
|
+
|
|
4
|
+
describe('barretenberg wasm', () => {
|
|
5
|
+
let worker!: Worker;
|
|
6
|
+
let wasm!: BarretenbergWasmWorker;
|
|
7
|
+
|
|
8
|
+
beforeAll(async () => {
|
|
9
|
+
({ wasm, worker } = await BarretenbergWasm.new(2));
|
|
10
|
+
}, 20000);
|
|
11
|
+
|
|
12
|
+
afterAll(async () => {
|
|
13
|
+
await wasm.destroy();
|
|
14
|
+
await worker.terminate();
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
it('should new malloc, transfer and slice mem', async () => {
|
|
18
|
+
const length = 1024;
|
|
19
|
+
const ptr = await wasm.call('bbmalloc', length);
|
|
20
|
+
const buf = Buffer.alloc(length, 128);
|
|
21
|
+
await wasm.writeMemory(ptr, buf);
|
|
22
|
+
const result = Buffer.from(await wasm.getMemorySlice(ptr, ptr + length));
|
|
23
|
+
await wasm.call('bbfree', ptr);
|
|
24
|
+
expect(result).toStrictEqual(buf);
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
it('test abort', async () => {
|
|
28
|
+
await expect(() => wasm.call('test_abort')).rejects.toThrow();
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
it('test c/c++ stdout/stderr', async () => {
|
|
32
|
+
// We're checking we don't crash, but you can manually confirm you see log lines handled by logstr.
|
|
33
|
+
await wasm.call('test_stdout_stderr');
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
it('should new malloc, transfer and slice mem', async () => {
|
|
37
|
+
const length = 1024;
|
|
38
|
+
const ptr = await wasm.call('bbmalloc', length);
|
|
39
|
+
const buf = Buffer.alloc(length, 128);
|
|
40
|
+
await wasm.writeMemory(ptr, buf);
|
|
41
|
+
const result = Buffer.from(await wasm.getMemorySlice(ptr, ptr + length));
|
|
42
|
+
await wasm.call('bbfree', ptr);
|
|
43
|
+
expect(result).toStrictEqual(buf);
|
|
44
|
+
});
|
|
45
|
+
});
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { proxy } from 'comlink';
|
|
2
|
+
import createDebug from 'debug';
|
|
3
|
+
import { createMainWorker } from './barretenberg_wasm_main/factory/node/index.js';
|
|
4
|
+
import { getRemoteBarretenbergWasm, getSharedMemoryAvailable } from './helpers/node/index.js';
|
|
5
|
+
import { BarretenbergWasmMain, BarretenbergWasmMainWorker } from './barretenberg_wasm_main/index.js';
|
|
6
|
+
import { fetchCode } from './fetch_code/index.js';
|
|
7
|
+
|
|
8
|
+
const debug = createDebug('bb.js:wasm');
|
|
9
|
+
|
|
10
|
+
export async function fetchModuleAndThreads(desiredThreads = 32) {
|
|
11
|
+
const shared = getSharedMemoryAvailable();
|
|
12
|
+
|
|
13
|
+
const availableThreads = shared ? await getAvailableThreads() : 1;
|
|
14
|
+
// We limit the number of threads to 32 as we do not benefit from greater numbers.
|
|
15
|
+
const limitedThreads = Math.min(desiredThreads, availableThreads, 32);
|
|
16
|
+
|
|
17
|
+
const code = await fetchCode(shared);
|
|
18
|
+
const module = await WebAssembly.compile(code);
|
|
19
|
+
return { module, threads: limitedThreads };
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
async function getAvailableThreads(): Promise<number> {
|
|
23
|
+
if (typeof navigator !== 'undefined' && navigator.hardwareConcurrency) {
|
|
24
|
+
return navigator.hardwareConcurrency;
|
|
25
|
+
} else {
|
|
26
|
+
try {
|
|
27
|
+
const os = await import('os');
|
|
28
|
+
return os.cpus().length;
|
|
29
|
+
} catch (e) {
|
|
30
|
+
debug(`Could not detect environment. Falling back to one thread.: {e}`);
|
|
31
|
+
return 1;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export class BarretenbergWasm extends BarretenbergWasmMain {
|
|
37
|
+
/**
|
|
38
|
+
* Construct and initialize BarretenbergWasm within a Worker. Return both the worker and the wasm proxy.
|
|
39
|
+
* Used when running in the browser, because we can't block the main thread.
|
|
40
|
+
*/
|
|
41
|
+
public static async new(desiredThreads?: number) {
|
|
42
|
+
const worker = createMainWorker();
|
|
43
|
+
const wasm = getRemoteBarretenbergWasm<BarretenbergWasmMainWorker>(worker);
|
|
44
|
+
const { module, threads } = await fetchModuleAndThreads(desiredThreads);
|
|
45
|
+
await wasm.init(module, threads, proxy(debug));
|
|
46
|
+
return { worker, wasm };
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export type BarretenbergWasmWorker = BarretenbergWasmMainWorker;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import * as fs from 'fs';
|
|
2
|
+
export * from './timer.js';
|
|
3
|
+
|
|
4
|
+
const bfd = (() => {
|
|
5
|
+
const bfdStr = process.env.BENCHMARK_FD;
|
|
6
|
+
const bfd = bfdStr ? parseInt(bfdStr) : -1;
|
|
7
|
+
if (bfd >= 0 && !fs.fstatSync(bfd)) {
|
|
8
|
+
throw new Error('fd is not open. Did you redirect in your shell?');
|
|
9
|
+
}
|
|
10
|
+
return bfd;
|
|
11
|
+
})();
|
|
12
|
+
|
|
13
|
+
export function writeBenchmark<T>(name: string, value: T, labels: Record<string, any> = {}) {
|
|
14
|
+
if (bfd === -1) {
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
const data = {
|
|
18
|
+
timestamp: new Date().toISOString(),
|
|
19
|
+
name,
|
|
20
|
+
type: typeof value,
|
|
21
|
+
value,
|
|
22
|
+
...labels,
|
|
23
|
+
};
|
|
24
|
+
const jsonl = JSON.stringify(data) + '\n';
|
|
25
|
+
fs.writeSync(bfd, jsonl);
|
|
26
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Timer class to measure time intervals in milliseconds and seconds.
|
|
3
|
+
* Upon instantiation, it stores the current timestamp as the starting point.
|
|
4
|
+
* The 'ms()' method returns the elapsed time in milliseconds,
|
|
5
|
+
* while the 's()' method returns the elapsed time in seconds.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* const timer = new Timer();
|
|
9
|
+
* setTimeout(() =\> \{
|
|
10
|
+
* console.log(`Elapsed time: ${timer.ms()} ms`);
|
|
11
|
+
* \}, 1000);
|
|
12
|
+
*/
|
|
13
|
+
export class Timer {
|
|
14
|
+
private start: number;
|
|
15
|
+
|
|
16
|
+
constructor() {
|
|
17
|
+
this.start = performance.now();
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
public us() {
|
|
21
|
+
return this.ms() * 1000;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Returns the elapsed time in milliseconds since the Timer instance was created.
|
|
26
|
+
* Provides a simple and convenient way to measure the time duration between two events
|
|
27
|
+
* or monitor performance of specific code sections.
|
|
28
|
+
*
|
|
29
|
+
* @returns The elapsed time in milliseconds.
|
|
30
|
+
*/
|
|
31
|
+
public ms() {
|
|
32
|
+
return performance.now() - this.start;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Returns the time elapsed since the Timer instance was created, in seconds.
|
|
37
|
+
* The value is calculated by subtracting the initial start time from the current time
|
|
38
|
+
* and dividing the result by 1000 to convert milliseconds to seconds.
|
|
39
|
+
*
|
|
40
|
+
* @returns The elapsed time in seconds.
|
|
41
|
+
*/
|
|
42
|
+
public s() {
|
|
43
|
+
return this.ms() / 1000;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export function toBigIntBE(bytes: Uint8Array) {
|
|
2
|
+
// A Buffer in node, *is* a Uint8Array. We can't refuse it's type.
|
|
3
|
+
// However the algo below only works on an actual Uint8Array, hence we make a new one to be safe.
|
|
4
|
+
bytes = new Uint8Array(bytes);
|
|
5
|
+
let bigint = BigInt(0);
|
|
6
|
+
const view = new DataView(bytes.buffer);
|
|
7
|
+
for (let i = 0; i < bytes.byteLength; i++) {
|
|
8
|
+
bigint = (bigint << BigInt(8)) + BigInt(view.getUint8(i));
|
|
9
|
+
}
|
|
10
|
+
return bigint;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export function toBufferBE(value: bigint, byteLength = 32) {
|
|
14
|
+
const bytes = new Uint8Array(byteLength);
|
|
15
|
+
const view = new DataView(bytes.buffer);
|
|
16
|
+
for (let i = 0; i < byteLength; i++) {
|
|
17
|
+
view.setUint8(byteLength - i - 1, Number(value & BigInt(0xff)));
|
|
18
|
+
value >>= BigInt(8);
|
|
19
|
+
}
|
|
20
|
+
return bytes;
|
|
21
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { generateRustCode } from './rust.js';
|
|
2
|
+
import { generateTypeScriptCode } from './typescript.js';
|
|
3
|
+
|
|
4
|
+
const [, , exp = '../exports.json', lang = 'ts'] = process.argv;
|
|
5
|
+
|
|
6
|
+
function generateCode(exports: string, lang: string) {
|
|
7
|
+
switch (lang) {
|
|
8
|
+
case 'ts':
|
|
9
|
+
return generateTypeScriptCode(exports);
|
|
10
|
+
case 'rust':
|
|
11
|
+
return generateRustCode(exports);
|
|
12
|
+
default:
|
|
13
|
+
throw new Error(`Unknown lang: ${lang}`);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
console.log(generateCode(exp, lang));
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/* eslint-disable camelcase */
|
|
2
|
+
const typeMap: { [key: string]: string } = {
|
|
3
|
+
in_ptr: 'Ptr',
|
|
4
|
+
out_ptr: 'Ptr',
|
|
5
|
+
'bb::fr::in_buf': 'Fr',
|
|
6
|
+
'bb::fr::vec_in_buf': 'Fr[]',
|
|
7
|
+
'fr::in_buf': 'Fr',
|
|
8
|
+
'fr::out_buf': 'Fr',
|
|
9
|
+
'fr::vec_in_buf': 'Fr[]',
|
|
10
|
+
'fr::vec_out_buf': 'Fr[]',
|
|
11
|
+
'fq::in_buf': 'Fq',
|
|
12
|
+
'fq::out_buf': 'Fq',
|
|
13
|
+
'fq::vec_in_buf': 'Fq[]',
|
|
14
|
+
'fq::vec_out_buf': 'Fq[]',
|
|
15
|
+
'const uint8_t *': 'Uint8Array',
|
|
16
|
+
'uint8_t **': 'Uint8Array',
|
|
17
|
+
in_str_buf: 'string',
|
|
18
|
+
out_str_buf: 'string',
|
|
19
|
+
in_buf32: 'Buffer32',
|
|
20
|
+
out_buf32: 'Buffer32',
|
|
21
|
+
'uint32_t *': 'number',
|
|
22
|
+
'const uint32_t *': 'number',
|
|
23
|
+
'affine_element::in_buf': 'Point',
|
|
24
|
+
'affine_element::out_buf': 'Point',
|
|
25
|
+
'const bool *': 'boolean',
|
|
26
|
+
'bool *': 'boolean',
|
|
27
|
+
'multisig::MultiSigPublicKey::vec_in_buf': 'Buffer128[]',
|
|
28
|
+
'multisig::MultiSigPublicKey::out_buf': 'Buffer128',
|
|
29
|
+
'multisig::RoundOnePublicOutput::vec_in_buf': 'Buffer128[]',
|
|
30
|
+
'multisig::RoundOnePublicOutput::out_buf': 'Buffer128',
|
|
31
|
+
'multisig::RoundOnePrivateOutput::in_buf': 'Buffer128',
|
|
32
|
+
'multisig::RoundOnePrivateOutput::out_buf': 'Buffer128',
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
const deserializerMap: { [key: string]: string } = {
|
|
36
|
+
out_ptr: 'Ptr',
|
|
37
|
+
'fr::out_buf': 'Fr',
|
|
38
|
+
'fr::vec_out_buf': 'VectorDeserializer(Fr)',
|
|
39
|
+
'fq::out_buf': 'Fq',
|
|
40
|
+
'fq::vec_out_buf': 'VectorDeserializer(Fq)',
|
|
41
|
+
'uint8_t **': 'BufferDeserializer()',
|
|
42
|
+
out_str_buf: 'StringDeserializer()',
|
|
43
|
+
out_buf32: 'Buffer32',
|
|
44
|
+
'uint32_t *': 'NumberDeserializer()',
|
|
45
|
+
'affine_element::out_buf': 'Point',
|
|
46
|
+
'bool *': 'BoolDeserializer()',
|
|
47
|
+
'multisig::MultiSigPublicKey::out_buf': 'Buffer128',
|
|
48
|
+
'multisig::RoundOnePublicOutput::out_buf': 'Buffer128',
|
|
49
|
+
'multisig::RoundOnePrivateOutput::out_buf': 'Buffer128',
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
export function mapType(type: string) {
|
|
53
|
+
if (typeMap[type]) {
|
|
54
|
+
return typeMap[type];
|
|
55
|
+
}
|
|
56
|
+
throw new Error(`Unknown type: ${type}`);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
export const mapRustType = mapType;
|
|
60
|
+
|
|
61
|
+
export function mapDeserializer(type: string) {
|
|
62
|
+
if (deserializerMap[type]) {
|
|
63
|
+
return deserializerMap[type];
|
|
64
|
+
}
|
|
65
|
+
throw new Error(`Unknown deserializer for type: ${type}`);
|
|
66
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import fs from 'fs';
|
|
2
|
+
import { Arg, FunctionDeclaration } from './function_declaration.js';
|
|
3
|
+
import { mapDeserializer, mapRustType } from './mappings.js';
|
|
4
|
+
|
|
5
|
+
export function generateRustCode(filename: string) {
|
|
6
|
+
const fileContent = fs.readFileSync(filename, 'utf-8');
|
|
7
|
+
const functionDeclarations: FunctionDeclaration[] = JSON.parse(fileContent);
|
|
8
|
+
|
|
9
|
+
let output = `
|
|
10
|
+
// WARNING: FILE CODE GENERATED BY BINDGEN UTILITY. DO NOT EDIT!
|
|
11
|
+
use crate::call_wasm_export::call_wasm_export;
|
|
12
|
+
use crate::serialize::{BufferDeserializer, NumberDeserializer, VectorDeserializer, BoolDeserializer};
|
|
13
|
+
use crate::types::{Fr, Fq, Point, Buffer32, Buffer128};
|
|
14
|
+
`;
|
|
15
|
+
|
|
16
|
+
for (const { functionName, inArgs, outArgs } of functionDeclarations) {
|
|
17
|
+
const parameters = inArgs.map(({ name, type }) => `${name}: ${mapRustType(type)}`).join(', ');
|
|
18
|
+
const inArgsVar = `let in_args = vec![${inArgs.map(arg => arg.name).join(', ')}];`;
|
|
19
|
+
const outTypesVar = `let out_types = vec![${outArgs.map(arg => mapDeserializer(arg.type)).join(', ')}];`;
|
|
20
|
+
const wasmCall = `let result = call_wasm_export(&"${functionName}", &in_args, &out_types)?;`;
|
|
21
|
+
|
|
22
|
+
const returnStmt = getReturnStmt(outArgs);
|
|
23
|
+
const returnType =
|
|
24
|
+
outArgs.length === 0
|
|
25
|
+
? '-> Result<(), Box<dyn std::error::Error>>'
|
|
26
|
+
: `-> Result<(${outArgs.map(a => mapRustType(a.type)).join(', ')}), Box<dyn std::error::Error>>`;
|
|
27
|
+
|
|
28
|
+
const functionDecl = `
|
|
29
|
+
pub fn ${functionName}(${parameters})${returnType} {
|
|
30
|
+
${inArgsVar}
|
|
31
|
+
${outTypesVar}
|
|
32
|
+
${wasmCall}
|
|
33
|
+
${returnStmt}
|
|
34
|
+
}
|
|
35
|
+
`;
|
|
36
|
+
|
|
37
|
+
output += functionDecl;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
return output;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
function getReturnStmt(outArgs: Arg[]) {
|
|
44
|
+
switch (outArgs.length) {
|
|
45
|
+
case 0:
|
|
46
|
+
return 'Ok(())';
|
|
47
|
+
case 1:
|
|
48
|
+
return `Ok(result[0].clone())`;
|
|
49
|
+
default:
|
|
50
|
+
return `Ok((${outArgs.map((_, idx) => `result[${idx}].clone()`).join(', ')}))`;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export function toCamelCase(input: string): string {
|
|
2
|
+
const words = input.split('_');
|
|
3
|
+
const camelCasedWords = words.map((word, index) => {
|
|
4
|
+
if (index === 0) {
|
|
5
|
+
return word;
|
|
6
|
+
}
|
|
7
|
+
return word.charAt(0).toUpperCase() + word.slice(1);
|
|
8
|
+
});
|
|
9
|
+
return camelCasedWords.join('');
|
|
10
|
+
}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import fs from 'fs';
|
|
2
|
+
import { mapDeserializer, mapType } from './mappings.js';
|
|
3
|
+
import { toCamelCase } from './to_camel_case.js';
|
|
4
|
+
import { FunctionDeclaration } from './function_declaration.js';
|
|
5
|
+
|
|
6
|
+
export function generateTypeScriptCode(filename: string) {
|
|
7
|
+
const fileContent = fs.readFileSync(filename, 'utf-8');
|
|
8
|
+
const functionDeclarations: FunctionDeclaration[] = JSON.parse(fileContent);
|
|
9
|
+
|
|
10
|
+
let output = `// WARNING: FILE CODE GENERATED BY BINDGEN UTILITY. DO NOT EDIT!
|
|
11
|
+
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
12
|
+
import { BarretenbergWasmWorker, BarretenbergWasm } from '../barretenberg_wasm/index.js';
|
|
13
|
+
import { BufferDeserializer, NumberDeserializer, VectorDeserializer, BoolDeserializer, StringDeserializer, serializeBufferable, OutputType } from '../serialize/index.js';
|
|
14
|
+
import { Fr, Fq, Point, Buffer32, Buffer128, Ptr } from '../types/index.js';
|
|
15
|
+
|
|
16
|
+
`;
|
|
17
|
+
|
|
18
|
+
output += generateClass(functionDeclarations);
|
|
19
|
+
output += generateSyncClass(functionDeclarations);
|
|
20
|
+
|
|
21
|
+
return output;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
function generateClass(functionDeclarations: FunctionDeclaration[]) {
|
|
25
|
+
let output = `
|
|
26
|
+
export class BarretenbergApi {
|
|
27
|
+
constructor(protected wasm: BarretenbergWasmWorker) {}
|
|
28
|
+
|
|
29
|
+
`;
|
|
30
|
+
|
|
31
|
+
for (const { functionName, inArgs, outArgs } of functionDeclarations) {
|
|
32
|
+
try {
|
|
33
|
+
const parameters = inArgs.map(({ name, type }) => `${toCamelCase(name)}: ${mapType(type)}`).join(', ');
|
|
34
|
+
const inArgsVar = `const inArgs = [${inArgs
|
|
35
|
+
.map(arg => toCamelCase(arg.name))
|
|
36
|
+
.join(', ')}].map(serializeBufferable);`;
|
|
37
|
+
const outTypesVar = `const outTypes: OutputType[] = [${outArgs
|
|
38
|
+
.map(arg => mapDeserializer(arg.type))
|
|
39
|
+
.join(', ')}];`;
|
|
40
|
+
const wasmCall = `const result = await this.wasm.callWasmExport('${functionName}', inArgs, outTypes.map(t=>t.SIZE_IN_BYTES));`;
|
|
41
|
+
const outVar = `const out = result.map((r, i) => outTypes[i].fromBuffer(r));`;
|
|
42
|
+
|
|
43
|
+
const n = outArgs.length;
|
|
44
|
+
const returnStmt = n === 0 ? 'return;' : n === 1 ? 'return out[0];' : 'return out as any;';
|
|
45
|
+
const returnType =
|
|
46
|
+
outArgs.length === 0
|
|
47
|
+
? 'void'
|
|
48
|
+
: outArgs.length === 1
|
|
49
|
+
? `${mapType(outArgs[0].type)}`
|
|
50
|
+
: `[${outArgs.map(a => mapType(a.type)).join(', ')}]`;
|
|
51
|
+
|
|
52
|
+
output += `
|
|
53
|
+
async ${toCamelCase(functionName)}(${parameters}): Promise<${returnType}> {
|
|
54
|
+
${inArgsVar}
|
|
55
|
+
${outTypesVar}
|
|
56
|
+
${wasmCall}
|
|
57
|
+
${outVar}
|
|
58
|
+
${returnStmt}
|
|
59
|
+
}
|
|
60
|
+
`;
|
|
61
|
+
} catch (err: any) {
|
|
62
|
+
throw new Error(`Function ${functionName}: ${err.message}`);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
output += `}`;
|
|
67
|
+
|
|
68
|
+
return output;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
function generateSyncClass(functionDeclarations: FunctionDeclaration[]) {
|
|
72
|
+
let output = `
|
|
73
|
+
export class BarretenbergApiSync {
|
|
74
|
+
constructor(protected wasm: BarretenbergWasm) {}
|
|
75
|
+
|
|
76
|
+
`;
|
|
77
|
+
|
|
78
|
+
for (const { functionName, inArgs, outArgs } of functionDeclarations) {
|
|
79
|
+
try {
|
|
80
|
+
const parameters = inArgs.map(({ name, type }) => `${toCamelCase(name)}: ${mapType(type)}`).join(', ');
|
|
81
|
+
const inArgsVar = `const inArgs = [${inArgs
|
|
82
|
+
.map(arg => toCamelCase(arg.name))
|
|
83
|
+
.join(', ')}].map(serializeBufferable);`;
|
|
84
|
+
const outTypesVar = `const outTypes: OutputType[] = [${outArgs
|
|
85
|
+
.map(arg => mapDeserializer(arg.type))
|
|
86
|
+
.join(', ')}];`;
|
|
87
|
+
const wasmCall = `const result = this.wasm.callWasmExport('${functionName}', inArgs, outTypes.map(t=>t.SIZE_IN_BYTES));`;
|
|
88
|
+
const outVar = `const out = result.map((r, i) => outTypes[i].fromBuffer(r));`;
|
|
89
|
+
|
|
90
|
+
const n = outArgs.length;
|
|
91
|
+
const returnStmt = n === 0 ? 'return;' : n === 1 ? 'return out[0];' : 'return out as any;';
|
|
92
|
+
const returnType =
|
|
93
|
+
outArgs.length === 0
|
|
94
|
+
? 'void'
|
|
95
|
+
: outArgs.length === 1
|
|
96
|
+
? `${mapType(outArgs[0].type)}`
|
|
97
|
+
: `[${outArgs.map(a => mapType(a.type)).join(', ')}]`;
|
|
98
|
+
|
|
99
|
+
output += `
|
|
100
|
+
${toCamelCase(functionName)}(${parameters}): ${returnType} {
|
|
101
|
+
${inArgsVar}
|
|
102
|
+
${outTypesVar}
|
|
103
|
+
${wasmCall}
|
|
104
|
+
${outVar}
|
|
105
|
+
${returnStmt}
|
|
106
|
+
}
|
|
107
|
+
`;
|
|
108
|
+
} catch (err: any) {
|
|
109
|
+
throw new Error(`Function ${functionName}: ${err.message}`);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
output += `}`;
|
|
114
|
+
|
|
115
|
+
return output;
|
|
116
|
+
}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { NetCrs, NetGrumpkinCrs } from '../net_crs.js';
|
|
2
|
+
import { get, set } from 'idb-keyval';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Downloader for CRS from the web or local.
|
|
6
|
+
*/
|
|
7
|
+
export class CachedNetCrs {
|
|
8
|
+
private g1Data!: Uint8Array;
|
|
9
|
+
private g2Data!: Uint8Array;
|
|
10
|
+
|
|
11
|
+
constructor(public readonly numPoints: number) {}
|
|
12
|
+
|
|
13
|
+
static async new(numPoints: number) {
|
|
14
|
+
const crs = new CachedNetCrs(numPoints);
|
|
15
|
+
await crs.init();
|
|
16
|
+
return crs;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Download the data.
|
|
21
|
+
*/
|
|
22
|
+
async init() {
|
|
23
|
+
// Check if data is in IndexedDB
|
|
24
|
+
const g1Data = await get('g1Data');
|
|
25
|
+
const g2Data = await get('g2Data');
|
|
26
|
+
const netCrs = new NetCrs(this.numPoints);
|
|
27
|
+
const g1DataLength = this.numPoints * 64;
|
|
28
|
+
|
|
29
|
+
if (!g1Data || g1Data.length < g1DataLength) {
|
|
30
|
+
this.g1Data = await netCrs.downloadG1Data();
|
|
31
|
+
await set('g1Data', this.g1Data);
|
|
32
|
+
} else {
|
|
33
|
+
this.g1Data = g1Data;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
if (!g2Data) {
|
|
37
|
+
this.g2Data = await netCrs.downloadG2Data();
|
|
38
|
+
await set('g2Data', this.g2Data);
|
|
39
|
+
} else {
|
|
40
|
+
this.g2Data = g2Data;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* G1 points data for prover key.
|
|
46
|
+
* @returns The points data.
|
|
47
|
+
*/
|
|
48
|
+
getG1Data(): Uint8Array {
|
|
49
|
+
return this.g1Data;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* G2 points data for verification key.
|
|
54
|
+
* @returns The points data.
|
|
55
|
+
*/
|
|
56
|
+
getG2Data(): Uint8Array {
|
|
57
|
+
return this.g2Data;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Downloader for CRS from the web or local.
|
|
63
|
+
*/
|
|
64
|
+
export class CachedNetGrumpkinCrs {
|
|
65
|
+
private g1Data!: Uint8Array;
|
|
66
|
+
|
|
67
|
+
constructor(public readonly numPoints: number) {}
|
|
68
|
+
|
|
69
|
+
static async new(numPoints: number) {
|
|
70
|
+
const crs = new CachedNetGrumpkinCrs(numPoints);
|
|
71
|
+
await crs.init();
|
|
72
|
+
return crs;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* Download the data.
|
|
77
|
+
*/
|
|
78
|
+
async init() {
|
|
79
|
+
// Check if data is in IndexedDB
|
|
80
|
+
const g1Data = await get('grumpkinG1Data');
|
|
81
|
+
const netGrumpkinCrs = new NetGrumpkinCrs(this.numPoints);
|
|
82
|
+
const g1DataLength = this.numPoints * 64;
|
|
83
|
+
|
|
84
|
+
if (!g1Data || g1Data.length < g1DataLength) {
|
|
85
|
+
this.g1Data = await netGrumpkinCrs.downloadG1Data();
|
|
86
|
+
await set('grumpkinG1Data', this.g1Data);
|
|
87
|
+
} else {
|
|
88
|
+
this.g1Data = g1Data;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* G1 points data for prover key.
|
|
94
|
+
* @returns The points data.
|
|
95
|
+
*/
|
|
96
|
+
getG1Data(): Uint8Array {
|
|
97
|
+
return this.g1Data;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { CachedNetCrs as Crs, CachedNetGrumpkinCrs as GrumpkinCrs } from './cached_net_crs.js';
|
package/src/crs/index.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { Crs, GrumpkinCrs } from './node/index.js';
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Downloader for CRS from the web or local.
|
|
3
|
+
*/
|
|
4
|
+
export class NetCrs {
|
|
5
|
+
private data!: Uint8Array;
|
|
6
|
+
private g2Data!: Uint8Array;
|
|
7
|
+
|
|
8
|
+
constructor(
|
|
9
|
+
/**
|
|
10
|
+
* The number of circuit gates.
|
|
11
|
+
*/
|
|
12
|
+
public readonly numPoints: number,
|
|
13
|
+
) {}
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Download the data.
|
|
17
|
+
*/
|
|
18
|
+
async init() {
|
|
19
|
+
await this.downloadG1Data();
|
|
20
|
+
await this.downloadG2Data();
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
async downloadG1Data() {
|
|
24
|
+
// Skip the download if numPoints is 0 (would download the entire file due to bad range header otherwise)
|
|
25
|
+
if (this.numPoints === 0) {
|
|
26
|
+
return (this.data = new Uint8Array([]));
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
const g1End = this.numPoints * 64 - 1;
|
|
30
|
+
|
|
31
|
+
const response = await fetch('https://aztec-ignition.s3.amazonaws.com/MAIN%20IGNITION/flat/g1.dat', {
|
|
32
|
+
headers: {
|
|
33
|
+
Range: `bytes=0-${g1End}`,
|
|
34
|
+
},
|
|
35
|
+
cache: 'force-cache',
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
return (this.data = new Uint8Array(await response.arrayBuffer()));
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Download the G2 points data.
|
|
43
|
+
*/
|
|
44
|
+
async downloadG2Data() {
|
|
45
|
+
const response2 = await fetch('https://aztec-ignition.s3.amazonaws.com/MAIN%20IGNITION/flat/g2.dat', {
|
|
46
|
+
cache: 'force-cache',
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
return (this.g2Data = new Uint8Array(await response2.arrayBuffer()));
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* G1 points data for prover key.
|
|
54
|
+
* @returns The points data.
|
|
55
|
+
*/
|
|
56
|
+
getG1Data(): Uint8Array {
|
|
57
|
+
return this.data;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* G2 points data for verification key.
|
|
62
|
+
* @returns The points data.
|
|
63
|
+
*/
|
|
64
|
+
getG2Data(): Uint8Array {
|
|
65
|
+
return this.g2Data;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Downloader for CRS from the web or local.
|
|
71
|
+
*/
|
|
72
|
+
export class NetGrumpkinCrs {
|
|
73
|
+
private data!: Uint8Array;
|
|
74
|
+
|
|
75
|
+
constructor(
|
|
76
|
+
/**
|
|
77
|
+
* The number of circuit gates.
|
|
78
|
+
*/
|
|
79
|
+
public readonly numPoints: number,
|
|
80
|
+
) {}
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* Download the data.
|
|
84
|
+
*/
|
|
85
|
+
async init() {
|
|
86
|
+
await this.downloadG1Data();
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
async downloadG1Data() {
|
|
90
|
+
// Skip the download if numPoints is 0 (would download the entire file due to bad range header otherwise)
|
|
91
|
+
if (this.numPoints === 0) {
|
|
92
|
+
return (this.data = new Uint8Array([]));
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
const g1Start = 28;
|
|
96
|
+
const g1End = this.numPoints * 64 - 1;
|
|
97
|
+
|
|
98
|
+
const response = await fetch('https://aztec-ignition.s3.amazonaws.com/TEST%20GRUMPKIN/monomial/transcript00.dat', {
|
|
99
|
+
headers: {
|
|
100
|
+
Range: `bytes=${g1Start}-${g1End}`,
|
|
101
|
+
},
|
|
102
|
+
cache: 'force-cache',
|
|
103
|
+
});
|
|
104
|
+
|
|
105
|
+
return (this.data = new Uint8Array(await response.arrayBuffer()));
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* G1 points data for prover key.
|
|
110
|
+
* @returns The points data.
|
|
111
|
+
*/
|
|
112
|
+
getG1Data(): Uint8Array {
|
|
113
|
+
return this.data;
|
|
114
|
+
}
|
|
115
|
+
}
|