@aztec/bb.js 3.0.0-devnet.2 → 3.0.0-devnet.2-patch.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/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 +30 -39
- package/dest/browser/barretenberg/backend.d.ts.map +1 -1
- package/dest/browser/barretenberg/backend.js +103 -98
- package/dest/browser/barretenberg/index.d.ts +4 -6
- package/dest/browser/barretenberg/index.d.ts.map +1 -1
- package/dest/browser/barretenberg/index.js +20 -29
- 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 +7 -0
- package/dest/browser/bbapi_exception.d.ts.map +1 -0
- package/dest/browser/bbapi_exception.js +14 -0
- 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 +1 -1
- package/dest/browser/cbind/generate.js +93 -1
- package/dest/browser/cbind/generated/api_types.d.ts +632 -400
- package/dest/browser/cbind/generated/api_types.d.ts.map +1 -1
- package/dest/browser/cbind/generated/api_types.js +773 -465
- package/dest/browser/cbind/generated/async.d.ts +16 -11
- package/dest/browser/cbind/generated/async.d.ts.map +1 -1
- package/dest/browser/cbind/generated/async.js +305 -96
- 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 +16 -11
- package/dest/browser/cbind/generated/sync.d.ts.map +1 -1
- package/dest/browser/cbind/generated/sync.js +300 -96
- package/dest/browser/cbind/schema_compiler.d.ts +1 -1
- package/dest/browser/cbind/schema_compiler.d.ts.map +1 -1
- package/dest/browser/cbind/schema_compiler.js +29 -8
- 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 +1 -16
- package/dest/browser/crs/net_crs.d.ts.map +1 -1
- package/dest/browser/crs/net_crs.js +6 -1
- package/dest/browser/index.d.ts +6 -3
- package/dest/browser/index.d.ts.map +1 -1
- package/dest/browser/index.js +5 -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 +30 -39
- package/dest/node/barretenberg/backend.d.ts.map +1 -1
- package/dest/node/barretenberg/backend.js +103 -98
- 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 +4 -6
- package/dest/node/barretenberg/index.d.ts.map +1 -1
- package/dest/node/barretenberg/index.js +20 -29
- 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 +81 -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 +3 -3
- package/dest/node/bb_backends/node/native_shm.d.ts.map +1 -1
- package/dest/node/bb_backends/node/native_shm.js +61 -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 +232 -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 +43 -31
- 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 +7 -0
- package/dest/node/bbapi_exception.d.ts.map +1 -0
- package/dest/node/bbapi_exception.js +14 -0
- 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 +1 -1
- package/dest/node/cbind/generate.js +93 -1
- package/dest/node/cbind/generated/api_types.d.ts +632 -400
- package/dest/node/cbind/generated/api_types.d.ts.map +1 -1
- package/dest/node/cbind/generated/api_types.js +773 -465
- package/dest/node/cbind/generated/async.d.ts +16 -11
- package/dest/node/cbind/generated/async.d.ts.map +1 -1
- package/dest/node/cbind/generated/async.js +305 -96
- 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 +16 -11
- package/dest/node/cbind/generated/sync.d.ts.map +1 -1
- package/dest/node/cbind/generated/sync.js +300 -96
- package/dest/node/cbind/schema_compiler.d.ts +1 -1
- package/dest/node/cbind/schema_compiler.d.ts.map +1 -1
- package/dest/node/cbind/schema_compiler.js +29 -8
- 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 +1 -16
- package/dest/node/crs/net_crs.d.ts.map +1 -1
- package/dest/node/crs/net_crs.js +6 -1
- 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 +6 -3
- package/dest/node/index.d.ts.map +1 -1
- package/dest/node/index.js +5 -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 +30 -39
- package/dest/node-cjs/barretenberg/backend.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg/backend.js +108 -103
- 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 +4 -6
- package/dest/node-cjs/barretenberg/index.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg/index.js +25 -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 -87
- 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 +3 -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 +61 -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 +236 -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 +43 -31
- 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 +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/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 +1 -1
- package/dest/node-cjs/cbind/generate.js +93 -1
- package/dest/node-cjs/cbind/generated/api_types.d.ts +632 -400
- package/dest/node-cjs/cbind/generated/api_types.d.ts.map +1 -1
- package/dest/node-cjs/cbind/generated/api_types.js +843 -507
- package/dest/node-cjs/cbind/generated/async.d.ts +16 -11
- package/dest/node-cjs/cbind/generated/async.d.ts.map +1 -1
- package/dest/node-cjs/cbind/generated/async.js +304 -95
- 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 +16 -11
- package/dest/node-cjs/cbind/generated/sync.d.ts.map +1 -1
- package/dest/node-cjs/cbind/generated/sync.js +299 -95
- package/dest/node-cjs/cbind/schema_compiler.d.ts +1 -1
- package/dest/node-cjs/cbind/schema_compiler.d.ts.map +1 -1
- package/dest/node-cjs/cbind/schema_compiler.js +29 -8
- 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 +1 -16
- package/dest/node-cjs/crs/net_crs.d.ts.map +1 -1
- package/dest/node-cjs/crs/net_crs.js +6 -1
- 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 +6 -3
- package/dest/node-cjs/index.d.ts.map +1 -1
- package/dest/node-cjs/index.js +28 -11
- 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.ts +125 -126
- package/src/barretenberg/blake2s.test.ts +1 -1
- package/src/barretenberg/index.ts +24 -29
- package/src/barretenberg/pedersen.test.ts +1 -1
- package/src/barretenberg/poseidon.bench.test.ts +161 -157
- package/src/barretenberg/poseidon.test.ts +1 -1
- package/src/barretenberg/testing/fields.ts +63 -0
- 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/heap_allocator.ts +4 -4
- package/src/barretenberg_wasm/barretenberg_wasm_main/index.ts +37 -4
- 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 +59 -40
- package/src/bb_backends/node/native_shm_async.ts +261 -0
- package/src/bb_backends/node/native_socket.ts +31 -18
- 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/bbapi_exception.ts +13 -0
- package/src/bin/index.ts +14 -0
- package/src/cbind/generate.ts +99 -0
- package/src/cbind/generated/api_types.ts +1267 -783
- package/src/cbind/generated/async.ts +308 -95
- package/src/cbind/generated/curve_constants.ts +53 -0
- package/src/cbind/generated/sync.ts +303 -95
- package/src/cbind/schema_compiler.ts +25 -3
- package/src/crs/node/index.ts +4 -5
- package/src/index.ts +32 -1
- 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/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/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/index.d.ts +0 -3
- package/dest/browser/serialize/index.d.ts.map +0 -1
- package/dest/browser/serialize/index.js +0 -3
- 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 -43
- package/dest/browser/types/fields.d.ts.map +0 -1
- package/dest/browser/types/fields.js +0 -102
- 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 -16
- package/dest/browser/types/point.d.ts.map +0 -1
- package/dest/browser/types/point.js +0 -31
- 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/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/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/index.d.ts +0 -3
- package/dest/node/serialize/index.d.ts.map +0 -1
- package/dest/node/serialize/index.js +0 -3
- 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 -43
- package/dest/node/types/fields.d.ts.map +0 -1
- package/dest/node/types/fields.js +0 -102
- 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 -16
- package/dest/node/types/point.d.ts.map +0 -1
- package/dest/node/types/point.js +0 -31
- 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/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/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/index.d.ts +0 -3
- package/dest/node-cjs/serialize/index.d.ts.map +0 -1
- package/dest/node-cjs/serialize/index.js +0 -6
- 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 -43
- package/dest/node-cjs/types/fields.d.ts.map +0 -1
- package/dest/node-cjs/types/fields.js +0 -107
- 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 -16
- package/dest/node-cjs/types/point.d.ts.map +0 -1
- package/dest/node-cjs/types/point.js +0 -35
- package/src/bb_backends/sync_to_async_adapter.ts +0 -21
- 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/buffer_reader.ts +0 -85
- package/src/serialize/index.ts +0 -2
- package/src/serialize/serialize.ts +0 -75
- package/src/types/fields.ts +0 -126
- package/src/types/index.ts +0 -2
- package/src/types/point.ts +0 -38
- /package/src/{bigint-array/index.ts → barretenberg/testing/bigint-buffer.ts} +0 -0
|
@@ -120,32 +120,6 @@ export function fromAesEncryptResponse(o) {
|
|
|
120
120
|
ciphertext: o.ciphertext,
|
|
121
121
|
};
|
|
122
122
|
}
|
|
123
|
-
export function toAffineElement(o) {
|
|
124
|
-
if (o.x === undefined) {
|
|
125
|
-
throw new Error("Expected x in AffineElement deserialization");
|
|
126
|
-
}
|
|
127
|
-
if (o.y === undefined) {
|
|
128
|
-
throw new Error("Expected y in AffineElement deserialization");
|
|
129
|
-
}
|
|
130
|
-
;
|
|
131
|
-
return {
|
|
132
|
-
x: o.x,
|
|
133
|
-
y: o.y,
|
|
134
|
-
};
|
|
135
|
-
}
|
|
136
|
-
export function fromAffineElement(o) {
|
|
137
|
-
if (o.x === undefined) {
|
|
138
|
-
throw new Error("Expected x in AffineElement serialization");
|
|
139
|
-
}
|
|
140
|
-
if (o.y === undefined) {
|
|
141
|
-
throw new Error("Expected y in AffineElement serialization");
|
|
142
|
-
}
|
|
143
|
-
;
|
|
144
|
-
return {
|
|
145
|
-
x: o.x,
|
|
146
|
-
y: o.y,
|
|
147
|
-
};
|
|
148
|
-
}
|
|
149
123
|
export function toBlake2s(o) {
|
|
150
124
|
if (o.data === undefined) {
|
|
151
125
|
throw new Error("Expected data in Blake2s deserialization");
|
|
@@ -218,6 +192,50 @@ export function fromBlake2sToFieldResponse(o) {
|
|
|
218
192
|
field: o.field,
|
|
219
193
|
};
|
|
220
194
|
}
|
|
195
|
+
export function toBn254FqSqrt(o) {
|
|
196
|
+
if (o.input === undefined) {
|
|
197
|
+
throw new Error("Expected input in Bn254FqSqrt deserialization");
|
|
198
|
+
}
|
|
199
|
+
;
|
|
200
|
+
return {
|
|
201
|
+
input: o.input,
|
|
202
|
+
};
|
|
203
|
+
}
|
|
204
|
+
export function fromBn254FqSqrt(o) {
|
|
205
|
+
if (o.input === undefined) {
|
|
206
|
+
throw new Error("Expected input in Bn254FqSqrt serialization");
|
|
207
|
+
}
|
|
208
|
+
;
|
|
209
|
+
return {
|
|
210
|
+
input: o.input,
|
|
211
|
+
};
|
|
212
|
+
}
|
|
213
|
+
export function toBn254FqSqrtResponse(o) {
|
|
214
|
+
if (o.is_square_root === undefined) {
|
|
215
|
+
throw new Error("Expected is_square_root in Bn254FqSqrtResponse deserialization");
|
|
216
|
+
}
|
|
217
|
+
if (o.value === undefined) {
|
|
218
|
+
throw new Error("Expected value in Bn254FqSqrtResponse deserialization");
|
|
219
|
+
}
|
|
220
|
+
;
|
|
221
|
+
return {
|
|
222
|
+
isSquareRoot: o.is_square_root,
|
|
223
|
+
value: o.value,
|
|
224
|
+
};
|
|
225
|
+
}
|
|
226
|
+
export function fromBn254FqSqrtResponse(o) {
|
|
227
|
+
if (o.isSquareRoot === undefined) {
|
|
228
|
+
throw new Error("Expected isSquareRoot in Bn254FqSqrtResponse serialization");
|
|
229
|
+
}
|
|
230
|
+
if (o.value === undefined) {
|
|
231
|
+
throw new Error("Expected value in Bn254FqSqrtResponse serialization");
|
|
232
|
+
}
|
|
233
|
+
;
|
|
234
|
+
return {
|
|
235
|
+
is_square_root: o.isSquareRoot,
|
|
236
|
+
value: o.value,
|
|
237
|
+
};
|
|
238
|
+
}
|
|
221
239
|
export function toBn254FrSqrt(o) {
|
|
222
240
|
if (o.input === undefined) {
|
|
223
241
|
throw new Error("Expected input in Bn254FrSqrt deserialization");
|
|
@@ -262,422 +280,266 @@ export function fromBn254FrSqrtResponse(o) {
|
|
|
262
280
|
value: o.value,
|
|
263
281
|
};
|
|
264
282
|
}
|
|
265
|
-
export function
|
|
266
|
-
if (o.
|
|
267
|
-
throw new Error("Expected
|
|
268
|
-
}
|
|
269
|
-
if (o.settings === undefined) {
|
|
270
|
-
throw new Error("Expected settings in CircuitComputeVk deserialization");
|
|
283
|
+
export function toBn254G1FromCompressed(o) {
|
|
284
|
+
if (o.compressed === undefined) {
|
|
285
|
+
throw new Error("Expected compressed in Bn254G1FromCompressed deserialization");
|
|
271
286
|
}
|
|
272
287
|
;
|
|
273
288
|
return {
|
|
274
|
-
|
|
275
|
-
settings: toProofSystemSettings(o.settings),
|
|
289
|
+
compressed: o.compressed,
|
|
276
290
|
};
|
|
277
291
|
}
|
|
278
|
-
export function
|
|
279
|
-
if (o.
|
|
280
|
-
throw new Error("Expected
|
|
281
|
-
}
|
|
282
|
-
if (o.settings === undefined) {
|
|
283
|
-
throw new Error("Expected settings in CircuitComputeVk serialization");
|
|
292
|
+
export function fromBn254G1FromCompressed(o) {
|
|
293
|
+
if (o.compressed === undefined) {
|
|
294
|
+
throw new Error("Expected compressed in Bn254G1FromCompressed serialization");
|
|
284
295
|
}
|
|
285
296
|
;
|
|
286
297
|
return {
|
|
287
|
-
|
|
288
|
-
settings: fromProofSystemSettings(o.settings),
|
|
298
|
+
compressed: o.compressed,
|
|
289
299
|
};
|
|
290
300
|
}
|
|
291
|
-
export function
|
|
292
|
-
if (o.
|
|
293
|
-
throw new Error("Expected
|
|
294
|
-
}
|
|
295
|
-
if (o.fields === undefined) {
|
|
296
|
-
throw new Error("Expected fields in CircuitComputeVkResponse deserialization");
|
|
297
|
-
}
|
|
298
|
-
if (o.hash === undefined) {
|
|
299
|
-
throw new Error("Expected hash in CircuitComputeVkResponse deserialization");
|
|
301
|
+
export function toBn254G1FromCompressedResponse(o) {
|
|
302
|
+
if (o.point === undefined) {
|
|
303
|
+
throw new Error("Expected point in Bn254G1FromCompressedResponse deserialization");
|
|
300
304
|
}
|
|
301
305
|
;
|
|
302
306
|
return {
|
|
303
|
-
|
|
304
|
-
fields: o.fields.map((v) => v),
|
|
305
|
-
hash: o.hash,
|
|
307
|
+
point: toBn254G1Point(o.point),
|
|
306
308
|
};
|
|
307
309
|
}
|
|
308
|
-
export function
|
|
309
|
-
if (o.
|
|
310
|
-
throw new Error("Expected
|
|
311
|
-
}
|
|
312
|
-
if (o.fields === undefined) {
|
|
313
|
-
throw new Error("Expected fields in CircuitComputeVkResponse serialization");
|
|
314
|
-
}
|
|
315
|
-
if (o.hash === undefined) {
|
|
316
|
-
throw new Error("Expected hash in CircuitComputeVkResponse serialization");
|
|
310
|
+
export function fromBn254G1FromCompressedResponse(o) {
|
|
311
|
+
if (o.point === undefined) {
|
|
312
|
+
throw new Error("Expected point in Bn254G1FromCompressedResponse serialization");
|
|
317
313
|
}
|
|
318
314
|
;
|
|
319
315
|
return {
|
|
320
|
-
|
|
321
|
-
fields: o.fields.map((v) => v),
|
|
322
|
-
hash: o.hash,
|
|
316
|
+
point: fromBn254G1Point(o.point),
|
|
323
317
|
};
|
|
324
318
|
}
|
|
325
|
-
export function
|
|
326
|
-
if (o.
|
|
327
|
-
throw new Error("Expected
|
|
328
|
-
}
|
|
329
|
-
if (o.num_gates_dyadic === undefined) {
|
|
330
|
-
throw new Error("Expected num_gates_dyadic in CircuitInfoResponse deserialization");
|
|
331
|
-
}
|
|
332
|
-
if (o.num_acir_opcodes === undefined) {
|
|
333
|
-
throw new Error("Expected num_acir_opcodes in CircuitInfoResponse deserialization");
|
|
334
|
-
}
|
|
335
|
-
if (o.gates_per_opcode === undefined) {
|
|
336
|
-
throw new Error("Expected gates_per_opcode in CircuitInfoResponse deserialization");
|
|
319
|
+
export function toBn254G1IsOnCurve(o) {
|
|
320
|
+
if (o.point === undefined) {
|
|
321
|
+
throw new Error("Expected point in Bn254G1IsOnCurve deserialization");
|
|
337
322
|
}
|
|
338
323
|
;
|
|
339
324
|
return {
|
|
340
|
-
|
|
341
|
-
numGatesDyadic: o.num_gates_dyadic,
|
|
342
|
-
numAcirOpcodes: o.num_acir_opcodes,
|
|
343
|
-
gatesPerOpcode: o.gates_per_opcode.map((v) => v),
|
|
325
|
+
point: toBn254G1Point(o.point),
|
|
344
326
|
};
|
|
345
327
|
}
|
|
346
|
-
export function
|
|
347
|
-
if (o.
|
|
348
|
-
throw new Error("Expected
|
|
349
|
-
}
|
|
350
|
-
if (o.numGatesDyadic === undefined) {
|
|
351
|
-
throw new Error("Expected numGatesDyadic in CircuitInfoResponse serialization");
|
|
352
|
-
}
|
|
353
|
-
if (o.numAcirOpcodes === undefined) {
|
|
354
|
-
throw new Error("Expected numAcirOpcodes in CircuitInfoResponse serialization");
|
|
355
|
-
}
|
|
356
|
-
if (o.gatesPerOpcode === undefined) {
|
|
357
|
-
throw new Error("Expected gatesPerOpcode in CircuitInfoResponse serialization");
|
|
328
|
+
export function fromBn254G1IsOnCurve(o) {
|
|
329
|
+
if (o.point === undefined) {
|
|
330
|
+
throw new Error("Expected point in Bn254G1IsOnCurve serialization");
|
|
358
331
|
}
|
|
359
332
|
;
|
|
360
333
|
return {
|
|
361
|
-
|
|
362
|
-
num_gates_dyadic: o.numGatesDyadic,
|
|
363
|
-
num_acir_opcodes: o.numAcirOpcodes,
|
|
364
|
-
gates_per_opcode: o.gatesPerOpcode.map((v) => v),
|
|
334
|
+
point: fromBn254G1Point(o.point),
|
|
365
335
|
};
|
|
366
336
|
}
|
|
367
|
-
export function
|
|
368
|
-
if (o.
|
|
369
|
-
throw new Error("Expected
|
|
370
|
-
}
|
|
371
|
-
if (o.bytecode === undefined) {
|
|
372
|
-
throw new Error("Expected bytecode in CircuitInput deserialization");
|
|
373
|
-
}
|
|
374
|
-
if (o.verification_key === undefined) {
|
|
375
|
-
throw new Error("Expected verification_key in CircuitInput deserialization");
|
|
337
|
+
export function toBn254G1IsOnCurveResponse(o) {
|
|
338
|
+
if (o.is_on_curve === undefined) {
|
|
339
|
+
throw new Error("Expected is_on_curve in Bn254G1IsOnCurveResponse deserialization");
|
|
376
340
|
}
|
|
377
341
|
;
|
|
378
342
|
return {
|
|
379
|
-
|
|
380
|
-
bytecode: o.bytecode,
|
|
381
|
-
verificationKey: o.verification_key,
|
|
343
|
+
isOnCurve: o.is_on_curve,
|
|
382
344
|
};
|
|
383
345
|
}
|
|
384
|
-
export function
|
|
385
|
-
if (o.
|
|
386
|
-
throw new Error("Expected
|
|
387
|
-
}
|
|
388
|
-
if (o.bytecode === undefined) {
|
|
389
|
-
throw new Error("Expected bytecode in CircuitInput serialization");
|
|
390
|
-
}
|
|
391
|
-
if (o.verificationKey === undefined) {
|
|
392
|
-
throw new Error("Expected verificationKey in CircuitInput serialization");
|
|
346
|
+
export function fromBn254G1IsOnCurveResponse(o) {
|
|
347
|
+
if (o.isOnCurve === undefined) {
|
|
348
|
+
throw new Error("Expected isOnCurve in Bn254G1IsOnCurveResponse serialization");
|
|
393
349
|
}
|
|
394
350
|
;
|
|
395
351
|
return {
|
|
396
|
-
|
|
397
|
-
bytecode: o.bytecode,
|
|
398
|
-
verification_key: o.verificationKey,
|
|
352
|
+
is_on_curve: o.isOnCurve,
|
|
399
353
|
};
|
|
400
354
|
}
|
|
401
|
-
export function
|
|
402
|
-
if (o.
|
|
403
|
-
throw new Error("Expected
|
|
355
|
+
export function toBn254G1Mul(o) {
|
|
356
|
+
if (o.point === undefined) {
|
|
357
|
+
throw new Error("Expected point in Bn254G1Mul deserialization");
|
|
404
358
|
}
|
|
405
|
-
if (o.
|
|
406
|
-
throw new Error("Expected
|
|
359
|
+
if (o.scalar === undefined) {
|
|
360
|
+
throw new Error("Expected scalar in Bn254G1Mul deserialization");
|
|
407
361
|
}
|
|
408
362
|
;
|
|
409
363
|
return {
|
|
410
|
-
|
|
411
|
-
|
|
364
|
+
point: toBn254G1Point(o.point),
|
|
365
|
+
scalar: o.scalar,
|
|
412
366
|
};
|
|
413
367
|
}
|
|
414
|
-
export function
|
|
415
|
-
if (o.
|
|
416
|
-
throw new Error("Expected
|
|
368
|
+
export function fromBn254G1Mul(o) {
|
|
369
|
+
if (o.point === undefined) {
|
|
370
|
+
throw new Error("Expected point in Bn254G1Mul serialization");
|
|
417
371
|
}
|
|
418
|
-
if (o.
|
|
419
|
-
throw new Error("Expected
|
|
372
|
+
if (o.scalar === undefined) {
|
|
373
|
+
throw new Error("Expected scalar in Bn254G1Mul serialization");
|
|
420
374
|
}
|
|
421
375
|
;
|
|
422
376
|
return {
|
|
423
|
-
|
|
424
|
-
|
|
377
|
+
point: fromBn254G1Point(o.point),
|
|
378
|
+
scalar: o.scalar,
|
|
425
379
|
};
|
|
426
380
|
}
|
|
427
|
-
export function
|
|
428
|
-
if (o.
|
|
429
|
-
throw new Error("Expected
|
|
430
|
-
}
|
|
431
|
-
if (o.witness === undefined) {
|
|
432
|
-
throw new Error("Expected witness in CircuitProve deserialization");
|
|
433
|
-
}
|
|
434
|
-
if (o.settings === undefined) {
|
|
435
|
-
throw new Error("Expected settings in CircuitProve deserialization");
|
|
381
|
+
export function toBn254G1MulResponse(o) {
|
|
382
|
+
if (o.point === undefined) {
|
|
383
|
+
throw new Error("Expected point in Bn254G1MulResponse deserialization");
|
|
436
384
|
}
|
|
437
385
|
;
|
|
438
386
|
return {
|
|
439
|
-
|
|
440
|
-
witness: o.witness,
|
|
441
|
-
settings: toProofSystemSettings(o.settings),
|
|
387
|
+
point: toBn254G1Point(o.point),
|
|
442
388
|
};
|
|
443
389
|
}
|
|
444
|
-
export function
|
|
445
|
-
if (o.
|
|
446
|
-
throw new Error("Expected
|
|
447
|
-
}
|
|
448
|
-
if (o.witness === undefined) {
|
|
449
|
-
throw new Error("Expected witness in CircuitProve serialization");
|
|
450
|
-
}
|
|
451
|
-
if (o.settings === undefined) {
|
|
452
|
-
throw new Error("Expected settings in CircuitProve serialization");
|
|
390
|
+
export function fromBn254G1MulResponse(o) {
|
|
391
|
+
if (o.point === undefined) {
|
|
392
|
+
throw new Error("Expected point in Bn254G1MulResponse serialization");
|
|
453
393
|
}
|
|
454
394
|
;
|
|
455
395
|
return {
|
|
456
|
-
|
|
457
|
-
witness: o.witness,
|
|
458
|
-
settings: fromProofSystemSettings(o.settings),
|
|
396
|
+
point: fromBn254G1Point(o.point),
|
|
459
397
|
};
|
|
460
398
|
}
|
|
461
|
-
export function
|
|
462
|
-
if (o.
|
|
463
|
-
throw new Error("Expected
|
|
464
|
-
}
|
|
465
|
-
if (o.proof === undefined) {
|
|
466
|
-
throw new Error("Expected proof in CircuitProveResponse deserialization");
|
|
399
|
+
export function toBn254G1Point(o) {
|
|
400
|
+
if (o.x === undefined) {
|
|
401
|
+
throw new Error("Expected x in Bn254G1Point deserialization");
|
|
467
402
|
}
|
|
468
|
-
if (o.
|
|
469
|
-
throw new Error("Expected
|
|
403
|
+
if (o.y === undefined) {
|
|
404
|
+
throw new Error("Expected y in Bn254G1Point deserialization");
|
|
470
405
|
}
|
|
471
406
|
;
|
|
472
407
|
return {
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
vk: toCircuitComputeVkResponse(o.vk),
|
|
408
|
+
x: o.x,
|
|
409
|
+
y: o.y,
|
|
476
410
|
};
|
|
477
411
|
}
|
|
478
|
-
export function
|
|
479
|
-
if (o.
|
|
480
|
-
throw new Error("Expected
|
|
481
|
-
}
|
|
482
|
-
if (o.proof === undefined) {
|
|
483
|
-
throw new Error("Expected proof in CircuitProveResponse serialization");
|
|
412
|
+
export function fromBn254G1Point(o) {
|
|
413
|
+
if (o.x === undefined) {
|
|
414
|
+
throw new Error("Expected x in Bn254G1Point serialization");
|
|
484
415
|
}
|
|
485
|
-
if (o.
|
|
486
|
-
throw new Error("Expected
|
|
416
|
+
if (o.y === undefined) {
|
|
417
|
+
throw new Error("Expected y in Bn254G1Point serialization");
|
|
487
418
|
}
|
|
488
419
|
;
|
|
489
420
|
return {
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
vk: fromCircuitComputeVkResponse(o.vk),
|
|
421
|
+
x: o.x,
|
|
422
|
+
y: o.y,
|
|
493
423
|
};
|
|
494
424
|
}
|
|
495
|
-
export function
|
|
496
|
-
if (o.
|
|
497
|
-
throw new Error("Expected
|
|
498
|
-
}
|
|
499
|
-
if (o.include_gates_per_opcode === undefined) {
|
|
500
|
-
throw new Error("Expected include_gates_per_opcode in CircuitStats deserialization");
|
|
425
|
+
export function toBn254G2Mul(o) {
|
|
426
|
+
if (o.point === undefined) {
|
|
427
|
+
throw new Error("Expected point in Bn254G2Mul deserialization");
|
|
501
428
|
}
|
|
502
|
-
if (o.
|
|
503
|
-
throw new Error("Expected
|
|
429
|
+
if (o.scalar === undefined) {
|
|
430
|
+
throw new Error("Expected scalar in Bn254G2Mul deserialization");
|
|
504
431
|
}
|
|
505
432
|
;
|
|
506
433
|
return {
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
settings: toProofSystemSettings(o.settings),
|
|
434
|
+
point: toBn254G2Point(o.point),
|
|
435
|
+
scalar: o.scalar,
|
|
510
436
|
};
|
|
511
437
|
}
|
|
512
|
-
export function
|
|
513
|
-
if (o.
|
|
514
|
-
throw new Error("Expected
|
|
515
|
-
}
|
|
516
|
-
if (o.includeGatesPerOpcode === undefined) {
|
|
517
|
-
throw new Error("Expected includeGatesPerOpcode in CircuitStats serialization");
|
|
438
|
+
export function fromBn254G2Mul(o) {
|
|
439
|
+
if (o.point === undefined) {
|
|
440
|
+
throw new Error("Expected point in Bn254G2Mul serialization");
|
|
518
441
|
}
|
|
519
|
-
if (o.
|
|
520
|
-
throw new Error("Expected
|
|
442
|
+
if (o.scalar === undefined) {
|
|
443
|
+
throw new Error("Expected scalar in Bn254G2Mul serialization");
|
|
521
444
|
}
|
|
522
445
|
;
|
|
523
446
|
return {
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
settings: fromProofSystemSettings(o.settings),
|
|
527
|
-
};
|
|
528
|
-
}
|
|
529
|
-
export function toCircuitVerify(o) {
|
|
530
|
-
if (o.verification_key === undefined) {
|
|
531
|
-
throw new Error("Expected verification_key in CircuitVerify deserialization");
|
|
532
|
-
}
|
|
533
|
-
if (o.public_inputs === undefined) {
|
|
534
|
-
throw new Error("Expected public_inputs in CircuitVerify deserialization");
|
|
535
|
-
}
|
|
536
|
-
if (o.proof === undefined) {
|
|
537
|
-
throw new Error("Expected proof in CircuitVerify deserialization");
|
|
538
|
-
}
|
|
539
|
-
if (o.settings === undefined) {
|
|
540
|
-
throw new Error("Expected settings in CircuitVerify deserialization");
|
|
541
|
-
}
|
|
542
|
-
;
|
|
543
|
-
return {
|
|
544
|
-
verificationKey: o.verification_key,
|
|
545
|
-
publicInputs: o.public_inputs.map((v) => v),
|
|
546
|
-
proof: o.proof.map((v) => v),
|
|
547
|
-
settings: toProofSystemSettings(o.settings),
|
|
548
|
-
};
|
|
549
|
-
}
|
|
550
|
-
export function fromCircuitVerify(o) {
|
|
551
|
-
if (o.verificationKey === undefined) {
|
|
552
|
-
throw new Error("Expected verificationKey in CircuitVerify serialization");
|
|
553
|
-
}
|
|
554
|
-
if (o.publicInputs === undefined) {
|
|
555
|
-
throw new Error("Expected publicInputs in CircuitVerify serialization");
|
|
556
|
-
}
|
|
557
|
-
if (o.proof === undefined) {
|
|
558
|
-
throw new Error("Expected proof in CircuitVerify serialization");
|
|
559
|
-
}
|
|
560
|
-
if (o.settings === undefined) {
|
|
561
|
-
throw new Error("Expected settings in CircuitVerify serialization");
|
|
562
|
-
}
|
|
563
|
-
;
|
|
564
|
-
return {
|
|
565
|
-
verification_key: o.verificationKey,
|
|
566
|
-
public_inputs: o.publicInputs.map((v) => v),
|
|
567
|
-
proof: o.proof.map((v) => v),
|
|
568
|
-
settings: fromProofSystemSettings(o.settings),
|
|
569
|
-
};
|
|
570
|
-
}
|
|
571
|
-
export function toCircuitVerifyResponse(o) {
|
|
572
|
-
if (o.verified === undefined) {
|
|
573
|
-
throw new Error("Expected verified in CircuitVerifyResponse deserialization");
|
|
574
|
-
}
|
|
575
|
-
;
|
|
576
|
-
return {
|
|
577
|
-
verified: o.verified,
|
|
447
|
+
point: fromBn254G2Point(o.point),
|
|
448
|
+
scalar: o.scalar,
|
|
578
449
|
};
|
|
579
450
|
}
|
|
580
|
-
export function
|
|
581
|
-
if (o.
|
|
582
|
-
throw new Error("Expected
|
|
451
|
+
export function toBn254G2MulResponse(o) {
|
|
452
|
+
if (o.point === undefined) {
|
|
453
|
+
throw new Error("Expected point in Bn254G2MulResponse deserialization");
|
|
583
454
|
}
|
|
584
455
|
;
|
|
585
456
|
return {
|
|
586
|
-
|
|
457
|
+
point: toBn254G2Point(o.point),
|
|
587
458
|
};
|
|
588
459
|
}
|
|
589
|
-
export function
|
|
590
|
-
if (o.
|
|
591
|
-
throw new Error("Expected
|
|
592
|
-
}
|
|
593
|
-
if (o.settings === undefined) {
|
|
594
|
-
throw new Error("Expected settings in CircuitWriteSolidityVerifier deserialization");
|
|
460
|
+
export function fromBn254G2MulResponse(o) {
|
|
461
|
+
if (o.point === undefined) {
|
|
462
|
+
throw new Error("Expected point in Bn254G2MulResponse serialization");
|
|
595
463
|
}
|
|
596
464
|
;
|
|
597
465
|
return {
|
|
598
|
-
|
|
599
|
-
settings: toProofSystemSettings(o.settings),
|
|
466
|
+
point: fromBn254G2Point(o.point),
|
|
600
467
|
};
|
|
601
468
|
}
|
|
602
|
-
export function
|
|
603
|
-
if (o.
|
|
604
|
-
throw new Error("Expected
|
|
469
|
+
export function toBn254G2Point(o) {
|
|
470
|
+
if (o.x === undefined) {
|
|
471
|
+
throw new Error("Expected x in Bn254G2Point deserialization");
|
|
605
472
|
}
|
|
606
|
-
if (o.
|
|
607
|
-
throw new Error("Expected
|
|
473
|
+
if (o.y === undefined) {
|
|
474
|
+
throw new Error("Expected y in Bn254G2Point deserialization");
|
|
608
475
|
}
|
|
609
476
|
;
|
|
610
477
|
return {
|
|
611
|
-
|
|
612
|
-
|
|
478
|
+
x: o.x,
|
|
479
|
+
y: o.y,
|
|
613
480
|
};
|
|
614
481
|
}
|
|
615
|
-
export function
|
|
616
|
-
if (o.
|
|
617
|
-
throw new Error("Expected
|
|
482
|
+
export function fromBn254G2Point(o) {
|
|
483
|
+
if (o.x === undefined) {
|
|
484
|
+
throw new Error("Expected x in Bn254G2Point serialization");
|
|
618
485
|
}
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
solidityCode: o.solidity_code,
|
|
622
|
-
};
|
|
623
|
-
}
|
|
624
|
-
export function fromCircuitWriteSolidityVerifierResponse(o) {
|
|
625
|
-
if (o.solidityCode === undefined) {
|
|
626
|
-
throw new Error("Expected solidityCode in CircuitWriteSolidityVerifierResponse serialization");
|
|
486
|
+
if (o.y === undefined) {
|
|
487
|
+
throw new Error("Expected y in Bn254G2Point serialization");
|
|
627
488
|
}
|
|
628
489
|
;
|
|
629
490
|
return {
|
|
630
|
-
|
|
491
|
+
x: o.x,
|
|
492
|
+
y: o.y,
|
|
631
493
|
};
|
|
632
494
|
}
|
|
633
|
-
export function
|
|
495
|
+
export function toChonkAccumulate(o) {
|
|
634
496
|
if (o.witness === undefined) {
|
|
635
|
-
throw new Error("Expected witness in
|
|
497
|
+
throw new Error("Expected witness in ChonkAccumulate deserialization");
|
|
636
498
|
}
|
|
637
499
|
;
|
|
638
500
|
return {
|
|
639
501
|
witness: o.witness,
|
|
640
502
|
};
|
|
641
503
|
}
|
|
642
|
-
export function
|
|
504
|
+
export function fromChonkAccumulate(o) {
|
|
643
505
|
if (o.witness === undefined) {
|
|
644
|
-
throw new Error("Expected witness in
|
|
506
|
+
throw new Error("Expected witness in ChonkAccumulate serialization");
|
|
645
507
|
}
|
|
646
508
|
;
|
|
647
509
|
return {
|
|
648
510
|
witness: o.witness,
|
|
649
511
|
};
|
|
650
512
|
}
|
|
651
|
-
export function
|
|
513
|
+
export function toChonkAccumulateResponse(o) {
|
|
652
514
|
return {};
|
|
653
515
|
}
|
|
654
|
-
export function
|
|
516
|
+
export function fromChonkAccumulateResponse(o) {
|
|
655
517
|
return {};
|
|
656
518
|
}
|
|
657
|
-
export function
|
|
519
|
+
export function toChonkCheckPrecomputedVk(o) {
|
|
658
520
|
if (o.circuit === undefined) {
|
|
659
|
-
throw new Error("Expected circuit in
|
|
521
|
+
throw new Error("Expected circuit in ChonkCheckPrecomputedVk deserialization");
|
|
660
522
|
}
|
|
661
523
|
;
|
|
662
524
|
return {
|
|
663
525
|
circuit: toCircuitInput(o.circuit),
|
|
664
526
|
};
|
|
665
527
|
}
|
|
666
|
-
export function
|
|
528
|
+
export function fromChonkCheckPrecomputedVk(o) {
|
|
667
529
|
if (o.circuit === undefined) {
|
|
668
|
-
throw new Error("Expected circuit in
|
|
530
|
+
throw new Error("Expected circuit in ChonkCheckPrecomputedVk serialization");
|
|
669
531
|
}
|
|
670
532
|
;
|
|
671
533
|
return {
|
|
672
534
|
circuit: fromCircuitInput(o.circuit),
|
|
673
535
|
};
|
|
674
536
|
}
|
|
675
|
-
export function
|
|
537
|
+
export function toChonkCheckPrecomputedVkResponse(o) {
|
|
676
538
|
if (o.valid === undefined) {
|
|
677
|
-
throw new Error("Expected valid in
|
|
539
|
+
throw new Error("Expected valid in ChonkCheckPrecomputedVkResponse deserialization");
|
|
678
540
|
}
|
|
679
541
|
if (o.actual_vk === undefined) {
|
|
680
|
-
throw new Error("Expected actual_vk in
|
|
542
|
+
throw new Error("Expected actual_vk in ChonkCheckPrecomputedVkResponse deserialization");
|
|
681
543
|
}
|
|
682
544
|
;
|
|
683
545
|
return {
|
|
@@ -685,12 +547,12 @@ export function toClientIvcCheckPrecomputedVkResponse(o) {
|
|
|
685
547
|
actualVk: o.actual_vk,
|
|
686
548
|
};
|
|
687
549
|
}
|
|
688
|
-
export function
|
|
550
|
+
export function fromChonkCheckPrecomputedVkResponse(o) {
|
|
689
551
|
if (o.valid === undefined) {
|
|
690
|
-
throw new Error("Expected valid in
|
|
552
|
+
throw new Error("Expected valid in ChonkCheckPrecomputedVkResponse serialization");
|
|
691
553
|
}
|
|
692
554
|
if (o.actualVk === undefined) {
|
|
693
|
-
throw new Error("Expected actualVk in
|
|
555
|
+
throw new Error("Expected actualVk in ChonkCheckPrecomputedVkResponse serialization");
|
|
694
556
|
}
|
|
695
557
|
;
|
|
696
558
|
return {
|
|
@@ -698,66 +560,66 @@ export function fromClientIvcCheckPrecomputedVkResponse(o) {
|
|
|
698
560
|
actual_vk: o.actualVk,
|
|
699
561
|
};
|
|
700
562
|
}
|
|
701
|
-
export function
|
|
563
|
+
export function toChonkComputeIvcVk(o) {
|
|
702
564
|
if (o.circuit === undefined) {
|
|
703
|
-
throw new Error("Expected circuit in
|
|
565
|
+
throw new Error("Expected circuit in ChonkComputeIvcVk deserialization");
|
|
704
566
|
}
|
|
705
567
|
;
|
|
706
568
|
return {
|
|
707
569
|
circuit: toCircuitInputNoVK(o.circuit),
|
|
708
570
|
};
|
|
709
571
|
}
|
|
710
|
-
export function
|
|
572
|
+
export function fromChonkComputeIvcVk(o) {
|
|
711
573
|
if (o.circuit === undefined) {
|
|
712
|
-
throw new Error("Expected circuit in
|
|
574
|
+
throw new Error("Expected circuit in ChonkComputeIvcVk serialization");
|
|
713
575
|
}
|
|
714
576
|
;
|
|
715
577
|
return {
|
|
716
578
|
circuit: fromCircuitInputNoVK(o.circuit),
|
|
717
579
|
};
|
|
718
580
|
}
|
|
719
|
-
export function
|
|
581
|
+
export function toChonkComputeIvcVkResponse(o) {
|
|
720
582
|
if (o.bytes === undefined) {
|
|
721
|
-
throw new Error("Expected bytes in
|
|
583
|
+
throw new Error("Expected bytes in ChonkComputeIvcVkResponse deserialization");
|
|
722
584
|
}
|
|
723
585
|
;
|
|
724
586
|
return {
|
|
725
587
|
bytes: o.bytes,
|
|
726
588
|
};
|
|
727
589
|
}
|
|
728
|
-
export function
|
|
590
|
+
export function fromChonkComputeIvcVkResponse(o) {
|
|
729
591
|
if (o.bytes === undefined) {
|
|
730
|
-
throw new Error("Expected bytes in
|
|
592
|
+
throw new Error("Expected bytes in ChonkComputeIvcVkResponse serialization");
|
|
731
593
|
}
|
|
732
594
|
;
|
|
733
595
|
return {
|
|
734
596
|
bytes: o.bytes,
|
|
735
597
|
};
|
|
736
598
|
}
|
|
737
|
-
export function
|
|
599
|
+
export function toChonkComputeStandaloneVk(o) {
|
|
738
600
|
if (o.circuit === undefined) {
|
|
739
|
-
throw new Error("Expected circuit in
|
|
601
|
+
throw new Error("Expected circuit in ChonkComputeStandaloneVk deserialization");
|
|
740
602
|
}
|
|
741
603
|
;
|
|
742
604
|
return {
|
|
743
605
|
circuit: toCircuitInputNoVK(o.circuit),
|
|
744
606
|
};
|
|
745
607
|
}
|
|
746
|
-
export function
|
|
608
|
+
export function fromChonkComputeStandaloneVk(o) {
|
|
747
609
|
if (o.circuit === undefined) {
|
|
748
|
-
throw new Error("Expected circuit in
|
|
610
|
+
throw new Error("Expected circuit in ChonkComputeStandaloneVk serialization");
|
|
749
611
|
}
|
|
750
612
|
;
|
|
751
613
|
return {
|
|
752
614
|
circuit: fromCircuitInputNoVK(o.circuit),
|
|
753
615
|
};
|
|
754
616
|
}
|
|
755
|
-
export function
|
|
617
|
+
export function toChonkComputeStandaloneVkResponse(o) {
|
|
756
618
|
if (o.bytes === undefined) {
|
|
757
|
-
throw new Error("Expected bytes in
|
|
619
|
+
throw new Error("Expected bytes in ChonkComputeStandaloneVkResponse deserialization");
|
|
758
620
|
}
|
|
759
621
|
if (o.fields === undefined) {
|
|
760
|
-
throw new Error("Expected fields in
|
|
622
|
+
throw new Error("Expected fields in ChonkComputeStandaloneVkResponse deserialization");
|
|
761
623
|
}
|
|
762
624
|
;
|
|
763
625
|
return {
|
|
@@ -765,12 +627,12 @@ export function toClientIvcComputeStandaloneVkResponse(o) {
|
|
|
765
627
|
fields: o.fields.map((v) => v),
|
|
766
628
|
};
|
|
767
629
|
}
|
|
768
|
-
export function
|
|
630
|
+
export function fromChonkComputeStandaloneVkResponse(o) {
|
|
769
631
|
if (o.bytes === undefined) {
|
|
770
|
-
throw new Error("Expected bytes in
|
|
632
|
+
throw new Error("Expected bytes in ChonkComputeStandaloneVkResponse serialization");
|
|
771
633
|
}
|
|
772
634
|
if (o.fields === undefined) {
|
|
773
|
-
throw new Error("Expected fields in
|
|
635
|
+
throw new Error("Expected fields in ChonkComputeStandaloneVkResponse serialization");
|
|
774
636
|
}
|
|
775
637
|
;
|
|
776
638
|
return {
|
|
@@ -778,36 +640,36 @@ export function fromClientIvcComputeStandaloneVkResponse(o) {
|
|
|
778
640
|
fields: o.fields.map((v) => v),
|
|
779
641
|
};
|
|
780
642
|
}
|
|
781
|
-
export function
|
|
643
|
+
export function toChonkLoad(o) {
|
|
782
644
|
if (o.circuit === undefined) {
|
|
783
|
-
throw new Error("Expected circuit in
|
|
645
|
+
throw new Error("Expected circuit in ChonkLoad deserialization");
|
|
784
646
|
}
|
|
785
647
|
;
|
|
786
648
|
return {
|
|
787
649
|
circuit: toCircuitInput(o.circuit),
|
|
788
650
|
};
|
|
789
651
|
}
|
|
790
|
-
export function
|
|
652
|
+
export function fromChonkLoad(o) {
|
|
791
653
|
if (o.circuit === undefined) {
|
|
792
|
-
throw new Error("Expected circuit in
|
|
654
|
+
throw new Error("Expected circuit in ChonkLoad serialization");
|
|
793
655
|
}
|
|
794
656
|
;
|
|
795
657
|
return {
|
|
796
658
|
circuit: fromCircuitInput(o.circuit),
|
|
797
659
|
};
|
|
798
660
|
}
|
|
799
|
-
export function
|
|
661
|
+
export function toChonkLoadResponse(o) {
|
|
800
662
|
return {};
|
|
801
663
|
}
|
|
802
|
-
export function
|
|
664
|
+
export function fromChonkLoadResponse(o) {
|
|
803
665
|
return {};
|
|
804
666
|
}
|
|
805
|
-
export function
|
|
667
|
+
export function toChonkProof(o) {
|
|
806
668
|
if (o.mega_proof === undefined) {
|
|
807
|
-
throw new Error("Expected mega_proof in
|
|
669
|
+
throw new Error("Expected mega_proof in ChonkProof deserialization");
|
|
808
670
|
}
|
|
809
671
|
if (o.goblin_proof === undefined) {
|
|
810
|
-
throw new Error("Expected goblin_proof in
|
|
672
|
+
throw new Error("Expected goblin_proof in ChonkProof deserialization");
|
|
811
673
|
}
|
|
812
674
|
;
|
|
813
675
|
return {
|
|
@@ -815,195 +677,537 @@ export function toClientIVCProof(o) {
|
|
|
815
677
|
goblinProof: toGoblinProof(o.goblin_proof),
|
|
816
678
|
};
|
|
817
679
|
}
|
|
818
|
-
export function
|
|
680
|
+
export function fromChonkProof(o) {
|
|
819
681
|
if (o.megaProof === undefined) {
|
|
820
|
-
throw new Error("Expected megaProof in
|
|
682
|
+
throw new Error("Expected megaProof in ChonkProof serialization");
|
|
821
683
|
}
|
|
822
684
|
if (o.goblinProof === undefined) {
|
|
823
|
-
throw new Error("Expected goblinProof in
|
|
685
|
+
throw new Error("Expected goblinProof in ChonkProof serialization");
|
|
686
|
+
}
|
|
687
|
+
;
|
|
688
|
+
return {
|
|
689
|
+
mega_proof: o.megaProof.map((v) => v),
|
|
690
|
+
goblin_proof: fromGoblinProof(o.goblinProof),
|
|
691
|
+
};
|
|
692
|
+
}
|
|
693
|
+
export function toChonkProve(o) {
|
|
694
|
+
return {};
|
|
695
|
+
}
|
|
696
|
+
export function fromChonkProve(o) {
|
|
697
|
+
return {};
|
|
698
|
+
}
|
|
699
|
+
export function toChonkProveResponse(o) {
|
|
700
|
+
if (o.proof === undefined) {
|
|
701
|
+
throw new Error("Expected proof in ChonkProveResponse deserialization");
|
|
702
|
+
}
|
|
703
|
+
;
|
|
704
|
+
return {
|
|
705
|
+
proof: toChonkProof(o.proof),
|
|
706
|
+
};
|
|
707
|
+
}
|
|
708
|
+
export function fromChonkProveResponse(o) {
|
|
709
|
+
if (o.proof === undefined) {
|
|
710
|
+
throw new Error("Expected proof in ChonkProveResponse serialization");
|
|
711
|
+
}
|
|
712
|
+
;
|
|
713
|
+
return {
|
|
714
|
+
proof: fromChonkProof(o.proof),
|
|
715
|
+
};
|
|
716
|
+
}
|
|
717
|
+
export function toChonkStart(o) {
|
|
718
|
+
if (o.num_circuits === undefined) {
|
|
719
|
+
throw new Error("Expected num_circuits in ChonkStart deserialization");
|
|
720
|
+
}
|
|
721
|
+
;
|
|
722
|
+
return {
|
|
723
|
+
numCircuits: o.num_circuits,
|
|
724
|
+
};
|
|
725
|
+
}
|
|
726
|
+
export function fromChonkStart(o) {
|
|
727
|
+
if (o.numCircuits === undefined) {
|
|
728
|
+
throw new Error("Expected numCircuits in ChonkStart serialization");
|
|
729
|
+
}
|
|
730
|
+
;
|
|
731
|
+
return {
|
|
732
|
+
num_circuits: o.numCircuits,
|
|
733
|
+
};
|
|
734
|
+
}
|
|
735
|
+
export function toChonkStartResponse(o) {
|
|
736
|
+
return {};
|
|
737
|
+
}
|
|
738
|
+
export function fromChonkStartResponse(o) {
|
|
739
|
+
return {};
|
|
740
|
+
}
|
|
741
|
+
export function toChonkStats(o) {
|
|
742
|
+
if (o.circuit === undefined) {
|
|
743
|
+
throw new Error("Expected circuit in ChonkStats deserialization");
|
|
744
|
+
}
|
|
745
|
+
if (o.include_gates_per_opcode === undefined) {
|
|
746
|
+
throw new Error("Expected include_gates_per_opcode in ChonkStats deserialization");
|
|
747
|
+
}
|
|
748
|
+
;
|
|
749
|
+
return {
|
|
750
|
+
circuit: toCircuitInputNoVK(o.circuit),
|
|
751
|
+
includeGatesPerOpcode: o.include_gates_per_opcode,
|
|
752
|
+
};
|
|
753
|
+
}
|
|
754
|
+
export function fromChonkStats(o) {
|
|
755
|
+
if (o.circuit === undefined) {
|
|
756
|
+
throw new Error("Expected circuit in ChonkStats serialization");
|
|
757
|
+
}
|
|
758
|
+
if (o.includeGatesPerOpcode === undefined) {
|
|
759
|
+
throw new Error("Expected includeGatesPerOpcode in ChonkStats serialization");
|
|
760
|
+
}
|
|
761
|
+
;
|
|
762
|
+
return {
|
|
763
|
+
circuit: fromCircuitInputNoVK(o.circuit),
|
|
764
|
+
include_gates_per_opcode: o.includeGatesPerOpcode,
|
|
765
|
+
};
|
|
766
|
+
}
|
|
767
|
+
export function toChonkStatsResponse(o) {
|
|
768
|
+
if (o.acir_opcodes === undefined) {
|
|
769
|
+
throw new Error("Expected acir_opcodes in ChonkStatsResponse deserialization");
|
|
770
|
+
}
|
|
771
|
+
if (o.circuit_size === undefined) {
|
|
772
|
+
throw new Error("Expected circuit_size in ChonkStatsResponse deserialization");
|
|
773
|
+
}
|
|
774
|
+
if (o.gates_per_opcode === undefined) {
|
|
775
|
+
throw new Error("Expected gates_per_opcode in ChonkStatsResponse deserialization");
|
|
776
|
+
}
|
|
777
|
+
;
|
|
778
|
+
return {
|
|
779
|
+
acirOpcodes: o.acir_opcodes,
|
|
780
|
+
circuitSize: o.circuit_size,
|
|
781
|
+
gatesPerOpcode: o.gates_per_opcode.map((v) => v),
|
|
782
|
+
};
|
|
783
|
+
}
|
|
784
|
+
export function fromChonkStatsResponse(o) {
|
|
785
|
+
if (o.acirOpcodes === undefined) {
|
|
786
|
+
throw new Error("Expected acirOpcodes in ChonkStatsResponse serialization");
|
|
787
|
+
}
|
|
788
|
+
if (o.circuitSize === undefined) {
|
|
789
|
+
throw new Error("Expected circuitSize in ChonkStatsResponse serialization");
|
|
790
|
+
}
|
|
791
|
+
if (o.gatesPerOpcode === undefined) {
|
|
792
|
+
throw new Error("Expected gatesPerOpcode in ChonkStatsResponse serialization");
|
|
793
|
+
}
|
|
794
|
+
;
|
|
795
|
+
return {
|
|
796
|
+
acir_opcodes: o.acirOpcodes,
|
|
797
|
+
circuit_size: o.circuitSize,
|
|
798
|
+
gates_per_opcode: o.gatesPerOpcode.map((v) => v),
|
|
799
|
+
};
|
|
800
|
+
}
|
|
801
|
+
export function toChonkVerify(o) {
|
|
802
|
+
if (o.proof === undefined) {
|
|
803
|
+
throw new Error("Expected proof in ChonkVerify deserialization");
|
|
804
|
+
}
|
|
805
|
+
if (o.vk === undefined) {
|
|
806
|
+
throw new Error("Expected vk in ChonkVerify deserialization");
|
|
807
|
+
}
|
|
808
|
+
;
|
|
809
|
+
return {
|
|
810
|
+
proof: toChonkProof(o.proof),
|
|
811
|
+
vk: o.vk,
|
|
812
|
+
};
|
|
813
|
+
}
|
|
814
|
+
export function fromChonkVerify(o) {
|
|
815
|
+
if (o.proof === undefined) {
|
|
816
|
+
throw new Error("Expected proof in ChonkVerify serialization");
|
|
817
|
+
}
|
|
818
|
+
if (o.vk === undefined) {
|
|
819
|
+
throw new Error("Expected vk in ChonkVerify serialization");
|
|
820
|
+
}
|
|
821
|
+
;
|
|
822
|
+
return {
|
|
823
|
+
proof: fromChonkProof(o.proof),
|
|
824
|
+
vk: o.vk,
|
|
825
|
+
};
|
|
826
|
+
}
|
|
827
|
+
export function toChonkVerifyResponse(o) {
|
|
828
|
+
if (o.valid === undefined) {
|
|
829
|
+
throw new Error("Expected valid in ChonkVerifyResponse deserialization");
|
|
830
|
+
}
|
|
831
|
+
;
|
|
832
|
+
return {
|
|
833
|
+
valid: o.valid,
|
|
834
|
+
};
|
|
835
|
+
}
|
|
836
|
+
export function fromChonkVerifyResponse(o) {
|
|
837
|
+
if (o.valid === undefined) {
|
|
838
|
+
throw new Error("Expected valid in ChonkVerifyResponse serialization");
|
|
839
|
+
}
|
|
840
|
+
;
|
|
841
|
+
return {
|
|
842
|
+
valid: o.valid,
|
|
843
|
+
};
|
|
844
|
+
}
|
|
845
|
+
export function toCircuitComputeVk(o) {
|
|
846
|
+
if (o.circuit === undefined) {
|
|
847
|
+
throw new Error("Expected circuit in CircuitComputeVk deserialization");
|
|
848
|
+
}
|
|
849
|
+
if (o.settings === undefined) {
|
|
850
|
+
throw new Error("Expected settings in CircuitComputeVk deserialization");
|
|
851
|
+
}
|
|
852
|
+
;
|
|
853
|
+
return {
|
|
854
|
+
circuit: toCircuitInputNoVK(o.circuit),
|
|
855
|
+
settings: toProofSystemSettings(o.settings),
|
|
856
|
+
};
|
|
857
|
+
}
|
|
858
|
+
export function fromCircuitComputeVk(o) {
|
|
859
|
+
if (o.circuit === undefined) {
|
|
860
|
+
throw new Error("Expected circuit in CircuitComputeVk serialization");
|
|
861
|
+
}
|
|
862
|
+
if (o.settings === undefined) {
|
|
863
|
+
throw new Error("Expected settings in CircuitComputeVk serialization");
|
|
864
|
+
}
|
|
865
|
+
;
|
|
866
|
+
return {
|
|
867
|
+
circuit: fromCircuitInputNoVK(o.circuit),
|
|
868
|
+
settings: fromProofSystemSettings(o.settings),
|
|
869
|
+
};
|
|
870
|
+
}
|
|
871
|
+
export function toCircuitComputeVkResponse(o) {
|
|
872
|
+
if (o.bytes === undefined) {
|
|
873
|
+
throw new Error("Expected bytes in CircuitComputeVkResponse deserialization");
|
|
874
|
+
}
|
|
875
|
+
if (o.fields === undefined) {
|
|
876
|
+
throw new Error("Expected fields in CircuitComputeVkResponse deserialization");
|
|
877
|
+
}
|
|
878
|
+
if (o.hash === undefined) {
|
|
879
|
+
throw new Error("Expected hash in CircuitComputeVkResponse deserialization");
|
|
880
|
+
}
|
|
881
|
+
;
|
|
882
|
+
return {
|
|
883
|
+
bytes: o.bytes,
|
|
884
|
+
fields: o.fields.map((v) => v),
|
|
885
|
+
hash: o.hash,
|
|
886
|
+
};
|
|
887
|
+
}
|
|
888
|
+
export function fromCircuitComputeVkResponse(o) {
|
|
889
|
+
if (o.bytes === undefined) {
|
|
890
|
+
throw new Error("Expected bytes in CircuitComputeVkResponse serialization");
|
|
891
|
+
}
|
|
892
|
+
if (o.fields === undefined) {
|
|
893
|
+
throw new Error("Expected fields in CircuitComputeVkResponse serialization");
|
|
894
|
+
}
|
|
895
|
+
if (o.hash === undefined) {
|
|
896
|
+
throw new Error("Expected hash in CircuitComputeVkResponse serialization");
|
|
897
|
+
}
|
|
898
|
+
;
|
|
899
|
+
return {
|
|
900
|
+
bytes: o.bytes,
|
|
901
|
+
fields: o.fields.map((v) => v),
|
|
902
|
+
hash: o.hash,
|
|
903
|
+
};
|
|
904
|
+
}
|
|
905
|
+
export function toCircuitInfoResponse(o) {
|
|
906
|
+
if (o.num_gates === undefined) {
|
|
907
|
+
throw new Error("Expected num_gates in CircuitInfoResponse deserialization");
|
|
908
|
+
}
|
|
909
|
+
if (o.num_gates_dyadic === undefined) {
|
|
910
|
+
throw new Error("Expected num_gates_dyadic in CircuitInfoResponse deserialization");
|
|
911
|
+
}
|
|
912
|
+
if (o.num_acir_opcodes === undefined) {
|
|
913
|
+
throw new Error("Expected num_acir_opcodes in CircuitInfoResponse deserialization");
|
|
914
|
+
}
|
|
915
|
+
if (o.gates_per_opcode === undefined) {
|
|
916
|
+
throw new Error("Expected gates_per_opcode in CircuitInfoResponse deserialization");
|
|
917
|
+
}
|
|
918
|
+
;
|
|
919
|
+
return {
|
|
920
|
+
numGates: o.num_gates,
|
|
921
|
+
numGatesDyadic: o.num_gates_dyadic,
|
|
922
|
+
numAcirOpcodes: o.num_acir_opcodes,
|
|
923
|
+
gatesPerOpcode: o.gates_per_opcode.map((v) => v),
|
|
924
|
+
};
|
|
925
|
+
}
|
|
926
|
+
export function fromCircuitInfoResponse(o) {
|
|
927
|
+
if (o.numGates === undefined) {
|
|
928
|
+
throw new Error("Expected numGates in CircuitInfoResponse serialization");
|
|
929
|
+
}
|
|
930
|
+
if (o.numGatesDyadic === undefined) {
|
|
931
|
+
throw new Error("Expected numGatesDyadic in CircuitInfoResponse serialization");
|
|
932
|
+
}
|
|
933
|
+
if (o.numAcirOpcodes === undefined) {
|
|
934
|
+
throw new Error("Expected numAcirOpcodes in CircuitInfoResponse serialization");
|
|
935
|
+
}
|
|
936
|
+
if (o.gatesPerOpcode === undefined) {
|
|
937
|
+
throw new Error("Expected gatesPerOpcode in CircuitInfoResponse serialization");
|
|
938
|
+
}
|
|
939
|
+
;
|
|
940
|
+
return {
|
|
941
|
+
num_gates: o.numGates,
|
|
942
|
+
num_gates_dyadic: o.numGatesDyadic,
|
|
943
|
+
num_acir_opcodes: o.numAcirOpcodes,
|
|
944
|
+
gates_per_opcode: o.gatesPerOpcode.map((v) => v),
|
|
945
|
+
};
|
|
946
|
+
}
|
|
947
|
+
export function toCircuitInput(o) {
|
|
948
|
+
if (o.name === undefined) {
|
|
949
|
+
throw new Error("Expected name in CircuitInput deserialization");
|
|
950
|
+
}
|
|
951
|
+
if (o.bytecode === undefined) {
|
|
952
|
+
throw new Error("Expected bytecode in CircuitInput deserialization");
|
|
953
|
+
}
|
|
954
|
+
if (o.verification_key === undefined) {
|
|
955
|
+
throw new Error("Expected verification_key in CircuitInput deserialization");
|
|
956
|
+
}
|
|
957
|
+
;
|
|
958
|
+
return {
|
|
959
|
+
name: o.name,
|
|
960
|
+
bytecode: o.bytecode,
|
|
961
|
+
verificationKey: o.verification_key,
|
|
962
|
+
};
|
|
963
|
+
}
|
|
964
|
+
export function fromCircuitInput(o) {
|
|
965
|
+
if (o.name === undefined) {
|
|
966
|
+
throw new Error("Expected name in CircuitInput serialization");
|
|
967
|
+
}
|
|
968
|
+
if (o.bytecode === undefined) {
|
|
969
|
+
throw new Error("Expected bytecode in CircuitInput serialization");
|
|
970
|
+
}
|
|
971
|
+
if (o.verificationKey === undefined) {
|
|
972
|
+
throw new Error("Expected verificationKey in CircuitInput serialization");
|
|
973
|
+
}
|
|
974
|
+
;
|
|
975
|
+
return {
|
|
976
|
+
name: o.name,
|
|
977
|
+
bytecode: o.bytecode,
|
|
978
|
+
verification_key: o.verificationKey,
|
|
979
|
+
};
|
|
980
|
+
}
|
|
981
|
+
export function toCircuitInputNoVK(o) {
|
|
982
|
+
if (o.name === undefined) {
|
|
983
|
+
throw new Error("Expected name in CircuitInputNoVK deserialization");
|
|
984
|
+
}
|
|
985
|
+
if (o.bytecode === undefined) {
|
|
986
|
+
throw new Error("Expected bytecode in CircuitInputNoVK deserialization");
|
|
987
|
+
}
|
|
988
|
+
;
|
|
989
|
+
return {
|
|
990
|
+
name: o.name,
|
|
991
|
+
bytecode: o.bytecode,
|
|
992
|
+
};
|
|
993
|
+
}
|
|
994
|
+
export function fromCircuitInputNoVK(o) {
|
|
995
|
+
if (o.name === undefined) {
|
|
996
|
+
throw new Error("Expected name in CircuitInputNoVK serialization");
|
|
997
|
+
}
|
|
998
|
+
if (o.bytecode === undefined) {
|
|
999
|
+
throw new Error("Expected bytecode in CircuitInputNoVK serialization");
|
|
824
1000
|
}
|
|
825
1001
|
;
|
|
826
1002
|
return {
|
|
827
|
-
|
|
828
|
-
|
|
1003
|
+
name: o.name,
|
|
1004
|
+
bytecode: o.bytecode,
|
|
829
1005
|
};
|
|
830
1006
|
}
|
|
831
|
-
export function
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
if (o.
|
|
839
|
-
throw new Error("Expected
|
|
1007
|
+
export function toCircuitProve(o) {
|
|
1008
|
+
if (o.circuit === undefined) {
|
|
1009
|
+
throw new Error("Expected circuit in CircuitProve deserialization");
|
|
1010
|
+
}
|
|
1011
|
+
if (o.witness === undefined) {
|
|
1012
|
+
throw new Error("Expected witness in CircuitProve deserialization");
|
|
1013
|
+
}
|
|
1014
|
+
if (o.settings === undefined) {
|
|
1015
|
+
throw new Error("Expected settings in CircuitProve deserialization");
|
|
840
1016
|
}
|
|
841
1017
|
;
|
|
842
1018
|
return {
|
|
843
|
-
|
|
1019
|
+
circuit: toCircuitInput(o.circuit),
|
|
1020
|
+
witness: o.witness,
|
|
1021
|
+
settings: toProofSystemSettings(o.settings),
|
|
844
1022
|
};
|
|
845
1023
|
}
|
|
846
|
-
export function
|
|
847
|
-
if (o.
|
|
848
|
-
throw new Error("Expected
|
|
1024
|
+
export function fromCircuitProve(o) {
|
|
1025
|
+
if (o.circuit === undefined) {
|
|
1026
|
+
throw new Error("Expected circuit in CircuitProve serialization");
|
|
1027
|
+
}
|
|
1028
|
+
if (o.witness === undefined) {
|
|
1029
|
+
throw new Error("Expected witness in CircuitProve serialization");
|
|
1030
|
+
}
|
|
1031
|
+
if (o.settings === undefined) {
|
|
1032
|
+
throw new Error("Expected settings in CircuitProve serialization");
|
|
849
1033
|
}
|
|
850
1034
|
;
|
|
851
1035
|
return {
|
|
852
|
-
|
|
1036
|
+
circuit: fromCircuitInput(o.circuit),
|
|
1037
|
+
witness: o.witness,
|
|
1038
|
+
settings: fromProofSystemSettings(o.settings),
|
|
853
1039
|
};
|
|
854
1040
|
}
|
|
855
|
-
export function
|
|
856
|
-
if (o.
|
|
857
|
-
throw new Error("Expected
|
|
1041
|
+
export function toCircuitProveResponse(o) {
|
|
1042
|
+
if (o.public_inputs === undefined) {
|
|
1043
|
+
throw new Error("Expected public_inputs in CircuitProveResponse deserialization");
|
|
1044
|
+
}
|
|
1045
|
+
if (o.proof === undefined) {
|
|
1046
|
+
throw new Error("Expected proof in CircuitProveResponse deserialization");
|
|
1047
|
+
}
|
|
1048
|
+
if (o.vk === undefined) {
|
|
1049
|
+
throw new Error("Expected vk in CircuitProveResponse deserialization");
|
|
858
1050
|
}
|
|
859
1051
|
;
|
|
860
1052
|
return {
|
|
861
|
-
|
|
1053
|
+
publicInputs: o.public_inputs.map((v) => v),
|
|
1054
|
+
proof: o.proof.map((v) => v),
|
|
1055
|
+
vk: toCircuitComputeVkResponse(o.vk),
|
|
862
1056
|
};
|
|
863
1057
|
}
|
|
864
|
-
export function
|
|
865
|
-
if (o.
|
|
866
|
-
throw new Error("Expected
|
|
1058
|
+
export function fromCircuitProveResponse(o) {
|
|
1059
|
+
if (o.publicInputs === undefined) {
|
|
1060
|
+
throw new Error("Expected publicInputs in CircuitProveResponse serialization");
|
|
1061
|
+
}
|
|
1062
|
+
if (o.proof === undefined) {
|
|
1063
|
+
throw new Error("Expected proof in CircuitProveResponse serialization");
|
|
1064
|
+
}
|
|
1065
|
+
if (o.vk === undefined) {
|
|
1066
|
+
throw new Error("Expected vk in CircuitProveResponse serialization");
|
|
867
1067
|
}
|
|
868
1068
|
;
|
|
869
1069
|
return {
|
|
870
|
-
|
|
1070
|
+
public_inputs: o.publicInputs.map((v) => v),
|
|
1071
|
+
proof: o.proof.map((v) => v),
|
|
1072
|
+
vk: fromCircuitComputeVkResponse(o.vk),
|
|
871
1073
|
};
|
|
872
1074
|
}
|
|
873
|
-
export function
|
|
874
|
-
return {};
|
|
875
|
-
}
|
|
876
|
-
export function fromClientIvcStartResponse(o) {
|
|
877
|
-
return {};
|
|
878
|
-
}
|
|
879
|
-
export function toClientIvcStats(o) {
|
|
1075
|
+
export function toCircuitStats(o) {
|
|
880
1076
|
if (o.circuit === undefined) {
|
|
881
|
-
throw new Error("Expected circuit in
|
|
1077
|
+
throw new Error("Expected circuit in CircuitStats deserialization");
|
|
882
1078
|
}
|
|
883
1079
|
if (o.include_gates_per_opcode === undefined) {
|
|
884
|
-
throw new Error("Expected include_gates_per_opcode in
|
|
1080
|
+
throw new Error("Expected include_gates_per_opcode in CircuitStats deserialization");
|
|
1081
|
+
}
|
|
1082
|
+
if (o.settings === undefined) {
|
|
1083
|
+
throw new Error("Expected settings in CircuitStats deserialization");
|
|
885
1084
|
}
|
|
886
1085
|
;
|
|
887
1086
|
return {
|
|
888
|
-
circuit:
|
|
1087
|
+
circuit: toCircuitInput(o.circuit),
|
|
889
1088
|
includeGatesPerOpcode: o.include_gates_per_opcode,
|
|
1089
|
+
settings: toProofSystemSettings(o.settings),
|
|
890
1090
|
};
|
|
891
1091
|
}
|
|
892
|
-
export function
|
|
1092
|
+
export function fromCircuitStats(o) {
|
|
893
1093
|
if (o.circuit === undefined) {
|
|
894
|
-
throw new Error("Expected circuit in
|
|
1094
|
+
throw new Error("Expected circuit in CircuitStats serialization");
|
|
895
1095
|
}
|
|
896
1096
|
if (o.includeGatesPerOpcode === undefined) {
|
|
897
|
-
throw new Error("Expected includeGatesPerOpcode in
|
|
1097
|
+
throw new Error("Expected includeGatesPerOpcode in CircuitStats serialization");
|
|
1098
|
+
}
|
|
1099
|
+
if (o.settings === undefined) {
|
|
1100
|
+
throw new Error("Expected settings in CircuitStats serialization");
|
|
898
1101
|
}
|
|
899
1102
|
;
|
|
900
1103
|
return {
|
|
901
|
-
circuit:
|
|
1104
|
+
circuit: fromCircuitInput(o.circuit),
|
|
902
1105
|
include_gates_per_opcode: o.includeGatesPerOpcode,
|
|
1106
|
+
settings: fromProofSystemSettings(o.settings),
|
|
903
1107
|
};
|
|
904
1108
|
}
|
|
905
|
-
export function
|
|
906
|
-
if (o.
|
|
907
|
-
throw new Error("Expected
|
|
1109
|
+
export function toCircuitVerify(o) {
|
|
1110
|
+
if (o.verification_key === undefined) {
|
|
1111
|
+
throw new Error("Expected verification_key in CircuitVerify deserialization");
|
|
908
1112
|
}
|
|
909
|
-
if (o.
|
|
910
|
-
throw new Error("Expected
|
|
1113
|
+
if (o.public_inputs === undefined) {
|
|
1114
|
+
throw new Error("Expected public_inputs in CircuitVerify deserialization");
|
|
911
1115
|
}
|
|
912
|
-
if (o.
|
|
913
|
-
throw new Error("Expected
|
|
1116
|
+
if (o.proof === undefined) {
|
|
1117
|
+
throw new Error("Expected proof in CircuitVerify deserialization");
|
|
1118
|
+
}
|
|
1119
|
+
if (o.settings === undefined) {
|
|
1120
|
+
throw new Error("Expected settings in CircuitVerify deserialization");
|
|
914
1121
|
}
|
|
915
1122
|
;
|
|
916
1123
|
return {
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
1124
|
+
verificationKey: o.verification_key,
|
|
1125
|
+
publicInputs: o.public_inputs.map((v) => v),
|
|
1126
|
+
proof: o.proof.map((v) => v),
|
|
1127
|
+
settings: toProofSystemSettings(o.settings),
|
|
920
1128
|
};
|
|
921
1129
|
}
|
|
922
|
-
export function
|
|
923
|
-
if (o.
|
|
924
|
-
throw new Error("Expected
|
|
1130
|
+
export function fromCircuitVerify(o) {
|
|
1131
|
+
if (o.verificationKey === undefined) {
|
|
1132
|
+
throw new Error("Expected verificationKey in CircuitVerify serialization");
|
|
925
1133
|
}
|
|
926
|
-
if (o.
|
|
927
|
-
throw new Error("Expected
|
|
1134
|
+
if (o.publicInputs === undefined) {
|
|
1135
|
+
throw new Error("Expected publicInputs in CircuitVerify serialization");
|
|
928
1136
|
}
|
|
929
|
-
if (o.
|
|
930
|
-
throw new Error("Expected
|
|
1137
|
+
if (o.proof === undefined) {
|
|
1138
|
+
throw new Error("Expected proof in CircuitVerify serialization");
|
|
1139
|
+
}
|
|
1140
|
+
if (o.settings === undefined) {
|
|
1141
|
+
throw new Error("Expected settings in CircuitVerify serialization");
|
|
931
1142
|
}
|
|
932
1143
|
;
|
|
933
1144
|
return {
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
|
|
1145
|
+
verification_key: o.verificationKey,
|
|
1146
|
+
public_inputs: o.publicInputs.map((v) => v),
|
|
1147
|
+
proof: o.proof.map((v) => v),
|
|
1148
|
+
settings: fromProofSystemSettings(o.settings),
|
|
937
1149
|
};
|
|
938
1150
|
}
|
|
939
|
-
export function
|
|
940
|
-
if (o.
|
|
941
|
-
throw new Error("Expected
|
|
942
|
-
}
|
|
943
|
-
if (o.vk === undefined) {
|
|
944
|
-
throw new Error("Expected vk in ClientIvcVerify deserialization");
|
|
1151
|
+
export function toCircuitVerifyResponse(o) {
|
|
1152
|
+
if (o.verified === undefined) {
|
|
1153
|
+
throw new Error("Expected verified in CircuitVerifyResponse deserialization");
|
|
945
1154
|
}
|
|
946
1155
|
;
|
|
947
1156
|
return {
|
|
948
|
-
|
|
949
|
-
vk: o.vk,
|
|
1157
|
+
verified: o.verified,
|
|
950
1158
|
};
|
|
951
1159
|
}
|
|
952
|
-
export function
|
|
953
|
-
if (o.
|
|
954
|
-
throw new Error("Expected
|
|
955
|
-
}
|
|
956
|
-
if (o.vk === undefined) {
|
|
957
|
-
throw new Error("Expected vk in ClientIvcVerify serialization");
|
|
1160
|
+
export function fromCircuitVerifyResponse(o) {
|
|
1161
|
+
if (o.verified === undefined) {
|
|
1162
|
+
throw new Error("Expected verified in CircuitVerifyResponse serialization");
|
|
958
1163
|
}
|
|
959
1164
|
;
|
|
960
1165
|
return {
|
|
961
|
-
|
|
962
|
-
vk: o.vk,
|
|
1166
|
+
verified: o.verified,
|
|
963
1167
|
};
|
|
964
1168
|
}
|
|
965
|
-
export function
|
|
966
|
-
if (o.
|
|
967
|
-
throw new Error("Expected
|
|
1169
|
+
export function toCircuitWriteSolidityVerifier(o) {
|
|
1170
|
+
if (o.verification_key === undefined) {
|
|
1171
|
+
throw new Error("Expected verification_key in CircuitWriteSolidityVerifier deserialization");
|
|
1172
|
+
}
|
|
1173
|
+
if (o.settings === undefined) {
|
|
1174
|
+
throw new Error("Expected settings in CircuitWriteSolidityVerifier deserialization");
|
|
968
1175
|
}
|
|
969
1176
|
;
|
|
970
1177
|
return {
|
|
971
|
-
|
|
1178
|
+
verificationKey: o.verification_key,
|
|
1179
|
+
settings: toProofSystemSettings(o.settings),
|
|
972
1180
|
};
|
|
973
1181
|
}
|
|
974
|
-
export function
|
|
975
|
-
if (o.
|
|
976
|
-
throw new Error("Expected
|
|
1182
|
+
export function fromCircuitWriteSolidityVerifier(o) {
|
|
1183
|
+
if (o.verificationKey === undefined) {
|
|
1184
|
+
throw new Error("Expected verificationKey in CircuitWriteSolidityVerifier serialization");
|
|
1185
|
+
}
|
|
1186
|
+
if (o.settings === undefined) {
|
|
1187
|
+
throw new Error("Expected settings in CircuitWriteSolidityVerifier serialization");
|
|
977
1188
|
}
|
|
978
1189
|
;
|
|
979
1190
|
return {
|
|
980
|
-
|
|
1191
|
+
verification_key: o.verificationKey,
|
|
1192
|
+
settings: fromProofSystemSettings(o.settings),
|
|
981
1193
|
};
|
|
982
1194
|
}
|
|
983
|
-
export function
|
|
984
|
-
if (o.
|
|
985
|
-
throw new Error("Expected
|
|
986
|
-
}
|
|
987
|
-
if (o.ipa_proof === undefined) {
|
|
988
|
-
throw new Error("Expected ipa_proof in ECCVMProof deserialization");
|
|
1195
|
+
export function toCircuitWriteSolidityVerifierResponse(o) {
|
|
1196
|
+
if (o.solidity_code === undefined) {
|
|
1197
|
+
throw new Error("Expected solidity_code in CircuitWriteSolidityVerifierResponse deserialization");
|
|
989
1198
|
}
|
|
990
1199
|
;
|
|
991
1200
|
return {
|
|
992
|
-
|
|
993
|
-
ipaProof: o.ipa_proof.map((v) => v),
|
|
1201
|
+
solidityCode: o.solidity_code,
|
|
994
1202
|
};
|
|
995
1203
|
}
|
|
996
|
-
export function
|
|
997
|
-
if (o.
|
|
998
|
-
throw new Error("Expected
|
|
999
|
-
}
|
|
1000
|
-
if (o.ipaProof === undefined) {
|
|
1001
|
-
throw new Error("Expected ipaProof in ECCVMProof serialization");
|
|
1204
|
+
export function fromCircuitWriteSolidityVerifierResponse(o) {
|
|
1205
|
+
if (o.solidityCode === undefined) {
|
|
1206
|
+
throw new Error("Expected solidityCode in CircuitWriteSolidityVerifierResponse serialization");
|
|
1002
1207
|
}
|
|
1003
1208
|
;
|
|
1004
1209
|
return {
|
|
1005
|
-
|
|
1006
|
-
ipa_proof: o.ipaProof.map((v) => v),
|
|
1210
|
+
solidity_code: o.solidityCode,
|
|
1007
1211
|
};
|
|
1008
1212
|
}
|
|
1009
1213
|
export function toEcdsaSecp256k1ComputePublicKey(o) {
|
|
@@ -1030,7 +1234,7 @@ export function toEcdsaSecp256k1ComputePublicKeyResponse(o) {
|
|
|
1030
1234
|
}
|
|
1031
1235
|
;
|
|
1032
1236
|
return {
|
|
1033
|
-
publicKey:
|
|
1237
|
+
publicKey: toSecp256k1Point(o.public_key),
|
|
1034
1238
|
};
|
|
1035
1239
|
}
|
|
1036
1240
|
export function fromEcdsaSecp256k1ComputePublicKeyResponse(o) {
|
|
@@ -1039,7 +1243,7 @@ export function fromEcdsaSecp256k1ComputePublicKeyResponse(o) {
|
|
|
1039
1243
|
}
|
|
1040
1244
|
;
|
|
1041
1245
|
return {
|
|
1042
|
-
public_key:
|
|
1246
|
+
public_key: fromSecp256k1Point(o.publicKey),
|
|
1043
1247
|
};
|
|
1044
1248
|
}
|
|
1045
1249
|
export function toEcdsaSecp256k1ConstructSignature(o) {
|
|
@@ -1150,7 +1354,7 @@ export function toEcdsaSecp256k1RecoverPublicKeyResponse(o) {
|
|
|
1150
1354
|
}
|
|
1151
1355
|
;
|
|
1152
1356
|
return {
|
|
1153
|
-
publicKey:
|
|
1357
|
+
publicKey: toSecp256k1Point(o.public_key),
|
|
1154
1358
|
};
|
|
1155
1359
|
}
|
|
1156
1360
|
export function fromEcdsaSecp256k1RecoverPublicKeyResponse(o) {
|
|
@@ -1159,7 +1363,7 @@ export function fromEcdsaSecp256k1RecoverPublicKeyResponse(o) {
|
|
|
1159
1363
|
}
|
|
1160
1364
|
;
|
|
1161
1365
|
return {
|
|
1162
|
-
public_key:
|
|
1366
|
+
public_key: fromSecp256k1Point(o.publicKey),
|
|
1163
1367
|
};
|
|
1164
1368
|
}
|
|
1165
1369
|
export function toEcdsaSecp256k1VerifySignature(o) {
|
|
@@ -1181,7 +1385,7 @@ export function toEcdsaSecp256k1VerifySignature(o) {
|
|
|
1181
1385
|
;
|
|
1182
1386
|
return {
|
|
1183
1387
|
message: o.message,
|
|
1184
|
-
publicKey:
|
|
1388
|
+
publicKey: toSecp256k1Point(o.public_key),
|
|
1185
1389
|
r: o.r,
|
|
1186
1390
|
s: o.s,
|
|
1187
1391
|
v: o.v,
|
|
@@ -1206,7 +1410,7 @@ export function fromEcdsaSecp256k1VerifySignature(o) {
|
|
|
1206
1410
|
;
|
|
1207
1411
|
return {
|
|
1208
1412
|
message: o.message,
|
|
1209
|
-
public_key:
|
|
1413
|
+
public_key: fromSecp256k1Point(o.publicKey),
|
|
1210
1414
|
r: o.r,
|
|
1211
1415
|
s: o.s,
|
|
1212
1416
|
v: o.v,
|
|
@@ -1254,7 +1458,7 @@ export function toEcdsaSecp256r1ComputePublicKeyResponse(o) {
|
|
|
1254
1458
|
}
|
|
1255
1459
|
;
|
|
1256
1460
|
return {
|
|
1257
|
-
publicKey:
|
|
1461
|
+
publicKey: toSecp256r1Point(o.public_key),
|
|
1258
1462
|
};
|
|
1259
1463
|
}
|
|
1260
1464
|
export function fromEcdsaSecp256r1ComputePublicKeyResponse(o) {
|
|
@@ -1263,7 +1467,7 @@ export function fromEcdsaSecp256r1ComputePublicKeyResponse(o) {
|
|
|
1263
1467
|
}
|
|
1264
1468
|
;
|
|
1265
1469
|
return {
|
|
1266
|
-
public_key:
|
|
1470
|
+
public_key: fromSecp256r1Point(o.publicKey),
|
|
1267
1471
|
};
|
|
1268
1472
|
}
|
|
1269
1473
|
export function toEcdsaSecp256r1ConstructSignature(o) {
|
|
@@ -1374,7 +1578,7 @@ export function toEcdsaSecp256r1RecoverPublicKeyResponse(o) {
|
|
|
1374
1578
|
}
|
|
1375
1579
|
;
|
|
1376
1580
|
return {
|
|
1377
|
-
publicKey:
|
|
1581
|
+
publicKey: toSecp256r1Point(o.public_key),
|
|
1378
1582
|
};
|
|
1379
1583
|
}
|
|
1380
1584
|
export function fromEcdsaSecp256r1RecoverPublicKeyResponse(o) {
|
|
@@ -1383,7 +1587,7 @@ export function fromEcdsaSecp256r1RecoverPublicKeyResponse(o) {
|
|
|
1383
1587
|
}
|
|
1384
1588
|
;
|
|
1385
1589
|
return {
|
|
1386
|
-
public_key:
|
|
1590
|
+
public_key: fromSecp256r1Point(o.publicKey),
|
|
1387
1591
|
};
|
|
1388
1592
|
}
|
|
1389
1593
|
export function toEcdsaSecp256r1VerifySignature(o) {
|
|
@@ -1405,7 +1609,7 @@ export function toEcdsaSecp256r1VerifySignature(o) {
|
|
|
1405
1609
|
;
|
|
1406
1610
|
return {
|
|
1407
1611
|
message: o.message,
|
|
1408
|
-
publicKey:
|
|
1612
|
+
publicKey: toSecp256r1Point(o.public_key),
|
|
1409
1613
|
r: o.r,
|
|
1410
1614
|
s: o.s,
|
|
1411
1615
|
v: o.v,
|
|
@@ -1430,7 +1634,7 @@ export function fromEcdsaSecp256r1VerifySignature(o) {
|
|
|
1430
1634
|
;
|
|
1431
1635
|
return {
|
|
1432
1636
|
message: o.message,
|
|
1433
|
-
public_key:
|
|
1637
|
+
public_key: fromSecp256r1Point(o.publicKey),
|
|
1434
1638
|
r: o.r,
|
|
1435
1639
|
s: o.s,
|
|
1436
1640
|
v: o.v,
|
|
@@ -1454,6 +1658,24 @@ export function fromEcdsaSecp256r1VerifySignatureResponse(o) {
|
|
|
1454
1658
|
verified: o.verified,
|
|
1455
1659
|
};
|
|
1456
1660
|
}
|
|
1661
|
+
export function toErrorResponse(o) {
|
|
1662
|
+
if (o.message === undefined) {
|
|
1663
|
+
throw new Error("Expected message in ErrorResponse deserialization");
|
|
1664
|
+
}
|
|
1665
|
+
;
|
|
1666
|
+
return {
|
|
1667
|
+
message: o.message,
|
|
1668
|
+
};
|
|
1669
|
+
}
|
|
1670
|
+
export function fromErrorResponse(o) {
|
|
1671
|
+
if (o.message === undefined) {
|
|
1672
|
+
throw new Error("Expected message in ErrorResponse serialization");
|
|
1673
|
+
}
|
|
1674
|
+
;
|
|
1675
|
+
return {
|
|
1676
|
+
message: o.message,
|
|
1677
|
+
};
|
|
1678
|
+
}
|
|
1457
1679
|
export function toGoblinProof(o) {
|
|
1458
1680
|
if (o.merge_proof === undefined) {
|
|
1459
1681
|
throw new Error("Expected merge_proof in GoblinProof deserialization");
|
|
@@ -1461,13 +1683,17 @@ export function toGoblinProof(o) {
|
|
|
1461
1683
|
if (o.eccvm_proof === undefined) {
|
|
1462
1684
|
throw new Error("Expected eccvm_proof in GoblinProof deserialization");
|
|
1463
1685
|
}
|
|
1686
|
+
if (o.ipa_proof === undefined) {
|
|
1687
|
+
throw new Error("Expected ipa_proof in GoblinProof deserialization");
|
|
1688
|
+
}
|
|
1464
1689
|
if (o.translator_proof === undefined) {
|
|
1465
1690
|
throw new Error("Expected translator_proof in GoblinProof deserialization");
|
|
1466
1691
|
}
|
|
1467
1692
|
;
|
|
1468
1693
|
return {
|
|
1469
1694
|
mergeProof: o.merge_proof.map((v) => v),
|
|
1470
|
-
eccvmProof:
|
|
1695
|
+
eccvmProof: o.eccvm_proof.map((v) => v),
|
|
1696
|
+
ipaProof: o.ipa_proof.map((v) => v),
|
|
1471
1697
|
translatorProof: o.translator_proof.map((v) => v),
|
|
1472
1698
|
};
|
|
1473
1699
|
}
|
|
@@ -1478,13 +1704,17 @@ export function fromGoblinProof(o) {
|
|
|
1478
1704
|
if (o.eccvmProof === undefined) {
|
|
1479
1705
|
throw new Error("Expected eccvmProof in GoblinProof serialization");
|
|
1480
1706
|
}
|
|
1707
|
+
if (o.ipaProof === undefined) {
|
|
1708
|
+
throw new Error("Expected ipaProof in GoblinProof serialization");
|
|
1709
|
+
}
|
|
1481
1710
|
if (o.translatorProof === undefined) {
|
|
1482
1711
|
throw new Error("Expected translatorProof in GoblinProof serialization");
|
|
1483
1712
|
}
|
|
1484
1713
|
;
|
|
1485
1714
|
return {
|
|
1486
1715
|
merge_proof: o.mergeProof.map((v) => v),
|
|
1487
|
-
eccvm_proof:
|
|
1716
|
+
eccvm_proof: o.eccvmProof.map((v) => v),
|
|
1717
|
+
ipa_proof: o.ipaProof.map((v) => v),
|
|
1488
1718
|
translator_proof: o.translatorProof.map((v) => v),
|
|
1489
1719
|
};
|
|
1490
1720
|
}
|
|
@@ -1497,8 +1727,8 @@ export function toGrumpkinAdd(o) {
|
|
|
1497
1727
|
}
|
|
1498
1728
|
;
|
|
1499
1729
|
return {
|
|
1500
|
-
pointA:
|
|
1501
|
-
pointB:
|
|
1730
|
+
pointA: toGrumpkinPoint(o.point_a),
|
|
1731
|
+
pointB: toGrumpkinPoint(o.point_b),
|
|
1502
1732
|
};
|
|
1503
1733
|
}
|
|
1504
1734
|
export function fromGrumpkinAdd(o) {
|
|
@@ -1510,8 +1740,8 @@ export function fromGrumpkinAdd(o) {
|
|
|
1510
1740
|
}
|
|
1511
1741
|
;
|
|
1512
1742
|
return {
|
|
1513
|
-
point_a:
|
|
1514
|
-
point_b:
|
|
1743
|
+
point_a: fromGrumpkinPoint(o.pointA),
|
|
1744
|
+
point_b: fromGrumpkinPoint(o.pointB),
|
|
1515
1745
|
};
|
|
1516
1746
|
}
|
|
1517
1747
|
export function toGrumpkinAddResponse(o) {
|
|
@@ -1520,7 +1750,7 @@ export function toGrumpkinAddResponse(o) {
|
|
|
1520
1750
|
}
|
|
1521
1751
|
;
|
|
1522
1752
|
return {
|
|
1523
|
-
point:
|
|
1753
|
+
point: toGrumpkinPoint(o.point),
|
|
1524
1754
|
};
|
|
1525
1755
|
}
|
|
1526
1756
|
export function fromGrumpkinAddResponse(o) {
|
|
@@ -1529,7 +1759,7 @@ export function fromGrumpkinAddResponse(o) {
|
|
|
1529
1759
|
}
|
|
1530
1760
|
;
|
|
1531
1761
|
return {
|
|
1532
|
-
point:
|
|
1762
|
+
point: fromGrumpkinPoint(o.point),
|
|
1533
1763
|
};
|
|
1534
1764
|
}
|
|
1535
1765
|
export function toGrumpkinBatchMul(o) {
|
|
@@ -1621,7 +1851,7 @@ export function toGrumpkinMul(o) {
|
|
|
1621
1851
|
}
|
|
1622
1852
|
;
|
|
1623
1853
|
return {
|
|
1624
|
-
point:
|
|
1854
|
+
point: toGrumpkinPoint(o.point),
|
|
1625
1855
|
scalar: o.scalar,
|
|
1626
1856
|
};
|
|
1627
1857
|
}
|
|
@@ -1634,7 +1864,7 @@ export function fromGrumpkinMul(o) {
|
|
|
1634
1864
|
}
|
|
1635
1865
|
;
|
|
1636
1866
|
return {
|
|
1637
|
-
point:
|
|
1867
|
+
point: fromGrumpkinPoint(o.point),
|
|
1638
1868
|
scalar: o.scalar,
|
|
1639
1869
|
};
|
|
1640
1870
|
}
|
|
@@ -1644,7 +1874,7 @@ export function toGrumpkinMulResponse(o) {
|
|
|
1644
1874
|
}
|
|
1645
1875
|
;
|
|
1646
1876
|
return {
|
|
1647
|
-
point:
|
|
1877
|
+
point: toGrumpkinPoint(o.point),
|
|
1648
1878
|
};
|
|
1649
1879
|
}
|
|
1650
1880
|
export function fromGrumpkinMulResponse(o) {
|
|
@@ -1653,7 +1883,33 @@ export function fromGrumpkinMulResponse(o) {
|
|
|
1653
1883
|
}
|
|
1654
1884
|
;
|
|
1655
1885
|
return {
|
|
1656
|
-
point:
|
|
1886
|
+
point: fromGrumpkinPoint(o.point),
|
|
1887
|
+
};
|
|
1888
|
+
}
|
|
1889
|
+
export function toGrumpkinPoint(o) {
|
|
1890
|
+
if (o.x === undefined) {
|
|
1891
|
+
throw new Error("Expected x in GrumpkinPoint deserialization");
|
|
1892
|
+
}
|
|
1893
|
+
if (o.y === undefined) {
|
|
1894
|
+
throw new Error("Expected y in GrumpkinPoint deserialization");
|
|
1895
|
+
}
|
|
1896
|
+
;
|
|
1897
|
+
return {
|
|
1898
|
+
x: o.x,
|
|
1899
|
+
y: o.y,
|
|
1900
|
+
};
|
|
1901
|
+
}
|
|
1902
|
+
export function fromGrumpkinPoint(o) {
|
|
1903
|
+
if (o.x === undefined) {
|
|
1904
|
+
throw new Error("Expected x in GrumpkinPoint serialization");
|
|
1905
|
+
}
|
|
1906
|
+
if (o.y === undefined) {
|
|
1907
|
+
throw new Error("Expected y in GrumpkinPoint serialization");
|
|
1908
|
+
}
|
|
1909
|
+
;
|
|
1910
|
+
return {
|
|
1911
|
+
x: o.x,
|
|
1912
|
+
y: o.y,
|
|
1657
1913
|
};
|
|
1658
1914
|
}
|
|
1659
1915
|
export function toGrumpkinReduce512(o) {
|
|
@@ -1760,7 +2016,7 @@ export function toPedersenCommitResponse(o) {
|
|
|
1760
2016
|
}
|
|
1761
2017
|
;
|
|
1762
2018
|
return {
|
|
1763
|
-
point:
|
|
2019
|
+
point: toGrumpkinPoint(o.point),
|
|
1764
2020
|
};
|
|
1765
2021
|
}
|
|
1766
2022
|
export function fromPedersenCommitResponse(o) {
|
|
@@ -1769,7 +2025,7 @@ export function fromPedersenCommitResponse(o) {
|
|
|
1769
2025
|
}
|
|
1770
2026
|
;
|
|
1771
2027
|
return {
|
|
1772
|
-
point:
|
|
2028
|
+
point: fromGrumpkinPoint(o.point),
|
|
1773
2029
|
};
|
|
1774
2030
|
}
|
|
1775
2031
|
export function toPedersenHash(o) {
|
|
@@ -2034,7 +2290,7 @@ export function toSchnorrComputePublicKeyResponse(o) {
|
|
|
2034
2290
|
}
|
|
2035
2291
|
;
|
|
2036
2292
|
return {
|
|
2037
|
-
publicKey:
|
|
2293
|
+
publicKey: toGrumpkinPoint(o.public_key),
|
|
2038
2294
|
};
|
|
2039
2295
|
}
|
|
2040
2296
|
export function fromSchnorrComputePublicKeyResponse(o) {
|
|
@@ -2043,7 +2299,7 @@ export function fromSchnorrComputePublicKeyResponse(o) {
|
|
|
2043
2299
|
}
|
|
2044
2300
|
;
|
|
2045
2301
|
return {
|
|
2046
|
-
public_key:
|
|
2302
|
+
public_key: fromGrumpkinPoint(o.publicKey),
|
|
2047
2303
|
};
|
|
2048
2304
|
}
|
|
2049
2305
|
export function toSchnorrConstructSignature(o) {
|
|
@@ -2114,7 +2370,7 @@ export function toSchnorrVerifySignature(o) {
|
|
|
2114
2370
|
;
|
|
2115
2371
|
return {
|
|
2116
2372
|
message: o.message,
|
|
2117
|
-
publicKey:
|
|
2373
|
+
publicKey: toGrumpkinPoint(o.public_key),
|
|
2118
2374
|
s: o.s,
|
|
2119
2375
|
e: o.e,
|
|
2120
2376
|
};
|
|
@@ -2135,7 +2391,7 @@ export function fromSchnorrVerifySignature(o) {
|
|
|
2135
2391
|
;
|
|
2136
2392
|
return {
|
|
2137
2393
|
message: o.message,
|
|
2138
|
-
public_key:
|
|
2394
|
+
public_key: fromGrumpkinPoint(o.publicKey),
|
|
2139
2395
|
s: o.s,
|
|
2140
2396
|
e: o.e,
|
|
2141
2397
|
};
|
|
@@ -2203,7 +2459,7 @@ export function toSecp256k1Mul(o) {
|
|
|
2203
2459
|
}
|
|
2204
2460
|
;
|
|
2205
2461
|
return {
|
|
2206
|
-
point:
|
|
2462
|
+
point: toSecp256k1Point(o.point),
|
|
2207
2463
|
scalar: o.scalar,
|
|
2208
2464
|
};
|
|
2209
2465
|
}
|
|
@@ -2216,7 +2472,7 @@ export function fromSecp256k1Mul(o) {
|
|
|
2216
2472
|
}
|
|
2217
2473
|
;
|
|
2218
2474
|
return {
|
|
2219
|
-
point:
|
|
2475
|
+
point: fromSecp256k1Point(o.point),
|
|
2220
2476
|
scalar: o.scalar,
|
|
2221
2477
|
};
|
|
2222
2478
|
}
|
|
@@ -2226,7 +2482,7 @@ export function toSecp256k1MulResponse(o) {
|
|
|
2226
2482
|
}
|
|
2227
2483
|
;
|
|
2228
2484
|
return {
|
|
2229
|
-
point:
|
|
2485
|
+
point: toSecp256k1Point(o.point),
|
|
2230
2486
|
};
|
|
2231
2487
|
}
|
|
2232
2488
|
export function fromSecp256k1MulResponse(o) {
|
|
@@ -2235,7 +2491,33 @@ export function fromSecp256k1MulResponse(o) {
|
|
|
2235
2491
|
}
|
|
2236
2492
|
;
|
|
2237
2493
|
return {
|
|
2238
|
-
point:
|
|
2494
|
+
point: fromSecp256k1Point(o.point),
|
|
2495
|
+
};
|
|
2496
|
+
}
|
|
2497
|
+
export function toSecp256k1Point(o) {
|
|
2498
|
+
if (o.x === undefined) {
|
|
2499
|
+
throw new Error("Expected x in Secp256k1Point deserialization");
|
|
2500
|
+
}
|
|
2501
|
+
if (o.y === undefined) {
|
|
2502
|
+
throw new Error("Expected y in Secp256k1Point deserialization");
|
|
2503
|
+
}
|
|
2504
|
+
;
|
|
2505
|
+
return {
|
|
2506
|
+
x: o.x,
|
|
2507
|
+
y: o.y,
|
|
2508
|
+
};
|
|
2509
|
+
}
|
|
2510
|
+
export function fromSecp256k1Point(o) {
|
|
2511
|
+
if (o.x === undefined) {
|
|
2512
|
+
throw new Error("Expected x in Secp256k1Point serialization");
|
|
2513
|
+
}
|
|
2514
|
+
if (o.y === undefined) {
|
|
2515
|
+
throw new Error("Expected y in Secp256k1Point serialization");
|
|
2516
|
+
}
|
|
2517
|
+
;
|
|
2518
|
+
return {
|
|
2519
|
+
x: o.x,
|
|
2520
|
+
y: o.y,
|
|
2239
2521
|
};
|
|
2240
2522
|
}
|
|
2241
2523
|
export function toSecp256k1Reduce512(o) {
|
|
@@ -2274,6 +2556,32 @@ export function fromSecp256k1Reduce512Response(o) {
|
|
|
2274
2556
|
value: o.value,
|
|
2275
2557
|
};
|
|
2276
2558
|
}
|
|
2559
|
+
export function toSecp256r1Point(o) {
|
|
2560
|
+
if (o.x === undefined) {
|
|
2561
|
+
throw new Error("Expected x in Secp256r1Point deserialization");
|
|
2562
|
+
}
|
|
2563
|
+
if (o.y === undefined) {
|
|
2564
|
+
throw new Error("Expected y in Secp256r1Point deserialization");
|
|
2565
|
+
}
|
|
2566
|
+
;
|
|
2567
|
+
return {
|
|
2568
|
+
x: o.x,
|
|
2569
|
+
y: o.y,
|
|
2570
|
+
};
|
|
2571
|
+
}
|
|
2572
|
+
export function fromSecp256r1Point(o) {
|
|
2573
|
+
if (o.x === undefined) {
|
|
2574
|
+
throw new Error("Expected x in Secp256r1Point serialization");
|
|
2575
|
+
}
|
|
2576
|
+
if (o.y === undefined) {
|
|
2577
|
+
throw new Error("Expected y in Secp256r1Point serialization");
|
|
2578
|
+
}
|
|
2579
|
+
;
|
|
2580
|
+
return {
|
|
2581
|
+
x: o.x,
|
|
2582
|
+
y: o.y,
|
|
2583
|
+
};
|
|
2584
|
+
}
|
|
2277
2585
|
export function toShutdown(o) {
|
|
2278
2586
|
return {};
|
|
2279
2587
|
}
|
|
@@ -2418,4 +2726,4 @@ export function fromVkAsFieldsResponse(o) {
|
|
|
2418
2726
|
fields: o.fields.map((v) => v),
|
|
2419
2727
|
};
|
|
2420
2728
|
}
|
|
2421
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpX3R5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NiaW5kL2dlbmVyYXRlZC9hcGlfdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsbUNBQW1DO0FBZzdEbkMsa0NBQWtDO0FBQ2xDLE1BQU0sVUFBVSxZQUFZLENBQUMsQ0FBb0I7SUFDL0MsSUFBSSxDQUFDLENBQUMsVUFBVSxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxtREFBbUQsQ0FBQyxDQUFDO0lBQUMsQ0FBQztJQUN6RyxJQUFJLENBQUMsQ0FBQyxFQUFFLEtBQUssU0FBUyxFQUFFLENBQUM7UUFBQyxNQUFNLElBQUksS0FBSyxDQUFDLDJDQUEyQyxDQUFDLENBQUM7SUFBQyxDQUFDO0lBQ3pGLElBQUksQ0FBQyxDQUFDLEdBQUcsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsNENBQTRDLENBQUMsQ0FBQztJQUFDLENBQUM7SUFDM0YsSUFBSSxDQUFDLENBQUMsTUFBTSxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQywrQ0FBK0MsQ0FBQyxDQUFDO0lBQUMsQ0FBQztJQUFBLENBQUM7SUFDbEcsT0FBTztRQUNMLFVBQVUsRUFBRSxDQUFDLENBQUMsVUFBVTtRQUN4QixFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUU7UUFDUixHQUFHLEVBQUUsQ0FBQyxDQUFDLEdBQUc7UUFDVixNQUFNLEVBQUUsQ0FBQyxDQUFDLE1BQU07S0FDakIsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsY0FBYyxDQUFDLENBQWE7SUFDMUMsSUFBSSxDQUFDLENBQUMsVUFBVSxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxpREFBaUQsQ0FBQyxDQUFDO0lBQUMsQ0FBQztJQUN2RyxJQUFJLENBQUMsQ0FBQyxFQUFF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
|
|
2729
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpX3R5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NiaW5kL2dlbmVyYXRlZC9hcGlfdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsbUNBQW1DO0FBK3FFbkMsa0NBQWtDO0FBQ2xDLE1BQU0sVUFBVSxZQUFZLENBQUMsQ0FBb0IsRUFBYztJQUM3RCxJQUFJLENBQUMsQ0FBQyxVQUFVLEtBQUssU0FBUyxFQUFFLENBQUM7UUFBQyxNQUFNLElBQUksS0FBSyxDQUFDLG1EQUFtRCxDQUFDLENBQUM7SUFBQyxDQUFDO0lBQ3pHLElBQUksQ0FBQyxDQUFDLEVBQUUsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsMkNBQTJDLENBQUMsQ0FBQztJQUFDLENBQUM7SUFDekYsSUFBSSxDQUFDLENBQUMsR0FBRyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFDO0lBQUMsQ0FBQztJQUMzRixJQUFJLENBQUMsQ0FBQyxNQUFNLEtBQUssU0FBUyxFQUFFLENBQUM7UUFBQyxNQUFNLElBQUksS0FBSyxDQUFDLCtDQUErQyxDQUFDLENBQUM7SUFBQyxDQUFDO0lBQUEsQ0FBQztJQUNsRyxPQUFPO1FBQ0wsVUFBVSxFQUFFLENBQUMsQ0FBQyxVQUFVO1FBQ3hCLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRTtRQUNSLEdBQUcsRUFBRSxDQUFDLENBQUMsR0FBRztRQUNWLE1BQU0sRUFBRSxDQUFDLENBQUMsTUFBTTtLQUNqQixDQUFDO0FBQUEsQ0FDSDtBQUVELE1BQU0sVUFBVSxjQUFjLENBQUMsQ0FBYSxFQUFxQjtJQUMvRCxJQUFJLENBQUMsQ0FBQyxVQUFVLEtBQUssU0FBUyxFQUFFLENBQUM7UUFBQyxNQUFNLElBQUksS0FBSyxDQUFDLGlEQUFpRCxDQUFDLENBQUM7SUFBQyxDQUFDO0lBQ3ZHLElBQUksQ0FB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
|