@fhevm/sdk 1.1.0-alpha.5 → 1.1.0-alpha.7

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 (606) hide show
  1. package/_cjs/core/_version.js +1 -1
  2. package/_cjs/core/actions/base/index.js +1 -17
  3. package/_cjs/core/actions/base/index.js.map +1 -1
  4. package/_cjs/core/actions/base/signDecryptionPermit.js +0 -3
  5. package/_cjs/core/actions/base/signDecryptionPermit.js.map +1 -1
  6. package/_cjs/core/actions/chain/index.js +1 -13
  7. package/_cjs/core/actions/chain/index.js.map +1 -1
  8. package/_cjs/core/actions/chain/parseSignedDecryptionPermit.js.map +1 -1
  9. package/_cjs/core/actions/chain/serializeSignedDecryptionPermit.js.map +1 -1
  10. package/_cjs/core/actions/decrypt/canDecryptValue.js.map +1 -1
  11. package/_cjs/core/actions/decrypt/canDecryptValues.js.map +1 -1
  12. package/_cjs/core/actions/decrypt/canDecryptValuesFromPairs.js.map +1 -1
  13. package/_cjs/core/actions/decrypt/decryptValue.js +1 -0
  14. package/_cjs/core/actions/decrypt/decryptValue.js.map +1 -1
  15. package/_cjs/core/actions/decrypt/decryptValues.js +2 -0
  16. package/_cjs/core/actions/decrypt/decryptValues.js.map +1 -1
  17. package/_cjs/core/actions/decrypt/decryptValuesFromPairs.js +2 -0
  18. package/_cjs/core/actions/decrypt/decryptValuesFromPairs.js.map +1 -1
  19. package/_cjs/core/actions/decrypt/index.js +1 -3
  20. package/_cjs/core/actions/decrypt/index.js.map +1 -1
  21. package/_cjs/core/actions/host/index.js +1 -9
  22. package/_cjs/core/actions/host/index.js.map +1 -1
  23. package/_cjs/core/base/bytes.js +2 -1
  24. package/_cjs/core/base/bytes.js.map +1 -1
  25. package/_cjs/core/base/cachedFetch.js +2 -1
  26. package/_cjs/core/base/cachedFetch.js.map +1 -1
  27. package/_cjs/core/base/environment.js +122 -0
  28. package/_cjs/core/base/environment.js.map +1 -0
  29. package/_cjs/core/base/errors/Sha256VerificationError.js +15 -0
  30. package/_cjs/core/base/errors/Sha256VerificationError.js.map +1 -0
  31. package/_cjs/core/base/inflate.js +282 -0
  32. package/_cjs/core/base/inflate.js.map +1 -0
  33. package/_cjs/core/base/isomorphicFs.js +24 -0
  34. package/_cjs/core/base/isomorphicFs.js.map +1 -0
  35. package/_cjs/core/base/isomorphicWorker.js +42 -111
  36. package/_cjs/core/base/isomorphicWorker.js.map +1 -1
  37. package/_cjs/core/base/uint.js +7 -0
  38. package/_cjs/core/base/uint.js.map +1 -1
  39. package/_cjs/core/base/wasm.js +15 -55
  40. package/_cjs/core/base/wasm.js.map +1 -1
  41. package/_cjs/core/clients/decorators/base.js +1 -1
  42. package/_cjs/core/clients/decorators/base.js.map +1 -1
  43. package/_cjs/core/host-contracts/canDecryptValuesFromPairs.js +4 -1
  44. package/_cjs/core/host-contracts/canDecryptValuesFromPairs.js.map +1 -1
  45. package/_cjs/core/host-contracts/getCoprocessorContextSignersAndThreshold-p.js +1 -1
  46. package/_cjs/core/host-contracts/getCoprocessorContextSignersAndThreshold-p.js.map +1 -1
  47. package/_cjs/core/host-contracts/getCurrentKmsContextAndEpoch-p.js +1 -1
  48. package/_cjs/core/host-contracts/getCurrentKmsContextAndEpoch-p.js.map +1 -1
  49. package/_cjs/core/host-contracts/getCurrentKmsContextId-p.js +1 -1
  50. package/_cjs/core/host-contracts/getCurrentKmsContextId-p.js.map +1 -1
  51. package/_cjs/core/host-contracts/getKmsContextSignersAndThreshold-p.js +1 -1
  52. package/_cjs/core/host-contracts/getKmsContextSignersAndThreshold-p.js.map +1 -1
  53. package/_cjs/core/kms/PublicDecryptionProof-p.js +4 -4
  54. package/_cjs/core/kms/SignedDecryptionPermit-p.js +33 -199
  55. package/_cjs/core/kms/SignedDecryptionPermit-p.js.map +1 -1
  56. package/_cjs/core/kms/SignedDecryptionPermitV1-p.js +217 -0
  57. package/_cjs/core/kms/SignedDecryptionPermitV1-p.js.map +1 -0
  58. package/_cjs/core/kms/SignedDecryptionPermitV2-p.js +184 -0
  59. package/_cjs/core/kms/SignedDecryptionPermitV2-p.js.map +1 -0
  60. package/_cjs/core/kms/TransportKeyPair-p.js +0 -4
  61. package/_cjs/core/kms/TransportKeyPair-p.js.map +1 -1
  62. package/_cjs/core/kms/{createKmsDelegatedUserDecryptEip712.js → createKmsDelegatedUserDecryptEip712V1.js} +9 -9
  63. package/_cjs/core/kms/createKmsDelegatedUserDecryptEip712V1.js.map +1 -0
  64. package/_cjs/core/kms/{createKmsUserDecryptEip712.js → createKmsUserDecryptEip712V1.js} +18 -14
  65. package/_cjs/core/kms/createKmsUserDecryptEip712V1.js.map +1 -0
  66. package/_cjs/core/kms/decryptValuesFromPairs.js +18 -2
  67. package/_cjs/core/kms/decryptValuesFromPairs.js.map +1 -1
  68. package/_cjs/core/kms/{fetchKmsSigncryptedShares-p.js → fetchKmsSigncryptedSharesV1-p.js} +18 -8
  69. package/_cjs/core/kms/fetchKmsSigncryptedSharesV1-p.js.map +1 -0
  70. package/_cjs/core/kms/fetchKmsSigncryptedSharesV2-p.js +95 -0
  71. package/_cjs/core/kms/fetchKmsSigncryptedSharesV2-p.js.map +1 -0
  72. package/_cjs/core/kms/{kmsDelegatedUserDecryptEip712Types.js → kmsDelegatedUserDecryptEip712V1Types.js} +8 -8
  73. package/_cjs/core/kms/kmsDelegatedUserDecryptEip712V1Types.js.map +1 -0
  74. package/_cjs/core/kms/{kmsUserDecryptEip712Types.js → kmsUserDecryptEip712V1Types.js} +8 -8
  75. package/_cjs/core/kms/kmsUserDecryptEip712V1Types.js.map +1 -0
  76. package/_cjs/core/kms/kmsUserDecryptEip712V2Types.js.map +1 -1
  77. package/_cjs/core/kms/publicDecrypt.js +2 -2
  78. package/_cjs/core/kms/utils.js +0 -19
  79. package/_cjs/core/kms/utils.js.map +1 -1
  80. package/_cjs/core/kms/verifyKmsPublicDecryptEip712-p.js +1 -1
  81. package/_cjs/core/modules/decrypt/module/api-p.js +5 -5
  82. package/_cjs/core/modules/decrypt/module/init-p.js +124 -40
  83. package/_cjs/core/modules/decrypt/module/init-p.js.map +1 -1
  84. package/_cjs/core/modules/encrypt/module/init-p.js +153 -49
  85. package/_cjs/core/modules/encrypt/module/init-p.js.map +1 -1
  86. package/_cjs/core/modules/relayer/cleartext/fetchPublicDecrypt.js +3 -3
  87. package/_cjs/core/modules/relayer/cleartext/fetchUserDecrypt.js.map +1 -1
  88. package/_cjs/core/modules/relayer/module/{fetchDelegatedUserDecrypt.js → fetchDelegatedUserDecryptV1.js} +1 -1
  89. package/_cjs/core/modules/relayer/module/fetchDelegatedUserDecryptV1.js.map +1 -0
  90. package/_cjs/core/modules/relayer/module/fetchPublicDecrypt.js +1 -1
  91. package/_cjs/core/modules/relayer/module/fetchUserDecrypt.js +11 -45
  92. package/_cjs/core/modules/relayer/module/fetchUserDecrypt.js.map +1 -1
  93. package/_cjs/core/modules/relayer/module/fetchUserDecryptV1.js +52 -0
  94. package/_cjs/core/modules/relayer/module/fetchUserDecryptV1.js.map +1 -0
  95. package/_cjs/core/modules/relayer/module/fetchUserDecryptV2.js +54 -0
  96. package/_cjs/core/modules/relayer/module/fetchUserDecryptV2.js.map +1 -0
  97. package/_cjs/core/modules/relayer/module/guards/RelayerResponseFailed.js +10 -2
  98. package/_cjs/core/modules/relayer/module/guards/RelayerResponseFailed.js.map +1 -1
  99. package/_cjs/core/modules/relayer/module/guards/api-errors/RelayerApiError400NoDetails.js +5 -2
  100. package/_cjs/core/modules/relayer/module/guards/api-errors/RelayerApiError400NoDetails.js.map +1 -1
  101. package/_cjs/core/modules/relayer/module/guards/api-errors/RelayerApiError503.js +2 -0
  102. package/_cjs/core/modules/relayer/module/guards/api-errors/RelayerApiError503.js.map +1 -1
  103. package/_cjs/core/modules/relayer/module/index.js +2 -2
  104. package/_cjs/core/modules/relayer/module/index.js.map +1 -1
  105. package/_cjs/core/runtime/HyperWasmSolver-p.js +5 -10
  106. package/_cjs/core/runtime/HyperWasmSolver-p.js.map +1 -1
  107. package/_cjs/core/runtime/initFhevmEncryptRuntime-p.js +1 -1
  108. package/_cjs/core/runtime/initFhevmRuntime-p.js +1 -1
  109. package/_cjs/core/utils-p/decrypt/{verifyKmsDelegatedUserDecryptEip712.js → verifyKmsDelegatedUserDecryptEip712V1.js} +5 -5
  110. package/_cjs/core/utils-p/decrypt/verifyKmsDelegatedUserDecryptEip712V1.js.map +1 -0
  111. package/_cjs/core/utils-p/decrypt/{verifyKmsUserDecryptEip712.js → verifyKmsUserDecryptEip712V1.js} +5 -5
  112. package/_cjs/core/utils-p/decrypt/verifyKmsUserDecryptEip712V1.js.map +1 -0
  113. package/_cjs/core/utils-p/decrypt/verifyKmsUserDecryptEip712V2.js +30 -0
  114. package/_cjs/core/utils-p/decrypt/verifyKmsUserDecryptEip712V2.js.map +1 -0
  115. package/_cjs/wasm/tfhe/TfheApi.d.ts +12 -12
  116. package/_cjs/wasm/tfhe/loadTfheLib.js +11 -11
  117. package/_cjs/wasm/tfhe/loadTfheLib.js.map +2 -2
  118. package/_cjs/wasm/tfhe/v1.5.3/startWorkers.js +26 -9
  119. package/_cjs/wasm/tfhe/v1.5.3/startWorkers.js.map +2 -2
  120. package/_cjs/wasm/tfhe/v1.5.3/tfhe.d.ts +3 -0
  121. package/_cjs/wasm/tfhe/{v1.6.1 → v1.6.2}/startWorkers.js +28 -11
  122. package/_cjs/wasm/tfhe/v1.6.2/startWorkers.js.map +7 -0
  123. package/_cjs/wasm/tfhe/{v1.6.1 → v1.6.2}/tfhe-worker.mjs +40 -40
  124. package/_cjs/wasm/tfhe/{v1.6.1 → v1.6.2}/tfhe.d.ts +88 -85
  125. package/_cjs/wasm/tfhe/{v1.6.1 → v1.6.2}/tfhe.js +245 -442
  126. package/_cjs/wasm/tfhe/v1.6.2/tfhe.js.map +7 -0
  127. package/_cjs/wasm/tfhe/v1.6.2/tfhe_bg.wasm +0 -0
  128. package/_cjs/wasm/tfhe/v1.6.2/tfhe_bg.wasm.base64.js +35 -0
  129. package/_cjs/wasm/tfhe/v1.6.2/tfhe_bg.wasm.base64.js.map +7 -0
  130. package/_cjs/wasm/tkms/loadKmsLib.js.map +1 -1
  131. package/_cjs/wasm/wasmBaseUrl.js +8 -19
  132. package/_cjs/wasm/wasmBaseUrl.js.map +2 -2
  133. package/_esm/core/_version.js +1 -1
  134. package/_esm/core/actions/base/index.js +0 -8
  135. package/_esm/core/actions/base/index.js.map +1 -1
  136. package/_esm/core/actions/base/signDecryptionPermit.js +0 -6
  137. package/_esm/core/actions/base/signDecryptionPermit.js.map +1 -1
  138. package/_esm/core/actions/chain/index.js +0 -6
  139. package/_esm/core/actions/chain/index.js.map +1 -1
  140. package/_esm/core/actions/chain/parseSignedDecryptionPermit.js.map +1 -1
  141. package/_esm/core/actions/chain/serializeSignedDecryptionPermit.js.map +1 -1
  142. package/_esm/core/actions/decrypt/canDecryptValue.js +40 -0
  143. package/_esm/core/actions/decrypt/canDecryptValue.js.map +1 -1
  144. package/_esm/core/actions/decrypt/canDecryptValues.js +1 -0
  145. package/_esm/core/actions/decrypt/canDecryptValues.js.map +1 -1
  146. package/_esm/core/actions/decrypt/canDecryptValuesFromPairs.js +1 -0
  147. package/_esm/core/actions/decrypt/canDecryptValuesFromPairs.js.map +1 -1
  148. package/_esm/core/actions/decrypt/decryptValue.js +1 -0
  149. package/_esm/core/actions/decrypt/decryptValue.js.map +1 -1
  150. package/_esm/core/actions/decrypt/decryptValues.js +2 -0
  151. package/_esm/core/actions/decrypt/decryptValues.js.map +1 -1
  152. package/_esm/core/actions/decrypt/decryptValuesFromPairs.js +2 -0
  153. package/_esm/core/actions/decrypt/decryptValuesFromPairs.js.map +1 -1
  154. package/_esm/core/actions/decrypt/index.js +0 -1
  155. package/_esm/core/actions/decrypt/index.js.map +1 -1
  156. package/_esm/core/actions/host/index.js +0 -4
  157. package/_esm/core/actions/host/index.js.map +1 -1
  158. package/_esm/core/base/bytes.js +2 -1
  159. package/_esm/core/base/bytes.js.map +1 -1
  160. package/_esm/core/base/cachedFetch.js +1 -0
  161. package/_esm/core/base/cachedFetch.js.map +1 -1
  162. package/_esm/core/base/environment.js +164 -0
  163. package/_esm/core/base/environment.js.map +1 -0
  164. package/_esm/core/base/errors/Sha256VerificationError.js +11 -0
  165. package/_esm/core/base/errors/Sha256VerificationError.js.map +1 -0
  166. package/_esm/core/base/inflate.js +337 -0
  167. package/_esm/core/base/inflate.js.map +1 -0
  168. package/_esm/core/base/isomorphicFs.js +21 -0
  169. package/_esm/core/base/isomorphicFs.js.map +1 -0
  170. package/_esm/core/base/isomorphicWorker.js +92 -85
  171. package/_esm/core/base/isomorphicWorker.js.map +1 -1
  172. package/_esm/core/base/uint.js +7 -0
  173. package/_esm/core/base/uint.js.map +1 -1
  174. package/_esm/core/base/wasm.js +25 -31
  175. package/_esm/core/base/wasm.js.map +1 -1
  176. package/_esm/core/clients/decorators/base.js +2 -4
  177. package/_esm/core/clients/decorators/base.js.map +1 -1
  178. package/_esm/core/coprocessor/coprocessorEip712Types.js +2 -2
  179. package/_esm/core/host-contracts/canDecryptValuesFromPairs.js +5 -2
  180. package/_esm/core/host-contracts/canDecryptValuesFromPairs.js.map +1 -1
  181. package/_esm/core/host-contracts/getCoprocessorContextSignersAndThreshold-p.js +2 -2
  182. package/_esm/core/host-contracts/getCoprocessorContextSignersAndThreshold-p.js.map +1 -1
  183. package/_esm/core/host-contracts/getCurrentKmsContextAndEpoch-p.js +2 -2
  184. package/_esm/core/host-contracts/getCurrentKmsContextAndEpoch-p.js.map +1 -1
  185. package/_esm/core/host-contracts/getCurrentKmsContextId-p.js +2 -2
  186. package/_esm/core/host-contracts/getCurrentKmsContextId-p.js.map +1 -1
  187. package/_esm/core/host-contracts/getKmsContextSignersAndThreshold-p.js +2 -2
  188. package/_esm/core/host-contracts/getKmsContextSignersAndThreshold-p.js.map +1 -1
  189. package/_esm/core/kms/PublicDecryptionProof-p.js +4 -4
  190. package/_esm/core/kms/SignedDecryptionPermit-p.js +48 -245
  191. package/_esm/core/kms/SignedDecryptionPermit-p.js.map +1 -1
  192. package/_esm/core/kms/SignedDecryptionPermitV1-p.js +258 -0
  193. package/_esm/core/kms/SignedDecryptionPermitV1-p.js.map +1 -0
  194. package/_esm/core/kms/SignedDecryptionPermitV2-p.js +204 -0
  195. package/_esm/core/kms/SignedDecryptionPermitV2-p.js.map +1 -0
  196. package/_esm/core/kms/TransportKeyPair-p.js +0 -4
  197. package/_esm/core/kms/TransportKeyPair-p.js.map +1 -1
  198. package/_esm/core/kms/{createKmsDelegatedUserDecryptEip712.js → createKmsDelegatedUserDecryptEip712V1.js} +8 -8
  199. package/_esm/core/kms/createKmsDelegatedUserDecryptEip712V1.js.map +1 -0
  200. package/_esm/core/kms/createKmsPublicDecryptEip712.js +1 -1
  201. package/_esm/core/kms/{createKmsUserDecryptEip712.js → createKmsUserDecryptEip712V1.js} +18 -14
  202. package/_esm/core/kms/createKmsUserDecryptEip712V1.js.map +1 -0
  203. package/_esm/core/kms/decryptValuesFromPairs.js +18 -2
  204. package/_esm/core/kms/decryptValuesFromPairs.js.map +1 -1
  205. package/_esm/core/kms/{fetchKmsSigncryptedShares-p.js → fetchKmsSigncryptedSharesV1-p.js} +23 -13
  206. package/_esm/core/kms/fetchKmsSigncryptedSharesV1-p.js.map +1 -0
  207. package/_esm/core/kms/fetchKmsSigncryptedSharesV2-p.js +119 -0
  208. package/_esm/core/kms/fetchKmsSigncryptedSharesV2-p.js.map +1 -0
  209. package/_esm/core/kms/{kmsDelegatedUserDecryptEip712Types.js → kmsDelegatedUserDecryptEip712V1Types.js} +9 -8
  210. package/_esm/core/kms/kmsDelegatedUserDecryptEip712V1Types.js.map +1 -0
  211. package/_esm/core/kms/kmsPublicDecryptEip712Types.js +1 -1
  212. package/_esm/core/kms/{kmsUserDecryptEip712Types.js → kmsUserDecryptEip712V1Types.js} +9 -8
  213. package/_esm/core/kms/kmsUserDecryptEip712V1Types.js.map +1 -0
  214. package/_esm/core/kms/kmsUserDecryptEip712V2Types.js +2 -1
  215. package/_esm/core/kms/kmsUserDecryptEip712V2Types.js.map +1 -1
  216. package/_esm/core/kms/publicDecrypt.js +2 -2
  217. package/_esm/core/kms/utils.js +0 -18
  218. package/_esm/core/kms/utils.js.map +1 -1
  219. package/_esm/core/kms/verifyKmsPublicDecryptEip712-p.js +2 -2
  220. package/_esm/core/modules/decrypt/module/api-p.js +6 -6
  221. package/_esm/core/modules/decrypt/module/init-p.js +110 -55
  222. package/_esm/core/modules/decrypt/module/init-p.js.map +1 -1
  223. package/_esm/core/modules/encrypt/module/init-p.js +306 -57
  224. package/_esm/core/modules/encrypt/module/init-p.js.map +1 -1
  225. package/_esm/core/modules/relayer/cleartext/fetchPublicDecrypt.js +3 -3
  226. package/_esm/core/modules/relayer/cleartext/fetchUserDecrypt.js.map +1 -1
  227. package/_esm/core/modules/relayer/module/{fetchDelegatedUserDecrypt.js → fetchDelegatedUserDecryptV1.js} +1 -1
  228. package/_esm/core/modules/relayer/module/fetchDelegatedUserDecryptV1.js.map +1 -0
  229. package/_esm/core/modules/relayer/module/fetchPublicDecrypt.js +1 -1
  230. package/_esm/core/modules/relayer/module/fetchUserDecrypt.js +11 -46
  231. package/_esm/core/modules/relayer/module/fetchUserDecrypt.js.map +1 -1
  232. package/_esm/core/modules/relayer/module/fetchUserDecryptV1.js +53 -0
  233. package/_esm/core/modules/relayer/module/fetchUserDecryptV1.js.map +1 -0
  234. package/_esm/core/modules/relayer/module/fetchUserDecryptV2.js +56 -0
  235. package/_esm/core/modules/relayer/module/fetchUserDecryptV2.js.map +1 -0
  236. package/_esm/core/modules/relayer/module/guards/RelayerResponseFailed.js +10 -2
  237. package/_esm/core/modules/relayer/module/guards/RelayerResponseFailed.js.map +1 -1
  238. package/_esm/core/modules/relayer/module/guards/api-errors/RelayerApiError400NoDetails.js +6 -3
  239. package/_esm/core/modules/relayer/module/guards/api-errors/RelayerApiError400NoDetails.js.map +1 -1
  240. package/_esm/core/modules/relayer/module/guards/api-errors/RelayerApiError503.js +2 -0
  241. package/_esm/core/modules/relayer/module/guards/api-errors/RelayerApiError503.js.map +1 -1
  242. package/_esm/core/modules/relayer/module/index.js +1 -1
  243. package/_esm/core/modules/relayer/module/index.js.map +1 -1
  244. package/_esm/core/runtime/HyperWasmSolver-p.js +5 -10
  245. package/_esm/core/runtime/HyperWasmSolver-p.js.map +1 -1
  246. package/_esm/core/runtime/initFhevmEncryptRuntime-p.js +1 -1
  247. package/_esm/core/runtime/initFhevmRuntime-p.js +1 -1
  248. package/_esm/core/utils-p/decrypt/{verifyKmsDelegatedUserDecryptEip712.js → verifyKmsDelegatedUserDecryptEip712V1.js} +5 -5
  249. package/_esm/core/utils-p/decrypt/verifyKmsDelegatedUserDecryptEip712V1.js.map +1 -0
  250. package/_esm/core/utils-p/decrypt/{verifyKmsUserDecryptEip712.js → verifyKmsUserDecryptEip712V1.js} +5 -5
  251. package/_esm/core/utils-p/decrypt/verifyKmsUserDecryptEip712V1.js.map +1 -0
  252. package/_esm/core/utils-p/decrypt/verifyKmsUserDecryptEip712V2.js +27 -0
  253. package/_esm/core/utils-p/decrypt/verifyKmsUserDecryptEip712V2.js.map +1 -0
  254. package/_esm/wasm/tfhe/TfheApi.d.ts +12 -12
  255. package/_esm/wasm/tfhe/loadTfheLib.js +11 -11
  256. package/_esm/wasm/tfhe/v1.5.3/startWorkers.js +41 -20
  257. package/_esm/wasm/tfhe/v1.5.3/tfhe.d.ts +3 -0
  258. package/_esm/wasm/tfhe/{v1.6.1 → v1.6.2}/startWorkers.js +46 -25
  259. package/_esm/wasm/tfhe/{v1.6.1 → v1.6.2}/tfhe-worker.mjs +40 -40
  260. package/_esm/wasm/tfhe/{v1.6.1 → v1.6.2}/tfhe.d.ts +88 -85
  261. package/_esm/wasm/tfhe/{v1.6.1 → v1.6.2}/tfhe.js +245 -442
  262. package/_esm/wasm/tfhe/v1.6.2/tfhe_bg.wasm +0 -0
  263. package/_esm/wasm/tfhe/v1.6.2/tfhe_bg.wasm.base64.js +7 -0
  264. package/_esm/wasm/wasmBaseUrl.js +17 -54
  265. package/_types/core/actions/base/index.d.ts +0 -8
  266. package/_types/core/actions/base/index.d.ts.map +1 -1
  267. package/_types/core/actions/base/signDecryptionPermit.d.ts +4 -5
  268. package/_types/core/actions/base/signDecryptionPermit.d.ts.map +1 -1
  269. package/_types/core/actions/chain/index.d.ts +1 -7
  270. package/_types/core/actions/chain/index.d.ts.map +1 -1
  271. package/_types/core/actions/chain/parseSignedDecryptionPermit.d.ts +1 -0
  272. package/_types/core/actions/chain/parseSignedDecryptionPermit.d.ts.map +1 -1
  273. package/_types/core/actions/chain/serializeSignedDecryptionPermit.d.ts +3 -2
  274. package/_types/core/actions/chain/serializeSignedDecryptionPermit.d.ts.map +1 -1
  275. package/_types/core/actions/decrypt/canDecryptValue.d.ts +3 -4
  276. package/_types/core/actions/decrypt/canDecryptValue.d.ts.map +1 -1
  277. package/_types/core/actions/decrypt/canDecryptValues.d.ts +3 -4
  278. package/_types/core/actions/decrypt/canDecryptValues.d.ts.map +1 -1
  279. package/_types/core/actions/decrypt/canDecryptValuesFromPairs.d.ts +3 -4
  280. package/_types/core/actions/decrypt/canDecryptValuesFromPairs.d.ts.map +1 -1
  281. package/_types/core/actions/decrypt/decryptValue.d.ts.map +1 -1
  282. package/_types/core/actions/decrypt/decryptValues.d.ts.map +1 -1
  283. package/_types/core/actions/decrypt/decryptValuesFromPairs.d.ts.map +1 -1
  284. package/_types/core/actions/decrypt/index.d.ts +0 -1
  285. package/_types/core/actions/decrypt/index.d.ts.map +1 -1
  286. package/_types/core/actions/host/index.d.ts +0 -4
  287. package/_types/core/actions/host/index.d.ts.map +1 -1
  288. package/_types/core/base/bytes.d.ts.map +1 -1
  289. package/_types/core/base/cachedFetch.d.ts +1 -0
  290. package/_types/core/base/cachedFetch.d.ts.map +1 -1
  291. package/_types/core/base/environment.d.ts +92 -0
  292. package/_types/core/base/environment.d.ts.map +1 -0
  293. package/_types/core/base/errors/Sha256VerificationError.d.ts +14 -0
  294. package/_types/core/base/errors/Sha256VerificationError.d.ts.map +1 -0
  295. package/_types/core/base/inflate.d.ts +25 -0
  296. package/_types/core/base/inflate.d.ts.map +1 -0
  297. package/_types/core/base/isomorphicFs.d.ts +2 -0
  298. package/_types/core/base/isomorphicFs.d.ts.map +1 -0
  299. package/_types/core/base/isomorphicWorker.d.ts +27 -43
  300. package/_types/core/base/isomorphicWorker.d.ts.map +1 -1
  301. package/_types/core/base/uint.d.ts +2 -1
  302. package/_types/core/base/uint.d.ts.map +1 -1
  303. package/_types/core/base/wasm.d.ts +0 -8
  304. package/_types/core/base/wasm.d.ts.map +1 -1
  305. package/_types/core/clients/decorators/base.d.ts +12 -23
  306. package/_types/core/clients/decorators/base.d.ts.map +1 -1
  307. package/_types/core/host-contracts/canDecryptValuesFromPairs.d.ts +2 -2
  308. package/_types/core/host-contracts/canDecryptValuesFromPairs.d.ts.map +1 -1
  309. package/_types/core/kms/PublicDecryptionProof-p.d.ts +1 -1
  310. package/_types/core/kms/SignedDecryptionPermit-p.d.ts +15 -29
  311. package/_types/core/kms/SignedDecryptionPermit-p.d.ts.map +1 -1
  312. package/_types/core/kms/SignedDecryptionPermitV1-p.d.ts +7 -0
  313. package/_types/core/kms/SignedDecryptionPermitV1-p.d.ts.map +1 -0
  314. package/_types/core/kms/SignedDecryptionPermitV2-p.d.ts +7 -0
  315. package/_types/core/kms/SignedDecryptionPermitV2-p.d.ts.map +1 -0
  316. package/_types/core/kms/TransportKeyPair-p.d.ts.map +1 -1
  317. package/_types/core/kms/createKmsDelegatedUserDecryptEip712V1.d.ts +15 -0
  318. package/_types/core/kms/createKmsDelegatedUserDecryptEip712V1.d.ts.map +1 -0
  319. package/_types/core/kms/createKmsUserDecryptEip712V1.d.ts +26 -0
  320. package/_types/core/kms/createKmsUserDecryptEip712V1.d.ts.map +1 -0
  321. package/_types/core/kms/createKmsUserDecryptEip712V2.d.ts +1 -1
  322. package/_types/core/kms/createKmsUserDecryptEip712V2.d.ts.map +1 -1
  323. package/_types/core/kms/decryptValuesFromPairs.d.ts +4 -11
  324. package/_types/core/kms/decryptValuesFromPairs.d.ts.map +1 -1
  325. package/_types/core/kms/{fetchKmsSigncryptedShares-p.d.ts → fetchKmsSigncryptedSharesV1-p.d.ts} +10 -12
  326. package/_types/core/kms/fetchKmsSigncryptedSharesV1-p.d.ts.map +1 -0
  327. package/_types/core/kms/fetchKmsSigncryptedSharesV2-p.d.ts +28 -0
  328. package/_types/core/kms/fetchKmsSigncryptedSharesV2-p.d.ts.map +1 -0
  329. package/_types/core/kms/kmsDelegatedUserDecryptEip712V1Types.d.ts +3 -0
  330. package/_types/core/kms/kmsDelegatedUserDecryptEip712V1Types.d.ts.map +1 -0
  331. package/_types/core/kms/kmsUserDecryptEip712V1Types.d.ts +3 -0
  332. package/_types/core/kms/kmsUserDecryptEip712V1Types.d.ts.map +1 -0
  333. package/_types/core/kms/kmsUserDecryptEip712V2Types.d.ts.map +1 -1
  334. package/_types/core/kms/utils.d.ts +0 -4
  335. package/_types/core/kms/utils.d.ts.map +1 -1
  336. package/_types/core/kms/verifyKmsPublicDecryptEip712-p.d.ts +1 -1
  337. package/_types/core/modules/decrypt/module/init-p.d.ts.map +1 -1
  338. package/_types/core/modules/encrypt/module/init-p.d.ts.map +1 -1
  339. package/_types/core/modules/relayer/cleartext/fetchUserDecrypt.d.ts +2 -2
  340. package/_types/core/modules/relayer/cleartext/fetchUserDecrypt.d.ts.map +1 -1
  341. package/_types/core/modules/relayer/module/{fetchDelegatedUserDecrypt.d.ts → fetchDelegatedUserDecryptV1.d.ts} +1 -1
  342. package/_types/core/modules/relayer/module/fetchDelegatedUserDecryptV1.d.ts.map +1 -0
  343. package/_types/core/modules/relayer/module/fetchUserDecrypt.d.ts.map +1 -1
  344. package/_types/core/modules/relayer/module/fetchUserDecryptV1.d.ts +3 -0
  345. package/_types/core/modules/relayer/module/fetchUserDecryptV1.d.ts.map +1 -0
  346. package/_types/core/modules/relayer/module/fetchUserDecryptV2.d.ts +3 -0
  347. package/_types/core/modules/relayer/module/fetchUserDecryptV2.d.ts.map +1 -0
  348. package/_types/core/modules/relayer/module/guards/RelayerResponseFailed.d.ts.map +1 -1
  349. package/_types/core/modules/relayer/module/guards/api-errors/RelayerApiError400NoDetails.d.ts +1 -1
  350. package/_types/core/modules/relayer/module/guards/api-errors/RelayerApiError400NoDetails.d.ts.map +1 -1
  351. package/_types/core/modules/relayer/module/guards/api-errors/RelayerApiError503.d.ts.map +1 -1
  352. package/_types/core/modules/relayer/types.d.ts +18 -5
  353. package/_types/core/modules/relayer/types.d.ts.map +1 -1
  354. package/_types/core/types/kms.d.ts +18 -19
  355. package/_types/core/types/kms.d.ts.map +1 -1
  356. package/_types/core/types/logger.d.ts +3 -3
  357. package/_types/core/types/logger.d.ts.map +1 -1
  358. package/_types/core/types/record-p.d.ts +2 -1
  359. package/_types/core/types/record-p.d.ts.map +1 -1
  360. package/_types/core/types/relayer-p.d.ts +27 -5
  361. package/_types/core/types/relayer-p.d.ts.map +1 -1
  362. package/_types/core/types/signedDecryptionPermit.d.ts +37 -26
  363. package/_types/core/types/signedDecryptionPermit.d.ts.map +1 -1
  364. package/_types/core/types/wasmAssets.d.ts.map +1 -1
  365. package/_types/core/utils-p/decrypt/verifyKmsDelegatedUserDecryptEip712V1.d.ts +14 -0
  366. package/_types/core/utils-p/decrypt/verifyKmsDelegatedUserDecryptEip712V1.d.ts.map +1 -0
  367. package/_types/core/utils-p/decrypt/verifyKmsUserDecryptEip712V1.d.ts +14 -0
  368. package/_types/core/utils-p/decrypt/verifyKmsUserDecryptEip712V1.d.ts.map +1 -0
  369. package/_types/core/utils-p/decrypt/verifyKmsUserDecryptEip712V2.d.ts +14 -0
  370. package/_types/core/utils-p/decrypt/verifyKmsUserDecryptEip712V2.d.ts.map +1 -0
  371. package/_types/core/utils-p/runtime/recoverSigners.d.ts +2 -2
  372. package/_types/wasm/tfhe/TfheApi.d.ts +12 -12
  373. package/_types/wasm/tfhe/v1.5.3/tfhe.d.ts +3 -0
  374. package/_types/wasm/tfhe/{v1.6.1 → v1.6.2}/tfhe.d.ts +88 -85
  375. package/core/_version.ts +1 -1
  376. package/core/actions/base/index.ts +0 -42
  377. package/core/actions/base/signDecryptionPermit.ts +3 -31
  378. package/core/actions/chain/index.ts +0 -28
  379. package/core/actions/chain/parseSignedDecryptionPermit.ts +1 -0
  380. package/core/actions/chain/serializeSignedDecryptionPermit.ts +3 -2
  381. package/core/actions/decrypt/canDecryptValue.ts +2 -16
  382. package/core/actions/decrypt/canDecryptValues.ts +2 -16
  383. package/core/actions/decrypt/canDecryptValuesFromPairs.ts +2 -16
  384. package/core/actions/decrypt/decryptValue.ts +2 -1
  385. package/core/actions/decrypt/decryptValues.ts +3 -1
  386. package/core/actions/decrypt/decryptValuesFromPairs.ts +3 -1
  387. package/core/actions/decrypt/index.ts +0 -6
  388. package/core/actions/host/index.ts +0 -20
  389. package/core/base/bytes.ts +2 -1
  390. package/core/base/cachedFetch.ts +1 -0
  391. package/core/base/environment.ts +210 -0
  392. package/core/base/errors/Sha256VerificationError.ts +22 -0
  393. package/core/base/inflate.ts +373 -0
  394. package/core/base/isomorphicFs.ts +23 -0
  395. package/core/base/isomorphicWorker.ts +96 -123
  396. package/core/base/uint.ts +18 -1
  397. package/core/base/wasm.ts +28 -35
  398. package/core/clients/decorators/base.ts +13 -37
  399. package/core/coprocessor/coprocessorEip712Types.ts +2 -2
  400. package/core/host-contracts/canDecryptValuesFromPairs.ts +7 -7
  401. package/core/host-contracts/getCoprocessorContextSignersAndThreshold-p.ts +2 -2
  402. package/core/host-contracts/getCurrentKmsContextAndEpoch-p.ts +2 -2
  403. package/core/host-contracts/getCurrentKmsContextId-p.ts +2 -2
  404. package/core/host-contracts/getKmsContextSignersAndThreshold-p.ts +2 -2
  405. package/core/kms/PublicDecryptionProof-p.ts +5 -5
  406. package/core/kms/SignedDecryptionPermit-p.ts +67 -357
  407. package/core/kms/SignedDecryptionPermitV1-p.ts +350 -0
  408. package/core/kms/SignedDecryptionPermitV2-p.ts +292 -0
  409. package/core/kms/TransportKeyPair-p.ts +0 -5
  410. package/core/kms/{createKmsDelegatedUserDecryptEip712.ts → createKmsDelegatedUserDecryptEip712V1.ts} +16 -16
  411. package/core/kms/createKmsPublicDecryptEip712.ts +1 -1
  412. package/core/kms/{createKmsUserDecryptEip712.ts → createKmsUserDecryptEip712V1.ts} +31 -22
  413. package/core/kms/createKmsUserDecryptEip712V2.ts +1 -1
  414. package/core/kms/decryptValuesFromPairs.ts +34 -22
  415. package/core/kms/{fetchKmsSigncryptedShares-p.ts → fetchKmsSigncryptedSharesV1-p.ts} +35 -30
  416. package/core/kms/fetchKmsSigncryptedSharesV2-p.ts +176 -0
  417. package/core/kms/{kmsDelegatedUserDecryptEip712Types.ts → kmsDelegatedUserDecryptEip712V1Types.ts} +9 -8
  418. package/core/kms/kmsPublicDecryptEip712Types.ts +1 -1
  419. package/core/kms/{kmsUserDecryptEip712Types.ts → kmsUserDecryptEip712V1Types.ts} +9 -8
  420. package/core/kms/kmsUserDecryptEip712V2Types.ts +2 -1
  421. package/core/kms/publicDecrypt.ts +2 -2
  422. package/core/kms/utils.ts +0 -32
  423. package/core/kms/verifyKmsPublicDecryptEip712-p.ts +3 -3
  424. package/core/modules/decrypt/module/api-p.ts +8 -8
  425. package/core/modules/decrypt/module/init-p.ts +149 -60
  426. package/core/modules/encrypt/module/init-p.ts +377 -67
  427. package/core/modules/relayer/cleartext/fetchPublicDecrypt.ts +3 -3
  428. package/core/modules/relayer/cleartext/fetchUserDecrypt.ts +2 -2
  429. package/core/modules/relayer/module/fetchPublicDecrypt.ts +1 -1
  430. package/core/modules/relayer/module/fetchUserDecrypt.ts +20 -56
  431. package/core/modules/relayer/module/fetchUserDecryptV1.ts +69 -0
  432. package/core/modules/relayer/module/fetchUserDecryptV2.ts +71 -0
  433. package/core/modules/relayer/module/guards/RelayerResponseFailed.ts +10 -2
  434. package/core/modules/relayer/module/guards/api-errors/RelayerApiError400NoDetails.ts +6 -3
  435. package/core/modules/relayer/module/guards/api-errors/RelayerApiError503.ts +2 -0
  436. package/core/modules/relayer/module/index.ts +1 -1
  437. package/core/modules/relayer/types.ts +24 -5
  438. package/core/runtime/HyperWasmSolver-p.ts +5 -9
  439. package/core/runtime/initFhevmEncryptRuntime-p.ts +1 -1
  440. package/core/runtime/initFhevmRuntime-p.ts +1 -1
  441. package/core/types/kms.ts +40 -28
  442. package/core/types/logger.ts +3 -3
  443. package/core/types/record-p.ts +2 -1
  444. package/core/types/relayer-p.ts +48 -5
  445. package/core/types/signedDecryptionPermit.ts +47 -26
  446. package/core/types/wasmAssets.ts +58 -0
  447. package/core/utils-p/decrypt/{verifyKmsDelegatedUserDecryptEip712.ts → verifyKmsDelegatedUserDecryptEip712V1.ts} +9 -9
  448. package/core/utils-p/decrypt/{verifyKmsUserDecryptEip712.ts → verifyKmsUserDecryptEip712V1.ts} +9 -9
  449. package/core/utils-p/decrypt/verifyKmsUserDecryptEip712V2.ts +43 -0
  450. package/core/utils-p/runtime/recoverSigners.ts +2 -2
  451. package/package.json +1 -1
  452. package/wasm/tfhe/TfheApi.d.ts +12 -12
  453. package/wasm/tfhe/loadTfheLib.js +11 -11
  454. package/wasm/tfhe/v1.5.3/startWorkers.js +41 -20
  455. package/wasm/tfhe/v1.5.3/tfhe.d.ts +3 -0
  456. package/wasm/tfhe/v1.6.0-dev/startWorkers.js +41 -20
  457. package/wasm/tfhe/v1.6.0-dev/tfhe.d.ts +3 -0
  458. package/wasm/tfhe/{v1.6.1 → v1.6.2}/startWorkers.js +46 -25
  459. package/wasm/tfhe/{v1.6.1 → v1.6.2}/tfhe-worker.mjs +40 -40
  460. package/wasm/tfhe/{v1.6.1 → v1.6.2}/tfhe.d.ts +88 -85
  461. package/wasm/tfhe/{v1.6.1 → v1.6.2}/tfhe.js +245 -442
  462. package/wasm/tfhe/v1.6.2/tfhe_bg.wasm +0 -0
  463. package/wasm/tfhe/v1.6.2/tfhe_bg.wasm.base64.js +7 -0
  464. package/wasm/wasmBaseUrl.js +17 -54
  465. package/_cjs/core/actions/base/createVerifiedInputProofFromRawBytes.js +0 -10
  466. package/_cjs/core/actions/base/createVerifiedInputProofFromRawBytes.js.map +0 -1
  467. package/_cjs/core/actions/base/fetchKmsSigncryptedShares.js +0 -19
  468. package/_cjs/core/actions/base/fetchKmsSigncryptedShares.js.map +0 -1
  469. package/_cjs/core/actions/base/fetchVerifiedInputProof.js +0 -11
  470. package/_cjs/core/actions/base/fetchVerifiedInputProof.js.map +0 -1
  471. package/_cjs/core/actions/base/readKmsSignersContext.js +0 -11
  472. package/_cjs/core/actions/base/readKmsSignersContext.js.map +0 -1
  473. package/_cjs/core/actions/base/verifyHandlesCoprocessorSignatures.js +0 -31
  474. package/_cjs/core/actions/base/verifyHandlesCoprocessorSignatures.js.map +0 -1
  475. package/_cjs/core/actions/base/verifyInputProof.js +0 -24
  476. package/_cjs/core/actions/base/verifyInputProof.js.map +0 -1
  477. package/_cjs/core/actions/base/verifyZkProofCoprocessorSignatures.js +0 -17
  478. package/_cjs/core/actions/base/verifyZkProofCoprocessorSignatures.js.map +0 -1
  479. package/_cjs/core/actions/chain/createCoprocessorEip712Domain.js +0 -11
  480. package/_cjs/core/actions/chain/createCoprocessorEip712Domain.js.map +0 -1
  481. package/_cjs/core/actions/chain/createKmsDelegatedUserDecryptEip712.js +0 -17
  482. package/_cjs/core/actions/chain/createKmsDelegatedUserDecryptEip712.js.map +0 -1
  483. package/_cjs/core/actions/chain/createKmsEip712Domain.js +0 -11
  484. package/_cjs/core/actions/chain/createKmsEip712Domain.js.map +0 -1
  485. package/_cjs/core/actions/chain/createKmsUserDecryptEip712.js +0 -16
  486. package/_cjs/core/actions/chain/createKmsUserDecryptEip712.js.map +0 -1
  487. package/_cjs/core/actions/chain/verifyKmsDelegatedUserDecryptEip712.js +0 -8
  488. package/_cjs/core/actions/chain/verifyKmsDelegatedUserDecryptEip712.js.map +0 -1
  489. package/_cjs/core/actions/chain/verifyKmsUserDecryptEip712.js +0 -8
  490. package/_cjs/core/actions/chain/verifyKmsUserDecryptEip712.js.map +0 -1
  491. package/_cjs/core/actions/decrypt/decryptKmsSigncryptedShares.js +0 -13
  492. package/_cjs/core/actions/decrypt/decryptKmsSigncryptedShares.js.map +0 -1
  493. package/_cjs/core/kms/createKmsDelegatedUserDecryptEip712.js.map +0 -1
  494. package/_cjs/core/kms/createKmsUserDecryptEip712.js.map +0 -1
  495. package/_cjs/core/kms/fetchKmsSigncryptedShares-p.js.map +0 -1
  496. package/_cjs/core/kms/kmsDelegatedUserDecryptEip712Types.js.map +0 -1
  497. package/_cjs/core/kms/kmsUserDecryptEip712Types.js.map +0 -1
  498. package/_cjs/core/modules/relayer/module/fetchDelegatedUserDecrypt.js.map +0 -1
  499. package/_cjs/core/utils-p/decrypt/verifyKmsDelegatedUserDecryptEip712.js.map +0 -1
  500. package/_cjs/core/utils-p/decrypt/verifyKmsUserDecryptEip712.js.map +0 -1
  501. package/_cjs/wasm/tfhe/v1.6.1/startWorkers.js.map +0 -7
  502. package/_cjs/wasm/tfhe/v1.6.1/tfhe.js.map +0 -7
  503. package/_cjs/wasm/tfhe/v1.6.1/tfhe_bg.wasm +0 -0
  504. package/_cjs/wasm/tfhe/v1.6.1/tfhe_bg.wasm.base64.js +0 -35
  505. package/_cjs/wasm/tfhe/v1.6.1/tfhe_bg.wasm.base64.js.map +0 -7
  506. package/_esm/core/actions/base/createVerifiedInputProofFromRawBytes.js +0 -7
  507. package/_esm/core/actions/base/createVerifiedInputProofFromRawBytes.js.map +0 -1
  508. package/_esm/core/actions/base/fetchKmsSigncryptedShares.js +0 -17
  509. package/_esm/core/actions/base/fetchKmsSigncryptedShares.js.map +0 -1
  510. package/_esm/core/actions/base/fetchVerifiedInputProof.js +0 -8
  511. package/_esm/core/actions/base/fetchVerifiedInputProof.js.map +0 -1
  512. package/_esm/core/actions/base/readKmsSignersContext.js +0 -10
  513. package/_esm/core/actions/base/readKmsSignersContext.js.map +0 -1
  514. package/_esm/core/actions/base/verifyHandlesCoprocessorSignatures.js +0 -35
  515. package/_esm/core/actions/base/verifyHandlesCoprocessorSignatures.js.map +0 -1
  516. package/_esm/core/actions/base/verifyInputProof.js +0 -22
  517. package/_esm/core/actions/base/verifyInputProof.js.map +0 -1
  518. package/_esm/core/actions/base/verifyZkProofCoprocessorSignatures.js +0 -14
  519. package/_esm/core/actions/base/verifyZkProofCoprocessorSignatures.js.map +0 -1
  520. package/_esm/core/actions/chain/createCoprocessorEip712Domain.js +0 -8
  521. package/_esm/core/actions/chain/createCoprocessorEip712Domain.js.map +0 -1
  522. package/_esm/core/actions/chain/createKmsDelegatedUserDecryptEip712.js +0 -15
  523. package/_esm/core/actions/chain/createKmsDelegatedUserDecryptEip712.js.map +0 -1
  524. package/_esm/core/actions/chain/createKmsEip712Domain.js +0 -8
  525. package/_esm/core/actions/chain/createKmsEip712Domain.js.map +0 -1
  526. package/_esm/core/actions/chain/createKmsUserDecryptEip712.js +0 -14
  527. package/_esm/core/actions/chain/createKmsUserDecryptEip712.js.map +0 -1
  528. package/_esm/core/actions/chain/verifyKmsDelegatedUserDecryptEip712.js +0 -5
  529. package/_esm/core/actions/chain/verifyKmsDelegatedUserDecryptEip712.js.map +0 -1
  530. package/_esm/core/actions/chain/verifyKmsUserDecryptEip712.js +0 -5
  531. package/_esm/core/actions/chain/verifyKmsUserDecryptEip712.js.map +0 -1
  532. package/_esm/core/actions/decrypt/decryptKmsSigncryptedShares.js +0 -11
  533. package/_esm/core/actions/decrypt/decryptKmsSigncryptedShares.js.map +0 -1
  534. package/_esm/core/kms/createKmsDelegatedUserDecryptEip712.js.map +0 -1
  535. package/_esm/core/kms/createKmsUserDecryptEip712.js.map +0 -1
  536. package/_esm/core/kms/fetchKmsSigncryptedShares-p.js.map +0 -1
  537. package/_esm/core/kms/kmsDelegatedUserDecryptEip712Types.js.map +0 -1
  538. package/_esm/core/kms/kmsUserDecryptEip712Types.js.map +0 -1
  539. package/_esm/core/modules/relayer/module/fetchDelegatedUserDecrypt.js.map +0 -1
  540. package/_esm/core/utils-p/decrypt/verifyKmsDelegatedUserDecryptEip712.js.map +0 -1
  541. package/_esm/core/utils-p/decrypt/verifyKmsUserDecryptEip712.js.map +0 -1
  542. package/_esm/wasm/tfhe/v1.6.1/tfhe_bg.wasm +0 -0
  543. package/_esm/wasm/tfhe/v1.6.1/tfhe_bg.wasm.base64.js +0 -7
  544. package/_types/core/actions/base/createVerifiedInputProofFromRawBytes.d.ts +0 -14
  545. package/_types/core/actions/base/createVerifiedInputProofFromRawBytes.d.ts.map +0 -1
  546. package/_types/core/actions/base/fetchKmsSigncryptedShares.d.ts +0 -41
  547. package/_types/core/actions/base/fetchKmsSigncryptedShares.d.ts.map +0 -1
  548. package/_types/core/actions/base/fetchVerifiedInputProof.d.ts +0 -14
  549. package/_types/core/actions/base/fetchVerifiedInputProof.d.ts.map +0 -1
  550. package/_types/core/actions/base/readKmsSignersContext.d.ts +0 -6
  551. package/_types/core/actions/base/readKmsSignersContext.d.ts.map +0 -1
  552. package/_types/core/actions/base/verifyHandlesCoprocessorSignatures.d.ts +0 -14
  553. package/_types/core/actions/base/verifyHandlesCoprocessorSignatures.d.ts.map +0 -1
  554. package/_types/core/actions/base/verifyInputProof.d.ts +0 -14
  555. package/_types/core/actions/base/verifyInputProof.d.ts.map +0 -1
  556. package/_types/core/actions/base/verifyZkProofCoprocessorSignatures.d.ts +0 -11
  557. package/_types/core/actions/base/verifyZkProofCoprocessorSignatures.d.ts.map +0 -1
  558. package/_types/core/actions/chain/createCoprocessorEip712Domain.d.ts +0 -7
  559. package/_types/core/actions/chain/createCoprocessorEip712Domain.d.ts.map +0 -1
  560. package/_types/core/actions/chain/createKmsDelegatedUserDecryptEip712.d.ts +0 -15
  561. package/_types/core/actions/chain/createKmsDelegatedUserDecryptEip712.d.ts.map +0 -1
  562. package/_types/core/actions/chain/createKmsEip712Domain.d.ts +0 -7
  563. package/_types/core/actions/chain/createKmsEip712Domain.d.ts.map +0 -1
  564. package/_types/core/actions/chain/createKmsUserDecryptEip712.d.ts +0 -14
  565. package/_types/core/actions/chain/createKmsUserDecryptEip712.d.ts.map +0 -1
  566. package/_types/core/actions/chain/verifyKmsDelegatedUserDecryptEip712.d.ts +0 -7
  567. package/_types/core/actions/chain/verifyKmsDelegatedUserDecryptEip712.d.ts.map +0 -1
  568. package/_types/core/actions/chain/verifyKmsUserDecryptEip712.d.ts +0 -7
  569. package/_types/core/actions/chain/verifyKmsUserDecryptEip712.d.ts.map +0 -1
  570. package/_types/core/actions/decrypt/decryptKmsSigncryptedShares.d.ts +0 -13
  571. package/_types/core/actions/decrypt/decryptKmsSigncryptedShares.d.ts.map +0 -1
  572. package/_types/core/kms/createKmsDelegatedUserDecryptEip712.d.ts +0 -15
  573. package/_types/core/kms/createKmsDelegatedUserDecryptEip712.d.ts.map +0 -1
  574. package/_types/core/kms/createKmsUserDecryptEip712.d.ts +0 -26
  575. package/_types/core/kms/createKmsUserDecryptEip712.d.ts.map +0 -1
  576. package/_types/core/kms/fetchKmsSigncryptedShares-p.d.ts.map +0 -1
  577. package/_types/core/kms/kmsDelegatedUserDecryptEip712Types.d.ts +0 -3
  578. package/_types/core/kms/kmsDelegatedUserDecryptEip712Types.d.ts.map +0 -1
  579. package/_types/core/kms/kmsUserDecryptEip712Types.d.ts +0 -3
  580. package/_types/core/kms/kmsUserDecryptEip712Types.d.ts.map +0 -1
  581. package/_types/core/modules/relayer/module/fetchDelegatedUserDecrypt.d.ts.map +0 -1
  582. package/_types/core/utils-p/decrypt/verifyKmsDelegatedUserDecryptEip712.d.ts +0 -14
  583. package/_types/core/utils-p/decrypt/verifyKmsDelegatedUserDecryptEip712.d.ts.map +0 -1
  584. package/_types/core/utils-p/decrypt/verifyKmsUserDecryptEip712.d.ts +0 -14
  585. package/_types/core/utils-p/decrypt/verifyKmsUserDecryptEip712.d.ts.map +0 -1
  586. package/core/actions/base/createVerifiedInputProofFromRawBytes.ts +0 -24
  587. package/core/actions/base/fetchKmsSigncryptedShares.ts +0 -83
  588. package/core/actions/base/fetchVerifiedInputProof.ts +0 -25
  589. package/core/actions/base/readKmsSignersContext.ts +0 -20
  590. package/core/actions/base/verifyHandlesCoprocessorSignatures.ts +0 -60
  591. package/core/actions/base/verifyInputProof.ts +0 -45
  592. package/core/actions/base/verifyZkProofCoprocessorSignatures.ts +0 -32
  593. package/core/actions/chain/createCoprocessorEip712Domain.ts +0 -16
  594. package/core/actions/chain/createKmsDelegatedUserDecryptEip712.ts +0 -36
  595. package/core/actions/chain/createKmsEip712Domain.ts +0 -16
  596. package/core/actions/chain/createKmsUserDecryptEip712.ts +0 -34
  597. package/core/actions/chain/verifyKmsDelegatedUserDecryptEip712.ts +0 -16
  598. package/core/actions/chain/verifyKmsUserDecryptEip712.ts +0 -16
  599. package/core/actions/decrypt/decryptKmsSigncryptedShares.ts +0 -34
  600. package/wasm/tfhe/v1.6.1/tfhe_bg.wasm +0 -0
  601. package/wasm/tfhe/v1.6.1/tfhe_bg.wasm.base64.js +0 -7
  602. /package/_cjs/wasm/tfhe/{v1.6.1 → v1.6.2}/tfhe_bg.wasm.base64.d.ts +0 -0
  603. /package/_esm/wasm/tfhe/{v1.6.1 → v1.6.2}/tfhe_bg.wasm.base64.d.ts +0 -0
  604. /package/_types/wasm/tfhe/{v1.6.1 → v1.6.2}/tfhe_bg.wasm.base64.d.ts +0 -0
  605. /package/core/modules/relayer/module/{fetchDelegatedUserDecrypt.ts → fetchDelegatedUserDecryptV1.ts} +0 -0
  606. /package/wasm/tfhe/{v1.6.1 → v1.6.2}/tfhe_bg.wasm.base64.d.ts +0 -0
