@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.
Files changed (186) hide show
  1. package/build/amd64-linux/bb +0 -0
  2. package/build/amd64-linux/nodejs_module.node +0 -0
  3. package/build/amd64-macos/bb +0 -0
  4. package/build/amd64-macos/nodejs_module.node +0 -0
  5. package/build/arm64-linux/bb +0 -0
  6. package/build/arm64-linux/nodejs_module.node +0 -0
  7. package/build/arm64-macos/bb +0 -0
  8. package/build/arm64-macos/nodejs_module.node +0 -0
  9. package/dest/browser/barretenberg/backend.d.ts +48 -17
  10. package/dest/browser/barretenberg/backend.d.ts.map +1 -1
  11. package/dest/browser/barretenberg/backend.js +95 -6
  12. package/dest/browser/barretenberg/index.d.ts +2 -2
  13. package/dest/browser/barretenberg/index.d.ts.map +1 -1
  14. package/dest/browser/barretenberg/index.js +2 -2
  15. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/index.js +1 -1
  16. package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg-threads.js +1 -1
  17. package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg.js +1 -1
  18. package/dest/browser/bb_backends/index.d.ts +3 -1
  19. package/dest/browser/bb_backends/index.d.ts.map +1 -1
  20. package/dest/browser/cbind/generate.d.ts +5 -2
  21. package/dest/browser/cbind/generate.d.ts.map +1 -1
  22. package/dest/browser/cbind/generate.js +47 -25
  23. package/dest/browser/cbind/generated/api_types.d.ts +787 -1660
  24. package/dest/browser/cbind/generated/api_types.d.ts.map +1 -1
  25. package/dest/browser/cbind/generated/api_types.js +1535 -1535
  26. package/dest/browser/cbind/generated/async.d.ts +1 -1
  27. package/dest/browser/cbind/generated/async.d.ts.map +1 -1
  28. package/dest/browser/cbind/generated/async.js +6 -2
  29. package/dest/browser/cbind/generated/sync.d.ts +1 -1
  30. package/dest/browser/cbind/generated/sync.d.ts.map +1 -1
  31. package/dest/browser/cbind/generated/sync.js +6 -2
  32. package/dest/browser/cbind/naming.d.ts +16 -0
  33. package/dest/browser/cbind/naming.d.ts.map +1 -0
  34. package/dest/browser/cbind/naming.js +24 -0
  35. package/dest/browser/cbind/rust_codegen.d.ts +25 -0
  36. package/dest/browser/cbind/rust_codegen.d.ts.map +1 -0
  37. package/dest/browser/cbind/rust_codegen.js +416 -0
  38. package/dest/browser/cbind/schema_visitor.d.ts +47 -0
  39. package/dest/browser/cbind/schema_visitor.d.ts.map +1 -0
  40. package/dest/browser/cbind/schema_visitor.js +158 -0
  41. package/dest/browser/cbind/typescript_codegen.d.ts +30 -0
  42. package/dest/browser/cbind/typescript_codegen.d.ts.map +1 -0
  43. package/dest/browser/cbind/typescript_codegen.js +365 -0
  44. package/dest/browser/index.d.ts +2 -2
  45. package/dest/browser/index.d.ts.map +1 -1
  46. package/dest/browser/index.js +2 -2
  47. package/dest/node/barretenberg/backend.d.ts +48 -17
  48. package/dest/node/barretenberg/backend.d.ts.map +1 -1
  49. package/dest/node/barretenberg/backend.js +95 -6
  50. package/dest/node/barretenberg/backend.test.d.ts +2 -0
  51. package/dest/node/barretenberg/backend.test.d.ts.map +1 -0
  52. package/dest/node/barretenberg/backend.test.js +103 -0
  53. package/dest/node/barretenberg/index.d.ts +2 -2
  54. package/dest/node/barretenberg/index.d.ts.map +1 -1
  55. package/dest/node/barretenberg/index.js +2 -2
  56. package/dest/node/barretenberg_wasm/barretenberg-threads.wasm.gz +0 -0
  57. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/index.js +1 -1
  58. package/dest/node/bb_backends/index.d.ts +3 -1
  59. package/dest/node/bb_backends/index.d.ts.map +1 -1
  60. package/dest/node/bb_backends/node/index.d.ts +1 -1
  61. package/dest/node/bb_backends/node/index.d.ts.map +1 -1
  62. package/dest/node/bb_backends/node/index.js +5 -5
  63. package/dest/node/bb_backends/node/native_shm.d.ts +3 -2
  64. package/dest/node/bb_backends/node/native_shm.d.ts.map +1 -1
  65. package/dest/node/bb_backends/node/native_shm.js +38 -20
  66. package/dest/node/bb_backends/node/native_shm_async.d.ts +2 -2
  67. package/dest/node/bb_backends/node/native_shm_async.d.ts.map +1 -1
  68. package/dest/node/bb_backends/node/native_shm_async.js +15 -20
  69. package/dest/node/bb_backends/node/native_socket.d.ts +1 -1
  70. package/dest/node/bb_backends/node/native_socket.d.ts.map +1 -1
  71. package/dest/node/bb_backends/node/native_socket.js +4 -4
  72. package/dest/node/bb_backends/node/platform.d.ts +1 -1
  73. package/dest/node/bb_backends/node/platform.d.ts.map +1 -1
  74. package/dest/node/bb_backends/node/platform.js +7 -2
  75. package/dest/node/cbind/generate.d.ts +5 -2
  76. package/dest/node/cbind/generate.d.ts.map +1 -1
  77. package/dest/node/cbind/generate.js +47 -25
  78. package/dest/node/cbind/generated/api_types.d.ts +787 -1660
  79. package/dest/node/cbind/generated/api_types.d.ts.map +1 -1
  80. package/dest/node/cbind/generated/api_types.js +1535 -1535
  81. package/dest/node/cbind/generated/async.d.ts +1 -1
  82. package/dest/node/cbind/generated/async.d.ts.map +1 -1
  83. package/dest/node/cbind/generated/async.js +6 -2
  84. package/dest/node/cbind/generated/sync.d.ts +1 -1
  85. package/dest/node/cbind/generated/sync.d.ts.map +1 -1
  86. package/dest/node/cbind/generated/sync.js +6 -2
  87. package/dest/node/cbind/naming.d.ts +16 -0
  88. package/dest/node/cbind/naming.d.ts.map +1 -0
  89. package/dest/node/cbind/naming.js +24 -0
  90. package/dest/node/cbind/rust_codegen.d.ts +25 -0
  91. package/dest/node/cbind/rust_codegen.d.ts.map +1 -0
  92. package/dest/node/cbind/rust_codegen.js +416 -0
  93. package/dest/node/cbind/schema_visitor.d.ts +47 -0
  94. package/dest/node/cbind/schema_visitor.d.ts.map +1 -0
  95. package/dest/node/cbind/schema_visitor.js +158 -0
  96. package/dest/node/cbind/typescript_codegen.d.ts +30 -0
  97. package/dest/node/cbind/typescript_codegen.d.ts.map +1 -0
  98. package/dest/node/cbind/typescript_codegen.js +365 -0
  99. package/dest/node/index.d.ts +2 -2
  100. package/dest/node/index.d.ts.map +1 -1
  101. package/dest/node/index.js +2 -2
  102. package/dest/node-cjs/barretenberg/backend.d.ts +48 -17
  103. package/dest/node-cjs/barretenberg/backend.d.ts.map +1 -1
  104. package/dest/node-cjs/barretenberg/backend.js +97 -6
  105. package/dest/node-cjs/barretenberg/backend.test.d.ts +2 -0
  106. package/dest/node-cjs/barretenberg/backend.test.d.ts.map +1 -0
  107. package/dest/node-cjs/barretenberg/backend.test.js +105 -0
  108. package/dest/node-cjs/barretenberg/index.d.ts +2 -2
  109. package/dest/node-cjs/barretenberg/index.d.ts.map +1 -1
  110. package/dest/node-cjs/barretenberg/index.js +4 -2
  111. package/dest/node-cjs/barretenberg_wasm/barretenberg-threads.wasm.gz +0 -0
  112. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/index.js +1 -1
  113. package/dest/node-cjs/bb_backends/index.d.ts +3 -1
  114. package/dest/node-cjs/bb_backends/index.d.ts.map +1 -1
  115. package/dest/node-cjs/bb_backends/node/index.d.ts +1 -1
  116. package/dest/node-cjs/bb_backends/node/index.d.ts.map +1 -1
  117. package/dest/node-cjs/bb_backends/node/index.js +5 -5
  118. package/dest/node-cjs/bb_backends/node/native_shm.d.ts +3 -2
  119. package/dest/node-cjs/bb_backends/node/native_shm.d.ts.map +1 -1
  120. package/dest/node-cjs/bb_backends/node/native_shm.js +37 -19
  121. package/dest/node-cjs/bb_backends/node/native_shm_async.d.ts +2 -2
  122. package/dest/node-cjs/bb_backends/node/native_shm_async.d.ts.map +1 -1
  123. package/dest/node-cjs/bb_backends/node/native_shm_async.js +15 -20
  124. package/dest/node-cjs/bb_backends/node/native_socket.d.ts +1 -1
  125. package/dest/node-cjs/bb_backends/node/native_socket.d.ts.map +1 -1
  126. package/dest/node-cjs/bb_backends/node/native_socket.js +4 -4
  127. package/dest/node-cjs/bb_backends/node/platform.d.ts +1 -1
  128. package/dest/node-cjs/bb_backends/node/platform.d.ts.map +1 -1
  129. package/dest/node-cjs/bb_backends/node/platform.js +7 -2
  130. package/dest/node-cjs/cbind/generate.d.ts +5 -2
  131. package/dest/node-cjs/cbind/generate.d.ts.map +1 -1
  132. package/dest/node-cjs/cbind/generate.js +47 -25
  133. package/dest/node-cjs/cbind/generated/api_types.d.ts +787 -1660
  134. package/dest/node-cjs/cbind/generated/api_types.d.ts.map +1 -1
  135. package/dest/node-cjs/cbind/generated/api_types.js +1744 -1744
  136. package/dest/node-cjs/cbind/generated/async.d.ts +1 -1
  137. package/dest/node-cjs/cbind/generated/async.d.ts.map +1 -1
  138. package/dest/node-cjs/cbind/generated/async.js +6 -2
  139. package/dest/node-cjs/cbind/generated/sync.d.ts +1 -1
  140. package/dest/node-cjs/cbind/generated/sync.d.ts.map +1 -1
  141. package/dest/node-cjs/cbind/generated/sync.js +6 -2
  142. package/dest/node-cjs/cbind/naming.d.ts +16 -0
  143. package/dest/node-cjs/cbind/naming.d.ts.map +1 -0
  144. package/dest/node-cjs/cbind/naming.js +28 -0
  145. package/dest/node-cjs/cbind/rust_codegen.d.ts +25 -0
  146. package/dest/node-cjs/cbind/rust_codegen.d.ts.map +1 -0
  147. package/dest/node-cjs/cbind/rust_codegen.js +420 -0
  148. package/dest/node-cjs/cbind/schema_visitor.d.ts +47 -0
  149. package/dest/node-cjs/cbind/schema_visitor.d.ts.map +1 -0
  150. package/dest/node-cjs/cbind/schema_visitor.js +162 -0
  151. package/dest/node-cjs/cbind/typescript_codegen.d.ts +30 -0
  152. package/dest/node-cjs/cbind/typescript_codegen.d.ts.map +1 -0
  153. package/dest/node-cjs/cbind/typescript_codegen.js +369 -0
  154. package/dest/node-cjs/index.d.ts +2 -2
  155. package/dest/node-cjs/index.d.ts.map +1 -1
  156. package/dest/node-cjs/index.js +4 -2
  157. package/package.json +1 -1
  158. package/src/barretenberg/backend.test.ts +122 -0
  159. package/src/barretenberg/backend.ts +133 -19
  160. package/src/barretenberg/index.ts +9 -1
  161. package/src/barretenberg_wasm/barretenberg_wasm_main/index.ts +1 -1
  162. package/src/bb_backends/index.ts +3 -0
  163. package/src/bb_backends/node/index.ts +9 -4
  164. package/src/bb_backends/node/native_shm.ts +36 -18
  165. package/src/bb_backends/node/native_shm_async.ts +13 -18
  166. package/src/bb_backends/node/native_socket.ts +3 -4
  167. package/src/bb_backends/node/platform.ts +6 -1
  168. package/src/cbind/generate.ts +51 -32
  169. package/src/cbind/generated/api_types.ts +1655 -2756
  170. package/src/cbind/generated/async.ts +7 -2
  171. package/src/cbind/generated/sync.ts +7 -2
  172. package/src/cbind/naming.ts +27 -0
  173. package/src/cbind/rust_codegen.ts +459 -0
  174. package/src/cbind/schema_visitor.ts +219 -0
  175. package/src/cbind/typescript_codegen.ts +419 -0
  176. package/src/index.ts +4 -0
  177. package/dest/browser/cbind/schema_compiler.d.ts +0 -68
  178. package/dest/browser/cbind/schema_compiler.d.ts.map +0 -1
  179. package/dest/browser/cbind/schema_compiler.js +0 -600
  180. package/dest/node/cbind/schema_compiler.d.ts +0 -68
  181. package/dest/node/cbind/schema_compiler.d.ts.map +0 -1
  182. package/dest/node/cbind/schema_compiler.js +0 -600
  183. package/dest/node-cjs/cbind/schema_compiler.d.ts +0 -68
  184. package/dest/node-cjs/cbind/schema_compiler.d.ts.map +0 -1
  185. package/dest/node-cjs/cbind/schema_compiler.js +0 -607
  186. package/src/cbind/schema_compiler.ts +0 -745
@@ -1,435 +1,413 @@
1
1
  export type Field2 = [Uint8Array, Uint8Array];
