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