@inco/js 0.3.1 → 0.3.2-alpha.1

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 (381) hide show
  1. package/dist/cjs/advancedacl/session-key.d.ts +29 -0
  2. package/dist/cjs/advancedacl/session-key.js +167 -27
  3. package/dist/cjs/attestedcompute/attested-compute.d.ts +16 -16
  4. package/dist/cjs/attestedcompute/attested-compute.js +66 -73
  5. package/dist/cjs/attestedcompute/types.d.ts +3 -2
  6. package/dist/cjs/attesteddecrypt/attested-decrypt.d.ts +20 -19
  7. package/dist/cjs/attesteddecrypt/attested-decrypt.js +67 -61
  8. package/dist/cjs/attesteddecrypt/index.d.ts +0 -1
  9. package/dist/cjs/attesteddecrypt/index.js +1 -2
  10. package/dist/cjs/attesteddecrypt/types.d.ts +3 -2
  11. package/dist/cjs/attestedreveal/attested-reveal.d.ts +21 -0
  12. package/dist/cjs/attestedreveal/attested-reveal.js +66 -0
  13. package/dist/cjs/attestedreveal/index.d.ts +1 -0
  14. package/dist/cjs/{fhevm → attestedreveal}/index.js +2 -2
  15. package/dist/cjs/attestedreveal/types.d.ts +7 -0
  16. package/dist/cjs/attestedreveal/types.js +16 -0
  17. package/dist/cjs/generated/abis/addTwo.d.ts +18 -0
  18. package/dist/cjs/generated/abis/addTwo.js +9 -1
  19. package/dist/cjs/generated/abis/lightning-preview.d.ts +48 -0
  20. package/dist/cjs/generated/abis/lightning-preview.js +29 -1
  21. package/dist/cjs/generated/abis/lightning.d.ts +34 -0
  22. package/dist/cjs/generated/abis/lightning.js +22 -1
  23. package/dist/cjs/generated/es/inco/kms/lite/v1/kms_service_pb.d.ts +63 -5
  24. package/dist/cjs/generated/es/inco/kms/lite/v1/kms_service_pb.js +17 -7
  25. package/dist/cjs/generated/lightning.d.ts +31 -10
  26. package/dist/cjs/generated/lightning.js +33 -11
  27. package/dist/cjs/lite/attested-compute.d.ts +5 -4
  28. package/dist/cjs/lite/attested-compute.js +4 -3
  29. package/dist/cjs/lite/attested-decrypt.d.ts +3 -2
  30. package/dist/cjs/lite/attested-decrypt.js +4 -3
  31. package/dist/cjs/lite/index.d.ts +4 -1
  32. package/dist/cjs/lite/index.js +3 -1
  33. package/dist/cjs/lite/lightning.d.ts +73 -2
  34. package/dist/cjs/lite/lightning.js +65 -1
  35. package/dist/cjs/lite/reencrypt.d.ts +0 -1
  36. package/dist/cjs/lite/reencrypt.js +8 -20
  37. package/dist/cjs/local/local-node.js +35 -3
  38. package/dist/cjs/reencryption/types.d.ts +1 -2
  39. package/dist/esm/advancedacl/session-key.d.ts +29 -0
  40. package/dist/esm/advancedacl/session-key.js +160 -22
  41. package/dist/esm/attestedcompute/attested-compute.d.ts +16 -16
  42. package/dist/esm/attestedcompute/attested-compute.js +64 -72
  43. package/dist/esm/attestedcompute/types.d.ts +3 -2
  44. package/dist/esm/attesteddecrypt/attested-decrypt.d.ts +20 -19
  45. package/dist/esm/attesteddecrypt/attested-decrypt.js +65 -60
  46. package/dist/esm/attesteddecrypt/index.d.ts +0 -1
  47. package/dist/esm/attesteddecrypt/index.js +1 -2
  48. package/dist/esm/attesteddecrypt/types.d.ts +3 -2
  49. package/dist/esm/attestedreveal/attested-reveal.d.ts +21 -0
  50. package/dist/esm/attestedreveal/attested-reveal.js +63 -0
  51. package/dist/esm/attestedreveal/index.d.ts +1 -0
  52. package/dist/esm/attestedreveal/index.js +2 -0
  53. package/dist/esm/attestedreveal/types.d.ts +7 -0
  54. package/dist/esm/attestedreveal/types.js +12 -0
  55. package/dist/esm/generated/abis/addTwo.d.ts +18 -0
  56. package/dist/esm/generated/abis/addTwo.js +9 -1
  57. package/dist/esm/generated/abis/lightning-preview.d.ts +48 -0
  58. package/dist/esm/generated/abis/lightning-preview.js +29 -1
  59. package/dist/esm/generated/abis/lightning.d.ts +34 -0
  60. package/dist/esm/generated/abis/lightning.js +22 -1
  61. package/dist/esm/generated/es/inco/kms/lite/v1/kms_service_pb.d.ts +63 -5
  62. package/dist/esm/generated/es/inco/kms/lite/v1/kms_service_pb.js +16 -6
  63. package/dist/esm/generated/lightning.d.ts +31 -10
  64. package/dist/esm/generated/lightning.js +33 -11
  65. package/dist/esm/lite/attested-compute.d.ts +5 -4
  66. package/dist/esm/lite/attested-compute.js +3 -3
  67. package/dist/esm/lite/attested-decrypt.d.ts +3 -2
  68. package/dist/esm/lite/attested-decrypt.js +3 -3
  69. package/dist/esm/lite/index.d.ts +4 -1
  70. package/dist/esm/lite/index.js +3 -1
  71. package/dist/esm/lite/lightning.d.ts +73 -2
  72. package/dist/esm/lite/lightning.js +66 -2
  73. package/dist/esm/lite/reencrypt.d.ts +0 -1
  74. package/dist/esm/lite/reencrypt.js +9 -20
  75. package/dist/esm/local/local-node.js +35 -3
  76. package/dist/esm/reencryption/types.d.ts +1 -2
  77. package/dist/types/advancedacl/session-key.d.ts +29 -0
  78. package/dist/types/attestedcompute/attested-compute.d.ts +16 -16
  79. package/dist/types/attestedcompute/types.d.ts +3 -2
  80. package/dist/types/attesteddecrypt/attested-decrypt.d.ts +20 -19
  81. package/dist/types/attesteddecrypt/index.d.ts +0 -1
  82. package/dist/types/attesteddecrypt/types.d.ts +3 -2
  83. package/dist/types/attestedreveal/attested-reveal.d.ts +21 -0
  84. package/dist/types/attestedreveal/index.d.ts +1 -0
  85. package/dist/types/attestedreveal/types.d.ts +7 -0
  86. package/dist/types/generated/abis/addTwo.d.ts +18 -0
  87. package/dist/types/generated/abis/lightning-preview.d.ts +48 -0
  88. package/dist/types/generated/abis/lightning.d.ts +34 -0
  89. package/dist/types/generated/es/inco/kms/lite/v1/kms_service_pb.d.ts +63 -5
  90. package/dist/types/generated/lightning.d.ts +31 -10
  91. package/dist/types/lite/attested-compute.d.ts +5 -4
  92. package/dist/types/lite/attested-decrypt.d.ts +3 -2
  93. package/dist/types/lite/index.d.ts +4 -1
  94. package/dist/types/lite/lightning.d.ts +73 -2
  95. package/dist/types/lite/reencrypt.d.ts +0 -1
  96. package/dist/types/reencryption/types.d.ts +1 -2
  97. package/package.json +28 -17
  98. package/dist/cjs/fhevm/fhe-environment.d.ts +0 -9
  99. package/dist/cjs/fhevm/fhe-environment.js +0 -11
  100. package/dist/cjs/fhevm/fhevm.d.ts +0 -41
  101. package/dist/cjs/fhevm/fhevm.js +0 -145
  102. package/dist/cjs/fhevm/index.d.ts +0 -1
  103. package/dist/cjs/fhevm/reencrypt.d.ts +0 -20
  104. package/dist/cjs/fhevm/reencrypt.js +0 -127
  105. package/dist/cjs/fhevm/tfhe.d.ts +0 -74
  106. package/dist/cjs/fhevm/tfhe.js +0 -336
  107. package/dist/cjs/fhevm/types.d.ts +0 -3
  108. package/dist/cjs/fhevm/types.js +0 -29
  109. package/dist/cjs/generated/abis/inco-fhevm.d.ts +0 -874
  110. package/dist/cjs/generated/abis/inco-fhevm.js +0 -681
  111. package/dist/cjs/generated/es/cosmos/msg/v1/msg_pb.d.ts +0 -29
  112. package/dist/cjs/generated/es/cosmos/msg/v1/msg_pb.js +0 -36
  113. package/dist/cjs/generated/es/google/api/annotations_pb.d.ts +0 -13
  114. package/dist/cjs/generated/es/google/api/annotations_pb.js +0 -30
  115. package/dist/cjs/generated/es/google/api/http_pb.d.ts +0 -440
  116. package/dist/cjs/generated/es/google/api/http_pb.js +0 -37
  117. package/dist/cjs/generated/es/inco/fhe/v1/events_pb.d.ts +0 -79
  118. package/dist/cjs/generated/es/inco/fhe/v1/events_pb.js +0 -24
  119. package/dist/cjs/generated/es/inco/fhe/v1/genesis_pb.d.ts +0 -252
  120. package/dist/cjs/generated/es/inco/fhe/v1/genesis_pb.js +0 -49
  121. package/dist/cjs/generated/es/inco/fhe/v1/query_pb.d.ts +0 -569
  122. package/dist/cjs/generated/es/inco/fhe/v1/query_pb.js +0 -111
  123. package/dist/cjs/generated/es/inco/fhe/v1/tx_pb.d.ts +0 -494
  124. package/dist/cjs/generated/es/inco/fhe/v1/tx_pb.js +0 -111
  125. package/dist/cjs/generated/es/inco/preflight/v1/genesis_pb.d.ts +0 -56
  126. package/dist/cjs/generated/es/inco/preflight/v1/genesis_pb.js +0 -23
  127. package/dist/cjs/generated/es/inco/preflight/v1/query_pb.d.ts +0 -100
  128. package/dist/cjs/generated/es/inco/preflight/v1/query_pb.js +0 -41
  129. package/dist/cjs/generated/es/inco/preflight/v1/tx_pb.d.ts +0 -193
  130. package/dist/cjs/generated/es/inco/preflight/v1/tx_pb.js +0 -51
  131. package/dist/cjs/generated/es/inco/preflight/v1/types_pb.d.ts +0 -144
  132. package/dist/cjs/generated/es/inco/preflight/v1/types_pb.js +0 -37
  133. package/dist/cjs/generated/fhe-environments.d.ts +0 -14
  134. package/dist/cjs/generated/fhe-environments.js +0 -18
  135. package/dist/cjs/generated/ts/amino/amino.d.ts +0 -1
  136. package/dist/cjs/generated/ts/amino/amino.js +0 -11
  137. package/dist/cjs/generated/ts/cometbft/abci/v1/types.d.ts +0 -597
  138. package/dist/cjs/generated/ts/cometbft/abci/v1/types.js +0 -5079
  139. package/dist/cjs/generated/ts/cometbft/crypto/v1/keys.d.ts +0 -27
  140. package/dist/cjs/generated/ts/cometbft/crypto/v1/keys.js +0 -108
  141. package/dist/cjs/generated/ts/cometbft/crypto/v1/proof.d.ts +0 -60
  142. package/dist/cjs/generated/ts/cometbft/crypto/v1/proof.js +0 -433
  143. package/dist/cjs/generated/ts/cometbft/types/v1/params.d.ts +0 -179
  144. package/dist/cjs/generated/ts/cometbft/types/v1/params.js +0 -716
  145. package/dist/cjs/generated/ts/cometbft/types/v1/validator.d.ts +0 -61
  146. package/dist/cjs/generated/ts/cometbft/types/v1/validator.js +0 -358
  147. package/dist/cjs/generated/ts/cosmos/app/v1alpha1/module.d.ts +0 -104
  148. package/dist/cjs/generated/ts/cosmos/app/v1alpha1/module.js +0 -221
  149. package/dist/cjs/generated/ts/cosmos/msg/v1/msg.d.ts +0 -1
  150. package/dist/cjs/generated/ts/cosmos/msg/v1/msg.js +0 -11
  151. package/dist/cjs/generated/ts/cosmos_proto/cosmos.d.ts +0 -80
  152. package/dist/cjs/generated/ts/cosmos_proto/cosmos.js +0 -216
  153. package/dist/cjs/generated/ts/gogoproto/gogo.d.ts +0 -1
  154. package/dist/cjs/generated/ts/gogoproto/gogo.js +0 -11
  155. package/dist/cjs/generated/ts/google/api/annotations.d.ts +0 -1
  156. package/dist/cjs/generated/ts/google/api/annotations.js +0 -11
  157. package/dist/cjs/generated/ts/google/api/http.d.ts +0 -371
  158. package/dist/cjs/generated/ts/google/api/http.js +0 -356
  159. package/dist/cjs/generated/ts/google/protobuf/descriptor.d.ts +0 -1228
  160. package/dist/cjs/generated/ts/google/protobuf/descriptor.js +0 -5108
  161. package/dist/cjs/generated/ts/google/protobuf/duration.d.ts +0 -99
  162. package/dist/cjs/generated/ts/google/protobuf/duration.js +0 -93
  163. package/dist/cjs/generated/ts/google/protobuf/timestamp.d.ts +0 -128
  164. package/dist/cjs/generated/ts/google/protobuf/timestamp.js +0 -93
  165. package/dist/cjs/generated/ts/google/protobuf/wrappers.d.ts +0 -111
  166. package/dist/cjs/generated/ts/google/protobuf/wrappers.js +0 -509
  167. package/dist/cjs/generated/ts/inco/abci/v1/types.d.ts +0 -35
  168. package/dist/cjs/generated/ts/inco/abci/v1/types.js +0 -73
  169. package/dist/cjs/generated/ts/inco/fhe/module/v1/module.d.ts +0 -31
  170. package/dist/cjs/generated/ts/inco/fhe/module/v1/module.js +0 -66
  171. package/dist/cjs/generated/ts/inco/fhe/v1/events.d.ts +0 -66
  172. package/dist/cjs/generated/ts/inco/fhe/v1/events.js +0 -190
  173. package/dist/cjs/generated/ts/inco/fhe/v1/genesis.d.ts +0 -117
  174. package/dist/cjs/generated/ts/inco/fhe/v1/genesis.js +0 -714
  175. package/dist/cjs/generated/ts/inco/fhe/v1/query.d.ts +0 -366
  176. package/dist/cjs/generated/ts/inco/fhe/v1/query.js +0 -1394
  177. package/dist/cjs/generated/ts/inco/fhe/v1/tx.d.ts +0 -409
  178. package/dist/cjs/generated/ts/inco/fhe/v1/tx.js +0 -1236
  179. package/dist/cjs/generated/ts/inco/fhe/v1/types.d.ts +0 -225
  180. package/dist/cjs/generated/ts/inco/fhe/v1/types.js +0 -990
  181. package/dist/cjs/generated/ts/inco/originchain/module/v1/module.d.ts +0 -30
  182. package/dist/cjs/generated/ts/inco/originchain/module/v1/module.js +0 -66
  183. package/dist/cjs/generated/ts/inco/originchain/v1/abci.d.ts +0 -80
  184. package/dist/cjs/generated/ts/inco/originchain/v1/abci.js +0 -331
  185. package/dist/cjs/generated/ts/inco/originchain/v1/events.d.ts +0 -60
  186. package/dist/cjs/generated/ts/inco/originchain/v1/events.js +0 -216
  187. package/dist/cjs/generated/ts/inco/originchain/v1/genesis.d.ts +0 -28
  188. package/dist/cjs/generated/ts/inco/originchain/v1/genesis.js +0 -69
  189. package/dist/cjs/generated/ts/inco/originchain/v1/query.d.ts +0 -116
  190. package/dist/cjs/generated/ts/inco/originchain/v1/query.js +0 -280
  191. package/dist/cjs/generated/ts/inco/originchain/v1/tx.d.ts +0 -89
  192. package/dist/cjs/generated/ts/inco/originchain/v1/tx.js +0 -140
  193. package/dist/cjs/generated/ts/inco/originchain/v1/types.d.ts +0 -58
  194. package/dist/cjs/generated/ts/inco/originchain/v1/types.js +0 -203
  195. package/dist/cjs/generated/ts/inco/preflight/module/v1/module.d.ts +0 -31
  196. package/dist/cjs/generated/ts/inco/preflight/module/v1/module.js +0 -66
  197. package/dist/cjs/generated/ts/inco/preflight/v1/genesis.d.ts +0 -41
  198. package/dist/cjs/generated/ts/inco/preflight/v1/genesis.js +0 -185
  199. package/dist/cjs/generated/ts/inco/preflight/v1/query.d.ts +0 -93
  200. package/dist/cjs/generated/ts/inco/preflight/v1/query.js +0 -259
  201. package/dist/cjs/generated/ts/inco/preflight/v1/tx.d.ts +0 -187
  202. package/dist/cjs/generated/ts/inco/preflight/v1/tx.js +0 -448
  203. package/dist/cjs/generated/ts/inco/preflight/v1/types.d.ts +0 -84
  204. package/dist/cjs/generated/ts/inco/preflight/v1/types.js +0 -398
  205. package/dist/cjs/l1/client.d.ts +0 -35
  206. package/dist/cjs/l1/client.js +0 -97
  207. package/dist/cjs/l1/index.d.ts +0 -2
  208. package/dist/cjs/l1/index.js +0 -19
  209. package/dist/cjs/l1/preflight.d.ts +0 -20
  210. package/dist/cjs/l1/preflight.js +0 -42
  211. package/dist/esm/fhevm/fhe-environment.d.ts +0 -9
  212. package/dist/esm/fhevm/fhe-environment.js +0 -8
  213. package/dist/esm/fhevm/fhevm.d.ts +0 -41
  214. package/dist/esm/fhevm/fhevm.js +0 -139
  215. package/dist/esm/fhevm/index.d.ts +0 -1
  216. package/dist/esm/fhevm/index.js +0 -2
  217. package/dist/esm/fhevm/reencrypt.d.ts +0 -20
  218. package/dist/esm/fhevm/reencrypt.js +0 -123
  219. package/dist/esm/fhevm/tfhe.d.ts +0 -74
  220. package/dist/esm/fhevm/tfhe.js +0 -328
  221. package/dist/esm/fhevm/types.d.ts +0 -3
  222. package/dist/esm/fhevm/types.js +0 -26
  223. package/dist/esm/generated/abis/inco-fhevm.d.ts +0 -874
  224. package/dist/esm/generated/abis/inco-fhevm.js +0 -678
  225. package/dist/esm/generated/es/cosmos/msg/v1/msg_pb.d.ts +0 -29
  226. package/dist/esm/generated/es/cosmos/msg/v1/msg_pb.js +0 -33
  227. package/dist/esm/generated/es/google/api/annotations_pb.d.ts +0 -13
  228. package/dist/esm/generated/es/google/api/annotations_pb.js +0 -27
  229. package/dist/esm/generated/es/google/api/http_pb.d.ts +0 -440
  230. package/dist/esm/generated/es/google/api/http_pb.js +0 -34
  231. package/dist/esm/generated/es/inco/fhe/v1/events_pb.d.ts +0 -79
  232. package/dist/esm/generated/es/inco/fhe/v1/events_pb.js +0 -21
  233. package/dist/esm/generated/es/inco/fhe/v1/genesis_pb.d.ts +0 -252
  234. package/dist/esm/generated/es/inco/fhe/v1/genesis_pb.js +0 -46
  235. package/dist/esm/generated/es/inco/fhe/v1/query_pb.d.ts +0 -569
  236. package/dist/esm/generated/es/inco/fhe/v1/query_pb.js +0 -108
  237. package/dist/esm/generated/es/inco/fhe/v1/tx_pb.d.ts +0 -494
  238. package/dist/esm/generated/es/inco/fhe/v1/tx_pb.js +0 -108
  239. package/dist/esm/generated/es/inco/preflight/v1/genesis_pb.d.ts +0 -56
  240. package/dist/esm/generated/es/inco/preflight/v1/genesis_pb.js +0 -20
  241. package/dist/esm/generated/es/inco/preflight/v1/query_pb.d.ts +0 -100
  242. package/dist/esm/generated/es/inco/preflight/v1/query_pb.js +0 -38
  243. package/dist/esm/generated/es/inco/preflight/v1/tx_pb.d.ts +0 -193
  244. package/dist/esm/generated/es/inco/preflight/v1/tx_pb.js +0 -48
  245. package/dist/esm/generated/es/inco/preflight/v1/types_pb.d.ts +0 -144
  246. package/dist/esm/generated/es/inco/preflight/v1/types_pb.js +0 -34
  247. package/dist/esm/generated/fhe-environments.d.ts +0 -14
  248. package/dist/esm/generated/fhe-environments.js +0 -15
  249. package/dist/esm/generated/ts/amino/amino.d.ts +0 -1
  250. package/dist/esm/generated/ts/amino/amino.js +0 -8
  251. package/dist/esm/generated/ts/cometbft/abci/v1/types.d.ts +0 -597
  252. package/dist/esm/generated/ts/cometbft/abci/v1/types.js +0 -5063
  253. package/dist/esm/generated/ts/cometbft/crypto/v1/keys.d.ts +0 -27
  254. package/dist/esm/generated/ts/cometbft/crypto/v1/keys.js +0 -105
  255. package/dist/esm/generated/ts/cometbft/crypto/v1/proof.d.ts +0 -60
  256. package/dist/esm/generated/ts/cometbft/crypto/v1/proof.js +0 -430
  257. package/dist/esm/generated/ts/cometbft/types/v1/params.d.ts +0 -179
  258. package/dist/esm/generated/ts/cometbft/types/v1/params.js +0 -713
  259. package/dist/esm/generated/ts/cometbft/types/v1/validator.d.ts +0 -61
  260. package/dist/esm/generated/ts/cometbft/types/v1/validator.js +0 -353
  261. package/dist/esm/generated/ts/cosmos/app/v1alpha1/module.d.ts +0 -104
  262. package/dist/esm/generated/ts/cosmos/app/v1alpha1/module.js +0 -218
  263. package/dist/esm/generated/ts/cosmos/msg/v1/msg.d.ts +0 -1
  264. package/dist/esm/generated/ts/cosmos/msg/v1/msg.js +0 -8
  265. package/dist/esm/generated/ts/cosmos_proto/cosmos.d.ts +0 -80
  266. package/dist/esm/generated/ts/cosmos_proto/cosmos.js +0 -211
  267. package/dist/esm/generated/ts/gogoproto/gogo.d.ts +0 -1
  268. package/dist/esm/generated/ts/gogoproto/gogo.js +0 -8
  269. package/dist/esm/generated/ts/google/api/annotations.d.ts +0 -1
  270. package/dist/esm/generated/ts/google/api/annotations.js +0 -8
  271. package/dist/esm/generated/ts/google/api/http.d.ts +0 -371
  272. package/dist/esm/generated/ts/google/api/http.js +0 -353
  273. package/dist/esm/generated/ts/google/protobuf/descriptor.d.ts +0 -1228
  274. package/dist/esm/generated/ts/google/protobuf/descriptor.js +0 -5070
  275. package/dist/esm/generated/ts/google/protobuf/duration.d.ts +0 -99
  276. package/dist/esm/generated/ts/google/protobuf/duration.js +0 -90
  277. package/dist/esm/generated/ts/google/protobuf/timestamp.d.ts +0 -128
  278. package/dist/esm/generated/ts/google/protobuf/timestamp.js +0 -90
  279. package/dist/esm/generated/ts/google/protobuf/wrappers.d.ts +0 -111
  280. package/dist/esm/generated/ts/google/protobuf/wrappers.js +0 -506
  281. package/dist/esm/generated/ts/inco/abci/v1/types.d.ts +0 -35
  282. package/dist/esm/generated/ts/inco/abci/v1/types.js +0 -70
  283. package/dist/esm/generated/ts/inco/fhe/module/v1/module.d.ts +0 -31
  284. package/dist/esm/generated/ts/inco/fhe/module/v1/module.js +0 -63
  285. package/dist/esm/generated/ts/inco/fhe/v1/events.d.ts +0 -66
  286. package/dist/esm/generated/ts/inco/fhe/v1/events.js +0 -187
  287. package/dist/esm/generated/ts/inco/fhe/v1/genesis.d.ts +0 -117
  288. package/dist/esm/generated/ts/inco/fhe/v1/genesis.js +0 -711
  289. package/dist/esm/generated/ts/inco/fhe/v1/query.d.ts +0 -366
  290. package/dist/esm/generated/ts/inco/fhe/v1/query.js +0 -1391
  291. package/dist/esm/generated/ts/inco/fhe/v1/tx.d.ts +0 -409
  292. package/dist/esm/generated/ts/inco/fhe/v1/tx.js +0 -1233
  293. package/dist/esm/generated/ts/inco/fhe/v1/types.d.ts +0 -225
  294. package/dist/esm/generated/ts/inco/fhe/v1/types.js +0 -985
  295. package/dist/esm/generated/ts/inco/originchain/module/v1/module.d.ts +0 -30
  296. package/dist/esm/generated/ts/inco/originchain/module/v1/module.js +0 -63
  297. package/dist/esm/generated/ts/inco/originchain/v1/abci.d.ts +0 -80
  298. package/dist/esm/generated/ts/inco/originchain/v1/abci.js +0 -328
  299. package/dist/esm/generated/ts/inco/originchain/v1/events.d.ts +0 -60
  300. package/dist/esm/generated/ts/inco/originchain/v1/events.js +0 -213
  301. package/dist/esm/generated/ts/inco/originchain/v1/genesis.d.ts +0 -28
  302. package/dist/esm/generated/ts/inco/originchain/v1/genesis.js +0 -66
  303. package/dist/esm/generated/ts/inco/originchain/v1/query.d.ts +0 -116
  304. package/dist/esm/generated/ts/inco/originchain/v1/query.js +0 -277
  305. package/dist/esm/generated/ts/inco/originchain/v1/tx.d.ts +0 -89
  306. package/dist/esm/generated/ts/inco/originchain/v1/tx.js +0 -137
  307. package/dist/esm/generated/ts/inco/originchain/v1/types.d.ts +0 -58
  308. package/dist/esm/generated/ts/inco/originchain/v1/types.js +0 -200
  309. package/dist/esm/generated/ts/inco/preflight/module/v1/module.d.ts +0 -31
  310. package/dist/esm/generated/ts/inco/preflight/module/v1/module.js +0 -63
  311. package/dist/esm/generated/ts/inco/preflight/v1/genesis.d.ts +0 -41
  312. package/dist/esm/generated/ts/inco/preflight/v1/genesis.js +0 -182
  313. package/dist/esm/generated/ts/inco/preflight/v1/query.d.ts +0 -93
  314. package/dist/esm/generated/ts/inco/preflight/v1/query.js +0 -256
  315. package/dist/esm/generated/ts/inco/preflight/v1/tx.d.ts +0 -187
  316. package/dist/esm/generated/ts/inco/preflight/v1/tx.js +0 -445
  317. package/dist/esm/generated/ts/inco/preflight/v1/types.d.ts +0 -84
  318. package/dist/esm/generated/ts/inco/preflight/v1/types.js +0 -395
  319. package/dist/esm/l1/client.d.ts +0 -35
  320. package/dist/esm/l1/client.js +0 -93
  321. package/dist/esm/l1/index.d.ts +0 -2
  322. package/dist/esm/l1/index.js +0 -3
  323. package/dist/esm/l1/preflight.d.ts +0 -20
  324. package/dist/esm/l1/preflight.js +0 -39
  325. package/dist/types/fhevm/fhe-environment.d.ts +0 -9
  326. package/dist/types/fhevm/fhevm.d.ts +0 -41
  327. package/dist/types/fhevm/index.d.ts +0 -1
  328. package/dist/types/fhevm/reencrypt.d.ts +0 -20
  329. package/dist/types/fhevm/tfhe.d.ts +0 -74
  330. package/dist/types/fhevm/types.d.ts +0 -3
  331. package/dist/types/generated/abis/inco-fhevm.d.ts +0 -874
  332. package/dist/types/generated/es/cosmos/msg/v1/msg_pb.d.ts +0 -29
  333. package/dist/types/generated/es/google/api/annotations_pb.d.ts +0 -13
  334. package/dist/types/generated/es/google/api/http_pb.d.ts +0 -440
  335. package/dist/types/generated/es/inco/fhe/v1/events_pb.d.ts +0 -79
  336. package/dist/types/generated/es/inco/fhe/v1/genesis_pb.d.ts +0 -252
  337. package/dist/types/generated/es/inco/fhe/v1/query_pb.d.ts +0 -569
  338. package/dist/types/generated/es/inco/fhe/v1/tx_pb.d.ts +0 -494
  339. package/dist/types/generated/es/inco/preflight/v1/genesis_pb.d.ts +0 -56
  340. package/dist/types/generated/es/inco/preflight/v1/query_pb.d.ts +0 -100
  341. package/dist/types/generated/es/inco/preflight/v1/tx_pb.d.ts +0 -193
  342. package/dist/types/generated/es/inco/preflight/v1/types_pb.d.ts +0 -144
  343. package/dist/types/generated/fhe-environments.d.ts +0 -14
  344. package/dist/types/generated/ts/amino/amino.d.ts +0 -1
  345. package/dist/types/generated/ts/cometbft/abci/v1/types.d.ts +0 -597
  346. package/dist/types/generated/ts/cometbft/crypto/v1/keys.d.ts +0 -27
  347. package/dist/types/generated/ts/cometbft/crypto/v1/proof.d.ts +0 -60
  348. package/dist/types/generated/ts/cometbft/types/v1/params.d.ts +0 -179
  349. package/dist/types/generated/ts/cometbft/types/v1/validator.d.ts +0 -61
  350. package/dist/types/generated/ts/cosmos/app/v1alpha1/module.d.ts +0 -104
  351. package/dist/types/generated/ts/cosmos/msg/v1/msg.d.ts +0 -1
  352. package/dist/types/generated/ts/cosmos_proto/cosmos.d.ts +0 -80
  353. package/dist/types/generated/ts/gogoproto/gogo.d.ts +0 -1
  354. package/dist/types/generated/ts/google/api/annotations.d.ts +0 -1
  355. package/dist/types/generated/ts/google/api/http.d.ts +0 -371
  356. package/dist/types/generated/ts/google/protobuf/descriptor.d.ts +0 -1228
  357. package/dist/types/generated/ts/google/protobuf/duration.d.ts +0 -99
  358. package/dist/types/generated/ts/google/protobuf/timestamp.d.ts +0 -128
  359. package/dist/types/generated/ts/google/protobuf/wrappers.d.ts +0 -111
  360. package/dist/types/generated/ts/inco/abci/v1/types.d.ts +0 -35
  361. package/dist/types/generated/ts/inco/fhe/module/v1/module.d.ts +0 -31
  362. package/dist/types/generated/ts/inco/fhe/v1/events.d.ts +0 -66
  363. package/dist/types/generated/ts/inco/fhe/v1/genesis.d.ts +0 -117
  364. package/dist/types/generated/ts/inco/fhe/v1/query.d.ts +0 -366
  365. package/dist/types/generated/ts/inco/fhe/v1/tx.d.ts +0 -409
  366. package/dist/types/generated/ts/inco/fhe/v1/types.d.ts +0 -225
  367. package/dist/types/generated/ts/inco/originchain/module/v1/module.d.ts +0 -30
  368. package/dist/types/generated/ts/inco/originchain/v1/abci.d.ts +0 -80
  369. package/dist/types/generated/ts/inco/originchain/v1/events.d.ts +0 -60
  370. package/dist/types/generated/ts/inco/originchain/v1/genesis.d.ts +0 -28
  371. package/dist/types/generated/ts/inco/originchain/v1/query.d.ts +0 -116
  372. package/dist/types/generated/ts/inco/originchain/v1/tx.d.ts +0 -89
  373. package/dist/types/generated/ts/inco/originchain/v1/types.d.ts +0 -58
  374. package/dist/types/generated/ts/inco/preflight/module/v1/module.d.ts +0 -31
  375. package/dist/types/generated/ts/inco/preflight/v1/genesis.d.ts +0 -41
  376. package/dist/types/generated/ts/inco/preflight/v1/query.d.ts +0 -93
  377. package/dist/types/generated/ts/inco/preflight/v1/tx.d.ts +0 -187
  378. package/dist/types/generated/ts/inco/preflight/v1/types.d.ts +0 -84
  379. package/dist/types/l1/client.d.ts +0 -35
  380. package/dist/types/l1/index.d.ts +0 -2
  381. package/dist/types/l1/preflight.d.ts +0 -20
