@fhevm/sdk 1.1.0-alpha.6 → 1.1.0-alpha.8

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 (670) hide show
  1. package/README.md +5 -5
  2. package/_cjs/core/_version.js +1 -1
  3. package/_cjs/core/actions/base/index.js +1 -17
  4. package/_cjs/core/actions/base/index.js.map +1 -1
  5. package/_cjs/core/actions/base/signDecryptionPermit.js +0 -3
  6. package/_cjs/core/actions/base/signDecryptionPermit.js.map +1 -1
  7. package/_cjs/core/actions/chain/index.js +1 -13
  8. package/_cjs/core/actions/chain/index.js.map +1 -1
  9. package/_cjs/core/actions/chain/parseSignedDecryptionPermit.js.map +1 -1
  10. package/_cjs/core/actions/chain/serializeSignedDecryptionPermit.js.map +1 -1
  11. package/_cjs/core/actions/decrypt/canDecryptValue.js.map +1 -1
  12. package/_cjs/core/actions/decrypt/canDecryptValues.js.map +1 -1
  13. package/_cjs/core/actions/decrypt/canDecryptValuesFromPairs.js.map +1 -1
  14. package/_cjs/core/actions/decrypt/decryptValue.js +1 -0
  15. package/_cjs/core/actions/decrypt/decryptValue.js.map +1 -1
  16. package/_cjs/core/actions/decrypt/decryptValues.js +2 -0
  17. package/_cjs/core/actions/decrypt/decryptValues.js.map +1 -1
  18. package/_cjs/core/actions/decrypt/decryptValuesFromPairs.js +2 -0
  19. package/_cjs/core/actions/decrypt/decryptValuesFromPairs.js.map +1 -1
  20. package/_cjs/core/actions/decrypt/index.js +1 -3
  21. package/_cjs/core/actions/decrypt/index.js.map +1 -1
  22. package/_cjs/core/actions/encrypt/encryptValue.js +2 -1
  23. package/_cjs/core/actions/encrypt/encryptValue.js.map +1 -1
  24. package/_cjs/core/actions/encrypt/encryptValues.js +2 -1
  25. package/_cjs/core/actions/encrypt/encryptValues.js.map +1 -1
  26. package/_cjs/core/actions/encrypt/generateZkProof.js +2 -1
  27. package/_cjs/core/actions/encrypt/generateZkProof.js.map +1 -1
  28. package/_cjs/core/actions/host/index.js +1 -9
  29. package/_cjs/core/actions/host/index.js.map +1 -1
  30. package/_cjs/core/actions/host/readKmsVerifierContractData.js +1 -1
  31. package/_cjs/core/actions/host/readKmsVerifierContractData.js.map +1 -1
  32. package/_cjs/core/base/cachedFetch.js +2 -1
  33. package/_cjs/core/base/cachedFetch.js.map +1 -1
  34. package/_cjs/core/base/uint.js +7 -0
  35. package/_cjs/core/base/uint.js.map +1 -1
  36. package/_cjs/core/clients/decorators/base.js +1 -1
  37. package/_cjs/core/clients/decorators/base.js.map +1 -1
  38. package/_cjs/core/handle/FheType.js +4 -0
  39. package/_cjs/core/handle/FheType.js.map +1 -1
  40. package/_cjs/core/host-contracts/HostContractVersion-p.js +4 -0
  41. package/_cjs/core/host-contracts/HostContractVersion-p.js.map +1 -1
  42. package/_cjs/core/host-contracts/KmsSignersContext-p.js +15 -25
  43. package/_cjs/core/host-contracts/KmsSignersContext-p.js.map +1 -1
  44. package/_cjs/core/host-contracts/canDecryptValuesFromPairs.js +4 -1
  45. package/_cjs/core/host-contracts/canDecryptValuesFromPairs.js.map +1 -1
  46. package/_cjs/core/host-contracts/getCoprocessorContextSignersAndThreshold-p.js +1 -1
  47. package/_cjs/core/host-contracts/getCoprocessorContextSignersAndThreshold-p.js.map +1 -1
  48. package/_cjs/core/host-contracts/getCurrentKmsContextAndEpoch-p.js +1 -1
  49. package/_cjs/core/host-contracts/getCurrentKmsContextAndEpoch-p.js.map +1 -1
  50. package/_cjs/core/host-contracts/getCurrentKmsContextId-p.js +1 -1
  51. package/_cjs/core/host-contracts/getCurrentKmsContextId-p.js.map +1 -1
  52. package/_cjs/core/host-contracts/getKmsContextSignersAndThreshold-p.js +1 -1
  53. package/_cjs/core/host-contracts/getKmsContextSignersAndThreshold-p.js.map +1 -1
  54. package/_cjs/core/host-contracts/getKmsContextSignersAndThresholdFromExtraData-p.js +7 -6
  55. package/_cjs/core/host-contracts/getKmsContextSignersAndThresholdFromExtraData-p.js.map +1 -1
  56. package/_cjs/core/host-contracts/readKmsSignersContext-p.js +54 -66
  57. package/_cjs/core/host-contracts/readKmsSignersContext-p.js.map +1 -1
  58. package/_cjs/core/kms/KmsSigncryptedShares-p.js +40 -4
  59. package/_cjs/core/kms/KmsSigncryptedShares-p.js.map +1 -1
  60. package/_cjs/core/kms/PublicDecryptionProof-p.js +8 -7
  61. package/_cjs/core/kms/PublicDecryptionProof-p.js.map +1 -1
  62. package/_cjs/core/kms/SignedDecryptionPermit-p.js +33 -199
  63. package/_cjs/core/kms/SignedDecryptionPermit-p.js.map +1 -1
  64. package/_cjs/core/kms/SignedDecryptionPermitV1-p.js +204 -0
  65. package/_cjs/core/kms/SignedDecryptionPermitV1-p.js.map +1 -0
  66. package/_cjs/core/kms/SignedDecryptionPermitV2-p.js +172 -0
  67. package/_cjs/core/kms/SignedDecryptionPermitV2-p.js.map +1 -0
  68. package/_cjs/core/kms/{createKmsDelegatedUserDecryptEip712.js → createKmsDelegatedUserDecryptEip712V1.js} +12 -13
  69. package/_cjs/core/kms/createKmsDelegatedUserDecryptEip712V1.js.map +1 -0
  70. package/_cjs/core/kms/{createKmsUserDecryptEip712.js → createKmsUserDecryptEip712V1.js} +22 -21
  71. package/_cjs/core/kms/createKmsUserDecryptEip712V1.js.map +1 -0
  72. package/_cjs/core/kms/createKmsUserDecryptEip712V2.js +4 -5
  73. package/_cjs/core/kms/createKmsUserDecryptEip712V2.js.map +1 -1
  74. package/_cjs/core/kms/decryptValuesFromPairs.js +18 -2
  75. package/_cjs/core/kms/decryptValuesFromPairs.js.map +1 -1
  76. package/_cjs/core/kms/{fetchKmsSigncryptedShares-p.js → fetchKmsSigncryptedSharesV1-p.js} +19 -9
  77. package/_cjs/core/kms/fetchKmsSigncryptedSharesV1-p.js.map +1 -0
  78. package/_cjs/core/kms/fetchKmsSigncryptedSharesV2-p.js +95 -0
  79. package/_cjs/core/kms/fetchKmsSigncryptedSharesV2-p.js.map +1 -0
  80. package/_cjs/core/kms/{kmsDelegatedUserDecryptEip712Types.js → kmsDelegatedUserDecryptEip712V1Types.js} +8 -8
  81. package/_cjs/core/kms/kmsDelegatedUserDecryptEip712V1Types.js.map +1 -0
  82. package/_cjs/core/kms/kmsExtraData-p.js +234 -0
  83. package/_cjs/core/kms/kmsExtraData-p.js.map +1 -0
  84. package/_cjs/core/kms/{kmsUserDecryptEip712Types.js → kmsUserDecryptEip712V1Types.js} +8 -8
  85. package/_cjs/core/kms/kmsUserDecryptEip712V1Types.js.map +1 -0
  86. package/_cjs/core/kms/kmsUserDecryptEip712V2Types.js.map +1 -1
  87. package/_cjs/core/kms/publicDecrypt.js +5 -5
  88. package/_cjs/core/kms/publicDecrypt.js.map +1 -1
  89. package/_cjs/core/kms/utils.js +0 -19
  90. package/_cjs/core/kms/utils.js.map +1 -1
  91. package/_cjs/core/kms/verifyKmsPublicDecryptEip712-p.js +6 -5
  92. package/_cjs/core/kms/verifyKmsPublicDecryptEip712-p.js.map +1 -1
  93. package/_cjs/core/modules/decrypt/mock.js +6 -6
  94. package/_cjs/core/modules/decrypt/mock.js.map +1 -1
  95. package/_cjs/core/modules/decrypt/module/api-p.js +12 -12
  96. package/_cjs/core/modules/decrypt/module/api-p.js.map +1 -1
  97. package/_cjs/core/modules/decrypt/module/init-p.js +6 -7
  98. package/_cjs/core/modules/decrypt/module/init-p.js.map +1 -1
  99. package/_cjs/core/modules/encrypt/module/init-p.js +12 -11
  100. package/_cjs/core/modules/encrypt/module/init-p.js.map +1 -1
  101. package/_cjs/core/modules/relayer/cleartext/fetchCoprocessorSignatures.js +53 -3
  102. package/_cjs/core/modules/relayer/cleartext/fetchCoprocessorSignatures.js.map +1 -1
  103. package/_cjs/core/modules/relayer/cleartext/{fetchDelegatedUserDecrypt.js → fetchDelegatedUserDecryptV1.js} +67 -21
  104. package/_cjs/core/modules/relayer/cleartext/fetchDelegatedUserDecryptV1.js.map +1 -0
  105. package/_cjs/core/modules/relayer/cleartext/fetchPublicDecrypt.js +64 -7
  106. package/_cjs/core/modules/relayer/cleartext/fetchPublicDecrypt.js.map +1 -1
  107. package/_cjs/core/modules/relayer/cleartext/fetchUserDecrypt.js +9 -108
  108. package/_cjs/core/modules/relayer/cleartext/fetchUserDecrypt.js.map +1 -1
  109. package/_cjs/core/modules/relayer/cleartext/fetchUserDecryptV1.js +163 -0
  110. package/_cjs/core/modules/relayer/cleartext/fetchUserDecryptV1.js.map +1 -0
  111. package/_cjs/core/modules/relayer/cleartext/fetchUserDecryptV2.js +7 -0
  112. package/_cjs/core/modules/relayer/cleartext/fetchUserDecryptV2.js.map +1 -0
  113. package/_cjs/core/modules/relayer/cleartext/forgeFhevmV1.js +83 -0
  114. package/_cjs/core/modules/relayer/cleartext/forgeFhevmV1.js.map +1 -0
  115. package/_cjs/core/modules/relayer/cleartext/mock.js +2 -2
  116. package/_cjs/core/modules/relayer/cleartext/mock.js.map +1 -1
  117. package/_cjs/core/modules/relayer/cleartext/signers.js +14 -0
  118. package/_cjs/core/modules/relayer/cleartext/signers.js.map +1 -1
  119. package/_cjs/core/modules/relayer/module/{fetchDelegatedUserDecrypt.js → fetchDelegatedUserDecryptV1.js} +1 -1
  120. package/_cjs/core/modules/relayer/module/fetchDelegatedUserDecryptV1.js.map +1 -0
  121. package/_cjs/core/modules/relayer/module/fetchPublicDecrypt.js +1 -1
  122. package/_cjs/core/modules/relayer/module/fetchUserDecrypt.js +11 -45
  123. package/_cjs/core/modules/relayer/module/fetchUserDecrypt.js.map +1 -1
  124. package/_cjs/core/modules/relayer/module/fetchUserDecryptV1.js +52 -0
  125. package/_cjs/core/modules/relayer/module/fetchUserDecryptV1.js.map +1 -0
  126. package/_cjs/core/modules/relayer/module/fetchUserDecryptV2.js +54 -0
  127. package/_cjs/core/modules/relayer/module/fetchUserDecryptV2.js.map +1 -0
  128. package/_cjs/core/modules/relayer/module/guards/RelayerResponseFailed.js +10 -2
  129. package/_cjs/core/modules/relayer/module/guards/RelayerResponseFailed.js.map +1 -1
  130. package/_cjs/core/modules/relayer/module/guards/api-errors/RelayerApiError400NoDetails.js +5 -2
  131. package/_cjs/core/modules/relayer/module/guards/api-errors/RelayerApiError400NoDetails.js.map +1 -1
  132. package/_cjs/core/modules/relayer/module/guards/api-errors/RelayerApiError503.js +2 -0
  133. package/_cjs/core/modules/relayer/module/guards/api-errors/RelayerApiError503.js.map +1 -1
  134. package/_cjs/core/modules/relayer/module/index.js +2 -2
  135. package/_cjs/core/modules/relayer/module/index.js.map +1 -1
  136. package/_cjs/core/runtime/HyperWasmSolver-p.js +1 -6
  137. package/_cjs/core/runtime/HyperWasmSolver-p.js.map +1 -1
  138. package/_cjs/core/utils-p/decrypt/{verifyKmsDelegatedUserDecryptEip712.js → verifyKmsDelegatedUserDecryptEip712V1.js} +5 -5
  139. package/_cjs/core/utils-p/decrypt/verifyKmsDelegatedUserDecryptEip712V1.js.map +1 -0
  140. package/_cjs/core/utils-p/decrypt/{verifyKmsUserDecryptEip712.js → verifyKmsUserDecryptEip712V1.js} +5 -5
  141. package/_cjs/core/utils-p/decrypt/verifyKmsUserDecryptEip712V1.js.map +1 -0
  142. package/_cjs/core/utils-p/decrypt/verifyKmsUserDecryptEip712V2.js +30 -0
  143. package/_cjs/core/utils-p/decrypt/verifyKmsUserDecryptEip712V2.js.map +1 -0
  144. package/_cjs/ethers/internal/ethereum-ct.js +11 -0
  145. package/_cjs/ethers/internal/ethereum-ct.js.map +1 -1
  146. package/_cjs/ethers/internal/runtime-ct.js +9 -7
  147. package/_cjs/ethers/internal/runtime-ct.js.map +1 -1
  148. package/_cjs/viem/internal/ethereum-ct.js +8 -0
  149. package/_cjs/viem/internal/ethereum-ct.js.map +1 -1
  150. package/_cjs/viem/internal/runtime-ct.js +9 -7
  151. package/_cjs/viem/internal/runtime-ct.js.map +1 -1
  152. package/_cjs/wasm/tfhe/loadTfheLib.js.map +1 -1
  153. package/_cjs/wasm/tkms/loadKmsLib.js.map +1 -1
  154. package/_esm/core/_version.js +1 -1
  155. package/_esm/core/actions/base/index.js +0 -8
  156. package/_esm/core/actions/base/index.js.map +1 -1
  157. package/_esm/core/actions/base/signDecryptionPermit.js +0 -6
  158. package/_esm/core/actions/base/signDecryptionPermit.js.map +1 -1
  159. package/_esm/core/actions/chain/index.js +0 -6
  160. package/_esm/core/actions/chain/index.js.map +1 -1
  161. package/_esm/core/actions/chain/parseSignedDecryptionPermit.js.map +1 -1
  162. package/_esm/core/actions/chain/serializeSignedDecryptionPermit.js.map +1 -1
  163. package/_esm/core/actions/decrypt/canDecryptValue.js +40 -0
  164. package/_esm/core/actions/decrypt/canDecryptValue.js.map +1 -1
  165. package/_esm/core/actions/decrypt/canDecryptValues.js +1 -0
  166. package/_esm/core/actions/decrypt/canDecryptValues.js.map +1 -1
  167. package/_esm/core/actions/decrypt/canDecryptValuesFromPairs.js +1 -0
  168. package/_esm/core/actions/decrypt/canDecryptValuesFromPairs.js.map +1 -1
  169. package/_esm/core/actions/decrypt/decryptValue.js +1 -0
  170. package/_esm/core/actions/decrypt/decryptValue.js.map +1 -1
  171. package/_esm/core/actions/decrypt/decryptValues.js +2 -0
  172. package/_esm/core/actions/decrypt/decryptValues.js.map +1 -1
  173. package/_esm/core/actions/decrypt/decryptValuesFromPairs.js +2 -0
  174. package/_esm/core/actions/decrypt/decryptValuesFromPairs.js.map +1 -1
  175. package/_esm/core/actions/decrypt/index.js +0 -1
  176. package/_esm/core/actions/decrypt/index.js.map +1 -1
  177. package/_esm/core/actions/encrypt/encryptValue.js +2 -1
  178. package/_esm/core/actions/encrypt/encryptValue.js.map +1 -1
  179. package/_esm/core/actions/encrypt/encryptValues.js +2 -1
  180. package/_esm/core/actions/encrypt/encryptValues.js.map +1 -1
  181. package/_esm/core/actions/encrypt/generateZkProof.js +2 -1
  182. package/_esm/core/actions/encrypt/generateZkProof.js.map +1 -1
  183. package/_esm/core/actions/host/index.js +0 -4
  184. package/_esm/core/actions/host/index.js.map +1 -1
  185. package/_esm/core/actions/host/readKmsVerifierContractData.js +2 -2
  186. package/_esm/core/actions/host/readKmsVerifierContractData.js.map +1 -1
  187. package/_esm/core/base/cachedFetch.js +1 -0
  188. package/_esm/core/base/cachedFetch.js.map +1 -1
  189. package/_esm/core/base/uint.js +7 -0
  190. package/_esm/core/base/uint.js.map +1 -1
  191. package/_esm/core/clients/decorators/base.js +2 -4
  192. package/_esm/core/clients/decorators/base.js.map +1 -1
  193. package/_esm/core/coprocessor/coprocessorEip712Types.js +2 -2
  194. package/_esm/core/handle/FheType.js +10 -0
  195. package/_esm/core/handle/FheType.js.map +1 -1
  196. package/_esm/core/host-contracts/HostContractVersion-p.js +6 -0
  197. package/_esm/core/host-contracts/HostContractVersion-p.js.map +1 -1
  198. package/_esm/core/host-contracts/KmsSignersContext-p.js +16 -25
  199. package/_esm/core/host-contracts/KmsSignersContext-p.js.map +1 -1
  200. package/_esm/core/host-contracts/canDecryptValuesFromPairs.js +5 -2
  201. package/_esm/core/host-contracts/canDecryptValuesFromPairs.js.map +1 -1
  202. package/_esm/core/host-contracts/getCoprocessorContextSignersAndThreshold-p.js +2 -2
  203. package/_esm/core/host-contracts/getCoprocessorContextSignersAndThreshold-p.js.map +1 -1
  204. package/_esm/core/host-contracts/getCurrentKmsContextAndEpoch-p.js +2 -2
  205. package/_esm/core/host-contracts/getCurrentKmsContextAndEpoch-p.js.map +1 -1
  206. package/_esm/core/host-contracts/getCurrentKmsContextId-p.js +2 -2
  207. package/_esm/core/host-contracts/getCurrentKmsContextId-p.js.map +1 -1
  208. package/_esm/core/host-contracts/getKmsContextSignersAndThreshold-p.js +2 -2
  209. package/_esm/core/host-contracts/getKmsContextSignersAndThreshold-p.js.map +1 -1
  210. package/_esm/core/host-contracts/getKmsContextSignersAndThresholdFromExtraData-p.js +6 -5
  211. package/_esm/core/host-contracts/getKmsContextSignersAndThresholdFromExtraData-p.js.map +1 -1
  212. package/_esm/core/host-contracts/readKmsSignersContext-p.js +132 -68
  213. package/_esm/core/host-contracts/readKmsSignersContext-p.js.map +1 -1
  214. package/_esm/core/kms/KmsSigncryptedShares-p.js +70 -4
  215. package/_esm/core/kms/KmsSigncryptedShares-p.js.map +1 -1
  216. package/_esm/core/kms/PublicDecryptionProof-p.js +8 -7
  217. package/_esm/core/kms/PublicDecryptionProof-p.js.map +1 -1
  218. package/_esm/core/kms/SignedDecryptionPermit-p.js +48 -245
  219. package/_esm/core/kms/SignedDecryptionPermit-p.js.map +1 -1
  220. package/_esm/core/kms/SignedDecryptionPermitV1-p.js +228 -0
  221. package/_esm/core/kms/SignedDecryptionPermitV1-p.js.map +1 -0
  222. package/_esm/core/kms/SignedDecryptionPermitV2-p.js +192 -0
  223. package/_esm/core/kms/SignedDecryptionPermitV2-p.js.map +1 -0
  224. package/_esm/core/kms/{createKmsDelegatedUserDecryptEip712.js → createKmsDelegatedUserDecryptEip712V1.js} +11 -12
  225. package/_esm/core/kms/createKmsDelegatedUserDecryptEip712V1.js.map +1 -0
  226. package/_esm/core/kms/createKmsPublicDecryptEip712.js +1 -1
  227. package/_esm/core/kms/{createKmsUserDecryptEip712.js → createKmsUserDecryptEip712V1.js} +23 -22
  228. package/_esm/core/kms/createKmsUserDecryptEip712V1.js.map +1 -0
  229. package/_esm/core/kms/createKmsUserDecryptEip712V2.js +4 -5
  230. package/_esm/core/kms/createKmsUserDecryptEip712V2.js.map +1 -1
  231. package/_esm/core/kms/decryptValuesFromPairs.js +18 -2
  232. package/_esm/core/kms/decryptValuesFromPairs.js.map +1 -1
  233. package/_esm/core/kms/{fetchKmsSigncryptedShares-p.js → fetchKmsSigncryptedSharesV1-p.js} +49 -15
  234. package/_esm/core/kms/fetchKmsSigncryptedSharesV1-p.js.map +1 -0
  235. package/_esm/core/kms/fetchKmsSigncryptedSharesV2-p.js +119 -0
  236. package/_esm/core/kms/fetchKmsSigncryptedSharesV2-p.js.map +1 -0
  237. package/_esm/core/kms/{kmsDelegatedUserDecryptEip712Types.js → kmsDelegatedUserDecryptEip712V1Types.js} +9 -8
  238. package/_esm/core/kms/kmsDelegatedUserDecryptEip712V1Types.js.map +1 -0
  239. package/_esm/core/kms/kmsExtraData-p.js +298 -0
  240. package/_esm/core/kms/kmsExtraData-p.js.map +1 -0
  241. package/_esm/core/kms/kmsPublicDecryptEip712Types.js +1 -1
  242. package/_esm/core/kms/{kmsUserDecryptEip712Types.js → kmsUserDecryptEip712V1Types.js} +9 -8
  243. package/_esm/core/kms/kmsUserDecryptEip712V1Types.js.map +1 -0
  244. package/_esm/core/kms/kmsUserDecryptEip712V2Types.js +2 -1
  245. package/_esm/core/kms/kmsUserDecryptEip712V2Types.js.map +1 -1
  246. package/_esm/core/kms/publicDecrypt.js +6 -6
  247. package/_esm/core/kms/publicDecrypt.js.map +1 -1
  248. package/_esm/core/kms/utils.js +0 -18
  249. package/_esm/core/kms/utils.js.map +1 -1
  250. package/_esm/core/kms/verifyKmsPublicDecryptEip712-p.js +7 -6
  251. package/_esm/core/kms/verifyKmsPublicDecryptEip712-p.js.map +1 -1
  252. package/_esm/core/modules/decrypt/mock.js +6 -6
  253. package/_esm/core/modules/decrypt/mock.js.map +1 -1
  254. package/_esm/core/modules/decrypt/module/api-p.js +13 -13
  255. package/_esm/core/modules/decrypt/module/api-p.js.map +1 -1
  256. package/_esm/core/modules/decrypt/module/init-p.js +7 -7
  257. package/_esm/core/modules/decrypt/module/init-p.js.map +1 -1
  258. package/_esm/core/modules/encrypt/module/init-p.js +13 -11
  259. package/_esm/core/modules/encrypt/module/init-p.js.map +1 -1
  260. package/_esm/core/modules/relayer/cleartext/fetchCoprocessorSignatures.js +69 -12
  261. package/_esm/core/modules/relayer/cleartext/fetchCoprocessorSignatures.js.map +1 -1
  262. package/_esm/core/modules/relayer/cleartext/{fetchDelegatedUserDecrypt.js → fetchDelegatedUserDecryptV1.js} +76 -22
  263. package/_esm/core/modules/relayer/cleartext/fetchDelegatedUserDecryptV1.js.map +1 -0
  264. package/_esm/core/modules/relayer/cleartext/fetchPublicDecrypt.js +80 -7
  265. package/_esm/core/modules/relayer/cleartext/fetchPublicDecrypt.js.map +1 -1
  266. package/_esm/core/modules/relayer/cleartext/fetchUserDecrypt.js +13 -114
  267. package/_esm/core/modules/relayer/cleartext/fetchUserDecrypt.js.map +1 -1
  268. package/_esm/core/modules/relayer/cleartext/fetchUserDecryptV1.js +173 -0
  269. package/_esm/core/modules/relayer/cleartext/fetchUserDecryptV1.js.map +1 -0
  270. package/_esm/core/modules/relayer/cleartext/fetchUserDecryptV2.js +6 -0
  271. package/_esm/core/modules/relayer/cleartext/fetchUserDecryptV2.js.map +1 -0
  272. package/_esm/core/modules/relayer/cleartext/forgeFhevmV1.js +140 -0
  273. package/_esm/core/modules/relayer/cleartext/forgeFhevmV1.js.map +1 -0
  274. package/_esm/core/modules/relayer/cleartext/mock.js +1 -1
  275. package/_esm/core/modules/relayer/cleartext/mock.js.map +1 -1
  276. package/_esm/core/modules/relayer/cleartext/signers.js +26 -0
  277. package/_esm/core/modules/relayer/cleartext/signers.js.map +1 -1
  278. package/_esm/core/modules/relayer/module/{fetchDelegatedUserDecrypt.js → fetchDelegatedUserDecryptV1.js} +1 -1
  279. package/_esm/core/modules/relayer/module/fetchDelegatedUserDecryptV1.js.map +1 -0
  280. package/_esm/core/modules/relayer/module/fetchPublicDecrypt.js +1 -1
  281. package/_esm/core/modules/relayer/module/fetchUserDecrypt.js +11 -46
  282. package/_esm/core/modules/relayer/module/fetchUserDecrypt.js.map +1 -1
  283. package/_esm/core/modules/relayer/module/fetchUserDecryptV1.js +53 -0
  284. package/_esm/core/modules/relayer/module/fetchUserDecryptV1.js.map +1 -0
  285. package/_esm/core/modules/relayer/module/fetchUserDecryptV2.js +56 -0
  286. package/_esm/core/modules/relayer/module/fetchUserDecryptV2.js.map +1 -0
  287. package/_esm/core/modules/relayer/module/guards/RelayerResponseFailed.js +10 -2
  288. package/_esm/core/modules/relayer/module/guards/RelayerResponseFailed.js.map +1 -1
  289. package/_esm/core/modules/relayer/module/guards/api-errors/RelayerApiError400NoDetails.js +6 -3
  290. package/_esm/core/modules/relayer/module/guards/api-errors/RelayerApiError400NoDetails.js.map +1 -1
  291. package/_esm/core/modules/relayer/module/guards/api-errors/RelayerApiError503.js +2 -0
  292. package/_esm/core/modules/relayer/module/guards/api-errors/RelayerApiError503.js.map +1 -1
  293. package/_esm/core/modules/relayer/module/index.js +1 -1
  294. package/_esm/core/modules/relayer/module/index.js.map +1 -1
  295. package/_esm/core/runtime/HyperWasmSolver-p.js +1 -6
  296. package/_esm/core/runtime/HyperWasmSolver-p.js.map +1 -1
  297. package/_esm/core/utils-p/decrypt/{verifyKmsDelegatedUserDecryptEip712.js → verifyKmsDelegatedUserDecryptEip712V1.js} +5 -5
  298. package/_esm/core/utils-p/decrypt/verifyKmsDelegatedUserDecryptEip712V1.js.map +1 -0
  299. package/_esm/core/utils-p/decrypt/{verifyKmsUserDecryptEip712.js → verifyKmsUserDecryptEip712V1.js} +5 -5
  300. package/_esm/core/utils-p/decrypt/verifyKmsUserDecryptEip712V1.js.map +1 -0
  301. package/_esm/core/utils-p/decrypt/verifyKmsUserDecryptEip712V2.js +27 -0
  302. package/_esm/core/utils-p/decrypt/verifyKmsUserDecryptEip712V2.js.map +1 -0
  303. package/_esm/ethers/internal/ethereum-ct.js +12 -1
  304. package/_esm/ethers/internal/ethereum-ct.js.map +1 -1
  305. package/_esm/ethers/internal/runtime-ct.js +9 -7
  306. package/_esm/ethers/internal/runtime-ct.js.map +1 -1
  307. package/_esm/viem/internal/ethereum-ct.js +10 -2
  308. package/_esm/viem/internal/ethereum-ct.js.map +1 -1
  309. package/_esm/viem/internal/runtime-ct.js +9 -7
  310. package/_esm/viem/internal/runtime-ct.js.map +1 -1
  311. package/_types/core/actions/base/index.d.ts +0 -8
  312. package/_types/core/actions/base/index.d.ts.map +1 -1
  313. package/_types/core/actions/base/signDecryptionPermit.d.ts +4 -5
  314. package/_types/core/actions/base/signDecryptionPermit.d.ts.map +1 -1
  315. package/_types/core/actions/chain/index.d.ts +1 -7
  316. package/_types/core/actions/chain/index.d.ts.map +1 -1
  317. package/_types/core/actions/chain/parseSignedDecryptionPermit.d.ts +1 -0
  318. package/_types/core/actions/chain/parseSignedDecryptionPermit.d.ts.map +1 -1
  319. package/_types/core/actions/chain/serializeSignedDecryptionPermit.d.ts +3 -2
  320. package/_types/core/actions/chain/serializeSignedDecryptionPermit.d.ts.map +1 -1
  321. package/_types/core/actions/decrypt/canDecryptValue.d.ts +3 -4
  322. package/_types/core/actions/decrypt/canDecryptValue.d.ts.map +1 -1
  323. package/_types/core/actions/decrypt/canDecryptValues.d.ts +3 -4
  324. package/_types/core/actions/decrypt/canDecryptValues.d.ts.map +1 -1
  325. package/_types/core/actions/decrypt/canDecryptValuesFromPairs.d.ts +3 -4
  326. package/_types/core/actions/decrypt/canDecryptValuesFromPairs.d.ts.map +1 -1
  327. package/_types/core/actions/decrypt/decryptValue.d.ts.map +1 -1
  328. package/_types/core/actions/decrypt/decryptValues.d.ts.map +1 -1
  329. package/_types/core/actions/decrypt/decryptValuesFromPairs.d.ts.map +1 -1
  330. package/_types/core/actions/decrypt/index.d.ts +0 -1
  331. package/_types/core/actions/decrypt/index.d.ts.map +1 -1
  332. package/_types/core/actions/encrypt/encryptValue.d.ts.map +1 -1
  333. package/_types/core/actions/encrypt/encryptValues.d.ts.map +1 -1
  334. package/_types/core/actions/encrypt/generateZkProof.d.ts.map +1 -1
  335. package/_types/core/actions/host/index.d.ts +0 -4
  336. package/_types/core/actions/host/index.d.ts.map +1 -1
  337. package/_types/core/base/cachedFetch.d.ts +1 -0
  338. package/_types/core/base/cachedFetch.d.ts.map +1 -1
  339. package/_types/core/base/uint.d.ts +2 -1
  340. package/_types/core/base/uint.d.ts.map +1 -1
  341. package/_types/core/clients/decorators/base.d.ts +12 -23
  342. package/_types/core/clients/decorators/base.d.ts.map +1 -1
  343. package/_types/core/handle/FheType.d.ts +8 -0
  344. package/_types/core/handle/FheType.d.ts.map +1 -1
  345. package/_types/core/host-contracts/HostContractVersion-p.d.ts +8 -0
  346. package/_types/core/host-contracts/HostContractVersion-p.d.ts.map +1 -1
  347. package/_types/core/host-contracts/KmsSignersContext-p.d.ts +3 -2
  348. package/_types/core/host-contracts/KmsSignersContext-p.d.ts.map +1 -1
  349. package/_types/core/host-contracts/canDecryptValuesFromPairs.d.ts +2 -2
  350. package/_types/core/host-contracts/canDecryptValuesFromPairs.d.ts.map +1 -1
  351. package/_types/core/host-contracts/getKmsContextSignersAndThresholdFromExtraData-p.d.ts +3 -2
  352. package/_types/core/host-contracts/getKmsContextSignersAndThresholdFromExtraData-p.d.ts.map +1 -1
  353. package/_types/core/host-contracts/readKmsSignersContext-p.d.ts +43 -26
  354. package/_types/core/host-contracts/readKmsSignersContext-p.d.ts.map +1 -1
  355. package/_types/core/kms/KmsSigncryptedShares-p.d.ts +18 -0
  356. package/_types/core/kms/KmsSigncryptedShares-p.d.ts.map +1 -1
  357. package/_types/core/kms/PublicDecryptionProof-p.d.ts +1 -1
  358. package/_types/core/kms/PublicDecryptionProof-p.d.ts.map +1 -1
  359. package/_types/core/kms/SignedDecryptionPermit-p.d.ts +15 -29
  360. package/_types/core/kms/SignedDecryptionPermit-p.d.ts.map +1 -1
  361. package/_types/core/kms/SignedDecryptionPermitV1-p.d.ts +7 -0
  362. package/_types/core/kms/SignedDecryptionPermitV1-p.d.ts.map +1 -0
  363. package/_types/core/kms/SignedDecryptionPermitV2-p.d.ts +7 -0
  364. package/_types/core/kms/SignedDecryptionPermitV2-p.d.ts.map +1 -0
  365. package/_types/core/kms/createKmsDelegatedUserDecryptEip712V1.d.ts +16 -0
  366. package/_types/core/kms/createKmsDelegatedUserDecryptEip712V1.d.ts.map +1 -0
  367. package/_types/core/kms/createKmsUserDecryptEip712V1.d.ts +27 -0
  368. package/_types/core/kms/createKmsUserDecryptEip712V1.d.ts.map +1 -0
  369. package/_types/core/kms/createKmsUserDecryptEip712V2.d.ts +3 -2
  370. package/_types/core/kms/createKmsUserDecryptEip712V2.d.ts.map +1 -1
  371. package/_types/core/kms/decryptValuesFromPairs.d.ts +4 -11
  372. package/_types/core/kms/decryptValuesFromPairs.d.ts.map +1 -1
  373. package/_types/core/kms/{fetchKmsSigncryptedShares-p.d.ts → fetchKmsSigncryptedSharesV1-p.d.ts} +10 -12
  374. package/_types/core/kms/fetchKmsSigncryptedSharesV1-p.d.ts.map +1 -0
  375. package/_types/core/kms/fetchKmsSigncryptedSharesV2-p.d.ts +28 -0
  376. package/_types/core/kms/fetchKmsSigncryptedSharesV2-p.d.ts.map +1 -0
  377. package/_types/core/kms/kmsDelegatedUserDecryptEip712V1Types.d.ts +3 -0
  378. package/_types/core/kms/kmsDelegatedUserDecryptEip712V1Types.d.ts.map +1 -0
  379. package/_types/core/kms/kmsExtraData-p.d.ts +66 -0
  380. package/_types/core/kms/kmsExtraData-p.d.ts.map +1 -0
  381. package/_types/core/kms/kmsUserDecryptEip712V1Types.d.ts +3 -0
  382. package/_types/core/kms/kmsUserDecryptEip712V1Types.d.ts.map +1 -0
  383. package/_types/core/kms/kmsUserDecryptEip712V2Types.d.ts.map +1 -1
  384. package/_types/core/kms/publicDecrypt.d.ts.map +1 -1
  385. package/_types/core/kms/utils.d.ts +0 -4
  386. package/_types/core/kms/utils.d.ts.map +1 -1
  387. package/_types/core/kms/verifyKmsPublicDecryptEip712-p.d.ts +1 -1
  388. package/_types/core/kms/verifyKmsPublicDecryptEip712-p.d.ts.map +1 -1
  389. package/_types/core/modules/encrypt/module/init-p.d.ts.map +1 -1
  390. package/_types/core/modules/ethereum/types-ct.d.ts +20 -2
  391. package/_types/core/modules/ethereum/types-ct.d.ts.map +1 -1
  392. package/_types/core/modules/relayer/cleartext/fetchCoprocessorSignatures.d.ts.map +1 -1
  393. package/_types/core/modules/relayer/cleartext/{fetchDelegatedUserDecrypt.d.ts → fetchDelegatedUserDecryptV1.d.ts} +1 -1
  394. package/_types/core/modules/relayer/cleartext/fetchDelegatedUserDecryptV1.d.ts.map +1 -0
  395. package/_types/core/modules/relayer/cleartext/fetchPublicDecrypt.d.ts.map +1 -1
  396. package/_types/core/modules/relayer/cleartext/fetchUserDecrypt.d.ts.map +1 -1
  397. package/_types/core/modules/relayer/cleartext/fetchUserDecryptV1.d.ts +3 -0
  398. package/_types/core/modules/relayer/cleartext/fetchUserDecryptV1.d.ts.map +1 -0
  399. package/_types/core/modules/relayer/cleartext/fetchUserDecryptV2.d.ts +3 -0
  400. package/_types/core/modules/relayer/cleartext/fetchUserDecryptV2.d.ts.map +1 -0
  401. package/_types/core/modules/relayer/cleartext/forgeFhevmV1.d.ts +29 -0
  402. package/_types/core/modules/relayer/cleartext/forgeFhevmV1.d.ts.map +1 -0
  403. package/_types/core/modules/relayer/cleartext/signers.d.ts +1 -0
  404. package/_types/core/modules/relayer/cleartext/signers.d.ts.map +1 -1
  405. package/_types/core/modules/relayer/module/{fetchDelegatedUserDecrypt.d.ts → fetchDelegatedUserDecryptV1.d.ts} +1 -1
  406. package/_types/core/modules/relayer/module/fetchDelegatedUserDecryptV1.d.ts.map +1 -0
  407. package/_types/core/modules/relayer/module/fetchUserDecrypt.d.ts.map +1 -1
  408. package/_types/core/modules/relayer/module/fetchUserDecryptV1.d.ts +3 -0
  409. package/_types/core/modules/relayer/module/fetchUserDecryptV1.d.ts.map +1 -0
  410. package/_types/core/modules/relayer/module/fetchUserDecryptV2.d.ts +3 -0
  411. package/_types/core/modules/relayer/module/fetchUserDecryptV2.d.ts.map +1 -0
  412. package/_types/core/modules/relayer/module/guards/RelayerResponseFailed.d.ts.map +1 -1
  413. package/_types/core/modules/relayer/module/guards/api-errors/RelayerApiError400NoDetails.d.ts +1 -1
  414. package/_types/core/modules/relayer/module/guards/api-errors/RelayerApiError400NoDetails.d.ts.map +1 -1
  415. package/_types/core/modules/relayer/module/guards/api-errors/RelayerApiError503.d.ts.map +1 -1
  416. package/_types/core/modules/relayer/types.d.ts +18 -5
  417. package/_types/core/modules/relayer/types.d.ts.map +1 -1
  418. package/_types/core/types/kms-p.d.ts +7 -1
  419. package/_types/core/types/kms-p.d.ts.map +1 -1
  420. package/_types/core/types/kms.d.ts +18 -19
  421. package/_types/core/types/kms.d.ts.map +1 -1
  422. package/_types/core/types/logger.d.ts +3 -3
  423. package/_types/core/types/logger.d.ts.map +1 -1
  424. package/_types/core/types/record-p.d.ts +2 -1
  425. package/_types/core/types/record-p.d.ts.map +1 -1
  426. package/_types/core/types/relayer-p.d.ts +27 -5
  427. package/_types/core/types/relayer-p.d.ts.map +1 -1
  428. package/_types/core/types/signedDecryptionPermit.d.ts +37 -26
  429. package/_types/core/types/signedDecryptionPermit.d.ts.map +1 -1
  430. package/_types/core/utils-p/decrypt/verifyKmsDelegatedUserDecryptEip712V1.d.ts +14 -0
  431. package/_types/core/utils-p/decrypt/verifyKmsDelegatedUserDecryptEip712V1.d.ts.map +1 -0
  432. package/_types/core/utils-p/decrypt/verifyKmsUserDecryptEip712V1.d.ts +14 -0
  433. package/_types/core/utils-p/decrypt/verifyKmsUserDecryptEip712V1.d.ts.map +1 -0
  434. package/_types/core/utils-p/decrypt/verifyKmsUserDecryptEip712V2.d.ts +14 -0
  435. package/_types/core/utils-p/decrypt/verifyKmsUserDecryptEip712V2.d.ts.map +1 -0
  436. package/_types/core/utils-p/runtime/recoverSigners.d.ts +2 -2
  437. package/_types/ethers/internal/ethereum-ct.d.ts.map +1 -1
  438. package/_types/ethers/internal/runtime-ct.d.ts.map +1 -1
  439. package/_types/viem/internal/ethereum-ct.d.ts.map +1 -1
  440. package/_types/viem/internal/runtime-ct.d.ts.map +1 -1
  441. package/core/_version.ts +1 -1
  442. package/core/actions/base/index.ts +0 -42
  443. package/core/actions/base/signDecryptionPermit.ts +3 -31
  444. package/core/actions/chain/index.ts +0 -28
  445. package/core/actions/chain/parseSignedDecryptionPermit.ts +1 -0
  446. package/core/actions/chain/serializeSignedDecryptionPermit.ts +3 -2
  447. package/core/actions/decrypt/canDecryptValue.ts +2 -16
  448. package/core/actions/decrypt/canDecryptValues.ts +2 -16
  449. package/core/actions/decrypt/canDecryptValuesFromPairs.ts +2 -16
  450. package/core/actions/decrypt/decryptValue.ts +2 -1
  451. package/core/actions/decrypt/decryptValues.ts +3 -1
  452. package/core/actions/decrypt/decryptValuesFromPairs.ts +3 -1
  453. package/core/actions/decrypt/index.ts +0 -6
  454. package/core/actions/encrypt/encryptValue.ts +4 -1
  455. package/core/actions/encrypt/encryptValues.ts +5 -1
  456. package/core/actions/encrypt/generateZkProof.ts +2 -1
  457. package/core/actions/host/index.ts +0 -20
  458. package/core/actions/host/readKmsVerifierContractData.ts +2 -2
  459. package/core/base/cachedFetch.ts +1 -0
  460. package/core/base/uint.ts +18 -1
  461. package/core/clients/decorators/base.ts +13 -37
  462. package/core/coprocessor/coprocessorEip712Types.ts +2 -2
  463. package/core/handle/FheType.ts +11 -0
  464. package/core/host-contracts/HostContractVersion-p.ts +12 -0
  465. package/core/host-contracts/KmsSignersContext-p.ts +29 -36
  466. package/core/host-contracts/canDecryptValuesFromPairs.ts +7 -7
  467. package/core/host-contracts/getCoprocessorContextSignersAndThreshold-p.ts +2 -2
  468. package/core/host-contracts/getCurrentKmsContextAndEpoch-p.ts +2 -2
  469. package/core/host-contracts/getCurrentKmsContextId-p.ts +2 -2
  470. package/core/host-contracts/getKmsContextSignersAndThreshold-p.ts +3 -2
  471. package/core/host-contracts/getKmsContextSignersAndThresholdFromExtraData-p.ts +10 -7
  472. package/core/host-contracts/readKmsSignersContext-p.ts +156 -115
  473. package/core/kms/KmsSigncryptedShares-p.ts +87 -4
  474. package/core/kms/PublicDecryptionProof-p.ts +11 -9
  475. package/core/kms/SignedDecryptionPermit-p.ts +67 -357
  476. package/core/kms/SignedDecryptionPermitV1-p.ts +308 -0
  477. package/core/kms/SignedDecryptionPermitV2-p.ts +275 -0
  478. package/core/kms/{createKmsDelegatedUserDecryptEip712.ts → createKmsDelegatedUserDecryptEip712V1.ts} +21 -21
  479. package/core/kms/createKmsPublicDecryptEip712.ts +1 -1
  480. package/core/kms/{createKmsUserDecryptEip712.ts → createKmsUserDecryptEip712V1.ts} +35 -31
  481. package/core/kms/createKmsUserDecryptEip712V2.ts +7 -7
  482. package/core/kms/decryptValuesFromPairs.ts +34 -22
  483. package/core/kms/{fetchKmsSigncryptedShares-p.ts → fetchKmsSigncryptedSharesV1-p.ts} +62 -45
  484. package/core/kms/fetchKmsSigncryptedSharesV2-p.ts +176 -0
  485. package/core/kms/{kmsDelegatedUserDecryptEip712Types.ts → kmsDelegatedUserDecryptEip712V1Types.ts} +9 -8
  486. package/core/kms/kmsExtraData-p.ts +374 -0
  487. package/core/kms/kmsPublicDecryptEip712Types.ts +1 -1
  488. package/core/kms/{kmsUserDecryptEip712Types.ts → kmsUserDecryptEip712V1Types.ts} +9 -8
  489. package/core/kms/kmsUserDecryptEip712V2Types.ts +2 -1
  490. package/core/kms/publicDecrypt.ts +10 -9
  491. package/core/kms/utils.ts +0 -32
  492. package/core/kms/verifyKmsPublicDecryptEip712-p.ts +10 -8
  493. package/core/modules/decrypt/mock.ts +6 -6
  494. package/core/modules/decrypt/module/api-p.ts +15 -15
  495. package/core/modules/decrypt/module/init-p.ts +7 -7
  496. package/core/modules/encrypt/module/init-p.ts +16 -11
  497. package/core/modules/ethereum/types-ct.ts +25 -2
  498. package/core/modules/relayer/cleartext/fetchCoprocessorSignatures.ts +98 -15
  499. package/core/modules/relayer/cleartext/{fetchDelegatedUserDecrypt.ts → fetchDelegatedUserDecryptV1.ts} +115 -27
  500. package/core/modules/relayer/cleartext/fetchPublicDecrypt.ts +115 -9
  501. package/core/modules/relayer/cleartext/fetchUserDecrypt.ts +23 -131
  502. package/core/modules/relayer/cleartext/fetchUserDecryptV1.ts +229 -0
  503. package/core/modules/relayer/cleartext/fetchUserDecryptV2.ts +11 -0
  504. package/core/modules/relayer/cleartext/forgeFhevmV1.ts +185 -0
  505. package/core/modules/relayer/cleartext/mock.ts +1 -1
  506. package/core/modules/relayer/cleartext/signers.ts +35 -0
  507. package/core/modules/relayer/module/fetchPublicDecrypt.ts +1 -1
  508. package/core/modules/relayer/module/fetchUserDecrypt.ts +20 -56
  509. package/core/modules/relayer/module/fetchUserDecryptV1.ts +69 -0
  510. package/core/modules/relayer/module/fetchUserDecryptV2.ts +71 -0
  511. package/core/modules/relayer/module/guards/RelayerResponseFailed.ts +10 -2
  512. package/core/modules/relayer/module/guards/api-errors/RelayerApiError400NoDetails.ts +6 -3
  513. package/core/modules/relayer/module/guards/api-errors/RelayerApiError503.ts +2 -0
  514. package/core/modules/relayer/module/index.ts +1 -1
  515. package/core/modules/relayer/types.ts +24 -5
  516. package/core/runtime/HyperWasmSolver-p.ts +1 -5
  517. package/core/types/kms-p.ts +16 -1
  518. package/core/types/kms.ts +40 -28
  519. package/core/types/logger.ts +3 -3
  520. package/core/types/record-p.ts +2 -1
  521. package/core/types/relayer-p.ts +48 -5
  522. package/core/types/signedDecryptionPermit.ts +47 -26
  523. package/core/utils-p/decrypt/{verifyKmsDelegatedUserDecryptEip712.ts → verifyKmsDelegatedUserDecryptEip712V1.ts} +9 -9
  524. package/core/utils-p/decrypt/{verifyKmsUserDecryptEip712.ts → verifyKmsUserDecryptEip712V1.ts} +9 -9
  525. package/core/utils-p/decrypt/verifyKmsUserDecryptEip712V2.ts +43 -0
  526. package/core/utils-p/runtime/recoverSigners.ts +2 -2
  527. package/ethers/internal/ethereum-ct.ts +15 -1
  528. package/ethers/internal/runtime-ct.ts +9 -7
  529. package/package.json +1 -1
  530. package/viem/internal/ethereum-ct.ts +14 -2
  531. package/viem/internal/runtime-ct.ts +9 -7
  532. package/_cjs/core/actions/base/createVerifiedInputProofFromRawBytes.js +0 -10
  533. package/_cjs/core/actions/base/createVerifiedInputProofFromRawBytes.js.map +0 -1
  534. package/_cjs/core/actions/base/fetchKmsSigncryptedShares.js +0 -19
  535. package/_cjs/core/actions/base/fetchKmsSigncryptedShares.js.map +0 -1
  536. package/_cjs/core/actions/base/fetchVerifiedInputProof.js +0 -11
  537. package/_cjs/core/actions/base/fetchVerifiedInputProof.js.map +0 -1
  538. package/_cjs/core/actions/base/readKmsSignersContext.js +0 -11
  539. package/_cjs/core/actions/base/readKmsSignersContext.js.map +0 -1
  540. package/_cjs/core/actions/base/verifyHandlesCoprocessorSignatures.js +0 -31
  541. package/_cjs/core/actions/base/verifyHandlesCoprocessorSignatures.js.map +0 -1
  542. package/_cjs/core/actions/base/verifyInputProof.js +0 -24
  543. package/_cjs/core/actions/base/verifyInputProof.js.map +0 -1
  544. package/_cjs/core/actions/base/verifyZkProofCoprocessorSignatures.js +0 -17
  545. package/_cjs/core/actions/base/verifyZkProofCoprocessorSignatures.js.map +0 -1
  546. package/_cjs/core/actions/chain/createCoprocessorEip712Domain.js +0 -11
  547. package/_cjs/core/actions/chain/createCoprocessorEip712Domain.js.map +0 -1
  548. package/_cjs/core/actions/chain/createKmsDelegatedUserDecryptEip712.js +0 -17
  549. package/_cjs/core/actions/chain/createKmsDelegatedUserDecryptEip712.js.map +0 -1
  550. package/_cjs/core/actions/chain/createKmsEip712Domain.js +0 -11
  551. package/_cjs/core/actions/chain/createKmsEip712Domain.js.map +0 -1
  552. package/_cjs/core/actions/chain/createKmsUserDecryptEip712.js +0 -16
  553. package/_cjs/core/actions/chain/createKmsUserDecryptEip712.js.map +0 -1
  554. package/_cjs/core/actions/chain/verifyKmsDelegatedUserDecryptEip712.js +0 -8
  555. package/_cjs/core/actions/chain/verifyKmsDelegatedUserDecryptEip712.js.map +0 -1
  556. package/_cjs/core/actions/chain/verifyKmsUserDecryptEip712.js +0 -8
  557. package/_cjs/core/actions/chain/verifyKmsUserDecryptEip712.js.map +0 -1
  558. package/_cjs/core/actions/decrypt/decryptKmsSigncryptedShares.js +0 -13
  559. package/_cjs/core/actions/decrypt/decryptKmsSigncryptedShares.js.map +0 -1
  560. package/_cjs/core/kms/createKmsDelegatedUserDecryptEip712.js.map +0 -1
  561. package/_cjs/core/kms/createKmsUserDecryptEip712.js.map +0 -1
  562. package/_cjs/core/kms/fetchKmsSigncryptedShares-p.js.map +0 -1
  563. package/_cjs/core/kms/kmsDelegatedUserDecryptEip712Types.js.map +0 -1
  564. package/_cjs/core/kms/kmsExtraData.js +0 -82
  565. package/_cjs/core/kms/kmsExtraData.js.map +0 -1
  566. package/_cjs/core/kms/kmsUserDecryptEip712Types.js.map +0 -1
  567. package/_cjs/core/modules/relayer/cleartext/fetchDelegatedUserDecrypt.js.map +0 -1
  568. package/_cjs/core/modules/relayer/module/fetchDelegatedUserDecrypt.js.map +0 -1
  569. package/_cjs/core/utils-p/decrypt/verifyKmsDelegatedUserDecryptEip712.js.map +0 -1
  570. package/_cjs/core/utils-p/decrypt/verifyKmsUserDecryptEip712.js.map +0 -1
  571. package/_esm/core/actions/base/createVerifiedInputProofFromRawBytes.js +0 -7
  572. package/_esm/core/actions/base/createVerifiedInputProofFromRawBytes.js.map +0 -1
  573. package/_esm/core/actions/base/fetchKmsSigncryptedShares.js +0 -17
  574. package/_esm/core/actions/base/fetchKmsSigncryptedShares.js.map +0 -1
  575. package/_esm/core/actions/base/fetchVerifiedInputProof.js +0 -8
  576. package/_esm/core/actions/base/fetchVerifiedInputProof.js.map +0 -1
  577. package/_esm/core/actions/base/readKmsSignersContext.js +0 -10
  578. package/_esm/core/actions/base/readKmsSignersContext.js.map +0 -1
  579. package/_esm/core/actions/base/verifyHandlesCoprocessorSignatures.js +0 -35
  580. package/_esm/core/actions/base/verifyHandlesCoprocessorSignatures.js.map +0 -1
  581. package/_esm/core/actions/base/verifyInputProof.js +0 -22
  582. package/_esm/core/actions/base/verifyInputProof.js.map +0 -1
  583. package/_esm/core/actions/base/verifyZkProofCoprocessorSignatures.js +0 -14
  584. package/_esm/core/actions/base/verifyZkProofCoprocessorSignatures.js.map +0 -1
  585. package/_esm/core/actions/chain/createCoprocessorEip712Domain.js +0 -8
  586. package/_esm/core/actions/chain/createCoprocessorEip712Domain.js.map +0 -1
  587. package/_esm/core/actions/chain/createKmsDelegatedUserDecryptEip712.js +0 -15
  588. package/_esm/core/actions/chain/createKmsDelegatedUserDecryptEip712.js.map +0 -1
  589. package/_esm/core/actions/chain/createKmsEip712Domain.js +0 -8
  590. package/_esm/core/actions/chain/createKmsEip712Domain.js.map +0 -1
  591. package/_esm/core/actions/chain/createKmsUserDecryptEip712.js +0 -14
  592. package/_esm/core/actions/chain/createKmsUserDecryptEip712.js.map +0 -1
  593. package/_esm/core/actions/chain/verifyKmsDelegatedUserDecryptEip712.js +0 -5
  594. package/_esm/core/actions/chain/verifyKmsDelegatedUserDecryptEip712.js.map +0 -1
  595. package/_esm/core/actions/chain/verifyKmsUserDecryptEip712.js +0 -5
  596. package/_esm/core/actions/chain/verifyKmsUserDecryptEip712.js.map +0 -1
  597. package/_esm/core/actions/decrypt/decryptKmsSigncryptedShares.js +0 -11
  598. package/_esm/core/actions/decrypt/decryptKmsSigncryptedShares.js.map +0 -1
  599. package/_esm/core/kms/createKmsDelegatedUserDecryptEip712.js.map +0 -1
  600. package/_esm/core/kms/createKmsUserDecryptEip712.js.map +0 -1
  601. package/_esm/core/kms/fetchKmsSigncryptedShares-p.js.map +0 -1
  602. package/_esm/core/kms/kmsDelegatedUserDecryptEip712Types.js.map +0 -1
  603. package/_esm/core/kms/kmsExtraData.js +0 -99
  604. package/_esm/core/kms/kmsExtraData.js.map +0 -1
  605. package/_esm/core/kms/kmsUserDecryptEip712Types.js.map +0 -1
  606. package/_esm/core/modules/relayer/cleartext/fetchDelegatedUserDecrypt.js.map +0 -1
  607. package/_esm/core/modules/relayer/module/fetchDelegatedUserDecrypt.js.map +0 -1
  608. package/_esm/core/utils-p/decrypt/verifyKmsDelegatedUserDecryptEip712.js.map +0 -1
  609. package/_esm/core/utils-p/decrypt/verifyKmsUserDecryptEip712.js.map +0 -1
  610. package/_types/core/actions/base/createVerifiedInputProofFromRawBytes.d.ts +0 -14
  611. package/_types/core/actions/base/createVerifiedInputProofFromRawBytes.d.ts.map +0 -1
  612. package/_types/core/actions/base/fetchKmsSigncryptedShares.d.ts +0 -41
  613. package/_types/core/actions/base/fetchKmsSigncryptedShares.d.ts.map +0 -1
  614. package/_types/core/actions/base/fetchVerifiedInputProof.d.ts +0 -14
  615. package/_types/core/actions/base/fetchVerifiedInputProof.d.ts.map +0 -1
  616. package/_types/core/actions/base/readKmsSignersContext.d.ts +0 -6
  617. package/_types/core/actions/base/readKmsSignersContext.d.ts.map +0 -1
  618. package/_types/core/actions/base/verifyHandlesCoprocessorSignatures.d.ts +0 -14
  619. package/_types/core/actions/base/verifyHandlesCoprocessorSignatures.d.ts.map +0 -1
  620. package/_types/core/actions/base/verifyInputProof.d.ts +0 -14
  621. package/_types/core/actions/base/verifyInputProof.d.ts.map +0 -1
  622. package/_types/core/actions/base/verifyZkProofCoprocessorSignatures.d.ts +0 -11
  623. package/_types/core/actions/base/verifyZkProofCoprocessorSignatures.d.ts.map +0 -1
  624. package/_types/core/actions/chain/createCoprocessorEip712Domain.d.ts +0 -7
  625. package/_types/core/actions/chain/createCoprocessorEip712Domain.d.ts.map +0 -1
  626. package/_types/core/actions/chain/createKmsDelegatedUserDecryptEip712.d.ts +0 -15
  627. package/_types/core/actions/chain/createKmsDelegatedUserDecryptEip712.d.ts.map +0 -1
  628. package/_types/core/actions/chain/createKmsEip712Domain.d.ts +0 -7
  629. package/_types/core/actions/chain/createKmsEip712Domain.d.ts.map +0 -1
  630. package/_types/core/actions/chain/createKmsUserDecryptEip712.d.ts +0 -14
  631. package/_types/core/actions/chain/createKmsUserDecryptEip712.d.ts.map +0 -1
  632. package/_types/core/actions/chain/verifyKmsDelegatedUserDecryptEip712.d.ts +0 -7
  633. package/_types/core/actions/chain/verifyKmsDelegatedUserDecryptEip712.d.ts.map +0 -1
  634. package/_types/core/actions/chain/verifyKmsUserDecryptEip712.d.ts +0 -7
  635. package/_types/core/actions/chain/verifyKmsUserDecryptEip712.d.ts.map +0 -1
  636. package/_types/core/actions/decrypt/decryptKmsSigncryptedShares.d.ts +0 -13
  637. package/_types/core/actions/decrypt/decryptKmsSigncryptedShares.d.ts.map +0 -1
  638. package/_types/core/kms/createKmsDelegatedUserDecryptEip712.d.ts +0 -15
  639. package/_types/core/kms/createKmsDelegatedUserDecryptEip712.d.ts.map +0 -1
  640. package/_types/core/kms/createKmsUserDecryptEip712.d.ts +0 -26
  641. package/_types/core/kms/createKmsUserDecryptEip712.d.ts.map +0 -1
  642. package/_types/core/kms/fetchKmsSigncryptedShares-p.d.ts.map +0 -1
  643. package/_types/core/kms/kmsDelegatedUserDecryptEip712Types.d.ts +0 -3
  644. package/_types/core/kms/kmsDelegatedUserDecryptEip712Types.d.ts.map +0 -1
  645. package/_types/core/kms/kmsExtraData.d.ts +0 -25
  646. package/_types/core/kms/kmsExtraData.d.ts.map +0 -1
  647. package/_types/core/kms/kmsUserDecryptEip712Types.d.ts +0 -3
  648. package/_types/core/kms/kmsUserDecryptEip712Types.d.ts.map +0 -1
  649. package/_types/core/modules/relayer/cleartext/fetchDelegatedUserDecrypt.d.ts.map +0 -1
  650. package/_types/core/modules/relayer/module/fetchDelegatedUserDecrypt.d.ts.map +0 -1
  651. package/_types/core/utils-p/decrypt/verifyKmsDelegatedUserDecryptEip712.d.ts +0 -14
  652. package/_types/core/utils-p/decrypt/verifyKmsDelegatedUserDecryptEip712.d.ts.map +0 -1
  653. package/_types/core/utils-p/decrypt/verifyKmsUserDecryptEip712.d.ts +0 -14
  654. package/_types/core/utils-p/decrypt/verifyKmsUserDecryptEip712.d.ts.map +0 -1
  655. package/core/actions/base/createVerifiedInputProofFromRawBytes.ts +0 -24
  656. package/core/actions/base/fetchKmsSigncryptedShares.ts +0 -83
  657. package/core/actions/base/fetchVerifiedInputProof.ts +0 -25
  658. package/core/actions/base/readKmsSignersContext.ts +0 -20
  659. package/core/actions/base/verifyHandlesCoprocessorSignatures.ts +0 -60
  660. package/core/actions/base/verifyInputProof.ts +0 -45
  661. package/core/actions/base/verifyZkProofCoprocessorSignatures.ts +0 -32
  662. package/core/actions/chain/createCoprocessorEip712Domain.ts +0 -16
  663. package/core/actions/chain/createKmsDelegatedUserDecryptEip712.ts +0 -36
  664. package/core/actions/chain/createKmsEip712Domain.ts +0 -16
  665. package/core/actions/chain/createKmsUserDecryptEip712.ts +0 -34
  666. package/core/actions/chain/verifyKmsDelegatedUserDecryptEip712.ts +0 -16
  667. package/core/actions/chain/verifyKmsUserDecryptEip712.ts +0 -16
  668. package/core/actions/decrypt/decryptKmsSigncryptedShares.ts +0 -34
  669. package/core/kms/kmsExtraData.ts +0 -127
  670. /package/core/modules/relayer/module/{fetchDelegatedUserDecrypt.ts → fetchDelegatedUserDecryptV1.ts} +0 -0
