@inco/js 0.2.16 → 0.3.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 (535) hide show
  1. package/dist/cjs/attestedcompute/attested-compute.d.ts +38 -0
  2. package/dist/cjs/attestedcompute/attested-compute.js +98 -0
  3. package/dist/cjs/attestedcompute/types.d.ts +34 -0
  4. package/dist/cjs/attestedcompute/types.js +46 -0
  5. package/dist/{attesteddecrypt → cjs/attesteddecrypt}/attested-decrypt.d.ts +16 -11
  6. package/dist/cjs/attesteddecrypt/attested-decrypt.js +93 -0
  7. package/dist/cjs/attesteddecrypt/index.d.ts +2 -0
  8. package/dist/{generated/abis → cjs/attesteddecrypt}/index.js +3 -3
  9. package/dist/cjs/attesteddecrypt/types.d.ts +20 -0
  10. package/dist/{attesteddecrypt → cjs/attesteddecrypt}/types.js +1 -1
  11. package/dist/cjs/binary.js +82 -0
  12. package/dist/{chain.d.ts → cjs/chain.d.ts} +3 -0
  13. package/dist/cjs/chain.js +31 -0
  14. package/dist/{encryption → cjs/encryption}/encryption.d.ts +2 -2
  15. package/dist/cjs/encryption/encryption.js +109 -0
  16. package/dist/cjs/encryption/index.d.ts +1 -0
  17. package/dist/{encryption → cjs/encryption}/index.js +2 -2
  18. package/dist/{fhevm → cjs/fhevm}/fhe-environment.d.ts +1 -1
  19. package/dist/cjs/fhevm/fhe-environment.js +11 -0
  20. package/dist/{fhevm → cjs/fhevm}/fhevm.d.ts +1 -1
  21. package/dist/cjs/fhevm/fhevm.js +145 -0
  22. package/dist/cjs/fhevm/index.d.ts +1 -0
  23. package/dist/{fhevm → cjs/fhevm}/index.js +2 -2
  24. package/dist/{fhevm → cjs/fhevm}/reencrypt.d.ts +3 -3
  25. package/dist/cjs/fhevm/reencrypt.js +127 -0
  26. package/dist/{fhevm → cjs/fhevm}/tfhe.d.ts +1 -1
  27. package/dist/cjs/fhevm/tfhe.js +336 -0
  28. package/dist/{fhevm → cjs/fhevm}/types.d.ts +1 -1
  29. package/dist/cjs/fhevm/types.js +29 -0
  30. package/dist/cjs/generated/abis/addTwo.js +62 -0
  31. package/dist/cjs/generated/abis/inco-fhevm.js +681 -0
  32. package/dist/{generated → cjs/generated}/abis/lightning.d.ts +4 -0
  33. package/dist/cjs/generated/abis/lightning.js +1609 -0
  34. package/dist/{generated → cjs/generated}/es/cosmos/msg/v1/msg_pb.d.ts +1 -1
  35. package/dist/{generated → cjs/generated}/es/cosmos/msg/v1/msg_pb.js +6 -6
  36. package/dist/{generated → cjs/generated}/es/cosmos_proto/cosmos_pb.d.ts +1 -1
  37. package/dist/{generated → cjs/generated}/es/cosmos_proto/cosmos_pb.js +16 -16
  38. package/dist/{generated → cjs/generated}/es/google/api/annotations_pb.d.ts +1 -1
  39. package/dist/{generated → cjs/generated}/es/google/api/annotations_pb.js +4 -4
  40. package/dist/{generated → cjs/generated}/es/google/api/http_pb.d.ts +1 -1
  41. package/dist/{generated → cjs/generated}/es/google/api/http_pb.js +6 -6
  42. package/dist/{generated → cjs/generated}/es/inco/fhe/v1/events_pb.d.ts +1 -1
  43. package/dist/{generated → cjs/generated}/es/inco/fhe/v1/events_pb.js +6 -6
  44. package/dist/{generated → cjs/generated}/es/inco/fhe/v1/genesis_pb.d.ts +1 -1
  45. package/dist/{generated → cjs/generated}/es/inco/fhe/v1/genesis_pb.js +11 -11
  46. package/dist/{generated → cjs/generated}/es/inco/fhe/v1/query_pb.d.ts +1 -1
  47. package/dist/{generated → cjs/generated}/es/inco/fhe/v1/query_pb.js +23 -23
  48. package/dist/{generated → cjs/generated}/es/inco/fhe/v1/tx_pb.d.ts +1 -1
  49. package/dist/{generated → cjs/generated}/es/inco/fhe/v1/tx_pb.js +23 -23
  50. package/dist/{generated → cjs/generated}/es/inco/fhe/v1/types_pb.d.ts +1 -1
  51. package/dist/{generated → cjs/generated}/es/inco/fhe/v1/types_pb.js +17 -17
  52. package/dist/{generated → cjs/generated}/es/inco/kms/lite/v1/kms_service_pb.d.ts +239 -33
  53. package/dist/cjs/generated/es/inco/kms/lite/v1/kms_service_pb.js +161 -0
  54. package/dist/{generated → cjs/generated}/es/inco/kms/lite/v1/types_pb.d.ts +1 -1
  55. package/dist/{generated → cjs/generated}/es/inco/kms/lite/v1/types_pb.js +11 -11
  56. package/dist/{generated → cjs/generated}/es/inco/preflight/v1/genesis_pb.d.ts +1 -1
  57. package/dist/{generated → cjs/generated}/es/inco/preflight/v1/genesis_pb.js +6 -6
  58. package/dist/{generated → cjs/generated}/es/inco/preflight/v1/query_pb.d.ts +1 -1
  59. package/dist/{generated → cjs/generated}/es/inco/preflight/v1/query_pb.js +9 -9
  60. package/dist/{generated → cjs/generated}/es/inco/preflight/v1/tx_pb.d.ts +1 -1
  61. package/dist/{generated → cjs/generated}/es/inco/preflight/v1/tx_pb.js +11 -11
  62. package/dist/{generated → cjs/generated}/es/inco/preflight/v1/types_pb.d.ts +1 -1
  63. package/dist/{generated → cjs/generated}/es/inco/preflight/v1/types_pb.js +9 -9
  64. package/dist/{generated → cjs/generated}/fhe-environments.js +1 -1
  65. package/dist/{generated → cjs/generated}/lightning.d.ts +42 -0
  66. package/dist/{generated → cjs/generated}/lightning.js +45 -1
  67. package/dist/cjs/generated/local-node.d.ts +34 -0
  68. package/dist/cjs/generated/local-node.js +38 -0
  69. package/dist/{generated → cjs/generated}/ts/amino/amino.js +2 -2
  70. package/dist/{generated → cjs/generated}/ts/cometbft/abci/v1/types.js +49 -49
  71. package/dist/cjs/generated/ts/cometbft/crypto/v1/keys.js +108 -0
  72. package/dist/cjs/generated/ts/cometbft/crypto/v1/proof.js +433 -0
  73. package/dist/cjs/generated/ts/cometbft/types/v1/params.js +716 -0
  74. package/dist/cjs/generated/ts/cometbft/types/v1/validator.js +358 -0
  75. package/dist/cjs/generated/ts/cosmos/app/v1alpha1/module.js +221 -0
  76. package/dist/{generated → cjs/generated}/ts/cosmos/msg/v1/msg.js +2 -2
  77. package/dist/cjs/generated/ts/cosmos_proto/cosmos.js +216 -0
  78. package/dist/{generated → cjs/generated}/ts/gogoproto/gogo.js +2 -2
  79. package/dist/{generated → cjs/generated}/ts/google/api/annotations.js +2 -2
  80. package/dist/cjs/generated/ts/google/api/http.js +356 -0
  81. package/dist/{generated → cjs/generated}/ts/google/protobuf/descriptor.js +35 -35
  82. package/dist/cjs/generated/ts/google/protobuf/duration.js +93 -0
  83. package/dist/cjs/generated/ts/google/protobuf/timestamp.js +93 -0
  84. package/dist/cjs/generated/ts/google/protobuf/wrappers.js +509 -0
  85. package/dist/cjs/generated/ts/inco/abci/v1/types.js +73 -0
  86. package/dist/cjs/generated/ts/inco/fhe/module/v1/module.js +66 -0
  87. package/dist/cjs/generated/ts/inco/fhe/v1/events.js +190 -0
  88. package/dist/cjs/generated/ts/inco/fhe/v1/genesis.js +714 -0
  89. package/dist/{generated → cjs/generated}/ts/inco/fhe/v1/query.d.ts +19 -19
  90. package/dist/{generated → cjs/generated}/ts/inco/fhe/v1/query.js +20 -20
  91. package/dist/{generated → cjs/generated}/ts/inco/fhe/v1/tx.d.ts +19 -19
  92. package/dist/cjs/generated/ts/inco/fhe/v1/tx.js +1236 -0
  93. package/dist/cjs/generated/ts/inco/fhe/v1/types.js +990 -0
  94. package/dist/cjs/generated/ts/inco/originchain/module/v1/module.js +66 -0
  95. package/dist/cjs/generated/ts/inco/originchain/v1/abci.js +331 -0
  96. package/dist/cjs/generated/ts/inco/originchain/v1/events.js +216 -0
  97. package/dist/cjs/generated/ts/inco/originchain/v1/genesis.js +69 -0
  98. package/dist/{generated → cjs/generated}/ts/inco/originchain/v1/query.d.ts +5 -5
  99. package/dist/cjs/generated/ts/inco/originchain/v1/query.js +280 -0
  100. package/dist/{generated → cjs/generated}/ts/inco/originchain/v1/tx.d.ts +3 -3
  101. package/dist/cjs/generated/ts/inco/originchain/v1/tx.js +140 -0
  102. package/dist/cjs/generated/ts/inco/originchain/v1/types.js +203 -0
  103. package/dist/cjs/generated/ts/inco/preflight/module/v1/module.js +66 -0
  104. package/dist/cjs/generated/ts/inco/preflight/v1/genesis.js +185 -0
  105. package/dist/{generated → cjs/generated}/ts/inco/preflight/v1/query.d.ts +5 -5
  106. package/dist/cjs/generated/ts/inco/preflight/v1/query.js +259 -0
  107. package/dist/{generated → cjs/generated}/ts/inco/preflight/v1/tx.d.ts +7 -7
  108. package/dist/cjs/generated/ts/inco/preflight/v1/tx.js +448 -0
  109. package/dist/cjs/generated/ts/inco/preflight/v1/types.js +398 -0
  110. package/dist/{handle.d.ts → cjs/handle.d.ts} +1 -1
  111. package/dist/{handle.js → cjs/handle.js} +5 -5
  112. package/dist/cjs/index.d.ts +5 -0
  113. package/dist/{index.js → cjs/index.js} +5 -5
  114. package/dist/{kms → cjs/kms}/client.d.ts +2 -2
  115. package/dist/{kms → cjs/kms}/client.js +3 -3
  116. package/dist/{l1 → cjs/l1}/client.d.ts +6 -6
  117. package/dist/{l1 → cjs/l1}/client.js +8 -8
  118. package/dist/cjs/l1/index.d.ts +2 -0
  119. package/dist/{l1 → cjs/l1}/index.js +3 -3
  120. package/dist/{l1 → cjs/l1}/preflight.d.ts +3 -3
  121. package/dist/cjs/l1/preflight.js +42 -0
  122. package/dist/cjs/lite/attested-compute.d.ts +4 -0
  123. package/dist/cjs/lite/attested-compute.js +6 -0
  124. package/dist/{lite → cjs/lite}/attested-decrypt.d.ts +1 -1
  125. package/dist/cjs/lite/attested-decrypt.js +6 -0
  126. package/dist/{lite → cjs/lite}/deployments.d.ts +2 -2
  127. package/dist/cjs/lite/deployments.js +21 -0
  128. package/dist/{lite → cjs/lite}/ecies.d.ts +6 -6
  129. package/dist/cjs/lite/ecies.js +135 -0
  130. package/dist/{lite → cjs/lite}/hadu.d.ts +1 -1
  131. package/dist/cjs/lite/hadu.js +41 -0
  132. package/dist/cjs/lite/index.d.ts +7 -0
  133. package/dist/{attesteddecrypt → cjs/lite}/index.js +7 -3
  134. package/dist/{lite → cjs/lite}/lightning.d.ts +20 -9
  135. package/dist/cjs/lite/lightning.js +217 -0
  136. package/dist/{lite → cjs/lite}/reencrypt.d.ts +7 -6
  137. package/dist/cjs/lite/reencrypt.js +142 -0
  138. package/dist/cjs/local/index.d.ts +1 -0
  139. package/dist/{local → cjs/local}/index.js +2 -2
  140. package/dist/{local → cjs/local}/local-node.d.ts +4 -1
  141. package/dist/cjs/local/local-node.js +33 -0
  142. package/dist/{reencryption → cjs/reencryption}/eip712.js +9 -7
  143. package/dist/cjs/reencryption/index.d.ts +2 -0
  144. package/dist/cjs/reencryption/index.js +19 -0
  145. package/dist/{reencryption → cjs/reencryption}/types.d.ts +6 -8
  146. package/dist/{reencryption → cjs/reencryption}/types.js +1 -1
  147. package/dist/{retry.js → cjs/retry.js} +1 -1
  148. package/dist/{schema.js → cjs/schema.js} +1 -1
  149. package/dist/{viem.d.ts → cjs/viem.d.ts} +363 -1
  150. package/dist/cjs/viem.js +12 -0
  151. package/dist/esm/attestedcompute/attested-compute.d.ts +38 -0
  152. package/dist/esm/attestedcompute/attested-compute.js +95 -0
  153. package/dist/esm/attestedcompute/types.d.ts +34 -0
  154. package/dist/esm/attestedcompute/types.js +42 -0
  155. package/dist/esm/attesteddecrypt/attested-decrypt.d.ts +40 -0
  156. package/dist/esm/attesteddecrypt/attested-decrypt.js +89 -0
  157. package/dist/esm/attesteddecrypt/index.d.ts +2 -0
  158. package/dist/esm/attesteddecrypt/index.js +3 -0
  159. package/dist/esm/attesteddecrypt/types.d.ts +20 -0
  160. package/dist/esm/attesteddecrypt/types.js +12 -0
  161. package/dist/esm/binary.d.ts +21 -0
  162. package/dist/esm/binary.js +67 -0
  163. package/dist/esm/chain.d.ts +25 -0
  164. package/dist/esm/chain.js +27 -0
  165. package/dist/esm/encryption/encryption.d.ts +119 -0
  166. package/dist/esm/encryption/encryption.js +101 -0
  167. package/dist/esm/encryption/index.d.ts +1 -0
  168. package/dist/esm/encryption/index.js +2 -0
  169. package/dist/esm/fhevm/fhe-environment.d.ts +9 -0
  170. package/dist/esm/fhevm/fhe-environment.js +8 -0
  171. package/dist/esm/fhevm/fhevm.d.ts +41 -0
  172. package/dist/esm/fhevm/fhevm.js +139 -0
  173. package/dist/esm/fhevm/index.d.ts +1 -0
  174. package/dist/esm/fhevm/index.js +2 -0
  175. package/dist/esm/fhevm/reencrypt.d.ts +20 -0
  176. package/dist/esm/fhevm/reencrypt.js +123 -0
  177. package/dist/esm/fhevm/tfhe.d.ts +74 -0
  178. package/dist/esm/fhevm/tfhe.js +328 -0
  179. package/dist/esm/fhevm/types.d.ts +3 -0
  180. package/dist/esm/fhevm/types.js +26 -0
  181. package/dist/esm/generated/abis/addTwo.d.ts +83 -0
  182. package/dist/{generated → esm/generated}/abis/addTwo.js +2 -5
  183. package/dist/esm/generated/abis/inco-fhevm.d.ts +874 -0
  184. package/dist/{generated → esm/generated}/abis/inco-fhevm.js +3 -6
  185. package/dist/esm/generated/abis/lightning.d.ts +2230 -0
  186. package/dist/{generated → esm/generated}/abis/lightning.js +6 -6
  187. package/dist/esm/generated/es/cosmos/msg/v1/msg_pb.d.ts +29 -0
  188. package/dist/esm/generated/es/cosmos/msg/v1/msg_pb.js +33 -0
  189. package/dist/esm/generated/es/cosmos_proto/cosmos_pb.d.ts +174 -0
  190. package/dist/esm/generated/es/cosmos_proto/cosmos_pb.js +115 -0
  191. package/dist/esm/generated/es/google/api/annotations_pb.d.ts +13 -0
  192. package/dist/esm/generated/es/google/api/annotations_pb.js +27 -0
  193. package/dist/esm/generated/es/google/api/http_pb.d.ts +440 -0
  194. package/dist/esm/generated/es/google/api/http_pb.js +34 -0
  195. package/dist/esm/generated/es/inco/fhe/v1/events_pb.d.ts +79 -0
  196. package/dist/esm/generated/es/inco/fhe/v1/events_pb.js +21 -0
  197. package/dist/esm/generated/es/inco/fhe/v1/genesis_pb.d.ts +252 -0
  198. package/dist/esm/generated/es/inco/fhe/v1/genesis_pb.js +46 -0
  199. package/dist/esm/generated/es/inco/fhe/v1/query_pb.d.ts +569 -0
  200. package/dist/esm/generated/es/inco/fhe/v1/query_pb.js +108 -0
  201. package/dist/esm/generated/es/inco/fhe/v1/tx_pb.d.ts +494 -0
  202. package/dist/esm/generated/es/inco/fhe/v1/tx_pb.js +108 -0
  203. package/dist/esm/generated/es/inco/fhe/v1/types_pb.d.ts +419 -0
  204. package/dist/esm/generated/es/inco/fhe/v1/types_pb.js +133 -0
  205. package/dist/esm/generated/es/inco/kms/lite/v1/kms_service_pb.d.ts +526 -0
  206. package/dist/esm/generated/es/inco/kms/lite/v1/kms_service_pb.js +158 -0
  207. package/dist/esm/generated/es/inco/kms/lite/v1/types_pb.d.ts +212 -0
  208. package/dist/esm/generated/es/inco/kms/lite/v1/types_pb.js +44 -0
  209. package/dist/esm/generated/es/inco/preflight/v1/genesis_pb.d.ts +56 -0
  210. package/dist/esm/generated/es/inco/preflight/v1/genesis_pb.js +20 -0
  211. package/dist/esm/generated/es/inco/preflight/v1/query_pb.d.ts +100 -0
  212. package/dist/esm/generated/es/inco/preflight/v1/query_pb.js +38 -0
  213. package/dist/esm/generated/es/inco/preflight/v1/tx_pb.d.ts +193 -0
  214. package/dist/esm/generated/es/inco/preflight/v1/tx_pb.js +48 -0
  215. package/dist/esm/generated/es/inco/preflight/v1/types_pb.d.ts +144 -0
  216. package/dist/esm/generated/es/inco/preflight/v1/types_pb.js +34 -0
  217. package/dist/esm/generated/fhe-environments.d.ts +14 -0
  218. package/dist/esm/generated/fhe-environments.js +15 -0
  219. package/dist/esm/generated/lightning.d.ts +253 -0
  220. package/dist/esm/generated/lightning.js +267 -0
  221. package/dist/esm/generated/local-node.d.ts +34 -0
  222. package/dist/esm/generated/local-node.js +35 -0
  223. package/dist/esm/generated/ts/amino/amino.d.ts +1 -0
  224. package/dist/esm/generated/ts/amino/amino.js +8 -0
  225. package/dist/esm/generated/ts/cometbft/abci/v1/types.d.ts +597 -0
  226. package/dist/esm/generated/ts/cometbft/abci/v1/types.js +5063 -0
  227. package/dist/esm/generated/ts/cometbft/crypto/v1/keys.d.ts +27 -0
  228. package/dist/esm/generated/ts/cometbft/crypto/v1/keys.js +105 -0
  229. package/dist/esm/generated/ts/cometbft/crypto/v1/proof.d.ts +60 -0
  230. package/dist/esm/generated/ts/cometbft/crypto/v1/proof.js +430 -0
  231. package/dist/esm/generated/ts/cometbft/types/v1/params.d.ts +179 -0
  232. package/dist/esm/generated/ts/cometbft/types/v1/params.js +713 -0
  233. package/dist/esm/generated/ts/cometbft/types/v1/validator.d.ts +61 -0
  234. package/dist/esm/generated/ts/cometbft/types/v1/validator.js +353 -0
  235. package/dist/esm/generated/ts/cosmos/app/v1alpha1/module.d.ts +104 -0
  236. package/dist/esm/generated/ts/cosmos/app/v1alpha1/module.js +218 -0
  237. package/dist/esm/generated/ts/cosmos/msg/v1/msg.d.ts +1 -0
  238. package/dist/esm/generated/ts/cosmos/msg/v1/msg.js +8 -0
  239. package/dist/esm/generated/ts/cosmos_proto/cosmos.d.ts +80 -0
  240. package/dist/esm/generated/ts/cosmos_proto/cosmos.js +211 -0
  241. package/dist/esm/generated/ts/gogoproto/gogo.d.ts +1 -0
  242. package/dist/esm/generated/ts/gogoproto/gogo.js +8 -0
  243. package/dist/esm/generated/ts/google/api/annotations.d.ts +1 -0
  244. package/dist/esm/generated/ts/google/api/annotations.js +8 -0
  245. package/dist/esm/generated/ts/google/api/http.d.ts +371 -0
  246. package/dist/esm/generated/ts/google/api/http.js +353 -0
  247. package/dist/esm/generated/ts/google/protobuf/descriptor.d.ts +1228 -0
  248. package/dist/esm/generated/ts/google/protobuf/descriptor.js +5070 -0
  249. package/dist/esm/generated/ts/google/protobuf/duration.d.ts +99 -0
  250. package/dist/esm/generated/ts/google/protobuf/duration.js +90 -0
  251. package/dist/esm/generated/ts/google/protobuf/timestamp.d.ts +128 -0
  252. package/dist/esm/generated/ts/google/protobuf/timestamp.js +90 -0
  253. package/dist/esm/generated/ts/google/protobuf/wrappers.d.ts +111 -0
  254. package/dist/esm/generated/ts/google/protobuf/wrappers.js +506 -0
  255. package/dist/esm/generated/ts/inco/abci/v1/types.d.ts +35 -0
  256. package/dist/esm/generated/ts/inco/abci/v1/types.js +70 -0
  257. package/dist/esm/generated/ts/inco/fhe/module/v1/module.d.ts +31 -0
  258. package/dist/esm/generated/ts/inco/fhe/module/v1/module.js +63 -0
  259. package/dist/esm/generated/ts/inco/fhe/v1/events.d.ts +66 -0
  260. package/dist/esm/generated/ts/inco/fhe/v1/events.js +187 -0
  261. package/dist/esm/generated/ts/inco/fhe/v1/genesis.d.ts +117 -0
  262. package/dist/esm/generated/ts/inco/fhe/v1/genesis.js +711 -0
  263. package/dist/esm/generated/ts/inco/fhe/v1/query.d.ts +366 -0
  264. package/dist/esm/generated/ts/inco/fhe/v1/query.js +1391 -0
  265. package/dist/esm/generated/ts/inco/fhe/v1/tx.d.ts +409 -0
  266. package/dist/esm/generated/ts/inco/fhe/v1/tx.js +1233 -0
  267. package/dist/esm/generated/ts/inco/fhe/v1/types.d.ts +225 -0
  268. package/dist/esm/generated/ts/inco/fhe/v1/types.js +985 -0
  269. package/dist/esm/generated/ts/inco/originchain/module/v1/module.d.ts +30 -0
  270. package/dist/esm/generated/ts/inco/originchain/module/v1/module.js +63 -0
  271. package/dist/esm/generated/ts/inco/originchain/v1/abci.d.ts +80 -0
  272. package/dist/esm/generated/ts/inco/originchain/v1/abci.js +328 -0
  273. package/dist/esm/generated/ts/inco/originchain/v1/events.d.ts +60 -0
  274. package/dist/esm/generated/ts/inco/originchain/v1/events.js +213 -0
  275. package/dist/esm/generated/ts/inco/originchain/v1/genesis.d.ts +28 -0
  276. package/dist/esm/generated/ts/inco/originchain/v1/genesis.js +66 -0
  277. package/dist/esm/generated/ts/inco/originchain/v1/query.d.ts +116 -0
  278. package/dist/esm/generated/ts/inco/originchain/v1/query.js +277 -0
  279. package/dist/esm/generated/ts/inco/originchain/v1/tx.d.ts +89 -0
  280. package/dist/esm/generated/ts/inco/originchain/v1/tx.js +137 -0
  281. package/dist/esm/generated/ts/inco/originchain/v1/types.d.ts +58 -0
  282. package/dist/esm/generated/ts/inco/originchain/v1/types.js +200 -0
  283. package/dist/esm/generated/ts/inco/preflight/module/v1/module.d.ts +31 -0
  284. package/dist/esm/generated/ts/inco/preflight/module/v1/module.js +63 -0
  285. package/dist/esm/generated/ts/inco/preflight/v1/genesis.d.ts +41 -0
  286. package/dist/esm/generated/ts/inco/preflight/v1/genesis.js +182 -0
  287. package/dist/esm/generated/ts/inco/preflight/v1/query.d.ts +93 -0
  288. package/dist/esm/generated/ts/inco/preflight/v1/query.js +256 -0
  289. package/dist/esm/generated/ts/inco/preflight/v1/tx.d.ts +187 -0
  290. package/dist/esm/generated/ts/inco/preflight/v1/tx.js +445 -0
  291. package/dist/esm/generated/ts/inco/preflight/v1/types.d.ts +84 -0
  292. package/dist/esm/generated/ts/inco/preflight/v1/types.js +395 -0
  293. package/dist/esm/handle.d.ts +41 -0
  294. package/dist/esm/handle.js +94 -0
  295. package/dist/esm/index.d.ts +5 -0
  296. package/dist/esm/index.js +6 -0
  297. package/dist/esm/kms/client.d.ts +8 -0
  298. package/dist/esm/kms/client.js +35 -0
  299. package/dist/esm/l1/client.d.ts +35 -0
  300. package/dist/esm/l1/client.js +93 -0
  301. package/dist/esm/l1/index.d.ts +2 -0
  302. package/dist/esm/l1/index.js +3 -0
  303. package/dist/esm/l1/preflight.d.ts +20 -0
  304. package/dist/esm/l1/preflight.js +39 -0
  305. package/dist/esm/lite/attested-compute.d.ts +4 -0
  306. package/dist/esm/lite/attested-compute.js +3 -0
  307. package/dist/esm/lite/attested-decrypt.d.ts +3 -0
  308. package/dist/esm/lite/attested-decrypt.js +3 -0
  309. package/dist/esm/lite/deployments.d.ts +6 -0
  310. package/dist/esm/lite/deployments.js +17 -0
  311. package/dist/esm/lite/ecies.d.ts +26 -0
  312. package/dist/esm/lite/ecies.js +124 -0
  313. package/dist/esm/lite/hadu.d.ts +24 -0
  314. package/dist/esm/lite/hadu.js +36 -0
  315. package/dist/esm/lite/index.d.ts +7 -0
  316. package/dist/esm/lite/index.js +7 -0
  317. package/dist/esm/lite/lightning.d.ts +132 -0
  318. package/dist/esm/lite/lightning.js +213 -0
  319. package/dist/esm/lite/reencrypt.d.ts +24 -0
  320. package/dist/esm/lite/reencrypt.js +132 -0
  321. package/dist/esm/local/index.d.ts +1 -0
  322. package/dist/esm/local/index.js +2 -0
  323. package/dist/esm/local/local-node.d.ts +22 -0
  324. package/dist/esm/local/local-node.js +29 -0
  325. package/dist/esm/reencryption/eip712.d.ts +29 -0
  326. package/dist/esm/reencryption/eip712.js +83 -0
  327. package/dist/esm/reencryption/index.d.ts +2 -0
  328. package/dist/esm/reencryption/index.js +3 -0
  329. package/dist/esm/reencryption/types.d.ts +25 -0
  330. package/dist/esm/reencryption/types.js +2 -0
  331. package/dist/esm/retry.d.ts +15 -0
  332. package/dist/esm/retry.js +25 -0
  333. package/dist/esm/schema.d.ts +4 -0
  334. package/dist/esm/schema.js +15 -0
  335. package/dist/esm/viem.d.ts +789 -0
  336. package/dist/esm/viem.js +8 -0
  337. package/dist/types/attestedcompute/attested-compute.d.ts +38 -0
  338. package/dist/types/attestedcompute/types.d.ts +34 -0
  339. package/dist/types/attesteddecrypt/attested-decrypt.d.ts +40 -0
  340. package/dist/types/attesteddecrypt/index.d.ts +2 -0
  341. package/dist/types/attesteddecrypt/types.d.ts +20 -0
  342. package/dist/types/binary.d.ts +21 -0
  343. package/dist/types/chain.d.ts +25 -0
  344. package/dist/types/encryption/encryption.d.ts +119 -0
  345. package/dist/types/encryption/index.d.ts +1 -0
  346. package/dist/types/fhevm/fhe-environment.d.ts +9 -0
  347. package/dist/types/fhevm/fhevm.d.ts +41 -0
  348. package/dist/types/fhevm/index.d.ts +1 -0
  349. package/dist/types/fhevm/reencrypt.d.ts +20 -0
  350. package/dist/types/fhevm/tfhe.d.ts +74 -0
  351. package/dist/types/fhevm/types.d.ts +3 -0
  352. package/dist/types/generated/abis/addTwo.d.ts +83 -0
  353. package/dist/types/generated/abis/inco-fhevm.d.ts +874 -0
  354. package/dist/types/generated/abis/lightning.d.ts +2230 -0
  355. package/dist/types/generated/es/cosmos/msg/v1/msg_pb.d.ts +29 -0
  356. package/dist/types/generated/es/cosmos_proto/cosmos_pb.d.ts +174 -0
  357. package/dist/types/generated/es/google/api/annotations_pb.d.ts +13 -0
  358. package/dist/types/generated/es/google/api/http_pb.d.ts +440 -0
  359. package/dist/types/generated/es/inco/fhe/v1/events_pb.d.ts +79 -0
  360. package/dist/types/generated/es/inco/fhe/v1/genesis_pb.d.ts +252 -0
  361. package/dist/types/generated/es/inco/fhe/v1/query_pb.d.ts +569 -0
  362. package/dist/types/generated/es/inco/fhe/v1/tx_pb.d.ts +494 -0
  363. package/dist/types/generated/es/inco/fhe/v1/types_pb.d.ts +419 -0
  364. package/dist/types/generated/es/inco/kms/lite/v1/kms_service_pb.d.ts +526 -0
  365. package/dist/types/generated/es/inco/kms/lite/v1/types_pb.d.ts +212 -0
  366. package/dist/types/generated/es/inco/preflight/v1/genesis_pb.d.ts +56 -0
  367. package/dist/types/generated/es/inco/preflight/v1/query_pb.d.ts +100 -0
  368. package/dist/types/generated/es/inco/preflight/v1/tx_pb.d.ts +193 -0
  369. package/dist/types/generated/es/inco/preflight/v1/types_pb.d.ts +144 -0
  370. package/dist/types/generated/fhe-environments.d.ts +14 -0
  371. package/dist/types/generated/lightning.d.ts +253 -0
  372. package/dist/types/generated/local-node.d.ts +34 -0
  373. package/dist/types/generated/ts/amino/amino.d.ts +1 -0
  374. package/dist/types/generated/ts/cometbft/abci/v1/types.d.ts +597 -0
  375. package/dist/types/generated/ts/cometbft/crypto/v1/keys.d.ts +27 -0
  376. package/dist/types/generated/ts/cometbft/crypto/v1/proof.d.ts +60 -0
  377. package/dist/types/generated/ts/cometbft/types/v1/params.d.ts +179 -0
  378. package/dist/types/generated/ts/cometbft/types/v1/validator.d.ts +61 -0
  379. package/dist/types/generated/ts/cosmos/app/v1alpha1/module.d.ts +104 -0
  380. package/dist/types/generated/ts/cosmos/msg/v1/msg.d.ts +1 -0
  381. package/dist/types/generated/ts/cosmos_proto/cosmos.d.ts +80 -0
  382. package/dist/types/generated/ts/gogoproto/gogo.d.ts +1 -0
  383. package/dist/types/generated/ts/google/api/annotations.d.ts +1 -0
  384. package/dist/types/generated/ts/google/api/http.d.ts +371 -0
  385. package/dist/types/generated/ts/google/protobuf/descriptor.d.ts +1228 -0
  386. package/dist/types/generated/ts/google/protobuf/duration.d.ts +99 -0
  387. package/dist/types/generated/ts/google/protobuf/timestamp.d.ts +128 -0
  388. package/dist/types/generated/ts/google/protobuf/wrappers.d.ts +111 -0
  389. package/dist/types/generated/ts/inco/abci/v1/types.d.ts +35 -0
  390. package/dist/types/generated/ts/inco/fhe/module/v1/module.d.ts +31 -0
  391. package/dist/types/generated/ts/inco/fhe/v1/events.d.ts +66 -0
  392. package/dist/types/generated/ts/inco/fhe/v1/genesis.d.ts +117 -0
  393. package/dist/types/generated/ts/inco/fhe/v1/query.d.ts +366 -0
  394. package/dist/types/generated/ts/inco/fhe/v1/tx.d.ts +409 -0
  395. package/dist/types/generated/ts/inco/fhe/v1/types.d.ts +225 -0
  396. package/dist/types/generated/ts/inco/originchain/module/v1/module.d.ts +30 -0
  397. package/dist/types/generated/ts/inco/originchain/v1/abci.d.ts +80 -0
  398. package/dist/types/generated/ts/inco/originchain/v1/events.d.ts +60 -0
  399. package/dist/types/generated/ts/inco/originchain/v1/genesis.d.ts +28 -0
  400. package/dist/types/generated/ts/inco/originchain/v1/query.d.ts +116 -0
  401. package/dist/types/generated/ts/inco/originchain/v1/tx.d.ts +89 -0
  402. package/dist/types/generated/ts/inco/originchain/v1/types.d.ts +58 -0
  403. package/dist/types/generated/ts/inco/preflight/module/v1/module.d.ts +31 -0
  404. package/dist/types/generated/ts/inco/preflight/v1/genesis.d.ts +41 -0
  405. package/dist/types/generated/ts/inco/preflight/v1/query.d.ts +93 -0
  406. package/dist/types/generated/ts/inco/preflight/v1/tx.d.ts +187 -0
  407. package/dist/types/generated/ts/inco/preflight/v1/types.d.ts +84 -0
  408. package/dist/types/handle.d.ts +41 -0
  409. package/dist/types/index.d.ts +5 -0
  410. package/dist/types/kms/client.d.ts +8 -0
  411. package/dist/types/l1/client.d.ts +35 -0
  412. package/dist/types/l1/index.d.ts +2 -0
  413. package/dist/types/l1/preflight.d.ts +20 -0
  414. package/dist/types/lite/attested-compute.d.ts +4 -0
  415. package/dist/types/lite/attested-decrypt.d.ts +3 -0
  416. package/dist/types/lite/deployments.d.ts +6 -0
  417. package/dist/types/lite/ecies.d.ts +26 -0
  418. package/dist/types/lite/hadu.d.ts +24 -0
  419. package/dist/types/lite/index.d.ts +7 -0
  420. package/dist/types/lite/lightning.d.ts +132 -0
  421. package/dist/types/lite/reencrypt.d.ts +24 -0
  422. package/dist/types/local/index.d.ts +1 -0
  423. package/dist/types/local/local-node.d.ts +22 -0
  424. package/dist/types/reencryption/eip712.d.ts +29 -0
  425. package/dist/types/reencryption/index.d.ts +2 -0
  426. package/dist/types/reencryption/types.d.ts +25 -0
  427. package/dist/types/retry.d.ts +15 -0
  428. package/dist/types/schema.d.ts +4 -0
  429. package/dist/types/viem.d.ts +789 -0
  430. package/package.json +67 -15
  431. package/dist/attesteddecrypt/attested-decrypt.js +0 -79
  432. package/dist/attesteddecrypt/index.d.ts +0 -2
  433. package/dist/attesteddecrypt/types.d.ts +0 -28
  434. package/dist/binary.js +0 -82
  435. package/dist/chain.js +0 -28
  436. package/dist/encryption/encryption.js +0 -109
  437. package/dist/encryption/index.d.ts +0 -1
  438. package/dist/fhevm/fhe-environment.js +0 -11
  439. package/dist/fhevm/fhevm.js +0 -145
  440. package/dist/fhevm/index.d.ts +0 -1
  441. package/dist/fhevm/reencrypt.js +0 -127
  442. package/dist/fhevm/tfhe.js +0 -336
  443. package/dist/fhevm/types.js +0 -29
  444. package/dist/generated/abis/index.d.ts +0 -2
  445. package/dist/generated/es/cosmos/ics23/v1/proofs_pb.d.ts +0 -593
  446. package/dist/generated/es/cosmos/ics23/v1/proofs_pb.js +0 -201
  447. package/dist/generated/es/inco/kms/lite/v1/kms_service_pb.js +0 -66
  448. package/dist/generated/es/kms/base_pb.d.ts +0 -765
  449. package/dist/generated/es/kms/base_pb.js +0 -241
  450. package/dist/generated/es/sf/ethereum/type/v2/type_pb.d.ts +0 -1736
  451. package/dist/generated/es/sf/ethereum/type/v2/type_pb.js +0 -574
  452. package/dist/generated/local-node.d.ts +0 -7
  453. package/dist/generated/local-node.js +0 -11
  454. package/dist/generated/ts/cometbft/crypto/v1/keys.js +0 -108
  455. package/dist/generated/ts/cometbft/crypto/v1/proof.js +0 -433
  456. package/dist/generated/ts/cometbft/types/v1/params.js +0 -716
  457. package/dist/generated/ts/cometbft/types/v1/validator.js +0 -358
  458. package/dist/generated/ts/cosmos/app/v1alpha1/module.js +0 -221
  459. package/dist/generated/ts/cosmos_proto/cosmos.js +0 -216
  460. package/dist/generated/ts/google/api/http.js +0 -356
  461. package/dist/generated/ts/google/protobuf/duration.js +0 -93
  462. package/dist/generated/ts/google/protobuf/timestamp.js +0 -93
  463. package/dist/generated/ts/google/protobuf/wrappers.js +0 -509
  464. package/dist/generated/ts/inco/abci/v1/types.js +0 -73
  465. package/dist/generated/ts/inco/fhe/module/v1/module.js +0 -66
  466. package/dist/generated/ts/inco/fhe/v1/events.js +0 -190
  467. package/dist/generated/ts/inco/fhe/v1/genesis.js +0 -714
  468. package/dist/generated/ts/inco/fhe/v1/tx.js +0 -1236
  469. package/dist/generated/ts/inco/fhe/v1/types.js +0 -990
  470. package/dist/generated/ts/inco/originchain/module/v1/module.js +0 -66
  471. package/dist/generated/ts/inco/originchain/v1/abci.js +0 -331
  472. package/dist/generated/ts/inco/originchain/v1/events.js +0 -216
  473. package/dist/generated/ts/inco/originchain/v1/genesis.js +0 -69
  474. package/dist/generated/ts/inco/originchain/v1/query.js +0 -280
  475. package/dist/generated/ts/inco/originchain/v1/tx.js +0 -140
  476. package/dist/generated/ts/inco/originchain/v1/types.js +0 -203
  477. package/dist/generated/ts/inco/preflight/module/v1/module.js +0 -66
  478. package/dist/generated/ts/inco/preflight/v1/genesis.js +0 -185
  479. package/dist/generated/ts/inco/preflight/v1/query.js +0 -259
  480. package/dist/generated/ts/inco/preflight/v1/tx.js +0 -448
  481. package/dist/generated/ts/inco/preflight/v1/types.js +0 -398
  482. package/dist/index.d.ts +0 -5
  483. package/dist/l1/index.d.ts +0 -2
  484. package/dist/l1/preflight.js +0 -42
  485. package/dist/lite/attested-decrypt.js +0 -6
  486. package/dist/lite/deployments.js +0 -21
  487. package/dist/lite/ecies.js +0 -135
  488. package/dist/lite/hadu.js +0 -41
  489. package/dist/lite/index.d.ts +0 -7
  490. package/dist/lite/index.js +0 -23
  491. package/dist/lite/lightning.js +0 -198
  492. package/dist/lite/reencrypt.js +0 -142
  493. package/dist/local/index.d.ts +0 -1
  494. package/dist/local/local-node.js +0 -28
  495. package/dist/reencryption/index.d.ts +0 -2
  496. package/dist/reencryption/index.js +0 -19
  497. package/dist/types.d.ts +0 -20
  498. package/dist/types.js +0 -3
  499. package/dist/viem.js +0 -12
  500. /package/dist/{binary.d.ts → cjs/binary.d.ts} +0 -0
  501. /package/dist/{generated → cjs/generated}/abis/addTwo.d.ts +0 -0
  502. /package/dist/{generated → cjs/generated}/abis/inco-fhevm.d.ts +0 -0
  503. /package/dist/{generated → cjs/generated}/fhe-environments.d.ts +0 -0
  504. /package/dist/{generated → cjs/generated}/ts/amino/amino.d.ts +0 -0
  505. /package/dist/{generated → cjs/generated}/ts/cometbft/abci/v1/types.d.ts +0 -0
  506. /package/dist/{generated → cjs/generated}/ts/cometbft/crypto/v1/keys.d.ts +0 -0
  507. /package/dist/{generated → cjs/generated}/ts/cometbft/crypto/v1/proof.d.ts +0 -0
  508. /package/dist/{generated → cjs/generated}/ts/cometbft/types/v1/params.d.ts +0 -0
  509. /package/dist/{generated → cjs/generated}/ts/cometbft/types/v1/validator.d.ts +0 -0
  510. /package/dist/{generated → cjs/generated}/ts/cosmos/app/v1alpha1/module.d.ts +0 -0
  511. /package/dist/{generated → cjs/generated}/ts/cosmos/msg/v1/msg.d.ts +0 -0
  512. /package/dist/{generated → cjs/generated}/ts/cosmos_proto/cosmos.d.ts +0 -0
  513. /package/dist/{generated → cjs/generated}/ts/gogoproto/gogo.d.ts +0 -0
  514. /package/dist/{generated → cjs/generated}/ts/google/api/annotations.d.ts +0 -0
  515. /package/dist/{generated → cjs/generated}/ts/google/api/http.d.ts +0 -0
  516. /package/dist/{generated → cjs/generated}/ts/google/protobuf/descriptor.d.ts +0 -0
  517. /package/dist/{generated → cjs/generated}/ts/google/protobuf/duration.d.ts +0 -0
  518. /package/dist/{generated → cjs/generated}/ts/google/protobuf/timestamp.d.ts +0 -0
  519. /package/dist/{generated → cjs/generated}/ts/google/protobuf/wrappers.d.ts +0 -0
  520. /package/dist/{generated → cjs/generated}/ts/inco/abci/v1/types.d.ts +0 -0
  521. /package/dist/{generated → cjs/generated}/ts/inco/fhe/module/v1/module.d.ts +0 -0
  522. /package/dist/{generated → cjs/generated}/ts/inco/fhe/v1/events.d.ts +0 -0
  523. /package/dist/{generated → cjs/generated}/ts/inco/fhe/v1/genesis.d.ts +0 -0
  524. /package/dist/{generated → cjs/generated}/ts/inco/fhe/v1/types.d.ts +0 -0
  525. /package/dist/{generated → cjs/generated}/ts/inco/originchain/module/v1/module.d.ts +0 -0
  526. /package/dist/{generated → cjs/generated}/ts/inco/originchain/v1/abci.d.ts +0 -0
  527. /package/dist/{generated → cjs/generated}/ts/inco/originchain/v1/events.d.ts +0 -0
  528. /package/dist/{generated → cjs/generated}/ts/inco/originchain/v1/genesis.d.ts +0 -0
  529. /package/dist/{generated → cjs/generated}/ts/inco/originchain/v1/types.d.ts +0 -0
  530. /package/dist/{generated → cjs/generated}/ts/inco/preflight/module/v1/module.d.ts +0 -0
  531. /package/dist/{generated → cjs/generated}/ts/inco/preflight/v1/genesis.d.ts +0 -0
  532. /package/dist/{generated → cjs/generated}/ts/inco/preflight/v1/types.d.ts +0 -0
  533. /package/dist/{reencryption → cjs/reencryption}/eip712.d.ts +0 -0
  534. /package/dist/{retry.d.ts → cjs/retry.d.ts} +0 -0
  535. /package/dist/{schema.d.ts → cjs/schema.d.ts} +0 -0