@@ -1,10 +1,17 @@
1
+ import { create } from '@bufbuild/protobuf';
1
2
  import { encodeAbiParameters, getContract, hexToBytes, toFunctionSelector, } from 'viem';
2
3
  import { privateKeyToAccount } from 'viem/accounts';
4
+ import { AttestedDecryptError } from '../attesteddecrypt/index.js';
3
5
  import { getSupportedChain } from '../chain.js';
6
+ import { bigintToPlaintext, encryptionSchemes } from '../encryption/encryption.js';
4
7
  import { abiHelperAbi, advancedAccessControlAbi, sessionVerifierAbi } from '../generated/abis/lightning-preview.js';
5
8
  import { incoLightningAbi } from '../generated/abis/lightning.js';
6
- import { decryptGrpcResponse, defaultCovalidatorGrpc, getKmsClient, reencryptEIP712 } from '../lite/index.js';
9
+ import { bigintToBytes32, bytesToBigInt, getHandleType } from '../index.js';
10
+ import { ATTESTED_COMPUTE_DOMAIN_NAME, ATTESTED_COMPUTE_DOMAIN_VERSION, ATTESTED_DECRYPT_DOMAIN_NAME, ATTESTED_DECRYPT_DOMAIN_VERSION, decryptGrpcResponse, defaultCovalidatorGrpc, getKmsClient, reencryptEIP712, } from '../lite/index.js';
7
11
  import { createEIP712Payload } from '../reencryption/index.js';
