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

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 (794) hide show
  1. package/_cjs/core/_version.js +1 -1
  2. package/_cjs/core/actions/base/canDecryptPublicValue.js +1 -1
  3. package/_cjs/core/actions/base/canDecryptPublicValue.js.map +1 -1
  4. package/_cjs/core/actions/base/canDecryptPublicValues.js +1 -1
  5. package/_cjs/core/actions/base/canDecryptPublicValues.js.map +1 -1
  6. package/_cjs/core/actions/base/{fetchKmsSignedcryptedShares.js → fetchKmsSigncryptedShares.js} +5 -5
  7. package/_cjs/core/actions/base/fetchKmsSigncryptedShares.js.map +1 -0
  8. package/_cjs/core/actions/base/index.js +3 -3
  9. package/_cjs/core/actions/base/index.js.map +1 -1
  10. package/_cjs/core/actions/base/readKmsSignersContext.js +2 -1
  11. package/_cjs/core/actions/base/readKmsSignersContext.js.map +1 -1
  12. package/_cjs/core/actions/chain/parseTransportKeyPair.js.map +1 -1
  13. package/_cjs/core/actions/decrypt/decryptKmsSigncryptedShares.js +13 -0
  14. package/_cjs/core/actions/decrypt/decryptKmsSigncryptedShares.js.map +1 -0
  15. package/_cjs/core/actions/decrypt/decryptValue.js +3 -1
  16. package/_cjs/core/actions/decrypt/decryptValue.js.map +1 -1
  17. package/_cjs/core/actions/decrypt/decryptValues.js +3 -1
  18. package/_cjs/core/actions/decrypt/decryptValues.js.map +1 -1
  19. package/_cjs/core/actions/decrypt/decryptValuesFromPairs.js +3 -1
  20. package/_cjs/core/actions/decrypt/decryptValuesFromPairs.js.map +1 -1
  21. package/_cjs/core/actions/decrypt/generateTransportKeyPair.js +3 -1
  22. package/_cjs/core/actions/decrypt/generateTransportKeyPair.js.map +1 -1
  23. package/_cjs/core/actions/decrypt/index.js +3 -3
  24. package/_cjs/core/actions/decrypt/index.js.map +1 -1
  25. package/_cjs/core/actions/encrypt/encryptValue.js +3 -1
  26. package/_cjs/core/actions/encrypt/encryptValue.js.map +1 -1
  27. package/_cjs/core/actions/encrypt/encryptValues.js +3 -1
  28. package/_cjs/core/actions/encrypt/encryptValues.js.map +1 -1
  29. package/_cjs/core/actions/encrypt/generateZkProof.js +5 -1
  30. package/_cjs/core/actions/encrypt/generateZkProof.js.map +1 -1
  31. package/_cjs/core/actions/host/readFhevmExecutorContractData.js +7 -7
  32. package/_cjs/core/actions/host/readFhevmExecutorContractData.js.map +1 -1
  33. package/_cjs/core/actions/host/readInputVerifierContractData.js +1 -1
  34. package/_cjs/core/actions/host/readInputVerifierContractData.js.map +1 -1
  35. package/_cjs/core/actions/host/readKmsVerifierContractData.js +6 -5
  36. package/_cjs/core/actions/host/readKmsVerifierContractData.js.map +1 -1
  37. package/_cjs/core/actions/host/resolveFhevmConfig.js +7 -1
  38. package/_cjs/core/actions/host/resolveFhevmConfig.js.map +1 -1
  39. package/_cjs/core/base/object.js +23 -0
  40. package/_cjs/core/base/object.js.map +1 -1
  41. package/_cjs/core/base/semver.js +166 -0
  42. package/_cjs/core/base/semver.js.map +1 -0
  43. package/_cjs/core/base/uint.js +20 -3
  44. package/_cjs/core/base/uint.js.map +1 -1
  45. package/_cjs/core/chains/definitions/localTestnet.js +3 -0
  46. package/_cjs/core/chains/definitions/localTestnet.js.map +1 -1
  47. package/_cjs/core/chains/definitions/mainnet.js +1 -0
  48. package/_cjs/core/chains/definitions/mainnet.js.map +1 -1
  49. package/_cjs/core/chains/definitions/sepolia.js +1 -0
  50. package/_cjs/core/chains/definitions/sepolia.js.map +1 -1
  51. package/_cjs/core/clients/decorators/base.js +5 -0
  52. package/_cjs/core/clients/decorators/base.js.map +1 -1
  53. package/_cjs/core/clients/decorators/decrypt-p.js +13 -0
  54. package/_cjs/core/clients/decorators/decrypt-p.js.map +1 -0
  55. package/_cjs/core/clients/decorators/decrypt.js +4 -7
  56. package/_cjs/core/clients/decorators/decrypt.js.map +1 -1
  57. package/_cjs/core/clients/decorators/encrypt-p.js +5 -1
  58. package/_cjs/core/clients/decorators/encrypt-p.js.map +1 -1
  59. package/_cjs/core/clients/decorators/encrypt.js.map +1 -1
  60. package/_cjs/core/coprocessor/ZkProof-p.js +4 -2
  61. package/_cjs/core/coprocessor/ZkProof-p.js.map +1 -1
  62. package/_cjs/core/coprocessor/ZkProofBuilder-p.js +2 -1
  63. package/_cjs/core/coprocessor/ZkProofBuilder-p.js.map +1 -1
  64. package/_cjs/core/coprocessor/encrypt.js +1 -1
  65. package/_cjs/core/coprocessor/encrypt.js.map +1 -1
  66. package/_cjs/core/errors/RelayerResponseStatusError.js +3 -2
  67. package/_cjs/core/errors/RelayerResponseStatusError.js.map +1 -1
  68. package/_cjs/core/host-contracts/HostContractVersion-p.js +26 -4
  69. package/_cjs/core/host-contracts/HostContractVersion-p.js.map +1 -1
  70. package/_cjs/core/host-contracts/KmsSignersContext-p.js +23 -5
  71. package/_cjs/core/host-contracts/KmsSignersContext-p.js.map +1 -1
  72. package/_cjs/core/host-contracts/abi-fragments/fragments.js +21 -1
  73. package/_cjs/core/host-contracts/abi-fragments/fragments.js.map +1 -1
  74. package/_cjs/core/host-contracts/canDecryptValuesFromPairs.js +1 -1
  75. package/_cjs/core/host-contracts/canDecryptValuesFromPairs.js.map +1 -1
  76. package/_cjs/core/host-contracts/checkAllowedForDecryption.js +2 -2
  77. package/_cjs/core/host-contracts/checkAllowedForDecryption.js.map +1 -1
  78. package/_cjs/core/host-contracts/checkDelegation.js +8 -8
  79. package/_cjs/core/host-contracts/checkDelegation.js.map +1 -1
  80. package/_cjs/core/host-contracts/checkPersistAllowed.js +9 -9
  81. package/_cjs/core/host-contracts/checkPersistAllowed.js.map +1 -1
  82. package/_cjs/core/host-contracts/getAclAddress-p.js +1 -2
  83. package/_cjs/core/host-contracts/getAclAddress-p.js.map +1 -1
  84. package/_cjs/core/host-contracts/getCurrentKmsContextAndEpoch-p.js +51 -0
  85. package/_cjs/core/host-contracts/getCurrentKmsContextAndEpoch-p.js.map +1 -0
  86. package/_cjs/core/host-contracts/getCurrentKmsContextId-p.js +4 -5
  87. package/_cjs/core/host-contracts/getCurrentKmsContextId-p.js.map +1 -1
  88. package/_cjs/core/host-contracts/getFhevmExecutorAddress-p.js +1 -1
  89. package/_cjs/core/host-contracts/getFhevmExecutorAddress-p.js.map +1 -1
  90. package/_cjs/core/host-contracts/getHandleVersion-p.js +1 -2
  91. package/_cjs/core/host-contracts/getHandleVersion-p.js.map +1 -1
  92. package/_cjs/core/host-contracts/getHcuLimitAddress-p.js +1 -2
  93. package/_cjs/core/host-contracts/getHcuLimitAddress-p.js.map +1 -1
  94. package/_cjs/core/host-contracts/getInputVerifierAddress-p.js +1 -2
  95. package/_cjs/core/host-contracts/getInputVerifierAddress-p.js.map +1 -1
  96. package/_cjs/core/host-contracts/getKmsContextSignersAndThreshold-p.js +5 -7
  97. package/_cjs/core/host-contracts/getKmsContextSignersAndThreshold-p.js.map +1 -1
  98. package/_cjs/core/host-contracts/getKmsContextSignersAndThresholdFromExtraData-p.js +4 -5
  99. package/_cjs/core/host-contracts/getKmsContextSignersAndThresholdFromExtraData-p.js.map +1 -1
  100. package/_cjs/core/host-contracts/getSignersForKmsContext-p.js +3 -5
  101. package/_cjs/core/host-contracts/getSignersForKmsContext-p.js.map +1 -1
  102. package/_cjs/core/host-contracts/isAllowedForDecryption.js +4 -4
  103. package/_cjs/core/host-contracts/isAllowedForDecryption.js.map +1 -1
  104. package/_cjs/core/host-contracts/isHandleDelegatedForUserDecryption-p.js +5 -5
  105. package/_cjs/core/host-contracts/isHandleDelegatedForUserDecryption-p.js.map +1 -1
  106. package/_cjs/core/host-contracts/isUserDecryptable.js +2 -2
  107. package/_cjs/core/host-contracts/isUserDecryptable.js.map +1 -1
  108. package/_cjs/core/host-contracts/persistAllowed.js +4 -4
  109. package/_cjs/core/host-contracts/persistAllowed.js.map +1 -1
  110. package/_cjs/core/host-contracts/readKmsSignersContext-p.js +74 -25
  111. package/_cjs/core/host-contracts/readKmsSignersContext-p.js.map +1 -1
  112. package/_cjs/core/key/FheEncryptionKeyWasm-p.js +12 -4
  113. package/_cjs/core/key/FheEncryptionKeyWasm-p.js.map +1 -1
  114. package/_cjs/core/key/deserializeFheEncryptionKey.js +3 -0
  115. package/_cjs/core/key/deserializeFheEncryptionKey.js.map +1 -1
  116. package/_cjs/core/key/fetchFheEncryptionKey.js +1 -1
  117. package/_cjs/core/key/fetchFheEncryptionKey.js.map +1 -1
  118. package/_cjs/core/key/fetchFheEncryptionKeyBytes.js.map +1 -1
  119. package/_cjs/core/key/serializeFheEncryptionKey.js +4 -1
  120. package/_cjs/core/key/serializeFheEncryptionKey.js.map +1 -1
  121. package/_cjs/core/kms/KmsSigncryptedShares-p.js +9 -1
  122. package/_cjs/core/kms/KmsSigncryptedShares-p.js.map +1 -1
  123. package/_cjs/core/kms/SignedDecryptionPermit-p.js +5 -1
  124. package/_cjs/core/kms/SignedDecryptionPermit-p.js.map +1 -1
  125. package/_cjs/core/kms/TransportKeyPair-p.js +31 -7
  126. package/_cjs/core/kms/TransportKeyPair-p.js.map +1 -1
  127. package/_cjs/core/kms/createKmsUserDecryptEip712.js +4 -0
  128. package/_cjs/core/kms/createKmsUserDecryptEip712.js.map +1 -1
  129. package/_cjs/core/kms/createKmsUserDecryptEip712V2.js +97 -0
  130. package/_cjs/core/kms/createKmsUserDecryptEip712V2.js.map +1 -0
  131. package/_cjs/core/kms/{decryptKmsSignedcryptedShares-p.js → decryptKmsSigncryptedShares-p.js} +10 -3
  132. package/_cjs/core/kms/decryptKmsSigncryptedShares-p.js.map +1 -0
  133. package/_cjs/core/kms/decryptValuesFromPairs.js +4 -4
  134. package/_cjs/core/kms/decryptValuesFromPairs.js.map +1 -1
  135. package/_cjs/core/kms/{fetchKmsSignedcryptedShares-p.js → fetchKmsSigncryptedShares-p.js} +10 -6
  136. package/_cjs/core/kms/fetchKmsSigncryptedShares-p.js.map +1 -0
  137. package/_cjs/core/kms/kmsExtraData.js +53 -10
  138. package/_cjs/core/kms/kmsExtraData.js.map +1 -1
  139. package/_cjs/core/kms/kmsUserDecryptEip712V2Types.js +25 -0
  140. package/_cjs/core/kms/kmsUserDecryptEip712V2Types.js.map +1 -0
  141. package/_cjs/core/kms/publicDecrypt.js +5 -3
  142. package/_cjs/core/kms/publicDecrypt.js.map +1 -1
  143. package/_cjs/core/modules/decrypt/mock.js +1 -23
  144. package/_cjs/core/modules/decrypt/mock.js.map +1 -1
  145. package/_cjs/core/modules/decrypt/module/api-p.js +51 -23
  146. package/_cjs/core/modules/decrypt/module/api-p.js.map +1 -1
  147. package/_cjs/core/modules/decrypt/module/index.js +5 -27
  148. package/_cjs/core/modules/decrypt/module/index.js.map +1 -1
  149. package/_cjs/core/modules/decrypt/module/init-p.js +40 -19
  150. package/_cjs/core/modules/decrypt/module/init-p.js.map +1 -1
  151. package/_cjs/core/modules/encrypt/mock.js +26 -8
  152. package/_cjs/core/modules/encrypt/mock.js.map +1 -1
  153. package/_cjs/core/modules/encrypt/module/api-p.js +50 -21
  154. package/_cjs/core/modules/encrypt/module/api-p.js.map +1 -1
  155. package/_cjs/core/modules/encrypt/module/index.js +3 -3
  156. package/_cjs/core/modules/encrypt/module/index.js.map +1 -1
  157. package/_cjs/core/modules/encrypt/module/init-p.js +63 -24
  158. package/_cjs/core/modules/encrypt/module/init-p.js.map +1 -1
  159. package/_cjs/core/modules/relayer/cleartext/fetchDelegatedUserDecrypt.js +1 -1
  160. package/_cjs/core/modules/relayer/cleartext/fetchDelegatedUserDecrypt.js.map +1 -1
  161. package/_cjs/core/modules/relayer/cleartext/fetchUserDecrypt.js +1 -1
  162. package/_cjs/core/modules/relayer/cleartext/fetchUserDecrypt.js.map +1 -1
  163. package/_cjs/core/modules/relayer/module/RelayerAsyncRequest.js +28 -4
  164. package/_cjs/core/modules/relayer/module/RelayerAsyncRequest.js.map +1 -1
  165. package/_cjs/core/modules/relayer/module/fetchFheEncryptionKeySource.js +5 -1
  166. package/_cjs/core/modules/relayer/module/fetchFheEncryptionKeySource.js.map +1 -1
  167. package/_cjs/core/modules/relayer/module/readErrorMessage.js +29 -0
  168. package/_cjs/core/modules/relayer/module/readErrorMessage.js.map +1 -0
  169. package/_cjs/core/runtime/CoreFhevm-p.js +171 -5
  170. package/_cjs/core/runtime/CoreFhevm-p.js.map +1 -1
  171. package/_cjs/core/runtime/HyperWasmSolver-p.js +187 -0
  172. package/_cjs/core/runtime/HyperWasmSolver-p.js.map +1 -0
  173. package/_cjs/core/runtime/ProtocolVersionResolver-p.js +270 -0
  174. package/_cjs/core/runtime/ProtocolVersionResolver-p.js.map +1 -0
  175. package/_cjs/core/runtime/initFhevmDecryptRuntime-p.js +1 -1
  176. package/_cjs/core/runtime/initFhevmDecryptRuntime-p.js.map +1 -1
  177. package/_cjs/core/runtime/initFhevmEncryptRuntime-p.js +1 -1
  178. package/_cjs/core/runtime/initFhevmEncryptRuntime-p.js.map +1 -1
  179. package/_cjs/core/runtime/initFhevmRuntime-p.js +4 -1
  180. package/_cjs/core/runtime/initFhevmRuntime-p.js.map +1 -1
  181. package/_cjs/core/runtime/resolveFhevmVersions-p.js +48 -0
  182. package/_cjs/core/runtime/resolveFhevmVersions-p.js.map +1 -0
  183. package/_cjs/core/runtimeConfig-p.js +10 -0
  184. package/_cjs/core/runtimeConfig-p.js.map +1 -1
  185. package/_cjs/core/types/{zkProofBuilder.js → moduleVersions.js} +1 -1
  186. package/_cjs/core/types/moduleVersions.js.map +1 -0
  187. package/_cjs/core/types/{fhevmUser.js → wasmAssets.js} +1 -1
  188. package/_cjs/core/types/wasmAssets.js.map +1 -0
  189. package/_cjs/core/types/{fhevmDecryptionKey.js → zkProofBuilder-p.js} +1 -1
  190. package/_cjs/core/types/zkProofBuilder-p.js.map +1 -0
  191. package/_cjs/core/utils-p/decrypt/verifyTkmsPublicKey.js +1 -0
  192. package/_cjs/core/utils-p/decrypt/verifyTkmsPublicKey.js.map +1 -1
  193. package/_cjs/ethers/internal/config.js +1 -18
  194. package/_cjs/ethers/internal/config.js.map +1 -1
  195. package/_cjs/viem/internal/config.js +1 -18
  196. package/_cjs/viem/internal/config.js.map +1 -1
  197. package/_cjs/wasm/tfhe/loadTfheLib.js.map +1 -1
  198. package/_cjs/wasm/tfhe/v1.5.3/tfhe.d.ts +4 -0
  199. package/_cjs/wasm/tfhe/v1.5.3/tfhe.js +6 -1
  200. package/_cjs/wasm/tfhe/v1.5.3/tfhe.js.map +2 -2
  201. package/_cjs/wasm/tfhe/v1.6.1/tfhe.d.ts +4 -0
  202. package/_cjs/wasm/tfhe/v1.6.1/tfhe.js +6 -1
  203. package/_cjs/wasm/tfhe/v1.6.1/tfhe.js.map +2 -2
  204. package/_cjs/wasm/tkms/loadKmsLib.js.map +1 -1
  205. package/_cjs/wasm/tkms/v0.13.10/kms_lib.d.ts +4 -0
  206. package/_cjs/wasm/tkms/v0.13.10/kms_lib.js +6 -1
  207. package/_cjs/wasm/tkms/v0.13.10/kms_lib.js.map +2 -2
  208. package/_cjs/wasm/tkms/v0.13.20-0/kms_lib.d.ts +4 -0
  209. package/_cjs/wasm/tkms/v0.13.20-0/kms_lib.js +6 -1
  210. package/_cjs/wasm/tkms/v0.13.20-0/kms_lib.js.map +2 -2
  211. package/_cjs/wasm/wasmBaseUrl.js +23 -7
  212. package/_cjs/wasm/wasmBaseUrl.js.map +2 -2
  213. package/_esm/core/_version.js +1 -1
  214. package/_esm/core/actions/base/canDecryptPublicValue.js +1 -1
  215. package/_esm/core/actions/base/canDecryptPublicValue.js.map +1 -1
  216. package/_esm/core/actions/base/canDecryptPublicValues.js +1 -1
  217. package/_esm/core/actions/base/canDecryptPublicValues.js.map +1 -1
  218. package/_esm/core/actions/base/{fetchKmsSignedcryptedShares.js → fetchKmsSigncryptedShares.js} +4 -4
  219. package/_esm/core/actions/base/fetchKmsSigncryptedShares.js.map +1 -0
  220. package/_esm/core/actions/base/index.js +1 -1
  221. package/_esm/core/actions/base/index.js.map +1 -1
  222. package/_esm/core/actions/base/readKmsSignersContext.js +2 -1
  223. package/_esm/core/actions/base/readKmsSignersContext.js.map +1 -1
  224. package/_esm/core/actions/chain/parseTransportKeyPair.js.map +1 -1
  225. package/_esm/core/actions/decrypt/decryptKmsSigncryptedShares.js +11 -0
  226. package/_esm/core/actions/decrypt/decryptKmsSigncryptedShares.js.map +1 -0
  227. package/_esm/core/actions/decrypt/decryptValue.js +3 -1
  228. package/_esm/core/actions/decrypt/decryptValue.js.map +1 -1
  229. package/_esm/core/actions/decrypt/decryptValues.js +3 -1
  230. package/_esm/core/actions/decrypt/decryptValues.js.map +1 -1
  231. package/_esm/core/actions/decrypt/decryptValuesFromPairs.js +3 -1
  232. package/_esm/core/actions/decrypt/decryptValuesFromPairs.js.map +1 -1
  233. package/_esm/core/actions/decrypt/generateTransportKeyPair.js +3 -1
  234. package/_esm/core/actions/decrypt/generateTransportKeyPair.js.map +1 -1
  235. package/_esm/core/actions/decrypt/index.js +1 -1
  236. package/_esm/core/actions/decrypt/index.js.map +1 -1
  237. package/_esm/core/actions/encrypt/encryptValue.js +3 -1
  238. package/_esm/core/actions/encrypt/encryptValue.js.map +1 -1
  239. package/_esm/core/actions/encrypt/encryptValues.js +3 -1
  240. package/_esm/core/actions/encrypt/encryptValues.js.map +1 -1
  241. package/_esm/core/actions/encrypt/generateZkProof.js +5 -1
  242. package/_esm/core/actions/encrypt/generateZkProof.js.map +1 -1
  243. package/_esm/core/actions/host/readFhevmExecutorContractData.js +8 -8
  244. package/_esm/core/actions/host/readFhevmExecutorContractData.js.map +1 -1
  245. package/_esm/core/actions/host/readInputVerifierContractData.js +2 -2
  246. package/_esm/core/actions/host/readInputVerifierContractData.js.map +1 -1
  247. package/_esm/core/actions/host/readKmsVerifierContractData.js +7 -6
  248. package/_esm/core/actions/host/readKmsVerifierContractData.js.map +1 -1
  249. package/_esm/core/actions/host/resolveFhevmConfig.js +7 -1
  250. package/_esm/core/actions/host/resolveFhevmConfig.js.map +1 -1
  251. package/_esm/core/base/object.js +28 -0
  252. package/_esm/core/base/object.js.map +1 -1
  253. package/_esm/core/base/semver.js +164 -0
  254. package/_esm/core/base/semver.js.map +1 -0
  255. package/_esm/core/base/uint.js +23 -2
  256. package/_esm/core/base/uint.js.map +1 -1
  257. package/_esm/core/chains/definitions/localTestnet.js +3 -0
  258. package/_esm/core/chains/definitions/localTestnet.js.map +1 -1
  259. package/_esm/core/chains/definitions/mainnet.js +1 -0
  260. package/_esm/core/chains/definitions/mainnet.js.map +1 -1
  261. package/_esm/core/chains/definitions/sepolia.js +1 -0
  262. package/_esm/core/chains/definitions/sepolia.js.map +1 -1
  263. package/_esm/core/clients/decorators/base.js +6 -1
  264. package/_esm/core/clients/decorators/base.js.map +1 -1
  265. package/_esm/core/clients/decorators/decrypt-p.js +11 -0
  266. package/_esm/core/clients/decorators/decrypt-p.js.map +1 -0
  267. package/_esm/core/clients/decorators/decrypt.js +3 -7
  268. package/_esm/core/clients/decorators/decrypt.js.map +1 -1
  269. package/_esm/core/clients/decorators/encrypt-p.js +6 -2
  270. package/_esm/core/clients/decorators/encrypt-p.js.map +1 -1
  271. package/_esm/core/clients/decorators/encrypt.js.map +1 -1
  272. package/_esm/core/coprocessor/ZkProof-p.js +4 -2
  273. package/_esm/core/coprocessor/ZkProof-p.js.map +1 -1
  274. package/_esm/core/coprocessor/ZkProofBuilder-p.js +2 -1
  275. package/_esm/core/coprocessor/ZkProofBuilder-p.js.map +1 -1
  276. package/_esm/core/coprocessor/encrypt.js +1 -1
  277. package/_esm/core/coprocessor/encrypt.js.map +1 -1
  278. package/_esm/core/errors/RelayerResponseStatusError.js +7 -2
  279. package/_esm/core/errors/RelayerResponseStatusError.js.map +1 -1
  280. package/_esm/core/host-contracts/HostContractVersion-p.js +34 -3
  281. package/_esm/core/host-contracts/HostContractVersion-p.js.map +1 -1
  282. package/_esm/core/host-contracts/KmsSignersContext-p.js +24 -6
  283. package/_esm/core/host-contracts/KmsSignersContext-p.js.map +1 -1
  284. package/_esm/core/host-contracts/abi-fragments/fragments.js +24 -0
  285. package/_esm/core/host-contracts/abi-fragments/fragments.js.map +1 -1
  286. package/_esm/core/host-contracts/canDecryptValuesFromPairs.js +1 -1
  287. package/_esm/core/host-contracts/canDecryptValuesFromPairs.js.map +1 -1
  288. package/_esm/core/host-contracts/checkAllowedForDecryption.js +2 -2
  289. package/_esm/core/host-contracts/checkAllowedForDecryption.js.map +1 -1
  290. package/_esm/core/host-contracts/checkDelegation.js +8 -8
  291. package/_esm/core/host-contracts/checkDelegation.js.map +1 -1
  292. package/_esm/core/host-contracts/checkPersistAllowed.js +9 -9
  293. package/_esm/core/host-contracts/checkPersistAllowed.js.map +1 -1
  294. package/_esm/core/host-contracts/getAclAddress-p.js +1 -2
  295. package/_esm/core/host-contracts/getAclAddress-p.js.map +1 -1
  296. package/_esm/core/host-contracts/getCurrentKmsContextAndEpoch-p.js +63 -0
  297. package/_esm/core/host-contracts/getCurrentKmsContextAndEpoch-p.js.map +1 -0
  298. package/_esm/core/host-contracts/getCurrentKmsContextId-p.js +6 -7
  299. package/_esm/core/host-contracts/getCurrentKmsContextId-p.js.map +1 -1
  300. package/_esm/core/host-contracts/getFhevmExecutorAddress-p.js +1 -1
  301. package/_esm/core/host-contracts/getFhevmExecutorAddress-p.js.map +1 -1
  302. package/_esm/core/host-contracts/getHandleVersion-p.js +1 -2
  303. package/_esm/core/host-contracts/getHandleVersion-p.js.map +1 -1
  304. package/_esm/core/host-contracts/getHcuLimitAddress-p.js +1 -2
  305. package/_esm/core/host-contracts/getHcuLimitAddress-p.js.map +1 -1
  306. package/_esm/core/host-contracts/getInputVerifierAddress-p.js +1 -2
  307. package/_esm/core/host-contracts/getInputVerifierAddress-p.js.map +1 -1
  308. package/_esm/core/host-contracts/getKmsContextSignersAndThreshold-p.js +6 -8
  309. package/_esm/core/host-contracts/getKmsContextSignersAndThreshold-p.js.map +1 -1
  310. package/_esm/core/host-contracts/getKmsContextSignersAndThresholdFromExtraData-p.js +5 -6
  311. package/_esm/core/host-contracts/getKmsContextSignersAndThresholdFromExtraData-p.js.map +1 -1
  312. package/_esm/core/host-contracts/getSignersForKmsContext-p.js +5 -7
  313. package/_esm/core/host-contracts/getSignersForKmsContext-p.js.map +1 -1
  314. package/_esm/core/host-contracts/isAllowedForDecryption.js +4 -4
  315. package/_esm/core/host-contracts/isAllowedForDecryption.js.map +1 -1
  316. package/_esm/core/host-contracts/isHandleDelegatedForUserDecryption-p.js +5 -5
  317. package/_esm/core/host-contracts/isHandleDelegatedForUserDecryption-p.js.map +1 -1
  318. package/_esm/core/host-contracts/isUserDecryptable.js +2 -2
  319. package/_esm/core/host-contracts/isUserDecryptable.js.map +1 -1
  320. package/_esm/core/host-contracts/persistAllowed.js +4 -4
  321. package/_esm/core/host-contracts/persistAllowed.js.map +1 -1
  322. package/_esm/core/host-contracts/readKmsSignersContext-p.js +89 -29
  323. package/_esm/core/host-contracts/readKmsSignersContext-p.js.map +1 -1
  324. package/_esm/core/key/FheEncryptionKeyWasm-p.js +12 -4
  325. package/_esm/core/key/FheEncryptionKeyWasm-p.js.map +1 -1
  326. package/_esm/core/key/deserializeFheEncryptionKey.js +3 -0
  327. package/_esm/core/key/deserializeFheEncryptionKey.js.map +1 -1
  328. package/_esm/core/key/fetchFheEncryptionKey.js +1 -1
  329. package/_esm/core/key/fetchFheEncryptionKey.js.map +1 -1
  330. package/_esm/core/key/fetchFheEncryptionKeyBytes.js.map +1 -1
  331. package/_esm/core/key/serializeFheEncryptionKey.js +4 -1
  332. package/_esm/core/key/serializeFheEncryptionKey.js.map +1 -1
  333. package/_esm/core/kms/KmsSigncryptedShares-p.js +9 -1
  334. package/_esm/core/kms/KmsSigncryptedShares-p.js.map +1 -1
  335. package/_esm/core/kms/SignedDecryptionPermit-p.js +5 -1
  336. package/_esm/core/kms/SignedDecryptionPermit-p.js.map +1 -1
  337. package/_esm/core/kms/TransportKeyPair-p.js +32 -7
  338. package/_esm/core/kms/TransportKeyPair-p.js.map +1 -1
  339. package/_esm/core/kms/createKmsUserDecryptEip712.js +4 -0
  340. package/_esm/core/kms/createKmsUserDecryptEip712.js.map +1 -1
  341. package/_esm/core/kms/createKmsUserDecryptEip712V2.js +98 -0
  342. package/_esm/core/kms/createKmsUserDecryptEip712V2.js.map +1 -0
  343. package/_esm/core/kms/{decryptKmsSignedcryptedShares-p.js → decryptKmsSigncryptedShares-p.js} +9 -2
  344. package/_esm/core/kms/decryptKmsSigncryptedShares-p.js.map +1 -0
  345. package/_esm/core/kms/decryptValuesFromPairs.js +4 -4
  346. package/_esm/core/kms/decryptValuesFromPairs.js.map +1 -1
  347. package/_esm/core/kms/{fetchKmsSignedcryptedShares-p.js → fetchKmsSigncryptedShares-p.js} +12 -6
  348. package/_esm/core/kms/fetchKmsSigncryptedShares-p.js.map +1 -0
  349. package/_esm/core/kms/kmsExtraData.js +70 -12
  350. package/_esm/core/kms/kmsExtraData.js.map +1 -1
  351. package/_esm/core/kms/kmsUserDecryptEip712V2Types.js +28 -0
  352. package/_esm/core/kms/kmsUserDecryptEip712V2Types.js.map +1 -0
  353. package/_esm/core/kms/publicDecrypt.js +5 -3
  354. package/_esm/core/kms/publicDecrypt.js.map +1 -1
  355. package/_esm/core/modules/decrypt/mock.js +0 -24
  356. package/_esm/core/modules/decrypt/mock.js.map +1 -1
  357. package/_esm/core/modules/decrypt/module/api-p.js +51 -23
  358. package/_esm/core/modules/decrypt/module/api-p.js.map +1 -1
  359. package/_esm/core/modules/decrypt/module/index.js +31 -25
  360. package/_esm/core/modules/decrypt/module/index.js.map +1 -1
  361. package/_esm/core/modules/decrypt/module/init-p.js +41 -19
  362. package/_esm/core/modules/decrypt/module/init-p.js.map +1 -1
  363. package/_esm/core/modules/encrypt/mock.js +26 -9
  364. package/_esm/core/modules/encrypt/mock.js.map +1 -1
  365. package/_esm/core/modules/encrypt/module/api-p.js +50 -21
  366. package/_esm/core/modules/encrypt/module/api-p.js.map +1 -1
  367. package/_esm/core/modules/encrypt/module/index.js +3 -3
  368. package/_esm/core/modules/encrypt/module/index.js.map +1 -1
  369. package/_esm/core/modules/encrypt/module/init-p.js +69 -29
  370. package/_esm/core/modules/encrypt/module/init-p.js.map +1 -1
  371. package/_esm/core/modules/relayer/cleartext/fetchDelegatedUserDecrypt.js +2 -2
  372. package/_esm/core/modules/relayer/cleartext/fetchDelegatedUserDecrypt.js.map +1 -1
  373. package/_esm/core/modules/relayer/cleartext/fetchUserDecrypt.js +2 -2
  374. package/_esm/core/modules/relayer/cleartext/fetchUserDecrypt.js.map +1 -1
  375. package/_esm/core/modules/relayer/module/RelayerAsyncRequest.js +57 -4
  376. package/_esm/core/modules/relayer/module/RelayerAsyncRequest.js.map +1 -1
  377. package/_esm/core/modules/relayer/module/fetchFheEncryptionKeySource.js +8 -1
  378. package/_esm/core/modules/relayer/module/fetchFheEncryptionKeySource.js.map +1 -1
  379. package/_esm/core/modules/relayer/module/readErrorMessage.js +52 -0
  380. package/_esm/core/modules/relayer/module/readErrorMessage.js.map +1 -0
  381. package/_esm/core/runtime/CoreFhevm-p.js +167 -5
  382. package/_esm/core/runtime/CoreFhevm-p.js.map +1 -1
  383. package/_esm/core/runtime/HyperWasmSolver-p.js +268 -0
  384. package/_esm/core/runtime/HyperWasmSolver-p.js.map +1 -0
  385. package/_esm/core/runtime/ProtocolVersionResolver-p.js +326 -0
  386. package/_esm/core/runtime/ProtocolVersionResolver-p.js.map +1 -0
  387. package/_esm/core/runtime/initFhevmDecryptRuntime-p.js +1 -1
  388. package/_esm/core/runtime/initFhevmDecryptRuntime-p.js.map +1 -1
  389. package/_esm/core/runtime/initFhevmEncryptRuntime-p.js +1 -1
  390. package/_esm/core/runtime/initFhevmEncryptRuntime-p.js.map +1 -1
  391. package/_esm/core/runtime/initFhevmRuntime-p.js +4 -1
  392. package/_esm/core/runtime/initFhevmRuntime-p.js.map +1 -1
  393. package/_esm/core/runtime/resolveFhevmVersions-p.js +62 -0
  394. package/_esm/core/runtime/resolveFhevmVersions-p.js.map +1 -0
  395. package/_esm/core/runtimeConfig-p.js +9 -0
  396. package/_esm/core/runtimeConfig-p.js.map +1 -1
  397. package/_esm/core/types/moduleVersions.js +2 -0
  398. package/_esm/core/types/moduleVersions.js.map +1 -0
  399. package/_esm/core/types/wasmAssets.js +2 -0
  400. package/_esm/core/types/wasmAssets.js.map +1 -0
  401. package/_esm/core/types/zkProofBuilder-p.js +2 -0
  402. package/_esm/core/types/zkProofBuilder-p.js.map +1 -0
  403. package/_esm/core/utils-p/decrypt/verifyTkmsPublicKey.js +1 -0
  404. package/_esm/core/utils-p/decrypt/verifyTkmsPublicKey.js.map +1 -1
  405. package/_esm/ethers/internal/config.js +1 -18
  406. package/_esm/ethers/internal/config.js.map +1 -1
  407. package/_esm/viem/internal/config.js +1 -18
  408. package/_esm/viem/internal/config.js.map +1 -1
  409. package/_esm/wasm/tfhe/v1.5.3/tfhe.d.ts +4 -0
  410. package/_esm/wasm/tfhe/v1.5.3/tfhe.js +8 -0
  411. package/_esm/wasm/tfhe/v1.6.1/tfhe.d.ts +4 -0
  412. package/_esm/wasm/tfhe/v1.6.1/tfhe.js +8 -0
  413. package/_esm/wasm/tkms/v0.13.10/kms_lib.d.ts +4 -0
  414. package/_esm/wasm/tkms/v0.13.10/kms_lib.js +8 -0
  415. package/_esm/wasm/tkms/v0.13.20-0/kms_lib.d.ts +4 -0
  416. package/_esm/wasm/tkms/v0.13.20-0/kms_lib.js +8 -0
  417. package/_esm/wasm/wasmBaseUrl.js +69 -4
  418. package/_types/core/actions/base/{fetchKmsSignedcryptedShares.d.ts → fetchKmsSigncryptedShares.d.ts} +7 -7
  419. package/_types/core/actions/base/fetchKmsSigncryptedShares.d.ts.map +1 -0
  420. package/_types/core/actions/base/index.d.ts +1 -1
  421. package/_types/core/actions/base/index.d.ts.map +1 -1
  422. package/_types/core/actions/base/readKmsSignersContext.d.ts.map +1 -1
  423. package/_types/core/actions/chain/parseSignedDecryptionPermit.d.ts +2 -2
  424. package/_types/core/actions/chain/parseSignedDecryptionPermit.d.ts.map +1 -1
  425. package/_types/core/actions/chain/parseTransportKeyPair.d.ts +1 -1
  426. package/_types/core/actions/chain/parseTransportKeyPair.d.ts.map +1 -1
  427. package/_types/core/actions/decrypt/{decryptKmsSignedcryptedShares.d.ts → decryptKmsSigncryptedShares.d.ts} +4 -4
  428. package/_types/core/actions/decrypt/decryptKmsSigncryptedShares.d.ts.map +1 -0
  429. package/_types/core/actions/decrypt/decryptValue.d.ts.map +1 -1
  430. package/_types/core/actions/decrypt/decryptValues.d.ts.map +1 -1
  431. package/_types/core/actions/decrypt/decryptValuesFromPairs.d.ts.map +1 -1
  432. package/_types/core/actions/decrypt/generateTransportKeyPair.d.ts +2 -2
  433. package/_types/core/actions/decrypt/generateTransportKeyPair.d.ts.map +1 -1
  434. package/_types/core/actions/decrypt/index.d.ts +1 -1
  435. package/_types/core/actions/decrypt/index.d.ts.map +1 -1
  436. package/_types/core/actions/encrypt/encryptValue.d.ts.map +1 -1
  437. package/_types/core/actions/encrypt/encryptValues.d.ts.map +1 -1
  438. package/_types/core/actions/encrypt/generateZkProof.d.ts.map +1 -1
  439. package/_types/core/actions/host/readKmsVerifierContractData.d.ts +1 -0
  440. package/_types/core/actions/host/readKmsVerifierContractData.d.ts.map +1 -1
  441. package/_types/core/actions/host/resolveFhevmConfig.d.ts +2 -0
  442. package/_types/core/actions/host/resolveFhevmConfig.d.ts.map +1 -1
  443. package/_types/core/base/object.d.ts +7 -0
  444. package/_types/core/base/object.d.ts.map +1 -1
  445. package/_types/core/base/semver.d.ts +39 -0
  446. package/_types/core/base/semver.d.ts.map +1 -0
  447. package/_types/core/base/uint.d.ts +13 -2
  448. package/_types/core/base/uint.d.ts.map +1 -1
  449. package/_types/core/chains/definitions/localTestnet.d.ts +3 -0
  450. package/_types/core/chains/definitions/localTestnet.d.ts.map +1 -1
  451. package/_types/core/chains/definitions/mainnet.d.ts +1 -0
  452. package/_types/core/chains/definitions/mainnet.d.ts.map +1 -1
  453. package/_types/core/chains/definitions/sepolia.d.ts.map +1 -1
  454. package/_types/core/clients/decorators/base.d.ts.map +1 -1
  455. package/_types/core/clients/decorators/decrypt-p.d.ts +4 -0
  456. package/_types/core/clients/decorators/decrypt-p.d.ts.map +1 -0
  457. package/_types/core/clients/decorators/decrypt.d.ts +4 -2
  458. package/_types/core/clients/decorators/decrypt.d.ts.map +1 -1
  459. package/_types/core/clients/decorators/encrypt-p.d.ts +2 -3
  460. package/_types/core/clients/decorators/encrypt-p.d.ts.map +1 -1
  461. package/_types/core/clients/decorators/encrypt.d.ts +4 -2
  462. package/_types/core/clients/decorators/encrypt.d.ts.map +1 -1
  463. package/_types/core/coprocessor/ZkProof-p.d.ts +9 -2
  464. package/_types/core/coprocessor/ZkProof-p.d.ts.map +1 -1
  465. package/_types/core/coprocessor/ZkProofBuilder-p.d.ts +3 -1
  466. package/_types/core/coprocessor/ZkProofBuilder-p.d.ts.map +1 -1
  467. package/_types/core/coprocessor/encrypt.d.ts +2 -0
  468. package/_types/core/coprocessor/encrypt.d.ts.map +1 -1
  469. package/_types/core/errors/RelayerResponseStatusError.d.ts +7 -1
  470. package/_types/core/errors/RelayerResponseStatusError.d.ts.map +1 -1
  471. package/_types/core/host-contracts/HostContractVersion-p.d.ts +18 -1
  472. package/_types/core/host-contracts/HostContractVersion-p.d.ts.map +1 -1
  473. package/_types/core/host-contracts/KmsSignersContext-p.d.ts +2 -1
  474. package/_types/core/host-contracts/KmsSignersContext-p.d.ts.map +1 -1
  475. package/_types/core/host-contracts/abi-fragments/fragments.d.ts +5 -0
  476. package/_types/core/host-contracts/abi-fragments/fragments.d.ts.map +1 -1
  477. package/_types/core/host-contracts/checkAllowedForDecryption.d.ts +1 -1
  478. package/_types/core/host-contracts/checkAllowedForDecryption.d.ts.map +1 -1
  479. package/_types/core/host-contracts/checkDelegation.d.ts +1 -1
  480. package/_types/core/host-contracts/checkDelegation.d.ts.map +1 -1
  481. package/_types/core/host-contracts/checkPersistAllowed.d.ts +1 -1
  482. package/_types/core/host-contracts/checkPersistAllowed.d.ts.map +1 -1
  483. package/_types/core/host-contracts/getAclAddress-p.d.ts +1 -1
  484. package/_types/core/host-contracts/getAclAddress-p.d.ts.map +1 -1
  485. package/_types/core/host-contracts/getCurrentKmsContextAndEpoch-p.d.ts +30 -0
  486. package/_types/core/host-contracts/getCurrentKmsContextAndEpoch-p.d.ts.map +1 -0
  487. package/_types/core/host-contracts/getCurrentKmsContextId-p.d.ts +1 -1
  488. package/_types/core/host-contracts/getCurrentKmsContextId-p.d.ts.map +1 -1
  489. package/_types/core/host-contracts/getFhevmExecutorAddress-p.d.ts +1 -1
  490. package/_types/core/host-contracts/getFhevmExecutorAddress-p.d.ts.map +1 -1
  491. package/_types/core/host-contracts/getHandleVersion-p.d.ts +1 -1
  492. package/_types/core/host-contracts/getHandleVersion-p.d.ts.map +1 -1
  493. package/_types/core/host-contracts/getHcuLimitAddress-p.d.ts +1 -1
  494. package/_types/core/host-contracts/getHcuLimitAddress-p.d.ts.map +1 -1
  495. package/_types/core/host-contracts/getInputVerifierAddress-p.d.ts +1 -1
  496. package/_types/core/host-contracts/getInputVerifierAddress-p.d.ts.map +1 -1
  497. package/_types/core/host-contracts/getKmsContextSignersAndThreshold-p.d.ts +1 -1
  498. package/_types/core/host-contracts/getKmsContextSignersAndThreshold-p.d.ts.map +1 -1
  499. package/_types/core/host-contracts/getKmsContextSignersAndThresholdFromExtraData-p.d.ts +1 -1
  500. package/_types/core/host-contracts/getKmsContextSignersAndThresholdFromExtraData-p.d.ts.map +1 -1
  501. package/_types/core/host-contracts/getSignersForKmsContext-p.d.ts +2 -2
  502. package/_types/core/host-contracts/getSignersForKmsContext-p.d.ts.map +1 -1
  503. package/_types/core/host-contracts/isAllowedForDecryption.d.ts +1 -1
  504. package/_types/core/host-contracts/isAllowedForDecryption.d.ts.map +1 -1
  505. package/_types/core/host-contracts/isHandleDelegatedForUserDecryption-p.d.ts +1 -1
  506. package/_types/core/host-contracts/isHandleDelegatedForUserDecryption-p.d.ts.map +1 -1
  507. package/_types/core/host-contracts/isUserDecryptable.d.ts +1 -1
  508. package/_types/core/host-contracts/isUserDecryptable.d.ts.map +1 -1
  509. package/_types/core/host-contracts/persistAllowed.d.ts +1 -1
  510. package/_types/core/host-contracts/persistAllowed.d.ts.map +1 -1
  511. package/_types/core/host-contracts/readKmsSignersContext-p.d.ts +25 -7
  512. package/_types/core/host-contracts/readKmsSignersContext-p.d.ts.map +1 -1
  513. package/_types/core/key/FheEncryptionKeyWasm-p.d.ts +3 -1
  514. package/_types/core/key/FheEncryptionKeyWasm-p.d.ts.map +1 -1
  515. package/_types/core/key/deserializeFheEncryptionKey.d.ts +2 -0
  516. package/_types/core/key/deserializeFheEncryptionKey.d.ts.map +1 -1
  517. package/_types/core/key/fetchFheEncryptionKey.d.ts +3 -1
  518. package/_types/core/key/fetchFheEncryptionKey.d.ts.map +1 -1
  519. package/_types/core/key/fetchFheEncryptionKeyBytes.d.ts.map +1 -1
  520. package/_types/core/key/serializeFheEncryptionKey.d.ts.map +1 -1
  521. package/_types/core/kms/KmsSigncryptedShares-p.d.ts.map +1 -1
  522. package/_types/core/kms/SignedDecryptionPermit-p.d.ts.map +1 -1
  523. package/_types/core/kms/TransportKeyPair-p.d.ts +9 -0
  524. package/_types/core/kms/TransportKeyPair-p.d.ts.map +1 -1
  525. package/_types/core/kms/createKmsUserDecryptEip712.d.ts.map +1 -1
  526. package/_types/core/kms/createKmsUserDecryptEip712V2.d.ts +15 -0
  527. package/_types/core/kms/createKmsUserDecryptEip712V2.d.ts.map +1 -0
  528. package/_types/core/kms/{decryptKmsSignedcryptedShares-p.d.ts → decryptKmsSigncryptedShares-p.d.ts} +4 -2
  529. package/_types/core/kms/decryptKmsSigncryptedShares-p.d.ts.map +1 -0
  530. package/_types/core/kms/decryptValuesFromPairs.d.ts +2 -0
  531. package/_types/core/kms/decryptValuesFromPairs.d.ts.map +1 -1
  532. package/_types/core/kms/{fetchKmsSignedcryptedShares-p.d.ts → fetchKmsSigncryptedShares-p.d.ts} +2 -2
  533. package/_types/core/kms/fetchKmsSigncryptedShares-p.d.ts.map +1 -0
  534. package/_types/core/kms/kmsExtraData.d.ts +9 -2
  535. package/_types/core/kms/kmsExtraData.d.ts.map +1 -1
  536. package/_types/core/kms/kmsUserDecryptEip712V2Types.d.ts +3 -0
  537. package/_types/core/kms/kmsUserDecryptEip712V2Types.d.ts.map +1 -0
  538. package/_types/core/kms/publicDecrypt.d.ts.map +1 -1
  539. package/_types/core/modules/decrypt/mock.d.ts +1 -2
  540. package/_types/core/modules/decrypt/mock.d.ts.map +1 -1
  541. package/_types/core/modules/decrypt/module/api-p.d.ts +2 -2
  542. package/_types/core/modules/decrypt/module/api-p.d.ts.map +1 -1
  543. package/_types/core/modules/decrypt/module/index.d.ts +1 -2
  544. package/_types/core/modules/decrypt/module/index.d.ts.map +1 -1
  545. package/_types/core/modules/decrypt/module/init-p.d.ts +3 -3
  546. package/_types/core/modules/decrypt/module/init-p.d.ts.map +1 -1
  547. package/_types/core/modules/decrypt/types.d.ts +33 -34
  548. package/_types/core/modules/decrypt/types.d.ts.map +1 -1
  549. package/_types/core/modules/encrypt/mock.d.ts.map +1 -1
  550. package/_types/core/modules/encrypt/module/api-p.d.ts.map +1 -1
  551. package/_types/core/modules/encrypt/module/index.d.ts.map +1 -1
  552. package/_types/core/modules/encrypt/module/init-p.d.ts +11 -4
  553. package/_types/core/modules/encrypt/module/init-p.d.ts.map +1 -1
  554. package/_types/core/modules/encrypt/types.d.ts +31 -2
  555. package/_types/core/modules/encrypt/types.d.ts.map +1 -1
  556. package/_types/core/modules/relayer/module/RelayerAsyncRequest.d.ts +18 -0
  557. package/_types/core/modules/relayer/module/RelayerAsyncRequest.d.ts.map +1 -1
  558. package/_types/core/modules/relayer/module/fetchFheEncryptionKeySource.d.ts.map +1 -1
  559. package/_types/core/modules/relayer/module/readErrorMessage.d.ts +26 -0
  560. package/_types/core/modules/relayer/module/readErrorMessage.d.ts.map +1 -0
  561. package/_types/core/runtime/CoreFhevm-p.d.ts +15 -4
  562. package/_types/core/runtime/CoreFhevm-p.d.ts.map +1 -1
  563. package/_types/core/runtime/HyperWasmSolver-p.d.ts +71 -0
  564. package/_types/core/runtime/HyperWasmSolver-p.d.ts.map +1 -0
  565. package/_types/core/runtime/ProtocolVersionResolver-p.d.ts +29 -0
  566. package/_types/core/runtime/ProtocolVersionResolver-p.d.ts.map +1 -0
  567. package/_types/core/runtime/initFhevmRuntime-p.d.ts.map +1 -1
  568. package/_types/core/runtime/resolveFhevmVersions-p.d.ts +21 -0
  569. package/_types/core/runtime/resolveFhevmVersions-p.d.ts.map +1 -0
  570. package/_types/core/runtimeConfig-p.d.ts +3 -2
  571. package/_types/core/runtimeConfig-p.d.ts.map +1 -1
  572. package/_types/core/types/auth.d.ts +12 -1
  573. package/_types/core/types/auth.d.ts.map +1 -1
  574. package/_types/core/types/coreFhevmClient.d.ts +72 -2
  575. package/_types/core/types/coreFhevmClient.d.ts.map +1 -1
  576. package/_types/core/types/coreFhevmRuntime.d.ts +3 -9
  577. package/_types/core/types/coreFhevmRuntime.d.ts.map +1 -1
  578. package/_types/core/types/fheEncryptionKey.d.ts +2 -0
  579. package/_types/core/types/fheEncryptionKey.d.ts.map +1 -1
  580. package/_types/core/types/fhevmChain.d.ts +3 -0
  581. package/_types/core/types/fhevmChain.d.ts.map +1 -1
  582. package/_types/core/types/hostContract.d.ts +1 -0
  583. package/_types/core/types/hostContract.d.ts.map +1 -1
  584. package/_types/core/types/index.d.ts +1 -1
  585. package/_types/core/types/index.d.ts.map +1 -1
  586. package/_types/core/types/kms-p.d.ts +2 -0
  587. package/_types/core/types/kms-p.d.ts.map +1 -1
  588. package/_types/core/types/kms.d.ts +71 -21
  589. package/_types/core/types/kms.d.ts.map +1 -1
  590. package/_types/core/types/kmsSignersContext.d.ts +8 -0
  591. package/_types/core/types/kmsSignersContext.d.ts.map +1 -1
  592. package/_types/core/types/logger.d.ts +1 -0
  593. package/_types/core/types/logger.d.ts.map +1 -1
  594. package/_types/core/types/moduleVersions.d.ts +25 -0
  595. package/_types/core/types/moduleVersions.d.ts.map +1 -0
  596. package/_types/core/types/tkms-p.d.ts +2 -0
  597. package/_types/core/types/tkms-p.d.ts.map +1 -1
  598. package/_types/core/types/wasmAssets.d.ts +2 -0
  599. package/_types/core/types/wasmAssets.d.ts.map +1 -0
  600. package/_types/core/types/{zkProofBuilder.d.ts → zkProofBuilder-p.d.ts} +8 -3
  601. package/_types/core/types/zkProofBuilder-p.d.ts.map +1 -0
  602. package/_types/core/utils-p/decrypt/verifyTkmsPublicKey.d.ts +2 -0
  603. package/_types/core/utils-p/decrypt/verifyTkmsPublicKey.d.ts.map +1 -1
  604. package/_types/ethers/cleartext/createFhevmCleartextDecryptClient.d.ts +2 -2
  605. package/_types/ethers/cleartext/createFhevmCleartextDecryptClient.d.ts.map +1 -1
  606. package/_types/ethers/cleartext/createFhevmCleartextEncryptClient.d.ts +2 -2
  607. package/_types/ethers/cleartext/createFhevmCleartextEncryptClient.d.ts.map +1 -1
  608. package/_types/ethers/clients/createFhevmDecryptClient.d.ts +2 -2
  609. package/_types/ethers/clients/createFhevmDecryptClient.d.ts.map +1 -1
  610. package/_types/ethers/clients/createFhevmEncryptClient.d.ts +2 -2
  611. package/_types/ethers/clients/createFhevmEncryptClient.d.ts.map +1 -1
  612. package/_types/viem/cleartext/createFhevmCleartextDecryptClient.d.ts +2 -2
  613. package/_types/viem/cleartext/createFhevmCleartextDecryptClient.d.ts.map +1 -1
  614. package/_types/viem/cleartext/createFhevmCleartextEncryptClient.d.ts +2 -2
  615. package/_types/viem/cleartext/createFhevmCleartextEncryptClient.d.ts.map +1 -1
  616. package/_types/viem/clients/createFhevmDecryptClient.d.ts +2 -2
  617. package/_types/viem/clients/createFhevmDecryptClient.d.ts.map +1 -1
  618. package/_types/viem/clients/createFhevmEncryptClient.d.ts +2 -2
  619. package/_types/viem/clients/createFhevmEncryptClient.d.ts.map +1 -1
  620. package/_types/wasm/tfhe/v1.5.3/tfhe.d.ts +4 -0
  621. package/_types/wasm/tfhe/v1.6.1/tfhe.d.ts +4 -0
  622. package/_types/wasm/tfheModuleVersion-p.d.ts +1 -1
  623. package/_types/wasm/tfheModuleVersion-p.d.ts.map +1 -1
  624. package/_types/wasm/tkms/v0.13.10/kms_lib.d.ts +4 -0
  625. package/_types/wasm/tkms/v0.13.20-0/kms_lib.d.ts +4 -0
  626. package/_types/wasm/tkmsModuleVersion-p.d.ts +1 -1
  627. package/_types/wasm/tkmsModuleVersion-p.d.ts.map +1 -1
  628. package/core/_version.ts +1 -1
  629. package/core/actions/base/canDecryptPublicValue.ts +1 -1
  630. package/core/actions/base/canDecryptPublicValues.ts +1 -1
  631. package/core/actions/base/{fetchKmsSignedcryptedShares.ts → fetchKmsSigncryptedShares.ts} +16 -16
  632. package/core/actions/base/index.ts +5 -5
  633. package/core/actions/base/readKmsSignersContext.ts +2 -1
  634. package/core/actions/chain/parseSignedDecryptionPermit.ts +2 -2
  635. package/core/actions/chain/parseTransportKeyPair.ts +2 -1
  636. package/core/actions/decrypt/{decryptKmsSignedcryptedShares.ts → decryptKmsSigncryptedShares.ts} +12 -9
  637. package/core/actions/decrypt/decryptValue.ts +4 -1
  638. package/core/actions/decrypt/decryptValues.ts +4 -1
  639. package/core/actions/decrypt/decryptValuesFromPairs.ts +4 -1
  640. package/core/actions/decrypt/generateTransportKeyPair.ts +5 -3
  641. package/core/actions/decrypt/index.ts +4 -4
  642. package/core/actions/encrypt/encryptValue.ts +4 -1
  643. package/core/actions/encrypt/encryptValues.ts +4 -1
  644. package/core/actions/encrypt/generateZkProof.ts +9 -1
  645. package/core/actions/host/readFhevmExecutorContractData.ts +8 -8
  646. package/core/actions/host/readInputVerifierContractData.ts +2 -2
  647. package/core/actions/host/readKmsVerifierContractData.ts +8 -6
  648. package/core/actions/host/resolveFhevmConfig.ts +10 -1
  649. package/core/base/object.ts +38 -0
  650. package/core/base/semver.ts +231 -0
  651. package/core/base/uint.ts +33 -4
  652. package/core/chains/definitions/localTestnet.ts +3 -0
  653. package/core/chains/definitions/mainnet.ts +1 -0
  654. package/core/chains/definitions/sepolia.ts +6 -6
  655. package/core/clients/decorators/base.ts +8 -1
  656. package/core/clients/decorators/decrypt-p.ts +18 -0
  657. package/core/clients/decorators/decrypt.ts +10 -15
  658. package/core/clients/decorators/encrypt-p.ts +12 -7
  659. package/core/clients/decorators/encrypt.ts +6 -4
  660. package/core/coprocessor/ZkProof-p.ts +17 -5
  661. package/core/coprocessor/ZkProofBuilder-p.ts +5 -2
  662. package/core/coprocessor/encrypt.ts +6 -1
  663. package/core/errors/RelayerResponseStatusError.ts +14 -2
  664. package/core/host-contracts/HostContractVersion-p.ts +60 -3
  665. package/core/host-contracts/KmsSignersContext-p.ts +36 -5
  666. package/core/host-contracts/abi-fragments/fragments.ts +28 -0
  667. package/core/host-contracts/canDecryptValuesFromPairs.ts +1 -1
  668. package/core/host-contracts/checkAllowedForDecryption.ts +3 -3
  669. package/core/host-contracts/checkDelegation.ts +9 -9
  670. package/core/host-contracts/checkPersistAllowed.ts +10 -10
  671. package/core/host-contracts/getAclAddress-p.ts +2 -3
  672. package/core/host-contracts/getCurrentKmsContextAndEpoch-p.ts +92 -0
  673. package/core/host-contracts/getCurrentKmsContextId-p.ts +8 -8
  674. package/core/host-contracts/getFhevmExecutorAddress-p.ts +2 -2
  675. package/core/host-contracts/getHandleVersion-p.ts +2 -3
  676. package/core/host-contracts/getHcuLimitAddress-p.ts +2 -3
  677. package/core/host-contracts/getInputVerifierAddress-p.ts +2 -3
  678. package/core/host-contracts/getKmsContextSignersAndThreshold-p.ts +7 -9
  679. package/core/host-contracts/getKmsContextSignersAndThresholdFromExtraData-p.ts +6 -7
  680. package/core/host-contracts/getSignersForKmsContext-p.ts +6 -8
  681. package/core/host-contracts/isAllowedForDecryption.ts +6 -6
  682. package/core/host-contracts/isHandleDelegatedForUserDecryption-p.ts +7 -7
  683. package/core/host-contracts/isUserDecryptable.ts +3 -3
  684. package/core/host-contracts/persistAllowed.ts +6 -6
  685. package/core/host-contracts/readKmsSignersContext-p.ts +131 -41
  686. package/core/key/FheEncryptionKeyWasm-p.ts +24 -3
  687. package/core/key/deserializeFheEncryptionKey.ts +8 -1
  688. package/core/key/fetchFheEncryptionKey.ts +8 -4
  689. package/core/key/fetchFheEncryptionKeyBytes.ts +4 -2
  690. package/core/key/serializeFheEncryptionKey.ts +8 -2
  691. package/core/kms/KmsSigncryptedShares-p.ts +11 -1
  692. package/core/kms/SignedDecryptionPermit-p.ts +6 -1
  693. package/core/kms/TransportKeyPair-p.ts +56 -10
  694. package/core/kms/createKmsUserDecryptEip712.ts +4 -0
  695. package/core/kms/createKmsUserDecryptEip712V2.ts +159 -0
  696. package/core/kms/{decryptKmsSignedcryptedShares-p.ts → decryptKmsSigncryptedShares-p.ts} +12 -2
  697. package/core/kms/decryptValuesFromPairs.ts +6 -4
  698. package/core/kms/{fetchKmsSignedcryptedShares-p.ts → fetchKmsSigncryptedShares-p.ts} +12 -5
  699. package/core/kms/kmsExtraData.ts +82 -13
  700. package/core/kms/kmsUserDecryptEip712V2Types.ts +31 -0
  701. package/core/kms/publicDecrypt.ts +5 -3
  702. package/core/modules/decrypt/mock.ts +0 -35
  703. package/core/modules/decrypt/module/api-p.ts +88 -17
  704. package/core/modules/decrypt/module/index.ts +37 -34
  705. package/core/modules/decrypt/module/init-p.ts +60 -28
  706. package/core/modules/decrypt/types.ts +37 -65
  707. package/core/modules/encrypt/mock.ts +34 -4
  708. package/core/modules/encrypt/module/api-p.ts +66 -15
  709. package/core/modules/encrypt/module/index.ts +5 -3
  710. package/core/modules/encrypt/module/init-p.ts +99 -40
  711. package/core/modules/encrypt/types.ts +34 -2
  712. package/core/modules/relayer/cleartext/fetchDelegatedUserDecrypt.ts +2 -2
  713. package/core/modules/relayer/cleartext/fetchUserDecrypt.ts +2 -2
  714. package/core/modules/relayer/module/RelayerAsyncRequest.ts +60 -4
  715. package/core/modules/relayer/module/fetchFheEncryptionKeySource.ts +9 -1
  716. package/core/modules/relayer/module/readErrorMessage.ts +56 -0
  717. package/core/runtime/CoreFhevm-p.ts +247 -22
  718. package/core/runtime/HyperWasmSolver-p.ts +417 -0
  719. package/core/runtime/ProtocolVersionResolver-p.ts +463 -0
  720. package/core/runtime/initFhevmDecryptRuntime-p.ts +1 -1
  721. package/core/runtime/initFhevmEncryptRuntime-p.ts +1 -1
  722. package/core/runtime/initFhevmRuntime-p.ts +4 -1
  723. package/core/runtime/resolveFhevmVersions-p.ts +85 -0
  724. package/core/runtimeConfig-p.ts +17 -2
  725. package/core/types/auth.ts +12 -1
  726. package/core/types/coreFhevmClient.ts +89 -4
  727. package/core/types/coreFhevmRuntime.ts +3 -18
  728. package/core/types/fheEncryptionKey.ts +2 -0
  729. package/core/types/fhevmChain.ts +3 -0
  730. package/core/types/hostContract.ts +1 -0
  731. package/core/types/index.ts +1 -1
  732. package/core/types/kms-p.ts +2 -0
  733. package/core/types/kms.ts +48 -18
  734. package/core/types/kmsSignersContext.ts +8 -0
  735. package/core/types/logger.ts +1 -0
  736. package/core/types/moduleVersions.ts +35 -0
  737. package/core/types/tkms-p.ts +3 -0
  738. package/core/types/wasmAssets.ts +6 -0
  739. package/core/types/{zkProofBuilder.ts → zkProofBuilder-p.ts} +3 -2
  740. package/core/utils-p/decrypt/verifyTkmsPublicKey.ts +3 -1
  741. package/ethers/cleartext/createFhevmCleartextDecryptClient.ts +2 -2
  742. package/ethers/cleartext/createFhevmCleartextEncryptClient.ts +2 -2
  743. package/ethers/clients/createFhevmDecryptClient.ts +2 -2
  744. package/ethers/clients/createFhevmEncryptClient.ts +2 -2
  745. package/ethers/internal/config.ts +2 -30
  746. package/package.json +1 -1
  747. package/viem/cleartext/createFhevmCleartextDecryptClient.ts +2 -2
  748. package/viem/cleartext/createFhevmCleartextEncryptClient.ts +2 -2
  749. package/viem/clients/createFhevmDecryptClient.ts +2 -2
  750. package/viem/clients/createFhevmEncryptClient.ts +2 -2
  751. package/viem/internal/config.ts +2 -30
  752. package/wasm/tfhe/v1.5.3/tfhe.d.ts +4 -0
  753. package/wasm/tfhe/v1.5.3/tfhe.js +8 -0
  754. package/wasm/tfhe/v1.6.0-dev/tfhe.d.ts +4 -0
  755. package/wasm/tfhe/v1.6.0-dev/tfhe.js +8 -0
  756. package/wasm/tfhe/v1.6.1/tfhe.d.ts +4 -0
  757. package/wasm/tfhe/v1.6.1/tfhe.js +8 -0
  758. package/wasm/tfheModuleVersion-p.ts +1 -1
  759. package/wasm/tkms/v0.13.10/kms_lib.d.ts +4 -0
  760. package/wasm/tkms/v0.13.10/kms_lib.js +8 -0
  761. package/wasm/tkms/v0.13.20-0/kms_lib.d.ts +4 -0
  762. package/wasm/tkms/v0.13.20-0/kms_lib.js +8 -0
  763. package/wasm/tkmsModuleVersion-p.ts +1 -1
  764. package/wasm/wasmBaseUrl.js +69 -4
  765. package/_cjs/core/actions/base/fetchKmsSignedcryptedShares.js.map +0 -1
  766. package/_cjs/core/actions/decrypt/decryptKmsSignedcryptedShares.js +0 -11
  767. package/_cjs/core/actions/decrypt/decryptKmsSignedcryptedShares.js.map +0 -1
  768. package/_cjs/core/kms/decryptKmsSignedcryptedShares-p.js.map +0 -1
  769. package/_cjs/core/kms/fetchKmsSignedcryptedShares-p.js.map +0 -1
  770. package/_cjs/core/types/fhevmDecryptionKey.js.map +0 -1
  771. package/_cjs/core/types/fhevmUser.js.map +0 -1
  772. package/_cjs/core/types/zkProofBuilder.js.map +0 -1
  773. package/_esm/core/actions/base/fetchKmsSignedcryptedShares.js.map +0 -1
  774. package/_esm/core/actions/decrypt/decryptKmsSignedcryptedShares.js +0 -9
  775. package/_esm/core/actions/decrypt/decryptKmsSignedcryptedShares.js.map +0 -1
  776. package/_esm/core/kms/decryptKmsSignedcryptedShares-p.js.map +0 -1
  777. package/_esm/core/kms/fetchKmsSignedcryptedShares-p.js.map +0 -1
  778. package/_esm/core/types/fhevmDecryptionKey.js +0 -2
  779. package/_esm/core/types/fhevmDecryptionKey.js.map +0 -1
  780. package/_esm/core/types/fhevmUser.js +0 -2
  781. package/_esm/core/types/fhevmUser.js.map +0 -1
  782. package/_esm/core/types/zkProofBuilder.js +0 -2
  783. package/_esm/core/types/zkProofBuilder.js.map +0 -1
  784. package/_types/core/actions/base/fetchKmsSignedcryptedShares.d.ts.map +0 -1
  785. package/_types/core/actions/decrypt/decryptKmsSignedcryptedShares.d.ts.map +0 -1
  786. package/_types/core/kms/decryptKmsSignedcryptedShares-p.d.ts.map +0 -1
  787. package/_types/core/kms/fetchKmsSignedcryptedShares-p.d.ts.map +0 -1
  788. package/_types/core/types/fhevmDecryptionKey.d.ts +0 -4
  789. package/_types/core/types/fhevmDecryptionKey.d.ts.map +0 -1
  790. package/_types/core/types/fhevmUser.d.ts +0 -7
  791. package/_types/core/types/fhevmUser.d.ts.map +0 -1
  792. package/_types/core/types/zkProofBuilder.d.ts.map +0 -1
  793. package/core/types/fhevmDecryptionKey.ts +0 -8
  794. package/core/types/fhevmUser.ts +0 -7
