@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,42 @@
1
+ import { SupportedScalarBinaryOp } from '../generated/es/inco/kms/lite/v1/kms_service_pb.js';
2
+ /**
3
+ * Supported attested compute operations.
4
+ */
5
+ export const AttestedComputeSupportedOps = {
6
+ /*
7
+ Add: SupportedScalarBinaryOp.FHE_ADD,
8
+ Sub: SupportedScalarBinaryOp.FHE_SUB,
9
+ Mul: SupportedScalarBinaryOp.FHE_MUL,
10
+ Div: SupportedScalarBinaryOp.FHE_DIV,
11
+ Rem: SupportedScalarBinaryOp.FHE_REM,
12
+ BitAnd: SupportedScalarBinaryOp.FHE_BIT_AND,
13
+ BitOr: SupportedScalarBinaryOp.FHE_BIT_OR,
14
+ BitXor: SupportedScalarBinaryOp.FHE_BIT_XOR,
15
+ Shl: SupportedScalarBinaryOp.FHE_SHL,
16
+ Shr: SupportedScalarBinaryOp.FHE_SHR,
17
+ Rotl: SupportedScalarBinaryOp.FHE_ROTL,
18
+ Rotr: SupportedScalarBinaryOp.FHE_ROTR,
19
+ */
20
+ Eq: SupportedScalarBinaryOp.FHE_EQ,
21
+ Ne: SupportedScalarBinaryOp.FHE_NE,
22
+ Ge: SupportedScalarBinaryOp.FHE_GE,
23
+ Gt: SupportedScalarBinaryOp.FHE_GT,
24
+ Le: SupportedScalarBinaryOp.FHE_LE,
25
+ Lt: SupportedScalarBinaryOp.FHE_LT,
26
+ /*
27
+ Min: SupportedScalarBinaryOp.FHE_MIN,
28
+ Max: SupportedScalarBinaryOp.FHE_MAX,
29
+ */
30
+ };
31
+ /**
32
+ * Custom error class for attested compute operations.
33
+ */
34
+ export class AttestedComputeError extends Error {
35
+ cause;
36
+ constructor(message, cause) {
37
+ super(message);
38
+ this.cause = cause;
39
+ this.name = 'AttestedComputeError';
40
+ }
41
+ }
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXR0ZXN0ZWRjb21wdXRlL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBRzdGOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUc7SUFDekM7Ozs7Ozs7Ozs7Ozs7TUFhRTtJQUNGLEVBQUUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO0lBQ2xDLEVBQUUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO0lBQ2xDLEVBQUUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO0lBQ2xDLEVBQUUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO0lBQ2xDLEVBQUUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO0lBQ2xDLEVBQUUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO0lBQ2xDOzs7TUFHRTtDQUNNLENBQUM7QUFPWDs7R0FFRztBQUNILE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxLQUFLO0lBRzNCO0lBRmxCLFlBQ0UsT0FBZSxFQUNDLEtBQWU7UUFFL0IsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRkMsVUFBSyxHQUFMLEtBQUssQ0FBVTtRQUcvQixJQUFJLENBQUMsSUFBSSxHQUFHLHNCQUFzQixDQUFDO0lBQ3JDLENBQUM7Q0FDRiJ9
@@ -0,0 +1,40 @@
1
+ import type { Account, Chain, Transport, WalletClient } from 'viem';
2
+ import { SupportedChainId } from '../chain.js';
3
+ import { EciesScheme } from '../encryption/encryption.js';
4
+ import type { KmsClient } from '../kms/client.js';
5
+ import { AttestedDecryptor } from './types.js';
6
+ /**
7
+ * Validates a handle format.
8
+ * @param handle - The handle to validate
9
+ * @throws {AttestedDecryptError} If the handle format is invalid
10
+ */
11
+ export declare function validateHandle(handle: string): void;
12
+ /**
13
+ * Arguments for creating an attested decryptor.
14
+ */
15
+ export interface IncoLiteAttestedDecryptorArgs {
16
+ /** The wallet used to interact with the blockchain and sign the decrypt request */
17
+ walletClient: WalletClient<Transport, Chain, Account>;
18
+ /** The KMS connect RPC endpoint or client instance */
19
+ kmsConnectRpcEndpointOrClient?: string | KmsClient;
20
+ /** The chain ID to use */
21
+ chainId: SupportedChainId;
22
+ }
23
+ /**
24
+ * Creates an attested decryptor that can decrypt handles with an attached attestation from the covalidator.
25
+ * @param args - The arguments for creating the decryptor
26
+ * @returns A function that can decrypt handles using attestation
27
+ * @throws {AttestedDecryptError} If the decryptor creation fails
28
+ *
29
+ * @todo Support multiple handles in a single request.
30
+ *
31
+ * @example
32
+ * ```typescript
33
+ * const decryptor = await incoLiteAttestedDecryptor({
34
+ * walletClient,
35
+ * chainId: sepolia,
36
+ * });
37
+ * const { plaintext, covalidatorSignature } = await decryptor({ handle: '0x...' });
38
+ * ```
39
+ */
40
+ export declare function incoLiteAttestedDecryptor({ kmsConnectRpcEndpointOrClient, chainId, walletClient, }: IncoLiteAttestedDecryptorArgs): AttestedDecryptor<EciesScheme>;
@@ -0,0 +1,89 @@
1
+ import { hexToBytes } from 'viem';
2
+ import { bytesToBigInt } from '../binary.js';
3
+ import { getSupportedChain } from '../chain.js';
4
+ import { bigintToPlaintext, encryptionSchemes } from '../encryption/encryption.js';
5
+ import { getHandleType } from '../handle.js';
6
+ import { defaultCovalidatorGrpc, getKmsClient } from '../kms/client.js';
7
+ import { createEIP712Payload } from '../reencryption/eip712.js';
8
+ import { retryWithBackoff } from '../retry.js';
9
+ import { AttestedDecryptError } from './types.js';
10
+ const ATTESTED_DECRYPT_DOMAIN_NAME = 'IncoAttestedDecrypt';
11
+ const ATTESTED_DECRYPT_DOMAIN_VERSION = '0.1.0';
12
+ /**
13
+ * Validates a handle format.
14
+ * @param handle - The handle to validate
15
+ * @throws {AttestedDecryptError} If the handle format is invalid
16
+ */
17
+ export function validateHandle(handle) {
18
+ if (!handle.startsWith('0x') || handle.length !== 66) {
19
+ throw new AttestedDecryptError('Invalid handle format: must be a 32-byte hex string with 0x prefix');
20
+ }
21
+ }
22
+ /**
23
+ * Creates an attested decryptor that can decrypt handles with an attached attestation from the covalidator.
24
+ * @param args - The arguments for creating the decryptor
25
+ * @returns A function that can decrypt handles using attestation
26
+ * @throws {AttestedDecryptError} If the decryptor creation fails
27
+ *
28
+ * @todo Support multiple handles in a single request.
29
+ *
30
+ * @example
31
+ * ```typescript
32
+ * const decryptor = await incoLiteAttestedDecryptor({
33
+ * walletClient,
34
+ * chainId: sepolia,
35
+ * });
36
+ * const { plaintext, covalidatorSignature } = await decryptor({ handle: '0x...' });
37
+ * ```
38
+ */
39
+ export function incoLiteAttestedDecryptor({ kmsConnectRpcEndpointOrClient, chainId, walletClient, }) {
40
+ const kmsClient = getKmsClient(kmsConnectRpcEndpointOrClient || defaultCovalidatorGrpc(getSupportedChain(chainId)));
41
+ return async function attestedDecrypt({ handle, backoffConfig, }) {
42
+ try {
43
+ validateHandle(handle);
44
+ // Create the EIP712 payload for the handles to decrypt
45
+ const eip712Payload = createEIP712Payload({
46
+ chainId: BigInt(chainId),
47
+ primaryType: 'AttestedDecryptRequest',
48
+ primaryTypeFields: [{ name: 'handles', type: 'bytes32[]' }],
49
+ message: {
50
+ handles: [handle],
51
+ },
52
+ domainName: ATTESTED_DECRYPT_DOMAIN_NAME,
53
+ domainVersion: ATTESTED_DECRYPT_DOMAIN_VERSION,
54
+ });
55
+ // Sign the EIP712 message
56
+ const eip712Signature = await walletClient.signTypedData(eip712Payload);
57
+ const attestedDecryptRequest = {
58
+ $typeName: 'inco.kms.lite.v1.AttestedDecryptRequest',
59
+ userAddress: walletClient.account.address,
60
+ handles: [handle],
61
+ eip712Signature: hexToBytes(eip712Signature),
62
+ };
63
+ const response = await retryWithBackoff(async () => {
64
+ return await kmsClient.attestedDecrypt(attestedDecryptRequest);
65
+ }, backoffConfig);
66
+ if (response.decryptionAttestations.length !== 1) {
67
+ throw new AttestedDecryptError('Expected 1 decryption attestation in response');
68
+ }
69
+ const decryptionAttestation = response.decryptionAttestations[0];
70
+ if (decryptionAttestation.plaintext === undefined) {
71
+ throw new AttestedDecryptError('No plaintext in response');
72
+ }
73
+ const handleType = getHandleType(handle);
74
+ const bigIntValue = bytesToBigInt(decryptionAttestation.plaintext);
75
+ return {
76
+ handle: decryptionAttestation.handle,
77
+ plaintext: bigintToPlaintext(encryptionSchemes.ecies, handleType, bigIntValue),
78
+ covalidatorSignature: decryptionAttestation.signature,
79
+ };
80
+ }
81
+ catch (error) {
82
+ if (error instanceof AttestedDecryptError) {
83
+ throw error;
84
+ }
85
+ throw new AttestedDecryptError('Failed to decrypt handle', error);
86
+ }
87
+ };
88
+ }
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0ZXN0ZWQtZGVjcnlwdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdHRlc3RlZGRlY3J5cHQvYXR0ZXN0ZWQtZGVjcnlwdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxhQUFhLEVBQWEsTUFBTSxjQUFjLENBQUM7QUFDeEQsT0FBTyxFQUFFLGlCQUFpQixFQUFvQixNQUFNLGFBQWEsQ0FBQztBQUNsRSxPQUFPLEVBQUUsaUJBQWlCLEVBQWUsaUJBQWlCLEVBQW9CLE1BQU0sNkJBQTZCLENBQUM7QUFFbEgsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUU3QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDeEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFaEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxvQkFBb0IsRUFBNEMsTUFBTSxZQUFZLENBQUM7QUFFNUYsTUFBTSw0QkFBNEIsR0FBRyxxQkFBcUIsQ0FBQztBQUMzRCxNQUFNLCtCQUErQixHQUFHLE9BQU8sQ0FBQztBQUVoRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLGNBQWMsQ0FBQyxNQUFjO0lBQzNDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssRUFBRSxFQUFFLENBQUM7UUFDckQsTUFBTSxJQUFJLG9CQUFvQixDQUFDLG9FQUFvRSxDQUFDLENBQUM7SUFDdkcsQ0FBQztBQUNILENBQUM7QUFjRDs7Ozs7Ozs7Ozs7Ozs7OztHQWdCRztBQUNILE1BQU0sVUFBVSx5QkFBeUIsQ0FBQyxFQUN4Qyw2QkFBNkIsRUFDN0IsT0FBTyxFQUNQ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
@@ -0,0 +1,2 @@
1
+ export * from './attested-decrypt.js';
2
+ export * from './types.js';
@@ -0,0 +1,3 @@
1
+ export * from './attested-decrypt.js';
2
+ export * from './types.js';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXR0ZXN0ZWRkZWNyeXB0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxZQUFZLENBQUMifQ==
@@ -0,0 +1,20 @@
1
+ import { HexString } from '../binary.js';
2
+ import { EncryptionScheme, PlaintextOf, SupportedFheType } from '../encryption/encryption.js';
3
+ import type { BackoffConfig } from '../retry.js';
4
+ /**
5
+ * Custom error class for attested decrypt operations.
6
+ */
7
+ export declare class AttestedDecryptError extends Error {
8
+ readonly cause?: unknown | undefined;
9
+ constructor(message: string, cause?: unknown | undefined);
10
+ }
11
+ export type DecryptionAttestation<S extends EncryptionScheme, T extends SupportedFheType> = {
12
+ handle: HexString;
13
+ plaintext: PlaintextOf<S, T>;
14
+ covalidatorSignature: Uint8Array;
15
+ };
16
+ export type AttestedDecryptor<S extends EncryptionScheme> = <T extends SupportedFheType>(args: {
17
+ /** The handle to decrypt */
18
+ handle: HexString;
19
+ backoffConfig?: Partial<BackoffConfig>;
20
+ }) => Promise<DecryptionAttestation<S, T>>;
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Custom error class for attested decrypt operations.
3
+ */
4
+ export class AttestedDecryptError extends Error {
5
+ cause;
6
+ constructor(message, cause) {
7
+ super(message);
8
+ this.cause = cause;
9
+ this.name = 'AttestedDecryptError';
10
+ }
11
+ }
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXR0ZXN0ZWRkZWNyeXB0L3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBOztHQUVHO0FBQ0gsTUFBTSxPQUFPLG9CQUFxQixTQUFRLEtBQUs7SUFHM0I7SUFGbEIsWUFDRSxPQUFlLEVBQ0MsS0FBZTtRQUUvQixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFGQyxVQUFLLEdBQUwsS0FBSyxDQUFVO1FBRy9CLElBQUksQ0FBQyxJQUFJLEdBQUcsc0JBQXNCLENBQUM7SUFDckMsQ0FBQztDQUNGIn0=
@@ -0,0 +1,21 @@
1
+ import { Schema } from 'effect';
2
+ import { Hex } from 'viem';
3
+ export declare const HexString: Schema.TemplateLiteral<`0x${string}`>;
4
+ export type HexString = typeof HexString.Type;
5
+ export type BytesIsh = string | Uint8Array;
6
+ export declare function bytesToBigInt(byteArray: Uint8Array): bigint;
7
+ export declare function bufferToBigInt(buffer: Buffer): bigint;
8
+ export declare function bigintToBytes32(value: bigint): Bytes32;
9
+ export declare function padLeft(bs: Uint8Array, n: number): Buffer;
10
+ export declare function bytes32ToBigint(bs: BytesIsh): bigint;
11
+ export declare function bytesFromHexString(hexString: string): Buffer;
12
+ export declare function mustBeHex(value: string): Hex;
13
+ export declare function normaliseToHex(value: string): Hex;
14
+ export declare function bytesToHex(bs: Uint8Array): Hex;
15
+ export declare const Bytes32: Schema.brand<Schema.filter<Schema.transformOrFail<Schema.Union<[typeof Schema.String, Schema.refine<object & Uint8Array<ArrayBufferLike>, Schema.Schema<object, object, never>>]>, Schema.TemplateLiteral<`0x${string}`>, never>>, "Bytes32">;
16
+ export declare function asBytes32(x: BytesIsh): Bytes32;
17
+ export type Bytes32 = typeof Bytes32.Type;
18
+ export type Address = typeof Address.Type;
19
+ export declare const Address: Schema.brand<Schema.filter<Schema.TemplateLiteral<`0x${string}`>>, "Address">;
20
+ export declare function parseAddress(address: string): Address;
21
+ export declare function parseHex(hex: string): HexString;
@@ -0,0 +1,67 @@
1
+ import { ParseResult, Schema } from 'effect';
2
+ import { isHex } from 'viem';
3
+ import { parse } from './schema.js';
4
+ export const HexString = Schema.TemplateLiteral('0x', Schema.String);
5
+ export function bytesToBigInt(byteArray) {
6
+ // Ugly but better than bigint-buffer that insists on writing junk to stderr if it doesn't have native bindings
7
+ return !byteArray?.length ? BigInt(0) : BigInt('0x' + Buffer.from(byteArray).toString('hex'));
8
+ }
9
+ export function bufferToBigInt(buffer) {
10
+ return bytesToBigInt(Uint8Array.from(buffer));
11
+ }
12
+ // Convert a bigint to a 32-byte array, left-padded if necessary. Note: it is
13
+ // caller's responsibility to ensure that the bigint is not too large to fit in
14
+ // 32 bytes, or else the result will be truncated.
15
+ export function bigintToBytes32(value) {
16
+ return parse(Bytes32, Buffer.from(value.toString(16).padStart(64, '0'), 'hex').toString('hex'));
17
+ }
18
+ export function padLeft(bs, n) {
19
+ if (bs.length > n) {
20
+ throw new Error(`Cannot pad ${bs.length} bytes to ${n} - would truncate`);
21
+ }
22
+ const buf = Buffer.alloc(n);
23
+ buf.set(bs, n - bs.length);
24
+ return buf;
25
+ }
26
+ export function bytes32ToBigint(bs) {
27
+ const bytes32 = asBytes32(bs);
28
+ return BigInt(bytes32);
29
+ }
30
+ export function bytesFromHexString(hexString) {
31
+ return Buffer.from(hexString.startsWith('0x') ? hexString.slice(2) : hexString, 'hex');
32
+ }
33
+ export function mustBeHex(value) {
34
+ if (!isHex(value)) {
35
+ throw new Error(`Expected hex string, got: ${value}`);
36
+ }
37
+ return value;
38
+ }
39
+ export function normaliseToHex(value) {
40
+ return mustBeHex(value.startsWith('0x') ? value : `0x${value}`);
41
+ }
42
+ export function bytesToHex(bs) {
43
+ return ('0x' + Buffer.from(bs).toString('hex'));
44
+ }
45
+ const ByteArray = Schema.Object.pipe(Schema.filter((x) => x instanceof Uint8Array));
46
+ const BytesToHex = Schema.transformOrFail(Schema.Union(Schema.String, ByteArray), HexString, {
47
+ strict: true,
48
+ encode: ParseResult.succeed,
49
+ decode: (x) => x instanceof Uint8Array
50
+ ? ParseResult.succeed(bytesToHex(x))
51
+ : ((y) => isHex(y)
52
+ ? ParseResult.succeed(y)
53
+ : ParseResult.fail(new ParseResult.Unexpected(y, `'${y}' is not a hex string`)))(normaliseToHex(x)),
54
+ });
55
+ export const Bytes32 = BytesToHex.pipe(Schema.filter((x) => x.length === 66 ||
56
+ `Expected 32-byte hex string (66 characters with 0x prefix) but got ${x.length} character string`), Schema.brand('Bytes32'));
57
+ export function asBytes32(x) {
58
+ return parse(Bytes32, x);
59
+ }
60
+ export const Address = HexString.pipe(Schema.filter((s) => s.length === 42 || `Address must be a 20-byte '0x'-prefixed hex string, but got: ${s}`), Schema.brand('Address'));
61
+ export function parseAddress(address) {
62
+ return parse(Address, address);
63
+ }
64
+ export function parseHex(hex) {
65
+ return parse(HexString, hex);
66
+ }
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmluYXJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2JpbmFyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUM3QyxPQUFPLEVBQU8sS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFcEMsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztBQU1yRSxNQUFNLFVBQVUsYUFBYSxDQUFDLFNBQXFCO0lBQ2pELCtHQUErRztJQUMvRyxPQUFPLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDaEcsQ0FBQztBQUVELE1BQU0sVUFBVSxjQUFjLENBQUMsTUFBYztJQUMzQyxPQUFPLGFBQWEsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7QUFDaEQsQ0FBQztBQUVELDZFQUE2RTtBQUM3RSwrRUFBK0U7QUFDL0Usa0RBQWtEO0FBQ2xELE1BQU0sVUFBVSxlQUFlLENBQUMsS0FBYTtJQUMzQyxPQUFPLEtBQUssQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDbEcsQ0FBQztBQUVELE1B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
@@ -0,0 +1,25 @@
1
+ export declare const supportedChains: {
2
+ readonly baseSepolia: 84532;
3
+ readonly sepolia: 11155111;
4
+ readonly monadTestnet: 10143;
5
+ readonly plasmaTestnet: 9746;
6
+ readonly worldchainSepolia: 4801;
7
+ readonly anvil: 31337;
8
+ };
9
+ export declare const fheSupportedChains: {
10
+ readonly baseSepolia: 84532;
11
+ readonly sepolia: 11155111;
12
+ };
13
+ type SupportedChains = typeof supportedChains;
14
+ export type SupportedChainId = SupportedChains[keyof SupportedChains];
15
+ export type SupportedChainName = keyof SupportedChains;
16
+ export type SupportedChain = {
17
+ name: SupportedChainName;
18
+ id: SupportedChainId;
19
+ };
20
+ export type Numberish = number | bigint;
21
+ export type Chainish = {
22
+ id: Numberish;
23
+ } | Numberish | string;
24
+ export declare function getSupportedChain(chainish: Chainish): SupportedChain;
25
+ export {};
@@ -0,0 +1,27 @@
1
+ // No imports here to avoid issues with closures and modules across pulumi boundary
2
+ // This file can be seen as mirroring the functionality of viem changes without depending on it directly.
3
+ // It exists as a workaround for some very gnarly issues with code reuse between Pulumi and this module, partly
4
+ // relating to modules but also linked to Pulumi's ability to capture closures and serialise them.
5
+ export const supportedChains = {
6
+ baseSepolia: 84532,
7
+ sepolia: 11155111,
8
+ monadTestnet: 10143,
9
+ plasmaTestnet: 9746,
10
+ worldchainSepolia: 4801,
11
+ anvil: 31337,
12
+ };
13
+ export const fheSupportedChains = { baseSepolia: 84532, sepolia: 11155111 };
14
+ // Get supportedChain either by its chain ID or the short name (lower pascal case)
15
+ export function getSupportedChain(chainish) {
16
+ const found = typeof chainish === 'number' || typeof chainish === 'bigint'
17
+ ? Object.entries(supportedChains).find(([, id]) => id === Number(chainish))
18
+ : typeof chainish === 'object'
19
+ ? Object.entries(supportedChains).find(([, id]) => id === Number(chainish.id))
20
+ : Object.entries(supportedChains).find(([shortName]) => shortName === chainish);
21
+ if (!found) {
22
+ throw new Error(`Supported chain ${chainish} not found`);
23
+ }
24
+ const [name, id] = found;
25
+ return { name: name, id };
26
+ }
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2hhaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsbUZBQW1GO0FBRW5GLHlHQUF5RztBQUN6RywrR0FBK0c7QUFDL0csa0dBQWtHO0FBRWxHLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRztJQUM3QixXQUFXLEVBQUUsS0FBSztJQUNsQixPQUFPLEVBQUUsUUFBUTtJQUNqQixZQUFZLEVBQUUsS0FBSztJQUNuQixhQUFhLEVBQUUsSUFBSTtJQUNuQixpQkFBaUIsRUFBRSxJQUFJO0lBQ3ZCLEtBQUssRUFBRSxLQUFLO0NBQ0osQ0FBQztBQUVYLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFXLENBQUM7QUFjckYsa0ZBQWtGO0FBQ2xGLE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxRQUFrQjtJQUNsRCxNQUFNLEtBQUssR0FDVCxPQUFPLFFBQVEsS0FBSyxRQUFRLElBQUksT0FBTyxRQUFRLEtBQUssUUFBUTtRQUMxRCxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsS0FBSyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDM0UsQ0FBQyxDQUFDLE9BQU8sUUFBUSxLQUFLLFFBQVE7WUFDNUIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEtBQUssTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUM5RSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxTQUFTLEtBQUssUUFBUSxDQUFDLENBQUM7SUFDdEYsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ1gsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQkFBbUIsUUFBUSxZQUFZLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBQ0QsTUFBTSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUM7SUFDekIsT0FBTyxFQUFFLElBQUksRUFBRSxJQUEwQixFQUFFLEVBQUUsRUFBRSxDQUFDO0FBQ2xELENBQUMifQ==
@@ -0,0 +1,119 @@
1
+ import { Schema } from 'effect';
2
+ import { Bytes32 } from '../binary.js';
3
+ import { InputContext } from '../handle.js';
4
+ export type Encryptor<S extends EncryptionScheme = EncryptionScheme> = <T extends SupportedFheType>(plaintext: PlaintextWithContextOf<S, T>) => Promise<EncryptResultOf<S, T>>;
5
+ export type Decryptor<S extends EncryptionScheme = EncryptionScheme> = <T extends SupportedFheType>(ciphertext: CiphertextOf<S, T>, context?: InputContext) => Promise<PlaintextOf<S, T>>;
6
+ export declare const supportedFheTypes: {
7
+ readonly euint64: 5;
8
+ readonly euint160: 7;
9
+ readonly euint256: 8;
10
+ readonly ebool: 0;
11
+ };
12
+ export declare const SupportedFheTypeName: Schema.SchemaClass<"ebool" | "euint64" | "euint160" | "euint256", "ebool" | "euint64" | "euint160" | "euint256", never>;
13
+ export type SupportedFheTypeName = typeof SupportedFheTypeName.Type;
14
+ export declare const SupportedFheType: Schema.SchemaClass<0 | 5 | 7 | 8, 0 | 5 | 7 | 8, never>;
15
+ export type SupportedFheType = typeof SupportedFheType.Type;
16
+ export declare const encryptionSchemes: {
17
+ readonly tfhe: 0;
18
+ readonly ecies: 1;
19
+ readonly cryptobox: 2;
20
+ };
21
+ export declare function getEncryptionSchemeName(scheme: number): string;
22
+ export type EncryptionSchemes = typeof encryptionSchemes;
23
+ export type EciesScheme = EncryptionSchemes['ecies'];
24
+ export type TfheScheme = EncryptionSchemes['tfhe'];
25
+ export type CryptoboxScheme = EncryptionSchemes['cryptobox'];
26
+ export declare const EncryptionScheme: Schema.Literal<[0, 1, 2]>;
27
+ export type EncryptionScheme = typeof EncryptionScheme.Type;
28
+ type DistType<P, S extends EncryptionScheme, T extends SupportedFheType> = P extends any ? P & {
29
+ scheme: S;
30
+ type: T;
31
+ } : never;
32
+ export declare const ciphertextEnvelopes: {
33
+ readonly none: 0;
34
+ readonly hadu: 1;
35
+ };
36
+ export declare const CiphertextEnvelope: Schema.SchemaClass<0 | 1, 0 | 1, never>;
37
+ export declare const Ciphertext: Schema.Struct<{
38
+ scheme: Schema.Literal<[0, 1, 2]>;
39
+ type: Schema.SchemaClass<0 | 5 | 7 | 8, 0 | 5 | 7 | 8, never>;
40
+ value: Schema.TemplateLiteral<`0x${string}`>;
41
+ envelope: Schema.optional<Schema.SchemaClass<0 | 1, 0 | 1, never>>;
42
+ }>;
43
+ export type Ciphertext = typeof Ciphertext.Type;
44
+ export type CiphertextOf<S extends EncryptionScheme, T extends SupportedFheType> = DistType<Ciphertext, S, T>;
45
+ export declare const CiphertextWithContext: Schema.Struct<{
46
+ ciphertext: Schema.Struct<{
47
+ scheme: Schema.Literal<[0, 1, 2]>;
48
+ type: Schema.SchemaClass<0 | 5 | 7 | 8, 0 | 5 | 7 | 8, never>;
49
+ value: Schema.TemplateLiteral<`0x${string}`>;
50
+ envelope: Schema.optional<Schema.SchemaClass<0 | 1, 0 | 1, never>>;
51
+ }>;
52
+ context: Schema.Struct<{
53
+ hostChainId: typeof Schema.BigInt;
54
+ aclAddress: Schema.TemplateLiteral<`0x${string}`>;
55
+ userAddress: Schema.TemplateLiteral<`0x${string}`>;
56
+ contractAddress: Schema.TemplateLiteral<`0x${string}`>;
57
+ }>;
58
+ }>;
59
+ export type CiphertextWithContext = typeof CiphertextWithContext.Type;
60
+ export type CiphertextWithContextOf<S extends EncryptionScheme, T extends SupportedFheType> = CiphertextWithContext & {
61
+ ciphertext: CiphertextOf<S, T>;
62
+ };
63
+ export declare const EncryptResult: Schema.Struct<{
64
+ ciphertext: Schema.Struct<{
65
+ scheme: Schema.Literal<[0, 1, 2]>;
66
+ type: Schema.SchemaClass<0 | 5 | 7 | 8, 0 | 5 | 7 | 8, never>;
67
+ value: Schema.TemplateLiteral<`0x${string}`>;
68
+ envelope: Schema.optional<Schema.SchemaClass<0 | 1, 0 | 1, never>>;
69
+ }>;
70
+ context: Schema.Struct<{
71
+ hostChainId: typeof Schema.BigInt;
72
+ aclAddress: Schema.TemplateLiteral<`0x${string}`>;
73
+ userAddress: Schema.TemplateLiteral<`0x${string}`>;
74
+ contractAddress: Schema.TemplateLiteral<`0x${string}`>;
75
+ }>;
76
+ prehandle: Schema.brand<Schema.filter<Schema.transformOrFail<Schema.Union<[typeof Schema.String, Schema.refine<object & Uint8Array<ArrayBufferLike>, Schema.Schema<object, object, never>>]>, Schema.TemplateLiteral<`0x${string}`>, never>>, "Bytes32">;
77
+ handle: Schema.brand<Schema.filter<Schema.transformOrFail<Schema.Union<[typeof Schema.String, Schema.refine<object & Uint8Array<ArrayBufferLike>, Schema.Schema<object, object, never>>]>, Schema.TemplateLiteral<`0x${string}`>, never>>, "Bytes32">;
78
+ }>;
79
+ export type EncryptResult = typeof EncryptResult.Type;
80
+ export type EncryptResultOf<S extends EncryptionScheme, T extends SupportedFheType> = EncryptResult & {
81
+ ciphertext: CiphertextOf<S, T>;
82
+ };
83
+ export declare const Plaintext: Schema.Union<[Schema.Struct<{
84
+ scheme: Schema.Literal<[0, 1, 2]>;
85
+ type: Schema.Literal<[5, 7, 8]>;
86
+ value: typeof Schema.BigInt;
87
+ }>, Schema.Struct<{
88
+ scheme: Schema.Literal<[0, 1, 2]>;
89
+ type: Schema.Literal<[0]>;
90
+ value: typeof Schema.Boolean;
91
+ }>]>;
92
+ export type Plaintext = typeof Plaintext.Type;
93
+ export type PlaintextOf<S extends EncryptionScheme, T extends SupportedFheType> = DistType<Plaintext, S, T>;
94
+ export declare const PlaintextWithContext: Schema.Struct<{
95
+ plaintext: Schema.Union<[Schema.Struct<{
96
+ scheme: Schema.Literal<[0, 1, 2]>;
97
+ type: Schema.Literal<[5, 7, 8]>;
98
+ value: typeof Schema.BigInt;
99
+ }>, Schema.Struct<{
100
+ scheme: Schema.Literal<[0, 1, 2]>;
101
+ type: Schema.Literal<[0]>;
102
+ value: typeof Schema.Boolean;
103
+ }>]>;
104
+ context: Schema.Struct<{
105
+ hostChainId: typeof Schema.BigInt;
106
+ aclAddress: Schema.TemplateLiteral<`0x${string}`>;
107
+ userAddress: Schema.TemplateLiteral<`0x${string}`>;
108
+ contractAddress: Schema.TemplateLiteral<`0x${string}`>;
109
+ }>;
110
+ }>;
111
+ export type PlaintextWithContext = typeof PlaintextWithContext.Type;
112
+ export type PlaintextWithContextOf<S extends EncryptionScheme, T extends SupportedFheType> = PlaintextWithContext & {
113
+ plaintext: PlaintextOf<S, T>;
114
+ };
115
+ export declare function bigintToPlaintext<S extends EncryptionScheme, T extends SupportedFheType>(scheme: S, type: T, bigPt: bigint): PlaintextOf<S, T>;
116
+ export declare function plaintextToBigint(plaintext: Plaintext): bigint;
117
+ export declare function plaintextToBytes32(plaintext: Plaintext): Bytes32;
118
+ export declare function bytes32ToPlaintext(plaintext: Bytes32, scheme: EncryptionScheme, type: SupportedFheType): Plaintext;
119
+ export {};
@@ -0,0 +1,101 @@
1
+ import { Schema } from 'effect';
2
+ import { bigintToBytes32, Bytes32, HexString } from '../binary.js';
3
+ import { handleTypes, InputContext } from '../handle.js';
4
+ export const supportedFheTypes = {
5
+ euint64: handleTypes.euint64,
6
+ euint160: handleTypes.euint160,
7
+ euint256: handleTypes.euint256,
8
+ ebool: handleTypes.ebool,
9
+ };
10
+ const supportedFheTypeNames = Object.keys(supportedFheTypes);
11
+ export const SupportedFheTypeName = Schema.Literal(...supportedFheTypeNames);
12
+ // TODO: extend to all types
13
+ export const SupportedFheType = Schema.Literal(...Object.values(supportedFheTypes));
14
+ export const encryptionSchemes = {
15
+ tfhe: 0,
16
+ ecies: 1,
17
+ cryptobox: 2,
18
+ };
19
+ export function getEncryptionSchemeName(scheme) {
20
+ switch (scheme) {
21
+ case encryptionSchemes.tfhe:
22
+ return 'TFHE';
23
+ case encryptionSchemes.ecies:
24
+ return 'ECIES';
25
+ case encryptionSchemes.cryptobox:
26
+ return 'NACLCryptoBox';
27
+ default:
28
+ throw new Error(`Unknown encryption scheme: ${scheme}`);
29
+ }
30
+ }
31
+ export const EncryptionScheme = Schema.Literal(encryptionSchemes.tfhe, encryptionSchemes.ecies, encryptionSchemes.cryptobox);
32
+ export const ciphertextEnvelopes = {
33
+ none: 0,
34
+ hadu: 1,
35
+ };
36
+ export const CiphertextEnvelope = Schema.Literal(...Object.values(ciphertextEnvelopes));
37
+ export const Ciphertext = Schema.Struct({
38
+ scheme: EncryptionScheme,
39
+ type: SupportedFheType,
40
+ value: HexString,
41
+ envelope: Schema.optional(CiphertextEnvelope),
42
+ });
43
+ export const CiphertextWithContext = Schema.Struct({
44
+ ciphertext: Ciphertext,
45
+ context: InputContext,
46
+ });
47
+ export const EncryptResult = Schema.Struct({
48
+ ciphertext: Ciphertext,
49
+ context: InputContext,
50
+ prehandle: Bytes32,
51
+ handle: Bytes32,
52
+ });
53
+ export const Plaintext = Schema.Union(Schema.Struct({
54
+ scheme: EncryptionScheme,
55
+ type: Schema.Literal(handleTypes.euint64, handleTypes.euint160, handleTypes.euint256),
56
+ value: Schema.BigInt,
57
+ }), Schema.Struct({
58
+ scheme: EncryptionScheme,
59
+ type: Schema.Literal(handleTypes.ebool),
60
+ value: Schema.Boolean,
61
+ }));
62
+ export const PlaintextWithContext = Schema.Struct({
63
+ plaintext: Plaintext,
64
+ context: InputContext,
65
+ });
66
+ export function bigintToPlaintext(scheme, type, bigPt) {
67
+ switch (type) {
68
+ case handleTypes.euint64:
69
+ case handleTypes.euint160:
70
+ case handleTypes.euint256:
71
+ return {
72
+ scheme,
73
+ type,
74
+ value: bigPt,
75
+ };
76
+ case handleTypes.ebool:
77
+ return {
78
+ scheme,
79
+ type,
80
+ value: bigPt !== 0n,
81
+ };
82
+ }
83
+ throw new Error(`Unsupported FHE type: ${type}`);
84
+ }
85
+ export function plaintextToBigint(plaintext) {
86
+ switch (plaintext.type) {
87
+ case handleTypes.euint64:
88
+ case handleTypes.euint160:
89
+ case handleTypes.euint256:
90
+ return plaintext.value;
91
+ case handleTypes.ebool:
92
+ return plaintext.value ? 1n : 0n;
93
+ }
94
+ }
95
+ export function plaintextToBytes32(plaintext) {
96
+ return bigintToBytes32(plaintextToBigint(plaintext));
97
+ }
98
+ export function bytes32ToPlaintext(plaintext, scheme, type) {
99
+ return bigintToPlaintext(scheme, type, BigInt(plaintext));
100
+ }
101
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5jcnlwdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbmNyeXB0aW9uL2VuY3J5cHRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNoQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDbkUsT0FBTyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFhekQsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUc7SUFDL0IsT0FBTyxFQUFFLFdBQVcsQ0FBQyxPQUFPO0lBQzVCLFFBQVEsRUFBRSxXQUFXLENBQUMsUUFBUTtJQUM5QixRQUFRLEVBQUUsV0FBVyxDQUFDLFFBQVE7SUFDOUIsS0FBSyxFQUFFLFdBQVcsQ0FBQyxLQUFLO0NBQ2hCLENBQUM7QUFFWCxNQUFNLHFCQUFxQixHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQXVDLENBQUM7QUFFbkcsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLHFCQUFxQixDQUFDLENBQUM7QUFJN0UsNEJBQTRCO0FBQzVCLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQztBQUlwRixNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRztJQUMvQixJQUFJLEVBQUUsQ0FBQztJQUNQLEtBQUssRUFBRSxDQUFDO0lBQ1IsU0FBUyxFQUFFLENBQUM7Q0FDSixDQUFDO0FBRVgsTUFBTSxVQUFVLHVCQUF1QixDQUFDLE1BQWM7SUFDcEQsUUFBUSxNQUFNLEVBQUUsQ0FBQztRQUNmLEtBQUssaUJBQWlCLENBQUMsSUFBSTtZQUN6QixPQUFPLE1BQU0s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
@@ -0,0 +1 @@
1
+ export * from './encryption.js';
@@ -0,0 +1,2 @@
1
+ export * from './encryption.js';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZW5jcnlwdGlvbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGlCQUFpQixDQUFDIn0=
@@ -0,0 +1,9 @@
1
+ import { Chainish } from '../chain.js';
2
+ export type Address = `0x${string}`;
3
+ export type FheEnvironment = {
4
+ aclAddress: Address;
5
+ thfeExecutorAddress: Address;
6
+ gatewayAddress: Address;
7
+ kmsVerifierAddress: Address;
8
+ };
9
+ export declare function getFheEnvironment(chainId: Chainish): FheEnvironment;
@@ -0,0 +1,8 @@
1
+ // Avoid inporting any other dependencies in this file to avoid serialisation issues downstream in infracto
2
+ import { getSupportedChain } from '../chain.js';
3
+ import { FHEEnvironments } from '../generated/fhe-environments.js';
4
+ export function getFheEnvironment(chainId) {
5
+ const supportedChain = getSupportedChain(chainId);
6
+ return FHEEnvironments[supportedChain.name];
7
+ }
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmhlLWVudmlyb25tZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2ZoZXZtL2ZoZS1lbnZpcm9ubWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyR0FBMkc7QUFDM0csT0FBTyxFQUFnQyxpQkFBaUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM5RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFhbkUsTUFBTSxVQUFVLGlCQUFpQixDQUFDLE9BQWlCO0lBQ2pELE1BQU0sY0FBYyxHQUFHLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2xELE9BQU8sZUFBZSxDQUFDLGNBQWMsQ0FBQyxJQUF1QyxDQUFDLENBQUM7QUFDakYsQ0FBQyJ9