@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,219 +1,79 @@
1
- import type {
2
- SignedDecryptionPermit,
3
- SignedDelegatedDecryptionPermit,
4
- SignedSelfDecryptionPermit,
5
- } from '../types/signedDecryptionPermit.js';
6
- import type { KmsDelegatedUserDecryptEip712, KmsUserDecryptEip712 } from '../types/kms.js';
7
- import type {
8
- Bytes65Hex,
9
- BytesHex,
10
- ChecksummedAddress,
11
- Uint256BigInt,
12
- Uint8Number,
13
- UintNumber,
14
- } from '../types/primitives.js';
1
+ import type { SignedDecryptionPermit } from '../types/signedDecryptionPermit.js';
2
+ import type { KmsDelegatedUserDecryptEip712V1, KmsUserDecryptEip712V1, KmsUserDecryptEip712V2 } from '../types/kms.js';
15
3
  import type { FhevmChain } from '../types/fhevmChain.js';
16
4
  import type { FhevmRuntime } from '../types/coreFhevmRuntime.js';
17
5
  import type { ErrorMetadataParams } from '../base/errors/ErrorBase.js';
18
6
  import type { NativeSigner } from '../modules/ethereum/types.js';
19
- import type { KmsSignersContext } from '../types/kmsSignersContext.js';
20
- import { verifyKmsUserDecryptEip712 } from '../utils-p/decrypt/verifyKmsUserDecryptEip712.js';
21
- import { verifyKmsDelegatedUserDecryptEip712 } from '../utils-p/decrypt/verifyKmsDelegatedUserDecryptEip712.js';
22
- import { assertRecordNonNullableProperty } from '../base/record.js';
23
- import { assertRecordBytes65HexProperty } from '../base/bytes.js';
7
+ import type { TransportKeyPair } from './TransportKeyPair-p.js';
24
8
  import { InvalidTypeError } from '../base/errors/InvalidTypeError.js';
25
- import { addressToChecksummedAddress, assertIsAddress, assertRecordAddressProperty } from '../base/address.js';
26
- import { assertIsKmsUserDecryptEip712, createKmsUserDecryptEip712 } from './createKmsUserDecryptEip712.js';
9
+ import { getResolvedProtocolVersion } from '../runtime/CoreFhevm-p.js';
10
+ import { isSemverStrictlyBefore } from '../base/semver.js';
27
11
  import {
28
- assertIsKmsDelegatedUserDecryptEip712,
29
- createKmsDelegatedUserDecryptEip712,
30
- } from './createKmsDelegatedUserDecryptEip712.js';
31
- import { assertRecordStringProperty } from '../base/string.js';
32
- import { assertIsTransportKeyPair, type TransportKeyPair } from './TransportKeyPair-p.js';
33
- import { assertKmsEIP712DeadlineValidity } from './utils.js';
34
- import { readKmsSignersContext } from '../host-contracts/readKmsSignersContext-p.js';
35
- import { kmsSignersContextToExtraData } from '../host-contracts/KmsSignersContext-p.js';
36
- import { fromKmsExtraData } from './kmsExtraData.js';
37
-
38
- ////////////////////////////////////////////////////////////////////////////////
39
-
40
- const PRIVATE_TOKEN = Symbol('SignedDecryptionPermit.token');
41
- const MAX_USER_DECRYPT_DURATION_DAYS = 365 as UintNumber;
42
- const MAX_USER_DECRYPT_CONTRACT_ADDRESSES = 10 as Uint8Number;
12
+ isSignedDecryptionPermitV1,
13
+ parseSignedDecryptionPermitV1,
14
+ signDecryptionPermitV1,
15
+ } from './SignedDecryptionPermitV1-p.js';
16
+ import {
17
+ isSignedDecryptionPermitV2,
18
+ parseSignedDecryptionPermitV2,
19
+ signDecryptionPermitV2,
20
+ } from './SignedDecryptionPermitV2-p.js';
21
+ import { isRecordUintNumberProperty } from '../base/uint.js';
43
22
 
44
23
  ////////////////////////////////////////////////////////////////////////////////
45
24
 
