@inco/js 0.3.2-alpha.0 → 0.3.2-alpha.1

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 (376) hide show
  1. package/dist/cjs/advancedacl/session-key.d.ts +29 -0
  2. package/dist/cjs/advancedacl/session-key.js +167 -27
  3. package/dist/cjs/attestedcompute/attested-compute.d.ts +2 -0
  4. package/dist/cjs/attestedcompute/attested-compute.js +17 -9
  5. package/dist/cjs/attestedcompute/types.d.ts +3 -2
  6. package/dist/cjs/attesteddecrypt/attested-decrypt.d.ts +2 -0
  7. package/dist/cjs/attesteddecrypt/attested-decrypt.js +27 -11
  8. package/dist/cjs/attesteddecrypt/types.d.ts +3 -2
  9. package/dist/cjs/attestedreveal/attested-reveal.d.ts +21 -0
  10. package/dist/cjs/attestedreveal/attested-reveal.js +66 -0
  11. package/dist/cjs/attestedreveal/index.d.ts +1 -0
  12. package/dist/cjs/{fhevm → attestedreveal}/index.js +2 -2
  13. package/dist/cjs/attestedreveal/types.d.ts +7 -0
  14. package/dist/cjs/attestedreveal/types.js +16 -0
  15. package/dist/cjs/generated/abis/addTwo.d.ts +18 -0
  16. package/dist/cjs/generated/abis/addTwo.js +9 -1
  17. package/dist/cjs/generated/abis/lightning-preview.d.ts +48 -0
  18. package/dist/cjs/generated/abis/lightning-preview.js +29 -1
  19. package/dist/cjs/generated/abis/lightning.d.ts +34 -0
  20. package/dist/cjs/generated/abis/lightning.js +22 -1
  21. package/dist/cjs/generated/es/inco/kms/lite/v1/kms_service_pb.d.ts +63 -5
  22. package/dist/cjs/generated/es/inco/kms/lite/v1/kms_service_pb.js +17 -7
  23. package/dist/cjs/generated/lightning.d.ts +31 -10
  24. package/dist/cjs/generated/lightning.js +33 -11
  25. package/dist/cjs/lite/attested-compute.d.ts +5 -3
  26. package/dist/cjs/lite/attested-compute.js +5 -1
  27. package/dist/cjs/lite/attested-decrypt.d.ts +2 -0
  28. package/dist/cjs/lite/attested-decrypt.js +5 -1
  29. package/dist/cjs/lite/index.d.ts +4 -1
  30. package/dist/cjs/lite/index.js +3 -1
  31. package/dist/cjs/lite/lightning.d.ts +32 -0
  32. package/dist/cjs/lite/lightning.js +52 -44
  33. package/dist/cjs/lite/reencrypt.d.ts +0 -1
  34. package/dist/cjs/lite/reencrypt.js +8 -20
  35. package/dist/cjs/local/local-node.js +35 -3
  36. package/dist/cjs/reencryption/types.d.ts +1 -2
  37. package/dist/esm/advancedacl/session-key.d.ts +29 -0
  38. package/dist/esm/advancedacl/session-key.js +160 -22
  39. package/dist/esm/attestedcompute/attested-compute.d.ts +2 -0
  40. package/dist/esm/attestedcompute/attested-compute.js +14 -7
  41. package/dist/esm/attestedcompute/types.d.ts +3 -2
  42. package/dist/esm/attesteddecrypt/attested-decrypt.d.ts +2 -0
  43. package/dist/esm/attesteddecrypt/attested-decrypt.js +24 -9
  44. package/dist/esm/attesteddecrypt/types.d.ts +3 -2
  45. package/dist/esm/attestedreveal/attested-reveal.d.ts +21 -0
  46. package/dist/esm/attestedreveal/attested-reveal.js +63 -0
  47. package/dist/esm/attestedreveal/index.d.ts +1 -0
  48. package/dist/esm/attestedreveal/index.js +2 -0
  49. package/dist/esm/attestedreveal/types.d.ts +7 -0
  50. package/dist/esm/attestedreveal/types.js +12 -0
  51. package/dist/esm/generated/abis/addTwo.d.ts +18 -0
  52. package/dist/esm/generated/abis/addTwo.js +9 -1
  53. package/dist/esm/generated/abis/lightning-preview.d.ts +48 -0
  54. package/dist/esm/generated/abis/lightning-preview.js +29 -1
  55. package/dist/esm/generated/abis/lightning.d.ts +34 -0
  56. package/dist/esm/generated/abis/lightning.js +22 -1
  57. package/dist/esm/generated/es/inco/kms/lite/v1/kms_service_pb.d.ts +63 -5
  58. package/dist/esm/generated/es/inco/kms/lite/v1/kms_service_pb.js +16 -6
  59. package/dist/esm/generated/lightning.d.ts +31 -10
  60. package/dist/esm/generated/lightning.js +33 -11
  61. package/dist/esm/lite/attested-compute.d.ts +5 -3
  62. package/dist/esm/lite/attested-compute.js +3 -2
  63. package/dist/esm/lite/attested-decrypt.d.ts +2 -0
  64. package/dist/esm/lite/attested-decrypt.js +3 -2
  65. package/dist/esm/lite/index.d.ts +4 -1
  66. package/dist/esm/lite/index.js +3 -1
  67. package/dist/esm/lite/lightning.d.ts +32 -0
  68. package/dist/esm/lite/lightning.js +53 -45
  69. package/dist/esm/lite/reencrypt.d.ts +0 -1
  70. package/dist/esm/lite/reencrypt.js +9 -20
  71. package/dist/esm/local/local-node.js +35 -3
  72. package/dist/esm/reencryption/types.d.ts +1 -2
  73. package/dist/types/advancedacl/session-key.d.ts +29 -0
  74. package/dist/types/attestedcompute/attested-compute.d.ts +2 -0
  75. package/dist/types/attestedcompute/types.d.ts +3 -2
  76. package/dist/types/attesteddecrypt/attested-decrypt.d.ts +2 -0
  77. package/dist/types/attesteddecrypt/types.d.ts +3 -2
  78. package/dist/types/attestedreveal/attested-reveal.d.ts +21 -0
  79. package/dist/types/attestedreveal/index.d.ts +1 -0
  80. package/dist/types/attestedreveal/types.d.ts +7 -0
  81. package/dist/types/generated/abis/addTwo.d.ts +18 -0
  82. package/dist/types/generated/abis/lightning-preview.d.ts +48 -0
  83. package/dist/types/generated/abis/lightning.d.ts +34 -0
  84. package/dist/types/generated/es/inco/kms/lite/v1/kms_service_pb.d.ts +63 -5
  85. package/dist/types/generated/lightning.d.ts +31 -10
  86. package/dist/types/lite/attested-compute.d.ts +5 -3
  87. package/dist/types/lite/attested-decrypt.d.ts +2 -0
  88. package/dist/types/lite/index.d.ts +4 -1
  89. package/dist/types/lite/lightning.d.ts +32 -0
  90. package/dist/types/lite/reencrypt.d.ts +0 -1
  91. package/dist/types/reencryption/types.d.ts +1 -2
  92. package/package.json +28 -17
  93. package/dist/cjs/fhevm/fhe-environment.d.ts +0 -9
  94. package/dist/cjs/fhevm/fhe-environment.js +0 -11
  95. package/dist/cjs/fhevm/fhevm.d.ts +0 -41
  96. package/dist/cjs/fhevm/fhevm.js +0 -145
  97. package/dist/cjs/fhevm/index.d.ts +0 -1
  98. package/dist/cjs/fhevm/reencrypt.d.ts +0 -20
  99. package/dist/cjs/fhevm/reencrypt.js +0 -127
  100. package/dist/cjs/fhevm/tfhe.d.ts +0 -74
  101. package/dist/cjs/fhevm/tfhe.js +0 -336
  102. package/dist/cjs/fhevm/types.d.ts +0 -3
  103. package/dist/cjs/fhevm/types.js +0 -29
  104. package/dist/cjs/generated/abis/inco-fhevm.d.ts +0 -874
  105. package/dist/cjs/generated/abis/inco-fhevm.js +0 -681
  106. package/dist/cjs/generated/es/cosmos/msg/v1/msg_pb.d.ts +0 -29
  107. package/dist/cjs/generated/es/cosmos/msg/v1/msg_pb.js +0 -36
  108. package/dist/cjs/generated/es/google/api/annotations_pb.d.ts +0 -13
  109. package/dist/cjs/generated/es/google/api/annotations_pb.js +0 -30
  110. package/dist/cjs/generated/es/google/api/http_pb.d.ts +0 -440
  111. package/dist/cjs/generated/es/google/api/http_pb.js +0 -37
  112. package/dist/cjs/generated/es/inco/fhe/v1/events_pb.d.ts +0 -79
  113. package/dist/cjs/generated/es/inco/fhe/v1/events_pb.js +0 -24
  114. package/dist/cjs/generated/es/inco/fhe/v1/genesis_pb.d.ts +0 -252
  115. package/dist/cjs/generated/es/inco/fhe/v1/genesis_pb.js +0 -49
  116. package/dist/cjs/generated/es/inco/fhe/v1/query_pb.d.ts +0 -569
  117. package/dist/cjs/generated/es/inco/fhe/v1/query_pb.js +0 -111
  118. package/dist/cjs/generated/es/inco/fhe/v1/tx_pb.d.ts +0 -494
  119. package/dist/cjs/generated/es/inco/fhe/v1/tx_pb.js +0 -111
  120. package/dist/cjs/generated/es/inco/preflight/v1/genesis_pb.d.ts +0 -56
  121. package/dist/cjs/generated/es/inco/preflight/v1/genesis_pb.js +0 -23
  122. package/dist/cjs/generated/es/inco/preflight/v1/query_pb.d.ts +0 -100
  123. package/dist/cjs/generated/es/inco/preflight/v1/query_pb.js +0 -41
  124. package/dist/cjs/generated/es/inco/preflight/v1/tx_pb.d.ts +0 -193
  125. package/dist/cjs/generated/es/inco/preflight/v1/tx_pb.js +0 -51
  126. package/dist/cjs/generated/es/inco/preflight/v1/types_pb.d.ts +0 -144
  127. package/dist/cjs/generated/es/inco/preflight/v1/types_pb.js +0 -37
  128. package/dist/cjs/generated/fhe-environments.d.ts +0 -14
  129. package/dist/cjs/generated/fhe-environments.js +0 -18
  130. package/dist/cjs/generated/ts/amino/amino.d.ts +0 -1
  131. package/dist/cjs/generated/ts/amino/amino.js +0 -11
  132. package/dist/cjs/generated/ts/cometbft/abci/v1/types.d.ts +0 -597
  133. package/dist/cjs/generated/ts/cometbft/abci/v1/types.js +0 -5079
  134. package/dist/cjs/generated/ts/cometbft/crypto/v1/keys.d.ts +0 -27
  135. package/dist/cjs/generated/ts/cometbft/crypto/v1/keys.js +0 -108
  136. package/dist/cjs/generated/ts/cometbft/crypto/v1/proof.d.ts +0 -60
  137. package/dist/cjs/generated/ts/cometbft/crypto/v1/proof.js +0 -433
  138. package/dist/cjs/generated/ts/cometbft/types/v1/params.d.ts +0 -179
  139. package/dist/cjs/generated/ts/cometbft/types/v1/params.js +0 -716
  140. package/dist/cjs/generated/ts/cometbft/types/v1/validator.d.ts +0 -61
  141. package/dist/cjs/generated/ts/cometbft/types/v1/validator.js +0 -358
  142. package/dist/cjs/generated/ts/cosmos/app/v1alpha1/module.d.ts +0 -104
  143. package/dist/cjs/generated/ts/cosmos/app/v1alpha1/module.js +0 -221
  144. package/dist/cjs/generated/ts/cosmos/msg/v1/msg.d.ts +0 -1
  145. package/dist/cjs/generated/ts/cosmos/msg/v1/msg.js +0 -11
  146. package/dist/cjs/generated/ts/cosmos_proto/cosmos.d.ts +0 -80
  147. package/dist/cjs/generated/ts/cosmos_proto/cosmos.js +0 -216
  148. package/dist/cjs/generated/ts/gogoproto/gogo.d.ts +0 -1
  149. package/dist/cjs/generated/ts/gogoproto/gogo.js +0 -11
  150. package/dist/cjs/generated/ts/google/api/annotations.d.ts +0 -1
  151. package/dist/cjs/generated/ts/google/api/annotations.js +0 -11
  152. package/dist/cjs/generated/ts/google/api/http.d.ts +0 -371
  153. package/dist/cjs/generated/ts/google/api/http.js +0 -356
  154. package/dist/cjs/generated/ts/google/protobuf/descriptor.d.ts +0 -1228
  155. package/dist/cjs/generated/ts/google/protobuf/descriptor.js +0 -5108
  156. package/dist/cjs/generated/ts/google/protobuf/duration.d.ts +0 -99
  157. package/dist/cjs/generated/ts/google/protobuf/duration.js +0 -93
  158. package/dist/cjs/generated/ts/google/protobuf/timestamp.d.ts +0 -128
  159. package/dist/cjs/generated/ts/google/protobuf/timestamp.js +0 -93
  160. package/dist/cjs/generated/ts/google/protobuf/wrappers.d.ts +0 -111
  161. package/dist/cjs/generated/ts/google/protobuf/wrappers.js +0 -509
  162. package/dist/cjs/generated/ts/inco/abci/v1/types.d.ts +0 -35
  163. package/dist/cjs/generated/ts/inco/abci/v1/types.js +0 -73
  164. package/dist/cjs/generated/ts/inco/fhe/module/v1/module.d.ts +0 -31
  165. package/dist/cjs/generated/ts/inco/fhe/module/v1/module.js +0 -66
  166. package/dist/cjs/generated/ts/inco/fhe/v1/events.d.ts +0 -66
  167. package/dist/cjs/generated/ts/inco/fhe/v1/events.js +0 -190
  168. package/dist/cjs/generated/ts/inco/fhe/v1/genesis.d.ts +0 -117
  169. package/dist/cjs/generated/ts/inco/fhe/v1/genesis.js +0 -714
  170. package/dist/cjs/generated/ts/inco/fhe/v1/query.d.ts +0 -366
  171. package/dist/cjs/generated/ts/inco/fhe/v1/query.js +0 -1394
  172. package/dist/cjs/generated/ts/inco/fhe/v1/tx.d.ts +0 -409
  173. package/dist/cjs/generated/ts/inco/fhe/v1/tx.js +0 -1236
  174. package/dist/cjs/generated/ts/inco/fhe/v1/types.d.ts +0 -225
  175. package/dist/cjs/generated/ts/inco/fhe/v1/types.js +0 -990
  176. package/dist/cjs/generated/ts/inco/originchain/module/v1/module.d.ts +0 -30
  177. package/dist/cjs/generated/ts/inco/originchain/module/v1/module.js +0 -66
  178. package/dist/cjs/generated/ts/inco/originchain/v1/abci.d.ts +0 -80
  179. package/dist/cjs/generated/ts/inco/originchain/v1/abci.js +0 -331
  180. package/dist/cjs/generated/ts/inco/originchain/v1/events.d.ts +0 -60
  181. package/dist/cjs/generated/ts/inco/originchain/v1/events.js +0 -216
  182. package/dist/cjs/generated/ts/inco/originchain/v1/genesis.d.ts +0 -28
  183. package/dist/cjs/generated/ts/inco/originchain/v1/genesis.js +0 -69
  184. package/dist/cjs/generated/ts/inco/originchain/v1/query.d.ts +0 -116
  185. package/dist/cjs/generated/ts/inco/originchain/v1/query.js +0 -280
  186. package/dist/cjs/generated/ts/inco/originchain/v1/tx.d.ts +0 -89
  187. package/dist/cjs/generated/ts/inco/originchain/v1/tx.js +0 -140
  188. package/dist/cjs/generated/ts/inco/originchain/v1/types.d.ts +0 -58
  189. package/dist/cjs/generated/ts/inco/originchain/v1/types.js +0 -203
  190. package/dist/cjs/generated/ts/inco/preflight/module/v1/module.d.ts +0 -31
  191. package/dist/cjs/generated/ts/inco/preflight/module/v1/module.js +0 -66
  192. package/dist/cjs/generated/ts/inco/preflight/v1/genesis.d.ts +0 -41
  193. package/dist/cjs/generated/ts/inco/preflight/v1/genesis.js +0 -185
  194. package/dist/cjs/generated/ts/inco/preflight/v1/query.d.ts +0 -93
  195. package/dist/cjs/generated/ts/inco/preflight/v1/query.js +0 -259
  196. package/dist/cjs/generated/ts/inco/preflight/v1/tx.d.ts +0 -187
  197. package/dist/cjs/generated/ts/inco/preflight/v1/tx.js +0 -448
  198. package/dist/cjs/generated/ts/inco/preflight/v1/types.d.ts +0 -84
  199. package/dist/cjs/generated/ts/inco/preflight/v1/types.js +0 -398
  200. package/dist/cjs/l1/client.d.ts +0 -35
  201. package/dist/cjs/l1/client.js +0 -97
  202. package/dist/cjs/l1/index.d.ts +0 -2
  203. package/dist/cjs/l1/index.js +0 -19
  204. package/dist/cjs/l1/preflight.d.ts +0 -20
  205. package/dist/cjs/l1/preflight.js +0 -42
  206. package/dist/esm/fhevm/fhe-environment.d.ts +0 -9
  207. package/dist/esm/fhevm/fhe-environment.js +0 -8
  208. package/dist/esm/fhevm/fhevm.d.ts +0 -41
  209. package/dist/esm/fhevm/fhevm.js +0 -139
  210. package/dist/esm/fhevm/index.d.ts +0 -1
  211. package/dist/esm/fhevm/index.js +0 -2
  212. package/dist/esm/fhevm/reencrypt.d.ts +0 -20
  213. package/dist/esm/fhevm/reencrypt.js +0 -123
  214. package/dist/esm/fhevm/tfhe.d.ts +0 -74
  215. package/dist/esm/fhevm/tfhe.js +0 -328
  216. package/dist/esm/fhevm/types.d.ts +0 -3
  217. package/dist/esm/fhevm/types.js +0 -26
  218. package/dist/esm/generated/abis/inco-fhevm.d.ts +0 -874
  219. package/dist/esm/generated/abis/inco-fhevm.js +0 -678
  220. package/dist/esm/generated/es/cosmos/msg/v1/msg_pb.d.ts +0 -29
  221. package/dist/esm/generated/es/cosmos/msg/v1/msg_pb.js +0 -33
  222. package/dist/esm/generated/es/google/api/annotations_pb.d.ts +0 -13
  223. package/dist/esm/generated/es/google/api/annotations_pb.js +0 -27
  224. package/dist/esm/generated/es/google/api/http_pb.d.ts +0 -440
  225. package/dist/esm/generated/es/google/api/http_pb.js +0 -34
  226. package/dist/esm/generated/es/inco/fhe/v1/events_pb.d.ts +0 -79
  227. package/dist/esm/generated/es/inco/fhe/v1/events_pb.js +0 -21
  228. package/dist/esm/generated/es/inco/fhe/v1/genesis_pb.d.ts +0 -252
  229. package/dist/esm/generated/es/inco/fhe/v1/genesis_pb.js +0 -46
  230. package/dist/esm/generated/es/inco/fhe/v1/query_pb.d.ts +0 -569
  231. package/dist/esm/generated/es/inco/fhe/v1/query_pb.js +0 -108
  232. package/dist/esm/generated/es/inco/fhe/v1/tx_pb.d.ts +0 -494
  233. package/dist/esm/generated/es/inco/fhe/v1/tx_pb.js +0 -108
  234. package/dist/esm/generated/es/inco/preflight/v1/genesis_pb.d.ts +0 -56
  235. package/dist/esm/generated/es/inco/preflight/v1/genesis_pb.js +0 -20
  236. package/dist/esm/generated/es/inco/preflight/v1/query_pb.d.ts +0 -100
  237. package/dist/esm/generated/es/inco/preflight/v1/query_pb.js +0 -38
  238. package/dist/esm/generated/es/inco/preflight/v1/tx_pb.d.ts +0 -193
  239. package/dist/esm/generated/es/inco/preflight/v1/tx_pb.js +0 -48
  240. package/dist/esm/generated/es/inco/preflight/v1/types_pb.d.ts +0 -144
  241. package/dist/esm/generated/es/inco/preflight/v1/types_pb.js +0 -34
  242. package/dist/esm/generated/fhe-environments.d.ts +0 -14
  243. package/dist/esm/generated/fhe-environments.js +0 -15
  244. package/dist/esm/generated/ts/amino/amino.d.ts +0 -1
  245. package/dist/esm/generated/ts/amino/amino.js +0 -8
  246. package/dist/esm/generated/ts/cometbft/abci/v1/types.d.ts +0 -597
  247. package/dist/esm/generated/ts/cometbft/abci/v1/types.js +0 -5063
  248. package/dist/esm/generated/ts/cometbft/crypto/v1/keys.d.ts +0 -27
  249. package/dist/esm/generated/ts/cometbft/crypto/v1/keys.js +0 -105
  250. package/dist/esm/generated/ts/cometbft/crypto/v1/proof.d.ts +0 -60
  251. package/dist/esm/generated/ts/cometbft/crypto/v1/proof.js +0 -430
  252. package/dist/esm/generated/ts/cometbft/types/v1/params.d.ts +0 -179
  253. package/dist/esm/generated/ts/cometbft/types/v1/params.js +0 -713
  254. package/dist/esm/generated/ts/cometbft/types/v1/validator.d.ts +0 -61
  255. package/dist/esm/generated/ts/cometbft/types/v1/validator.js +0 -353
  256. package/dist/esm/generated/ts/cosmos/app/v1alpha1/module.d.ts +0 -104
  257. package/dist/esm/generated/ts/cosmos/app/v1alpha1/module.js +0 -218
  258. package/dist/esm/generated/ts/cosmos/msg/v1/msg.d.ts +0 -1
  259. package/dist/esm/generated/ts/cosmos/msg/v1/msg.js +0 -8
  260. package/dist/esm/generated/ts/cosmos_proto/cosmos.d.ts +0 -80
  261. package/dist/esm/generated/ts/cosmos_proto/cosmos.js +0 -211
  262. package/dist/esm/generated/ts/gogoproto/gogo.d.ts +0 -1
  263. package/dist/esm/generated/ts/gogoproto/gogo.js +0 -8
  264. package/dist/esm/generated/ts/google/api/annotations.d.ts +0 -1
  265. package/dist/esm/generated/ts/google/api/annotations.js +0 -8
  266. package/dist/esm/generated/ts/google/api/http.d.ts +0 -371
  267. package/dist/esm/generated/ts/google/api/http.js +0 -353
  268. package/dist/esm/generated/ts/google/protobuf/descriptor.d.ts +0 -1228
  269. package/dist/esm/generated/ts/google/protobuf/descriptor.js +0 -5070
  270. package/dist/esm/generated/ts/google/protobuf/duration.d.ts +0 -99
  271. package/dist/esm/generated/ts/google/protobuf/duration.js +0 -90
  272. package/dist/esm/generated/ts/google/protobuf/timestamp.d.ts +0 -128
  273. package/dist/esm/generated/ts/google/protobuf/timestamp.js +0 -90
  274. package/dist/esm/generated/ts/google/protobuf/wrappers.d.ts +0 -111
  275. package/dist/esm/generated/ts/google/protobuf/wrappers.js +0 -506
  276. package/dist/esm/generated/ts/inco/abci/v1/types.d.ts +0 -35
  277. package/dist/esm/generated/ts/inco/abci/v1/types.js +0 -70
  278. package/dist/esm/generated/ts/inco/fhe/module/v1/module.d.ts +0 -31
  279. package/dist/esm/generated/ts/inco/fhe/module/v1/module.js +0 -63
  280. package/dist/esm/generated/ts/inco/fhe/v1/events.d.ts +0 -66
  281. package/dist/esm/generated/ts/inco/fhe/v1/events.js +0 -187
  282. package/dist/esm/generated/ts/inco/fhe/v1/genesis.d.ts +0 -117
  283. package/dist/esm/generated/ts/inco/fhe/v1/genesis.js +0 -711
  284. package/dist/esm/generated/ts/inco/fhe/v1/query.d.ts +0 -366
  285. package/dist/esm/generated/ts/inco/fhe/v1/query.js +0 -1391
  286. package/dist/esm/generated/ts/inco/fhe/v1/tx.d.ts +0 -409
  287. package/dist/esm/generated/ts/inco/fhe/v1/tx.js +0 -1233
  288. package/dist/esm/generated/ts/inco/fhe/v1/types.d.ts +0 -225
  289. package/dist/esm/generated/ts/inco/fhe/v1/types.js +0 -985
  290. package/dist/esm/generated/ts/inco/originchain/module/v1/module.d.ts +0 -30
  291. package/dist/esm/generated/ts/inco/originchain/module/v1/module.js +0 -63
  292. package/dist/esm/generated/ts/inco/originchain/v1/abci.d.ts +0 -80
  293. package/dist/esm/generated/ts/inco/originchain/v1/abci.js +0 -328
  294. package/dist/esm/generated/ts/inco/originchain/v1/events.d.ts +0 -60
  295. package/dist/esm/generated/ts/inco/originchain/v1/events.js +0 -213
  296. package/dist/esm/generated/ts/inco/originchain/v1/genesis.d.ts +0 -28
  297. package/dist/esm/generated/ts/inco/originchain/v1/genesis.js +0 -66
  298. package/dist/esm/generated/ts/inco/originchain/v1/query.d.ts +0 -116
  299. package/dist/esm/generated/ts/inco/originchain/v1/query.js +0 -277
  300. package/dist/esm/generated/ts/inco/originchain/v1/tx.d.ts +0 -89
  301. package/dist/esm/generated/ts/inco/originchain/v1/tx.js +0 -137
  302. package/dist/esm/generated/ts/inco/originchain/v1/types.d.ts +0 -58
  303. package/dist/esm/generated/ts/inco/originchain/v1/types.js +0 -200
  304. package/dist/esm/generated/ts/inco/preflight/module/v1/module.d.ts +0 -31
  305. package/dist/esm/generated/ts/inco/preflight/module/v1/module.js +0 -63
  306. package/dist/esm/generated/ts/inco/preflight/v1/genesis.d.ts +0 -41
  307. package/dist/esm/generated/ts/inco/preflight/v1/genesis.js +0 -182
  308. package/dist/esm/generated/ts/inco/preflight/v1/query.d.ts +0 -93
  309. package/dist/esm/generated/ts/inco/preflight/v1/query.js +0 -256
  310. package/dist/esm/generated/ts/inco/preflight/v1/tx.d.ts +0 -187
  311. package/dist/esm/generated/ts/inco/preflight/v1/tx.js +0 -445
  312. package/dist/esm/generated/ts/inco/preflight/v1/types.d.ts +0 -84
  313. package/dist/esm/generated/ts/inco/preflight/v1/types.js +0 -395
  314. package/dist/esm/l1/client.d.ts +0 -35
  315. package/dist/esm/l1/client.js +0 -93
  316. package/dist/esm/l1/index.d.ts +0 -2
  317. package/dist/esm/l1/index.js +0 -3
  318. package/dist/esm/l1/preflight.d.ts +0 -20
  319. package/dist/esm/l1/preflight.js +0 -39
  320. package/dist/types/fhevm/fhe-environment.d.ts +0 -9
  321. package/dist/types/fhevm/fhevm.d.ts +0 -41
  322. package/dist/types/fhevm/index.d.ts +0 -1
  323. package/dist/types/fhevm/reencrypt.d.ts +0 -20
  324. package/dist/types/fhevm/tfhe.d.ts +0 -74
  325. package/dist/types/fhevm/types.d.ts +0 -3
  326. package/dist/types/generated/abis/inco-fhevm.d.ts +0 -874
  327. package/dist/types/generated/es/cosmos/msg/v1/msg_pb.d.ts +0 -29
  328. package/dist/types/generated/es/google/api/annotations_pb.d.ts +0 -13
  329. package/dist/types/generated/es/google/api/http_pb.d.ts +0 -440
  330. package/dist/types/generated/es/inco/fhe/v1/events_pb.d.ts +0 -79
  331. package/dist/types/generated/es/inco/fhe/v1/genesis_pb.d.ts +0 -252
  332. package/dist/types/generated/es/inco/fhe/v1/query_pb.d.ts +0 -569
  333. package/dist/types/generated/es/inco/fhe/v1/tx_pb.d.ts +0 -494
  334. package/dist/types/generated/es/inco/preflight/v1/genesis_pb.d.ts +0 -56
  335. package/dist/types/generated/es/inco/preflight/v1/query_pb.d.ts +0 -100
  336. package/dist/types/generated/es/inco/preflight/v1/tx_pb.d.ts +0 -193
  337. package/dist/types/generated/es/inco/preflight/v1/types_pb.d.ts +0 -144
  338. package/dist/types/generated/fhe-environments.d.ts +0 -14
  339. package/dist/types/generated/ts/amino/amino.d.ts +0 -1
  340. package/dist/types/generated/ts/cometbft/abci/v1/types.d.ts +0 -597
  341. package/dist/types/generated/ts/cometbft/crypto/v1/keys.d.ts +0 -27
  342. package/dist/types/generated/ts/cometbft/crypto/v1/proof.d.ts +0 -60
  343. package/dist/types/generated/ts/cometbft/types/v1/params.d.ts +0 -179
  344. package/dist/types/generated/ts/cometbft/types/v1/validator.d.ts +0 -61
  345. package/dist/types/generated/ts/cosmos/app/v1alpha1/module.d.ts +0 -104
  346. package/dist/types/generated/ts/cosmos/msg/v1/msg.d.ts +0 -1
  347. package/dist/types/generated/ts/cosmos_proto/cosmos.d.ts +0 -80
  348. package/dist/types/generated/ts/gogoproto/gogo.d.ts +0 -1
  349. package/dist/types/generated/ts/google/api/annotations.d.ts +0 -1
  350. package/dist/types/generated/ts/google/api/http.d.ts +0 -371
  351. package/dist/types/generated/ts/google/protobuf/descriptor.d.ts +0 -1228
  352. package/dist/types/generated/ts/google/protobuf/duration.d.ts +0 -99
  353. package/dist/types/generated/ts/google/protobuf/timestamp.d.ts +0 -128
  354. package/dist/types/generated/ts/google/protobuf/wrappers.d.ts +0 -111
  355. package/dist/types/generated/ts/inco/abci/v1/types.d.ts +0 -35
  356. package/dist/types/generated/ts/inco/fhe/module/v1/module.d.ts +0 -31
  357. package/dist/types/generated/ts/inco/fhe/v1/events.d.ts +0 -66
  358. package/dist/types/generated/ts/inco/fhe/v1/genesis.d.ts +0 -117
  359. package/dist/types/generated/ts/inco/fhe/v1/query.d.ts +0 -366
  360. package/dist/types/generated/ts/inco/fhe/v1/tx.d.ts +0 -409
  361. package/dist/types/generated/ts/inco/fhe/v1/types.d.ts +0 -225
  362. package/dist/types/generated/ts/inco/originchain/module/v1/module.d.ts +0 -30
  363. package/dist/types/generated/ts/inco/originchain/v1/abci.d.ts +0 -80
  364. package/dist/types/generated/ts/inco/originchain/v1/events.d.ts +0 -60
  365. package/dist/types/generated/ts/inco/originchain/v1/genesis.d.ts +0 -28
  366. package/dist/types/generated/ts/inco/originchain/v1/query.d.ts +0 -116
  367. package/dist/types/generated/ts/inco/originchain/v1/tx.d.ts +0 -89
  368. package/dist/types/generated/ts/inco/originchain/v1/types.d.ts +0 -58
  369. package/dist/types/generated/ts/inco/preflight/module/v1/module.d.ts +0 -31
  370. package/dist/types/generated/ts/inco/preflight/v1/genesis.d.ts +0 -41
  371. package/dist/types/generated/ts/inco/preflight/v1/query.d.ts +0 -93
  372. package/dist/types/generated/ts/inco/preflight/v1/tx.d.ts +0 -187
  373. package/dist/types/generated/ts/inco/preflight/v1/types.d.ts +0 -84
  374. package/dist/types/l1/client.d.ts +0 -35
  375. package/dist/types/l1/index.d.ts +0 -2
  376. package/dist/types/l1/preflight.d.ts +0 -20
