@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
@@ -1,13 +1,14 @@
1
1
  import type { RelayerPublicDecryptOptions } from '../types/relayer.js';
2
2
  import type { FhevmChain } from '../types/fhevmChain.js';
3
- import type { BytesHex, ChecksummedAddress, Uint64BigInt } from '../types/primitives.js';
3
+ import type { ChecksummedAddress, Uint64BigInt } from '../types/primitives.js';
4
4
  import type { PublicDecryptionProof } from '../types/publicDecryptionProof-p.js';
5
5
  import type { KmsSignersContext } from '../types/kmsSignersContext.js';
6
6
  import type { FhevmRuntime } from '../types/coreFhevmRuntime.js';
7
7
  import type { Handle } from '../types/encryptedTypes-p.js';
8
+ import type { KmsExtraData } from '../types/kms-p.js';
8
9
  import { assertHandlesBelongToSameChainId } from '../handle/FhevmHandle.js';
9
10
  import { assertKmsDecryptionBitLimit } from '../kms/utils.js';
10
- import { readKmsSignersContext, reconcileKmsSignersContext } from '../host-contracts/readKmsSignersContext-p.js';
11
+ import { readCurrentKmsSignersContext, reconcileKmsSignersContext } from '../host-contracts/readKmsSignersContext-p.js';
11
12
  import { kmsSignersContextToExtraData } from '../host-contracts/KmsSignersContext-p.js';
12
13
  import { createPublicDecryptionProof } from '../kms/PublicDecryptionProof-p.js';
13
14
  import { checkAllowedForDecryption } from '../host-contracts/checkAllowedForDecryption.js';
@@ -38,12 +39,12 @@ export async function publicDecrypt(context: Context, parameters: Parameters): P
38
39
  // Contrary to the userDecrypt flow, the publicDecrypt doesn't require for an
39
40
  // EIP-712 signature from the user, so the SDK can safely fetch the current
40
41
  // context ID and build the extraData transparently to the user.
41
- const requestedKmsSignersContext = await readKmsSignersContext(context, {
42
+ const requestedKmsSignersContext = await readCurrentKmsSignersContext(context, {
42
43
  kmsVerifierAddress: context.chain.fhevm.contracts.kmsVerifier.address as ChecksummedAddress,
43
44
  protocolConfigAddress: context.chain.fhevm.contracts.protocolConfig?.address as ChecksummedAddress | undefined,
44
45
  });
45
46
 
46
- const requestedExtraData: BytesHex = kmsSignersContextToExtraData(requestedKmsSignersContext);
47
+ const requestedExtraData: KmsExtraData = kmsSignersContextToExtraData(requestedKmsSignersContext);
47
48
 
48
49
  const orderedHandles = handles;
49
50
 
@@ -73,12 +74,12 @@ export async function publicDecrypt(context: Context, parameters: Parameters): P
73
74
  // 5. Call relayer
74
75
  const {
75
76
  orderedAbiEncodedClearValues,
76
- kmsPublicDecryptEIP712Signatures,
77
- extraData: relayerExtraData,
77
+ kmsPublicDecryptEip712Signatures,
78
+ extraData: relayerExtraDataBytesHex,
78
79
  } = await context.runtime.relayer.fetchPublicDecrypt(context, {
79
80
  payload: {
80
81
  orderedHandles,
81
- extraData: requestedExtraData,
82
+ extraData: requestedExtraData.toBytesHex(),
82
83
  },
83
84
  options: relayerOptions,
84
85
  });
@@ -87,7 +88,7 @@ export async function publicDecrypt(context: Context, parameters: Parameters): P
87
88
  const reconciledKmsSignersContext: KmsSignersContext = await reconcileKmsSignersContext(context, {
88
89
  kmsVerifierAddress: context.chain.fhevm.contracts.kmsVerifier.address as ChecksummedAddress,
89
90
  protocolConfigAddress: context.chain.fhevm.contracts.protocolConfig?.address as ChecksummedAddress | undefined,
90
- relayerExtraData,
91
+ relayerKmsExtraDataBytesHex: relayerExtraDataBytesHex,
91
92
  requestedKmsSignersContext: requestedKmsSignersContext,
92
93
  mode: 'loose',
93
94
  });
@@ -97,7 +98,7 @@ export async function publicDecrypt(context: Context, parameters: Parameters): P
97
98
  originToken,
98
99
  orderedHandles: orderedHandles,
99
100
  orderedAbiEncodedClearValues,
100
- kmsPublicDecryptEIP712Signatures,
101
+ kmsPublicDecryptEip712Signatures,
101
102
  kmsSignersContext: reconciledKmsSignersContext,
102
103
  });
