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