@inco/lightning-js 0.0.0-bootstrap.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 (283) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +587 -0
  3. package/dist/cjs/advancedacl/index.d.ts +2 -0
  4. package/dist/cjs/advancedacl/index.js +19 -0
  5. package/dist/cjs/advancedacl/session-key.d.ts +95 -0
  6. package/dist/cjs/advancedacl/session-key.js +376 -0
  7. package/dist/cjs/advancedacl/types.d.ts +16 -0
  8. package/dist/cjs/advancedacl/types.js +3 -0
  9. package/dist/cjs/attestedcompute/attested-compute.d.ts +65 -0
  10. package/dist/cjs/attestedcompute/attested-compute.js +80 -0
  11. package/dist/cjs/attestedcompute/types.d.ts +35 -0
  12. package/dist/cjs/attestedcompute/types.js +46 -0
  13. package/dist/cjs/attesteddecrypt/attested-decrypt.d.ts +61 -0
  14. package/dist/cjs/attesteddecrypt/attested-decrypt.js +118 -0
  15. package/dist/cjs/attesteddecrypt/index.d.ts +1 -0
  16. package/dist/cjs/attesteddecrypt/index.js +18 -0
  17. package/dist/cjs/attesteddecrypt/types.d.ts +27 -0
  18. package/dist/cjs/attesteddecrypt/types.js +16 -0
  19. package/dist/cjs/attestedreveal/attested-reveal.d.ts +21 -0
  20. package/dist/cjs/attestedreveal/attested-reveal.js +31 -0
  21. package/dist/cjs/attestedreveal/index.d.ts +2 -0
  22. package/dist/cjs/attestedreveal/index.js +21 -0
  23. package/dist/cjs/attestedreveal/types.d.ts +4 -0
  24. package/dist/cjs/attestedreveal/types.js +13 -0
  25. package/dist/cjs/binary.d.ts +104 -0
  26. package/dist/cjs/binary.js +171 -0
  27. package/dist/cjs/chain.d.ts +50 -0
  28. package/dist/cjs/chain.js +62 -0
  29. package/dist/cjs/eip712/eip712.d.ts +18 -0
  30. package/dist/cjs/eip712/eip712.js +51 -0
  31. package/dist/cjs/eip712/index.d.ts +1 -0
  32. package/dist/cjs/eip712/index.js +8 -0
  33. package/dist/cjs/elistattesteddecrypt/elist-attested-decrypt.d.ts +51 -0
  34. package/dist/cjs/elistattesteddecrypt/elist-attested-decrypt.js +94 -0
  35. package/dist/cjs/elistattesteddecrypt/index.d.ts +2 -0
  36. package/dist/cjs/elistattesteddecrypt/index.js +22 -0
  37. package/dist/cjs/elistattesteddecrypt/types.d.ts +31 -0
  38. package/dist/cjs/elistattesteddecrypt/types.js +16 -0
  39. package/dist/cjs/encryption/encryption.d.ts +235 -0
  40. package/dist/cjs/encryption/encryption.js +226 -0
  41. package/dist/cjs/encryption/index.d.ts +1 -0
  42. package/dist/cjs/encryption/index.js +19 -0
  43. package/dist/cjs/generated/abis/add-two.d.ts +117 -0
  44. package/dist/cjs/generated/abis/add-two.js +80 -0
  45. package/dist/cjs/generated/abis/lightning.d.ts +3362 -0
  46. package/dist/cjs/generated/abis/lightning.js +2445 -0
  47. package/dist/cjs/generated/abis/test-elist.d.ts +276 -0
  48. package/dist/cjs/generated/abis/test-elist.js +168 -0
  49. package/dist/cjs/generated/abis/verifier.d.ts +1353 -0
  50. package/dist/cjs/generated/abis/verifier.js +954 -0
  51. package/dist/cjs/generated/es/inco/covalidator/compute/v1/server_pb.d.ts +1494 -0
  52. package/dist/cjs/generated/es/inco/covalidator/compute/v1/server_pb.js +395 -0
  53. package/dist/cjs/generated/es/inco/covalidator/compute/v1/types_pb.d.ts +247 -0
  54. package/dist/cjs/generated/es/inco/covalidator/compute/v1/types_pb.js +80 -0
  55. package/dist/cjs/generated/es/inco/helioswrapper/v1/helioswrapper_pb.d.ts +77 -0
  56. package/dist/cjs/generated/es/inco/helioswrapper/v1/helioswrapper_pb.js +28 -0
  57. package/dist/cjs/generated/es/inco/kms/lite/v1/kms_service_pb.d.ts +685 -0
  58. package/dist/cjs/generated/es/inco/kms/lite/v1/kms_service_pb.js +100 -0
  59. package/dist/cjs/generated/es/inco/kms/lite/v1/types_pb.d.ts +289 -0
  60. package/dist/cjs/generated/es/inco/kms/lite/v1/types_pb.js +136 -0
  61. package/dist/cjs/generated/es/inco/sealingfetcher/v1/sealingfetcher_pb.d.ts +371 -0
  62. package/dist/cjs/generated/es/inco/sealingfetcher/v1/sealingfetcher_pb.js +88 -0
  63. package/dist/cjs/generated/lightning.d.ts +830 -0
  64. package/dist/cjs/generated/lightning.js +872 -0
  65. package/dist/cjs/generated/local-node.d.ts +50 -0
  66. package/dist/cjs/generated/local-node.js +107 -0
  67. package/dist/cjs/handle.d.ts +123 -0
  68. package/dist/cjs/handle.js +221 -0
  69. package/dist/cjs/index.d.ts +5 -0
  70. package/dist/cjs/index.js +31 -0
  71. package/dist/cjs/kms/client.d.ts +12 -0
  72. package/dist/cjs/kms/client.js +47 -0
  73. package/dist/cjs/kms/quorumClient.d.ts +65 -0
  74. package/dist/cjs/kms/quorumClient.js +463 -0
  75. package/dist/cjs/kms/quorumConsistency.d.ts +82 -0
  76. package/dist/cjs/kms/quorumConsistency.js +269 -0
  77. package/dist/cjs/kms/signatureVerification.d.ts +35 -0
  78. package/dist/cjs/kms/signatureVerification.js +88 -0
  79. package/dist/cjs/kms/thresholdPromises.d.ts +8 -0
  80. package/dist/cjs/kms/thresholdPromises.js +62 -0
  81. package/dist/cjs/lite/attested-compute.d.ts +6 -0
  82. package/dist/cjs/lite/attested-compute.js +8 -0
  83. package/dist/cjs/lite/attested-decrypt.d.ts +4 -0
  84. package/dist/cjs/lite/attested-decrypt.js +6 -0
  85. package/dist/cjs/lite/deployments.d.ts +24 -0
  86. package/dist/cjs/lite/deployments.js +21 -0
  87. package/dist/cjs/lite/hadu.d.ts +4 -0
  88. package/dist/cjs/lite/hadu.js +28 -0
  89. package/dist/cjs/lite/index.d.ts +13 -0
  90. package/dist/cjs/lite/index.js +31 -0
  91. package/dist/cjs/lite/lightning.d.ts +459 -0
  92. package/dist/cjs/lite/lightning.js +696 -0
  93. package/dist/cjs/lite/types.d.ts +47 -0
  94. package/dist/cjs/lite/types.js +3 -0
  95. package/dist/cjs/lite/xwing.d.ts +154 -0
  96. package/dist/cjs/lite/xwing.js +326 -0
  97. package/dist/cjs/local/index.d.ts +1 -0
  98. package/dist/cjs/local/index.js +18 -0
  99. package/dist/cjs/local/local-node.d.ts +37 -0
  100. package/dist/cjs/local/local-node.js +80 -0
  101. package/dist/cjs/reencryption/eip712.d.ts +56 -0
  102. package/dist/cjs/reencryption/eip712.js +90 -0
  103. package/dist/cjs/reencryption/index.d.ts +2 -0
  104. package/dist/cjs/reencryption/index.js +19 -0
  105. package/dist/cjs/reencryption/types.d.ts +48 -0
  106. package/dist/cjs/reencryption/types.js +3 -0
  107. package/dist/cjs/retry.d.ts +30 -0
  108. package/dist/cjs/retry.js +87 -0
  109. package/dist/cjs/schema.d.ts +4 -0
  110. package/dist/cjs/schema.js +19 -0
  111. package/dist/cjs/test/mocks.d.ts +20 -0
  112. package/dist/cjs/test/mocks.js +72 -0
  113. package/dist/cjs/viem.d.ts +1141 -0
  114. package/dist/cjs/viem.js +36 -0
  115. package/dist/esm/advancedacl/index.d.ts +2 -0
  116. package/dist/esm/advancedacl/index.js +3 -0
  117. package/dist/esm/advancedacl/session-key.d.ts +95 -0
  118. package/dist/esm/advancedacl/session-key.js +367 -0
  119. package/dist/esm/advancedacl/types.d.ts +16 -0
  120. package/dist/esm/advancedacl/types.js +2 -0
  121. package/dist/esm/attestedcompute/attested-compute.d.ts +65 -0
  122. package/dist/esm/attestedcompute/attested-compute.js +76 -0
  123. package/dist/esm/attestedcompute/types.d.ts +35 -0
  124. package/dist/esm/attestedcompute/types.js +42 -0
  125. package/dist/esm/attesteddecrypt/attested-decrypt.d.ts +61 -0
  126. package/dist/esm/attesteddecrypt/attested-decrypt.js +112 -0
  127. package/dist/esm/attesteddecrypt/index.d.ts +1 -0
  128. package/dist/esm/attesteddecrypt/index.js +2 -0
  129. package/dist/esm/attesteddecrypt/types.d.ts +27 -0
  130. package/dist/esm/attesteddecrypt/types.js +12 -0
  131. package/dist/esm/attestedreveal/attested-reveal.d.ts +21 -0
  132. package/dist/esm/attestedreveal/attested-reveal.js +28 -0
  133. package/dist/esm/attestedreveal/index.d.ts +2 -0
  134. package/dist/esm/attestedreveal/index.js +3 -0
  135. package/dist/esm/attestedreveal/types.d.ts +4 -0
  136. package/dist/esm/attestedreveal/types.js +9 -0
  137. package/dist/esm/binary.d.ts +104 -0
  138. package/dist/esm/binary.js +155 -0
  139. package/dist/esm/chain.d.ts +50 -0
  140. package/dist/esm/chain.js +58 -0
  141. package/dist/esm/eip712/eip712.d.ts +18 -0
  142. package/dist/esm/eip712/eip712.js +46 -0
  143. package/dist/esm/eip712/index.d.ts +1 -0
  144. package/dist/esm/eip712/index.js +2 -0
  145. package/dist/esm/elistattesteddecrypt/elist-attested-decrypt.d.ts +51 -0
  146. package/dist/esm/elistattesteddecrypt/elist-attested-decrypt.js +89 -0
  147. package/dist/esm/elistattesteddecrypt/index.d.ts +2 -0
  148. package/dist/esm/elistattesteddecrypt/index.js +3 -0
  149. package/dist/esm/elistattesteddecrypt/types.d.ts +31 -0
  150. package/dist/esm/elistattesteddecrypt/types.js +12 -0
  151. package/dist/esm/encryption/encryption.d.ts +235 -0
  152. package/dist/esm/encryption/encryption.js +214 -0
  153. package/dist/esm/encryption/index.d.ts +1 -0
  154. package/dist/esm/encryption/index.js +2 -0
  155. package/dist/esm/generated/abis/add-two.d.ts +117 -0
  156. package/dist/esm/generated/abis/add-two.js +77 -0
  157. package/dist/esm/generated/abis/lightning.d.ts +3362 -0
  158. package/dist/esm/generated/abis/lightning.js +2442 -0
  159. package/dist/esm/generated/abis/test-elist.d.ts +276 -0
  160. package/dist/esm/generated/abis/test-elist.js +165 -0
  161. package/dist/esm/generated/abis/verifier.d.ts +1353 -0
  162. package/dist/esm/generated/abis/verifier.js +951 -0
  163. package/dist/esm/generated/es/inco/covalidator/compute/v1/server_pb.d.ts +1494 -0
  164. package/dist/esm/generated/es/inco/covalidator/compute/v1/server_pb.js +392 -0
  165. package/dist/esm/generated/es/inco/covalidator/compute/v1/types_pb.d.ts +247 -0
  166. package/dist/esm/generated/es/inco/covalidator/compute/v1/types_pb.js +77 -0
  167. package/dist/esm/generated/es/inco/helioswrapper/v1/helioswrapper_pb.d.ts +77 -0
  168. package/dist/esm/generated/es/inco/helioswrapper/v1/helioswrapper_pb.js +25 -0
  169. package/dist/esm/generated/es/inco/kms/lite/v1/kms_service_pb.d.ts +685 -0
  170. package/dist/esm/generated/es/inco/kms/lite/v1/kms_service_pb.js +97 -0
  171. package/dist/esm/generated/es/inco/kms/lite/v1/types_pb.d.ts +289 -0
  172. package/dist/esm/generated/es/inco/kms/lite/v1/types_pb.js +133 -0
  173. package/dist/esm/generated/es/inco/sealingfetcher/v1/sealingfetcher_pb.d.ts +371 -0
  174. package/dist/esm/generated/es/inco/sealingfetcher/v1/sealingfetcher_pb.js +85 -0
  175. package/dist/esm/generated/lightning.d.ts +830 -0
  176. package/dist/esm/generated/lightning.js +869 -0
  177. package/dist/esm/generated/local-node.d.ts +50 -0
  178. package/dist/esm/generated/local-node.js +104 -0
  179. package/dist/esm/handle.d.ts +123 -0
  180. package/dist/esm/handle.js +212 -0
  181. package/dist/esm/index.d.ts +5 -0
  182. package/dist/esm/index.js +6 -0
  183. package/dist/esm/kms/client.d.ts +12 -0
  184. package/dist/esm/kms/client.js +40 -0
  185. package/dist/esm/kms/quorumClient.d.ts +65 -0
  186. package/dist/esm/kms/quorumClient.js +459 -0
  187. package/dist/esm/kms/quorumConsistency.d.ts +82 -0
  188. package/dist/esm/kms/quorumConsistency.js +260 -0
  189. package/dist/esm/kms/signatureVerification.d.ts +35 -0
  190. package/dist/esm/kms/signatureVerification.js +84 -0
  191. package/dist/esm/kms/thresholdPromises.d.ts +8 -0
  192. package/dist/esm/kms/thresholdPromises.js +59 -0
  193. package/dist/esm/lite/attested-compute.d.ts +6 -0
  194. package/dist/esm/lite/attested-compute.js +4 -0
  195. package/dist/esm/lite/attested-decrypt.d.ts +4 -0
  196. package/dist/esm/lite/attested-decrypt.js +3 -0
  197. package/dist/esm/lite/deployments.d.ts +24 -0
  198. package/dist/esm/lite/deployments.js +17 -0
  199. package/dist/esm/lite/hadu.d.ts +4 -0
  200. package/dist/esm/lite/hadu.js +24 -0
  201. package/dist/esm/lite/index.d.ts +13 -0
  202. package/dist/esm/lite/index.js +10 -0
  203. package/dist/esm/lite/lightning.d.ts +459 -0
  204. package/dist/esm/lite/lightning.js +692 -0
  205. package/dist/esm/lite/types.d.ts +47 -0
  206. package/dist/esm/lite/types.js +2 -0
  207. package/dist/esm/lite/xwing.d.ts +154 -0
  208. package/dist/esm/lite/xwing.js +311 -0
  209. package/dist/esm/local/index.d.ts +1 -0
  210. package/dist/esm/local/index.js +2 -0
  211. package/dist/esm/local/local-node.d.ts +37 -0
  212. package/dist/esm/local/local-node.js +76 -0
  213. package/dist/esm/reencryption/eip712.d.ts +56 -0
  214. package/dist/esm/reencryption/eip712.js +87 -0
  215. package/dist/esm/reencryption/index.d.ts +2 -0
  216. package/dist/esm/reencryption/index.js +3 -0
  217. package/dist/esm/reencryption/types.d.ts +48 -0
  218. package/dist/esm/reencryption/types.js +2 -0
  219. package/dist/esm/retry.d.ts +30 -0
  220. package/dist/esm/retry.js +82 -0
  221. package/dist/esm/schema.d.ts +4 -0
  222. package/dist/esm/schema.js +15 -0
  223. package/dist/esm/test/mocks.d.ts +20 -0
  224. package/dist/esm/test/mocks.js +64 -0
  225. package/dist/esm/viem.d.ts +1141 -0
  226. package/dist/esm/viem.js +32 -0
  227. package/dist/types/advancedacl/index.d.ts +2 -0
  228. package/dist/types/advancedacl/session-key.d.ts +95 -0
  229. package/dist/types/advancedacl/types.d.ts +16 -0
  230. package/dist/types/attestedcompute/attested-compute.d.ts +65 -0
  231. package/dist/types/attestedcompute/types.d.ts +35 -0
  232. package/dist/types/attesteddecrypt/attested-decrypt.d.ts +61 -0
  233. package/dist/types/attesteddecrypt/index.d.ts +1 -0
  234. package/dist/types/attesteddecrypt/types.d.ts +27 -0
  235. package/dist/types/attestedreveal/attested-reveal.d.ts +21 -0
  236. package/dist/types/attestedreveal/index.d.ts +2 -0
  237. package/dist/types/attestedreveal/types.d.ts +4 -0
  238. package/dist/types/binary.d.ts +104 -0
  239. package/dist/types/chain.d.ts +50 -0
  240. package/dist/types/eip712/eip712.d.ts +18 -0
  241. package/dist/types/eip712/index.d.ts +1 -0
  242. package/dist/types/elistattesteddecrypt/elist-attested-decrypt.d.ts +51 -0
  243. package/dist/types/elistattesteddecrypt/index.d.ts +2 -0
  244. package/dist/types/elistattesteddecrypt/types.d.ts +31 -0
  245. package/dist/types/encryption/encryption.d.ts +235 -0
  246. package/dist/types/encryption/index.d.ts +1 -0
  247. package/dist/types/generated/abis/add-two.d.ts +117 -0
  248. package/dist/types/generated/abis/lightning.d.ts +3362 -0
  249. package/dist/types/generated/abis/test-elist.d.ts +276 -0
  250. package/dist/types/generated/abis/verifier.d.ts +1353 -0
  251. package/dist/types/generated/es/inco/covalidator/compute/v1/server_pb.d.ts +1494 -0
  252. package/dist/types/generated/es/inco/covalidator/compute/v1/types_pb.d.ts +247 -0
  253. package/dist/types/generated/es/inco/helioswrapper/v1/helioswrapper_pb.d.ts +77 -0
  254. package/dist/types/generated/es/inco/kms/lite/v1/kms_service_pb.d.ts +685 -0
  255. package/dist/types/generated/es/inco/kms/lite/v1/types_pb.d.ts +289 -0
  256. package/dist/types/generated/es/inco/sealingfetcher/v1/sealingfetcher_pb.d.ts +371 -0
  257. package/dist/types/generated/lightning.d.ts +830 -0
  258. package/dist/types/generated/local-node.d.ts +50 -0
  259. package/dist/types/handle.d.ts +123 -0
  260. package/dist/types/index.d.ts +5 -0
  261. package/dist/types/kms/client.d.ts +12 -0
  262. package/dist/types/kms/quorumClient.d.ts +65 -0
  263. package/dist/types/kms/quorumConsistency.d.ts +82 -0
  264. package/dist/types/kms/signatureVerification.d.ts +35 -0
  265. package/dist/types/kms/thresholdPromises.d.ts +8 -0
  266. package/dist/types/lite/attested-compute.d.ts +6 -0
  267. package/dist/types/lite/attested-decrypt.d.ts +4 -0
  268. package/dist/types/lite/deployments.d.ts +24 -0
  269. package/dist/types/lite/hadu.d.ts +4 -0
  270. package/dist/types/lite/index.d.ts +13 -0
  271. package/dist/types/lite/lightning.d.ts +459 -0
  272. package/dist/types/lite/types.d.ts +47 -0
  273. package/dist/types/lite/xwing.d.ts +154 -0
  274. package/dist/types/local/index.d.ts +1 -0
  275. package/dist/types/local/local-node.d.ts +37 -0
  276. package/dist/types/reencryption/eip712.d.ts +56 -0
  277. package/dist/types/reencryption/index.d.ts +2 -0
  278. package/dist/types/reencryption/types.d.ts +48 -0
  279. package/dist/types/retry.d.ts +30 -0
  280. package/dist/types/schema.d.ts +4 -0
  281. package/dist/types/test/mocks.d.ts +20 -0
  282. package/dist/types/viem.d.ts +1141 -0
  283. package/package.json +129 -0