103
104
 
package/core/kms/utils.ts CHANGED
@@ -26,35 +26,3 @@ export function assertKmsDecryptionBitLimit(handles: readonly Handle[]): UintNum
26
26
 
27
27
  return total as UintNumber;
28
28
  }
29
-
30
- export function assertKmsEIP712DeadlineValidity(
31
- {
32
- startTimestamp,
33
- durationDays,
34
- }: {
35
- startTimestamp: bigint | number | string;
36
- durationDays: bigint | number | string;
37
- },
38
- maxDurationDays: UintNumber,
39
- ): void {
40
- if (durationDays === 0) {
41
- throw Error('durationDays is zero');
42
- }
43
-
44
- const durationDaysBigInt = BigInt(durationDays);
45
- if (durationDaysBigInt > BigInt(maxDurationDays)) {
46
- throw Error(`durationDays is above max duration of ${maxDurationDays}`);
47
- }
48
-
49
- const startTimestampBigInt = BigInt(startTimestamp);
50
-
51
- const currentTimestamp = BigInt(Math.floor(Date.now() / 1000));
52
- if (startTimestampBigInt > currentTimestamp) {
53
- throw Error('startTimestamp is set in the future');
54
- }
55
-
56
- const durationInSeconds = durationDaysBigInt * BigInt(24 * 60 * 60);
57
- if (startTimestampBigInt + durationInSeconds < currentTimestamp) {
58
- throw Error('request has expired');
59
- }
60
- }
@@ -4,10 +4,12 @@ import type { KmsPublicDecryptEip712Message } from '../types/kms.js';
4
4
  import type { KmsSignersContext } from '../types/kmsSignersContext.js';
5
5
  import type { Bytes32Hex, Bytes65Hex, BytesHex } from '../types/primitives.js';
6
6
  import type { Handle } from '../types/encryptedTypes-p.js';
7
+ import type { KmsExtraData } from '../types/kms-p.js';
7
8
  import { recoverSigners } from '../utils-p/runtime/recoverSigners.js';
8
9
  import { assertKmsSignerThreshold, kmsSignersContextToExtraData } from '../host-contracts/KmsSignersContext-p.js';
9
10
  import { createKmsEip712Domain } from './createKmsEip712Domain.js';
10
11
  import { kmsPublicDecryptEip712Types } from './kmsPublicDecryptEip712Types.js';
12
+ import { EXTRA_DATA_V0 } from './kmsExtraData-p.js';
11
13
 
12
14
  ////////////////////////////////////////////////////////////////////////////////
13
15
 