@@ -0,0 +1,328 @@
1
+ import { Decoder, RustType } from 'bincode-ts';
2
+ import { Schema } from 'effect';
3
+ import { CompactCiphertextList, CompactPkePublicParams, FheBool, FheTypes, FheUint160, FheUint256, FheUint64, ProvenCompactCiphertextList, set_server_key, TfheClientKey, TfheCompactPublicKey, TfheServerKey, ZkComputeLoad, } from 'node-tfhe';
4
+ import { isAddress } from 'viem';
5
+ import { asBytes32, bytesFromHexString, bytesToBigInt, bytesToHex } from '../binary.js';
6
+ import { encryptionSchemes, getEncryptionSchemeName, } from '../encryption/encryption.js';
7
+ import { computeHandle, computePrehandle, HANDLE_VERSION, handleTypes } from '../handle.js';
8
+ import { parse } from '../schema.js';
9
+ import { getHandleTypeFromFheType } from './types.js';
10
+ // This code pulled and modifier from fhevmjs which currently is a relatively poor dependency to extend since it does
11
+ // not expose types correctly and does not export various modules
12
+ // Handed down on a stone tablet from: https://github.com/zama-ai/fhevm-backend/blob/5a70c19a90671cfa4901413db9e162a65c4cf17a/fhevm-engine/fhevm-engine-common/src/utils.rs#L6-L7
13
+ // We use fhevm-backend in KMS and compute services
14
+ export const SERIALIZED_SIZE_LIMIT_CIPHERTEXT = BigInt(1024 * 1024 * 512);
15
+ export const SERIALIZED_SIZE_LIMIT_PK = BigInt(1024 * 1024 * 512);
16
+ export const SERIALIZED_SIZE_LIMIT_CRS = BigInt(1024 * 1024 * 512);
17
+ export const ENCRYPTION_TYPES = {
18
+ 1: 0, // ebool takes 2 encrypted bits
19
+ 4: 1,
20
+ 8: 2,
21
+ 16: 3,
22
+ 32: 4,
23
+ 64: 5,
24
+ 128: 6,
25
+ 160: 7,
26
+ 256: 8,
27
+ 512: 9,
28
+ 1024: 10,
29
+ 2048: 11,
30
+ };
31
+ export function getTfheEncryptor(args) {
32
+ const publicKey = TfheCompactPublicKey.safe_deserialize(args.publicKey, SERIALIZED_SIZE_LIMIT_PK);
33
+ const publicParams = CompactPkePublicParams.safe_deserialize(args.crs2048, SERIALIZED_SIZE_LIMIT_CRS);
34
+ return async ({ context, plaintext, }) => {
35
+ if (plaintext.scheme !== encryptionSchemes.tfhe) {
36
+ throw new Error(`Plaintext with scheme ${getEncryptionSchemeName(plaintext.scheme)} cannot be encrypted with TFHE`);
37
+ }
38
+ const { aclAddress, userAddress, contractAddress, hostChainId } = context;
39
+ const input = createEncryptedInput(aclAddress, hostChainId, publicKey, { 2048: { publicParams } })(userAddress, contractAddress);
40
+ const encInput = await addPlaintextInput(input, plaintext).encrypt();
41
+ // FIXME: support multi-valued ciphertext properly
42
+ const prehandle = encInput.prehandles[0];
43
+ const handle = computeHandle({ prehandle, context });
44
+ return {
45
+ context,
46
+ // The '0x' prefix is required for bytes32 for correct json parsing in foundry, but avoided in ciphertext to avoid bytes-based encoding
47
+ // we may need
48
+ prehandle: asBytes32(prehandle),
49
+ handle: asBytes32(handle),
50
+ ciphertext: {
51
+ scheme: plaintext.scheme,
52
+ type: plaintext.type,
53
+ value: bytesToHex(encInput.ciphertext),
54
+ },
55
+ };
56
+ };
57
+ }
58
+ export function createEncryptedInput(aclContractAddress, chainId, tfheCompactPublicKey, publicParams) {
59
+ return (userAddress, contractAddress) => {
60
+ if (!isAddress(contractAddress)) {
61
+ throw new Error('Contract address is not a valid address.');
62
+ }
63
+ if (!isAddress(userAddress)) {
64
+ throw new Error('User address is not a valid address.');
65
+ }
66
+ const bits = [];
67
+ const builder = CompactCiphertextList.builder(tfheCompactPublicKey);
68
+ const checkLimit = (added) => {
69
+ if (bits.reduce((acc, val) => acc + Math.max(2, val), 0) + added > 2048) {
70
+ throw Error('Packing more than 2048 bits in a single input ciphertext is unsupported');
71
+ }
72
+ if (bits.length + 1 > 256)
73
+ throw Error('Packing more than 256 variables in a single input ciphertext is unsupported');
74
+ };
75
+ function checkEncryptedValue(value, bits) {
76
+ if (value == null)
77
+ throw new Error('Missing value');
78
+ let limit;
79
+ if (bits >= 8) {
80
+ limit = BigInt(`0x${new Array(bits / 8).fill(null).reduce((v) => `${v}ff`, '')}`);
81
+ }
82
+ else {
83
+ limit = BigInt(2 ** bits - 1);
84
+ }
85
+ if (value > limit) {
86
+ throw new Error(`The value exceeds the limit for ${bits}bits integer (${limit.toString()}).`);
87
+ }
88
+ }
89
+ return {
90
+ addBool(value) {
91
+ if (typeof value !== 'bigint' && Number(value) > 1)
92
+ throw new Error('The value must be 1 or 0.');
93
+ checkEncryptedValue(Number(value), 1);
94
+ checkLimit(2);
95
+ builder.push_boolean(!!value);
96
+ bits.push(1); // ebool takes 2 encrypted bits
97
+ return this;
98
+ },
99
+ add4(value) {
100
+ checkEncryptedValue(value, 4);
101
+ checkLimit(4);
102
+ builder.push_u4(Number(value));
103
+ bits.push(4);
104
+ return this;
105
+ },
106
+ add8(value) {
107
+ checkEncryptedValue(value, 8);
108
+ checkLimit(8);
109
+ builder.push_u8(Number(value));
110
+ bits.push(8);
111
+ return this;
112
+ },
113
+ add16(value) {
114
+ checkEncryptedValue(value, 16);
115
+ checkLimit(16);
116
+ builder.push_u16(Number(value));
117
+ bits.push(16);
118
+ return this;
119
+ },
120
+ add32(value) {
121
+ checkEncryptedValue(value, 32);
122
+ checkLimit(32);
123
+ builder.push_u32(Number(value));
124
+ bits.push(32);
125
+ return this;
126
+ },
127
+ add64(value) {
128
+ checkEncryptedValue(value, 64);
129
+ checkLimit(64);
130
+ builder.push_u64(BigInt(value));
131
+ bits.push(64);
132
+ return this;
133
+ },
134
+ add128(value) {
135
+ checkEncryptedValue(value, 128);
136
+ checkLimit(128);
137
+ builder.push_u128(BigInt(value));
138
+ bits.push(128);
139
+ return this;
140
+ },
141
+ addAddress(value) {
142
+ if (!isAddress(value)) {
143
+ throw new Error('The value must be a valid address.');
144
+ }
145
+ checkLimit(160);
146
+ builder.push_u160(BigInt(value));
147
+ bits.push(160);
148
+ return this;
149
+ },
150
+ add256(value) {
151
+ checkEncryptedValue(value, 256);
152
+ checkLimit(256);
153
+ builder.push_u256(BigInt(value));
154
+ bits.push(256);
155
+ return this;
156
+ },
157
+ addBytes64(value) {
158
+ if (value.length !== 64)
159
+ throw Error('Incorrect length of input Uint8Array, should be 64 for an ebytes64');
160
+ const bigIntValue = bytesToBigInt(value);
161
+ checkEncryptedValue(bigIntValue, 512);
162
+ checkLimit(512);
163
+ builder.push_u512(bigIntValue);
164
+ bits.push(512);
165
+ return this;
166
+ },
167
+ addBytes128(value) {
168
+ if (value.length !== 128)
169
+ throw Error('Incorrect length of input Uint8Array, should be 128 for an ebytes128');
170
+ const bigIntValue = bytesToBigInt(value);
171
+ checkEncryptedValue(bigIntValue, 1024);
172
+ checkLimit(1024);
173
+ builder.push_u1024(bigIntValue);
174
+ bits.push(1024);
175
+ return this;
176
+ },
177
+ addBytes256(value) {
178
+ if (value.length !== 256)
179
+ throw Error('Incorrect length of input Uint8Array, should be 256 for an ebytes256');
180
+ const bigIntValue = bytesToBigInt(value);
181
+ checkEncryptedValue(bigIntValue, 2048);
182
+ checkLimit(2048);
183
+ builder.push_u2048(bigIntValue);
184
+ bits.push(2048);
185
+ return this;
186
+ },
187
+ getBits() {
188
+ return bits;
189
+ },
190
+ async encrypt() {
191
+ const getKeys = (obj) => Object.keys(obj);
192
+ const totalBits = bits.reduce((total, v) => total + v, 0);
193
+ const now = Date.now();
194
+ // const ppTypes = getKeys(publicParams);
195
+ const ppTypes = getKeys(publicParams);
196
+ const closestPP = ppTypes.find((k) => Number(k) >= totalBits);
197
+ if (!closestPP) {
198
+ throw new Error(`Too many bits in provided values. Maximum is ${ppTypes[ppTypes.length - 1]}.`);
199
+ }
200
+ const pp = publicParams[closestPP].publicParams;
201
+ const buffContract = bytesFromHexString(contractAddress);
202
+ const buffUser = bytesFromHexString(userAddress);
203
+ const buffAcl = bytesFromHexString(aclContractAddress);
204
+ const buffChainId = bytesFromHexString(chainId.toString(16));
205
+ const auxData = new Uint8Array(buffContract.length + buffUser.length + buffAcl.length + 32);
206
+ auxData.set(buffContract, 0);
207
+ auxData.set(buffUser, 20);
208
+ auxData.set(buffAcl, 40);
209
+ auxData.set(buffChainId, auxData.length - buffChainId.length);
210
+ const encrypted = builder.build_with_proof_packed(pp, auxData, ZkComputeLoad.Proof);
211
+ const ciphertext = Buffer.from(encrypted.safe_serialize(SERIALIZED_SIZE_LIMIT_CIPHERTEXT));
212
+ // These prehandles have the expected layout expected by verifyCiphertext
213
+ // including type and version metadata
214
+ const prehandles = [];
215
+ for (let i = 0; i < encrypted.len(); i++) {
216
+ const handleType = getHandleTypeFromFheType(encrypted.get_kind_of(i));
217
+ prehandles[i] = computePrehandle({
218
+ ciphertext,
219
+ handleType: handleType,
220
+ handleVersion: HANDLE_VERSION,
221
+ indexHandle: i,
222
+ });
223
+ }
224
+ return {
225
+ prehandles,
226
+ ciphertext,
227
+ };
228
+ },
229
+ };
230
+ };
231
+ }
232
+ export function addPlaintextInput(input, plaintext) {
233
+ switch (plaintext.type) {
234
+ case handleTypes.ebool:
235
+ return input.addBool(plaintext.value);
236
+ case handleTypes.euint64:
237
+ return input.add64(plaintext.value);
238
+ case handleTypes.euint160:
239
+ let addrStr = plaintext.value.toString(16);
240
+ return input.addAddress(addrStr);
241
+ case handleTypes.euint256:
242
+ return input.add256(plaintext.value);
243
+ }
244
+ }
245
+ // Decryption...
246
+ export function getTfheDecryptor({ cks }) {
247
+ const clientKey = TfheClientKey.safe_deserialize(cks, SERIALIZED_SIZE_LIMIT_CIPHERTEXT);
248
+ const serverKey = TfheServerKey.new(clientKey);
249
+ set_server_key(serverKey);
250
+ return async ({ scheme, type, value, }) => {
251
+ if (scheme !== encryptionSchemes.tfhe) {
252
+ throw new Error(`Ciphertext with scheme ${getEncryptionSchemeName(scheme)} cannot be decrypted with TFHE`);
253
+ }
254
+ const handleType = type;
255
+ const ctBuf = bytesFromHexString(value);
256
+ const header = decodeTfheSerializationHeader(ctBuf);
257
+ // For now just support a singleton ciphertext list
258
+ if (header.name === ProvenCompactCiphertextListTypeName) {
259
+ const encrypted = ProvenCompactCiphertextList.safe_deserialize(ctBuf, SERIALIZED_SIZE_LIMIT_CIPHERTEXT);
260
+ const decrypted = encrypted.expand_without_verification();
261
+ const kind = decrypted.get_kind_of(0);
262
+ return fromCiphertextList(decrypted, clientKey);
263
+ }
264
+ const decryptor = decryptionClasses[handleType];
265
+ if (!decryptor) {
266
+ throw new Error(`Unsupported handle type: ${handleType}`);
267
+ }
268
+ const encrypted = decryptor.safe_deserialize(ctBuf, SERIALIZED_SIZE_LIMIT_CIPHERTEXT);
269
+ const decrypted = encrypted.decrypt(clientKey);
270
+ // First assign to unnarrowed plaintext to avoid concealing type
271
+ const plaintext = { scheme: encryptionSchemes.tfhe, type: handleType, value: decrypted };
272
+ return plaintext;
273
+ };
274
+ }
275
+ function fromCiphertextList(decrypted, clientKey) {
276
+ const kind = decrypted.get_kind_of(0);
277
+ const scheme = encryptionSchemes.tfhe;
278
+ switch (kind) {
279
+ case FheTypes.Bool:
280
+ return { scheme, type: handleTypes.ebool, value: decrypted.get_bool(0).decrypt(clientKey) };
281
+ case FheTypes.Uint64:
282
+ return { scheme, type: handleTypes.euint64, value: decrypted.get_uint64(0).decrypt(clientKey) };
283
+ case FheTypes.Uint256:
284
+ return { scheme, type: handleTypes.euint256, value: decrypted.get_uint256(0).decrypt(clientKey) };
285
+ }
286
+ throw new Error(`Unsupported kind: ${kind}`);
287
+ }
288
+ const decryptionClasses = {
289
+ [handleTypes.ebool]: FheBool,
290
+ [handleTypes.euint64]: FheUint64,
291
+ [handleTypes.euint160]: FheUint160,
292
+ [handleTypes.euint256]: FheUint256,
293
+ };
294
+ var VersioningMode;
295
+ (function (VersioningMode) {
296
+ VersioningMode[VersioningMode["Versioned"] = 0] = "Versioned";
297
+ VersioningMode[VersioningMode["Unversioned"] = 1] = "Unversioned";
298
+ })(VersioningMode || (VersioningMode = {}));
299
+ // Representation of (https://github.com/zama-ai/tfhe-rs/blob/8ee1bdd9a935e9f00c72238f2ff5220ccf77c850/tfhe/src/safe_serialization.rs#L75-L79):
300
+ // struct SerializationHeader {
301
+ // header_version: Cow<'static, str>,
302
+ // versioning_mode: SerializationVersioningMode,
303
+ // name: Cow<'static, str>,
304
+ // }
305
+ export const SerializationHeader = RustType.Struct([
306
+ ['header_version', RustType.Str],
307
+ [
308
+ 'versioning_mode',
309
+ RustType.Enum({ [VersioningMode.Versioned]: RustType.Str, [VersioningMode.Unversioned]: RustType.Str }),
310
+ ],
311
+ ['name', RustType.Str],
312
+ ]);
313
+ // Output schema (note we currently strip the versioning_mode field because we do not care about it, only the name
314
+ export const ProvenCompactCiphertextListTypeName = 'high_level_api::ProvenCompactCiphertextList';
315
+ export const FheUintTypeName = 'high_level_api::FheUint';
316
+ export const TfheSerialisationTypeName = Schema.Literal(ProvenCompactCiphertextListTypeName, FheUintTypeName);
317
+ export const TfheSerializationHeader = Schema.Struct({
318
+ header_version: Schema.String,
319
+ // For now, we will accept any string to avoid having to define an exhaustive union above
320
+ name: Schema.Union(TfheSerialisationTypeName, Schema.String),
321
+ });
322
+ // Decode a serialisation header from a ciphertext or other bincode-serialised data from tfhe-rs
323
+ export function decodeTfheSerializationHeader(buffer) {
324
+ const decoder = new Decoder();
325
+ const decoded = decoder.load(Uint8Array.from(buffer).buffer).decodeAs(SerializationHeader);
326
+ return parse(TfheSerializationHeader, decoded);
327
+ }
328
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGZoZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9maGV2bS90ZmhlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDaEMsT0FBTyxFQUNMLHFCQUFxQixFQUVyQixzQkFBc0IsRUFDdEIsT0FBTyxFQUNQLFFBQVEsRUFDUixVQUFVLEVBQ1YsVUFBVSxFQUNWLFNBQVMsRUFDVCwyQkFBMkIsRUFDM0IsY0FBYyxFQUNkLGFBQWEsRUFDYixvQkFBb0IsRUFDcEIsYUFBYSxFQUNiLGFBQWEsR0FDZCxNQUFNLFdBQVcsQ0FBQztBQUNuQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN4RixPQUFPLEVBR0wsaUJBQWlCLEVBR2pCLHVCQUF1QixHQU14QixNQUFNLDZCQUE2QixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsY0FBYyxFQUFFLFdBQVcsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM1RixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3JDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUV0RCxxSEFBcUg7QUFDckgsbUVBQW1FO0FBRW5FLGlMQUFpTDtBQUNqTCxtREFBbUQ7QUFDbkQsTUFBTSxDQUFDLE1BQU0sZ0NBQWdDLEdBQUcsTUFBTSxDQUFDLElBQUksR0FBRyxJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUM7QUFDMUUsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsTUFBTSxDQUFDLElBQUksR0FBRyxJQUFJLEdBQUcsR0FB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
@@ -0,0 +1,3 @@
1
+ import { FheTypes } from 'node-tfhe';
2
+ import { FheType } from '../handle.js';
3
+ export declare function getHandleTypeFromFheType(fheType: FheTypes | undefined): FheType;
@@ -0,0 +1,26 @@
1
+ import { FheTypes } from 'node-tfhe';
2
+ import { handleTypes } from '../handle.js';
3
+ // To HandleType
4
+ // FIXME: how did you arrive at this?
5
+ const fheTypeToHandleType = Object.freeze({
6
+ [FheTypes.Bool]: handleTypes.ebool,
7
+ [FheTypes.Uint4]: handleTypes.euint4,
8
+ [FheTypes.Uint8]: handleTypes.euint8,
9
+ [FheTypes.Uint16]: handleTypes.euint16,
10
+ [FheTypes.Uint32]: handleTypes.euint32,
11
+ [FheTypes.Uint64]: handleTypes.euint64,
12
+ [FheTypes.Uint128]: handleTypes.euint128,
13
+ [FheTypes.Uint160]: handleTypes.euint160,
14
+ [FheTypes.Uint256]: handleTypes.euint256,
15
+ });
16
+ export function getHandleTypeFromFheType(fheType) {
17
+ if (!fheType) {
18
+ throw new Error('FHE type is required');
19
+ }
20
+ const handleType = fheTypeToHandleType[fheType];
21
+ if (!handleType) {
22
+ throw new Error(`Inco SDK does not know how to map FHE type '${fheType}' to HandleType`);
23
+ }
24
+ return handleType;
25
+ }
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZmhldm0vdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNyQyxPQUFPLEVBQVcsV0FBVyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXBELGdCQUFnQjtBQUNoQixxQ0FBcUM7QUFDckMsTUFBTSxtQkFBbUIsR0FBdUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUM1RSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxXQUFXLENBQUMsS0FBSztJQUNsQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxXQUFXLENBQUMsTUFBTTtJQUNwQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxXQUFXLENBQUMsTUFBTTtJQUNwQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxXQUFXLENBQUMsT0FBTztJQUN0QyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxXQUFXLENBQUMsT0FBTztJQUN0QyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxXQUFXLENBQUMsT0FBTztJQUN0QyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxXQUFXLENBQUMsUUFBUTtJQUN4QyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxXQUFXLENBQUMsUUFBUTtJQUN4QyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxXQUFXLENBQUMsUUFBUTtDQUN6QyxDQUFDLENBQUM7QUFFSCxNQUFNLFVBQVUsd0JBQXdCLENBQUMsT0FBNkI7SUFDcEUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2IsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFDRCxNQUFNLFVBQVUsR0FBRyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNoRCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDaEIsTUFBTSxJQUFJLEtBQUssQ0FBQywrQ0FBK0MsT0FBTyxpQkFBaUIsQ0FBQyxDQUFDO0lBQzNGLENBQUM7SUFDRCxPQUFPLFVBQVUsQ0FBQztBQUNwQixDQUFDIn0=
@@ -0,0 +1,83 @@
1
+ export declare const addTwoAbi: readonly [{
2
+ readonly type: "constructor";
3
+ readonly inputs: readonly [{
4
+ readonly name: "_inco";
5
+ readonly internalType: "contract IncoLightning";
6
+ readonly type: "address";
7
+ }];
8
+ readonly stateMutability: "nonpayable";
9
+ }, {
10
+ readonly type: "function";
11
+ readonly inputs: readonly [{
12
+ readonly name: "a";
13
+ readonly internalType: "euint256";
14
+ readonly type: "bytes32";
15
+ }];
16
+ readonly name: "addTwo";
17
+ readonly outputs: readonly [{
18
+ readonly name: "";
19
+ readonly internalType: "euint256";
20
+ readonly type: "bytes32";
21
+ }];
22
+ readonly stateMutability: "nonpayable";
23
+ }, {
24
+ readonly type: "function";
25
+ readonly inputs: readonly [{
26
+ readonly name: "uint256EInput";
27
+ readonly internalType: "bytes";
28
+ readonly type: "bytes";
29
+ }];
30
+ readonly name: "addTwoEOA";
31
+ readonly outputs: readonly [{
32
+ readonly name: "";
33
+ readonly internalType: "uint256";
34
+ readonly type: "uint256";
35
+ }, {
36
+ readonly name: "";
37
+ readonly internalType: "euint256";
38
+ readonly type: "bytes32";
39
+ }];
40
+ readonly stateMutability: "nonpayable";
41
+ }, {
42
+ readonly type: "function";
43
+ readonly inputs: readonly [{
44
+ readonly name: "a";
45
+ readonly internalType: "euint256";
46
+ readonly type: "bytes32";
47
+ }];
48
+ readonly name: "addTwoScalar";
49
+ readonly outputs: readonly [{
50
+ readonly name: "";
51
+ readonly internalType: "euint256";
52
+ readonly type: "bytes32";
53
+ }];
54
+ readonly stateMutability: "nonpayable";
55
+ }, {
56
+ readonly type: "function";
57
+ readonly inputs: readonly [{
58
+ readonly name: "";
59
+ readonly internalType: "uint256";
60
+ readonly type: "uint256";
61
+ }, {
62
+ readonly name: "result";
63
+ readonly internalType: "uint256";
64
+ readonly type: "uint256";
65
+ }, {
66
+ readonly name: "";
67
+ readonly internalType: "bytes";
68
+ readonly type: "bytes";
69
+ }];
70
+ readonly name: "callback";
71
+ readonly outputs: readonly [];
72
+ readonly stateMutability: "nonpayable";
73
+ }, {
74
+ readonly type: "function";
75
+ readonly inputs: readonly [];
76
+ readonly name: "lastResult";
77
+ readonly outputs: readonly [{
78
+ readonly name: "";
79
+ readonly internalType: "uint256";
80
+ readonly type: "uint256";
81
+ }];
82
+ readonly stateMutability: "view";
83
+ }];
@@ -1,10 +1,7 @@
1
- "use strict";
2
1
  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