12
+ import { retryWithBackoff } from '../retry.js';
13
+ import { AttestedComputeRequestSchema, AttestedDecryptRequestSchema, ReencryptRequestSchema, } from '../generated/es/inco/kms/lite/v1/kms_service_pb.js';
14
+ import { AllowanceProofSchema, AllowanceVoucherSchema, HandleWithProofSchema, IncoLiteAdvancedACLProofSchema, } from '../generated/es/inco/kms/lite/v1/types_pb.js';
8
15
  // Given a sharer's wallet client, an incoLite contract address, and a
9
16
  // (verifyingContract, callFunction, sharerArgData) tuple, this function
10
17
  // creates an AllowanceVoucher.
@@ -77,43 +84,34 @@ export async function sessionKeyReencryptor({ chainId, kmsConnectRpcEndpointOrCl
77
84
  // this step will NOT prompt the user with a pop-up.
78
85
  const eip712Signature = await requesterAccount.signTypedData(eip712Payload);
79
86
  return async function reencrypt({ handle }) {
80
- const reencryptRequest = {
81
- $typeName: 'inco.kms.lite.v1.ReencryptRequest',
87
+ const reencryptRequest = create(ReencryptRequestSchema, {
82
88
  userAddress: requesterAccount.address,
83
89
  ephemeralPubKey,
84
90
  eip712Signature: hexToBytes(eip712Signature),
85
91
  handlesWithProofs: [
86
- {
87
- $typeName: 'inco.kms.lite.v1.HandleWithProof',
92
+ create(HandleWithProofSchema, {
88
93
  handle,
89
94
  aclProof: {
90
- $typeName: 'inco.kms.lite.v1.ACLProof',
91
95
  proof: {
92
- value: {
93
- $typeName: 'inco.kms.lite.v1.IncoLiteAdvancedACLProof',
94
- allowanceProof: {
95
- $typeName: 'inco.kms.lite.v1.AllowanceProof',
96
+ case: 'incoLiteAdvancedAclProof',
97
+ value: create(IncoLiteAdvancedACLProofSchema, {
98
+ allowanceProof: create(AllowanceProofSchema, {
96
99
  sharer: allowanceVoucherWithSig.sharer,
97
- voucher: {
98
- // Converting from the AllowanceVoucher domain type to the
99
- // AllowanceVoucher proto type.
100
- $typeName: 'inco.kms.lite.v1.AllowanceVoucher',
100
+ voucher: create(AllowanceVoucherSchema, {
101
101
  sessionNonce: hexToBytes(allowanceVoucherWithSig.voucher.sessionNonce),
102
102
  verifyingContract: allowanceVoucherWithSig.voucher.verifyingContract,
103
103
  callFunction: hexToBytes(allowanceVoucherWithSig.voucher.callFunction),
104
104
  sharerArgData: hexToBytes(allowanceVoucherWithSig.voucher.sharerArgData),
105
- },
105
+ }),
106
106
  voucherSignature: hexToBytes(allowanceVoucherWithSig.voucherSignature),
107
- // For SessionVerifier, the requesterArgData is empty.
108
107
  requesterArgData: new Uint8Array(),
109
- },
110
- },
111
- case: 'incoLiteAdvancedAclProof',
108
+ }),
109
+ }),
112
110
  },
113
111
  },
114
- },
112
+ }),
115
113
  ],
116
- };
114
+ });
117
115
  const response = await kmsClient.reencrypt(reencryptRequest);
118
116
  return decryptGrpcResponse(response, ephemeralKeypair, handle);
119
117
  };
@@ -127,6 +125,146 @@ export async function updateActiveVouchersSessionNonce(incoLiteAddress, sharerWa
127
125
  const txHash = await advancedACL.write.updateActiveVouchersSessionNonce();
128
126
  return txHash;
129
127
  }
128
+ // The sessionKeyAttestedCompute function is a decryptor that uses a session key
129
+ // to compute on a handle.
130
+ export async function sessionKeyAttestedCompute({ lhsHandle, op, rhsPlaintext, backoffConfig, chainId, kmsConnectRpcEndpointOrClient, ephemeralKeypair, allowanceVoucherWithSig, }) {
131
+ const kmsClient = getKmsClient(kmsConnectRpcEndpointOrClient || defaultCovalidatorGrpc(getSupportedChain(chainId)));
132
+ const requesterAccount = privateKeyToAccount(`0x${ephemeralKeypair.kp.getPrivate('hex')}`);
133
+ const rhsPlaintextBig = BigInt(rhsPlaintext);
134
+ const rhsValueBytes = bigintToPlaintext(encryptionSchemes.ecies, getHandleType(lhsHandle), rhsPlaintextBig);
135
+ // Sign the EIP712 attesting that the requester has access to the private key
136
+ // corresponding to the ephemeral public key.
137
+ const eip712Payload = createEIP712Payload({
138
+ chainId: BigInt(chainId),
139
+ primaryType: 'AttestedComputeRequest',
140
+ primaryTypeFields: [
141
+ { name: 'op', type: 'uint8' },
142
+ { name: 'lhsHandle', type: 'bytes32' },
143
+ { name: 'rhsPlaintext', type: 'bytes32' },
144
+ ],
145
+ message: {
146
+ op: op,
147
+ lhsHandle: lhsHandle,
148
+ rhsPlaintext: bigintToBytes32(rhsPlaintextBig),
149
+ },
150
+ domainName: ATTESTED_COMPUTE_DOMAIN_NAME,
151
+ domainVersion: ATTESTED_COMPUTE_DOMAIN_VERSION,
152
+ });
153
+ // Since the account is an ephemeral keypair stored in memory (not in Metamask),
154
+ // this step will NOT prompt the user with a pop-up.
155
+ const eip712Signature = await requesterAccount.signTypedData(eip712Payload);
156
+ const attestedComputeRequest = create(AttestedComputeRequestSchema, {
157
+ userAddress: requesterAccount.address,
158
+ op: op,
159
+ lhsHandle: lhsHandle,
160
+ rhsPlaintext: rhsValueBytes.value.toString(16),
161
+ eip712Signature: hexToBytes(eip712Signature),
162
+ aclProof: {
163
+ proof: {
164
+ case: 'incoLiteAdvancedAclProof',
165
+ value: create(IncoLiteAdvancedACLProofSchema, {
166
+ allowanceProof: create(AllowanceProofSchema, {
167
+ sharer: allowanceVoucherWithSig.sharer,
168
+ voucher: create(AllowanceVoucherSchema, {
169
+ sessionNonce: hexToBytes(allowanceVoucherWithSig.voucher.sessionNonce),
170
+ verifyingContract: allowanceVoucherWithSig.voucher.verifyingContract,
171
+ callFunction: hexToBytes(allowanceVoucherWithSig.voucher.callFunction),
172
+ sharerArgData: hexToBytes(allowanceVoucherWithSig.voucher.sharerArgData),
173
+ }),
174
+ voucherSignature: hexToBytes(allowanceVoucherWithSig.voucherSignature),
175
+ // For SessionVerifier, the requesterArgData is empty.
176
+ requesterArgData: new Uint8Array(),
177
+ }),
178
+ }),
179
+ },
180
+ },
181
+ });
182
+ const response = await retryWithBackoff(async () => {
183
+ return await kmsClient.attestedCompute(attestedComputeRequest);
184
+ }, backoffConfig);
185
+ if (!response.decryptionAttestation) {
186
+ throw new Error('Failed to get decryption attestation from attested compute');
187
+ }
188
+ const decryptionAttestation = response.decryptionAttestation;
189
+ if (decryptionAttestation.plaintext === undefined) {
190
+ throw new Error('No plaintext in compute response');
191
+ }
192
+ const bigIntValue = bytesToBigInt(decryptionAttestation.plaintext);
193
+ return {
194
+ handle: decryptionAttestation.handle,
195
+ plaintext: bigintToPlaintext(encryptionSchemes.ecies, getHandleType(lhsHandle), bigIntValue),
196
+ covalidatorSignature: decryptionAttestation.signature,
197
+ };
198
+ }
199
+ // The sessionKeyAttestedDecrypt function is a decryptor that uses a session key
200
+ // to decrypt data.
201
+ export async function sessionKeyAttestedDecrypt({ chainId, kmsConnectRpcEndpointOrClient, handles, ephemeralKeypair, allowanceVoucherWithSig, backoffConfig, }) {
202
+ const kmsClient = getKmsClient(kmsConnectRpcEndpointOrClient || defaultCovalidatorGrpc(getSupportedChain(chainId)));
203
+ const requesterAccount = privateKeyToAccount(`0x${ephemeralKeypair.kp.getPrivate('hex')}`);
204
+ // Sign the EIP712 attesting that the requester has access to the private key
205
+ // corresponding to the ephemeral public key.
206
+ const eip712Payload = createEIP712Payload({
207
+ chainId: BigInt(chainId),
208
+ primaryType: 'AttestedDecryptRequest',
209
+ primaryTypeFields: [{ name: 'handles', type: 'bytes32[]' }],
210
+ message: {
211
+ handles: handles,
212
+ },
213
+ domainName: ATTESTED_DECRYPT_DOMAIN_NAME,
214
+ domainVersion: ATTESTED_DECRYPT_DOMAIN_VERSION,
215
+ });
216
+ // Since the account is an ephemeral keypair stored in memory (not in Metamask),
217
+ // this step will NOT prompt the user with a pop-up.
218
+ const eip712Signature = await requesterAccount.signTypedData(eip712Payload);
219
+ const handlesWithProofs = handles.map((handle) => {
220
+ return create(HandleWithProofSchema, {
221
+ handle: handle,
222
+ aclProof: {
223
+ proof: {
224
+ case: 'incoLiteAdvancedAclProof',
225
+ value: create(IncoLiteAdvancedACLProofSchema, {
226
+ allowanceProof: create(AllowanceProofSchema, {
227
+ sharer: allowanceVoucherWithSig.sharer,
228
+ voucher: create(AllowanceVoucherSchema, {
229
+ sessionNonce: hexToBytes(allowanceVoucherWithSig.voucher.sessionNonce),
230
+ verifyingContract: allowanceVoucherWithSig.voucher.verifyingContract,
231
+ callFunction: hexToBytes(allowanceVoucherWithSig.voucher.callFunction),
232
+ sharerArgData: hexToBytes(allowanceVoucherWithSig.voucher.sharerArgData),
233
+ }),
234
+ voucherSignature: hexToBytes(allowanceVoucherWithSig.voucherSignature),
235
+ requesterArgData: new Uint8Array(),
236
+ }),
237
+ }),
238
+ },
239
+ },
240
+ });
241
+ });
242
+ const attestedDecryptRequest = create(AttestedDecryptRequestSchema, {
243
+ userAddress: requesterAccount.address,
244
+ handlesWithProofs: handlesWithProofs,
245
+ eip712Signature: hexToBytes(eip712Signature),
246
+ });
247
+ const response = await retryWithBackoff(async () => {
248
+ return await kmsClient.attestedDecrypt(attestedDecryptRequest);
249
+ }, backoffConfig);
250
+ if (!response.decryptionAttestations || response.decryptionAttestations.length === 0) {
251
+ throw new AttestedDecryptError('No decryption attestations in response');
252
+ }
253
+ const results = response.decryptionAttestations.map((att) => {
254
+ if (att.plaintext === undefined) {
255
+ throw new AttestedDecryptError('No plaintext in attestation');
256
+ }
257
+ const h = att.handle;
258
+ const handleType = getHandleType(h);
259
+ const bigIntValue = bytesToBigInt(att.plaintext);
260
+ return {
261
+ handle: h,
262
+ plaintext: bigintToPlaintext(encryptionSchemes.ecies, handleType, bigIntValue),
263
+ covalidatorSignature: att.signature,
264
+ };
265
+ });
266
+ return results;
267
+ }
130
268
  // Below are helpers to get ABIs of functions/structs from the SessionVerifier
131
269
  // contract.
132
270
  // Get the ABI of the `AllowanceVoucher` struct.
@@ -167,4 +305,4 @@ function getCanUseSessionAbi() {
167
305
  }
168
306
  return canUseSession;
169
307
  }
170
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi1rZXkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYWR2YW5jZWRhY2wvc2Vzc2lvbi1rZXkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUlMLG1CQUFtQixFQUNuQixXQUFXLEVBRVgsVUFBVSxFQUNWLGtCQUFrQixHQUduQixNQUFNLE1BQU0sQ0FBQztBQUNkLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFaEQsT0FBTyxFQUFFLFlBQVksRUFBRSx3QkFBd0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3BILE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRWxFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxzQkFBc0IsRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDOUcsT0FBTyxFQUFFLG1CQUFtQixFQUF3QixNQUFNLDBCQUEwQixDQUFDO0FBa0JyRixzRUFBc0U7QUFDdEUsd0VBQXdFO0FBQ3hFLCtCQUErQjtBQUMvQixNQUFNLENBQUMsS0FBSyxVQUFVLHNCQUFzQixDQUMxQyxlQUF3QixFQUN4QixrQkFBMkQsRUFDM0QsaUJBQTBCLEVBQzFCLFlBQWlCLEVBQ2pCLGFBQWtCO0lBRWxCLE1BQU0sV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUM5QixPQUFPLEVBQUUsZUFBZTtRQUN4QixvRUFBb0U7UUFDcEUsR0FBRyxFQUFFLHdCQUF3QjtRQUM3QixNQUFNLEVBQUUsa0JBQWtCO0tBQzNCLENBQUMsQ0FBQztJQUVILDBFQUEwRTtJQUMxRSx3Q0FBd0M7SUFDeEMsTUFBTSxZQUFZLEdBQUcsTUFBTSxXQUFXLENBQUMsSUFBSSxDQUFDLDZCQUE2QixDQUFDLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLE9B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
308
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi1rZXkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYWR2YW5jZWRhY2wvc2Vzc2lvbi1rZXkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRTVDLE9BQU8sRUFJTCxtQkFBbUIsRUFDbkIsV0FBVyxFQUVYLFVBQVUsRUFDVixrQkFBa0IsR0FHbkIsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFFLG9CQUFvQixFQUF5QixNQUFNLDZCQUE2QixDQUFDO0FBQzFGLE9BQU8sRUFBRSxpQkFBaUIsRUFBb0IsTUFBTSxhQUFhLENBQUM7QUFDbEUsT0FBTyxFQUFFLGlCQUFpQixFQUFvQixpQkFBaUIsRUFBb0IsTUFBTSw2QkFBNkIsQ0FBQztBQUN2SCxPQUFPLEVBQUUsWUFBWSxFQUFFLHdCQUF3QixFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDcEgsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFhLE1BQU0sYUFBYSxDQUFDO0FBU3ZGLE9BQU8sRUFDTCw0QkFBNEIsRUFDNUIsK0JBQStCLEVBQy9CLDRCQUE0QixFQUM1QiwrQkFBK0IsRUFDL0IsbUJBQW1CLEVBQ25CLHNCQUFzQixFQUN0QixZQUFZLEVBQ1osZUFBZSxHQUNoQixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBRSxtQkFBbUIsRUFBd0IsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRixPQUFPLEVBQWlCLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBSTlELE9BQU8sRUFDTCw0QkFBNEIsRUFDNUIsNEJBQTRCLEVBQzVCLHNCQUFzQixHQUN2QixNQUFNLG9EQUFv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
@@ -1,8 +1,13 @@
1
1
  import type { Account, Chain, Transport, WalletClient } from 'viem';
2
+ import { DecryptionAttestation } from '../attesteddecrypt/types.js';
3
+ import { HexString } from '../binary.js';
2
4
  import { SupportedChainId } from '../chain.js';
3
- import { EciesScheme } from '../encryption/encryption.js';
5
+ import { EciesScheme, SupportedFheType } from '../encryption/encryption.js';
4
6
  import type { KmsClient } from '../kms/client.js';
5
- import { AttestedCompute } from './types.js';
7
+ import type { BackoffConfig } from '../retry.js';
8
+ import { AttestedComputeOP } from './types.js';
9
+ export declare const ATTESTED_COMPUTE_DOMAIN_NAME = "IncoAttestedCompute";
10
+ export declare const ATTESTED_COMPUTE_DOMAIN_VERSION = "0.1.0";
6
11
  /**
7
12
  * Arguments for creating an attested compute.
8
13
  */
@@ -21,18 +26,13 @@ export interface IncoLiteAttestedComputeArgs {
21
26
  * @throws {AttestedComputeError} If the creation fails
22
27
  *
23
28
  * @todo Support multiple operations in a single request.
24
- *
25
- * @example
26
- * ```typescript
27
- * const compute = await incoLiteAttestedCompute({
28
- * walletClient,
29
- * chainId: sepolia,
30
- * });
31
- * const decryptionAttestation = await compute({
32
- * lhsHandle: '0x...',
33
- * op: AttestedComputeSupportedOps.Eq,
34
- * rhsPlaintext: 1337n,
35
- * });
36
- * ```
37
29
  */
38
- export declare function incoLiteAttestedCompute({ kmsConnectRpcEndpointOrClient, chainId, walletClient, }: IncoLiteAttestedComputeArgs): AttestedCompute<EciesScheme>;
30
+ export declare function attestedCompute<T extends SupportedFheType>({ lhsHandle, op, rhsPlaintext, backoffConfig, walletClient, kmsConnectRpcEndpointOrClient, chainId, }: {
31
+ lhsHandle: HexString;
32
+ op: AttestedComputeOP;
33
+ rhsPlaintext: bigint | boolean;
34
+ backoffConfig?: Partial<BackoffConfig> | undefined;
35
+ walletClient: WalletClient<Transport, Chain, Account>;
36
+ kmsConnectRpcEndpointOrClient?: string | KmsClient;
37
+ chainId: SupportedChainId;
38
+ }): Promise<DecryptionAttestation<EciesScheme, T>>;
@@ -1,15 +1,17 @@
1
+ import { create } from '@bufbuild/protobuf';
1
2
  import { hexToBytes } from 'viem';
2
3
  import { validateHandle } from '../attesteddecrypt/attested-decrypt.js';
3
4
  import { bigintToBytes32, bytesToBigInt } from '../binary.js';
4
5
  import { getSupportedChain } from '../chain.js';
5
6
  import { bigintToPlaintext, encryptionSchemes } from '../encryption/encryption.js';
7
+ import { AttestedComputeRequestSchema, } from '../generated/es/inco/kms/lite/v1/kms_service_pb.js';
6
8
  import { getHandleType } from '../handle.js';
7
9
  import { defaultCovalidatorGrpc, getKmsClient } from '../kms/client.js';
8
10
  import { createEIP712Payload } from '../reencryption/eip712.js';
9
11
  import { retryWithBackoff } from '../retry.js';
10
12
  import { AttestedComputeError } from './types.js';
11
- const ATTESTED_COMPUTE_DOMAIN_NAME = 'IncoAttestedCompute';
12
- const ATTESTED_COMPUTE_DOMAIN_VERSION = '0.1.0';
13
+ export const ATTESTED_COMPUTE_DOMAIN_NAME = 'IncoAttestedCompute';
14
+ export const ATTESTED_COMPUTE_DOMAIN_VERSION = '0.1.0';
13
15
  /**
14
16
  * Creates an attested compute function that can decrypt handles with an attached attestation from the covalidator.
15
17
  * @param args - The arguments for creating the attested compute function
@@ -17,79 +19,69 @@ const ATTESTED_COMPUTE_DOMAIN_VERSION = '0.1.0';
17
19
  * @throws {AttestedComputeError} If the creation fails
18
20
  *
19
21
  * @todo Support multiple operations in a single request.
20
- *
21
- * @example
22
- * ```typescript
23
- * const compute = await incoLiteAttestedCompute({
24
- * walletClient,
25
- * chainId: sepolia,
26
- * });
27
- * const decryptionAttestation = await compute({
28
- * lhsHandle: '0x...',
29
- * op: AttestedComputeSupportedOps.Eq,
30
- * rhsPlaintext: 1337n,
31
- * });
32
- * ```
33
22
  */
34
- export function incoLiteAttestedCompute({ kmsConnectRpcEndpointOrClient, chainId, walletClient, }) {
35
- const kmsClient = getKmsClient(kmsConnectRpcEndpointOrClient || defaultCovalidatorGrpc(getSupportedChain(chainId)));
36
- return async function attestedCompute({ lhsHandle, op, rhsPlaintext, backoffConfig, }) {
37
- try {
38
- validateHandle(lhsHandle);
39
- const rhsPlaintextBig = BigInt(rhsPlaintext);
40
- // Create the EIP712 payload for the handles to decrypt
41
- const eip712Payload = createEIP712Payload({
42
- chainId: BigInt(chainId),
43
- primaryType: 'AttestedComputeRequest',
44
- primaryTypeFields: [
45
- { name: 'op', type: 'uint8' },
46
- { name: 'lhsHandle', type: 'bytes32' },
47
- { name: 'rhsPlaintext', type: 'bytes32' },
48
- ],
49
- message: {
50
- op: op,
51
- lhsHandle: lhsHandle,
52
- rhsPlaintext: bigintToBytes32(rhsPlaintextBig),
53
- },
54
- domainName: ATTESTED_COMPUTE_DOMAIN_NAME,
55
- domainVersion: ATTESTED_COMPUTE_DOMAIN_VERSION,
56
- });
57
- // Sign the EIP712 message
58
- const eip712Signature = await walletClient.signTypedData(eip712Payload);
59
- const rhsValueBytes = bigintToPlaintext(encryptionSchemes.ecies, getHandleType(lhsHandle), rhsPlaintextBig);
60
- const attestedComputeRequest = {
61
- $typeName: 'inco.kms.lite.v1.AttestedComputeRequest',
62
- userAddress: walletClient.account.address,
23
+ export async function attestedCompute({ lhsHandle, op, rhsPlaintext, backoffConfig, walletClient, kmsConnectRpcEndpointOrClient, chainId, }) {
24
+ try {
25
+ const kmsClient = getKmsClient(kmsConnectRpcEndpointOrClient || defaultCovalidatorGrpc(getSupportedChain(chainId)));
26
+ validateHandle(lhsHandle);
27
+ const rhsPlaintextBig = BigInt(rhsPlaintext);
28
+ // Create the EIP712 payload for the handles to decrypt
29
+ const eip712Payload = createEIP712Payload({
30
+ chainId: BigInt(chainId),
31
+ primaryType: 'AttestedComputeRequest',
32
+ primaryTypeFields: [
33
+ { name: 'op', type: 'uint8' },
34
+ { name: 'lhsHandle', type: 'bytes32' },
35
+ { name: 'rhsPlaintext', type: 'bytes32' },
36
+ ],
37
+ message: {
63
38
  op: op,
64
39
  lhsHandle: lhsHandle,
65
- rhsPlaintext: rhsValueBytes.value.toString(16),
66
- eip712Signature: hexToBytes(eip712Signature),
67
- };
68
- const response = await retryWithBackoff(async () => {
69
- return await kmsClient.attestedCompute(attestedComputeRequest);
70
- }, backoffConfig);
71
- const decryptionAttestation = response.decryptionAttestation;
72
- if (decryptionAttestation?.plaintext === undefined) {
73
- throw new AttestedComputeError('No plaintext in response');
74
- }
75
- const computeResultHandle = response.decryptionAttestation?.handle;
76
- if (!computeResultHandle) {
77
- throw new AttestedComputeError('No compute result handle in response');
78
- }
79
- const handleType = getHandleType(computeResultHandle);
80
- const bigIntValue = bytesToBigInt(decryptionAttestation.plaintext);
81
- return {
82
- handle: computeResultHandle,
83
- plaintext: bigintToPlaintext(encryptionSchemes.ecies, handleType, bigIntValue),
84
- covalidatorSignature: decryptionAttestation.signature,
85
- };
40
+ rhsPlaintext: bigintToBytes32(rhsPlaintextBig),
41
+ },
42
+ domainName: ATTESTED_COMPUTE_DOMAIN_NAME,
43
+ domainVersion: ATTESTED_COMPUTE_DOMAIN_VERSION,
44
+ });
45
+ // Sign the EIP712 message
46
+ const eip712Signature = await walletClient.signTypedData(eip712Payload);
47
+ const rhsValueBytes = bigintToPlaintext(encryptionSchemes.ecies, getHandleType(lhsHandle), rhsPlaintextBig);
48
+ const attestedComputeRequest = create(AttestedComputeRequestSchema, {
49
+ userAddress: walletClient.account.address,
50
+ op: op,
51
+ lhsHandle: lhsHandle,
52
+ rhsPlaintext: rhsValueBytes.value.toString(16),
53
+ eip712Signature: hexToBytes(eip712Signature),
54
+ aclProof: {
55
+ proof: {
56
+ case: 'incoLiteBasicAclProof',
57
+ value: {},
58
+ },
59
+ },
60
+ });
61
+ const response = await retryWithBackoff(async () => {
62
+ return await kmsClient.attestedCompute(attestedComputeRequest);
63
+ }, backoffConfig);
64
+ const decryptionAttestation = response.decryptionAttestation;
65
+ if (decryptionAttestation?.plaintext === undefined) {
66
+ throw new AttestedComputeError('No plaintext in compute response');
67
+ }
68
+ const computeResultHandle = response.decryptionAttestation?.handle;
69
+ if (!computeResultHandle) {
70
+ throw new AttestedComputeError('No compute result handle in response');
86
71
  }
87
- catch (error) {
88
- if (error instanceof AttestedComputeError) {
89
- throw error;
90
- }
91
- throw new AttestedComputeError('Failed to perform attested compute', error);
72
+ const handleType = getHandleType(computeResultHandle);
73
+ const bigIntValue = bytesToBigInt(decryptionAttestation.plaintext);
74
+ return {
75
+ handle: computeResultHandle,
76
+ plaintext: bigintToPlaintext(encryptionSchemes.ecies, handleType, bigIntValue),
77
+ covalidatorSignature: decryptionAttestation.signature,
78
+ };
79
+ }
80
+ catch (error) {
81
+ if (error instanceof AttestedComputeError) {
82
+ throw error;
92
83
  }
93
- };
84
+ throw new AttestedComputeError('Failed to perform attested compute', error);
85
+ }
94
86
  }
95
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0ZXN0ZWQtY29tcHV0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdHRlc3RlZGNvbXB1dGUvYXR0ZXN0ZWQtY29tcHV0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUV4RSxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBYSxNQUFNLGNBQWMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsaUJBQWlCLEVBQW9CLE1BQU0sYUFBYSxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxpQkFBaUIsRUFBZSxpQkFBaUIsRUFBb0IsTUFBTSw2QkFBNkIsQ0FBQztBQUVsSCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTdDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN4RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUVoRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDL0MsT0FBTyxFQUFtQixvQkFBb0IsRUFBcUIsTUFBTSxZQUFZLENBQUM7QUFFdEYsTUFBTSw0QkFBNEIsR0FBRyxxQkFBcUIsQ0FBQztBQUMzRCxNQUFNLCtCQUErQixHQUFHLE9BQU8sQ0FBQztBQWNoRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkc7QUFDSCxNQUFNLFVBQVUsdUJBQXVCLENBQUMsRUFDdEMsNkJBQTZCLEVBQzdCLE9BQU8sRUFDUCxZQUFZLEdBQ2dCO0lBQzVCLE1BQU0sU0FBUyxHQUFHLFlBQVksQ0FBQyw2QkFBNkIsSUFBSSxzQkFBc0IsQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFcEgsT0FBTyxLQUFLLFVBQVUsZUFBZSxDQUE2QixFQUNoRSxTQUFTLEVBQ1QsRUFBRSxFQUNGLFlBQVksRUFDWixhQUFhLEdBTWQ7UUFDQyxJQUFJLENBQUM7WUFDSCxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUM7WUFFMUIsTUFBTSxlQUFlLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBRTdDLHVEQUF1RDtZQUN2RCxNQUFNLGFBQWEsR0FBRyxtQkFBbUIsQ0FBQztnQkFDeEMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUM7Z0JBQ3hCLFdBQVcsRUFBRSx3QkFBd0I7Z0JBQ3JDLGlCQUFpQixFQUFFO29CQUNqQixFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRTtvQkFDN0IsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUU7b0JBQ3RDLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFO2lCQUMxQztnQkFDRCxPQUFPLEVBQUU7b0JBQ1AsRUFBRSxFQUFFLEVBQUU7b0JBQ04sU0FBUyxFQUFFLFNBQVM7b0JBQ3BCLFlBQVksRUFBRSxlQUFlLENBQUMsZUFBZSxDQUFDO2lCQUMvQztnQkFDRCxVQUFVLEVBQUUsNEJBQTRCO2dCQUN4QyxhQUFhLEVBQUUsK0JBQStCO2FBQy9DLENBQUMsQ0FBQztZQUVILDBCQUEwQjtZQUMxQixNQUFNLGVBQWUsR0FBRyxNQUFNLFlBQVksQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLENBQUM7WUFFeEUsTUFBTSxhQUFhLEdBQUcsaUJBQWlCLENBQUMsaUJBQWlCLENBQUMsS0FBSyxFQUFFLGFBQWEsQ0FBQyxTQUFTLENBQU0sRUFBRSxlQUFlLENBQUMsQ0FBQztZQUNqSCxNQUFNLHNCQUFzQixHQUEyQjtnQkFDckQsU0FBUyxFQUFFLHlDQUF5QztnQkFDcEQsV0FBVyxFQUFFLFlBQVksQ0FBQyxPQUFPLENBQUMsT0FBTztnQkFDekMsRUFBRSxFQUFFLEVBQUU7Z0JBQ04sU0FBUyxFQUFFLFNBQVM7Z0JBQ3BCLFlBQVksRUFBRSxhQUFhLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7Z0JBQzlDLGVBQWUsRUFBRSxVQUFVLENBQUMsZUFBZSxDQUFDO2FBQzdDLENBQUM7WUFFRixNQUFNLFFBQVEsR0FBRyxNQUFNLGdCQUFnQixDQUFDLEtBQUssSUFBSSxFQUFFO2dCQUNqRCxPQUFPLE1BQU0sU0FBUyxDQUFDLGVBQWUsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1lBQ2pFLENBQUMsRUFBRSxhQUFhLENBQUMsQ0FBQztZQUVsQixNQUFNLHFCQUFxQixHQUFHLFFBQVEsQ0FBQyxxQkFBcUIsQ0FBQztZQUU3RCxJQUFJLHFCQUFxQixFQUFFLFNBQVMsS0FBSyxTQUFTLEVBQUUsQ0FBQztnQkFDbkQsTUFBTSxJQUFJLG9CQUFvQixDQUFDLDBCQUEwQixDQUFDLENBQUM7WUFDN0QsQ0FBQztZQUVELE1BQU0sbUJBQW1CLEdBQUcsUUFBUSxDQUFDLHFCQUFxQixFQUFFLE1BQU0sQ0FBQztZQUNuRSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztnQkFDekIsTUFBTSxJQUFJLG9CQUFvQixDQUFDLHNDQUFzQyxDQUFDLENBQUM7WUFDekUsQ0FBQztZQUVELE1BQU0sVUFBVSxHQUFHLGFBQWEsQ0FBQyxtQkFBZ0MsQ0FBQyxDQUFDO1lBQ25FLE1BQU0sV0FBVyxHQUFHLGFBQWEsQ0FBQyxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUVuRSxPQUFPO2dCQUNMLE1BQU0sRUFBRSxtQkFBZ0M7Z0JBQ3hDLFNBQVMsRUFBRSxpQkFBaUIsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsVUFBZSxFQUFFLFdBQVcsQ0FBQztnQkFDbkYsb0JBQW9CLEVBQUUscUJBQXFCLENBQUMsU0FBUzthQUN0RCxDQUFDO1FBQ0osQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixJQUFJLEtBQUssWUFBWSxvQkFBb0IsRUFBRSxDQUFDO2dCQUMxQyxNQUFNLEtBQUssQ0FBQztZQUNkLENBQUM7WUFDRCxNQUFNLElBQUksb0JBQW9CLENBQUMsb0NBQW9DLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDOUUsQ0FBQztJQUNILENBQUMsQ0FBQztBQUNKLENBQUMifQ==
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0ZXN0ZWQtY29tcHV0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdHRlc3RlZGNvbXB1dGUvYXR0ZXN0ZWQtY29tcHV0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFNUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFFeEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQWEsTUFBTSxjQUFjLENBQUM7QUFDekUsT0FBTyxFQUFFLGlCQUFpQixFQUFvQixNQUFNLGFBQWEsQ0FBQztBQUNsRSxPQUFPLEVBQUUsaUJBQWlCLEVBQWUsaUJBQWlCLEVBQW9CLE1BQU0sNkJBQTZCLENBQUM7QUFDbEgsT0FBTyxFQUVMLDRCQUE0QixHQUM3QixNQUFNLG9EQUFvRCxDQUFDO0FBQzVELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFN0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRWhFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMvQyxPQUFPLEVBQUUsb0JBQW9CLEVBQXFCLE1BQU0sWUFBWSxDQUFDO0FBRXJFLE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUFHLHFCQUFxQixDQUFDO0FBQ2xFLE1BQU0sQ0FBQyxNQUFNLCtCQUErQixHQUFHLE9BQU8sQ0FBQztBQWN2RDs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxlQUFlLENBQTZCLEVBQ2hFLFNBQVMsRUFDVCxFQUFFLEVBQ0YsWUFBWSxFQUNaLGFBQWEsRUFDYixZQUFZLEVBQ1osNkJBQTZCLEVBQzdCLE9BQU8sR0FTUjtJQUNDLElBQUksQ0FBQztRQUNILE1BQU0sU0FBUyxHQUFHLFlBQVksQ0FBQyw2QkFBNkIsSUFBSSxzQkFBc0IsQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDcEgsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRTFCLE1BQU0sZUFBZSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUU3Qyx1REFBdUQ7UUFDdkQsTUFBTSxhQUFhLEdBQUcsbUJBQW1CLENBQUM7WUFDeEMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUM7WUFDeEIsV0FBVyxFQUFFLHdCQUF3QjtZQUNyQyxpQkFBaUIsRUFBRTtnQkFDakIsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUU7Z0JBQzdCLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFO2dCQUN0QyxFQUFFLElBQUksRUFBRSxjQUFjLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRTthQUMxQztZQUNELE9BQU8sRUFBRTtnQkFDUCxFQUFFLEVBQUUsRUFBRTtnQkFDTixTQUFTLEVBQUUsU0FBUztnQkFDcEIsWUFBWSxFQUFFLGVBQWUsQ0FBQyxlQUFlLENBQUM7YUFDL0M7WUFDRCxVQUFVLEVBQUUsNEJBQTRCO1lBQ3hDLGFBQWEsRUFBRSwrQkFBK0I7U0FDL0MsQ0FBQyxDQUFDO1FBRUgsMEJBQTBCO1FBQzFCLE1BQU0sZUFBZSxHQUFHLE1BQU0sWUFBWSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUV4RSxNQUFNLGFBQWEsR0FBRyxpQkFBaUIsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsYUFBYSxDQUFDLFNBQVMsQ0FBTSxFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBQ2pILE1BQU0sc0JBQXNCLEdBQTJCLE1BQU0sQ0FBQyw0QkFBNEIsRUFBRTtZQUMxRixXQUFXLEVBQUUsWUFBWSxDQUFDLE9BQU8sQ0FBQyxPQUFPO1lBQ3pDLEVBQUUsRUFBRSxFQUFFO1lBQ04sU0FBUyxFQUFFLFNBQVM7WUFDcEIsWUFBWSxFQUFFLGFBQWEsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUM5QyxlQUFlLEVBQUUsVUFBVSxDQUFDLGVBQWUsQ0FBQztZQUM1QyxRQUFRLEVBQUU7Z0JBQ1IsS0FBSyxFQUFFO29CQUNMLElBQUksRUFBRSx1QkFBdUI7b0JBQzdCLEtBQUssRUFBRSxFQUFFO2lCQUNWO2FBQ0Y7U0FDRixDQUFDLENBQUM7UUFFSCxNQUFNLFFBQVEsR0FBRyxNQUFNLGdCQUFnQixDQUFDLEtBQUssSUFBSSxFQUFFO1lBQ2pELE9BQU8sTUFBTSxTQUFTLENBQUMsZUFBZSxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDakUsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBRWxCLE1BQU0scUJBQXFCLEdBQUcsUUFBUSxDQUFDLHFCQUFxQixDQUFDO1FBRTdELElBQUkscUJBQXFCLEVBQUUsU0FBUyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ25ELE1BQU0sSUFBSSxvQkFBb0IsQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO1FBQ3JFLENBQUM7UUFFRCxNQUFNLG1CQUFtQixHQUFHLFFBQVEsQ0FBQyxxQkFBcUIsRUFBRSxNQUFNLENBQUM7UUFDbkUsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7WUFDekIsTUFBTSxJQUFJLG9CQUFvQixDQUFDLHNDQUFzQyxDQUFDLENBQUM7UUFDekUsQ0FBQztRQUVELE1BQU0sVUFBVSxHQUFHLGFBQWEsQ0FBQyxtQkFBZ0MsQ0FBQyxDQUFDO1FBQ25FLE1BQU0sV0FBVyxHQUFHLGFBQWEsQ0FBQyxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUVuRSxPQUFPO1lBQ0wsTUFBTSxFQUFFLG1CQUFnQztZQUN4QyxTQUFTLEVBQUUsaUJBQWlCLENBQUMsaUJBQWlCLENBQUMsS0FBSyxFQUFFLFVBQWUsRUFBRSxXQUFXLENBQUM7WUFDbkYsb0JBQW9CLEVBQUUscUJBQXFCLENBQUMsU0FBUztTQUN0RCxDQUFDO0lBQ0osQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDZixJQUFJLEtBQUssWUFBWSxvQkFBb0IsRUFBRSxDQUFDO1lBQzFDLE1BQU0sS0FBSyxDQUFDO1FBQ2QsQ0FBQztRQUNELE1BQU0sSUFBSSxvQkFBb0IsQ0FBQyxvQ0FBb0MsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUM5RSxDQUFDO0FBQ0gsQ0FBQyJ9
@@ -25,10 +25,11 @@ export declare class AttestedComputeError extends Error {
25
25
  readonly cause?: unknown | undefined;
26
26
  constructor(message: string, cause?: unknown | undefined);
27
27
  }
28
- export type AttestedCompute<S extends EncryptionScheme> = <T extends SupportedFheType>(args: {
28
+ export type AttestedCompute<S extends EncryptionScheme> = <T extends SupportedFheType>(args: AttestedComputeFnArgs<S, T>) => Promise<DecryptionAttestation<S, T>>;
29
+ export type AttestedComputeFnArgs<S extends EncryptionScheme, T extends SupportedFheType> = {
29
30
  /** The handle to compute on */
30
31
  lhsHandle: HexString;
31
32
  op: AttestedComputeOP;
32
33
  rhsPlaintext: bigint | boolean;
33
34
  backoffConfig?: Partial<BackoffConfig>;
34
- }) => Promise<DecryptionAttestation<S, T>>;
35
+ };
@@ -1,16 +1,20 @@
1
1
  import type { Account, Chain, Transport, WalletClient } from 'viem';
2
+ import { HexString } from '../binary.js';
2
3
  import { SupportedChainId } from '../chain.js';
3
- import { EciesScheme } from '../encryption/encryption.js';
4
+ import { EciesScheme, SupportedFheType } from '../encryption/encryption.js';
4
5
  import type { KmsClient } from '../kms/client.js';
5
- import { AttestedDecryptor } from './types.js';
6
+ import type { BackoffConfig } from '../retry.js';
7
+ import { DecryptionAttestation } from './types.js';
8
+ export declare const ATTESTED_DECRYPT_DOMAIN_NAME = "IncoAttestedDecrypt";
9
+ export declare const ATTESTED_DECRYPT_DOMAIN_VERSION = "0.1.0";
6
10
  /**
7
11
  * Validates a handle format.
8
12
  * @param handle - The handle to validate
9
13
  * @throws {AttestedDecryptError} If the handle format is invalid
10
14
  */
11
- export declare function validateHandle(handle: string): void;
15
+ export declare function validateHandle(handle: HexString): void;
12
16
  /**
13
- * Arguments for creating an attested decryptor.
17
+ * Arguments for creating an attested decrypt request.
14
18
  */
15
19
  export interface IncoLiteAttestedDecryptorArgs {
16
20
  /** The wallet used to interact with the blockchain and sign the decrypt request */
@@ -21,20 +25,17 @@ export interface IncoLiteAttestedDecryptorArgs {
21
25
  chainId: SupportedChainId;
22
26
  }
23
27
  /**
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
+ * Decrypt multiple handles in a single attested request.
29
+ * Returns an array of attestations aligned with the response ordering.
28
30
  *
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
- * ```
31
+ * @param args - The arguments for creating the attested decrypt function
32
+ * @returns A function that can decrypt handles and return an attestation
33
+ * @throws {AttestedDecryptError} If the creation fails
39
34
  */
40
- export declare function incoLiteAttestedDecryptor({ kmsConnectRpcEndpointOrClient, chainId, walletClient, }: IncoLiteAttestedDecryptorArgs): AttestedDecryptor<EciesScheme>;
35
+ export declare function attestedDecrypt({ handles, backoffConfig, walletClient, chainId, kmsConnectRpcEndpointOrClient, }: {
36
+ handles: HexString[];
37
+ backoffConfig?: Partial<BackoffConfig> | undefined;
38
+ walletClient: WalletClient<Transport, Chain, Account>;
39
+ chainId: SupportedChainId;
40
+ kmsConnectRpcEndpointOrClient?: string | KmsClient;
41
+ }): Promise<Array<DecryptionAttestation<EciesScheme, SupportedFheType>>>;