@aztec/bb.js 0.0.1-commit.24de95ac → 0.0.1-commit.2e2504e2
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/build/amd64-linux/bb +0 -0
- package/build/amd64-linux/nodejs_module.node +0 -0
- package/build/amd64-macos/bb +0 -0
- package/build/amd64-macos/nodejs_module.node +0 -0
- package/build/arm64-linux/bb +0 -0
- package/build/arm64-linux/nodejs_module.node +0 -0
- package/build/arm64-macos/bb +0 -0
- package/build/arm64-macos/nodejs_module.node +0 -0
- package/dest/browser/async_map/index.d.ts +1 -1
- package/dest/browser/async_map/index.js +1 -1
- package/dest/browser/barretenberg/backend.d.ts +58 -40
- package/dest/browser/barretenberg/backend.d.ts.map +1 -1
- package/dest/browser/barretenberg/backend.js +143 -94
- package/dest/browser/barretenberg/index.d.ts +3 -5
- package/dest/browser/barretenberg/index.d.ts.map +1 -1
- package/dest/browser/barretenberg/index.js +19 -28
- package/dest/browser/barretenberg/testing/bigint-buffer.d.ts +17 -0
- package/dest/browser/barretenberg/testing/bigint-buffer.d.ts.map +1 -0
- package/dest/browser/barretenberg/testing/bigint-buffer.js +37 -0
- package/dest/browser/barretenberg/testing/fields.d.ts +16 -0
- package/dest/browser/barretenberg/testing/fields.d.ts.map +1 -0
- package/dest/browser/barretenberg/testing/fields.js +47 -0
- 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 +5 -6
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts +1 -1
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts.map +1 -1
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.js +1 -3
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.d.ts +1 -1
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.js +1 -7
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts +1 -1
- 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 +5 -4
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/index.d.ts +13 -7
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/index.d.ts.map +1 -1
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/index.js +45 -18
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts +1 -1
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts.map +1 -1
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.js +1 -3
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.d.ts +1 -1
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.js +1 -7
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts +9 -8
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts.map +1 -1
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_thread/index.js +4 -3
- package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg-threads.d.ts +1 -1
- package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg-threads.js +1 -1
- package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg.d.ts +1 -1
- package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg.js +1 -1
- package/dest/browser/barretenberg_wasm/fetch_code/browser/index.d.ts +1 -1
- package/dest/browser/barretenberg_wasm/fetch_code/browser/index.js +1 -1
- package/dest/browser/barretenberg_wasm/fetch_code/index.d.ts +1 -1
- package/dest/browser/barretenberg_wasm/helpers/browser/index.d.ts +2 -2
- package/dest/browser/barretenberg_wasm/helpers/browser/index.d.ts.map +1 -1
- package/dest/browser/barretenberg_wasm/helpers/browser/index.js +9 -2
- package/dest/browser/barretenberg_wasm/helpers/index.d.ts +1 -1
- package/dest/browser/barretenberg_wasm/index.d.ts +1 -1
- package/dest/browser/barretenberg_wasm/index.d.ts.map +1 -1
- package/dest/browser/barretenberg_wasm/index.js +2 -3
- package/dest/browser/bb_backends/browser/index.d.ts +1 -1
- package/dest/browser/bb_backends/browser/index.js +1 -1
- package/dest/browser/bb_backends/browser/platform.d.ts +4 -0
- package/dest/browser/bb_backends/browser/platform.d.ts.map +1 -0
- package/dest/browser/bb_backends/browser/platform.js +10 -0
- package/dest/browser/bb_backends/index.d.ts +12 -7
- package/dest/browser/bb_backends/index.d.ts.map +1 -1
- package/dest/browser/bb_backends/index.js +8 -7
- package/dest/browser/bb_backends/interface.d.ts +1 -1
- package/dest/browser/bb_backends/wasm.d.ts +1 -1
- package/dest/browser/bb_backends/wasm.d.ts.map +1 -1
- package/dest/browser/bb_backends/wasm.js +5 -3
- package/dest/browser/bbapi_exception.d.ts +1 -1
- package/dest/browser/bbapi_exception.d.ts.map +1 -1
- package/dest/browser/bbapi_exception.js +1 -1
- package/dest/browser/bin/index.d.ts +3 -0
- package/dest/browser/bin/index.d.ts.map +1 -0
- package/dest/browser/bin/index.js +11 -0
- package/dest/browser/cbind/generate.d.ts +5 -2
- package/dest/browser/cbind/generate.d.ts.map +1 -1
- package/dest/browser/cbind/generate.js +47 -25
- package/dest/browser/cbind/generated/api_types.d.ts +766 -1687
- package/dest/browser/cbind/generated/api_types.d.ts.map +1 -1
- package/dest/browser/cbind/generated/api_types.js +1465 -1555
- package/dest/browser/cbind/generated/async.d.ts +3 -5
- package/dest/browser/cbind/generated/async.d.ts.map +1 -1
- package/dest/browser/cbind/generated/async.js +14 -33
- package/dest/browser/cbind/generated/curve_constants.d.ts +1 -1
- package/dest/browser/cbind/generated/sync.d.ts +3 -5
- package/dest/browser/cbind/generated/sync.d.ts.map +1 -1
- package/dest/browser/cbind/generated/sync.js +14 -31
- package/dest/browser/cbind/naming.d.ts +16 -0
- package/dest/browser/cbind/naming.d.ts.map +1 -0
- package/dest/browser/cbind/naming.js +24 -0
- package/dest/browser/cbind/rust_codegen.d.ts +26 -0
- package/dest/browser/cbind/rust_codegen.d.ts.map +1 -0
- package/dest/browser/cbind/rust_codegen.js +461 -0
- package/dest/browser/cbind/schema_visitor.d.ts +47 -0
- package/dest/browser/cbind/schema_visitor.d.ts.map +1 -0
- package/dest/browser/cbind/schema_visitor.js +158 -0
- package/dest/browser/cbind/typescript_codegen.d.ts +30 -0
- package/dest/browser/cbind/typescript_codegen.d.ts.map +1 -0
- package/dest/browser/cbind/typescript_codegen.js +365 -0
- package/dest/browser/crs/browser/cached_net_crs.d.ts +1 -1
- package/dest/browser/crs/browser/cached_net_crs.d.ts.map +1 -1
- package/dest/browser/crs/browser/cached_net_crs.js +6 -1
- package/dest/browser/crs/browser/index.d.ts +1 -1
- package/dest/browser/crs/index.d.ts +1 -1
- package/dest/browser/crs/net_crs.d.ts +6 -16
- package/dest/browser/crs/net_crs.d.ts.map +1 -1
- package/dest/browser/crs/net_crs.js +35 -7
- package/dest/browser/index.d.ts +3 -2
- package/dest/browser/index.d.ts.map +1 -1
- package/dest/browser/index.js +3 -2
- package/dest/browser/proof/index.d.ts +1 -1
- package/dest/browser/proof/index.js +1 -1
- package/dest/browser/random/browser/index.d.ts +1 -1
- package/dest/browser/random/browser/index.d.ts.map +1 -1
- package/dest/browser/random/browser/index.js +1 -1
- package/dest/browser/random/index.d.ts +1 -1
- package/dest/browser/retry/index.d.ts +1 -1
- package/dest/browser/retry/index.js +1 -1
- package/dest/node/async_map/index.d.ts +1 -1
- package/dest/node/async_map/index.js +1 -1
- package/dest/node/barretenberg/backend.d.ts +58 -40
- package/dest/node/barretenberg/backend.d.ts.map +1 -1
- package/dest/node/barretenberg/backend.js +143 -94
- package/dest/node/barretenberg/backend.test.d.ts +2 -0
- package/dest/node/barretenberg/backend.test.d.ts.map +1 -0
- package/dest/node/barretenberg/backend.test.js +103 -0
- package/dest/node/barretenberg/blake2s.test.d.ts +1 -1
- package/dest/node/barretenberg/blake2s.test.js +2 -2
- package/dest/node/barretenberg/index.d.ts +3 -5
- package/dest/node/barretenberg/index.d.ts.map +1 -1
- package/dest/node/barretenberg/index.js +19 -28
- package/dest/node/barretenberg/pedersen.test.d.ts +1 -1
- package/dest/node/barretenberg/pedersen.test.js +2 -2
- package/dest/node/barretenberg/poseidon.bench.test.d.ts +1 -1
- package/dest/node/barretenberg/poseidon.bench.test.js +80 -79
- package/dest/node/barretenberg/poseidon.test.d.ts +1 -1
- package/dest/node/barretenberg/poseidon.test.js +2 -2
- package/dest/node/barretenberg/testing/bigint-buffer.d.ts +17 -0
- package/dest/node/barretenberg/testing/bigint-buffer.d.ts.map +1 -0
- package/dest/node/barretenberg/testing/bigint-buffer.js +37 -0
- package/dest/node/barretenberg/testing/fields.d.ts +16 -0
- package/dest/node/barretenberg/testing/fields.d.ts.map +1 -0
- package/dest/node/barretenberg/testing/fields.js +47 -0
- 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 +5 -6
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts.map +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.js +1 -3
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.d.ts +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.js +1 -7
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.d.ts +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.d.ts.map +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.js +1 -3
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.d.ts +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.js +1 -8
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts +1 -1
- 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 +5 -4
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/index.d.ts +13 -7
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/index.d.ts.map +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/index.js +45 -18
- package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts.map +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.js +1 -3
- package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.d.ts +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.js +1 -7
- package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.d.ts +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.d.ts.map +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.js +1 -3
- package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.d.ts +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.js +1 -7
- package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts +9 -8
- package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts.map +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_thread/index.js +4 -3
- package/dest/node/barretenberg_wasm/fetch_code/browser/barretenberg-threads.d.ts +1 -1
- package/dest/node/barretenberg_wasm/fetch_code/browser/barretenberg.d.ts +1 -1
- package/dest/node/barretenberg_wasm/fetch_code/browser/index.d.ts +1 -1
- package/dest/node/barretenberg_wasm/fetch_code/browser/index.js +1 -1
- package/dest/node/barretenberg_wasm/fetch_code/index.d.ts +1 -1
- package/dest/node/barretenberg_wasm/fetch_code/node/index.d.ts +1 -1
- package/dest/node/barretenberg_wasm/fetch_code/node/index.js +1 -1
- package/dest/node/barretenberg_wasm/helpers/browser/index.d.ts +2 -2
- package/dest/node/barretenberg_wasm/helpers/browser/index.d.ts.map +1 -1
- package/dest/node/barretenberg_wasm/helpers/browser/index.js +9 -2
- package/dest/node/barretenberg_wasm/helpers/index.d.ts +1 -1
- package/dest/node/barretenberg_wasm/helpers/node/index.d.ts +5 -6
- package/dest/node/barretenberg_wasm/helpers/node/index.d.ts.map +1 -1
- package/dest/node/barretenberg_wasm/helpers/node/index.js +14 -6
- package/dest/node/barretenberg_wasm/helpers/node/node_endpoint.d.ts +2 -2
- package/dest/node/barretenberg_wasm/helpers/node/node_endpoint.d.ts.map +1 -1
- package/dest/node/barretenberg_wasm/helpers/node/node_endpoint.js +1 -1
- package/dest/node/barretenberg_wasm/index.d.ts +1 -1
- package/dest/node/barretenberg_wasm/index.d.ts.map +1 -1
- package/dest/node/barretenberg_wasm/index.js +2 -3
- package/dest/node/barretenberg_wasm/index.test.d.ts +1 -1
- package/dest/node/barretenberg_wasm/index.test.js +1 -1
- package/dest/node/bb_backends/browser/index.d.ts +1 -1
- package/dest/node/bb_backends/browser/index.js +1 -1
- package/dest/node/bb_backends/browser/platform.d.ts +4 -0
- package/dest/node/bb_backends/browser/platform.d.ts.map +1 -0
- package/dest/node/bb_backends/browser/platform.js +10 -0
- package/dest/node/bb_backends/index.d.ts +12 -7
- package/dest/node/bb_backends/index.d.ts.map +1 -1
- package/dest/node/bb_backends/index.js +8 -7
- package/dest/node/bb_backends/interface.d.ts +1 -1
- package/dest/node/bb_backends/node/index.d.ts +1 -1
- package/dest/node/bb_backends/node/index.d.ts.map +1 -1
- package/dest/node/bb_backends/node/index.js +17 -11
- package/dest/node/bb_backends/node/native_pipe.d.ts +1 -1
- package/dest/node/bb_backends/node/native_pipe.d.ts.map +1 -1
- package/dest/node/bb_backends/node/native_pipe.js +11 -10
- package/dest/node/bb_backends/node/native_shm.d.ts +4 -3
- package/dest/node/bb_backends/node/native_shm.d.ts.map +1 -1
- package/dest/node/bb_backends/node/native_shm.js +85 -39
- package/dest/node/bb_backends/node/native_shm_async.d.ts +51 -0
- package/dest/node/bb_backends/node/native_shm_async.d.ts.map +1 -0
- package/dest/node/bb_backends/node/native_shm_async.js +233 -0
- package/dest/node/bb_backends/node/native_socket.d.ts +2 -2
- package/dest/node/bb_backends/node/native_socket.d.ts.map +1 -1
- package/dest/node/bb_backends/node/native_socket.js +46 -32
- package/dest/node/bb_backends/node/platform.d.ts +1 -1
- package/dest/node/bb_backends/node/platform.d.ts.map +1 -1
- package/dest/node/bb_backends/node/platform.js +7 -2
- package/dest/node/bb_backends/wasm.d.ts +1 -1
- package/dest/node/bb_backends/wasm.d.ts.map +1 -1
- package/dest/node/bb_backends/wasm.js +5 -3
- package/dest/node/bbapi/exception_handling.test.d.ts +2 -0
- package/dest/node/bbapi/exception_handling.test.d.ts.map +1 -0
- package/dest/node/bbapi/exception_handling.test.js +48 -0
- package/dest/node/bbapi_exception.d.ts +1 -1
- package/dest/node/bbapi_exception.d.ts.map +1 -1
- package/dest/node/bbapi_exception.js +1 -1
- package/dest/node/benchmark/index.d.ts +1 -1
- package/dest/node/benchmark/index.js +1 -1
- package/dest/node/benchmark/timer.d.ts +1 -1
- package/dest/node/benchmark/timer.d.ts.map +1 -1
- package/dest/node/benchmark/timer.js +2 -1
- package/dest/node/bin/index.d.ts +3 -0
- package/dest/node/bin/index.d.ts.map +1 -0
- package/dest/node/bin/index.js +11 -0
- package/dest/node/cbind/generate.d.ts +5 -2
- package/dest/node/cbind/generate.d.ts.map +1 -1
- package/dest/node/cbind/generate.js +47 -25
- package/dest/node/cbind/generated/api_types.d.ts +766 -1687
- package/dest/node/cbind/generated/api_types.d.ts.map +1 -1
- package/dest/node/cbind/generated/api_types.js +1465 -1555
- package/dest/node/cbind/generated/async.d.ts +3 -5
- package/dest/node/cbind/generated/async.d.ts.map +1 -1
- package/dest/node/cbind/generated/async.js +14 -33
- package/dest/node/cbind/generated/curve_constants.d.ts +1 -1
- package/dest/node/cbind/generated/sync.d.ts +3 -5
- package/dest/node/cbind/generated/sync.d.ts.map +1 -1
- package/dest/node/cbind/generated/sync.js +14 -31
- package/dest/node/cbind/naming.d.ts +16 -0
- package/dest/node/cbind/naming.d.ts.map +1 -0
- package/dest/node/cbind/naming.js +24 -0
- package/dest/node/cbind/rust_codegen.d.ts +26 -0
- package/dest/node/cbind/rust_codegen.d.ts.map +1 -0
- package/dest/node/cbind/rust_codegen.js +461 -0
- package/dest/node/cbind/schema_visitor.d.ts +47 -0
- package/dest/node/cbind/schema_visitor.d.ts.map +1 -0
- package/dest/node/cbind/schema_visitor.js +158 -0
- package/dest/node/cbind/typescript_codegen.d.ts +30 -0
- package/dest/node/cbind/typescript_codegen.d.ts.map +1 -0
- package/dest/node/cbind/typescript_codegen.js +365 -0
- package/dest/node/crs/browser/cached_net_crs.d.ts +1 -1
- package/dest/node/crs/browser/cached_net_crs.d.ts.map +1 -1
- package/dest/node/crs/browser/cached_net_crs.js +6 -1
- package/dest/node/crs/browser/index.d.ts +1 -1
- package/dest/node/crs/index.d.ts +1 -1
- package/dest/node/crs/net_crs.d.ts +6 -16
- package/dest/node/crs/net_crs.d.ts.map +1 -1
- package/dest/node/crs/net_crs.js +35 -7
- package/dest/node/crs/net_crs.test.d.ts +2 -0
- package/dest/node/crs/net_crs.test.d.ts.map +1 -0
- package/dest/node/crs/net_crs.test.js +39 -0
- package/dest/node/crs/node/index.d.ts +1 -1
- package/dest/node/crs/node/index.d.ts.map +1 -1
- package/dest/node/crs/node/index.js +11 -6
- package/dest/node/index.d.ts +3 -2
- package/dest/node/index.d.ts.map +1 -1
- package/dest/node/index.js +3 -2
- package/dest/node/proof/index.d.ts +1 -1
- package/dest/node/proof/index.js +1 -1
- package/dest/node/random/browser/index.d.ts +1 -1
- package/dest/node/random/browser/index.d.ts.map +1 -1
- package/dest/node/random/browser/index.js +1 -1
- package/dest/node/random/index.d.ts +1 -1
- package/dest/node/random/node/index.d.ts +1 -1
- package/dest/node/random/node/index.js +1 -1
- package/dest/node/retry/index.d.ts +1 -1
- package/dest/node/retry/index.js +1 -1
- package/dest/node-cjs/async_map/index.d.ts +1 -1
- package/dest/node-cjs/async_map/index.js +1 -1
- package/dest/node-cjs/barretenberg/backend.d.ts +58 -40
- package/dest/node-cjs/barretenberg/backend.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg/backend.js +151 -100
- package/dest/node-cjs/barretenberg/backend.test.d.ts +2 -0
- package/dest/node-cjs/barretenberg/backend.test.d.ts.map +1 -0
- package/dest/node-cjs/barretenberg/backend.test.js +105 -0
- package/dest/node-cjs/barretenberg/blake2s.test.d.ts +1 -1
- package/dest/node-cjs/barretenberg/blake2s.test.js +6 -6
- package/dest/node-cjs/barretenberg/index.d.ts +3 -5
- package/dest/node-cjs/barretenberg/index.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg/index.js +27 -34
- package/dest/node-cjs/barretenberg/pedersen.test.d.ts +1 -1
- package/dest/node-cjs/barretenberg/pedersen.test.js +9 -9
- package/dest/node-cjs/barretenberg/poseidon.bench.test.d.ts +1 -1
- package/dest/node-cjs/barretenberg/poseidon.bench.test.js +89 -88
- package/dest/node-cjs/barretenberg/poseidon.test.d.ts +1 -1
- package/dest/node-cjs/barretenberg/poseidon.test.js +4 -4
- package/dest/node-cjs/barretenberg/testing/bigint-buffer.d.ts +17 -0
- package/dest/node-cjs/barretenberg/testing/bigint-buffer.d.ts.map +1 -0
- package/dest/node-cjs/barretenberg/testing/bigint-buffer.js +43 -0
- package/dest/node-cjs/barretenberg/testing/fields.d.ts +16 -0
- package/dest/node-cjs/barretenberg/testing/fields.d.ts.map +1 -0
- package/dest/node-cjs/barretenberg/testing/fields.js +51 -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 +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 +7 -8
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.js +3 -5
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.d.ts +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.js +1 -7
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.d.ts +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.js +1 -3
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.d.ts +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.js +1 -8
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.d.ts +1 -1
- 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 +5 -4
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/index.d.ts +13 -7
- 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 +45 -18
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.js +3 -5
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.d.ts +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.js +1 -7
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.d.ts +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.js +1 -3
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.d.ts +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.js +1 -7
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts +9 -8
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/index.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_thread/index.js +4 -3
- package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/barretenberg-threads.d.ts +1 -1
- package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/barretenberg-threads.js +1 -1
- package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/barretenberg.d.ts +1 -1
- package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/barretenberg.js +1 -1
- package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/index.d.ts +1 -1
- package/dest/node-cjs/barretenberg_wasm/fetch_code/browser/index.js +2 -2
- package/dest/node-cjs/barretenberg_wasm/fetch_code/index.d.ts +1 -1
- package/dest/node-cjs/barretenberg_wasm/fetch_code/node/index.d.ts +1 -1
- package/dest/node-cjs/barretenberg_wasm/fetch_code/node/index.js +2 -2
- package/dest/node-cjs/barretenberg_wasm/helpers/browser/index.d.ts +2 -2
- package/dest/node-cjs/barretenberg_wasm/helpers/browser/index.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg_wasm/helpers/browser/index.js +9 -2
- package/dest/node-cjs/barretenberg_wasm/helpers/index.d.ts +1 -1
- package/dest/node-cjs/barretenberg_wasm/helpers/node/index.d.ts +5 -6
- package/dest/node-cjs/barretenberg_wasm/helpers/node/index.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg_wasm/helpers/node/index.js +15 -7
- package/dest/node-cjs/barretenberg_wasm/helpers/node/node_endpoint.d.ts +2 -2
- package/dest/node-cjs/barretenberg_wasm/helpers/node/node_endpoint.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg_wasm/helpers/node/node_endpoint.js +1 -1
- package/dest/node-cjs/barretenberg_wasm/index.d.ts +1 -1
- package/dest/node-cjs/barretenberg_wasm/index.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg_wasm/index.js +2 -3
- package/dest/node-cjs/barretenberg_wasm/index.test.d.ts +1 -1
- package/dest/node-cjs/barretenberg_wasm/index.test.js +1 -1
- package/dest/node-cjs/bb_backends/browser/index.d.ts +1 -1
- package/dest/node-cjs/bb_backends/browser/index.js +1 -1
- package/dest/node-cjs/bb_backends/browser/platform.d.ts +4 -0
- package/dest/node-cjs/bb_backends/browser/platform.d.ts.map +1 -0
- package/dest/node-cjs/bb_backends/browser/platform.js +15 -0
- package/dest/node-cjs/bb_backends/index.d.ts +12 -7
- package/dest/node-cjs/bb_backends/index.d.ts.map +1 -1
- package/dest/node-cjs/bb_backends/index.js +6 -6
- package/dest/node-cjs/bb_backends/interface.d.ts +1 -1
- package/dest/node-cjs/bb_backends/node/index.d.ts +1 -1
- package/dest/node-cjs/bb_backends/node/index.d.ts.map +1 -1
- package/dest/node-cjs/bb_backends/node/index.js +17 -11
- package/dest/node-cjs/bb_backends/node/native_pipe.d.ts +1 -1
- package/dest/node-cjs/bb_backends/node/native_pipe.d.ts.map +1 -1
- package/dest/node-cjs/bb_backends/node/native_pipe.js +11 -10
- package/dest/node-cjs/bb_backends/node/native_shm.d.ts +4 -3
- package/dest/node-cjs/bb_backends/node/native_shm.d.ts.map +1 -1
- package/dest/node-cjs/bb_backends/node/native_shm.js +85 -39
- package/dest/node-cjs/bb_backends/node/native_shm_async.d.ts +51 -0
- package/dest/node-cjs/bb_backends/node/native_shm_async.d.ts.map +1 -0
- package/dest/node-cjs/bb_backends/node/native_shm_async.js +237 -0
- package/dest/node-cjs/bb_backends/node/native_socket.d.ts +2 -2
- package/dest/node-cjs/bb_backends/node/native_socket.d.ts.map +1 -1
- package/dest/node-cjs/bb_backends/node/native_socket.js +46 -32
- package/dest/node-cjs/bb_backends/node/platform.d.ts +1 -1
- package/dest/node-cjs/bb_backends/node/platform.d.ts.map +1 -1
- package/dest/node-cjs/bb_backends/node/platform.js +8 -3
- package/dest/node-cjs/bb_backends/wasm.d.ts +1 -1
- package/dest/node-cjs/bb_backends/wasm.d.ts.map +1 -1
- package/dest/node-cjs/bb_backends/wasm.js +5 -3
- package/dest/node-cjs/bbapi/exception_handling.test.d.ts +2 -0
- package/dest/node-cjs/bbapi/exception_handling.test.d.ts.map +1 -0
- package/dest/node-cjs/bbapi/exception_handling.test.js +50 -0
- package/dest/node-cjs/bbapi_exception.d.ts +1 -1
- package/dest/node-cjs/bbapi_exception.d.ts.map +1 -1
- package/dest/node-cjs/bbapi_exception.js +1 -1
- package/dest/node-cjs/benchmark/index.d.ts +1 -1
- package/dest/node-cjs/benchmark/index.js +2 -2
- package/dest/node-cjs/benchmark/timer.d.ts +1 -1
- package/dest/node-cjs/benchmark/timer.d.ts.map +1 -1
- package/dest/node-cjs/benchmark/timer.js +2 -1
- package/dest/node-cjs/bin/index.d.ts +3 -0
- package/dest/node-cjs/bin/index.d.ts.map +1 -0
- package/dest/node-cjs/bin/index.js +13 -0
- package/dest/node-cjs/cbind/generate.d.ts +5 -2
- package/dest/node-cjs/cbind/generate.d.ts.map +1 -1
- package/dest/node-cjs/cbind/generate.js +47 -25
- package/dest/node-cjs/cbind/generated/api_types.d.ts +766 -1687
- package/dest/node-cjs/cbind/generated/api_types.d.ts.map +1 -1
- package/dest/node-cjs/cbind/generated/api_types.js +1671 -1771
- package/dest/node-cjs/cbind/generated/async.d.ts +3 -5
- package/dest/node-cjs/cbind/generated/async.d.ts.map +1 -1
- package/dest/node-cjs/cbind/generated/async.js +13 -32
- package/dest/node-cjs/cbind/generated/curve_constants.d.ts +1 -1
- package/dest/node-cjs/cbind/generated/sync.d.ts +3 -5
- package/dest/node-cjs/cbind/generated/sync.d.ts.map +1 -1
- package/dest/node-cjs/cbind/generated/sync.js +13 -30
- package/dest/node-cjs/cbind/naming.d.ts +16 -0
- package/dest/node-cjs/cbind/naming.d.ts.map +1 -0
- package/dest/node-cjs/cbind/naming.js +28 -0
- package/dest/node-cjs/cbind/rust_codegen.d.ts +26 -0
- package/dest/node-cjs/cbind/rust_codegen.d.ts.map +1 -0
- package/dest/node-cjs/cbind/rust_codegen.js +465 -0
- package/dest/node-cjs/cbind/schema_visitor.d.ts +47 -0
- package/dest/node-cjs/cbind/schema_visitor.d.ts.map +1 -0
- package/dest/node-cjs/cbind/schema_visitor.js +162 -0
- package/dest/node-cjs/cbind/typescript_codegen.d.ts +30 -0
- package/dest/node-cjs/cbind/typescript_codegen.d.ts.map +1 -0
- package/dest/node-cjs/cbind/typescript_codegen.js +369 -0
- package/dest/node-cjs/crs/browser/cached_net_crs.d.ts +1 -1
- package/dest/node-cjs/crs/browser/cached_net_crs.d.ts.map +1 -1
- package/dest/node-cjs/crs/browser/cached_net_crs.js +6 -1
- package/dest/node-cjs/crs/browser/index.d.ts +1 -1
- package/dest/node-cjs/crs/browser/index.js +2 -2
- package/dest/node-cjs/crs/index.d.ts +1 -1
- package/dest/node-cjs/crs/index.js +2 -2
- package/dest/node-cjs/crs/net_crs.d.ts +6 -16
- package/dest/node-cjs/crs/net_crs.d.ts.map +1 -1
- package/dest/node-cjs/crs/net_crs.js +36 -7
- package/dest/node-cjs/crs/net_crs.test.d.ts +2 -0
- package/dest/node-cjs/crs/net_crs.test.d.ts.map +1 -0
- package/dest/node-cjs/crs/net_crs.test.js +41 -0
- package/dest/node-cjs/crs/node/index.d.ts +1 -1
- package/dest/node-cjs/crs/node/index.d.ts.map +1 -1
- package/dest/node-cjs/crs/node/index.js +11 -6
- package/dest/node-cjs/index.d.ts +3 -2
- package/dest/node-cjs/index.d.ts.map +1 -1
- package/dest/node-cjs/index.js +12 -8
- package/dest/node-cjs/proof/index.d.ts +1 -1
- package/dest/node-cjs/proof/index.js +1 -1
- package/dest/node-cjs/random/browser/index.d.ts +1 -1
- package/dest/node-cjs/random/browser/index.d.ts.map +1 -1
- package/dest/node-cjs/random/browser/index.js +1 -1
- package/dest/node-cjs/random/index.d.ts +1 -1
- package/dest/node-cjs/random/node/index.d.ts +1 -1
- package/dest/node-cjs/random/node/index.js +1 -1
- package/dest/node-cjs/retry/index.d.ts +1 -1
- package/dest/node-cjs/retry/index.js +1 -1
- package/package.json +8 -6
- package/src/barretenberg/backend.test.ts +122 -0
- package/src/barretenberg/backend.ts +170 -122
- package/src/barretenberg/blake2s.test.ts +1 -1
- package/src/barretenberg/index.ts +25 -28
- package/src/barretenberg/pedersen.test.ts +1 -1
- package/src/barretenberg/poseidon.bench.test.ts +160 -157
- package/src/barretenberg/poseidon.test.ts +1 -1
- package/src/{types → barretenberg/testing}/fields.ts +12 -26
- package/src/barretenberg_wasm/barretenberg_wasm_base/index.ts +1 -2
- package/src/barretenberg_wasm/barretenberg_wasm_main/factory/browser/index.ts +0 -2
- package/src/barretenberg_wasm/barretenberg_wasm_main/factory/browser/main.worker.ts +0 -7
- package/src/barretenberg_wasm/barretenberg_wasm_main/factory/node/index.ts +0 -2
- package/src/barretenberg_wasm/barretenberg_wasm_main/factory/node/main.worker.ts +0 -9
- package/src/barretenberg_wasm/barretenberg_wasm_main/index.ts +38 -5
- package/src/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/index.ts +0 -2
- package/src/barretenberg_wasm/barretenberg_wasm_thread/factory/browser/thread.worker.ts +0 -7
- package/src/barretenberg_wasm/barretenberg_wasm_thread/factory/node/index.ts +0 -2
- package/src/barretenberg_wasm/barretenberg_wasm_thread/factory/node/thread.worker.ts +0 -7
- package/src/barretenberg_wasm/barretenberg_wasm_thread/index.ts +3 -2
- package/src/barretenberg_wasm/helpers/browser/index.ts +8 -1
- package/src/barretenberg_wasm/helpers/node/index.ts +13 -6
- package/src/barretenberg_wasm/index.ts +1 -2
- package/src/bb_backends/browser/platform.ts +11 -0
- package/src/bb_backends/index.ts +12 -6
- package/src/bb_backends/node/index.ts +23 -10
- package/src/bb_backends/node/native_shm.ts +81 -38
- package/src/bb_backends/node/native_shm_async.ts +262 -0
- package/src/bb_backends/node/native_socket.ts +35 -19
- package/src/bb_backends/node/platform.ts +6 -1
- package/src/bb_backends/wasm.ts +1 -2
- package/src/bbapi/exception_handling.test.ts +54 -0
- package/src/bin/index.ts +14 -0
- package/src/cbind/generate.ts +51 -32
- package/src/cbind/generated/api_types.ts +1612 -2833
- package/src/cbind/generated/async.ts +13 -34
- package/src/cbind/generated/sync.ts +13 -32
- package/src/cbind/naming.ts +27 -0
- package/src/cbind/rust_codegen.ts +504 -0
- package/src/cbind/schema_visitor.ts +219 -0
- package/src/cbind/typescript_codegen.ts +419 -0
- package/src/crs/net_crs.test.ts +47 -0
- package/src/crs/net_crs.ts +45 -14
- package/src/crs/node/index.ts +4 -5
- package/src/index.ts +6 -0
- package/dest/browser/bb_backends/sync_to_async_adapter.d.ts +0 -15
- package/dest/browser/bb_backends/sync_to_async_adapter.d.ts.map +0 -1
- package/dest/browser/bb_backends/sync_to_async_adapter.js +0 -20
- package/dest/browser/bigint-array/index.d.ts +0 -17
- package/dest/browser/bigint-array/index.d.ts.map +0 -1
- package/dest/browser/bigint-array/index.js +0 -37
- package/dest/browser/cbind/schema_compiler.d.ts +0 -68
- package/dest/browser/cbind/schema_compiler.d.ts.map +0 -1
- package/dest/browser/cbind/schema_compiler.js +0 -599
- package/dest/browser/log/browser/index.d.ts +0 -6
- package/dest/browser/log/browser/index.d.ts.map +0 -1
- package/dest/browser/log/browser/index.js +0 -28
- package/dest/browser/log/index.d.ts +0 -2
- package/dest/browser/log/index.d.ts.map +0 -1
- package/dest/browser/log/index.js +0 -2
- package/dest/browser/log/types.d.ts +0 -6
- package/dest/browser/log/types.d.ts.map +0 -1
- package/dest/browser/log/types.js +0 -2
- package/dest/browser/serialize/index.d.ts +0 -2
- package/dest/browser/serialize/index.d.ts.map +0 -1
- package/dest/browser/serialize/index.js +0 -2
- package/dest/browser/serialize/serialize.d.ts +0 -18
- package/dest/browser/serialize/serialize.d.ts.map +0 -1
- package/dest/browser/serialize/serialize.js +0 -72
- package/dest/browser/types/fields.d.ts +0 -23
- package/dest/browser/types/fields.d.ts.map +0 -1
- package/dest/browser/types/fields.js +0 -61
- package/dest/browser/types/index.d.ts +0 -3
- package/dest/browser/types/index.d.ts.map +0 -1
- package/dest/browser/types/index.js +0 -3
- package/dest/browser/types/point.d.ts +0 -18
- package/dest/browser/types/point.d.ts.map +0 -1
- package/dest/browser/types/point.js +0 -28
- package/dest/node/bb_backends/sync_to_async_adapter.d.ts +0 -15
- package/dest/node/bb_backends/sync_to_async_adapter.d.ts.map +0 -1
- package/dest/node/bb_backends/sync_to_async_adapter.js +0 -20
- package/dest/node/bigint-array/index.d.ts +0 -17
- package/dest/node/bigint-array/index.d.ts.map +0 -1
- package/dest/node/bigint-array/index.js +0 -37
- package/dest/node/cbind/schema_compiler.d.ts +0 -68
- package/dest/node/cbind/schema_compiler.d.ts.map +0 -1
- package/dest/node/cbind/schema_compiler.js +0 -599
- package/dest/node/log/browser/index.d.ts +0 -6
- package/dest/node/log/browser/index.d.ts.map +0 -1
- package/dest/node/log/browser/index.js +0 -28
- package/dest/node/log/index.d.ts +0 -2
- package/dest/node/log/index.d.ts.map +0 -1
- package/dest/node/log/index.js +0 -2
- package/dest/node/log/node/index.d.ts +0 -6
- package/dest/node/log/node/index.d.ts.map +0 -1
- package/dest/node/log/node/index.js +0 -40
- package/dest/node/log/types.d.ts +0 -6
- package/dest/node/log/types.d.ts.map +0 -1
- package/dest/node/log/types.js +0 -2
- package/dest/node/serialize/index.d.ts +0 -2
- package/dest/node/serialize/index.d.ts.map +0 -1
- package/dest/node/serialize/index.js +0 -2
- package/dest/node/serialize/serialize.d.ts +0 -18
- package/dest/node/serialize/serialize.d.ts.map +0 -1
- package/dest/node/serialize/serialize.js +0 -72
- package/dest/node/types/fields.d.ts +0 -23
- package/dest/node/types/fields.d.ts.map +0 -1
- package/dest/node/types/fields.js +0 -61
- package/dest/node/types/index.d.ts +0 -3
- package/dest/node/types/index.d.ts.map +0 -1
- package/dest/node/types/index.js +0 -3
- package/dest/node/types/point.d.ts +0 -18
- package/dest/node/types/point.d.ts.map +0 -1
- package/dest/node/types/point.js +0 -28
- package/dest/node-cjs/bb_backends/sync_to_async_adapter.d.ts +0 -15
- package/dest/node-cjs/bb_backends/sync_to_async_adapter.d.ts.map +0 -1
- package/dest/node-cjs/bb_backends/sync_to_async_adapter.js +0 -24
- package/dest/node-cjs/bigint-array/index.d.ts +0 -17
- package/dest/node-cjs/bigint-array/index.d.ts.map +0 -1
- package/dest/node-cjs/bigint-array/index.js +0 -43
- package/dest/node-cjs/cbind/schema_compiler.d.ts +0 -68
- package/dest/node-cjs/cbind/schema_compiler.d.ts.map +0 -1
- package/dest/node-cjs/cbind/schema_compiler.js +0 -606
- package/dest/node-cjs/log/browser/index.d.ts +0 -6
- package/dest/node-cjs/log/browser/index.d.ts.map +0 -1
- package/dest/node-cjs/log/browser/index.js +0 -30
- package/dest/node-cjs/log/index.d.ts +0 -2
- package/dest/node-cjs/log/index.d.ts.map +0 -1
- package/dest/node-cjs/log/index.js +0 -8
- package/dest/node-cjs/log/node/index.d.ts +0 -6
- package/dest/node-cjs/log/node/index.d.ts.map +0 -1
- package/dest/node-cjs/log/node/index.js +0 -42
- package/dest/node-cjs/log/types.d.ts +0 -6
- package/dest/node-cjs/log/types.d.ts.map +0 -1
- package/dest/node-cjs/log/types.js +0 -3
- package/dest/node-cjs/serialize/index.d.ts +0 -2
- package/dest/node-cjs/serialize/index.d.ts.map +0 -1
- package/dest/node-cjs/serialize/index.js +0 -5
- package/dest/node-cjs/serialize/serialize.d.ts +0 -18
- package/dest/node-cjs/serialize/serialize.d.ts.map +0 -1
- package/dest/node-cjs/serialize/serialize.js +0 -82
- package/dest/node-cjs/types/fields.d.ts +0 -23
- package/dest/node-cjs/types/fields.d.ts.map +0 -1
- package/dest/node-cjs/types/fields.js +0 -65
- package/dest/node-cjs/types/index.d.ts +0 -3
- package/dest/node-cjs/types/index.d.ts.map +0 -1
- package/dest/node-cjs/types/index.js +0 -6
- package/dest/node-cjs/types/point.d.ts +0 -18
- package/dest/node-cjs/types/point.d.ts.map +0 -1
- package/dest/node-cjs/types/point.js +0 -32
- package/src/bb_backends/sync_to_async_adapter.ts +0 -21
- package/src/cbind/schema_compiler.ts +0 -745
- package/src/log/browser/index.ts +0 -35
- package/src/log/index.ts +0 -1
- package/src/log/node/index.ts +0 -52
- package/src/log/types.ts +0 -6
- package/src/serialize/index.ts +0 -1
- package/src/serialize/serialize.ts +0 -75
- package/src/types/index.ts +0 -2
- package/src/types/point.ts +0 -32
- /package/src/{bigint-array/index.ts → barretenberg/testing/bigint-buffer.ts} +0 -0
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Schema Visitor - Minimal abstraction over raw msgpack schema
|
|
3
|
+
*
|
|
4
|
+
* Philosophy:
|
|
5
|
+
* - Keep raw schema structure
|
|
6
|
+
* - Resolve type references into a graph
|
|
7
|
+
* - No normalization - languages handle their own conventions
|
|
8
|
+
* - Output is "compiled schema" with resolved types
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
export type PrimitiveType = 'bool' | 'u8' | 'u16' | 'u32' | 'u64' | 'f64' | 'string' | 'bytes' | 'field2';
|
|
12
|
+
|
|
13
|
+
export interface Type {
|
|
14
|
+
kind: 'primitive' | 'vector' | 'array' | 'optional' | 'struct';
|
|
15
|
+
primitive?: PrimitiveType;
|
|
16
|
+
element?: Type; // For vector, array, optional
|
|
17
|
+
size?: number; // For array
|
|
18
|
+
struct?: Struct; // For struct types
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export interface Field {
|
|
22
|
+
name: string;
|
|
23
|
+
type: Type;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export interface Struct {
|
|
27
|
+
name: string;
|
|
28
|
+
fields: Field[];
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export interface Command {
|
|
32
|
+
name: string;
|
|
33
|
+
fields: Field[];
|
|
34
|
+
responseType: string;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export interface CompiledSchema {
|
|
38
|
+
// All unique struct types discovered
|
|
39
|
+
structs: Map<string, Struct>;
|
|
40
|
+
|
|
41
|
+
// Command -> Response mappings
|
|
42
|
+
commands: Command[];
|
|
43
|
+
|
|
44
|
+
// Response types
|
|
45
|
+
responses: Map<string, Struct>;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* SchemaVisitor - Walks raw msgpack schema and resolves references
|
|
50
|
+
*/
|
|
51
|
+
export class SchemaVisitor {
|
|
52
|
+
private structs = new Map<string, Struct>();
|
|
53
|
+
private responses = new Map<string, Struct>();
|
|
54
|
+
|
|
55
|
+
visit(commandsSchema: any, responsesSchema: any): CompiledSchema {
|
|
56
|
+
// Reset state
|
|
57
|
+
this.structs.clear();
|
|
58
|
+
this.responses.clear();
|
|
59
|
+
|
|
60
|
+
const commands: Command[] = [];
|
|
61
|
+
|
|
62
|
+
// Schema format: ["named_union", [[name, schema], ...]]
|
|
63
|
+
const commandPairs = commandsSchema[1] as Array<[string, any]>;
|
|
64
|
+
const responsePairs = responsesSchema[1] as Array<[string, any]>;
|
|
65
|
+
|
|
66
|
+
// First, visit all response types (including ErrorResponse)
|
|
67
|
+
for (const [respName, respSchema] of responsePairs) {
|
|
68
|
+
if (typeof respSchema !== 'string') {
|
|
69
|
+
const respStruct = this.visitStruct(respName, respSchema);
|
|
70
|
+
this.responses.set(respName, respStruct);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
// Visit all commands and pair with responses
|
|
75
|
+
for (let i = 0; i < commandPairs.length; i++) {
|
|
76
|
+
const [cmdName, cmdSchema] = commandPairs[i];
|
|
77
|
+
// Find matching response (skip ErrorResponse which is always last)
|
|
78
|
+
const normalResponses = responsePairs.filter(([name]: [string, any]) => name !== 'ErrorResponse');
|
|
79
|
+
const [respName] = normalResponses[i];
|
|
80
|
+
|
|
81
|
+
// Discover command structure
|
|
82
|
+
const cmdStruct = this.visitStruct(cmdName, cmdSchema);
|
|
83
|
+
this.structs.set(cmdName, cmdStruct);
|
|
84
|
+
|
|
85
|
+
// Create command mapping
|
|
86
|
+
commands.push({
|
|
87
|
+
name: cmdName,
|
|
88
|
+
fields: cmdStruct.fields,
|
|
89
|
+
responseType: respName,
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
return {
|
|
94
|
+
structs: this.structs,
|
|
95
|
+
commands,
|
|
96
|
+
responses: this.responses,
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
private visitStruct(name: string, schema: any): Struct {
|
|
101
|
+
const fields: Field[] = [];
|
|
102
|
+
|
|
103
|
+
// Schema is an object with __typename and fields
|
|
104
|
+
for (const [key, value] of Object.entries(schema)) {
|
|
105
|
+
if (key === '__typename') continue;
|
|
106
|
+
|
|
107
|
+
fields.push({
|
|
108
|
+
name: key,
|
|
109
|
+
type: this.visitType(value),
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
return { name, fields };
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
private visitType(schema: any): Type {
|
|
117
|
+
// Primitive string type
|
|
118
|
+
if (typeof schema === 'string') {
|
|
119
|
+
return this.resolvePrimitive(schema);
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
// Array type descriptor: ['vector', [elementType]]
|
|
123
|
+
if (Array.isArray(schema)) {
|
|
124
|
+
const [kind, args] = schema;
|
|
125
|
+
|
|
126
|
+
switch (kind) {
|
|
127
|
+
case 'vector': {
|
|
128
|
+
const [elemType] = args as [any];
|
|
129
|
+
// Special case: vector<unsigned char> = bytes
|
|
130
|
+
if (elemType === 'unsigned char') {
|
|
131
|
+
return { kind: 'primitive', primitive: 'bytes' };
|
|
132
|
+
}
|
|
133
|
+
return {
|
|
134
|
+
kind: 'vector',
|
|
135
|
+
element: this.visitType(elemType),
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
case 'array': {
|
|
140
|
+
const [elemType, size] = args as [any, number];
|
|
141
|
+
// Special case: array<unsigned char, N> = bytes
|
|
142
|
+
if (elemType === 'unsigned char') {
|
|
143
|
+
return { kind: 'primitive', primitive: 'bytes' };
|
|
144
|
+
}
|
|
145
|
+
return {
|
|
146
|
+
kind: 'array',
|
|
147
|
+
element: this.visitType(elemType),
|
|
148
|
+
size,
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
case 'optional': {
|
|
153
|
+
const [elemType] = args as [any];
|
|
154
|
+
return {
|
|
155
|
+
kind: 'optional',
|
|
156
|
+
element: this.visitType(elemType),
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
case 'shared_ptr': {
|
|
161
|
+
// Dereference shared_ptr - just use inner type
|
|
162
|
+
const [innerType] = args as [any];
|
|
163
|
+
return this.visitType(innerType);
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
case 'alias': {
|
|
167
|
+
// Alias types (like uint256_t) are treated as bytes
|
|
168
|
+
return { kind: 'primitive', primitive: 'bytes' };
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
default:
|
|
172
|
+
throw new Error(`Unknown type kind: ${kind}`);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
// Inline struct definition
|
|
177
|
+
if (typeof schema === 'object' && schema.__typename) {
|
|
178
|
+
const structName = schema.__typename as string;
|
|
179
|
+
// Check if already visited
|
|
180
|
+
if (!this.structs.has(structName)) {
|
|
181
|
+
const struct = this.visitStruct(structName, schema);
|
|
182
|
+
this.structs.set(structName, struct);
|
|
183
|
+
}
|
|
184
|
+
return {
|
|
185
|
+
kind: 'struct',
|
|
186
|
+
struct: this.structs.get(structName)!,
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
throw new Error(`Cannot resolve type: ${JSON.stringify(schema)}`);
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
private resolvePrimitive(name: string): Type {
|
|
194
|
+
const primitiveMap: Record<string, PrimitiveType> = {
|
|
195
|
+
'bool': 'bool',
|
|
196
|
+
'int': 'u32',
|
|
197
|
+
'unsigned int': 'u32',
|
|
198
|
+
'unsigned short': 'u16',
|
|
199
|
+
'unsigned long': 'u64',
|
|
200
|
+
'unsigned char': 'u8',
|
|
201
|
+
'double': 'f64',
|
|
202
|
+
'string': 'string',
|
|
203
|
+
'bin32': 'bytes',
|
|
204
|
+
'field2': 'field2', // Extension field (Fq2) - pair of field elements
|
|
205
|
+
};
|
|
206
|
+
|
|
207
|
+
const primitive = primitiveMap[name];
|
|
208
|
+
if (primitive) {
|
|
209
|
+
return { kind: 'primitive', primitive };
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
// Unknown primitive - treat as struct reference
|
|
213
|
+
// This will be resolved later if it's a real struct
|
|
214
|
+
return {
|
|
215
|
+
kind: 'struct',
|
|
216
|
+
struct: { name, fields: [] }, // Placeholder
|
|
217
|
+
};
|
|
218
|
+
}
|
|
219
|
+
}
|
|
@@ -0,0 +1,419 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TypeScript Code Generator - String template based
|
|
3
|
+
*
|
|
4
|
+
* Philosophy:
|
|
5
|
+
* - String templates for file structure
|
|
6
|
+
* - Simple type mapping
|
|
7
|
+
* - Idiomatic TypeScript conventions
|
|
8
|
+
* - No complex abstraction
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
import type { CompiledSchema, Type, Struct, Field, Command } from './schema_visitor.js';
|
|
12
|
+
import { toPascalCase } from './naming.js';
|
|
13
|
+
|
|
14
|
+
function toCamelCase(name: string): string {
|
|
15
|
+
const pascal = toPascalCase(name);
|
|
16
|
+
return pascal.charAt(0).toLowerCase() + pascal.slice(1);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export class TypeScriptCodegen {
|
|
20
|
+
// Type mapping: Schema type -> TypeScript type
|
|
21
|
+
private mapType(type: Type): string {
|
|
22
|
+
switch (type.kind) {
|
|
23
|
+
case 'primitive':
|
|
24
|
+
switch (type.primitive) {
|
|
25
|
+
case 'bool': return 'boolean';
|
|
26
|
+
case 'u8': return 'number';
|
|
27
|
+
case 'u16': return 'number';
|
|
28
|
+
case 'u32': return 'number';
|
|
29
|
+
case 'u64': return 'number';
|
|
30
|
+
case 'f64': return 'number';
|
|
31
|
+
case 'string': return 'string';
|
|
32
|
+
case 'bytes': return 'Uint8Array';
|
|
33
|
+
case 'field2': return '[Uint8Array, Uint8Array]'; // Extension field (Fq2)
|
|
34
|
+
}
|
|
35
|
+
break;
|
|
36
|
+
|
|
37
|
+
case 'vector':
|
|
38
|
+
return `${this.mapType(type.element!)}[]`;
|
|
39
|
+
|
|
40
|
+
case 'array':
|
|
41
|
+
return `${this.mapType(type.element!)}[]`;
|
|
42
|
+
|
|
43
|
+
case 'optional':
|
|
44
|
+
return `${this.mapType(type.element!)} | undefined`;
|
|
45
|
+
|
|
46
|
+
case 'struct':
|
|
47
|
+
return toPascalCase(type.struct!.name);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
return 'unknown';
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
// Type mapping for msgpack interfaces (uses Msgpack* prefix for structs)
|
|
54
|
+
private mapMsgpackType(type: Type): string {
|
|
55
|
+
switch (type.kind) {
|
|
56
|
+
case 'primitive':
|
|
57
|
+
switch (type.primitive) {
|
|
58
|
+
case 'bool': return 'boolean';
|
|
59
|
+
case 'u8': return 'number';
|
|
60
|
+
case 'u16': return 'number';
|
|
61
|
+
case 'u32': return 'number';
|
|
62
|
+
case 'u64': return 'number';
|
|
63
|
+
case 'f64': return 'number';
|
|
64
|
+
case 'string': return 'string';
|
|
65
|
+
case 'bytes': return 'Uint8Array';
|
|
66
|
+
case 'field2': return '[Uint8Array, Uint8Array]';
|
|
67
|
+
}
|
|
68
|
+
break;
|
|
69
|
+
|
|
70
|
+
case 'vector':
|
|
71
|
+
return `${this.mapMsgpackType(type.element!)}[]`;
|
|
72
|
+
|
|
73
|
+
case 'array':
|
|
74
|
+
return `${this.mapMsgpackType(type.element!)}[]`;
|
|
75
|
+
|
|
76
|
+
case 'optional':
|
|
77
|
+
return `${this.mapMsgpackType(type.element!)} | undefined`;
|
|
78
|
+
|
|
79
|
+
case 'struct':
|
|
80
|
+
return `Msgpack${toPascalCase(type.struct!.name)}`;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
return 'unknown';
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
// Check if type needs conversion (has nested structs)
|
|
87
|
+
private needsConversion(type: Type): boolean {
|
|
88
|
+
switch (type.kind) {
|
|
89
|
+
case 'primitive':
|
|
90
|
+
return false;
|
|
91
|
+
case 'vector':
|
|
92
|
+
case 'array':
|
|
93
|
+
case 'optional':
|
|
94
|
+
return this.needsConversion(type.element!);
|
|
95
|
+
case 'struct':
|
|
96
|
+
return true;
|
|
97
|
+
}
|
|
98
|
+
return false;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
// Generate field
|
|
102
|
+
private generateField(field: Field): string {
|
|
103
|
+
const tsName = toCamelCase(field.name);
|
|
104
|
+
const tsType = this.mapType(field.type);
|
|
105
|
+
return ` ${tsName}: ${tsType};`;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
// Generate msgpack field (original names, uses Msgpack* types for structs)
|
|
109
|
+
private generateMsgpackField(field: Field): string {
|
|
110
|
+
const tsType = this.mapMsgpackType(field.type);
|
|
111
|
+
return ` ${field.name}: ${tsType};`;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
// Generate public interface
|
|
115
|
+
private generateInterface(struct: Struct): string {
|
|
116
|
+
const tsName = toPascalCase(struct.name);
|
|
117
|
+
const fields = struct.fields.map(f => this.generateField(f)).join('\n');
|
|
118
|
+
|
|
119
|
+
return `export interface ${tsName} {
|
|
120
|
+
${fields}
|
|
121
|
+
}`;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
// Generate msgpack interface (internal)
|
|
125
|
+
private generateMsgpackInterface(struct: Struct): string {
|
|
126
|
+
const tsName = toPascalCase(struct.name);
|
|
127
|
+
const fields = struct.fields.map(f => this.generateMsgpackField(f)).join('\n');
|
|
128
|
+
|
|
129
|
+
return `interface Msgpack${tsName} {
|
|
130
|
+
${fields}
|
|
131
|
+
}`;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
// Generate to* conversion function
|
|
135
|
+
private generateToFunction(struct: Struct): string {
|
|
136
|
+
const tsName = toPascalCase(struct.name);
|
|
137
|
+
|
|
138
|
+
if (struct.fields.length === 0) {
|
|
139
|
+
return `function to${tsName}(o: Msgpack${tsName}): ${tsName} {
|
|
140
|
+
return {};
|
|
141
|
+
}`;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
const checks = struct.fields
|
|
145
|
+
.map(f => ` if (o.${f.name} === undefined) { throw new Error("Expected ${f.name} in ${tsName} deserialization"); }`)
|
|
146
|
+
.join('\n');
|
|
147
|
+
|
|
148
|
+
const conversions = struct.fields
|
|
149
|
+
.map(f => {
|
|
150
|
+
const tsFieldName = toCamelCase(f.name);
|
|
151
|
+
const converter = this.generateToConverter(f.type, `o.${f.name}`);
|
|
152
|
+
return ` ${tsFieldName}: ${converter},`;
|
|
153
|
+
})
|
|
154
|
+
.join('\n');
|
|
155
|
+
|
|
156
|
+
return `function to${tsName}(o: Msgpack${tsName}): ${tsName} {
|
|
157
|
+
${checks};
|
|
158
|
+
return {
|
|
159
|
+
${conversions}
|
|
160
|
+
};
|
|
161
|
+
}`;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
// Generate from* conversion function
|
|
165
|
+
private generateFromFunction(struct: Struct): string {
|
|
166
|
+
const tsName = toPascalCase(struct.name);
|
|
167
|
+
|
|
168
|
+
if (struct.fields.length === 0) {
|
|
169
|
+
return `function from${tsName}(o: ${tsName}): Msgpack${tsName} {
|
|
170
|
+
return {};
|
|
171
|
+
}`;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
const checks = struct.fields
|
|
175
|
+
.map(f => {
|
|
176
|
+
const tsFieldName = toCamelCase(f.name);
|
|
177
|
+
return ` if (o.${tsFieldName} === undefined) { throw new Error("Expected ${tsFieldName} in ${tsName} serialization"); }`;
|
|
178
|
+
})
|
|
179
|
+
.join('\n');
|
|
180
|
+
|
|
181
|
+
const conversions = struct.fields
|
|
182
|
+
.map(f => {
|
|
183
|
+
const tsFieldName = toCamelCase(f.name);
|
|
184
|
+
const converter = this.generateFromConverter(f.type, `o.${tsFieldName}`);
|
|
185
|
+
return ` ${f.name}: ${converter},`;
|
|
186
|
+
})
|
|
187
|
+
.join('\n');
|
|
188
|
+
|
|
189
|
+
return `function from${tsName}(o: ${tsName}): Msgpack${tsName} {
|
|
190
|
+
${checks};
|
|
191
|
+
return {
|
|
192
|
+
${conversions}
|
|
193
|
+
};
|
|
194
|
+
}`;
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
// Generate converter for to* function
|
|
198
|
+
private generateToConverter(type: Type, value: string): string {
|
|
199
|
+
if (!this.needsConversion(type)) {
|
|
200
|
+
return value;
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
switch (type.kind) {
|
|
204
|
+
case 'vector':
|
|
205
|
+
case 'array':
|
|
206
|
+
if (this.needsConversion(type.element!)) {
|
|
207
|
+
return `${value}.map((v: any) => ${this.generateToConverter(type.element!, 'v')})`;
|
|
208
|
+
}
|
|
209
|
+
return value;
|
|
210
|
+
case 'optional':
|
|
211
|
+
if (this.needsConversion(type.element!)) {
|
|
212
|
+
return `${value} !== undefined ? ${this.generateToConverter(type.element!, value)} : undefined`;
|
|
213
|
+
}
|
|
214
|
+
return value;
|
|
215
|
+
case 'struct':
|
|
216
|
+
return `to${toPascalCase(type.struct!.name)}(${value})`;
|
|
217
|
+
}
|
|
218
|
+
return value;
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
// Generate converter for from* function
|
|
222
|
+
private generateFromConverter(type: Type, value: string): string {
|
|
223
|
+
if (!this.needsConversion(type)) {
|
|
224
|
+
return value;
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
switch (type.kind) {
|
|
228
|
+
case 'vector':
|
|
229
|
+
case 'array':
|
|
230
|
+
if (this.needsConversion(type.element!)) {
|
|
231
|
+
return `${value}.map((v: any) => ${this.generateFromConverter(type.element!, 'v')})`;
|
|
232
|
+
}
|
|
233
|
+
return value;
|
|
234
|
+
case 'optional':
|
|
235
|
+
if (this.needsConversion(type.element!)) {
|
|
236
|
+
return `${value} !== undefined ? ${this.generateFromConverter(type.element!, value)} : undefined`;
|
|
237
|
+
}
|
|
238
|
+
return value;
|
|
239
|
+
case 'struct':
|
|
240
|
+
return `from${toPascalCase(type.struct!.name)}(${value})`;
|
|
241
|
+
}
|
|
242
|
+
return value;
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
// Generate types file (api_types.ts)
|
|
246
|
+
generateTypes(schema: CompiledSchema): string {
|
|
247
|
+
const allStructs = [...schema.structs.values(), ...schema.responses.values()];
|
|
248
|
+
|
|
249
|
+
// Public interfaces
|
|
250
|
+
const publicInterfaces = allStructs
|
|
251
|
+
.map(s => this.generateInterface(s))
|
|
252
|
+
.join('\n\n');
|
|
253
|
+
|
|
254
|
+
// Msgpack interfaces
|
|
255
|
+
const msgpackInterfaces = allStructs
|
|
256
|
+
.map(s => this.generateMsgpackInterface(s))
|
|
257
|
+
.join('\n\n');
|
|
258
|
+
|
|
259
|
+
// Conversion functions
|
|
260
|
+
const toFunctions = allStructs
|
|
261
|
+
.map(s => 'export ' + this.generateToFunction(s))
|
|
262
|
+
.join('\n\n');
|
|
263
|
+
|
|
264
|
+
const fromFunctions = allStructs
|
|
265
|
+
.map(s => 'export ' + this.generateFromFunction(s))
|
|
266
|
+
.join('\n\n');
|
|
267
|
+
|
|
268
|
+
// BbApiBase interface
|
|
269
|
+
const apiMethods = schema.commands
|
|
270
|
+
.map(c => ` ${toCamelCase(c.name)}(command: ${toPascalCase(c.name)}): Promise<${toPascalCase(c.responseType)}>;`)
|
|
271
|
+
.join('\n');
|
|
272
|
+
|
|
273
|
+
return `// AUTOGENERATED FILE - DO NOT EDIT
|
|
274
|
+
|
|
275
|
+
// Type aliases for primitive types
|
|
276
|
+
export type Field2 = [Uint8Array, Uint8Array];
|
|
277
|
+
|
|
278
|
+
// Public interfaces (exported)
|
|
279
|
+
${publicInterfaces}
|
|
280
|
+
|
|
281
|
+
// Private Msgpack interfaces (not exported)
|
|
282
|
+
${msgpackInterfaces}
|
|
283
|
+
|
|
284
|
+
// Conversion functions (exported)
|
|
285
|
+
${toFunctions}
|
|
286
|
+
|
|
287
|
+
${fromFunctions}
|
|
288
|
+
|
|
289
|
+
// Base API interface
|
|
290
|
+
export interface BbApiBase {
|
|
291
|
+
${apiMethods}
|
|
292
|
+
destroy(): Promise<void>;
|
|
293
|
+
}
|
|
294
|
+
`;
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
// Generate API method
|
|
298
|
+
private generateAsyncApiMethod(command: Command): string {
|
|
299
|
+
const methodName = toCamelCase(command.name);
|
|
300
|
+
const cmdType = toPascalCase(command.name);
|
|
301
|
+
const respType = toPascalCase(command.responseType);
|
|
302
|
+
|
|
303
|
+
return ` ${methodName}(command: ${cmdType}): Promise<${respType}> {
|
|
304
|
+
const msgpackCommand = from${cmdType}(command);
|
|
305
|
+
return msgpackCall(this.backend, [["${command.name}", msgpackCommand]]).then(([variantName, result]: [string, any]) => {
|
|
306
|
+
if (variantName === 'ErrorResponse') {
|
|
307
|
+
throw new BBApiException(result.message || 'Unknown error from barretenberg');
|
|
308
|
+
}
|
|
309
|
+
if (variantName !== '${command.responseType}') {
|
|
310
|
+
throw new BBApiException(\`Expected variant name '${command.responseType}' but got '\${variantName}'\`);
|
|
311
|
+
}
|
|
312
|
+
return to${respType}(result);
|
|
313
|
+
});
|
|
314
|
+
}`;
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
private generateSyncApiMethod(command: Command): string {
|
|
318
|
+
const methodName = toCamelCase(command.name);
|
|
319
|
+
const cmdType = toPascalCase(command.name);
|
|
320
|
+
const respType = toPascalCase(command.responseType);
|
|
321
|
+
|
|
322
|
+
return ` ${methodName}(command: ${cmdType}): ${respType} {
|
|
323
|
+
const msgpackCommand = from${cmdType}(command);
|
|
324
|
+
const [variantName, result] = msgpackCall(this.backend, [["${command.name}", msgpackCommand]]);
|
|
325
|
+
if (variantName === 'ErrorResponse') {
|
|
326
|
+
throw new BBApiException(result.message || 'Unknown error from barretenberg');
|
|
327
|
+
}
|
|
328
|
+
if (variantName !== '${command.responseType}') {
|
|
329
|
+
throw new BBApiException(\`Expected variant name '${command.responseType}' but got '\${variantName}'\`);
|
|
330
|
+
}
|
|
331
|
+
return to${respType}(result);
|
|
332
|
+
}`;
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
// Generate async API file
|
|
336
|
+
generateAsyncApi(schema: CompiledSchema): string {
|
|
337
|
+
const imports = this.generateApiImports(schema);
|
|
338
|
+
const methods = schema.commands
|
|
339
|
+
.map(c => this.generateAsyncApiMethod(c))
|
|
340
|
+
.join('\n\n');
|
|
341
|
+
|
|
342
|
+
return `// AUTOGENERATED FILE - DO NOT EDIT
|
|
343
|
+
|
|
344
|
+
import { IMsgpackBackendAsync } from '../../bb_backends/interface.js';
|
|
345
|
+
import { Decoder, Encoder } from 'msgpackr';
|
|
346
|
+
import { BBApiException } from '../../bbapi_exception.js';
|
|
347
|
+
${imports}
|
|
348
|
+
|
|
349
|
+
async function msgpackCall(backend: IMsgpackBackendAsync, input: any[]) {
|
|
350
|
+
const inputBuffer = new Encoder({ useRecords: false }).pack(input);
|
|
351
|
+
const encodedResult = await backend.call(inputBuffer);
|
|
352
|
+
return new Decoder({ useRecords: false }).unpack(encodedResult);
|
|
353
|
+
}
|
|
354
|
+
|
|
355
|
+
export class AsyncApi implements BbApiBase {
|
|
356
|
+
constructor(protected backend: IMsgpackBackendAsync) {}
|
|
357
|
+
|
|
358
|
+
${methods}
|
|
359
|
+
|
|
360
|
+
destroy(): Promise<void> {
|
|
361
|
+
return this.backend.destroy ? this.backend.destroy() : Promise.resolve();
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
`;
|
|
365
|
+
}
|
|
366
|
+
|
|
367
|
+
// Generate sync API file
|
|
368
|
+
generateSyncApi(schema: CompiledSchema): string {
|
|
369
|
+
const imports = this.generateApiImports(schema);
|
|
370
|
+
const methods = schema.commands
|
|
371
|
+
.map(c => this.generateSyncApiMethod(c))
|
|
372
|
+
.join('\n\n');
|
|
373
|
+
|
|
374
|
+
return `// AUTOGENERATED FILE - DO NOT EDIT
|
|
375
|
+
|
|
376
|
+
import { IMsgpackBackendSync } from '../../bb_backends/interface.js';
|
|
377
|
+
import { Decoder, Encoder } from 'msgpackr';
|
|
378
|
+
import { BBApiException } from '../../bbapi_exception.js';
|
|
379
|
+
${imports}
|
|
380
|
+
|
|
381
|
+
function msgpackCall(backend: IMsgpackBackendSync, input: any[]) {
|
|
382
|
+
const inputBuffer = new Encoder({ useRecords: false }).pack(input);
|
|
383
|
+
const encodedResult = backend.call(inputBuffer);
|
|
384
|
+
return new Decoder({ useRecords: false }).unpack(encodedResult);
|
|
385
|
+
}
|
|
386
|
+
|
|
387
|
+
export class SyncApi {
|
|
388
|
+
constructor(protected backend: IMsgpackBackendSync) {}
|
|
389
|
+
|
|
390
|
+
${methods}
|
|
391
|
+
|
|
392
|
+
destroy(): void {
|
|
393
|
+
if (this.backend.destroy) this.backend.destroy();
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
`;
|
|
397
|
+
}
|
|
398
|
+
|
|
399
|
+
// Generate import statement for API files
|
|
400
|
+
private generateApiImports(schema: CompiledSchema): string {
|
|
401
|
+
const types = new Set<string>();
|
|
402
|
+
|
|
403
|
+
// Add command types and their conversion functions
|
|
404
|
+
for (const cmd of schema.commands) {
|
|
405
|
+
const cmdType = toPascalCase(cmd.name);
|
|
406
|
+
const respType = toPascalCase(cmd.responseType);
|
|
407
|
+
types.add(cmdType);
|
|
408
|
+
types.add(respType);
|
|
409
|
+
types.add(`from${cmdType}`);
|
|
410
|
+
types.add(`to${respType}`);
|
|
411
|
+
}
|
|
412
|
+
|
|
413
|
+
// Add BbApiBase
|
|
414
|
+
types.add('BbApiBase');
|
|
415
|
+
|
|
416
|
+
const sortedTypes = Array.from(types).sort();
|
|
417
|
+
return `import { ${sortedTypes.join(', ')} } from './api_types.js';`;
|
|
418
|
+
}
|
|
419
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { NetCrs, fetchWithFallback } from './net_crs.js';
|
|
2
|
+
|
|
3
|
+
// Expected first G1 point from BN254 CRS (generator point with x=1, y=2 in big-endian)
|
|
4
|
+
const BN254_G1_FIRST_ELEMENT = new Uint8Array([
|
|
5
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
6
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,
|
|
7
|
+
]);
|
|
8
|
+
|
|
9
|
+
describe('NetCrs', () => {
|
|
10
|
+
it('should download CRS data from primary host', async () => {
|
|
11
|
+
const crs = new NetCrs(1);
|
|
12
|
+
await crs.init();
|
|
13
|
+
|
|
14
|
+
const g1Data = crs.getG1Data();
|
|
15
|
+
expect(g1Data.length).toBe(64); // 1 point * 64 bytes
|
|
16
|
+
|
|
17
|
+
// Verify first point matches expected generator
|
|
18
|
+
expect(g1Data).toEqual(BN254_G1_FIRST_ELEMENT);
|
|
19
|
+
}, 30000);
|
|
20
|
+
|
|
21
|
+
it('should download G2 data', async () => {
|
|
22
|
+
const crs = new NetCrs(1);
|
|
23
|
+
await crs.init();
|
|
24
|
+
|
|
25
|
+
const g2Data = crs.getG2Data();
|
|
26
|
+
expect(g2Data.length).toBe(128); // G2 point is 128 bytes
|
|
27
|
+
}, 30000);
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
describe('fetchWithFallback', () => {
|
|
31
|
+
it('should fallback to secondary URL when primary fails', async () => {
|
|
32
|
+
const badPrimaryUrl = 'https://nonexistent.invalid/g1.dat';
|
|
33
|
+
const goodFallbackUrl = 'https://crs.aztec-labs.com/g1.dat';
|
|
34
|
+
const options: RequestInit = {
|
|
35
|
+
headers: {
|
|
36
|
+
Range: 'bytes=0-63',
|
|
37
|
+
},
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
const response = await fetchWithFallback(badPrimaryUrl, goodFallbackUrl, options);
|
|
41
|
+
expect(response.ok || response.status === 206).toBe(true);
|
|
42
|
+
|
|
43
|
+
const data = new Uint8Array(await response.arrayBuffer());
|
|
44
|
+
expect(data.length).toBe(64);
|
|
45
|
+
expect(data).toEqual(BN254_G1_FIRST_ELEMENT);
|
|
46
|
+
}, 30000);
|
|
47
|
+
});
|