@inco/js 0.3.2 → 0.5.0

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 (436) hide show
  1. package/README.md +4 -1
  2. package/dist/cjs/advancedacl/session-key.d.ts +30 -1
  3. package/dist/cjs/advancedacl/session-key.js +222 -54
  4. package/dist/cjs/attestedcompute/attested-compute.d.ts +2 -0
  5. package/dist/cjs/attestedcompute/attested-compute.js +19 -10
  6. package/dist/cjs/attestedcompute/types.d.ts +3 -2
  7. package/dist/cjs/attestedcompute/types.js +1 -1
  8. package/dist/cjs/attesteddecrypt/attested-decrypt.d.ts +2 -0
  9. package/dist/cjs/attesteddecrypt/attested-decrypt.js +31 -13
  10. package/dist/cjs/attesteddecrypt/types.d.ts +3 -2
  11. package/dist/cjs/attesteddecrypt/types.js +1 -1
  12. package/dist/cjs/attestedreveal/attested-reveal.d.ts +21 -0
  13. package/dist/cjs/attestedreveal/attested-reveal.js +67 -0
  14. package/dist/cjs/attestedreveal/index.d.ts +1 -0
  15. package/dist/cjs/{fhevm → attestedreveal}/index.js +2 -2
  16. package/dist/cjs/attestedreveal/types.d.ts +7 -0
  17. package/dist/cjs/attestedreveal/types.js +16 -0
  18. package/dist/cjs/binary.js +6 -3
  19. package/dist/cjs/chain.js +5 -2
  20. package/dist/cjs/encryption/encryption.js +1 -1
  21. package/dist/cjs/generated/abis/TestElist.d.ts +247 -0
  22. package/dist/cjs/generated/abis/TestElist.js +152 -0
  23. package/dist/cjs/generated/abis/addTwo.d.ts +12 -30
  24. package/dist/cjs/generated/abis/addTwo.js +7 -18
  25. package/dist/cjs/generated/abis/lightning-preview.d.ts +98 -979
  26. package/dist/cjs/generated/abis/lightning-preview.js +100 -635
  27. package/dist/cjs/generated/abis/lightning.d.ts +80 -425
  28. package/dist/cjs/generated/abis/lightning.js +64 -317
  29. package/dist/{esm/generated/abis/inco-fhevm.d.ts → cjs/generated/abis/verifier.d.ts} +610 -468
  30. package/dist/cjs/generated/abis/verifier.js +704 -0
  31. package/dist/cjs/generated/es/cosmos_proto/cosmos_pb.js +1 -1
  32. package/dist/cjs/generated/es/inco/fhe/v1/types_pb.js +1 -1
  33. package/dist/cjs/generated/es/inco/kms/lite/v1/kms_service_pb.d.ts +63 -5
  34. package/dist/cjs/generated/es/inco/kms/lite/v1/kms_service_pb.js +18 -8
  35. package/dist/cjs/generated/es/inco/kms/lite/v1/types_pb.js +1 -1
  36. package/dist/cjs/generated/lightning.d.ts +31 -10
  37. package/dist/cjs/generated/lightning.js +33 -11
  38. package/dist/cjs/handle.d.ts +1 -1
  39. package/dist/cjs/handle.js +5 -3
  40. package/dist/cjs/kms/client.js +1 -1
  41. package/dist/cjs/lite/attested-compute.d.ts +6 -3
  42. package/dist/cjs/lite/attested-compute.js +7 -1
  43. package/dist/cjs/lite/attested-decrypt.d.ts +2 -0
  44. package/dist/cjs/lite/attested-decrypt.js +5 -1
  45. package/dist/cjs/lite/deployments.js +1 -1
  46. package/dist/cjs/lite/ecies.d.ts +2 -2
  47. package/dist/cjs/lite/ecies.js +3 -3
  48. package/dist/cjs/lite/hadu.d.ts +1 -1
  49. package/dist/cjs/lite/hadu.js +2 -2
  50. package/dist/cjs/lite/index.d.ts +4 -1
  51. package/dist/cjs/lite/index.js +3 -1
  52. package/dist/cjs/lite/lightning.d.ts +33 -1
  53. package/dist/cjs/lite/lightning.js +60 -47
  54. package/dist/cjs/lite/reencrypt.d.ts +0 -1
  55. package/dist/cjs/lite/reencrypt.js +10 -21
  56. package/dist/cjs/local/local-node.js +38 -3
  57. package/dist/cjs/reencryption/eip712.d.ts +2 -2
  58. package/dist/cjs/reencryption/eip712.js +2 -11
  59. package/dist/cjs/reencryption/types.d.ts +1 -2
  60. package/dist/cjs/retry.d.ts +1 -1
  61. package/dist/cjs/retry.js +2 -2
  62. package/dist/cjs/schema.js +1 -1
  63. package/dist/cjs/viem.d.ts +12 -15
  64. package/dist/cjs/viem.js +9 -2
  65. package/dist/esm/advancedacl/session-key.d.ts +30 -1
  66. package/dist/esm/advancedacl/session-key.js +218 -52
  67. package/dist/esm/attestedcompute/attested-compute.d.ts +2 -0
  68. package/dist/esm/attestedcompute/attested-compute.js +17 -9
  69. package/dist/esm/attestedcompute/types.d.ts +3 -2
  70. package/dist/esm/attestedcompute/types.js +1 -1
  71. package/dist/esm/attesteddecrypt/attested-decrypt.d.ts +2 -0
  72. package/dist/esm/attesteddecrypt/attested-decrypt.js +29 -12
  73. package/dist/esm/attesteddecrypt/types.d.ts +3 -2
  74. package/dist/esm/attesteddecrypt/types.js +1 -1
  75. package/dist/esm/attestedreveal/attested-reveal.d.ts +21 -0
  76. package/dist/esm/attestedreveal/attested-reveal.js +64 -0
  77. package/dist/esm/attestedreveal/index.d.ts +1 -0
  78. package/dist/esm/attestedreveal/index.js +2 -0
  79. package/dist/esm/attestedreveal/types.d.ts +7 -0
  80. package/dist/esm/attestedreveal/types.js +12 -0
  81. package/dist/esm/binary.js +6 -3
  82. package/dist/esm/chain.js +5 -2
  83. package/dist/esm/encryption/encryption.js +1 -1
  84. package/dist/esm/generated/abis/TestElist.d.ts +247 -0
  85. package/dist/esm/generated/abis/TestElist.js +149 -0
  86. package/dist/esm/generated/abis/addTwo.d.ts +12 -30
  87. package/dist/esm/generated/abis/addTwo.js +7 -18
  88. package/dist/esm/generated/abis/lightning-preview.d.ts +98 -979
  89. package/dist/esm/generated/abis/lightning-preview.js +100 -635
  90. package/dist/esm/generated/abis/lightning.d.ts +80 -425
  91. package/dist/esm/generated/abis/lightning.js +64 -317
  92. package/dist/{cjs/generated/abis/inco-fhevm.d.ts → esm/generated/abis/verifier.d.ts} +610 -468
  93. package/dist/esm/generated/abis/verifier.js +701 -0
  94. package/dist/esm/generated/es/cosmos_proto/cosmos_pb.js +1 -1
  95. package/dist/esm/generated/es/inco/fhe/v1/types_pb.js +1 -1
  96. package/dist/esm/generated/es/inco/kms/lite/v1/kms_service_pb.d.ts +63 -5
  97. package/dist/esm/generated/es/inco/kms/lite/v1/kms_service_pb.js +17 -7
  98. package/dist/esm/generated/es/inco/kms/lite/v1/types_pb.js +1 -1
  99. package/dist/esm/generated/lightning.d.ts +31 -10
  100. package/dist/esm/generated/lightning.js +33 -11
  101. package/dist/esm/handle.d.ts +1 -1
  102. package/dist/esm/handle.js +5 -3
  103. package/dist/esm/kms/client.js +1 -1
  104. package/dist/esm/lite/attested-compute.d.ts +6 -3
  105. package/dist/esm/lite/attested-compute.js +4 -2
  106. package/dist/esm/lite/attested-decrypt.d.ts +2 -0
  107. package/dist/esm/lite/attested-decrypt.js +3 -2
  108. package/dist/esm/lite/deployments.js +1 -1
  109. package/dist/esm/lite/ecies.d.ts +2 -2
  110. package/dist/esm/lite/ecies.js +4 -4
  111. package/dist/esm/lite/hadu.d.ts +1 -1
  112. package/dist/esm/lite/hadu.js +2 -2
  113. package/dist/esm/lite/index.d.ts +4 -1
  114. package/dist/esm/lite/index.js +3 -1
  115. package/dist/esm/lite/lightning.d.ts +33 -1
  116. package/dist/esm/lite/lightning.js +63 -50
  117. package/dist/esm/lite/reencrypt.d.ts +0 -1
  118. package/dist/esm/lite/reencrypt.js +13 -23
  119. package/dist/esm/local/local-node.js +38 -3
  120. package/dist/esm/reencryption/eip712.d.ts +2 -2
  121. package/dist/esm/reencryption/eip712.js +2 -11
  122. package/dist/esm/reencryption/types.d.ts +1 -2
  123. package/dist/esm/retry.d.ts +1 -1
  124. package/dist/esm/retry.js +2 -2
  125. package/dist/esm/schema.js +1 -1
  126. package/dist/esm/viem.d.ts +12 -15
  127. package/dist/esm/viem.js +10 -3
  128. package/dist/types/advancedacl/session-key.d.ts +30 -1
  129. package/dist/types/attestedcompute/attested-compute.d.ts +2 -0
  130. package/dist/types/attestedcompute/types.d.ts +3 -2
  131. package/dist/types/attesteddecrypt/attested-decrypt.d.ts +2 -0
  132. package/dist/types/attesteddecrypt/types.d.ts +3 -2
  133. package/dist/types/attestedreveal/attested-reveal.d.ts +21 -0
  134. package/dist/types/attestedreveal/index.d.ts +1 -0
  135. package/dist/types/attestedreveal/types.d.ts +7 -0
  136. package/dist/types/generated/abis/TestElist.d.ts +247 -0
  137. package/dist/types/generated/abis/addTwo.d.ts +12 -30
  138. package/dist/types/generated/abis/lightning-preview.d.ts +98 -979
  139. package/dist/types/generated/abis/lightning.d.ts +80 -425
  140. package/dist/types/generated/abis/{inco-fhevm.d.ts → verifier.d.ts} +610 -468
  141. package/dist/types/generated/es/inco/kms/lite/v1/kms_service_pb.d.ts +63 -5
  142. package/dist/types/generated/lightning.d.ts +31 -10
  143. package/dist/types/handle.d.ts +1 -1
  144. package/dist/types/lite/attested-compute.d.ts +6 -3
  145. package/dist/types/lite/attested-decrypt.d.ts +2 -0
  146. package/dist/types/lite/ecies.d.ts +2 -2
  147. package/dist/types/lite/hadu.d.ts +1 -1
  148. package/dist/types/lite/index.d.ts +4 -1
  149. package/dist/types/lite/lightning.d.ts +33 -1
  150. package/dist/types/lite/reencrypt.d.ts +0 -1
  151. package/dist/types/reencryption/eip712.d.ts +2 -2
  152. package/dist/types/reencryption/types.d.ts +1 -2
  153. package/dist/types/retry.d.ts +1 -1
  154. package/dist/types/viem.d.ts +12 -15
  155. package/package.json +40 -53
  156. package/dist/cjs/fhevm/fhe-environment.d.ts +0 -9
  157. package/dist/cjs/fhevm/fhe-environment.js +0 -11
  158. package/dist/cjs/fhevm/fhevm.d.ts +0 -41
  159. package/dist/cjs/fhevm/fhevm.js +0 -145
  160. package/dist/cjs/fhevm/index.d.ts +0 -1
  161. package/dist/cjs/fhevm/reencrypt.d.ts +0 -20
  162. package/dist/cjs/fhevm/reencrypt.js +0 -127
  163. package/dist/cjs/fhevm/tfhe.d.ts +0 -74
  164. package/dist/cjs/fhevm/tfhe.js +0 -336
  165. package/dist/cjs/fhevm/types.d.ts +0 -3
  166. package/dist/cjs/fhevm/types.js +0 -29
  167. package/dist/cjs/generated/abis/inco-fhevm.js +0 -681
  168. package/dist/cjs/generated/es/cosmos/msg/v1/msg_pb.d.ts +0 -29
  169. package/dist/cjs/generated/es/cosmos/msg/v1/msg_pb.js +0 -36
  170. package/dist/cjs/generated/es/google/api/annotations_pb.d.ts +0 -13
  171. package/dist/cjs/generated/es/google/api/annotations_pb.js +0 -30
  172. package/dist/cjs/generated/es/google/api/http_pb.d.ts +0 -440
  173. package/dist/cjs/generated/es/google/api/http_pb.js +0 -37
  174. package/dist/cjs/generated/es/inco/fhe/v1/events_pb.d.ts +0 -79
  175. package/dist/cjs/generated/es/inco/fhe/v1/events_pb.js +0 -24
  176. package/dist/cjs/generated/es/inco/fhe/v1/genesis_pb.d.ts +0 -252
  177. package/dist/cjs/generated/es/inco/fhe/v1/genesis_pb.js +0 -49
  178. package/dist/cjs/generated/es/inco/fhe/v1/query_pb.d.ts +0 -569
  179. package/dist/cjs/generated/es/inco/fhe/v1/query_pb.js +0 -111
  180. package/dist/cjs/generated/es/inco/fhe/v1/tx_pb.d.ts +0 -494
  181. package/dist/cjs/generated/es/inco/fhe/v1/tx_pb.js +0 -111
  182. package/dist/cjs/generated/es/inco/preflight/v1/genesis_pb.d.ts +0 -56
  183. package/dist/cjs/generated/es/inco/preflight/v1/genesis_pb.js +0 -23
  184. package/dist/cjs/generated/es/inco/preflight/v1/query_pb.d.ts +0 -100
  185. package/dist/cjs/generated/es/inco/preflight/v1/query_pb.js +0 -41
  186. package/dist/cjs/generated/es/inco/preflight/v1/tx_pb.d.ts +0 -193
  187. package/dist/cjs/generated/es/inco/preflight/v1/tx_pb.js +0 -51
  188. package/dist/cjs/generated/es/inco/preflight/v1/types_pb.d.ts +0 -144
  189. package/dist/cjs/generated/es/inco/preflight/v1/types_pb.js +0 -37
  190. package/dist/cjs/generated/fhe-environments.d.ts +0 -14
  191. package/dist/cjs/generated/fhe-environments.js +0 -18
  192. package/dist/cjs/generated/ts/amino/amino.d.ts +0 -1
  193. package/dist/cjs/generated/ts/amino/amino.js +0 -11
  194. package/dist/cjs/generated/ts/cometbft/abci/v1/types.d.ts +0 -597
  195. package/dist/cjs/generated/ts/cometbft/abci/v1/types.js +0 -5079
  196. package/dist/cjs/generated/ts/cometbft/crypto/v1/keys.d.ts +0 -27
  197. package/dist/cjs/generated/ts/cometbft/crypto/v1/keys.js +0 -108
  198. package/dist/cjs/generated/ts/cometbft/crypto/v1/proof.d.ts +0 -60
  199. package/dist/cjs/generated/ts/cometbft/crypto/v1/proof.js +0 -433
  200. package/dist/cjs/generated/ts/cometbft/types/v1/params.d.ts +0 -179
  201. package/dist/cjs/generated/ts/cometbft/types/v1/params.js +0 -716
  202. package/dist/cjs/generated/ts/cometbft/types/v1/validator.d.ts +0 -61
  203. package/dist/cjs/generated/ts/cometbft/types/v1/validator.js +0 -358
  204. package/dist/cjs/generated/ts/cosmos/app/v1alpha1/module.d.ts +0 -104
  205. package/dist/cjs/generated/ts/cosmos/app/v1alpha1/module.js +0 -221
  206. package/dist/cjs/generated/ts/cosmos/msg/v1/msg.d.ts +0 -1
  207. package/dist/cjs/generated/ts/cosmos/msg/v1/msg.js +0 -11
  208. package/dist/cjs/generated/ts/cosmos_proto/cosmos.d.ts +0 -80
  209. package/dist/cjs/generated/ts/cosmos_proto/cosmos.js +0 -216
  210. package/dist/cjs/generated/ts/gogoproto/gogo.d.ts +0 -1
  211. package/dist/cjs/generated/ts/gogoproto/gogo.js +0 -11
  212. package/dist/cjs/generated/ts/google/api/annotations.d.ts +0 -1
  213. package/dist/cjs/generated/ts/google/api/annotations.js +0 -11
  214. package/dist/cjs/generated/ts/google/api/http.d.ts +0 -371
  215. package/dist/cjs/generated/ts/google/api/http.js +0 -356
  216. package/dist/cjs/generated/ts/google/protobuf/descriptor.d.ts +0 -1228
  217. package/dist/cjs/generated/ts/google/protobuf/descriptor.js +0 -5108
  218. package/dist/cjs/generated/ts/google/protobuf/duration.d.ts +0 -99
  219. package/dist/cjs/generated/ts/google/protobuf/duration.js +0 -93
  220. package/dist/cjs/generated/ts/google/protobuf/timestamp.d.ts +0 -128
  221. package/dist/cjs/generated/ts/google/protobuf/timestamp.js +0 -93
  222. package/dist/cjs/generated/ts/google/protobuf/wrappers.d.ts +0 -111
  223. package/dist/cjs/generated/ts/google/protobuf/wrappers.js +0 -509
  224. package/dist/cjs/generated/ts/inco/abci/v1/types.d.ts +0 -35
  225. package/dist/cjs/generated/ts/inco/abci/v1/types.js +0 -73
  226. package/dist/cjs/generated/ts/inco/fhe/module/v1/module.d.ts +0 -31
  227. package/dist/cjs/generated/ts/inco/fhe/module/v1/module.js +0 -66
  228. package/dist/cjs/generated/ts/inco/fhe/v1/events.d.ts +0 -66
  229. package/dist/cjs/generated/ts/inco/fhe/v1/events.js +0 -190
  230. package/dist/cjs/generated/ts/inco/fhe/v1/genesis.d.ts +0 -117
  231. package/dist/cjs/generated/ts/inco/fhe/v1/genesis.js +0 -714
  232. package/dist/cjs/generated/ts/inco/fhe/v1/query.d.ts +0 -366
  233. package/dist/cjs/generated/ts/inco/fhe/v1/query.js +0 -1394
  234. package/dist/cjs/generated/ts/inco/fhe/v1/tx.d.ts +0 -409
  235. package/dist/cjs/generated/ts/inco/fhe/v1/tx.js +0 -1236
  236. package/dist/cjs/generated/ts/inco/fhe/v1/types.d.ts +0 -225
  237. package/dist/cjs/generated/ts/inco/fhe/v1/types.js +0 -990
  238. package/dist/cjs/generated/ts/inco/originchain/module/v1/module.d.ts +0 -30
  239. package/dist/cjs/generated/ts/inco/originchain/module/v1/module.js +0 -66
  240. package/dist/cjs/generated/ts/inco/originchain/v1/abci.d.ts +0 -80
  241. package/dist/cjs/generated/ts/inco/originchain/v1/abci.js +0 -331
  242. package/dist/cjs/generated/ts/inco/originchain/v1/events.d.ts +0 -60
  243. package/dist/cjs/generated/ts/inco/originchain/v1/events.js +0 -216
  244. package/dist/cjs/generated/ts/inco/originchain/v1/genesis.d.ts +0 -28
  245. package/dist/cjs/generated/ts/inco/originchain/v1/genesis.js +0 -69
  246. package/dist/cjs/generated/ts/inco/originchain/v1/query.d.ts +0 -116
  247. package/dist/cjs/generated/ts/inco/originchain/v1/query.js +0 -280
  248. package/dist/cjs/generated/ts/inco/originchain/v1/tx.d.ts +0 -89
  249. package/dist/cjs/generated/ts/inco/originchain/v1/tx.js +0 -140
  250. package/dist/cjs/generated/ts/inco/originchain/v1/types.d.ts +0 -58
  251. package/dist/cjs/generated/ts/inco/originchain/v1/types.js +0 -203
  252. package/dist/cjs/generated/ts/inco/preflight/module/v1/module.d.ts +0 -31
  253. package/dist/cjs/generated/ts/inco/preflight/module/v1/module.js +0 -66
  254. package/dist/cjs/generated/ts/inco/preflight/v1/genesis.d.ts +0 -41
  255. package/dist/cjs/generated/ts/inco/preflight/v1/genesis.js +0 -185
  256. package/dist/cjs/generated/ts/inco/preflight/v1/query.d.ts +0 -93
  257. package/dist/cjs/generated/ts/inco/preflight/v1/query.js +0 -259
  258. package/dist/cjs/generated/ts/inco/preflight/v1/tx.d.ts +0 -187
  259. package/dist/cjs/generated/ts/inco/preflight/v1/tx.js +0 -448
  260. package/dist/cjs/generated/ts/inco/preflight/v1/types.d.ts +0 -84
  261. package/dist/cjs/generated/ts/inco/preflight/v1/types.js +0 -398
  262. package/dist/cjs/l1/client.d.ts +0 -35
  263. package/dist/cjs/l1/client.js +0 -97
  264. package/dist/cjs/l1/index.d.ts +0 -2
  265. package/dist/cjs/l1/index.js +0 -19
  266. package/dist/cjs/l1/preflight.d.ts +0 -20
  267. package/dist/cjs/l1/preflight.js +0 -42
  268. package/dist/esm/fhevm/fhe-environment.d.ts +0 -9
  269. package/dist/esm/fhevm/fhe-environment.js +0 -8
  270. package/dist/esm/fhevm/fhevm.d.ts +0 -41
  271. package/dist/esm/fhevm/fhevm.js +0 -139
  272. package/dist/esm/fhevm/index.d.ts +0 -1
  273. package/dist/esm/fhevm/index.js +0 -2
  274. package/dist/esm/fhevm/reencrypt.d.ts +0 -20
  275. package/dist/esm/fhevm/reencrypt.js +0 -123
  276. package/dist/esm/fhevm/tfhe.d.ts +0 -74
  277. package/dist/esm/fhevm/tfhe.js +0 -328
  278. package/dist/esm/fhevm/types.d.ts +0 -3
  279. package/dist/esm/fhevm/types.js +0 -26
  280. package/dist/esm/generated/abis/inco-fhevm.js +0 -678
  281. package/dist/esm/generated/es/cosmos/msg/v1/msg_pb.d.ts +0 -29
  282. package/dist/esm/generated/es/cosmos/msg/v1/msg_pb.js +0 -33
  283. package/dist/esm/generated/es/google/api/annotations_pb.d.ts +0 -13
  284. package/dist/esm/generated/es/google/api/annotations_pb.js +0 -27
  285. package/dist/esm/generated/es/google/api/http_pb.d.ts +0 -440
  286. package/dist/esm/generated/es/google/api/http_pb.js +0 -34
  287. package/dist/esm/generated/es/inco/fhe/v1/events_pb.d.ts +0 -79
  288. package/dist/esm/generated/es/inco/fhe/v1/events_pb.js +0 -21
  289. package/dist/esm/generated/es/inco/fhe/v1/genesis_pb.d.ts +0 -252
  290. package/dist/esm/generated/es/inco/fhe/v1/genesis_pb.js +0 -46
  291. package/dist/esm/generated/es/inco/fhe/v1/query_pb.d.ts +0 -569
  292. package/dist/esm/generated/es/inco/fhe/v1/query_pb.js +0 -108
  293. package/dist/esm/generated/es/inco/fhe/v1/tx_pb.d.ts +0 -494
  294. package/dist/esm/generated/es/inco/fhe/v1/tx_pb.js +0 -108
  295. package/dist/esm/generated/es/inco/preflight/v1/genesis_pb.d.ts +0 -56
  296. package/dist/esm/generated/es/inco/preflight/v1/genesis_pb.js +0 -20
  297. package/dist/esm/generated/es/inco/preflight/v1/query_pb.d.ts +0 -100
  298. package/dist/esm/generated/es/inco/preflight/v1/query_pb.js +0 -38
  299. package/dist/esm/generated/es/inco/preflight/v1/tx_pb.d.ts +0 -193
  300. package/dist/esm/generated/es/inco/preflight/v1/tx_pb.js +0 -48
  301. package/dist/esm/generated/es/inco/preflight/v1/types_pb.d.ts +0 -144
  302. package/dist/esm/generated/es/inco/preflight/v1/types_pb.js +0 -34
  303. package/dist/esm/generated/fhe-environments.d.ts +0 -14
  304. package/dist/esm/generated/fhe-environments.js +0 -15
  305. package/dist/esm/generated/ts/amino/amino.d.ts +0 -1
  306. package/dist/esm/generated/ts/amino/amino.js +0 -8
  307. package/dist/esm/generated/ts/cometbft/abci/v1/types.d.ts +0 -597
  308. package/dist/esm/generated/ts/cometbft/abci/v1/types.js +0 -5063
  309. package/dist/esm/generated/ts/cometbft/crypto/v1/keys.d.ts +0 -27
  310. package/dist/esm/generated/ts/cometbft/crypto/v1/keys.js +0 -105
  311. package/dist/esm/generated/ts/cometbft/crypto/v1/proof.d.ts +0 -60
  312. package/dist/esm/generated/ts/cometbft/crypto/v1/proof.js +0 -430
  313. package/dist/esm/generated/ts/cometbft/types/v1/params.d.ts +0 -179
  314. package/dist/esm/generated/ts/cometbft/types/v1/params.js +0 -713
  315. package/dist/esm/generated/ts/cometbft/types/v1/validator.d.ts +0 -61
  316. package/dist/esm/generated/ts/cometbft/types/v1/validator.js +0 -353
  317. package/dist/esm/generated/ts/cosmos/app/v1alpha1/module.d.ts +0 -104
  318. package/dist/esm/generated/ts/cosmos/app/v1alpha1/module.js +0 -218
  319. package/dist/esm/generated/ts/cosmos/msg/v1/msg.d.ts +0 -1
  320. package/dist/esm/generated/ts/cosmos/msg/v1/msg.js +0 -8
  321. package/dist/esm/generated/ts/cosmos_proto/cosmos.d.ts +0 -80
  322. package/dist/esm/generated/ts/cosmos_proto/cosmos.js +0 -211
  323. package/dist/esm/generated/ts/gogoproto/gogo.d.ts +0 -1
  324. package/dist/esm/generated/ts/gogoproto/gogo.js +0 -8
  325. package/dist/esm/generated/ts/google/api/annotations.d.ts +0 -1
  326. package/dist/esm/generated/ts/google/api/annotations.js +0 -8
  327. package/dist/esm/generated/ts/google/api/http.d.ts +0 -371
  328. package/dist/esm/generated/ts/google/api/http.js +0 -353
  329. package/dist/esm/generated/ts/google/protobuf/descriptor.d.ts +0 -1228
  330. package/dist/esm/generated/ts/google/protobuf/descriptor.js +0 -5070
  331. package/dist/esm/generated/ts/google/protobuf/duration.d.ts +0 -99
  332. package/dist/esm/generated/ts/google/protobuf/duration.js +0 -90
  333. package/dist/esm/generated/ts/google/protobuf/timestamp.d.ts +0 -128
  334. package/dist/esm/generated/ts/google/protobuf/timestamp.js +0 -90
  335. package/dist/esm/generated/ts/google/protobuf/wrappers.d.ts +0 -111
  336. package/dist/esm/generated/ts/google/protobuf/wrappers.js +0 -506
  337. package/dist/esm/generated/ts/inco/abci/v1/types.d.ts +0 -35
  338. package/dist/esm/generated/ts/inco/abci/v1/types.js +0 -70
  339. package/dist/esm/generated/ts/inco/fhe/module/v1/module.d.ts +0 -31
  340. package/dist/esm/generated/ts/inco/fhe/module/v1/module.js +0 -63
  341. package/dist/esm/generated/ts/inco/fhe/v1/events.d.ts +0 -66
  342. package/dist/esm/generated/ts/inco/fhe/v1/events.js +0 -187
  343. package/dist/esm/generated/ts/inco/fhe/v1/genesis.d.ts +0 -117
  344. package/dist/esm/generated/ts/inco/fhe/v1/genesis.js +0 -711
  345. package/dist/esm/generated/ts/inco/fhe/v1/query.d.ts +0 -366
  346. package/dist/esm/generated/ts/inco/fhe/v1/query.js +0 -1391
  347. package/dist/esm/generated/ts/inco/fhe/v1/tx.d.ts +0 -409
  348. package/dist/esm/generated/ts/inco/fhe/v1/tx.js +0 -1233
  349. package/dist/esm/generated/ts/inco/fhe/v1/types.d.ts +0 -225
  350. package/dist/esm/generated/ts/inco/fhe/v1/types.js +0 -985
  351. package/dist/esm/generated/ts/inco/originchain/module/v1/module.d.ts +0 -30
  352. package/dist/esm/generated/ts/inco/originchain/module/v1/module.js +0 -63
  353. package/dist/esm/generated/ts/inco/originchain/v1/abci.d.ts +0 -80
  354. package/dist/esm/generated/ts/inco/originchain/v1/abci.js +0 -328
  355. package/dist/esm/generated/ts/inco/originchain/v1/events.d.ts +0 -60
  356. package/dist/esm/generated/ts/inco/originchain/v1/events.js +0 -213
  357. package/dist/esm/generated/ts/inco/originchain/v1/genesis.d.ts +0 -28
  358. package/dist/esm/generated/ts/inco/originchain/v1/genesis.js +0 -66
  359. package/dist/esm/generated/ts/inco/originchain/v1/query.d.ts +0 -116
  360. package/dist/esm/generated/ts/inco/originchain/v1/query.js +0 -277
  361. package/dist/esm/generated/ts/inco/originchain/v1/tx.d.ts +0 -89
  362. package/dist/esm/generated/ts/inco/originchain/v1/tx.js +0 -137
  363. package/dist/esm/generated/ts/inco/originchain/v1/types.d.ts +0 -58
  364. package/dist/esm/generated/ts/inco/originchain/v1/types.js +0 -200
  365. package/dist/esm/generated/ts/inco/preflight/module/v1/module.d.ts +0 -31
  366. package/dist/esm/generated/ts/inco/preflight/module/v1/module.js +0 -63
  367. package/dist/esm/generated/ts/inco/preflight/v1/genesis.d.ts +0 -41
  368. package/dist/esm/generated/ts/inco/preflight/v1/genesis.js +0 -182
  369. package/dist/esm/generated/ts/inco/preflight/v1/query.d.ts +0 -93
  370. package/dist/esm/generated/ts/inco/preflight/v1/query.js +0 -256
  371. package/dist/esm/generated/ts/inco/preflight/v1/tx.d.ts +0 -187
  372. package/dist/esm/generated/ts/inco/preflight/v1/tx.js +0 -445
  373. package/dist/esm/generated/ts/inco/preflight/v1/types.d.ts +0 -84
  374. package/dist/esm/generated/ts/inco/preflight/v1/types.js +0 -395
  375. package/dist/esm/l1/client.d.ts +0 -35
  376. package/dist/esm/l1/client.js +0 -93
  377. package/dist/esm/l1/index.d.ts +0 -2
  378. package/dist/esm/l1/index.js +0 -3
  379. package/dist/esm/l1/preflight.d.ts +0 -20
  380. package/dist/esm/l1/preflight.js +0 -39
  381. package/dist/types/fhevm/fhe-environment.d.ts +0 -9
  382. package/dist/types/fhevm/fhevm.d.ts +0 -41
  383. package/dist/types/fhevm/index.d.ts +0 -1
  384. package/dist/types/fhevm/reencrypt.d.ts +0 -20
  385. package/dist/types/fhevm/tfhe.d.ts +0 -74
  386. package/dist/types/fhevm/types.d.ts +0 -3
  387. package/dist/types/generated/es/cosmos/msg/v1/msg_pb.d.ts +0 -29
  388. package/dist/types/generated/es/google/api/annotations_pb.d.ts +0 -13
  389. package/dist/types/generated/es/google/api/http_pb.d.ts +0 -440
  390. package/dist/types/generated/es/inco/fhe/v1/events_pb.d.ts +0 -79
  391. package/dist/types/generated/es/inco/fhe/v1/genesis_pb.d.ts +0 -252
  392. package/dist/types/generated/es/inco/fhe/v1/query_pb.d.ts +0 -569
  393. package/dist/types/generated/es/inco/fhe/v1/tx_pb.d.ts +0 -494
  394. package/dist/types/generated/es/inco/preflight/v1/genesis_pb.d.ts +0 -56
  395. package/dist/types/generated/es/inco/preflight/v1/query_pb.d.ts +0 -100
  396. package/dist/types/generated/es/inco/preflight/v1/tx_pb.d.ts +0 -193
  397. package/dist/types/generated/es/inco/preflight/v1/types_pb.d.ts +0 -144
  398. package/dist/types/generated/fhe-environments.d.ts +0 -14
  399. package/dist/types/generated/ts/amino/amino.d.ts +0 -1
  400. package/dist/types/generated/ts/cometbft/abci/v1/types.d.ts +0 -597
  401. package/dist/types/generated/ts/cometbft/crypto/v1/keys.d.ts +0 -27
  402. package/dist/types/generated/ts/cometbft/crypto/v1/proof.d.ts +0 -60
  403. package/dist/types/generated/ts/cometbft/types/v1/params.d.ts +0 -179
  404. package/dist/types/generated/ts/cometbft/types/v1/validator.d.ts +0 -61
  405. package/dist/types/generated/ts/cosmos/app/v1alpha1/module.d.ts +0 -104
  406. package/dist/types/generated/ts/cosmos/msg/v1/msg.d.ts +0 -1
  407. package/dist/types/generated/ts/cosmos_proto/cosmos.d.ts +0 -80
  408. package/dist/types/generated/ts/gogoproto/gogo.d.ts +0 -1
  409. package/dist/types/generated/ts/google/api/annotations.d.ts +0 -1
  410. package/dist/types/generated/ts/google/api/http.d.ts +0 -371
  411. package/dist/types/generated/ts/google/protobuf/descriptor.d.ts +0 -1228
  412. package/dist/types/generated/ts/google/protobuf/duration.d.ts +0 -99
  413. package/dist/types/generated/ts/google/protobuf/timestamp.d.ts +0 -128
  414. package/dist/types/generated/ts/google/protobuf/wrappers.d.ts +0 -111
  415. package/dist/types/generated/ts/inco/abci/v1/types.d.ts +0 -35
  416. package/dist/types/generated/ts/inco/fhe/module/v1/module.d.ts +0 -31
  417. package/dist/types/generated/ts/inco/fhe/v1/events.d.ts +0 -66
  418. package/dist/types/generated/ts/inco/fhe/v1/genesis.d.ts +0 -117
  419. package/dist/types/generated/ts/inco/fhe/v1/query.d.ts +0 -366
  420. package/dist/types/generated/ts/inco/fhe/v1/tx.d.ts +0 -409
  421. package/dist/types/generated/ts/inco/fhe/v1/types.d.ts +0 -225
  422. package/dist/types/generated/ts/inco/originchain/module/v1/module.d.ts +0 -30
  423. package/dist/types/generated/ts/inco/originchain/v1/abci.d.ts +0 -80
  424. package/dist/types/generated/ts/inco/originchain/v1/events.d.ts +0 -60
  425. package/dist/types/generated/ts/inco/originchain/v1/genesis.d.ts +0 -28
  426. package/dist/types/generated/ts/inco/originchain/v1/query.d.ts +0 -116
  427. package/dist/types/generated/ts/inco/originchain/v1/tx.d.ts +0 -89
  428. package/dist/types/generated/ts/inco/originchain/v1/types.d.ts +0 -58
  429. package/dist/types/generated/ts/inco/preflight/module/v1/module.d.ts +0 -31
  430. package/dist/types/generated/ts/inco/preflight/v1/genesis.d.ts +0 -41
  431. package/dist/types/generated/ts/inco/preflight/v1/query.d.ts +0 -93
  432. package/dist/types/generated/ts/inco/preflight/v1/tx.d.ts +0 -187
  433. package/dist/types/generated/ts/inco/preflight/v1/types.d.ts +0 -84
  434. package/dist/types/l1/client.d.ts +0 -35
  435. package/dist/types/l1/index.d.ts +0 -2
  436. package/dist/types/l1/preflight.d.ts +0 -20
