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