@@ -19,7 +21,7 @@ type Context = {
19
21
  type Parameters = {
20
22
  readonly orderedHandles: readonly Handle[];
21
23
  readonly orderedAbiEncodedClearValues: BytesHex;
22
- readonly kmsPublicDecryptEIP712Signatures: readonly Bytes65Hex[];
24
+ readonly kmsPublicDecryptEip712Signatures: readonly Bytes65Hex[];
23
25
  readonly kmsSignersContext: KmsSignersContext;
24
26
  };
25
27
 
@@ -28,18 +30,18 @@ type Parameters = {
28
30
  export async function verifyKmsPublicDecryptEip712(context: Context, parameters: Parameters): Promise<void> {
29
31
  const { kmsSignersContext, orderedHandles: orderedEncryptedValues, orderedAbiEncodedClearValues } = parameters;
30
32
 
31
- // TODO: use createKmsPublicDecryptEIP712 instead!
33
+ // TODO: use createKmsPublicDecryptEip712 instead!
32
34
 
33
- const extraData: BytesHex = kmsSignersContextToExtraData(kmsSignersContext);
35
+ const extraData: KmsExtraData = kmsSignersContextToExtraData(kmsSignersContext);
34
36
 
35
37
  ////////////////////////////////////////////////////////////////////////////
36
38
  //
37
39
  // Warning!!!! Do not use '0x00' here!! Only '0x' is permitted!
38
40
  //
39
41
  ////////////////////////////////////////////////////////////////////////////
40
- let signedExtraData: BytesHex = extraData;
41
- if (extraData === ('0x00' as BytesHex)) {
42
- signedExtraData = '0x' as BytesHex;
42
+ let signedExtraDataBytesHex: BytesHex = extraData.toBytesHex();
43
+ if (extraData.version === EXTRA_DATA_V0) {
44
+ signedExtraDataBytesHex = '0x' as BytesHex;
43
45
  }
44
46
 
45
47
  const handlesBytes32Hex: readonly Bytes32Hex[] = orderedEncryptedValues.map((h) => h.bytes32Hex);
@@ -47,7 +49,7 @@ export async function verifyKmsPublicDecryptEip712(context: Context, parameters:
47
49
  const message: KmsPublicDecryptEip712Message = {
48
50
  ctHandles: handlesBytes32Hex,
49
51
  decryptedResult: orderedAbiEncodedClearValues,
50
- extraData: signedExtraData,
52
+ extraData: signedExtraDataBytesHex,
51
53
  };
52
54
 
53
55
  //////////////////////////////////////////////////////////////////////////////
@@ -66,7 +68,7 @@ export async function verifyKmsPublicDecryptEip712(context: Context, parameters:
66
68
  domain,
67
69
  types: kmsPublicDecryptEip712Types,
68
70
  primaryType: 'PublicDecryptVerification',
69
- signatures: parameters.kmsPublicDecryptEIP712Signatures,
71
+ signatures: parameters.kmsPublicDecryptEip712Signatures,
70
72
  message,
71
73
  });
72
74
 
@@ -17,12 +17,12 @@ import type { TkmsPrivateKey } from '../../types/tkms-p.js';
17
17
  import type { BytesHex } from '../../types/primitives.js';
18
18
  import type { KmsSigncryptedShare, KmsSigncryptedSharesMetadata } from '../../types/kms-p.js';
19
19
  import type { ClearValue } from '../../types/encryptedTypes-p.js';
20
- import { assertIsKmsExtraData } from '../../kms/kmsExtraData.js';
21
20
  import { ensure0x, remove0x } from '../../base/string.js';
22
21
  import { getMetadata, getShares } from '../../kms/KmsSigncryptedShares-p.js';
23
22
  import { asBytesHex, bytesToHex, hexToBytes } from '../../base/bytes.js';
24
23
  import { bigintToClearValueType } from '../../handle/FheType.js';
25
24
  import { createClearValue } from '../../handle/ClearValue.js';
25
+ import { assertIsKmsExtraDataBytesHex } from '../../kms/kmsExtraData-p.js';
26
26
 
27
27
  ////////////////////////////////////////////////////////////////////////////////
28
28
 
@@ -71,8 +71,8 @@ export async function decryptAndReconstruct(
71
71
  }
72
72
  }
73
73
 
74
- const extraData: BytesHex = ensure0x(firstExtraData);
75
- assertIsKmsExtraData(extraData, {});
74
+ const extraDataBytesHex: BytesHex = ensure0x(firstExtraData);
75
+ assertIsKmsExtraDataBytesHex(extraDataBytesHex, {});
76
76
 
77
77
  for (let i = 0; i < sharesArray.length; ++i) {
78
78
  const s = sharesArray[i];
@@ -100,13 +100,13 @@ export async function decryptAndReconstruct(
100
100
  }
101
101
 
102
102
  const maskedCleartexts = decoded[0] as bigint[];
103
- const signedExtraData = decoded[1] as BytesHex;
103
+ const signedExtraDataBytesHex = decoded[1] as BytesHex;
104
104
 
105
105
  const cleartexts: bigint[] = _xorUnmaskWithPublicKey(publicKeySecp256k1, maskedCleartexts);
106
106
 
107
- if (extraData !== signedExtraData) {
107
+ if (extraDataBytesHex !== signedExtraDataBytesHex) {
108
108
  throw new Error(
109
- `extraData mismatch: share extraData="${extraData}" does not match the signed payload's extraData="${signedExtraData}".`,
109
+ `extraData mismatch: share extraData="${extraDataBytesHex}" does not match the signed payload's extraData="${signedExtraDataBytesHex}".`,
110
110
  );
111
111
  }
112
112
 
@@ -31,10 +31,10 @@ import { uint32ToBytes32 } from '../../../base/uint.js';
31
31
  import { createClearValue } from '../../../handle/ClearValue.js';
32
32
  import { bytesToClearValueType } from '../../../handle/FheType.js';
33
33
  import { ensure0x, remove0x } from '../../../base/string.js';
34
- import { assertIsKmsExtraData } from '../../../kms/kmsExtraData.js';
35
34
  import { bytesToHexLarge } from '../../../base/bytes.js';
36
35
  import { initTkmsModule } from './init-p.js';
37
36
  import { getMetadata, getShares } from '../../../kms/KmsSigncryptedShares-p.js';
37
+ import { assertIsKmsExtraDataBytesHex } from '../../../kms/kmsExtraData-p.js';
38
38
 
39
39
  ////////////////////////////////////////////////////////////////////////////////
40
40
 
@@ -76,7 +76,7 @@ type TypedPlaintextWasmType = TypedPlaintext & {
76
76
  readonly [__TypedPlaintextWasm]: never;
77
77
  };
78
78
 
79
- type KmsEIP712DomainWasmType = Readonly<
79
+ type KmsEip712DomainWasmType = Readonly<
80
80
  Omit<KmsEip712Domain, 'chainId' | 'verifyingContract'> & {
81
81
  readonly chain_id: Uint8Array;
82
82
  readonly verifying_contract: ChecksummedAddress;
@@ -256,18 +256,18 @@ export async function decryptAndReconstruct(
256
256
  throw new Error('Expected at least one signcrypted share.');
257
257
  }
258
258
 
259
- const firstExtraData = firstShare.extraData;
259
+ const firstExtraDataBytesHex = firstShare.extraData;
260
260
  for (let i = 1; i < sharesArray.length; i++) {
261
261
  const share = sharesArray[i];
262
- if (share !== undefined && share.extraData !== firstExtraData) {
262
+ if (share !== undefined && share.extraData !== firstExtraDataBytesHex) {
263
263
  throw new Error(
264
- `Mismatched extraData across shares: share[0]="${firstExtraData}" vs share[${i}]="${share.extraData}".`,
264
+ `Mismatched extraData across shares: share[0]="${firstExtraDataBytesHex}" vs share[${i}]="${share.extraData}".`,
265
265
  );
266
266
  }
267
267
  }
268
268
 
269
- const extraData: BytesHex = ensure0x(firstExtraData);
270
- assertIsKmsExtraData(extraData, {});
269
+ const extraDataBytesHex: BytesHex = ensure0x(firstExtraDataBytesHex);
270
+ assertIsKmsExtraDataBytesHex(extraDataBytesHex, {});
271
271
 
272
272
  const aggRespWasmArg: ReadonlyArray<Omit<KmsSigncryptedShare, 'extraData'> & { extra_data: BytesHexNo0x }> =
273
273
  sharesArray.map((s) => {
@@ -297,16 +297,16 @@ export async function decryptAndReconstruct(
297
297
  kmsLib,
298
298
  );
299
299
 
300
- // KmsEIP712Domain
301
- const kmsEIP712Domain: KmsEip712Domain = metadata.eip712Domain;
300
+ // KmsEip712Domain
301
+ const kmsEip712Domain: KmsEip712Domain = metadata.eip712Domain;
302
302
  const clientAddress: ChecksummedAddress = metadata.eip712SignerAddress;
303
303
 
304
304
  // To be modified! use uint64ToBytes32 instead
305
- const eip712DomainWasmArg: KmsEIP712DomainWasmType = {
306
- name: kmsEIP712Domain.name,
307
- version: kmsEIP712Domain.version,
308
- chain_id: uint32ToBytes32(kmsEIP712Domain.chainId), // gateway chainId
309
- verifying_contract: kmsEIP712Domain.verifyingContract,
305
+ const eip712DomainWasmArg: KmsEip712DomainWasmType = {
306
+ name: kmsEip712Domain.name,
307
+ version: kmsEip712Domain.version,
308
+ chain_id: uint32ToBytes32(kmsEip712Domain.chainId), // gateway chainId
309
+ verifying_contract: kmsEip712Domain.verifyingContract,
310
310
  salt: null,
311
311
  };
312
312
 
@@ -333,7 +333,7 @@ export async function decryptAndReconstruct(
333
333
  enc_key: remove0x(publicEncKeyMlKem512WasmBytesHex),
334
334
  ciphertext_handles: metadata.handles.map((h) => h.bytes32HexNo0x),
335
335
  eip712_verifying_contract: metadata.eip712Domain.verifyingContract,
336
- extra_data: remove0x(extraData),
336
+ extra_data: remove0x(extraDataBytesHex),
337
337
  };
338
338
 
339
339
  //
@@ -90,21 +90,21 @@ async function _resolveKmsAssets(
90
90
  function _logResolvedKmsAssets(resolvedAssets: ResolvedKmsAssets, logger: FhevmRuntimeConfig['logger']): void {
91
91
  const { wasm } = resolvedAssets;
92
92
  if (wasm.resolution === 'user') {
93
- logger?.debug(`resolve tkms wasm filename using 'locateFile' function: ${wasm.filename} -> url: ${wasm.url}`);
93
+ logger?.debug?.(`resolve tkms wasm filename using 'locateFile' function: ${wasm.filename} -> url: ${wasm.url}`);
94
94
  } else if (wasm.resolution === 'node') {
95
95
  if (wasm.url === undefined) {
96
96
  // Auto-derived assets were missing on disk (e.g. a bundler such as Turbopack
97
97
  // relocated the package) and were cleared by _resolveTkmsAssets -> base64.
98
- logger?.debug(
98
+ logger?.debug?.(
99
99
  `tkms auto-derived assets not found on disk (bundler relocation?); using embedded base64 ` +
100
100
  `(wasm: ${wasm.localRelativePath})`,
101
101
  );
102
102
  } else {
103
- logger?.debug(`resolve tkms wasm local path: ${wasm.localRelativePath} -> url: ${wasm.url}`);
103
+ logger?.debug?.(`resolve tkms wasm local path: ${wasm.localRelativePath} -> url: ${wasm.url}`);
104
104
  }
105
105
  } else {
106
106
  // 'none': browser zero-config (no 'locateFile', not Node) -> embedded base64.
107
- logger?.debug(`resolve tkms assets using embedded base64 (browser, no 'locateFile')`);
107
+ logger?.debug?.(`resolve tkms assets using embedded base64 (browser, no 'locateFile')`);
108
108
  }
109
109
  }
110
110
 
@@ -170,7 +170,7 @@ async function _resolveTkmsModuleConfig(
170
170
  logger: parameters.logger,
171
171
  };
172
172
 
173
- parameters.logger?.debug(JSON.stringify(cfg, null, 2));
173
+ //parameters.logger?.debug?.(JSON.stringify(cfg, null, 2));
174
174
 
175
175
  return cfg;
176
176
  }
@@ -226,11 +226,11 @@ async function _compileWasmModule(cfg: ResolvedTkmsModuleConfig): Promise<WebAss
226
226
  let wasmModule;
227
227
 
228
228
  if (cfg.assets.wasm.url !== undefined) {
229
- cfg.logger?.debug(`compile tkms verified wasm at: ${cfg.assets.wasm.url}`);
229
+ cfg.logger?.debug?.(`compile tkms verified wasm at: ${cfg.assets.wasm.url}`);
230
230
  wasmModule = await isomorphicCompileVerifiedWasm(cfg.assets.wasm.url, cfg.assets.wasm.sha256);
231
231
  } else {
232
232
  const { tkmsWasmBase64, tkmsWasmBase64CompressionFormat } = await loadKmsWasmBase64(cfg.version);
233
- cfg.logger?.debug(
233
+ cfg.logger?.debug?.(
234
234
  `compile tkms wasm from embedded base64 (compression:${tkmsWasmBase64CompressionFormat ?? 'none'})`,
235
235
  );
236
236
  wasmModule = await isomorphicCompileWasmFromBase64(tkmsWasmBase64, tkmsWasmBase64CompressionFormat);
@@ -208,23 +208,25 @@ async function _resolveTfheAssets(
208
208
  function _logResolvedTfheAssets(resolvedAssets: ResolvedTfheAssets, logger: FhevmRuntimeConfig['logger']): void {
209
209
  const { wasm, worker } = resolvedAssets;
210
210
  if (wasm.resolution === 'user') {
211
- logger?.debug(`resolve tfhe wasm filename using 'locateFile' function: ${wasm.filename} -> url: ${wasm.url}`);
212
- logger?.debug(`resolve tfhe worker filename using 'locateFile' function: ${worker.filename} -> url: ${worker.url}`);
211
+ logger?.debug?.(`resolve tfhe wasm filename using 'locateFile' function: ${wasm.filename} -> url: ${wasm.url}`);
212
+ logger?.debug?.(
213
+ `resolve tfhe worker filename using 'locateFile' function: ${worker.filename} -> url: ${worker.url}`,
214
+ );
213
215
  } else if (wasm.resolution === 'node') {
214
216
  if (wasm.url === undefined) {
215
217
  // Auto-derived assets were missing on disk (e.g. a bundler such as Turbopack
216
218
  // relocated the package) and were cleared by _resolveTfheAssets -> base64.
217
- logger?.debug(
219
+ logger?.debug?.(
218
220
  `tfhe auto-derived assets not found on disk (bundler relocation?); using embedded base64 ` +
219
221
  `(wasm: ${wasm.localRelativePath}, worker: ${worker.localRelativePath})`,
220
222
  );
221
223
  } else {
222
- logger?.debug(`resolve tfhe wasm local path: ${wasm.localRelativePath} -> url: ${wasm.url}`);
223
- logger?.debug(`resolve tfhe worker local path: ${worker.localRelativePath} -> url: ${worker.url}`);
224
+ logger?.debug?.(`resolve tfhe wasm local path: ${wasm.localRelativePath} -> url: ${wasm.url}`);
225
+ logger?.debug?.(`resolve tfhe worker local path: ${worker.localRelativePath} -> url: ${worker.url}`);
224
226
  }
225
227
  } else {
226
228
  // 'none': browser zero-config (no 'locateFile', not Node) -> embedded base64.
227
- logger?.debug(`resolve tfhe assets using embedded base64 (browser, no 'locateFile')`);
229
+ logger?.debug?.(`resolve tfhe assets using embedded base64 (browser, no 'locateFile')`);
228
230
  }
229
231
  }
230
232
 
@@ -475,7 +477,10 @@ async function _resolveTfheModuleConfig(
475
477
  // Single source of truth for browser-vs-Node, resolved on the main thread
476
478
  // (robust to bundler `process` shims) — the worker bootstrap no longer detects it.
477
479
  isBrowserLike: isBrowserLike(),
478
- logger: parameters.logger,
480
+ logger:
481
+ parameters.logger?.debug !== undefined && parameters.logger.error !== undefined
482
+ ? { debug: parameters.logger.debug, error: parameters.logger.error }
483
+ : undefined,
479
484
  });
480
485
 
481
486
  const cfg = {
@@ -488,7 +493,7 @@ async function _resolveTfheModuleConfig(
488
493
  supportsThreads,
489
494
  };
490
495
 
491
- parameters.logger?.debug(JSON.stringify(cfg, null, 2));
496
+ //parameters.logger?.debug?.(JSON.stringify(cfg, null, 2));
492
497
 
493
498
  return cfg;
494
499
  }
@@ -572,11 +577,11 @@ async function _compileWasmModule(cfg: ResolvedTfheModuleConfig): Promise<WebAss
572
577
  let wasmModule;
573
578
 
574
579
  if (cfg.assets.wasm.url !== undefined) {
575
- cfg.logger?.debug(`compile verified wasm at: ${cfg.assets.wasm.url}`);
580
+ cfg.logger?.debug?.(`compile verified wasm at: ${cfg.assets.wasm.url}`);
576
581
  wasmModule = await isomorphicCompileVerifiedWasm(cfg.assets.wasm.url, cfg.assets.wasm.sha256);
577
582
  } else {
578
583
  const { tfheWasmBase64, tfheWasmBase64CompressionFormat } = await loadTfheWasmBase64(cfg.version);
579
- cfg.logger?.debug(`compile wasm from embedded base64 (compression:${tfheWasmBase64CompressionFormat ?? 'none'})`);
584
+ cfg.logger?.debug?.(`compile wasm from embedded base64 (compression:${tfheWasmBase64CompressionFormat ?? 'none'})`);
580
585
  wasmModule = await isomorphicCompileWasmFromBase64(tfheWasmBase64, tfheWasmBase64CompressionFormat);
581
586
  }
582
587
 
@@ -599,7 +604,7 @@ async function _initTfheModule(cfg: ResolvedTfheModuleConfig): Promise<TfheLibAp
599
604
 
600
605
  // 4. Spawn Web Workers for parallel FHE operations (skipped when single-threaded)
601
606
  if (!cfg.singleThread) {
602
- cfg.logger?.debug(`initThreadPool(${cfg.numberOfThreads})`);
607
+ cfg.logger?.debug?.(`initThreadPool(${cfg.numberOfThreads})`);
603
608
  await tfheLib.initThreadPool(cfg.numberOfThreads);
604
609
  }
605
610
 
@@ -1,4 +1,4 @@
1
- import type { Bytes65Hex, BytesHex, ChecksummedAddress } from '../../types/primitives.js';
1
+ import type { Bytes32Hex, Bytes65Hex, BytesHex, ChecksummedAddress, Uint256 } from '../../types/primitives.js';
2
2
  import type { Prettify } from '../../types/utils.js';
3
3
  import type { EthereumModule } from './types.js';
4
4
 
@@ -32,6 +32,28 @@ export type SignModuleFunction = {
32
32
  sign(parameters: SignParameters): Promise<SignReturnType>;
33
33
  };
34
34
 
35
+ ////////////////////////////////////////////////////////////////////////////////
36
+ // hashTypedData
37
+ ////////////////////////////////////////////////////////////////////////////////
38
+
39
+ export type HashTypedDataParameters = Readonly<{
40
+ domain: {
41
+ readonly chainId: Uint256;
42
+ readonly name: string;
43
+ readonly verifyingContract: ChecksummedAddress;
44
+ readonly version: string;
45
+ };
46
+ types: Readonly<Record<string, ReadonlyArray<{ name: string; type: string }>>>;
47
+ primaryType: string;
48
+ message: Readonly<Record<string, unknown>>;
49
+ }>;
50
+
51
+ export type HashTypedDataReturnType = Bytes32Hex;
52
+
53
+ export type HashTypedDataModuleFunction = {
54
+ hashTypedData(parameters: HashTypedDataParameters): HashTypedDataReturnType;
55
+ };
56
+
35
57
  ////////////////////////////////////////////////////////////////////////////////
36
58
  // generatePrivateKey
37
59
  ////////////////////////////////////////////////////////////////////////////////
@@ -81,7 +103,8 @@ export type CleartextEthereumModule = EthereumModule &
81
103
  SignModuleFunction &
82
104
  GeneratePrivateKeyModuleFunction &
83
105
  GetPublicKeyModuleFunction &
84
- RecoverAddressModuleFunction
106
+ RecoverAddressModuleFunction &
107
+ HashTypedDataModuleFunction
85
108
  >;
86
109
 
87
110
  export type CleartextEthereumModuleFactory = () => {
@@ -1,22 +1,23 @@
1
- import type { Bytes65Hex, BytesHex, ChecksummedAddress } from '../../../types/primitives.js';
1
+ import type { Bytes65Hex, BytesHex, ChecksummedAddress, Uint32BigInt } from '../../../types/primitives.js';
2
2
  import type { CleartextEthereumModule } from '../../ethereum/types-ct.js';
3
3
  import type {
4
4
  FetchCoprocessorSignaturesParameters,
5
5
  FetchCoprocessorSignaturesReturnType,
6
6
  RelayerClientWithRuntime,
7
7
  } from '../types.js';
8
- import { asUint32BigInt, randomUniqueUints } from '../../../base/uint.js';
8
+ import type { CoprocessorSignersContext } from '../../../types/coprocessorSignersContext.js';
9
+ import { asUint32BigInt, asUint64BigInt, randomUniqueUints } from '../../../base/uint.js';
9
10
  import { getTrustedClient } from '../../../runtime/CoreFhevm-p.js';
10
11
  import { getCoprocessorSignersPrivateKeyMap } from './signers.js';
12
+ import { isForgeFhevmV1 } from './forgeFhevmV1.js';
13
+ import { createCoprocessorEip712Domain } from '../../../coprocessor/createCoprocessorEip712Domain.js';
14
+ import { coprocessorEip712PrimaryType, coprocessorEip712Types } from '../../../coprocessor/coprocessorEip712Types.js';
15
+ import { readCoprocessorSignersContext } from '../../../host-contracts/readCoprocessorSignersContext-p.js';
11
16
 
12
- /*
13
- export type FetchCoprocessorSignaturesReturnType = {
14
- readonly handles: readonly InputHandle[];
15
- readonly coprocessorEip712Signatures: readonly Bytes65Hex[];
16
- readonly extraData: BytesHex;
17
- };
17
+ ////////////////////////////////////////////////////////////////////////////////
18
+ // runInputProofOnChain
19
+ ////////////////////////////////////////////////////////////////////////////////
18
20
 
19
- */
20
21
  const inputProofAbi = [
21
22
  {
22
23
  type: 'function',
@@ -44,13 +45,14 @@ const inputProofAbi = [
44
45
  },
45
46
  ] as const;
46
47
 
47
- export async function fetchCoprocessorSignatures(
48
+ async function runInputProofOnChain(
48
49
  relayerClient: RelayerClientWithRuntime,
49
- parameters: FetchCoprocessorSignaturesParameters,
50
- ): Promise<FetchCoprocessorSignaturesReturnType> {
51
- const cleartextEthereumModule = relayerClient.runtime.ethereum as CleartextEthereumModule;
52
- const { payload } = parameters;
53
-
50
+ payload: FetchCoprocessorSignaturesParameters['payload'],
51
+ ): Promise<{
52
+ readonly digest: BytesHex;
53
+ readonly signersAddress: readonly ChecksummedAddress[];
54
+ readonly threshold: Uint32BigInt;
55
+ }> {
54
56
  const trustedClient = getTrustedClient(relayerClient);
55
57
  const res = (await relayerClient.runtime.ethereum.readContract(trustedClient, {
56
58
  abi: inputProofAbi,
@@ -67,6 +69,87 @@ export async function fetchCoprocessorSignatures(
67
69
  const digest = res[0] as BytesHex;
68
70
  const signersAddress = res[1] as ChecksummedAddress[];
69
71
  const threshold = asUint32BigInt(res[2]);
72
+
73
+ return {
74
+ digest,
75
+ signersAddress,
76
+ threshold,
77
+ };
78
+ }
79
+
80
+ ////////////////////////////////////////////////////////////////////////////////
81
+ // runInputProofOffChain
82
+ ////////////////////////////////////////////////////////////////////////////////
83
+
84
+ async function runInputProofOffChain(
85
+ relayerClient: RelayerClientWithRuntime,
86
+ payload: FetchCoprocessorSignaturesParameters['payload'],
87
+ ): Promise<{
88
+ readonly digest: BytesHex;
89
+ readonly signersAddress: readonly ChecksummedAddress[];
90
+ readonly threshold: Uint32BigInt;
91
+ }> {
92
+ const cleartextEthereumModule = relayerClient.runtime.ethereum as CleartextEthereumModule;
93
+ const { zkProof } = payload;
94
+
95
+ // Read the coprocessor signer set + threshold from the InputVerifier's on-chain
96
+ // storage. In the forge-fhevm-v1 setup only the `inputProof` view is missing;
97
+ // the signers/threshold and the EIP-712 material are still readable, so we
98
+ // recompute the digest off-chain below (mirroring CleartextInputVerifier.inputProof).
99
+ const coprocessorSignersContext: CoprocessorSignersContext = await readCoprocessorSignersContext(relayerClient, {
100
+ address: relayerClient.chain.fhevm.contracts.inputVerifier.address as ChecksummedAddress,
101
+ });
102
+
103
+ // The 'InputVerification' domain uses the gateway chainId + gateway
104
+ // inputVerification address (same as verifyHandlesCoprocessorSignatures).
105
+ const domain = createCoprocessorEip712Domain({
106
+ gatewayChainId: relayerClient.chain.fhevm.gateway.id,
107
+ verifyingContractAddressInputVerification: relayerClient.chain.fhevm.gateway.contracts.inputVerification.address,
108
+ });
109
+
110
+ // Mirror CleartextInputVerifier.inputProof: hash the CiphertextVerification
111
+ // struct with contractChainId = block.chainid (the host chain), and extraData
112
+ // taken verbatim from the ZK proof (as the on-chain view would receive it).
113
+ const digest: BytesHex = cleartextEthereumModule.hashTypedData({
114
+ domain,
115
+ types: coprocessorEip712Types,
116
+ primaryType: coprocessorEip712PrimaryType,
117
+ message: {
118
+ ctHandles: zkProof.getInputHandles().map((h) => h.bytes32Hex),
119
+ userAddress: zkProof.userAddress,
120
+ contractAddress: zkProof.contractAddress,
121
+ contractChainId: asUint64BigInt(BigInt(relayerClient.chain.id)),
122
+ extraData: zkProof.getExtraData(),
123
+ },
124
+ });
125
+
126
+ return {
127
+ digest,
128
+ signersAddress: coprocessorSignersContext.signers,
129
+ threshold: asUint32BigInt(BigInt(coprocessorSignersContext.threshold)),
130
+ };
131
+ }
132
+
133
+ export async function fetchCoprocessorSignatures(
134
+ relayerClient: RelayerClientWithRuntime,
135
+ parameters: FetchCoprocessorSignaturesParameters,
136
+ ): Promise<FetchCoprocessorSignaturesReturnType> {
137
+ const cleartextEthereumModule = relayerClient.runtime.ethereum as CleartextEthereumModule;
138
+ const { payload } = parameters;
139
+
140
+ const offChain = await isForgeFhevmV1(relayerClient);
141
+
142
+ let res;
143
+ if (offChain) {
144
+ res = await runInputProofOffChain(relayerClient, payload);
145
+ } else {
146
+ res = await runInputProofOnChain(relayerClient, payload);
147
+ }
148
+
149
+ const digest = res.digest;
150
+ const signersAddress = res.signersAddress;
151
+ const threshold = res.threshold;
152
+
70
153
  const signers = getCoprocessorSignersPrivateKeyMap(relayerClient);
71
154
 
72
155
  const randomSignersAddress = randomUniqueUints(signersAddress.length, Number(threshold)).map(