@@ -0,0 +1,71 @@
1
+ import type { KmsSigncryptedShare } from '../../../types/kms-p.js';
2
+ import type { FetchUserDecryptPayloadV2 } from '../../../types/relayer-p.js';
3
+ import type { FetchUserDecryptResult } from '../../../types/relayer.js';
4
+ import type { FetchUserDecryptParametersV2, FetchUserDecryptReturnType, RelayerClientWithRuntime } from '../types.js';
5
+ import { remove0x } from '../../../base/string.js';
6
+ import { RelayerAsyncRequest } from './RelayerAsyncRequest.js';
7
+ import { buildRelayerUrlString, validateRelayerBaseUrl } from './relayerUrl.js';
8
+
9
+ //////////////////////////////////////////////////////////////////////////////
10
+ // fetchUserDecryptV2 (protocol version >= 0.14.0)
11
+ //////////////////////////////////////////////////////////////////////////////
12
+
13
+ export async function fetchUserDecryptV2(
14
+ relayerClient: RelayerClientWithRuntime,
15
+ parameters: FetchUserDecryptParametersV2,
16
+ ): Promise<FetchUserDecryptReturnType> {
17
+ const { options, payload } = parameters;
18
+
19
+ const firstHandleContractPair = payload.handleContractPairs[0];
20
+ if (firstHandleContractPair === undefined) {
21
+ throw new Error('Empty handle contract pairs');
22
+ }
23
+
24
+ // V3 envelope: AttestedUserDecryptRequestJson
25
+ // publicKey and signature keep their 0x prefix (unlike the V1/V2 flat payload)
26
+ const relayerPayload: FetchUserDecryptPayloadV2 = {
27
+ attestationType: 'eip712-unified-user-decrypt-v1',
28
+ attestedPayload: {
29
+ version: '2.0',
30
+ type: 'user_decryption',
31
+ handles: payload.handleContractPairs.map((pair) => ({
32
+ ctHandle: pair.handle.bytes32Hex,
33
+ contractAddress: pair.contractAddress,
34
+ ownerAddress: pair.ownerAddress,
35
+ })),
36
+ userAddress: payload.kmsDecryptEip712Message.userAddress,
37
+ allowedContracts: payload.kmsDecryptEip712Message.allowedContracts,
38
+ requestValidity: {
39
+ startTimestamp: payload.kmsDecryptEip712Message.startTimestamp,
40
+ durationSeconds: payload.kmsDecryptEip712Message.durationSeconds,
41
+ },
42
+ publicKey: payload.kmsDecryptEip712Message.publicKey,
43
+ extraData: payload.kmsDecryptEip712Message.extraData,
44
+ },
45
+ signature: payload.kmsDecryptEip712Signature,
46
+ };
47
+
48
+ const hasAuth: boolean = options?.auth !== undefined;
49
+ const relayerBaseUrl: URL = validateRelayerBaseUrl(relayerClient.chain.fhevm.relayerUrl, hasAuth);
50
+ const url = buildRelayerUrlString(relayerBaseUrl, 'v3/user-decrypt');
51
+
52
+ const request = new RelayerAsyncRequest({
53
+ relayerOperation: 'USER_DECRYPT',
54
+ url,
55
+ payload: relayerPayload,
56
+ options,
57
+ });
58
+
59
+ const result = (await request.run()) as FetchUserDecryptResult;
60
+
61
+ const shares: KmsSigncryptedShare[] = result.map((r) => {
62
+ const share: KmsSigncryptedShare = {
63
+ signature: r.signature,
64
+ payload: r.payload,
65
+ extraData: remove0x(r.extraData),
66
+ };
67
+ return share;
68
+ });
69
+
70
+ return shares;
71
+ }
@@ -63,7 +63,8 @@ export function assertIsRelayerApiError(
63
63
  if (
64
64
  value.label === ('malformed_json' satisfies RelayerApiError400NoDetails['label']) ||
65
65
  value.label === ('request_error' satisfies RelayerApiError400NoDetails['label']) ||
66
- value.label === ('not_ready_for_decryption' satisfies RelayerApiError400NoDetails['label'])
66
+ value.label === ('not_ready_for_decryption' satisfies RelayerApiError400NoDetails['label']) ||
67
+ value.label === ('not_allowed_on_host_acl' satisfies RelayerApiError400NoDetails['label'])
67
68
  ) {
68
69
  assertIsRelayerApiError400NoDetails(value, name, options);
69
70
  }
@@ -94,6 +95,8 @@ export function assertIsRelayerApiError(
94
95
  value.label === ('readiness_check_timed_out' satisfies RelayerApiError503['label']) ||
95
96
  value.label === ('response_timed_out' satisfies RelayerApiError503['label']) ||
96
97
  value.label === ('protocol_paused' satisfies RelayerApiError503['label']) ||
98
+ value.label === ('insufficient_balance' satisfies RelayerApiError503['label']) ||
99
+ value.label === ('insufficient_allowance' satisfies RelayerApiError503['label']) ||
97
100
  value.label === ('gateway_not_reachable' satisfies RelayerApiError503['label'])
98
101
  ) {
99
102
  assertIsRelayerApiError503(value, name, options);
@@ -109,11 +112,14 @@ export function assertIsRelayerApiError(
109
112
  'malformed_json',
110
113
  'request_error',
111
114
  'not_ready_for_decryption',
115
+ 'not_allowed_on_host_acl',
112
116
  'missing_fields',
113
117
  'validation_failed',
114
118
  'rate_limited',
115
119
  'internal_server_error',
116
120
  'protocol_paused',
121
+ 'insufficient_balance',
122
+ 'insufficient_allowance',
117
123
  'protocol_overload',
118
124
  'gateway_not_reachable',
119
125
  'readiness_check_timed_out',
@@ -150,7 +156,8 @@ export function assertIsRelayerResponseFailedWithError400(
150
156
  if (
151
157
  value.error.label === ('malformed_json' satisfies RelayerApiError400NoDetails['label']) ||
152
158
  value.error.label === ('request_error' satisfies RelayerApiError400NoDetails['label']) ||
153
- value.error.label === ('not_ready_for_decryption' satisfies RelayerApiError400NoDetails['label'])
159
+ value.error.label === ('not_ready_for_decryption' satisfies RelayerApiError400NoDetails['label']) ||
160
+ value.error.label === ('not_allowed_on_host_acl' satisfies RelayerApiError400NoDetails['label'])
154
161
  ) {
155
162
  assertIsRelayerApiError400NoDetails(value.error, `${name}.error`, options);
156
163
  } else if (
@@ -168,6 +175,7 @@ export function assertIsRelayerResponseFailedWithError400(
168
175
  'malformed_json',
169
176
  'request_error',
170
177
  'not_ready_for_decryption',
178
+ 'not_allowed_on_host_acl',
171
179
  'missing_fields',
172
180
  'validation_failed',
173
181
  ],
@@ -14,7 +14,8 @@ export function isRelayerApiError400NoDetails(error: unknown): error is RelayerA
14
14
  !(
15
15
  error.label === ('malformed_json' satisfies T['label']) ||
16
16
  error.label === ('request_error' satisfies T['label']) ||
17
- error.label === ('not_ready_for_decryption' satisfies T['label'])
17
+ error.label === ('not_ready_for_decryption' satisfies T['label']) ||
18
+ error.label === ('not_allowed_on_host_acl' satisfies T['label'])
18
19
  )
19
20
  ) {
20
21
  return false;
@@ -26,7 +27,7 @@ export function isRelayerApiError400NoDetails(error: unknown): error is RelayerA
26
27
  * Asserts that a value matches the {@link RelayerApiError400NoDetails} schema:
27
28
  * ```json
28
29
  * {
29
- * "label": "malformed_json" | "request_error" | "not_ready_for_decryption",
30
+ * "label": "malformed_json" | "request_error" | "not_ready_for_decryption" | "not_allowed_on_host_acl",
30
31
  * "message": "string"
31
32
  * }
32
33
  * ```
@@ -42,7 +43,8 @@ export function assertIsRelayerApiError400NoDetails(
42
43
  !(
43
44
  value.label === ('malformed_json' satisfies T['label']) ||
44
45
  value.label === ('request_error' satisfies T['label']) ||
45
- value.label === ('not_ready_for_decryption' satisfies T['label'])
46
+ value.label === ('not_ready_for_decryption' satisfies T['label']) ||
47
+ value.label === ('not_allowed_on_host_acl' satisfies T['label'])
46
48
  )
47
49
  ) {
48
50
  throw new InvalidPropertyError(
@@ -54,6 +56,7 @@ export function assertIsRelayerApiError400NoDetails(
54
56
  'malformed_json' satisfies T['label'],
55
57
  'request_error' satisfies T['label'],
56
58
  'not_ready_for_decryption' satisfies T['label'],
59
+ 'not_allowed_on_host_acl' satisfies T['label'],
57
60
  ],
58
61
  type: typeof value.label, // === "string"
59
62
  value: value.label,
@@ -20,6 +20,8 @@ export function assertIsRelayerApiError503(
20
20
  assertRecordStringProperty(value, 'label' satisfies keyof T, name, {
21
21
  expectedValue: [
22
22
  'protocol_paused' satisfies T['label'],
23
+ 'insufficient_balance' satisfies T['label'],
24
+ 'insufficient_allowance' satisfies T['label'],
23
25
  'gateway_not_reachable' satisfies T['label'],
24
26
  'readiness_check_timed_out' satisfies T['label'],
25
27
  'response_timed_out' satisfies T['label'],
@@ -1,6 +1,6 @@
1
1
  import type { RelayerModuleFactory } from '../types.js';
2
2
  import { fetchCoprocessorSignatures } from './fetchCoprocessorSignatures.js';
3
- import { fetchDelegatedUserDecrypt } from './fetchDelegatedUserDecrypt.js';
3
+ import { fetchDelegatedUserDecrypt } from './fetchDelegatedUserDecryptV1.js';
4
4
  import { fetchPublicDecrypt } from './fetchPublicDecrypt.js';
5
5
  import { fetchFheEncryptionKeyBytes } from './fetchFheEncryptionKeyBytes.js';
6
6
  import { fetchFheEncryptionKeySource } from './fetchFheEncryptionKeySource.js';
@@ -7,7 +7,11 @@ import type {
7
7
  } from '../../types/relayer.js';
8
8
  import type { FheEncryptionKeyBytes, FheEncryptionKeySource } from '../../types/fheEncryptionKey.js';
9
9
  import type { KmsSigncryptedShare } from '../../types/kms-p.js';
10
- import type { KmsDelegatedUserDecryptEip712Message, KmsUserDecryptEip712Message } from '../../types/kms.js';
10
+ import type {
11
+ KmsDelegatedUserDecryptEip712V1Message,
12
+ KmsUserDecryptEip712V1Message,
13
+ KmsUserDecryptEip712V2Message,
14
+ } from '../../types/kms.js';
11
15
  import type { Bytes65Hex, BytesHex, ChecksummedAddress } from '../../types/primitives.js';
12
16
  import type { Prettify } from '../../types/utils.js';
13
17
  import type { ZkProof } from '../../types/zkProof-p.js';
@@ -105,7 +109,7 @@ export type FetchPublicDecryptParameters = {
105
109
 
106
110
  export type FetchPublicDecryptReturnType = {
107
111
  readonly orderedAbiEncodedClearValues: BytesHex;
108
- readonly kmsPublicDecryptEIP712Signatures: Bytes65Hex[];
112
+ readonly kmsPublicDecryptEip712Signatures: Bytes65Hex[];
109
113
  readonly extraData: BytesHex;
110
114
  };
111
115
 
@@ -120,19 +124,34 @@ export type FetchPublicDecryptModuleFunction = {
120
124
  // 4. fetchUserDecrypt
121
125
  ////////////////////////////////////////////////////////////////////////////////
122
126
 
123
- export type FetchUserDecryptParameters = {
127
+ export type FetchUserDecryptParametersV1 = {
124
128
  readonly payload: {
125
129
  readonly handleContractPairs: ReadonlyArray<{
126
130
  readonly handle: Handle;
127
131
  readonly contractAddress: ChecksummedAddress;
128
132
  }>;
129
133
  readonly kmsDecryptEip712Signer: ChecksummedAddress;
130
- readonly kmsDecryptEip712Message: KmsUserDecryptEip712Message;
134
+ readonly kmsDecryptEip712Message: KmsUserDecryptEip712V1Message;
135
+ readonly kmsDecryptEip712Signature: Bytes65Hex;
136
+ };
137
+ readonly options?: RelayerUserDecryptOptions | undefined;
138
+ };
139
+
140
+ export type FetchUserDecryptParametersV2 = {
141
+ readonly payload: {
142
+ readonly handleContractPairs: ReadonlyArray<{
143
+ readonly handle: Handle;
144
+ readonly contractAddress: ChecksummedAddress;
145
+ readonly ownerAddress: ChecksummedAddress;
146
+ }>;
147
+ readonly kmsDecryptEip712Message: KmsUserDecryptEip712V2Message;
131
148
  readonly kmsDecryptEip712Signature: Bytes65Hex;
132
149
  };
133
150
  readonly options?: RelayerUserDecryptOptions | undefined;
134
151
  };
135
152
 
153
+ export type FetchUserDecryptParameters = FetchUserDecryptParametersV1 | FetchUserDecryptParametersV2;
154
+
136
155
  export type FetchUserDecryptReturnType = readonly KmsSigncryptedShare[];
137
156
 
138
157
  export type FetchUserDecryptModuleFunction = {
@@ -153,7 +172,7 @@ export type FetchDelegatedUserDecryptParameters = {
153
172
  readonly contractAddress: ChecksummedAddress;
154
173
  }>;
155
174
  readonly kmsDecryptEip712Signer: ChecksummedAddress;
156
- readonly kmsDecryptEip712Message: KmsDelegatedUserDecryptEip712Message;
175
+ readonly kmsDecryptEip712Message: KmsDelegatedUserDecryptEip712V1Message;
157
176
  readonly kmsDecryptEip712Signature: Bytes65Hex;
158
177
  };
159
178
  readonly options?: RelayerDelegatedUserDecryptOptions | undefined;
@@ -350,11 +350,7 @@ function _handleModuleVersionCompatibilityPolicy(
350
350
  case 'throw':
351
351
  throw new Error(message);
352
352
  case 'warn':
353
- if (logger?.warn !== undefined) {
354
- logger.warn(message);
355
- } else {
356
- console.warn(message);
357
- }
353
+ logger?.warn?.(message);
358
354
  return;
359
355
  case 'off':
360
356
  return;
@@ -2,7 +2,15 @@ import type { TkmsVersion } from '../../wasm/tkms/KmsLibApi.js';
2
2
  import type { Handle } from './encryptedTypes-p.js';
3
3
  import type { KmsEip712Domain } from './kms.js';
4
4
  import type { KmsSignersContext } from './kmsSignersContext.js';
5
- import type { Bytes65Hex, Bytes65HexNo0x, BytesHexNo0x, ChecksummedAddress } from './primitives.js';
5
+ import type {
6
+ Bytes65Hex,
7
+ Bytes65HexNo0x,
8
+ BytesHex,
9
+ BytesHexNo0x,
10
+ ChecksummedAddress,
11
+ Uint256BigInt,
12
+ Uint8Number,
13
+ } from './primitives.js';
6
14
 
7
15
  export interface KmsSigncryptedSharesMetadata {
8
16
  readonly kmsSignersContext: KmsSignersContext;
@@ -18,3 +26,10 @@ export interface KmsSigncryptedShare {
18
26
  readonly signature: Bytes65HexNo0x;
19
27
  readonly extraData: BytesHexNo0x;
20
28
  }
29
+
30
+ export interface KmsExtraData {
31
+ readonly version: Uint8Number;
32
+ readonly kmsContextId: Uint256BigInt;
33
+ readonly kmsEpochId: Uint256BigInt;
34
+ toBytesHex(): BytesHex;
35
+ }
package/core/types/kms.ts CHANGED
@@ -31,7 +31,7 @@ export type KmsEip712Domain = Readonly<{
31
31
  verifyingContract: ChecksummedAddress;
32
32
  }>;
33
33
 
34
- export type KmsUserDecryptEip712Types = {
34
+ export type KmsUserDecryptEip712V1Types = {
35
35
  readonly EIP712Domain: readonly [
36
36
  { readonly name: 'name'; readonly type: 'string' },
37
37
  { readonly name: 'version'; readonly type: 'string' },
@@ -48,7 +48,7 @@ export type KmsUserDecryptEip712Types = {
48
48
  ];
49
49
  };
50
50
 
51
- export type KmsDelegateUserDecryptEip712Types = {
51
+ export type KmsDelegatedUserDecryptEip712V1Types = {
52
52
  readonly EIP712Domain: readonly [
53
53
  { readonly name: 'name'; readonly type: 'string' },
54
54
  { readonly name: 'version'; readonly type: 'string' },
@@ -98,7 +98,7 @@ export type KmsPublicDecryptEip712Types = {
98
98
  ];
99
99
  };
100
100
 
101
- export type KmsUserDecryptEip712Message = Readonly<{
101
+ export type KmsUserDecryptEip712V1Message = Readonly<{
102
102
  publicKey: BytesHex;
103
103
  contractAddresses: readonly ChecksummedAddress[];
104
104
  startTimestamp: string;
@@ -106,8 +106,9 @@ export type KmsUserDecryptEip712Message = Readonly<{
106
106
  extraData: BytesHex;
107
107
  }>;
108
108
 
109
- export type KmsDelegatedUserDecryptEip712Message = Prettify<
110
- KmsUserDecryptEip712Message & {
109
+ // Protocol <= v0.13
110
+ export type KmsDelegatedUserDecryptEip712V1Message = Prettify<
111
+ KmsUserDecryptEip712V1Message & {
111
112
  readonly delegatorAddress: ChecksummedAddress;
112
113
  }
113
114
  >;
@@ -127,33 +128,44 @@ export type KmsUserDecryptEip712V2Message = Readonly<{
127
128
  extraData: BytesHex;
128
129
  }>;
129
130
 
130
- export type KmsUserDecryptEip712 = Prettify<{
131
+ export type KmsUserDecryptEip712Base = {
131
132
  readonly domain: KmsEip712Domain;
132
- readonly types: KmsUserDecryptEip712Types;
133
- readonly primaryType: 'UserDecryptRequestVerification';
134
- readonly message: KmsUserDecryptEip712Message;
135
- }>;
133
+ };
136
134
 
137
- export type KmsDelegatedUserDecryptEip712 = Prettify<{
138
- readonly domain: KmsEip712Domain;
139
- readonly types: KmsDelegateUserDecryptEip712Types;
140
- readonly primaryType: 'DelegatedUserDecryptRequestVerification';
141
- readonly message: KmsDelegatedUserDecryptEip712Message;
142
- }>;
135
+ // Protocol <= v0.13
136
+ export type KmsUserDecryptEip712V1 = Prettify<
137
+ KmsUserDecryptEip712Base & {
138
+ readonly types: KmsUserDecryptEip712V1Types;
139
+ readonly primaryType: 'UserDecryptRequestVerification';
140
+ readonly message: KmsUserDecryptEip712V1Message;
141
+ }
142
+ >;
143
143
 
144
- export type KmsPublicDecryptEip712 = Prettify<{
145
- readonly domain: KmsEip712Domain;
146
- readonly types: KmsPublicDecryptEip712Types;
147
- readonly primaryType: 'PublicDecryptVerification';
148
- readonly message: KmsPublicDecryptEip712Message;
149
- }>;
144
+ // Protocol <= v0.13
145
+ export type KmsDelegatedUserDecryptEip712V1 = Prettify<
146
+ KmsUserDecryptEip712Base & {
147
+ readonly types: KmsDelegatedUserDecryptEip712V1Types;
148
+ readonly primaryType: 'DelegatedUserDecryptRequestVerification';
149
+ readonly message: KmsDelegatedUserDecryptEip712V1Message;
150
+ }
151
+ >;
150
152
 
151
- export type KmsUserDecryptEip712V2 = Prettify<{
152
- readonly domain: KmsEip712Domain;
153
- readonly types: KmsUserDecryptEip712V2Types;
154
- readonly primaryType: 'UserDecryptRequestVerification';
155
- readonly message: KmsUserDecryptEip712V2Message;
156
- }>;
153
+ // Protocol >= v0.14
154
+ export type KmsUserDecryptEip712V2 = Prettify<
155
+ KmsUserDecryptEip712Base & {
156
+ readonly types: KmsUserDecryptEip712V2Types;
157
+ readonly primaryType: 'UserDecryptRequestVerification';
158
+ readonly message: KmsUserDecryptEip712V2Message;
159
+ }
160
+ >;
161
+
162
+ export type KmsPublicDecryptEip712 = Prettify<
163
+ KmsUserDecryptEip712Base & {
164
+ readonly types: KmsPublicDecryptEip712Types;
165
+ readonly primaryType: 'PublicDecryptVerification';
166
+ readonly message: KmsPublicDecryptEip712Message;
167
+ }
168
+ >;
157
169
 
158
170
  ////////////////////////////////////////////////////////////////////////////////
159
171
  //
@@ -1,5 +1,5 @@
1
1
  export type Logger = {
2
- readonly debug: (message: string) => void;
3
- readonly warn?: ((message: string) => void) | undefined;
4
- readonly error: (message: string, cause: unknown) => void;
2
+ readonly debug: ((message: string) => void) | undefined;
3
+ readonly warn: ((message: string) => void) | undefined;
4
+ readonly error: ((message: string, cause: unknown) => void) | undefined;
5
5
  };
@@ -1,4 +1,4 @@
1
- import type { Uint, ChecksummedAddress, Uint256, Address } from './primitives.js';
1
+ import type { Uint, ChecksummedAddress, Uint256, Address, UintNumber } from './primitives.js';
2
2
 
3
3
  /**
4
4
  * Generic helper type that creates a record with a specific property of type T.
@@ -17,6 +17,7 @@ export type RecordBooleanPropertyType<K extends string> = RecordWithPropertyType
17
17
 
18
18
  export type RecordUintPropertyType<K extends string> = RecordWithPropertyType<K, Uint>;
19
19
  export type RecordUint256PropertyType<K extends string> = RecordWithPropertyType<K, Uint256>;
20
+ export type RecordUintNumberPropertyType<K extends string> = RecordWithPropertyType<K, UintNumber>;
20
21
 
21
22
  export type RecordUint8ArrayPropertyType<K extends string> = RecordWithPropertyType<K, Uint8Array>;
22
23
 
@@ -51,7 +51,7 @@ export type RelayerFetchPublicDecryptPayload = {
51
51
  };
52
52
 
53
53
  // https://github.com/zama-ai/fhevm-relayer/blob/96151ef300f787658c5fbaf1b4471263160032d5/src/http/userdecrypt_http_listener.rs#L33
54
- export type HandleContractPair = {
54
+ export type HandleContractPairV1 = {
55
55
  // Hex encoded bytes32 with 0x prefix.
56
56
  readonly handle: HandleBytes32Hex;
57
57
  // Hex encoded address with 0x prefix.
@@ -60,7 +60,7 @@ export type HandleContractPair = {
60
60
 
61
61
  // https://github.com/zama-ai/fhevm-relayer/blob/96151ef300f787658c5fbaf1b4471263160032d5/src/http/userdecrypt_http_listener.rs#L20
62
62
  export type FetchUserDecryptPayload = {
63
- readonly handleContractPairs: readonly HandleContractPair[];
63
+ readonly handleContractPairs: readonly HandleContractPairV1[];
64
64
  readonly requestValidity: {
65
65
  // Number as a string
66
66
  readonly startTimestamp: string;
@@ -81,8 +81,45 @@ export type FetchUserDecryptPayload = {
81
81
  readonly extraData: BytesHex;
82
82
  };
83
83
 
84
+ // https://github.com/zama-ai/fhevm-relayer v3 HandleEntryJson (camelCase)
85
+ export type HandleContractPairV2 = {
86
+ // Hex encoded bytes32 with 0x prefix.
87
+ readonly ctHandle: HandleBytes32Hex;
88
+ // Hex encoded address with 0x prefix.
89
+ readonly contractAddress: ChecksummedAddress;
90
+ // Hex encoded address with 0x prefix.
91
+ readonly ownerAddress: ChecksummedAddress;
92
+ };
93
+
94
+ // https://github.com/zama-ai/fhevm-relayer — v3/user-decrypt (RFC-016 unified struct)
95
+ // POST body: AttestedUserDecryptRequestJson envelope
96
+ export type FetchUserDecryptPayloadV2 = {
97
+ readonly attestationType: 'eip712-unified-user-decrypt-v1';
98
+ readonly attestedPayload: {
99
+ readonly version: '2.0';
100
+ readonly type: 'user_decryption';
101
+ readonly handles: readonly HandleContractPairV2[];
102
+ // Hex encoded address with 0x prefix.
103
+ readonly userAddress: ChecksummedAddress;
104
+ // List of hex encoded addresses with 0x prefix (empty = permissive mode)
105
+ readonly allowedContracts: readonly ChecksummedAddress[];
106
+ readonly requestValidity: {
107
+ // Number as a string
108
+ readonly startTimestamp: string;
109
+ // Number as a string
110
+ readonly durationSeconds: string;
111
+ };
112
+ // Hex encoded key with 0x prefix.
113
+ readonly publicKey: BytesHex;
114
+ // Hex encoded bytes with 0x prefix. Default: 0x00
115
+ readonly extraData: BytesHex;
116
+ };
117
+ // Hex encoded signature with 0x prefix.
118
+ readonly signature: Bytes65Hex;
119
+ };
120
+
84
121
  export type FetchDelegatedUserDecryptPayload = {
85
- readonly handleContractPairs: readonly HandleContractPair[];
122
+ readonly handleContractPairs: readonly HandleContractPairV1[];
86
123
  // Hex encoded uint256 string without prefix
87
124
  readonly contractsChainId: string;
88
125
  // List of hex encoded addresses with 0x prefix
@@ -318,7 +355,7 @@ export type RelayerApiError400 = RelayerApiError400NoDetails | RelayerApiError40
318
355
  * Status: 400 (no details)
319
356
  */
320
357
  export type RelayerApiError400NoDetails = {
321
- label: 'malformed_json' | 'request_error' | 'not_ready_for_decryption';
358
+ label: 'malformed_json' | 'request_error' | 'not_ready_for_decryption' | 'not_allowed_on_host_acl';
322
359
  message: string;
323
360
  };
324
361
 
@@ -372,7 +409,13 @@ export type RelayerApiError500 = {
372
409
  * Status: 503
373
410
  */
374
411
  export type RelayerApiError503 = {
375
- label: 'protocol_paused' | 'gateway_not_reachable' | 'readiness_check_timed_out' | 'response_timed_out';
412
+ label:
413
+ | 'protocol_paused'
414
+ | 'insufficient_balance'
415
+ | 'insufficient_allowance'
416
+ | 'gateway_not_reachable'
417
+ | 'readiness_check_timed_out'
418
+ | 'response_timed_out';
376
419
  message: string;
377
420
  };
378
421
 
@@ -1,11 +1,8 @@
1
- import type { KmsDelegatedUserDecryptEip712, KmsUserDecryptEip712 } from './kms.js';
1
+ import type { KmsDelegatedUserDecryptEip712V1, KmsUserDecryptEip712V1, KmsUserDecryptEip712V2 } from './kms.js';
2
2
  import type { Bytes65Hex, BytesHex, ChecksummedAddress } from './primitives.js';
3
3
 
4
4
  /**
5
- * A signed EIP-712 authorization that allows the signer's ephemeral key
6
- * to request decryption of the signer's own FHE handles from the KMS.
7
- *
8
- * Created once, serializable, and reusable across multiple decrypt calls.
5
+ * Common fields shared by all signed decryption permit versions.
9
6
  */
10
7
  export type SignedDecryptionPermitBase = {
11
8
  /** The EIP-712 signature. */
@@ -15,36 +12,60 @@ export type SignedDecryptionPermitBase = {
15
12
  /**
16
13
  * The account that owns the encrypted data this permit covers.
17
14
  *
18
- * - **Self permit:** equals `signerAddress` — the signer authorizes decryption
19
- * of their own data.
20
- *
21
- * - **Delegated permit:** differs from `signerAddress`. Step by step:
22
- * 1. Alice owns encrypted values on-chain (ebool, euint8, etc.).
23
- * 2. Alice calls the ACL contract to grant Bob permission to decrypt her data.
24
- * 3. Bob signs an EIP-712 delegated decryption permit referencing Alice as the
25
- * `encryptedDataOwnerAddress` (= `delegatorAddress` in the EIP-712 message).
26
- * 4. The KMS verifies Bob's signature (`signerAddress`) and that Alice
27
- * (`encryptedDataOwnerAddress`) has granted him on-chain permission.
28
- * 5. Bob can now decrypt Alice's encrypted values using this permit.
15
+ * - **Self permit:** equals `signerAddress`.
16
+ * - **Delegated permit:** differs from `signerAddress`. The owner has granted
17
+ * the signer permission via `FHE.delegateUserDecryption()` on-chain.
29
18
  */
30
19
  readonly encryptedDataOwnerAddress: ChecksummedAddress;
31
20
  /** The E2E transport public key embedded in the EIP-712 message. */
32
21
  readonly transportPublicKey: BytesHex;
22
+ /** `true` when the signer is decrypting on behalf of another account (delegated permit). */
23
+ readonly isDelegated: boolean;
33
24
 
34
- /** @throws If the permit has expired based on `startTimestamp` + `durationDays`. */
25
+ /** @throws If the permit has expired. */
35
26
  assertNotExpired(): void;
36
27
  };
37
28
 
38
- export type SignedSelfDecryptionPermit = SignedDecryptionPermitBase & {
39
- readonly eip712: KmsUserDecryptEip712;
40
- /** Always `false` for non-delegated permits. `encryptedDataOwnerAddress === signerAddress`. */
41
- readonly isDelegated: false;
29
+ ////////////////////////////////////////////////////////////////////////////////
30
+ // V1 — protocol v13 and below (two separate EIP-712 shapes)
31
+ ////////////////////////////////////////////////////////////////////////////////
32
+
33
+ /**
34
+ * Signed decryption permit produced by protocol v13 and below.
35
+ *
36
+ * Narrow to self vs delegated via `eip712.primaryType`:
37
+ * - `'UserDecryptRequestVerification'` → self permit (`encryptedDataOwnerAddress === signerAddress`)
38
+ * - `'DelegatedUserDecryptRequestVerification'` → delegated permit
39
+ */
40
+ export type SignedDecryptionPermitV1 = SignedDecryptionPermitBase & {
41
+ readonly version: 1;
42
+ readonly eip712: KmsUserDecryptEip712V1 | KmsDelegatedUserDecryptEip712V1;
42
43
  };
43
44
 
44
- export type SignedDelegatedDecryptionPermit = SignedDecryptionPermitBase & {
45
- readonly eip712: KmsDelegatedUserDecryptEip712;
46
- /** Always `true` for delegated permits. `v` is the delegated account. (see `SenderCannotBeDelegate` is ACL.sol) */
47
- readonly isDelegated: true;
45
+ ////////////////////////////////////////////////////////////////////////////////
46
+ // V2 — protocol v14 and above (unified EIP-712 shape)
47
+ ////////////////////////////////////////////////////////////////////////////////
48
+
49
+ /**
50
+ * Signed decryption permit produced by protocol v14 and above.
51
+ *
52
+ * Uses the unified `KmsUserDecryptEip712V2` EIP-712 shape — there is no longer
53
+ * a separate delegated variant. The `encryptedDataOwnerAddress` is read from
54
+ * `eip712.message.userAddress` and may differ from `signerAddress`.
55
+ *
56
+ * Discriminate from {@link SignedDecryptionPermitV1} with `permit.version === 2`.
57
+ */
58
+ export type SignedDecryptionPermitV2 = SignedDecryptionPermitBase & {
59
+ readonly version: 2;
60
+ readonly eip712: KmsUserDecryptEip712V2;
48
61
  };
49
62
 
50
- export type SignedDecryptionPermit = SignedSelfDecryptionPermit | SignedDelegatedDecryptionPermit;
63
+ ////////////////////////////////////////////////////////////////////////////////
64
+
65
+ /**
66
+ * A signed decryption permit, covering all protocol versions.
67
+ *
68
+ * Narrow by version: `permit.version === 1` → {@link SignedDecryptionPermitV1},
69
+ * `permit.version === 2` → {@link SignedDecryptionPermitV2}.
70
+ */
71
+ export type SignedDecryptionPermit = SignedDecryptionPermitV1 | SignedDecryptionPermitV2;
@@ -1,23 +1,23 @@
1
1
  import type { FhevmRuntime } from '../../types/coreFhevmRuntime.js';
2
2
  import type { FhevmChain } from '../../types/fhevmChain.js';
3
- import type { KmsDelegatedUserDecryptEip712, KmsDelegatedUserDecryptEip712Message } from '../../types/kms.js';
3
+ import type { KmsDelegatedUserDecryptEip712V1, KmsDelegatedUserDecryptEip712V1Message } from '../../types/kms.js';
4
4
  import type { Bytes65Hex, ChecksummedAddress } from '../../types/primitives.js';
5
- import { kmsDelegatedUserDecryptEip712Types } from '../../kms/kmsDelegatedUserDecryptEip712Types.js';
5
+ import { kmsDelegatedUserDecryptEip712V1Types } from '../../kms/kmsDelegatedUserDecryptEip712V1Types.js';
6
6
  import { ThresholdSignerError, UnknownSignerError } from '../../errors/SignersError.js';
7
7
  import { createKmsEip712Domain } from '../../kms/createKmsEip712Domain.js';
8
8
  import { recoverSigners } from '../runtime/recoverSigners.js';
9
9
 
10
- export type VerifyKmsDelegatedUserDecryptEip712Parameters = {
10
+ export type VerifyKmsDelegatedUserDecryptEip712V1Parameters = {
11
11
  readonly signer: ChecksummedAddress;
12
- readonly message: KmsDelegatedUserDecryptEip712Message;
12
+ readonly message: KmsDelegatedUserDecryptEip712V1Message;
13
13
  readonly signature: Bytes65Hex;
14
14
  };
15
15
 
16
- export async function verifyKmsDelegatedUserDecryptEip712(
16
+ export async function verifyKmsDelegatedUserDecryptEip712V1(
17
17
  context: { readonly chain: FhevmChain; readonly runtime: FhevmRuntime },
18
- parameters: VerifyKmsDelegatedUserDecryptEip712Parameters,
18
+ parameters: VerifyKmsDelegatedUserDecryptEip712V1Parameters,
19
19
  ): Promise<void> {
20
- // A 'DelegatedUserDecryptRequestVerification' KmsEIP712Domain (for signed permit)
20
+ // A 'DelegatedUserDecryptRequestVerification' KmsEip712Domain (for signed permit)
21
21
  // uses `chain.id` (NOT fhevm.gateway.id!!)
22
22
  const domain = createKmsEip712Domain({
23
23
  chainId: context.chain.id,
@@ -26,8 +26,8 @@ export async function verifyKmsDelegatedUserDecryptEip712(
26
26
 
27
27
  const recoveredAddresses = await recoverSigners(context, {
28
28
  domain,
29
- types: kmsDelegatedUserDecryptEip712Types,
30
- primaryType: 'DelegatedUserDecryptRequestVerification' satisfies KmsDelegatedUserDecryptEip712['primaryType'],
29
+ types: kmsDelegatedUserDecryptEip712V1Types,
30
+ primaryType: 'DelegatedUserDecryptRequestVerification' satisfies KmsDelegatedUserDecryptEip712V1['primaryType'],
31
31
  signatures: [parameters.signature],
32
32
  message: parameters.message,
33
33
  });