@inco/js 0.2.16 → 0.2.17

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