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