@@ -1,990 +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/types.proto
7
- Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.HandleBindingEntry = exports.HandleBinding = exports.BlockTopoStore = exports.BlockTopo = exports.FheEnvBlock = exports.CARoot = exports.IncoLiteAccessControl = exports.ZamaAccessControl = exports.FheEnv = exports.KeysetInfo = exports.Covalidator = exports.TypedCiphertext = exports.FheType = exports.protobufPackage = void 0;
9
- exports.fheTypeFromJSON = fheTypeFromJSON;
10
- exports.fheTypeToJSON = fheTypeToJSON;
11
- /* eslint-disable */
12
- const wire_1 = require("@bufbuild/protobuf/wire");
13
- exports.protobufPackage = "inco.fhe.v1";
14
- /**
15
- * FheType represents the type of the plaintext encrypted in either in the FHE
16
- * or the TEE ciphertext.
17
- * For compatibility with Zama's FheType, we use the same values.
18
- * ref: https://github.com/zama-ai/kms-core/blob/fcc54ba0933e6190d8e8091ef495bcf437c06f6a/core/grpc/proto/kms.v1.proto#L32
19
- */
20
- var FheType;
21
- (function (FheType) {
22
- FheType[FheType["FHE_TYPE_EBOOL"] = 0] = "FHE_TYPE_EBOOL";
23
- FheType[FheType["FHE_TYPE_EUINT4"] = 1] = "FHE_TYPE_EUINT4";
24
- FheType[FheType["FHE_TYPE_EUINT8"] = 2] = "FHE_TYPE_EUINT8";
25
- FheType[FheType["FHE_TYPE_EUINT16"] = 3] = "FHE_TYPE_EUINT16";
26
- FheType[FheType["FHE_TYPE_EUINT32"] = 4] = "FHE_TYPE_EUINT32";
27
- FheType[FheType["FHE_TYPE_EUINT64"] = 5] = "FHE_TYPE_EUINT64";
28
- FheType[FheType["FHE_TYPE_EUINT128"] = 6] = "FHE_TYPE_EUINT128";
29
- FheType[FheType["FHE_TYPE_EUINT160"] = 7] = "FHE_TYPE_EUINT160";
30
- FheType[FheType["FHE_TYPE_EUINT256"] = 8] = "FHE_TYPE_EUINT256";
31
- FheType[FheType["FHE_TYPE_EUINT512"] = 9] = "FHE_TYPE_EUINT512";
32
- FheType[FheType["FHE_TYPE_EUINT1024"] = 10] = "FHE_TYPE_EUINT1024";
33
- FheType[FheType["FHE_TYPE_EUINT2048"] = 11] = "FHE_TYPE_EUINT2048";
34
- FheType[FheType["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
35
- })(FheType || (exports.FheType = FheType = {}));
36
- function fheTypeFromJSON(object) {
37
- switch (object) {
38
- case 0:
39
- case "FHE_TYPE_EBOOL":
40
- return FheType.FHE_TYPE_EBOOL;
41
- case 1:
42
- case "FHE_TYPE_EUINT4":
43
- return FheType.FHE_TYPE_EUINT4;
44
- case 2:
45
- case "FHE_TYPE_EUINT8":
46
- return FheType.FHE_TYPE_EUINT8;
47
- case 3:
48
- case "FHE_TYPE_EUINT16":
49
- return FheType.FHE_TYPE_EUINT16;
50
- case 4:
51
- case "FHE_TYPE_EUINT32":
52
- return FheType.FHE_TYPE_EUINT32;
53
- case 5:
54
- case "FHE_TYPE_EUINT64":
55
- return FheType.FHE_TYPE_EUINT64;
56
- case 6:
57
- case "FHE_TYPE_EUINT128":
58
- return FheType.FHE_TYPE_EUINT128;
59
- case 7:
60
- case "FHE_TYPE_EUINT160":
61
- return FheType.FHE_TYPE_EUINT160;
62
- case 8:
63
- case "FHE_TYPE_EUINT256":
64
- return FheType.FHE_TYPE_EUINT256;
65
- case 9:
66
- case "FHE_TYPE_EUINT512":
67
- return FheType.FHE_TYPE_EUINT512;
68
- case 10:
69
- case "FHE_TYPE_EUINT1024":
70
- return FheType.FHE_TYPE_EUINT1024;
71
- case 11:
72
- case "FHE_TYPE_EUINT2048":
73
- return FheType.FHE_TYPE_EUINT2048;
74
- case -1:
75
- case "UNRECOGNIZED":
76
- default:
77
- return FheType.UNRECOGNIZED;
78
- }
79
- }
80
- function fheTypeToJSON(object) {
81
- switch (object) {
82
- case FheType.FHE_TYPE_EBOOL:
83
- return "FHE_TYPE_EBOOL";
84
- case FheType.FHE_TYPE_EUINT4:
85
- return "FHE_TYPE_EUINT4";
86
- case FheType.FHE_TYPE_EUINT8:
87
- return "FHE_TYPE_EUINT8";
88
- case FheType.FHE_TYPE_EUINT16:
89
- return "FHE_TYPE_EUINT16";
90
- case FheType.FHE_TYPE_EUINT32:
91
- return "FHE_TYPE_EUINT32";
92
- case FheType.FHE_TYPE_EUINT64:
93
- return "FHE_TYPE_EUINT64";
94
- case FheType.FHE_TYPE_EUINT128:
95
- return "FHE_TYPE_EUINT128";
96
- case FheType.FHE_TYPE_EUINT160:
97
- return "FHE_TYPE_EUINT160";
98
- case FheType.FHE_TYPE_EUINT256:
99
- return "FHE_TYPE_EUINT256";
100
- case FheType.FHE_TYPE_EUINT512:
101
- return "FHE_TYPE_EUINT512";
102
- case FheType.FHE_TYPE_EUINT1024:
103
- return "FHE_TYPE_EUINT1024";
104
- case FheType.FHE_TYPE_EUINT2048:
105
- return "FHE_TYPE_EUINT2048";
106
- case FheType.UNRECOGNIZED:
107
- default:
108
- return "UNRECOGNIZED";
109
- }
110
- }
111
- function createBaseTypedCiphertext() {
112
- return { ciphertext: new Uint8Array(0), fheType: 0, handle: "" };
113
- }
114
- exports.TypedCiphertext = {
115
- encode(message, writer = new wire_1.BinaryWriter()) {
116
- if (message.ciphertext.length !== 0) {
117
- writer.uint32(10).bytes(message.ciphertext);
118
- }
119
- if (message.fheType !== 0) {
120
- writer.uint32(16).int32(message.fheType);
121
- }
122
- if (message.handle !== "") {
123
- writer.uint32(26).string(message.handle);
124
- }
125
- return writer;
126
- },
127
- decode(input, length) {
128
- const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
129
- const end = length === undefined ? reader.len : reader.pos + length;
130
- const message = createBaseTypedCiphertext();
131
- while (reader.pos < end) {
132
- const tag = reader.uint32();
133
- switch (tag >>> 3) {
134
- case 1: {
135
- if (tag !== 10) {
136
- break;
137
- }
138
- message.ciphertext = reader.bytes();
139
- continue;
140
- }
141
- case 2: {
142
- if (tag !== 16) {
143
- break;
144
- }
145
- message.fheType = reader.int32();
146
- continue;
147
- }
148
- case 3: {
149
- if (tag !== 26) {
150
- break;
151
- }
152
- message.handle = reader.string();
153
- continue;
154
- }
155
- }
156
- if ((tag & 7) === 4 || tag === 0) {
157
- break;
158
- }
159
- reader.skip(tag & 7);
160
- }
161
- return message;
162
- },
163
- fromJSON(object) {
164
- return {
165
- ciphertext: isSet(object.ciphertext) ? bytesFromBase64(object.ciphertext) : new Uint8Array(0),
166
- fheType: isSet(object.fheType) ? fheTypeFromJSON(object.fheType) : 0,
167
- handle: isSet(object.handle) ? globalThis.String(object.handle) : "",
168
- };
169
- },
170
- toJSON(message) {
171
- const obj = {};
172
- if (message.ciphertext.length !== 0) {
173
- obj.ciphertext = base64FromBytes(message.ciphertext);
174
- }
175
- if (message.fheType !== 0) {
176
- obj.fheType = fheTypeToJSON(message.fheType);
177
- }
178
- if (message.handle !== "") {
179
- obj.handle = message.handle;
180
- }
181
- return obj;
182
- },
183
- create(base) {
184
- return exports.TypedCiphertext.fromPartial(base ?? {});
185
- },
186
- fromPartial(object) {
187
- const message = createBaseTypedCiphertext();
188
- message.ciphertext = object.ciphertext ?? new Uint8Array(0);
189
- message.fheType = object.fheType ?? 0;
190
- message.handle = object.handle ?? "";
191
- return message;
192
- },
193
- };
194
- function createBaseCovalidator() {
195
- return { incoAddress: "", grpcUrl: "" };
196
- }
197
- exports.Covalidator = {
198
- encode(message, writer = new wire_1.BinaryWriter()) {
199
- if (message.incoAddress !== "") {
200
- writer.uint32(10).string(message.incoAddress);
201
- }
202
- if (message.grpcUrl !== "") {
203
- writer.uint32(18).string(message.grpcUrl);
204
- }
205
- return writer;
206
- },
207
- decode(input, length) {
208
- const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
209
- const end = length === undefined ? reader.len : reader.pos + length;
210
- const message = createBaseCovalidator();
211
- while (reader.pos < end) {
212
- const tag = reader.uint32();
213
- switch (tag >>> 3) {
214
- case 1: {
215
- if (tag !== 10) {
216
- break;
217
- }
218
- message.incoAddress = reader.string();
219
- continue;
220
- }
221
- case 2: {
222
- if (tag !== 18) {
223
- break;
224
- }
225
- message.grpcUrl = reader.string();
226
- continue;
227
- }
228
- }
229
- if ((tag & 7) === 4 || tag === 0) {
230
- break;
231
- }
232
- reader.skip(tag & 7);
233
- }
234
- return message;
235
- },
236
- fromJSON(object) {
237
- return {
238
- incoAddress: isSet(object.incoAddress) ? globalThis.String(object.incoAddress) : "",
239
- grpcUrl: isSet(object.grpcUrl) ? globalThis.String(object.grpcUrl) : "",
240
- };
241
- },
242
- toJSON(message) {
243
- const obj = {};
244
- if (message.incoAddress !== "") {
245
- obj.incoAddress = message.incoAddress;
246
- }
247
- if (message.grpcUrl !== "") {
248
- obj.grpcUrl = message.grpcUrl;
249
- }
250
- return obj;
251
- },
252
- create(base) {
253
- return exports.Covalidator.fromPartial(base ?? {});
254
- },
255
- fromPartial(object) {
256
- const message = createBaseCovalidator();
257
- message.incoAddress = object.incoAddress ?? "";
258
- message.grpcUrl = object.grpcUrl ?? "";
259
- return message;
260
- },
261
- };
262
- function createBaseKeysetInfo() {
263
- return { id: "", kmsGrpcUrl: "" };
264
- }
265
- exports.KeysetInfo = {
266
- encode(message, writer = new wire_1.BinaryWriter()) {
267
- if (message.id !== "") {
268
- writer.uint32(10).string(message.id);
269
- }
270
- if (message.kmsGrpcUrl !== "") {
271
- writer.uint32(18).string(message.kmsGrpcUrl);
272
- }
273
- return writer;
274
- },
275
- decode(input, length) {
276
- const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
277
- const end = length === undefined ? reader.len : reader.pos + length;
278
- const message = createBaseKeysetInfo();
279
- while (reader.pos < end) {
280
- const tag = reader.uint32();
281
- switch (tag >>> 3) {
282
- case 1: {
283
- if (tag !== 10) {
284
- break;
285
- }
286
- message.id = reader.string();
287
- continue;
288
- }
289
- case 2: {
290
- if (tag !== 18) {
291
- break;
292
- }
293
- message.kmsGrpcUrl = reader.string();
294
- continue;
295
- }
296
- }
297
- if ((tag & 7) === 4 || tag === 0) {
298
- break;
299
- }
300
- reader.skip(tag & 7);
301
- }
302
- return message;
303
- },
304
- fromJSON(object) {
305
- return {
306
- id: isSet(object.id) ? globalThis.String(object.id) : "",
307
- kmsGrpcUrl: isSet(object.kmsGrpcUrl) ? globalThis.String(object.kmsGrpcUrl) : "",
308
- };
309
- },
310
- toJSON(message) {
311
- const obj = {};
312
- if (message.id !== "") {
313
- obj.id = message.id;
314
- }
315
- if (message.kmsGrpcUrl !== "") {
316
- obj.kmsGrpcUrl = message.kmsGrpcUrl;
317
- }
318
- return obj;
319
- },
320
- create(base) {
321
- return exports.KeysetInfo.fromPartial(base ?? {});
322
- },
323
- fromPartial(object) {
324
- const message = createBaseKeysetInfo();
325
- message.id = object.id ?? "";
326
- message.kmsGrpcUrl = object.kmsGrpcUrl ?? "";
327
- return message;
328
- },
329
- };
330
- function createBaseFheEnv() {
331
- return { hostChainId: "", keysetId: "", zamaAccessControl: undefined, incoLiteAccessControl: undefined };
332
- }
333
- exports.FheEnv = {
334
- encode(message, writer = new wire_1.BinaryWriter()) {
335
- if (message.hostChainId !== "") {
336
- writer.uint32(10).string(message.hostChainId);
337
- }
338
- if (message.keysetId !== "") {
339
- writer.uint32(18).string(message.keysetId);
340
- }
341
- if (message.zamaAccessControl !== undefined) {
342
- exports.ZamaAccessControl.encode(message.zamaAccessControl, writer.uint32(82).fork()).join();
343
- }
344
- if (message.incoLiteAccessControl !== undefined) {
345
- exports.IncoLiteAccessControl.encode(message.incoLiteAccessControl, writer.uint32(90).fork()).join();
346
- }
347
- return writer;
348
- },
349
- decode(input, length) {
350
- const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
351
- const end = length === undefined ? reader.len : reader.pos + length;
352
- const message = createBaseFheEnv();
353
- while (reader.pos < end) {
354
- const tag = reader.uint32();
355
- switch (tag >>> 3) {
356
- case 1: {
357
- if (tag !== 10) {
358
- break;
359
- }
360
- message.hostChainId = reader.string();
361
- continue;
362
- }
363
- case 2: {
364
- if (tag !== 18) {
365
- break;
366
- }
367
- message.keysetId = reader.string();
368
- continue;
369
- }
370
- case 10: {
371
- if (tag !== 82) {
372
- break;
373
- }
374
- message.zamaAccessControl = exports.ZamaAccessControl.decode(reader, reader.uint32());
375
- continue;
376
- }
377
- case 11: {
378
- if (tag !== 90) {
379
- break;
380
- }
381
- message.incoLiteAccessControl = exports.IncoLiteAccessControl.decode(reader, reader.uint32());
382
- continue;
383
- }
384
- }
385
- if ((tag & 7) === 4 || tag === 0) {
386
- break;
387
- }
388
- reader.skip(tag & 7);
389
- }
390
- return message;
391
- },
392
- fromJSON(object) {
393
- return {
394
- hostChainId: isSet(object.hostChainId) ? globalThis.String(object.hostChainId) : "",
395
- keysetId: isSet(object.keysetId) ? globalThis.String(object.keysetId) : "",
396
- zamaAccessControl: isSet(object.zamaAccessControl)
397
- ? exports.ZamaAccessControl.fromJSON(object.zamaAccessControl)
398
- : undefined,
399
- incoLiteAccessControl: isSet(object.incoLiteAccessControl)
400
- ? exports.IncoLiteAccessControl.fromJSON(object.incoLiteAccessControl)
401
- : undefined,
402
- };
403
- },
404
- toJSON(message) {
405
- const obj = {};
406
- if (message.hostChainId !== "") {
407
- obj.hostChainId = message.hostChainId;
408
- }
409
- if (message.keysetId !== "") {
410
- obj.keysetId = message.keysetId;
411
- }
412
- if (message.zamaAccessControl !== undefined) {
413
- obj.zamaAccessControl = exports.ZamaAccessControl.toJSON(message.zamaAccessControl);
414
- }
415
- if (message.incoLiteAccessControl !== undefined) {
416
- obj.incoLiteAccessControl = exports.IncoLiteAccessControl.toJSON(message.incoLiteAccessControl);
417
- }
418
- return obj;
419
- },
420
- create(base) {
421
- return exports.FheEnv.fromPartial(base ?? {});
422
- },
423
- fromPartial(object) {
424
- const message = createBaseFheEnv();
425
- message.hostChainId = object.hostChainId ?? "";
426
- message.keysetId = object.keysetId ?? "";
427
- message.zamaAccessControl = (object.zamaAccessControl !== undefined && object.zamaAccessControl !== null)
428
- ? exports.ZamaAccessControl.fromPartial(object.zamaAccessControl)
429
- : undefined;
430
- message.incoLiteAccessControl =
431
- (object.incoLiteAccessControl !== undefined && object.incoLiteAccessControl !== null)
432
- ? exports.IncoLiteAccessControl.fromPartial(object.incoLiteAccessControl)
433
- : undefined;
434
- return message;
435
- },
436
- };
437
- function createBaseZamaAccessControl() {
438
- return { aclAddress: "", decryptionStorageIndex: "", reencryptionStorageIndex: "", delegationsStorageIndex: "" };
439
- }
440
- exports.ZamaAccessControl = {
441
- encode(message, writer = new wire_1.BinaryWriter()) {
442
- if (message.aclAddress !== "") {
443
- writer.uint32(10).string(message.aclAddress);
444
- }
445
- if (message.decryptionStorageIndex !== "") {
446
- writer.uint32(18).string(message.decryptionStorageIndex);
447
- }
448
- if (message.reencryptionStorageIndex !== "") {
449
- writer.uint32(26).string(message.reencryptionStorageIndex);
450
- }
451
- if (message.delegationsStorageIndex !== "") {
452
- writer.uint32(34).string(message.delegationsStorageIndex);
453
- }
454
- return writer;
455
- },
456
- decode(input, length) {
457
- const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
458
- const end = length === undefined ? reader.len : reader.pos + length;
459
- const message = createBaseZamaAccessControl();
460
- while (reader.pos < end) {
461
- const tag = reader.uint32();
462
- switch (tag >>> 3) {
463
- case 1: {
464
- if (tag !== 10) {
465
- break;
466
- }
467
- message.aclAddress = reader.string();
468
- continue;
469
- }
470
- case 2: {
471
- if (tag !== 18) {
472
- break;
473
- }
474
- message.decryptionStorageIndex = reader.string();
475
- continue;
476
- }
477
- case 3: {
478
- if (tag !== 26) {
479
- break;
480
- }
481
- message.reencryptionStorageIndex = reader.string();
482
- continue;
483
- }
484
- case 4: {
485
- if (tag !== 34) {
486
- break;
487
- }
488
- message.delegationsStorageIndex = reader.string();
489
- continue;
490
- }
491
- }
492
- if ((tag & 7) === 4 || tag === 0) {
493
- break;
494
- }
495
- reader.skip(tag & 7);
496
- }
497
- return message;
498
- },
499
- fromJSON(object) {
500
- return {
501
- aclAddress: isSet(object.aclAddress) ? globalThis.String(object.aclAddress) : "",
502
- decryptionStorageIndex: isSet(object.decryptionStorageIndex)
503
- ? globalThis.String(object.decryptionStorageIndex)
504
- : "",
505
- reencryptionStorageIndex: isSet(object.reencryptionStorageIndex)
506
- ? globalThis.String(object.reencryptionStorageIndex)
507
- : "",
508
- delegationsStorageIndex: isSet(object.delegationsStorageIndex)
509
- ? globalThis.String(object.delegationsStorageIndex)
510
- : "",
511
- };
512
- },
513
- toJSON(message) {
514
- const obj = {};
515
- if (message.aclAddress !== "") {
516
- obj.aclAddress = message.aclAddress;
517
- }
518
- if (message.decryptionStorageIndex !== "") {
519
- obj.decryptionStorageIndex = message.decryptionStorageIndex;
520
- }
521
- if (message.reencryptionStorageIndex !== "") {
522
- obj.reencryptionStorageIndex = message.reencryptionStorageIndex;
523
- }
524
- if (message.delegationsStorageIndex !== "") {
525
- obj.delegationsStorageIndex = message.delegationsStorageIndex;
526
- }
527
- return obj;
528
- },
529
- create(base) {
530
- return exports.ZamaAccessControl.fromPartial(base ?? {});
531
- },
532
- fromPartial(object) {
533
- const message = createBaseZamaAccessControl();
534
- message.aclAddress = object.aclAddress ?? "";
535
- message.decryptionStorageIndex = object.decryptionStorageIndex ?? "";
536
- message.reencryptionStorageIndex = object.reencryptionStorageIndex ?? "";
537
- message.delegationsStorageIndex = object.delegationsStorageIndex ?? "";
538
- return message;
539
- },
540
- };
541
- function createBaseIncoLiteAccessControl() {
542
- return {};
543
- }
544
- exports.IncoLiteAccessControl = {
545
- encode(_, writer = new wire_1.BinaryWriter()) {
546
- return writer;
547
- },
548
- decode(input, length) {
549
- const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
550
- const end = length === undefined ? reader.len : reader.pos + length;
551
- const message = createBaseIncoLiteAccessControl();
552
- while (reader.pos < end) {
553
- const tag = reader.uint32();
554
- switch (tag >>> 3) {
555
- }
556
- if ((tag & 7) === 4 || tag === 0) {
557
- break;
558
- }
559
- reader.skip(tag & 7);
560
- }
561
- return message;
562
- },
563
- fromJSON(_) {
564
- return {};
565
- },
566
- toJSON(_) {
567
- const obj = {};
568
- return obj;
569
- },
570
- create(base) {
571
- return exports.IncoLiteAccessControl.fromPartial(base ?? {});
572
- },
573
- fromPartial(_) {
574
- const message = createBaseIncoLiteAccessControl();
575
- return message;
576
- },
577
- };
578
- function createBaseCARoot() {
579
- return { hash: new Uint8Array(0) };
580
- }
581
- exports.CARoot = {
582
- encode(message, writer = new wire_1.BinaryWriter()) {
583
- if (message.hash.length !== 0) {
584
- writer.uint32(10).bytes(message.hash);
585
- }
586
- return writer;
587
- },
588
- decode(input, length) {
589
- const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
590
- const end = length === undefined ? reader.len : reader.pos + length;
591
- const message = createBaseCARoot();
592
- while (reader.pos < end) {
593
- const tag = reader.uint32();
594
- switch (tag >>> 3) {
595
- case 1: {
596
- if (tag !== 10) {
597
- break;
598
- }
599
- message.hash = reader.bytes();
600
- continue;
601
- }
602
- }
603
- if ((tag & 7) === 4 || tag === 0) {
604
- break;
605
- }
606
- reader.skip(tag & 7);
607
- }
608
- return message;
609
- },
610
- fromJSON(object) {
611
- return { hash: isSet(object.hash) ? bytesFromBase64(object.hash) : new Uint8Array(0) };
612
- },
613
- toJSON(message) {
614
- const obj = {};
615
- if (message.hash.length !== 0) {
616
- obj.hash = base64FromBytes(message.hash);
617
- }
618
- return obj;
619
- },
620
- create(base) {
621
- return exports.CARoot.fromPartial(base ?? {});
622
- },
623
- fromPartial(object) {
624
- const message = createBaseCARoot();
625
- message.hash = object.hash ?? new Uint8Array(0);
626
- return message;
627
- },
628
- };
629
- function createBaseFheEnvBlock() {
630
- return { hostChainId: "", keysetId: "", blockHash: "", blockHeight: 0 };
631
- }
632
- exports.FheEnvBlock = {
633
- encode(message, writer = new wire_1.BinaryWriter()) {
634
- if (message.hostChainId !== "") {
635
- writer.uint32(10).string(message.hostChainId);
636
- }
637
- if (message.keysetId !== "") {
638
- writer.uint32(18).string(message.keysetId);
639
- }
640
- if (message.blockHash !== "") {
641
- writer.uint32(26).string(message.blockHash);
642
- }
643
- if (message.blockHeight !== 0) {
644
- writer.uint32(32).uint64(message.blockHeight);
645
- }
646
- return writer;
647
- },
648
- decode(input, length) {
649
- const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
650
- const end = length === undefined ? reader.len : reader.pos + length;
651
- const message = createBaseFheEnvBlock();
652
- while (reader.pos < end) {
653
- const tag = reader.uint32();
654
- switch (tag >>> 3) {
655
- case 1: {
656
- if (tag !== 10) {
657
- break;
658
- }
659
- message.hostChainId = reader.string();
660
- continue;
661
- }
662
- case 2: {
663
- if (tag !== 18) {
664
- break;
665
- }
666
- message.keysetId = reader.string();
667
- continue;
668
- }
669
- case 3: {
670
- if (tag !== 26) {
671
- break;
672
- }
673
- message.blockHash = reader.string();
674
- continue;
675
- }
676
- case 4: {
677
- if (tag !== 32) {
678
- break;
679
- }
680
- message.blockHeight = longToNumber(reader.uint64());
681
- continue;
682
- }
683
- }
684
- if ((tag & 7) === 4 || tag === 0) {
685
- break;
686
- }
687
- reader.skip(tag & 7);
688
- }
689
- return message;
690
- },
691
- fromJSON(object) {
692
- return {
693
- hostChainId: isSet(object.hostChainId) ? globalThis.String(object.hostChainId) : "",
694
- keysetId: isSet(object.keysetId) ? globalThis.String(object.keysetId) : "",
695
- blockHash: isSet(object.blockHash) ? globalThis.String(object.blockHash) : "",
696
- blockHeight: isSet(object.blockHeight) ? globalThis.Number(object.blockHeight) : 0,
697
- };
698
- },
699
- toJSON(message) {
700
- const obj = {};
701
- if (message.hostChainId !== "") {
702
- obj.hostChainId = message.hostChainId;
703
- }
704
- if (message.keysetId !== "") {
705
- obj.keysetId = message.keysetId;
706
- }
707
- if (message.blockHash !== "") {
708
- obj.blockHash = message.blockHash;
709
- }
710
- if (message.blockHeight !== 0) {
711
- obj.blockHeight = Math.round(message.blockHeight);
712
- }
713
- return obj;
714
- },
715
- create(base) {
716
- return exports.FheEnvBlock.fromPartial(base ?? {});
717
- },
718
- fromPartial(object) {
719
- const message = createBaseFheEnvBlock();
720
- message.hostChainId = object.hostChainId ?? "";
721
- message.keysetId = object.keysetId ?? "";
722
- message.blockHash = object.blockHash ?? "";
723
- message.blockHeight = object.blockHeight ?? 0;
724
- return message;
725
- },
726
- };
727
- function createBaseBlockTopo() {
728
- return { parentHash: "" };
729
- }
730
- exports.BlockTopo = {
731
- encode(message, writer = new wire_1.BinaryWriter()) {
732
- if (message.parentHash !== "") {
733
- writer.uint32(10).string(message.parentHash);
734
- }
735
- return writer;
736
- },
737
- decode(input, length) {
738
- const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
739
- const end = length === undefined ? reader.len : reader.pos + length;
740
- const message = createBaseBlockTopo();
741
- while (reader.pos < end) {
742
- const tag = reader.uint32();
743
- switch (tag >>> 3) {
744
- case 1: {
745
- if (tag !== 10) {
746
- break;
747
- }
748
- message.parentHash = reader.string();
749
- continue;
750
- }
751
- }
752
- if ((tag & 7) === 4 || tag === 0) {
753
- break;
754
- }
755
- reader.skip(tag & 7);
756
- }
757
- return message;
758
- },
759
- fromJSON(object) {
760
- return { parentHash: isSet(object.parentHash) ? globalThis.String(object.parentHash) : "" };
761
- },
762
- toJSON(message) {
763
- const obj = {};
764
- if (message.parentHash !== "") {
765
- obj.parentHash = message.parentHash;
766
- }
767
- return obj;
768
- },
769
- create(base) {
770
- return exports.BlockTopo.fromPartial(base ?? {});
771
- },
772
- fromPartial(object) {
773
- const message = createBaseBlockTopo();
774
- message.parentHash = object.parentHash ?? "";
775
- return message;
776
- },
777
- };
778
- function createBaseBlockTopoStore() {
779
- return { parentHash: new Uint8Array(0) };
780
- }
781
- exports.BlockTopoStore = {
782
- encode(message, writer = new wire_1.BinaryWriter()) {
783
- if (message.parentHash.length !== 0) {
784
- writer.uint32(10).bytes(message.parentHash);
785
- }
786
- return writer;
787
- },
788
- decode(input, length) {
789
- const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
790
- const end = length === undefined ? reader.len : reader.pos + length;
791
- const message = createBaseBlockTopoStore();
792
- while (reader.pos < end) {
793
- const tag = reader.uint32();
794
- switch (tag >>> 3) {
795
- case 1: {
796
- if (tag !== 10) {
797
- break;
798
- }
799
- message.parentHash = reader.bytes();
800
- continue;
801
- }
802
- }
803
- if ((tag & 7) === 4 || tag === 0) {
804
- break;
805
- }
806
- reader.skip(tag & 7);
807
- }
808
- return message;
809
- },
810
- fromJSON(object) {
811
- return { parentHash: isSet(object.parentHash) ? bytesFromBase64(object.parentHash) : new Uint8Array(0) };
812
- },
813
- toJSON(message) {
814
- const obj = {};
815
- if (message.parentHash.length !== 0) {
816
- obj.parentHash = base64FromBytes(message.parentHash);
817
- }
818
- return obj;
819
- },
820
- create(base) {
821
- return exports.BlockTopoStore.fromPartial(base ?? {});
822
- },
823
- fromPartial(object) {
824
- const message = createBaseBlockTopoStore();
825
- message.parentHash = object.parentHash ?? new Uint8Array(0);
826
- return message;
827
- },
828
- };
829
- function createBaseHandleBinding() {
830
- return { ciphertextHash: new Uint8Array(0) };
831
- }
832
- exports.HandleBinding = {
833
- encode(message, writer = new wire_1.BinaryWriter()) {
834
- if (message.ciphertextHash.length !== 0) {
835
- writer.uint32(10).bytes(message.ciphertextHash);
836
- }
837
- return writer;
838
- },
839
- decode(input, length) {
840
- const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
841
- const end = length === undefined ? reader.len : reader.pos + length;
842
- const message = createBaseHandleBinding();
843
- while (reader.pos < end) {
844
- const tag = reader.uint32();
845
- switch (tag >>> 3) {
846
- case 1: {
847
- if (tag !== 10) {
848
- break;
849
- }
850
- message.ciphertextHash = reader.bytes();
851
- continue;
852
- }
853
- }
854
- if ((tag & 7) === 4 || tag === 0) {
855
- break;
856
- }
857
- reader.skip(tag & 7);
858
- }
859
- return message;
860
- },
861
- fromJSON(object) {
862
- return {
863
- ciphertextHash: isSet(object.ciphertextHash) ? bytesFromBase64(object.ciphertextHash) : new Uint8Array(0),
864
- };
865
- },
866
- toJSON(message) {
867
- const obj = {};
868
- if (message.ciphertextHash.length !== 0) {
869
- obj.ciphertextHash = base64FromBytes(message.ciphertextHash);
870
- }
871
- return obj;
872
- },
873
- create(base) {
874
- return exports.HandleBinding.fromPartial(base ?? {});
875
- },
876
- fromPartial(object) {
877
- const message = createBaseHandleBinding();
878
- message.ciphertextHash = object.ciphertextHash ?? new Uint8Array(0);
879
- return message;
880
- },
881
- };
882
- function createBaseHandleBindingEntry() {
883
- return { handle: "", binding: undefined };
884
- }
885
- exports.HandleBindingEntry = {
886
- encode(message, writer = new wire_1.BinaryWriter()) {
887
- if (message.handle !== "") {
888
- writer.uint32(10).string(message.handle);
889
- }
890
- if (message.binding !== undefined) {
891
- exports.HandleBinding.encode(message.binding, writer.uint32(18).fork()).join();
892
- }
893
- return writer;
894
- },
895
- decode(input, length) {
896
- const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
897
- const end = length === undefined ? reader.len : reader.pos + length;
898
- const message = createBaseHandleBindingEntry();
899
- while (reader.pos < end) {
900
- const tag = reader.uint32();
901
- switch (tag >>> 3) {
902
- case 1: {
903
- if (tag !== 10) {
904
- break;
905
- }
906
- message.handle = reader.string();
907
- continue;
908
- }
909
- case 2: {
910
- if (tag !== 18) {
911
- break;
912
- }
913
- message.binding = exports.HandleBinding.decode(reader, reader.uint32());
914
- continue;
915
- }
916
- }
917
- if ((tag & 7) === 4 || tag === 0) {
918
- break;
919
- }
920
- reader.skip(tag & 7);
921
- }
922
- return message;
923
- },
924
- fromJSON(object) {
925
- return {
926
- handle: isSet(object.handle) ? globalThis.String(object.handle) : "",
927
- binding: isSet(object.binding) ? exports.HandleBinding.fromJSON(object.binding) : undefined,
928
- };
929
- },
930
- toJSON(message) {
931
- const obj = {};
932
- if (message.handle !== "") {
933
- obj.handle = message.handle;
934
- }
935
- if (message.binding !== undefined) {
936
- obj.binding = exports.HandleBinding.toJSON(message.binding);
937
- }
938
- return obj;
939
- },
940
- create(base) {
941
- return exports.HandleBindingEntry.fromPartial(base ?? {});
942
- },
943
- fromPartial(object) {
944
- const message = createBaseHandleBindingEntry();
945
- message.handle = object.handle ?? "";
946
- message.binding = (object.binding !== undefined && object.binding !== null)
947
- ? exports.HandleBinding.fromPartial(object.binding)
948
- : undefined;
949
- return message;
950
- },
951
- };
952
- function bytesFromBase64(b64) {
953
- if (globalThis.Buffer) {
954
- return Uint8Array.from(globalThis.Buffer.from(b64, "base64"));
955
- }
956
- else {
957
- const bin = globalThis.atob(b64);
958
- const arr = new Uint8Array(bin.length);
959
- for (let i = 0; i < bin.length; ++i) {
960
- arr[i] = bin.charCodeAt(i);
961
- }
962
- return arr;
963
- }
964
- }
965
- function base64FromBytes(arr) {
966
- if (globalThis.Buffer) {
967
- return globalThis.Buffer.from(arr).toString("base64");
968
- }
969
- else {
970
- const bin = [];
971
- arr.forEach((byte) => {
972
- bin.push(globalThis.String.fromCharCode(byte));
973
- });
974
- return globalThis.btoa(bin.join(""));
975
- }
976
- }
977
- function longToNumber(int64) {
978
- const num = globalThis.Number(int64.toString());
979
- if (num > globalThis.Number.MAX_SAFE_INTEGER) {
980
- throw new globalThis.Error("Value is larger than Number.MAX_SAFE_INTEGER");
981
- }
982
- if (num < globalThis.Number.MIN_SAFE_INTEGER) {
983
- throw new globalThis.Error("Value is smaller than Number.MIN_SAFE_INTEGER");
984
- }
985
- return num;
986
- }
987
- function isSet(value) {
988
- return value !== null && value !== undefined;
989
- }
990
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvZ2VuZXJhdGVkL3RzL2luY28vZmhlL3YxL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxzREFBc0Q7QUFDdEQsWUFBWTtBQUNaLGdDQUFnQztBQUNoQyxpQ0FBaUM7QUFDakMsa0NBQWtDOzs7QUE2QmxDLDBDQTJDQztBQUVELHNDQThCQztBQXRHRCxvQkFBb0I7QUFDcEIsa0RBQXFFO0FBRXhELFFBQUEsZUFBZSxHQUFHLGFBQWEsQ0FBQztBQUU3Qzs7Ozs7R0FLRztBQUNILElBQVksT0FjWDtBQWRELFdBQVksT0FBTztJQUNqQix5REFBa0IsQ0FBQTtJQUNsQiwyREFBbUIsQ0FBQTtJQUNuQiwyREFBbUIsQ0FBQTtJQUNuQiw2REFBb0IsQ0FBQTtJQUNwQiw2REFBb0IsQ0FBQTtJQUNwQiw2REFBb0IsQ0FBQTtJQUNwQiwrREFBcUIsQ0FBQTtJQUNyQiwrREFBcUIsQ0FBQTtJQUNyQiwrREFBcUIsQ0FBQTtJQUNyQiwrREFBcUIsQ0FBQTtJQUNyQixrRUFBdUIsQ0FBQTtJQUN2QixrRUFBdUIsQ0FBQTtJQUN2QixzREFBaUIsQ0FBQTtBQUNuQixDQUFDLEVBZFcsT0FBTyx1QkFBUCxPQUFPLFFBY2xCO0FBRUQsU0FBZ0IsZUFBZSxDQUFDLE1BQVc7SUFDekMsUUFBUSxNQUFNLEVBQUUsQ0FBQztRQUNmLEtBQUssQ0FBQyxDQUFDO1FBQ1AsS0FBSyxnQkFBZ0I7WUFDbkIsT0FBTyxPQUFPLENBQUMsY0FBYyxDQUFDO1FBQ2hDLEtBQUssQ0FBQyxDQUFDO1FBQ1AsS0FBSyxpQkFBaUI7WUFDcEIsT0FBTyxPQUFPLENBQUMsZUFBZSxDQUFDO1FBQ2pDLEtBQUssQ0FBQyxDQUFDO1FBQ1AsS0FBSyxpQkFBaUI7WUFDcEIsT0FBTyxPQUFPLENBQUMsZUFBZSxDQUFDO1FBQ2pDLEtBQUssQ0FBQyxDQUFDO1FBQ1AsS0FBSyxrQkFB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