46
25
  /**
47
- * Private implementation of {@link SignedDecryptionPermit}.
48
- * Immutable by design all fields are stored as private properties
49
- * and exposed via readonly getters. Instances are only created through
50
- * SDK-internal factory functions that guarantee the signature has been verified.
51
- *
52
- * **Invariant:** Every instance of this class has a verified signature.
53
- * Construction is only possible through factory functions that validate the
54
- * signature against the on-chain verifier before returning. If the EIP-712
55
- * format has changed (e.g. loading a permit serialized by an older SDK version),
56
- * verification will fail and construction will throw.
26
+ * Serializes a signed decryption permit to a plain object suitable for
27
+ * JSON serialization. Uses the public getters does not access private fields.
57
28
  *
58
- * As a consequence, any code within the SDK that receives a
59
- * `SignedDecryptionPermit` (verified via `instanceof`) can safely trust
60
- * its contents without re-verification.
29
+ * `toJSON()` is intentionally not on the class to prevent accidental
30
+ * serialization of sensitive data via `JSON.stringify(permit)`.
61
31
  */
62
- abstract class SignedDecryptionPermitBaseImpl {
63
- readonly #eip712: KmsUserDecryptEip712 | KmsDelegatedUserDecryptEip712;
64
- readonly #signature: Bytes65Hex;
65
- readonly #signerAddress: ChecksummedAddress;
66
-
67
- constructor(
68
- privateToken: symbol,
69
- parameters: {
70
- readonly eip712: KmsUserDecryptEip712 | KmsDelegatedUserDecryptEip712;
71
- readonly signature: Bytes65Hex;
72
- readonly signerAddress: ChecksummedAddress;
73
- },
74
- ) {
75
- if (privateToken !== PRIVATE_TOKEN) {
76
- throw new Error('Unauthorized');
32
+ export function serializeSignedDecryptionPermitToJSON(permit: SignedDecryptionPermit):
33
+ | {
34
+ version: 1;
35
+ eip712: KmsUserDecryptEip712V1 | KmsDelegatedUserDecryptEip712V1;
36
+ signature: string;
37
+ signerAddress: string;
77
38
  }
78
- this.#eip712 = parameters.eip712;
79
- this.#signature = parameters.signature;
80
- this.#signerAddress = parameters.signerAddress;
81
- }
82
-
83
- public get eip712(): KmsUserDecryptEip712 | KmsDelegatedUserDecryptEip712 {
84
- return this.#eip712;
85
- }
86
-
87
- public get signature(): Bytes65Hex {
88
- return this.#signature;
89
- }
90
-
91
- public get signerAddress(): ChecksummedAddress {
92
- return this.#signerAddress;
93
- }
94
-
95
- public abstract get encryptedDataOwnerAddress(): ChecksummedAddress;
96
- public abstract get isDelegated(): boolean;
97
-
98
- public assertNotExpired(): void {
99
- assertKmsEIP712DeadlineValidity(this.#eip712.message, MAX_USER_DECRYPT_DURATION_DAYS);
100
- }
101
-
102
- /**
103
- * Asserts that this permit was signed against the given {@link KmsSignersContext}.
104
- *
105
- * Compares the `extraData` embedded in the permit's EIP-712 message with the
106
- * `extraData` derived from the provided context. A mismatch indicates the permit
107
- * was created for a different KMS context (e.g. different context ID or version)
108
- * and must not be used for decryption.
109
- *
110
- * @todo The current check is a strict byte-level comparison. A permit signed
111
- * with the correct `kmsContextId` but a different `extraData` encoding format
112
- * (e.g. a version change in the serialization scheme) will be rejected even
113
- * though the context ID matches. Consider comparing the decoded `kmsContextId`
114
- * instead of the raw `extraData` bytes.
115
- *
116
- * @param kmsSignersContext - The current KMS signers context to validate against.
117
- * @throws If the permit's `extraData` does not match the context's `extraData`.
118
- */
119
- public assertMatchesKmsContext(kmsSignersContext: KmsSignersContext): void {
120
- const expectedExtraData = kmsSignersContextToExtraData(kmsSignersContext);
121
- if (expectedExtraData !== this.#eip712.message.extraData) {
122
- throw new Error(
123
- `Invalid permit: extraData "${this.#eip712.message.extraData}" does not match expected "${expectedExtraData}" from KmsSignersContext.`,
124
- );
125
- }
126
- }
127
-
128
- public get transportPublicKey(): BytesHex {
129
- return this.#eip712.message.publicKey;
130
- }
39
+ | {
40
+ version: 2;
41
+ eip712: KmsUserDecryptEip712V2;
42
+ signature: string;
43
+ signerAddress: string;
44
+ } {
45
+ assertIsSignedDecryptionPermit(permit, {});
131
46
 
132
- public get kmsContextId(): Uint256BigInt {
133
- return fromKmsExtraData(this.#eip712.message.extraData).kmsContextId;
47
+ // Defensive check
48
+ const version = permit.version as unknown as number;
49
+ if (version !== 1 && version !== 2) {
50
+ throw new Error(`Unsupported permit version: ${version}. Supported versions are 1 and 2.`);
134
51
  }
135
52
 
136
- public get kmsEpochId(): Uint256BigInt {
137
- return fromKmsExtraData(this.#eip712.message.extraData).kmsEpochId;
53
+ // This if branch is needed for tsc
54
+ if (permit.version === 1) {
55
+ return {
56
+ version: 1,
57
+ eip712: permit.eip712,
58
+ signature: permit.signature,
59
+ signerAddress: permit.signerAddress,
60
+ };
138
61
  }
139
- }
140
62
 
141
- ////////////////////////////////////////////////////////////////////////////////
142
-
143
- /**
144
- * Serializes a signed decryption permit to a plain object suitable for
145
- * JSON serialization. Uses the public getters — does not access private fields.
146
- *
147
- * `toJSON()` is intentionally not on the class to prevent accidental
148
- * serialization of sensitive data via `JSON.stringify(permit)`.
149
- */
150
- export function serializeSignedDecryptionPermitToJSON(permit: SignedDecryptionPermit): {
151
- eip712: KmsUserDecryptEip712 | KmsDelegatedUserDecryptEip712;
152
- signature: string;
153
- signerAddress: string;
154
- } {
155
- assertIsSignedDecryptionPermit(permit, {});
156
63
  return {
64
+ version: 2,
157
65
  eip712: permit.eip712,
158
66
  signature: permit.signature,
159
67
  signerAddress: permit.signerAddress,
160
68
  };
161
69
  }
162
70
 
163
- ////////////////////////////////////////////////////////////////////////////////
164
- // SignedUserDecryptionPermitImpl
165
- ////////////////////////////////////////////////////////////////////////////////
166
-
167
- class SignedSelfDecryptionPermitImpl extends SignedDecryptionPermitBaseImpl implements SignedSelfDecryptionPermit {
168
- public override get eip712(): KmsUserDecryptEip712 {
169
- return super.eip712 as KmsUserDecryptEip712;
170
- }
171
-
172
- public override get encryptedDataOwnerAddress(): ChecksummedAddress {
173
- return this.signerAddress;
174
- }
175
-
176
- public override get isDelegated(): false {
177
- return false;
178
- }
179
- }
180
-
181
- ////////////////////////////////////////////////////////////////////////////////
182
- // SignedDelegatedDecryptionPermitImpl
183
- ////////////////////////////////////////////////////////////////////////////////
184
-
185
- class SignedDelegatedDecryptionPermitImpl
186
- extends SignedDecryptionPermitBaseImpl
187
- implements SignedDelegatedDecryptionPermit
188
- {
189
- public override get eip712(): KmsDelegatedUserDecryptEip712 {
190
- return super.eip712 as KmsDelegatedUserDecryptEip712;
191
- }
192
-
193
- public override get encryptedDataOwnerAddress(): ChecksummedAddress {
194
- return this.eip712.message.delegatorAddress;
195
- }
196
-
197
- public override get isDelegated(): true {
198
- return true;
199
- }
200
- }
201
-
202
- ////////////////////////////////////////////////////////////////////////////////
203
-
204
- Object.freeze(SignedDecryptionPermitBaseImpl);
205
- Object.freeze(SignedDecryptionPermitBaseImpl.prototype);
206
- Object.freeze(SignedSelfDecryptionPermitImpl);
207
- Object.freeze(SignedSelfDecryptionPermitImpl.prototype);
208
- Object.freeze(SignedDelegatedDecryptionPermitImpl);
209
- Object.freeze(SignedDelegatedDecryptionPermitImpl.prototype);
210
-
211
71
  ////////////////////////////////////////////////////////////////////////////////
212
72
  // isSignedDecryptionPermit
213
73
  ////////////////////////////////////////////////////////////////////////////////
214
74
 
215
75
  export function isSignedDecryptionPermit(value: unknown): value is SignedDecryptionPermit {
216
- return value instanceof SignedDecryptionPermitBaseImpl;
76
+ return isSignedDecryptionPermitV1(value) || isSignedDecryptionPermitV2(value);
217
77
  }
218
78
 
219
79
  /** Throws {@link InvalidTypeError} if value is not a valid {@link SignedDecryptionPermit}. */
@@ -233,65 +93,6 @@ export function assertIsSignedDecryptionPermit(
233
93
  }
234
94
  }
235
95
 
236
- /**
237
- * Asserts that every address in {@link contractAddresses} is listed in the
238
- * permit's `contractAddresses` (case-insensitive comparison).
239
- */
240
- export function assertPermitIncludesContractAddresses(
241
- permit: SignedDecryptionPermit,
242
- contractAddresses: readonly string[],
243
- ): void {
244
- const permitAddresses = permit.eip712.message.contractAddresses;
245
- for (const address of contractAddresses) {
246
- if (!permitAddresses.some((a) => a.toLowerCase() === address.toLowerCase())) {
247
- throw Error(`contract address ${address} is not listed in the permit's contractAddresses`);
248
- }
249
- }
250
- }
251
-
252
- ////////////////////////////////////////////////////////////////////////////////
253
- // createSignedDecryptionPermit
254
- ////////////////////////////////////////////////////////////////////////////////
255
-
256
- async function _createSignedDecryptionPermit(
257
- context: { readonly chain: FhevmChain; readonly runtime: FhevmRuntime },
258
- parameters: {
259
- readonly signerAddress: ChecksummedAddress;
260
- readonly eip712: KmsUserDecryptEip712 | KmsDelegatedUserDecryptEip712;
261
- readonly signature: Bytes65Hex;
262
- },
263
- ): Promise<SignedDecryptionPermit> {
264
- const { signerAddress, eip712, signature } = parameters;
265
-
266
- if (eip712.message.contractAddresses.length === 0) {
267
- throw Error('contractAddresses is empty');
268
- }
269
-
270
- if (eip712.message.contractAddresses.length > MAX_USER_DECRYPT_CONTRACT_ADDRESSES) {
271
- throw Error(`contractAddresses max length of ${MAX_USER_DECRYPT_CONTRACT_ADDRESSES} exceeded`);
272
- }
273
-
274
- if (Number(eip712.message.durationDays) > MAX_USER_DECRYPT_DURATION_DAYS) {
275
- throw Error(`durationDays is above max duration of ${MAX_USER_DECRYPT_DURATION_DAYS}`);
276
- }
277
-
278
- if (eip712.primaryType === 'UserDecryptRequestVerification') {
279
- await verifyKmsUserDecryptEip712(context, {
280
- signer: signerAddress,
281
- message: eip712.message,
282
- signature,
283
- });
284
- return new SignedSelfDecryptionPermitImpl(PRIVATE_TOKEN, parameters);
285
- } else {
286
- await verifyKmsDelegatedUserDecryptEip712(context, {
287
- signer: signerAddress,
288
- message: eip712.message,
289
- signature,
290
- });
291
- return new SignedDelegatedDecryptionPermitImpl(PRIVATE_TOKEN, parameters);
292
- }
293
- }
294
-
295
96
  export type SignDecryptionPermitContext = {
296
97
  readonly chain: FhevmChain;
297
98
  readonly runtime: FhevmRuntime;
@@ -299,27 +100,16 @@ export type SignDecryptionPermitContext = {
299
100
  readonly options: { readonly batchRpcCalls: boolean };
300
101
  };
301
102
 
302
- type SignDecryptionPermitCommonParameters = {
103
+ export type SignDecryptionPermitParameters = {
303
104
  readonly contractAddresses: readonly string[];
304
105
  readonly startTimestamp: number;
305
- readonly durationDays: number;
106
+ readonly durationSeconds: number;
306
107
  readonly signerAddress: string;
307
108
  readonly signer: NativeSigner;
109
+ readonly delegatorAddress?: string | undefined;
308
110
  readonly transportKeyPair: TransportKeyPair;
309
111
  };
310
112
 
311
- export type SignSelfDecryptionPermitParameters = SignDecryptionPermitCommonParameters & {
312
- readonly delegatorAddress?: undefined;
313
- };
314
-
315
- export type SignDelegatedDecryptionPermitParameters = SignDecryptionPermitCommonParameters & {
316
- readonly delegatorAddress: string;
317
- };
318
-
319
- export type SignDecryptionPermitParameters =
320
- | SignSelfDecryptionPermitParameters
321
- | SignDelegatedDecryptionPermitParameters;
322
-
323
113
  /**
324
114
  * Creates a signed decryption permit by constructing the EIP-712 typed data
325
115
  * and signing it with the provided signer.
@@ -334,78 +124,22 @@ export type SignDecryptionPermitParameters =
334
124
  * @throws If the signer, address, or key pair is invalid.
335
125
  * @throws If the signature verification fails.
336
126
  */
337
- export async function signDecryptionPermit(
338
- context: SignDecryptionPermitContext,
339
- parameters: SignSelfDecryptionPermitParameters,
340
- ): Promise<SignedSelfDecryptionPermit>;
341
- export async function signDecryptionPermit(
342
- context: SignDecryptionPermitContext,
343
- parameters: SignDelegatedDecryptionPermitParameters,
344
- ): Promise<SignedDelegatedDecryptionPermit>;
345
127
  export async function signDecryptionPermit(
346
128
  context: SignDecryptionPermitContext,
347
129
  parameters: SignDecryptionPermitParameters,
348
130
  ): Promise<SignedDecryptionPermit> {
349
- const kmsSignersContext = await readKmsSignersContext(context, {
350
- kmsVerifierAddress: context.chain.fhevm.contracts.kmsVerifier.address as ChecksummedAddress,
351
- protocolConfigAddress: context.chain.fhevm.contracts.protocolConfig?.address as ChecksummedAddress | undefined,
352
- });
353
-
354
- const extraData: BytesHex = kmsSignersContextToExtraData(kmsSignersContext);
355
-
356
- const {
357
- contractAddresses,
358
- startTimestamp,
359
- durationDays,
360
- signerAddress: signerAddressArg,
361
- transportKeyPair: transportKeyPair,
362
- signer,
363
- delegatorAddress,
364
- } = parameters;
365
-
366
- assertIsTransportKeyPair(transportKeyPair, {});
367
- assertIsAddress(signerAddressArg, {});
368
-
369
- if (delegatorAddress !== undefined) {
370
- assertIsAddress(delegatorAddress, {});
371
- if (signerAddressArg.toLowerCase() === delegatorAddress.toLowerCase()) {
372
- throw new Error(
373
- 'signerAddress and delegatorAddress must be different. ' +
374
- 'Use a non-delegated permit to decrypt your own values.',
375
- );
376
- }
131
+ const protocolVersion = getResolvedProtocolVersion(context);
132
+ if (protocolVersion === undefined) {
133
+ throw new Error(
134
+ 'Unable to resolve protocol version from context, ensure proper initialization of the FhevmRuntime and FhevmChain.',
135
+ );
377
136
  }
378
137
 
379
- const signerAddress = addressToChecksummedAddress(signerAddressArg);
380
-
381
- const commonMessage = {
382
- verifyingContractAddressDecryption: context.chain.fhevm.gateway.contracts.decryption.address as ChecksummedAddress,
383
- chainId: context.chain.id,
384
- contractAddresses,
385
- durationDays,
386
- startTimestamp,
387
- extraData,
388
- publicKey: transportKeyPair.publicKey,
389
- };
390
-
391
- const eip712 =
392
- delegatorAddress !== undefined
393
- ? createKmsDelegatedUserDecryptEip712({
394
- ...commonMessage,
395
- delegatorAddress,
396
- })
397
- : createKmsUserDecryptEip712(commonMessage);
398
-
399
- const signature = await context.runtime.ethereum.signTypedData(signer, {
400
- account: signerAddress,
401
- ...eip712,
402
- });
138
+ if (isSemverStrictlyBefore(protocolVersion.version, '0.14.0')) {
139
+ return await signDecryptionPermitV1(context, parameters);
140
+ }
403
141
 
404
- return await _createSignedDecryptionPermit(context, {
405
- signature,
406
- signerAddress,
407
- eip712,
408
- });
142
+ return await signDecryptionPermitV2(context, parameters);
409
143
  }
410
144
 
411
145
  ////////////////////////////////////////////////////////////////////////////////
@@ -413,46 +147,22 @@ export async function signDecryptionPermit(
413
147
  ////////////////////////////////////////////////////////////////////////////////
414
148
 
415
149
  export async function parseSignedDecryptionPermit(
416
- context: {
417
- readonly chain: FhevmChain;
418
- readonly runtime: FhevmRuntime;
419
- readonly client: NonNullable<object>;
420
- readonly options: { readonly batchRpcCalls: boolean };
421
- },
150
+ context: SignDecryptionPermitContext,
422
151
  transportKeyPair: TransportKeyPair,
423
152
  permit: unknown,
424
153
  ): Promise<SignedDecryptionPermit> {
425
- assertIsTransportKeyPair(transportKeyPair, {});
426
-
427
- const permitName = 'permit';
428
- const options = {};
429
-
430
- assertRecordNonNullableProperty(permit, 'eip712', permitName, options);
431
- assertRecordBytes65HexProperty(permit, 'signature', permitName, options);
432
- assertRecordAddressProperty(permit, 'signerAddress', permitName, options);
154
+ const hasVersion = isRecordUintNumberProperty(permit, 'version');
433
155
 
434
- const eip712 = permit.eip712;
435
- assertRecordStringProperty(eip712, 'primaryType', `${permitName}.eip712`, options);
436
- const primaryType = (eip712 as Record<string, unknown>).primaryType;
156
+ // if no version, interpret as permit v1
157
+ const version: number = hasVersion ? permit.version : 1;
437
158
 
438
- if (primaryType === 'UserDecryptRequestVerification') {
439
- assertIsKmsUserDecryptEip712(eip712, `${permitName}.eip712`, options);
440
- } else if (primaryType === 'DelegatedUserDecryptRequestVerification') {
441
- assertIsKmsDelegatedUserDecryptEip712(eip712, `${permitName}.eip712`, options);
442
- } else {
443
- throw new Error(`Unknown permit primaryType: ${primaryType}`);
159
+ if (version === 1) {
160
+ return await parseSignedDecryptionPermitV1(context, transportKeyPair, permit);
444
161
  }
445
162
 
446
- if (eip712.message.publicKey.toLowerCase() !== transportKeyPair.publicKey.toLowerCase()) {
447
- throw new Error(
448
- "The permit's publicKey does not match the TransportKeyPairKeyPair's publicKey. " +
449
- 'Ensure the permit was signed with the same key pair.',
450
- );
163
+ if (version === 2) {
164
+ return await parseSignedDecryptionPermitV2(context, transportKeyPair, permit);
451
165
  }
452
166
 
453
- return await _createSignedDecryptionPermit(context, {
454
- signature: permit.signature,
455
- eip712,
456
- signerAddress: addressToChecksummedAddress(permit.signerAddress),
457
- });
167
+ throw new Error(`Unsupported permit version: ${version}. Supported versions are 1 and 2.`);
458
168
  }