@aztec/bb.js 0.0.1-commit.d3ec352c → 0.0.1-commit.e310a4c8

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 (187) 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 +49 -17
  10. package/dest/browser/barretenberg/backend.d.ts.map +1 -1
  11. package/dest/browser/barretenberg/backend.js +109 -9
  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 +765 -1672
  24. package/dest/browser/cbind/generated/api_types.d.ts.map +1 -1
  25. package/dest/browser/cbind/generated/api_types.js +1453 -1525
  26. package/dest/browser/cbind/generated/async.d.ts +3 -5
  27. package/dest/browser/cbind/generated/async.d.ts.map +1 -1
  28. package/dest/browser/cbind/generated/async.js +13 -33
  29. package/dest/browser/cbind/generated/sync.d.ts +3 -5
  30. package/dest/browser/cbind/generated/sync.d.ts.map +1 -1
  31. package/dest/browser/cbind/generated/sync.js +13 -31
  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 +26 -0
  36. package/dest/browser/cbind/rust_codegen.d.ts.map +1 -0
  37. package/dest/browser/cbind/rust_codegen.js +461 -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 +49 -17
  48. package/dest/node/barretenberg/backend.d.ts.map +1 -1
  49. package/dest/node/barretenberg/backend.js +109 -9
  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 +40 -21
  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 +17 -21
  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 +7 -5
  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 +765 -1672
  79. package/dest/node/cbind/generated/api_types.d.ts.map +1 -1
  80. package/dest/node/cbind/generated/api_types.js +1453 -1525
  81. package/dest/node/cbind/generated/async.d.ts +3 -5
  82. package/dest/node/cbind/generated/async.d.ts.map +1 -1
  83. package/dest/node/cbind/generated/async.js +13 -33
  84. package/dest/node/cbind/generated/sync.d.ts +3 -5
  85. package/dest/node/cbind/generated/sync.d.ts.map +1 -1
  86. package/dest/node/cbind/generated/sync.js +13 -31
  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 +26 -0
  91. package/dest/node/cbind/rust_codegen.d.ts.map +1 -0
  92. package/dest/node/cbind/rust_codegen.js +461 -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 +49 -17
  103. package/dest/node-cjs/barretenberg/backend.d.ts.map +1 -1
  104. package/dest/node-cjs/barretenberg/backend.js +111 -9
  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 +39 -20
  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 +17 -21
  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 +7 -5
  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 +765 -1672
  134. package/dest/node-cjs/cbind/generated/api_types.d.ts.map +1 -1
  135. package/dest/node-cjs/cbind/generated/api_types.js +1662 -1742
  136. package/dest/node-cjs/cbind/generated/async.d.ts +3 -5
  137. package/dest/node-cjs/cbind/generated/async.d.ts.map +1 -1
  138. package/dest/node-cjs/cbind/generated/async.js +12 -32
  139. package/dest/node-cjs/cbind/generated/sync.d.ts +3 -5
  140. package/dest/node-cjs/cbind/generated/sync.d.ts.map +1 -1
  141. package/dest/node-cjs/cbind/generated/sync.js +12 -30
  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 +26 -0
  146. package/dest/node-cjs/cbind/rust_codegen.d.ts.map +1 -0
  147. package/dest/node-cjs/cbind/rust_codegen.js +465 -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 +149 -23
  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 +38 -19
  165. package/src/bb_backends/node/native_shm_async.ts +15 -19
  166. package/src/bb_backends/node/native_socket.ts +7 -5
  167. package/src/bb_backends/node/platform.ts +6 -1
  168. package/src/cbind/generate.ts +51 -32
  169. package/src/cbind/naming.ts +27 -0
  170. package/src/cbind/rust_codegen.ts +504 -0
  171. package/src/cbind/schema_visitor.ts +219 -0
  172. package/src/cbind/typescript_codegen.ts +419 -0
  173. package/src/index.ts +4 -0
  174. package/dest/browser/cbind/schema_compiler.d.ts +0 -68
  175. package/dest/browser/cbind/schema_compiler.d.ts.map +0 -1
  176. package/dest/browser/cbind/schema_compiler.js +0 -600
  177. package/dest/node/cbind/schema_compiler.d.ts +0 -68
  178. package/dest/node/cbind/schema_compiler.d.ts.map +0 -1
  179. package/dest/node/cbind/schema_compiler.js +0 -600
  180. package/dest/node-cjs/cbind/schema_compiler.d.ts +0 -68
  181. package/dest/node-cjs/cbind/schema_compiler.d.ts.map +0 -1
  182. package/dest/node-cjs/cbind/schema_compiler.js +0 -607
  183. package/src/cbind/generated/api_types.ts +0 -4241
  184. package/src/cbind/generated/async.ts +0 -717
  185. package/src/cbind/generated/curve_constants.ts +0 -53
  186. package/src/cbind/generated/sync.ts +0 -663
  187. package/src/cbind/schema_compiler.ts +0 -745
@@ -1,435 +1,401 @@
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 ChonkComputeVk {
43
+ circuit: CircuitInputNoVK;
47
44
  }
