@aztec/bb.js 3.0.0-canary.a9708bd → 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/README.md +13 -79
- 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 +32 -41
- package/dest/browser/barretenberg/backend.d.ts.map +1 -1
- package/dest/browser/barretenberg/backend.js +128 -108
- package/dest/browser/barretenberg/index.d.ts +47 -48
- package/dest/browser/barretenberg/index.d.ts.map +1 -1
- package/dest/browser/barretenberg/index.js +132 -90
- 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 +2 -2
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_base/index.d.ts.map +1 -1
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_base/index.js +6 -7
- 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 +5 -5
- 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 +20 -11
- package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/index.d.ts +16 -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 +94 -26
- 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 +11 -0
- package/dest/browser/bb_backends/browser/index.d.ts.map +1 -0
- package/dest/browser/bb_backends/browser/index.js +39 -0
- package/dest/browser/bb_backends/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 +50 -0
- package/dest/browser/bb_backends/index.d.ts.map +1 -0
- package/dest/browser/bb_backends/index.js +16 -0
- package/dest/browser/bb_backends/interface.d.ts +33 -0
- package/dest/browser/bb_backends/interface.d.ts.map +1 -0
- package/dest/browser/bb_backends/interface.js +2 -0
- package/dest/browser/bb_backends/wasm.d.ts +49 -0
- package/dest/browser/bb_backends/wasm.d.ts.map +1 -0
- package/dest/browser/bb_backends/wasm.js +85 -0
- package/dest/browser/bbapi_exception.d.ts +7 -0
- package/dest/browser/bbapi_exception.d.ts.map +1 -0
- package/dest/browser/bbapi_exception.js +14 -0
- package/dest/browser/bin/index.d.ts +3 -0
- package/dest/{node/bindgen → browser/bin}/index.d.ts.map +1 -1
- package/dest/browser/bin/index.js +11 -0
- package/dest/browser/cbind/generate.d.ts +1 -1
- package/dest/browser/cbind/generate.js +94 -7
- package/dest/browser/cbind/generated/api_types.d.ts +1629 -230
- package/dest/browser/cbind/generated/api_types.d.ts.map +1 -1
- package/dest/browser/cbind/generated/api_types.js +2349 -479
- package/dest/browser/cbind/generated/async.d.ts +53 -14
- package/dest/browser/cbind/generated/async.d.ts.map +1 -1
- package/dest/browser/cbind/generated/async.js +587 -72
- package/dest/browser/cbind/generated/curve_constants.d.ts +45 -0
- package/dest/browser/cbind/generated/curve_constants.d.ts.map +1 -0
- package/dest/browser/cbind/generated/curve_constants.js +45 -0
- package/dest/browser/cbind/generated/sync.d.ts +54 -15
- package/dest/browser/cbind/generated/sync.d.ts.map +1 -1
- package/dest/browser/cbind/generated/sync.js +549 -72
- package/dest/browser/cbind/schema_compiler.d.ts +3 -5
- package/dest/browser/cbind/schema_compiler.d.ts.map +1 -1
- package/dest/browser/cbind/schema_compiler.js +102 -185
- 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 +6 -3
- 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/__snapshots__/pedersen.test.js.snap +2 -2
- package/dest/node/barretenberg/__snapshots__/poseidon.test.js.snap +3 -3
- package/dest/node/barretenberg/backend.d.ts +32 -41
- package/dest/node/barretenberg/backend.d.ts.map +1 -1
- package/dest/node/barretenberg/backend.js +128 -108
- package/dest/node/barretenberg/blake2s.test.d.ts +1 -1
- package/dest/node/barretenberg/blake2s.test.js +21 -18
- package/dest/node/barretenberg/index.d.ts +47 -48
- package/dest/node/barretenberg/index.d.ts.map +1 -1
- package/dest/node/barretenberg/index.js +132 -90
- package/dest/node/barretenberg/pedersen.test.d.ts +1 -1
- package/dest/node/barretenberg/pedersen.test.js +25 -18
- package/dest/node/barretenberg/poseidon.bench.test.d.ts +2 -0
- package/dest/node/barretenberg/poseidon.bench.test.d.ts.map +1 -0
- package/dest/node/barretenberg/poseidon.bench.test.js +218 -0
- package/dest/node/barretenberg/poseidon.test.d.ts +1 -1
- package/dest/node/barretenberg/poseidon.test.js +16 -16
- 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 +2 -2
- package/dest/node/barretenberg_wasm/barretenberg_wasm_base/index.d.ts.map +1 -1
- package/dest/node/barretenberg_wasm/barretenberg_wasm_base/index.js +6 -7
- 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 +5 -5
- 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 +20 -11
- package/dest/node/barretenberg_wasm/barretenberg_wasm_main/index.d.ts +16 -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 +94 -26
- 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 +11 -10
- package/dest/node/bb_backends/browser/index.d.ts +11 -0
- package/dest/node/bb_backends/browser/index.d.ts.map +1 -0
- package/dest/node/bb_backends/browser/index.js +39 -0
- package/dest/node/bb_backends/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 +50 -0
- package/dest/node/bb_backends/index.d.ts.map +1 -0
- package/dest/node/bb_backends/index.js +16 -0
- package/dest/node/bb_backends/interface.d.ts +33 -0
- package/dest/node/bb_backends/interface.d.ts.map +1 -0
- package/dest/node/bb_backends/interface.js +2 -0
- package/dest/node/bb_backends/node/index.d.ts +11 -0
- package/dest/node/bb_backends/node/index.d.ts.map +1 -0
- package/dest/node/bb_backends/node/index.js +86 -0
- package/dest/node/bb_backends/node/native_pipe.d.ts +25 -0
- package/dest/node/bb_backends/node/native_pipe.d.ts.map +1 -0
- package/dest/node/bb_backends/node/native_pipe.js +114 -0
- package/dest/node/bb_backends/node/native_shm.d.ts +28 -0
- package/dest/node/bb_backends/node/native_shm.d.ts.map +1 -0
- package/dest/node/bb_backends/node/native_shm.js +172 -0
- 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 +34 -0
- package/dest/node/bb_backends/node/native_socket.d.ts.map +1 -0
- package/dest/node/bb_backends/node/native_socket.js +281 -0
- package/dest/node/bb_backends/node/platform.d.ts +27 -0
- package/dest/node/bb_backends/node/platform.d.ts.map +1 -0
- package/dest/node/bb_backends/node/platform.js +129 -0
- package/dest/node/bb_backends/wasm.d.ts +49 -0
- package/dest/node/bb_backends/wasm.d.ts.map +1 -0
- package/dest/node/bb_backends/wasm.js +85 -0
- 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 +94 -7
- package/dest/node/cbind/generated/api_types.d.ts +1629 -230
- package/dest/node/cbind/generated/api_types.d.ts.map +1 -1
- package/dest/node/cbind/generated/api_types.js +2349 -479
- package/dest/node/cbind/generated/async.d.ts +53 -14
- package/dest/node/cbind/generated/async.d.ts.map +1 -1
- package/dest/node/cbind/generated/async.js +587 -72
- package/dest/node/cbind/generated/curve_constants.d.ts +45 -0
- package/dest/node/cbind/generated/curve_constants.d.ts.map +1 -0
- package/dest/node/cbind/generated/curve_constants.js +45 -0
- package/dest/node/cbind/generated/sync.d.ts +54 -15
- package/dest/node/cbind/generated/sync.d.ts.map +1 -1
- package/dest/node/cbind/generated/sync.js +549 -72
- package/dest/node/cbind/schema_compiler.d.ts +3 -5
- package/dest/node/cbind/schema_compiler.d.ts.map +1 -1
- package/dest/node/cbind/schema_compiler.js +102 -185
- 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 +6 -3
- 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 +32 -41
- package/dest/node-cjs/barretenberg/backend.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg/backend.js +131 -111
- package/dest/node-cjs/barretenberg/blake2s.test.d.ts +1 -1
- package/dest/node-cjs/barretenberg/blake2s.test.js +22 -19
- package/dest/node-cjs/barretenberg/index.d.ts +47 -48
- package/dest/node-cjs/barretenberg/index.d.ts.map +1 -1
- package/dest/node-cjs/barretenberg/index.js +136 -93
- package/dest/node-cjs/barretenberg/pedersen.test.d.ts +1 -1
- package/dest/node-cjs/barretenberg/pedersen.test.js +27 -20
- package/dest/node-cjs/barretenberg/poseidon.bench.test.d.ts +2 -0
- package/dest/node-cjs/barretenberg/poseidon.bench.test.d.ts.map +1 -0
- package/dest/node-cjs/barretenberg/poseidon.bench.test.js +220 -0
- package/dest/node-cjs/barretenberg/poseidon.test.d.ts +1 -1
- package/dest/node-cjs/barretenberg/poseidon.test.js +16 -16
- 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 +2 -2
- 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 +8 -9
- 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 +5 -5
- 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 +20 -11
- package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/index.d.ts +16 -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 +94 -26
- 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 +11 -10
- package/dest/node-cjs/bb_backends/browser/index.d.ts +11 -0
- package/dest/node-cjs/bb_backends/browser/index.d.ts.map +1 -0
- package/dest/node-cjs/bb_backends/browser/index.js +43 -0
- package/dest/node-cjs/bb_backends/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 +50 -0
- package/dest/node-cjs/bb_backends/index.d.ts.map +1 -0
- package/dest/node-cjs/bb_backends/index.js +18 -0
- package/dest/node-cjs/bb_backends/interface.d.ts +33 -0
- package/dest/node-cjs/bb_backends/interface.d.ts.map +1 -0
- package/dest/node-cjs/bb_backends/interface.js +3 -0
- package/dest/node-cjs/bb_backends/node/index.d.ts +11 -0
- package/dest/node-cjs/bb_backends/node/index.d.ts.map +1 -0
- package/dest/node-cjs/bb_backends/node/index.js +90 -0
- package/dest/node-cjs/bb_backends/node/native_pipe.d.ts +25 -0
- package/dest/node-cjs/bb_backends/node/native_pipe.d.ts.map +1 -0
- package/dest/node-cjs/bb_backends/node/native_pipe.js +118 -0
- package/dest/node-cjs/bb_backends/node/native_shm.d.ts +28 -0
- package/dest/node-cjs/bb_backends/node/native_shm.d.ts.map +1 -0
- package/dest/node-cjs/bb_backends/node/native_shm.js +176 -0
- 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 +34 -0
- package/dest/node-cjs/bb_backends/node/native_socket.d.ts.map +1 -0
- package/dest/node-cjs/bb_backends/node/native_socket.js +286 -0
- package/dest/node-cjs/bb_backends/node/platform.d.ts +27 -0
- package/dest/node-cjs/bb_backends/node/platform.d.ts.map +1 -0
- package/dest/node-cjs/bb_backends/node/platform.js +136 -0
- package/dest/node-cjs/bb_backends/wasm.d.ts +49 -0
- package/dest/node-cjs/bb_backends/wasm.d.ts.map +1 -0
- package/dest/node-cjs/bb_backends/wasm.js +90 -0
- 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/{bindgen → bin}/index.d.ts.map +1 -1
- 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 -6
- package/dest/node-cjs/cbind/generated/api_types.d.ts +1629 -230
- package/dest/node-cjs/cbind/generated/api_types.d.ts.map +1 -1
- package/dest/node-cjs/cbind/generated/api_types.js +2555 -519
- package/dest/node-cjs/cbind/generated/async.d.ts +53 -14
- package/dest/node-cjs/cbind/generated/async.d.ts.map +1 -1
- package/dest/node-cjs/cbind/generated/async.js +586 -71
- package/dest/node-cjs/cbind/generated/curve_constants.d.ts +45 -0
- package/dest/node-cjs/cbind/generated/curve_constants.d.ts.map +1 -0
- package/dest/node-cjs/cbind/generated/curve_constants.js +48 -0
- package/dest/node-cjs/cbind/generated/sync.d.ts +54 -15
- package/dest/node-cjs/cbind/generated/sync.d.ts.map +1 -1
- package/dest/node-cjs/cbind/generated/sync.js +548 -71
- package/dest/node-cjs/cbind/schema_compiler.d.ts +3 -5
- package/dest/node-cjs/cbind/schema_compiler.d.ts.map +1 -1
- package/dest/node-cjs/cbind/schema_compiler.js +102 -186
- 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 +29 -12
- 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 +12 -10
- package/src/barretenberg/__snapshots__/pedersen.test.ts.snap +2 -2
- package/src/barretenberg/__snapshots__/poseidon.test.ts.snap +3 -3
- package/src/barretenberg/backend.ts +165 -154
- package/src/barretenberg/blake2s.test.ts +20 -21
- package/src/barretenberg/index.ts +144 -130
- package/src/barretenberg/pedersen.test.ts +24 -17
- package/src/barretenberg/poseidon.bench.test.ts +271 -0
- package/src/barretenberg/poseidon.test.ts +15 -15
- package/src/barretenberg/testing/fields.ts +63 -0
- package/src/barretenberg_wasm/barretenberg_wasm_base/index.ts +4 -5
- 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 +17 -9
- package/src/barretenberg_wasm/barretenberg_wasm_main/index.ts +104 -20
- 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.test.ts +12 -11
- package/src/barretenberg_wasm/index.ts +1 -2
- package/src/bb_backends/browser/index.ts +50 -0
- package/src/bb_backends/browser/platform.ts +11 -0
- package/src/bb_backends/index.ts +55 -0
- package/src/bb_backends/interface.ts +35 -0
- package/src/bb_backends/node/index.ts +107 -0
- package/src/bb_backends/node/native_pipe.ts +127 -0
- package/src/bb_backends/node/native_shm.ts +190 -0
- package/src/bb_backends/node/native_shm_async.ts +261 -0
- package/src/bb_backends/node/native_socket.ts +325 -0
- package/src/bb_backends/node/platform.ts +156 -0
- package/src/bb_backends/wasm.ts +102 -0
- 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/README.md +1 -1
- package/src/cbind/generate.ts +99 -6
- package/src/cbind/generated/api_types.ts +4241 -0
- package/src/cbind/generated/async.ts +717 -0
- package/src/cbind/generated/curve_constants.ts +53 -0
- package/src/cbind/generated/sync.ts +663 -0
- package/src/cbind/schema_compiler.ts +156 -244
- package/src/crs/node/index.ts +4 -5
- package/src/index.ts +33 -1
- package/dest/browser/barretenberg_api/index.d.ts +0 -109
- package/dest/browser/barretenberg_api/index.d.ts.map +0 -1
- package/dest/browser/barretenberg_api/index.js +0 -699
- package/dest/browser/bigint-array/index.d.ts +0 -17
- package/dest/browser/bigint-array/index.d.ts.map +0 -1
- package/dest/browser/bigint-array/index.js +0 -37
- package/dest/browser/cbind/generated/native.d.ts +0 -31
- package/dest/browser/cbind/generated/native.d.ts.map +0 -1
- package/dest/browser/cbind/generated/native.js +0 -234
- package/dest/browser/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 -4
- package/dest/browser/serialize/index.d.ts.map +0 -1
- package/dest/browser/serialize/index.js +0 -4
- package/dest/browser/serialize/output_type.d.ts +0 -11
- package/dest/browser/serialize/output_type.d.ts.map +0 -1
- package/dest/browser/serialize/output_type.js +0 -44
- package/dest/browser/serialize/serialize.d.ts +0 -53
- package/dest/browser/serialize/serialize.d.ts.map +0 -1
- package/dest/browser/serialize/serialize.js +0 -139
- 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/fixed_size_buffer.d.ts +0 -26
- package/dest/browser/types/fixed_size_buffer.d.ts.map +0 -1
- package/dest/browser/types/fixed_size_buffer.js +0 -51
- package/dest/browser/types/index.d.ts +0 -6
- package/dest/browser/types/index.d.ts.map +0 -1
- package/dest/browser/types/index.js +0 -6
- 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/browser/types/ptr.d.ts +0 -13
- package/dest/browser/types/ptr.d.ts.map +0 -1
- package/dest/browser/types/ptr.js +0 -19
- package/dest/browser/types/raw_buffer.d.ts +0 -3
- package/dest/browser/types/raw_buffer.d.ts.map +0 -1
- package/dest/browser/types/raw_buffer.js +0 -5
- package/dest/node/barretenberg/common.test.d.ts +0 -2
- package/dest/node/barretenberg/common.test.d.ts.map +0 -1
- package/dest/node/barretenberg/common.test.js +0 -20
- package/dest/node/barretenberg_api/index.d.ts +0 -109
- package/dest/node/barretenberg_api/index.d.ts.map +0 -1
- package/dest/node/barretenberg_api/index.js +0 -699
- package/dest/node/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/bindgen/function_declaration.d.ts +0 -11
- package/dest/node/bindgen/function_declaration.d.ts.map +0 -1
- package/dest/node/bindgen/function_declaration.js +0 -2
- package/dest/node/bindgen/index.d.ts +0 -2
- package/dest/node/bindgen/index.js +0 -15
- package/dest/node/bindgen/mappings.d.ts +0 -4
- package/dest/node/bindgen/mappings.d.ts.map +0 -1
- package/dest/node/bindgen/mappings.js +0 -64
- package/dest/node/bindgen/rust.d.ts +0 -2
- package/dest/node/bindgen/rust.d.ts.map +0 -1
- package/dest/node/bindgen/rust.js +0 -43
- package/dest/node/bindgen/to_camel_case.d.ts +0 -2
- package/dest/node/bindgen/to_camel_case.d.ts.map +0 -1
- package/dest/node/bindgen/to_camel_case.js +0 -11
- package/dest/node/bindgen/typescript.d.ts +0 -2
- package/dest/node/bindgen/typescript.d.ts.map +0 -1
- package/dest/node/bindgen/typescript.js +0 -100
- package/dest/node/cbind/generated/native.d.ts +0 -31
- package/dest/node/cbind/generated/native.d.ts.map +0 -1
- package/dest/node/cbind/generated/native.js +0 -234
- package/dest/node/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/main.d.ts +0 -13
- package/dest/node/main.d.ts.map +0 -1
- package/dest/node/main.js +0 -459
- package/dest/node/serialize/buffer_reader.d.ts +0 -28
- package/dest/node/serialize/buffer_reader.d.ts.map +0 -1
- package/dest/node/serialize/buffer_reader.js +0 -66
- package/dest/node/serialize/index.d.ts +0 -4
- package/dest/node/serialize/index.d.ts.map +0 -1
- package/dest/node/serialize/index.js +0 -4
- package/dest/node/serialize/output_type.d.ts +0 -11
- package/dest/node/serialize/output_type.d.ts.map +0 -1
- package/dest/node/serialize/output_type.js +0 -44
- package/dest/node/serialize/serialize.d.ts +0 -53
- package/dest/node/serialize/serialize.d.ts.map +0 -1
- package/dest/node/serialize/serialize.js +0 -139
- 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/fixed_size_buffer.d.ts +0 -26
- package/dest/node/types/fixed_size_buffer.d.ts.map +0 -1
- package/dest/node/types/fixed_size_buffer.js +0 -51
- package/dest/node/types/index.d.ts +0 -6
- package/dest/node/types/index.d.ts.map +0 -1
- package/dest/node/types/index.js +0 -6
- 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/types/ptr.d.ts +0 -13
- package/dest/node/types/ptr.d.ts.map +0 -1
- package/dest/node/types/ptr.js +0 -19
- package/dest/node/types/raw_buffer.d.ts +0 -3
- package/dest/node/types/raw_buffer.d.ts.map +0 -1
- package/dest/node/types/raw_buffer.js +0 -5
- package/dest/node-cjs/barretenberg/common.test.d.ts +0 -2
- package/dest/node-cjs/barretenberg/common.test.d.ts.map +0 -1
- package/dest/node-cjs/barretenberg/common.test.js +0 -22
- package/dest/node-cjs/barretenberg_api/index.d.ts +0 -109
- package/dest/node-cjs/barretenberg_api/index.d.ts.map +0 -1
- package/dest/node-cjs/barretenberg_api/index.js +0 -704
- package/dest/node-cjs/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/bindgen/function_declaration.d.ts +0 -11
- package/dest/node-cjs/bindgen/function_declaration.d.ts.map +0 -1
- package/dest/node-cjs/bindgen/function_declaration.js +0 -3
- package/dest/node-cjs/bindgen/index.d.ts +0 -2
- package/dest/node-cjs/bindgen/index.js +0 -17
- package/dest/node-cjs/bindgen/mappings.d.ts +0 -4
- package/dest/node-cjs/bindgen/mappings.d.ts.map +0 -1
- package/dest/node-cjs/bindgen/mappings.js +0 -69
- package/dest/node-cjs/bindgen/rust.d.ts +0 -2
- package/dest/node-cjs/bindgen/rust.d.ts.map +0 -1
- package/dest/node-cjs/bindgen/rust.js +0 -47
- package/dest/node-cjs/bindgen/to_camel_case.d.ts +0 -2
- package/dest/node-cjs/bindgen/to_camel_case.d.ts.map +0 -1
- package/dest/node-cjs/bindgen/to_camel_case.js +0 -14
- package/dest/node-cjs/bindgen/typescript.d.ts +0 -2
- package/dest/node-cjs/bindgen/typescript.d.ts.map +0 -1
- package/dest/node-cjs/bindgen/typescript.js +0 -104
- package/dest/node-cjs/cbind/generated/native.d.ts +0 -31
- package/dest/node-cjs/cbind/generated/native.d.ts.map +0 -1
- package/dest/node-cjs/cbind/generated/native.js +0 -238
- package/dest/node-cjs/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/main.d.ts +0 -13
- package/dest/node-cjs/main.d.ts.map +0 -1
- package/dest/node-cjs/main.js +0 -470
- package/dest/node-cjs/serialize/buffer_reader.d.ts +0 -28
- package/dest/node-cjs/serialize/buffer_reader.d.ts.map +0 -1
- package/dest/node-cjs/serialize/buffer_reader.js +0 -70
- package/dest/node-cjs/serialize/index.d.ts +0 -4
- package/dest/node-cjs/serialize/index.d.ts.map +0 -1
- package/dest/node-cjs/serialize/index.js +0 -7
- package/dest/node-cjs/serialize/output_type.d.ts +0 -11
- package/dest/node-cjs/serialize/output_type.d.ts.map +0 -1
- package/dest/node-cjs/serialize/output_type.js +0 -51
- package/dest/node-cjs/serialize/serialize.d.ts +0 -53
- package/dest/node-cjs/serialize/serialize.d.ts.map +0 -1
- package/dest/node-cjs/serialize/serialize.js +0 -160
- 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/fixed_size_buffer.d.ts +0 -26
- package/dest/node-cjs/types/fixed_size_buffer.d.ts.map +0 -1
- package/dest/node-cjs/types/fixed_size_buffer.js +0 -57
- package/dest/node-cjs/types/index.d.ts +0 -6
- package/dest/node-cjs/types/index.d.ts.map +0 -1
- package/dest/node-cjs/types/index.js +0 -9
- 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/dest/node-cjs/types/ptr.d.ts +0 -13
- package/dest/node-cjs/types/ptr.d.ts.map +0 -1
- package/dest/node-cjs/types/ptr.js +0 -23
- package/dest/node-cjs/types/raw_buffer.d.ts +0 -3
- package/dest/node-cjs/types/raw_buffer.d.ts.map +0 -1
- package/dest/node-cjs/types/raw_buffer.js +0 -9
- package/src/barretenberg/common.test.ts +0 -23
- package/src/barretenberg_api/index.ts +0 -1216
- package/src/bindgen/function_declaration.ts +0 -11
- package/src/bindgen/index.ts +0 -17
- package/src/bindgen/mappings.ts +0 -67
- package/src/bindgen/rust.ts +0 -52
- package/src/bindgen/to_camel_case.ts +0 -10
- package/src/bindgen/typescript.ts +0 -116
- package/src/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/main.ts +0 -534
- package/src/serialize/buffer_reader.ts +0 -85
- package/src/serialize/index.ts +0 -3
- package/src/serialize/output_type.ts +0 -53
- package/src/serialize/serialize.ts +0 -157
- package/src/types/fields.ts +0 -126
- package/src/types/fixed_size_buffer.ts +0 -59
- package/src/types/index.ts +0 -5
- package/src/types/point.ts +0 -38
- package/src/types/ptr.ts +0 -20
- package/src/types/raw_buffer.ts +0 -3
- /package/src/{bigint-array/index.ts → barretenberg/testing/bigint-buffer.ts} +0 -0
|
@@ -1,823 +1,2693 @@
|
|
|
1
1
|
// AUTOGENERATED FILE - DO NOT EDIT
|
|
2
2
|
// Conversion functions (exported)
|
|
3
|
-
export function
|
|
4
|
-
if (o.
|
|
5
|
-
throw new Error("Expected
|
|
3
|
+
export function toAesDecrypt(o) {
|
|
4
|
+
if (o.ciphertext === undefined) {
|
|
5
|
+
throw new Error("Expected ciphertext in AesDecrypt deserialization");
|
|
6
6
|
}
|
|
7
|
-
if (o.
|
|
8
|
-
throw new Error("Expected
|
|
7
|
+
if (o.iv === undefined) {
|
|
8
|
+
throw new Error("Expected iv in AesDecrypt deserialization");
|
|
9
|
+
}
|
|
10
|
+
if (o.key === undefined) {
|
|
11
|
+
throw new Error("Expected key in AesDecrypt deserialization");
|
|
12
|
+
}
|
|
13
|
+
if (o.length === undefined) {
|
|
14
|
+
throw new Error("Expected length in AesDecrypt deserialization");
|
|
9
15
|
}
|
|
10
16
|
;
|
|
11
17
|
return {
|
|
12
|
-
|
|
13
|
-
|
|
18
|
+
ciphertext: o.ciphertext,
|
|
19
|
+
iv: o.iv,
|
|
20
|
+
key: o.key,
|
|
21
|
+
length: o.length,
|
|
14
22
|
};
|
|
15
23
|
}
|
|
16
|
-
export function
|
|
17
|
-
if (o.
|
|
18
|
-
throw new Error("Expected
|
|
24
|
+
export function fromAesDecrypt(o) {
|
|
25
|
+
if (o.ciphertext === undefined) {
|
|
26
|
+
throw new Error("Expected ciphertext in AesDecrypt serialization");
|
|
19
27
|
}
|
|
20
|
-
if (o.
|
|
21
|
-
throw new Error("Expected
|
|
28
|
+
if (o.iv === undefined) {
|
|
29
|
+
throw new Error("Expected iv in AesDecrypt serialization");
|
|
30
|
+
}
|
|
31
|
+
if (o.key === undefined) {
|
|
32
|
+
throw new Error("Expected key in AesDecrypt serialization");
|
|
33
|
+
}
|
|
34
|
+
if (o.length === undefined) {
|
|
35
|
+
throw new Error("Expected length in AesDecrypt serialization");
|
|
22
36
|
}
|
|
23
37
|
;
|
|
24
38
|
return {
|
|
25
|
-
|
|
26
|
-
|
|
39
|
+
ciphertext: o.ciphertext,
|
|
40
|
+
iv: o.iv,
|
|
41
|
+
key: o.key,
|
|
42
|
+
length: o.length,
|
|
27
43
|
};
|
|
28
44
|
}
|
|
29
|
-
export function
|
|
30
|
-
if (o.
|
|
31
|
-
throw new Error("Expected
|
|
32
|
-
}
|
|
33
|
-
if (o.fields === undefined) {
|
|
34
|
-
throw new Error("Expected fields in CircuitComputeVkResponse deserialization");
|
|
35
|
-
}
|
|
36
|
-
if (o.hash === undefined) {
|
|
37
|
-
throw new Error("Expected hash in CircuitComputeVkResponse deserialization");
|
|
45
|
+
export function toAesDecryptResponse(o) {
|
|
46
|
+
if (o.plaintext === undefined) {
|
|
47
|
+
throw new Error("Expected plaintext in AesDecryptResponse deserialization");
|
|
38
48
|
}
|
|
39
49
|
;
|
|
40
50
|
return {
|
|
41
|
-
|
|
42
|
-
fields: o.fields.map((v) => v),
|
|
43
|
-
hash: o.hash,
|
|
51
|
+
plaintext: o.plaintext,
|
|
44
52
|
};
|
|
45
53
|
}
|
|
46
|
-
export function
|
|
47
|
-
if (o.
|
|
48
|
-
throw new Error("Expected
|
|
49
|
-
}
|
|
50
|
-
if (o.fields === undefined) {
|
|
51
|
-
throw new Error("Expected fields in CircuitComputeVkResponse serialization");
|
|
52
|
-
}
|
|
53
|
-
if (o.hash === undefined) {
|
|
54
|
-
throw new Error("Expected hash in CircuitComputeVkResponse serialization");
|
|
54
|
+
export function fromAesDecryptResponse(o) {
|
|
55
|
+
if (o.plaintext === undefined) {
|
|
56
|
+
throw new Error("Expected plaintext in AesDecryptResponse serialization");
|
|
55
57
|
}
|
|
56
58
|
;
|
|
57
59
|
return {
|
|
58
|
-
|
|
59
|
-
fields: o.fields.map((v) => v),
|
|
60
|
-
hash: o.hash,
|
|
60
|
+
plaintext: o.plaintext,
|
|
61
61
|
};
|
|
62
62
|
}
|
|
63
|
-
export function
|
|
64
|
-
if (o.
|
|
65
|
-
throw new Error("Expected
|
|
63
|
+
export function toAesEncrypt(o) {
|
|
64
|
+
if (o.plaintext === undefined) {
|
|
65
|
+
throw new Error("Expected plaintext in AesEncrypt deserialization");
|
|
66
66
|
}
|
|
67
|
-
if (o.
|
|
68
|
-
throw new Error("Expected
|
|
67
|
+
if (o.iv === undefined) {
|
|
68
|
+
throw new Error("Expected iv in AesEncrypt deserialization");
|
|
69
69
|
}
|
|
70
|
-
if (o.
|
|
71
|
-
throw new Error("Expected
|
|
70
|
+
if (o.key === undefined) {
|
|
71
|
+
throw new Error("Expected key in AesEncrypt deserialization");
|
|
72
72
|
}
|
|
73
|
-
if (o.
|
|
74
|
-
throw new Error("Expected
|
|
73
|
+
if (o.length === undefined) {
|
|
74
|
+
throw new Error("Expected length in AesEncrypt deserialization");
|
|
75
75
|
}
|
|
76
76
|
;
|
|
77
77
|
return {
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
78
|
+
plaintext: o.plaintext,
|
|
79
|
+
iv: o.iv,
|
|
80
|
+
key: o.key,
|
|
81
|
+
length: o.length,
|
|
82
82
|
};
|
|
83
83
|
}
|
|
84
|
-
export function
|
|
85
|
-
if (o.
|
|
86
|
-
throw new Error("Expected
|
|
84
|
+
export function fromAesEncrypt(o) {
|
|
85
|
+
if (o.plaintext === undefined) {
|
|
86
|
+
throw new Error("Expected plaintext in AesEncrypt serialization");
|
|
87
87
|
}
|
|
88
|
-
if (o.
|
|
89
|
-
throw new Error("Expected
|
|
88
|
+
if (o.iv === undefined) {
|
|
89
|
+
throw new Error("Expected iv in AesEncrypt serialization");
|
|
90
90
|
}
|
|
91
|
-
if (o.
|
|
92
|
-
throw new Error("Expected
|
|
91
|
+
if (o.key === undefined) {
|
|
92
|
+
throw new Error("Expected key in AesEncrypt serialization");
|
|
93
93
|
}
|
|
94
|
-
if (o.
|
|
95
|
-
throw new Error("Expected
|
|
94
|
+
if (o.length === undefined) {
|
|
95
|
+
throw new Error("Expected length in AesEncrypt serialization");
|
|
96
96
|
}
|
|
97
97
|
;
|
|
98
98
|
return {
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
99
|
+
plaintext: o.plaintext,
|
|
100
|
+
iv: o.iv,
|
|
101
|
+
key: o.key,
|
|
102
|
+
length: o.length,
|
|
103
103
|
};
|
|
104
104
|
}
|
|
105
|
-
export function
|
|
106
|
-
if (o.
|
|
107
|
-
throw new Error("Expected
|
|
108
|
-
}
|
|
109
|
-
if (o.bytecode === undefined) {
|
|
110
|
-
throw new Error("Expected bytecode in CircuitInput deserialization");
|
|
111
|
-
}
|
|
112
|
-
if (o.verification_key === undefined) {
|
|
113
|
-
throw new Error("Expected verification_key in CircuitInput deserialization");
|
|
105
|
+
export function toAesEncryptResponse(o) {
|
|
106
|
+
if (o.ciphertext === undefined) {
|
|
107
|
+
throw new Error("Expected ciphertext in AesEncryptResponse deserialization");
|
|
114
108
|
}
|
|
115
109
|
;
|
|
116
110
|
return {
|
|
117
|
-
|
|
118
|
-
bytecode: o.bytecode,
|
|
119
|
-
verificationKey: o.verification_key,
|
|
111
|
+
ciphertext: o.ciphertext,
|
|
120
112
|
};
|
|
121
113
|
}
|
|
122
|
-
export function
|
|
123
|
-
if (o.
|
|
124
|
-
throw new Error("Expected
|
|
114
|
+
export function fromAesEncryptResponse(o) {
|
|
115
|
+
if (o.ciphertext === undefined) {
|
|
116
|
+
throw new Error("Expected ciphertext in AesEncryptResponse serialization");
|
|
125
117
|
}
|
|
126
|
-
|
|
127
|
-
|
|
118
|
+
;
|
|
119
|
+
return {
|
|
120
|
+
ciphertext: o.ciphertext,
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
export function toBlake2s(o) {
|
|
124
|
+
if (o.data === undefined) {
|
|
125
|
+
throw new Error("Expected data in Blake2s deserialization");
|
|
128
126
|
}
|
|
129
|
-
|
|
130
|
-
|
|
127
|
+
;
|
|
128
|
+
return {
|
|
129
|
+
data: o.data,
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
export function fromBlake2s(o) {
|
|
133
|
+
if (o.data === undefined) {
|
|
134
|
+
throw new Error("Expected data in Blake2s serialization");
|
|
131
135
|
}
|
|
132
136
|
;
|
|
133
137
|
return {
|
|
134
|
-
|
|
135
|
-
bytecode: o.bytecode,
|
|
136
|
-
verification_key: o.verificationKey,
|
|
138
|
+
data: o.data,
|
|
137
139
|
};
|
|
138
140
|
}
|
|
139
|
-
export function
|
|
140
|
-
if (o.
|
|
141
|
-
throw new Error("Expected
|
|
141
|
+
export function toBlake2sResponse(o) {
|
|
142
|
+
if (o.hash === undefined) {
|
|
143
|
+
throw new Error("Expected hash in Blake2sResponse deserialization");
|
|
142
144
|
}
|
|
143
|
-
|
|
144
|
-
|
|
145
|
+
;
|
|
146
|
+
return {
|
|
147
|
+
hash: o.hash,
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
export function fromBlake2sResponse(o) {
|
|
151
|
+
if (o.hash === undefined) {
|
|
152
|
+
throw new Error("Expected hash in Blake2sResponse serialization");
|
|
145
153
|
}
|
|
146
154
|
;
|
|
147
155
|
return {
|
|
148
|
-
|
|
149
|
-
bytecode: o.bytecode,
|
|
156
|
+
hash: o.hash,
|
|
150
157
|
};
|
|
151
158
|
}
|
|
152
|
-
export function
|
|
153
|
-
if (o.
|
|
154
|
-
throw new Error("Expected
|
|
159
|
+
export function toBlake2sToField(o) {
|
|
160
|
+
if (o.data === undefined) {
|
|
161
|
+
throw new Error("Expected data in Blake2sToField deserialization");
|
|
155
162
|
}
|
|
156
|
-
|
|
157
|
-
|
|
163
|
+
;
|
|
164
|
+
return {
|
|
165
|
+
data: o.data,
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
export function fromBlake2sToField(o) {
|
|
169
|
+
if (o.data === undefined) {
|
|
170
|
+
throw new Error("Expected data in Blake2sToField serialization");
|
|
158
171
|
}
|
|
159
172
|
;
|
|
160
173
|
return {
|
|
161
|
-
|
|
162
|
-
bytecode: o.bytecode,
|
|
174
|
+
data: o.data,
|
|
163
175
|
};
|
|
164
176
|
}
|
|
165
|
-
export function
|
|
166
|
-
if (o.
|
|
167
|
-
throw new Error("Expected
|
|
177
|
+
export function toBlake2sToFieldResponse(o) {
|
|
178
|
+
if (o.field === undefined) {
|
|
179
|
+
throw new Error("Expected field in Blake2sToFieldResponse deserialization");
|
|
168
180
|
}
|
|
169
|
-
|
|
170
|
-
|
|
181
|
+
;
|
|
182
|
+
return {
|
|
183
|
+
field: o.field,
|
|
184
|
+
};
|
|
185
|
+
}
|
|
186
|
+
export function fromBlake2sToFieldResponse(o) {
|
|
187
|
+
if (o.field === undefined) {
|
|
188
|
+
throw new Error("Expected field in Blake2sToFieldResponse serialization");
|
|
171
189
|
}
|
|
172
|
-
|
|
173
|
-
|
|
190
|
+
;
|
|
191
|
+
return {
|
|
192
|
+
field: o.field,
|
|
193
|
+
};
|
|
194
|
+
}
|
|
195
|
+
export function toBn254FqSqrt(o) {
|
|
196
|
+
if (o.input === undefined) {
|
|
197
|
+
throw new Error("Expected input in Bn254FqSqrt deserialization");
|
|
174
198
|
}
|
|
175
199
|
;
|
|
176
200
|
return {
|
|
177
|
-
|
|
178
|
-
witness: o.witness,
|
|
179
|
-
settings: toProofSystemSettings(o.settings),
|
|
201
|
+
input: o.input,
|
|
180
202
|
};
|
|
181
203
|
}
|
|
182
|
-
export function
|
|
183
|
-
if (o.
|
|
184
|
-
throw new Error("Expected
|
|
204
|
+
export function fromBn254FqSqrt(o) {
|
|
205
|
+
if (o.input === undefined) {
|
|
206
|
+
throw new Error("Expected input in Bn254FqSqrt serialization");
|
|
185
207
|
}
|
|
186
|
-
|
|
187
|
-
|
|
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");
|
|
188
216
|
}
|
|
189
|
-
if (o.
|
|
190
|
-
throw new Error("Expected
|
|
217
|
+
if (o.value === undefined) {
|
|
218
|
+
throw new Error("Expected value in Bn254FqSqrtResponse deserialization");
|
|
191
219
|
}
|
|
192
220
|
;
|
|
193
221
|
return {
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
settings: fromProofSystemSettings(o.settings),
|
|
222
|
+
isSquareRoot: o.is_square_root,
|
|
223
|
+
value: o.value,
|
|
197
224
|
};
|
|
198
225
|
}
|
|
199
|
-
export function
|
|
200
|
-
if (o.
|
|
201
|
-
throw new Error("Expected
|
|
226
|
+
export function fromBn254FqSqrtResponse(o) {
|
|
227
|
+
if (o.isSquareRoot === undefined) {
|
|
228
|
+
throw new Error("Expected isSquareRoot in Bn254FqSqrtResponse serialization");
|
|
202
229
|
}
|
|
203
|
-
if (o.
|
|
204
|
-
throw new Error("Expected
|
|
230
|
+
if (o.value === undefined) {
|
|
231
|
+
throw new Error("Expected value in Bn254FqSqrtResponse serialization");
|
|
205
232
|
}
|
|
206
|
-
|
|
207
|
-
|
|
233
|
+
;
|
|
234
|
+
return {
|
|
235
|
+
is_square_root: o.isSquareRoot,
|
|
236
|
+
value: o.value,
|
|
237
|
+
};
|
|
238
|
+
}
|
|
239
|
+
export function toBn254FrSqrt(o) {
|
|
240
|
+
if (o.input === undefined) {
|
|
241
|
+
throw new Error("Expected input in Bn254FrSqrt deserialization");
|
|
208
242
|
}
|
|
209
243
|
;
|
|
210
244
|
return {
|
|
211
|
-
|
|
212
|
-
proof: o.proof.map((v) => v),
|
|
213
|
-
vk: toCircuitComputeVkResponse(o.vk),
|
|
245
|
+
input: o.input,
|
|
214
246
|
};
|
|
215
247
|
}
|
|
216
|
-
export function
|
|
217
|
-
if (o.
|
|
218
|
-
throw new Error("Expected
|
|
248
|
+
export function fromBn254FrSqrt(o) {
|
|
249
|
+
if (o.input === undefined) {
|
|
250
|
+
throw new Error("Expected input in Bn254FrSqrt serialization");
|
|
219
251
|
}
|
|
220
|
-
|
|
221
|
-
|
|
252
|
+
;
|
|
253
|
+
return {
|
|
254
|
+
input: o.input,
|
|
255
|
+
};
|
|
256
|
+
}
|
|
257
|
+
export function toBn254FrSqrtResponse(o) {
|
|
258
|
+
if (o.is_square_root === undefined) {
|
|
259
|
+
throw new Error("Expected is_square_root in Bn254FrSqrtResponse deserialization");
|
|
222
260
|
}
|
|
223
|
-
if (o.
|
|
224
|
-
throw new Error("Expected
|
|
261
|
+
if (o.value === undefined) {
|
|
262
|
+
throw new Error("Expected value in Bn254FrSqrtResponse deserialization");
|
|
225
263
|
}
|
|
226
264
|
;
|
|
227
265
|
return {
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
vk: fromCircuitComputeVkResponse(o.vk),
|
|
266
|
+
isSquareRoot: o.is_square_root,
|
|
267
|
+
value: o.value,
|
|
231
268
|
};
|
|
232
269
|
}
|
|
233
|
-
export function
|
|
234
|
-
if (o.
|
|
235
|
-
throw new Error("Expected
|
|
270
|
+
export function fromBn254FrSqrtResponse(o) {
|
|
271
|
+
if (o.isSquareRoot === undefined) {
|
|
272
|
+
throw new Error("Expected isSquareRoot in Bn254FrSqrtResponse serialization");
|
|
236
273
|
}
|
|
237
|
-
if (o.
|
|
238
|
-
throw new Error("Expected
|
|
274
|
+
if (o.value === undefined) {
|
|
275
|
+
throw new Error("Expected value in Bn254FrSqrtResponse serialization");
|
|
239
276
|
}
|
|
240
|
-
|
|
241
|
-
|
|
277
|
+
;
|
|
278
|
+
return {
|
|
279
|
+
is_square_root: o.isSquareRoot,
|
|
280
|
+
value: o.value,
|
|
281
|
+
};
|
|
282
|
+
}
|
|
283
|
+
export function toBn254G1FromCompressed(o) {
|
|
284
|
+
if (o.compressed === undefined) {
|
|
285
|
+
throw new Error("Expected compressed in Bn254G1FromCompressed deserialization");
|
|
242
286
|
}
|
|
243
287
|
;
|
|
244
288
|
return {
|
|
245
|
-
|
|
246
|
-
includeGatesPerOpcode: o.include_gates_per_opcode,
|
|
247
|
-
settings: toProofSystemSettings(o.settings),
|
|
289
|
+
compressed: o.compressed,
|
|
248
290
|
};
|
|
249
291
|
}
|
|
250
|
-
export function
|
|
251
|
-
if (o.
|
|
252
|
-
throw new Error("Expected
|
|
292
|
+
export function fromBn254G1FromCompressed(o) {
|
|
293
|
+
if (o.compressed === undefined) {
|
|
294
|
+
throw new Error("Expected compressed in Bn254G1FromCompressed serialization");
|
|
253
295
|
}
|
|
254
|
-
|
|
255
|
-
|
|
296
|
+
;
|
|
297
|
+
return {
|
|
298
|
+
compressed: o.compressed,
|
|
299
|
+
};
|
|
300
|
+
}
|
|
301
|
+
export function toBn254G1FromCompressedResponse(o) {
|
|
302
|
+
if (o.point === undefined) {
|
|
303
|
+
throw new Error("Expected point in Bn254G1FromCompressedResponse deserialization");
|
|
256
304
|
}
|
|
257
|
-
|
|
258
|
-
|
|
305
|
+
;
|
|
306
|
+
return {
|
|
307
|
+
point: toBn254G1Point(o.point),
|
|
308
|
+
};
|
|
309
|
+
}
|
|
310
|
+
export function fromBn254G1FromCompressedResponse(o) {
|
|
311
|
+
if (o.point === undefined) {
|
|
312
|
+
throw new Error("Expected point in Bn254G1FromCompressedResponse serialization");
|
|
259
313
|
}
|
|
260
314
|
;
|
|
261
315
|
return {
|
|
262
|
-
|
|
263
|
-
include_gates_per_opcode: o.includeGatesPerOpcode,
|
|
264
|
-
settings: fromProofSystemSettings(o.settings),
|
|
316
|
+
point: fromBn254G1Point(o.point),
|
|
265
317
|
};
|
|
266
318
|
}
|
|
267
|
-
export function
|
|
268
|
-
if (o.
|
|
269
|
-
throw new Error("Expected
|
|
319
|
+
export function toBn254G1IsOnCurve(o) {
|
|
320
|
+
if (o.point === undefined) {
|
|
321
|
+
throw new Error("Expected point in Bn254G1IsOnCurve deserialization");
|
|
270
322
|
}
|
|
271
|
-
|
|
272
|
-
|
|
323
|
+
;
|
|
324
|
+
return {
|
|
325
|
+
point: toBn254G1Point(o.point),
|
|
326
|
+
};
|
|
327
|
+
}
|
|
328
|
+
export function fromBn254G1IsOnCurve(o) {
|
|
329
|
+
if (o.point === undefined) {
|
|
330
|
+
throw new Error("Expected point in Bn254G1IsOnCurve serialization");
|
|
273
331
|
}
|
|
274
|
-
|
|
275
|
-
|
|
332
|
+
;
|
|
333
|
+
return {
|
|
334
|
+
point: fromBn254G1Point(o.point),
|
|
335
|
+
};
|
|
336
|
+
}
|
|
337
|
+
export function toBn254G1IsOnCurveResponse(o) {
|
|
338
|
+
if (o.is_on_curve === undefined) {
|
|
339
|
+
throw new Error("Expected is_on_curve in Bn254G1IsOnCurveResponse deserialization");
|
|
276
340
|
}
|
|
277
|
-
|
|
278
|
-
|
|
341
|
+
;
|
|
342
|
+
return {
|
|
343
|
+
isOnCurve: o.is_on_curve,
|
|
344
|
+
};
|
|
345
|
+
}
|
|
346
|
+
export function fromBn254G1IsOnCurveResponse(o) {
|
|
347
|
+
if (o.isOnCurve === undefined) {
|
|
348
|
+
throw new Error("Expected isOnCurve in Bn254G1IsOnCurveResponse serialization");
|
|
279
349
|
}
|
|
280
350
|
;
|
|
281
351
|
return {
|
|
282
|
-
|
|
283
|
-
publicInputs: o.public_inputs.map((v) => v),
|
|
284
|
-
proof: o.proof.map((v) => v),
|
|
285
|
-
settings: toProofSystemSettings(o.settings),
|
|
352
|
+
is_on_curve: o.isOnCurve,
|
|
286
353
|
};
|
|
287
354
|
}
|
|
288
|
-
export function
|
|
289
|
-
if (o.
|
|
290
|
-
throw new Error("Expected
|
|
355
|
+
export function toBn254G1Mul(o) {
|
|
356
|
+
if (o.point === undefined) {
|
|
357
|
+
throw new Error("Expected point in Bn254G1Mul deserialization");
|
|
291
358
|
}
|
|
292
|
-
if (o.
|
|
293
|
-
throw new Error("Expected
|
|
359
|
+
if (o.scalar === undefined) {
|
|
360
|
+
throw new Error("Expected scalar in Bn254G1Mul deserialization");
|
|
294
361
|
}
|
|
295
|
-
|
|
296
|
-
|
|
362
|
+
;
|
|
363
|
+
return {
|
|
364
|
+
point: toBn254G1Point(o.point),
|
|
365
|
+
scalar: o.scalar,
|
|
366
|
+
};
|
|
367
|
+
}
|
|
368
|
+
export function fromBn254G1Mul(o) {
|
|
369
|
+
if (o.point === undefined) {
|
|
370
|
+
throw new Error("Expected point in Bn254G1Mul serialization");
|
|
297
371
|
}
|
|
298
|
-
if (o.
|
|
299
|
-
throw new Error("Expected
|
|
372
|
+
if (o.scalar === undefined) {
|
|
373
|
+
throw new Error("Expected scalar in Bn254G1Mul serialization");
|
|
300
374
|
}
|
|
301
375
|
;
|
|
302
376
|
return {
|
|
303
|
-
|
|
304
|
-
|
|
377
|
+
point: fromBn254G1Point(o.point),
|
|
378
|
+
scalar: o.scalar,
|
|
379
|
+
};
|
|
380
|
+
}
|
|
381
|
+
export function toBn254G1MulResponse(o) {
|
|
382
|
+
if (o.point === undefined) {
|
|
383
|
+
throw new Error("Expected point in Bn254G1MulResponse deserialization");
|
|
384
|
+
}
|
|
385
|
+
;
|
|
386
|
+
return {
|
|
387
|
+
point: toBn254G1Point(o.point),
|
|
388
|
+
};
|
|
389
|
+
}
|
|
390
|
+
export function fromBn254G1MulResponse(o) {
|
|
391
|
+
if (o.point === undefined) {
|
|
392
|
+
throw new Error("Expected point in Bn254G1MulResponse serialization");
|
|
393
|
+
}
|
|
394
|
+
;
|
|
395
|
+
return {
|
|
396
|
+
point: fromBn254G1Point(o.point),
|
|
397
|
+
};
|
|
398
|
+
}
|
|
399
|
+
export function toBn254G1Point(o) {
|
|
400
|
+
if (o.x === undefined) {
|
|
401
|
+
throw new Error("Expected x in Bn254G1Point deserialization");
|
|
402
|
+
}
|
|
403
|
+
if (o.y === undefined) {
|
|
404
|
+
throw new Error("Expected y in Bn254G1Point deserialization");
|
|
405
|
+
}
|
|
406
|
+
;
|
|
407
|
+
return {
|
|
408
|
+
x: o.x,
|
|
409
|
+
y: o.y,
|
|
410
|
+
};
|
|
411
|
+
}
|
|
412
|
+
export function fromBn254G1Point(o) {
|
|
413
|
+
if (o.x === undefined) {
|
|
414
|
+
throw new Error("Expected x in Bn254G1Point serialization");
|
|
415
|
+
}
|
|
416
|
+
if (o.y === undefined) {
|
|
417
|
+
throw new Error("Expected y in Bn254G1Point serialization");
|
|
418
|
+
}
|
|
419
|
+
;
|
|
420
|
+
return {
|
|
421
|
+
x: o.x,
|
|
422
|
+
y: o.y,
|
|
423
|
+
};
|
|
424
|
+
}
|
|
425
|
+
export function toBn254G2Mul(o) {
|
|
426
|
+
if (o.point === undefined) {
|
|
427
|
+
throw new Error("Expected point in Bn254G2Mul deserialization");
|
|
428
|
+
}
|
|
429
|
+
if (o.scalar === undefined) {
|
|
430
|
+
throw new Error("Expected scalar in Bn254G2Mul deserialization");
|
|
431
|
+
}
|
|
432
|
+
;
|
|
433
|
+
return {
|
|
434
|
+
point: toBn254G2Point(o.point),
|
|
435
|
+
scalar: o.scalar,
|
|
436
|
+
};
|
|
437
|
+
}
|
|
438
|
+
export function fromBn254G2Mul(o) {
|
|
439
|
+
if (o.point === undefined) {
|
|
440
|
+
throw new Error("Expected point in Bn254G2Mul serialization");
|
|
441
|
+
}
|
|
442
|
+
if (o.scalar === undefined) {
|
|
443
|
+
throw new Error("Expected scalar in Bn254G2Mul serialization");
|
|
444
|
+
}
|
|
445
|
+
;
|
|
446
|
+
return {
|
|
447
|
+
point: fromBn254G2Point(o.point),
|
|
448
|
+
scalar: o.scalar,
|
|
449
|
+
};
|
|
450
|
+
}
|
|
451
|
+
export function toBn254G2MulResponse(o) {
|
|
452
|
+
if (o.point === undefined) {
|
|
453
|
+
throw new Error("Expected point in Bn254G2MulResponse deserialization");
|
|
454
|
+
}
|
|
455
|
+
;
|
|
456
|
+
return {
|
|
457
|
+
point: toBn254G2Point(o.point),
|
|
458
|
+
};
|
|
459
|
+
}
|
|
460
|
+
export function fromBn254G2MulResponse(o) {
|
|
461
|
+
if (o.point === undefined) {
|
|
462
|
+
throw new Error("Expected point in Bn254G2MulResponse serialization");
|
|
463
|
+
}
|
|
464
|
+
;
|
|
465
|
+
return {
|
|
466
|
+
point: fromBn254G2Point(o.point),
|
|
467
|
+
};
|
|
468
|
+
}
|
|
469
|
+
export function toBn254G2Point(o) {
|
|
470
|
+
if (o.x === undefined) {
|
|
471
|
+
throw new Error("Expected x in Bn254G2Point deserialization");
|
|
472
|
+
}
|
|
473
|
+
if (o.y === undefined) {
|
|
474
|
+
throw new Error("Expected y in Bn254G2Point deserialization");
|
|
475
|
+
}
|
|
476
|
+
;
|
|
477
|
+
return {
|
|
478
|
+
x: o.x,
|
|
479
|
+
y: o.y,
|
|
480
|
+
};
|
|
481
|
+
}
|
|
482
|
+
export function fromBn254G2Point(o) {
|
|
483
|
+
if (o.x === undefined) {
|
|
484
|
+
throw new Error("Expected x in Bn254G2Point serialization");
|
|
485
|
+
}
|
|
486
|
+
if (o.y === undefined) {
|
|
487
|
+
throw new Error("Expected y in Bn254G2Point serialization");
|
|
488
|
+
}
|
|
489
|
+
;
|
|
490
|
+
return {
|
|
491
|
+
x: o.x,
|
|
492
|
+
y: o.y,
|
|
493
|
+
};
|
|
494
|
+
}
|
|
495
|
+
export function toChonkAccumulate(o) {
|
|
496
|
+
if (o.witness === undefined) {
|
|
497
|
+
throw new Error("Expected witness in ChonkAccumulate deserialization");
|
|
498
|
+
}
|
|
499
|
+
;
|
|
500
|
+
return {
|
|
501
|
+
witness: o.witness,
|
|
502
|
+
};
|
|
503
|
+
}
|
|
504
|
+
export function fromChonkAccumulate(o) {
|
|
505
|
+
if (o.witness === undefined) {
|
|
506
|
+
throw new Error("Expected witness in ChonkAccumulate serialization");
|
|
507
|
+
}
|
|
508
|
+
;
|
|
509
|
+
return {
|
|
510
|
+
witness: o.witness,
|
|
511
|
+
};
|
|
512
|
+
}
|
|
513
|
+
export function toChonkAccumulateResponse(o) {
|
|
514
|
+
return {};
|
|
515
|
+
}
|
|
516
|
+
export function fromChonkAccumulateResponse(o) {
|
|
517
|
+
return {};
|
|
518
|
+
}
|
|
519
|
+
export function toChonkCheckPrecomputedVk(o) {
|
|
520
|
+
if (o.circuit === undefined) {
|
|
521
|
+
throw new Error("Expected circuit in ChonkCheckPrecomputedVk deserialization");
|
|
522
|
+
}
|
|
523
|
+
;
|
|
524
|
+
return {
|
|
525
|
+
circuit: toCircuitInput(o.circuit),
|
|
526
|
+
};
|
|
527
|
+
}
|
|
528
|
+
export function fromChonkCheckPrecomputedVk(o) {
|
|
529
|
+
if (o.circuit === undefined) {
|
|
530
|
+
throw new Error("Expected circuit in ChonkCheckPrecomputedVk serialization");
|
|
531
|
+
}
|
|
532
|
+
;
|
|
533
|
+
return {
|
|
534
|
+
circuit: fromCircuitInput(o.circuit),
|
|
535
|
+
};
|
|
536
|
+
}
|
|
537
|
+
export function toChonkCheckPrecomputedVkResponse(o) {
|
|
538
|
+
if (o.valid === undefined) {
|
|
539
|
+
throw new Error("Expected valid in ChonkCheckPrecomputedVkResponse deserialization");
|
|
540
|
+
}
|
|
541
|
+
if (o.actual_vk === undefined) {
|
|
542
|
+
throw new Error("Expected actual_vk in ChonkCheckPrecomputedVkResponse deserialization");
|
|
543
|
+
}
|
|
544
|
+
;
|
|
545
|
+
return {
|
|
546
|
+
valid: o.valid,
|
|
547
|
+
actualVk: o.actual_vk,
|
|
548
|
+
};
|
|
549
|
+
}
|
|
550
|
+
export function fromChonkCheckPrecomputedVkResponse(o) {
|
|
551
|
+
if (o.valid === undefined) {
|
|
552
|
+
throw new Error("Expected valid in ChonkCheckPrecomputedVkResponse serialization");
|
|
553
|
+
}
|
|
554
|
+
if (o.actualVk === undefined) {
|
|
555
|
+
throw new Error("Expected actualVk in ChonkCheckPrecomputedVkResponse serialization");
|
|
556
|
+
}
|
|
557
|
+
;
|
|
558
|
+
return {
|
|
559
|
+
valid: o.valid,
|
|
560
|
+
actual_vk: o.actualVk,
|
|
561
|
+
};
|
|
562
|
+
}
|
|
563
|
+
export function toChonkComputeIvcVk(o) {
|
|
564
|
+
if (o.circuit === undefined) {
|
|
565
|
+
throw new Error("Expected circuit in ChonkComputeIvcVk deserialization");
|
|
566
|
+
}
|
|
567
|
+
;
|
|
568
|
+
return {
|
|
569
|
+
circuit: toCircuitInputNoVK(o.circuit),
|
|
570
|
+
};
|
|
571
|
+
}
|
|
572
|
+
export function fromChonkComputeIvcVk(o) {
|
|
573
|
+
if (o.circuit === undefined) {
|
|
574
|
+
throw new Error("Expected circuit in ChonkComputeIvcVk serialization");
|
|
575
|
+
}
|
|
576
|
+
;
|
|
577
|
+
return {
|
|
578
|
+
circuit: fromCircuitInputNoVK(o.circuit),
|
|
579
|
+
};
|
|
580
|
+
}
|
|
581
|
+
export function toChonkComputeIvcVkResponse(o) {
|
|
582
|
+
if (o.bytes === undefined) {
|
|
583
|
+
throw new Error("Expected bytes in ChonkComputeIvcVkResponse deserialization");
|
|
584
|
+
}
|
|
585
|
+
;
|
|
586
|
+
return {
|
|
587
|
+
bytes: o.bytes,
|
|
588
|
+
};
|
|
589
|
+
}
|
|
590
|
+
export function fromChonkComputeIvcVkResponse(o) {
|
|
591
|
+
if (o.bytes === undefined) {
|
|
592
|
+
throw new Error("Expected bytes in ChonkComputeIvcVkResponse serialization");
|
|
593
|
+
}
|
|
594
|
+
;
|
|
595
|
+
return {
|
|
596
|
+
bytes: o.bytes,
|
|
597
|
+
};
|
|
598
|
+
}
|
|
599
|
+
export function toChonkComputeStandaloneVk(o) {
|
|
600
|
+
if (o.circuit === undefined) {
|
|
601
|
+
throw new Error("Expected circuit in ChonkComputeStandaloneVk deserialization");
|
|
602
|
+
}
|
|
603
|
+
;
|
|
604
|
+
return {
|
|
605
|
+
circuit: toCircuitInputNoVK(o.circuit),
|
|
606
|
+
};
|
|
607
|
+
}
|
|
608
|
+
export function fromChonkComputeStandaloneVk(o) {
|
|
609
|
+
if (o.circuit === undefined) {
|
|
610
|
+
throw new Error("Expected circuit in ChonkComputeStandaloneVk serialization");
|
|
611
|
+
}
|
|
612
|
+
;
|
|
613
|
+
return {
|
|
614
|
+
circuit: fromCircuitInputNoVK(o.circuit),
|
|
615
|
+
};
|
|
616
|
+
}
|
|
617
|
+
export function toChonkComputeStandaloneVkResponse(o) {
|
|
618
|
+
if (o.bytes === undefined) {
|
|
619
|
+
throw new Error("Expected bytes in ChonkComputeStandaloneVkResponse deserialization");
|
|
620
|
+
}
|
|
621
|
+
if (o.fields === undefined) {
|
|
622
|
+
throw new Error("Expected fields in ChonkComputeStandaloneVkResponse deserialization");
|
|
623
|
+
}
|
|
624
|
+
;
|
|
625
|
+
return {
|
|
626
|
+
bytes: o.bytes,
|
|
627
|
+
fields: o.fields.map((v) => v),
|
|
628
|
+
};
|
|
629
|
+
}
|
|
630
|
+
export function fromChonkComputeStandaloneVkResponse(o) {
|
|
631
|
+
if (o.bytes === undefined) {
|
|
632
|
+
throw new Error("Expected bytes in ChonkComputeStandaloneVkResponse serialization");
|
|
633
|
+
}
|
|
634
|
+
if (o.fields === undefined) {
|
|
635
|
+
throw new Error("Expected fields in ChonkComputeStandaloneVkResponse serialization");
|
|
636
|
+
}
|
|
637
|
+
;
|
|
638
|
+
return {
|
|
639
|
+
bytes: o.bytes,
|
|
640
|
+
fields: o.fields.map((v) => v),
|
|
641
|
+
};
|
|
642
|
+
}
|
|
643
|
+
export function toChonkLoad(o) {
|
|
644
|
+
if (o.circuit === undefined) {
|
|
645
|
+
throw new Error("Expected circuit in ChonkLoad deserialization");
|
|
646
|
+
}
|
|
647
|
+
;
|
|
648
|
+
return {
|
|
649
|
+
circuit: toCircuitInput(o.circuit),
|
|
650
|
+
};
|
|
651
|
+
}
|
|
652
|
+
export function fromChonkLoad(o) {
|
|
653
|
+
if (o.circuit === undefined) {
|
|
654
|
+
throw new Error("Expected circuit in ChonkLoad serialization");
|
|
655
|
+
}
|
|
656
|
+
;
|
|
657
|
+
return {
|
|
658
|
+
circuit: fromCircuitInput(o.circuit),
|
|
659
|
+
};
|
|
660
|
+
}
|
|
661
|
+
export function toChonkLoadResponse(o) {
|
|
662
|
+
return {};
|
|
663
|
+
}
|
|
664
|
+
export function fromChonkLoadResponse(o) {
|
|
665
|
+
return {};
|
|
666
|
+
}
|
|
667
|
+
export function toChonkProof(o) {
|
|
668
|
+
if (o.mega_proof === undefined) {
|
|
669
|
+
throw new Error("Expected mega_proof in ChonkProof deserialization");
|
|
670
|
+
}
|
|
671
|
+
if (o.goblin_proof === undefined) {
|
|
672
|
+
throw new Error("Expected goblin_proof in ChonkProof deserialization");
|
|
673
|
+
}
|
|
674
|
+
;
|
|
675
|
+
return {
|
|
676
|
+
megaProof: o.mega_proof.map((v) => v),
|
|
677
|
+
goblinProof: toGoblinProof(o.goblin_proof),
|
|
678
|
+
};
|
|
679
|
+
}
|
|
680
|
+
export function fromChonkProof(o) {
|
|
681
|
+
if (o.megaProof === undefined) {
|
|
682
|
+
throw new Error("Expected megaProof in ChonkProof serialization");
|
|
683
|
+
}
|
|
684
|
+
if (o.goblinProof === undefined) {
|
|
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");
|
|
1000
|
+
}
|
|
1001
|
+
;
|
|
1002
|
+
return {
|
|
1003
|
+
name: o.name,
|
|
1004
|
+
bytecode: o.bytecode,
|
|
1005
|
+
};
|
|
1006
|
+
}
|
|
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");
|
|
1016
|
+
}
|
|
1017
|
+
;
|
|
1018
|
+
return {
|
|
1019
|
+
circuit: toCircuitInput(o.circuit),
|
|
1020
|
+
witness: o.witness,
|
|
1021
|
+
settings: toProofSystemSettings(o.settings),
|
|
1022
|
+
};
|
|
1023
|
+
}
|
|
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");
|
|
1033
|
+
}
|
|
1034
|
+
;
|
|
1035
|
+
return {
|
|
1036
|
+
circuit: fromCircuitInput(o.circuit),
|
|
1037
|
+
witness: o.witness,
|
|
1038
|
+
settings: fromProofSystemSettings(o.settings),
|
|
1039
|
+
};
|
|
1040
|
+
}
|
|
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");
|
|
1050
|
+
}
|
|
1051
|
+
;
|
|
1052
|
+
return {
|
|
1053
|
+
publicInputs: o.public_inputs.map((v) => v),
|
|
1054
|
+
proof: o.proof.map((v) => v),
|
|
1055
|
+
vk: toCircuitComputeVkResponse(o.vk),
|
|
1056
|
+
};
|
|
1057
|
+
}
|
|
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");
|
|
1067
|
+
}
|
|
1068
|
+
;
|
|
1069
|
+
return {
|
|
1070
|
+
public_inputs: o.publicInputs.map((v) => v),
|
|
1071
|
+
proof: o.proof.map((v) => v),
|
|
1072
|
+
vk: fromCircuitComputeVkResponse(o.vk),
|
|
1073
|
+
};
|
|
1074
|
+
}
|
|
1075
|
+
export function toCircuitStats(o) {
|
|
1076
|
+
if (o.circuit === undefined) {
|
|
1077
|
+
throw new Error("Expected circuit in CircuitStats deserialization");
|
|
1078
|
+
}
|
|
1079
|
+
if (o.include_gates_per_opcode === undefined) {
|
|
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");
|
|
1084
|
+
}
|
|
1085
|
+
;
|
|
1086
|
+
return {
|
|
1087
|
+
circuit: toCircuitInput(o.circuit),
|
|
1088
|
+
includeGatesPerOpcode: o.include_gates_per_opcode,
|
|
1089
|
+
settings: toProofSystemSettings(o.settings),
|
|
1090
|
+
};
|
|
1091
|
+
}
|
|
1092
|
+
export function fromCircuitStats(o) {
|
|
1093
|
+
if (o.circuit === undefined) {
|
|
1094
|
+
throw new Error("Expected circuit in CircuitStats serialization");
|
|
1095
|
+
}
|
|
1096
|
+
if (o.includeGatesPerOpcode === undefined) {
|
|
1097
|
+
throw new Error("Expected includeGatesPerOpcode in CircuitStats serialization");
|
|
1098
|
+
}
|
|
1099
|
+
if (o.settings === undefined) {
|
|
1100
|
+
throw new Error("Expected settings in CircuitStats serialization");
|
|
1101
|
+
}
|
|
1102
|
+
;
|
|
1103
|
+
return {
|
|
1104
|
+
circuit: fromCircuitInput(o.circuit),
|
|
1105
|
+
include_gates_per_opcode: o.includeGatesPerOpcode,
|
|
1106
|
+
settings: fromProofSystemSettings(o.settings),
|
|
1107
|
+
};
|
|
1108
|
+
}
|
|
1109
|
+
export function toCircuitVerify(o) {
|
|
1110
|
+
if (o.verification_key === undefined) {
|
|
1111
|
+
throw new Error("Expected verification_key in CircuitVerify deserialization");
|
|
1112
|
+
}
|
|
1113
|
+
if (o.public_inputs === undefined) {
|
|
1114
|
+
throw new Error("Expected public_inputs in CircuitVerify deserialization");
|
|
1115
|
+
}
|
|
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");
|
|
1121
|
+
}
|
|
1122
|
+
;
|
|
1123
|
+
return {
|
|
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),
|
|
1128
|
+
};
|
|
1129
|
+
}
|
|
1130
|
+
export function fromCircuitVerify(o) {
|
|
1131
|
+
if (o.verificationKey === undefined) {
|
|
1132
|
+
throw new Error("Expected verificationKey in CircuitVerify serialization");
|
|
1133
|
+
}
|
|
1134
|
+
if (o.publicInputs === undefined) {
|
|
1135
|
+
throw new Error("Expected publicInputs in CircuitVerify serialization");
|
|
1136
|
+
}
|
|
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");
|
|
1142
|
+
}
|
|
1143
|
+
;
|
|
1144
|
+
return {
|
|
1145
|
+
verification_key: o.verificationKey,
|
|
1146
|
+
public_inputs: o.publicInputs.map((v) => v),
|
|
305
1147
|
proof: o.proof.map((v) => v),
|
|
306
1148
|
settings: fromProofSystemSettings(o.settings),
|
|
307
1149
|
};
|
|
308
1150
|
}
|
|
309
|
-
export function toCircuitVerifyResponse(o) {
|
|
310
|
-
if (o.verified === undefined) {
|
|
311
|
-
throw new Error("Expected verified in CircuitVerifyResponse deserialization");
|
|
1151
|
+
export function toCircuitVerifyResponse(o) {
|
|
1152
|
+
if (o.verified === undefined) {
|
|
1153
|
+
throw new Error("Expected verified in CircuitVerifyResponse deserialization");
|
|
1154
|
+
}
|
|
1155
|
+
;
|
|
1156
|
+
return {
|
|
1157
|
+
verified: o.verified,
|
|
1158
|
+
};
|
|
1159
|
+
}
|
|
1160
|
+
export function fromCircuitVerifyResponse(o) {
|
|
1161
|
+
if (o.verified === undefined) {
|
|
1162
|
+
throw new Error("Expected verified in CircuitVerifyResponse serialization");
|
|
1163
|
+
}
|
|
1164
|
+
;
|
|
1165
|
+
return {
|
|
1166
|
+
verified: o.verified,
|
|
1167
|
+
};
|
|
1168
|
+
}
|
|
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");
|
|
1175
|
+
}
|
|
1176
|
+
;
|
|
1177
|
+
return {
|
|
1178
|
+
verificationKey: o.verification_key,
|
|
1179
|
+
settings: toProofSystemSettings(o.settings),
|
|
1180
|
+
};
|
|
1181
|
+
}
|
|
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");
|
|
1188
|
+
}
|
|
1189
|
+
;
|
|
1190
|
+
return {
|
|
1191
|
+
verification_key: o.verificationKey,
|
|
1192
|
+
settings: fromProofSystemSettings(o.settings),
|
|
1193
|
+
};
|
|
1194
|
+
}
|
|
1195
|
+
export function toCircuitWriteSolidityVerifierResponse(o) {
|
|
1196
|
+
if (o.solidity_code === undefined) {
|
|
1197
|
+
throw new Error("Expected solidity_code in CircuitWriteSolidityVerifierResponse deserialization");
|
|
1198
|
+
}
|
|
1199
|
+
;
|
|
1200
|
+
return {
|
|
1201
|
+
solidityCode: o.solidity_code,
|
|
1202
|
+
};
|
|
1203
|
+
}
|
|
1204
|
+
export function fromCircuitWriteSolidityVerifierResponse(o) {
|
|
1205
|
+
if (o.solidityCode === undefined) {
|
|
1206
|
+
throw new Error("Expected solidityCode in CircuitWriteSolidityVerifierResponse serialization");
|
|
1207
|
+
}
|
|
1208
|
+
;
|
|
1209
|
+
return {
|
|
1210
|
+
solidity_code: o.solidityCode,
|
|
1211
|
+
};
|
|
1212
|
+
}
|
|
1213
|
+
export function toEcdsaSecp256k1ComputePublicKey(o) {
|
|
1214
|
+
if (o.private_key === undefined) {
|
|
1215
|
+
throw new Error("Expected private_key in EcdsaSecp256k1ComputePublicKey deserialization");
|
|
1216
|
+
}
|
|
1217
|
+
;
|
|
1218
|
+
return {
|
|
1219
|
+
privateKey: o.private_key,
|
|
1220
|
+
};
|
|
1221
|
+
}
|
|
1222
|
+
export function fromEcdsaSecp256k1ComputePublicKey(o) {
|
|
1223
|
+
if (o.privateKey === undefined) {
|
|
1224
|
+
throw new Error("Expected privateKey in EcdsaSecp256k1ComputePublicKey serialization");
|
|
1225
|
+
}
|
|
1226
|
+
;
|
|
1227
|
+
return {
|
|
1228
|
+
private_key: o.privateKey,
|
|
1229
|
+
};
|
|
1230
|
+
}
|
|
1231
|
+
export function toEcdsaSecp256k1ComputePublicKeyResponse(o) {
|
|
1232
|
+
if (o.public_key === undefined) {
|
|
1233
|
+
throw new Error("Expected public_key in EcdsaSecp256k1ComputePublicKeyResponse deserialization");
|
|
1234
|
+
}
|
|
1235
|
+
;
|
|
1236
|
+
return {
|
|
1237
|
+
publicKey: toSecp256k1Point(o.public_key),
|
|
1238
|
+
};
|
|
1239
|
+
}
|
|
1240
|
+
export function fromEcdsaSecp256k1ComputePublicKeyResponse(o) {
|
|
1241
|
+
if (o.publicKey === undefined) {
|
|
1242
|
+
throw new Error("Expected publicKey in EcdsaSecp256k1ComputePublicKeyResponse serialization");
|
|
1243
|
+
}
|
|
1244
|
+
;
|
|
1245
|
+
return {
|
|
1246
|
+
public_key: fromSecp256k1Point(o.publicKey),
|
|
1247
|
+
};
|
|
1248
|
+
}
|
|
1249
|
+
export function toEcdsaSecp256k1ConstructSignature(o) {
|
|
1250
|
+
if (o.message === undefined) {
|
|
1251
|
+
throw new Error("Expected message in EcdsaSecp256k1ConstructSignature deserialization");
|
|
1252
|
+
}
|
|
1253
|
+
if (o.private_key === undefined) {
|
|
1254
|
+
throw new Error("Expected private_key in EcdsaSecp256k1ConstructSignature deserialization");
|
|
1255
|
+
}
|
|
1256
|
+
;
|
|
1257
|
+
return {
|
|
1258
|
+
message: o.message,
|
|
1259
|
+
privateKey: o.private_key,
|
|
1260
|
+
};
|
|
1261
|
+
}
|
|
1262
|
+
export function fromEcdsaSecp256k1ConstructSignature(o) {
|
|
1263
|
+
if (o.message === undefined) {
|
|
1264
|
+
throw new Error("Expected message in EcdsaSecp256k1ConstructSignature serialization");
|
|
1265
|
+
}
|
|
1266
|
+
if (o.privateKey === undefined) {
|
|
1267
|
+
throw new Error("Expected privateKey in EcdsaSecp256k1ConstructSignature serialization");
|
|
1268
|
+
}
|
|
1269
|
+
;
|
|
1270
|
+
return {
|
|
1271
|
+
message: o.message,
|
|
1272
|
+
private_key: o.privateKey,
|
|
1273
|
+
};
|
|
1274
|
+
}
|
|
1275
|
+
export function toEcdsaSecp256k1ConstructSignatureResponse(o) {
|
|
1276
|
+
if (o.r === undefined) {
|
|
1277
|
+
throw new Error("Expected r in EcdsaSecp256k1ConstructSignatureResponse deserialization");
|
|
1278
|
+
}
|
|
1279
|
+
if (o.s === undefined) {
|
|
1280
|
+
throw new Error("Expected s in EcdsaSecp256k1ConstructSignatureResponse deserialization");
|
|
1281
|
+
}
|
|
1282
|
+
if (o.v === undefined) {
|
|
1283
|
+
throw new Error("Expected v in EcdsaSecp256k1ConstructSignatureResponse deserialization");
|
|
1284
|
+
}
|
|
1285
|
+
;
|
|
1286
|
+
return {
|
|
1287
|
+
r: o.r,
|
|
1288
|
+
s: o.s,
|
|
1289
|
+
v: o.v,
|
|
1290
|
+
};
|
|
1291
|
+
}
|
|
1292
|
+
export function fromEcdsaSecp256k1ConstructSignatureResponse(o) {
|
|
1293
|
+
if (o.r === undefined) {
|
|
1294
|
+
throw new Error("Expected r in EcdsaSecp256k1ConstructSignatureResponse serialization");
|
|
1295
|
+
}
|
|
1296
|
+
if (o.s === undefined) {
|
|
1297
|
+
throw new Error("Expected s in EcdsaSecp256k1ConstructSignatureResponse serialization");
|
|
1298
|
+
}
|
|
1299
|
+
if (o.v === undefined) {
|
|
1300
|
+
throw new Error("Expected v in EcdsaSecp256k1ConstructSignatureResponse serialization");
|
|
1301
|
+
}
|
|
1302
|
+
;
|
|
1303
|
+
return {
|
|
1304
|
+
r: o.r,
|
|
1305
|
+
s: o.s,
|
|
1306
|
+
v: o.v,
|
|
1307
|
+
};
|
|
1308
|
+
}
|
|
1309
|
+
export function toEcdsaSecp256k1RecoverPublicKey(o) {
|
|
1310
|
+
if (o.message === undefined) {
|
|
1311
|
+
throw new Error("Expected message in EcdsaSecp256k1RecoverPublicKey deserialization");
|
|
1312
|
+
}
|
|
1313
|
+
if (o.r === undefined) {
|
|
1314
|
+
throw new Error("Expected r in EcdsaSecp256k1RecoverPublicKey deserialization");
|
|
1315
|
+
}
|
|
1316
|
+
if (o.s === undefined) {
|
|
1317
|
+
throw new Error("Expected s in EcdsaSecp256k1RecoverPublicKey deserialization");
|
|
1318
|
+
}
|
|
1319
|
+
if (o.v === undefined) {
|
|
1320
|
+
throw new Error("Expected v in EcdsaSecp256k1RecoverPublicKey deserialization");
|
|
1321
|
+
}
|
|
1322
|
+
;
|
|
1323
|
+
return {
|
|
1324
|
+
message: o.message,
|
|
1325
|
+
r: o.r,
|
|
1326
|
+
s: o.s,
|
|
1327
|
+
v: o.v,
|
|
1328
|
+
};
|
|
1329
|
+
}
|
|
1330
|
+
export function fromEcdsaSecp256k1RecoverPublicKey(o) {
|
|
1331
|
+
if (o.message === undefined) {
|
|
1332
|
+
throw new Error("Expected message in EcdsaSecp256k1RecoverPublicKey serialization");
|
|
1333
|
+
}
|
|
1334
|
+
if (o.r === undefined) {
|
|
1335
|
+
throw new Error("Expected r in EcdsaSecp256k1RecoverPublicKey serialization");
|
|
1336
|
+
}
|
|
1337
|
+
if (o.s === undefined) {
|
|
1338
|
+
throw new Error("Expected s in EcdsaSecp256k1RecoverPublicKey serialization");
|
|
1339
|
+
}
|
|
1340
|
+
if (o.v === undefined) {
|
|
1341
|
+
throw new Error("Expected v in EcdsaSecp256k1RecoverPublicKey serialization");
|
|
1342
|
+
}
|
|
1343
|
+
;
|
|
1344
|
+
return {
|
|
1345
|
+
message: o.message,
|
|
1346
|
+
r: o.r,
|
|
1347
|
+
s: o.s,
|
|
1348
|
+
v: o.v,
|
|
1349
|
+
};
|
|
1350
|
+
}
|
|
1351
|
+
export function toEcdsaSecp256k1RecoverPublicKeyResponse(o) {
|
|
1352
|
+
if (o.public_key === undefined) {
|
|
1353
|
+
throw new Error("Expected public_key in EcdsaSecp256k1RecoverPublicKeyResponse deserialization");
|
|
1354
|
+
}
|
|
1355
|
+
;
|
|
1356
|
+
return {
|
|
1357
|
+
publicKey: toSecp256k1Point(o.public_key),
|
|
1358
|
+
};
|
|
1359
|
+
}
|
|
1360
|
+
export function fromEcdsaSecp256k1RecoverPublicKeyResponse(o) {
|
|
1361
|
+
if (o.publicKey === undefined) {
|
|
1362
|
+
throw new Error("Expected publicKey in EcdsaSecp256k1RecoverPublicKeyResponse serialization");
|
|
1363
|
+
}
|
|
1364
|
+
;
|
|
1365
|
+
return {
|
|
1366
|
+
public_key: fromSecp256k1Point(o.publicKey),
|
|
1367
|
+
};
|
|
1368
|
+
}
|
|
1369
|
+
export function toEcdsaSecp256k1VerifySignature(o) {
|
|
1370
|
+
if (o.message === undefined) {
|
|
1371
|
+
throw new Error("Expected message in EcdsaSecp256k1VerifySignature deserialization");
|
|
1372
|
+
}
|
|
1373
|
+
if (o.public_key === undefined) {
|
|
1374
|
+
throw new Error("Expected public_key in EcdsaSecp256k1VerifySignature deserialization");
|
|
1375
|
+
}
|
|
1376
|
+
if (o.r === undefined) {
|
|
1377
|
+
throw new Error("Expected r in EcdsaSecp256k1VerifySignature deserialization");
|
|
1378
|
+
}
|
|
1379
|
+
if (o.s === undefined) {
|
|
1380
|
+
throw new Error("Expected s in EcdsaSecp256k1VerifySignature deserialization");
|
|
1381
|
+
}
|
|
1382
|
+
if (o.v === undefined) {
|
|
1383
|
+
throw new Error("Expected v in EcdsaSecp256k1VerifySignature deserialization");
|
|
1384
|
+
}
|
|
1385
|
+
;
|
|
1386
|
+
return {
|
|
1387
|
+
message: o.message,
|
|
1388
|
+
publicKey: toSecp256k1Point(o.public_key),
|
|
1389
|
+
r: o.r,
|
|
1390
|
+
s: o.s,
|
|
1391
|
+
v: o.v,
|
|
1392
|
+
};
|
|
1393
|
+
}
|
|
1394
|
+
export function fromEcdsaSecp256k1VerifySignature(o) {
|
|
1395
|
+
if (o.message === undefined) {
|
|
1396
|
+
throw new Error("Expected message in EcdsaSecp256k1VerifySignature serialization");
|
|
1397
|
+
}
|
|
1398
|
+
if (o.publicKey === undefined) {
|
|
1399
|
+
throw new Error("Expected publicKey in EcdsaSecp256k1VerifySignature serialization");
|
|
1400
|
+
}
|
|
1401
|
+
if (o.r === undefined) {
|
|
1402
|
+
throw new Error("Expected r in EcdsaSecp256k1VerifySignature serialization");
|
|
1403
|
+
}
|
|
1404
|
+
if (o.s === undefined) {
|
|
1405
|
+
throw new Error("Expected s in EcdsaSecp256k1VerifySignature serialization");
|
|
1406
|
+
}
|
|
1407
|
+
if (o.v === undefined) {
|
|
1408
|
+
throw new Error("Expected v in EcdsaSecp256k1VerifySignature serialization");
|
|
1409
|
+
}
|
|
1410
|
+
;
|
|
1411
|
+
return {
|
|
1412
|
+
message: o.message,
|
|
1413
|
+
public_key: fromSecp256k1Point(o.publicKey),
|
|
1414
|
+
r: o.r,
|
|
1415
|
+
s: o.s,
|
|
1416
|
+
v: o.v,
|
|
1417
|
+
};
|
|
1418
|
+
}
|
|
1419
|
+
export function toEcdsaSecp256k1VerifySignatureResponse(o) {
|
|
1420
|
+
if (o.verified === undefined) {
|
|
1421
|
+
throw new Error("Expected verified in EcdsaSecp256k1VerifySignatureResponse deserialization");
|
|
1422
|
+
}
|
|
1423
|
+
;
|
|
1424
|
+
return {
|
|
1425
|
+
verified: o.verified,
|
|
1426
|
+
};
|
|
1427
|
+
}
|
|
1428
|
+
export function fromEcdsaSecp256k1VerifySignatureResponse(o) {
|
|
1429
|
+
if (o.verified === undefined) {
|
|
1430
|
+
throw new Error("Expected verified in EcdsaSecp256k1VerifySignatureResponse serialization");
|
|
1431
|
+
}
|
|
1432
|
+
;
|
|
1433
|
+
return {
|
|
1434
|
+
verified: o.verified,
|
|
1435
|
+
};
|
|
1436
|
+
}
|
|
1437
|
+
export function toEcdsaSecp256r1ComputePublicKey(o) {
|
|
1438
|
+
if (o.private_key === undefined) {
|
|
1439
|
+
throw new Error("Expected private_key in EcdsaSecp256r1ComputePublicKey deserialization");
|
|
1440
|
+
}
|
|
1441
|
+
;
|
|
1442
|
+
return {
|
|
1443
|
+
privateKey: o.private_key,
|
|
1444
|
+
};
|
|
1445
|
+
}
|
|
1446
|
+
export function fromEcdsaSecp256r1ComputePublicKey(o) {
|
|
1447
|
+
if (o.privateKey === undefined) {
|
|
1448
|
+
throw new Error("Expected privateKey in EcdsaSecp256r1ComputePublicKey serialization");
|
|
1449
|
+
}
|
|
1450
|
+
;
|
|
1451
|
+
return {
|
|
1452
|
+
private_key: o.privateKey,
|
|
1453
|
+
};
|
|
1454
|
+
}
|
|
1455
|
+
export function toEcdsaSecp256r1ComputePublicKeyResponse(o) {
|
|
1456
|
+
if (o.public_key === undefined) {
|
|
1457
|
+
throw new Error("Expected public_key in EcdsaSecp256r1ComputePublicKeyResponse deserialization");
|
|
1458
|
+
}
|
|
1459
|
+
;
|
|
1460
|
+
return {
|
|
1461
|
+
publicKey: toSecp256r1Point(o.public_key),
|
|
1462
|
+
};
|
|
1463
|
+
}
|
|
1464
|
+
export function fromEcdsaSecp256r1ComputePublicKeyResponse(o) {
|
|
1465
|
+
if (o.publicKey === undefined) {
|
|
1466
|
+
throw new Error("Expected publicKey in EcdsaSecp256r1ComputePublicKeyResponse serialization");
|
|
1467
|
+
}
|
|
1468
|
+
;
|
|
1469
|
+
return {
|
|
1470
|
+
public_key: fromSecp256r1Point(o.publicKey),
|
|
1471
|
+
};
|
|
1472
|
+
}
|
|
1473
|
+
export function toEcdsaSecp256r1ConstructSignature(o) {
|
|
1474
|
+
if (o.message === undefined) {
|
|
1475
|
+
throw new Error("Expected message in EcdsaSecp256r1ConstructSignature deserialization");
|
|
1476
|
+
}
|
|
1477
|
+
if (o.private_key === undefined) {
|
|
1478
|
+
throw new Error("Expected private_key in EcdsaSecp256r1ConstructSignature deserialization");
|
|
1479
|
+
}
|
|
1480
|
+
;
|
|
1481
|
+
return {
|
|
1482
|
+
message: o.message,
|
|
1483
|
+
privateKey: o.private_key,
|
|
1484
|
+
};
|
|
1485
|
+
}
|
|
1486
|
+
export function fromEcdsaSecp256r1ConstructSignature(o) {
|
|
1487
|
+
if (o.message === undefined) {
|
|
1488
|
+
throw new Error("Expected message in EcdsaSecp256r1ConstructSignature serialization");
|
|
1489
|
+
}
|
|
1490
|
+
if (o.privateKey === undefined) {
|
|
1491
|
+
throw new Error("Expected privateKey in EcdsaSecp256r1ConstructSignature serialization");
|
|
1492
|
+
}
|
|
1493
|
+
;
|
|
1494
|
+
return {
|
|
1495
|
+
message: o.message,
|
|
1496
|
+
private_key: o.privateKey,
|
|
1497
|
+
};
|
|
1498
|
+
}
|
|
1499
|
+
export function toEcdsaSecp256r1ConstructSignatureResponse(o) {
|
|
1500
|
+
if (o.r === undefined) {
|
|
1501
|
+
throw new Error("Expected r in EcdsaSecp256r1ConstructSignatureResponse deserialization");
|
|
1502
|
+
}
|
|
1503
|
+
if (o.s === undefined) {
|
|
1504
|
+
throw new Error("Expected s in EcdsaSecp256r1ConstructSignatureResponse deserialization");
|
|
1505
|
+
}
|
|
1506
|
+
if (o.v === undefined) {
|
|
1507
|
+
throw new Error("Expected v in EcdsaSecp256r1ConstructSignatureResponse deserialization");
|
|
1508
|
+
}
|
|
1509
|
+
;
|
|
1510
|
+
return {
|
|
1511
|
+
r: o.r,
|
|
1512
|
+
s: o.s,
|
|
1513
|
+
v: o.v,
|
|
1514
|
+
};
|
|
1515
|
+
}
|
|
1516
|
+
export function fromEcdsaSecp256r1ConstructSignatureResponse(o) {
|
|
1517
|
+
if (o.r === undefined) {
|
|
1518
|
+
throw new Error("Expected r in EcdsaSecp256r1ConstructSignatureResponse serialization");
|
|
1519
|
+
}
|
|
1520
|
+
if (o.s === undefined) {
|
|
1521
|
+
throw new Error("Expected s in EcdsaSecp256r1ConstructSignatureResponse serialization");
|
|
1522
|
+
}
|
|
1523
|
+
if (o.v === undefined) {
|
|
1524
|
+
throw new Error("Expected v in EcdsaSecp256r1ConstructSignatureResponse serialization");
|
|
1525
|
+
}
|
|
1526
|
+
;
|
|
1527
|
+
return {
|
|
1528
|
+
r: o.r,
|
|
1529
|
+
s: o.s,
|
|
1530
|
+
v: o.v,
|
|
1531
|
+
};
|
|
1532
|
+
}
|
|
1533
|
+
export function toEcdsaSecp256r1RecoverPublicKey(o) {
|
|
1534
|
+
if (o.message === undefined) {
|
|
1535
|
+
throw new Error("Expected message in EcdsaSecp256r1RecoverPublicKey deserialization");
|
|
1536
|
+
}
|
|
1537
|
+
if (o.r === undefined) {
|
|
1538
|
+
throw new Error("Expected r in EcdsaSecp256r1RecoverPublicKey deserialization");
|
|
1539
|
+
}
|
|
1540
|
+
if (o.s === undefined) {
|
|
1541
|
+
throw new Error("Expected s in EcdsaSecp256r1RecoverPublicKey deserialization");
|
|
1542
|
+
}
|
|
1543
|
+
if (o.v === undefined) {
|
|
1544
|
+
throw new Error("Expected v in EcdsaSecp256r1RecoverPublicKey deserialization");
|
|
1545
|
+
}
|
|
1546
|
+
;
|
|
1547
|
+
return {
|
|
1548
|
+
message: o.message,
|
|
1549
|
+
r: o.r,
|
|
1550
|
+
s: o.s,
|
|
1551
|
+
v: o.v,
|
|
1552
|
+
};
|
|
1553
|
+
}
|
|
1554
|
+
export function fromEcdsaSecp256r1RecoverPublicKey(o) {
|
|
1555
|
+
if (o.message === undefined) {
|
|
1556
|
+
throw new Error("Expected message in EcdsaSecp256r1RecoverPublicKey serialization");
|
|
1557
|
+
}
|
|
1558
|
+
if (o.r === undefined) {
|
|
1559
|
+
throw new Error("Expected r in EcdsaSecp256r1RecoverPublicKey serialization");
|
|
1560
|
+
}
|
|
1561
|
+
if (o.s === undefined) {
|
|
1562
|
+
throw new Error("Expected s in EcdsaSecp256r1RecoverPublicKey serialization");
|
|
1563
|
+
}
|
|
1564
|
+
if (o.v === undefined) {
|
|
1565
|
+
throw new Error("Expected v in EcdsaSecp256r1RecoverPublicKey serialization");
|
|
1566
|
+
}
|
|
1567
|
+
;
|
|
1568
|
+
return {
|
|
1569
|
+
message: o.message,
|
|
1570
|
+
r: o.r,
|
|
1571
|
+
s: o.s,
|
|
1572
|
+
v: o.v,
|
|
1573
|
+
};
|
|
1574
|
+
}
|
|
1575
|
+
export function toEcdsaSecp256r1RecoverPublicKeyResponse(o) {
|
|
1576
|
+
if (o.public_key === undefined) {
|
|
1577
|
+
throw new Error("Expected public_key in EcdsaSecp256r1RecoverPublicKeyResponse deserialization");
|
|
1578
|
+
}
|
|
1579
|
+
;
|
|
1580
|
+
return {
|
|
1581
|
+
publicKey: toSecp256r1Point(o.public_key),
|
|
1582
|
+
};
|
|
1583
|
+
}
|
|
1584
|
+
export function fromEcdsaSecp256r1RecoverPublicKeyResponse(o) {
|
|
1585
|
+
if (o.publicKey === undefined) {
|
|
1586
|
+
throw new Error("Expected publicKey in EcdsaSecp256r1RecoverPublicKeyResponse serialization");
|
|
1587
|
+
}
|
|
1588
|
+
;
|
|
1589
|
+
return {
|
|
1590
|
+
public_key: fromSecp256r1Point(o.publicKey),
|
|
1591
|
+
};
|
|
1592
|
+
}
|
|
1593
|
+
export function toEcdsaSecp256r1VerifySignature(o) {
|
|
1594
|
+
if (o.message === undefined) {
|
|
1595
|
+
throw new Error("Expected message in EcdsaSecp256r1VerifySignature deserialization");
|
|
1596
|
+
}
|
|
1597
|
+
if (o.public_key === undefined) {
|
|
1598
|
+
throw new Error("Expected public_key in EcdsaSecp256r1VerifySignature deserialization");
|
|
1599
|
+
}
|
|
1600
|
+
if (o.r === undefined) {
|
|
1601
|
+
throw new Error("Expected r in EcdsaSecp256r1VerifySignature deserialization");
|
|
1602
|
+
}
|
|
1603
|
+
if (o.s === undefined) {
|
|
1604
|
+
throw new Error("Expected s in EcdsaSecp256r1VerifySignature deserialization");
|
|
1605
|
+
}
|
|
1606
|
+
if (o.v === undefined) {
|
|
1607
|
+
throw new Error("Expected v in EcdsaSecp256r1VerifySignature deserialization");
|
|
1608
|
+
}
|
|
1609
|
+
;
|
|
1610
|
+
return {
|
|
1611
|
+
message: o.message,
|
|
1612
|
+
publicKey: toSecp256r1Point(o.public_key),
|
|
1613
|
+
r: o.r,
|
|
1614
|
+
s: o.s,
|
|
1615
|
+
v: o.v,
|
|
1616
|
+
};
|
|
1617
|
+
}
|
|
1618
|
+
export function fromEcdsaSecp256r1VerifySignature(o) {
|
|
1619
|
+
if (o.message === undefined) {
|
|
1620
|
+
throw new Error("Expected message in EcdsaSecp256r1VerifySignature serialization");
|
|
1621
|
+
}
|
|
1622
|
+
if (o.publicKey === undefined) {
|
|
1623
|
+
throw new Error("Expected publicKey in EcdsaSecp256r1VerifySignature serialization");
|
|
1624
|
+
}
|
|
1625
|
+
if (o.r === undefined) {
|
|
1626
|
+
throw new Error("Expected r in EcdsaSecp256r1VerifySignature serialization");
|
|
1627
|
+
}
|
|
1628
|
+
if (o.s === undefined) {
|
|
1629
|
+
throw new Error("Expected s in EcdsaSecp256r1VerifySignature serialization");
|
|
1630
|
+
}
|
|
1631
|
+
if (o.v === undefined) {
|
|
1632
|
+
throw new Error("Expected v in EcdsaSecp256r1VerifySignature serialization");
|
|
1633
|
+
}
|
|
1634
|
+
;
|
|
1635
|
+
return {
|
|
1636
|
+
message: o.message,
|
|
1637
|
+
public_key: fromSecp256r1Point(o.publicKey),
|
|
1638
|
+
r: o.r,
|
|
1639
|
+
s: o.s,
|
|
1640
|
+
v: o.v,
|
|
1641
|
+
};
|
|
1642
|
+
}
|
|
1643
|
+
export function toEcdsaSecp256r1VerifySignatureResponse(o) {
|
|
1644
|
+
if (o.verified === undefined) {
|
|
1645
|
+
throw new Error("Expected verified in EcdsaSecp256r1VerifySignatureResponse deserialization");
|
|
1646
|
+
}
|
|
1647
|
+
;
|
|
1648
|
+
return {
|
|
1649
|
+
verified: o.verified,
|
|
1650
|
+
};
|
|
1651
|
+
}
|
|
1652
|
+
export function fromEcdsaSecp256r1VerifySignatureResponse(o) {
|
|
1653
|
+
if (o.verified === undefined) {
|
|
1654
|
+
throw new Error("Expected verified in EcdsaSecp256r1VerifySignatureResponse serialization");
|
|
1655
|
+
}
|
|
1656
|
+
;
|
|
1657
|
+
return {
|
|
1658
|
+
verified: o.verified,
|
|
1659
|
+
};
|
|
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
|
+
}
|
|
1679
|
+
export function toGoblinProof(o) {
|
|
1680
|
+
if (o.merge_proof === undefined) {
|
|
1681
|
+
throw new Error("Expected merge_proof in GoblinProof deserialization");
|
|
1682
|
+
}
|
|
1683
|
+
if (o.eccvm_proof === undefined) {
|
|
1684
|
+
throw new Error("Expected eccvm_proof in GoblinProof deserialization");
|
|
1685
|
+
}
|
|
1686
|
+
if (o.ipa_proof === undefined) {
|
|
1687
|
+
throw new Error("Expected ipa_proof in GoblinProof deserialization");
|
|
1688
|
+
}
|
|
1689
|
+
if (o.translator_proof === undefined) {
|
|
1690
|
+
throw new Error("Expected translator_proof in GoblinProof deserialization");
|
|
1691
|
+
}
|
|
1692
|
+
;
|
|
1693
|
+
return {
|
|
1694
|
+
mergeProof: o.merge_proof.map((v) => v),
|
|
1695
|
+
eccvmProof: o.eccvm_proof.map((v) => v),
|
|
1696
|
+
ipaProof: o.ipa_proof.map((v) => v),
|
|
1697
|
+
translatorProof: o.translator_proof.map((v) => v),
|
|
1698
|
+
};
|
|
1699
|
+
}
|
|
1700
|
+
export function fromGoblinProof(o) {
|
|
1701
|
+
if (o.mergeProof === undefined) {
|
|
1702
|
+
throw new Error("Expected mergeProof in GoblinProof serialization");
|
|
1703
|
+
}
|
|
1704
|
+
if (o.eccvmProof === undefined) {
|
|
1705
|
+
throw new Error("Expected eccvmProof in GoblinProof serialization");
|
|
1706
|
+
}
|
|
1707
|
+
if (o.ipaProof === undefined) {
|
|
1708
|
+
throw new Error("Expected ipaProof in GoblinProof serialization");
|
|
1709
|
+
}
|
|
1710
|
+
if (o.translatorProof === undefined) {
|
|
1711
|
+
throw new Error("Expected translatorProof in GoblinProof serialization");
|
|
1712
|
+
}
|
|
1713
|
+
;
|
|
1714
|
+
return {
|
|
1715
|
+
merge_proof: o.mergeProof.map((v) => v),
|
|
1716
|
+
eccvm_proof: o.eccvmProof.map((v) => v),
|
|
1717
|
+
ipa_proof: o.ipaProof.map((v) => v),
|
|
1718
|
+
translator_proof: o.translatorProof.map((v) => v),
|
|
1719
|
+
};
|
|
1720
|
+
}
|
|
1721
|
+
export function toGrumpkinAdd(o) {
|
|
1722
|
+
if (o.point_a === undefined) {
|
|
1723
|
+
throw new Error("Expected point_a in GrumpkinAdd deserialization");
|
|
1724
|
+
}
|
|
1725
|
+
if (o.point_b === undefined) {
|
|
1726
|
+
throw new Error("Expected point_b in GrumpkinAdd deserialization");
|
|
1727
|
+
}
|
|
1728
|
+
;
|
|
1729
|
+
return {
|
|
1730
|
+
pointA: toGrumpkinPoint(o.point_a),
|
|
1731
|
+
pointB: toGrumpkinPoint(o.point_b),
|
|
1732
|
+
};
|
|
1733
|
+
}
|
|
1734
|
+
export function fromGrumpkinAdd(o) {
|
|
1735
|
+
if (o.pointA === undefined) {
|
|
1736
|
+
throw new Error("Expected pointA in GrumpkinAdd serialization");
|
|
1737
|
+
}
|
|
1738
|
+
if (o.pointB === undefined) {
|
|
1739
|
+
throw new Error("Expected pointB in GrumpkinAdd serialization");
|
|
1740
|
+
}
|
|
1741
|
+
;
|
|
1742
|
+
return {
|
|
1743
|
+
point_a: fromGrumpkinPoint(o.pointA),
|
|
1744
|
+
point_b: fromGrumpkinPoint(o.pointB),
|
|
1745
|
+
};
|
|
1746
|
+
}
|
|
1747
|
+
export function toGrumpkinAddResponse(o) {
|
|
1748
|
+
if (o.point === undefined) {
|
|
1749
|
+
throw new Error("Expected point in GrumpkinAddResponse deserialization");
|
|
1750
|
+
}
|
|
1751
|
+
;
|
|
1752
|
+
return {
|
|
1753
|
+
point: toGrumpkinPoint(o.point),
|
|
1754
|
+
};
|
|
1755
|
+
}
|
|
1756
|
+
export function fromGrumpkinAddResponse(o) {
|
|
1757
|
+
if (o.point === undefined) {
|
|
1758
|
+
throw new Error("Expected point in GrumpkinAddResponse serialization");
|
|
1759
|
+
}
|
|
1760
|
+
;
|
|
1761
|
+
return {
|
|
1762
|
+
point: fromGrumpkinPoint(o.point),
|
|
1763
|
+
};
|
|
1764
|
+
}
|
|
1765
|
+
export function toGrumpkinBatchMul(o) {
|
|
1766
|
+
if (o.points === undefined) {
|
|
1767
|
+
throw new Error("Expected points in GrumpkinBatchMul deserialization");
|
|
1768
|
+
}
|
|
1769
|
+
if (o.scalar === undefined) {
|
|
1770
|
+
throw new Error("Expected scalar in GrumpkinBatchMul deserialization");
|
|
1771
|
+
}
|
|
1772
|
+
;
|
|
1773
|
+
return {
|
|
1774
|
+
points: o.points.map((v) => v),
|
|
1775
|
+
scalar: o.scalar,
|
|
1776
|
+
};
|
|
1777
|
+
}
|
|
1778
|
+
export function fromGrumpkinBatchMul(o) {
|
|
1779
|
+
if (o.points === undefined) {
|
|
1780
|
+
throw new Error("Expected points in GrumpkinBatchMul serialization");
|
|
1781
|
+
}
|
|
1782
|
+
if (o.scalar === undefined) {
|
|
1783
|
+
throw new Error("Expected scalar in GrumpkinBatchMul serialization");
|
|
1784
|
+
}
|
|
1785
|
+
;
|
|
1786
|
+
return {
|
|
1787
|
+
points: o.points.map((v) => v),
|
|
1788
|
+
scalar: o.scalar,
|
|
1789
|
+
};
|
|
1790
|
+
}
|
|
1791
|
+
export function toGrumpkinBatchMulResponse(o) {
|
|
1792
|
+
if (o.points === undefined) {
|
|
1793
|
+
throw new Error("Expected points in GrumpkinBatchMulResponse deserialization");
|
|
1794
|
+
}
|
|
1795
|
+
;
|
|
1796
|
+
return {
|
|
1797
|
+
points: o.points.map((v) => v),
|
|
1798
|
+
};
|
|
1799
|
+
}
|
|
1800
|
+
export function fromGrumpkinBatchMulResponse(o) {
|
|
1801
|
+
if (o.points === undefined) {
|
|
1802
|
+
throw new Error("Expected points in GrumpkinBatchMulResponse serialization");
|
|
1803
|
+
}
|
|
1804
|
+
;
|
|
1805
|
+
return {
|
|
1806
|
+
points: o.points.map((v) => v),
|
|
1807
|
+
};
|
|
1808
|
+
}
|
|
1809
|
+
export function toGrumpkinGetRandomFr(o) {
|
|
1810
|
+
if (o.dummy === undefined) {
|
|
1811
|
+
throw new Error("Expected dummy in GrumpkinGetRandomFr deserialization");
|
|
1812
|
+
}
|
|
1813
|
+
;
|
|
1814
|
+
return {
|
|
1815
|
+
dummy: o.dummy,
|
|
1816
|
+
};
|
|
1817
|
+
}
|
|
1818
|
+
export function fromGrumpkinGetRandomFr(o) {
|
|
1819
|
+
if (o.dummy === undefined) {
|
|
1820
|
+
throw new Error("Expected dummy in GrumpkinGetRandomFr serialization");
|
|
1821
|
+
}
|
|
1822
|
+
;
|
|
1823
|
+
return {
|
|
1824
|
+
dummy: o.dummy,
|
|
1825
|
+
};
|
|
1826
|
+
}
|
|
1827
|
+
export function toGrumpkinGetRandomFrResponse(o) {
|
|
1828
|
+
if (o.value === undefined) {
|
|
1829
|
+
throw new Error("Expected value in GrumpkinGetRandomFrResponse deserialization");
|
|
1830
|
+
}
|
|
1831
|
+
;
|
|
1832
|
+
return {
|
|
1833
|
+
value: o.value,
|
|
1834
|
+
};
|
|
1835
|
+
}
|
|
1836
|
+
export function fromGrumpkinGetRandomFrResponse(o) {
|
|
1837
|
+
if (o.value === undefined) {
|
|
1838
|
+
throw new Error("Expected value in GrumpkinGetRandomFrResponse serialization");
|
|
1839
|
+
}
|
|
1840
|
+
;
|
|
1841
|
+
return {
|
|
1842
|
+
value: o.value,
|
|
1843
|
+
};
|
|
1844
|
+
}
|
|
1845
|
+
export function toGrumpkinMul(o) {
|
|
1846
|
+
if (o.point === undefined) {
|
|
1847
|
+
throw new Error("Expected point in GrumpkinMul deserialization");
|
|
1848
|
+
}
|
|
1849
|
+
if (o.scalar === undefined) {
|
|
1850
|
+
throw new Error("Expected scalar in GrumpkinMul deserialization");
|
|
1851
|
+
}
|
|
1852
|
+
;
|
|
1853
|
+
return {
|
|
1854
|
+
point: toGrumpkinPoint(o.point),
|
|
1855
|
+
scalar: o.scalar,
|
|
1856
|
+
};
|
|
1857
|
+
}
|
|
1858
|
+
export function fromGrumpkinMul(o) {
|
|
1859
|
+
if (o.point === undefined) {
|
|
1860
|
+
throw new Error("Expected point in GrumpkinMul serialization");
|
|
1861
|
+
}
|
|
1862
|
+
if (o.scalar === undefined) {
|
|
1863
|
+
throw new Error("Expected scalar in GrumpkinMul serialization");
|
|
1864
|
+
}
|
|
1865
|
+
;
|
|
1866
|
+
return {
|
|
1867
|
+
point: fromGrumpkinPoint(o.point),
|
|
1868
|
+
scalar: o.scalar,
|
|
1869
|
+
};
|
|
1870
|
+
}
|
|
1871
|
+
export function toGrumpkinMulResponse(o) {
|
|
1872
|
+
if (o.point === undefined) {
|
|
1873
|
+
throw new Error("Expected point in GrumpkinMulResponse deserialization");
|
|
1874
|
+
}
|
|
1875
|
+
;
|
|
1876
|
+
return {
|
|
1877
|
+
point: toGrumpkinPoint(o.point),
|
|
1878
|
+
};
|
|
1879
|
+
}
|
|
1880
|
+
export function fromGrumpkinMulResponse(o) {
|
|
1881
|
+
if (o.point === undefined) {
|
|
1882
|
+
throw new Error("Expected point in GrumpkinMulResponse serialization");
|
|
1883
|
+
}
|
|
1884
|
+
;
|
|
1885
|
+
return {
|
|
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,
|
|
1913
|
+
};
|
|
1914
|
+
}
|
|
1915
|
+
export function toGrumpkinReduce512(o) {
|
|
1916
|
+
if (o.input === undefined) {
|
|
1917
|
+
throw new Error("Expected input in GrumpkinReduce512 deserialization");
|
|
1918
|
+
}
|
|
1919
|
+
;
|
|
1920
|
+
return {
|
|
1921
|
+
input: o.input,
|
|
1922
|
+
};
|
|
1923
|
+
}
|
|
1924
|
+
export function fromGrumpkinReduce512(o) {
|
|
1925
|
+
if (o.input === undefined) {
|
|
1926
|
+
throw new Error("Expected input in GrumpkinReduce512 serialization");
|
|
1927
|
+
}
|
|
1928
|
+
;
|
|
1929
|
+
return {
|
|
1930
|
+
input: o.input,
|
|
1931
|
+
};
|
|
1932
|
+
}
|
|
1933
|
+
export function toGrumpkinReduce512Response(o) {
|
|
1934
|
+
if (o.value === undefined) {
|
|
1935
|
+
throw new Error("Expected value in GrumpkinReduce512Response deserialization");
|
|
1936
|
+
}
|
|
1937
|
+
;
|
|
1938
|
+
return {
|
|
1939
|
+
value: o.value,
|
|
1940
|
+
};
|
|
1941
|
+
}
|
|
1942
|
+
export function fromGrumpkinReduce512Response(o) {
|
|
1943
|
+
if (o.value === undefined) {
|
|
1944
|
+
throw new Error("Expected value in GrumpkinReduce512Response serialization");
|
|
1945
|
+
}
|
|
1946
|
+
;
|
|
1947
|
+
return {
|
|
1948
|
+
value: o.value,
|
|
1949
|
+
};
|
|
1950
|
+
}
|
|
1951
|
+
export function toMegaVkAsFields(o) {
|
|
1952
|
+
if (o.verification_key === undefined) {
|
|
1953
|
+
throw new Error("Expected verification_key in MegaVkAsFields deserialization");
|
|
1954
|
+
}
|
|
1955
|
+
;
|
|
1956
|
+
return {
|
|
1957
|
+
verificationKey: o.verification_key,
|
|
1958
|
+
};
|
|
1959
|
+
}
|
|
1960
|
+
export function fromMegaVkAsFields(o) {
|
|
1961
|
+
if (o.verificationKey === undefined) {
|
|
1962
|
+
throw new Error("Expected verificationKey in MegaVkAsFields serialization");
|
|
1963
|
+
}
|
|
1964
|
+
;
|
|
1965
|
+
return {
|
|
1966
|
+
verification_key: o.verificationKey,
|
|
1967
|
+
};
|
|
1968
|
+
}
|
|
1969
|
+
export function toMegaVkAsFieldsResponse(o) {
|
|
1970
|
+
if (o.fields === undefined) {
|
|
1971
|
+
throw new Error("Expected fields in MegaVkAsFieldsResponse deserialization");
|
|
1972
|
+
}
|
|
1973
|
+
;
|
|
1974
|
+
return {
|
|
1975
|
+
fields: o.fields.map((v) => v),
|
|
1976
|
+
};
|
|
1977
|
+
}
|
|
1978
|
+
export function fromMegaVkAsFieldsResponse(o) {
|
|
1979
|
+
if (o.fields === undefined) {
|
|
1980
|
+
throw new Error("Expected fields in MegaVkAsFieldsResponse serialization");
|
|
1981
|
+
}
|
|
1982
|
+
;
|
|
1983
|
+
return {
|
|
1984
|
+
fields: o.fields.map((v) => v),
|
|
1985
|
+
};
|
|
1986
|
+
}
|
|
1987
|
+
export function toPedersenCommit(o) {
|
|
1988
|
+
if (o.inputs === undefined) {
|
|
1989
|
+
throw new Error("Expected inputs in PedersenCommit deserialization");
|
|
1990
|
+
}
|
|
1991
|
+
if (o.hash_index === undefined) {
|
|
1992
|
+
throw new Error("Expected hash_index in PedersenCommit deserialization");
|
|
1993
|
+
}
|
|
1994
|
+
;
|
|
1995
|
+
return {
|
|
1996
|
+
inputs: o.inputs.map((v) => v),
|
|
1997
|
+
hashIndex: o.hash_index,
|
|
1998
|
+
};
|
|
1999
|
+
}
|
|
2000
|
+
export function fromPedersenCommit(o) {
|
|
2001
|
+
if (o.inputs === undefined) {
|
|
2002
|
+
throw new Error("Expected inputs in PedersenCommit serialization");
|
|
2003
|
+
}
|
|
2004
|
+
if (o.hashIndex === undefined) {
|
|
2005
|
+
throw new Error("Expected hashIndex in PedersenCommit serialization");
|
|
2006
|
+
}
|
|
2007
|
+
;
|
|
2008
|
+
return {
|
|
2009
|
+
inputs: o.inputs.map((v) => v),
|
|
2010
|
+
hash_index: o.hashIndex,
|
|
2011
|
+
};
|
|
2012
|
+
}
|
|
2013
|
+
export function toPedersenCommitResponse(o) {
|
|
2014
|
+
if (o.point === undefined) {
|
|
2015
|
+
throw new Error("Expected point in PedersenCommitResponse deserialization");
|
|
2016
|
+
}
|
|
2017
|
+
;
|
|
2018
|
+
return {
|
|
2019
|
+
point: toGrumpkinPoint(o.point),
|
|
2020
|
+
};
|
|
2021
|
+
}
|
|
2022
|
+
export function fromPedersenCommitResponse(o) {
|
|
2023
|
+
if (o.point === undefined) {
|
|
2024
|
+
throw new Error("Expected point in PedersenCommitResponse serialization");
|
|
2025
|
+
}
|
|
2026
|
+
;
|
|
2027
|
+
return {
|
|
2028
|
+
point: fromGrumpkinPoint(o.point),
|
|
2029
|
+
};
|
|
2030
|
+
}
|
|
2031
|
+
export function toPedersenHash(o) {
|
|
2032
|
+
if (o.inputs === undefined) {
|
|
2033
|
+
throw new Error("Expected inputs in PedersenHash deserialization");
|
|
2034
|
+
}
|
|
2035
|
+
if (o.hash_index === undefined) {
|
|
2036
|
+
throw new Error("Expected hash_index in PedersenHash deserialization");
|
|
2037
|
+
}
|
|
2038
|
+
;
|
|
2039
|
+
return {
|
|
2040
|
+
inputs: o.inputs.map((v) => v),
|
|
2041
|
+
hashIndex: o.hash_index,
|
|
2042
|
+
};
|
|
2043
|
+
}
|
|
2044
|
+
export function fromPedersenHash(o) {
|
|
2045
|
+
if (o.inputs === undefined) {
|
|
2046
|
+
throw new Error("Expected inputs in PedersenHash serialization");
|
|
2047
|
+
}
|
|
2048
|
+
if (o.hashIndex === undefined) {
|
|
2049
|
+
throw new Error("Expected hashIndex in PedersenHash serialization");
|
|
2050
|
+
}
|
|
2051
|
+
;
|
|
2052
|
+
return {
|
|
2053
|
+
inputs: o.inputs.map((v) => v),
|
|
2054
|
+
hash_index: o.hashIndex,
|
|
2055
|
+
};
|
|
2056
|
+
}
|
|
2057
|
+
export function toPedersenHashBuffer(o) {
|
|
2058
|
+
if (o.input === undefined) {
|
|
2059
|
+
throw new Error("Expected input in PedersenHashBuffer deserialization");
|
|
2060
|
+
}
|
|
2061
|
+
if (o.hash_index === undefined) {
|
|
2062
|
+
throw new Error("Expected hash_index in PedersenHashBuffer deserialization");
|
|
2063
|
+
}
|
|
2064
|
+
;
|
|
2065
|
+
return {
|
|
2066
|
+
input: o.input,
|
|
2067
|
+
hashIndex: o.hash_index,
|
|
2068
|
+
};
|
|
2069
|
+
}
|
|
2070
|
+
export function fromPedersenHashBuffer(o) {
|
|
2071
|
+
if (o.input === undefined) {
|
|
2072
|
+
throw new Error("Expected input in PedersenHashBuffer serialization");
|
|
2073
|
+
}
|
|
2074
|
+
if (o.hashIndex === undefined) {
|
|
2075
|
+
throw new Error("Expected hashIndex in PedersenHashBuffer serialization");
|
|
2076
|
+
}
|
|
2077
|
+
;
|
|
2078
|
+
return {
|
|
2079
|
+
input: o.input,
|
|
2080
|
+
hash_index: o.hashIndex,
|
|
2081
|
+
};
|
|
2082
|
+
}
|
|
2083
|
+
export function toPedersenHashBufferResponse(o) {
|
|
2084
|
+
if (o.hash === undefined) {
|
|
2085
|
+
throw new Error("Expected hash in PedersenHashBufferResponse deserialization");
|
|
2086
|
+
}
|
|
2087
|
+
;
|
|
2088
|
+
return {
|
|
2089
|
+
hash: o.hash,
|
|
2090
|
+
};
|
|
2091
|
+
}
|
|
2092
|
+
export function fromPedersenHashBufferResponse(o) {
|
|
2093
|
+
if (o.hash === undefined) {
|
|
2094
|
+
throw new Error("Expected hash in PedersenHashBufferResponse serialization");
|
|
2095
|
+
}
|
|
2096
|
+
;
|
|
2097
|
+
return {
|
|
2098
|
+
hash: o.hash,
|
|
2099
|
+
};
|
|
2100
|
+
}
|
|
2101
|
+
export function toPedersenHashResponse(o) {
|
|
2102
|
+
if (o.hash === undefined) {
|
|
2103
|
+
throw new Error("Expected hash in PedersenHashResponse deserialization");
|
|
2104
|
+
}
|
|
2105
|
+
;
|
|
2106
|
+
return {
|
|
2107
|
+
hash: o.hash,
|
|
2108
|
+
};
|
|
2109
|
+
}
|
|
2110
|
+
export function fromPedersenHashResponse(o) {
|
|
2111
|
+
if (o.hash === undefined) {
|
|
2112
|
+
throw new Error("Expected hash in PedersenHashResponse serialization");
|
|
2113
|
+
}
|
|
2114
|
+
;
|
|
2115
|
+
return {
|
|
2116
|
+
hash: o.hash,
|
|
2117
|
+
};
|
|
2118
|
+
}
|
|
2119
|
+
export function toPoseidon2Hash(o) {
|
|
2120
|
+
if (o.inputs === undefined) {
|
|
2121
|
+
throw new Error("Expected inputs in Poseidon2Hash deserialization");
|
|
2122
|
+
}
|
|
2123
|
+
;
|
|
2124
|
+
return {
|
|
2125
|
+
inputs: o.inputs.map((v) => v),
|
|
2126
|
+
};
|
|
2127
|
+
}
|
|
2128
|
+
export function fromPoseidon2Hash(o) {
|
|
2129
|
+
if (o.inputs === undefined) {
|
|
2130
|
+
throw new Error("Expected inputs in Poseidon2Hash serialization");
|
|
2131
|
+
}
|
|
2132
|
+
;
|
|
2133
|
+
return {
|
|
2134
|
+
inputs: o.inputs.map((v) => v),
|
|
2135
|
+
};
|
|
2136
|
+
}
|
|
2137
|
+
export function toPoseidon2HashAccumulate(o) {
|
|
2138
|
+
if (o.inputs === undefined) {
|
|
2139
|
+
throw new Error("Expected inputs in Poseidon2HashAccumulate deserialization");
|
|
2140
|
+
}
|
|
2141
|
+
;
|
|
2142
|
+
return {
|
|
2143
|
+
inputs: o.inputs.map((v) => v),
|
|
2144
|
+
};
|
|
2145
|
+
}
|
|
2146
|
+
export function fromPoseidon2HashAccumulate(o) {
|
|
2147
|
+
if (o.inputs === undefined) {
|
|
2148
|
+
throw new Error("Expected inputs in Poseidon2HashAccumulate serialization");
|
|
2149
|
+
}
|
|
2150
|
+
;
|
|
2151
|
+
return {
|
|
2152
|
+
inputs: o.inputs.map((v) => v),
|
|
2153
|
+
};
|
|
2154
|
+
}
|
|
2155
|
+
export function toPoseidon2HashAccumulateResponse(o) {
|
|
2156
|
+
if (o.hash === undefined) {
|
|
2157
|
+
throw new Error("Expected hash in Poseidon2HashAccumulateResponse deserialization");
|
|
2158
|
+
}
|
|
2159
|
+
;
|
|
2160
|
+
return {
|
|
2161
|
+
hash: o.hash,
|
|
2162
|
+
};
|
|
2163
|
+
}
|
|
2164
|
+
export function fromPoseidon2HashAccumulateResponse(o) {
|
|
2165
|
+
if (o.hash === undefined) {
|
|
2166
|
+
throw new Error("Expected hash in Poseidon2HashAccumulateResponse serialization");
|
|
2167
|
+
}
|
|
2168
|
+
;
|
|
2169
|
+
return {
|
|
2170
|
+
hash: o.hash,
|
|
2171
|
+
};
|
|
2172
|
+
}
|
|
2173
|
+
export function toPoseidon2HashResponse(o) {
|
|
2174
|
+
if (o.hash === undefined) {
|
|
2175
|
+
throw new Error("Expected hash in Poseidon2HashResponse deserialization");
|
|
2176
|
+
}
|
|
2177
|
+
;
|
|
2178
|
+
return {
|
|
2179
|
+
hash: o.hash,
|
|
2180
|
+
};
|
|
2181
|
+
}
|
|
2182
|
+
export function fromPoseidon2HashResponse(o) {
|
|
2183
|
+
if (o.hash === undefined) {
|
|
2184
|
+
throw new Error("Expected hash in Poseidon2HashResponse serialization");
|
|
2185
|
+
}
|
|
2186
|
+
;
|
|
2187
|
+
return {
|
|
2188
|
+
hash: o.hash,
|
|
2189
|
+
};
|
|
2190
|
+
}
|
|
2191
|
+
export function toPoseidon2Permutation(o) {
|
|
2192
|
+
if (o.inputs === undefined) {
|
|
2193
|
+
throw new Error("Expected inputs in Poseidon2Permutation deserialization");
|
|
312
2194
|
}
|
|
313
2195
|
;
|
|
314
2196
|
return {
|
|
315
|
-
|
|
2197
|
+
inputs: o.inputs.map((v) => v),
|
|
316
2198
|
};
|
|
317
2199
|
}
|
|
318
|
-
export function
|
|
319
|
-
if (o.
|
|
320
|
-
throw new Error("Expected
|
|
2200
|
+
export function fromPoseidon2Permutation(o) {
|
|
2201
|
+
if (o.inputs === undefined) {
|
|
2202
|
+
throw new Error("Expected inputs in Poseidon2Permutation serialization");
|
|
321
2203
|
}
|
|
322
2204
|
;
|
|
323
2205
|
return {
|
|
324
|
-
|
|
2206
|
+
inputs: o.inputs.map((v) => v),
|
|
325
2207
|
};
|
|
326
2208
|
}
|
|
327
|
-
export function
|
|
328
|
-
if (o.
|
|
329
|
-
throw new Error("Expected
|
|
330
|
-
}
|
|
331
|
-
if (o.settings === undefined) {
|
|
332
|
-
throw new Error("Expected settings in CircuitWriteSolidityVerifier deserialization");
|
|
2209
|
+
export function toPoseidon2PermutationResponse(o) {
|
|
2210
|
+
if (o.outputs === undefined) {
|
|
2211
|
+
throw new Error("Expected outputs in Poseidon2PermutationResponse deserialization");
|
|
333
2212
|
}
|
|
334
2213
|
;
|
|
335
2214
|
return {
|
|
336
|
-
|
|
337
|
-
settings: toProofSystemSettings(o.settings),
|
|
2215
|
+
outputs: o.outputs.map((v) => v),
|
|
338
2216
|
};
|
|
339
2217
|
}
|
|
340
|
-
export function
|
|
341
|
-
if (o.
|
|
342
|
-
throw new Error("Expected
|
|
343
|
-
}
|
|
344
|
-
if (o.settings === undefined) {
|
|
345
|
-
throw new Error("Expected settings in CircuitWriteSolidityVerifier serialization");
|
|
2218
|
+
export function fromPoseidon2PermutationResponse(o) {
|
|
2219
|
+
if (o.outputs === undefined) {
|
|
2220
|
+
throw new Error("Expected outputs in Poseidon2PermutationResponse serialization");
|
|
346
2221
|
}
|
|
347
2222
|
;
|
|
348
2223
|
return {
|
|
349
|
-
|
|
350
|
-
settings: fromProofSystemSettings(o.settings),
|
|
2224
|
+
outputs: o.outputs.map((v) => v),
|
|
351
2225
|
};
|
|
352
2226
|
}
|
|
353
|
-
export function
|
|
354
|
-
if (o.
|
|
355
|
-
throw new Error("Expected
|
|
2227
|
+
export function toProofSystemSettings(o) {
|
|
2228
|
+
if (o.ipa_accumulation === undefined) {
|
|
2229
|
+
throw new Error("Expected ipa_accumulation in ProofSystemSettings deserialization");
|
|
2230
|
+
}
|
|
2231
|
+
if (o.oracle_hash_type === undefined) {
|
|
2232
|
+
throw new Error("Expected oracle_hash_type in ProofSystemSettings deserialization");
|
|
2233
|
+
}
|
|
2234
|
+
if (o.disable_zk === undefined) {
|
|
2235
|
+
throw new Error("Expected disable_zk in ProofSystemSettings deserialization");
|
|
2236
|
+
}
|
|
2237
|
+
if (o.optimized_solidity_verifier === undefined) {
|
|
2238
|
+
throw new Error("Expected optimized_solidity_verifier in ProofSystemSettings deserialization");
|
|
356
2239
|
}
|
|
357
2240
|
;
|
|
358
2241
|
return {
|
|
359
|
-
|
|
2242
|
+
ipaAccumulation: o.ipa_accumulation,
|
|
2243
|
+
oracleHashType: o.oracle_hash_type,
|
|
2244
|
+
disableZk: o.disable_zk,
|
|
2245
|
+
optimizedSolidityVerifier: o.optimized_solidity_verifier,
|
|
360
2246
|
};
|
|
361
2247
|
}
|
|
362
|
-
export function
|
|
363
|
-
if (o.
|
|
364
|
-
throw new Error("Expected
|
|
2248
|
+
export function fromProofSystemSettings(o) {
|
|
2249
|
+
if (o.ipaAccumulation === undefined) {
|
|
2250
|
+
throw new Error("Expected ipaAccumulation in ProofSystemSettings serialization");
|
|
2251
|
+
}
|
|
2252
|
+
if (o.oracleHashType === undefined) {
|
|
2253
|
+
throw new Error("Expected oracleHashType in ProofSystemSettings serialization");
|
|
2254
|
+
}
|
|
2255
|
+
if (o.disableZk === undefined) {
|
|
2256
|
+
throw new Error("Expected disableZk in ProofSystemSettings serialization");
|
|
2257
|
+
}
|
|
2258
|
+
if (o.optimizedSolidityVerifier === undefined) {
|
|
2259
|
+
throw new Error("Expected optimizedSolidityVerifier in ProofSystemSettings serialization");
|
|
365
2260
|
}
|
|
366
2261
|
;
|
|
367
2262
|
return {
|
|
368
|
-
|
|
2263
|
+
ipa_accumulation: o.ipaAccumulation,
|
|
2264
|
+
oracle_hash_type: o.oracleHashType,
|
|
2265
|
+
disable_zk: o.disableZk,
|
|
2266
|
+
optimized_solidity_verifier: o.optimizedSolidityVerifier,
|
|
369
2267
|
};
|
|
370
2268
|
}
|
|
371
|
-
export function
|
|
372
|
-
if (o.
|
|
373
|
-
throw new Error("Expected
|
|
2269
|
+
export function toSchnorrComputePublicKey(o) {
|
|
2270
|
+
if (o.private_key === undefined) {
|
|
2271
|
+
throw new Error("Expected private_key in SchnorrComputePublicKey deserialization");
|
|
374
2272
|
}
|
|
375
2273
|
;
|
|
376
2274
|
return {
|
|
377
|
-
|
|
2275
|
+
privateKey: o.private_key,
|
|
378
2276
|
};
|
|
379
2277
|
}
|
|
380
|
-
export function
|
|
381
|
-
if (o.
|
|
382
|
-
throw new Error("Expected
|
|
2278
|
+
export function fromSchnorrComputePublicKey(o) {
|
|
2279
|
+
if (o.privateKey === undefined) {
|
|
2280
|
+
throw new Error("Expected privateKey in SchnorrComputePublicKey serialization");
|
|
383
2281
|
}
|
|
384
2282
|
;
|
|
385
2283
|
return {
|
|
386
|
-
|
|
2284
|
+
private_key: o.privateKey,
|
|
387
2285
|
};
|
|
388
2286
|
}
|
|
389
|
-
export function
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
export function fromClientIvcAccumulateResponse(o) {
|
|
393
|
-
return {};
|
|
394
|
-
}
|
|
395
|
-
export function toClientIvcCheckPrecomputedVk(o) {
|
|
396
|
-
if (o.circuit === undefined) {
|
|
397
|
-
throw new Error("Expected circuit in ClientIvcCheckPrecomputedVk deserialization");
|
|
2287
|
+
export function toSchnorrComputePublicKeyResponse(o) {
|
|
2288
|
+
if (o.public_key === undefined) {
|
|
2289
|
+
throw new Error("Expected public_key in SchnorrComputePublicKeyResponse deserialization");
|
|
398
2290
|
}
|
|
399
2291
|
;
|
|
400
2292
|
return {
|
|
401
|
-
|
|
2293
|
+
publicKey: toGrumpkinPoint(o.public_key),
|
|
402
2294
|
};
|
|
403
2295
|
}
|
|
404
|
-
export function
|
|
405
|
-
if (o.
|
|
406
|
-
throw new Error("Expected
|
|
2296
|
+
export function fromSchnorrComputePublicKeyResponse(o) {
|
|
2297
|
+
if (o.publicKey === undefined) {
|
|
2298
|
+
throw new Error("Expected publicKey in SchnorrComputePublicKeyResponse serialization");
|
|
407
2299
|
}
|
|
408
2300
|
;
|
|
409
2301
|
return {
|
|
410
|
-
|
|
2302
|
+
public_key: fromGrumpkinPoint(o.publicKey),
|
|
411
2303
|
};
|
|
412
2304
|
}
|
|
413
|
-
export function
|
|
414
|
-
if (o.
|
|
415
|
-
throw new Error("Expected
|
|
2305
|
+
export function toSchnorrConstructSignature(o) {
|
|
2306
|
+
if (o.message === undefined) {
|
|
2307
|
+
throw new Error("Expected message in SchnorrConstructSignature deserialization");
|
|
416
2308
|
}
|
|
417
|
-
if (o.
|
|
418
|
-
throw new Error("Expected
|
|
2309
|
+
if (o.private_key === undefined) {
|
|
2310
|
+
throw new Error("Expected private_key in SchnorrConstructSignature deserialization");
|
|
419
2311
|
}
|
|
420
2312
|
;
|
|
421
2313
|
return {
|
|
422
|
-
|
|
423
|
-
|
|
2314
|
+
message: o.message,
|
|
2315
|
+
privateKey: o.private_key,
|
|
424
2316
|
};
|
|
425
2317
|
}
|
|
426
|
-
export function
|
|
427
|
-
if (o.
|
|
428
|
-
throw new Error("Expected
|
|
2318
|
+
export function fromSchnorrConstructSignature(o) {
|
|
2319
|
+
if (o.message === undefined) {
|
|
2320
|
+
throw new Error("Expected message in SchnorrConstructSignature serialization");
|
|
429
2321
|
}
|
|
430
|
-
if (o.
|
|
431
|
-
throw new Error("Expected
|
|
2322
|
+
if (o.privateKey === undefined) {
|
|
2323
|
+
throw new Error("Expected privateKey in SchnorrConstructSignature serialization");
|
|
432
2324
|
}
|
|
433
2325
|
;
|
|
434
2326
|
return {
|
|
435
|
-
|
|
436
|
-
|
|
2327
|
+
message: o.message,
|
|
2328
|
+
private_key: o.privateKey,
|
|
437
2329
|
};
|
|
438
2330
|
}
|
|
439
|
-
export function
|
|
440
|
-
if (o.
|
|
441
|
-
throw new Error("Expected
|
|
2331
|
+
export function toSchnorrConstructSignatureResponse(o) {
|
|
2332
|
+
if (o.s === undefined) {
|
|
2333
|
+
throw new Error("Expected s in SchnorrConstructSignatureResponse deserialization");
|
|
2334
|
+
}
|
|
2335
|
+
if (o.e === undefined) {
|
|
2336
|
+
throw new Error("Expected e in SchnorrConstructSignatureResponse deserialization");
|
|
442
2337
|
}
|
|
443
2338
|
;
|
|
444
2339
|
return {
|
|
445
|
-
|
|
2340
|
+
s: o.s,
|
|
2341
|
+
e: o.e,
|
|
446
2342
|
};
|
|
447
2343
|
}
|
|
448
|
-
export function
|
|
449
|
-
if (o.
|
|
450
|
-
throw new Error("Expected
|
|
2344
|
+
export function fromSchnorrConstructSignatureResponse(o) {
|
|
2345
|
+
if (o.s === undefined) {
|
|
2346
|
+
throw new Error("Expected s in SchnorrConstructSignatureResponse serialization");
|
|
2347
|
+
}
|
|
2348
|
+
if (o.e === undefined) {
|
|
2349
|
+
throw new Error("Expected e in SchnorrConstructSignatureResponse serialization");
|
|
451
2350
|
}
|
|
452
2351
|
;
|
|
453
2352
|
return {
|
|
454
|
-
|
|
2353
|
+
s: o.s,
|
|
2354
|
+
e: o.e,
|
|
455
2355
|
};
|
|
456
2356
|
}
|
|
457
|
-
export function
|
|
458
|
-
if (o.
|
|
459
|
-
throw new Error("Expected
|
|
2357
|
+
export function toSchnorrVerifySignature(o) {
|
|
2358
|
+
if (o.message === undefined) {
|
|
2359
|
+
throw new Error("Expected message in SchnorrVerifySignature deserialization");
|
|
2360
|
+
}
|
|
2361
|
+
if (o.public_key === undefined) {
|
|
2362
|
+
throw new Error("Expected public_key in SchnorrVerifySignature deserialization");
|
|
2363
|
+
}
|
|
2364
|
+
if (o.s === undefined) {
|
|
2365
|
+
throw new Error("Expected s in SchnorrVerifySignature deserialization");
|
|
2366
|
+
}
|
|
2367
|
+
if (o.e === undefined) {
|
|
2368
|
+
throw new Error("Expected e in SchnorrVerifySignature deserialization");
|
|
460
2369
|
}
|
|
461
2370
|
;
|
|
462
2371
|
return {
|
|
463
|
-
|
|
2372
|
+
message: o.message,
|
|
2373
|
+
publicKey: toGrumpkinPoint(o.public_key),
|
|
2374
|
+
s: o.s,
|
|
2375
|
+
e: o.e,
|
|
464
2376
|
};
|
|
465
2377
|
}
|
|
466
|
-
export function
|
|
467
|
-
if (o.
|
|
468
|
-
throw new Error("Expected
|
|
2378
|
+
export function fromSchnorrVerifySignature(o) {
|
|
2379
|
+
if (o.message === undefined) {
|
|
2380
|
+
throw new Error("Expected message in SchnorrVerifySignature serialization");
|
|
2381
|
+
}
|
|
2382
|
+
if (o.publicKey === undefined) {
|
|
2383
|
+
throw new Error("Expected publicKey in SchnorrVerifySignature serialization");
|
|
2384
|
+
}
|
|
2385
|
+
if (o.s === undefined) {
|
|
2386
|
+
throw new Error("Expected s in SchnorrVerifySignature serialization");
|
|
2387
|
+
}
|
|
2388
|
+
if (o.e === undefined) {
|
|
2389
|
+
throw new Error("Expected e in SchnorrVerifySignature serialization");
|
|
469
2390
|
}
|
|
470
2391
|
;
|
|
471
2392
|
return {
|
|
472
|
-
|
|
2393
|
+
message: o.message,
|
|
2394
|
+
public_key: fromGrumpkinPoint(o.publicKey),
|
|
2395
|
+
s: o.s,
|
|
2396
|
+
e: o.e,
|
|
473
2397
|
};
|
|
474
2398
|
}
|
|
475
|
-
export function
|
|
476
|
-
if (o.
|
|
477
|
-
throw new Error("Expected
|
|
2399
|
+
export function toSchnorrVerifySignatureResponse(o) {
|
|
2400
|
+
if (o.verified === undefined) {
|
|
2401
|
+
throw new Error("Expected verified in SchnorrVerifySignatureResponse deserialization");
|
|
478
2402
|
}
|
|
479
2403
|
;
|
|
480
2404
|
return {
|
|
481
|
-
|
|
2405
|
+
verified: o.verified,
|
|
482
2406
|
};
|
|
483
2407
|
}
|
|
484
|
-
export function
|
|
485
|
-
if (o.
|
|
486
|
-
throw new Error("Expected
|
|
2408
|
+
export function fromSchnorrVerifySignatureResponse(o) {
|
|
2409
|
+
if (o.verified === undefined) {
|
|
2410
|
+
throw new Error("Expected verified in SchnorrVerifySignatureResponse serialization");
|
|
487
2411
|
}
|
|
488
2412
|
;
|
|
489
2413
|
return {
|
|
490
|
-
|
|
2414
|
+
verified: o.verified,
|
|
491
2415
|
};
|
|
492
2416
|
}
|
|
493
|
-
export function
|
|
494
|
-
if (o.
|
|
495
|
-
throw new Error("Expected
|
|
496
|
-
}
|
|
497
|
-
if (o.fields === undefined) {
|
|
498
|
-
throw new Error("Expected fields in ClientIvcComputeStandaloneVkResponse deserialization");
|
|
2417
|
+
export function toSecp256k1GetRandomFr(o) {
|
|
2418
|
+
if (o.dummy === undefined) {
|
|
2419
|
+
throw new Error("Expected dummy in Secp256k1GetRandomFr deserialization");
|
|
499
2420
|
}
|
|
500
2421
|
;
|
|
501
2422
|
return {
|
|
502
|
-
|
|
503
|
-
fields: o.fields.map((v) => v),
|
|
2423
|
+
dummy: o.dummy,
|
|
504
2424
|
};
|
|
505
2425
|
}
|
|
506
|
-
export function
|
|
507
|
-
if (o.
|
|
508
|
-
throw new Error("Expected
|
|
509
|
-
}
|
|
510
|
-
if (o.fields === undefined) {
|
|
511
|
-
throw new Error("Expected fields in ClientIvcComputeStandaloneVkResponse serialization");
|
|
2426
|
+
export function fromSecp256k1GetRandomFr(o) {
|
|
2427
|
+
if (o.dummy === undefined) {
|
|
2428
|
+
throw new Error("Expected dummy in Secp256k1GetRandomFr serialization");
|
|
512
2429
|
}
|
|
513
2430
|
;
|
|
514
2431
|
return {
|
|
515
|
-
|
|
516
|
-
fields: o.fields.map((v) => v),
|
|
2432
|
+
dummy: o.dummy,
|
|
517
2433
|
};
|
|
518
2434
|
}
|
|
519
|
-
export function
|
|
520
|
-
if (o.
|
|
521
|
-
throw new Error("Expected
|
|
2435
|
+
export function toSecp256k1GetRandomFrResponse(o) {
|
|
2436
|
+
if (o.value === undefined) {
|
|
2437
|
+
throw new Error("Expected value in Secp256k1GetRandomFrResponse deserialization");
|
|
522
2438
|
}
|
|
523
2439
|
;
|
|
524
2440
|
return {
|
|
525
|
-
|
|
2441
|
+
value: o.value,
|
|
526
2442
|
};
|
|
527
2443
|
}
|
|
528
|
-
export function
|
|
529
|
-
if (o.
|
|
530
|
-
throw new Error("Expected
|
|
2444
|
+
export function fromSecp256k1GetRandomFrResponse(o) {
|
|
2445
|
+
if (o.value === undefined) {
|
|
2446
|
+
throw new Error("Expected value in Secp256k1GetRandomFrResponse serialization");
|
|
531
2447
|
}
|
|
532
2448
|
;
|
|
533
2449
|
return {
|
|
534
|
-
|
|
2450
|
+
value: o.value,
|
|
535
2451
|
};
|
|
536
2452
|
}
|
|
537
|
-
export function
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
export function fromClientIvcLoadResponse(o) {
|
|
541
|
-
return {};
|
|
542
|
-
}
|
|
543
|
-
export function toClientIVCProof(o) {
|
|
544
|
-
if (o.mega_proof === undefined) {
|
|
545
|
-
throw new Error("Expected mega_proof in ClientIVCProof deserialization");
|
|
2453
|
+
export function toSecp256k1Mul(o) {
|
|
2454
|
+
if (o.point === undefined) {
|
|
2455
|
+
throw new Error("Expected point in Secp256k1Mul deserialization");
|
|
546
2456
|
}
|
|
547
|
-
if (o.
|
|
548
|
-
throw new Error("Expected
|
|
2457
|
+
if (o.scalar === undefined) {
|
|
2458
|
+
throw new Error("Expected scalar in Secp256k1Mul deserialization");
|
|
549
2459
|
}
|
|
550
2460
|
;
|
|
551
2461
|
return {
|
|
552
|
-
|
|
553
|
-
|
|
2462
|
+
point: toSecp256k1Point(o.point),
|
|
2463
|
+
scalar: o.scalar,
|
|
554
2464
|
};
|
|
555
2465
|
}
|
|
556
|
-
export function
|
|
557
|
-
if (o.
|
|
558
|
-
throw new Error("Expected
|
|
2466
|
+
export function fromSecp256k1Mul(o) {
|
|
2467
|
+
if (o.point === undefined) {
|
|
2468
|
+
throw new Error("Expected point in Secp256k1Mul serialization");
|
|
559
2469
|
}
|
|
560
|
-
if (o.
|
|
561
|
-
throw new Error("Expected
|
|
2470
|
+
if (o.scalar === undefined) {
|
|
2471
|
+
throw new Error("Expected scalar in Secp256k1Mul serialization");
|
|
562
2472
|
}
|
|
563
2473
|
;
|
|
564
2474
|
return {
|
|
565
|
-
|
|
566
|
-
|
|
2475
|
+
point: fromSecp256k1Point(o.point),
|
|
2476
|
+
scalar: o.scalar,
|
|
567
2477
|
};
|
|
568
2478
|
}
|
|
569
|
-
export function
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
export function fromClientIvcProve(o) {
|
|
573
|
-
return {};
|
|
574
|
-
}
|
|
575
|
-
export function toClientIvcProveResponse(o) {
|
|
576
|
-
if (o.proof === undefined) {
|
|
577
|
-
throw new Error("Expected proof in ClientIvcProveResponse deserialization");
|
|
2479
|
+
export function toSecp256k1MulResponse(o) {
|
|
2480
|
+
if (o.point === undefined) {
|
|
2481
|
+
throw new Error("Expected point in Secp256k1MulResponse deserialization");
|
|
578
2482
|
}
|
|
579
2483
|
;
|
|
580
2484
|
return {
|
|
581
|
-
|
|
2485
|
+
point: toSecp256k1Point(o.point),
|
|
582
2486
|
};
|
|
583
2487
|
}
|
|
584
|
-
export function
|
|
585
|
-
if (o.
|
|
586
|
-
throw new Error("Expected
|
|
2488
|
+
export function fromSecp256k1MulResponse(o) {
|
|
2489
|
+
if (o.point === undefined) {
|
|
2490
|
+
throw new Error("Expected point in Secp256k1MulResponse serialization");
|
|
587
2491
|
}
|
|
588
2492
|
;
|
|
589
2493
|
return {
|
|
590
|
-
|
|
2494
|
+
point: fromSecp256k1Point(o.point),
|
|
591
2495
|
};
|
|
592
2496
|
}
|
|
593
|
-
export function
|
|
594
|
-
if (o.
|
|
595
|
-
throw new Error("Expected
|
|
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");
|
|
596
2503
|
}
|
|
597
2504
|
;
|
|
598
2505
|
return {
|
|
599
|
-
|
|
2506
|
+
x: o.x,
|
|
2507
|
+
y: o.y,
|
|
600
2508
|
};
|
|
601
2509
|
}
|
|
602
|
-
export function
|
|
603
|
-
if (o.
|
|
604
|
-
throw new Error("Expected
|
|
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");
|
|
605
2516
|
}
|
|
606
2517
|
;
|
|
607
2518
|
return {
|
|
608
|
-
|
|
2519
|
+
x: o.x,
|
|
2520
|
+
y: o.y,
|
|
609
2521
|
};
|
|
610
2522
|
}
|
|
611
|
-
export function
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
export function fromClientIvcStartResponse(o) {
|
|
615
|
-
return {};
|
|
616
|
-
}
|
|
617
|
-
export function toClientIvcStats(o) {
|
|
618
|
-
if (o.circuit === undefined) {
|
|
619
|
-
throw new Error("Expected circuit in ClientIvcStats deserialization");
|
|
620
|
-
}
|
|
621
|
-
if (o.include_gates_per_opcode === undefined) {
|
|
622
|
-
throw new Error("Expected include_gates_per_opcode in ClientIvcStats deserialization");
|
|
2523
|
+
export function toSecp256k1Reduce512(o) {
|
|
2524
|
+
if (o.input === undefined) {
|
|
2525
|
+
throw new Error("Expected input in Secp256k1Reduce512 deserialization");
|
|
623
2526
|
}
|
|
624
2527
|
;
|
|
625
2528
|
return {
|
|
626
|
-
|
|
627
|
-
includeGatesPerOpcode: o.include_gates_per_opcode,
|
|
2529
|
+
input: o.input,
|
|
628
2530
|
};
|
|
629
2531
|
}
|
|
630
|
-
export function
|
|
631
|
-
if (o.
|
|
632
|
-
throw new Error("Expected
|
|
633
|
-
}
|
|
634
|
-
if (o.includeGatesPerOpcode === undefined) {
|
|
635
|
-
throw new Error("Expected includeGatesPerOpcode in ClientIvcStats serialization");
|
|
2532
|
+
export function fromSecp256k1Reduce512(o) {
|
|
2533
|
+
if (o.input === undefined) {
|
|
2534
|
+
throw new Error("Expected input in Secp256k1Reduce512 serialization");
|
|
636
2535
|
}
|
|
637
2536
|
;
|
|
638
2537
|
return {
|
|
639
|
-
|
|
640
|
-
include_gates_per_opcode: o.includeGatesPerOpcode,
|
|
2538
|
+
input: o.input,
|
|
641
2539
|
};
|
|
642
2540
|
}
|
|
643
|
-
export function
|
|
644
|
-
if (o.
|
|
645
|
-
throw new Error("Expected
|
|
646
|
-
}
|
|
647
|
-
if (o.circuit_size === undefined) {
|
|
648
|
-
throw new Error("Expected circuit_size in ClientIvcStatsResponse deserialization");
|
|
649
|
-
}
|
|
650
|
-
if (o.gates_per_opcode === undefined) {
|
|
651
|
-
throw new Error("Expected gates_per_opcode in ClientIvcStatsResponse deserialization");
|
|
2541
|
+
export function toSecp256k1Reduce512Response(o) {
|
|
2542
|
+
if (o.value === undefined) {
|
|
2543
|
+
throw new Error("Expected value in Secp256k1Reduce512Response deserialization");
|
|
652
2544
|
}
|
|
653
2545
|
;
|
|
654
2546
|
return {
|
|
655
|
-
|
|
656
|
-
circuitSize: o.circuit_size,
|
|
657
|
-
gatesPerOpcode: o.gates_per_opcode.map((v) => v),
|
|
2547
|
+
value: o.value,
|
|
658
2548
|
};
|
|
659
2549
|
}
|
|
660
|
-
export function
|
|
661
|
-
if (o.
|
|
662
|
-
throw new Error("Expected
|
|
663
|
-
}
|
|
664
|
-
if (o.circuitSize === undefined) {
|
|
665
|
-
throw new Error("Expected circuitSize in ClientIvcStatsResponse serialization");
|
|
666
|
-
}
|
|
667
|
-
if (o.gatesPerOpcode === undefined) {
|
|
668
|
-
throw new Error("Expected gatesPerOpcode in ClientIvcStatsResponse serialization");
|
|
2550
|
+
export function fromSecp256k1Reduce512Response(o) {
|
|
2551
|
+
if (o.value === undefined) {
|
|
2552
|
+
throw new Error("Expected value in Secp256k1Reduce512Response serialization");
|
|
669
2553
|
}
|
|
670
2554
|
;
|
|
671
2555
|
return {
|
|
672
|
-
|
|
673
|
-
circuit_size: o.circuitSize,
|
|
674
|
-
gates_per_opcode: o.gatesPerOpcode.map((v) => v),
|
|
2556
|
+
value: o.value,
|
|
675
2557
|
};
|
|
676
2558
|
}
|
|
677
|
-
export function
|
|
678
|
-
if (o.
|
|
679
|
-
throw new Error("Expected
|
|
2559
|
+
export function toSecp256r1Point(o) {
|
|
2560
|
+
if (o.x === undefined) {
|
|
2561
|
+
throw new Error("Expected x in Secp256r1Point deserialization");
|
|
680
2562
|
}
|
|
681
|
-
if (o.
|
|
682
|
-
throw new Error("Expected
|
|
2563
|
+
if (o.y === undefined) {
|
|
2564
|
+
throw new Error("Expected y in Secp256r1Point deserialization");
|
|
683
2565
|
}
|
|
684
2566
|
;
|
|
685
2567
|
return {
|
|
686
|
-
|
|
687
|
-
|
|
2568
|
+
x: o.x,
|
|
2569
|
+
y: o.y,
|
|
688
2570
|
};
|
|
689
2571
|
}
|
|
690
|
-
export function
|
|
691
|
-
if (o.
|
|
692
|
-
throw new Error("Expected
|
|
2572
|
+
export function fromSecp256r1Point(o) {
|
|
2573
|
+
if (o.x === undefined) {
|
|
2574
|
+
throw new Error("Expected x in Secp256r1Point serialization");
|
|
693
2575
|
}
|
|
694
|
-
if (o.
|
|
695
|
-
throw new Error("Expected
|
|
2576
|
+
if (o.y === undefined) {
|
|
2577
|
+
throw new Error("Expected y in Secp256r1Point serialization");
|
|
696
2578
|
}
|
|
697
2579
|
;
|
|
698
2580
|
return {
|
|
699
|
-
|
|
700
|
-
|
|
2581
|
+
x: o.x,
|
|
2582
|
+
y: o.y,
|
|
701
2583
|
};
|
|
702
2584
|
}
|
|
703
|
-
export function
|
|
704
|
-
|
|
705
|
-
|
|
2585
|
+
export function toShutdown(o) {
|
|
2586
|
+
return {};
|
|
2587
|
+
}
|
|
2588
|
+
export function fromShutdown(o) {
|
|
2589
|
+
return {};
|
|
2590
|
+
}
|
|
2591
|
+
export function toShutdownResponse(o) {
|
|
2592
|
+
return {};
|
|
2593
|
+
}
|
|
2594
|
+
export function fromShutdownResponse(o) {
|
|
2595
|
+
return {};
|
|
2596
|
+
}
|
|
2597
|
+
export function toSrsInitGrumpkinSrs(o) {
|
|
2598
|
+
if (o.points_buf === undefined) {
|
|
2599
|
+
throw new Error("Expected points_buf in SrsInitGrumpkinSrs deserialization");
|
|
2600
|
+
}
|
|
2601
|
+
if (o.num_points === undefined) {
|
|
2602
|
+
throw new Error("Expected num_points in SrsInitGrumpkinSrs deserialization");
|
|
706
2603
|
}
|
|
707
2604
|
;
|
|
708
2605
|
return {
|
|
709
|
-
|
|
2606
|
+
pointsBuf: o.points_buf,
|
|
2607
|
+
numPoints: o.num_points,
|
|
710
2608
|
};
|
|
711
2609
|
}
|
|
712
|
-
export function
|
|
713
|
-
if (o.
|
|
714
|
-
throw new Error("Expected
|
|
2610
|
+
export function fromSrsInitGrumpkinSrs(o) {
|
|
2611
|
+
if (o.pointsBuf === undefined) {
|
|
2612
|
+
throw new Error("Expected pointsBuf in SrsInitGrumpkinSrs serialization");
|
|
2613
|
+
}
|
|
2614
|
+
if (o.numPoints === undefined) {
|
|
2615
|
+
throw new Error("Expected numPoints in SrsInitGrumpkinSrs serialization");
|
|
715
2616
|
}
|
|
716
2617
|
;
|
|
717
2618
|
return {
|
|
718
|
-
|
|
2619
|
+
points_buf: o.pointsBuf,
|
|
2620
|
+
num_points: o.numPoints,
|
|
719
2621
|
};
|
|
720
2622
|
}
|
|
721
|
-
export function
|
|
722
|
-
if (o.
|
|
723
|
-
throw new Error("Expected
|
|
724
|
-
}
|
|
725
|
-
if (o.ipa_proof === undefined) {
|
|
726
|
-
throw new Error("Expected ipa_proof in ECCVMProof deserialization");
|
|
2623
|
+
export function toSrsInitGrumpkinSrsResponse(o) {
|
|
2624
|
+
if (o.dummy === undefined) {
|
|
2625
|
+
throw new Error("Expected dummy in SrsInitGrumpkinSrsResponse deserialization");
|
|
727
2626
|
}
|
|
728
2627
|
;
|
|
729
2628
|
return {
|
|
730
|
-
|
|
731
|
-
ipaProof: o.ipa_proof.map((v) => v),
|
|
2629
|
+
dummy: o.dummy,
|
|
732
2630
|
};
|
|
733
2631
|
}
|
|
734
|
-
export function
|
|
735
|
-
if (o.
|
|
736
|
-
throw new Error("Expected
|
|
737
|
-
}
|
|
738
|
-
if (o.ipaProof === undefined) {
|
|
739
|
-
throw new Error("Expected ipaProof in ECCVMProof serialization");
|
|
2632
|
+
export function fromSrsInitGrumpkinSrsResponse(o) {
|
|
2633
|
+
if (o.dummy === undefined) {
|
|
2634
|
+
throw new Error("Expected dummy in SrsInitGrumpkinSrsResponse serialization");
|
|
740
2635
|
}
|
|
741
2636
|
;
|
|
742
2637
|
return {
|
|
743
|
-
|
|
744
|
-
ipa_proof: o.ipaProof.map((v) => v),
|
|
2638
|
+
dummy: o.dummy,
|
|
745
2639
|
};
|
|
746
2640
|
}
|
|
747
|
-
export function
|
|
748
|
-
if (o.
|
|
749
|
-
throw new Error("Expected
|
|
2641
|
+
export function toSrsInitSrs(o) {
|
|
2642
|
+
if (o.points_buf === undefined) {
|
|
2643
|
+
throw new Error("Expected points_buf in SrsInitSrs deserialization");
|
|
750
2644
|
}
|
|
751
|
-
if (o.
|
|
752
|
-
throw new Error("Expected
|
|
2645
|
+
if (o.num_points === undefined) {
|
|
2646
|
+
throw new Error("Expected num_points in SrsInitSrs deserialization");
|
|
753
2647
|
}
|
|
754
|
-
if (o.
|
|
755
|
-
throw new Error("Expected
|
|
2648
|
+
if (o.g2_point === undefined) {
|
|
2649
|
+
throw new Error("Expected g2_point in SrsInitSrs deserialization");
|
|
756
2650
|
}
|
|
757
2651
|
;
|
|
758
2652
|
return {
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
2653
|
+
pointsBuf: o.points_buf,
|
|
2654
|
+
numPoints: o.num_points,
|
|
2655
|
+
g2Point: o.g2_point,
|
|
762
2656
|
};
|
|
763
2657
|
}
|
|
764
|
-
export function
|
|
765
|
-
if (o.
|
|
766
|
-
throw new Error("Expected
|
|
2658
|
+
export function fromSrsInitSrs(o) {
|
|
2659
|
+
if (o.pointsBuf === undefined) {
|
|
2660
|
+
throw new Error("Expected pointsBuf in SrsInitSrs serialization");
|
|
767
2661
|
}
|
|
768
|
-
if (o.
|
|
769
|
-
throw new Error("Expected
|
|
2662
|
+
if (o.numPoints === undefined) {
|
|
2663
|
+
throw new Error("Expected numPoints in SrsInitSrs serialization");
|
|
770
2664
|
}
|
|
771
|
-
if (o.
|
|
772
|
-
throw new Error("Expected
|
|
2665
|
+
if (o.g2Point === undefined) {
|
|
2666
|
+
throw new Error("Expected g2Point in SrsInitSrs serialization");
|
|
773
2667
|
}
|
|
774
2668
|
;
|
|
775
2669
|
return {
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
2670
|
+
points_buf: o.pointsBuf,
|
|
2671
|
+
num_points: o.numPoints,
|
|
2672
|
+
g2_point: o.g2Point,
|
|
779
2673
|
};
|
|
780
2674
|
}
|
|
781
|
-
export function
|
|
782
|
-
if (o.
|
|
783
|
-
throw new Error("Expected
|
|
784
|
-
}
|
|
785
|
-
if (o.oracle_hash_type === undefined) {
|
|
786
|
-
throw new Error("Expected oracle_hash_type in ProofSystemSettings deserialization");
|
|
787
|
-
}
|
|
788
|
-
if (o.disable_zk === undefined) {
|
|
789
|
-
throw new Error("Expected disable_zk in ProofSystemSettings deserialization");
|
|
790
|
-
}
|
|
791
|
-
if (o.optimized_solidity_verifier === undefined) {
|
|
792
|
-
throw new Error("Expected optimized_solidity_verifier in ProofSystemSettings deserialization");
|
|
2675
|
+
export function toSrsInitSrsResponse(o) {
|
|
2676
|
+
if (o.dummy === undefined) {
|
|
2677
|
+
throw new Error("Expected dummy in SrsInitSrsResponse deserialization");
|
|
793
2678
|
}
|
|
794
2679
|
;
|
|
795
2680
|
return {
|
|
796
|
-
|
|
797
|
-
oracleHashType: o.oracle_hash_type,
|
|
798
|
-
disableZk: o.disable_zk,
|
|
799
|
-
optimizedSolidityVerifier: o.optimized_solidity_verifier,
|
|
2681
|
+
dummy: o.dummy,
|
|
800
2682
|
};
|
|
801
2683
|
}
|
|
802
|
-
export function
|
|
803
|
-
if (o.
|
|
804
|
-
throw new Error("Expected
|
|
805
|
-
}
|
|
806
|
-
if (o.oracleHashType === undefined) {
|
|
807
|
-
throw new Error("Expected oracleHashType in ProofSystemSettings serialization");
|
|
808
|
-
}
|
|
809
|
-
if (o.disableZk === undefined) {
|
|
810
|
-
throw new Error("Expected disableZk in ProofSystemSettings serialization");
|
|
811
|
-
}
|
|
812
|
-
if (o.optimizedSolidityVerifier === undefined) {
|
|
813
|
-
throw new Error("Expected optimizedSolidityVerifier in ProofSystemSettings serialization");
|
|
2684
|
+
export function fromSrsInitSrsResponse(o) {
|
|
2685
|
+
if (o.dummy === undefined) {
|
|
2686
|
+
throw new Error("Expected dummy in SrsInitSrsResponse serialization");
|
|
814
2687
|
}
|
|
815
2688
|
;
|
|
816
2689
|
return {
|
|
817
|
-
|
|
818
|
-
oracle_hash_type: o.oracleHashType,
|
|
819
|
-
disable_zk: o.disableZk,
|
|
820
|
-
optimized_solidity_verifier: o.optimizedSolidityVerifier,
|
|
2690
|
+
dummy: o.dummy,
|
|
821
2691
|
};
|
|
822
2692
|
}
|
|
823
2693
|
export function toVkAsFields(o) {
|
|
@@ -856,4 +2726,4 @@ export function fromVkAsFieldsResponse(o) {
|
|
|
856
2726
|
fields: o.fields.map((v) => v),
|
|
857
2727
|
};
|
|
858
2728
|
}
|
|
859
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpX3R5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NiaW5kL2dlbmVyYXRlZC9hcGlfdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsbUNBQW1DO0FBeXJCbkMsa0NBQWtDO0FBQ2xDLE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxDQUEwQjtJQUMzRCxJQUFJLENBQUMsQ0FBQyxPQUFPLEtBQUssU0FBUyxFQUFFLENBQUM7UUFBQyxNQUFNLElBQUksS0FBSyxDQUFDLHNEQUFzRCxDQUFDLENBQUM7SUFBQyxDQUFDO0lBQ3pHLElBQUksQ0FBQyxDQUFDLFFBQVEsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsdURBQXVELENBQUMsQ0FBQztJQUFDLENBQUM7SUFBQSxDQUFDO0lBQzVHLE9BQU87UUFDTCxPQUFPLEVBQUUsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztRQUN0QyxRQUFRLEVBQUUscUJBQXFCLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztLQUM1QyxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxDQUFtQjtJQUN0RCxJQUFJLENBQUMsQ0FBQyxPQUFPLEtBQUssU0FBUyxFQUFFLENBQUM7UUFBQyxNQUFNLElBQUksS0FBSyxDQUFDLG9EQUFvRCxDQUFDLENBQUM7SUFBQyxDQUFDO0lBQ3ZHLElBQUksQ0FBQyxDQUFDLFFBQVEsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMscURBQXFELENBQUMsQ0FBQztJQUFDLENBQUM7SUFBQSxDQUFDO0lBQzFHLE9BQU87UUFDUCxPQUFPLEVBQUUsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztRQUN4QyxRQUFRLEVBQUUsdUJBQXVCLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztLQUM1QyxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSwwQkFBMEIsQ0FBQyxDQUFrQztJQUMzRSxJQUFJLENBQUMsQ0FBQyxLQUFLLEtBQUssU0FBUyxFQUFFLENBQUM7UUFBQyxNQUFNLElBQUksS0FBSyxDQUFDLDREQUE0RCxDQUFDLENBQUM7SUFBQyxDQUFDO0lBQzdHLElBQUksQ0FBQyxDQUFDLE1BQU0sS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsNkRBQTZELENBQUMsQ0FBQztJQUFDLENBQUM7SUFDL0csSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQywyREFBMkQsQ0FBQyxDQUFDO0lBQUMsQ0FBQztJQUFBLENBQUM7SUFDNUcsT0FBTztRQUNMLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSztRQUNkLE1BQU0sRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ25DLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSTtLQUNiLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLDRCQUE0QixDQUFDLENBQTJCO0lBQ3RFLElBQUksQ0FBQyxDQUFDLEtBQUssS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsMERBQTBELENBQUMsQ0FBQztJQUFDLENBQUM7SUFDM0csSUFBSSxDQUFDLENBQUMsTUFBTSxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQywyREFBMkQsQ0FBQyxDQUFDO0lBQUMsQ0FBQztJQUM3RyxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssU0FBUyxFQUFFLENBQUM7UUFBQyxNQUFNLElBQUksS0FBSyxDQUFDLHlEQUF5RCxDQUFDLENBQUM7SUFBQyxDQUFDO0lBQUEsQ0FBQztJQUMxRyxPQUFPO1FBQ1AsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLO1FBQ2QsTUFBTSxFQUFFLENBQUMs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
|
|
2729
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpX3R5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NiaW5kL2dlbmVyYXRlZC9hcGlfdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsbUNBQW1DO0FBK3FFbkMsa0NBQWtDO0FBQ2xDLE1BQU0sVUFBVSxZQUFZLENBQUMsQ0FBb0IsRUFBYztJQUM3RCxJQUFJLENBQUMsQ0FBQyxVQUFVLEtBQUssU0FBUyxFQUFFLENBQUM7UUFBQyxNQUFNLElBQUksS0FBSyxDQUFDLG1EQUFtRCxDQUFDLENBQUM7SUFBQyxDQUFDO0lBQ3pHLElBQUksQ0FBQyxDQUFDLEVBQUUsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsMkNBQTJDLENBQUMsQ0FBQztJQUFDLENBQUM7SUFDekYsSUFBSSxDQUFDLENBQUMsR0FBRyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFDO0lBQUMsQ0FBQztJQUMzRixJQUFJLENBQUMsQ0FBQyxNQUFNLEtBQUssU0FBUyxFQUFFLENBQUM7UUFBQyxNQUFNLElBQUksS0FBSyxDQUFDLCtDQUErQyxDQUFDLENBQUM7SUFBQyxDQUFDO0lBQUEsQ0FBQztJQUNsRyxPQUFPO1FBQ0wsVUFBVSxFQUFFLENBQUMsQ0FBQyxVQUFVO1FBQ3hCLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRTtRQUNSLEdBQUcsRUFBRSxDQUFDLENBQUMsR0FBRztRQUNWLE1BQU0sRUFBRSxDQUFDLENBQUMsTUFBTTtLQUNqQixDQUFDO0FBQUEsQ0FDSDtBQUVELE1BQU0sVUFBVSxjQUFjLENBQUMsQ0FBYSxFQUFxQjtJQUMvRCxJQUFJLENBQUMsQ0FBQyxVQUFVLEtBQUssU0FBUyxFQUFFLENBQUM7UUFBQyxNQUFNLElBQUksS0FBSyxDQUFDLGlEQUFpRCxDQUFDLENBQUM7SUFBQyxDQUFDO0lBQ3ZHLElBQUksQ0FB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
|