@@ -1,1391 +0,0 @@
1
- // Code generated by protoc-gen-ts_proto. DO NOT EDIT.
2
- // versions:
3
- // protoc-gen-ts_proto v2.7.5
4
- // protoc unknown
5
- // source: inco/fhe/v1/query.proto
6
- /* eslint-disable */
7
- import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire";
8
- import { makeGenericClientConstructor, } from "@grpc/grpc-js";
9
- import { BlockTopo, CARoot, Covalidator, FheEnv, HandleBinding, KeysetInfo } from "./types";
10
- export const protobufPackage = "inco.fhe.v1";
11
- function createBaseQueryCARootRequest() {
12
- return { hostChainId: "", keysetId: "", blockHash: "" };
13
- }
14
- export const QueryCARootRequest = {
15
- encode(message, writer = new BinaryWriter()) {
16
- if (message.hostChainId !== "") {
17
- writer.uint32(10).string(message.hostChainId);
18
- }
19
- if (message.keysetId !== "") {
20
- writer.uint32(18).string(message.keysetId);
21
- }
22
- if (message.blockHash !== "") {
23
- writer.uint32(26).string(message.blockHash);
24
- }
25
- return writer;
26
- },
27
- decode(input, length) {
28
- const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
29
- const end = length === undefined ? reader.len : reader.pos + length;
30
- const message = createBaseQueryCARootRequest();
31
- while (reader.pos < end) {
32
- const tag = reader.uint32();
33
- switch (tag >>> 3) {
34
- case 1: {
35
- if (tag !== 10) {
36
- break;
37
- }
38
- message.hostChainId = reader.string();
39
- continue;
40
- }
41
- case 2: {
42
- if (tag !== 18) {
43
- break;
44
- }
45
- message.keysetId = reader.string();
46
- continue;
47
- }
48
- case 3: {
49
- if (tag !== 26) {
50
- break;
51
- }
52
- message.blockHash = reader.string();
53
- continue;
54
- }
55
- }
56
- if ((tag & 7) === 4 || tag === 0) {
57
- break;
58
- }
59
- reader.skip(tag & 7);
60
- }
61
- return message;
62
- },
63
- fromJSON(object) {
64
- return {
65
- hostChainId: isSet(object.hostChainId) ? globalThis.String(object.hostChainId) : "",
66
- keysetId: isSet(object.keysetId) ? globalThis.String(object.keysetId) : "",
67
- blockHash: isSet(object.blockHash) ? globalThis.String(object.blockHash) : "",
68
- };
69
- },
70
- toJSON(message) {
71
- const obj = {};
72
- if (message.hostChainId !== "") {
73
- obj.hostChainId = message.hostChainId;
74
- }
75
- if (message.keysetId !== "") {
76
- obj.keysetId = message.keysetId;
77
- }
78
- if (message.blockHash !== "") {
79
- obj.blockHash = message.blockHash;
80
- }
81
- return obj;
82
- },
83
- create(base) {
84
- return QueryCARootRequest.fromPartial(base ?? {});
85
- },
86
- fromPartial(object) {
87
- const message = createBaseQueryCARootRequest();
88
- message.hostChainId = object.hostChainId ?? "";
89
- message.keysetId = object.keysetId ?? "";
90
- message.blockHash = object.blockHash ?? "";
91
- return message;
92
- },
93
- };
94
- function createBaseQueryCARootResponse() {
95
- return { caRoot: undefined };
96
- }
97
- export const QueryCARootResponse = {
98
- encode(message, writer = new BinaryWriter()) {
99
- if (message.caRoot !== undefined) {
100
- CARoot.encode(message.caRoot, writer.uint32(10).fork()).join();
101
- }
102
- return writer;
103
- },
104
- decode(input, length) {
105
- const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
106
- const end = length === undefined ? reader.len : reader.pos + length;
107
- const message = createBaseQueryCARootResponse();
108
- while (reader.pos < end) {
109
- const tag = reader.uint32();
110
- switch (tag >>> 3) {
111
- case 1: {
112
- if (tag !== 10) {
113
- break;
114
- }
115
- message.caRoot = CARoot.decode(reader, reader.uint32());
116
- continue;
117
- }
118
- }
119
- if ((tag & 7) === 4 || tag === 0) {
120
- break;
121
- }
122
- reader.skip(tag & 7);
123
- }
124
- return message;
125
- },
126
- fromJSON(object) {
127
- return { caRoot: isSet(object.caRoot) ? CARoot.fromJSON(object.caRoot) : undefined };
128
- },
129
- toJSON(message) {
130
- const obj = {};
131
- if (message.caRoot !== undefined) {
132
- obj.caRoot = CARoot.toJSON(message.caRoot);
133
- }
134
- return obj;
135
- },
136
- create(base) {
137
- return QueryCARootResponse.fromPartial(base ?? {});
138
- },
139
- fromPartial(object) {
140
- const message = createBaseQueryCARootResponse();
141
- message.caRoot = (object.caRoot !== undefined && object.caRoot !== null)
142
- ? CARoot.fromPartial(object.caRoot)
143
- : undefined;
144
- return message;
145
- },
146
- };
147
- function createBaseQueryVoteRequest() {
148
- return { hostChainId: "", keysetId: "", blockHash: "", covalidator: "" };
149
- }
150
- export const QueryVoteRequest = {
151
- encode(message, writer = new BinaryWriter()) {
152
- if (message.hostChainId !== "") {
153
- writer.uint32(10).string(message.hostChainId);
154
- }
155
- if (message.keysetId !== "") {
156
- writer.uint32(18).string(message.keysetId);
157
- }
158
- if (message.blockHash !== "") {
159
- writer.uint32(26).string(message.blockHash);
160
- }
161
- if (message.covalidator !== "") {
162
- writer.uint32(34).string(message.covalidator);
163
- }
164
- return writer;
165
- },
166
- decode(input, length) {
167
- const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
168
- const end = length === undefined ? reader.len : reader.pos + length;
169
- const message = createBaseQueryVoteRequest();
170
- while (reader.pos < end) {
171
- const tag = reader.uint32();
172
- switch (tag >>> 3) {
173
- case 1: {
174
- if (tag !== 10) {
175
- break;
176
- }
177
- message.hostChainId = reader.string();
178
- continue;
179
- }
180
- case 2: {
181
- if (tag !== 18) {
182
- break;
183
- }
184
- message.keysetId = reader.string();
185
- continue;
186
- }
187
- case 3: {
188
- if (tag !== 26) {
189
- break;
190
- }
191
- message.blockHash = reader.string();
192
- continue;
193
- }
194
- case 4: {
195
- if (tag !== 34) {
196
- break;
197
- }
198
- message.covalidator = reader.string();
199
- continue;
200
- }
201
- }
202
- if ((tag & 7) === 4 || tag === 0) {
203
- break;
204
- }
205
- reader.skip(tag & 7);
206
- }
207
- return message;
208
- },
209
- fromJSON(object) {
210
- return {
211
- hostChainId: isSet(object.hostChainId) ? globalThis.String(object.hostChainId) : "",
212
- keysetId: isSet(object.keysetId) ? globalThis.String(object.keysetId) : "",
213
- blockHash: isSet(object.blockHash) ? globalThis.String(object.blockHash) : "",
214
- covalidator: isSet(object.covalidator) ? globalThis.String(object.covalidator) : "",
215
- };
216
- },
217
- toJSON(message) {
218
- const obj = {};
219
- if (message.hostChainId !== "") {
220
- obj.hostChainId = message.hostChainId;
221
- }
222
- if (message.keysetId !== "") {
223
- obj.keysetId = message.keysetId;
224
- }
225
- if (message.blockHash !== "") {
226
- obj.blockHash = message.blockHash;
227
- }
228
- if (message.covalidator !== "") {
229
- obj.covalidator = message.covalidator;
230
- }
231
- return obj;
232
- },
233
- create(base) {
234
- return QueryVoteRequest.fromPartial(base ?? {});
235
- },
236
- fromPartial(object) {
237
- const message = createBaseQueryVoteRequest();
238
- message.hostChainId = object.hostChainId ?? "";
239
- message.keysetId = object.keysetId ?? "";
240
- message.blockHash = object.blockHash ?? "";
241
- message.covalidator = object.covalidator ?? "";
242
- return message;
243
- },
244
- };
245
- function createBaseQueryVoteResponse() {
246
- return { caRoot: undefined };
247
- }
248
- export const QueryVoteResponse = {
249
- encode(message, writer = new BinaryWriter()) {
250
- if (message.caRoot !== undefined) {
251
- CARoot.encode(message.caRoot, writer.uint32(10).fork()).join();
252
- }
253
- return writer;
254
- },
255
- decode(input, length) {
256
- const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
257
- const end = length === undefined ? reader.len : reader.pos + length;
258
- const message = createBaseQueryVoteResponse();
259
- while (reader.pos < end) {
260
- const tag = reader.uint32();
261
- switch (tag >>> 3) {
262
- case 1: {
263
- if (tag !== 10) {
264
- break;
265
- }
266
- message.caRoot = CARoot.decode(reader, reader.uint32());
267
- continue;
268
- }
269
- }
270
- if ((tag & 7) === 4 || tag === 0) {
271
- break;
272
- }
273
- reader.skip(tag & 7);
274
- }
275
- return message;
276
- },
277
- fromJSON(object) {
278
- return { caRoot: isSet(object.caRoot) ? CARoot.fromJSON(object.caRoot) : undefined };
279
- },
280
- toJSON(message) {
281
- const obj = {};
282
- if (message.caRoot !== undefined) {
283
- obj.caRoot = CARoot.toJSON(message.caRoot);
284
- }
285
- return obj;
286
- },
287
- create(base) {
288
- return QueryVoteResponse.fromPartial(base ?? {});
289
- },
290
- fromPartial(object) {
291
- const message = createBaseQueryVoteResponse();
292
- message.caRoot = (object.caRoot !== undefined && object.caRoot !== null)
293
- ? CARoot.fromPartial(object.caRoot)
294
- : undefined;
295
- return message;
296
- },
297
- };
298
- function createBaseQueryTopoVoteRequest() {
299
- return { hostChainId: "", keysetId: "", blockHash: "", blockHeight: 0, covalidator: "" };
300
- }
301
- export const QueryTopoVoteRequest = {
302
- encode(message, writer = new BinaryWriter()) {
303
- if (message.hostChainId !== "") {
304
- writer.uint32(10).string(message.hostChainId);
305
- }
306
- if (message.keysetId !== "") {
307
- writer.uint32(18).string(message.keysetId);
308
- }
309
- if (message.blockHash !== "") {
310
- writer.uint32(26).string(message.blockHash);
311
- }
312
- if (message.blockHeight !== 0) {
313
- writer.uint32(32).uint64(message.blockHeight);
314
- }
315
- if (message.covalidator !== "") {
316
- writer.uint32(42).string(message.covalidator);
317
- }
318
- return writer;
319
- },
320
- decode(input, length) {
321
- const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
322
- const end = length === undefined ? reader.len : reader.pos + length;
323
- const message = createBaseQueryTopoVoteRequest();
324
- while (reader.pos < end) {
325
- const tag = reader.uint32();
326
- switch (tag >>> 3) {
327
- case 1: {
328
- if (tag !== 10) {
329
- break;
330
- }
331
- message.hostChainId = reader.string();
332
- continue;
333
- }
334
- case 2: {
335
- if (tag !== 18) {
336
- break;
337
- }
338
- message.keysetId = reader.string();
339
- continue;
340
- }
341
- case 3: {
342
- if (tag !== 26) {
343
- break;
344
- }
345
- message.blockHash = reader.string();
346
- continue;
347
- }
348
- case 4: {
349
- if (tag !== 32) {
350
- break;
351
- }
352
- message.blockHeight = longToNumber(reader.uint64());
353
- continue;
354
- }
355
- case 5: {
356
- if (tag !== 42) {
357
- break;
358
- }
359
- message.covalidator = reader.string();
360
- continue;
361
- }
362
- }
363
- if ((tag & 7) === 4 || tag === 0) {
364
- break;
365
- }
366
- reader.skip(tag & 7);
367
- }
368
- return message;
369
- },
370
- fromJSON(object) {
371
- return {
372
- hostChainId: isSet(object.hostChainId) ? globalThis.String(object.hostChainId) : "",
373
- keysetId: isSet(object.keysetId) ? globalThis.String(object.keysetId) : "",
374
- blockHash: isSet(object.blockHash) ? globalThis.String(object.blockHash) : "",
375
- blockHeight: isSet(object.blockHeight) ? globalThis.Number(object.blockHeight) : 0,
376
- covalidator: isSet(object.covalidator) ? globalThis.String(object.covalidator) : "",
377
- };
378
- },
379
- toJSON(message) {
380
- const obj = {};
381
- if (message.hostChainId !== "") {
382
- obj.hostChainId = message.hostChainId;
383
- }
384
- if (message.keysetId !== "") {
385
- obj.keysetId = message.keysetId;
386
- }
387
- if (message.blockHash !== "") {
388
- obj.blockHash = message.blockHash;
389
- }
390
- if (message.blockHeight !== 0) {
391
- obj.blockHeight = Math.round(message.blockHeight);
392
- }
393
- if (message.covalidator !== "") {
394
- obj.covalidator = message.covalidator;
395
- }
396
- return obj;
397
- },
398
- create(base) {
399
- return QueryTopoVoteRequest.fromPartial(base ?? {});
400
- },
401
- fromPartial(object) {
402
- const message = createBaseQueryTopoVoteRequest();
403
- message.hostChainId = object.hostChainId ?? "";
404
- message.keysetId = object.keysetId ?? "";
405
- message.blockHash = object.blockHash ?? "";
406
- message.blockHeight = object.blockHeight ?? 0;
407
- message.covalidator = object.covalidator ?? "";
408
- return message;
409
- },
410
- };
411
- function createBaseQueryTopoVoteResponse() {
412
- return { blockTopo: undefined, found: false };
413
- }
414
- export const QueryTopoVoteResponse = {
415
- encode(message, writer = new BinaryWriter()) {
416
- if (message.blockTopo !== undefined) {
417
- BlockTopo.encode(message.blockTopo, writer.uint32(10).fork()).join();
418
- }
419
- if (message.found !== false) {
420
- writer.uint32(16).bool(message.found);
421
- }
422
- return writer;
423
- },
424
- decode(input, length) {
425
- const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
426
- const end = length === undefined ? reader.len : reader.pos + length;
427
- const message = createBaseQueryTopoVoteResponse();
428
- while (reader.pos < end) {
429
- const tag = reader.uint32();
430
- switch (tag >>> 3) {
431
- case 1: {
432
- if (tag !== 10) {
433
- break;
434
- }
435
- message.blockTopo = BlockTopo.decode(reader, reader.uint32());
436
- continue;
437
- }
438
- case 2: {
439
- if (tag !== 16) {
440
- break;
441
- }
442
- message.found = reader.bool();
443
- continue;
444
- }
445
- }
446
- if ((tag & 7) === 4 || tag === 0) {
447
- break;
448
- }
449
- reader.skip(tag & 7);
450
- }
451
- return message;
452
- },
453
- fromJSON(object) {
454
- return {
455
- blockTopo: isSet(object.blockTopo) ? BlockTopo.fromJSON(object.blockTopo) : undefined,
456
- found: isSet(object.found) ? globalThis.Boolean(object.found) : false,
457
- };
458
- },
459
- toJSON(message) {
460
- const obj = {};
461
- if (message.blockTopo !== undefined) {
462
- obj.blockTopo = BlockTopo.toJSON(message.blockTopo);
463
- }
464
- if (message.found !== false) {
465
- obj.found = message.found;
466
- }
467
- return obj;
468
- },
469
- create(base) {
470
- return QueryTopoVoteResponse.fromPartial(base ?? {});
471
- },
472
- fromPartial(object) {
473
- const message = createBaseQueryTopoVoteResponse();
474
- message.blockTopo = (object.blockTopo !== undefined && object.blockTopo !== null)
475
- ? BlockTopo.fromPartial(object.blockTopo)
476
- : undefined;
477
- message.found = object.found ?? false;
478
- return message;
479
- },
480
- };
481
- function createBaseQueryBindingVoteRequest() {
482
- return { covalidator: "", keysetId: "", hostChainId: "", handle: "" };
483
- }
484
- export const QueryBindingVoteRequest = {
485
- encode(message, writer = new BinaryWriter()) {
486
- if (message.covalidator !== "") {
487
- writer.uint32(10).string(message.covalidator);
488
- }
489
- if (message.keysetId !== "") {
490
- writer.uint32(18).string(message.keysetId);
491
- }
492
- if (message.hostChainId !== "") {
493
- writer.uint32(26).string(message.hostChainId);
494
- }
495
- if (message.handle !== "") {
496
- writer.uint32(34).string(message.handle);
497
- }
498
- return writer;
499
- },
500
- decode(input, length) {
501
- const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
502
- const end = length === undefined ? reader.len : reader.pos + length;
503
- const message = createBaseQueryBindingVoteRequest();
504
- while (reader.pos < end) {
505
- const tag = reader.uint32();
506
- switch (tag >>> 3) {
507
- case 1: {
508
- if (tag !== 10) {
509
- break;
510
- }
511
- message.covalidator = reader.string();
512
- continue;
513
- }
514
- case 2: {
515
- if (tag !== 18) {
516
- break;
517
- }
518
- message.keysetId = reader.string();
519
- continue;
520
- }
521
- case 3: {
522
- if (tag !== 26) {
523
- break;
524
- }
525
- message.hostChainId = reader.string();
526
- continue;
527
- }
528
- case 4: {
529
- if (tag !== 34) {
530
- break;
531
- }
532
- message.handle = reader.string();
533
- continue;
534
- }
535
- }
536
- if ((tag & 7) === 4 || tag === 0) {
537
- break;
538
- }
539
- reader.skip(tag & 7);
540
- }
541
- return message;
542
- },
543
- fromJSON(object) {
544
- return {
545
- covalidator: isSet(object.covalidator) ? globalThis.String(object.covalidator) : "",
546
- keysetId: isSet(object.keysetId) ? globalThis.String(object.keysetId) : "",
547
- hostChainId: isSet(object.hostChainId) ? globalThis.String(object.hostChainId) : "",
548
- handle: isSet(object.handle) ? globalThis.String(object.handle) : "",
549
- };
550
- },
551
- toJSON(message) {
552
- const obj = {};
553
- if (message.covalidator !== "") {
554
- obj.covalidator = message.covalidator;
555
- }
556
- if (message.keysetId !== "") {
557
- obj.keysetId = message.keysetId;
558
- }
559
- if (message.hostChainId !== "") {
560
- obj.hostChainId = message.hostChainId;
561
- }
562
- if (message.handle !== "") {
563
- obj.handle = message.handle;
564
- }
565
- return obj;
566
- },
567
- create(base) {
568
- return QueryBindingVoteRequest.fromPartial(base ?? {});
569
- },
570
- fromPartial(object) {
571
- const message = createBaseQueryBindingVoteRequest();
572
- message.covalidator = object.covalidator ?? "";
573
- message.keysetId = object.keysetId ?? "";
574
- message.hostChainId = object.hostChainId ?? "";
575
- message.handle = object.handle ?? "";
576
- return message;
577
- },
578
- };
579
- function createBaseQueryBindingVoteResponse() {
580
- return { handleBinding: undefined, found: false };
581
- }
582
- export const QueryBindingVoteResponse = {
583
- encode(message, writer = new BinaryWriter()) {
584
- if (message.handleBinding !== undefined) {
585
- HandleBinding.encode(message.handleBinding, writer.uint32(10).fork()).join();
586
- }
587
- if (message.found !== false) {
588
- writer.uint32(16).bool(message.found);
589
- }
590
- return writer;
591
- },
592
- decode(input, length) {
593
- const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
594
- const end = length === undefined ? reader.len : reader.pos + length;
595
- const message = createBaseQueryBindingVoteResponse();
596
- while (reader.pos < end) {
597
- const tag = reader.uint32();
598
- switch (tag >>> 3) {
599
- case 1: {
600
- if (tag !== 10) {
601
- break;
602
- }
603
- message.handleBinding = HandleBinding.decode(reader, reader.uint32());
604
- continue;
605
- }
606
- case 2: {
607
- if (tag !== 16) {
608
- break;
609
- }
610
- message.found = reader.bool();
611
- continue;
612
- }
613
- }
614
- if ((tag & 7) === 4 || tag === 0) {
615
- break;
616
- }
617
- reader.skip(tag & 7);
618
- }
619
- return message;
620
- },
621
- fromJSON(object) {
622
- return {
623
- handleBinding: isSet(object.handleBinding) ? HandleBinding.fromJSON(object.handleBinding) : undefined,
624
- found: isSet(object.found) ? globalThis.Boolean(object.found) : false,
625
- };
626
- },
627
- toJSON(message) {
628
- const obj = {};
629
- if (message.handleBinding !== undefined) {
630
- obj.handleBinding = HandleBinding.toJSON(message.handleBinding);
631
- }
632
- if (message.found !== false) {
633
- obj.found = message.found;
634
- }
635
- return obj;
636
- },
637
- create(base) {
638
- return QueryBindingVoteResponse.fromPartial(base ?? {});
639
- },
640
- fromPartial(object) {
641
- const message = createBaseQueryBindingVoteResponse();
642
- message.handleBinding = (object.handleBinding !== undefined && object.handleBinding !== null)
643
- ? HandleBinding.fromPartial(object.handleBinding)
644
- : undefined;
645
- message.found = object.found ?? false;
646
- return message;
647
- },
648
- };
649
- function createBaseQueryTopoRequest() {
650
- return { hostChainId: "", keysetId: "", blockHash: "", blockHeight: 0 };
651
- }
652
- export const QueryTopoRequest = {
653
- encode(message, writer = new BinaryWriter()) {
654
- if (message.hostChainId !== "") {
655
- writer.uint32(10).string(message.hostChainId);
656
- }
657
- if (message.keysetId !== "") {
658
- writer.uint32(18).string(message.keysetId);
659
- }
660
- if (message.blockHash !== "") {
661
- writer.uint32(26).string(message.blockHash);
662
- }
663
- if (message.blockHeight !== 0) {
664
- writer.uint32(32).uint64(message.blockHeight);
665
- }
666
- return writer;
667
- },
668
- decode(input, length) {
669
- const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
670
- const end = length === undefined ? reader.len : reader.pos + length;
671
- const message = createBaseQueryTopoRequest();
672
- while (reader.pos < end) {
673
- const tag = reader.uint32();
674
- switch (tag >>> 3) {
675
- case 1: {
676
- if (tag !== 10) {
677
- break;
678
- }
679
- message.hostChainId = reader.string();
680
- continue;
681
- }
682
- case 2: {
683
- if (tag !== 18) {
684
- break;
685
- }
686
- message.keysetId = reader.string();
687
- continue;
688
- }
689
- case 3: {
690
- if (tag !== 26) {
691
- break;
692
- }
693
- message.blockHash = reader.string();
694
- continue;
695
- }
696
- case 4: {
697
- if (tag !== 32) {
698
- break;
699
- }
700
- message.blockHeight = longToNumber(reader.uint64());
701
- continue;
702
- }
703
- }
704
- if ((tag & 7) === 4 || tag === 0) {
705
- break;
706
- }
707
- reader.skip(tag & 7);
708
- }
709
- return message;
710
- },
711
- fromJSON(object) {
712
- return {
713
- hostChainId: isSet(object.hostChainId) ? globalThis.String(object.hostChainId) : "",
714
- keysetId: isSet(object.keysetId) ? globalThis.String(object.keysetId) : "",
715
- blockHash: isSet(object.blockHash) ? globalThis.String(object.blockHash) : "",
716
- blockHeight: isSet(object.blockHeight) ? globalThis.Number(object.blockHeight) : 0,
717
- };
718
- },
719
- toJSON(message) {
720
- const obj = {};
721
- if (message.hostChainId !== "") {
722
- obj.hostChainId = message.hostChainId;
723
- }
724
- if (message.keysetId !== "") {
725
- obj.keysetId = message.keysetId;
726
- }
727
- if (message.blockHash !== "") {
728
- obj.blockHash = message.blockHash;
729
- }
730
- if (message.blockHeight !== 0) {
731
- obj.blockHeight = Math.round(message.blockHeight);
732
- }
733
- return obj;
734
- },
735
- create(base) {
736
- return QueryTopoRequest.fromPartial(base ?? {});
737
- },
738
- fromPartial(object) {
739
- const message = createBaseQueryTopoRequest();
740
- message.hostChainId = object.hostChainId ?? "";
741
- message.keysetId = object.keysetId ?? "";
742
- message.blockHash = object.blockHash ?? "";
743
- message.blockHeight = object.blockHeight ?? 0;
744
- return message;
745
- },
746
- };
747
- function createBaseQueryTopoResponse() {
748
- return { blockTopo: undefined, found: false };
749
- }
750
- export const QueryTopoResponse = {
751
- encode(message, writer = new BinaryWriter()) {
752
- if (message.blockTopo !== undefined) {
753
- BlockTopo.encode(message.blockTopo, writer.uint32(10).fork()).join();
754
- }
755
- if (message.found !== false) {
756
- writer.uint32(16).bool(message.found);
757
- }
758
- return writer;
759
- },
760
- decode(input, length) {
761
- const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
762
- const end = length === undefined ? reader.len : reader.pos + length;
763
- const message = createBaseQueryTopoResponse();
764
- while (reader.pos < end) {
765
- const tag = reader.uint32();
766
- switch (tag >>> 3) {
767
- case 1: {
768
- if (tag !== 10) {
769
- break;
770
- }
771
- message.blockTopo = BlockTopo.decode(reader, reader.uint32());
772
- continue;
773
- }
774
- case 2: {
775
- if (tag !== 16) {
776
- break;
777
- }
778
- message.found = reader.bool();
779
- continue;
780
- }
781
- }
782
- if ((tag & 7) === 4 || tag === 0) {
783
- break;
784
- }
785
- reader.skip(tag & 7);
786
- }
787
- return message;
788
- },
789
- fromJSON(object) {
790
- return {
791
- blockTopo: isSet(object.blockTopo) ? BlockTopo.fromJSON(object.blockTopo) : undefined,
792
- found: isSet(object.found) ? globalThis.Boolean(object.found) : false,
793
- };
794
- },
795
- toJSON(message) {
796
- const obj = {};
797
- if (message.blockTopo !== undefined) {
798
- obj.blockTopo = BlockTopo.toJSON(message.blockTopo);
799
- }
800
- if (message.found !== false) {
801
- obj.found = message.found;
802
- }
803
- return obj;
804
- },
805
- create(base) {
806
- return QueryTopoResponse.fromPartial(base ?? {});
807
- },
808
- fromPartial(object) {
809
- const message = createBaseQueryTopoResponse();
810
- message.blockTopo = (object.blockTopo !== undefined && object.blockTopo !== null)
811
- ? BlockTopo.fromPartial(object.blockTopo)
812
- : undefined;
813
- message.found = object.found ?? false;
814
- return message;
815
- },
816
- };
817
- function createBaseQueryBindingRequest() {
818
- return { hostChainId: "", keysetId: "", handle: "" };
819
- }
820
- export const QueryBindingRequest = {
821
- encode(message, writer = new BinaryWriter()) {
822
- if (message.hostChainId !== "") {
823
- writer.uint32(10).string(message.hostChainId);
824
- }
825
- if (message.keysetId !== "") {
826
- writer.uint32(18).string(message.keysetId);
827
- }
828
- if (message.handle !== "") {
829
- writer.uint32(26).string(message.handle);
830
- }
831
- return writer;
832
- },
833
- decode(input, length) {
834
- const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
835
- const end = length === undefined ? reader.len : reader.pos + length;
836
- const message = createBaseQueryBindingRequest();
837
- while (reader.pos < end) {
838
- const tag = reader.uint32();
839
- switch (tag >>> 3) {
840
- case 1: {
841
- if (tag !== 10) {
842
- break;
843
- }
844
- message.hostChainId = reader.string();
845
- continue;
846
- }
847
- case 2: {
848
- if (tag !== 18) {
849
- break;
850
- }
851
- message.keysetId = reader.string();
852
- continue;
853
- }
854
- case 3: {
855
- if (tag !== 26) {
856
- break;
857
- }
858
- message.handle = reader.string();
859
- continue;
860
- }
861
- }
862
- if ((tag & 7) === 4 || tag === 0) {
863
- break;
864
- }
865
- reader.skip(tag & 7);
866
- }
867
- return message;
868
- },
869
- fromJSON(object) {
870
- return {
871
- hostChainId: isSet(object.hostChainId) ? globalThis.String(object.hostChainId) : "",
872
- keysetId: isSet(object.keysetId) ? globalThis.String(object.keysetId) : "",
873
- handle: isSet(object.handle) ? globalThis.String(object.handle) : "",
874
- };
875
- },
876
- toJSON(message) {
877
- const obj = {};
878
- if (message.hostChainId !== "") {
879
- obj.hostChainId = message.hostChainId;
880
- }
881
- if (message.keysetId !== "") {
882
- obj.keysetId = message.keysetId;
883
- }
884
- if (message.handle !== "") {
885
- obj.handle = message.handle;
886
- }
887
- return obj;
888
- },
889
- create(base) {
890
- return QueryBindingRequest.fromPartial(base ?? {});
891
- },
892
- fromPartial(object) {
893
- const message = createBaseQueryBindingRequest();
894
- message.hostChainId = object.hostChainId ?? "";
895
- message.keysetId = object.keysetId ?? "";
896
- message.handle = object.handle ?? "";
897
- return message;
898
- },
899
- };
900
- function createBaseQueryBindingResponse() {
901
- return { handleBinding: undefined, found: false };
902
- }
903
- export const QueryBindingResponse = {
904
- encode(message, writer = new BinaryWriter()) {
905
- if (message.handleBinding !== undefined) {
906
- HandleBinding.encode(message.handleBinding, writer.uint32(10).fork()).join();
907
- }
908
- if (message.found !== false) {
909
- writer.uint32(16).bool(message.found);
910
- }
911
- return writer;
912
- },
913
- decode(input, length) {
914
- const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
915
- const end = length === undefined ? reader.len : reader.pos + length;
916
- const message = createBaseQueryBindingResponse();
917
- while (reader.pos < end) {
918
- const tag = reader.uint32();
919
- switch (tag >>> 3) {
920
- case 1: {
921
- if (tag !== 10) {
922
- break;
923
- }
924
- message.handleBinding = HandleBinding.decode(reader, reader.uint32());
925
- continue;
926
- }
927
- case 2: {
928
- if (tag !== 16) {
929
- break;
930
- }
931
- message.found = reader.bool();
932
- continue;
933
- }
934
- }
935
- if ((tag & 7) === 4 || tag === 0) {
936
- break;
937
- }
938
- reader.skip(tag & 7);
939
- }
940
- return message;
941
- },
942
- fromJSON(object) {
943
- return {
944
- handleBinding: isSet(object.handleBinding) ? HandleBinding.fromJSON(object.handleBinding) : undefined,
945
- found: isSet(object.found) ? globalThis.Boolean(object.found) : false,
946
- };
947
- },
948
- toJSON(message) {
949
- const obj = {};
950
- if (message.handleBinding !== undefined) {
951
- obj.handleBinding = HandleBinding.toJSON(message.handleBinding);
952
- }
953
- if (message.found !== false) {
954
- obj.found = message.found;
955
- }
956
- return obj;
957
- },
958
- create(base) {
959
- return QueryBindingResponse.fromPartial(base ?? {});
960
- },
961
- fromPartial(object) {
962
- const message = createBaseQueryBindingResponse();
963
- message.handleBinding = (object.handleBinding !== undefined && object.handleBinding !== null)
964
- ? HandleBinding.fromPartial(object.handleBinding)
965
- : undefined;
966
- message.found = object.found ?? false;
967
- return message;
968
- },
969
- };
970
- function createBaseQueryCovalidatorRequest() {
971
- return { covalidator: "" };
972
- }
973
- export const QueryCovalidatorRequest = {
974
- encode(message, writer = new BinaryWriter()) {
975
- if (message.covalidator !== "") {
976
- writer.uint32(10).string(message.covalidator);
977
- }
978
- return writer;
979
- },
980
- decode(input, length) {
981
- const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
982
- const end = length === undefined ? reader.len : reader.pos + length;
983
- const message = createBaseQueryCovalidatorRequest();
984
- while (reader.pos < end) {
985
- const tag = reader.uint32();
986
- switch (tag >>> 3) {
987
- case 1: {
988
- if (tag !== 10) {
989
- break;
990
- }
991
- message.covalidator = reader.string();
992
- continue;
993
- }
994
- }
995
- if ((tag & 7) === 4 || tag === 0) {
996
- break;
997
- }
998
- reader.skip(tag & 7);
999
- }
1000
- return message;
1001
- },
1002
- fromJSON(object) {
1003
- return { covalidator: isSet(object.covalidator) ? globalThis.String(object.covalidator) : "" };
1004
- },
1005
- toJSON(message) {
1006
- const obj = {};
1007
- if (message.covalidator !== "") {
1008
- obj.covalidator = message.covalidator;
1009
- }
1010
- return obj;
1011
- },
1012
- create(base) {
1013
- return QueryCovalidatorRequest.fromPartial(base ?? {});
1014
- },
1015
- fromPartial(object) {
1016
- const message = createBaseQueryCovalidatorRequest();
1017
- message.covalidator = object.covalidator ?? "";
1018
- return message;
1019
- },
1020
- };
1021
- function createBaseQueryCovalidatorResponse() {
1022
- return { covalidator: undefined };
1023
- }
1024
- export const QueryCovalidatorResponse = {
1025
- encode(message, writer = new BinaryWriter()) {
1026
- if (message.covalidator !== undefined) {
1027
- Covalidator.encode(message.covalidator, writer.uint32(10).fork()).join();
1028
- }
1029
- return writer;
1030
- },
1031
- decode(input, length) {
1032
- const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
1033
- const end = length === undefined ? reader.len : reader.pos + length;
1034
- const message = createBaseQueryCovalidatorResponse();
1035
- while (reader.pos < end) {
1036
- const tag = reader.uint32();
1037
- switch (tag >>> 3) {
1038
- case 1: {
1039
- if (tag !== 10) {
1040
- break;
1041
- }
1042
- message.covalidator = Covalidator.decode(reader, reader.uint32());
1043
- continue;
1044
- }
1045
- }
1046
- if ((tag & 7) === 4 || tag === 0) {
1047
- break;
1048
- }
1049
- reader.skip(tag & 7);
1050
- }
1051
- return message;
1052
- },
1053
- fromJSON(object) {
1054
- return { covalidator: isSet(object.covalidator) ? Covalidator.fromJSON(object.covalidator) : undefined };
1055
- },
1056
- toJSON(message) {
1057
- const obj = {};
1058
- if (message.covalidator !== undefined) {
1059
- obj.covalidator = Covalidator.toJSON(message.covalidator);
1060
- }
1061
- return obj;
1062
- },
1063
- create(base) {
1064
- return QueryCovalidatorResponse.fromPartial(base ?? {});
1065
- },
1066
- fromPartial(object) {
1067
- const message = createBaseQueryCovalidatorResponse();
1068
- message.covalidator = (object.covalidator !== undefined && object.covalidator !== null)
1069
- ? Covalidator.fromPartial(object.covalidator)
1070
- : undefined;
1071
- return message;
1072
- },
1073
- };
1074
- function createBaseQueryKeysetsRequest() {
1075
- return {};
1076
- }
1077
- export const QueryKeysetsRequest = {
1078
- encode(_, writer = new BinaryWriter()) {
1079
- return writer;
1080
- },
1081
- decode(input, length) {
1082
- const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
1083
- const end = length === undefined ? reader.len : reader.pos + length;
1084
- const message = createBaseQueryKeysetsRequest();
1085
- while (reader.pos < end) {
1086
- const tag = reader.uint32();
1087
- switch (tag >>> 3) {
1088
- }
1089
- if ((tag & 7) === 4 || tag === 0) {
1090
- break;
1091
- }
1092
- reader.skip(tag & 7);
1093
- }
1094
- return message;
1095
- },
1096
- fromJSON(_) {
1097
- return {};
1098
- },
1099
- toJSON(_) {
1100
- const obj = {};
1101
- return obj;
1102
- },
1103
- create(base) {
1104
- return QueryKeysetsRequest.fromPartial(base ?? {});
1105
- },
1106
- fromPartial(_) {
1107
- const message = createBaseQueryKeysetsRequest();
1108
- return message;
1109
- },
1110
- };
1111
- function createBaseQueryKeysetsResponse() {
1112
- return { keysets: [] };
1113
- }
1114
- export const QueryKeysetsResponse = {
1115
- encode(message, writer = new BinaryWriter()) {
1116
- for (const v of message.keysets) {
1117
- KeysetInfo.encode(v, writer.uint32(10).fork()).join();
1118
- }
1119
- return writer;
1120
- },
1121
- decode(input, length) {
1122
- const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
1123
- const end = length === undefined ? reader.len : reader.pos + length;
1124
- const message = createBaseQueryKeysetsResponse();
1125
- while (reader.pos < end) {
1126
- const tag = reader.uint32();
1127
- switch (tag >>> 3) {
1128
- case 1: {
1129
- if (tag !== 10) {
1130
- break;
1131
- }
1132
- message.keysets.push(KeysetInfo.decode(reader, reader.uint32()));
1133
- continue;
1134
- }
1135
- }
1136
- if ((tag & 7) === 4 || tag === 0) {
1137
- break;
1138
- }
1139
- reader.skip(tag & 7);
1140
- }
1141
- return message;
1142
- },
1143
- fromJSON(object) {
1144
- return {
1145
- keysets: globalThis.Array.isArray(object?.keysets) ? object.keysets.map((e) => KeysetInfo.fromJSON(e)) : [],
1146
- };
1147
- },
1148
- toJSON(message) {
1149
- const obj = {};
1150
- if (message.keysets?.length) {
1151
- obj.keysets = message.keysets.map((e) => KeysetInfo.toJSON(e));
1152
- }
1153
- return obj;
1154
- },
1155
- create(base) {
1156
- return QueryKeysetsResponse.fromPartial(base ?? {});
1157
- },
1158
- fromPartial(object) {
1159
- const message = createBaseQueryKeysetsResponse();
1160
- message.keysets = object.keysets?.map((e) => KeysetInfo.fromPartial(e)) || [];
1161
- return message;
1162
- },
1163
- };
1164
- function createBaseQueryFheEnvRequest() {
1165
- return { hostChainId: "", keysetId: "" };
1166
- }
1167
- export const QueryFheEnvRequest = {
1168
- encode(message, writer = new BinaryWriter()) {
1169
- if (message.hostChainId !== "") {
1170
- writer.uint32(10).string(message.hostChainId);
1171
- }
1172
- if (message.keysetId !== "") {
1173
- writer.uint32(18).string(message.keysetId);
1174
- }
1175
- return writer;
1176
- },
1177
- decode(input, length) {
1178
- const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
1179
- const end = length === undefined ? reader.len : reader.pos + length;
1180
- const message = createBaseQueryFheEnvRequest();
1181
- while (reader.pos < end) {
1182
- const tag = reader.uint32();
1183
- switch (tag >>> 3) {
1184
- case 1: {
1185
- if (tag !== 10) {
1186
- break;
1187
- }
1188
- message.hostChainId = reader.string();
1189
- continue;
1190
- }
1191
- case 2: {
1192
- if (tag !== 18) {
1193
- break;
1194
- }
1195
- message.keysetId = reader.string();
1196
- continue;
1197
- }
1198
- }
1199
- if ((tag & 7) === 4 || tag === 0) {
1200
- break;
1201
- }
1202
- reader.skip(tag & 7);
1203
- }
1204
- return message;
1205
- },
1206
- fromJSON(object) {
1207
- return {
1208
- hostChainId: isSet(object.hostChainId) ? globalThis.String(object.hostChainId) : "",
1209
- keysetId: isSet(object.keysetId) ? globalThis.String(object.keysetId) : "",
1210
- };
1211
- },
1212
- toJSON(message) {
1213
- const obj = {};
1214
- if (message.hostChainId !== "") {
1215
- obj.hostChainId = message.hostChainId;
1216
- }
1217
- if (message.keysetId !== "") {
1218
- obj.keysetId = message.keysetId;
1219
- }
1220
- return obj;
1221
- },
1222
- create(base) {
1223
- return QueryFheEnvRequest.fromPartial(base ?? {});
1224
- },
1225
- fromPartial(object) {
1226
- const message = createBaseQueryFheEnvRequest();
1227
- message.hostChainId = object.hostChainId ?? "";
1228
- message.keysetId = object.keysetId ?? "";
1229
- return message;
1230
- },
1231
- };
1232
- function createBaseQueryFheEnvResponse() {
1233
- return { fheEnv: undefined };
1234
- }
1235
- export const QueryFheEnvResponse = {
1236
- encode(message, writer = new BinaryWriter()) {
1237
- if (message.fheEnv !== undefined) {
1238
- FheEnv.encode(message.fheEnv, writer.uint32(10).fork()).join();
1239
- }
1240
- return writer;
1241
- },
1242
- decode(input, length) {
1243
- const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
1244
- const end = length === undefined ? reader.len : reader.pos + length;
1245
- const message = createBaseQueryFheEnvResponse();
1246
- while (reader.pos < end) {
1247
- const tag = reader.uint32();
1248
- switch (tag >>> 3) {
1249
- case 1: {
1250
- if (tag !== 10) {
1251
- break;
1252
- }
1253
- message.fheEnv = FheEnv.decode(reader, reader.uint32());
1254
- continue;
1255
- }
1256
- }
1257
- if ((tag & 7) === 4 || tag === 0) {
1258
- break;
1259
- }
1260
- reader.skip(tag & 7);
1261
- }
1262
- return message;
1263
- },
1264
- fromJSON(object) {
1265
- return { fheEnv: isSet(object.fheEnv) ? FheEnv.fromJSON(object.fheEnv) : undefined };
1266
- },
1267
- toJSON(message) {
1268
- const obj = {};
1269
- if (message.fheEnv !== undefined) {
1270
- obj.fheEnv = FheEnv.toJSON(message.fheEnv);
1271
- }
1272
- return obj;
1273
- },
1274
- create(base) {
1275
- return QueryFheEnvResponse.fromPartial(base ?? {});
1276
- },
1277
- fromPartial(object) {
1278
- const message = createBaseQueryFheEnvResponse();
1279
- message.fheEnv = (object.fheEnv !== undefined && object.fheEnv !== null)
1280
- ? FheEnv.fromPartial(object.fheEnv)
1281
- : undefined;
1282
- return message;
1283
- },
1284
- };
1285
- export const QueryService = {
1286
- /** CARoot returns the CA Root for the given FheEnvBlock. */
1287
- caRoot: {
1288
- path: "/inco.fhe.v1.Query/CARoot",
1289
- requestStream: false,
1290
- responseStream: false,
1291
- requestSerialize: (value) => Buffer.from(QueryCARootRequest.encode(value).finish()),
1292
- requestDeserialize: (value) => QueryCARootRequest.decode(value),
1293
- responseSerialize: (value) => Buffer.from(QueryCARootResponse.encode(value).finish()),
1294
- responseDeserialize: (value) => QueryCARootResponse.decode(value),
1295
- },
1296
- /** Vote returns the vote for the given FheEnvBlock and covalidator. */
1297
- vote: {
1298
- path: "/inco.fhe.v1.Query/Vote",
1299
- requestStream: false,
1300
- responseStream: false,
1301
- requestSerialize: (value) => Buffer.from(QueryVoteRequest.encode(value).finish()),
1302
- requestDeserialize: (value) => QueryVoteRequest.decode(value),
1303
- responseSerialize: (value) => Buffer.from(QueryVoteResponse.encode(value).finish()),
1304
- responseDeserialize: (value) => QueryVoteResponse.decode(value),
1305
- },
1306
- /** TopoVote returns the topology vote of the given FheEnvBlock and covalidator. */
1307
- topoVote: {
1308
- path: "/inco.fhe.v1.Query/TopoVote",
1309
- requestStream: false,
1310
- responseStream: false,
1311
- requestSerialize: (value) => Buffer.from(QueryTopoVoteRequest.encode(value).finish()),
1312
- requestDeserialize: (value) => QueryTopoVoteRequest.decode(value),
1313
- responseSerialize: (value) => Buffer.from(QueryTopoVoteResponse.encode(value).finish()),
1314
- responseDeserialize: (value) => QueryTopoVoteResponse.decode(value),
1315
- },
1316
- /** BindingVote returns the handle binding vote for the given handle and covalidator. */
1317
- bindingVote: {
1318
- path: "/inco.fhe.v1.Query/BindingVote",
1319
- requestStream: false,
1320
- responseStream: false,
1321
- requestSerialize: (value) => Buffer.from(QueryBindingVoteRequest.encode(value).finish()),
1322
- requestDeserialize: (value) => QueryBindingVoteRequest.decode(value),
1323
- responseSerialize: (value) => Buffer.from(QueryBindingVoteResponse.encode(value).finish()),
1324
- responseDeserialize: (value) => QueryBindingVoteResponse.decode(value),
1325
- },
1326
- /** Topo returns the topology of the given FheEnvBlock. */
1327
- topo: {
1328
- path: "/inco.fhe.v1.Query/Topo",
1329
- requestStream: false,
1330
- responseStream: false,
1331
- requestSerialize: (value) => Buffer.from(QueryTopoRequest.encode(value).finish()),
1332
- requestDeserialize: (value) => QueryTopoRequest.decode(value),
1333
- responseSerialize: (value) => Buffer.from(QueryTopoResponse.encode(value).finish()),
1334
- responseDeserialize: (value) => QueryTopoResponse.decode(value),
1335
- },
1336
- /** Binding returns the binding of the given handle. */
1337
- binding: {
1338
- path: "/inco.fhe.v1.Query/Binding",
1339
- requestStream: false,
1340
- responseStream: false,
1341
- requestSerialize: (value) => Buffer.from(QueryBindingRequest.encode(value).finish()),
1342
- requestDeserialize: (value) => QueryBindingRequest.decode(value),
1343
- responseSerialize: (value) => Buffer.from(QueryBindingResponse.encode(value).finish()),
1344
- responseDeserialize: (value) => QueryBindingResponse.decode(value),
1345
- },
1346
- /** Covalidator returns the covalidator for the given covalidator address. */
1347
- covalidator: {
1348
- path: "/inco.fhe.v1.Query/Covalidator",
1349
- requestStream: false,
1350
- responseStream: false,
1351
- requestSerialize: (value) => Buffer.from(QueryCovalidatorRequest.encode(value).finish()),
1352
- requestDeserialize: (value) => QueryCovalidatorRequest.decode(value),
1353
- responseSerialize: (value) => Buffer.from(QueryCovalidatorResponse.encode(value).finish()),
1354
- responseDeserialize: (value) => QueryCovalidatorResponse.decode(value),
1355
- },
1356
- /** Keysets returns the available keysets. */
1357
- keysets: {
1358
- path: "/inco.fhe.v1.Query/Keysets",
1359
- requestStream: false,
1360
- responseStream: false,
1361
- requestSerialize: (value) => Buffer.from(QueryKeysetsRequest.encode(value).finish()),
1362
- requestDeserialize: (value) => QueryKeysetsRequest.decode(value),
1363
- responseSerialize: (value) => Buffer.from(QueryKeysetsResponse.encode(value).finish()),
1364
- responseDeserialize: (value) => QueryKeysetsResponse.decode(value),
1365
- },
1366
- /** FheEnv returns the FHE environment given the keyset_id and host_chain_id. */
1367
- fheEnv: {
1368
- path: "/inco.fhe.v1.Query/FheEnv",
1369
- requestStream: false,
1370
- responseStream: false,
1371
- requestSerialize: (value) => Buffer.from(QueryFheEnvRequest.encode(value).finish()),
1372
- requestDeserialize: (value) => QueryFheEnvRequest.decode(value),
1373
- responseSerialize: (value) => Buffer.from(QueryFheEnvResponse.encode(value).finish()),
1374
- responseDeserialize: (value) => QueryFheEnvResponse.decode(value),
1375
- },
1376
- };
1377
- export const QueryClient = makeGenericClientConstructor(QueryService, "inco.fhe.v1.Query");
1378
- function longToNumber(int64) {
1379
- const num = globalThis.Number(int64.toString());
1380
- if (num > globalThis.Number.MAX_SAFE_INTEGER) {
1381
- throw new globalThis.Error("Value is larger than Number.MAX_SAFE_INTEGER");
1382
- }
1383
- if (num < globalThis.Number.MIN_SAFE_INTEGER) {
1384
- throw new globalThis.Error("Value is smaller than Number.MIN_SAFE_INTEGER");
1385
- }
1386
- return num;
1387
- }
1388
- function isSet(value) {
1389
- return value !== null && value !== undefined;
1390
- }
1391
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvZ2VuZXJhdGVkL3RzL2luY28vZmhlL3YxL3F1ZXJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHNEQUFzRDtBQUN0RCxZQUFZO0FBQ1osZ0NBQWdDO0FBQ2hDLGlDQUFpQztBQUNqQyxrQ0FBa0M7QUFFbEMsb0JBQW9CO0FBQ3BCLE9BQU8sRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDckUsT0FBTyxFQU9MLDRCQUE0QixHQUk3QixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFNUYsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLGFBQWEsQ0FBQztBQW9NN0MsU0FBUyw0QkFBNEI7SUFDbkMsT0FBTyxFQUFFLFdBQVcsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLENBQUM7QUFDMUQsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFtQztJQUNoRSxNQUFNLENBQUMsT0FBMkIsRUFBRSxTQUF1QixJQUFJLFlBQVksRUFBRTtRQUMzRSxJQUFJLE9BQU8sQ0FBQyxXQUFXLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDL0IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2hELENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxRQUFRLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDNUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzdDLENB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