@@ -0,0 +1,417 @@
1
+ import type { ModuleVersionCompatibilityCheck, TfheVersion, TkmsVersion } from '../types/moduleVersions.js';
2
+ import type { FhevmRuntime } from '../types/coreFhevmRuntime.js';
3
+ import type { FhevmProtocolContext, ResolvedFhevmOptions, VersionResolution } from '../types/coreFhevmClient.js';
4
+ import type { SemverRange } from '../base/semver.js';
5
+ import type { Logger } from '../types/logger.js';
6
+ import { semverComparatorImpliesRange } from '../base/semver.js';
7
+
8
+ ////////////////////////////////////////////////////////////////////////////////
9
+
10
+ type ResolveParameters = {
11
+ readonly runtime: FhevmRuntime;
12
+ readonly options: ResolvedFhevmOptions;
13
+ };
14
+
15
+ type WasmModuleVersionByKey = {
16
+ readonly tfhe: TfheVersion;
17
+ readonly kms: TkmsVersion;
18
+ };
19
+
20
+ type WasmModuleKey = keyof WasmModuleVersionByKey;
21
+
22
+ type WasmModuleVersion<K extends WasmModuleKey> = WasmModuleVersionByKey[K];
23
+
24
+ type WasmCompatibilityRule = {
25
+ readonly protocol: SemverRange;
26
+ readonly pubKeyCrs: SemverRange;
27
+ readonly tfhe: {
28
+ readonly canonical: TfheVersion;
29
+ readonly compatible: readonly [TfheVersion, ...TfheVersion[]];
30
+ };
31
+ readonly kms: {
32
+ readonly canonical: TkmsVersion;
33
+ readonly compatible: readonly [TkmsVersion, ...TkmsVersion[]];
34
+ };
35
+ };
36
+
37
+ type HyperWasmSolverConfig = {
38
+ readonly compatibilityRules: readonly WasmCompatibilityRule[];
39
+ };
40
+
41
+ type ResolveWasmCompatibilityRuleOptions<ExplicitVersion extends string = TfheVersion | TkmsVersion> =
42
+ | {
43
+ readonly purpose: 'auto';
44
+ }
45
+ | {
46
+ readonly purpose: 'explicit';
47
+ readonly explicitVersion: ExplicitVersion;
48
+ readonly checkCompatibility: ModuleVersionCompatibilityCheck | undefined;
49
+ };
50
+
51
+ type ExplicitResolveWasmCompatibilityRuleOptions<ExplicitVersion extends string = TfheVersion | TkmsVersion> = Extract<
52
+ ResolveWasmCompatibilityRuleOptions<ExplicitVersion>,
53
+ { readonly purpose: 'explicit' }
54
+ >;
55
+
56
+ const HYPER_WASM_SOLVER_CONFIG = {
57
+ /**
58
+ * Protocol-context to WASM-version compatibility mapping.
59
+ *
60
+ * Warning: auto-resolution requires exactly one rule to be implied by the
61
+ * resolved protocol and PubKey/CRS-version comparators. The table does not
62
+ * need to be sorted, but its ranges must be mutually exclusive for every
63
+ * supported protocol context; overlapping implied ranges and missing ranges
64
+ * both make auto-resolution ambiguous and throw.
65
+ *
66
+ * `canonical` is the version selected by auto-resolution. `compatible` is the
67
+ * full allowlist for explicit module-version compatibility checks.
68
+ */
69
+ compatibilityRules: [
70
+ {
71
+ // protocol.version <= 0.12.x
72
+ protocol: { version: '0.13.0', comparator: 'lt' },
73
+ // pubKeyCrs.version <= 1.5.x (ex: mainnet 1.4.0-alpha.3)
74
+ pubKeyCrs: { version: '1.6.0', comparator: 'lt' },
75
+ tfhe: {
76
+ canonical: '1.5.3',
77
+ compatible: ['1.5.3'],
78
+ },
79
+ kms: {
80
+ canonical: '0.13.10',
81
+ compatible: ['0.13.10'],
82
+ },
83
+ },
84
+ {
85
+ // protocol.version >= 0.13.0
86
+ protocol: { version: '0.13.0', comparator: 'ge' },
87
+ // pubKeyCrs.version <= 1.5.x (ex: mainnet 1.4.0-alpha.3)
88
+ pubKeyCrs: { version: '1.6.0', comparator: 'lt' },
89
+ tfhe: {
90
+ canonical: '1.6.1',
91
+ compatible: ['1.5.3', '1.6.1'],
92
+ },
93
+ kms: {
94
+ canonical: '0.13.20-0',
95
+ compatible: ['0.13.10', '0.13.20-0'],
96
+ },
97
+ },
98
+ {
99
+ // protocol.version >= 0.13.0
100
+ protocol: { version: '0.13.0', comparator: 'ge' },
101
+ // pubKeyCrs.version >= 1.6.0 (ex: localstack_v13)
102
+ pubKeyCrs: { version: '1.6.0', comparator: 'ge' },
103
+ tfhe: {
104
+ canonical: '1.6.1',
105
+ compatible: ['1.6.1'],
106
+ },
107
+ kms: {
108
+ canonical: '0.13.20-0',
109
+ compatible: ['0.13.10', '0.13.20-0'],
110
+ },
111
+ },
112
+ ],
113
+ } as const satisfies HyperWasmSolverConfig;
114
+
115
+ const WASM_COMPATIBILITY_RULES = HYPER_WASM_SOLVER_CONFIG.compatibilityRules;
116
+
117
+ ////////////////////////////////////////////////////////////////////////////////
118
+
119
+ /**
120
+ * Resolves the tfhe WASM module version to load for an encryption-capable client.
121
+ *
122
+ * Resolution order:
123
+ *
124
+ * 1. Client option `moduleVersions: 'auto'` forces protocol-based auto-resolution
125
+ * and deliberately ignores the runtime fallback.
126
+ * 2. Client option `moduleVersions.tfhe` wins over every fallback, then is
127
+ * checked against the protocol-context compatibility allowlist.
128
+ * 3. Runtime config `moduleVersions.tfhe` is used as a global fallback, then is
129
+ * checked against the protocol-context compatibility allowlist.
130
+ * 4. Otherwise, the SDK auto-resolves from the resolved protocol version.
131
+ *
132
+ * `checkCompatibility` only applies to explicit `tfhe` overrides. It does not
133
+ * change auto-resolution.
134
+ *
135
+ * Examples:
136
+ *
137
+ * - Client override:
138
+ * `{ options.moduleVersions: { tfhe: '1.6.1' } }` -> `'1.6.1'`.
139
+ * - Runtime fallback:
140
+ * `{ options.moduleVersions: undefined, runtime.config.moduleVersions: { tfhe: '1.5.3' } }` -> `'1.5.3'`.
141
+ * - Client auto bypassing runtime fallback:
142
+ * `{ options.moduleVersions: 'auto', runtime.config.moduleVersions: { tfhe: '1.5.3' } }`
143
+ * resolves from `protocolContext`, not from `'1.5.3'`.
144
+ * - Protocol-context auto-resolution:
145
+ * `protocolVersion = eq:0.12.0, pubKeyCrsVersion = eq:1.5.4` -> `'1.5.3'`.
146
+ * `protocolVersion = eq:0.13.0, pubKeyCrsVersion = eq:1.4.0-alpha.3` -> `'1.6.1'`.
147
+ * `protocolVersion = eq:0.13.0, pubKeyCrsVersion = eq:1.6.1` -> `'1.6.1'`.
148
+ */
149
+ export function hyperWasmResolveTfheModuleVersion(
150
+ parameters: ResolveParameters,
151
+ protocolContext?: FhevmProtocolContext,
152
+ ): TfheVersion {
153
+ const resolveRuleOptions = _resolveWasmCompatibilityRuleOptions(parameters, 'tfhe');
154
+
155
+ const rule = _resolveWasmCompatibilityRule(protocolContext, 'tfhe', resolveRuleOptions);
156
+
157
+ if (resolveRuleOptions.purpose === 'explicit') {
158
+ _handleModuleVersionCompatibilityIssue(
159
+ 'tfhe',
160
+ parameters.runtime.config.logger,
161
+ protocolContext,
162
+ rule,
163
+ resolveRuleOptions,
164
+ );
165
+ return resolveRuleOptions.explicitVersion;
166
+ }
167
+
168
+ if (rule === undefined) {
169
+ throw new Error('Cannot auto-resolve tfhe WASM version without a resolved compatibility rule.');
170
+ }
171
+
172
+ return rule.tfhe.canonical;
173
+ }
174
+
175
+ ////////////////////////////////////////////////////////////////////////////////
176
+
177
+ /**
178
+ * Resolves the tkms WASM module version to load for a decryption-capable client.
179
+ *
180
+ * Resolution order:
181
+ *
182
+ * 1. Client option `moduleVersions: 'auto'` forces protocol-based auto-resolution
183
+ * and deliberately ignores the runtime fallback.
184
+ * 2. Client option `moduleVersions.kms` wins over every fallback, then is
185
+ * checked against the protocol-context compatibility allowlist.
186
+ * 3. Runtime config `moduleVersions.kms` is used as a global fallback, then is
187
+ * checked against the protocol-context compatibility allowlist.
188
+ * 4. Otherwise, the SDK auto-resolves from the resolved protocol version.
189
+ *
190
+ * `checkCompatibility` only applies to explicit `kms` overrides. It does not
191
+ * change auto-resolution.
192
+ *
193
+ * Examples:
194
+ *
195
+ * - Client override:
196
+ * `{ options.moduleVersions: { kms: '0.13.20-0' } }` -> `'0.13.20-0'`.
197
+ * - Runtime fallback:
198
+ * `{ options.moduleVersions: undefined, runtime.config.moduleVersions: { kms: '0.13.10' } }` -> `'0.13.10'`.
199
+ * - Client auto bypassing runtime fallback:
200
+ * `{ options.moduleVersions: 'auto', runtime.config.moduleVersions: { kms: '0.13.10' } }`
201
+ * resolves from `protocolContext`, not from `'0.13.10'`.
202
+ * - Protocol-context auto-resolution:
203
+ * `protocolVersion = eq:0.12.0, pubKeyCrsVersion = eq:1.5.4` -> `'0.13.10'`.
204
+ * `protocolVersion = eq:0.13.0, pubKeyCrsVersion = eq:1.4.0-alpha.3` -> `'0.13.20-0'`.
205
+ * `protocolVersion = eq:0.13.0, pubKeyCrsVersion = eq:1.6.1` -> `'0.13.20-0'`.
206
+ */
207
+ export function hyperWasmResolveTkmsModuleVersion(
208
+ parameters: ResolveParameters,
209
+ protocolContext?: FhevmProtocolContext,
210
+ ): TkmsVersion {
211
+ const resolveRuleOptions = _resolveWasmCompatibilityRuleOptions(parameters, 'kms');
212
+
213
+ const rule = _resolveWasmCompatibilityRule(protocolContext, 'kms', resolveRuleOptions);
214
+
215
+ if (resolveRuleOptions.purpose === 'explicit') {
216
+ _handleModuleVersionCompatibilityIssue(
217
+ 'kms',
218
+ parameters.runtime.config.logger,
219
+ protocolContext,
220
+ rule,
221
+ resolveRuleOptions,
222
+ );
223
+ return resolveRuleOptions.explicitVersion;
224
+ }
225
+
226
+ if (rule === undefined) {
227
+ throw new Error('Cannot auto-resolve kms WASM version without a resolved compatibility rule.');
228
+ }
229
+
230
+ return rule.kms.canonical;
231
+ }
232
+
233
+ ////////////////////////////////////////////////////////////////////////////////
234
+ //
235
+ // Helpers
236
+ //
237
+ ////////////////////////////////////////////////////////////////////////////////
238
+
239
+ function _resolveWasmCompatibilityRuleOptions<K extends WasmModuleKey>(
240
+ parameters: ResolveParameters,
241
+ moduleKey: K,
242
+ ): ResolveWasmCompatibilityRuleOptions<WasmModuleVersion<K>> {
243
+ const clientVersions = parameters.options.moduleVersions;
244
+ if (clientVersions !== 'auto') {
245
+ if (clientVersions?.[moduleKey] !== undefined) {
246
+ return {
247
+ purpose: 'explicit',
248
+ explicitVersion: clientVersions[moduleKey] as WasmModuleVersion<K>,
249
+ checkCompatibility: clientVersions.checkCompatibility,
250
+ };
251
+ }
252
+
253
+ const runtimeVersions = parameters.runtime.config.moduleVersions;
254
+ if (runtimeVersions !== 'auto' && runtimeVersions?.[moduleKey] !== undefined) {
255
+ return {
256
+ purpose: 'explicit',
257
+ explicitVersion: runtimeVersions[moduleKey] as WasmModuleVersion<K>,
258
+ checkCompatibility: runtimeVersions.checkCompatibility,
259
+ };
260
+ }
261
+ }
262
+
263
+ return { purpose: 'auto' };
264
+ }
265
+
266
+ function _resolveWasmCompatibilityRule(
267
+ protocolContext: FhevmProtocolContext | undefined,
268
+ moduleKey: WasmModuleKey,
269
+ options: ResolveWasmCompatibilityRuleOptions,
270
+ ): WasmCompatibilityRule | undefined {
271
+ if (options.purpose === 'explicit' && _resolveModuleVersionCompatibilityCheck(options.checkCompatibility) === 'off') {
272
+ return undefined;
273
+ }
274
+ if (protocolContext === undefined) {
275
+ if (options.purpose === 'auto') {
276
+ throw new Error(`Cannot auto-resolve ${moduleKey} WASM version without a resolved protocol context.`);
277
+ }
278
+ return undefined;
279
+ }
280
+
281
+ const rules = _findWasmCompatibilityRules(protocolContext);
282
+ const rule = rules[0];
283
+ if (rules.length === 1 && rule !== undefined) {
284
+ return rule;
285
+ }
286
+
287
+ const message = _ambiguousWasmCompatibilityRuleMessage(protocolContext, moduleKey, options.purpose);
288
+ if (options.purpose === 'auto') {
289
+ throw new Error(message);
290
+ }
291
+
292
+ return undefined;
293
+ }
294
+
295
+ function _findWasmCompatibilityRules(protocolContext: FhevmProtocolContext): WasmCompatibilityRule[] {
296
+ return WASM_COMPATIBILITY_RULES.filter(
297
+ (entry) =>
298
+ _versionResolutionImpliesRange(protocolContext.protocolVersion, entry.protocol) &&
299
+ _versionResolutionImpliesRange(protocolContext.pubKeyCrsVersion, entry.pubKeyCrs),
300
+ );
301
+ }
302
+
303
+ function _versionResolutionImpliesRange(versionResolution: VersionResolution<string>, range: SemverRange): boolean {
304
+ return semverComparatorImpliesRange(versionResolution.version, versionResolution.comparator, range);
305
+ }
306
+
307
+ function _resolveModuleVersionCompatibilityCheck(
308
+ checkCompatibility: ModuleVersionCompatibilityCheck | undefined,
309
+ ): ModuleVersionCompatibilityCheck {
310
+ return checkCompatibility ?? 'throw';
311
+ }
312
+
313
+ function _handleModuleVersionCompatibilityIssue(
314
+ moduleKey: WasmModuleKey,
315
+ logger: FhevmRuntime['config']['logger'],
316
+ protocolContext: FhevmProtocolContext | undefined,
317
+ rule: WasmCompatibilityRule | undefined,
318
+ options: ExplicitResolveWasmCompatibilityRuleOptions,
319
+ ): void {
320
+ if (_resolveModuleVersionCompatibilityCheck(options.checkCompatibility) === 'off' || protocolContext === undefined) {
321
+ return;
322
+ }
323
+
324
+ if (rule === undefined) {
325
+ _handleModuleVersionCompatibilityPolicy(
326
+ options.checkCompatibility,
327
+ logger,
328
+ _ambiguousWasmCompatibilityRuleMessage(protocolContext, moduleKey, options.purpose),
329
+ );
330
+ return;
331
+ }
332
+
333
+ const compatibleVersions = _getCompatibleModuleVersions(moduleKey, rule);
334
+ if (!compatibleVersions.includes(options.explicitVersion)) {
335
+ _handleModuleVersionCompatibilityPolicy(
336
+ options.checkCompatibility,
337
+ logger,
338
+ _incompatibleModuleVersionMessage(moduleKey, options.explicitVersion, compatibleVersions, protocolContext),
339
+ );
340
+ }
341
+ }
342
+
343
+ function _handleModuleVersionCompatibilityPolicy(
344
+ checkCompatibility: ModuleVersionCompatibilityCheck | undefined,
345
+ logger: Logger | undefined,
346
+ message: string,
347
+ ): void {
348
+ const resolvedCheckCompatibility = _resolveModuleVersionCompatibilityCheck(checkCompatibility);
349
+ switch (resolvedCheckCompatibility) {
350
+ case 'throw':
351
+ throw new Error(message);
352
+ case 'warn':
353
+ if (logger?.warn !== undefined) {
354
+ logger.warn(message);
355
+ } else {
356
+ console.warn(message);
357
+ }
358
+ return;
359
+ case 'off':
360
+ return;
361
+ default: {
362
+ const exhaustiveCheck: never = resolvedCheckCompatibility;
363
+ throw new Error(`Unsupported module version compatibility check "${exhaustiveCheck}".`);
364
+ }
365
+ }
366
+ }
367
+
368
+ function _getCompatibleModuleVersions(moduleKey: WasmModuleKey, rule: WasmCompatibilityRule): readonly string[] {
369
+ switch (moduleKey) {
370
+ case 'tfhe':
371
+ return rule.tfhe.compatible;
372
+ case 'kms':
373
+ return rule.kms.compatible;
374
+ default: {
375
+ const exhaustiveCheck: never = moduleKey;
376
+ throw new Error(`Unsupported WASM module "${exhaustiveCheck}".`);
377
+ }
378
+ }
379
+ }
380
+
381
+ function _incompatibleModuleVersionMessage(
382
+ moduleKey: WasmModuleKey,
383
+ version: string,
384
+ compatibleVersions: readonly string[],
385
+ protocolContext: FhevmProtocolContext | undefined,
386
+ ): string {
387
+ const context =
388
+ protocolContext === undefined
389
+ ? 'without a resolved protocol context'
390
+ : `with protocol context protocol=${_formatVersionResolution(protocolContext.protocolVersion)}, ` +
391
+ `pubKeyCrs=${_formatVersionResolution(protocolContext.pubKeyCrsVersion)}`;
392
+
393
+ return (
394
+ `Explicit ${moduleKey} WASM version "${version}" is not compatible ${context}. ` +
395
+ `Compatible versions: ${compatibleVersions.join(', ')}.`
396
+ );
397
+ }
398
+
399
+ function _ambiguousWasmCompatibilityRuleMessage(
400
+ protocolContext: FhevmProtocolContext,
401
+ moduleKey: WasmModuleKey,
402
+ purpose: 'auto' | 'explicit',
403
+ ): string {
404
+ const action =
405
+ purpose === 'auto' ? `auto-resolve ${moduleKey} WASM version` : `check ${moduleKey} WASM version compatibility`;
406
+
407
+ return (
408
+ `Cannot ${action} from protocol context ` +
409
+ `protocol=${_formatVersionResolution(protocolContext.protocolVersion)}, ` +
410
+ `pubKeyCrs=${_formatVersionResolution(protocolContext.pubKeyCrsVersion)}. ` +
411
+ `The resolved context does not prove exactly one WASM compatibility rule.`
412
+ );
413
+ }
414
+
415
+ function _formatVersionResolution(versionResolution: VersionResolution<string>): string {
416
+ return `${versionResolution.comparator}:${versionResolution.version}`;
417
+ }