@aztec/bb.js 3.0.0-canary.a9708bd → 3.0.0-manual.20251030
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 +13 -79
- package/dest/browser/barretenberg/backend.d.ts +2 -2
- package/dest/browser/barretenberg/backend.d.ts.map +1 -1
- package/dest/browser/barretenberg/backend.js +40 -25
- package/dest/browser/barretenberg/index.d.ts +45 -44
- package/dest/browser/barretenberg/index.d.ts.map +1 -1
- package/dest/browser/barretenberg/index.js +131 -80
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_base/index.d.ts +1 -1
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_base/index.d.ts.map +1 -1
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_base/index.js +2 -2
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts +4 -4
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts.map +1 -1
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.js +18 -10
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/index.d.ts +3 -0
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/index.d.ts.map +1 -1
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/index.js +55 -14
- package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg-threads.js +1 -1
- package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg.js +1 -1
- package/dest/browser/bb_backends/browser/index.d.ts +11 -0
- package/dest/browser/bb_backends/browser/index.d.ts.map +1 -0
- package/dest/browser/bb_backends/browser/index.js +39 -0
- package/dest/browser/bb_backends/index.d.ts +45 -0
- package/dest/browser/bb_backends/index.d.ts.map +1 -0
- package/dest/browser/bb_backends/index.js +15 -0
- package/dest/browser/bb_backends/interface.d.ts +33 -0
- package/dest/browser/bb_backends/interface.d.ts.map +1 -0
- package/dest/browser/bb_backends/interface.js +2 -0
- package/dest/browser/bb_backends/sync_to_async_adapter.d.ts +15 -0
- package/dest/browser/bb_backends/sync_to_async_adapter.d.ts.map +1 -0
- package/dest/browser/bb_backends/sync_to_async_adapter.js +20 -0
- package/dest/browser/bb_backends/wasm.d.ts +49 -0
- package/dest/browser/bb_backends/wasm.d.ts.map +1 -0
- package/dest/browser/bb_backends/wasm.js +83 -0
- package/dest/browser/bbapi_exception.d.ts +7 -0
- package/dest/browser/bbapi_exception.d.ts.map +1 -0
- package/dest/browser/bbapi_exception.js +14 -0
- package/dest/browser/cbind/generate.js +94 -7
- package/dest/browser/cbind/generated/api_types.d.ts +1640 -227
- package/dest/browser/cbind/generated/api_types.d.ts.map +1 -1
- package/dest/browser/cbind/generated/api_types.js +2366 -478
- package/dest/browser/cbind/generated/async.d.ts +52 -13
- package/dest/browser/cbind/generated/async.d.ts.map +1 -1
- package/dest/browser/cbind/generated/async.js +586 -72
- package/dest/browser/cbind/generated/curve_constants.d.ts +45 -0
- package/dest/browser/cbind/generated/curve_constants.d.ts.map +1 -0
- package/dest/browser/cbind/generated/curve_constants.js +45 -0
- package/dest/browser/cbind/generated/sync.d.ts +53 -14
- package/dest/browser/cbind/generated/sync.d.ts.map +1 -1
- package/dest/browser/cbind/generated/sync.js +548 -72
- package/dest/browser/cbind/schema_compiler.d.ts +2 -4
- package/dest/browser/cbind/schema_compiler.d.ts.map +1 -1
- package/dest/browser/cbind/schema_compiler.js +97 -181
- package/dest/browser/index.d.ts +4 -2
- package/dest/browser/index.d.ts.map +1 -1
- package/dest/browser/index.js +5 -3
- package/dest/browser/serialize/index.d.ts +0 -2
- package/dest/browser/serialize/index.d.ts.map +1 -1
- package/dest/browser/serialize/index.js +1 -3
- package/dest/browser/serialize/serialize.d.ts +0 -35
- package/dest/browser/serialize/serialize.d.ts.map +1 -1
- package/dest/browser/serialize/serialize.js +1 -68
- package/dest/browser/types/fields.d.ts +6 -26
- package/dest/browser/types/fields.d.ts.map +1 -1
- package/dest/browser/types/fields.js +16 -57
- package/dest/browser/types/index.d.ts +0 -3
- package/dest/browser/types/index.d.ts.map +1 -1
- package/dest/browser/types/index.js +1 -4
- package/dest/browser/types/point.d.ts +8 -6
- package/dest/browser/types/point.d.ts.map +1 -1
- package/dest/browser/types/point.js +12 -15
- package/dest/node/barretenberg/__snapshots__/pedersen.test.js.snap +2 -2
- package/dest/node/barretenberg/__snapshots__/poseidon.test.js.snap +3 -3
- package/dest/node/barretenberg/backend.d.ts +2 -2
- package/dest/node/barretenberg/backend.d.ts.map +1 -1
- package/dest/node/barretenberg/backend.js +40 -25
- package/dest/node/barretenberg/blake2s.test.js +21 -18
- package/dest/node/barretenberg/index.d.ts +45 -44
- package/dest/node/barretenberg/index.d.ts.map +1 -1
- package/dest/node/barretenberg/index.js +131 -80
- package/dest/node/barretenberg/pedersen.test.js +24 -17
- package/dest/node/barretenberg/poseidon.bench.test.d.ts +2 -0
- package/dest/node/barretenberg/poseidon.bench.test.d.ts.map +1 -0
- package/dest/node/barretenberg/poseidon.bench.test.js +217 -0
- package/dest/node/barretenberg/poseidon.test.js +15 -15
- package/dest/node/barretenberg_wasm/barretenberg-threads.wasm.gz +0 -0
- package/dest/node/barretenberg_wasm/barretenberg_wasm_base/index.d.ts +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_base/index.d.ts.map +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_base/index.js +2 -2
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts +4 -4
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts.map +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.js +18 -10
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/index.d.ts +3 -0
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/index.d.ts.map +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/index.js +55 -14
- package/dest/node/barretenberg_wasm/index.test.js +11 -10
- package/dest/node/bb_backends/browser/index.d.ts +11 -0
- package/dest/node/bb_backends/browser/index.d.ts.map +1 -0
- package/dest/node/bb_backends/browser/index.js +39 -0
- package/dest/node/bb_backends/index.d.ts +45 -0
- package/dest/node/bb_backends/index.d.ts.map +1 -0
- package/dest/node/bb_backends/index.js +15 -0
- package/dest/node/bb_backends/interface.d.ts +33 -0
- package/dest/node/bb_backends/interface.d.ts.map +1 -0
- package/dest/node/bb_backends/interface.js +2 -0
- package/dest/node/bb_backends/node/index.d.ts +11 -0
- package/dest/node/bb_backends/node/index.d.ts.map +1 -0
- package/dest/node/bb_backends/node/index.js +80 -0
- package/dest/node/bb_backends/node/native_pipe.d.ts +25 -0
- package/dest/node/bb_backends/node/native_pipe.d.ts.map +1 -0
- package/dest/node/bb_backends/node/native_pipe.js +113 -0
- package/dest/node/bb_backends/node/native_shm.d.ts +28 -0
- package/dest/node/bb_backends/node/native_shm.d.ts.map +1 -0
- package/dest/node/bb_backends/node/native_shm.js +150 -0
- package/dest/node/bb_backends/node/native_socket.d.ts +34 -0
- package/dest/node/bb_backends/node/native_socket.d.ts.map +1 -0
- package/dest/node/bb_backends/node/native_socket.js +269 -0
- package/dest/node/bb_backends/node/platform.d.ts +27 -0
- package/dest/node/bb_backends/node/platform.d.ts.map +1 -0
- package/dest/node/bb_backends/node/platform.js +124 -0
- package/dest/node/bb_backends/sync_to_async_adapter.d.ts +15 -0
- package/dest/node/bb_backends/sync_to_async_adapter.d.ts.map +1 -0
- package/dest/node/bb_backends/sync_to_async_adapter.js +20 -0
- package/dest/node/bb_backends/wasm.d.ts +49 -0
- package/dest/node/bb_backends/wasm.d.ts.map +1 -0
- package/dest/node/bb_backends/wasm.js +83 -0
- package/dest/node/bbapi_exception.d.ts +7 -0
- package/dest/node/bbapi_exception.d.ts.map +1 -0
- package/dest/node/bbapi_exception.js +14 -0
- package/dest/node/cbind/generate.js +94 -7
- package/dest/node/cbind/generated/api_types.d.ts +1640 -227
- package/dest/node/cbind/generated/api_types.d.ts.map +1 -1
- package/dest/node/cbind/generated/api_types.js +2366 -478
- package/dest/node/cbind/generated/async.d.ts +52 -13
- package/dest/node/cbind/generated/async.d.ts.map +1 -1
- package/dest/node/cbind/generated/async.js +586 -72
- package/dest/node/cbind/generated/curve_constants.d.ts +45 -0
- package/dest/node/cbind/generated/curve_constants.d.ts.map +1 -0
- package/dest/node/cbind/generated/curve_constants.js +45 -0
- package/dest/node/cbind/generated/sync.d.ts +53 -14
- package/dest/node/cbind/generated/sync.d.ts.map +1 -1
- package/dest/node/cbind/generated/sync.js +548 -72
- package/dest/node/cbind/schema_compiler.d.ts +2 -4
- package/dest/node/cbind/schema_compiler.d.ts.map +1 -1
- package/dest/node/cbind/schema_compiler.js +97 -181
- package/dest/node/index.d.ts +4 -2
- package/dest/node/index.d.ts.map +1 -1
- package/dest/node/index.js +5 -3
- package/dest/node/serialize/index.d.ts +0 -2
- package/dest/node/serialize/index.d.ts.map +1 -1
- package/dest/node/serialize/index.js +1 -3
- package/dest/node/serialize/serialize.d.ts +0 -35
- package/dest/node/serialize/serialize.d.ts.map +1 -1
- package/dest/node/serialize/serialize.js +1 -68
- package/dest/node/types/fields.d.ts +6 -26
- package/dest/node/types/fields.d.ts.map +1 -1
- package/dest/node/types/fields.js +16 -57
- package/dest/node/types/index.d.ts +0 -3
- package/dest/node/types/index.d.ts.map +1 -1
- package/dest/node/types/index.js +1 -4
- package/dest/node/types/point.d.ts +8 -6
- package/dest/node/types/point.d.ts.map +1 -1
- package/dest/node/types/point.js +12 -15
- package/dest/node-cjs/barretenberg/backend.d.ts +2 -2
- package/dest/node-cjs/barretenberg/backend.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg/backend.js +38 -23
- package/dest/node-cjs/barretenberg/blake2s.test.js +19 -16
- package/dest/node-cjs/barretenberg/index.d.ts +45 -44
- package/dest/node-cjs/barretenberg/index.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg/index.js +137 -85
- package/dest/node-cjs/barretenberg/pedersen.test.js +24 -17
- package/dest/node-cjs/barretenberg/poseidon.bench.test.d.ts +2 -0
- package/dest/node-cjs/barretenberg/poseidon.bench.test.d.ts.map +1 -0
- package/dest/node-cjs/barretenberg/poseidon.bench.test.js +219 -0
- package/dest/node-cjs/barretenberg/poseidon.test.js +15 -15
- package/dest/node-cjs/barretenberg_wasm/barretenberg-threads.wasm.gz +0 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_base/index.d.ts +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_base/index.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_base/index.js +2 -2
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts +4 -4
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.js +18 -10
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/index.d.ts +3 -0
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/index.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/index.js +55 -14
- package/dest/node-cjs/barretenberg_wasm/index.test.js +11 -10
- package/dest/node-cjs/bb_backends/browser/index.d.ts +11 -0
- package/dest/node-cjs/bb_backends/browser/index.d.ts.map +1 -0
- package/dest/node-cjs/bb_backends/browser/index.js +43 -0
- package/dest/node-cjs/bb_backends/index.d.ts +45 -0
- package/dest/node-cjs/bb_backends/index.d.ts.map +1 -0
- package/dest/node-cjs/bb_backends/index.js +18 -0
- package/dest/node-cjs/bb_backends/interface.d.ts +33 -0
- package/dest/node-cjs/bb_backends/interface.d.ts.map +1 -0
- package/dest/node-cjs/bb_backends/interface.js +3 -0
- package/dest/node-cjs/bb_backends/node/index.d.ts +11 -0
- package/dest/node-cjs/bb_backends/node/index.d.ts.map +1 -0
- package/dest/node-cjs/bb_backends/node/index.js +84 -0
- package/dest/node-cjs/bb_backends/node/native_pipe.d.ts +25 -0
- package/dest/node-cjs/bb_backends/node/native_pipe.d.ts.map +1 -0
- package/dest/node-cjs/bb_backends/node/native_pipe.js +117 -0
- package/dest/node-cjs/bb_backends/node/native_shm.d.ts +28 -0
- package/dest/node-cjs/bb_backends/node/native_shm.d.ts.map +1 -0
- package/dest/node-cjs/bb_backends/node/native_shm.js +154 -0
- package/dest/node-cjs/bb_backends/node/native_socket.d.ts +34 -0
- package/dest/node-cjs/bb_backends/node/native_socket.d.ts.map +1 -0
- package/dest/node-cjs/bb_backends/node/native_socket.js +274 -0
- package/dest/node-cjs/bb_backends/node/platform.d.ts +27 -0
- package/dest/node-cjs/bb_backends/node/platform.d.ts.map +1 -0
- package/dest/node-cjs/bb_backends/node/platform.js +131 -0
- package/dest/node-cjs/bb_backends/sync_to_async_adapter.d.ts +15 -0
- package/dest/node-cjs/bb_backends/sync_to_async_adapter.d.ts.map +1 -0
- package/dest/node-cjs/bb_backends/sync_to_async_adapter.js +24 -0
- package/dest/node-cjs/bb_backends/wasm.d.ts +49 -0
- package/dest/node-cjs/bb_backends/wasm.d.ts.map +1 -0
- package/dest/node-cjs/bb_backends/wasm.js +88 -0
- package/dest/node-cjs/bbapi_exception.d.ts +7 -0
- package/dest/node-cjs/bbapi_exception.d.ts.map +1 -0
- package/dest/node-cjs/bbapi_exception.js +18 -0
- package/dest/node-cjs/cbind/generate.js +93 -6
- package/dest/node-cjs/cbind/generated/api_types.d.ts +1640 -227
- package/dest/node-cjs/cbind/generated/api_types.d.ts.map +1 -1
- package/dest/node-cjs/cbind/generated/api_types.js +2572 -516
- package/dest/node-cjs/cbind/generated/async.d.ts +52 -13
- package/dest/node-cjs/cbind/generated/async.d.ts.map +1 -1
- package/dest/node-cjs/cbind/generated/async.js +585 -71
- package/dest/node-cjs/cbind/generated/curve_constants.d.ts +45 -0
- package/dest/node-cjs/cbind/generated/curve_constants.d.ts.map +1 -0
- package/dest/node-cjs/cbind/generated/curve_constants.js +48 -0
- package/dest/node-cjs/cbind/generated/sync.d.ts +53 -14
- package/dest/node-cjs/cbind/generated/sync.d.ts.map +1 -1
- package/dest/node-cjs/cbind/generated/sync.js +547 -71
- package/dest/node-cjs/cbind/schema_compiler.d.ts +2 -4
- package/dest/node-cjs/cbind/schema_compiler.d.ts.map +1 -1
- package/dest/node-cjs/cbind/schema_compiler.js +97 -182
- package/dest/node-cjs/index.d.ts +4 -2
- package/dest/node-cjs/index.d.ts.map +1 -1
- package/dest/node-cjs/index.js +24 -9
- package/dest/node-cjs/serialize/index.d.ts +0 -2
- package/dest/node-cjs/serialize/index.d.ts.map +1 -1
- package/dest/node-cjs/serialize/index.js +1 -3
- package/dest/node-cjs/serialize/serialize.d.ts +0 -35
- package/dest/node-cjs/serialize/serialize.d.ts.map +1 -1
- package/dest/node-cjs/serialize/serialize.js +1 -79
- package/dest/node-cjs/types/fields.d.ts +6 -26
- package/dest/node-cjs/types/fields.d.ts.map +1 -1
- package/dest/node-cjs/types/fields.js +16 -58
- package/dest/node-cjs/types/index.d.ts +0 -3
- package/dest/node-cjs/types/index.d.ts.map +1 -1
- package/dest/node-cjs/types/index.js +1 -4
- package/dest/node-cjs/types/point.d.ts +8 -6
- package/dest/node-cjs/types/point.d.ts.map +1 -1
- package/dest/node-cjs/types/point.js +13 -16
- package/package.json +6 -6
- package/src/barretenberg/__snapshots__/pedersen.test.ts.snap +2 -2
- package/src/barretenberg/__snapshots__/poseidon.test.ts.snap +3 -3
- package/src/barretenberg/backend.ts +54 -42
- package/src/barretenberg/blake2s.test.ts +20 -21
- package/src/barretenberg/index.ts +137 -118
- package/src/barretenberg/pedersen.test.ts +23 -16
- package/src/barretenberg/poseidon.bench.test.ts +268 -0
- package/src/barretenberg/poseidon.test.ts +14 -14
- package/src/barretenberg_wasm/barretenberg_wasm_base/index.ts +3 -3
- package/src/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.ts +17 -9
- package/src/barretenberg_wasm/barretenberg_wasm_main/index.ts +67 -16
- package/src/barretenberg_wasm/index.test.ts +12 -11
- package/src/bb_backends/browser/index.ts +50 -0
- package/src/bb_backends/index.ts +49 -0
- package/src/bb_backends/interface.ts +35 -0
- package/src/bb_backends/node/index.ts +94 -0
- package/src/bb_backends/node/native_pipe.ts +127 -0
- package/src/bb_backends/node/native_shm.ts +171 -0
- package/src/bb_backends/node/native_socket.ts +312 -0
- package/src/bb_backends/node/platform.ts +151 -0
- package/src/bb_backends/sync_to_async_adapter.ts +21 -0
- package/src/bb_backends/wasm.ts +103 -0
- package/src/bbapi_exception.ts +13 -0
- package/src/cbind/README.md +1 -1
- package/src/cbind/generate.ts +99 -6
- package/src/cbind/schema_compiler.ts +156 -244
- package/src/index.ts +29 -1
- package/src/serialize/index.ts +0 -2
- package/src/serialize/serialize.ts +0 -82
- package/src/types/fields.ts +15 -64
- package/src/types/index.ts +0 -3
- package/src/types/point.ts +13 -19
- package/dest/browser/barretenberg_api/index.d.ts +0 -109
- package/dest/browser/barretenberg_api/index.d.ts.map +0 -1
- package/dest/browser/barretenberg_api/index.js +0 -699
- package/dest/browser/cbind/generated/native.d.ts +0 -31
- package/dest/browser/cbind/generated/native.d.ts.map +0 -1
- package/dest/browser/cbind/generated/native.js +0 -234
- package/dest/browser/serialize/buffer_reader.d.ts +0 -28
- package/dest/browser/serialize/buffer_reader.d.ts.map +0 -1
- package/dest/browser/serialize/buffer_reader.js +0 -66
- package/dest/browser/serialize/output_type.d.ts +0 -11
- package/dest/browser/serialize/output_type.d.ts.map +0 -1
- package/dest/browser/serialize/output_type.js +0 -44
- package/dest/browser/types/fixed_size_buffer.d.ts +0 -26
- package/dest/browser/types/fixed_size_buffer.d.ts.map +0 -1
- package/dest/browser/types/fixed_size_buffer.js +0 -51
- package/dest/browser/types/ptr.d.ts +0 -13
- package/dest/browser/types/ptr.d.ts.map +0 -1
- package/dest/browser/types/ptr.js +0 -19
- package/dest/browser/types/raw_buffer.d.ts +0 -3
- package/dest/browser/types/raw_buffer.d.ts.map +0 -1
- package/dest/browser/types/raw_buffer.js +0 -5
- package/dest/node/barretenberg/common.test.d.ts +0 -2
- package/dest/node/barretenberg/common.test.d.ts.map +0 -1
- package/dest/node/barretenberg/common.test.js +0 -20
- package/dest/node/barretenberg_api/index.d.ts +0 -109
- package/dest/node/barretenberg_api/index.d.ts.map +0 -1
- package/dest/node/barretenberg_api/index.js +0 -699
- package/dest/node/bindgen/function_declaration.d.ts +0 -11
- package/dest/node/bindgen/function_declaration.d.ts.map +0 -1
- package/dest/node/bindgen/function_declaration.js +0 -2
- package/dest/node/bindgen/index.d.ts +0 -2
- package/dest/node/bindgen/index.d.ts.map +0 -1
- package/dest/node/bindgen/index.js +0 -15
- package/dest/node/bindgen/mappings.d.ts +0 -4
- package/dest/node/bindgen/mappings.d.ts.map +0 -1
- package/dest/node/bindgen/mappings.js +0 -64
- package/dest/node/bindgen/rust.d.ts +0 -2
- package/dest/node/bindgen/rust.d.ts.map +0 -1
- package/dest/node/bindgen/rust.js +0 -43
- package/dest/node/bindgen/to_camel_case.d.ts +0 -2
- package/dest/node/bindgen/to_camel_case.d.ts.map +0 -1
- package/dest/node/bindgen/to_camel_case.js +0 -11
- package/dest/node/bindgen/typescript.d.ts +0 -2
- package/dest/node/bindgen/typescript.d.ts.map +0 -1
- package/dest/node/bindgen/typescript.js +0 -100
- package/dest/node/cbind/generated/native.d.ts +0 -31
- package/dest/node/cbind/generated/native.d.ts.map +0 -1
- package/dest/node/cbind/generated/native.js +0 -234
- package/dest/node/main.d.ts +0 -13
- package/dest/node/main.d.ts.map +0 -1
- package/dest/node/main.js +0 -459
- package/dest/node/serialize/buffer_reader.d.ts +0 -28
- package/dest/node/serialize/buffer_reader.d.ts.map +0 -1
- package/dest/node/serialize/buffer_reader.js +0 -66
- package/dest/node/serialize/output_type.d.ts +0 -11
- package/dest/node/serialize/output_type.d.ts.map +0 -1
- package/dest/node/serialize/output_type.js +0 -44
- package/dest/node/types/fixed_size_buffer.d.ts +0 -26
- package/dest/node/types/fixed_size_buffer.d.ts.map +0 -1
- package/dest/node/types/fixed_size_buffer.js +0 -51
- package/dest/node/types/ptr.d.ts +0 -13
- package/dest/node/types/ptr.d.ts.map +0 -1
- package/dest/node/types/ptr.js +0 -19
- package/dest/node/types/raw_buffer.d.ts +0 -3
- package/dest/node/types/raw_buffer.d.ts.map +0 -1
- package/dest/node/types/raw_buffer.js +0 -5
- package/dest/node-cjs/barretenberg/common.test.d.ts +0 -2
- package/dest/node-cjs/barretenberg/common.test.d.ts.map +0 -1
- package/dest/node-cjs/barretenberg/common.test.js +0 -22
- package/dest/node-cjs/barretenberg_api/index.d.ts +0 -109
- package/dest/node-cjs/barretenberg_api/index.d.ts.map +0 -1
- package/dest/node-cjs/barretenberg_api/index.js +0 -704
- package/dest/node-cjs/bindgen/function_declaration.d.ts +0 -11
- package/dest/node-cjs/bindgen/function_declaration.d.ts.map +0 -1
- package/dest/node-cjs/bindgen/function_declaration.js +0 -3
- package/dest/node-cjs/bindgen/index.d.ts +0 -2
- package/dest/node-cjs/bindgen/index.d.ts.map +0 -1
- package/dest/node-cjs/bindgen/index.js +0 -17
- package/dest/node-cjs/bindgen/mappings.d.ts +0 -4
- package/dest/node-cjs/bindgen/mappings.d.ts.map +0 -1
- package/dest/node-cjs/bindgen/mappings.js +0 -69
- package/dest/node-cjs/bindgen/rust.d.ts +0 -2
- package/dest/node-cjs/bindgen/rust.d.ts.map +0 -1
- package/dest/node-cjs/bindgen/rust.js +0 -47
- package/dest/node-cjs/bindgen/to_camel_case.d.ts +0 -2
- package/dest/node-cjs/bindgen/to_camel_case.d.ts.map +0 -1
- package/dest/node-cjs/bindgen/to_camel_case.js +0 -14
- package/dest/node-cjs/bindgen/typescript.d.ts +0 -2
- package/dest/node-cjs/bindgen/typescript.d.ts.map +0 -1
- package/dest/node-cjs/bindgen/typescript.js +0 -104
- package/dest/node-cjs/cbind/generated/native.d.ts +0 -31
- package/dest/node-cjs/cbind/generated/native.d.ts.map +0 -1
- package/dest/node-cjs/cbind/generated/native.js +0 -238
- package/dest/node-cjs/main.d.ts +0 -13
- package/dest/node-cjs/main.d.ts.map +0 -1
- package/dest/node-cjs/main.js +0 -470
- package/dest/node-cjs/serialize/buffer_reader.d.ts +0 -28
- package/dest/node-cjs/serialize/buffer_reader.d.ts.map +0 -1
- package/dest/node-cjs/serialize/buffer_reader.js +0 -70
- package/dest/node-cjs/serialize/output_type.d.ts +0 -11
- package/dest/node-cjs/serialize/output_type.d.ts.map +0 -1
- package/dest/node-cjs/serialize/output_type.js +0 -51
- package/dest/node-cjs/types/fixed_size_buffer.d.ts +0 -26
- package/dest/node-cjs/types/fixed_size_buffer.d.ts.map +0 -1
- package/dest/node-cjs/types/fixed_size_buffer.js +0 -57
- package/dest/node-cjs/types/ptr.d.ts +0 -13
- package/dest/node-cjs/types/ptr.d.ts.map +0 -1
- package/dest/node-cjs/types/ptr.js +0 -23
- package/dest/node-cjs/types/raw_buffer.d.ts +0 -3
- package/dest/node-cjs/types/raw_buffer.d.ts.map +0 -1
- package/dest/node-cjs/types/raw_buffer.js +0 -9
- package/src/barretenberg/common.test.ts +0 -23
- package/src/barretenberg_api/index.ts +0 -1216
- package/src/bindgen/function_declaration.ts +0 -11
- package/src/bindgen/index.ts +0 -17
- package/src/bindgen/mappings.ts +0 -67
- package/src/bindgen/rust.ts +0 -52
- package/src/bindgen/to_camel_case.ts +0 -10
- package/src/bindgen/typescript.ts +0 -116
- package/src/main.ts +0 -534
- package/src/serialize/buffer_reader.ts +0 -85
- package/src/serialize/output_type.ts +0 -53
- package/src/types/fixed_size_buffer.ts +0 -59
- package/src/types/ptr.ts +0 -20
- package/src/types/raw_buffer.ts +0 -3
|
@@ -34,7 +34,7 @@ export interface FunctionMetadata {
|
|
|
34
34
|
|
|
35
35
|
// Compiler configuration
|
|
36
36
|
export interface CompilerConfig {
|
|
37
|
-
mode: 'types' | 'sync' | 'async'
|
|
37
|
+
mode: 'types' | 'sync' | 'async';
|
|
38
38
|
imports?: string[];
|
|
39
39
|
wasmImport?: string;
|
|
40
40
|
}
|
|
@@ -72,17 +72,28 @@ export class SchemaCompiler {
|
|
|
72
72
|
this.processSchema(responsesSchema);
|
|
73
73
|
|
|
74
74
|
// Extract function metadata from named unions
|
|
75
|
-
if (
|
|
76
|
-
|
|
75
|
+
if (
|
|
76
|
+
!Array.isArray(commandsSchema) ||
|
|
77
|
+
commandsSchema[0] !== 'named_union' ||
|
|
78
|
+
!Array.isArray(responsesSchema) ||
|
|
79
|
+
responsesSchema[0] !== 'named_union'
|
|
80
|
+
) {
|
|
77
81
|
throw new Error('Expected named_union schema format');
|
|
78
82
|
}
|
|
79
83
|
|
|
80
84
|
const commands = commandsSchema[1] as Array<[string, Schema]>;
|
|
81
85
|
const responses = responsesSchema[1] as Array<[string, Schema]>;
|
|
82
86
|
|
|
87
|
+
// Filter out ErrorResponse - it's a special error variant, not a command response
|
|
88
|
+
const normalResponses = responses.filter(([name]) => name !== 'ErrorResponse');
|
|
89
|
+
|
|
90
|
+
if (commands.length !== normalResponses.length) {
|
|
91
|
+
throw new Error(`Command count (${commands.length}) does not match response count (${normalResponses.length})`);
|
|
92
|
+
}
|
|
93
|
+
|
|
83
94
|
for (let i = 0; i < commands.length; i++) {
|
|
84
95
|
const [commandName] = commands[i];
|
|
85
|
-
const [responseName] =
|
|
96
|
+
const [responseName] = normalResponses[i];
|
|
86
97
|
|
|
87
98
|
this.functionMetadata.push({
|
|
88
99
|
name: camelCase(commandName),
|
|
@@ -115,10 +126,7 @@ export class SchemaCompiler {
|
|
|
115
126
|
* Generate the complete output
|
|
116
127
|
*/
|
|
117
128
|
compile(): string {
|
|
118
|
-
const parts: string[] = [
|
|
119
|
-
'// AUTOGENERATED FILE - DO NOT EDIT',
|
|
120
|
-
'',
|
|
121
|
-
];
|
|
129
|
+
const parts: string[] = ['// AUTOGENERATED FILE - DO NOT EDIT', ''];
|
|
122
130
|
|
|
123
131
|
// Generate imports
|
|
124
132
|
parts.push(...this.generateImports());
|
|
@@ -131,55 +139,51 @@ export class SchemaCompiler {
|
|
|
131
139
|
.sort((a, b) => a.typeName.localeCompare(b.typeName));
|
|
132
140
|
|
|
133
141
|
// Group declarations
|
|
134
|
-
const typeAliases = sortedTypes.filter(
|
|
135
|
-
t.declaration?.startsWith('export type') && !t.declaration?.includes('interface')
|
|
142
|
+
const typeAliases = sortedTypes.filter(
|
|
143
|
+
t => t.declaration?.startsWith('export type') && !t.declaration?.includes('interface'),
|
|
136
144
|
);
|
|
137
|
-
const publicInterfaces = sortedTypes.filter(t =>
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
for (const type of typeAliases) {
|
|
148
|
-
parts.push(type.declaration!);
|
|
145
|
+
const publicInterfaces = sortedTypes.filter(t => t.declaration?.includes('export interface'));
|
|
146
|
+
const privateInterfaces = sortedTypes.filter(t => t.declaration?.includes('interface Msgpack'));
|
|
147
|
+
|
|
148
|
+
// Add type aliases if needed
|
|
149
|
+
if (typeAliases.length > 0) {
|
|
150
|
+
parts.push('// Type aliases');
|
|
151
|
+
for (const type of typeAliases) {
|
|
152
|
+
parts.push(type.declaration!);
|
|
153
|
+
}
|
|
154
|
+
parts.push('');
|
|
149
155
|
}
|
|
150
|
-
parts.push('');
|
|
151
|
-
}
|
|
152
156
|
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
157
|
+
// Add tuple helper if needed
|
|
158
|
+
if (this.needsTupleHelper()) {
|
|
159
|
+
parts.push(
|
|
160
|
+
'// Tuple type for fixed-size arrays',
|
|
161
|
+
'type Tuple<T, N extends number> = N extends N ? (number extends N ? T[] : _TupleOf<T, N, []>) : never;',
|
|
162
|
+
"type _TupleOf<T, N extends number, R extends unknown[]> = R['length'] extends N ? R : _TupleOf<T, N, [T, ...R]>;",
|
|
163
|
+
'',
|
|
164
|
+
'// Helper functions',
|
|
165
|
+
'function mapTuple<T, S, N extends number>(tuple: Tuple<T, N>, fn: (item: T) => S): Tuple<S, N> {',
|
|
166
|
+
' return tuple.map(fn) as Tuple<S, N>;',
|
|
167
|
+
'}',
|
|
168
|
+
'',
|
|
169
|
+
);
|
|
170
|
+
}
|
|
167
171
|
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
172
|
+
// Add public interfaces
|
|
173
|
+
if (publicInterfaces.length > 0) {
|
|
174
|
+
parts.push('// Public interfaces (exported)');
|
|
175
|
+
for (const type of publicInterfaces) {
|
|
176
|
+
parts.push(type.declaration!, '');
|
|
177
|
+
}
|
|
173
178
|
}
|
|
174
|
-
}
|
|
175
179
|
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
180
|
+
// Add private interfaces
|
|
181
|
+
if (privateInterfaces.length > 0) {
|
|
182
|
+
parts.push('// Private Msgpack interfaces (not exported)');
|
|
183
|
+
for (const type of privateInterfaces) {
|
|
184
|
+
parts.push(type.declaration!, '');
|
|
185
|
+
}
|
|
181
186
|
}
|
|
182
|
-
}
|
|
183
187
|
|
|
184
188
|
// Add conversion functions (only for api_types.ts)
|
|
185
189
|
const conversions = sortedTypes.filter(t => t.toMethod || t.fromMethod);
|
|
@@ -218,9 +222,7 @@ export class SchemaCompiler {
|
|
|
218
222
|
}
|
|
219
223
|
|
|
220
224
|
private needsTupleHelper(): boolean {
|
|
221
|
-
return Array.from(this.typeCache.values()).some(t =>
|
|
222
|
-
t.typeName.includes('Tuple<')
|
|
223
|
-
);
|
|
225
|
+
return Array.from(this.typeCache.values()).some(t => t.typeName.includes('Tuple<'));
|
|
224
226
|
}
|
|
225
227
|
|
|
226
228
|
private trackTypeUsage(typeName: string): void {
|
|
@@ -296,10 +298,15 @@ export class SchemaCompiler {
|
|
|
296
298
|
switch (type) {
|
|
297
299
|
case 'array': {
|
|
298
300
|
const [subtype, size] = args[0];
|
|
301
|
+
// Special case: byte arrays should be Uint8Array
|
|
302
|
+
if (subtype === 'unsigned char') {
|
|
303
|
+
return { typeName: 'Uint8Array' };
|
|
304
|
+
}
|
|
305
|
+
// For other types, use T[] - idiomatic TypeScript for fixed-length homogeneous arrays
|
|
299
306
|
const subtypeInfo = this.processSchema(subtype);
|
|
300
307
|
return {
|
|
301
|
-
typeName:
|
|
302
|
-
msgpackTypeName:
|
|
308
|
+
typeName: `${subtypeInfo.typeName}[]`,
|
|
309
|
+
msgpackTypeName: `${subtypeInfo.msgpackTypeName || subtypeInfo.typeName}[]`,
|
|
303
310
|
};
|
|
304
311
|
}
|
|
305
312
|
|
|
@@ -392,12 +399,20 @@ export class SchemaCompiler {
|
|
|
392
399
|
case 'unsigned int':
|
|
393
400
|
case 'unsigned short':
|
|
394
401
|
case 'unsigned long':
|
|
402
|
+
case 'unsigned char':
|
|
395
403
|
case 'double':
|
|
396
404
|
return { typeName: 'number' };
|
|
397
405
|
case 'string':
|
|
398
406
|
return { typeName: 'string' };
|
|
399
407
|
case 'bin32':
|
|
400
408
|
return { typeName: 'Uint8Array' };
|
|
409
|
+
case 'field2':
|
|
410
|
+
// field2 is an extension field type (fq2) represented as a tuple of two Uint8Arrays
|
|
411
|
+
return {
|
|
412
|
+
typeName: 'Field2',
|
|
413
|
+
msgpackTypeName: '[Uint8Array, Uint8Array]',
|
|
414
|
+
declaration: 'export type Field2 = [Uint8Array, Uint8Array];',
|
|
415
|
+
};
|
|
401
416
|
default:
|
|
402
417
|
return { typeName: pascalCase(schema) };
|
|
403
418
|
}
|
|
@@ -477,15 +492,19 @@ export class SchemaCompiler {
|
|
|
477
492
|
return `function to${name}(o: Msgpack${name}): ${name} {\n return {};\n}`;
|
|
478
493
|
}
|
|
479
494
|
|
|
480
|
-
const checks = fields
|
|
481
|
-
|
|
482
|
-
|
|
495
|
+
const checks = fields
|
|
496
|
+
.map(
|
|
497
|
+
([key]) => ` if (o.${key} === undefined) { throw new Error("Expected ${key} in ${name} deserialization"); }`,
|
|
498
|
+
)
|
|
499
|
+
.join('\n');
|
|
483
500
|
|
|
484
|
-
const conversions = fields
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
501
|
+
const conversions = fields
|
|
502
|
+
.map(([key, value]) => {
|
|
503
|
+
const typeInfo = this.processSchema(value);
|
|
504
|
+
const converter = this.generateConverter(typeInfo, `o.${key}`, 'to');
|
|
505
|
+
return ` ${camelCase(key)}: ${converter},`;
|
|
506
|
+
})
|
|
507
|
+
.join('\n');
|
|
489
508
|
|
|
490
509
|
return `function to${name}(o: Msgpack${name}): ${name} {
|
|
491
510
|
${checks};
|
|
@@ -502,15 +521,20 @@ ${conversions}
|
|
|
502
521
|
return `function from${name}(o: ${name}): Msgpack${name} {\n return {};\n}`;
|
|
503
522
|
}
|
|
504
523
|
|
|
505
|
-
const checks = fields
|
|
506
|
-
|
|
507
|
-
|
|
524
|
+
const checks = fields
|
|
525
|
+
.map(
|
|
526
|
+
([key]) =>
|
|
527
|
+
` if (o.${camelCase(key)} === undefined) { throw new Error("Expected ${camelCase(key)} in ${name} serialization"); }`,
|
|
528
|
+
)
|
|
529
|
+
.join('\n');
|
|
508
530
|
|
|
509
|
-
const conversions = fields
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
531
|
+
const conversions = fields
|
|
532
|
+
.map(([key, value]) => {
|
|
533
|
+
const typeInfo = this.processSchema(value);
|
|
534
|
+
const converter = this.generateConverter(typeInfo, `o.${camelCase(key)}`, 'from');
|
|
535
|
+
return ` ${key}: ${converter},`;
|
|
536
|
+
})
|
|
537
|
+
.join('\n');
|
|
514
538
|
|
|
515
539
|
return `function from${name}(o: ${name}): Msgpack${name} {
|
|
516
540
|
${checks};
|
|
@@ -531,8 +555,8 @@ ${conversions}
|
|
|
531
555
|
}
|
|
532
556
|
}
|
|
533
557
|
|
|
534
|
-
// Handle custom types
|
|
535
|
-
if (typeInfo.
|
|
558
|
+
// Handle custom types that have conversion methods (not just type aliases)
|
|
559
|
+
if (typeInfo.toMethod || typeInfo.fromMethod) {
|
|
536
560
|
return `${direction}${typeInfo.typeName}(${value})`;
|
|
537
561
|
}
|
|
538
562
|
|
|
@@ -579,9 +603,9 @@ ${conversions}
|
|
|
579
603
|
}
|
|
580
604
|
|
|
581
605
|
private generateBbApiBaseInterface(): string {
|
|
582
|
-
const methods = this.functionMetadata
|
|
583
|
-
` ${m.name}(command: ${m.commandType}): Promise<${m.responseType}>;`
|
|
584
|
-
|
|
606
|
+
const methods = this.functionMetadata
|
|
607
|
+
.map(m => ` ${m.name}(command: ${m.commandType}): Promise<${m.responseType}>;`)
|
|
608
|
+
.join('\n');
|
|
585
609
|
|
|
586
610
|
return `export interface BbApiBase {
|
|
587
611
|
${methods}
|
|
@@ -593,71 +617,82 @@ ${methods}
|
|
|
593
617
|
const className = this.getApiClassName();
|
|
594
618
|
const methods = this.functionMetadata.map(m => this.generateApiMethod(m)).join('\n\n');
|
|
595
619
|
|
|
596
|
-
if (this.config.mode === 'native') {
|
|
597
|
-
return this.generateNativeApiClass(methods);
|
|
598
|
-
}
|
|
599
|
-
|
|
600
620
|
// For sync API, don't implement BbApiBase since methods are synchronous
|
|
601
621
|
const implementsClause = this.config.mode === 'sync' ? '' : ' implements BbApiBase';
|
|
602
622
|
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
`
|
|
607
|
-
`}
|
|
623
|
+
// For tracing all calls to bb.
|
|
624
|
+
// const msgpackCallHelper =
|
|
625
|
+
// `${this.config.mode === 'async' ? 'async ' : ''}function msgpackCall(backend: ${this.getBackendType()}, input: any[]) {\n` +
|
|
626
|
+
// ` const commandName = input[0]?.[0] || 'unknown';\n` +
|
|
627
|
+
// ` process.stderr.write(\`[BB MSGPACK ${this.config.mode === 'async' ? 'ASYNC' : 'SYNC'}] \${commandName}\\n\`);\n` +
|
|
628
|
+
// ` const inputBuffer = new Encoder({ useRecords: false }).pack(input);\n` +
|
|
629
|
+
// ` const encodedResult = ${this.config.mode === 'async' ? 'await ' : ''}backend.call(inputBuffer);\n` +
|
|
630
|
+
// ` const result = new Decoder({ useRecords: false }).unpack(encodedResult);\n` +
|
|
631
|
+
// ` process.stderr.write(\`[BB MSGPACK ${this.config.mode === 'async' ? 'ASYNC' : 'SYNC'}] \${commandName} => completed\\n\`);\n` +
|
|
632
|
+
// ` return result;\n` +
|
|
633
|
+
// `}\n`;
|
|
634
|
+
const msgpackCallHelper =
|
|
635
|
+
`${this.config.mode === 'async' ? 'async ' : ''}function msgpackCall(backend: ${this.getBackendType()}, input: any[]) {` +
|
|
636
|
+
` const inputBuffer = new Encoder({ useRecords: false }).pack(input);` +
|
|
637
|
+
` const encodedResult = ${this.config.mode === 'async' ? 'await ' : ''}backend.call(inputBuffer);` +
|
|
638
|
+
` return new Decoder({ useRecords: false }).unpack(encodedResult);` +
|
|
639
|
+
`}\n`;
|
|
640
|
+
const destroyMethod =
|
|
641
|
+
this.config.mode === 'sync'
|
|
642
|
+
? ` destroy(): void {
|
|
643
|
+
if (this.backend.destroy) this.backend.destroy();
|
|
644
|
+
}`
|
|
645
|
+
: ` destroy(): Promise<void> {
|
|
646
|
+
return this.backend.destroy ? this.backend.destroy() : Promise.resolve();
|
|
647
|
+
}`;
|
|
648
|
+
|
|
608
649
|
return (
|
|
609
650
|
msgpackCallHelper +
|
|
610
651
|
`export class ${className}${implementsClause} {
|
|
611
|
-
constructor(protected
|
|
652
|
+
constructor(protected backend: ${this.getBackendType()}) {}
|
|
612
653
|
|
|
613
654
|
${methods}
|
|
614
655
|
|
|
615
|
-
|
|
616
|
-
return this.wasm.destroy();
|
|
617
|
-
}
|
|
656
|
+
${destroyMethod}
|
|
618
657
|
}`
|
|
619
658
|
);
|
|
620
659
|
}
|
|
621
660
|
|
|
622
661
|
private getApiClassName(): string {
|
|
623
662
|
switch (this.config.mode) {
|
|
624
|
-
case 'sync':
|
|
625
|
-
|
|
626
|
-
case '
|
|
627
|
-
|
|
663
|
+
case 'sync':
|
|
664
|
+
return 'SyncApi';
|
|
665
|
+
case 'async':
|
|
666
|
+
return 'AsyncApi';
|
|
667
|
+
default:
|
|
668
|
+
throw new Error(`Invalid mode: ${this.config.mode}`);
|
|
628
669
|
}
|
|
629
670
|
}
|
|
630
671
|
|
|
631
|
-
private
|
|
672
|
+
private getBackendType(): string {
|
|
632
673
|
switch (this.config.mode) {
|
|
633
|
-
case 'sync':
|
|
634
|
-
|
|
635
|
-
|
|
674
|
+
case 'sync':
|
|
675
|
+
return 'IMsgpackBackendSync';
|
|
676
|
+
case 'async':
|
|
677
|
+
return 'IMsgpackBackendAsync';
|
|
678
|
+
default:
|
|
679
|
+
return '';
|
|
636
680
|
}
|
|
637
681
|
}
|
|
638
682
|
|
|
639
683
|
private generateApiMethod(metadata: FunctionMetadata): string {
|
|
640
684
|
const { name, commandType, responseType } = metadata;
|
|
641
685
|
|
|
642
|
-
if (this.config.mode === 'native') {
|
|
643
|
-
return ` ${name}(command: ${commandType}): Promise<${responseType}> {
|
|
644
|
-
const msgpackCommand = from${commandType}(command);
|
|
645
|
-
return this.sendCommand(['${metadata.commandType}', msgpackCommand]).then(([variantName, result]: [string, any]) => {
|
|
646
|
-
if (variantName !== '${responseType}') {
|
|
647
|
-
throw new Error(\`Expected variant name '${responseType}' but got '\${variantName}'\`);
|
|
648
|
-
}
|
|
649
|
-
return to${responseType}(result);
|
|
650
|
-
});
|
|
651
|
-
}`;
|
|
652
|
-
}
|
|
653
|
-
|
|
654
686
|
// For async mode, queue immediately and return promise
|
|
655
687
|
if (this.config.mode === 'async') {
|
|
656
688
|
return ` ${name}(command: ${commandType}): Promise<${responseType}> {
|
|
657
689
|
const msgpackCommand = from${commandType}(command);
|
|
658
|
-
return msgpackCall(this.
|
|
690
|
+
return msgpackCall(this.backend, [["${capitalize(name)}", msgpackCommand]]).then(([variantName, result]: [string, any]) => {
|
|
691
|
+
if (variantName === 'ErrorResponse') {
|
|
692
|
+
throw new BBApiException(result.message || 'Unknown error from barretenberg');
|
|
693
|
+
}
|
|
659
694
|
if (variantName !== '${responseType}') {
|
|
660
|
-
throw new
|
|
695
|
+
throw new BBApiException(\`Expected variant name '${responseType}' but got '\${variantName}'\`);
|
|
661
696
|
}
|
|
662
697
|
return to${responseType}(result);
|
|
663
698
|
});
|
|
@@ -667,131 +702,16 @@ ${methods}
|
|
|
667
702
|
// For sync mode, keep the synchronous behavior
|
|
668
703
|
return ` ${name}(command: ${commandType}): ${responseType} {
|
|
669
704
|
const msgpackCommand = from${commandType}(command);
|
|
670
|
-
const [variantName, result] = msgpackCall(this.
|
|
705
|
+
const [variantName, result] = msgpackCall(this.backend, [["${capitalize(name)}", msgpackCommand]]);
|
|
706
|
+
if (variantName === 'ErrorResponse') {
|
|
707
|
+
throw new BBApiException(result.message || 'Unknown error from barretenberg');
|
|
708
|
+
}
|
|
671
709
|
if (variantName !== '${responseType}') {
|
|
672
|
-
throw new
|
|
710
|
+
throw new BBApiException(\`Expected variant name '${responseType}' but got '\${variantName}'\`);
|
|
673
711
|
}
|
|
674
712
|
return to${responseType}(result);
|
|
675
713
|
}`;
|
|
676
714
|
}
|
|
677
|
-
|
|
678
|
-
private generateNativeApiClass(methods: string): string {
|
|
679
|
-
return `interface NativeApiRequest {
|
|
680
|
-
resolve: (value: any) => void;
|
|
681
|
-
reject: (error: any) => void;
|
|
682
|
-
}
|
|
683
|
-
|
|
684
|
-
class StreamBuffer {
|
|
685
|
-
private buffer = Buffer.alloc(0);
|
|
686
|
-
private expectedLength: number | null = null;
|
|
687
|
-
|
|
688
|
-
addData(data: Buffer): Buffer[] {
|
|
689
|
-
// Create buffer to grow as needed
|
|
690
|
-
const newBuffer = Buffer.allocUnsafe(this.buffer.length + data.length);
|
|
691
|
-
this.buffer.copy(newBuffer, 0);
|
|
692
|
-
data.copy(newBuffer, this.buffer.length);
|
|
693
|
-
this.buffer = newBuffer;
|
|
694
|
-
|
|
695
|
-
const messages: Buffer[] = [];
|
|
696
|
-
|
|
697
|
-
while (true) {
|
|
698
|
-
if (this.expectedLength === null) {
|
|
699
|
-
if (this.buffer.length < 4) break;
|
|
700
|
-
this.expectedLength = this.buffer.readUInt32LE(0);
|
|
701
|
-
this.buffer = this.buffer.subarray(4);
|
|
702
|
-
}
|
|
703
|
-
|
|
704
|
-
if (this.buffer.length < this.expectedLength) break;
|
|
705
|
-
|
|
706
|
-
// Extract complete message
|
|
707
|
-
const messageBuffer = this.buffer.subarray(0, this.expectedLength);
|
|
708
|
-
messages.push(messageBuffer);
|
|
709
|
-
this.buffer = this.buffer.subarray(this.expectedLength);
|
|
710
|
-
this.expectedLength = null;
|
|
711
|
-
}
|
|
712
|
-
|
|
713
|
-
return messages;
|
|
714
|
-
}
|
|
715
|
-
}
|
|
716
|
-
|
|
717
|
-
export class NativeApi implements BbApiBase {
|
|
718
|
-
private decoder = new Decoder({ useRecords: false });
|
|
719
|
-
private encoder = new Encoder({ useRecords: false });
|
|
720
|
-
private pendingRequests: NativeApiRequest[] = [];
|
|
721
|
-
|
|
722
|
-
private constructor(private proc: ChildProcess) {}
|
|
723
|
-
|
|
724
|
-
static async new(bbPath = 'bb', logger = console.log): Promise<NativeApi> {
|
|
725
|
-
const proc = spawn(bbPath, ['msgpack', 'run'], {
|
|
726
|
-
stdio: ['pipe', 'pipe', 'pipe'],
|
|
727
|
-
});
|
|
728
|
-
|
|
729
|
-
if (!proc.stdout || !proc.stdin) {
|
|
730
|
-
throw new Error('Failed to initialize bb process');
|
|
731
|
-
}
|
|
732
|
-
|
|
733
|
-
const api = new NativeApi(proc);
|
|
734
|
-
const streamBuffer = new StreamBuffer();
|
|
735
|
-
|
|
736
|
-
proc.stdout.on('data', (data: Buffer) => {
|
|
737
|
-
const messages = streamBuffer.addData(data);
|
|
738
|
-
|
|
739
|
-
for (const messageBuffer of messages) {
|
|
740
|
-
const pendingRequest = api.pendingRequests.shift();
|
|
741
|
-
if (!pendingRequest) {
|
|
742
|
-
throw new Error('Received response without a pending request');
|
|
743
|
-
}
|
|
744
|
-
|
|
745
|
-
try {
|
|
746
|
-
const decoded = api.decoder.decode(messageBuffer);
|
|
747
|
-
if (!Array.isArray(decoded) || decoded.length !== 2) {
|
|
748
|
-
throw new Error(\`Invalid response format: \${JSON.stringify(decoded)}\`);
|
|
749
|
-
}
|
|
750
|
-
const [variantName, result] = decoded;
|
|
751
|
-
pendingRequest.resolve([variantName, result]);
|
|
752
|
-
} catch (error) {
|
|
753
|
-
pendingRequest.reject(error);
|
|
754
|
-
break;
|
|
755
|
-
}
|
|
756
|
-
}
|
|
757
|
-
});
|
|
758
|
-
|
|
759
|
-
proc.stderr.on('data', (data: Buffer) => {
|
|
760
|
-
logger(data.toString().trim());
|
|
761
|
-
});
|
|
762
|
-
|
|
763
|
-
proc.on('error', err => {
|
|
764
|
-
throw new Error(err.message);
|
|
765
|
-
});
|
|
766
|
-
return api;
|
|
767
|
-
}
|
|
768
|
-
|
|
769
|
-
private sendCommand(command: any): Promise<any> {
|
|
770
|
-
return new Promise((resolve, reject) => {
|
|
771
|
-
this.pendingRequests.push({ resolve, reject });
|
|
772
|
-
const encoded = this.encoder.encode(command);
|
|
773
|
-
|
|
774
|
-
// Write length prefix (4 bytes, little-endian)
|
|
775
|
-
const lengthBuffer = Buffer.allocUnsafe(4);
|
|
776
|
-
lengthBuffer.writeUInt32LE(encoded.length, 0);
|
|
777
|
-
|
|
778
|
-
// Write length prefix followed by the encoded data
|
|
779
|
-
this.proc.stdin!.write(lengthBuffer);
|
|
780
|
-
this.proc.stdin!.write(encoded);
|
|
781
|
-
});
|
|
782
|
-
}
|
|
783
|
-
|
|
784
|
-
async close(): Promise<void> {
|
|
785
|
-
this.proc.kill();
|
|
786
|
-
}
|
|
787
|
-
|
|
788
|
-
destroy(): Promise<void> {
|
|
789
|
-
return this.close();
|
|
790
|
-
}
|
|
791
|
-
|
|
792
|
-
${methods}
|
|
793
|
-
}`;
|
|
794
|
-
}
|
|
795
715
|
}
|
|
796
716
|
|
|
797
717
|
// Factory methods for creating configured compilers
|
|
@@ -806,8 +726,9 @@ export function createSyncApiCompiler(): SchemaCompiler {
|
|
|
806
726
|
return new SchemaCompiler({
|
|
807
727
|
mode: 'sync',
|
|
808
728
|
imports: [
|
|
809
|
-
`import {
|
|
729
|
+
`import { IMsgpackBackendSync } from '../../bb_backends/interface.js';`,
|
|
810
730
|
`import { Decoder, Encoder } from 'msgpackr';`,
|
|
731
|
+
`import { BBApiException } from '../../bbapi_exception.js';`,
|
|
811
732
|
],
|
|
812
733
|
});
|
|
813
734
|
}
|
|
@@ -816,18 +737,9 @@ export function createAsyncApiCompiler(): SchemaCompiler {
|
|
|
816
737
|
return new SchemaCompiler({
|
|
817
738
|
mode: 'async',
|
|
818
739
|
imports: [
|
|
819
|
-
`import {
|
|
820
|
-
`import { Decoder, Encoder } from 'msgpackr'
|
|
821
|
-
|
|
822
|
-
});
|
|
823
|
-
}
|
|
824
|
-
|
|
825
|
-
export function createNativeApiCompiler(): SchemaCompiler {
|
|
826
|
-
return new SchemaCompiler({
|
|
827
|
-
mode: 'native',
|
|
828
|
-
imports: [
|
|
829
|
-
`import { spawn, ChildProcess } from 'child_process';`,
|
|
830
|
-
`import { Decoder, Encoder } from 'msgpackr';`
|
|
740
|
+
`import { IMsgpackBackendAsync } from '../../bb_backends/interface.js';`,
|
|
741
|
+
`import { Decoder, Encoder } from 'msgpackr';`,
|
|
742
|
+
`import { BBApiException } from '../../bbapi_exception.js';`,
|
|
831
743
|
],
|
|
832
744
|
});
|
|
833
745
|
}
|
package/src/index.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export { Crs, GrumpkinCrs } from './crs/index.js';
|
|
2
2
|
export {
|
|
3
3
|
type BackendOptions,
|
|
4
|
+
BackendType,
|
|
4
5
|
Barretenberg,
|
|
5
6
|
BarretenbergSync,
|
|
6
7
|
UltraHonkVerifierBackend,
|
|
@@ -9,5 +10,32 @@ export {
|
|
|
9
10
|
} from './barretenberg/index.js';
|
|
10
11
|
|
|
11
12
|
export { randomBytes } from './random/index.js';
|
|
12
|
-
export { RawBuffer, Fr } from './types/index.js';
|
|
13
13
|
export { splitHonkProof, reconstructHonkProof, deflattenFields, type ProofData } from './proof/index.js';
|
|
14
|
+
export { BBApiException } from './bbapi_exception.js';
|
|
15
|
+
|
|
16
|
+
// Export Point types for use in foundation and other packages
|
|
17
|
+
export type {
|
|
18
|
+
Bn254G1Point,
|
|
19
|
+
Bn254G2Point,
|
|
20
|
+
GrumpkinPoint,
|
|
21
|
+
Secp256k1Point,
|
|
22
|
+
Secp256r1Point,
|
|
23
|
+
Field2,
|
|
24
|
+
} from './cbind/generated/api_types.js';
|
|
25
|
+
|
|
26
|
+
// Export curve constants for use in foundation
|
|
27
|
+
export {
|
|
28
|
+
BN254_FQ_MODULUS,
|
|
29
|
+
BN254_FR_MODULUS,
|
|
30
|
+
BN254_G1_GENERATOR,
|
|
31
|
+
BN254_G2_GENERATOR,
|
|
32
|
+
GRUMPKIN_FR_MODULUS,
|
|
33
|
+
GRUMPKIN_FQ_MODULUS,
|
|
34
|
+
GRUMPKIN_G1_GENERATOR,
|
|
35
|
+
SECP256K1_FR_MODULUS,
|
|
36
|
+
SECP256K1_FQ_MODULUS,
|
|
37
|
+
SECP256K1_G1_GENERATOR,
|
|
38
|
+
SECP256R1_FR_MODULUS,
|
|
39
|
+
SECP256R1_FQ_MODULUS,
|
|
40
|
+
SECP256R1_G1_GENERATOR,
|
|
41
|
+
} from './cbind/generated/curve_constants.js';
|
package/src/serialize/index.ts
CHANGED