@@ -1,4 +1,4 @@
1
- import type { KmsDelegatedUserDecryptEip712 } from '../types/kms.js';
1
+ import type { KmsDelegatedUserDecryptEip712V1 } from '../types/kms.js';
2
2
  import type { BytesHex } from '../types/primitives.js';
3
3
  import type { ErrorMetadataParams } from '../base/errors/ErrorBase.js';
4
4
  import {
@@ -11,13 +11,13 @@ import { asBytesHex, assertIsBytesHex, bytesToHexLarge } from '../base/bytes.js'
11
11
  import { ensure0x } from '../base/string.js';
12
12
  import { assertIsUintNumber } from '../base/uint.js';
13
13
  import { createKmsEip712Domain } from './createKmsEip712Domain.js';
14
- import { _assertIsKmsUserDecryptEip712Base } from './createKmsUserDecryptEip712.js';
15
- import { kmsDelegatedUserDecryptEip712Types } from './kmsDelegatedUserDecryptEip712Types.js';
14
+ import { _assertIsKmsUserDecryptEip712V1Base } from './createKmsUserDecryptEip712V1.js';
15
+ import { kmsDelegatedUserDecryptEip712V1Types } from './kmsDelegatedUserDecryptEip712V1Types.js';
16
16
  import { assertIsKmsExtraData } from './kmsExtraData.js';
17
17
 
18
18
  ////////////////////////////////////////////////////////////////////////////////
19
19
 
20
- export type CreateKmsDelegatedUserDecryptEip712Parameters = {
20
+ export type CreateKmsDelegatedUserDecryptEip712V1Parameters = {
21
21
  readonly verifyingContractAddressDecryption: string;
22
22
  readonly chainId: number | bigint;
23
23
  readonly publicKey: string | Uint8Array;
@@ -29,12 +29,12 @@ export type CreateKmsDelegatedUserDecryptEip712Parameters = {
29
29
  };
30
30
 
31
31
  ////////////////////////////////////////////////////////////////////////////////
32
- // createKmsDelegatedUserDecryptEip712
32
+ // createKmsDelegatedUserDecryptEip712V1
33
33
  ////////////////////////////////////////////////////////////////////////////////
34
34
 
35
- export function createKmsDelegatedUserDecryptEip712(
36
- parameters: CreateKmsDelegatedUserDecryptEip712Parameters,
37
- ): KmsDelegatedUserDecryptEip712 {
35
+ export function createKmsDelegatedUserDecryptEip712V1(
36
+ parameters: CreateKmsDelegatedUserDecryptEip712V1Parameters,
37
+ ): KmsDelegatedUserDecryptEip712V1 {
38
38
  const {
39
39
  verifyingContractAddressDecryption,
40
40
  chainId,
@@ -58,15 +58,15 @@ export function createKmsDelegatedUserDecryptEip712(
58
58
 
59
59
  const checksummedDelegatorAddress = addressToChecksummedAddress(delegatorAddress);
60
60
 
61
- const primaryType: KmsDelegatedUserDecryptEip712['primaryType'] = 'DelegatedUserDecryptRequestVerification';
61
+ const primaryType: KmsDelegatedUserDecryptEip712V1['primaryType'] = 'DelegatedUserDecryptRequestVerification';
62
62
 
63
63
  const domain = createKmsEip712Domain({
64
64
  chainId,
65
65
  verifyingContractAddressDecryption,
66
66
  });
67
67
 
68
- const eip712: KmsDelegatedUserDecryptEip712 = {
69
- types: kmsDelegatedUserDecryptEip712Types,
68
+ const eip712: KmsDelegatedUserDecryptEip712V1 = {
69
+ types: kmsDelegatedUserDecryptEip712V1Types,
70
70
  primaryType,
71
71
  domain,
72
72
  message: {
@@ -92,21 +92,21 @@ export function createKmsDelegatedUserDecryptEip712(
92
92
 
93
93
  ////////////////////////////////////////////////////////////////////////////////
94
94
 
95
- export function assertIsKmsDelegatedUserDecryptEip712(
95
+ export function assertIsKmsDelegatedUserDecryptEip712V1(
96
96
  value: unknown,
97
97
  name: string,
98
98
  options: ErrorMetadataParams,
99
- ): asserts value is KmsDelegatedUserDecryptEip712 {
100
- _assertIsKmsUserDecryptEip712Base(
99
+ ): asserts value is KmsDelegatedUserDecryptEip712V1 {
100
+ _assertIsKmsUserDecryptEip712V1Base(
101
101
  value,
102
102
  name,
103
- 'DelegatedUserDecryptRequestVerification' satisfies KmsDelegatedUserDecryptEip712['primaryType'],
103
+ 'DelegatedUserDecryptRequestVerification' satisfies KmsDelegatedUserDecryptEip712V1['primaryType'],
104
104
  options,
105
105
  );
106
106
 
107
107
  assertRecordChecksummedAddressProperty(
108
108
  value.message,
109
- 'delegatorAddress' satisfies keyof KmsDelegatedUserDecryptEip712['message'],
109
+ 'delegatorAddress' satisfies keyof KmsDelegatedUserDecryptEip712V1['message'],
110
110
  `${name}.message`,
111
111
  options,
112
112
  );
@@ -16,7 +16,7 @@ export type CreateKmsPublicDecryptEip712Parameters = {
16
16
  };
17
17
 
18
18
  ////////////////////////////////////////////////////////////////////////////////
19
- // createKmsPublicDecryptEIP712
19
+ // createKmsPublicDecryptEip712
20
20
  ////////////////////////////////////////////////////////////////////////////////
21
21
 
22
22
  export function createKmsPublicDecryptEip712(
@@ -1,7 +1,7 @@
1
1
  import type { ErrorMetadataParams } from '../base/errors/ErrorBase.js';
2
- import type { KmsEip712Domain, KmsUserDecryptEip712 } from '../types/kms.js';
2
+ import type { KmsEip712Domain, KmsUserDecryptEip712V1 } from '../types/kms.js';
3
3
  import type { BytesHex } from '../types/primitives.js';
4
- import type { KmsUserDecryptEip712Message } from '../types/kms.js';
4
+ import type { KmsUserDecryptEip712V1Message } from '../types/kms.js';
5
5
  import {
6
6
  addressToChecksummedAddress,
7
7
  assertIsAddress,
@@ -14,12 +14,13 @@ import { assertRecordNonNullableProperty } from '../base/record.js';
14
14
  import { assertRecordStringProperty, ensure0x } from '../base/string.js';
15
15
  import { assertIsUint64, assertIsUintNumber } from '../base/uint.js';
16
16
  import { assertIsKmsExtraData } from './kmsExtraData.js';
17
- import { kmsUserDecryptEip712Types } from './kmsUserDecryptEip712Types.js';
17
+ import { kmsUserDecryptEip712V1Types } from './kmsUserDecryptEip712V1Types.js';
18
+ import { kmsDelegatedUserDecryptEip712V1Types } from './kmsDelegatedUserDecryptEip712V1Types.js';
18
19
  import { isDeepEqual } from '../base/object.js';
19
20
 
20
21
  ////////////////////////////////////////////////////////////////////////////////
21
22
 
22
- export type CreateKmsUserDecryptEip712Parameters = {
23
+ export type CreateKmsUserDecryptEip712V1Parameters = {
23
24
  readonly verifyingContractAddressDecryption: string;
24
25
  readonly chainId: number | bigint;
25
26
  readonly publicKey: string | Uint8Array;
@@ -30,10 +31,12 @@ export type CreateKmsUserDecryptEip712Parameters = {
30
31
  };
31
32
 
32
33
  ////////////////////////////////////////////////////////////////////////////////
33
- // createKmsUserDecryptEip712
34
+ // createKmsUserDecryptEip712V1
34
35
  ////////////////////////////////////////////////////////////////////////////////
35
36
 
36
- export function createKmsUserDecryptEip712(parameters: CreateKmsUserDecryptEip712Parameters): KmsUserDecryptEip712 {
37
+ export function createKmsUserDecryptEip712V1(
38
+ parameters: CreateKmsUserDecryptEip712V1Parameters,
39
+ ): KmsUserDecryptEip712V1 {
37
40
  const {
38
41
  verifyingContractAddressDecryption,
39
42
  chainId,
@@ -55,7 +58,7 @@ export function createKmsUserDecryptEip712(parameters: CreateKmsUserDecryptEip71
55
58
 
56
59
  const checksummedContractAddresses = contractAddresses.map(addressToChecksummedAddress);
57
60
 
58
- const primaryType: KmsUserDecryptEip712['primaryType'] = 'UserDecryptRequestVerification';
61
+ const primaryType: KmsUserDecryptEip712V1['primaryType'] = 'UserDecryptRequestVerification';
59
62
 
60
63
  const domain = createKmsEip712Domain({
61
64
  chainId,
@@ -64,7 +67,7 @@ export function createKmsUserDecryptEip712(parameters: CreateKmsUserDecryptEip71
64
67
 
65
68
  const eip712 = {
66
69
  domain,
67
- types: kmsUserDecryptEip712Types,
70
+ types: kmsUserDecryptEip712V1Types,
68
71
  primaryType,
69
72
  message: {
70
73
  publicKey: publicKeyBytesHex,
@@ -88,25 +91,25 @@ export function createKmsUserDecryptEip712(parameters: CreateKmsUserDecryptEip71
88
91
 
89
92
  ////////////////////////////////////////////////////////////////////////////////
90
93
 
91
- export function assertIsKmsUserDecryptEip712(
94
+ export function assertIsKmsUserDecryptEip712V1(
92
95
  value: unknown,
93
96
  name: string,
94
97
  options: ErrorMetadataParams,
95
- ): asserts value is KmsUserDecryptEip712 {
96
- _assertIsKmsUserDecryptEip712Base(
98
+ ): asserts value is KmsUserDecryptEip712V1 {
99
+ _assertIsKmsUserDecryptEip712V1Base(
97
100
  value,
98
101
  name,
99
- 'UserDecryptRequestVerification' satisfies KmsUserDecryptEip712['primaryType'],
102
+ 'UserDecryptRequestVerification' satisfies KmsUserDecryptEip712V1['primaryType'],
100
103
  options,
101
104
  );
102
105
  }
103
106
 
104
107
  /**
105
108
  * Validates the common structure shared by both
106
- * {@link KmsUserDecryptEip712} and {@link KmsDelegatedUserDecryptEIP712}:
109
+ * {@link KmsUserDecryptEip712V1} and {@link KmsDelegatedUserDecryptEip712V1}:
107
110
  * domain, types, primaryType, and base message fields.
108
111
  */
109
- export function _assertIsKmsUserDecryptEip712Base(
112
+ export function _assertIsKmsUserDecryptEip712V1Base(
110
113
  value: unknown,
111
114
  name: string,
112
115
  primaryType: string,
@@ -115,14 +118,20 @@ export function _assertIsKmsUserDecryptEip712Base(
115
118
  readonly domain: KmsEip712Domain;
116
119
  readonly types: object;
117
120
  readonly primaryType: string;
118
- readonly message: KmsUserDecryptEip712Message;
121
+ readonly message: KmsUserDecryptEip712V1Message;
119
122
  } {
120
123
  assertRecordNonNullableProperty(value, 'domain', name, options);
121
124
  assertIsKmsEip712Domain((value as Record<string, unknown>).domain, `${name}.domain`, options);
122
125
 
123
126
  assertRecordNonNullableProperty(value, 'types', name, options);
124
- if (!isDeepEqual(value.types, kmsUserDecryptEip712Types)) {
125
- throw new Error('Unexpected KmsUserDecryptEip712Types');
127
+
128
+ const expectedTypes =
129
+ primaryType === 'DelegatedUserDecryptRequestVerification'
130
+ ? kmsDelegatedUserDecryptEip712V1Types
131
+ : kmsUserDecryptEip712V1Types;
132
+
133
+ if (!isDeepEqual(value.types, expectedTypes)) {
134
+ throw new Error('Unexpected KmsUserDecryptEip712V1Types');
126
135
  }
127
136
 
128
137
  assertRecordStringProperty(value, 'primaryType', name, {
@@ -132,19 +141,19 @@ export function _assertIsKmsUserDecryptEip712Base(
132
141
 
133
142
  assertRecordNonNullableProperty(value, 'message', name, options);
134
143
  const msg = (value as Record<string, unknown>).message as Record<string, unknown>;
135
- _assertIsKmsUserDecryptEip712Message(msg, `${name}.message`, options);
144
+ _assertIsKmsUserDecryptEip712V1Message(msg, `${name}.message`, options);
136
145
  }
137
146
 
138
147
  /**
139
148
  * Validates the common message fields shared by both
140
- * {@link KmsUserDecryptEip712} and {@link KmsDelegatedUserDecryptEIP712}.
149
+ * {@link KmsUserDecryptEip712V1} and {@link KmsDelegatedUserDecryptEip712V1}.
141
150
  */
142
- function _assertIsKmsUserDecryptEip712Message(
151
+ function _assertIsKmsUserDecryptEip712V1Message(
143
152
  msg: unknown,
144
153
  msgName: string,
145
154
  options: ErrorMetadataParams,
146
- ): asserts msg is KmsUserDecryptEip712Message {
147
- type MessageType = KmsUserDecryptEip712['message'];
155
+ ): asserts msg is KmsUserDecryptEip712V1Message {
156
+ type MessageType = KmsUserDecryptEip712V1['message'];
148
157
  assertRecordBytesHexProperty(msg, 'publicKey' satisfies keyof MessageType, msgName, options);
149
158
  assertRecordChecksummedAddressArrayProperty(msg, 'contractAddresses' satisfies keyof MessageType, msgName, options);
150
159
  assertRecordStringProperty(msg, 'startTimestamp' satisfies keyof MessageType, msgName, options);
@@ -27,7 +27,7 @@ export type CreateKmsUserDecryptEip712V2Parameters = {
27
27
  readonly publicKey: string | Uint8Array;
28
28
  readonly allowedContracts: readonly string[];
29
29
  readonly startTimestamp: number | bigint;
30
- readonly durationSeconds: number | bigint;
30
+ readonly durationSeconds: bigint;
31
31
  readonly extraData: string;
32
32
  };
33
33
 
@@ -7,10 +7,13 @@ import type { FhevmChain } from '../types/fhevmChain.js';
7
7
  import type { KmsSigncryptedShares } from '../types/kms.js';
8
8
  import type { ChecksummedAddress, TypedValue } from '../types/primitives.js';
9
9
  import type { RelayerDelegatedUserDecryptOptions, RelayerUserDecryptOptions } from '../types/relayer.js';
10
- import type { SignedDelegatedDecryptionPermit, SignedSelfDecryptionPermit } from '../types/signedDecryptionPermit.js';
10
+ import type { SignedDecryptionPermit } from '../types/signedDecryptionPermit.js';
11
11
  import type { TransportKeyPair } from './TransportKeyPair-p.js';
12
+ import { isSemverStrictlyBefore } from '../base/semver.js';
13
+ import { getResolvedProtocolVersion } from '../runtime/CoreFhevm-p.js';
12
14
  import { decryptKmsSigncryptedShares } from './decryptKmsSigncryptedShares-p.js';
13
- import { fetchKmsSigncryptedShares } from './fetchKmsSigncryptedShares-p.js';
15
+ import { fetchKmsSigncryptedSharesV1 } from './fetchKmsSigncryptedSharesV1-p.js';
16
+ import { fetchKmsSigncryptedSharesV2 } from './fetchKmsSigncryptedSharesV2-p.js';
14
17
 
15
18
  ////////////////////////////////////////////////////////////////////////////////
16
19
 
@@ -22,25 +25,19 @@ type Context = {
22
25
  readonly options: { readonly batchRpcCalls: boolean };
23
26
  };
24
27
 
25
- type Parameters =
26
- | {
27
- readonly pairs: ReadonlyArray<{
28
- readonly handle: Handle;
29
- readonly contractAddress: ChecksummedAddress;
30
- }>;
31
- readonly signedPermit: SignedSelfDecryptionPermit;
32
- readonly transportKeyPair: TransportKeyPair;
33
- readonly options?: RelayerUserDecryptOptions | undefined;
34
- }
35
- | {
36
- readonly pairs: ReadonlyArray<{
37
- readonly handle: Handle;
38
- readonly contractAddress: ChecksummedAddress;
39
- }>;
40
- readonly signedPermit: SignedDelegatedDecryptionPermit;
41
- readonly transportKeyPair: TransportKeyPair;
42
- readonly options?: RelayerDelegatedUserDecryptOptions | undefined;
43
- };
28
+ type Parameters = {
29
+ readonly pairs: ReadonlyArray<{
30
+ readonly handle: Handle;
31
+ readonly contractAddress: ChecksummedAddress;
32
+ // ownerAddress is only relevant for V2 (protocol >= 0.14.0). When omitted,
33
+ // fetchKmsSigncryptedSharesV2 defaults to userAddress (direct-access path).
34
+ // Provide it explicitly only for delegated handles where ownerAddress !== userAddress.
35
+ readonly ownerAddress?: ChecksummedAddress | undefined;
36
+ }>;
37
+ readonly signedPermit: SignedDecryptionPermit;
38
+ readonly transportKeyPair: TransportKeyPair;
39
+ readonly options?: RelayerUserDecryptOptions | RelayerDelegatedUserDecryptOptions | undefined;
40
+ };
44
41
 
45
42
  export type ReturnType = readonly TypedValue[];
46
43
 
@@ -49,7 +46,22 @@ export type ReturnType = readonly TypedValue[];
49
46
  export async function decryptValuesFromPairs(fhevm: Context, parameters: Parameters): Promise<ReturnType> {
50
47
  const { transportKeyPair: transportKeyPair } = parameters;
51
48
 
52
- const kmsSigncryptedShares: KmsSigncryptedShares = await fetchKmsSigncryptedShares(fhevm, parameters);
49
+ const protocolVersion = getResolvedProtocolVersion(fhevm);
50
+ if (protocolVersion === undefined) {
51
+ throw new Error(
52
+ 'Unable to resolve protocol version from context, ensure proper initialization of the FhevmRuntime and FhevmChain.',
53
+ );
54
+ }
55
+
56
+ let kmsSigncryptedShares: KmsSigncryptedShares;
57
+ if (isSemverStrictlyBefore(protocolVersion.version, '0.14.0')) {
58
+ kmsSigncryptedShares = await fetchKmsSigncryptedSharesV1(fhevm, parameters);
59
+ } else {
60
+ kmsSigncryptedShares = await fetchKmsSigncryptedSharesV2(fhevm, {
61
+ ...parameters,
62
+ options: parameters.options as RelayerUserDecryptOptions | undefined,
63
+ });
64
+ }
53
65
 
54
66
  // Using the `KmsSigncryptedShares` decrypt and reconstruct clear values
55
67
  return decryptKmsSigncryptedShares(fhevm, {
@@ -5,12 +5,12 @@ import type { KmsSignersContext } from '../types/kmsSignersContext.js';
5
5
  import type { ChecksummedAddress, Uint64BigInt } from '../types/primitives.js';
6
6
  import type { FhevmChain } from '../types/fhevmChain.js';
7
7
  import type { RelayerDelegatedUserDecryptOptions, RelayerUserDecryptOptions } from '../types/relayer.js';
8
- import type { SignedDelegatedDecryptionPermit, SignedSelfDecryptionPermit } from '../types/signedDecryptionPermit.js';
8
+ import type { SignedDecryptionPermit, SignedDecryptionPermitV1 } from '../types/signedDecryptionPermit.js';
9
9
  import type { Handle } from '../types/encryptedTypes-p.js';
10
10
  import { assertHandlesBelongToSameChainId } from '../handle/FhevmHandle.js';
11
- import { createKmsSigncryptedShares } from '../kms/KmsSigncryptedShares-p.js';
11
+ import { createKmsSigncryptedShares } from './KmsSigncryptedShares-p.js';
12
12
  import { readKmsSignersContext } from '../host-contracts/readKmsSignersContext-p.js';
13
- import { assertIsSignedDecryptionPermit, assertPermitIncludesContractAddresses } from './SignedDecryptionPermit-p.js';
13
+ import { assertIsSignedDecryptionPermit } from './SignedDecryptionPermit-p.js';
14
14
  import { assertKmsDecryptionBitLimit } from './utils.js';
15
15
  import { checkPersistAllowed } from '../host-contracts/checkPersistAllowed.js';
16
16
  import { assertExtraDataMatchesKmsSingersContext } from '../host-contracts/KmsSignersContext-p.js';
@@ -40,23 +40,14 @@ type Context = {
40
40
  readonly options: { readonly batchRpcCalls: boolean };
41
41
  };
42
42
 
43
- type Parameters =
44
- | {
45
- readonly pairs: ReadonlyArray<{
46
- readonly handle: Handle;
47
- readonly contractAddress: ChecksummedAddress;
48
- }>;
49
- readonly signedPermit: SignedSelfDecryptionPermit;
50
- readonly options?: RelayerUserDecryptOptions | undefined;
51
- }
52
- | {
53
- readonly pairs: ReadonlyArray<{
54
- readonly handle: Handle;
55
- readonly contractAddress: ChecksummedAddress;
56
- }>;
57
- readonly signedPermit: SignedDelegatedDecryptionPermit;
58
- readonly options?: RelayerDelegatedUserDecryptOptions | undefined;
59
- };
43
+ type Parameters = {
44
+ readonly pairs: ReadonlyArray<{
45
+ readonly handle: Handle;
46
+ readonly contractAddress: ChecksummedAddress;
47
+ }>;
48
+ readonly signedPermit: SignedDecryptionPermit;
49
+ readonly options?: RelayerUserDecryptOptions | RelayerDelegatedUserDecryptOptions | undefined;
50
+ };
60
51
 
61
52
  type ReturnType = KmsSigncryptedShares;
62
53
 
@@ -64,19 +55,36 @@ type ReturnType = KmsSigncryptedShares;
64
55
 
65
56
  const MAX_USER_DECRYPT_CONTRACT_ADDRESSES = 10;
66
57
 
58
+ /**
59
+ * Asserts that every address in {@link contractAddresses} is listed in the
60
+ * permit's `contractAddresses` (case-insensitive comparison).
61
+ */
62
+ export function assertPermitV1IncludesContractAddresses(
63
+ permit: SignedDecryptionPermitV1,
64
+ contractAddresses: readonly string[],
65
+ ): void {
66
+ const permitAddresses = permit.eip712.message.contractAddresses;
67
+ for (const address of contractAddresses) {
68
+ if (!permitAddresses.some((a) => a.toLowerCase() === address.toLowerCase())) {
69
+ throw Error(`contract address ${address} is not listed in the permit's contractAddresses`);
70
+ }
71
+ }
72
+ }
73
+
67
74
  ////////////////////////////////////////////////////////////////////////////////
68
- // fetchKmsSigncryptedShares
75
+ // fetchKmsSigncryptedSharesV1
69
76
  ////////////////////////////////////////////////////////////////////////////////
70
77
 
71
- export async function fetchKmsSigncryptedShares(context: Context, parameters: Parameters): Promise<ReturnType> {
72
- const { signedPermit, options, pairs } = parameters;
78
+ export async function fetchKmsSigncryptedSharesV1(context: Context, parameters: Parameters): Promise<ReturnType> {
79
+ const { options, pairs } = parameters;
80
+ const signedPermit = parameters.signedPermit as SignedDecryptionPermitV1;
73
81
 
74
82
  // This helper must support base clients, where TKMS is not mandatory
75
83
  // and tkmsVersion may not be initialized in the CoreFhevm instance yet.
76
84
  const tkmsVersion = await resolveFhevmTkmsVersion(context);
77
85
 
78
86
  // Check: every requested contractAddress is listed in the permit
79
- assertPermitIncludesContractAddresses(
87
+ assertPermitV1IncludesContractAddresses(
80
88
  signedPermit,
81
89
  pairs.map((p) => p.contractAddress),
82
90
  );
@@ -124,7 +132,7 @@ export async function fetchKmsSigncryptedShares(context: Context, parameters: Pa
124
132
  signedPermit.assertNotExpired();
125
133
 
126
134
  // 7. Check: ACL permissions (user is signer or delegatorAddress)
127
- if (signedPermit.isDelegated) {
135
+ if (signedPermit.eip712.primaryType === 'DelegatedUserDecryptRequestVerification') {
128
136
  await checkDelegation(context, {
129
137
  aclAddress: context.chain.fhevm.contracts.acl.address as ChecksummedAddress,
130
138
  delegate: signerAddress,
@@ -139,7 +147,7 @@ export async function fetchKmsSigncryptedShares(context: Context, parameters: Pa
139
147
  });
140
148
  }
141
149
 
142
- // 8. Verify the EIP712 signature
150
+ // 8. Verify the Eip712 signature
143
151
  // Not required because a signedPermit is guaranteed to be verified.
144
152
 
145
153
  // 9. Fetch `KmsSignersContext` on-chain (cached)
@@ -170,12 +178,9 @@ export async function fetchKmsSigncryptedShares(context: Context, parameters: Pa
170
178
  );
171
179
 
172
180
  // 10. Fetch `KmsSigncryptedShares` from the relayer
173
- // Safe casts: the discriminated union on parameters guarantees
174
- // that options type matches signedPermit type, but TS can't prove
175
- // it after destructuring (nested discriminant limitation).
176
181
  let shares: readonly KmsSigncryptedShare[];
177
182
 
178
- if (signedPermit.isDelegated) {
183
+ if (signedPermit.eip712.primaryType === 'DelegatedUserDecryptRequestVerification') {
179
184
  shares = await context.runtime.relayer.fetchDelegatedUserDecrypt(context, {
180
185
  payload: {
181
186
  handleContractPairs,
@@ -0,0 +1,176 @@
1
+ import type { FhevmRuntime } from '../types/coreFhevmRuntime.js';
2
+ import type { KmsSigncryptedShare, KmsSigncryptedSharesMetadata } from '../types/kms-p.js';
3
+ import type { KmsSigncryptedShares } from '../types/kms.js';
4
+ import type { KmsSignersContext } from '../types/kmsSignersContext.js';
5
+ import type { ChecksummedAddress, Uint64BigInt } from '../types/primitives.js';
6
+ import type { FhevmChain } from '../types/fhevmChain.js';
7
+ import type { RelayerUserDecryptOptions } from '../types/relayer.js';
8
+ import type { SignedDecryptionPermit, SignedDecryptionPermitV2 } from '../types/signedDecryptionPermit.js';
9
+ import type { Handle } from '../types/encryptedTypes-p.js';
10
+ import { assertHandlesBelongToSameChainId } from '../handle/FhevmHandle.js';
11
+ import { createKmsSigncryptedShares } from './KmsSigncryptedShares-p.js';
12
+ import { readKmsSignersContext } from '../host-contracts/readKmsSignersContext-p.js';
13
+ import { assertIsSignedDecryptionPermit } from './SignedDecryptionPermit-p.js';
14
+ import { assertKmsDecryptionBitLimit } from './utils.js';
15
+ import { checkPersistAllowed } from '../host-contracts/checkPersistAllowed.js';
16
+ import { checkDelegation } from '../host-contracts/checkDelegation.js';
17
+ import { assertExtraDataMatchesKmsSingersContext } from '../host-contracts/KmsSignersContext-p.js';
18
+ import { createKmsEip712Domain } from './createKmsEip712Domain.js';
19
+ import { resolveFhevmTkmsVersion } from '../runtime/resolveFhevmVersions-p.js';
20
+
21
+ ////////////////////////////////////////////////////////////////////////////////
22
+
23
+ type Context = {
24
+ readonly runtime: FhevmRuntime;
25
+ readonly chain: FhevmChain;
26
+ readonly client: NonNullable<object>;
27
+ readonly options: { readonly batchRpcCalls: boolean };
28
+ };
29
+
30
+ type Parameters = {
31
+ readonly pairs: ReadonlyArray<{
32
+ readonly handle: Handle;
33
+ readonly contractAddress: ChecksummedAddress;
34
+ // When omitted, defaults to userAddress (direct-access path).
35
+ // Provide explicitly only for delegated handles where ownerAddress !== userAddress.
36
+ readonly ownerAddress?: ChecksummedAddress | undefined;
37
+ }>;
38
+ readonly signedPermit: SignedDecryptionPermit;
39
+ readonly options?: RelayerUserDecryptOptions | undefined;
40
+ };
41
+
42
+ type ReturnType = KmsSigncryptedShares;
43
+
44
+ ////////////////////////////////////////////////////////////////////////////////
45
+ // fetchKmsSigncryptedSharesV2
46
+ ////////////////////////////////////////////////////////////////////////////////
47
+
48
+ export async function fetchKmsSigncryptedSharesV2(context: Context, parameters: Parameters): Promise<ReturnType> {
49
+ const { options, pairs } = parameters;
50
+ const signedPermit = parameters.signedPermit as SignedDecryptionPermitV2;
51
+
52
+ const tkmsVersion = await resolveFhevmTkmsVersion(context);
53
+
54
+ const relayerOptions = {
55
+ auth: context.runtime.config.auth,
56
+ ...options,
57
+ };
58
+
59
+ assertIsSignedDecryptionPermit(signedPermit, {});
60
+
61
+ const { signerAddress, signature } = signedPermit;
62
+ const userAddress = signedPermit.eip712.message.userAddress;
63
+
64
+ // 1. Check: At least one handle/contract pair is required
65
+ if (pairs.length === 0) {
66
+ throw Error(
67
+ `encrypted value/contract pairs must not be empty, at least one encrypted value/contract pair is required`,
68
+ );
69
+ }
70
+
71
+ // Resolve ownerAddress for each pair: defaults to userAddress (direct-access path)
72
+ // when not explicitly provided by the caller.
73
+ const resolvedPairs = pairs.map((p) => ({
74
+ handle: p.handle,
75
+ contractAddress: p.contractAddress,
76
+ ownerAddress: p.ownerAddress ?? userAddress,
77
+ }));
78
+
79
+ const handles = resolvedPairs.map((p) => p.handle);
80
+ Object.freeze(handles);
81
+
82
+ // 2. Check: All handles belong to the host chainId
83
+ assertHandlesBelongToSameChainId(handles, BigInt(context.chain.id) as Uint64BigInt);
84
+
85
+ // 3. Check: 2048 bits limit
86
+ assertKmsDecryptionBitLimit(handles);
87
+
88
+ // 4. Check: Expiration date
89
+ signedPermit.assertNotExpired();
90
+
91
+ // 5. Check: ACL permissions — split pairs by direct vs delegated access
92
+ const directPairs = resolvedPairs.filter((p) => p.ownerAddress.toLowerCase() === userAddress.toLowerCase());
93
+ const delegatedPairs = resolvedPairs.filter((p) => p.ownerAddress.toLowerCase() !== userAddress.toLowerCase());
94
+
95
+ if (directPairs.length > 0) {
96
+ await checkPersistAllowed(context, {
97
+ aclAddress: context.chain.fhevm.contracts.acl.address as ChecksummedAddress,
98
+ userAddress,
99
+ handleContractPairs: directPairs,
100
+ });
101
+ }
102
+
103
+ if (delegatedPairs.length > 0) {
104
+ // Group delegated pairs by delegator (ownerAddress): a single batch may contain
105
+ // handles from multiple delegators, each requiring a separate ACL delegation check.
106
+ const byDelegator = new Map<ChecksummedAddress, Array<(typeof delegatedPairs)[number]>>();
107
+ for (const pair of delegatedPairs) {
108
+ const group = byDelegator.get(pair.ownerAddress) ?? [];
109
+ group.push(pair);
110
+ byDelegator.set(pair.ownerAddress, group);
111
+ }
112
+ for (const [delegator, groupedPairs] of byDelegator) {
113
+ await checkDelegation(context, {
114
+ aclAddress: context.chain.fhevm.contracts.acl.address as ChecksummedAddress,
115
+ delegate: userAddress,
116
+ delegator,
117
+ handleContractPairs: groupedPairs,
118
+ });
119
+ }
120
+ }
121
+
122
+ // 6. Verify the Eip712 signature
123
+ // Not required because a signedPermit is guaranteed to be verified.
124
+
125
+ // 7. Fetch `KmsSignersContext` on-chain (cached)
126
+ // Reject the permit early if it was signed against a different KMS context.
127
+ //
128
+ // TODO: The current check is a strict byte-level comparison. A permit signed
129
+ // with the correct `kmsContextId` but a different `extraData` encoding format
130
+ // (e.g. a version change in the serialization scheme) will be rejected even
131
+ // though the context ID matches. Consider comparing the decoded `kmsContextId`
132
+ // instead of the raw `extraData` bytes.
133
+ const requestedKmsSignersContext: KmsSignersContext = await readKmsSignersContext(context, {
134
+ kmsVerifierAddress: context.chain.fhevm.contracts.kmsVerifier.address as ChecksummedAddress,
135
+ protocolConfigAddress: context.chain.fhevm.contracts.protocolConfig?.address as ChecksummedAddress | undefined,
136
+ });
137
+
138
+ assertExtraDataMatchesKmsSingersContext(
139
+ {
140
+ extraData: signedPermit.eip712.message.extraData,
141
+ kmsSignersContext: requestedKmsSignersContext,
142
+ },
143
+ { subject: 'Invalid permit' },
144
+ );
145
+
146
+ // 8. Fetch `KmsSigncryptedShares` from the relayer (unified V2 route)
147
+ const shares: readonly KmsSigncryptedShare[] = await context.runtime.relayer.fetchUserDecrypt(context, {
148
+ payload: {
149
+ handleContractPairs: resolvedPairs,
150
+ kmsDecryptEip712Message: signedPermit.eip712.message,
151
+ kmsDecryptEip712Signature: signature,
152
+ },
153
+ options: relayerOptions,
154
+ });
155
+
156
+ // 9. Build and verify the sealed validated `KmsSigncryptedShares` object
157
+ const sharesMetadata: KmsSigncryptedSharesMetadata = {
158
+ kmsSignersContext: requestedKmsSignersContext,
159
+ eip712Domain: createKmsEip712Domain({
160
+ chainId: context.chain.fhevm.gateway.id,
161
+ verifyingContractAddressDecryption: context.chain.fhevm.gateway.contracts.decryption.address,
162
+ }),
163
+ eip712Signature: signature,
164
+ eip712SignerAddress: signerAddress,
165
+ handles,
166
+ tkmsVersion,
167
+ };
168
+
169
+ // 10. The returned KmsSigncryptedShares is guaranteed to be fully verified:
170
+ // uniform extraData across shares, valid extraData format, and consistency
171
+ // with the KmsSignersContext (see KmsSigncryptedSharesImpl invariants).
172
+ return await createKmsSigncryptedShares(context, {
173
+ metadata: sharesMetadata,
174
+ shares,
175
+ });
176
+ }