48
- interface MsgpackBlake2s {
49
- data: Uint8Array;
45
+ export interface ChonkStart {
46
+ numCircuits: number;
50
47
  }
51
- export interface Blake2sResponse {
52
- hash: Uint8Array;
48
+ export interface ChonkLoad {
49
+ circuit: CircuitInput;
53
50
  }
54
- interface MsgpackBlake2sResponse {
55
- hash: Uint8Array;
51
+ export interface ChonkAccumulate {
52
+ witness: Uint8Array;
56
53
  }
57
- export interface Blake2sToField {
58
- data: Uint8Array;
54
+ export interface ChonkProve {
59
55
  }
60
- interface MsgpackBlake2sToField {
61
- data: Uint8Array;
56
+ export interface GoblinProof {
57
+ mergeProof: Uint8Array[];
58
+ eccvmProof: Uint8Array[];
59
+ ipaProof: Uint8Array[];
60
+ translatorProof: Uint8Array[];
62
61
  }
63
- export interface Blake2sToFieldResponse {
64
- field: Fr;
62
+ export interface ChonkProof {
63
+ megaProof: Uint8Array[];
64
+ goblinProof: GoblinProof;
65
65
  }
66
- interface MsgpackBlake2sToFieldResponse {
67
- field: Uint8Array;
66
+ export interface ChonkVerify {
67
+ proof: ChonkProof;
68
+ vk: Uint8Array;
68
69
  }
69
- export interface Bn254FqSqrt {
70
- input: Fq;
70
+ export interface VkAsFields {
71
+ verificationKey: Uint8Array;
71
72
  }
72
- interface MsgpackBn254FqSqrt {
73
- input: Uint8Array;
73
+ export interface MegaVkAsFields {
74
+ verificationKey: Uint8Array;
74
75
  }
75
- export interface Bn254FqSqrtResponse {
76
- isSquareRoot: boolean;
77
- value: Fq;
76
+ export interface CircuitWriteSolidityVerifier {
77
+ verificationKey: Uint8Array;
78
+ settings: ProofSystemSettings;
78
79
  }
79
- interface MsgpackBn254FqSqrtResponse {
80
- is_square_root: boolean;
81
- value: Uint8Array;
80
+ export interface ChonkCheckPrecomputedVk {
81
+ circuit: CircuitInput;
82
82
  }
83
- export interface Bn254FrSqrt {
84
- input: Fr;
83
+ export interface ChonkStats {
84
+ circuit: CircuitInputNoVK;
85
+ includeGatesPerOpcode: boolean;
85
86
  }
86
- interface MsgpackBn254FrSqrt {
87
- input: Uint8Array;
87
+ export interface Poseidon2Hash {
88
+ inputs: Uint8Array[];
88
89
  }
89
- export interface Bn254FrSqrtResponse {
90
- isSquareRoot: boolean;
91
- value: Fr;
90
+ export interface Poseidon2Permutation {
91
+ inputs: Uint8Array[];
92
92
  }
93
- interface MsgpackBn254FrSqrtResponse {
94
- is_square_root: boolean;
95
- value: Uint8Array;
93
+ export interface PedersenCommit {
94
+ inputs: Uint8Array[];
95
+ hashIndex: number;
96
96
  }
97
- export interface Bn254G1FromCompressed {
98
- compressed: Uint8Array;
97
+ export interface PedersenHash {
98
+ inputs: Uint8Array[];
99
+ hashIndex: number;
99
100
  }
100
- interface MsgpackBn254G1FromCompressed {
101
- compressed: Uint8Array;
101
+ export interface PedersenHashBuffer {
102
+ input: Uint8Array;
103
+ hashIndex: number;
102
104
  }
103
- export interface Bn254G1FromCompressedResponse {
104
- point: Bn254G1Point;
105
+ export interface Blake2s {
106
+ data: Uint8Array;
105
107
  }
106
- interface MsgpackBn254G1FromCompressedResponse {
107
- point: MsgpackBn254G1Point;
108
+ export interface Blake2sToField {
109
+ data: Uint8Array;
108
110
  }
109
- export interface Bn254G1IsOnCurve {
110
- point: Bn254G1Point;
111
+ export interface AesEncrypt {
112
+ plaintext: Uint8Array;
113
+ iv: Uint8Array;
114
+ key: Uint8Array;
115
+ length: number;
111
116
  }
112
- interface MsgpackBn254G1IsOnCurve {
113
- point: MsgpackBn254G1Point;
117
+ export interface AesDecrypt {
118
+ ciphertext: Uint8Array;
119
+ iv: Uint8Array;
120
+ key: Uint8Array;
121
+ length: number;
114
122
  }
115
- export interface Bn254G1IsOnCurveResponse {
116
- isOnCurve: boolean;
123
+ export interface GrumpkinPoint {
124
+ x: Uint8Array;
125
+ y: Uint8Array;
117
126
  }
118
- interface MsgpackBn254G1IsOnCurveResponse {
119
- is_on_curve: boolean;
127
+ export interface GrumpkinMul {
128
+ point: GrumpkinPoint;
129
+ scalar: Uint8Array;
120
130
  }
121
- export interface Bn254G1Mul {
122
- point: Bn254G1Point;
123
- scalar: Fr;
131
+ export interface GrumpkinAdd {
132
+ pointA: GrumpkinPoint;
133
+ pointB: GrumpkinPoint;
124
134
  }
125
- interface MsgpackBn254G1Mul {
126
- point: MsgpackBn254G1Point;
135
+ export interface GrumpkinBatchMul {
136
+ points: GrumpkinPoint[];
127
137
  scalar: Uint8Array;
128
138
  }
129
- export interface Bn254G1MulResponse {
130
- point: Bn254G1Point;
131
- }
132
- interface MsgpackBn254G1MulResponse {
133
- point: MsgpackBn254G1Point;
139
+ export interface GrumpkinGetRandomFr {
140
+ dummy: number;
134
141
  }
135
- export interface Bn254G1Point {
136
- x: Fq;
137
- y: Fq;
142
+ export interface GrumpkinReduce512 {
143
+ input: Uint8Array;
138
144
  }
139
- interface MsgpackBn254G1Point {
145
+ export interface Secp256k1Point {
140
146
  x: Uint8Array;
141
147
  y: Uint8Array;
142
148
  }
143
- export interface Bn254G2Mul {
144
- point: Bn254G2Point;
145
- scalar: Fr;
146
- }
147
- interface MsgpackBn254G2Mul {
148
- point: MsgpackBn254G2Point;
149
+ export interface Secp256k1Mul {
150
+ point: Secp256k1Point;
149
151
  scalar: Uint8Array;
150
152
  }
151
- export interface Bn254G2MulResponse {
152
- point: Bn254G2Point;
153
+ export interface Secp256k1GetRandomFr {
154
+ dummy: number;
153
155
  }
154
- interface MsgpackBn254G2MulResponse {
155
- point: MsgpackBn254G2Point;
156
+ export interface Secp256k1Reduce512 {
157
+ input: Uint8Array;
156
158
  }
157
- export interface Bn254G2Point {
158
- x: Field2;
159
- y: Field2;
159
+ export interface Bn254FrSqrt {
160
+ input: Uint8Array;
160
161
  }
161
- interface MsgpackBn254G2Point {
162
+ export interface Bn254FqSqrt {
163
+ input: Uint8Array;
164
+ }
165
+ export interface Bn254G1Point {
166
+ x: Uint8Array;
167
+ y: Uint8Array;
168
+ }
169
+ export interface Bn254G1Mul {
170
+ point: Bn254G1Point;
171
+ scalar: Uint8Array;
172
+ }
173
+ export interface Bn254G2Point {
162
174
  x: [Uint8Array, Uint8Array];
163
175
  y: [Uint8Array, Uint8Array];
164
176
  }
165
- export interface ChonkAccumulate {
166
- witness: Uint8Array;
177
+ export interface Bn254G2Mul {
178
+ point: Bn254G2Point;
179
+ scalar: Uint8Array;
167
180
  }
168
- interface MsgpackChonkAccumulate {
169
- witness: Uint8Array;
181
+ export interface Bn254G1IsOnCurve {
182
+ point: Bn254G1Point;
170
183
  }
171
- export interface ChonkAccumulateResponse {
184
+ export interface Bn254G1FromCompressed {
185
+ compressed: Uint8Array;
172
186
  }
173
- interface MsgpackChonkAccumulateResponse {
187
+ export interface SchnorrComputePublicKey {
188
+ privateKey: Uint8Array;
174
189
  }
175
- export interface ChonkCheckPrecomputedVk {
176
- circuit: CircuitInput;
190
+ export interface SchnorrConstructSignature {
191
+ message: Uint8Array;
192
+ privateKey: Uint8Array;
177
193
  }
178
- interface MsgpackChonkCheckPrecomputedVk {
179
- circuit: MsgpackCircuitInput;
194
+ export interface SchnorrVerifySignature {
195
+ message: Uint8Array;
196
+ publicKey: GrumpkinPoint;
197
+ s: Uint8Array;
198
+ e: Uint8Array;
180
199
  }
181
- export interface ChonkCheckPrecomputedVkResponse {
182
- valid: boolean;
183
- actualVk: Uint8Array;
200
+ export interface EcdsaSecp256k1ComputePublicKey {
201
+ privateKey: Uint8Array;
184
202
  }
185
- interface MsgpackChonkCheckPrecomputedVkResponse {
186
- valid: boolean;
187
- actual_vk: Uint8Array;
203
+ export interface EcdsaSecp256r1ComputePublicKey {
204
+ privateKey: Uint8Array;
188
205
  }
189
- export interface ChonkComputeIvcVk {
190
- circuit: CircuitInputNoVK;
206
+ export interface EcdsaSecp256k1ConstructSignature {
207
+ message: Uint8Array;
208
+ privateKey: Uint8Array;
191
209
  }
192
- interface MsgpackChonkComputeIvcVk {
193
- circuit: MsgpackCircuitInputNoVK;
210
+ export interface EcdsaSecp256r1ConstructSignature {
211
+ message: Uint8Array;
212
+ privateKey: Uint8Array;
194
213
  }
195
- export interface ChonkComputeIvcVkResponse {
196
- bytes: Uint8Array;
214
+ export interface EcdsaSecp256k1RecoverPublicKey {
215
+ message: Uint8Array;
216
+ r: Uint8Array;
217
+ s: Uint8Array;
218
+ v: number;
197
219
  }
198
- interface MsgpackChonkComputeIvcVkResponse {
199
- bytes: Uint8Array;
220
+ export interface EcdsaSecp256r1RecoverPublicKey {
221
+ message: Uint8Array;
222
+ r: Uint8Array;
223
+ s: Uint8Array;
224
+ v: number;
200
225
  }
201
- export interface ChonkComputeStandaloneVk {
202
- circuit: CircuitInputNoVK;
226
+ export interface EcdsaSecp256k1VerifySignature {
227
+ message: Uint8Array;
228
+ publicKey: Secp256k1Point;
229
+ r: Uint8Array;
230
+ s: Uint8Array;
231
+ v: number;
203
232
  }
204
- interface MsgpackChonkComputeStandaloneVk {
205
- circuit: MsgpackCircuitInputNoVK;
233
+ export interface Secp256r1Point {
234
+ x: Uint8Array;
235
+ y: Uint8Array;
206
236
  }
207
- export interface ChonkComputeStandaloneVkResponse {
208
- bytes: Uint8Array;
209
- fields: Fr[];
237
+ export interface EcdsaSecp256r1VerifySignature {
238
+ message: Uint8Array;
239
+ publicKey: Secp256r1Point;
240
+ r: Uint8Array;
241
+ s: Uint8Array;
242
+ v: number;
210
243
  }
211
- interface MsgpackChonkComputeStandaloneVkResponse {
212
- bytes: Uint8Array;
213
- fields: Uint8Array[];
244
+ export interface SrsInitSrs {
245
+ pointsBuf: Uint8Array;
246
+ numPoints: number;
247
+ g2Point: Uint8Array;
214
248
  }
215
- export interface ChonkLoad {
216
- circuit: CircuitInput;
249
+ export interface SrsInitGrumpkinSrs {
250
+ pointsBuf: Uint8Array;
251
+ numPoints: number;
217
252
  }
218
- interface MsgpackChonkLoad {
219
- circuit: MsgpackCircuitInput;
253
+ export interface Shutdown {
220
254
  }
221
- export interface ChonkLoadResponse {
255
+ export interface ErrorResponse {
256
+ message: string;
222
257
  }
223
- interface MsgpackChonkLoadResponse {
258
+ export interface CircuitProveResponse {
259
+ publicInputs: Uint8Array[];
260
+ proof: Uint8Array[];
261
+ vk: CircuitComputeVkResponse;
224
262
  }
225
- export interface ChonkProof {
226
- megaProof: Fr[];
227
- goblinProof: GoblinProof;
263
+ export interface CircuitInfoResponse {
264
+ numGates: number;
265
+ numGatesDyadic: number;
266
+ numAcirOpcodes: number;
267
+ gatesPerOpcode: number[];
228
268
  }
229
- interface MsgpackChonkProof {
230
- mega_proof: Uint8Array[];
231
- goblin_proof: MsgpackGoblinProof;
269
+ export interface CircuitVerifyResponse {
270
+ verified: boolean;
232
271
  }
233
- export interface ChonkProve {
272
+ export interface ChonkComputeVkResponse {
273
+ bytes: Uint8Array;
274
+ fields: Uint8Array[];
234
275
  }
235
- interface MsgpackChonkProve {
276
+ export interface ChonkStartResponse {
236
277
  }
237
- export interface ChonkProveResponse {
238
- proof: ChonkProof;
278
+ export interface ChonkLoadResponse {
239
279
  }
240
- interface MsgpackChonkProveResponse {
241
- proof: MsgpackChonkProof;
280
+ export interface ChonkAccumulateResponse {
242
281
  }
243
- export interface ChonkStart {
244
- numCircuits: number;
282
+ export interface ChonkProveResponse {
283
+ proof: ChonkProof;
245
284
  }
246
- interface MsgpackChonkStart {
247
- num_circuits: number;
285
+ export interface ChonkVerifyResponse {
286
+ valid: boolean;
248
287
  }
249
- export interface ChonkStartResponse {
288
+ export interface VkAsFieldsResponse {
289
+ fields: Uint8Array[];
250
290
  }
251
- interface MsgpackChonkStartResponse {
291
+ export interface MegaVkAsFieldsResponse {
292
+ fields: Uint8Array[];
252
293
  }
253
- export interface ChonkStats {
254
- circuit: CircuitInputNoVK;
255
- includeGatesPerOpcode: boolean;
294
+ export interface CircuitWriteSolidityVerifierResponse {
295
+ solidityCode: string;
256
296
  }
257
- interface MsgpackChonkStats {
258
- circuit: MsgpackCircuitInputNoVK;
259
- include_gates_per_opcode: boolean;
297
+ export interface ChonkCheckPrecomputedVkResponse {
298
+ valid: boolean;
299
+ actualVk: Uint8Array;
260
300
  }
261
301
  export interface ChonkStatsResponse {
262
302
  acirOpcodes: number;
263
303
  circuitSize: number;
264
304
  gatesPerOpcode: number[];
265
305
  }
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;
281
- }
282
- interface MsgpackChonkVerifyResponse {
283
- valid: boolean;
306
+ export interface Poseidon2HashResponse {
307
+ hash: Uint8Array;
284
308
  }
285
- export interface CircuitComputeVk {
286
- circuit: CircuitInputNoVK;
287
- settings: ProofSystemSettings;
309
+ export interface Poseidon2PermutationResponse {
310
+ outputs: Uint8Array[];
288
311
  }
289
- interface MsgpackCircuitComputeVk {
290
- circuit: MsgpackCircuitInputNoVK;
291
- settings: MsgpackProofSystemSettings;
312
+ export interface PedersenCommitResponse {
313
+ point: GrumpkinPoint;
292
314
  }
293
- export interface CircuitComputeVkResponse {
294
- bytes: Uint8Array;
295
- fields: Uint256T[];
315
+ export interface PedersenHashResponse {
296
316
  hash: Uint8Array;
297
317
  }
298
- interface MsgpackCircuitComputeVkResponse {
299
- bytes: Uint8Array;
300
- fields: Uint8Array[];
318
+ export interface PedersenHashBufferResponse {
301
319
  hash: Uint8Array;
302
320
  }
303
- export interface CircuitInfoResponse {
304
- numGates: number;
305
- numGatesDyadic: number;
306
- numAcirOpcodes: number;
307
- gatesPerOpcode: number[];
308
- }
309
- interface MsgpackCircuitInfoResponse {
310
- num_gates: number;
311
- num_gates_dyadic: number;
312
- num_acir_opcodes: number;
313
- gates_per_opcode: number[];
321
+ export interface Blake2sResponse {
322
+ hash: Uint8Array;
314
323
  }
315
- export interface CircuitInput {
316
- name: string;
317
- bytecode: Uint8Array;
318
- verificationKey: Uint8Array;
324
+ export interface Blake2sToFieldResponse {
325
+ field: Uint8Array;
319
326
  }
320
- interface MsgpackCircuitInput {
321
- name: string;
322
- bytecode: Uint8Array;
323
- verification_key: Uint8Array;
327
+ export interface AesEncryptResponse {
328
+ ciphertext: Uint8Array;
324
329
  }
325
- export interface CircuitInputNoVK {
326
- name: string;
327
- bytecode: Uint8Array;
330
+ export interface AesDecryptResponse {
331
+ plaintext: Uint8Array;
328
332
  }
329
- interface MsgpackCircuitInputNoVK {
330
- name: string;
331
- bytecode: Uint8Array;
333
+ export interface GrumpkinMulResponse {
334
+ point: GrumpkinPoint;
332
335
  }
333
- export interface CircuitProve {
334
- circuit: CircuitInput;
335
- witness: Uint8Array;
336
- settings: ProofSystemSettings;
336
+ export interface GrumpkinAddResponse {
337
+ point: GrumpkinPoint;
337
338
  }
338
- interface MsgpackCircuitProve {
339
- circuit: MsgpackCircuitInput;
340
- witness: Uint8Array;
341
- settings: MsgpackProofSystemSettings;
339
+ export interface GrumpkinBatchMulResponse {
340
+ points: GrumpkinPoint[];
342
341
  }
343
- export interface CircuitProveResponse {
344
- publicInputs: Uint256T[];
345
- proof: Uint256T[];
346
- vk: CircuitComputeVkResponse;
342
+ export interface GrumpkinGetRandomFrResponse {
343
+ value: Uint8Array;
347
344
  }
348
- interface MsgpackCircuitProveResponse {
349
- public_inputs: Uint8Array[];
350
- proof: Uint8Array[];
351
- vk: MsgpackCircuitComputeVkResponse;
345
+ export interface GrumpkinReduce512Response {
346
+ value: Uint8Array;
352
347
  }
353
- export interface CircuitStats {
354
- circuit: CircuitInput;
355
- includeGatesPerOpcode: boolean;
356
- settings: ProofSystemSettings;
348
+ export interface Secp256k1MulResponse {
349
+ point: Secp256k1Point;
357
350
  }
358
- interface MsgpackCircuitStats {
359
- circuit: MsgpackCircuitInput;
360
- include_gates_per_opcode: boolean;
361
- settings: MsgpackProofSystemSettings;
351
+ export interface Secp256k1GetRandomFrResponse {
352
+ value: Uint8Array;
362
353
  }
363
- export interface CircuitVerify {
364
- verificationKey: Uint8Array;
365
- publicInputs: Uint256T[];
366
- proof: Uint256T[];
367
- settings: ProofSystemSettings;
354
+ export interface Secp256k1Reduce512Response {
355
+ value: Uint8Array;
368
356
  }
369
- interface MsgpackCircuitVerify {
370
- verification_key: Uint8Array;
371
- public_inputs: Uint8Array[];
372
- proof: Uint8Array[];
373
- settings: MsgpackProofSystemSettings;
357
+ export interface Bn254FrSqrtResponse {
358
+ isSquareRoot: boolean;
359
+ value: Uint8Array;
374
360
  }
375
- export interface CircuitVerifyResponse {
376
- verified: boolean;
361
+ export interface Bn254FqSqrtResponse {
362
+ isSquareRoot: boolean;
363
+ value: Uint8Array;
377
364
  }
378
- interface MsgpackCircuitVerifyResponse {
379
- verified: boolean;
365
+ export interface Bn254G1MulResponse {
366
+ point: Bn254G1Point;
380
367
  }
381
- export interface CircuitWriteSolidityVerifier {
382
- verificationKey: Uint8Array;
383
- settings: ProofSystemSettings;
368
+ export interface Bn254G2MulResponse {
369
+ point: Bn254G2Point;
384
370
  }
385
- interface MsgpackCircuitWriteSolidityVerifier {
386
- verification_key: Uint8Array;
387
- settings: MsgpackProofSystemSettings;
371
+ export interface Bn254G1IsOnCurveResponse {
372
+ isOnCurve: boolean;
388
373
  }
389
- export interface CircuitWriteSolidityVerifierResponse {
390
- solidityCode: string;
374
+ export interface Bn254G1FromCompressedResponse {
375
+ point: Bn254G1Point;
391
376
  }
392
- interface MsgpackCircuitWriteSolidityVerifierResponse {
393
- solidity_code: string;
377
+ export interface SchnorrComputePublicKeyResponse {
378
+ publicKey: GrumpkinPoint;
394
379
  }
395
- export interface EcdsaSecp256k1ComputePublicKey {
396
- privateKey: Secp256k1Fr;
380
+ export interface SchnorrConstructSignatureResponse {
381
+ s: Uint8Array;
382
+ e: Uint8Array;
397
383
  }
398
- interface MsgpackEcdsaSecp256k1ComputePublicKey {
399
- private_key: Uint8Array;
384
+ export interface SchnorrVerifySignatureResponse {
385
+ verified: boolean;
400
386
  }
401
387
  export interface EcdsaSecp256k1ComputePublicKeyResponse {
402
388
  publicKey: Secp256k1Point;
403
389
  }
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;
390
+ export interface EcdsaSecp256r1ComputePublicKeyResponse {
391
+ publicKey: Secp256r1Point;
414
392
  }
415
393
  export interface EcdsaSecp256k1ConstructSignatureResponse {
416
394
  r: Uint8Array;
417
395
  s: Uint8Array;
418
396
  v: number;
419
397
  }
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;
398
+ export interface EcdsaSecp256r1ConstructSignatureResponse {
433
399
  r: Uint8Array;
434
400
  s: Uint8Array;
435
401
  v: number;
@@ -437,108 +403,76 @@ interface MsgpackEcdsaSecp256k1RecoverPublicKey {
437
403
  export interface EcdsaSecp256k1RecoverPublicKeyResponse {
438
404
  publicKey: Secp256k1Point;
439
405
  }
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;
406
+ export interface EcdsaSecp256r1RecoverPublicKeyResponse {
407
+ publicKey: Secp256r1Point;
456
408
  }
457
409
  export interface EcdsaSecp256k1VerifySignatureResponse {
458
410
  verified: boolean;
459
411
  }
460
- interface MsgpackEcdsaSecp256k1VerifySignatureResponse {
412
+ export interface EcdsaSecp256r1VerifySignatureResponse {
461
413
  verified: boolean;
462
414
  }
463
- export interface EcdsaSecp256r1ComputePublicKey {
464
- privateKey: Secp256r1Fr;
465
- }
466
- interface MsgpackEcdsaSecp256r1ComputePublicKey {
467
- private_key: Uint8Array;
468
- }
469
- export interface EcdsaSecp256r1ComputePublicKeyResponse {
470
- publicKey: Secp256r1Point;
471
- }
472
- interface MsgpackEcdsaSecp256r1ComputePublicKeyResponse {
473
- public_key: MsgpackSecp256r1Point;
415
+ export interface SrsInitSrsResponse {
416
+ dummy: number;
474
417
  }
475
- export interface EcdsaSecp256r1ConstructSignature {
476
- message: Uint8Array;
477
- privateKey: Secp256r1Fr;
418
+ export interface SrsInitGrumpkinSrsResponse {
419
+ dummy: number;
478
420
  }
479
- interface MsgpackEcdsaSecp256r1ConstructSignature {
480
- message: Uint8Array;
481
- private_key: Uint8Array;
421
+ export interface ShutdownResponse {
482
422
  }
483
- export interface EcdsaSecp256r1ConstructSignatureResponse {
484
- r: Uint8Array;
485
- s: Uint8Array;
486
- v: number;
423
+ interface MsgpackCircuitComputeVkResponse {
424
+ bytes: Uint8Array;
425
+ fields: Uint8Array[];
426
+ hash: Uint8Array;
487
427
  }
488
- interface MsgpackEcdsaSecp256r1ConstructSignatureResponse {
489
- r: Uint8Array;
490
- s: Uint8Array;
491
- v: number;
428
+ interface MsgpackCircuitInput {
429
+ name: string;
430
+ bytecode: Uint8Array;
431
+ verification_key: Uint8Array;
492
432
  }
493
- export interface EcdsaSecp256r1RecoverPublicKey {
494
- message: Uint8Array;
495
- r: Uint8Array;
496
- s: Uint8Array;
497
- v: number;
433
+ interface MsgpackProofSystemSettings {
434
+ ipa_accumulation: boolean;
435
+ oracle_hash_type: string;
436
+ disable_zk: boolean;
437
+ optimized_solidity_verifier: boolean;
498
438
  }
499
- interface MsgpackEcdsaSecp256r1RecoverPublicKey {
500
- message: Uint8Array;
501
- r: Uint8Array;
502
- s: Uint8Array;
503
- v: number;
439
+ interface MsgpackCircuitProve {
440
+ circuit: MsgpackCircuitInput;
441
+ witness: Uint8Array;
442
+ settings: MsgpackProofSystemSettings;
504
443
  }
505
- export interface EcdsaSecp256r1RecoverPublicKeyResponse {
506
- publicKey: Secp256r1Point;
444
+ interface MsgpackCircuitInputNoVK {
445
+ name: string;
446
+ bytecode: Uint8Array;
507
447
  }
508
- interface MsgpackEcdsaSecp256r1RecoverPublicKeyResponse {
509
- public_key: MsgpackSecp256r1Point;
448
+ interface MsgpackCircuitComputeVk {
449
+ circuit: MsgpackCircuitInputNoVK;
450
+ settings: MsgpackProofSystemSettings;
510
451
  }
511
- export interface EcdsaSecp256r1VerifySignature {
512
- message: Uint8Array;
513
- publicKey: Secp256r1Point;
514
- r: Uint8Array;
515
- s: Uint8Array;
516
- v: number;
452
+ interface MsgpackCircuitStats {
453
+ circuit: MsgpackCircuitInput;
454
+ include_gates_per_opcode: boolean;
455
+ settings: MsgpackProofSystemSettings;
517
456
  }
518
- interface MsgpackEcdsaSecp256r1VerifySignature {
519
- message: Uint8Array;
520
- public_key: MsgpackSecp256r1Point;
521
- r: Uint8Array;
522
- s: Uint8Array;
523
- v: number;
457
+ interface MsgpackCircuitVerify {
458
+ verification_key: Uint8Array;
459
+ public_inputs: Uint8Array[];
460
+ proof: Uint8Array[];
461
+ settings: MsgpackProofSystemSettings;
524
462
  }
525
- export interface EcdsaSecp256r1VerifySignatureResponse {
526
- verified: boolean;
463
+ interface MsgpackChonkComputeVk {
464
+ circuit: MsgpackCircuitInputNoVK;
527
465
  }
528
- interface MsgpackEcdsaSecp256r1VerifySignatureResponse {
529
- verified: boolean;
466
+ interface MsgpackChonkStart {
467
+ num_circuits: number;
530
468
  }
531
- export interface ErrorResponse {
532
- message: string;
469
+ interface MsgpackChonkLoad {
470
+ circuit: MsgpackCircuitInput;
533
471
  }
534
- interface MsgpackErrorResponse {
535
- message: string;
472
+ interface MsgpackChonkAccumulate {
473
+ witness: Uint8Array;
536
474
  }
537
- export interface GoblinProof {
538
- mergeProof: Fr[];
539
- eccvmProof: Fr[];
540
- ipaProof: Fr[];
541
- translatorProof: Fr[];
475
+ interface MsgpackChonkProve {
542
476
  }
543
477
  interface MsgpackGoblinProof {
544
478
  merge_proof: Uint8Array[];
@@ -546,1443 +480,603 @@ interface MsgpackGoblinProof {
546
480
  ipa_proof: Uint8Array[];
547
481
  translator_proof: Uint8Array[];
548
482
  }
549
- export interface GrumpkinAdd {
550
- pointA: GrumpkinPoint;
551
- pointB: GrumpkinPoint;
552
- }
553
- interface MsgpackGrumpkinAdd {
554
- point_a: MsgpackGrumpkinPoint;
555
- point_b: MsgpackGrumpkinPoint;
483
+ interface MsgpackChonkProof {
484
+ mega_proof: Uint8Array[];
485
+ goblin_proof: MsgpackGoblinProof;
556
486
  }
557
- export interface GrumpkinAddResponse {
558
- point: GrumpkinPoint;
487
+ interface MsgpackChonkVerify {
488
+ proof: MsgpackChonkProof;
489
+ vk: Uint8Array;
559
490
  }
560
- interface MsgpackGrumpkinAddResponse {
561
- point: MsgpackGrumpkinPoint;
491
+ interface MsgpackVkAsFields {
492
+ verification_key: Uint8Array;
562
493
  }
563
- export interface GrumpkinBatchMul {
564
- points: GrumpkinPoint[];
565
- scalar: Fq;
494
+ interface MsgpackMegaVkAsFields {
495
+ verification_key: Uint8Array;
566
496
  }
567
- interface MsgpackGrumpkinBatchMul {
568
- points: MsgpackGrumpkinPoint[];
569
- scalar: Uint8Array;
497
+ interface MsgpackCircuitWriteSolidityVerifier {
498
+ verification_key: Uint8Array;
499
+ settings: MsgpackProofSystemSettings;
570
500
  }
571
- export interface GrumpkinBatchMulResponse {
572
- points: GrumpkinPoint[];
501
+ interface MsgpackChonkCheckPrecomputedVk {
502
+ circuit: MsgpackCircuitInput;
573
503
  }
574
- interface MsgpackGrumpkinBatchMulResponse {
575
- points: MsgpackGrumpkinPoint[];
504
+ interface MsgpackChonkStats {
505
+ circuit: MsgpackCircuitInputNoVK;
506
+ include_gates_per_opcode: boolean;
576
507
  }
577
- export interface GrumpkinGetRandomFr {
578
- dummy: number;
508
+ interface MsgpackPoseidon2Hash {
509
+ inputs: Uint8Array[];
579
510
  }
580
- interface MsgpackGrumpkinGetRandomFr {
581
- dummy: number;
511
+ interface MsgpackPoseidon2Permutation {
512
+ inputs: Uint8Array[];
582
513
  }
583
- export interface GrumpkinGetRandomFrResponse {
584
- value: Fr;
514
+ interface MsgpackPedersenCommit {
515
+ inputs: Uint8Array[];
516
+ hash_index: number;
585
517
  }
586
- interface MsgpackGrumpkinGetRandomFrResponse {
587
- value: Uint8Array;
518
+ interface MsgpackPedersenHash {
519
+ inputs: Uint8Array[];
520
+ hash_index: number;
588
521
  }
589
- export interface GrumpkinMul {
590
- point: GrumpkinPoint;
591
- scalar: Fq;
522
+ interface MsgpackPedersenHashBuffer {
523
+ input: Uint8Array;
524
+ hash_index: number;
592
525
  }
593
- interface MsgpackGrumpkinMul {
594
- point: MsgpackGrumpkinPoint;
595
- scalar: Uint8Array;
526
+ interface MsgpackBlake2s {
527
+ data: Uint8Array;
596
528
  }
597
- export interface GrumpkinMulResponse {
598
- point: GrumpkinPoint;
529
+ interface MsgpackBlake2sToField {
530
+ data: Uint8Array;
599
531
  }
600
- interface MsgpackGrumpkinMulResponse {
601
- point: MsgpackGrumpkinPoint;
532
+ interface MsgpackAesEncrypt {
533
+ plaintext: Uint8Array;
534
+ iv: Uint8Array;
535
+ key: Uint8Array;
536
+ length: number;
602
537
  }
603
- export interface GrumpkinPoint {
604
- x: Fr;
605
- y: Fr;
538
+ interface MsgpackAesDecrypt {
539
+ ciphertext: Uint8Array;
540
+ iv: Uint8Array;
541
+ key: Uint8Array;
542
+ length: number;
606
543
  }
607
544
  interface MsgpackGrumpkinPoint {
608
545
  x: Uint8Array;
609
546
  y: Uint8Array;
610
547
  }
611
- export interface GrumpkinReduce512 {
612
- input: Uint8Array;
548
+ interface MsgpackGrumpkinMul {
549
+ point: MsgpackGrumpkinPoint;
550
+ scalar: Uint8Array;
551
+ }
552
+ interface MsgpackGrumpkinAdd {
553
+ point_a: MsgpackGrumpkinPoint;
554
+ point_b: MsgpackGrumpkinPoint;
555
+ }
556
+ interface MsgpackGrumpkinBatchMul {
557
+ points: MsgpackGrumpkinPoint[];
558
+ scalar: Uint8Array;
559
+ }
560
+ interface MsgpackGrumpkinGetRandomFr {
561
+ dummy: number;
613
562
  }
614
563
  interface MsgpackGrumpkinReduce512 {
615
564
  input: Uint8Array;
616
565
  }
617
- export interface GrumpkinReduce512Response {
618
- value: Fr;
566
+ interface MsgpackSecp256k1Point {
567
+ x: Uint8Array;
568
+ y: Uint8Array;
619
569
  }
620
- interface MsgpackGrumpkinReduce512Response {
621
- value: Uint8Array;
570
+ interface MsgpackSecp256k1Mul {
571
+ point: MsgpackSecp256k1Point;
572
+ scalar: Uint8Array;
622
573
  }
623
- export interface MegaVkAsFields {
624
- verificationKey: Uint8Array;
574
+ interface MsgpackSecp256k1GetRandomFr {
575
+ dummy: number;
625
576
  }
626
- interface MsgpackMegaVkAsFields {
627
- verification_key: Uint8Array;
628
- }
629
- export interface MegaVkAsFieldsResponse {
630
- fields: Fr[];
631
- }
632
- interface MsgpackMegaVkAsFieldsResponse {
633
- fields: Uint8Array[];
634
- }
635
- export interface PedersenCommit {
636
- inputs: Fr[];
637
- hashIndex: number;
638
- }
639
- interface MsgpackPedersenCommit {
640
- inputs: Uint8Array[];
641
- hash_index: number;
642
- }
643
- export interface PedersenCommitResponse {
644
- point: GrumpkinPoint;
645
- }
646
- interface MsgpackPedersenCommitResponse {
647
- point: MsgpackGrumpkinPoint;
648
- }
649
- export interface PedersenHash {
650
- inputs: Fr[];
651
- hashIndex: number;
652
- }
653
- interface MsgpackPedersenHash {
654
- inputs: Uint8Array[];
655
- hash_index: number;
656
- }
657
- export interface PedersenHashBuffer {
577
+ interface MsgpackSecp256k1Reduce512 {
658
578
  input: Uint8Array;
659
- hashIndex: number;
660
579
  }
661
- interface MsgpackPedersenHashBuffer {
580
+ interface MsgpackBn254FrSqrt {
662
581
  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
- }
698
- interface MsgpackPoseidon2HashResponse {
699
- hash: Uint8Array;
700
582
  }
701
- export interface Poseidon2Permutation {
702
- inputs: Fr[];
583
+ interface MsgpackBn254FqSqrt {
584
+ input: Uint8Array;
703
585
  }
704
- interface MsgpackPoseidon2Permutation {
705
- inputs: Uint8Array[];
586
+ interface MsgpackBn254G1Point {
587
+ x: Uint8Array;
588
+ y: Uint8Array;
706
589
  }
707
- export interface Poseidon2PermutationResponse {
708
- outputs: Fr[];
590
+ interface MsgpackBn254G1Mul {
591
+ point: MsgpackBn254G1Point;
592
+ scalar: Uint8Array;
709
593
  }
710
- interface MsgpackPoseidon2PermutationResponse {
711
- outputs: Uint8Array[];
594
+ interface MsgpackBn254G2Point {
595
+ x: [Uint8Array, Uint8Array];
596
+ y: [Uint8Array, Uint8Array];
712
597
  }
713
- export interface ProofSystemSettings {
714
- ipaAccumulation: boolean;
715
- oracleHashType: string;
716
- disableZk: boolean;
717
- optimizedSolidityVerifier: boolean;
598
+ interface MsgpackBn254G2Mul {
599
+ point: MsgpackBn254G2Point;
600
+ scalar: Uint8Array;
718
601
  }
719
- interface MsgpackProofSystemSettings {
720
- ipa_accumulation: boolean;
721
- oracle_hash_type: string;
722
- disable_zk: boolean;
723
- optimized_solidity_verifier: boolean;
602
+ interface MsgpackBn254G1IsOnCurve {
603
+ point: MsgpackBn254G1Point;
724
604
  }
725
- export interface SchnorrComputePublicKey {
726
- privateKey: Fq;
605
+ interface MsgpackBn254G1FromCompressed {
606
+ compressed: Uint8Array;
727
607
  }
728
608
  interface MsgpackSchnorrComputePublicKey {
729
609
  private_key: Uint8Array;
730
610
  }
731
- export interface SchnorrComputePublicKeyResponse {
732
- publicKey: GrumpkinPoint;
611
+ interface MsgpackSchnorrConstructSignature {
612
+ message: Uint8Array;
613
+ private_key: Uint8Array;
733
614
  }
734
- interface MsgpackSchnorrComputePublicKeyResponse {
615
+ interface MsgpackSchnorrVerifySignature {
616
+ message: Uint8Array;
735
617
  public_key: MsgpackGrumpkinPoint;
618
+ s: Uint8Array;
619
+ e: Uint8Array;
736
620
  }
737
- export interface SchnorrConstructSignature {
621
+ interface MsgpackEcdsaSecp256k1ComputePublicKey {
622
+ private_key: Uint8Array;
623
+ }
624
+ interface MsgpackEcdsaSecp256r1ComputePublicKey {
625
+ private_key: Uint8Array;
626
+ }
627
+ interface MsgpackEcdsaSecp256k1ConstructSignature {
738
628
  message: Uint8Array;
739
- privateKey: Fq;
629
+ private_key: Uint8Array;
740
630
  }
741
- interface MsgpackSchnorrConstructSignature {
631
+ interface MsgpackEcdsaSecp256r1ConstructSignature {
742
632
  message: Uint8Array;
743
633
  private_key: Uint8Array;
744
634
  }
745
- export interface SchnorrConstructSignatureResponse {
635
+ interface MsgpackEcdsaSecp256k1RecoverPublicKey {
636
+ message: Uint8Array;
637
+ r: Uint8Array;
746
638
  s: Uint8Array;
747
- e: Uint8Array;
639
+ v: number;
748
640
  }
749
- interface MsgpackSchnorrConstructSignatureResponse {
641
+ interface MsgpackEcdsaSecp256r1RecoverPublicKey {
642
+ message: Uint8Array;
643
+ r: Uint8Array;
750
644
  s: Uint8Array;
751
- e: Uint8Array;
645
+ v: number;
752
646
  }
753
- export interface SchnorrVerifySignature {
647
+ interface MsgpackEcdsaSecp256k1VerifySignature {
754
648
  message: Uint8Array;
755
- publicKey: GrumpkinPoint;
649
+ public_key: MsgpackSecp256k1Point;
650
+ r: Uint8Array;
756
651
  s: Uint8Array;
757
- e: Uint8Array;
652
+ v: number;
758
653
  }
759
- interface MsgpackSchnorrVerifySignature {
654
+ interface MsgpackSecp256r1Point {
655
+ x: Uint8Array;
656
+ y: Uint8Array;
657
+ }
658
+ interface MsgpackEcdsaSecp256r1VerifySignature {
760
659
  message: Uint8Array;
761
- public_key: MsgpackGrumpkinPoint;
660
+ public_key: MsgpackSecp256r1Point;
661
+ r: Uint8Array;
762
662
  s: Uint8Array;
763
- e: Uint8Array;
663
+ v: number;
764
664
  }
765
- export interface SchnorrVerifySignatureResponse {
766
- verified: boolean;
665
+ interface MsgpackSrsInitSrs {
666
+ points_buf: Uint8Array;
667
+ num_points: number;
668
+ g2_point: Uint8Array;
767
669
  }
768
- interface MsgpackSchnorrVerifySignatureResponse {
769
- verified: boolean;
670
+ interface MsgpackSrsInitGrumpkinSrs {
671
+ points_buf: Uint8Array;
672
+ num_points: number;
770
673
  }
771
- export interface Secp256k1GetRandomFr {
772
- dummy: number;
674
+ interface MsgpackShutdown {
773
675
  }
774
- interface MsgpackSecp256k1GetRandomFr {
775
- dummy: number;
676
+ interface MsgpackErrorResponse {
677
+ message: string;
776
678
  }
777
- export interface Secp256k1GetRandomFrResponse {
778
- value: Secp256k1Fr;
679
+ interface MsgpackCircuitProveResponse {
680
+ public_inputs: Uint8Array[];
681
+ proof: Uint8Array[];
682
+ vk: MsgpackCircuitComputeVkResponse;
779
683
  }
780
- interface MsgpackSecp256k1GetRandomFrResponse {
781
- value: Uint8Array;
684
+ interface MsgpackCircuitInfoResponse {
685
+ num_gates: number;
686
+ num_gates_dyadic: number;
687
+ num_acir_opcodes: number;
688
+ gates_per_opcode: number[];
782
689
  }
783
- export interface Secp256k1Mul {
784
- point: Secp256k1Point;
785
- scalar: Secp256k1Fr;
690
+ interface MsgpackCircuitVerifyResponse {
691
+ verified: boolean;
786
692
  }
787
- interface MsgpackSecp256k1Mul {
788
- point: MsgpackSecp256k1Point;
789
- scalar: Uint8Array;
693
+ interface MsgpackChonkComputeVkResponse {
694
+ bytes: Uint8Array;
695
+ fields: Uint8Array[];
790
696
  }
791
- export interface Secp256k1MulResponse {
792
- point: Secp256k1Point;
697
+ interface MsgpackChonkStartResponse {
793
698
  }
794
- interface MsgpackSecp256k1MulResponse {
795
- point: MsgpackSecp256k1Point;
699
+ interface MsgpackChonkLoadResponse {
796
700
  }
797
- export interface Secp256k1Point {
798
- x: Secp256k1Fq;
799
- y: Secp256k1Fq;
701
+ interface MsgpackChonkAccumulateResponse {
800
702
  }
801
- interface MsgpackSecp256k1Point {
802
- x: Uint8Array;
803
- y: Uint8Array;
703
+ interface MsgpackChonkProveResponse {
704
+ proof: MsgpackChonkProof;
804
705
  }
805
- export interface Secp256k1Reduce512 {
806
- input: Uint8Array;
706
+ interface MsgpackChonkVerifyResponse {
707
+ valid: boolean;
807
708
  }
808
- interface MsgpackSecp256k1Reduce512 {
809
- input: Uint8Array;
709
+ interface MsgpackVkAsFieldsResponse {
710
+ fields: Uint8Array[];
810
711
  }
811
- export interface Secp256k1Reduce512Response {
812
- value: Secp256k1Fr;
712
+ interface MsgpackMegaVkAsFieldsResponse {
713
+ fields: Uint8Array[];
813
714
  }
814
- interface MsgpackSecp256k1Reduce512Response {
815
- value: Uint8Array;
715
+ interface MsgpackCircuitWriteSolidityVerifierResponse {
716
+ solidity_code: string;
816
717
  }
817
- export interface Secp256r1Point {
818
- x: Secp256r1Fq;
819
- y: Secp256r1Fq;
718
+ interface MsgpackChonkCheckPrecomputedVkResponse {
719
+ valid: boolean;
720
+ actual_vk: Uint8Array;
820
721
  }
821
- interface MsgpackSecp256r1Point {
822
- x: Uint8Array;
823
- y: Uint8Array;
722
+ interface MsgpackChonkStatsResponse {
723
+ acir_opcodes: number;
724
+ circuit_size: number;
725
+ gates_per_opcode: number[];
824
726
  }
825
- export interface Shutdown {
727
+ interface MsgpackPoseidon2HashResponse {
728
+ hash: Uint8Array;
826
729
  }
827
- interface MsgpackShutdown {
730
+ interface MsgpackPoseidon2PermutationResponse {
731
+ outputs: Uint8Array[];
828
732
  }
829
- export interface ShutdownResponse {
733
+ interface MsgpackPedersenCommitResponse {
734
+ point: MsgpackGrumpkinPoint;
830
735
  }
831
- interface MsgpackShutdownResponse {
736
+ interface MsgpackPedersenHashResponse {
737
+ hash: Uint8Array;
832
738
  }
833
- export interface SrsInitGrumpkinSrs {
834
- pointsBuf: Uint8Array;
835
- numPoints: number;
739
+ interface MsgpackPedersenHashBufferResponse {
740
+ hash: Uint8Array;
836
741
  }
837
- interface MsgpackSrsInitGrumpkinSrs {
838
- points_buf: Uint8Array;
839
- num_points: number;
742
+ interface MsgpackBlake2sResponse {
743
+ hash: Uint8Array;
840
744
  }
841
- export interface SrsInitGrumpkinSrsResponse {
842
- dummy: number;
745
+ interface MsgpackBlake2sToFieldResponse {
746
+ field: Uint8Array;
843
747
  }
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;
748
+ interface MsgpackAesEncryptResponse {
749
+ ciphertext: Uint8Array;
889
750
  }
890
751
  interface MsgpackAesDecryptResponse {
891
752
  plaintext: Uint8Array;
892
753
  }
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;
907
- }
908
- interface MsgpackAesEncryptResponse {
909
- ciphertext: Uint8Array;
910
- }
911
- export interface Blake2s {
912
- data: Uint8Array;
913
- }
914
- interface MsgpackBlake2s {
915
- data: Uint8Array;
916
- }
917
- export interface Blake2sResponse {
918
- hash: Uint8Array;
919
- }
920
- interface MsgpackBlake2sResponse {
921
- hash: Uint8Array;
922
- }
923
- export interface Blake2sToField {
924
- data: Uint8Array;
925
- }
926
- interface MsgpackBlake2sToField {
927
- data: Uint8Array;
928
- }
929
- export interface Blake2sToFieldResponse {
930
- field: Fr;
931
- }
932
- interface MsgpackBlake2sToFieldResponse {
933
- field: Uint8Array;
754
+ interface MsgpackGrumpkinMulResponse {
755
+ point: MsgpackGrumpkinPoint;
934
756
  }
935
- export interface Bn254FqSqrt {
936
- input: Fq;
757
+ interface MsgpackGrumpkinAddResponse {
758
+ point: MsgpackGrumpkinPoint;
937
759
  }
938
- interface MsgpackBn254FqSqrt {
939
- input: Uint8Array;
760
+ interface MsgpackGrumpkinBatchMulResponse {
761
+ points: MsgpackGrumpkinPoint[];
940
762
  }
941
- export interface Bn254FqSqrtResponse {
942
- isSquareRoot: boolean;
943
- value: Fq;
763
+ interface MsgpackGrumpkinGetRandomFrResponse {
764
+ value: Uint8Array;
944
765
  }
945
- interface MsgpackBn254FqSqrtResponse {
946
- is_square_root: boolean;
766
+ interface MsgpackGrumpkinReduce512Response {
947
767
  value: Uint8Array;
948
768
  }
949
- export interface Bn254FrSqrt {
950
- input: Fr;
769
+ interface MsgpackSecp256k1MulResponse {
770
+ point: MsgpackSecp256k1Point;
951
771
  }
952
- interface MsgpackBn254FrSqrt {
953
- input: Uint8Array;
772
+ interface MsgpackSecp256k1GetRandomFrResponse {
773
+ value: Uint8Array;
954
774
  }
955
- export interface Bn254FrSqrtResponse {
956
- isSquareRoot: boolean;
957
- value: Fr;
775
+ interface MsgpackSecp256k1Reduce512Response {
776
+ value: Uint8Array;
958
777
  }
959
778
  interface MsgpackBn254FrSqrtResponse {
960
779
  is_square_root: boolean;
961
780
  value: Uint8Array;
962
781
  }
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;
782
+ interface MsgpackBn254FqSqrtResponse {
783
+ is_square_root: boolean;
784
+ value: Uint8Array;
997
785
  }
998
786
  interface MsgpackBn254G1MulResponse {
999
787
  point: MsgpackBn254G1Point;
1000
788
  }
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
789
  interface MsgpackBn254G2MulResponse {
1021
790
  point: MsgpackBn254G2Point;
1022
791
  }
1023
- export interface Bn254G2Point {
1024
- x: Field2;
1025
- y: Field2;
1026
- }
1027
- interface MsgpackBn254G2Point {
1028
- x: [Uint8Array, Uint8Array];
1029
- y: [Uint8Array, Uint8Array];
1030
- }
1031
- export interface ChonkAccumulate {
1032
- witness: Uint8Array;
1033
- }
1034
- interface MsgpackChonkAccumulate {
1035
- witness: Uint8Array;
1036
- }
1037
- export interface ChonkAccumulateResponse {
1038
- }
1039
- interface MsgpackChonkAccumulateResponse {
1040
- }
1041
- export interface ChonkCheckPrecomputedVk {
1042
- circuit: CircuitInput;
1043
- }
1044
- interface MsgpackChonkCheckPrecomputedVk {
1045
- circuit: MsgpackCircuitInput;
1046
- }
1047
- export interface ChonkCheckPrecomputedVkResponse {
1048
- valid: boolean;
1049
- actualVk: Uint8Array;
1050
- }
1051
- interface MsgpackChonkCheckPrecomputedVkResponse {
1052
- valid: boolean;
1053
- actual_vk: Uint8Array;
1054
- }
1055
- export interface ChonkComputeIvcVk {
1056
- circuit: CircuitInputNoVK;
1057
- }
1058
- interface MsgpackChonkComputeIvcVk {
1059
- circuit: MsgpackCircuitInputNoVK;
1060
- }
1061
- export interface ChonkComputeIvcVkResponse {
1062
- bytes: Uint8Array;
1063
- }
1064
- interface MsgpackChonkComputeIvcVkResponse {
1065
- bytes: Uint8Array;
792
+ interface MsgpackBn254G1IsOnCurveResponse {
793
+ is_on_curve: boolean;
1066
794
  }
1067
- export interface ChonkComputeStandaloneVk {
1068
- circuit: CircuitInputNoVK;
795
+ interface MsgpackBn254G1FromCompressedResponse {
796
+ point: MsgpackBn254G1Point;
1069
797
  }
1070
- interface MsgpackChonkComputeStandaloneVk {
1071
- circuit: MsgpackCircuitInputNoVK;
798
+ interface MsgpackSchnorrComputePublicKeyResponse {
799
+ public_key: MsgpackGrumpkinPoint;
1072
800
  }
1073
- export interface ChonkComputeStandaloneVkResponse {
1074
- bytes: Uint8Array;
1075
- fields: Fr[];
801
+ interface MsgpackSchnorrConstructSignatureResponse {
802
+ s: Uint8Array;
803
+ e: Uint8Array;
1076
804
  }
1077
- interface MsgpackChonkComputeStandaloneVkResponse {
1078
- bytes: Uint8Array;
1079
- fields: Uint8Array[];
805
+ interface MsgpackSchnorrVerifySignatureResponse {
806
+ verified: boolean;
1080
807
  }
1081
- export interface ChonkLoad {
1082
- circuit: CircuitInput;
808
+ interface MsgpackEcdsaSecp256k1ComputePublicKeyResponse {
809
+ public_key: MsgpackSecp256k1Point;
1083
810
  }
1084
- interface MsgpackChonkLoad {
1085
- circuit: MsgpackCircuitInput;
811
+ interface MsgpackEcdsaSecp256r1ComputePublicKeyResponse {
812
+ public_key: MsgpackSecp256r1Point;
1086
813
  }
1087
- export interface ChonkLoadResponse {
814
+ interface MsgpackEcdsaSecp256k1ConstructSignatureResponse {
815
+ r: Uint8Array;
816
+ s: Uint8Array;
817
+ v: number;
1088
818
  }
1089
- interface MsgpackChonkLoadResponse {
819
+ interface MsgpackEcdsaSecp256r1ConstructSignatureResponse {
820
+ r: Uint8Array;
821
+ s: Uint8Array;
822
+ v: number;
1090
823
  }
1091
- export interface ChonkProof {
1092
- megaProof: Fr[];
1093
- goblinProof: GoblinProof;
824
+ interface MsgpackEcdsaSecp256k1RecoverPublicKeyResponse {
825
+ public_key: MsgpackSecp256k1Point;
1094
826
  }
1095
- interface MsgpackChonkProof {
1096
- mega_proof: Uint8Array[];
1097
- goblin_proof: MsgpackGoblinProof;
827
+ interface MsgpackEcdsaSecp256r1RecoverPublicKeyResponse {
828
+ public_key: MsgpackSecp256r1Point;
1098
829
  }
1099
- export interface ChonkProve {
830
+ interface MsgpackEcdsaSecp256k1VerifySignatureResponse {
831
+ verified: boolean;
1100
832
  }
1101
- interface MsgpackChonkProve {
833
+ interface MsgpackEcdsaSecp256r1VerifySignatureResponse {
834
+ verified: boolean;
1102
835
  }
1103
- export interface ChonkProveResponse {
1104
- proof: ChonkProof;
836
+ interface MsgpackSrsInitSrsResponse {
837
+ dummy: number;
1105
838
  }
1106
- interface MsgpackChonkProveResponse {
1107
- proof: MsgpackChonkProof;
839
+ interface MsgpackSrsInitGrumpkinSrsResponse {
840
+ dummy: number;
1108
841
  }
1109
- export interface ChonkStart {
1110
- numCircuits: number;
842
+ interface MsgpackShutdownResponse {
1111
843
  }
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;
844
+ export declare function toCircuitComputeVkResponse(o: MsgpackCircuitComputeVkResponse): CircuitComputeVkResponse;
845
+ export declare function toCircuitInput(o: MsgpackCircuitInput): CircuitInput;
846
+ export declare function toProofSystemSettings(o: MsgpackProofSystemSettings): ProofSystemSettings;
847
+ export declare function toCircuitProve(o: MsgpackCircuitProve): CircuitProve;
848
+ export declare function toCircuitInputNoVK(o: MsgpackCircuitInputNoVK): CircuitInputNoVK;
849
+ export declare function toCircuitComputeVk(o: MsgpackCircuitComputeVk): CircuitComputeVk;
850
+ export declare function toCircuitStats(o: MsgpackCircuitStats): CircuitStats;
851
+ export declare function toCircuitVerify(o: MsgpackCircuitVerify): CircuitVerify;
852
+ export declare function toChonkComputeVk(o: MsgpackChonkComputeVk): ChonkComputeVk;
853
+ export declare function toChonkStart(o: MsgpackChonkStart): ChonkStart;
854
+ export declare function toChonkLoad(o: MsgpackChonkLoad): ChonkLoad;
855
+ export declare function toChonkAccumulate(o: MsgpackChonkAccumulate): ChonkAccumulate;
856
+ export declare function toChonkProve(o: MsgpackChonkProve): ChonkProve;
857
+ export declare function toGoblinProof(o: MsgpackGoblinProof): GoblinProof;
858
+ export declare function toChonkProof(o: MsgpackChonkProof): ChonkProof;
859
+ export declare function toChonkVerify(o: MsgpackChonkVerify): ChonkVerify;
860
+ export declare function toVkAsFields(o: MsgpackVkAsFields): VkAsFields;
861
+ export declare function toMegaVkAsFields(o: MsgpackMegaVkAsFields): MegaVkAsFields;
862
+ export declare function toCircuitWriteSolidityVerifier(o: MsgpackCircuitWriteSolidityVerifier): CircuitWriteSolidityVerifier;
863
+ export declare function toChonkCheckPrecomputedVk(o: MsgpackChonkCheckPrecomputedVk): ChonkCheckPrecomputedVk;
864
+ export declare function toChonkStats(o: MsgpackChonkStats): ChonkStats;
865
+ export declare function toPoseidon2Hash(o: MsgpackPoseidon2Hash): Poseidon2Hash;
866
+ export declare function toPoseidon2Permutation(o: MsgpackPoseidon2Permutation): Poseidon2Permutation;
867
+ export declare function toPedersenCommit(o: MsgpackPedersenCommit): PedersenCommit;
868
+ export declare function toPedersenHash(o: MsgpackPedersenHash): PedersenHash;
869
+ export declare function toPedersenHashBuffer(o: MsgpackPedersenHashBuffer): PedersenHashBuffer;
1749
870
  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
871
  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;
872
+ export declare function toAesEncrypt(o: MsgpackAesEncrypt): AesEncrypt;
873
+ export declare function toAesDecrypt(o: MsgpackAesDecrypt): AesDecrypt;
874
+ export declare function toGrumpkinPoint(o: MsgpackGrumpkinPoint): GrumpkinPoint;
875
+ export declare function toGrumpkinMul(o: MsgpackGrumpkinMul): GrumpkinMul;
876
+ export declare function toGrumpkinAdd(o: MsgpackGrumpkinAdd): GrumpkinAdd;
877
+ export declare function toGrumpkinBatchMul(o: MsgpackGrumpkinBatchMul): GrumpkinBatchMul;
878
+ export declare function toGrumpkinGetRandomFr(o: MsgpackGrumpkinGetRandomFr): GrumpkinGetRandomFr;
879
+ export declare function toGrumpkinReduce512(o: MsgpackGrumpkinReduce512): GrumpkinReduce512;
880
+ export declare function toSecp256k1Point(o: MsgpackSecp256k1Point): Secp256k1Point;
881
+ export declare function toSecp256k1Mul(o: MsgpackSecp256k1Mul): Secp256k1Mul;
882
+ export declare function toSecp256k1GetRandomFr(o: MsgpackSecp256k1GetRandomFr): Secp256k1GetRandomFr;
883
+ export declare function toSecp256k1Reduce512(o: MsgpackSecp256k1Reduce512): Secp256k1Reduce512;
1761
884
  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;
885
+ export declare function toBn254FqSqrt(o: MsgpackBn254FqSqrt): Bn254FqSqrt;
1777
886
  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;
887
+ export declare function toBn254G1Mul(o: MsgpackBn254G1Mul): Bn254G1Mul;
1783
888
  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;
1799
- 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;
889
+ export declare function toBn254G2Mul(o: MsgpackBn254G2Mul): Bn254G2Mul;
890
+ export declare function toBn254G1IsOnCurve(o: MsgpackBn254G1IsOnCurve): Bn254G1IsOnCurve;
891
+ export declare function toBn254G1FromCompressed(o: MsgpackBn254G1FromCompressed): Bn254G1FromCompressed;
892
+ export declare function toSchnorrComputePublicKey(o: MsgpackSchnorrComputePublicKey): SchnorrComputePublicKey;
893
+ export declare function toSchnorrConstructSignature(o: MsgpackSchnorrConstructSignature): SchnorrConstructSignature;
894
+ export declare function toSchnorrVerifySignature(o: MsgpackSchnorrVerifySignature): SchnorrVerifySignature;
895
+ export declare function toEcdsaSecp256k1ComputePublicKey(o: MsgpackEcdsaSecp256k1ComputePublicKey): EcdsaSecp256k1ComputePublicKey;
896
+ export declare function toEcdsaSecp256r1ComputePublicKey(o: MsgpackEcdsaSecp256r1ComputePublicKey): EcdsaSecp256r1ComputePublicKey;
897
+ export declare function toEcdsaSecp256k1ConstructSignature(o: MsgpackEcdsaSecp256k1ConstructSignature): EcdsaSecp256k1ConstructSignature;
898
+ export declare function toEcdsaSecp256r1ConstructSignature(o: MsgpackEcdsaSecp256r1ConstructSignature): EcdsaSecp256r1ConstructSignature;
899
+ export declare function toEcdsaSecp256k1RecoverPublicKey(o: MsgpackEcdsaSecp256k1RecoverPublicKey): EcdsaSecp256k1RecoverPublicKey;
900
+ export declare function toEcdsaSecp256r1RecoverPublicKey(o: MsgpackEcdsaSecp256r1RecoverPublicKey): EcdsaSecp256r1RecoverPublicKey;
901
+ export declare function toEcdsaSecp256k1VerifySignature(o: MsgpackEcdsaSecp256k1VerifySignature): EcdsaSecp256k1VerifySignature;
902
+ export declare function toSecp256r1Point(o: MsgpackSecp256r1Point): Secp256r1Point;
903
+ export declare function toEcdsaSecp256r1VerifySignature(o: MsgpackEcdsaSecp256r1VerifySignature): EcdsaSecp256r1VerifySignature;
904
+ export declare function toSrsInitSrs(o: MsgpackSrsInitSrs): SrsInitSrs;
905
+ export declare function toSrsInitGrumpkinSrs(o: MsgpackSrsInitGrumpkinSrs): SrsInitGrumpkinSrs;
906
+ export declare function toShutdown(o: MsgpackShutdown): Shutdown;
907
+ export declare function toErrorResponse(o: MsgpackErrorResponse): ErrorResponse;
908
+ export declare function toCircuitProveResponse(o: MsgpackCircuitProveResponse): CircuitProveResponse;
909
+ export declare function toCircuitInfoResponse(o: MsgpackCircuitInfoResponse): CircuitInfoResponse;
910
+ export declare function toCircuitVerifyResponse(o: MsgpackCircuitVerifyResponse): CircuitVerifyResponse;
911
+ export declare function toChonkComputeVkResponse(o: MsgpackChonkComputeVkResponse): ChonkComputeVkResponse;
912
+ export declare function toChonkStartResponse(o: MsgpackChonkStartResponse): ChonkStartResponse;
1803
913
  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;
914
+ export declare function toChonkAccumulateResponse(o: MsgpackChonkAccumulateResponse): ChonkAccumulateResponse;
1809
915
  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
916
  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;
917
+ export declare function toVkAsFieldsResponse(o: MsgpackVkAsFieldsResponse): VkAsFieldsResponse;
918
+ export declare function toMegaVkAsFieldsResponse(o: MsgpackMegaVkAsFieldsResponse): MegaVkAsFieldsResponse;
919
+ export declare function toCircuitWriteSolidityVerifierResponse(o: MsgpackCircuitWriteSolidityVerifierResponse): CircuitWriteSolidityVerifierResponse;
920
+ export declare function toChonkCheckPrecomputedVkResponse(o: MsgpackChonkCheckPrecomputedVkResponse): ChonkCheckPrecomputedVkResponse;
921
+ export declare function toChonkStatsResponse(o: MsgpackChonkStatsResponse): ChonkStatsResponse;
922
+ export declare function toPoseidon2HashResponse(o: MsgpackPoseidon2HashResponse): Poseidon2HashResponse;
923
+ export declare function toPoseidon2PermutationResponse(o: MsgpackPoseidon2PermutationResponse): Poseidon2PermutationResponse;
924
+ export declare function toPedersenCommitResponse(o: MsgpackPedersenCommitResponse): PedersenCommitResponse;
925
+ export declare function toPedersenHashResponse(o: MsgpackPedersenHashResponse): PedersenHashResponse;
926
+ export declare function toPedersenHashBufferResponse(o: MsgpackPedersenHashBufferResponse): PedersenHashBufferResponse;
927
+ export declare function toBlake2sResponse(o: MsgpackBlake2sResponse): Blake2sResponse;
928
+ export declare function toBlake2sToFieldResponse(o: MsgpackBlake2sToFieldResponse): Blake2sToFieldResponse;
929
+ export declare function toAesEncryptResponse(o: MsgpackAesEncryptResponse): AesEncryptResponse;
930
+ export declare function toAesDecryptResponse(o: MsgpackAesDecryptResponse): AesDecryptResponse;
931
+ export declare function toGrumpkinMulResponse(o: MsgpackGrumpkinMulResponse): GrumpkinMulResponse;
932
+ export declare function toGrumpkinAddResponse(o: MsgpackGrumpkinAddResponse): GrumpkinAddResponse;
933
+ export declare function toGrumpkinBatchMulResponse(o: MsgpackGrumpkinBatchMulResponse): GrumpkinBatchMulResponse;
934
+ export declare function toGrumpkinGetRandomFrResponse(o: MsgpackGrumpkinGetRandomFrResponse): GrumpkinGetRandomFrResponse;
935
+ export declare function toGrumpkinReduce512Response(o: MsgpackGrumpkinReduce512Response): GrumpkinReduce512Response;
936
+ export declare function toSecp256k1MulResponse(o: MsgpackSecp256k1MulResponse): Secp256k1MulResponse;
937
+ export declare function toSecp256k1GetRandomFrResponse(o: MsgpackSecp256k1GetRandomFrResponse): Secp256k1GetRandomFrResponse;
938
+ export declare function toSecp256k1Reduce512Response(o: MsgpackSecp256k1Reduce512Response): Secp256k1Reduce512Response;
939
+ export declare function toBn254FrSqrtResponse(o: MsgpackBn254FrSqrtResponse): Bn254FrSqrtResponse;
940
+ export declare function toBn254FqSqrtResponse(o: MsgpackBn254FqSqrtResponse): Bn254FqSqrtResponse;
941
+ export declare function toBn254G1MulResponse(o: MsgpackBn254G1MulResponse): Bn254G1MulResponse;
942
+ export declare function toBn254G2MulResponse(o: MsgpackBn254G2MulResponse): Bn254G2MulResponse;
943
+ export declare function toBn254G1IsOnCurveResponse(o: MsgpackBn254G1IsOnCurveResponse): Bn254G1IsOnCurveResponse;
944
+ export declare function toBn254G1FromCompressedResponse(o: MsgpackBn254G1FromCompressedResponse): Bn254G1FromCompressedResponse;
945
+ export declare function toSchnorrComputePublicKeyResponse(o: MsgpackSchnorrComputePublicKeyResponse): SchnorrComputePublicKeyResponse;
946
+ export declare function toSchnorrConstructSignatureResponse(o: MsgpackSchnorrConstructSignatureResponse): SchnorrConstructSignatureResponse;
947
+ export declare function toSchnorrVerifySignatureResponse(o: MsgpackSchnorrVerifySignatureResponse): SchnorrVerifySignatureResponse;
948
+ export declare function toEcdsaSecp256k1ComputePublicKeyResponse(o: MsgpackEcdsaSecp256k1ComputePublicKeyResponse): EcdsaSecp256k1ComputePublicKeyResponse;
949
+ export declare function toEcdsaSecp256r1ComputePublicKeyResponse(o: MsgpackEcdsaSecp256r1ComputePublicKeyResponse): EcdsaSecp256r1ComputePublicKeyResponse;
950
+ export declare function toEcdsaSecp256k1ConstructSignatureResponse(o: MsgpackEcdsaSecp256k1ConstructSignatureResponse): EcdsaSecp256k1ConstructSignatureResponse;
951
+ export declare function toEcdsaSecp256r1ConstructSignatureResponse(o: MsgpackEcdsaSecp256r1ConstructSignatureResponse): EcdsaSecp256r1ConstructSignatureResponse;
952
+ export declare function toEcdsaSecp256k1RecoverPublicKeyResponse(o: MsgpackEcdsaSecp256k1RecoverPublicKeyResponse): EcdsaSecp256k1RecoverPublicKeyResponse;
953
+ export declare function toEcdsaSecp256r1RecoverPublicKeyResponse(o: MsgpackEcdsaSecp256r1RecoverPublicKeyResponse): EcdsaSecp256r1RecoverPublicKeyResponse;
954
+ export declare function toEcdsaSecp256k1VerifySignatureResponse(o: MsgpackEcdsaSecp256k1VerifySignatureResponse): EcdsaSecp256k1VerifySignatureResponse;
955
+ export declare function toEcdsaSecp256r1VerifySignatureResponse(o: MsgpackEcdsaSecp256r1VerifySignatureResponse): EcdsaSecp256r1VerifySignatureResponse;
956
+ export declare function toSrsInitSrsResponse(o: MsgpackSrsInitSrsResponse): SrsInitSrsResponse;
957
+ export declare function toSrsInitGrumpkinSrsResponse(o: MsgpackSrsInitGrumpkinSrsResponse): SrsInitGrumpkinSrsResponse;
958
+ export declare function toShutdownResponse(o: MsgpackShutdownResponse): ShutdownResponse;
1826
959
  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
960
  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;
961
+ export declare function fromProofSystemSettings(o: ProofSystemSettings): MsgpackProofSystemSettings;
1834
962
  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;
963
+ export declare function fromCircuitInputNoVK(o: CircuitInputNoVK): MsgpackCircuitInputNoVK;
964
+ export declare function fromCircuitComputeVk(o: CircuitComputeVk): MsgpackCircuitComputeVk;
1838
965
  export declare function fromCircuitStats(o: CircuitStats): MsgpackCircuitStats;
1839
- export declare function toCircuitVerify(o: MsgpackCircuitVerify): CircuitVerify;
1840
966
  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;
967
+ export declare function fromChonkComputeVk(o: ChonkComputeVk): MsgpackChonkComputeVk;
968
+ export declare function fromChonkStart(o: ChonkStart): MsgpackChonkStart;
969
+ export declare function fromChonkLoad(o: ChonkLoad): MsgpackChonkLoad;
970
+ export declare function fromChonkAccumulate(o: ChonkAccumulate): MsgpackChonkAccumulate;
971
+ export declare function fromChonkProve(o: ChonkProve): MsgpackChonkProve;
972
+ export declare function fromGoblinProof(o: GoblinProof): MsgpackGoblinProof;
973
+ export declare function fromChonkProof(o: ChonkProof): MsgpackChonkProof;
974
+ export declare function fromChonkVerify(o: ChonkVerify): MsgpackChonkVerify;
975
+ export declare function fromVkAsFields(o: VkAsFields): MsgpackVkAsFields;
976
+ export declare function fromMegaVkAsFields(o: MegaVkAsFields): MsgpackMegaVkAsFields;
1844
977
  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;
978
+ export declare function fromChonkCheckPrecomputedVk(o: ChonkCheckPrecomputedVk): MsgpackChonkCheckPrecomputedVk;
979
+ export declare function fromChonkStats(o: ChonkStats): MsgpackChonkStats;
980
+ export declare function fromPoseidon2Hash(o: Poseidon2Hash): MsgpackPoseidon2Hash;
981
+ export declare function fromPoseidon2Permutation(o: Poseidon2Permutation): MsgpackPoseidon2Permutation;
982
+ export declare function fromPedersenCommit(o: PedersenCommit): MsgpackPedersenCommit;
983
+ export declare function fromPedersenHash(o: PedersenHash): MsgpackPedersenHash;
984
+ export declare function fromPedersenHashBuffer(o: PedersenHashBuffer): MsgpackPedersenHashBuffer;
985
+ export declare function fromBlake2s(o: Blake2s): MsgpackBlake2s;
986
+ export declare function fromBlake2sToField(o: Blake2sToField): MsgpackBlake2sToField;
987
+ export declare function fromAesEncrypt(o: AesEncrypt): MsgpackAesEncrypt;
988
+ export declare function fromAesDecrypt(o: AesDecrypt): MsgpackAesDecrypt;
989
+ export declare function fromGrumpkinPoint(o: GrumpkinPoint): MsgpackGrumpkinPoint;
990
+ export declare function fromGrumpkinMul(o: GrumpkinMul): MsgpackGrumpkinMul;
991
+ export declare function fromGrumpkinAdd(o: GrumpkinAdd): MsgpackGrumpkinAdd;
992
+ export declare function fromGrumpkinBatchMul(o: GrumpkinBatchMul): MsgpackGrumpkinBatchMul;
993
+ export declare function fromGrumpkinGetRandomFr(o: GrumpkinGetRandomFr): MsgpackGrumpkinGetRandomFr;
994
+ export declare function fromGrumpkinReduce512(o: GrumpkinReduce512): MsgpackGrumpkinReduce512;
995
+ export declare function fromSecp256k1Point(o: Secp256k1Point): MsgpackSecp256k1Point;
996
+ export declare function fromSecp256k1Mul(o: Secp256k1Mul): MsgpackSecp256k1Mul;
997
+ export declare function fromSecp256k1GetRandomFr(o: Secp256k1GetRandomFr): MsgpackSecp256k1GetRandomFr;
998
+ export declare function fromSecp256k1Reduce512(o: Secp256k1Reduce512): MsgpackSecp256k1Reduce512;
999
+ export declare function fromBn254FrSqrt(o: Bn254FrSqrt): MsgpackBn254FrSqrt;
1000
+ export declare function fromBn254FqSqrt(o: Bn254FqSqrt): MsgpackBn254FqSqrt;
1001
+ export declare function fromBn254G1Point(o: Bn254G1Point): MsgpackBn254G1Point;
1002
+ export declare function fromBn254G1Mul(o: Bn254G1Mul): MsgpackBn254G1Mul;
1003
+ export declare function fromBn254G2Point(o: Bn254G2Point): MsgpackBn254G2Point;
1004
+ export declare function fromBn254G2Mul(o: Bn254G2Mul): MsgpackBn254G2Mul;
1005
+ export declare function fromBn254G1IsOnCurve(o: Bn254G1IsOnCurve): MsgpackBn254G1IsOnCurve;
1006
+ export declare function fromBn254G1FromCompressed(o: Bn254G1FromCompressed): MsgpackBn254G1FromCompressed;
1007
+ export declare function fromSchnorrComputePublicKey(o: SchnorrComputePublicKey): MsgpackSchnorrComputePublicKey;
1008
+ export declare function fromSchnorrConstructSignature(o: SchnorrConstructSignature): MsgpackSchnorrConstructSignature;
1009
+ export declare function fromSchnorrVerifySignature(o: SchnorrVerifySignature): MsgpackSchnorrVerifySignature;
1848
1010
  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
1011
  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;
1012
+ export declare function fromEcdsaSecp256k1ConstructSignature(o: EcdsaSecp256k1ConstructSignature): MsgpackEcdsaSecp256k1ConstructSignature;
1868
1013
  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;
1014
+ export declare function fromEcdsaSecp256k1RecoverPublicKey(o: EcdsaSecp256k1RecoverPublicKey): MsgpackEcdsaSecp256k1RecoverPublicKey;
1872
1015
  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;
1016
+ export declare function fromEcdsaSecp256k1VerifySignature(o: EcdsaSecp256k1VerifySignature): MsgpackEcdsaSecp256k1VerifySignature;
1017
+ export declare function fromSecp256r1Point(o: Secp256r1Point): MsgpackSecp256r1Point;
1876
1018
  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;
1019
+ export declare function fromSrsInitSrs(o: SrsInitSrs): MsgpackSrsInitSrs;
1020
+ export declare function fromSrsInitGrumpkinSrs(o: SrsInitGrumpkinSrs): MsgpackSrsInitGrumpkinSrs;
1021
+ export declare function fromShutdown(o: Shutdown): MsgpackShutdown;
1880
1022
  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;
1023
+ export declare function fromCircuitProveResponse(o: CircuitProveResponse): MsgpackCircuitProveResponse;
1024
+ export declare function fromCircuitInfoResponse(o: CircuitInfoResponse): MsgpackCircuitInfoResponse;
1025
+ export declare function fromCircuitVerifyResponse(o: CircuitVerifyResponse): MsgpackCircuitVerifyResponse;
1026
+ export declare function fromChonkComputeVkResponse(o: ChonkComputeVkResponse): MsgpackChonkComputeVkResponse;
1027
+ export declare function fromChonkStartResponse(o: ChonkStartResponse): MsgpackChonkStartResponse;
1028
+ export declare function fromChonkLoadResponse(o: ChonkLoadResponse): MsgpackChonkLoadResponse;
1029
+ export declare function fromChonkAccumulateResponse(o: ChonkAccumulateResponse): MsgpackChonkAccumulateResponse;
1030
+ export declare function fromChonkProveResponse(o: ChonkProveResponse): MsgpackChonkProveResponse;
1031
+ export declare function fromChonkVerifyResponse(o: ChonkVerifyResponse): MsgpackChonkVerifyResponse;
1032
+ export declare function fromVkAsFieldsResponse(o: VkAsFieldsResponse): MsgpackVkAsFieldsResponse;
1033
+ export declare function fromMegaVkAsFieldsResponse(o: MegaVkAsFieldsResponse): MsgpackMegaVkAsFieldsResponse;
1034
+ export declare function fromCircuitWriteSolidityVerifierResponse(o: CircuitWriteSolidityVerifierResponse): MsgpackCircuitWriteSolidityVerifierResponse;
1035
+ export declare function fromChonkCheckPrecomputedVkResponse(o: ChonkCheckPrecomputedVkResponse): MsgpackChonkCheckPrecomputedVkResponse;
1036
+ export declare function fromChonkStatsResponse(o: ChonkStatsResponse): MsgpackChonkStatsResponse;
1037
+ export declare function fromPoseidon2HashResponse(o: Poseidon2HashResponse): MsgpackPoseidon2HashResponse;
1038
+ export declare function fromPoseidon2PermutationResponse(o: Poseidon2PermutationResponse): MsgpackPoseidon2PermutationResponse;
1039
+ export declare function fromPedersenCommitResponse(o: PedersenCommitResponse): MsgpackPedersenCommitResponse;
1040
+ export declare function fromPedersenHashResponse(o: PedersenHashResponse): MsgpackPedersenHashResponse;
1041
+ export declare function fromPedersenHashBufferResponse(o: PedersenHashBufferResponse): MsgpackPedersenHashBufferResponse;
1042
+ export declare function fromBlake2sResponse(o: Blake2sResponse): MsgpackBlake2sResponse;
1043
+ export declare function fromBlake2sToFieldResponse(o: Blake2sToFieldResponse): MsgpackBlake2sToFieldResponse;
1044
+ export declare function fromAesEncryptResponse(o: AesEncryptResponse): MsgpackAesEncryptResponse;
1045
+ export declare function fromAesDecryptResponse(o: AesDecryptResponse): MsgpackAesDecryptResponse;
1046
+ export declare function fromGrumpkinMulResponse(o: GrumpkinMulResponse): MsgpackGrumpkinMulResponse;
1886
1047
  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
1048
  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
1049
  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
1050
  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;
1051
+ export declare function fromSecp256k1MulResponse(o: Secp256k1MulResponse): MsgpackSecp256k1MulResponse;
1052
+ export declare function fromSecp256k1GetRandomFrResponse(o: Secp256k1GetRandomFrResponse): MsgpackSecp256k1GetRandomFrResponse;
1053
+ export declare function fromSecp256k1Reduce512Response(o: Secp256k1Reduce512Response): MsgpackSecp256k1Reduce512Response;
1054
+ export declare function fromBn254FrSqrtResponse(o: Bn254FrSqrtResponse): MsgpackBn254FrSqrtResponse;
1055
+ export declare function fromBn254FqSqrtResponse(o: Bn254FqSqrtResponse): MsgpackBn254FqSqrtResponse;
1056
+ export declare function fromBn254G1MulResponse(o: Bn254G1MulResponse): MsgpackBn254G1MulResponse;
1057
+ export declare function fromBn254G2MulResponse(o: Bn254G2MulResponse): MsgpackBn254G2MulResponse;
1058
+ export declare function fromBn254G1IsOnCurveResponse(o: Bn254G1IsOnCurveResponse): MsgpackBn254G1IsOnCurveResponse;
1059
+ export declare function fromBn254G1FromCompressedResponse(o: Bn254G1FromCompressedResponse): MsgpackBn254G1FromCompressedResponse;
1938
1060
  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
1061
  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
1062
  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;
1063
+ export declare function fromEcdsaSecp256k1ComputePublicKeyResponse(o: EcdsaSecp256k1ComputePublicKeyResponse): MsgpackEcdsaSecp256k1ComputePublicKeyResponse;
1064
+ export declare function fromEcdsaSecp256r1ComputePublicKeyResponse(o: EcdsaSecp256r1ComputePublicKeyResponse): MsgpackEcdsaSecp256r1ComputePublicKeyResponse;
1065
+ export declare function fromEcdsaSecp256k1ConstructSignatureResponse(o: EcdsaSecp256k1ConstructSignatureResponse): MsgpackEcdsaSecp256k1ConstructSignatureResponse;
1066
+ export declare function fromEcdsaSecp256r1ConstructSignatureResponse(o: EcdsaSecp256r1ConstructSignatureResponse): MsgpackEcdsaSecp256r1ConstructSignatureResponse;
1067
+ export declare function fromEcdsaSecp256k1RecoverPublicKeyResponse(o: EcdsaSecp256k1RecoverPublicKeyResponse): MsgpackEcdsaSecp256k1RecoverPublicKeyResponse;
1068
+ export declare function fromEcdsaSecp256r1RecoverPublicKeyResponse(o: EcdsaSecp256r1RecoverPublicKeyResponse): MsgpackEcdsaSecp256r1RecoverPublicKeyResponse;
1069
+ export declare function fromEcdsaSecp256k1VerifySignatureResponse(o: EcdsaSecp256k1VerifySignatureResponse): MsgpackEcdsaSecp256k1VerifySignatureResponse;
1070
+ export declare function fromEcdsaSecp256r1VerifySignatureResponse(o: EcdsaSecp256r1VerifySignatureResponse): MsgpackEcdsaSecp256r1VerifySignatureResponse;
1974
1071
  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;
1072
+ export declare function fromSrsInitGrumpkinSrsResponse(o: SrsInitGrumpkinSrsResponse): MsgpackSrsInitGrumpkinSrsResponse;
1073
+ export declare function fromShutdownResponse(o: ShutdownResponse): MsgpackShutdownResponse;
1979
1074
  export interface BbApiBase {
1980
1075
  circuitProve(command: CircuitProve): Promise<CircuitProveResponse>;
1981
1076
  circuitComputeVk(command: CircuitComputeVk): Promise<CircuitComputeVkResponse>;
1982
1077
  circuitStats(command: CircuitStats): Promise<CircuitInfoResponse>;
1983
1078
  circuitVerify(command: CircuitVerify): Promise<CircuitVerifyResponse>;
1984
- chonkComputeStandaloneVk(command: ChonkComputeStandaloneVk): Promise<ChonkComputeStandaloneVkResponse>;
1985
- chonkComputeIvcVk(command: ChonkComputeIvcVk): Promise<ChonkComputeIvcVkResponse>;
1079
+ chonkComputeVk(command: ChonkComputeVk): Promise<ChonkComputeVkResponse>;
1986
1080
  chonkStart(command: ChonkStart): Promise<ChonkStartResponse>;
1987
1081
  chonkLoad(command: ChonkLoad): Promise<ChonkLoadResponse>;
1988
1082
  chonkAccumulate(command: ChonkAccumulate): Promise<ChonkAccumulateResponse>;
@@ -1995,7 +1089,6 @@ export interface BbApiBase {
1995
1089
  chonkStats(command: ChonkStats): Promise<ChonkStatsResponse>;
1996
1090
  poseidon2Hash(command: Poseidon2Hash): Promise<Poseidon2HashResponse>;
1997
1091
  poseidon2Permutation(command: Poseidon2Permutation): Promise<Poseidon2PermutationResponse>;
1998
- poseidon2HashAccumulate(command: Poseidon2HashAccumulate): Promise<Poseidon2HashAccumulateResponse>;
1999
1092
  pedersenCommit(command: PedersenCommit): Promise<PedersenCommitResponse>;
2000
1093
  pedersenHash(command: PedersenHash): Promise<PedersenHashResponse>;
2001
1094
  pedersenHashBuffer(command: PedersenHashBuffer): Promise<PedersenHashBufferResponse>;
@@ -2034,4 +1127,4 @@ export interface BbApiBase {
2034
1127
  destroy(): Promise<void>;
2035
1128
  }
2036
1129
  export {};
2037
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpX3R5cGVzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY2JpbmQvZ2VuZXJhdGVkL2FwaV90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxNQUFNLE1BQU0sTUFBTSxHQUFHLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBQzlDLE1BQU0sTUFBTSxFQUFFLEdBQUcsVUFBVSxDQUFDO0FBQzVCLE1BQU0sTUFBTSxFQUFFLEdBQUcsVUFBVSxDQUFDO0FBQzVCLE1BQU0sTUFBTSxXQUFXLEdBQUcsVUFBVSxDQUFDO0FBQ3JDLE1BQU0sTUFBTSxXQUFXLEdBQUcsVUFBVSxDQUFDO0FBQ3JDLE1BQU0sTUFBTSxXQUFXLEdBQUcsVUFBVSxDQUFDO0FBQ3JDLE1BQU0sTUFBTSxXQUFXLEdBQUcsVUFBVSxDQUFDO0FBQ3JDLE1BQU0sTUFBTSxRQUFRLEdBQUcsVUFBVSxDQUFDO0FBR2xDLE1BQU0sV0FBVyxVQUFVO0lBQ3pCLFVBQVUsRUFBRSxVQUFVLENBQUM7SUFDdkIsRUFBRSxFQUFFLFVBQVUsQ0FBQztJQUNmLEdBQUcsRUFBRSxVQUFVLENBQUM7SUFDaEIsTUFBTSxFQUFFLE1BQU0sQ0FBQztDQUNoQjtBQUVELFVBQVUsaUJBQWlCO0lBQ3pCLFVBQVUsRUFBRSxVQUFVLENBQUM7SUFDdkIsRUFBRSxFQUFFLFVBQVUsQ0FBQztJQUNmLEdBQUcsRUFBRSxVQUFVLENBQUM7SUFDaEIsTUFBTSxFQUFFLE1BQU0sQ0FBQztDQUNoQjtBQUVELE1BQU0sV0FBVyxrQkFBa0I7SUFDakMsU0FBUyxFQUFFLFVBQVUsQ0FBQztDQUN2QjtBQUVELFVBQVUseUJBQXlCO0lBQ2pDLFNBQVMsRUFBRSxVQUFVLENBQUM7Q0FDdkI7QUFFRCxNQUFNLFdBQVcsVUFBVTtJQUN6QixTQUFTLEVBQUUsVUFBVSxDQUFDO0lBQ3RCLEVBQUUsRUFBRSxVQUFVLENBQUM7SUFDZixHQUFHLEVBQUUsVUFBVSxDQUFDO0lB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
1130
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpX3R5cGVzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY2JpbmQvZ2VuZXJhdGVkL2FwaV90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLE1BQU0sTUFBTSxHQUFHLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBRzlDLE1BQU0sV0FBVyx3QkFBd0I7SUFDdkMsS0FBSyxFQUFFLFVBQVUsQ0FBQztJQUNsQixNQUFNLEVBQUUsVUFBVSxFQUFFLENBQUM7SUFDckIsSUFBSSxFQUFFLFVBQVUsQ0FBQztDQUNsQjtBQUVELE1BQU0sV0FBVyxZQUFZO0lBQzNCLElBQUksRUFBRSxNQUFNLENBQUM7SUFDYixRQUFRLEVBQUUsVUFBVSxDQUFDO0lBQ3JCLGVBQWUsRUFBRSxVQUFVLENBQUM7Q0FDN0I7QUFFRCxNQUFNLFdBQVcsbUJBQW1CO0lBQ2xDLGVBQWUsRUFBRSxPQUFPLENBQUM7SUFDekIsY0FBYyxFQUFFLE1BQU0sQ0FBQztJQUN2QixTQUFTLEVBQUUsT0FBTyxDQUFDO0lBQ25CLHlCQUF5QixFQUFFLE9BQU8sQ0FBQztDQUNwQztBQUVELE1BQU0sV0FBVyxZQUFZO0lBQzNCLE9BQU8sRUFBRSxZQUFZLENBQUM7SUFDdEIsT0FBTyxFQUFFLFVBQVUsQ0FBQztJQUNwQixRQUFRLEVBQUUsbUJBQW1CLENBQUM7Q0FDL0I7QUFFRCxNQUFNLFdBQVcsZ0JBQWdCO0lBQy9CLElBQUksRUFBRSxNQUFNLENBQUM7SUFDYixRQUFRLEVBQUUsVUFBVSxDQUFDO0NBQ3RCO0FBRUQsTUFBTSxXQUFXLGdCQUFnQjtJQUMvQixPQUFPLEVBQUUsZ0JBQWdCLENBQUM7SUFDMUIsUUFBUSxFQUFFLG1CQUFtQixDQUFDO0NBQy9CO0FBRUQsTUFBTSxXQUFXLFlBQVk7SUFDM0IsT0FBTyxFQUFFLFlBQVksQ0FBQztJQUN0QixxQkFBcUIsRUFBRSxPQUFPLENBQUM7SUFDL0IsUUFBUSxFQUFFLG1C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