@inco/js 0.2.16 → 0.2.17

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