2
- export type Fq = Uint8Array;
3
- export type Fr = Uint8Array;
4
- export type Secp256k1Fq = Uint8Array;
5
- export type Secp256k1Fr = Uint8Array;
6
- export type Secp256r1Fq = Uint8Array;
7
- export type Secp256r1Fr = Uint8Array;
8
- export type Uint256T = Uint8Array;
9
- export interface AesDecrypt {
10
- ciphertext: Uint8Array;
11
- iv: Uint8Array;
12
- key: Uint8Array;
13
- length: number;
2
+ export interface CircuitComputeVkResponse {
3
+ bytes: Uint8Array;
4
+ fields: Uint8Array[];
5
+ hash: Uint8Array;
14
6
  }
15
- interface MsgpackAesDecrypt {
16
- ciphertext: Uint8Array;
17
- iv: Uint8Array;
18
- key: Uint8Array;
19
- length: number;
7
+ export interface CircuitInput {
8
+ name: string;
9
+ bytecode: Uint8Array;
10
+ verificationKey: Uint8Array;
20
11
  }
21
- export interface AesDecryptResponse {
22
- plaintext: Uint8Array;
12
+ export interface ProofSystemSettings {
13
+ ipaAccumulation: boolean;
14
+ oracleHashType: string;
15
+ disableZk: boolean;
16
+ optimizedSolidityVerifier: boolean;
23
17
  }
24
- interface MsgpackAesDecryptResponse {
25
- plaintext: Uint8Array;
18
+ export interface CircuitProve {
19
+ circuit: CircuitInput;
20
+ witness: Uint8Array;
21
+ settings: ProofSystemSettings;
26
22
  }
27
- export interface AesEncrypt {
28
- plaintext: Uint8Array;
29
- iv: Uint8Array;
30
- key: Uint8Array;
31
- length: number;
23
+ export interface CircuitInputNoVK {
24
+ name: string;
25
+ bytecode: Uint8Array;
32
26
  }
33
- interface MsgpackAesEncrypt {
34
- plaintext: Uint8Array;
35
- iv: Uint8Array;
36
- key: Uint8Array;
37
- length: number;
27
+ export interface CircuitComputeVk {
28
+ circuit: CircuitInputNoVK;
29
+ settings: ProofSystemSettings;
38
30
  }
39
- export interface AesEncryptResponse {
40
- ciphertext: Uint8Array;
31
+ export interface CircuitStats {
32
+ circuit: CircuitInput;
33
+ includeGatesPerOpcode: boolean;
34
+ settings: ProofSystemSettings;
41
35
  }
42
- interface MsgpackAesEncryptResponse {
43
- ciphertext: Uint8Array;
36
+ export interface CircuitVerify {
37
+ verificationKey: Uint8Array;
38
+ publicInputs: Uint8Array[];
39
+ proof: Uint8Array[];
40
+ settings: ProofSystemSettings;
44
41
  }
45
- export interface Blake2s {
46
- data: Uint8Array;
42
+ export interface ChonkComputeStandaloneVk {
43
+ circuit: CircuitInputNoVK;
47
44
  }
48
- interface MsgpackBlake2s {
49
- data: Uint8Array;
45
+ export interface ChonkComputeIvcVk {
46
+ circuit: CircuitInputNoVK;
50
47
  }
51
- export interface Blake2sResponse {
52
- hash: Uint8Array;
48
+ export interface ChonkStart {
49
+ numCircuits: number;
53
50
  }
54
- interface MsgpackBlake2sResponse {
55
- hash: Uint8Array;
51
+ export interface ChonkLoad {
52
+ circuit: CircuitInput;
56
53
  }
57
- export interface Blake2sToField {
58
- data: Uint8Array;
54
+ export interface ChonkAccumulate {
55
+ witness: Uint8Array;
59
56
  }
60
- interface MsgpackBlake2sToField {
61
- data: Uint8Array;
57
+ export interface ChonkProve {
62
58
  }
63
- export interface Blake2sToFieldResponse {
64
- field: Fr;
59
+ export interface GoblinProof {
60
+ mergeProof: Uint8Array[];
61
+ eccvmProof: Uint8Array[];
62
+ ipaProof: Uint8Array[];
63
+ translatorProof: Uint8Array[];
65
64
  }
66
- interface MsgpackBlake2sToFieldResponse {
67
- field: Uint8Array;
65
+ export interface ChonkProof {
66
+ megaProof: Uint8Array[];
67
+ goblinProof: GoblinProof;
68
68
  }
69
- export interface Bn254FqSqrt {
70
- input: Fq;
69
+ export interface ChonkVerify {
70
+ proof: ChonkProof;
71
+ vk: Uint8Array;
71
72
  }
72
- interface MsgpackBn254FqSqrt {
73
- input: Uint8Array;
73
+ export interface VkAsFields {
74
+ verificationKey: Uint8Array;
74
75
  }
75
- export interface Bn254FqSqrtResponse {
76
- isSquareRoot: boolean;
77
- value: Fq;
76
+ export interface MegaVkAsFields {
77
+ verificationKey: Uint8Array;
78
78
  }
79
- interface MsgpackBn254FqSqrtResponse {
80
- is_square_root: boolean;
81
- value: Uint8Array;
79
+ export interface CircuitWriteSolidityVerifier {
80
+ verificationKey: Uint8Array;
81
+ settings: ProofSystemSettings;
82
82
  }
83
- export interface Bn254FrSqrt {
84
- input: Fr;
83
+ export interface ChonkCheckPrecomputedVk {
84
+ circuit: CircuitInput;
85
85
  }
86
- interface MsgpackBn254FrSqrt {
87
- input: Uint8Array;
86
+ export interface ChonkStats {
87
+ circuit: CircuitInputNoVK;
88
+ includeGatesPerOpcode: boolean;
88
89
  }
89
- export interface Bn254FrSqrtResponse {
90
- isSquareRoot: boolean;
91
- value: Fr;
90
+ export interface Poseidon2Hash {
91
+ inputs: Uint8Array[];
92
92
  }
93
- interface MsgpackBn254FrSqrtResponse {
94
- is_square_root: boolean;
95
- value: Uint8Array;
93
+ export interface Poseidon2Permutation {
94
+ inputs: Uint8Array[];
96
95
  }
97
- export interface Bn254G1FromCompressed {
98
- compressed: Uint8Array;
96
+ export interface Poseidon2HashAccumulate {
97
+ inputs: Uint8Array[];
99
98
  }
100
- interface MsgpackBn254G1FromCompressed {
101
- compressed: Uint8Array;
99
+ export interface PedersenCommit {
100
+ inputs: Uint8Array[];
101
+ hashIndex: number;
102
102
  }
103
- export interface Bn254G1FromCompressedResponse {
104
- point: Bn254G1Point;
103
+ export interface PedersenHash {
104
+ inputs: Uint8Array[];
105
+ hashIndex: number;
105
106
  }
106
- interface MsgpackBn254G1FromCompressedResponse {
107
- point: MsgpackBn254G1Point;
107
+ export interface PedersenHashBuffer {
108
+ input: Uint8Array;
109
+ hashIndex: number;
108
110
  }
109
- export interface Bn254G1IsOnCurve {
110
- point: Bn254G1Point;
111
+ export interface Blake2s {
112
+ data: Uint8Array;
111
113
  }
112
- interface MsgpackBn254G1IsOnCurve {
113
- point: MsgpackBn254G1Point;
114
+ export interface Blake2sToField {
115
+ data: Uint8Array;
114
116
  }
115
- export interface Bn254G1IsOnCurveResponse {
116
- isOnCurve: boolean;
117
+ export interface AesEncrypt {
118
+ plaintext: Uint8Array;
119
+ iv: Uint8Array;
120
+ key: Uint8Array;
121
+ length: number;
117
122
  }
118
- interface MsgpackBn254G1IsOnCurveResponse {
119
- is_on_curve: boolean;
123
+ export interface AesDecrypt {
124
+ ciphertext: Uint8Array;
125
+ iv: Uint8Array;
126
+ key: Uint8Array;
127
+ length: number;
120
128
  }
121
- export interface Bn254G1Mul {
122
- point: Bn254G1Point;
123
- scalar: Fr;
129
+ export interface GrumpkinPoint {
130
+ x: Uint8Array;
131
+ y: Uint8Array;
124
132
  }
125
- interface MsgpackBn254G1Mul {
126
- point: MsgpackBn254G1Point;
133
+ export interface GrumpkinMul {
134
+ point: GrumpkinPoint;
127
135
  scalar: Uint8Array;
128
136
  }
129
- export interface Bn254G1MulResponse {
130
- point: Bn254G1Point;
137
+ export interface GrumpkinAdd {
138
+ pointA: GrumpkinPoint;
139
+ pointB: GrumpkinPoint;
131
140
  }
132
- interface MsgpackBn254G1MulResponse {
133
- point: MsgpackBn254G1Point;
141
+ export interface GrumpkinBatchMul {
142
+ points: GrumpkinPoint[];
143
+ scalar: Uint8Array;
134
144
  }
135
- export interface Bn254G1Point {
136
- x: Fq;
137
- y: Fq;
145
+ export interface GrumpkinGetRandomFr {
146
+ dummy: number;
138
147
  }
139
- interface MsgpackBn254G1Point {
148
+ export interface GrumpkinReduce512 {
149
+ input: Uint8Array;
150
+ }
151
+ export interface Secp256k1Point {
140
152
  x: Uint8Array;
141
153
  y: Uint8Array;
142
154
  }
143
- export interface Bn254G2Mul {
144
- point: Bn254G2Point;
145
- scalar: Fr;
146
- }
147
- interface MsgpackBn254G2Mul {
148
- point: MsgpackBn254G2Point;
155
+ export interface Secp256k1Mul {
156
+ point: Secp256k1Point;
149
157
  scalar: Uint8Array;
150
158
  }
151
- export interface Bn254G2MulResponse {
152
- point: Bn254G2Point;
159
+ export interface Secp256k1GetRandomFr {
160
+ dummy: number;
153
161
  }
154
- interface MsgpackBn254G2MulResponse {
155
- point: MsgpackBn254G2Point;
162
+ export interface Secp256k1Reduce512 {
163
+ input: Uint8Array;
156
164
  }
157
- export interface Bn254G2Point {
158
- x: Field2;
159
- y: Field2;
165
+ export interface Bn254FrSqrt {
166
+ input: Uint8Array;
160
167
  }
161
- interface MsgpackBn254G2Point {
168
+ export interface Bn254FqSqrt {
169
+ input: Uint8Array;
170
+ }
171
+ export interface Bn254G1Point {
172
+ x: Uint8Array;
173
+ y: Uint8Array;
174
+ }
175
+ export interface Bn254G1Mul {
176
+ point: Bn254G1Point;
177
+ scalar: Uint8Array;
178
+ }
179
+ export interface Bn254G2Point {
162
180
  x: [Uint8Array, Uint8Array];
163
181
  y: [Uint8Array, Uint8Array];
164
182
  }
165
- export interface ChonkAccumulate {
166
- witness: Uint8Array;
183
+ export interface Bn254G2Mul {
184
+ point: Bn254G2Point;
185
+ scalar: Uint8Array;
167
186
  }
168
- interface MsgpackChonkAccumulate {
169
- witness: Uint8Array;
187
+ export interface Bn254G1IsOnCurve {
188
+ point: Bn254G1Point;
170
189
  }
171
- export interface ChonkAccumulateResponse {
190
+ export interface Bn254G1FromCompressed {
191
+ compressed: Uint8Array;
172
192
  }
173
- interface MsgpackChonkAccumulateResponse {
193
+ export interface SchnorrComputePublicKey {
194
+ privateKey: Uint8Array;
174
195
  }
175
- export interface ChonkCheckPrecomputedVk {
176
- circuit: CircuitInput;
196
+ export interface SchnorrConstructSignature {
197
+ message: Uint8Array;
198
+ privateKey: Uint8Array;
177
199
  }
178
- interface MsgpackChonkCheckPrecomputedVk {
179
- circuit: MsgpackCircuitInput;
200
+ export interface SchnorrVerifySignature {
201
+ message: Uint8Array;
202
+ publicKey: GrumpkinPoint;
203
+ s: Uint8Array;
204
+ e: Uint8Array;
180
205
  }
181
- export interface ChonkCheckPrecomputedVkResponse {
182
- valid: boolean;
183
- actualVk: Uint8Array;
206
+ export interface EcdsaSecp256k1ComputePublicKey {
207
+ privateKey: Uint8Array;
184
208
  }
185
- interface MsgpackChonkCheckPrecomputedVkResponse {
186
- valid: boolean;
187
- actual_vk: Uint8Array;
209
+ export interface EcdsaSecp256r1ComputePublicKey {
210
+ privateKey: Uint8Array;
188
211
  }
189
- export interface ChonkComputeIvcVk {
190
- circuit: CircuitInputNoVK;
212
+ export interface EcdsaSecp256k1ConstructSignature {
213
+ message: Uint8Array;
214
+ privateKey: Uint8Array;
191
215
  }
192
- interface MsgpackChonkComputeIvcVk {
193
- circuit: MsgpackCircuitInputNoVK;
216
+ export interface EcdsaSecp256r1ConstructSignature {
217
+ message: Uint8Array;
218
+ privateKey: Uint8Array;
194
219
  }
195
- export interface ChonkComputeIvcVkResponse {
196
- bytes: Uint8Array;
220
+ export interface EcdsaSecp256k1RecoverPublicKey {
221
+ message: Uint8Array;
222
+ r: Uint8Array;
223
+ s: Uint8Array;
224
+ v: number;
197
225
  }
198
- interface MsgpackChonkComputeIvcVkResponse {
199
- bytes: Uint8Array;
226
+ export interface EcdsaSecp256r1RecoverPublicKey {
227
+ message: Uint8Array;
228
+ r: Uint8Array;
229
+ s: Uint8Array;
230
+ v: number;
200
231
  }
201
- export interface ChonkComputeStandaloneVk {
202
- circuit: CircuitInputNoVK;
232
+ export interface EcdsaSecp256k1VerifySignature {
233
+ message: Uint8Array;
234
+ publicKey: Secp256k1Point;
235
+ r: Uint8Array;
236
+ s: Uint8Array;
237
+ v: number;
203
238
  }
204
- interface MsgpackChonkComputeStandaloneVk {
205
- circuit: MsgpackCircuitInputNoVK;
239
+ export interface Secp256r1Point {
240
+ x: Uint8Array;
241
+ y: Uint8Array;
206
242
  }
207
- export interface ChonkComputeStandaloneVkResponse {
208
- bytes: Uint8Array;
209
- fields: Fr[];
243
+ export interface EcdsaSecp256r1VerifySignature {
244
+ message: Uint8Array;
245
+ publicKey: Secp256r1Point;
246
+ r: Uint8Array;
247
+ s: Uint8Array;
248
+ v: number;
210
249
  }
211
- interface MsgpackChonkComputeStandaloneVkResponse {
212
- bytes: Uint8Array;
213
- fields: Uint8Array[];
250
+ export interface SrsInitSrs {
251
+ pointsBuf: Uint8Array;
252
+ numPoints: number;
253
+ g2Point: Uint8Array;
214
254
  }
215
- export interface ChonkLoad {
216
- circuit: CircuitInput;
255
+ export interface SrsInitGrumpkinSrs {
256
+ pointsBuf: Uint8Array;
257
+ numPoints: number;
217
258
  }
218
- interface MsgpackChonkLoad {
219
- circuit: MsgpackCircuitInput;
259
+ export interface Shutdown {
220
260
  }
221
- export interface ChonkLoadResponse {
261
+ export interface ErrorResponse {
262
+ message: string;
222
263
  }
223
- interface MsgpackChonkLoadResponse {
264
+ export interface CircuitProveResponse {
265
+ publicInputs: Uint8Array[];
266
+ proof: Uint8Array[];
267
+ vk: CircuitComputeVkResponse;
224
268
  }
225
- export interface ChonkProof {
226
- megaProof: Fr[];
227
- goblinProof: GoblinProof;
269
+ export interface CircuitInfoResponse {
270
+ numGates: number;
271
+ numGatesDyadic: number;
272
+ numAcirOpcodes: number;
273
+ gatesPerOpcode: number[];
228
274
  }
229
- interface MsgpackChonkProof {
230
- mega_proof: Uint8Array[];
231
- goblin_proof: MsgpackGoblinProof;
275
+ export interface CircuitVerifyResponse {
276
+ verified: boolean;
232
277
  }
233
- export interface ChonkProve {
278
+ export interface ChonkComputeStandaloneVkResponse {
279
+ bytes: Uint8Array;
280
+ fields: Uint8Array[];
234
281
  }
235
- interface MsgpackChonkProve {
282
+ export interface ChonkComputeIvcVkResponse {
283
+ bytes: Uint8Array;
236
284
  }
237
- export interface ChonkProveResponse {
238
- proof: ChonkProof;
285
+ export interface ChonkStartResponse {
239
286
  }
240
- interface MsgpackChonkProveResponse {
241
- proof: MsgpackChonkProof;
287
+ export interface ChonkLoadResponse {
242
288
  }
243
- export interface ChonkStart {
244
- numCircuits: number;
289
+ export interface ChonkAccumulateResponse {
245
290
  }
246
- interface MsgpackChonkStart {
247
- num_circuits: number;
291
+ export interface ChonkProveResponse {
292
+ proof: ChonkProof;
248
293
  }
249
- export interface ChonkStartResponse {
294
+ export interface ChonkVerifyResponse {
295
+ valid: boolean;
250
296
  }
251
- interface MsgpackChonkStartResponse {
297
+ export interface VkAsFieldsResponse {
298
+ fields: Uint8Array[];
252
299
  }
253
- export interface ChonkStats {
254
- circuit: CircuitInputNoVK;
255
- includeGatesPerOpcode: boolean;
300
+ export interface MegaVkAsFieldsResponse {
301
+ fields: Uint8Array[];
256
302
  }
257
- interface MsgpackChonkStats {
258
- circuit: MsgpackCircuitInputNoVK;
259
- include_gates_per_opcode: boolean;
303
+ export interface CircuitWriteSolidityVerifierResponse {
304
+ solidityCode: string;
305
+ }
306
+ export interface ChonkCheckPrecomputedVkResponse {
307
+ valid: boolean;
308
+ actualVk: Uint8Array;
260
309
  }
261
310
  export interface ChonkStatsResponse {
262
311
  acirOpcodes: number;
263
312
  circuitSize: number;
264
313
  gatesPerOpcode: number[];
265
314
  }
266
- interface MsgpackChonkStatsResponse {
267
- acir_opcodes: number;
268
- circuit_size: number;
269
- gates_per_opcode: number[];
270
- }
271
- export interface ChonkVerify {
272
- proof: ChonkProof;
273
- vk: Uint8Array;
274
- }
275
- interface MsgpackChonkVerify {
276
- proof: MsgpackChonkProof;
277
- vk: Uint8Array;
278
- }
279
- export interface ChonkVerifyResponse {
280
- valid: boolean;
315
+ export interface Poseidon2HashResponse {
316
+ hash: Uint8Array;
281
317
  }
282
- interface MsgpackChonkVerifyResponse {
283
- valid: boolean;
318
+ export interface Poseidon2PermutationResponse {
319
+ outputs: Uint8Array[];
284
320
  }
285
- export interface CircuitComputeVk {
286
- circuit: CircuitInputNoVK;
287
- settings: ProofSystemSettings;
321
+ export interface Poseidon2HashAccumulateResponse {
322
+ hash: Uint8Array;
288
323
  }
289
- interface MsgpackCircuitComputeVk {
290
- circuit: MsgpackCircuitInputNoVK;
291
- settings: MsgpackProofSystemSettings;
324
+ export interface PedersenCommitResponse {
325
+ point: GrumpkinPoint;
292
326
  }
293
- export interface CircuitComputeVkResponse {
294
- bytes: Uint8Array;
295
- fields: Uint256T[];
327
+ export interface PedersenHashResponse {
296
328
  hash: Uint8Array;
297
329
  }
298
- interface MsgpackCircuitComputeVkResponse {
299
- bytes: Uint8Array;
300
- fields: Uint8Array[];
330
+ export interface PedersenHashBufferResponse {
301
331
  hash: Uint8Array;
302
332
  }
303
- export interface CircuitInfoResponse {
304
- numGates: number;
305
- numGatesDyadic: number;
306
- numAcirOpcodes: number;
307
- gatesPerOpcode: number[];
333
+ export interface Blake2sResponse {
334
+ hash: Uint8Array;
308
335
  }
309
- interface MsgpackCircuitInfoResponse {
310
- num_gates: number;
311
- num_gates_dyadic: number;
312
- num_acir_opcodes: number;
313
- gates_per_opcode: number[];
336
+ export interface Blake2sToFieldResponse {
337
+ field: Uint8Array;
314
338
  }
315
- export interface CircuitInput {
316
- name: string;
317
- bytecode: Uint8Array;
318
- verificationKey: Uint8Array;
339
+ export interface AesEncryptResponse {
340
+ ciphertext: Uint8Array;
319
341
  }
320
- interface MsgpackCircuitInput {
321
- name: string;
322
- bytecode: Uint8Array;
323
- verification_key: Uint8Array;
342
+ export interface AesDecryptResponse {
343
+ plaintext: Uint8Array;
324
344
  }
325
- export interface CircuitInputNoVK {
326
- name: string;
327
- bytecode: Uint8Array;
345
+ export interface GrumpkinMulResponse {
346
+ point: GrumpkinPoint;
328
347
  }
329
- interface MsgpackCircuitInputNoVK {
330
- name: string;
331
- bytecode: Uint8Array;
348
+ export interface GrumpkinAddResponse {
349
+ point: GrumpkinPoint;
332
350
  }
333
- export interface CircuitProve {
334
- circuit: CircuitInput;
335
- witness: Uint8Array;
336
- settings: ProofSystemSettings;
351
+ export interface GrumpkinBatchMulResponse {
352
+ points: GrumpkinPoint[];
337
353
  }
338
- interface MsgpackCircuitProve {
339
- circuit: MsgpackCircuitInput;
340
- witness: Uint8Array;
341
- settings: MsgpackProofSystemSettings;
354
+ export interface GrumpkinGetRandomFrResponse {
355
+ value: Uint8Array;
342
356
  }
343
- export interface CircuitProveResponse {
344
- publicInputs: Uint256T[];
345
- proof: Uint256T[];
346
- vk: CircuitComputeVkResponse;
357
+ export interface GrumpkinReduce512Response {
358
+ value: Uint8Array;
347
359
  }
348
- interface MsgpackCircuitProveResponse {
349
- public_inputs: Uint8Array[];
350
- proof: Uint8Array[];
351
- vk: MsgpackCircuitComputeVkResponse;
360
+ export interface Secp256k1MulResponse {
361
+ point: Secp256k1Point;
352
362
  }
353
- export interface CircuitStats {
354
- circuit: CircuitInput;
355
- includeGatesPerOpcode: boolean;
356
- settings: ProofSystemSettings;
363
+ export interface Secp256k1GetRandomFrResponse {
364
+ value: Uint8Array;
357
365
  }
358
- interface MsgpackCircuitStats {
359
- circuit: MsgpackCircuitInput;
360
- include_gates_per_opcode: boolean;
361
- settings: MsgpackProofSystemSettings;
366
+ export interface Secp256k1Reduce512Response {
367
+ value: Uint8Array;
362
368
  }
363
- export interface CircuitVerify {
364
- verificationKey: Uint8Array;
365
- publicInputs: Uint256T[];
366
- proof: Uint256T[];
367
- settings: ProofSystemSettings;
369
+ export interface Bn254FrSqrtResponse {
370
+ isSquareRoot: boolean;
371
+ value: Uint8Array;
368
372
  }
369
- interface MsgpackCircuitVerify {
370
- verification_key: Uint8Array;
371
- public_inputs: Uint8Array[];
372
- proof: Uint8Array[];
373
- settings: MsgpackProofSystemSettings;
373
+ export interface Bn254FqSqrtResponse {
374
+ isSquareRoot: boolean;
375
+ value: Uint8Array;
374
376
  }
375
- export interface CircuitVerifyResponse {
376
- verified: boolean;
377
+ export interface Bn254G1MulResponse {
378
+ point: Bn254G1Point;
377
379
  }
378
- interface MsgpackCircuitVerifyResponse {
379
- verified: boolean;
380
+ export interface Bn254G2MulResponse {
381
+ point: Bn254G2Point;
380
382
  }
381
- export interface CircuitWriteSolidityVerifier {
382
- verificationKey: Uint8Array;
383
- settings: ProofSystemSettings;
383
+ export interface Bn254G1IsOnCurveResponse {
384
+ isOnCurve: boolean;
384
385
  }
385
- interface MsgpackCircuitWriteSolidityVerifier {
386
- verification_key: Uint8Array;
387
- settings: MsgpackProofSystemSettings;
386
+ export interface Bn254G1FromCompressedResponse {
387
+ point: Bn254G1Point;
388
388
  }
389
- export interface CircuitWriteSolidityVerifierResponse {
390
- solidityCode: string;
391
- }
392
- interface MsgpackCircuitWriteSolidityVerifierResponse {
393
- solidity_code: string;
389
+ export interface SchnorrComputePublicKeyResponse {
390
+ publicKey: GrumpkinPoint;
394
391
  }
395
- export interface EcdsaSecp256k1ComputePublicKey {
396
- privateKey: Secp256k1Fr;
392
+ export interface SchnorrConstructSignatureResponse {
393
+ s: Uint8Array;
394
+ e: Uint8Array;
397
395
  }
398
- interface MsgpackEcdsaSecp256k1ComputePublicKey {
399
- private_key: Uint8Array;
396
+ export interface SchnorrVerifySignatureResponse {
397
+ verified: boolean;
400
398
  }
401
399
  export interface EcdsaSecp256k1ComputePublicKeyResponse {
402
400
  publicKey: Secp256k1Point;
403
401
  }
404
- interface MsgpackEcdsaSecp256k1ComputePublicKeyResponse {
405
- public_key: MsgpackSecp256k1Point;
406
- }
407
- export interface EcdsaSecp256k1ConstructSignature {
408
- message: Uint8Array;
409
- privateKey: Secp256k1Fr;
410
- }
411
- interface MsgpackEcdsaSecp256k1ConstructSignature {
412
- message: Uint8Array;
413
- private_key: Uint8Array;
402
+ export interface EcdsaSecp256r1ComputePublicKeyResponse {
403
+ publicKey: Secp256r1Point;
414
404
  }
415
405
  export interface EcdsaSecp256k1ConstructSignatureResponse {
416
406
  r: Uint8Array;
417
407
  s: Uint8Array;
418
408
  v: number;
419
409
  }
420
- interface MsgpackEcdsaSecp256k1ConstructSignatureResponse {
421
- r: Uint8Array;
422
- s: Uint8Array;
423
- v: number;
424
- }
425
- export interface EcdsaSecp256k1RecoverPublicKey {
426
- message: Uint8Array;
427
- r: Uint8Array;
428
- s: Uint8Array;
429
- v: number;
430
- }
431
- interface MsgpackEcdsaSecp256k1RecoverPublicKey {
432
- message: Uint8Array;
410
+ export interface EcdsaSecp256r1ConstructSignatureResponse {
433
411
  r: Uint8Array;
434
412
  s: Uint8Array;
435
413
  v: number;
@@ -437,108 +415,79 @@ interface MsgpackEcdsaSecp256k1RecoverPublicKey {
437
415
  export interface EcdsaSecp256k1RecoverPublicKeyResponse {
438
416
  publicKey: Secp256k1Point;
439
417
  }
440
- interface MsgpackEcdsaSecp256k1RecoverPublicKeyResponse {
441
- public_key: MsgpackSecp256k1Point;
442
- }
443
- export interface EcdsaSecp256k1VerifySignature {
444
- message: Uint8Array;
445
- publicKey: Secp256k1Point;
446
- r: Uint8Array;
447
- s: Uint8Array;
448
- v: number;
449
- }
450
- interface MsgpackEcdsaSecp256k1VerifySignature {
451
- message: Uint8Array;
452
- public_key: MsgpackSecp256k1Point;
453
- r: Uint8Array;
454
- s: Uint8Array;
455
- v: number;
418
+ export interface EcdsaSecp256r1RecoverPublicKeyResponse {
419
+ publicKey: Secp256r1Point;
456
420
  }
457
421
  export interface EcdsaSecp256k1VerifySignatureResponse {
458
422
  verified: boolean;
459
423
  }
460
- interface MsgpackEcdsaSecp256k1VerifySignatureResponse {
424
+ export interface EcdsaSecp256r1VerifySignatureResponse {
461
425
  verified: boolean;
462
426
  }
463
- export interface EcdsaSecp256r1ComputePublicKey {
464
- privateKey: Secp256r1Fr;
465
- }
466
- interface MsgpackEcdsaSecp256r1ComputePublicKey {
467
- private_key: Uint8Array;
468
- }
469
- export interface EcdsaSecp256r1ComputePublicKeyResponse {
470
- publicKey: Secp256r1Point;
427
+ export interface SrsInitSrsResponse {
428
+ dummy: number;
471
429
  }
472
- interface MsgpackEcdsaSecp256r1ComputePublicKeyResponse {
473
- public_key: MsgpackSecp256r1Point;
430
+ export interface SrsInitGrumpkinSrsResponse {
431
+ dummy: number;
474
432
  }
475
- export interface EcdsaSecp256r1ConstructSignature {
476
- message: Uint8Array;
477
- privateKey: Secp256r1Fr;
433
+ export interface ShutdownResponse {
478
434
  }
479
- interface MsgpackEcdsaSecp256r1ConstructSignature {
480
- message: Uint8Array;
481
- private_key: Uint8Array;
435
+ interface MsgpackCircuitComputeVkResponse {
436
+ bytes: Uint8Array;
437
+ fields: Uint8Array[];
438
+ hash: Uint8Array;
482
439
  }
483
- export interface EcdsaSecp256r1ConstructSignatureResponse {
484
- r: Uint8Array;
485
- s: Uint8Array;
486
- v: number;
440
+ interface MsgpackCircuitInput {
441
+ name: string;
442
+ bytecode: Uint8Array;
443
+ verification_key: Uint8Array;
487
444
  }
488
- interface MsgpackEcdsaSecp256r1ConstructSignatureResponse {
489
- r: Uint8Array;
490
- s: Uint8Array;
491
- v: number;
445
+ interface MsgpackProofSystemSettings {
446
+ ipa_accumulation: boolean;
447
+ oracle_hash_type: string;
448
+ disable_zk: boolean;
449
+ optimized_solidity_verifier: boolean;
492
450
  }
493
- export interface EcdsaSecp256r1RecoverPublicKey {
494
- message: Uint8Array;
495
- r: Uint8Array;
496
- s: Uint8Array;
497
- v: number;
451
+ interface MsgpackCircuitProve {
452
+ circuit: MsgpackCircuitInput;
453
+ witness: Uint8Array;
454
+ settings: MsgpackProofSystemSettings;
498
455
  }
499
- interface MsgpackEcdsaSecp256r1RecoverPublicKey {
500
- message: Uint8Array;
501
- r: Uint8Array;
502
- s: Uint8Array;
503
- v: number;
456
+ interface MsgpackCircuitInputNoVK {
457
+ name: string;
458
+ bytecode: Uint8Array;
504
459
  }
505
- export interface EcdsaSecp256r1RecoverPublicKeyResponse {
506
- publicKey: Secp256r1Point;
460
+ interface MsgpackCircuitComputeVk {
461
+ circuit: MsgpackCircuitInputNoVK;
462
+ settings: MsgpackProofSystemSettings;
507
463
  }
508
- interface MsgpackEcdsaSecp256r1RecoverPublicKeyResponse {
509
- public_key: MsgpackSecp256r1Point;
464
+ interface MsgpackCircuitStats {
465
+ circuit: MsgpackCircuitInput;
466
+ include_gates_per_opcode: boolean;
467
+ settings: MsgpackProofSystemSettings;
510
468
  }
511
- export interface EcdsaSecp256r1VerifySignature {
512
- message: Uint8Array;
513
- publicKey: Secp256r1Point;
514
- r: Uint8Array;
515
- s: Uint8Array;
516
- v: number;
469
+ interface MsgpackCircuitVerify {
470
+ verification_key: Uint8Array;
471
+ public_inputs: Uint8Array[];
472
+ proof: Uint8Array[];
473
+ settings: MsgpackProofSystemSettings;
517
474
  }
518
- interface MsgpackEcdsaSecp256r1VerifySignature {
519
- message: Uint8Array;
520
- public_key: MsgpackSecp256r1Point;
521
- r: Uint8Array;
522
- s: Uint8Array;
523
- v: number;
475
+ interface MsgpackChonkComputeStandaloneVk {
476
+ circuit: MsgpackCircuitInputNoVK;
524
477
  }
525
- export interface EcdsaSecp256r1VerifySignatureResponse {
526
- verified: boolean;
478
+ interface MsgpackChonkComputeIvcVk {
479
+ circuit: MsgpackCircuitInputNoVK;
527
480
  }
528
- interface MsgpackEcdsaSecp256r1VerifySignatureResponse {
529
- verified: boolean;
481
+ interface MsgpackChonkStart {
482
+ num_circuits: number;
530
483
  }
531
- export interface ErrorResponse {
532
- message: string;
484
+ interface MsgpackChonkLoad {
485
+ circuit: MsgpackCircuitInput;
533
486
  }
534
- interface MsgpackErrorResponse {
535
- message: string;
487
+ interface MsgpackChonkAccumulate {
488
+ witness: Uint8Array;
536
489
  }
537
- export interface GoblinProof {
538
- mergeProof: Fr[];
539
- eccvmProof: Fr[];
540
- ipaProof: Fr[];
541
- translatorProof: Fr[];
490
+ interface MsgpackChonkProve {
542
491
  }
543
492
  interface MsgpackGoblinProof {
544
493
  merge_proof: Uint8Array[];
@@ -546,1436 +495,614 @@ interface MsgpackGoblinProof {
546
495
  ipa_proof: Uint8Array[];
547
496
  translator_proof: Uint8Array[];
548
497
  }
549
- export interface GrumpkinAdd {
550
- pointA: GrumpkinPoint;
551
- pointB: GrumpkinPoint;
498
+ interface MsgpackChonkProof {
499
+ mega_proof: Uint8Array[];
500
+ goblin_proof: MsgpackGoblinProof;
552
501
  }
553
- interface MsgpackGrumpkinAdd {
554
- point_a: MsgpackGrumpkinPoint;
555
- point_b: MsgpackGrumpkinPoint;
502
+ interface MsgpackChonkVerify {
503
+ proof: MsgpackChonkProof;
504
+ vk: Uint8Array;
556
505
  }
557
- export interface GrumpkinAddResponse {
558
- point: GrumpkinPoint;
506
+ interface MsgpackVkAsFields {
507
+ verification_key: Uint8Array;
559
508
  }
560
- interface MsgpackGrumpkinAddResponse {
561
- point: MsgpackGrumpkinPoint;
509
+ interface MsgpackMegaVkAsFields {
510
+ verification_key: Uint8Array;
562
511
  }
563
- export interface GrumpkinBatchMul {
564
- points: GrumpkinPoint[];
565
- scalar: Fq;
512
+ interface MsgpackCircuitWriteSolidityVerifier {
513
+ verification_key: Uint8Array;
514
+ settings: MsgpackProofSystemSettings;
566
515
  }
567
- interface MsgpackGrumpkinBatchMul {
568
- points: MsgpackGrumpkinPoint[];
569
- scalar: Uint8Array;
516
+ interface MsgpackChonkCheckPrecomputedVk {
517
+ circuit: MsgpackCircuitInput;
570
518
  }
571
- export interface GrumpkinBatchMulResponse {
572
- points: GrumpkinPoint[];
519
+ interface MsgpackChonkStats {
520
+ circuit: MsgpackCircuitInputNoVK;
521
+ include_gates_per_opcode: boolean;
573
522
  }
574
- interface MsgpackGrumpkinBatchMulResponse {
575
- points: MsgpackGrumpkinPoint[];
523
+ interface MsgpackPoseidon2Hash {
524
+ inputs: Uint8Array[];
576
525
  }
577
- export interface GrumpkinGetRandomFr {
578
- dummy: number;
526
+ interface MsgpackPoseidon2Permutation {
527
+ inputs: Uint8Array[];
579
528
  }
580
- interface MsgpackGrumpkinGetRandomFr {
581
- dummy: number;
529
+ interface MsgpackPoseidon2HashAccumulate {
530
+ inputs: Uint8Array[];
582
531
  }
583
- export interface GrumpkinGetRandomFrResponse {
584
- value: Fr;
532
+ interface MsgpackPedersenCommit {
533
+ inputs: Uint8Array[];
534
+ hash_index: number;
585
535
  }
586
- interface MsgpackGrumpkinGetRandomFrResponse {
587
- value: Uint8Array;
536
+ interface MsgpackPedersenHash {
537
+ inputs: Uint8Array[];
538
+ hash_index: number;
588
539
  }
589
- export interface GrumpkinMul {
590
- point: GrumpkinPoint;
591
- scalar: Fq;
540
+ interface MsgpackPedersenHashBuffer {
541
+ input: Uint8Array;
542
+ hash_index: number;
592
543
  }
593
- interface MsgpackGrumpkinMul {
594
- point: MsgpackGrumpkinPoint;
595
- scalar: Uint8Array;
544
+ interface MsgpackBlake2s {
545
+ data: Uint8Array;
596
546
  }
597
- export interface GrumpkinMulResponse {
598
- point: GrumpkinPoint;
547
+ interface MsgpackBlake2sToField {
548
+ data: Uint8Array;
599
549
  }
600
- interface MsgpackGrumpkinMulResponse {
601
- point: MsgpackGrumpkinPoint;
550
+ interface MsgpackAesEncrypt {
551
+ plaintext: Uint8Array;
552
+ iv: Uint8Array;
553
+ key: Uint8Array;
554
+ length: number;
602
555
  }
603
- export interface GrumpkinPoint {
604
- x: Fr;
605
- y: Fr;
556
+ interface MsgpackAesDecrypt {
557
+ ciphertext: Uint8Array;
558
+ iv: Uint8Array;
559
+ key: Uint8Array;
560
+ length: number;
606
561
  }
607
562
  interface MsgpackGrumpkinPoint {
608
563
  x: Uint8Array;
609
564
  y: Uint8Array;
610
565
  }
611
- export interface GrumpkinReduce512 {
612
- input: Uint8Array;
613
- }
614
- interface MsgpackGrumpkinReduce512 {
615
- input: Uint8Array;
566
+ interface MsgpackGrumpkinMul {
567
+ point: MsgpackGrumpkinPoint;
568
+ scalar: Uint8Array;
616
569
  }
617
- export interface GrumpkinReduce512Response {
618
- value: Fr;
619
- }
620
- interface MsgpackGrumpkinReduce512Response {
621
- value: Uint8Array;
622
- }
623
- export interface MegaVkAsFields {
624
- verificationKey: Uint8Array;
625
- }
626
- interface MsgpackMegaVkAsFields {
627
- verification_key: Uint8Array;
628
- }
629
- export interface MegaVkAsFieldsResponse {
630
- fields: Fr[];
631
- }
632
- interface MsgpackMegaVkAsFieldsResponse {
633
- fields: Uint8Array[];
570
+ interface MsgpackGrumpkinAdd {
571
+ point_a: MsgpackGrumpkinPoint;
572
+ point_b: MsgpackGrumpkinPoint;
634
573
  }
635
- export interface PedersenCommit {
636
- inputs: Fr[];
637
- hashIndex: number;
574
+ interface MsgpackGrumpkinBatchMul {
575
+ points: MsgpackGrumpkinPoint[];
576
+ scalar: Uint8Array;
638
577
  }
639
- interface MsgpackPedersenCommit {
640
- inputs: Uint8Array[];
641
- hash_index: number;
578
+ interface MsgpackGrumpkinGetRandomFr {
579
+ dummy: number;
642
580
  }
643
- export interface PedersenCommitResponse {
644
- point: GrumpkinPoint;
581
+ interface MsgpackGrumpkinReduce512 {
582
+ input: Uint8Array;
645
583
  }
646
- interface MsgpackPedersenCommitResponse {
647
- point: MsgpackGrumpkinPoint;
584
+ interface MsgpackSecp256k1Point {
585
+ x: Uint8Array;
586
+ y: Uint8Array;
648
587
  }
649
- export interface PedersenHash {
650
- inputs: Fr[];
651
- hashIndex: number;
588
+ interface MsgpackSecp256k1Mul {
589
+ point: MsgpackSecp256k1Point;
590
+ scalar: Uint8Array;
652
591
  }
653
- interface MsgpackPedersenHash {
654
- inputs: Uint8Array[];
655
- hash_index: number;
592
+ interface MsgpackSecp256k1GetRandomFr {
593
+ dummy: number;
656
594
  }
657
- export interface PedersenHashBuffer {
595
+ interface MsgpackSecp256k1Reduce512 {
658
596
  input: Uint8Array;
659
- hashIndex: number;
660
597
  }
661
- interface MsgpackPedersenHashBuffer {
598
+ interface MsgpackBn254FrSqrt {
662
599
  input: Uint8Array;
663
- hash_index: number;
664
- }
665
- export interface PedersenHashBufferResponse {
666
- hash: Fr;
667
- }
668
- interface MsgpackPedersenHashBufferResponse {
669
- hash: Uint8Array;
670
- }
671
- export interface PedersenHashResponse {
672
- hash: Fr;
673
- }
674
- interface MsgpackPedersenHashResponse {
675
- hash: Uint8Array;
676
- }
677
- export interface Poseidon2Hash {
678
- inputs: Fr[];
679
- }
680
- interface MsgpackPoseidon2Hash {
681
- inputs: Uint8Array[];
682
- }
683
- export interface Poseidon2HashAccumulate {
684
- inputs: Fr[];
685
- }
686
- interface MsgpackPoseidon2HashAccumulate {
687
- inputs: Uint8Array[];
688
- }
689
- export interface Poseidon2HashAccumulateResponse {
690
- hash: Fr;
691
- }
692
- interface MsgpackPoseidon2HashAccumulateResponse {
693
- hash: Uint8Array;
694
- }
695
- export interface Poseidon2HashResponse {
696
- hash: Fr;
697
600
  }
698
- interface MsgpackPoseidon2HashResponse {
699
- hash: Uint8Array;
700
- }
701
- export interface Poseidon2Permutation {
702
- inputs: Fr[];
601
+ interface MsgpackBn254FqSqrt {
602
+ input: Uint8Array;
703
603
  }
704
- interface MsgpackPoseidon2Permutation {
705
- inputs: Uint8Array[];
604
+ interface MsgpackBn254G1Point {
605
+ x: Uint8Array;
606
+ y: Uint8Array;
706
607
  }
707
- export interface Poseidon2PermutationResponse {
708
- outputs: Fr[];
608
+ interface MsgpackBn254G1Mul {
609
+ point: MsgpackBn254G1Point;
610
+ scalar: Uint8Array;
709
611
  }
710
- interface MsgpackPoseidon2PermutationResponse {
711
- outputs: Uint8Array[];
612
+ interface MsgpackBn254G2Point {
613
+ x: [Uint8Array, Uint8Array];
614
+ y: [Uint8Array, Uint8Array];
712
615
  }
713
- export interface ProofSystemSettings {
714
- ipaAccumulation: boolean;
715
- oracleHashType: string;
716
- disableZk: boolean;
717
- optimizedSolidityVerifier: boolean;
616
+ interface MsgpackBn254G2Mul {
617
+ point: MsgpackBn254G2Point;
618
+ scalar: Uint8Array;
718
619
  }
719
- interface MsgpackProofSystemSettings {
720
- ipa_accumulation: boolean;
721
- oracle_hash_type: string;
722
- disable_zk: boolean;
723
- optimized_solidity_verifier: boolean;
620
+ interface MsgpackBn254G1IsOnCurve {
621
+ point: MsgpackBn254G1Point;
724
622
  }
725
- export interface SchnorrComputePublicKey {
726
- privateKey: Fq;
623
+ interface MsgpackBn254G1FromCompressed {
624
+ compressed: Uint8Array;
727
625
  }
728
626
  interface MsgpackSchnorrComputePublicKey {
729
627
  private_key: Uint8Array;
730
628
  }
731
- export interface SchnorrComputePublicKeyResponse {
732
- publicKey: GrumpkinPoint;
629
+ interface MsgpackSchnorrConstructSignature {
630
+ message: Uint8Array;
631
+ private_key: Uint8Array;
733
632
  }
734
- interface MsgpackSchnorrComputePublicKeyResponse {
633
+ interface MsgpackSchnorrVerifySignature {
634
+ message: Uint8Array;
735
635
  public_key: MsgpackGrumpkinPoint;
636
+ s: Uint8Array;
637
+ e: Uint8Array;
736
638
  }
737
- export interface SchnorrConstructSignature {
639
+ interface MsgpackEcdsaSecp256k1ComputePublicKey {
640
+ private_key: Uint8Array;
641
+ }
642
+ interface MsgpackEcdsaSecp256r1ComputePublicKey {
643
+ private_key: Uint8Array;
644
+ }
645
+ interface MsgpackEcdsaSecp256k1ConstructSignature {
738
646
  message: Uint8Array;
739
- privateKey: Fq;
647
+ private_key: Uint8Array;
740
648
  }
741
- interface MsgpackSchnorrConstructSignature {
649
+ interface MsgpackEcdsaSecp256r1ConstructSignature {
742
650
  message: Uint8Array;
743
651
  private_key: Uint8Array;
744
652
  }
745
- export interface SchnorrConstructSignatureResponse {
653
+ interface MsgpackEcdsaSecp256k1RecoverPublicKey {
654
+ message: Uint8Array;
655
+ r: Uint8Array;
746
656
  s: Uint8Array;
747
- e: Uint8Array;
657
+ v: number;
748
658
  }
749
- interface MsgpackSchnorrConstructSignatureResponse {
659
+ interface MsgpackEcdsaSecp256r1RecoverPublicKey {
660
+ message: Uint8Array;
661
+ r: Uint8Array;
750
662
  s: Uint8Array;
751
- e: Uint8Array;
663
+ v: number;
752
664
  }
753
- export interface SchnorrVerifySignature {
665
+ interface MsgpackEcdsaSecp256k1VerifySignature {
754
666
  message: Uint8Array;
755
- publicKey: GrumpkinPoint;
667
+ public_key: MsgpackSecp256k1Point;
668
+ r: Uint8Array;
756
669
  s: Uint8Array;
757
- e: Uint8Array;
670
+ v: number;
758
671
  }
759
- interface MsgpackSchnorrVerifySignature {
672
+ interface MsgpackSecp256r1Point {
673
+ x: Uint8Array;
674
+ y: Uint8Array;
675
+ }
676
+ interface MsgpackEcdsaSecp256r1VerifySignature {
760
677
  message: Uint8Array;
761
- public_key: MsgpackGrumpkinPoint;
678
+ public_key: MsgpackSecp256r1Point;
679
+ r: Uint8Array;
762
680
  s: Uint8Array;
763
- e: Uint8Array;
764
- }
765
- export interface SchnorrVerifySignatureResponse {
766
- verified: boolean;
681
+ v: number;
767
682
  }
768
- interface MsgpackSchnorrVerifySignatureResponse {
769
- verified: boolean;
683
+ interface MsgpackSrsInitSrs {
684
+ points_buf: Uint8Array;
685
+ num_points: number;
686
+ g2_point: Uint8Array;
770
687
  }
771
- export interface Secp256k1GetRandomFr {
772
- dummy: number;
688
+ interface MsgpackSrsInitGrumpkinSrs {
689
+ points_buf: Uint8Array;
690
+ num_points: number;
773
691
  }
774
- interface MsgpackSecp256k1GetRandomFr {
775
- dummy: number;
692
+ interface MsgpackShutdown {
776
693
  }
777
- export interface Secp256k1GetRandomFrResponse {
778
- value: Secp256k1Fr;
694
+ interface MsgpackErrorResponse {
695
+ message: string;
779
696
  }
780
- interface MsgpackSecp256k1GetRandomFrResponse {
781
- value: Uint8Array;
697
+ interface MsgpackCircuitProveResponse {
698
+ public_inputs: Uint8Array[];
699
+ proof: Uint8Array[];
700
+ vk: MsgpackCircuitComputeVkResponse;
782
701
  }
783
- export interface Secp256k1Mul {
784
- point: Secp256k1Point;
785
- scalar: Secp256k1Fr;
702
+ interface MsgpackCircuitInfoResponse {
703
+ num_gates: number;
704
+ num_gates_dyadic: number;
705
+ num_acir_opcodes: number;
706
+ gates_per_opcode: number[];
786
707
  }
787
- interface MsgpackSecp256k1Mul {
788
- point: MsgpackSecp256k1Point;
789
- scalar: Uint8Array;
708
+ interface MsgpackCircuitVerifyResponse {
709
+ verified: boolean;
790
710
  }
791
- export interface Secp256k1MulResponse {
792
- point: Secp256k1Point;
711
+ interface MsgpackChonkComputeStandaloneVkResponse {
712
+ bytes: Uint8Array;
713
+ fields: Uint8Array[];
793
714
  }
794
- interface MsgpackSecp256k1MulResponse {
795
- point: MsgpackSecp256k1Point;
715
+ interface MsgpackChonkComputeIvcVkResponse {
716
+ bytes: Uint8Array;
796
717
  }
797
- export interface Secp256k1Point {
798
- x: Secp256k1Fq;
799
- y: Secp256k1Fq;
718
+ interface MsgpackChonkStartResponse {
800
719
  }
801
- interface MsgpackSecp256k1Point {
802
- x: Uint8Array;
803
- y: Uint8Array;
720
+ interface MsgpackChonkLoadResponse {
804
721
  }
805
- export interface Secp256k1Reduce512 {
806
- input: Uint8Array;
722
+ interface MsgpackChonkAccumulateResponse {
807
723
  }
808
- interface MsgpackSecp256k1Reduce512 {
809
- input: Uint8Array;
724
+ interface MsgpackChonkProveResponse {
725
+ proof: MsgpackChonkProof;
810
726
  }
811
- export interface Secp256k1Reduce512Response {
812
- value: Secp256k1Fr;
727
+ interface MsgpackChonkVerifyResponse {
728
+ valid: boolean;
813
729
  }
814
- interface MsgpackSecp256k1Reduce512Response {
815
- value: Uint8Array;
730
+ interface MsgpackVkAsFieldsResponse {
731
+ fields: Uint8Array[];
816
732
  }
817
- export interface Secp256r1Point {
818
- x: Secp256r1Fq;
819
- y: Secp256r1Fq;
733
+ interface MsgpackMegaVkAsFieldsResponse {
734
+ fields: Uint8Array[];
820
735
  }
821
- interface MsgpackSecp256r1Point {
822
- x: Uint8Array;
823
- y: Uint8Array;
736
+ interface MsgpackCircuitWriteSolidityVerifierResponse {
737
+ solidity_code: string;
824
738
  }
825
- export interface Shutdown {
739
+ interface MsgpackChonkCheckPrecomputedVkResponse {
740
+ valid: boolean;
741
+ actual_vk: Uint8Array;
826
742
  }
827
- interface MsgpackShutdown {
743
+ interface MsgpackChonkStatsResponse {
744
+ acir_opcodes: number;
745
+ circuit_size: number;
746
+ gates_per_opcode: number[];
828
747
  }
829
- export interface ShutdownResponse {
748
+ interface MsgpackPoseidon2HashResponse {
749
+ hash: Uint8Array;
830
750
  }
831
- interface MsgpackShutdownResponse {
832
- }
833
- export interface SrsInitGrumpkinSrs {
834
- pointsBuf: Uint8Array;
835
- numPoints: number;
836
- }
837
- interface MsgpackSrsInitGrumpkinSrs {
838
- points_buf: Uint8Array;
839
- num_points: number;
840
- }
841
- export interface SrsInitGrumpkinSrsResponse {
842
- dummy: number;
843
- }
844
- interface MsgpackSrsInitGrumpkinSrsResponse {
845
- dummy: number;
846
- }
847
- export interface SrsInitSrs {
848
- pointsBuf: Uint8Array;
849
- numPoints: number;
850
- g2Point: Uint8Array;
851
- }
852
- interface MsgpackSrsInitSrs {
853
- points_buf: Uint8Array;
854
- num_points: number;
855
- g2_point: Uint8Array;
856
- }
857
- export interface SrsInitSrsResponse {
858
- dummy: number;
859
- }
860
- interface MsgpackSrsInitSrsResponse {
861
- dummy: number;
862
- }
863
- export interface VkAsFields {
864
- verificationKey: Uint8Array;
865
- }
866
- interface MsgpackVkAsFields {
867
- verification_key: Uint8Array;
868
- }
869
- export interface VkAsFieldsResponse {
870
- fields: Fr[];
871
- }
872
- interface MsgpackVkAsFieldsResponse {
873
- fields: Uint8Array[];
874
- }
875
- export interface AesDecrypt {
876
- ciphertext: Uint8Array;
877
- iv: Uint8Array;
878
- key: Uint8Array;
879
- length: number;
880
- }
881
- interface MsgpackAesDecrypt {
882
- ciphertext: Uint8Array;
883
- iv: Uint8Array;
884
- key: Uint8Array;
885
- length: number;
886
- }
887
- export interface AesDecryptResponse {
888
- plaintext: Uint8Array;
889
- }
890
- interface MsgpackAesDecryptResponse {
891
- plaintext: Uint8Array;
892
- }
893
- export interface AesEncrypt {
894
- plaintext: Uint8Array;
895
- iv: Uint8Array;
896
- key: Uint8Array;
897
- length: number;
898
- }
899
- interface MsgpackAesEncrypt {
900
- plaintext: Uint8Array;
901
- iv: Uint8Array;
902
- key: Uint8Array;
903
- length: number;
904
- }
905
- export interface AesEncryptResponse {
906
- ciphertext: Uint8Array;
751
+ interface MsgpackPoseidon2PermutationResponse {
752
+ outputs: Uint8Array[];
907
753
  }
908
- interface MsgpackAesEncryptResponse {
909
- ciphertext: Uint8Array;
754
+ interface MsgpackPoseidon2HashAccumulateResponse {
755
+ hash: Uint8Array;
910
756
  }
911
- export interface Blake2s {
912
- data: Uint8Array;
757
+ interface MsgpackPedersenCommitResponse {
758
+ point: MsgpackGrumpkinPoint;
913
759
  }
914
- interface MsgpackBlake2s {
915
- data: Uint8Array;
760
+ interface MsgpackPedersenHashResponse {
761
+ hash: Uint8Array;
916
762
  }
917
- export interface Blake2sResponse {
763
+ interface MsgpackPedersenHashBufferResponse {
918
764
  hash: Uint8Array;
919
765
  }
920
766
  interface MsgpackBlake2sResponse {
921
767
  hash: Uint8Array;
922
768
  }
923
- export interface Blake2sToField {
924
- data: Uint8Array;
769
+ interface MsgpackBlake2sToFieldResponse {
770
+ field: Uint8Array;
925
771
  }
926
- interface MsgpackBlake2sToField {
927
- data: Uint8Array;
772
+ interface MsgpackAesEncryptResponse {
773
+ ciphertext: Uint8Array;
928
774
  }
929
- export interface Blake2sToFieldResponse {
930
- field: Fr;
775
+ interface MsgpackAesDecryptResponse {
776
+ plaintext: Uint8Array;
931
777
  }
932
- interface MsgpackBlake2sToFieldResponse {
933
- field: Uint8Array;
778
+ interface MsgpackGrumpkinMulResponse {
779
+ point: MsgpackGrumpkinPoint;
934
780
  }
935
- export interface Bn254FqSqrt {
936
- input: Fq;
781
+ interface MsgpackGrumpkinAddResponse {
782
+ point: MsgpackGrumpkinPoint;
937
783
  }
938
- interface MsgpackBn254FqSqrt {
939
- input: Uint8Array;
784
+ interface MsgpackGrumpkinBatchMulResponse {
785
+ points: MsgpackGrumpkinPoint[];
940
786
  }
941
- export interface Bn254FqSqrtResponse {
942
- isSquareRoot: boolean;
943
- value: Fq;
787
+ interface MsgpackGrumpkinGetRandomFrResponse {
788
+ value: Uint8Array;
944
789
  }
945
- interface MsgpackBn254FqSqrtResponse {
946
- is_square_root: boolean;
790
+ interface MsgpackGrumpkinReduce512Response {
947
791
  value: Uint8Array;
948
792
  }
949
- export interface Bn254FrSqrt {
950
- input: Fr;
793
+ interface MsgpackSecp256k1MulResponse {
794
+ point: MsgpackSecp256k1Point;
951
795
  }
952
- interface MsgpackBn254FrSqrt {
953
- input: Uint8Array;
796
+ interface MsgpackSecp256k1GetRandomFrResponse {
797
+ value: Uint8Array;
954
798
  }
955
- export interface Bn254FrSqrtResponse {
956
- isSquareRoot: boolean;
957
- value: Fr;
799
+ interface MsgpackSecp256k1Reduce512Response {
800
+ value: Uint8Array;
958
801
  }
959
802
  interface MsgpackBn254FrSqrtResponse {
960
803
  is_square_root: boolean;
961
804
  value: Uint8Array;
962
805
  }
963
- export interface Bn254G1FromCompressed {
964
- compressed: Uint8Array;
965
- }
966
- interface MsgpackBn254G1FromCompressed {
967
- compressed: Uint8Array;
968
- }
969
- export interface Bn254G1FromCompressedResponse {
970
- point: Bn254G1Point;
971
- }
972
- interface MsgpackBn254G1FromCompressedResponse {
973
- point: MsgpackBn254G1Point;
974
- }
975
- export interface Bn254G1IsOnCurve {
976
- point: Bn254G1Point;
977
- }
978
- interface MsgpackBn254G1IsOnCurve {
979
- point: MsgpackBn254G1Point;
980
- }
981
- export interface Bn254G1IsOnCurveResponse {
982
- isOnCurve: boolean;
983
- }
984
- interface MsgpackBn254G1IsOnCurveResponse {
985
- is_on_curve: boolean;
986
- }
987
- export interface Bn254G1Mul {
988
- point: Bn254G1Point;
989
- scalar: Fr;
990
- }
991
- interface MsgpackBn254G1Mul {
992
- point: MsgpackBn254G1Point;
993
- scalar: Uint8Array;
994
- }
995
- export interface Bn254G1MulResponse {
996
- point: Bn254G1Point;
806
+ interface MsgpackBn254FqSqrtResponse {
807
+ is_square_root: boolean;
808
+ value: Uint8Array;
997
809
  }
998
810
  interface MsgpackBn254G1MulResponse {
999
811
  point: MsgpackBn254G1Point;
1000
812
  }
1001
- export interface Bn254G1Point {
1002
- x: Fq;
1003
- y: Fq;
1004
- }
1005
- interface MsgpackBn254G1Point {
1006
- x: Uint8Array;
1007
- y: Uint8Array;
1008
- }
1009
- export interface Bn254G2Mul {
1010
- point: Bn254G2Point;
1011
- scalar: Fr;
1012
- }
1013
- interface MsgpackBn254G2Mul {
1014
- point: MsgpackBn254G2Point;
1015
- scalar: Uint8Array;
1016
- }
1017
- export interface Bn254G2MulResponse {
1018
- point: Bn254G2Point;
1019
- }
1020
813
  interface MsgpackBn254G2MulResponse {
1021
814
  point: MsgpackBn254G2Point;
1022
815
  }
1023
- export interface Bn254G2Point {
1024
- x: Field2;
1025
- y: Field2;
1026
- }
1027
- interface MsgpackBn254G2Point {
1028
- x: [Uint8Array, Uint8Array];
1029
- y: [Uint8Array, Uint8Array];
816
+ interface MsgpackBn254G1IsOnCurveResponse {
817
+ is_on_curve: boolean;
1030
818
  }
1031
- export interface ChonkAccumulate {
1032
- witness: Uint8Array;
819
+ interface MsgpackBn254G1FromCompressedResponse {
820
+ point: MsgpackBn254G1Point;
1033
821
  }
1034
- interface MsgpackChonkAccumulate {
1035
- witness: Uint8Array;
822
+ interface MsgpackSchnorrComputePublicKeyResponse {
823
+ public_key: MsgpackGrumpkinPoint;
1036
824
  }
1037
- export interface ChonkAccumulateResponse {
825
+ interface MsgpackSchnorrConstructSignatureResponse {
826
+ s: Uint8Array;
827
+ e: Uint8Array;
1038
828
  }
1039
- interface MsgpackChonkAccumulateResponse {
829
+ interface MsgpackSchnorrVerifySignatureResponse {
830
+ verified: boolean;
1040
831
  }
1041
- export interface ChonkCheckPrecomputedVk {
1042
- circuit: CircuitInput;
832
+ interface MsgpackEcdsaSecp256k1ComputePublicKeyResponse {
833
+ public_key: MsgpackSecp256k1Point;
1043
834
  }
1044
- interface MsgpackChonkCheckPrecomputedVk {
1045
- circuit: MsgpackCircuitInput;
835
+ interface MsgpackEcdsaSecp256r1ComputePublicKeyResponse {
836
+ public_key: MsgpackSecp256r1Point;
1046
837
  }
1047
- export interface ChonkCheckPrecomputedVkResponse {
1048
- valid: boolean;
1049
- actualVk: Uint8Array;
838
+ interface MsgpackEcdsaSecp256k1ConstructSignatureResponse {
839
+ r: Uint8Array;
840
+ s: Uint8Array;
841
+ v: number;
1050
842
  }
1051
- interface MsgpackChonkCheckPrecomputedVkResponse {
1052
- valid: boolean;
1053
- actual_vk: Uint8Array;
843
+ interface MsgpackEcdsaSecp256r1ConstructSignatureResponse {
844
+ r: Uint8Array;
845
+ s: Uint8Array;
846
+ v: number;
1054
847
  }
1055
- export interface ChonkComputeIvcVk {
1056
- circuit: CircuitInputNoVK;
848
+ interface MsgpackEcdsaSecp256k1RecoverPublicKeyResponse {
849
+ public_key: MsgpackSecp256k1Point;
1057
850
  }
1058
- interface MsgpackChonkComputeIvcVk {
1059
- circuit: MsgpackCircuitInputNoVK;
851
+ interface MsgpackEcdsaSecp256r1RecoverPublicKeyResponse {
852
+ public_key: MsgpackSecp256r1Point;
1060
853
  }
1061
- export interface ChonkComputeIvcVkResponse {
1062
- bytes: Uint8Array;
854
+ interface MsgpackEcdsaSecp256k1VerifySignatureResponse {
855
+ verified: boolean;
1063
856
  }
1064
- interface MsgpackChonkComputeIvcVkResponse {
1065
- bytes: Uint8Array;
857
+ interface MsgpackEcdsaSecp256r1VerifySignatureResponse {
858
+ verified: boolean;
1066
859
  }
1067
- export interface ChonkComputeStandaloneVk {
1068
- circuit: CircuitInputNoVK;
860
+ interface MsgpackSrsInitSrsResponse {
861
+ dummy: number;
1069
862
  }
1070
- interface MsgpackChonkComputeStandaloneVk {
1071
- circuit: MsgpackCircuitInputNoVK;
863
+ interface MsgpackSrsInitGrumpkinSrsResponse {
864
+ dummy: number;
1072
865
  }
1073
- export interface ChonkComputeStandaloneVkResponse {
1074
- bytes: Uint8Array;
1075
- fields: Fr[];
866
+ interface MsgpackShutdownResponse {
1076
867
  }
1077
- interface MsgpackChonkComputeStandaloneVkResponse {
1078
- bytes: Uint8Array;
1079
- fields: Uint8Array[];
1080
- }
1081
- export interface ChonkLoad {
1082
- circuit: CircuitInput;
1083
- }
1084
- interface MsgpackChonkLoad {
1085
- circuit: MsgpackCircuitInput;
1086
- }
1087
- export interface ChonkLoadResponse {
1088
- }
1089
- interface MsgpackChonkLoadResponse {
1090
- }
1091
- export interface ChonkProof {
1092
- megaProof: Fr[];
1093
- goblinProof: GoblinProof;
1094
- }
1095
- interface MsgpackChonkProof {
1096
- mega_proof: Uint8Array[];
1097
- goblin_proof: MsgpackGoblinProof;
1098
- }
1099
- export interface ChonkProve {
1100
- }
1101
- interface MsgpackChonkProve {
1102
- }
1103
- export interface ChonkProveResponse {
1104
- proof: ChonkProof;
1105
- }
1106
- interface MsgpackChonkProveResponse {
1107
- proof: MsgpackChonkProof;
1108
- }
1109
- export interface ChonkStart {
1110
- numCircuits: number;
1111
- }
1112
- interface MsgpackChonkStart {
1113
- num_circuits: number;
1114
- }
1115
- export interface ChonkStartResponse {
1116
- }
1117
- interface MsgpackChonkStartResponse {
1118
- }
1119
- export interface ChonkStats {
1120
- circuit: CircuitInputNoVK;
1121
- includeGatesPerOpcode: boolean;
1122
- }
1123
- interface MsgpackChonkStats {
1124
- circuit: MsgpackCircuitInputNoVK;
1125
- include_gates_per_opcode: boolean;
1126
- }
1127
- export interface ChonkStatsResponse {
1128
- acirOpcodes: number;
1129
- circuitSize: number;
1130
- gatesPerOpcode: number[];
1131
- }
1132
- interface MsgpackChonkStatsResponse {
1133
- acir_opcodes: number;
1134
- circuit_size: number;
1135
- gates_per_opcode: number[];
1136
- }
1137
- export interface ChonkVerify {
1138
- proof: ChonkProof;
1139
- vk: Uint8Array;
1140
- }
1141
- interface MsgpackChonkVerify {
1142
- proof: MsgpackChonkProof;
1143
- vk: Uint8Array;
1144
- }
1145
- export interface ChonkVerifyResponse {
1146
- valid: boolean;
1147
- }
1148
- interface MsgpackChonkVerifyResponse {
1149
- valid: boolean;
1150
- }
1151
- export interface CircuitComputeVk {
1152
- circuit: CircuitInputNoVK;
1153
- settings: ProofSystemSettings;
1154
- }
1155
- interface MsgpackCircuitComputeVk {
1156
- circuit: MsgpackCircuitInputNoVK;
1157
- settings: MsgpackProofSystemSettings;
1158
- }
1159
- export interface CircuitComputeVkResponse {
1160
- bytes: Uint8Array;
1161
- fields: Uint256T[];
1162
- hash: Uint8Array;
1163
- }
1164
- interface MsgpackCircuitComputeVkResponse {
1165
- bytes: Uint8Array;
1166
- fields: Uint8Array[];
1167
- hash: Uint8Array;
1168
- }
1169
- export interface CircuitInfoResponse {
1170
- numGates: number;
1171
- numGatesDyadic: number;
1172
- numAcirOpcodes: number;
1173
- gatesPerOpcode: number[];
1174
- }
1175
- interface MsgpackCircuitInfoResponse {
1176
- num_gates: number;
1177
- num_gates_dyadic: number;
1178
- num_acir_opcodes: number;
1179
- gates_per_opcode: number[];
1180
- }
1181
- export interface CircuitInput {
1182
- name: string;
1183
- bytecode: Uint8Array;
1184
- verificationKey: Uint8Array;
1185
- }
1186
- interface MsgpackCircuitInput {
1187
- name: string;
1188
- bytecode: Uint8Array;
1189
- verification_key: Uint8Array;
1190
- }
1191
- export interface CircuitInputNoVK {
1192
- name: string;
1193
- bytecode: Uint8Array;
1194
- }
1195
- interface MsgpackCircuitInputNoVK {
1196
- name: string;
1197
- bytecode: Uint8Array;
1198
- }
1199
- export interface CircuitProve {
1200
- circuit: CircuitInput;
1201
- witness: Uint8Array;
1202
- settings: ProofSystemSettings;
1203
- }
1204
- interface MsgpackCircuitProve {
1205
- circuit: MsgpackCircuitInput;
1206
- witness: Uint8Array;
1207
- settings: MsgpackProofSystemSettings;
1208
- }
1209
- export interface CircuitProveResponse {
1210
- publicInputs: Uint256T[];
1211
- proof: Uint256T[];
1212
- vk: CircuitComputeVkResponse;
1213
- }
1214
- interface MsgpackCircuitProveResponse {
1215
- public_inputs: Uint8Array[];
1216
- proof: Uint8Array[];
1217
- vk: MsgpackCircuitComputeVkResponse;
1218
- }
1219
- export interface CircuitStats {
1220
- circuit: CircuitInput;
1221
- includeGatesPerOpcode: boolean;
1222
- settings: ProofSystemSettings;
1223
- }
1224
- interface MsgpackCircuitStats {
1225
- circuit: MsgpackCircuitInput;
1226
- include_gates_per_opcode: boolean;
1227
- settings: MsgpackProofSystemSettings;
1228
- }
1229
- export interface CircuitVerify {
1230
- verificationKey: Uint8Array;
1231
- publicInputs: Uint256T[];
1232
- proof: Uint256T[];
1233
- settings: ProofSystemSettings;
1234
- }
1235
- interface MsgpackCircuitVerify {
1236
- verification_key: Uint8Array;
1237
- public_inputs: Uint8Array[];
1238
- proof: Uint8Array[];
1239
- settings: MsgpackProofSystemSettings;
1240
- }
1241
- export interface CircuitVerifyResponse {
1242
- verified: boolean;
1243
- }
1244
- interface MsgpackCircuitVerifyResponse {
1245
- verified: boolean;
1246
- }
1247
- export interface CircuitWriteSolidityVerifier {
1248
- verificationKey: Uint8Array;
1249
- settings: ProofSystemSettings;
1250
- }
1251
- interface MsgpackCircuitWriteSolidityVerifier {
1252
- verification_key: Uint8Array;
1253
- settings: MsgpackProofSystemSettings;
1254
- }
1255
- export interface CircuitWriteSolidityVerifierResponse {
1256
- solidityCode: string;
1257
- }
1258
- interface MsgpackCircuitWriteSolidityVerifierResponse {
1259
- solidity_code: string;
1260
- }
1261
- export interface EcdsaSecp256k1ComputePublicKey {
1262
- privateKey: Secp256k1Fr;
1263
- }
1264
- interface MsgpackEcdsaSecp256k1ComputePublicKey {
1265
- private_key: Uint8Array;
1266
- }
1267
- export interface EcdsaSecp256k1ComputePublicKeyResponse {
1268
- publicKey: Secp256k1Point;
1269
- }
1270
- interface MsgpackEcdsaSecp256k1ComputePublicKeyResponse {
1271
- public_key: MsgpackSecp256k1Point;
1272
- }
1273
- export interface EcdsaSecp256k1ConstructSignature {
1274
- message: Uint8Array;
1275
- privateKey: Secp256k1Fr;
1276
- }
1277
- interface MsgpackEcdsaSecp256k1ConstructSignature {
1278
- message: Uint8Array;
1279
- private_key: Uint8Array;
1280
- }
1281
- export interface EcdsaSecp256k1ConstructSignatureResponse {
1282
- r: Uint8Array;
1283
- s: Uint8Array;
1284
- v: number;
1285
- }
1286
- interface MsgpackEcdsaSecp256k1ConstructSignatureResponse {
1287
- r: Uint8Array;
1288
- s: Uint8Array;
1289
- v: number;
1290
- }
1291
- export interface EcdsaSecp256k1RecoverPublicKey {
1292
- message: Uint8Array;
1293
- r: Uint8Array;
1294
- s: Uint8Array;
1295
- v: number;
1296
- }
1297
- interface MsgpackEcdsaSecp256k1RecoverPublicKey {
1298
- message: Uint8Array;
1299
- r: Uint8Array;
1300
- s: Uint8Array;
1301
- v: number;
1302
- }
1303
- export interface EcdsaSecp256k1RecoverPublicKeyResponse {
1304
- publicKey: Secp256k1Point;
1305
- }
1306
- interface MsgpackEcdsaSecp256k1RecoverPublicKeyResponse {
1307
- public_key: MsgpackSecp256k1Point;
1308
- }
1309
- export interface EcdsaSecp256k1VerifySignature {
1310
- message: Uint8Array;
1311
- publicKey: Secp256k1Point;
1312
- r: Uint8Array;
1313
- s: Uint8Array;
1314
- v: number;
1315
- }
1316
- interface MsgpackEcdsaSecp256k1VerifySignature {
1317
- message: Uint8Array;
1318
- public_key: MsgpackSecp256k1Point;
1319
- r: Uint8Array;
1320
- s: Uint8Array;
1321
- v: number;
1322
- }
1323
- export interface EcdsaSecp256k1VerifySignatureResponse {
1324
- verified: boolean;
1325
- }
1326
- interface MsgpackEcdsaSecp256k1VerifySignatureResponse {
1327
- verified: boolean;
1328
- }
1329
- export interface EcdsaSecp256r1ComputePublicKey {
1330
- privateKey: Secp256r1Fr;
1331
- }
1332
- interface MsgpackEcdsaSecp256r1ComputePublicKey {
1333
- private_key: Uint8Array;
1334
- }
1335
- export interface EcdsaSecp256r1ComputePublicKeyResponse {
1336
- publicKey: Secp256r1Point;
1337
- }
1338
- interface MsgpackEcdsaSecp256r1ComputePublicKeyResponse {
1339
- public_key: MsgpackSecp256r1Point;
1340
- }
1341
- export interface EcdsaSecp256r1ConstructSignature {
1342
- message: Uint8Array;
1343
- privateKey: Secp256r1Fr;
1344
- }
1345
- interface MsgpackEcdsaSecp256r1ConstructSignature {
1346
- message: Uint8Array;
1347
- private_key: Uint8Array;
1348
- }
1349
- export interface EcdsaSecp256r1ConstructSignatureResponse {
1350
- r: Uint8Array;
1351
- s: Uint8Array;
1352
- v: number;
1353
- }
1354
- interface MsgpackEcdsaSecp256r1ConstructSignatureResponse {
1355
- r: Uint8Array;
1356
- s: Uint8Array;
1357
- v: number;
1358
- }
1359
- export interface EcdsaSecp256r1RecoverPublicKey {
1360
- message: Uint8Array;
1361
- r: Uint8Array;
1362
- s: Uint8Array;
1363
- v: number;
1364
- }
1365
- interface MsgpackEcdsaSecp256r1RecoverPublicKey {
1366
- message: Uint8Array;
1367
- r: Uint8Array;
1368
- s: Uint8Array;
1369
- v: number;
1370
- }
1371
- export interface EcdsaSecp256r1RecoverPublicKeyResponse {
1372
- publicKey: Secp256r1Point;
1373
- }
1374
- interface MsgpackEcdsaSecp256r1RecoverPublicKeyResponse {
1375
- public_key: MsgpackSecp256r1Point;
1376
- }
1377
- export interface EcdsaSecp256r1VerifySignature {
1378
- message: Uint8Array;
1379
- publicKey: Secp256r1Point;
1380
- r: Uint8Array;
1381
- s: Uint8Array;
1382
- v: number;
1383
- }
1384
- interface MsgpackEcdsaSecp256r1VerifySignature {
1385
- message: Uint8Array;
1386
- public_key: MsgpackSecp256r1Point;
1387
- r: Uint8Array;
1388
- s: Uint8Array;
1389
- v: number;
1390
- }
1391
- export interface EcdsaSecp256r1VerifySignatureResponse {
1392
- verified: boolean;
1393
- }
1394
- interface MsgpackEcdsaSecp256r1VerifySignatureResponse {
1395
- verified: boolean;
1396
- }
1397
- export interface ErrorResponse {
1398
- message: string;
1399
- }
1400
- interface MsgpackErrorResponse {
1401
- message: string;
1402
- }
1403
- export interface GoblinProof {
1404
- mergeProof: Fr[];
1405
- eccvmProof: Fr[];
1406
- ipaProof: Fr[];
1407
- translatorProof: Fr[];
1408
- }
1409
- interface MsgpackGoblinProof {
1410
- merge_proof: Uint8Array[];
1411
- eccvm_proof: Uint8Array[];
1412
- ipa_proof: Uint8Array[];
1413
- translator_proof: Uint8Array[];
1414
- }
1415
- export interface GrumpkinAdd {
1416
- pointA: GrumpkinPoint;
1417
- pointB: GrumpkinPoint;
1418
- }
1419
- interface MsgpackGrumpkinAdd {
1420
- point_a: MsgpackGrumpkinPoint;
1421
- point_b: MsgpackGrumpkinPoint;
1422
- }
1423
- export interface GrumpkinAddResponse {
1424
- point: GrumpkinPoint;
1425
- }
1426
- interface MsgpackGrumpkinAddResponse {
1427
- point: MsgpackGrumpkinPoint;
1428
- }
1429
- export interface GrumpkinBatchMul {
1430
- points: GrumpkinPoint[];
1431
- scalar: Fq;
1432
- }
1433
- interface MsgpackGrumpkinBatchMul {
1434
- points: MsgpackGrumpkinPoint[];
1435
- scalar: Uint8Array;
1436
- }
1437
- export interface GrumpkinBatchMulResponse {
1438
- points: GrumpkinPoint[];
1439
- }
1440
- interface MsgpackGrumpkinBatchMulResponse {
1441
- points: MsgpackGrumpkinPoint[];
1442
- }
1443
- export interface GrumpkinGetRandomFr {
1444
- dummy: number;
1445
- }
1446
- interface MsgpackGrumpkinGetRandomFr {
1447
- dummy: number;
1448
- }
1449
- export interface GrumpkinGetRandomFrResponse {
1450
- value: Fr;
1451
- }
1452
- interface MsgpackGrumpkinGetRandomFrResponse {
1453
- value: Uint8Array;
1454
- }
1455
- export interface GrumpkinMul {
1456
- point: GrumpkinPoint;
1457
- scalar: Fq;
1458
- }
1459
- interface MsgpackGrumpkinMul {
1460
- point: MsgpackGrumpkinPoint;
1461
- scalar: Uint8Array;
1462
- }
1463
- export interface GrumpkinMulResponse {
1464
- point: GrumpkinPoint;
1465
- }
1466
- interface MsgpackGrumpkinMulResponse {
1467
- point: MsgpackGrumpkinPoint;
1468
- }
1469
- export interface GrumpkinPoint {
1470
- x: Fr;
1471
- y: Fr;
1472
- }
1473
- interface MsgpackGrumpkinPoint {
1474
- x: Uint8Array;
1475
- y: Uint8Array;
1476
- }
1477
- export interface GrumpkinReduce512 {
1478
- input: Uint8Array;
1479
- }
1480
- interface MsgpackGrumpkinReduce512 {
1481
- input: Uint8Array;
1482
- }
1483
- export interface GrumpkinReduce512Response {
1484
- value: Fr;
1485
- }
1486
- interface MsgpackGrumpkinReduce512Response {
1487
- value: Uint8Array;
1488
- }
1489
- export interface MegaVkAsFields {
1490
- verificationKey: Uint8Array;
1491
- }
1492
- interface MsgpackMegaVkAsFields {
1493
- verification_key: Uint8Array;
1494
- }
1495
- export interface MegaVkAsFieldsResponse {
1496
- fields: Fr[];
1497
- }
1498
- interface MsgpackMegaVkAsFieldsResponse {
1499
- fields: Uint8Array[];
1500
- }
1501
- export interface PedersenCommit {
1502
- inputs: Fr[];
1503
- hashIndex: number;
1504
- }
1505
- interface MsgpackPedersenCommit {
1506
- inputs: Uint8Array[];
1507
- hash_index: number;
1508
- }
1509
- export interface PedersenCommitResponse {
1510
- point: GrumpkinPoint;
1511
- }
1512
- interface MsgpackPedersenCommitResponse {
1513
- point: MsgpackGrumpkinPoint;
1514
- }
1515
- export interface PedersenHash {
1516
- inputs: Fr[];
1517
- hashIndex: number;
1518
- }
1519
- interface MsgpackPedersenHash {
1520
- inputs: Uint8Array[];
1521
- hash_index: number;
1522
- }
1523
- export interface PedersenHashBuffer {
1524
- input: Uint8Array;
1525
- hashIndex: number;
1526
- }
1527
- interface MsgpackPedersenHashBuffer {
1528
- input: Uint8Array;
1529
- hash_index: number;
1530
- }
1531
- export interface PedersenHashBufferResponse {
1532
- hash: Fr;
1533
- }
1534
- interface MsgpackPedersenHashBufferResponse {
1535
- hash: Uint8Array;
1536
- }
1537
- export interface PedersenHashResponse {
1538
- hash: Fr;
1539
- }
1540
- interface MsgpackPedersenHashResponse {
1541
- hash: Uint8Array;
1542
- }
1543
- export interface Poseidon2Hash {
1544
- inputs: Fr[];
1545
- }
1546
- interface MsgpackPoseidon2Hash {
1547
- inputs: Uint8Array[];
1548
- }
1549
- export interface Poseidon2HashAccumulate {
1550
- inputs: Fr[];
1551
- }
1552
- interface MsgpackPoseidon2HashAccumulate {
1553
- inputs: Uint8Array[];
1554
- }
1555
- export interface Poseidon2HashAccumulateResponse {
1556
- hash: Fr;
1557
- }
1558
- interface MsgpackPoseidon2HashAccumulateResponse {
1559
- hash: Uint8Array;
1560
- }
1561
- export interface Poseidon2HashResponse {
1562
- hash: Fr;
1563
- }
1564
- interface MsgpackPoseidon2HashResponse {
1565
- hash: Uint8Array;
1566
- }
1567
- export interface Poseidon2Permutation {
1568
- inputs: Fr[];
1569
- }
1570
- interface MsgpackPoseidon2Permutation {
1571
- inputs: Uint8Array[];
1572
- }
1573
- export interface Poseidon2PermutationResponse {
1574
- outputs: Fr[];
1575
- }
1576
- interface MsgpackPoseidon2PermutationResponse {
1577
- outputs: Uint8Array[];
1578
- }
1579
- export interface ProofSystemSettings {
1580
- ipaAccumulation: boolean;
1581
- oracleHashType: string;
1582
- disableZk: boolean;
1583
- optimizedSolidityVerifier: boolean;
1584
- }
1585
- interface MsgpackProofSystemSettings {
1586
- ipa_accumulation: boolean;
1587
- oracle_hash_type: string;
1588
- disable_zk: boolean;
1589
- optimized_solidity_verifier: boolean;
1590
- }
1591
- export interface SchnorrComputePublicKey {
1592
- privateKey: Fq;
1593
- }
1594
- interface MsgpackSchnorrComputePublicKey {
1595
- private_key: Uint8Array;
1596
- }
1597
- export interface SchnorrComputePublicKeyResponse {
1598
- publicKey: GrumpkinPoint;
1599
- }
1600
- interface MsgpackSchnorrComputePublicKeyResponse {
1601
- public_key: MsgpackGrumpkinPoint;
1602
- }
1603
- export interface SchnorrConstructSignature {
1604
- message: Uint8Array;
1605
- privateKey: Fq;
1606
- }
1607
- interface MsgpackSchnorrConstructSignature {
1608
- message: Uint8Array;
1609
- private_key: Uint8Array;
1610
- }
1611
- export interface SchnorrConstructSignatureResponse {
1612
- s: Uint8Array;
1613
- e: Uint8Array;
1614
- }
1615
- interface MsgpackSchnorrConstructSignatureResponse {
1616
- s: Uint8Array;
1617
- e: Uint8Array;
1618
- }
1619
- export interface SchnorrVerifySignature {
1620
- message: Uint8Array;
1621
- publicKey: GrumpkinPoint;
1622
- s: Uint8Array;
1623
- e: Uint8Array;
1624
- }
1625
- interface MsgpackSchnorrVerifySignature {
1626
- message: Uint8Array;
1627
- public_key: MsgpackGrumpkinPoint;
1628
- s: Uint8Array;
1629
- e: Uint8Array;
1630
- }
1631
- export interface SchnorrVerifySignatureResponse {
1632
- verified: boolean;
1633
- }
1634
- interface MsgpackSchnorrVerifySignatureResponse {
1635
- verified: boolean;
1636
- }
1637
- export interface Secp256k1GetRandomFr {
1638
- dummy: number;
1639
- }
1640
- interface MsgpackSecp256k1GetRandomFr {
1641
- dummy: number;
1642
- }
1643
- export interface Secp256k1GetRandomFrResponse {
1644
- value: Secp256k1Fr;
1645
- }
1646
- interface MsgpackSecp256k1GetRandomFrResponse {
1647
- value: Uint8Array;
1648
- }
1649
- export interface Secp256k1Mul {
1650
- point: Secp256k1Point;
1651
- scalar: Secp256k1Fr;
1652
- }
1653
- interface MsgpackSecp256k1Mul {
1654
- point: MsgpackSecp256k1Point;
1655
- scalar: Uint8Array;
1656
- }
1657
- export interface Secp256k1MulResponse {
1658
- point: Secp256k1Point;
1659
- }
1660
- interface MsgpackSecp256k1MulResponse {
1661
- point: MsgpackSecp256k1Point;
1662
- }
1663
- export interface Secp256k1Point {
1664
- x: Secp256k1Fq;
1665
- y: Secp256k1Fq;
1666
- }
1667
- interface MsgpackSecp256k1Point {
1668
- x: Uint8Array;
1669
- y: Uint8Array;
1670
- }
1671
- export interface Secp256k1Reduce512 {
1672
- input: Uint8Array;
1673
- }
1674
- interface MsgpackSecp256k1Reduce512 {
1675
- input: Uint8Array;
1676
- }
1677
- export interface Secp256k1Reduce512Response {
1678
- value: Secp256k1Fr;
1679
- }
1680
- interface MsgpackSecp256k1Reduce512Response {
1681
- value: Uint8Array;
1682
- }
1683
- export interface Secp256r1Point {
1684
- x: Secp256r1Fq;
1685
- y: Secp256r1Fq;
1686
- }
1687
- interface MsgpackSecp256r1Point {
1688
- x: Uint8Array;
1689
- y: Uint8Array;
1690
- }
1691
- export interface Shutdown {
1692
- }
1693
- interface MsgpackShutdown {
1694
- }
1695
- export interface ShutdownResponse {
1696
- }
1697
- interface MsgpackShutdownResponse {
1698
- }
1699
- export interface SrsInitGrumpkinSrs {
1700
- pointsBuf: Uint8Array;
1701
- numPoints: number;
1702
- }
1703
- interface MsgpackSrsInitGrumpkinSrs {
1704
- points_buf: Uint8Array;
1705
- num_points: number;
1706
- }
1707
- export interface SrsInitGrumpkinSrsResponse {
1708
- dummy: number;
1709
- }
1710
- interface MsgpackSrsInitGrumpkinSrsResponse {
1711
- dummy: number;
1712
- }
1713
- export interface SrsInitSrs {
1714
- pointsBuf: Uint8Array;
1715
- numPoints: number;
1716
- g2Point: Uint8Array;
1717
- }
1718
- interface MsgpackSrsInitSrs {
1719
- points_buf: Uint8Array;
1720
- num_points: number;
1721
- g2_point: Uint8Array;
1722
- }
1723
- export interface SrsInitSrsResponse {
1724
- dummy: number;
1725
- }
1726
- interface MsgpackSrsInitSrsResponse {
1727
- dummy: number;
1728
- }
1729
- export interface VkAsFields {
1730
- verificationKey: Uint8Array;
1731
- }
1732
- interface MsgpackVkAsFields {
1733
- verification_key: Uint8Array;
1734
- }
1735
- export interface VkAsFieldsResponse {
1736
- fields: Fr[];
1737
- }
1738
- interface MsgpackVkAsFieldsResponse {
1739
- fields: Uint8Array[];
1740
- }
1741
- export declare function toAesDecrypt(o: MsgpackAesDecrypt): AesDecrypt;
1742
- export declare function fromAesDecrypt(o: AesDecrypt): MsgpackAesDecrypt;
1743
- export declare function toAesDecryptResponse(o: MsgpackAesDecryptResponse): AesDecryptResponse;
1744
- export declare function fromAesDecryptResponse(o: AesDecryptResponse): MsgpackAesDecryptResponse;
1745
- export declare function toAesEncrypt(o: MsgpackAesEncrypt): AesEncrypt;
1746
- export declare function fromAesEncrypt(o: AesEncrypt): MsgpackAesEncrypt;
1747
- export declare function toAesEncryptResponse(o: MsgpackAesEncryptResponse): AesEncryptResponse;
1748
- export declare function fromAesEncryptResponse(o: AesEncryptResponse): MsgpackAesEncryptResponse;
868
+ export declare function toCircuitComputeVkResponse(o: MsgpackCircuitComputeVkResponse): CircuitComputeVkResponse;
869
+ export declare function toCircuitInput(o: MsgpackCircuitInput): CircuitInput;
870
+ export declare function toProofSystemSettings(o: MsgpackProofSystemSettings): ProofSystemSettings;
871
+ export declare function toCircuitProve(o: MsgpackCircuitProve): CircuitProve;
872
+ export declare function toCircuitInputNoVK(o: MsgpackCircuitInputNoVK): CircuitInputNoVK;
873
+ export declare function toCircuitComputeVk(o: MsgpackCircuitComputeVk): CircuitComputeVk;
874
+ export declare function toCircuitStats(o: MsgpackCircuitStats): CircuitStats;
875
+ export declare function toCircuitVerify(o: MsgpackCircuitVerify): CircuitVerify;
876
+ export declare function toChonkComputeStandaloneVk(o: MsgpackChonkComputeStandaloneVk): ChonkComputeStandaloneVk;
877
+ export declare function toChonkComputeIvcVk(o: MsgpackChonkComputeIvcVk): ChonkComputeIvcVk;
878
+ export declare function toChonkStart(o: MsgpackChonkStart): ChonkStart;
879
+ export declare function toChonkLoad(o: MsgpackChonkLoad): ChonkLoad;
880
+ export declare function toChonkAccumulate(o: MsgpackChonkAccumulate): ChonkAccumulate;
881
+ export declare function toChonkProve(o: MsgpackChonkProve): ChonkProve;
882
+ export declare function toGoblinProof(o: MsgpackGoblinProof): GoblinProof;
883
+ export declare function toChonkProof(o: MsgpackChonkProof): ChonkProof;
884
+ export declare function toChonkVerify(o: MsgpackChonkVerify): ChonkVerify;
885
+ export declare function toVkAsFields(o: MsgpackVkAsFields): VkAsFields;
886
+ export declare function toMegaVkAsFields(o: MsgpackMegaVkAsFields): MegaVkAsFields;
887
+ export declare function toCircuitWriteSolidityVerifier(o: MsgpackCircuitWriteSolidityVerifier): CircuitWriteSolidityVerifier;
888
+ export declare function toChonkCheckPrecomputedVk(o: MsgpackChonkCheckPrecomputedVk): ChonkCheckPrecomputedVk;
889
+ export declare function toChonkStats(o: MsgpackChonkStats): ChonkStats;
890
+ export declare function toPoseidon2Hash(o: MsgpackPoseidon2Hash): Poseidon2Hash;
891
+ export declare function toPoseidon2Permutation(o: MsgpackPoseidon2Permutation): Poseidon2Permutation;
892
+ export declare function toPoseidon2HashAccumulate(o: MsgpackPoseidon2HashAccumulate): Poseidon2HashAccumulate;
893
+ export declare function toPedersenCommit(o: MsgpackPedersenCommit): PedersenCommit;
894
+ export declare function toPedersenHash(o: MsgpackPedersenHash): PedersenHash;
895
+ export declare function toPedersenHashBuffer(o: MsgpackPedersenHashBuffer): PedersenHashBuffer;
1749
896
  export declare function toBlake2s(o: MsgpackBlake2s): Blake2s;
1750
- export declare function fromBlake2s(o: Blake2s): MsgpackBlake2s;
1751
- export declare function toBlake2sResponse(o: MsgpackBlake2sResponse): Blake2sResponse;
1752
- export declare function fromBlake2sResponse(o: Blake2sResponse): MsgpackBlake2sResponse;
1753
897
  export declare function toBlake2sToField(o: MsgpackBlake2sToField): Blake2sToField;
1754
- export declare function fromBlake2sToField(o: Blake2sToField): MsgpackBlake2sToField;
1755
- export declare function toBlake2sToFieldResponse(o: MsgpackBlake2sToFieldResponse): Blake2sToFieldResponse;
1756
- export declare function fromBlake2sToFieldResponse(o: Blake2sToFieldResponse): MsgpackBlake2sToFieldResponse;
1757
- export declare function toBn254FqSqrt(o: MsgpackBn254FqSqrt): Bn254FqSqrt;
1758
- export declare function fromBn254FqSqrt(o: Bn254FqSqrt): MsgpackBn254FqSqrt;
1759
- export declare function toBn254FqSqrtResponse(o: MsgpackBn254FqSqrtResponse): Bn254FqSqrtResponse;
1760
- export declare function fromBn254FqSqrtResponse(o: Bn254FqSqrtResponse): MsgpackBn254FqSqrtResponse;
898
+ export declare function toAesEncrypt(o: MsgpackAesEncrypt): AesEncrypt;
899
+ export declare function toAesDecrypt(o: MsgpackAesDecrypt): AesDecrypt;
900
+ export declare function toGrumpkinPoint(o: MsgpackGrumpkinPoint): GrumpkinPoint;
901
+ export declare function toGrumpkinMul(o: MsgpackGrumpkinMul): GrumpkinMul;
902
+ export declare function toGrumpkinAdd(o: MsgpackGrumpkinAdd): GrumpkinAdd;
903
+ export declare function toGrumpkinBatchMul(o: MsgpackGrumpkinBatchMul): GrumpkinBatchMul;
904
+ export declare function toGrumpkinGetRandomFr(o: MsgpackGrumpkinGetRandomFr): GrumpkinGetRandomFr;
905
+ export declare function toGrumpkinReduce512(o: MsgpackGrumpkinReduce512): GrumpkinReduce512;
906
+ export declare function toSecp256k1Point(o: MsgpackSecp256k1Point): Secp256k1Point;
907
+ export declare function toSecp256k1Mul(o: MsgpackSecp256k1Mul): Secp256k1Mul;
908
+ export declare function toSecp256k1GetRandomFr(o: MsgpackSecp256k1GetRandomFr): Secp256k1GetRandomFr;
909
+ export declare function toSecp256k1Reduce512(o: MsgpackSecp256k1Reduce512): Secp256k1Reduce512;
1761
910
  export declare function toBn254FrSqrt(o: MsgpackBn254FrSqrt): Bn254FrSqrt;
1762
- export declare function fromBn254FrSqrt(o: Bn254FrSqrt): MsgpackBn254FrSqrt;
1763
- export declare function toBn254FrSqrtResponse(o: MsgpackBn254FrSqrtResponse): Bn254FrSqrtResponse;
1764
- export declare function fromBn254FrSqrtResponse(o: Bn254FrSqrtResponse): MsgpackBn254FrSqrtResponse;
1765
- export declare function toBn254G1FromCompressed(o: MsgpackBn254G1FromCompressed): Bn254G1FromCompressed;
1766
- export declare function fromBn254G1FromCompressed(o: Bn254G1FromCompressed): MsgpackBn254G1FromCompressed;
1767
- export declare function toBn254G1FromCompressedResponse(o: MsgpackBn254G1FromCompressedResponse): Bn254G1FromCompressedResponse;
1768
- export declare function fromBn254G1FromCompressedResponse(o: Bn254G1FromCompressedResponse): MsgpackBn254G1FromCompressedResponse;
1769
- export declare function toBn254G1IsOnCurve(o: MsgpackBn254G1IsOnCurve): Bn254G1IsOnCurve;
1770
- export declare function fromBn254G1IsOnCurve(o: Bn254G1IsOnCurve): MsgpackBn254G1IsOnCurve;
1771
- export declare function toBn254G1IsOnCurveResponse(o: MsgpackBn254G1IsOnCurveResponse): Bn254G1IsOnCurveResponse;
1772
- export declare function fromBn254G1IsOnCurveResponse(o: Bn254G1IsOnCurveResponse): MsgpackBn254G1IsOnCurveResponse;
1773
- export declare function toBn254G1Mul(o: MsgpackBn254G1Mul): Bn254G1Mul;
1774
- export declare function fromBn254G1Mul(o: Bn254G1Mul): MsgpackBn254G1Mul;
1775
- export declare function toBn254G1MulResponse(o: MsgpackBn254G1MulResponse): Bn254G1MulResponse;
1776
- export declare function fromBn254G1MulResponse(o: Bn254G1MulResponse): MsgpackBn254G1MulResponse;
911
+ export declare function toBn254FqSqrt(o: MsgpackBn254FqSqrt): Bn254FqSqrt;
1777
912
  export declare function toBn254G1Point(o: MsgpackBn254G1Point): Bn254G1Point;
1778
- export declare function fromBn254G1Point(o: Bn254G1Point): MsgpackBn254G1Point;
1779
- export declare function toBn254G2Mul(o: MsgpackBn254G2Mul): Bn254G2Mul;
1780
- export declare function fromBn254G2Mul(o: Bn254G2Mul): MsgpackBn254G2Mul;
1781
- export declare function toBn254G2MulResponse(o: MsgpackBn254G2MulResponse): Bn254G2MulResponse;
1782
- export declare function fromBn254G2MulResponse(o: Bn254G2MulResponse): MsgpackBn254G2MulResponse;
913
+ export declare function toBn254G1Mul(o: MsgpackBn254G1Mul): Bn254G1Mul;
1783
914
  export declare function toBn254G2Point(o: MsgpackBn254G2Point): Bn254G2Point;
1784
- export declare function fromBn254G2Point(o: Bn254G2Point): MsgpackBn254G2Point;
1785
- export declare function toChonkAccumulate(o: MsgpackChonkAccumulate): ChonkAccumulate;
1786
- export declare function fromChonkAccumulate(o: ChonkAccumulate): MsgpackChonkAccumulate;
1787
- export declare function toChonkAccumulateResponse(o: MsgpackChonkAccumulateResponse): ChonkAccumulateResponse;
1788
- export declare function fromChonkAccumulateResponse(o: ChonkAccumulateResponse): MsgpackChonkAccumulateResponse;
1789
- export declare function toChonkCheckPrecomputedVk(o: MsgpackChonkCheckPrecomputedVk): ChonkCheckPrecomputedVk;
1790
- export declare function fromChonkCheckPrecomputedVk(o: ChonkCheckPrecomputedVk): MsgpackChonkCheckPrecomputedVk;
1791
- export declare function toChonkCheckPrecomputedVkResponse(o: MsgpackChonkCheckPrecomputedVkResponse): ChonkCheckPrecomputedVkResponse;
1792
- export declare function fromChonkCheckPrecomputedVkResponse(o: ChonkCheckPrecomputedVkResponse): MsgpackChonkCheckPrecomputedVkResponse;
1793
- export declare function toChonkComputeIvcVk(o: MsgpackChonkComputeIvcVk): ChonkComputeIvcVk;
1794
- export declare function fromChonkComputeIvcVk(o: ChonkComputeIvcVk): MsgpackChonkComputeIvcVk;
1795
- export declare function toChonkComputeIvcVkResponse(o: MsgpackChonkComputeIvcVkResponse): ChonkComputeIvcVkResponse;
1796
- export declare function fromChonkComputeIvcVkResponse(o: ChonkComputeIvcVkResponse): MsgpackChonkComputeIvcVkResponse;
1797
- export declare function toChonkComputeStandaloneVk(o: MsgpackChonkComputeStandaloneVk): ChonkComputeStandaloneVk;
1798
- export declare function fromChonkComputeStandaloneVk(o: ChonkComputeStandaloneVk): MsgpackChonkComputeStandaloneVk;
915
+ export declare function toBn254G2Mul(o: MsgpackBn254G2Mul): Bn254G2Mul;
916
+ export declare function toBn254G1IsOnCurve(o: MsgpackBn254G1IsOnCurve): Bn254G1IsOnCurve;
917
+ export declare function toBn254G1FromCompressed(o: MsgpackBn254G1FromCompressed): Bn254G1FromCompressed;
918
+ export declare function toSchnorrComputePublicKey(o: MsgpackSchnorrComputePublicKey): SchnorrComputePublicKey;
919
+ export declare function toSchnorrConstructSignature(o: MsgpackSchnorrConstructSignature): SchnorrConstructSignature;
920
+ export declare function toSchnorrVerifySignature(o: MsgpackSchnorrVerifySignature): SchnorrVerifySignature;
921
+ export declare function toEcdsaSecp256k1ComputePublicKey(o: MsgpackEcdsaSecp256k1ComputePublicKey): EcdsaSecp256k1ComputePublicKey;
922
+ export declare function toEcdsaSecp256r1ComputePublicKey(o: MsgpackEcdsaSecp256r1ComputePublicKey): EcdsaSecp256r1ComputePublicKey;
923
+ export declare function toEcdsaSecp256k1ConstructSignature(o: MsgpackEcdsaSecp256k1ConstructSignature): EcdsaSecp256k1ConstructSignature;
924
+ export declare function toEcdsaSecp256r1ConstructSignature(o: MsgpackEcdsaSecp256r1ConstructSignature): EcdsaSecp256r1ConstructSignature;
925
+ export declare function toEcdsaSecp256k1RecoverPublicKey(o: MsgpackEcdsaSecp256k1RecoverPublicKey): EcdsaSecp256k1RecoverPublicKey;
926
+ export declare function toEcdsaSecp256r1RecoverPublicKey(o: MsgpackEcdsaSecp256r1RecoverPublicKey): EcdsaSecp256r1RecoverPublicKey;
927
+ export declare function toEcdsaSecp256k1VerifySignature(o: MsgpackEcdsaSecp256k1VerifySignature): EcdsaSecp256k1VerifySignature;
928
+ export declare function toSecp256r1Point(o: MsgpackSecp256r1Point): Secp256r1Point;
929
+ export declare function toEcdsaSecp256r1VerifySignature(o: MsgpackEcdsaSecp256r1VerifySignature): EcdsaSecp256r1VerifySignature;
930
+ export declare function toSrsInitSrs(o: MsgpackSrsInitSrs): SrsInitSrs;
931
+ export declare function toSrsInitGrumpkinSrs(o: MsgpackSrsInitGrumpkinSrs): SrsInitGrumpkinSrs;
932
+ export declare function toShutdown(o: MsgpackShutdown): Shutdown;
933
+ export declare function toErrorResponse(o: MsgpackErrorResponse): ErrorResponse;
934
+ export declare function toCircuitProveResponse(o: MsgpackCircuitProveResponse): CircuitProveResponse;
935
+ export declare function toCircuitInfoResponse(o: MsgpackCircuitInfoResponse): CircuitInfoResponse;
936
+ export declare function toCircuitVerifyResponse(o: MsgpackCircuitVerifyResponse): CircuitVerifyResponse;
1799
937
  export declare function toChonkComputeStandaloneVkResponse(o: MsgpackChonkComputeStandaloneVkResponse): ChonkComputeStandaloneVkResponse;
1800
- export declare function fromChonkComputeStandaloneVkResponse(o: ChonkComputeStandaloneVkResponse): MsgpackChonkComputeStandaloneVkResponse;
1801
- export declare function toChonkLoad(o: MsgpackChonkLoad): ChonkLoad;
1802
- export declare function fromChonkLoad(o: ChonkLoad): MsgpackChonkLoad;
938
+ export declare function toChonkComputeIvcVkResponse(o: MsgpackChonkComputeIvcVkResponse): ChonkComputeIvcVkResponse;
939
+ export declare function toChonkStartResponse(o: MsgpackChonkStartResponse): ChonkStartResponse;
1803
940
  export declare function toChonkLoadResponse(o: MsgpackChonkLoadResponse): ChonkLoadResponse;
1804
- export declare function fromChonkLoadResponse(o: ChonkLoadResponse): MsgpackChonkLoadResponse;
1805
- export declare function toChonkProof(o: MsgpackChonkProof): ChonkProof;
1806
- export declare function fromChonkProof(o: ChonkProof): MsgpackChonkProof;
1807
- export declare function toChonkProve(o: MsgpackChonkProve): ChonkProve;
1808
- export declare function fromChonkProve(o: ChonkProve): MsgpackChonkProve;
941
+ export declare function toChonkAccumulateResponse(o: MsgpackChonkAccumulateResponse): ChonkAccumulateResponse;
1809
942
  export declare function toChonkProveResponse(o: MsgpackChonkProveResponse): ChonkProveResponse;
1810
- export declare function fromChonkProveResponse(o: ChonkProveResponse): MsgpackChonkProveResponse;
1811
- export declare function toChonkStart(o: MsgpackChonkStart): ChonkStart;
1812
- export declare function fromChonkStart(o: ChonkStart): MsgpackChonkStart;
1813
- export declare function toChonkStartResponse(o: MsgpackChonkStartResponse): ChonkStartResponse;
1814
- export declare function fromChonkStartResponse(o: ChonkStartResponse): MsgpackChonkStartResponse;
1815
- export declare function toChonkStats(o: MsgpackChonkStats): ChonkStats;
1816
- export declare function fromChonkStats(o: ChonkStats): MsgpackChonkStats;
1817
- export declare function toChonkStatsResponse(o: MsgpackChonkStatsResponse): ChonkStatsResponse;
1818
- export declare function fromChonkStatsResponse(o: ChonkStatsResponse): MsgpackChonkStatsResponse;
1819
- export declare function toChonkVerify(o: MsgpackChonkVerify): ChonkVerify;
1820
- export declare function fromChonkVerify(o: ChonkVerify): MsgpackChonkVerify;
1821
943
  export declare function toChonkVerifyResponse(o: MsgpackChonkVerifyResponse): ChonkVerifyResponse;
1822
- export declare function fromChonkVerifyResponse(o: ChonkVerifyResponse): MsgpackChonkVerifyResponse;
1823
- export declare function toCircuitComputeVk(o: MsgpackCircuitComputeVk): CircuitComputeVk;
1824
- export declare function fromCircuitComputeVk(o: CircuitComputeVk): MsgpackCircuitComputeVk;
1825
- export declare function toCircuitComputeVkResponse(o: MsgpackCircuitComputeVkResponse): CircuitComputeVkResponse;
944
+ export declare function toVkAsFieldsResponse(o: MsgpackVkAsFieldsResponse): VkAsFieldsResponse;
945
+ export declare function toMegaVkAsFieldsResponse(o: MsgpackMegaVkAsFieldsResponse): MegaVkAsFieldsResponse;
946
+ export declare function toCircuitWriteSolidityVerifierResponse(o: MsgpackCircuitWriteSolidityVerifierResponse): CircuitWriteSolidityVerifierResponse;
947
+ export declare function toChonkCheckPrecomputedVkResponse(o: MsgpackChonkCheckPrecomputedVkResponse): ChonkCheckPrecomputedVkResponse;
948
+ export declare function toChonkStatsResponse(o: MsgpackChonkStatsResponse): ChonkStatsResponse;
949
+ export declare function toPoseidon2HashResponse(o: MsgpackPoseidon2HashResponse): Poseidon2HashResponse;
950
+ export declare function toPoseidon2PermutationResponse(o: MsgpackPoseidon2PermutationResponse): Poseidon2PermutationResponse;
951
+ export declare function toPoseidon2HashAccumulateResponse(o: MsgpackPoseidon2HashAccumulateResponse): Poseidon2HashAccumulateResponse;
952
+ export declare function toPedersenCommitResponse(o: MsgpackPedersenCommitResponse): PedersenCommitResponse;
953
+ export declare function toPedersenHashResponse(o: MsgpackPedersenHashResponse): PedersenHashResponse;
954
+ export declare function toPedersenHashBufferResponse(o: MsgpackPedersenHashBufferResponse): PedersenHashBufferResponse;
955
+ export declare function toBlake2sResponse(o: MsgpackBlake2sResponse): Blake2sResponse;
956
+ export declare function toBlake2sToFieldResponse(o: MsgpackBlake2sToFieldResponse): Blake2sToFieldResponse;
957
+ export declare function toAesEncryptResponse(o: MsgpackAesEncryptResponse): AesEncryptResponse;
958
+ export declare function toAesDecryptResponse(o: MsgpackAesDecryptResponse): AesDecryptResponse;
959
+ export declare function toGrumpkinMulResponse(o: MsgpackGrumpkinMulResponse): GrumpkinMulResponse;
960
+ export declare function toGrumpkinAddResponse(o: MsgpackGrumpkinAddResponse): GrumpkinAddResponse;
961
+ export declare function toGrumpkinBatchMulResponse(o: MsgpackGrumpkinBatchMulResponse): GrumpkinBatchMulResponse;
962
+ export declare function toGrumpkinGetRandomFrResponse(o: MsgpackGrumpkinGetRandomFrResponse): GrumpkinGetRandomFrResponse;
963
+ export declare function toGrumpkinReduce512Response(o: MsgpackGrumpkinReduce512Response): GrumpkinReduce512Response;
964
+ export declare function toSecp256k1MulResponse(o: MsgpackSecp256k1MulResponse): Secp256k1MulResponse;
965
+ export declare function toSecp256k1GetRandomFrResponse(o: MsgpackSecp256k1GetRandomFrResponse): Secp256k1GetRandomFrResponse;
966
+ export declare function toSecp256k1Reduce512Response(o: MsgpackSecp256k1Reduce512Response): Secp256k1Reduce512Response;
967
+ export declare function toBn254FrSqrtResponse(o: MsgpackBn254FrSqrtResponse): Bn254FrSqrtResponse;
968
+ export declare function toBn254FqSqrtResponse(o: MsgpackBn254FqSqrtResponse): Bn254FqSqrtResponse;
969
+ export declare function toBn254G1MulResponse(o: MsgpackBn254G1MulResponse): Bn254G1MulResponse;
970
+ export declare function toBn254G2MulResponse(o: MsgpackBn254G2MulResponse): Bn254G2MulResponse;
971
+ export declare function toBn254G1IsOnCurveResponse(o: MsgpackBn254G1IsOnCurveResponse): Bn254G1IsOnCurveResponse;
972
+ export declare function toBn254G1FromCompressedResponse(o: MsgpackBn254G1FromCompressedResponse): Bn254G1FromCompressedResponse;
973
+ export declare function toSchnorrComputePublicKeyResponse(o: MsgpackSchnorrComputePublicKeyResponse): SchnorrComputePublicKeyResponse;
974
+ export declare function toSchnorrConstructSignatureResponse(o: MsgpackSchnorrConstructSignatureResponse): SchnorrConstructSignatureResponse;
975
+ export declare function toSchnorrVerifySignatureResponse(o: MsgpackSchnorrVerifySignatureResponse): SchnorrVerifySignatureResponse;
976
+ export declare function toEcdsaSecp256k1ComputePublicKeyResponse(o: MsgpackEcdsaSecp256k1ComputePublicKeyResponse): EcdsaSecp256k1ComputePublicKeyResponse;
977
+ export declare function toEcdsaSecp256r1ComputePublicKeyResponse(o: MsgpackEcdsaSecp256r1ComputePublicKeyResponse): EcdsaSecp256r1ComputePublicKeyResponse;
978
+ export declare function toEcdsaSecp256k1ConstructSignatureResponse(o: MsgpackEcdsaSecp256k1ConstructSignatureResponse): EcdsaSecp256k1ConstructSignatureResponse;
979
+ export declare function toEcdsaSecp256r1ConstructSignatureResponse(o: MsgpackEcdsaSecp256r1ConstructSignatureResponse): EcdsaSecp256r1ConstructSignatureResponse;
980
+ export declare function toEcdsaSecp256k1RecoverPublicKeyResponse(o: MsgpackEcdsaSecp256k1RecoverPublicKeyResponse): EcdsaSecp256k1RecoverPublicKeyResponse;
981
+ export declare function toEcdsaSecp256r1RecoverPublicKeyResponse(o: MsgpackEcdsaSecp256r1RecoverPublicKeyResponse): EcdsaSecp256r1RecoverPublicKeyResponse;
982
+ export declare function toEcdsaSecp256k1VerifySignatureResponse(o: MsgpackEcdsaSecp256k1VerifySignatureResponse): EcdsaSecp256k1VerifySignatureResponse;
983
+ export declare function toEcdsaSecp256r1VerifySignatureResponse(o: MsgpackEcdsaSecp256r1VerifySignatureResponse): EcdsaSecp256r1VerifySignatureResponse;
984
+ export declare function toSrsInitSrsResponse(o: MsgpackSrsInitSrsResponse): SrsInitSrsResponse;
985
+ export declare function toSrsInitGrumpkinSrsResponse(o: MsgpackSrsInitGrumpkinSrsResponse): SrsInitGrumpkinSrsResponse;
986
+ export declare function toShutdownResponse(o: MsgpackShutdownResponse): ShutdownResponse;
1826
987
  export declare function fromCircuitComputeVkResponse(o: CircuitComputeVkResponse): MsgpackCircuitComputeVkResponse;
1827
- export declare function toCircuitInfoResponse(o: MsgpackCircuitInfoResponse): CircuitInfoResponse;
1828
- export declare function fromCircuitInfoResponse(o: CircuitInfoResponse): MsgpackCircuitInfoResponse;
1829
- export declare function toCircuitInput(o: MsgpackCircuitInput): CircuitInput;
1830
988
  export declare function fromCircuitInput(o: CircuitInput): MsgpackCircuitInput;
1831
- export declare function toCircuitInputNoVK(o: MsgpackCircuitInputNoVK): CircuitInputNoVK;
1832
- export declare function fromCircuitInputNoVK(o: CircuitInputNoVK): MsgpackCircuitInputNoVK;
1833
- export declare function toCircuitProve(o: MsgpackCircuitProve): CircuitProve;
989
+ export declare function fromProofSystemSettings(o: ProofSystemSettings): MsgpackProofSystemSettings;
1834
990
  export declare function fromCircuitProve(o: CircuitProve): MsgpackCircuitProve;
1835
- export declare function toCircuitProveResponse(o: MsgpackCircuitProveResponse): CircuitProveResponse;
1836
- export declare function fromCircuitProveResponse(o: CircuitProveResponse): MsgpackCircuitProveResponse;
1837
- export declare function toCircuitStats(o: MsgpackCircuitStats): CircuitStats;
991
+ export declare function fromCircuitInputNoVK(o: CircuitInputNoVK): MsgpackCircuitInputNoVK;
992
+ export declare function fromCircuitComputeVk(o: CircuitComputeVk): MsgpackCircuitComputeVk;
1838
993
  export declare function fromCircuitStats(o: CircuitStats): MsgpackCircuitStats;
1839
- export declare function toCircuitVerify(o: MsgpackCircuitVerify): CircuitVerify;
1840
994
  export declare function fromCircuitVerify(o: CircuitVerify): MsgpackCircuitVerify;
1841
- export declare function toCircuitVerifyResponse(o: MsgpackCircuitVerifyResponse): CircuitVerifyResponse;
1842
- export declare function fromCircuitVerifyResponse(o: CircuitVerifyResponse): MsgpackCircuitVerifyResponse;
1843
- export declare function toCircuitWriteSolidityVerifier(o: MsgpackCircuitWriteSolidityVerifier): CircuitWriteSolidityVerifier;
995
+ export declare function fromChonkComputeStandaloneVk(o: ChonkComputeStandaloneVk): MsgpackChonkComputeStandaloneVk;
996
+ export declare function fromChonkComputeIvcVk(o: ChonkComputeIvcVk): MsgpackChonkComputeIvcVk;
997
+ export declare function fromChonkStart(o: ChonkStart): MsgpackChonkStart;
998
+ export declare function fromChonkLoad(o: ChonkLoad): MsgpackChonkLoad;
999
+ export declare function fromChonkAccumulate(o: ChonkAccumulate): MsgpackChonkAccumulate;
1000
+ export declare function fromChonkProve(o: ChonkProve): MsgpackChonkProve;
1001
+ export declare function fromGoblinProof(o: GoblinProof): MsgpackGoblinProof;
1002
+ export declare function fromChonkProof(o: ChonkProof): MsgpackChonkProof;
1003
+ export declare function fromChonkVerify(o: ChonkVerify): MsgpackChonkVerify;
1004
+ export declare function fromVkAsFields(o: VkAsFields): MsgpackVkAsFields;
1005
+ export declare function fromMegaVkAsFields(o: MegaVkAsFields): MsgpackMegaVkAsFields;
1844
1006
  export declare function fromCircuitWriteSolidityVerifier(o: CircuitWriteSolidityVerifier): MsgpackCircuitWriteSolidityVerifier;
1845
- export declare function toCircuitWriteSolidityVerifierResponse(o: MsgpackCircuitWriteSolidityVerifierResponse): CircuitWriteSolidityVerifierResponse;
1846
- export declare function fromCircuitWriteSolidityVerifierResponse(o: CircuitWriteSolidityVerifierResponse): MsgpackCircuitWriteSolidityVerifierResponse;
1847
- export declare function toEcdsaSecp256k1ComputePublicKey(o: MsgpackEcdsaSecp256k1ComputePublicKey): EcdsaSecp256k1ComputePublicKey;
1007
+ export declare function fromChonkCheckPrecomputedVk(o: ChonkCheckPrecomputedVk): MsgpackChonkCheckPrecomputedVk;
1008
+ export declare function fromChonkStats(o: ChonkStats): MsgpackChonkStats;
1009
+ export declare function fromPoseidon2Hash(o: Poseidon2Hash): MsgpackPoseidon2Hash;
1010
+ export declare function fromPoseidon2Permutation(o: Poseidon2Permutation): MsgpackPoseidon2Permutation;
1011
+ export declare function fromPoseidon2HashAccumulate(o: Poseidon2HashAccumulate): MsgpackPoseidon2HashAccumulate;
1012
+ export declare function fromPedersenCommit(o: PedersenCommit): MsgpackPedersenCommit;
1013
+ export declare function fromPedersenHash(o: PedersenHash): MsgpackPedersenHash;
1014
+ export declare function fromPedersenHashBuffer(o: PedersenHashBuffer): MsgpackPedersenHashBuffer;
1015
+ export declare function fromBlake2s(o: Blake2s): MsgpackBlake2s;
1016
+ export declare function fromBlake2sToField(o: Blake2sToField): MsgpackBlake2sToField;
1017
+ export declare function fromAesEncrypt(o: AesEncrypt): MsgpackAesEncrypt;
1018
+ export declare function fromAesDecrypt(o: AesDecrypt): MsgpackAesDecrypt;
1019
+ export declare function fromGrumpkinPoint(o: GrumpkinPoint): MsgpackGrumpkinPoint;
1020
+ export declare function fromGrumpkinMul(o: GrumpkinMul): MsgpackGrumpkinMul;
1021
+ export declare function fromGrumpkinAdd(o: GrumpkinAdd): MsgpackGrumpkinAdd;
1022
+ export declare function fromGrumpkinBatchMul(o: GrumpkinBatchMul): MsgpackGrumpkinBatchMul;
1023
+ export declare function fromGrumpkinGetRandomFr(o: GrumpkinGetRandomFr): MsgpackGrumpkinGetRandomFr;
1024
+ export declare function fromGrumpkinReduce512(o: GrumpkinReduce512): MsgpackGrumpkinReduce512;
1025
+ export declare function fromSecp256k1Point(o: Secp256k1Point): MsgpackSecp256k1Point;
1026
+ export declare function fromSecp256k1Mul(o: Secp256k1Mul): MsgpackSecp256k1Mul;
1027
+ export declare function fromSecp256k1GetRandomFr(o: Secp256k1GetRandomFr): MsgpackSecp256k1GetRandomFr;
1028
+ export declare function fromSecp256k1Reduce512(o: Secp256k1Reduce512): MsgpackSecp256k1Reduce512;
1029
+ export declare function fromBn254FrSqrt(o: Bn254FrSqrt): MsgpackBn254FrSqrt;
1030
+ export declare function fromBn254FqSqrt(o: Bn254FqSqrt): MsgpackBn254FqSqrt;
1031
+ export declare function fromBn254G1Point(o: Bn254G1Point): MsgpackBn254G1Point;
1032
+ export declare function fromBn254G1Mul(o: Bn254G1Mul): MsgpackBn254G1Mul;
1033
+ export declare function fromBn254G2Point(o: Bn254G2Point): MsgpackBn254G2Point;
1034
+ export declare function fromBn254G2Mul(o: Bn254G2Mul): MsgpackBn254G2Mul;
1035
+ export declare function fromBn254G1IsOnCurve(o: Bn254G1IsOnCurve): MsgpackBn254G1IsOnCurve;
1036
+ export declare function fromBn254G1FromCompressed(o: Bn254G1FromCompressed): MsgpackBn254G1FromCompressed;
1037
+ export declare function fromSchnorrComputePublicKey(o: SchnorrComputePublicKey): MsgpackSchnorrComputePublicKey;
1038
+ export declare function fromSchnorrConstructSignature(o: SchnorrConstructSignature): MsgpackSchnorrConstructSignature;
1039
+ export declare function fromSchnorrVerifySignature(o: SchnorrVerifySignature): MsgpackSchnorrVerifySignature;
1848
1040
  export declare function fromEcdsaSecp256k1ComputePublicKey(o: EcdsaSecp256k1ComputePublicKey): MsgpackEcdsaSecp256k1ComputePublicKey;
1849
- export declare function toEcdsaSecp256k1ComputePublicKeyResponse(o: MsgpackEcdsaSecp256k1ComputePublicKeyResponse): EcdsaSecp256k1ComputePublicKeyResponse;
1850
- export declare function fromEcdsaSecp256k1ComputePublicKeyResponse(o: EcdsaSecp256k1ComputePublicKeyResponse): MsgpackEcdsaSecp256k1ComputePublicKeyResponse;
1851
- export declare function toEcdsaSecp256k1ConstructSignature(o: MsgpackEcdsaSecp256k1ConstructSignature): EcdsaSecp256k1ConstructSignature;
1852
- export declare function fromEcdsaSecp256k1ConstructSignature(o: EcdsaSecp256k1ConstructSignature): MsgpackEcdsaSecp256k1ConstructSignature;
1853
- export declare function toEcdsaSecp256k1ConstructSignatureResponse(o: MsgpackEcdsaSecp256k1ConstructSignatureResponse): EcdsaSecp256k1ConstructSignatureResponse;
1854
- export declare function fromEcdsaSecp256k1ConstructSignatureResponse(o: EcdsaSecp256k1ConstructSignatureResponse): MsgpackEcdsaSecp256k1ConstructSignatureResponse;
1855
- export declare function toEcdsaSecp256k1RecoverPublicKey(o: MsgpackEcdsaSecp256k1RecoverPublicKey): EcdsaSecp256k1RecoverPublicKey;
1856
- export declare function fromEcdsaSecp256k1RecoverPublicKey(o: EcdsaSecp256k1RecoverPublicKey): MsgpackEcdsaSecp256k1RecoverPublicKey;
1857
- export declare function toEcdsaSecp256k1RecoverPublicKeyResponse(o: MsgpackEcdsaSecp256k1RecoverPublicKeyResponse): EcdsaSecp256k1RecoverPublicKeyResponse;
1858
- export declare function fromEcdsaSecp256k1RecoverPublicKeyResponse(o: EcdsaSecp256k1RecoverPublicKeyResponse): MsgpackEcdsaSecp256k1RecoverPublicKeyResponse;
1859
- export declare function toEcdsaSecp256k1VerifySignature(o: MsgpackEcdsaSecp256k1VerifySignature): EcdsaSecp256k1VerifySignature;
1860
- export declare function fromEcdsaSecp256k1VerifySignature(o: EcdsaSecp256k1VerifySignature): MsgpackEcdsaSecp256k1VerifySignature;
1861
- export declare function toEcdsaSecp256k1VerifySignatureResponse(o: MsgpackEcdsaSecp256k1VerifySignatureResponse): EcdsaSecp256k1VerifySignatureResponse;
1862
- export declare function fromEcdsaSecp256k1VerifySignatureResponse(o: EcdsaSecp256k1VerifySignatureResponse): MsgpackEcdsaSecp256k1VerifySignatureResponse;
1863
- export declare function toEcdsaSecp256r1ComputePublicKey(o: MsgpackEcdsaSecp256r1ComputePublicKey): EcdsaSecp256r1ComputePublicKey;
1864
1041
  export declare function fromEcdsaSecp256r1ComputePublicKey(o: EcdsaSecp256r1ComputePublicKey): MsgpackEcdsaSecp256r1ComputePublicKey;
1865
- export declare function toEcdsaSecp256r1ComputePublicKeyResponse(o: MsgpackEcdsaSecp256r1ComputePublicKeyResponse): EcdsaSecp256r1ComputePublicKeyResponse;
1866
- export declare function fromEcdsaSecp256r1ComputePublicKeyResponse(o: EcdsaSecp256r1ComputePublicKeyResponse): MsgpackEcdsaSecp256r1ComputePublicKeyResponse;
1867
- export declare function toEcdsaSecp256r1ConstructSignature(o: MsgpackEcdsaSecp256r1ConstructSignature): EcdsaSecp256r1ConstructSignature;
1042
+ export declare function fromEcdsaSecp256k1ConstructSignature(o: EcdsaSecp256k1ConstructSignature): MsgpackEcdsaSecp256k1ConstructSignature;
1868
1043
  export declare function fromEcdsaSecp256r1ConstructSignature(o: EcdsaSecp256r1ConstructSignature): MsgpackEcdsaSecp256r1ConstructSignature;
1869
- export declare function toEcdsaSecp256r1ConstructSignatureResponse(o: MsgpackEcdsaSecp256r1ConstructSignatureResponse): EcdsaSecp256r1ConstructSignatureResponse;
1870
- export declare function fromEcdsaSecp256r1ConstructSignatureResponse(o: EcdsaSecp256r1ConstructSignatureResponse): MsgpackEcdsaSecp256r1ConstructSignatureResponse;
1871
- export declare function toEcdsaSecp256r1RecoverPublicKey(o: MsgpackEcdsaSecp256r1RecoverPublicKey): EcdsaSecp256r1RecoverPublicKey;
1044
+ export declare function fromEcdsaSecp256k1RecoverPublicKey(o: EcdsaSecp256k1RecoverPublicKey): MsgpackEcdsaSecp256k1RecoverPublicKey;
1872
1045
  export declare function fromEcdsaSecp256r1RecoverPublicKey(o: EcdsaSecp256r1RecoverPublicKey): MsgpackEcdsaSecp256r1RecoverPublicKey;
1873
- export declare function toEcdsaSecp256r1RecoverPublicKeyResponse(o: MsgpackEcdsaSecp256r1RecoverPublicKeyResponse): EcdsaSecp256r1RecoverPublicKeyResponse;
1874
- export declare function fromEcdsaSecp256r1RecoverPublicKeyResponse(o: EcdsaSecp256r1RecoverPublicKeyResponse): MsgpackEcdsaSecp256r1RecoverPublicKeyResponse;
1875
- export declare function toEcdsaSecp256r1VerifySignature(o: MsgpackEcdsaSecp256r1VerifySignature): EcdsaSecp256r1VerifySignature;
1046
+ export declare function fromEcdsaSecp256k1VerifySignature(o: EcdsaSecp256k1VerifySignature): MsgpackEcdsaSecp256k1VerifySignature;
1047
+ export declare function fromSecp256r1Point(o: Secp256r1Point): MsgpackSecp256r1Point;
1876
1048
  export declare function fromEcdsaSecp256r1VerifySignature(o: EcdsaSecp256r1VerifySignature): MsgpackEcdsaSecp256r1VerifySignature;
1877
- export declare function toEcdsaSecp256r1VerifySignatureResponse(o: MsgpackEcdsaSecp256r1VerifySignatureResponse): EcdsaSecp256r1VerifySignatureResponse;
1878
- export declare function fromEcdsaSecp256r1VerifySignatureResponse(o: EcdsaSecp256r1VerifySignatureResponse): MsgpackEcdsaSecp256r1VerifySignatureResponse;
1879
- export declare function toErrorResponse(o: MsgpackErrorResponse): ErrorResponse;
1049
+ export declare function fromSrsInitSrs(o: SrsInitSrs): MsgpackSrsInitSrs;
1050
+ export declare function fromSrsInitGrumpkinSrs(o: SrsInitGrumpkinSrs): MsgpackSrsInitGrumpkinSrs;
1051
+ export declare function fromShutdown(o: Shutdown): MsgpackShutdown;
1880
1052
  export declare function fromErrorResponse(o: ErrorResponse): MsgpackErrorResponse;
1881
- export declare function toGoblinProof(o: MsgpackGoblinProof): GoblinProof;
1882
- export declare function fromGoblinProof(o: GoblinProof): MsgpackGoblinProof;
1883
- export declare function toGrumpkinAdd(o: MsgpackGrumpkinAdd): GrumpkinAdd;
1884
- export declare function fromGrumpkinAdd(o: GrumpkinAdd): MsgpackGrumpkinAdd;
1885
- export declare function toGrumpkinAddResponse(o: MsgpackGrumpkinAddResponse): GrumpkinAddResponse;
1053
+ export declare function fromCircuitProveResponse(o: CircuitProveResponse): MsgpackCircuitProveResponse;
1054
+ export declare function fromCircuitInfoResponse(o: CircuitInfoResponse): MsgpackCircuitInfoResponse;
1055
+ export declare function fromCircuitVerifyResponse(o: CircuitVerifyResponse): MsgpackCircuitVerifyResponse;
1056
+ export declare function fromChonkComputeStandaloneVkResponse(o: ChonkComputeStandaloneVkResponse): MsgpackChonkComputeStandaloneVkResponse;
1057
+ export declare function fromChonkComputeIvcVkResponse(o: ChonkComputeIvcVkResponse): MsgpackChonkComputeIvcVkResponse;
1058
+ export declare function fromChonkStartResponse(o: ChonkStartResponse): MsgpackChonkStartResponse;
1059
+ export declare function fromChonkLoadResponse(o: ChonkLoadResponse): MsgpackChonkLoadResponse;
1060
+ export declare function fromChonkAccumulateResponse(o: ChonkAccumulateResponse): MsgpackChonkAccumulateResponse;
1061
+ export declare function fromChonkProveResponse(o: ChonkProveResponse): MsgpackChonkProveResponse;
1062
+ export declare function fromChonkVerifyResponse(o: ChonkVerifyResponse): MsgpackChonkVerifyResponse;
1063
+ export declare function fromVkAsFieldsResponse(o: VkAsFieldsResponse): MsgpackVkAsFieldsResponse;
1064
+ export declare function fromMegaVkAsFieldsResponse(o: MegaVkAsFieldsResponse): MsgpackMegaVkAsFieldsResponse;
1065
+ export declare function fromCircuitWriteSolidityVerifierResponse(o: CircuitWriteSolidityVerifierResponse): MsgpackCircuitWriteSolidityVerifierResponse;
1066
+ export declare function fromChonkCheckPrecomputedVkResponse(o: ChonkCheckPrecomputedVkResponse): MsgpackChonkCheckPrecomputedVkResponse;
1067
+ export declare function fromChonkStatsResponse(o: ChonkStatsResponse): MsgpackChonkStatsResponse;
1068
+ export declare function fromPoseidon2HashResponse(o: Poseidon2HashResponse): MsgpackPoseidon2HashResponse;
1069
+ export declare function fromPoseidon2PermutationResponse(o: Poseidon2PermutationResponse): MsgpackPoseidon2PermutationResponse;
1070
+ export declare function fromPoseidon2HashAccumulateResponse(o: Poseidon2HashAccumulateResponse): MsgpackPoseidon2HashAccumulateResponse;
1071
+ export declare function fromPedersenCommitResponse(o: PedersenCommitResponse): MsgpackPedersenCommitResponse;
1072
+ export declare function fromPedersenHashResponse(o: PedersenHashResponse): MsgpackPedersenHashResponse;
1073
+ export declare function fromPedersenHashBufferResponse(o: PedersenHashBufferResponse): MsgpackPedersenHashBufferResponse;
1074
+ export declare function fromBlake2sResponse(o: Blake2sResponse): MsgpackBlake2sResponse;
1075
+ export declare function fromBlake2sToFieldResponse(o: Blake2sToFieldResponse): MsgpackBlake2sToFieldResponse;
1076
+ export declare function fromAesEncryptResponse(o: AesEncryptResponse): MsgpackAesEncryptResponse;
1077
+ export declare function fromAesDecryptResponse(o: AesDecryptResponse): MsgpackAesDecryptResponse;
1078
+ export declare function fromGrumpkinMulResponse(o: GrumpkinMulResponse): MsgpackGrumpkinMulResponse;
1886
1079
  export declare function fromGrumpkinAddResponse(o: GrumpkinAddResponse): MsgpackGrumpkinAddResponse;
1887
- export declare function toGrumpkinBatchMul(o: MsgpackGrumpkinBatchMul): GrumpkinBatchMul;
1888
- export declare function fromGrumpkinBatchMul(o: GrumpkinBatchMul): MsgpackGrumpkinBatchMul;
1889
- export declare function toGrumpkinBatchMulResponse(o: MsgpackGrumpkinBatchMulResponse): GrumpkinBatchMulResponse;
1890
1080
  export declare function fromGrumpkinBatchMulResponse(o: GrumpkinBatchMulResponse): MsgpackGrumpkinBatchMulResponse;
1891
- export declare function toGrumpkinGetRandomFr(o: MsgpackGrumpkinGetRandomFr): GrumpkinGetRandomFr;
1892
- export declare function fromGrumpkinGetRandomFr(o: GrumpkinGetRandomFr): MsgpackGrumpkinGetRandomFr;
1893
- export declare function toGrumpkinGetRandomFrResponse(o: MsgpackGrumpkinGetRandomFrResponse): GrumpkinGetRandomFrResponse;
1894
1081
  export declare function fromGrumpkinGetRandomFrResponse(o: GrumpkinGetRandomFrResponse): MsgpackGrumpkinGetRandomFrResponse;
1895
- export declare function toGrumpkinMul(o: MsgpackGrumpkinMul): GrumpkinMul;
1896
- export declare function fromGrumpkinMul(o: GrumpkinMul): MsgpackGrumpkinMul;
1897
- export declare function toGrumpkinMulResponse(o: MsgpackGrumpkinMulResponse): GrumpkinMulResponse;
1898
- export declare function fromGrumpkinMulResponse(o: GrumpkinMulResponse): MsgpackGrumpkinMulResponse;
1899
- export declare function toGrumpkinPoint(o: MsgpackGrumpkinPoint): GrumpkinPoint;
1900
- export declare function fromGrumpkinPoint(o: GrumpkinPoint): MsgpackGrumpkinPoint;
1901
- export declare function toGrumpkinReduce512(o: MsgpackGrumpkinReduce512): GrumpkinReduce512;
1902
- export declare function fromGrumpkinReduce512(o: GrumpkinReduce512): MsgpackGrumpkinReduce512;
1903
- export declare function toGrumpkinReduce512Response(o: MsgpackGrumpkinReduce512Response): GrumpkinReduce512Response;
1904
1082
  export declare function fromGrumpkinReduce512Response(o: GrumpkinReduce512Response): MsgpackGrumpkinReduce512Response;
1905
- export declare function toMegaVkAsFields(o: MsgpackMegaVkAsFields): MegaVkAsFields;
1906
- export declare function fromMegaVkAsFields(o: MegaVkAsFields): MsgpackMegaVkAsFields;
1907
- export declare function toMegaVkAsFieldsResponse(o: MsgpackMegaVkAsFieldsResponse): MegaVkAsFieldsResponse;
1908
- export declare function fromMegaVkAsFieldsResponse(o: MegaVkAsFieldsResponse): MsgpackMegaVkAsFieldsResponse;
1909
- export declare function toPedersenCommit(o: MsgpackPedersenCommit): PedersenCommit;
1910
- export declare function fromPedersenCommit(o: PedersenCommit): MsgpackPedersenCommit;
1911
- export declare function toPedersenCommitResponse(o: MsgpackPedersenCommitResponse): PedersenCommitResponse;
1912
- export declare function fromPedersenCommitResponse(o: PedersenCommitResponse): MsgpackPedersenCommitResponse;
1913
- export declare function toPedersenHash(o: MsgpackPedersenHash): PedersenHash;
1914
- export declare function fromPedersenHash(o: PedersenHash): MsgpackPedersenHash;
1915
- export declare function toPedersenHashBuffer(o: MsgpackPedersenHashBuffer): PedersenHashBuffer;
1916
- export declare function fromPedersenHashBuffer(o: PedersenHashBuffer): MsgpackPedersenHashBuffer;
1917
- export declare function toPedersenHashBufferResponse(o: MsgpackPedersenHashBufferResponse): PedersenHashBufferResponse;
1918
- export declare function fromPedersenHashBufferResponse(o: PedersenHashBufferResponse): MsgpackPedersenHashBufferResponse;
1919
- export declare function toPedersenHashResponse(o: MsgpackPedersenHashResponse): PedersenHashResponse;
1920
- export declare function fromPedersenHashResponse(o: PedersenHashResponse): MsgpackPedersenHashResponse;
1921
- export declare function toPoseidon2Hash(o: MsgpackPoseidon2Hash): Poseidon2Hash;
1922
- export declare function fromPoseidon2Hash(o: Poseidon2Hash): MsgpackPoseidon2Hash;
1923
- export declare function toPoseidon2HashAccumulate(o: MsgpackPoseidon2HashAccumulate): Poseidon2HashAccumulate;
1924
- export declare function fromPoseidon2HashAccumulate(o: Poseidon2HashAccumulate): MsgpackPoseidon2HashAccumulate;
1925
- export declare function toPoseidon2HashAccumulateResponse(o: MsgpackPoseidon2HashAccumulateResponse): Poseidon2HashAccumulateResponse;
1926
- export declare function fromPoseidon2HashAccumulateResponse(o: Poseidon2HashAccumulateResponse): MsgpackPoseidon2HashAccumulateResponse;
1927
- export declare function toPoseidon2HashResponse(o: MsgpackPoseidon2HashResponse): Poseidon2HashResponse;
1928
- export declare function fromPoseidon2HashResponse(o: Poseidon2HashResponse): MsgpackPoseidon2HashResponse;
1929
- export declare function toPoseidon2Permutation(o: MsgpackPoseidon2Permutation): Poseidon2Permutation;
1930
- export declare function fromPoseidon2Permutation(o: Poseidon2Permutation): MsgpackPoseidon2Permutation;
1931
- export declare function toPoseidon2PermutationResponse(o: MsgpackPoseidon2PermutationResponse): Poseidon2PermutationResponse;
1932
- export declare function fromPoseidon2PermutationResponse(o: Poseidon2PermutationResponse): MsgpackPoseidon2PermutationResponse;
1933
- export declare function toProofSystemSettings(o: MsgpackProofSystemSettings): ProofSystemSettings;
1934
- export declare function fromProofSystemSettings(o: ProofSystemSettings): MsgpackProofSystemSettings;
1935
- export declare function toSchnorrComputePublicKey(o: MsgpackSchnorrComputePublicKey): SchnorrComputePublicKey;
1936
- export declare function fromSchnorrComputePublicKey(o: SchnorrComputePublicKey): MsgpackSchnorrComputePublicKey;
1937
- export declare function toSchnorrComputePublicKeyResponse(o: MsgpackSchnorrComputePublicKeyResponse): SchnorrComputePublicKeyResponse;
1083
+ export declare function fromSecp256k1MulResponse(o: Secp256k1MulResponse): MsgpackSecp256k1MulResponse;
1084
+ export declare function fromSecp256k1GetRandomFrResponse(o: Secp256k1GetRandomFrResponse): MsgpackSecp256k1GetRandomFrResponse;
1085
+ export declare function fromSecp256k1Reduce512Response(o: Secp256k1Reduce512Response): MsgpackSecp256k1Reduce512Response;
1086
+ export declare function fromBn254FrSqrtResponse(o: Bn254FrSqrtResponse): MsgpackBn254FrSqrtResponse;
1087
+ export declare function fromBn254FqSqrtResponse(o: Bn254FqSqrtResponse): MsgpackBn254FqSqrtResponse;
1088
+ export declare function fromBn254G1MulResponse(o: Bn254G1MulResponse): MsgpackBn254G1MulResponse;
1089
+ export declare function fromBn254G2MulResponse(o: Bn254G2MulResponse): MsgpackBn254G2MulResponse;
1090
+ export declare function fromBn254G1IsOnCurveResponse(o: Bn254G1IsOnCurveResponse): MsgpackBn254G1IsOnCurveResponse;
1091
+ export declare function fromBn254G1FromCompressedResponse(o: Bn254G1FromCompressedResponse): MsgpackBn254G1FromCompressedResponse;
1938
1092
  export declare function fromSchnorrComputePublicKeyResponse(o: SchnorrComputePublicKeyResponse): MsgpackSchnorrComputePublicKeyResponse;
1939
- export declare function toSchnorrConstructSignature(o: MsgpackSchnorrConstructSignature): SchnorrConstructSignature;
1940
- export declare function fromSchnorrConstructSignature(o: SchnorrConstructSignature): MsgpackSchnorrConstructSignature;
1941
- export declare function toSchnorrConstructSignatureResponse(o: MsgpackSchnorrConstructSignatureResponse): SchnorrConstructSignatureResponse;
1942
1093
  export declare function fromSchnorrConstructSignatureResponse(o: SchnorrConstructSignatureResponse): MsgpackSchnorrConstructSignatureResponse;
1943
- export declare function toSchnorrVerifySignature(o: MsgpackSchnorrVerifySignature): SchnorrVerifySignature;
1944
- export declare function fromSchnorrVerifySignature(o: SchnorrVerifySignature): MsgpackSchnorrVerifySignature;
1945
- export declare function toSchnorrVerifySignatureResponse(o: MsgpackSchnorrVerifySignatureResponse): SchnorrVerifySignatureResponse;
1946
1094
  export declare function fromSchnorrVerifySignatureResponse(o: SchnorrVerifySignatureResponse): MsgpackSchnorrVerifySignatureResponse;
1947
- export declare function toSecp256k1GetRandomFr(o: MsgpackSecp256k1GetRandomFr): Secp256k1GetRandomFr;
1948
- export declare function fromSecp256k1GetRandomFr(o: Secp256k1GetRandomFr): MsgpackSecp256k1GetRandomFr;
1949
- export declare function toSecp256k1GetRandomFrResponse(o: MsgpackSecp256k1GetRandomFrResponse): Secp256k1GetRandomFrResponse;
1950
- export declare function fromSecp256k1GetRandomFrResponse(o: Secp256k1GetRandomFrResponse): MsgpackSecp256k1GetRandomFrResponse;
1951
- export declare function toSecp256k1Mul(o: MsgpackSecp256k1Mul): Secp256k1Mul;
1952
- export declare function fromSecp256k1Mul(o: Secp256k1Mul): MsgpackSecp256k1Mul;
1953
- export declare function toSecp256k1MulResponse(o: MsgpackSecp256k1MulResponse): Secp256k1MulResponse;
1954
- export declare function fromSecp256k1MulResponse(o: Secp256k1MulResponse): MsgpackSecp256k1MulResponse;
1955
- export declare function toSecp256k1Point(o: MsgpackSecp256k1Point): Secp256k1Point;
1956
- export declare function fromSecp256k1Point(o: Secp256k1Point): MsgpackSecp256k1Point;
1957
- export declare function toSecp256k1Reduce512(o: MsgpackSecp256k1Reduce512): Secp256k1Reduce512;
1958
- export declare function fromSecp256k1Reduce512(o: Secp256k1Reduce512): MsgpackSecp256k1Reduce512;
1959
- export declare function toSecp256k1Reduce512Response(o: MsgpackSecp256k1Reduce512Response): Secp256k1Reduce512Response;
1960
- export declare function fromSecp256k1Reduce512Response(o: Secp256k1Reduce512Response): MsgpackSecp256k1Reduce512Response;
1961
- export declare function toSecp256r1Point(o: MsgpackSecp256r1Point): Secp256r1Point;
1962
- export declare function fromSecp256r1Point(o: Secp256r1Point): MsgpackSecp256r1Point;
1963
- export declare function toShutdown(o: MsgpackShutdown): Shutdown;
1964
- export declare function fromShutdown(o: Shutdown): MsgpackShutdown;
1965
- export declare function toShutdownResponse(o: MsgpackShutdownResponse): ShutdownResponse;
1966
- export declare function fromShutdownResponse(o: ShutdownResponse): MsgpackShutdownResponse;
1967
- export declare function toSrsInitGrumpkinSrs(o: MsgpackSrsInitGrumpkinSrs): SrsInitGrumpkinSrs;
1968
- export declare function fromSrsInitGrumpkinSrs(o: SrsInitGrumpkinSrs): MsgpackSrsInitGrumpkinSrs;
1969
- export declare function toSrsInitGrumpkinSrsResponse(o: MsgpackSrsInitGrumpkinSrsResponse): SrsInitGrumpkinSrsResponse;
1970
- export declare function fromSrsInitGrumpkinSrsResponse(o: SrsInitGrumpkinSrsResponse): MsgpackSrsInitGrumpkinSrsResponse;
1971
- export declare function toSrsInitSrs(o: MsgpackSrsInitSrs): SrsInitSrs;
1972
- export declare function fromSrsInitSrs(o: SrsInitSrs): MsgpackSrsInitSrs;
1973
- export declare function toSrsInitSrsResponse(o: MsgpackSrsInitSrsResponse): SrsInitSrsResponse;
1095
+ export declare function fromEcdsaSecp256k1ComputePublicKeyResponse(o: EcdsaSecp256k1ComputePublicKeyResponse): MsgpackEcdsaSecp256k1ComputePublicKeyResponse;
1096
+ export declare function fromEcdsaSecp256r1ComputePublicKeyResponse(o: EcdsaSecp256r1ComputePublicKeyResponse): MsgpackEcdsaSecp256r1ComputePublicKeyResponse;
1097
+ export declare function fromEcdsaSecp256k1ConstructSignatureResponse(o: EcdsaSecp256k1ConstructSignatureResponse): MsgpackEcdsaSecp256k1ConstructSignatureResponse;
1098
+ export declare function fromEcdsaSecp256r1ConstructSignatureResponse(o: EcdsaSecp256r1ConstructSignatureResponse): MsgpackEcdsaSecp256r1ConstructSignatureResponse;
1099
+ export declare function fromEcdsaSecp256k1RecoverPublicKeyResponse(o: EcdsaSecp256k1RecoverPublicKeyResponse): MsgpackEcdsaSecp256k1RecoverPublicKeyResponse;
1100
+ export declare function fromEcdsaSecp256r1RecoverPublicKeyResponse(o: EcdsaSecp256r1RecoverPublicKeyResponse): MsgpackEcdsaSecp256r1RecoverPublicKeyResponse;
1101
+ export declare function fromEcdsaSecp256k1VerifySignatureResponse(o: EcdsaSecp256k1VerifySignatureResponse): MsgpackEcdsaSecp256k1VerifySignatureResponse;
1102
+ export declare function fromEcdsaSecp256r1VerifySignatureResponse(o: EcdsaSecp256r1VerifySignatureResponse): MsgpackEcdsaSecp256r1VerifySignatureResponse;
1974
1103
  export declare function fromSrsInitSrsResponse(o: SrsInitSrsResponse): MsgpackSrsInitSrsResponse;
1975
- export declare function toVkAsFields(o: MsgpackVkAsFields): VkAsFields;
1976
- export declare function fromVkAsFields(o: VkAsFields): MsgpackVkAsFields;
1977
- export declare function toVkAsFieldsResponse(o: MsgpackVkAsFieldsResponse): VkAsFieldsResponse;
1978
- export declare function fromVkAsFieldsResponse(o: VkAsFieldsResponse): MsgpackVkAsFieldsResponse;
1104
+ export declare function fromSrsInitGrumpkinSrsResponse(o: SrsInitGrumpkinSrsResponse): MsgpackSrsInitGrumpkinSrsResponse;
1105
+ export declare function fromShutdownResponse(o: ShutdownResponse): MsgpackShutdownResponse;
1979
1106
  export interface BbApiBase {
1980
1107
  circuitProve(command: CircuitProve): Promise<CircuitProveResponse>;
1981
1108
  circuitComputeVk(command: CircuitComputeVk): Promise<CircuitComputeVkResponse>;
@@ -2034,4 +1161,4 @@ export interface BbApiBase {
2034
1161
  destroy(): Promise<void>;
2035
1162
  }
2036
1163
  export {};
2037
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpX3R5cGVzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY2JpbmQvZ2VuZXJhdGVkL2FwaV90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxNQUFNLE1BQU0sTUFBTSxHQUFHLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBQzlDLE1BQU0sTUFBTSxFQUFFLEdBQUcsVUFBVSxDQUFDO0FBQzVCLE1BQU0sTUFBTSxFQUFFLEdBQUcsVUFBVSxDQUFDO0FBQzVCLE1BQU0sTUFBTSxXQUFXLEdBQUcsVUFBVSxDQUFDO0FBQ3JDLE1BQU0sTUFBTSxXQUFXLEdBQUcsVUFBVSxDQUFDO0FBQ3JDLE1BQU0sTUFBTSxXQUFXLEdBQUcsVUFBVSxDQUFDO0FBQ3JDLE1BQU0sTUFBTSxXQUFXLEdBQUcsVUFBVSxDQUFDO0FBQ3JDLE1BQU0sTUFBTSxRQUFRLEdBQUcsVUFBVSxDQUFDO0FBR2xDLE1BQU0sV0FBVyxVQUFVO0lBQ3pCLFVBQVUsRUFBRSxVQUFVLENBQUM7SUFDdkIsRUFBRSxFQUFFLFVBQVUsQ0FBQztJQUNmLEdBQUcsRUFBRSxVQUFVLENBQUM7SUFDaEIsTUFBTSxFQUFFLE1BQU0sQ0FBQztDQUNoQjtBQUVELFVBQVUsaUJBQWlCO0lBQ3pCLFVBQVUsRUFBRSxVQUFVLENBQUM7SUFDdkIsRUFBRSxFQUFFLFVBQVUsQ0FBQztJQUNmLEdBQUcsRUFBRSxVQUFVLENBQUM7SUFDaEIsTUFBTSxFQUFFLE1BQU0sQ0FBQztDQUNoQjtBQUVELE1BQU0sV0FBVyxrQkFBa0I7SUFDakMsU0FBUyxFQUFFLFVBQVUsQ0FBQztDQUN2QjtBQUVELFVBQVUseUJBQXlCO0lBQ2pDLFNBQVMsRUFBRSxVQUFVLENBQUM7Q0FDdkI7QUFFRCxNQUFNLFdBQVcsVUFBVTtJQUN6QixTQUFTLEVBQUUsVUFBVSxDQUFDO0lBQ3RCLEVBQUUsRUFBRSxVQUFVLENBQUM7SUFDZixHQUFHLEVBQUUsVUFBVSxDQUFDO0lB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
1164
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpX3R5cGVzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY2JpbmQvZ2VuZXJhdGVkL2FwaV90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLE1BQU0sTUFBTSxHQUFHLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBRzlDLE1BQU0sV0FBVyx3QkFBd0I7SUFDdkMsS0FBSyxFQUFFLFVBQVUsQ0FBQztJQUNsQixNQUFNLEVBQUUsVUFBVSxFQUFFLENBQUM7SUFDckIsSUFBSSxFQUFFLFVBQVUsQ0FBQztDQUNsQjtBQUVELE1BQU0sV0FBVyxZQUFZO0lBQzNCLElBQUksRUFBRSxNQUFNLENBQUM7SUFDYixRQUFRLEVBQUUsVUFBVSxDQUFDO0lBQ3JCLGVBQWUsRUFBRSxVQUFVLENBQUM7Q0FDN0I7QUFFRCxNQUFNLFdBQVcsbUJBQW1CO0lBQ2xDLGVBQWUsRUFBRSxPQUFPLENBQUM7SUFDekIsY0FBYyxFQUFFLE1BQU0sQ0FBQztJQUN2QixTQUFTLEVBQUUsT0FBTyxDQUFDO0lBQ25CLHlCQUF5QixFQUFFLE9BQU8sQ0FBQztDQUNwQztBQUVELE1BQU0sV0FBVyxZQUFZO0lBQzNCLE9BQU8sRUFBRSxZQUFZLENBQUM7SUFDdEIsT0FBTyxFQUFFLFVBQVUsQ0FBQztJQUNwQixRQUFRLEVBQUUsbUJBQW1CLENBQUM7Q0FDL0I7QUFFRCxNQUFNLFdBQVcsZ0JBQWdCO0lBQy9CLElBQUksRUFBRSxNQUFNLENBQUM7SUFDYixRQUFRLEVBQUUsVUFBVSxDQUFDO0NBQ3RCO0FBRUQsTUFBTSxXQUFXLGdCQUFnQjtJQUMvQixPQUFPLEVBQUUsZ0JBQWdCLENBQUM7SUFDMUIsUUFBUSxFQUFFLG1CQUFtQixDQUFDO0NBQy9CO0FBRUQsTUFBTSxXQUFXLFlBQVk7SUFDM0IsT0FBTyxFQUFFLFlBQVksQ0FBQztJQUN0QixxQkFBcUIsRUFBRSxPQUFPLENBQUM7SUFDL0IsUUFBUSxFQUFFLG1C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