3
2
  // AddTwo
4
3
  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.addTwoAbi = void 0;
7
- exports.addTwoAbi = [
4
+ export const addTwoAbi = [
8
5
  {
9
6
  type: 'constructor',
10
7
  inputs: [
@@ -59,4 +56,4 @@ exports.addTwoAbi = [
59
56
  stateMutability: 'view',
60
57
  },
61
58
  ];
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkVHdvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2dlbmVyYXRlZC9hYmlzL2FkZFR3by50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsc0tBQXNLO0FBQ3RLLFNBQVM7QUFDVCxzS0FBc0s7OztBQUV6SixRQUFBLFNBQVMsR0FBRztJQUN2QjtRQUNFLElBQUksRUFBRSxhQUFhO1FBQ25CLE1BQU0sRUFBRTtZQUNOO2dCQUNFLElBQUksRUFBRSxPQUFPO2dCQUNiLFlBQVksRUFBRSx3QkFBd0I7Z0JBQ3RDLElBQUksRUFBRSxTQUFTO2FBQ2hCO1NBQ0Y7UUFDRCxlQUFlLEVBQUUsWUFBWTtLQUM5QjtJQUNEO1FBQ0UsSUFBSSxFQUFFLFVBQVU7UUFDaEIsTUFBTSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDO1FBQ2xFLElBQUksRUFBRSxRQUFRO1FBQ2QsT0FBTyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDO1FBQ2xFLGVBQWUsRUFBRSxZQUFZO0tBQzlCO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsVUFBVTtRQUNoQixNQUFNLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUM7UUFDekUsSUFBSSxFQUFFLFdBQVc7UUFDakIsT0FBTyxFQUFFO1lBQ1AsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRTtZQUN0RCxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFO1NBQ3hEO1FBQ0QsZUFBZSxFQUFFLFlBQVk7S0FDOUI7SUFDRDtRQUNFLElBQUksRUFBRSxVQUFVO1FBQ2hCLE1BQU0sRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQztRQUNsRSxJQUFJLEVBQUUsY0FBYztRQUNwQixPQUFPLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUM7UUFDbEUsZUFBZSxFQUFFLFlBQVk7S0FDOUI7SUFDRDtRQUNFLElBQUksRUFBRSxVQUFVO1FBQ2hCLE1BQU0sRUFBRTtZQUNOLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUU7WUFDdEQsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRTtZQUM1RCxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFO1NBQ25EO1FBQ0QsSUFBSSxFQUFFLFVBQVU7UUFDaEIsT0FBTyxFQUFFLEVBQUU7UUFDWCxlQUFlLEVBQUUsWUFBWTtLQUM5QjtJQUNEO1FBQ0UsSUFBSSxFQUFFLFVBQVU7UUFDaEIsTUFBTSxFQUFFLEVBQUU7UUFDVixJQUFJLEVBQUUsWUFBWTtRQUNsQixPQUFPLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUM7UUFDakUsZUFBZSxFQUFFLE1BQU07S0FDeEI7Q0FDTyxDQUFBIn0=
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkVHdvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2dlbmVyYXRlZC9hYmlzL2FkZFR3by50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxzS0FBc0s7QUFDdEssU0FBUztBQUNULHNLQUFzSztBQUV0SyxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUc7SUFDdkI7UUFDRSxJQUFJLEVBQUUsYUFBYTtRQUNuQixNQUFNLEVBQUU7WUFDTjtnQkFDRSxJQUFJLEVBQUUsT0FBTztnQkFDYixZQUFZLEVBQUUsd0JBQXdCO2dCQUN0QyxJQUFJLEVBQUUsU0FBUzthQUNoQjtTQUNGO1FBQ0QsZUFBZSxFQUFFLFlBQVk7S0FDOUI7SUFDRDtRQUNFLElBQUksRUFBRSxVQUFVO1FBQ2hCLE1BQU0sRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQztRQUNsRSxJQUFJLEVBQUUsUUFBUTtRQUNkLE9BQU8sRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQztRQUNsRSxlQUFlLEVBQUUsWUFBWTtLQUM5QjtJQUNEO1FBQ0UsSUFBSSxFQUFFLFVBQVU7UUFDaEIsTUFBTSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDO1FBQ3pFLElBQUksRUFBRSxXQUFXO1FBQ2pCLE9BQU8sRUFBRTtZQUNQLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUU7WUFDdEQsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRTtTQUN4RDtRQUNELGVBQWUsRUFBRSxZQUFZO0tBQzlCO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsVUFBVTtRQUNoQixNQUFNLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUM7UUFDbEUsSUFBSSxFQUFFLGNBQWM7UUFDcEIsT0FBTyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDO1FBQ2xFLGVBQWUsRUFBRSxZQUFZO0tBQzlCO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsVUFBVTtRQUNoQixNQUFNLEVBQUU7WUFDTixFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFO1lBQ3RELEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUU7WUFDNUQsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRTtTQUNuRDtRQUNELElBQUksRUFBRSxVQUFVO1FBQ2hCLE9BQU8sRUFBRSxFQUFFO1FBQ1gsZUFBZSxFQUFFLFlBQVk7S0FDOUI7SUFDRDtRQUNFLElBQUksRUFBRSxVQUFVO1FBQ2hCLE1BQU0sRUFBRSxFQUFFO1FBQ1YsSUFBSSxFQUFFLFlBQVk7UUFDbEIsT0FBTyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDO1FBQ2pFLGVBQWUsRUFBRSxNQUFNO0tBQ3hCO0NBQ08sQ0FBQSJ9