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