@@ -0,0 +1,235 @@
1
+ import { Schema } from 'effect';
2
+ import { ByteArray, Hex } from 'viem';
3
+ import { Bytes32 } from '../binary.js';
4
+ /**
5
+ * A function that encrypts a plaintext value, embedding its {@link InputContext} into the resulting ciphertext.
6
+ *
7
+ * @typeParam S - The encryption scheme (e.g. X-Wing).
8
+ * @example
9
+ * ```ts
10
+ * const result = await encrypt({ plaintext: { scheme: 2, type: 5, value: 42n }, context });
11
+ * // result.handle, result.ciphertext
12
+ * ```
13
+ */
14
+ export type Encryptor<S extends EncryptionScheme = EncryptionScheme> = <T extends SupportedTeeType>(plaintext: PlaintextWithContextOf<S, T>) => Promise<EncryptResultOf<S, T>>;
15
+ /**
16
+ * A function that decrypts a ciphertext back to its plaintext value.
17
+ *
18
+ * @typeParam S - The encryption scheme (e.g. X-Wing).
19
+ * @example
20
+ * ```ts
21
+ * const plaintext = await decrypt({ scheme: 2, type: 5, value: '0x...' });
22
+ * ```
23
+ */
24
+ export type Decryptor<S extends EncryptionScheme = EncryptionScheme> = <T extends SupportedTeeType>(ciphertext: CiphertextOf<S, T>) => Promise<PlaintextOf<S, T>>;
25
+ /**
26
+ * Subset of ENCRYPTION types currently supported for encryption/decryption.
27
+ *
28
+ * @remarks TODO: review need of `euint64` and `euint160` — `Lib.sol` only supports `euint256` and `ebool`.
29
+ */
30
+ export declare const supportedTeeTypes: {
31
+ readonly euint64: 5;
32
+ readonly euint160: 7;
33
+ readonly euint256: 8;
34
+ readonly ebool: 0;
35
+ };
36
+ /** Schema that validates a string is one of the supported ENCRYPTION type names. */
37
+ export declare const SupportedTeeTypeName: Schema.SchemaClass<"ebool" | "euint64" | "euint160" | "euint256", "ebool" | "euint64" | "euint160" | "euint256", never>;
38
+ /** A supported ENCRYPTION type name (e.g. `"euint256"`, `"ebool"`). */
39
+ export type SupportedTeeTypeName = typeof SupportedTeeTypeName.Type;
40
+ /** Schema that validates a number is one of the supported ENCRYPTION type integer identifiers. */
41
+ export declare const SupportedTeeType: Schema.SchemaClass<0 | 5 | 7 | 8, 0 | 5 | 7 | 8, never>;
42
+ /** Integer identifier of a supported ENCRYPTION type (a subset of all ENCRYPTION types). */
43
+ export type SupportedTeeType = typeof SupportedTeeType.Type;
44
+ /** Map of encryption scheme names to their integer identifiers. Currently only X-Wing (2) is supported. */
45
+ export declare const encryptionSchemes: {
46
+ readonly xwing: 2;
47
+ };
48
+ /**
49
+ * Returns the human-readable name of an encryption scheme.
50
+ * @param scheme - The encryption scheme integer identifier.
51
+ * @returns The scheme name (e.g. `"X-Wing"`).
52
+ * @throws If the scheme identifier is unknown.
53
+ */
54
+ export declare function getEncryptionSchemeName(scheme: number): string;
55
+ /** The typeof {@link encryptionSchemes} — mapping from scheme names to integer IDs. */
56
+ export type EncryptionSchemes = typeof encryptionSchemes;
57
+ /** The integer identifier for the X-Wing encryption scheme (`2`). */
58
+ export type XwingScheme = EncryptionSchemes['xwing'];
59
+ /** Schema that validates a value is a known encryption scheme identifier. */
60
+ export declare const EncryptionScheme: Schema.Literal<[2]>;
61
+ /** An encryption scheme identifier (currently only X-Wing = `2`). */
62
+ export type EncryptionScheme = typeof EncryptionScheme.Type;
63
+ type DistType<P, S extends EncryptionScheme, T extends SupportedTeeType> = P extends any ? P & {
64
+ scheme: S;
65
+ type: T;
66
+ } : never;
67
+ /** Schema for an ENCRYPTION ciphertext: encryption scheme, ENCRYPTION type, and the encrypted value as a hex string. */
68
+ export declare const Ciphertext: Schema.Struct<{
69
+ scheme: Schema.Literal<[2]>;
70
+ type: Schema.SchemaClass<0 | 5 | 7 | 8, 0 | 5 | 7 | 8, never>;
71
+ value: Schema.TemplateLiteral<`0x${string}`>;
72
+ }>;
73
+ /** An ENCRYPTION ciphertext containing the encryption scheme, ENCRYPTION type, and encrypted hex value. */
74
+ export type Ciphertext = typeof Ciphertext.Type;
75
+ export type CiphertextOf<S extends EncryptionScheme, T extends SupportedTeeType> = DistType<Ciphertext, S, T>;
76
+ /** Schema for a ciphertext paired with the {@link InputContext} it was encrypted under. */
77
+ export declare const CiphertextWithContext: Schema.Struct<{
78
+ ciphertext: Schema.Struct<{
79
+ scheme: Schema.Literal<[2]>;
80
+ type: Schema.SchemaClass<0 | 5 | 7 | 8, 0 | 5 | 7 | 8, never>;
81
+ value: Schema.TemplateLiteral<`0x${string}`>;
82
+ }>;
83
+ context: Schema.Struct<{
84
+ hostChainId: typeof Schema.BigInt;
85
+ aclAddress: Schema.TemplateLiteral<`0x${string}`>;
86
+ userAddress: Schema.TemplateLiteral<`0x${string}`>;
87
+ contractAddress: Schema.TemplateLiteral<`0x${string}`>;
88
+ version: typeof Schema.Number;
89
+ inputType: typeof Schema.Number;
90
+ }>;
91
+ }>;
92
+ /** A ciphertext paired with the {@link InputContext} it was encrypted under. */
93
+ export type CiphertextWithContext = typeof CiphertextWithContext.Type;
94
+ export type CiphertextWithContextOf<S extends EncryptionScheme, T extends SupportedTeeType> = CiphertextWithContext & {
95
+ ciphertext: CiphertextOf<S, T>;
96
+ };
97
+ /** Schema for the result of an encryption operation: ciphertext, input context, and final handle. */
98
+ export declare const EncryptResult: Schema.Struct<{
99
+ ciphertext: Schema.Struct<{
100
+ scheme: Schema.Literal<[2]>;
101
+ type: Schema.SchemaClass<0 | 5 | 7 | 8, 0 | 5 | 7 | 8, never>;
102
+ value: Schema.TemplateLiteral<`0x${string}`>;
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
+ version: typeof Schema.Number;
110
+ inputType: typeof Schema.Number;
111
+ }>;
112
+ 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">;
113
+ }>;
114
+ /** The result of an encryption operation, containing the ciphertext, context, and deterministic handle. */
115
+ export type EncryptResult = typeof EncryptResult.Type;
116
+ export type EncryptResultOf<S extends EncryptionScheme, T extends SupportedTeeType> = EncryptResult & {
117
+ ciphertext: CiphertextOf<S, T>;
118
+ };
119
+ /**
120
+ * Schema for an ENCRYPTION plaintext value. The `value` field type depends on the ENCRYPTION type:
121
+ * - `euint64` / `euint160` / `euint256`: `bigint`
122
+ * - `ebool`: `boolean`
123
+ */
124
+ export declare const Plaintext: Schema.Union<[Schema.Struct<{
125
+ scheme: Schema.Literal<[2]>;
126
+ type: Schema.Literal<[5, 7, 8]>;
127
+ value: typeof Schema.BigInt;
128
+ }>, Schema.Struct<{
129
+ scheme: Schema.Literal<[2]>;
130
+ type: Schema.Literal<[0]>;
131
+ value: typeof Schema.Boolean;
132
+ }>]>;
133
+ /** An ENCRYPTION plaintext value — `bigint` for integer types, `boolean` for `ebool`. */
134
+ export type Plaintext = typeof Plaintext.Type;
135
+ export type PlaintextOf<S extends EncryptionScheme, T extends SupportedTeeType> = DistType<Plaintext, S, T>;
136
+ /** Schema for a plaintext paired with the {@link InputContext} it will be encrypted under. */
137
+ export declare const PlaintextWithContext: Schema.Struct<{
138
+ plaintext: Schema.Union<[Schema.Struct<{
139
+ scheme: Schema.Literal<[2]>;
140
+ type: Schema.Literal<[5, 7, 8]>;
141
+ value: typeof Schema.BigInt;
142
+ }>, Schema.Struct<{
143
+ scheme: Schema.Literal<[2]>;
144
+ type: Schema.Literal<[0]>;
145
+ value: typeof Schema.Boolean;
146
+ }>]>;
147
+ context: Schema.Struct<{
148
+ hostChainId: typeof Schema.BigInt;
149
+ aclAddress: Schema.TemplateLiteral<`0x${string}`>;
150
+ userAddress: Schema.TemplateLiteral<`0x${string}`>;
151
+ contractAddress: Schema.TemplateLiteral<`0x${string}`>;
152
+ version: typeof Schema.Number;
153
+ inputType: typeof Schema.Number;
154
+ }>;
155
+ }>;
156
+ /** A plaintext paired with the {@link InputContext} it will be encrypted under. */
157
+ export type PlaintextWithContext = typeof PlaintextWithContext.Type;
158
+ export type PlaintextWithContextOf<S extends EncryptionScheme, T extends SupportedTeeType> = PlaintextWithContext & {
159
+ plaintext: PlaintextOf<S, T>;
160
+ };
161
+ /**
162
+ * Converts a `bigint` to a typed {@link Plaintext} value.
163
+ *
164
+ * For integer ENCRYPTION types (`euint64`, `euint160`, `euint256`) the value is passed through as-is.
165
+ * For `ebool`, non-zero values become `true`.
166
+ *
167
+ * @param scheme - The encryption scheme identifier.
168
+ * @param type - The ENCRYPTION type to interpret the value as.
169
+ * @param bigPt - The raw bigint plaintext value.
170
+ * @returns A typed `Plaintext` matching the given scheme and ENCRYPTION type.
171
+ * @throws If `type` is not a supported ENCRYPTION type.
172
+ */
173
+ export declare function bigintToPlaintext<S extends EncryptionScheme, T extends SupportedTeeType>(scheme: S, type: T, bigPt: bigint): PlaintextOf<S, T>;
174
+ /**
175
+ * Decodes an ABI-encoded ciphertext input into its components.
176
+ *
177
+ * The input format is: `4-byte version || abi.encode(bytes32 handle, bytes ciphertext)`.
178
+ *
179
+ * @param input - The raw encoded input as a byte array or hex string.
180
+ * @returns The decoded version, handle, and ciphertext.
181
+ */
182
+ export declare function decodeCiphertextInput(input: ByteArray | Hex): {
183
+ version: number;
184
+ handle: Hex;
185
+ ciphertext: Hex;
186
+ };
187
+ /**
188
+ * Encodes a handle and ciphertext into the on-chain input format.
189
+ *
190
+ * The output format is: `4-byte version || abi.encode(bytes32 handle, bytes ciphertext)`.
191
+ *
192
+ * @param version - The encoding version (int32).
193
+ * @param handle - The 32-byte handle as a hex string.
194
+ * @param ciphertext - The ciphertext as a hex string.
195
+ * @returns The ABI-encoded input as a hex string.
196
+ */
197
+ export declare function encodeCiphertextInput(version: number, handle: Hex, ciphertext: Hex): Hex;
198
+ /**
199
+ * Converts a {@link Plaintext} to its `bigint` representation.
200
+ *
201
+ * Integer types pass through directly; `ebool` maps `true` → `1n`, `false` → `0n`.
202
+ *
203
+ * @param plaintext - The plaintext to convert.
204
+ * @returns The bigint representation of the plaintext value.
205
+ */
206
+ export declare function plaintextToBigint(plaintext: Plaintext): bigint;
207
+ /**
208
+ * Converts a {@link Plaintext} to a {@link Bytes32} hex string.
209
+ * @param plaintext - The plaintext to convert.
210
+ * @returns A 32-byte hex representation of the plaintext value.
211
+ */
212
+ export declare function plaintextToBytes32(plaintext: Plaintext): Bytes32;
213
+ /**
214
+ * Converts a {@link Plaintext} to a 32-byte `Buffer`.
215
+ * @param plaintext - The plaintext to convert.
216
+ * @returns A 32-byte big-endian buffer of the plaintext value.
217
+ */
218
+ export declare function plaintextToBytes(plaintext: Plaintext): Buffer;
219
+ /**
220
+ * Parses a {@link Bytes32} hex string into a typed {@link Plaintext}.
221
+ * @param plaintext - The 32-byte hex value to interpret.
222
+ * @param scheme - The encryption scheme identifier.
223
+ * @param type - The ENCRYPTION type to interpret the bytes as.
224
+ * @returns A typed `Plaintext` value.
225
+ */
226
+ export declare function bytes32ToPlaintext(plaintext: Bytes32, scheme: EncryptionScheme, type: SupportedTeeType): Plaintext;
227
+ /**
228
+ * Parses a `Uint8Array` into a typed {@link Plaintext}.
229
+ * @param plaintext - The byte array to interpret.
230
+ * @param scheme - The encryption scheme identifier.
231
+ * @param type - The ENCRYPTION type to interpret the bytes as.
232
+ * @returns A typed `Plaintext` value.
233
+ */
234
+ export declare function bytesToPlaintext(plaintext: Uint8Array, scheme: EncryptionScheme, type: SupportedTeeType): Plaintext;
235
+ export {};
@@ -0,0 +1 @@
1
+ export { Ciphertext, EncryptionScheme, Plaintext, SupportedTeeType, SupportedTeeTypeName, bigintToPlaintext, bytes32ToPlaintext, bytesToPlaintext, encryptionSchemes, getEncryptionSchemeName, plaintextToBigint, plaintextToBytes, plaintextToBytes32, supportedTeeTypes, type EncryptionSchemes, } from './encryption.js';
@@ -0,0 +1,117 @@
1
+ export declare const addTwoAbi: readonly [{
2
+ readonly type: "constructor";
3
+ readonly inputs: readonly [{
4
+ readonly name: "_inco";
5
+ readonly internalType: "contract IncoLightning";
6
+ readonly type: "address";
7
+ }];
8
+ readonly stateMutability: "nonpayable";
9
+ }, {
10
+ readonly type: "receive";
11
+ readonly stateMutability: "payable";
12
+ }, {
13
+ readonly type: "function";
14
+ readonly inputs: readonly [{
15
+ readonly name: "a";
16
+ readonly internalType: "euint256";
17
+ readonly type: "bytes32";
18
+ }];
19
+ readonly name: "addTwo";
20
+ readonly outputs: readonly [{
21
+ readonly name: "";
22
+ readonly internalType: "euint256";
23
+ readonly type: "bytes32";
24
+ }];
25
+ readonly stateMutability: "nonpayable";
26
+ }, {
27
+ readonly type: "function";
28
+ readonly inputs: readonly [{
29
+ readonly name: "a";
30
+ readonly internalType: "euint256";
31
+ readonly type: "bytes32";
32
+ }];
33
+ readonly name: "addTwoAlt";
34
+ readonly outputs: readonly [{
35
+ readonly name: "";
36
+ readonly internalType: "euint256";
37
+ readonly type: "bytes32";
38
+ }];
39
+ readonly stateMutability: "nonpayable";
40
+ }, {
41
+ readonly type: "function";
42
+ readonly inputs: readonly [{
43
+ readonly name: "uint256EInput";
44
+ readonly internalType: "bytes";
45
+ readonly type: "bytes";
46
+ }];
47
+ readonly name: "addTwoEoa";
48
+ readonly outputs: readonly [{
49
+ readonly name: "result";
50
+ readonly internalType: "euint256";
51
+ readonly type: "bytes32";
52
+ }, {
53
+ readonly name: "resultRevealed";
54
+ readonly internalType: "euint256";
55
+ readonly type: "bytes32";
56
+ }];
57
+ readonly stateMutability: "payable";
58
+ }, {
59
+ readonly type: "function";
60
+ readonly inputs: readonly [];
61
+ readonly name: "getTrue";
62
+ readonly outputs: readonly [{
63
+ readonly name: "";
64
+ readonly internalType: "ebool";
65
+ readonly type: "bytes32";
66
+ }];
67
+ readonly stateMutability: "nonpayable";
68
+ }, {
69
+ readonly type: "function";
70
+ readonly inputs: readonly [];
71
+ readonly name: "lastResult";
72
+ readonly outputs: readonly [{
73
+ readonly name: "";
74
+ readonly internalType: "uint256";
75
+ readonly type: "uint256";
76
+ }];
77
+ readonly stateMutability: "view";
78
+ }, {
79
+ readonly type: "function";
80
+ readonly inputs: readonly [{
81
+ readonly name: "resultHandle";
82
+ readonly internalType: "bytes32";
83
+ readonly type: "bytes32";
84
+ }, {
85
+ readonly name: "p";
86
+ readonly internalType: "uint256";
87
+ readonly type: "uint256";
88
+ }, {
89
+ readonly name: "decryption";
90
+ readonly internalType: "struct DecryptionAttestation";
91
+ readonly type: "tuple";
92
+ readonly components: readonly [{
93
+ readonly name: "handle";
94
+ readonly internalType: "bytes32";
95
+ readonly type: "bytes32";
96
+ }, {
97
+ readonly name: "value";
98
+ readonly internalType: "bytes32";
99
+ readonly type: "bytes32";
100
+ }];
101
+ }];
102
+ readonly name: "verifyAttestedComputeResultHandle";
103
+ readonly outputs: readonly [{
104
+ readonly name: "";
105
+ readonly internalType: "bool";
106
+ readonly type: "bool";
107
+ }];
108
+ readonly stateMutability: "payable";
109
+ }, {
110
+ readonly type: "error";
111
+ readonly inputs: readonly [];
112
+ readonly name: "ReentrantCall";
113
+ }, {
114
+ readonly type: "error";
115
+ readonly inputs: readonly [];
116
+ readonly name: "RefundFailed";
117
+ }];