@fhevm/sdk 1.1.0-alpha.3 → 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 (855) 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/auth.js +8 -6
  40. package/_cjs/core/base/auth.js.map +1 -1
  41. package/_cjs/core/base/errors/InvalidUrlError.js +17 -0
  42. package/_cjs/core/base/errors/InvalidUrlError.js.map +1 -0
  43. package/_cjs/core/base/fetch.js +37 -0
  44. package/_cjs/core/base/fetch.js.map +1 -1
  45. package/_cjs/core/base/object.js +23 -0
  46. package/_cjs/core/base/object.js.map +1 -1
  47. package/_cjs/core/base/semver.js +166 -0
  48. package/_cjs/core/base/semver.js.map +1 -0
  49. package/_cjs/core/base/string.js +10 -0
  50. package/_cjs/core/base/string.js.map +1 -1
  51. package/_cjs/core/base/uint.js +20 -3
  52. package/_cjs/core/base/uint.js.map +1 -1
  53. package/_cjs/core/chains/definitions/localTestnet.js +3 -0
  54. package/_cjs/core/chains/definitions/localTestnet.js.map +1 -1
  55. package/_cjs/core/chains/definitions/mainnet.js +1 -0
  56. package/_cjs/core/chains/definitions/mainnet.js.map +1 -1
  57. package/_cjs/core/chains/definitions/sepolia.js +1 -0
  58. package/_cjs/core/chains/definitions/sepolia.js.map +1 -1
  59. package/_cjs/core/clients/decorators/base.js +5 -0
  60. package/_cjs/core/clients/decorators/base.js.map +1 -1
  61. package/_cjs/core/clients/decorators/decrypt-p.js +13 -0
  62. package/_cjs/core/clients/decorators/decrypt-p.js.map +1 -0
  63. package/_cjs/core/clients/decorators/decrypt.js +4 -7
  64. package/_cjs/core/clients/decorators/decrypt.js.map +1 -1
  65. package/_cjs/core/clients/decorators/encrypt-p.js +5 -1
  66. package/_cjs/core/clients/decorators/encrypt-p.js.map +1 -1
  67. package/_cjs/core/clients/decorators/encrypt.js.map +1 -1
  68. package/_cjs/core/coprocessor/ZkProof-p.js +4 -2
  69. package/_cjs/core/coprocessor/ZkProof-p.js.map +1 -1
  70. package/_cjs/core/coprocessor/ZkProofBuilder-p.js +2 -1
  71. package/_cjs/core/coprocessor/ZkProofBuilder-p.js.map +1 -1
  72. package/_cjs/core/coprocessor/encrypt.js +1 -1
  73. package/_cjs/core/coprocessor/encrypt.js.map +1 -1
  74. package/_cjs/core/errors/RelayerResponseStatusError.js +3 -2
  75. package/_cjs/core/errors/RelayerResponseStatusError.js.map +1 -1
  76. package/_cjs/core/host-contracts/HostContractVersion-p.js +26 -4
  77. package/_cjs/core/host-contracts/HostContractVersion-p.js.map +1 -1
  78. package/_cjs/core/host-contracts/KmsSignersContext-p.js +23 -5
  79. package/_cjs/core/host-contracts/KmsSignersContext-p.js.map +1 -1
  80. package/_cjs/core/host-contracts/abi-fragments/fragments.js +21 -1
  81. package/_cjs/core/host-contracts/abi-fragments/fragments.js.map +1 -1
  82. package/_cjs/core/host-contracts/canDecryptValuesFromPairs.js +1 -1
  83. package/_cjs/core/host-contracts/canDecryptValuesFromPairs.js.map +1 -1
  84. package/_cjs/core/host-contracts/checkAllowedForDecryption.js +2 -2
  85. package/_cjs/core/host-contracts/checkAllowedForDecryption.js.map +1 -1
  86. package/_cjs/core/host-contracts/checkDelegation.js +8 -8
  87. package/_cjs/core/host-contracts/checkDelegation.js.map +1 -1
  88. package/_cjs/core/host-contracts/checkPersistAllowed.js +9 -9
  89. package/_cjs/core/host-contracts/checkPersistAllowed.js.map +1 -1
  90. package/_cjs/core/host-contracts/getAclAddress-p.js +1 -2
  91. package/_cjs/core/host-contracts/getAclAddress-p.js.map +1 -1
  92. package/_cjs/core/host-contracts/getCurrentKmsContextAndEpoch-p.js +51 -0
  93. package/_cjs/core/host-contracts/getCurrentKmsContextAndEpoch-p.js.map +1 -0
  94. package/_cjs/core/host-contracts/getCurrentKmsContextId-p.js +4 -5
  95. package/_cjs/core/host-contracts/getCurrentKmsContextId-p.js.map +1 -1
  96. package/_cjs/core/host-contracts/getFhevmExecutorAddress-p.js +1 -1
  97. package/_cjs/core/host-contracts/getFhevmExecutorAddress-p.js.map +1 -1
  98. package/_cjs/core/host-contracts/getHandleVersion-p.js +1 -2
  99. package/_cjs/core/host-contracts/getHandleVersion-p.js.map +1 -1
  100. package/_cjs/core/host-contracts/getHcuLimitAddress-p.js +1 -2
  101. package/_cjs/core/host-contracts/getHcuLimitAddress-p.js.map +1 -1
  102. package/_cjs/core/host-contracts/getInputVerifierAddress-p.js +1 -2
  103. package/_cjs/core/host-contracts/getInputVerifierAddress-p.js.map +1 -1
  104. package/_cjs/core/host-contracts/getKmsContextSignersAndThreshold-p.js +5 -7
  105. package/_cjs/core/host-contracts/getKmsContextSignersAndThreshold-p.js.map +1 -1
  106. package/_cjs/core/host-contracts/getKmsContextSignersAndThresholdFromExtraData-p.js +4 -5
  107. package/_cjs/core/host-contracts/getKmsContextSignersAndThresholdFromExtraData-p.js.map +1 -1
  108. package/_cjs/core/host-contracts/getSignersForKmsContext-p.js +3 -5
  109. package/_cjs/core/host-contracts/getSignersForKmsContext-p.js.map +1 -1
  110. package/_cjs/core/host-contracts/isAllowedForDecryption.js +4 -4
  111. package/_cjs/core/host-contracts/isAllowedForDecryption.js.map +1 -1
  112. package/_cjs/core/host-contracts/isHandleDelegatedForUserDecryption-p.js +5 -5
  113. package/_cjs/core/host-contracts/isHandleDelegatedForUserDecryption-p.js.map +1 -1
  114. package/_cjs/core/host-contracts/isUserDecryptable.js +2 -2
  115. package/_cjs/core/host-contracts/isUserDecryptable.js.map +1 -1
  116. package/_cjs/core/host-contracts/persistAllowed.js +4 -4
  117. package/_cjs/core/host-contracts/persistAllowed.js.map +1 -1
  118. package/_cjs/core/host-contracts/readKmsSignersContext-p.js +74 -25
  119. package/_cjs/core/host-contracts/readKmsSignersContext-p.js.map +1 -1
  120. package/_cjs/core/key/FheEncryptionKeyWasm-p.js +12 -4
  121. package/_cjs/core/key/FheEncryptionKeyWasm-p.js.map +1 -1
  122. package/_cjs/core/key/deserializeFheEncryptionKey.js +3 -0
  123. package/_cjs/core/key/deserializeFheEncryptionKey.js.map +1 -1
  124. package/_cjs/core/key/fetchFheEncryptionKey.js +1 -1
  125. package/_cjs/core/key/fetchFheEncryptionKey.js.map +1 -1
  126. package/_cjs/core/key/fetchFheEncryptionKeyBytes.js.map +1 -1
  127. package/_cjs/core/key/serializeFheEncryptionKey.js +4 -1
  128. package/_cjs/core/key/serializeFheEncryptionKey.js.map +1 -1
  129. package/_cjs/core/kms/KmsSigncryptedShares-p.js +9 -1
  130. package/_cjs/core/kms/KmsSigncryptedShares-p.js.map +1 -1
  131. package/_cjs/core/kms/SignedDecryptionPermit-p.js +5 -1
  132. package/_cjs/core/kms/SignedDecryptionPermit-p.js.map +1 -1
  133. package/_cjs/core/kms/TransportKeyPair-p.js +31 -7
  134. package/_cjs/core/kms/TransportKeyPair-p.js.map +1 -1
  135. package/_cjs/core/kms/createKmsUserDecryptEip712.js +4 -0
  136. package/_cjs/core/kms/createKmsUserDecryptEip712.js.map +1 -1
  137. package/_cjs/core/kms/createKmsUserDecryptEip712V2.js +97 -0
  138. package/_cjs/core/kms/createKmsUserDecryptEip712V2.js.map +1 -0
  139. package/_cjs/core/kms/{decryptKmsSignedcryptedShares-p.js → decryptKmsSigncryptedShares-p.js} +10 -3
  140. package/_cjs/core/kms/decryptKmsSigncryptedShares-p.js.map +1 -0
  141. package/_cjs/core/kms/decryptValuesFromPairs.js +4 -4
  142. package/_cjs/core/kms/decryptValuesFromPairs.js.map +1 -1
  143. package/_cjs/core/kms/{fetchKmsSignedcryptedShares-p.js → fetchKmsSigncryptedShares-p.js} +10 -6
  144. package/_cjs/core/kms/fetchKmsSigncryptedShares-p.js.map +1 -0
  145. package/_cjs/core/kms/kmsExtraData.js +53 -10
  146. package/_cjs/core/kms/kmsExtraData.js.map +1 -1
  147. package/_cjs/core/kms/kmsUserDecryptEip712V2Types.js +25 -0
  148. package/_cjs/core/kms/kmsUserDecryptEip712V2Types.js.map +1 -0
  149. package/_cjs/core/kms/publicDecrypt.js +5 -3
  150. package/_cjs/core/kms/publicDecrypt.js.map +1 -1
  151. package/_cjs/core/modules/decrypt/mock.js +1 -23
  152. package/_cjs/core/modules/decrypt/mock.js.map +1 -1
  153. package/_cjs/core/modules/decrypt/module/api-p.js +51 -23
  154. package/_cjs/core/modules/decrypt/module/api-p.js.map +1 -1
  155. package/_cjs/core/modules/decrypt/module/index.js +5 -27
  156. package/_cjs/core/modules/decrypt/module/index.js.map +1 -1
  157. package/_cjs/core/modules/decrypt/module/init-p.js +40 -19
  158. package/_cjs/core/modules/decrypt/module/init-p.js.map +1 -1
  159. package/_cjs/core/modules/encrypt/mock.js +26 -8
  160. package/_cjs/core/modules/encrypt/mock.js.map +1 -1
  161. package/_cjs/core/modules/encrypt/module/api-p.js +50 -21
  162. package/_cjs/core/modules/encrypt/module/api-p.js.map +1 -1
  163. package/_cjs/core/modules/encrypt/module/index.js +3 -3
  164. package/_cjs/core/modules/encrypt/module/index.js.map +1 -1
  165. package/_cjs/core/modules/encrypt/module/init-p.js +63 -24
  166. package/_cjs/core/modules/encrypt/module/init-p.js.map +1 -1
  167. package/_cjs/core/modules/relayer/cleartext/fetchDelegatedUserDecrypt.js +1 -1
  168. package/_cjs/core/modules/relayer/cleartext/fetchDelegatedUserDecrypt.js.map +1 -1
  169. package/_cjs/core/modules/relayer/cleartext/fetchUserDecrypt.js +1 -1
  170. package/_cjs/core/modules/relayer/cleartext/fetchUserDecrypt.js.map +1 -1
  171. package/_cjs/core/modules/relayer/module/RelayerAsyncRequest.js +44 -11
  172. package/_cjs/core/modules/relayer/module/RelayerAsyncRequest.js.map +1 -1
  173. package/_cjs/core/modules/relayer/module/fetchCoprocessorSignatures.js +5 -2
  174. package/_cjs/core/modules/relayer/module/fetchCoprocessorSignatures.js.map +1 -1
  175. package/_cjs/core/modules/relayer/module/fetchDelegatedUserDecrypt.js +5 -1
  176. package/_cjs/core/modules/relayer/module/fetchDelegatedUserDecrypt.js.map +1 -1
  177. package/_cjs/core/modules/relayer/module/fetchFheEncryptionKeySource.js +15 -6
  178. package/_cjs/core/modules/relayer/module/fetchFheEncryptionKeySource.js.map +1 -1
  179. package/_cjs/core/modules/relayer/module/fetchPublicDecrypt.js +5 -1
  180. package/_cjs/core/modules/relayer/module/fetchPublicDecrypt.js.map +1 -1
  181. package/_cjs/core/modules/relayer/module/fetchUserDecrypt.js +5 -1
  182. package/_cjs/core/modules/relayer/module/fetchUserDecrypt.js.map +1 -1
  183. package/_cjs/core/modules/relayer/module/readErrorMessage.js +29 -0
  184. package/_cjs/core/modules/relayer/module/readErrorMessage.js.map +1 -0
  185. package/_cjs/core/modules/relayer/module/relayerUrl.js +33 -27
  186. package/_cjs/core/modules/relayer/module/relayerUrl.js.map +1 -1
  187. package/_cjs/core/runtime/CoreFhevm-p.js +171 -5
  188. package/_cjs/core/runtime/CoreFhevm-p.js.map +1 -1
  189. package/_cjs/core/runtime/HyperWasmSolver-p.js +187 -0
  190. package/_cjs/core/runtime/HyperWasmSolver-p.js.map +1 -0
  191. package/_cjs/core/runtime/ProtocolVersionResolver-p.js +270 -0
  192. package/_cjs/core/runtime/ProtocolVersionResolver-p.js.map +1 -0
  193. package/_cjs/core/runtime/initFhevmDecryptRuntime-p.js +1 -1
  194. package/_cjs/core/runtime/initFhevmDecryptRuntime-p.js.map +1 -1
  195. package/_cjs/core/runtime/initFhevmEncryptRuntime-p.js +1 -1
  196. package/_cjs/core/runtime/initFhevmEncryptRuntime-p.js.map +1 -1
  197. package/_cjs/core/runtime/initFhevmRuntime-p.js +4 -1
  198. package/_cjs/core/runtime/initFhevmRuntime-p.js.map +1 -1
  199. package/_cjs/core/runtime/resolveFhevmVersions-p.js +48 -0
  200. package/_cjs/core/runtime/resolveFhevmVersions-p.js.map +1 -0
  201. package/_cjs/core/runtimeConfig-p.js +10 -0
  202. package/_cjs/core/runtimeConfig-p.js.map +1 -1
  203. package/_cjs/core/types/{zkProofBuilder.js → moduleVersions.js} +1 -1
  204. package/_cjs/core/types/moduleVersions.js.map +1 -0
  205. package/_cjs/core/types/{fhevmUser.js → wasmAssets.js} +1 -1
  206. package/_cjs/core/types/wasmAssets.js.map +1 -0
  207. package/_cjs/core/types/{fhevmDecryptionKey.js → zkProofBuilder-p.js} +1 -1
  208. package/_cjs/core/types/zkProofBuilder-p.js.map +1 -0
  209. package/_cjs/core/utils-p/decrypt/verifyTkmsPublicKey.js +1 -0
  210. package/_cjs/core/utils-p/decrypt/verifyTkmsPublicKey.js.map +1 -1
  211. package/_cjs/ethers/internal/config.js +1 -18
  212. package/_cjs/ethers/internal/config.js.map +1 -1
  213. package/_cjs/viem/internal/config.js +1 -18
  214. package/_cjs/viem/internal/config.js.map +1 -1
  215. package/_cjs/wasm/tfhe/loadTfheLib.js.map +1 -1
  216. package/_cjs/wasm/tfhe/v1.5.3/tfhe.d.ts +4 -0
  217. package/_cjs/wasm/tfhe/v1.5.3/tfhe.js +6 -1
  218. package/_cjs/wasm/tfhe/v1.5.3/tfhe.js.map +2 -2
  219. package/_cjs/wasm/tfhe/v1.6.1/tfhe.d.ts +4 -0
  220. package/_cjs/wasm/tfhe/v1.6.1/tfhe.js +6 -1
  221. package/_cjs/wasm/tfhe/v1.6.1/tfhe.js.map +2 -2
  222. package/_cjs/wasm/tkms/loadKmsLib.js.map +1 -1
  223. package/_cjs/wasm/tkms/v0.13.10/kms_lib.d.ts +4 -0
  224. package/_cjs/wasm/tkms/v0.13.10/kms_lib.js +6 -1
  225. package/_cjs/wasm/tkms/v0.13.10/kms_lib.js.map +2 -2
  226. package/_cjs/wasm/tkms/v0.13.20-0/kms_lib.d.ts +4 -0
  227. package/_cjs/wasm/tkms/v0.13.20-0/kms_lib.js +6 -1
  228. package/_cjs/wasm/tkms/v0.13.20-0/kms_lib.js.map +2 -2
  229. package/_cjs/wasm/wasmBaseUrl.js +23 -7
  230. package/_cjs/wasm/wasmBaseUrl.js.map +2 -2
  231. package/_esm/core/_version.js +1 -1
  232. package/_esm/core/actions/base/canDecryptPublicValue.js +1 -1
  233. package/_esm/core/actions/base/canDecryptPublicValue.js.map +1 -1
  234. package/_esm/core/actions/base/canDecryptPublicValues.js +1 -1
  235. package/_esm/core/actions/base/canDecryptPublicValues.js.map +1 -1
  236. package/_esm/core/actions/base/{fetchKmsSignedcryptedShares.js → fetchKmsSigncryptedShares.js} +4 -4
  237. package/_esm/core/actions/base/fetchKmsSigncryptedShares.js.map +1 -0
  238. package/_esm/core/actions/base/index.js +1 -1
  239. package/_esm/core/actions/base/index.js.map +1 -1
  240. package/_esm/core/actions/base/readKmsSignersContext.js +2 -1
  241. package/_esm/core/actions/base/readKmsSignersContext.js.map +1 -1
  242. package/_esm/core/actions/chain/parseTransportKeyPair.js.map +1 -1
  243. package/_esm/core/actions/decrypt/decryptKmsSigncryptedShares.js +11 -0
  244. package/_esm/core/actions/decrypt/decryptKmsSigncryptedShares.js.map +1 -0
  245. package/_esm/core/actions/decrypt/decryptValue.js +3 -1
  246. package/_esm/core/actions/decrypt/decryptValue.js.map +1 -1
  247. package/_esm/core/actions/decrypt/decryptValues.js +3 -1
  248. package/_esm/core/actions/decrypt/decryptValues.js.map +1 -1
  249. package/_esm/core/actions/decrypt/decryptValuesFromPairs.js +3 -1
  250. package/_esm/core/actions/decrypt/decryptValuesFromPairs.js.map +1 -1
  251. package/_esm/core/actions/decrypt/generateTransportKeyPair.js +3 -1
  252. package/_esm/core/actions/decrypt/generateTransportKeyPair.js.map +1 -1
  253. package/_esm/core/actions/decrypt/index.js +1 -1
  254. package/_esm/core/actions/decrypt/index.js.map +1 -1
  255. package/_esm/core/actions/encrypt/encryptValue.js +3 -1
  256. package/_esm/core/actions/encrypt/encryptValue.js.map +1 -1
  257. package/_esm/core/actions/encrypt/encryptValues.js +3 -1
  258. package/_esm/core/actions/encrypt/encryptValues.js.map +1 -1
  259. package/_esm/core/actions/encrypt/generateZkProof.js +5 -1
  260. package/_esm/core/actions/encrypt/generateZkProof.js.map +1 -1
  261. package/_esm/core/actions/host/readFhevmExecutorContractData.js +8 -8
  262. package/_esm/core/actions/host/readFhevmExecutorContractData.js.map +1 -1
  263. package/_esm/core/actions/host/readInputVerifierContractData.js +2 -2
  264. package/_esm/core/actions/host/readInputVerifierContractData.js.map +1 -1
  265. package/_esm/core/actions/host/readKmsVerifierContractData.js +7 -6
  266. package/_esm/core/actions/host/readKmsVerifierContractData.js.map +1 -1
  267. package/_esm/core/actions/host/resolveFhevmConfig.js +7 -1
  268. package/_esm/core/actions/host/resolveFhevmConfig.js.map +1 -1
  269. package/_esm/core/base/auth.js +8 -6
  270. package/_esm/core/base/auth.js.map +1 -1
  271. package/_esm/core/base/errors/InvalidUrlError.js +13 -0
  272. package/_esm/core/base/errors/InvalidUrlError.js.map +1 -0
  273. package/_esm/core/base/fetch.js +96 -0
  274. package/_esm/core/base/fetch.js.map +1 -1
  275. package/_esm/core/base/object.js +28 -0
  276. package/_esm/core/base/object.js.map +1 -1
  277. package/_esm/core/base/semver.js +164 -0
  278. package/_esm/core/base/semver.js.map +1 -0
  279. package/_esm/core/base/string.js +9 -0
  280. package/_esm/core/base/string.js.map +1 -1
  281. package/_esm/core/base/uint.js +23 -2
  282. package/_esm/core/base/uint.js.map +1 -1
  283. package/_esm/core/chains/definitions/localTestnet.js +3 -0
  284. package/_esm/core/chains/definitions/localTestnet.js.map +1 -1
  285. package/_esm/core/chains/definitions/mainnet.js +1 -0
  286. package/_esm/core/chains/definitions/mainnet.js.map +1 -1
  287. package/_esm/core/chains/definitions/sepolia.js +1 -0
  288. package/_esm/core/chains/definitions/sepolia.js.map +1 -1
  289. package/_esm/core/clients/decorators/base.js +6 -1
  290. package/_esm/core/clients/decorators/base.js.map +1 -1
  291. package/_esm/core/clients/decorators/decrypt-p.js +11 -0
  292. package/_esm/core/clients/decorators/decrypt-p.js.map +1 -0
  293. package/_esm/core/clients/decorators/decrypt.js +3 -7
  294. package/_esm/core/clients/decorators/decrypt.js.map +1 -1
  295. package/_esm/core/clients/decorators/encrypt-p.js +6 -2
  296. package/_esm/core/clients/decorators/encrypt-p.js.map +1 -1
  297. package/_esm/core/clients/decorators/encrypt.js.map +1 -1
  298. package/_esm/core/coprocessor/ZkProof-p.js +4 -2
  299. package/_esm/core/coprocessor/ZkProof-p.js.map +1 -1
  300. package/_esm/core/coprocessor/ZkProofBuilder-p.js +2 -1
  301. package/_esm/core/coprocessor/ZkProofBuilder-p.js.map +1 -1
  302. package/_esm/core/coprocessor/encrypt.js +1 -1
  303. package/_esm/core/coprocessor/encrypt.js.map +1 -1
  304. package/_esm/core/errors/RelayerResponseStatusError.js +7 -2
  305. package/_esm/core/errors/RelayerResponseStatusError.js.map +1 -1
  306. package/_esm/core/host-contracts/HostContractVersion-p.js +34 -3
  307. package/_esm/core/host-contracts/HostContractVersion-p.js.map +1 -1
  308. package/_esm/core/host-contracts/KmsSignersContext-p.js +24 -6
  309. package/_esm/core/host-contracts/KmsSignersContext-p.js.map +1 -1
  310. package/_esm/core/host-contracts/abi-fragments/fragments.js +24 -0
  311. package/_esm/core/host-contracts/abi-fragments/fragments.js.map +1 -1
  312. package/_esm/core/host-contracts/canDecryptValuesFromPairs.js +1 -1
  313. package/_esm/core/host-contracts/canDecryptValuesFromPairs.js.map +1 -1
  314. package/_esm/core/host-contracts/checkAllowedForDecryption.js +2 -2
  315. package/_esm/core/host-contracts/checkAllowedForDecryption.js.map +1 -1
  316. package/_esm/core/host-contracts/checkDelegation.js +8 -8
  317. package/_esm/core/host-contracts/checkDelegation.js.map +1 -1
  318. package/_esm/core/host-contracts/checkPersistAllowed.js +9 -9
  319. package/_esm/core/host-contracts/checkPersistAllowed.js.map +1 -1
  320. package/_esm/core/host-contracts/getAclAddress-p.js +1 -2
  321. package/_esm/core/host-contracts/getAclAddress-p.js.map +1 -1
  322. package/_esm/core/host-contracts/getCurrentKmsContextAndEpoch-p.js +63 -0
  323. package/_esm/core/host-contracts/getCurrentKmsContextAndEpoch-p.js.map +1 -0
  324. package/_esm/core/host-contracts/getCurrentKmsContextId-p.js +6 -7
  325. package/_esm/core/host-contracts/getCurrentKmsContextId-p.js.map +1 -1
  326. package/_esm/core/host-contracts/getFhevmExecutorAddress-p.js +1 -1
  327. package/_esm/core/host-contracts/getFhevmExecutorAddress-p.js.map +1 -1
  328. package/_esm/core/host-contracts/getHandleVersion-p.js +1 -2
  329. package/_esm/core/host-contracts/getHandleVersion-p.js.map +1 -1
  330. package/_esm/core/host-contracts/getHcuLimitAddress-p.js +1 -2
  331. package/_esm/core/host-contracts/getHcuLimitAddress-p.js.map +1 -1
  332. package/_esm/core/host-contracts/getInputVerifierAddress-p.js +1 -2
  333. package/_esm/core/host-contracts/getInputVerifierAddress-p.js.map +1 -1
  334. package/_esm/core/host-contracts/getKmsContextSignersAndThreshold-p.js +6 -8
  335. package/_esm/core/host-contracts/getKmsContextSignersAndThreshold-p.js.map +1 -1
  336. package/_esm/core/host-contracts/getKmsContextSignersAndThresholdFromExtraData-p.js +5 -6
  337. package/_esm/core/host-contracts/getKmsContextSignersAndThresholdFromExtraData-p.js.map +1 -1
  338. package/_esm/core/host-contracts/getSignersForKmsContext-p.js +5 -7
  339. package/_esm/core/host-contracts/getSignersForKmsContext-p.js.map +1 -1
  340. package/_esm/core/host-contracts/isAllowedForDecryption.js +4 -4
  341. package/_esm/core/host-contracts/isAllowedForDecryption.js.map +1 -1
  342. package/_esm/core/host-contracts/isHandleDelegatedForUserDecryption-p.js +5 -5
  343. package/_esm/core/host-contracts/isHandleDelegatedForUserDecryption-p.js.map +1 -1
  344. package/_esm/core/host-contracts/isUserDecryptable.js +2 -2
  345. package/_esm/core/host-contracts/isUserDecryptable.js.map +1 -1
  346. package/_esm/core/host-contracts/persistAllowed.js +4 -4
  347. package/_esm/core/host-contracts/persistAllowed.js.map +1 -1
  348. package/_esm/core/host-contracts/readKmsSignersContext-p.js +89 -29
  349. package/_esm/core/host-contracts/readKmsSignersContext-p.js.map +1 -1
  350. package/_esm/core/key/FheEncryptionKeyWasm-p.js +12 -4
  351. package/_esm/core/key/FheEncryptionKeyWasm-p.js.map +1 -1
  352. package/_esm/core/key/deserializeFheEncryptionKey.js +3 -0
  353. package/_esm/core/key/deserializeFheEncryptionKey.js.map +1 -1
  354. package/_esm/core/key/fetchFheEncryptionKey.js +1 -1
  355. package/_esm/core/key/fetchFheEncryptionKey.js.map +1 -1
  356. package/_esm/core/key/fetchFheEncryptionKeyBytes.js.map +1 -1
  357. package/_esm/core/key/serializeFheEncryptionKey.js +4 -1
  358. package/_esm/core/key/serializeFheEncryptionKey.js.map +1 -1
  359. package/_esm/core/kms/KmsSigncryptedShares-p.js +9 -1
  360. package/_esm/core/kms/KmsSigncryptedShares-p.js.map +1 -1
  361. package/_esm/core/kms/SignedDecryptionPermit-p.js +5 -1
  362. package/_esm/core/kms/SignedDecryptionPermit-p.js.map +1 -1
  363. package/_esm/core/kms/TransportKeyPair-p.js +32 -7
  364. package/_esm/core/kms/TransportKeyPair-p.js.map +1 -1
  365. package/_esm/core/kms/createKmsUserDecryptEip712.js +4 -0
  366. package/_esm/core/kms/createKmsUserDecryptEip712.js.map +1 -1
  367. package/_esm/core/kms/createKmsUserDecryptEip712V2.js +98 -0
  368. package/_esm/core/kms/createKmsUserDecryptEip712V2.js.map +1 -0
  369. package/_esm/core/kms/{decryptKmsSignedcryptedShares-p.js → decryptKmsSigncryptedShares-p.js} +9 -2
  370. package/_esm/core/kms/decryptKmsSigncryptedShares-p.js.map +1 -0
  371. package/_esm/core/kms/decryptValuesFromPairs.js +4 -4
  372. package/_esm/core/kms/decryptValuesFromPairs.js.map +1 -1
  373. package/_esm/core/kms/{fetchKmsSignedcryptedShares-p.js → fetchKmsSigncryptedShares-p.js} +12 -6
  374. package/_esm/core/kms/fetchKmsSigncryptedShares-p.js.map +1 -0
  375. package/_esm/core/kms/kmsExtraData.js +70 -12
  376. package/_esm/core/kms/kmsExtraData.js.map +1 -1
  377. package/_esm/core/kms/kmsUserDecryptEip712V2Types.js +28 -0
  378. package/_esm/core/kms/kmsUserDecryptEip712V2Types.js.map +1 -0
  379. package/_esm/core/kms/publicDecrypt.js +5 -3
  380. package/_esm/core/kms/publicDecrypt.js.map +1 -1
  381. package/_esm/core/modules/decrypt/mock.js +0 -24
  382. package/_esm/core/modules/decrypt/mock.js.map +1 -1
  383. package/_esm/core/modules/decrypt/module/api-p.js +51 -23
  384. package/_esm/core/modules/decrypt/module/api-p.js.map +1 -1
  385. package/_esm/core/modules/decrypt/module/index.js +31 -25
  386. package/_esm/core/modules/decrypt/module/index.js.map +1 -1
  387. package/_esm/core/modules/decrypt/module/init-p.js +41 -19
  388. package/_esm/core/modules/decrypt/module/init-p.js.map +1 -1
  389. package/_esm/core/modules/encrypt/mock.js +26 -9
  390. package/_esm/core/modules/encrypt/mock.js.map +1 -1
  391. package/_esm/core/modules/encrypt/module/api-p.js +50 -21
  392. package/_esm/core/modules/encrypt/module/api-p.js.map +1 -1
  393. package/_esm/core/modules/encrypt/module/index.js +3 -3
  394. package/_esm/core/modules/encrypt/module/index.js.map +1 -1
  395. package/_esm/core/modules/encrypt/module/init-p.js +69 -29
  396. package/_esm/core/modules/encrypt/module/init-p.js.map +1 -1
  397. package/_esm/core/modules/relayer/cleartext/fetchDelegatedUserDecrypt.js +2 -2
  398. package/_esm/core/modules/relayer/cleartext/fetchDelegatedUserDecrypt.js.map +1 -1
  399. package/_esm/core/modules/relayer/cleartext/fetchUserDecrypt.js +2 -2
  400. package/_esm/core/modules/relayer/cleartext/fetchUserDecrypt.js.map +1 -1
  401. package/_esm/core/modules/relayer/module/RelayerAsyncRequest.js +74 -17
  402. package/_esm/core/modules/relayer/module/RelayerAsyncRequest.js.map +1 -1
  403. package/_esm/core/modules/relayer/module/fetchCoprocessorSignatures.js +5 -2
  404. package/_esm/core/modules/relayer/module/fetchCoprocessorSignatures.js.map +1 -1
  405. package/_esm/core/modules/relayer/module/fetchDelegatedUserDecrypt.js +6 -2
  406. package/_esm/core/modules/relayer/module/fetchDelegatedUserDecrypt.js.map +1 -1
  407. package/_esm/core/modules/relayer/module/fetchFheEncryptionKeySource.js +20 -8
  408. package/_esm/core/modules/relayer/module/fetchFheEncryptionKeySource.js.map +1 -1
  409. package/_esm/core/modules/relayer/module/fetchPublicDecrypt.js +6 -2
  410. package/_esm/core/modules/relayer/module/fetchPublicDecrypt.js.map +1 -1
  411. package/_esm/core/modules/relayer/module/fetchUserDecrypt.js +6 -2
  412. package/_esm/core/modules/relayer/module/fetchUserDecrypt.js.map +1 -1
  413. package/_esm/core/modules/relayer/module/readErrorMessage.js +52 -0
  414. package/_esm/core/modules/relayer/module/readErrorMessage.js.map +1 -0
  415. package/_esm/core/modules/relayer/module/relayerUrl.js +55 -27
  416. package/_esm/core/modules/relayer/module/relayerUrl.js.map +1 -1
  417. package/_esm/core/runtime/CoreFhevm-p.js +167 -5
  418. package/_esm/core/runtime/CoreFhevm-p.js.map +1 -1
  419. package/_esm/core/runtime/HyperWasmSolver-p.js +268 -0
  420. package/_esm/core/runtime/HyperWasmSolver-p.js.map +1 -0
  421. package/_esm/core/runtime/ProtocolVersionResolver-p.js +326 -0
  422. package/_esm/core/runtime/ProtocolVersionResolver-p.js.map +1 -0
  423. package/_esm/core/runtime/initFhevmDecryptRuntime-p.js +1 -1
  424. package/_esm/core/runtime/initFhevmDecryptRuntime-p.js.map +1 -1
  425. package/_esm/core/runtime/initFhevmEncryptRuntime-p.js +1 -1
  426. package/_esm/core/runtime/initFhevmEncryptRuntime-p.js.map +1 -1
  427. package/_esm/core/runtime/initFhevmRuntime-p.js +4 -1
  428. package/_esm/core/runtime/initFhevmRuntime-p.js.map +1 -1
  429. package/_esm/core/runtime/resolveFhevmVersions-p.js +62 -0
  430. package/_esm/core/runtime/resolveFhevmVersions-p.js.map +1 -0
  431. package/_esm/core/runtimeConfig-p.js +9 -0
  432. package/_esm/core/runtimeConfig-p.js.map +1 -1
  433. package/_esm/core/types/moduleVersions.js +2 -0
  434. package/_esm/core/types/moduleVersions.js.map +1 -0
  435. package/_esm/core/types/wasmAssets.js +2 -0
  436. package/_esm/core/types/wasmAssets.js.map +1 -0
  437. package/_esm/core/types/zkProofBuilder-p.js +2 -0
  438. package/_esm/core/types/zkProofBuilder-p.js.map +1 -0
  439. package/_esm/core/utils-p/decrypt/verifyTkmsPublicKey.js +1 -0
  440. package/_esm/core/utils-p/decrypt/verifyTkmsPublicKey.js.map +1 -1
  441. package/_esm/ethers/internal/config.js +1 -18
  442. package/_esm/ethers/internal/config.js.map +1 -1
  443. package/_esm/viem/internal/config.js +1 -18
  444. package/_esm/viem/internal/config.js.map +1 -1
  445. package/_esm/wasm/tfhe/v1.5.3/tfhe.d.ts +4 -0
  446. package/_esm/wasm/tfhe/v1.5.3/tfhe.js +8 -0
  447. package/_esm/wasm/tfhe/v1.6.1/tfhe.d.ts +4 -0
  448. package/_esm/wasm/tfhe/v1.6.1/tfhe.js +8 -0
  449. package/_esm/wasm/tkms/v0.13.10/kms_lib.d.ts +4 -0
  450. package/_esm/wasm/tkms/v0.13.10/kms_lib.js +8 -0
  451. package/_esm/wasm/tkms/v0.13.20-0/kms_lib.d.ts +4 -0
  452. package/_esm/wasm/tkms/v0.13.20-0/kms_lib.js +8 -0
  453. package/_esm/wasm/wasmBaseUrl.js +69 -4
  454. package/_types/core/actions/base/{fetchKmsSignedcryptedShares.d.ts → fetchKmsSigncryptedShares.d.ts} +7 -7
  455. package/_types/core/actions/base/fetchKmsSigncryptedShares.d.ts.map +1 -0
  456. package/_types/core/actions/base/index.d.ts +1 -1
  457. package/_types/core/actions/base/index.d.ts.map +1 -1
  458. package/_types/core/actions/base/readKmsSignersContext.d.ts.map +1 -1
  459. package/_types/core/actions/chain/parseSignedDecryptionPermit.d.ts +2 -2
  460. package/_types/core/actions/chain/parseSignedDecryptionPermit.d.ts.map +1 -1
  461. package/_types/core/actions/chain/parseTransportKeyPair.d.ts +1 -1
  462. package/_types/core/actions/chain/parseTransportKeyPair.d.ts.map +1 -1
  463. package/_types/core/actions/decrypt/{decryptKmsSignedcryptedShares.d.ts → decryptKmsSigncryptedShares.d.ts} +4 -4
  464. package/_types/core/actions/decrypt/decryptKmsSigncryptedShares.d.ts.map +1 -0
  465. package/_types/core/actions/decrypt/decryptValue.d.ts.map +1 -1
  466. package/_types/core/actions/decrypt/decryptValues.d.ts.map +1 -1
  467. package/_types/core/actions/decrypt/decryptValuesFromPairs.d.ts.map +1 -1
  468. package/_types/core/actions/decrypt/generateTransportKeyPair.d.ts +2 -2
  469. package/_types/core/actions/decrypt/generateTransportKeyPair.d.ts.map +1 -1
  470. package/_types/core/actions/decrypt/index.d.ts +1 -1
  471. package/_types/core/actions/decrypt/index.d.ts.map +1 -1
  472. package/_types/core/actions/encrypt/encryptValue.d.ts.map +1 -1
  473. package/_types/core/actions/encrypt/encryptValues.d.ts.map +1 -1
  474. package/_types/core/actions/encrypt/generateZkProof.d.ts.map +1 -1
  475. package/_types/core/actions/host/readKmsVerifierContractData.d.ts +1 -0
  476. package/_types/core/actions/host/readKmsVerifierContractData.d.ts.map +1 -1
  477. package/_types/core/actions/host/resolveFhevmConfig.d.ts +2 -0
  478. package/_types/core/actions/host/resolveFhevmConfig.d.ts.map +1 -1
  479. package/_types/core/base/auth.d.ts.map +1 -1
  480. package/_types/core/base/errors/InvalidUrlError.d.ts +14 -0
  481. package/_types/core/base/errors/InvalidUrlError.d.ts.map +1 -0
  482. package/_types/core/base/fetch.d.ts +57 -0
  483. package/_types/core/base/fetch.d.ts.map +1 -1
  484. package/_types/core/base/object.d.ts +7 -0
  485. package/_types/core/base/object.d.ts.map +1 -1
  486. package/_types/core/base/semver.d.ts +39 -0
  487. package/_types/core/base/semver.d.ts.map +1 -0
  488. package/_types/core/base/string.d.ts +1 -0
  489. package/_types/core/base/string.d.ts.map +1 -1
  490. package/_types/core/base/uint.d.ts +13 -2
  491. package/_types/core/base/uint.d.ts.map +1 -1
  492. package/_types/core/chains/definitions/localTestnet.d.ts +3 -0
  493. package/_types/core/chains/definitions/localTestnet.d.ts.map +1 -1
  494. package/_types/core/chains/definitions/mainnet.d.ts +1 -0
  495. package/_types/core/chains/definitions/mainnet.d.ts.map +1 -1
  496. package/_types/core/chains/definitions/sepolia.d.ts.map +1 -1
  497. package/_types/core/clients/decorators/base.d.ts.map +1 -1
  498. package/_types/core/clients/decorators/decrypt-p.d.ts +4 -0
  499. package/_types/core/clients/decorators/decrypt-p.d.ts.map +1 -0
  500. package/_types/core/clients/decorators/decrypt.d.ts +4 -2
  501. package/_types/core/clients/decorators/decrypt.d.ts.map +1 -1
  502. package/_types/core/clients/decorators/encrypt-p.d.ts +2 -3
  503. package/_types/core/clients/decorators/encrypt-p.d.ts.map +1 -1
  504. package/_types/core/clients/decorators/encrypt.d.ts +4 -2
  505. package/_types/core/clients/decorators/encrypt.d.ts.map +1 -1
  506. package/_types/core/coprocessor/ZkProof-p.d.ts +9 -2
  507. package/_types/core/coprocessor/ZkProof-p.d.ts.map +1 -1
  508. package/_types/core/coprocessor/ZkProofBuilder-p.d.ts +3 -1
  509. package/_types/core/coprocessor/ZkProofBuilder-p.d.ts.map +1 -1
  510. package/_types/core/coprocessor/encrypt.d.ts +2 -0
  511. package/_types/core/coprocessor/encrypt.d.ts.map +1 -1
  512. package/_types/core/errors/RelayerResponseStatusError.d.ts +7 -1
  513. package/_types/core/errors/RelayerResponseStatusError.d.ts.map +1 -1
  514. package/_types/core/host-contracts/HostContractVersion-p.d.ts +18 -1
  515. package/_types/core/host-contracts/HostContractVersion-p.d.ts.map +1 -1
  516. package/_types/core/host-contracts/KmsSignersContext-p.d.ts +2 -1
  517. package/_types/core/host-contracts/KmsSignersContext-p.d.ts.map +1 -1
  518. package/_types/core/host-contracts/abi-fragments/fragments.d.ts +5 -0
  519. package/_types/core/host-contracts/abi-fragments/fragments.d.ts.map +1 -1
  520. package/_types/core/host-contracts/checkAllowedForDecryption.d.ts +1 -1
  521. package/_types/core/host-contracts/checkAllowedForDecryption.d.ts.map +1 -1
  522. package/_types/core/host-contracts/checkDelegation.d.ts +1 -1
  523. package/_types/core/host-contracts/checkDelegation.d.ts.map +1 -1
  524. package/_types/core/host-contracts/checkPersistAllowed.d.ts +1 -1
  525. package/_types/core/host-contracts/checkPersistAllowed.d.ts.map +1 -1
  526. package/_types/core/host-contracts/getAclAddress-p.d.ts +1 -1
  527. package/_types/core/host-contracts/getAclAddress-p.d.ts.map +1 -1
  528. package/_types/core/host-contracts/getCurrentKmsContextAndEpoch-p.d.ts +30 -0
  529. package/_types/core/host-contracts/getCurrentKmsContextAndEpoch-p.d.ts.map +1 -0
  530. package/_types/core/host-contracts/getCurrentKmsContextId-p.d.ts +1 -1
  531. package/_types/core/host-contracts/getCurrentKmsContextId-p.d.ts.map +1 -1
  532. package/_types/core/host-contracts/getFhevmExecutorAddress-p.d.ts +1 -1
  533. package/_types/core/host-contracts/getFhevmExecutorAddress-p.d.ts.map +1 -1
  534. package/_types/core/host-contracts/getHandleVersion-p.d.ts +1 -1
  535. package/_types/core/host-contracts/getHandleVersion-p.d.ts.map +1 -1
  536. package/_types/core/host-contracts/getHcuLimitAddress-p.d.ts +1 -1
  537. package/_types/core/host-contracts/getHcuLimitAddress-p.d.ts.map +1 -1
  538. package/_types/core/host-contracts/getInputVerifierAddress-p.d.ts +1 -1
  539. package/_types/core/host-contracts/getInputVerifierAddress-p.d.ts.map +1 -1
  540. package/_types/core/host-contracts/getKmsContextSignersAndThreshold-p.d.ts +1 -1
  541. package/_types/core/host-contracts/getKmsContextSignersAndThreshold-p.d.ts.map +1 -1
  542. package/_types/core/host-contracts/getKmsContextSignersAndThresholdFromExtraData-p.d.ts +1 -1
  543. package/_types/core/host-contracts/getKmsContextSignersAndThresholdFromExtraData-p.d.ts.map +1 -1
  544. package/_types/core/host-contracts/getSignersForKmsContext-p.d.ts +2 -2
  545. package/_types/core/host-contracts/getSignersForKmsContext-p.d.ts.map +1 -1
  546. package/_types/core/host-contracts/isAllowedForDecryption.d.ts +1 -1
  547. package/_types/core/host-contracts/isAllowedForDecryption.d.ts.map +1 -1
  548. package/_types/core/host-contracts/isHandleDelegatedForUserDecryption-p.d.ts +1 -1
  549. package/_types/core/host-contracts/isHandleDelegatedForUserDecryption-p.d.ts.map +1 -1
  550. package/_types/core/host-contracts/isUserDecryptable.d.ts +1 -1
  551. package/_types/core/host-contracts/isUserDecryptable.d.ts.map +1 -1
  552. package/_types/core/host-contracts/persistAllowed.d.ts +1 -1
  553. package/_types/core/host-contracts/persistAllowed.d.ts.map +1 -1
  554. package/_types/core/host-contracts/readKmsSignersContext-p.d.ts +25 -7
  555. package/_types/core/host-contracts/readKmsSignersContext-p.d.ts.map +1 -1
  556. package/_types/core/key/FheEncryptionKeyWasm-p.d.ts +3 -1
  557. package/_types/core/key/FheEncryptionKeyWasm-p.d.ts.map +1 -1
  558. package/_types/core/key/deserializeFheEncryptionKey.d.ts +2 -0
  559. package/_types/core/key/deserializeFheEncryptionKey.d.ts.map +1 -1
  560. package/_types/core/key/fetchFheEncryptionKey.d.ts +3 -1
  561. package/_types/core/key/fetchFheEncryptionKey.d.ts.map +1 -1
  562. package/_types/core/key/fetchFheEncryptionKeyBytes.d.ts.map +1 -1
  563. package/_types/core/key/serializeFheEncryptionKey.d.ts.map +1 -1
  564. package/_types/core/kms/KmsSigncryptedShares-p.d.ts.map +1 -1
  565. package/_types/core/kms/SignedDecryptionPermit-p.d.ts.map +1 -1
  566. package/_types/core/kms/TransportKeyPair-p.d.ts +9 -0
  567. package/_types/core/kms/TransportKeyPair-p.d.ts.map +1 -1
  568. package/_types/core/kms/createKmsUserDecryptEip712.d.ts.map +1 -1
  569. package/_types/core/kms/createKmsUserDecryptEip712V2.d.ts +15 -0
  570. package/_types/core/kms/createKmsUserDecryptEip712V2.d.ts.map +1 -0
  571. package/_types/core/kms/{decryptKmsSignedcryptedShares-p.d.ts → decryptKmsSigncryptedShares-p.d.ts} +4 -2
  572. package/_types/core/kms/decryptKmsSigncryptedShares-p.d.ts.map +1 -0
  573. package/_types/core/kms/decryptValuesFromPairs.d.ts +2 -0
  574. package/_types/core/kms/decryptValuesFromPairs.d.ts.map +1 -1
  575. package/_types/core/kms/{fetchKmsSignedcryptedShares-p.d.ts → fetchKmsSigncryptedShares-p.d.ts} +2 -2
  576. package/_types/core/kms/fetchKmsSigncryptedShares-p.d.ts.map +1 -0
  577. package/_types/core/kms/kmsExtraData.d.ts +9 -2
  578. package/_types/core/kms/kmsExtraData.d.ts.map +1 -1
  579. package/_types/core/kms/kmsUserDecryptEip712V2Types.d.ts +3 -0
  580. package/_types/core/kms/kmsUserDecryptEip712V2Types.d.ts.map +1 -0
  581. package/_types/core/kms/publicDecrypt.d.ts.map +1 -1
  582. package/_types/core/modules/decrypt/mock.d.ts +1 -2
  583. package/_types/core/modules/decrypt/mock.d.ts.map +1 -1
  584. package/_types/core/modules/decrypt/module/api-p.d.ts +2 -2
  585. package/_types/core/modules/decrypt/module/api-p.d.ts.map +1 -1
  586. package/_types/core/modules/decrypt/module/index.d.ts +1 -2
  587. package/_types/core/modules/decrypt/module/index.d.ts.map +1 -1
  588. package/_types/core/modules/decrypt/module/init-p.d.ts +3 -3
  589. package/_types/core/modules/decrypt/module/init-p.d.ts.map +1 -1
  590. package/_types/core/modules/decrypt/types.d.ts +33 -34
  591. package/_types/core/modules/decrypt/types.d.ts.map +1 -1
  592. package/_types/core/modules/encrypt/mock.d.ts.map +1 -1
  593. package/_types/core/modules/encrypt/module/api-p.d.ts.map +1 -1
  594. package/_types/core/modules/encrypt/module/index.d.ts.map +1 -1
  595. package/_types/core/modules/encrypt/module/init-p.d.ts +11 -4
  596. package/_types/core/modules/encrypt/module/init-p.d.ts.map +1 -1
  597. package/_types/core/modules/encrypt/types.d.ts +31 -2
  598. package/_types/core/modules/encrypt/types.d.ts.map +1 -1
  599. package/_types/core/modules/relayer/module/RelayerAsyncRequest.d.ts +19 -0
  600. package/_types/core/modules/relayer/module/RelayerAsyncRequest.d.ts.map +1 -1
  601. package/_types/core/modules/relayer/module/fetchCoprocessorSignatures.d.ts.map +1 -1
  602. package/_types/core/modules/relayer/module/fetchDelegatedUserDecrypt.d.ts.map +1 -1
  603. package/_types/core/modules/relayer/module/fetchFheEncryptionKeySource.d.ts.map +1 -1
  604. package/_types/core/modules/relayer/module/fetchPublicDecrypt.d.ts.map +1 -1
  605. package/_types/core/modules/relayer/module/fetchUserDecrypt.d.ts.map +1 -1
  606. package/_types/core/modules/relayer/module/readErrorMessage.d.ts +26 -0
  607. package/_types/core/modules/relayer/module/readErrorMessage.d.ts.map +1 -0
  608. package/_types/core/modules/relayer/module/relayerUrl.d.ts +24 -5
  609. package/_types/core/modules/relayer/module/relayerUrl.d.ts.map +1 -1
  610. package/_types/core/runtime/CoreFhevm-p.d.ts +15 -4
  611. package/_types/core/runtime/CoreFhevm-p.d.ts.map +1 -1
  612. package/_types/core/runtime/HyperWasmSolver-p.d.ts +71 -0
  613. package/_types/core/runtime/HyperWasmSolver-p.d.ts.map +1 -0
  614. package/_types/core/runtime/ProtocolVersionResolver-p.d.ts +29 -0
  615. package/_types/core/runtime/ProtocolVersionResolver-p.d.ts.map +1 -0
  616. package/_types/core/runtime/initFhevmRuntime-p.d.ts.map +1 -1
  617. package/_types/core/runtime/resolveFhevmVersions-p.d.ts +21 -0
  618. package/_types/core/runtime/resolveFhevmVersions-p.d.ts.map +1 -0
  619. package/_types/core/runtimeConfig-p.d.ts +3 -2
  620. package/_types/core/runtimeConfig-p.d.ts.map +1 -1
  621. package/_types/core/types/auth.d.ts +12 -1
  622. package/_types/core/types/auth.d.ts.map +1 -1
  623. package/_types/core/types/coreFhevmClient.d.ts +72 -2
  624. package/_types/core/types/coreFhevmClient.d.ts.map +1 -1
  625. package/_types/core/types/coreFhevmRuntime.d.ts +3 -9
  626. package/_types/core/types/coreFhevmRuntime.d.ts.map +1 -1
  627. package/_types/core/types/fheEncryptionKey.d.ts +2 -0
  628. package/_types/core/types/fheEncryptionKey.d.ts.map +1 -1
  629. package/_types/core/types/fhevmChain.d.ts +3 -0
  630. package/_types/core/types/fhevmChain.d.ts.map +1 -1
  631. package/_types/core/types/hostContract.d.ts +1 -0
  632. package/_types/core/types/hostContract.d.ts.map +1 -1
  633. package/_types/core/types/index.d.ts +1 -1
  634. package/_types/core/types/index.d.ts.map +1 -1
  635. package/_types/core/types/kms-p.d.ts +2 -0
  636. package/_types/core/types/kms-p.d.ts.map +1 -1
  637. package/_types/core/types/kms.d.ts +71 -21
  638. package/_types/core/types/kms.d.ts.map +1 -1
  639. package/_types/core/types/kmsSignersContext.d.ts +8 -0
  640. package/_types/core/types/kmsSignersContext.d.ts.map +1 -1
  641. package/_types/core/types/logger.d.ts +1 -0
  642. package/_types/core/types/logger.d.ts.map +1 -1
  643. package/_types/core/types/moduleVersions.d.ts +25 -0
  644. package/_types/core/types/moduleVersions.d.ts.map +1 -0
  645. package/_types/core/types/relayer.d.ts +1 -0
  646. package/_types/core/types/relayer.d.ts.map +1 -1
  647. package/_types/core/types/tkms-p.d.ts +2 -0
  648. package/_types/core/types/tkms-p.d.ts.map +1 -1
  649. package/_types/core/types/wasmAssets.d.ts +2 -0
  650. package/_types/core/types/wasmAssets.d.ts.map +1 -0
  651. package/_types/core/types/{zkProofBuilder.d.ts → zkProofBuilder-p.d.ts} +8 -3
  652. package/_types/core/types/zkProofBuilder-p.d.ts.map +1 -0
  653. package/_types/core/utils-p/decrypt/verifyTkmsPublicKey.d.ts +2 -0
  654. package/_types/core/utils-p/decrypt/verifyTkmsPublicKey.d.ts.map +1 -1
  655. package/_types/ethers/cleartext/createFhevmCleartextDecryptClient.d.ts +2 -2
  656. package/_types/ethers/cleartext/createFhevmCleartextDecryptClient.d.ts.map +1 -1
  657. package/_types/ethers/cleartext/createFhevmCleartextEncryptClient.d.ts +2 -2
  658. package/_types/ethers/cleartext/createFhevmCleartextEncryptClient.d.ts.map +1 -1
  659. package/_types/ethers/clients/createFhevmDecryptClient.d.ts +2 -2
  660. package/_types/ethers/clients/createFhevmDecryptClient.d.ts.map +1 -1
  661. package/_types/ethers/clients/createFhevmEncryptClient.d.ts +2 -2
  662. package/_types/ethers/clients/createFhevmEncryptClient.d.ts.map +1 -1
  663. package/_types/viem/cleartext/createFhevmCleartextDecryptClient.d.ts +2 -2
  664. package/_types/viem/cleartext/createFhevmCleartextDecryptClient.d.ts.map +1 -1
  665. package/_types/viem/cleartext/createFhevmCleartextEncryptClient.d.ts +2 -2
  666. package/_types/viem/cleartext/createFhevmCleartextEncryptClient.d.ts.map +1 -1
  667. package/_types/viem/clients/createFhevmDecryptClient.d.ts +2 -2
  668. package/_types/viem/clients/createFhevmDecryptClient.d.ts.map +1 -1
  669. package/_types/viem/clients/createFhevmEncryptClient.d.ts +2 -2
  670. package/_types/viem/clients/createFhevmEncryptClient.d.ts.map +1 -1
  671. package/_types/wasm/tfhe/v1.5.3/tfhe.d.ts +4 -0
  672. package/_types/wasm/tfhe/v1.6.1/tfhe.d.ts +4 -0
  673. package/_types/wasm/tfheModuleVersion-p.d.ts +1 -1
  674. package/_types/wasm/tfheModuleVersion-p.d.ts.map +1 -1
  675. package/_types/wasm/tkms/v0.13.10/kms_lib.d.ts +4 -0
  676. package/_types/wasm/tkms/v0.13.20-0/kms_lib.d.ts +4 -0
  677. package/_types/wasm/tkmsModuleVersion-p.d.ts +1 -1
  678. package/_types/wasm/tkmsModuleVersion-p.d.ts.map +1 -1
  679. package/core/_version.ts +1 -1
  680. package/core/actions/base/canDecryptPublicValue.ts +1 -1
  681. package/core/actions/base/canDecryptPublicValues.ts +1 -1
  682. package/core/actions/base/{fetchKmsSignedcryptedShares.ts → fetchKmsSigncryptedShares.ts} +16 -16
  683. package/core/actions/base/index.ts +5 -5
  684. package/core/actions/base/readKmsSignersContext.ts +2 -1
  685. package/core/actions/chain/parseSignedDecryptionPermit.ts +2 -2
  686. package/core/actions/chain/parseTransportKeyPair.ts +2 -1
  687. package/core/actions/decrypt/{decryptKmsSignedcryptedShares.ts → decryptKmsSigncryptedShares.ts} +12 -9
  688. package/core/actions/decrypt/decryptValue.ts +4 -1
  689. package/core/actions/decrypt/decryptValues.ts +4 -1
  690. package/core/actions/decrypt/decryptValuesFromPairs.ts +4 -1
  691. package/core/actions/decrypt/generateTransportKeyPair.ts +5 -3
  692. package/core/actions/decrypt/index.ts +4 -4
  693. package/core/actions/encrypt/encryptValue.ts +4 -1
  694. package/core/actions/encrypt/encryptValues.ts +4 -1
  695. package/core/actions/encrypt/generateZkProof.ts +9 -1
  696. package/core/actions/host/readFhevmExecutorContractData.ts +8 -8
  697. package/core/actions/host/readInputVerifierContractData.ts +2 -2
  698. package/core/actions/host/readKmsVerifierContractData.ts +8 -6
  699. package/core/actions/host/resolveFhevmConfig.ts +10 -1
  700. package/core/base/auth.ts +8 -6
  701. package/core/base/errors/InvalidUrlError.ts +24 -0
  702. package/core/base/fetch.ts +102 -0
  703. package/core/base/object.ts +38 -0
  704. package/core/base/semver.ts +231 -0
  705. package/core/base/string.ts +10 -0
  706. package/core/base/uint.ts +33 -4
  707. package/core/chains/definitions/localTestnet.ts +3 -0
  708. package/core/chains/definitions/mainnet.ts +1 -0
  709. package/core/chains/definitions/sepolia.ts +6 -6
  710. package/core/clients/decorators/base.ts +8 -1
  711. package/core/clients/decorators/decrypt-p.ts +18 -0
  712. package/core/clients/decorators/decrypt.ts +10 -15
  713. package/core/clients/decorators/encrypt-p.ts +12 -7
  714. package/core/clients/decorators/encrypt.ts +6 -4
  715. package/core/coprocessor/ZkProof-p.ts +17 -5
  716. package/core/coprocessor/ZkProofBuilder-p.ts +5 -2
  717. package/core/coprocessor/encrypt.ts +6 -1
  718. package/core/errors/RelayerResponseStatusError.ts +14 -2
  719. package/core/host-contracts/HostContractVersion-p.ts +60 -3
  720. package/core/host-contracts/KmsSignersContext-p.ts +36 -5
  721. package/core/host-contracts/abi-fragments/fragments.ts +28 -0
  722. package/core/host-contracts/canDecryptValuesFromPairs.ts +1 -1
  723. package/core/host-contracts/checkAllowedForDecryption.ts +3 -3
  724. package/core/host-contracts/checkDelegation.ts +9 -9
  725. package/core/host-contracts/checkPersistAllowed.ts +10 -10
  726. package/core/host-contracts/getAclAddress-p.ts +2 -3
  727. package/core/host-contracts/getCurrentKmsContextAndEpoch-p.ts +92 -0
  728. package/core/host-contracts/getCurrentKmsContextId-p.ts +8 -8
  729. package/core/host-contracts/getFhevmExecutorAddress-p.ts +2 -2
  730. package/core/host-contracts/getHandleVersion-p.ts +2 -3
  731. package/core/host-contracts/getHcuLimitAddress-p.ts +2 -3
  732. package/core/host-contracts/getInputVerifierAddress-p.ts +2 -3
  733. package/core/host-contracts/getKmsContextSignersAndThreshold-p.ts +7 -9
  734. package/core/host-contracts/getKmsContextSignersAndThresholdFromExtraData-p.ts +6 -7
  735. package/core/host-contracts/getSignersForKmsContext-p.ts +6 -8
  736. package/core/host-contracts/isAllowedForDecryption.ts +6 -6
  737. package/core/host-contracts/isHandleDelegatedForUserDecryption-p.ts +7 -7
  738. package/core/host-contracts/isUserDecryptable.ts +3 -3
  739. package/core/host-contracts/persistAllowed.ts +6 -6
  740. package/core/host-contracts/readKmsSignersContext-p.ts +131 -41
  741. package/core/key/FheEncryptionKeyWasm-p.ts +24 -3
  742. package/core/key/deserializeFheEncryptionKey.ts +8 -1
  743. package/core/key/fetchFheEncryptionKey.ts +8 -4
  744. package/core/key/fetchFheEncryptionKeyBytes.ts +4 -2
  745. package/core/key/serializeFheEncryptionKey.ts +8 -2
  746. package/core/kms/KmsSigncryptedShares-p.ts +11 -1
  747. package/core/kms/SignedDecryptionPermit-p.ts +6 -1
  748. package/core/kms/TransportKeyPair-p.ts +56 -10
  749. package/core/kms/createKmsUserDecryptEip712.ts +4 -0
  750. package/core/kms/createKmsUserDecryptEip712V2.ts +159 -0
  751. package/core/kms/{decryptKmsSignedcryptedShares-p.ts → decryptKmsSigncryptedShares-p.ts} +12 -2
  752. package/core/kms/decryptValuesFromPairs.ts +6 -4
  753. package/core/kms/{fetchKmsSignedcryptedShares-p.ts → fetchKmsSigncryptedShares-p.ts} +12 -5
  754. package/core/kms/kmsExtraData.ts +82 -13
  755. package/core/kms/kmsUserDecryptEip712V2Types.ts +31 -0
  756. package/core/kms/publicDecrypt.ts +5 -3
  757. package/core/modules/decrypt/mock.ts +0 -35
  758. package/core/modules/decrypt/module/api-p.ts +88 -17
  759. package/core/modules/decrypt/module/index.ts +37 -34
  760. package/core/modules/decrypt/module/init-p.ts +60 -28
  761. package/core/modules/decrypt/types.ts +37 -65
  762. package/core/modules/encrypt/mock.ts +34 -4
  763. package/core/modules/encrypt/module/api-p.ts +66 -15
  764. package/core/modules/encrypt/module/index.ts +5 -3
  765. package/core/modules/encrypt/module/init-p.ts +99 -40
  766. package/core/modules/encrypt/types.ts +34 -2
  767. package/core/modules/relayer/cleartext/fetchDelegatedUserDecrypt.ts +2 -2
  768. package/core/modules/relayer/cleartext/fetchUserDecrypt.ts +2 -2
  769. package/core/modules/relayer/module/RelayerAsyncRequest.ts +79 -21
  770. package/core/modules/relayer/module/fetchCoprocessorSignatures.ts +6 -2
  771. package/core/modules/relayer/module/fetchDelegatedUserDecrypt.ts +7 -2
  772. package/core/modules/relayer/module/fetchFheEncryptionKeySource.ts +21 -8
  773. package/core/modules/relayer/module/fetchPublicDecrypt.ts +7 -2
  774. package/core/modules/relayer/module/fetchUserDecrypt.ts +7 -2
  775. package/core/modules/relayer/module/readErrorMessage.ts +56 -0
  776. package/core/modules/relayer/module/relayerUrl.ts +66 -27
  777. package/core/runtime/CoreFhevm-p.ts +247 -22
  778. package/core/runtime/HyperWasmSolver-p.ts +417 -0
  779. package/core/runtime/ProtocolVersionResolver-p.ts +463 -0
  780. package/core/runtime/initFhevmDecryptRuntime-p.ts +1 -1
  781. package/core/runtime/initFhevmEncryptRuntime-p.ts +1 -1
  782. package/core/runtime/initFhevmRuntime-p.ts +4 -1
  783. package/core/runtime/resolveFhevmVersions-p.ts +85 -0
  784. package/core/runtimeConfig-p.ts +17 -2
  785. package/core/types/auth.ts +12 -1
  786. package/core/types/coreFhevmClient.ts +89 -4
  787. package/core/types/coreFhevmRuntime.ts +3 -18
  788. package/core/types/fheEncryptionKey.ts +2 -0
  789. package/core/types/fhevmChain.ts +3 -0
  790. package/core/types/hostContract.ts +1 -0
  791. package/core/types/index.ts +1 -1
  792. package/core/types/kms-p.ts +2 -0
  793. package/core/types/kms.ts +48 -18
  794. package/core/types/kmsSignersContext.ts +8 -0
  795. package/core/types/logger.ts +1 -0
  796. package/core/types/moduleVersions.ts +35 -0
  797. package/core/types/relayer.ts +1 -0
  798. package/core/types/tkms-p.ts +3 -0
  799. package/core/types/wasmAssets.ts +6 -0
  800. package/core/types/{zkProofBuilder.ts → zkProofBuilder-p.ts} +3 -2
  801. package/core/utils-p/decrypt/verifyTkmsPublicKey.ts +3 -1
  802. package/ethers/cleartext/createFhevmCleartextDecryptClient.ts +2 -2
  803. package/ethers/cleartext/createFhevmCleartextEncryptClient.ts +2 -2
  804. package/ethers/clients/createFhevmDecryptClient.ts +2 -2
  805. package/ethers/clients/createFhevmEncryptClient.ts +2 -2
  806. package/ethers/internal/config.ts +2 -30
  807. package/package.json +1 -1
  808. package/viem/cleartext/createFhevmCleartextDecryptClient.ts +2 -2
  809. package/viem/cleartext/createFhevmCleartextEncryptClient.ts +2 -2
  810. package/viem/clients/createFhevmDecryptClient.ts +2 -2
  811. package/viem/clients/createFhevmEncryptClient.ts +2 -2
  812. package/viem/internal/config.ts +2 -30
  813. package/wasm/tfhe/v1.5.3/tfhe.d.ts +4 -0
  814. package/wasm/tfhe/v1.5.3/tfhe.js +8 -0
  815. package/wasm/tfhe/v1.6.0-dev/tfhe.d.ts +4 -0
  816. package/wasm/tfhe/v1.6.0-dev/tfhe.js +8 -0
  817. package/wasm/tfhe/v1.6.1/tfhe.d.ts +4 -0
  818. package/wasm/tfhe/v1.6.1/tfhe.js +8 -0
  819. package/wasm/tfheModuleVersion-p.ts +1 -1
  820. package/wasm/tkms/v0.13.10/kms_lib.d.ts +4 -0
  821. package/wasm/tkms/v0.13.10/kms_lib.js +8 -0
  822. package/wasm/tkms/v0.13.20-0/kms_lib.d.ts +4 -0
  823. package/wasm/tkms/v0.13.20-0/kms_lib.js +8 -0
  824. package/wasm/tkmsModuleVersion-p.ts +1 -1
  825. package/wasm/wasmBaseUrl.js +69 -4
  826. package/_cjs/core/actions/base/fetchKmsSignedcryptedShares.js.map +0 -1
  827. package/_cjs/core/actions/decrypt/decryptKmsSignedcryptedShares.js +0 -11
  828. package/_cjs/core/actions/decrypt/decryptKmsSignedcryptedShares.js.map +0 -1
  829. package/_cjs/core/kms/decryptKmsSignedcryptedShares-p.js.map +0 -1
  830. package/_cjs/core/kms/fetchKmsSignedcryptedShares-p.js.map +0 -1
  831. package/_cjs/core/types/fhevmDecryptionKey.js.map +0 -1
  832. package/_cjs/core/types/fhevmUser.js.map +0 -1
  833. package/_cjs/core/types/zkProofBuilder.js.map +0 -1
  834. package/_esm/core/actions/base/fetchKmsSignedcryptedShares.js.map +0 -1
  835. package/_esm/core/actions/decrypt/decryptKmsSignedcryptedShares.js +0 -9
  836. package/_esm/core/actions/decrypt/decryptKmsSignedcryptedShares.js.map +0 -1
  837. package/_esm/core/kms/decryptKmsSignedcryptedShares-p.js.map +0 -1
  838. package/_esm/core/kms/fetchKmsSignedcryptedShares-p.js.map +0 -1
  839. package/_esm/core/types/fhevmDecryptionKey.js +0 -2
  840. package/_esm/core/types/fhevmDecryptionKey.js.map +0 -1
  841. package/_esm/core/types/fhevmUser.js +0 -2
  842. package/_esm/core/types/fhevmUser.js.map +0 -1
  843. package/_esm/core/types/zkProofBuilder.js +0 -2
  844. package/_esm/core/types/zkProofBuilder.js.map +0 -1
  845. package/_types/core/actions/base/fetchKmsSignedcryptedShares.d.ts.map +0 -1
  846. package/_types/core/actions/decrypt/decryptKmsSignedcryptedShares.d.ts.map +0 -1
  847. package/_types/core/kms/decryptKmsSignedcryptedShares-p.d.ts.map +0 -1
  848. package/_types/core/kms/fetchKmsSignedcryptedShares-p.d.ts.map +0 -1
  849. package/_types/core/types/fhevmDecryptionKey.d.ts +0 -4
  850. package/_types/core/types/fhevmDecryptionKey.d.ts.map +0 -1
  851. package/_types/core/types/fhevmUser.d.ts +0 -7
  852. package/_types/core/types/fhevmUser.d.ts.map +0 -1
  853. package/_types/core/types/zkProofBuilder.d.ts.map +0 -1
  854. package/core/types/fhevmDecryptionKey.ts +0 -8
  855. package/core/types/fhevmUser.ts +0 -7
@@ -16,6 +16,44 @@ export function simpleDeepFreeze<T extends object>(obj: T): Readonly<T> {
16
16
  return obj;
17
17
  }
18
18
 
19
+ /**
20
+ * Recursively compares two JSON-like values.
21
+ *
22
+ * Arrays are order-sensitive. Objects must have the same own enumerable string keys, but key
23
+ * insertion order does not matter.
24
+ */
25
+ export function isDeepEqual(value: unknown, expected: unknown): boolean {
26
+ if (value === expected) {
27
+ return true;
28
+ }
29
+
30
+ if (Array.isArray(expected)) {
31
+ return (
32
+ Array.isArray(value) &&
33
+ value.length === expected.length &&
34
+ expected.every((expectedItem, index) => isDeepEqual(value[index], expectedItem))
35
+ );
36
+ }
37
+
38
+ if (expected === null || typeof expected !== 'object') {
39
+ return value === expected;
40
+ }
41
+
42
+ if (value === null || typeof value !== 'object' || Array.isArray(value)) {
43
+ return false;
44
+ }
45
+
46
+ const record = value as Record<string, unknown>;
47
+ const expectedRecord = expected as Record<string, unknown>;
48
+ const keys = Object.keys(record);
49
+ const expectedKeys = Object.keys(expectedRecord);
50
+
51
+ return (
52
+ keys.length === expectedKeys.length &&
53
+ expectedKeys.every((key) => Object.hasOwn(record, key) && isDeepEqual(record[key], expectedRecord[key]))
54
+ );
55
+ }
56
+
19
57
  /**
20
58
  * Defines a non-enumerable, non-writable, non-configurable property on the target object.
21
59
  * The property is hidden from `Object.keys()` / `Object.entries()` and cannot be
@@ -0,0 +1,231 @@
1
+ import type { UintNumber } from '../types/primitives.js';
2
+ import { assertIsUintNumber } from './uint.js';
3
+
4
+ ////////////////////////////////////////////////////////////////////////////////
5
+
6
+ export type Semver = {
7
+ readonly version: string;
8
+ readonly major: UintNumber;
9
+ readonly minor: UintNumber;
10
+ readonly patch: UintNumber;
11
+ readonly prerelease?: readonly string[] | undefined;
12
+ readonly build?: readonly string[] | undefined;
13
+ };
14
+
15
+ export type SemverComparator = 'lt' | 'le' | 'gt' | 'ge' | 'eq';
16
+
17
+ export type SemverRange = {
18
+ readonly version: string;
19
+ readonly comparator: SemverComparator;
20
+ };
21
+
22
+ export type SemverIntervalLowerBound = {
23
+ readonly version: string;
24
+ readonly comparator: 'gt' | 'ge';
25
+ };
26
+
27
+ export type SemverIntervalUpperBound = {
28
+ readonly version: string;
29
+ readonly comparator: 'lt' | 'le';
30
+ };
31
+
32
+ export type SemverInterval = {
33
+ readonly lowerBound?: SemverIntervalLowerBound | undefined;
34
+ readonly upperBound?: SemverIntervalUpperBound | undefined;
35
+ };
36
+
37
+ const SEMVER_REGEX =
38
+ /^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|[0-9A-Za-z-]*[A-Za-z-][0-9A-Za-z-]*)(?:\.(?:0|[1-9]\d*|[0-9A-Za-z-]*[A-Za-z-][0-9A-Za-z-]*))*))?(?:\+([0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))?$/;
39
+
40
+ export function parseSemver(version: string): Semver {
41
+ const match = SEMVER_REGEX.exec(version);
42
+ if (match === null) {
43
+ throw new Error(`Invalid SemVer version: "${version}".`);
44
+ }
45
+
46
+ const major = Number(match[1]);
47
+ const minor = Number(match[2]);
48
+ const patch = Number(match[3]);
49
+
50
+ assertIsUintNumber(major, {});
51
+ assertIsUintNumber(minor, {});
52
+ assertIsUintNumber(patch, {});
53
+
54
+ return Object.freeze({
55
+ version,
56
+ major,
57
+ minor,
58
+ patch,
59
+ prerelease: match[4]?.split('.'),
60
+ build: match[5]?.split('.'),
61
+ });
62
+ }
63
+
64
+ export function isSemverStrictlyBefore(version: string, before: string): boolean {
65
+ return compareSemver(version, before) < 0;
66
+ }
67
+
68
+ export function isSemverInRange(version: string, range: SemverRange): boolean {
69
+ const comparison = compareSemver(version, range.version);
70
+
71
+ switch (range.comparator) {
72
+ case 'lt':
73
+ return comparison < 0;
74
+ case 'le':
75
+ return comparison <= 0;
76
+ case 'gt':
77
+ return comparison > 0;
78
+ case 'ge':
79
+ return comparison >= 0;
80
+ case 'eq':
81
+ return comparison === 0;
82
+ default: {
83
+ const exhaustiveCheck: never = range.comparator;
84
+ throw new Error(`Unsupported SemVer comparator "${exhaustiveCheck}".`);
85
+ }
86
+ }
87
+ }
88
+
89
+ export function isSemverInInterval(version: string, interval: SemverInterval): boolean {
90
+ if (interval.lowerBound !== undefined && !isSemverInRange(version, interval.lowerBound)) {
91
+ return false;
92
+ }
93
+ if (interval.upperBound !== undefined && !isSemverInRange(version, interval.upperBound)) {
94
+ return false;
95
+ }
96
+ return true;
97
+ }
98
+
99
+ /**
100
+ * Returns whether a SemVer comparator constraint implies a SemVer range.
101
+ *
102
+ * Mathematically: for every SemVer `x`, if `x comparator version` is true,
103
+ * then `x range.comparator range.version` is also true.
104
+ */
105
+ export function semverComparatorImpliesRange(
106
+ version: string,
107
+ comparator: SemverComparator,
108
+ range: SemverRange,
109
+ ): boolean {
110
+ if (comparator === 'eq') {
111
+ return isSemverInRange(version, range);
112
+ }
113
+
114
+ const comparison = compareSemver(version, range.version);
115
+
116
+ switch (comparator) {
117
+ case 'lt':
118
+ return range.comparator === 'lt' || range.comparator === 'le' ? comparison <= 0 : false;
119
+ case 'le':
120
+ if (range.comparator === 'lt') {
121
+ return comparison < 0;
122
+ }
123
+ return range.comparator === 'le' ? comparison <= 0 : false;
124
+ case 'gt':
125
+ return range.comparator === 'gt' || range.comparator === 'ge' ? comparison >= 0 : false;
126
+ case 'ge':
127
+ if (range.comparator === 'gt') {
128
+ return comparison > 0;
129
+ }
130
+ return range.comparator === 'ge' ? comparison >= 0 : false;
131
+ default: {
132
+ const exhaustiveCheck: never = comparator;
133
+ throw new Error(`Unsupported SemVer comparator "${exhaustiveCheck}".`);
134
+ }
135
+ }
136
+ }
137
+
138
+ export function compareSemver(a: string, b: string): -1 | 0 | 1 {
139
+ const left = parseSemver(a);
140
+ const right = parseSemver(b);
141
+
142
+ const releaseComparison = _compareNumbers(
143
+ [left.major, left.minor, left.patch],
144
+ [right.major, right.minor, right.patch],
145
+ );
146
+ if (releaseComparison !== 0) {
147
+ return releaseComparison;
148
+ }
149
+
150
+ return _comparePrerelease(left.prerelease, right.prerelease);
151
+ }
152
+
153
+ function _compareNumbers(a: readonly number[], b: readonly number[]): -1 | 0 | 1 {
154
+ for (let i = 0; i < a.length; ++i) {
155
+ const left = a[i];
156
+ const right = b[i];
157
+ if (left === undefined) {
158
+ return right === undefined ? 0 : -1;
159
+ }
160
+ if (right === undefined) {
161
+ return 1;
162
+ }
163
+ if (left < right) {
164
+ return -1;
165
+ }
166
+ if (left > right) {
167
+ return 1;
168
+ }
169
+ }
170
+ return a.length === b.length ? 0 : -1;
171
+ }
172
+
173
+ function _comparePrerelease(a: readonly string[] | undefined, b: readonly string[] | undefined): -1 | 0 | 1 {
174
+ if (a === undefined && b === undefined) {
175
+ return 0;
176
+ }
177
+ if (a === undefined) {
178
+ return 1;
179
+ }
180
+ if (b === undefined) {
181
+ return -1;
182
+ }
183
+
184
+ const length = Math.max(a.length, b.length);
185
+ for (let i = 0; i < length; ++i) {
186
+ const left = a[i];
187
+ const right = b[i];
188
+
189
+ if (left === undefined) {
190
+ return -1;
191
+ }
192
+ if (right === undefined) {
193
+ return 1;
194
+ }
195
+
196
+ const comparison = _comparePrereleaseIdentifier(left, right);
197
+ if (comparison !== 0) {
198
+ return comparison;
199
+ }
200
+ }
201
+
202
+ return 0;
203
+ }
204
+
205
+ function _comparePrereleaseIdentifier(a: string, b: string): -1 | 0 | 1 {
206
+ const aIsNumeric = _isNumericIdentifier(a);
207
+ const bIsNumeric = _isNumericIdentifier(b);
208
+
209
+ if (aIsNumeric && bIsNumeric) {
210
+ return _compareNumbers([Number(a)], [Number(b)]);
211
+ }
212
+
213
+ if (aIsNumeric) {
214
+ return -1;
215
+ }
216
+ if (bIsNumeric) {
217
+ return 1;
218
+ }
219
+
220
+ if (a < b) {
221
+ return -1;
222
+ }
223
+ if (a > b) {
224
+ return 1;
225
+ }
226
+ return 0;
227
+ }
228
+
229
+ function _isNumericIdentifier(value: string): boolean {
230
+ return /^(0|[1-9]\d*)$/.test(value);
231
+ }
@@ -15,6 +15,16 @@ export function removeSuffix(s: string | undefined, suffix: string): string {
15
15
  return s.endsWith(suffix) ? s.slice(0, -suffix.length) : s;
16
16
  }
17
17
 
18
+ export function removePrefix(s: string | undefined, prefix: string): string {
19
+ if (s === undefined) {
20
+ return '';
21
+ }
22
+ if (prefix.length === 0) {
23
+ return s;
24
+ }
25
+ return s.startsWith(prefix) ? s.substring(prefix.length) : s;
26
+ }
27
+
18
28
  export function is0x(s: unknown): s is `0x${string}` {
19
29
  return typeof s === 'string' && s.startsWith('0x');
20
30
  }
package/core/base/uint.ts CHANGED
@@ -116,6 +116,13 @@ export function isUintBigInt(value: unknown, max?: bigint | number): value is Ui
116
116
  return typeof value === 'bigint' && value >= 0 && (max === undefined || value <= max);
117
117
  }
118
118
 
119
+ export function isUintString(value: unknown, max?: number | bigint): value is string {
120
+ if (typeof value !== 'string') {
121
+ return false;
122
+ }
123
+ return tryParseUintBigIntString(value, max) !== undefined;
124
+ }
125
+
119
126
  export function isUintForType(value: unknown, typeName?: UintTypeName): value is Uint {
120
127
  return isUint(value, typeName !== undefined ? MAX_UINT_FOR_TYPE[typeName] : undefined);
121
128
  }
@@ -330,6 +337,22 @@ export function assertIsUintBigInt(
330
337
  }
331
338
  }
332
339
 
340
+ export function assertIsUintString(
341
+ value: unknown,
342
+ options: { max?: bigint | number; subject?: string } & ErrorMetadataParams,
343
+ ): asserts value is string {
344
+ if (!isUintString(value, options.max)) {
345
+ throw new InvalidTypeError(
346
+ {
347
+ subject: options.subject,
348
+ type: typeof value,
349
+ expectedType: 'uintString',
350
+ },
351
+ options,
352
+ );
353
+ }
354
+ }
355
+
333
356
  export function assertIsUint8(
334
357
  value: unknown,
335
358
  options: { subject?: string } & ErrorMetadataParams,
@@ -645,7 +668,7 @@ export function assertRecordUintBigIntProperty<K extends string>(
645
668
  property: K,
646
669
  recordName: string,
647
670
  options: ErrorMetadataParams,
648
- ): asserts record is RecordWithPropertyType<K, number> {
671
+ ): asserts record is RecordWithPropertyType<K, bigint> {
649
672
  if (typeofProperty(record, property) !== 'bigint' || !isUintBigInt((record as Record<string, unknown>)[property])) {
650
673
  throw new InvalidPropertyError(
651
674
  {
@@ -659,17 +682,23 @@ export function assertRecordUintBigIntProperty<K extends string>(
659
682
  }
660
683
  }
661
684
 
662
- export function parseUintBigIntString(value: string): bigint | undefined {
685
+ /**
686
+ * Tries to parse a canonical unsigned decimal string as a bigint.
687
+ *
688
+ * Returns `undefined` instead of throwing when `value` is not parseable, is negative, is not in
689
+ * canonical decimal form, or exceeds `max`.
690
+ */
691
+ export function tryParseUintBigIntString(value: string, max?: number | bigint): UintBigInt | undefined {
663
692
  let parsed: bigint;
664
693
  try {
665
694
  parsed = BigInt(value);
666
695
  } catch {
667
696
  return undefined;
668
697
  }
669
- if (parsed < 0n || parsed.toString() !== value) {
698
+ if (parsed < 0n || parsed.toString() !== value || (max !== undefined && parsed > BigInt(max))) {
670
699
  return undefined;
671
700
  }
672
- return parsed;
701
+ return parsed as UintBigInt;
673
702
  }
674
703
 
675
704
  /** Returns `count` unique integers drawn uniformly from [0, n-1]. Mock/debug only. */
@@ -13,6 +13,9 @@ export const localTestnet = /*#__PURE__*/ defineFhevmChain({
13
13
  kmsVerifier: {
14
14
  address: '0xa1880e99d86F081E8D3868A8C4732C8f65dfdB11',
15
15
  },
16
+ protocolConfig: {
17
+ address: '0x52054F36036811ca418be59e41Fc6DD1b9e4F4c8',
18
+ },
16
19
  },
17
20
  relayerUrl: 'http://localhost:9000',
18
21
  gateway: {
@@ -13,6 +13,7 @@ export const mainnet = /*#__PURE__*/ defineFhevmChain({
13
13
  kmsVerifier: {
14
14
  address: '0x77627828a55156b04Ac0DC0eb30467f1a552BB03',
15
15
  },
16
+ protocolConfig: undefined, // To be filled
16
17
  },
17
18
  relayerUrl: 'https://relayer.mainnet.zama.org',
18
19
  gateway: {
@@ -1,5 +1,4 @@
1
1
  import type { FhevmChain } from '../../types/fhevmChain.js';
2
- import type { ChecksummedAddress } from '../../types/primitives.js';
3
2
  import { defineFhevmChain } from '../utils.js';
4
3
 
5
4
  export const sepolia: FhevmChain = /*#__PURE__*/ defineFhevmChain({
@@ -7,24 +6,25 @@ export const sepolia: FhevmChain = /*#__PURE__*/ defineFhevmChain({
7
6
  fhevm: {
8
7
  contracts: {
9
8
  acl: {
10
- address: '0xf0Ffdc93b7E186bC2f8CB3dAA75D86d1930A433D' as ChecksummedAddress,
9
+ address: '0xf0Ffdc93b7E186bC2f8CB3dAA75D86d1930A433D',
11
10
  },
12
11
  inputVerifier: {
13
- address: '0xBBC1fFCdc7C316aAAd72E807D9b0272BE8F84DA0' as ChecksummedAddress,
12
+ address: '0xBBC1fFCdc7C316aAAd72E807D9b0272BE8F84DA0',
14
13
  },
15
14
  kmsVerifier: {
16
- address: '0xbE0E383937d564D7FF0BC3b46c51f0bF8d5C311A' as ChecksummedAddress,
15
+ address: '0xbE0E383937d564D7FF0BC3b46c51f0bF8d5C311A',
17
16
  },
17
+ protocolConfig: undefined, // To be filled
18
18
  },
19
19
  relayerUrl: 'https://relayer.testnet.zama.org',
20
20
  gateway: {
21
21
  id: 10_901,
22
22
  contracts: {
23
23
  decryption: {
24
- address: '0x5D8BD78e2ea6bbE41f26dFe9fdaEAa349e077478' as ChecksummedAddress,
24
+ address: '0x5D8BD78e2ea6bbE41f26dFe9fdaEAa349e077478',
25
25
  },
26
26
  inputVerification: {
27
- address: '0x483b9dE06E4E4C7D35CCf5837A1668487406D955' as ChecksummedAddress,
27
+ address: '0x483b9dE06E4E4C7D35CCf5837A1668487406D955',
28
28
  },
29
29
  },
30
30
  },
@@ -50,6 +50,7 @@ import {
50
50
  type DecryptPublicValuesWithSignaturesParameters,
51
51
  type DecryptPublicValuesWithSignaturesReturnType,
52
52
  } from '../../actions/base/decryptPublicValuesWithSignatures.js';
53
+ import { ensureResolvedProtocolVersion } from '../../runtime/resolveFhevmVersions-p.js';
53
54
 
54
55
  ////////////////////////////////////////////////////////////////////////////////
55
56
 
@@ -193,11 +194,17 @@ function _baseActions(fhevm: Fhevm<FhevmChain>): BaseActions {
193
194
 
194
195
  ////////////////////////////////////////////////////////////////////////////////
195
196
 
197
+ async function _initBase(fhevm: FhevmBase<FhevmChain>): Promise<void> {
198
+ await ensureResolvedProtocolVersion(fhevm);
199
+ }
200
+
201
+ ////////////////////////////////////////////////////////////////////////////////
202
+
196
203
  export function baseActions(fhevm: FhevmBase<FhevmChain>): FhevmExtension<BaseActions> {
197
204
  assertIsFhevmBaseClient(fhevm);
198
205
  return {
199
206
  actions: _baseActions(fhevm),
200
207
  runtime: fhevm.runtime,
201
- // no init required, no prefetch of the FheEncryptionKey. This is the whole purpose of the fetchFheEncryptionKeyBytes action
208
+ init: _initBase,
202
209
  };
203
210
  }
@@ -0,0 +1,18 @@
1
+ import type { FhevmBase } from '../../types/coreFhevmClient.js';
2
+ import type { FhevmChain } from '../../types/fhevmChain.js';
3
+ import { asFhevmClientWith, setResolvedTkmsVersion } from '../../runtime/CoreFhevm-p.js';
4
+ import { ensureResolvedProtocolVersion, resolveFhevmTkmsVersion } from '../../runtime/resolveFhevmVersions-p.js';
5
+
6
+ ////////////////////////////////////////////////////////////////////////////////
7
+
8
+ export async function _initDecrypt(fhevm: FhevmBase<FhevmChain>): Promise<void> {
9
+ const f = asFhevmClientWith(fhevm, 'decrypt');
10
+
11
+ await ensureResolvedProtocolVersion(f);
12
+
13
+ const tkmsVersion = await resolveFhevmTkmsVersion(f);
14
+
15
+ await f.runtime.decrypt.initTkmsModule({ tkmsVersion });
16
+
17
+ setResolvedTkmsVersion(f, tkmsVersion);
18
+ }
@@ -1,10 +1,10 @@
1
- import type { Fhevm, FhevmBase, FhevmExtension, OptionalNativeClient } from '../../types/coreFhevmClient.js';
2
- import type { FhevmRuntime, WithDecrypt } from '../../types/coreFhevmRuntime.js';
1
+ import type { Fhevm, FhevmBase, FhevmExtension, WithTkmsVersion } from '../../types/coreFhevmClient.js';
2
+ import type { WithDecrypt } from '../../types/coreFhevmRuntime.js';
3
3
  import type { FhevmChain } from '../../types/fhevmChain.js';
4
4
  import type { GenerateTransportKeyPairReturnType } from '../../actions/decrypt/generateTransportKeyPair.js';
5
5
  import type { DecryptModuleFactory } from '../../modules/decrypt/types.js';
6
- import { asFhevmClientWith, assertIsFhevmClientWith } from '../../runtime/CoreFhevm-p.js';
7
- import { generateTransportKeyPair } from '../../kms/TransportKeyPair-p.js';
6
+ import { assertIsFhevmClientWith } from '../../runtime/CoreFhevm-p.js';
7
+ import { generateTransportKeyPair } from '../../actions/decrypt/generateTransportKeyPair.js';
8
8
  import {
9
9
  decryptValue,
10
10
  type DecryptValueParameters,
@@ -20,22 +20,24 @@ import {
20
20
  type DecryptValuesFromPairsParameters,
21
21
  type DecryptValuesFromPairsReturnType,
22
22
  } from '../../actions/decrypt/decryptValuesFromPairs.js';
23
+ import { _initDecrypt } from './decrypt-p.js';
23
24
 
24
25
  ////////////////////////////////////////////////////////////////////////////////
25
26
 
26
- export type DecryptActions = {
27
+ type DecryptActionMethods = {
27
28
  readonly decryptValue: (parameters: DecryptValueParameters) => Promise<DecryptValueReturnType>;
28
29
  readonly decryptValues: (parameters: DecryptValuesParameters) => Promise<DecryptValuesReturnType>;
29
-
30
30
  readonly decryptValuesFromPairs: (
31
31
  parameters: DecryptValuesFromPairsParameters,
32
32
  ) => Promise<DecryptValuesFromPairsReturnType>;
33
33
  readonly generateTransportKeyPair: () => Promise<GenerateTransportKeyPairReturnType>;
34
34
  };
35
35
 
36
+ export type DecryptActions = DecryptActionMethods & WithTkmsVersion;
37
+
36
38
  ////////////////////////////////////////////////////////////////////////////////
37
39
 
38
- function _decryptActions(fhevm: Fhevm<FhevmChain, WithDecrypt>): DecryptActions {
40
+ function _decryptActions(fhevm: Fhevm<FhevmChain, WithDecrypt>): DecryptActionMethods {
39
41
  // Preserve the original action overloads on the decorated client API.
40
42
  // Runtime behavior is unchanged: this is a direct pass-through wrapper.
41
43
  return {
@@ -48,13 +50,6 @@ function _decryptActions(fhevm: Fhevm<FhevmChain, WithDecrypt>): DecryptActions
48
50
 
49
51
  ////////////////////////////////////////////////////////////////////////////////
50
52
 
51
- function _initDecrypt(fhevm: FhevmBase<FhevmChain | undefined, FhevmRuntime, OptionalNativeClient>): Promise<void> {
52
- const f = asFhevmClientWith(fhevm, 'decrypt');
53
- return f.runtime.decrypt.initTkmsModule();
54
- }
55
-
56
- ////////////////////////////////////////////////////////////////////////////////
57
-
58
53
  export function decryptActionsWithModule(
59
54
  fhevm: FhevmBase<FhevmChain>,
60
55
  factory: DecryptModuleFactory,
@@ -62,7 +57,7 @@ export function decryptActionsWithModule(
62
57
  const runtime = fhevm.runtime.extend(factory);
63
58
  assertIsFhevmClientWith(fhevm, 'decrypt');
64
59
  return {
65
- actions: _decryptActions(fhevm),
60
+ actions: _decryptActions(fhevm) as DecryptActions,
66
61
  runtime,
67
62
  init: _initDecrypt,
68
63
  };
@@ -1,18 +1,23 @@
1
- import type { FhevmBase, OptionalNativeClient } from '../../types/coreFhevmClient.js';
2
- import type { FhevmRuntime } from '../../types/coreFhevmRuntime.js';
1
+ import type { FhevmBase } from '../../types/coreFhevmClient.js';
3
2
  import type { FhevmChain } from '../../types/fhevmChain.js';
4
- import { asFhevmClientWith } from '../../runtime/CoreFhevm-p.js';
3
+ import { asFhevmClientWith, setResolvedTfheVersion } from '../../runtime/CoreFhevm-p.js';
5
4
  import { fetchFheEncryptionKeyBytes } from '../../key/fetchFheEncryptionKeyBytes.js';
5
+ import { ensureResolvedProtocolVersion, resolveFhevmTfheVersion } from '../../runtime/resolveFhevmVersions-p.js';
6
6
 
7
7
  ////////////////////////////////////////////////////////////////////////////////
8
8
 
9
- export async function _initEncrypt(
10
- fhevm: FhevmBase<FhevmChain | undefined, FhevmRuntime, OptionalNativeClient>,
11
- ): Promise<void> {
9
+ export async function _initEncrypt(fhevm: FhevmBase<FhevmChain>): Promise<void> {
12
10
  const f = asFhevmClientWith(fhevm, 'encrypt');
11
+
12
+ await ensureResolvedProtocolVersion(fhevm);
13
+
14
+ const tfheVersion = await resolveFhevmTfheVersion(f);
15
+
13
16
  await Promise.all([
14
17
  // Prefetch the global FheEncryptionKey in bytes format
15
18
  fetchFheEncryptionKeyBytes(f, {}),
16
- f.runtime.encrypt.initTfheModule(),
19
+ f.runtime.encrypt.initTfheModule({ tfheVersion }),
17
20
  ]);
21
+
22
+ setResolvedTfheVersion(f, tfheVersion);
18
23
  }
@@ -1,4 +1,4 @@
1
- import type { Fhevm, FhevmBase, FhevmExtension } from '../../types/coreFhevmClient.js';
1
+ import type { Fhevm, FhevmBase, FhevmExtension, WithTfheVersion } from '../../types/coreFhevmClient.js';
2
2
  import type { WithEncrypt } from '../../types/coreFhevmRuntime.js';
3
3
  import type { FhevmChain } from '../../types/fhevmChain.js';
4
4
  import type { EncryptModuleFactory } from '../../modules/encrypt/types.js';
@@ -17,14 +17,16 @@ import { _initEncrypt } from './encrypt-p.js';
17
17
 
18
18
  ////////////////////////////////////////////////////////////////////////////////
19
19
 
20
- export type EncryptActions = {
20
+ type EncryptActionMethods = {
21
21
  readonly encryptValue: (parameters: EncryptValueParameters) => Promise<EncryptValueReturnType>;
22
22
  readonly encryptValues: (parameters: EncryptValuesParameters) => Promise<EncryptValuesReturnType>;
23
23
  };
24
24
 
25
+ export type EncryptActions = EncryptActionMethods & WithTfheVersion;
26
+
25
27
  ////////////////////////////////////////////////////////////////////////////////
26
28
 
27
- function _encryptActions(fhevm: Fhevm<FhevmChain, WithEncrypt>): EncryptActions {
29
+ function _encryptActions(fhevm: Fhevm<FhevmChain, WithEncrypt>): EncryptActionMethods {
28
30
  return {
29
31
  encryptValue: (parameters) => encryptValue(fhevm, parameters),
30
32
  encryptValues: (parameters) => encryptValues(fhevm, parameters),
@@ -40,7 +42,7 @@ export function encryptActionsWithModule(
40
42
  const runtime = fhevm.runtime.extend(factory);
41
43
  assertIsFhevmClientWith(fhevm, 'encrypt');
42
44
  return {
43
- actions: _encryptActions(fhevm),
45
+ actions: _encryptActions(fhevm) as EncryptActions,
44
46
  runtime,
45
47
  init: _initEncrypt,
46
48
  };
@@ -13,6 +13,7 @@ import type { ErrorMetadataParams } from '../base/errors/ErrorBase.js';
13
13
  import type { EncryptionBits, FheTypeId } from '../types/fheType.js';
14
14
  import type { ParseTFHEProvenCompactCiphertextListModuleFunction } from '../modules/encrypt/types.js';
15
15
  import type { InputHandle } from '../types/encryptedTypes-p.js';
16
+ import type { TfheVersion } from '../../wasm/tfhe/TfheApi.js';
16
17
  import {
17
18
  addressToChecksummedAddress,
18
19
  assertIsAddress,
@@ -230,7 +231,10 @@ export async function toZkProof(
230
231
  zkProofLike: ZkProofLike,
231
232
  extraData: BytesHex,
232
233
  options?: {
233
- readonly zkProofParser?: ParseTFHEProvenCompactCiphertextListModuleFunction;
234
+ readonly zkProofParser?: {
235
+ readonly parserFn: ParseTFHEProvenCompactCiphertextListModuleFunction;
236
+ readonly tfheVersion: TfheVersion;
237
+ };
234
238
  readonly copy?: boolean;
235
239
  },
236
240
  ): Promise<ZkProof> {
@@ -290,7 +294,10 @@ export async function zkProofToExternalEncryptedValues(
290
294
  zkProofLike: ZkProofLike,
291
295
  options?: {
292
296
  readonly version?: number;
293
- readonly zkProofParser?: ParseTFHEProvenCompactCiphertextListModuleFunction;
297
+ readonly zkProofParser?: {
298
+ readonly parserFn: ParseTFHEProvenCompactCiphertextListModuleFunction;
299
+ readonly tfheVersion: TfheVersion;
300
+ };
294
301
  },
295
302
  ): Promise<readonly InputHandle[]> {
296
303
  if (zkProofLike instanceof ZkProofImpl) {
@@ -397,7 +404,10 @@ function _zkProofToInputHandles(
397
404
  async function _getOrParseEncryptionBits(
398
405
  encryptionBits: readonly number[] | undefined,
399
406
  ciphertextWithZkProof: Uint8Array | string,
400
- zkProofParser?: ParseTFHEProvenCompactCiphertextListModuleFunction,
407
+ zkProofParser?: {
408
+ readonly parserFn: ParseTFHEProvenCompactCiphertextListModuleFunction;
409
+ readonly tfheVersion: TfheVersion;
410
+ },
401
411
  ): Promise<readonly EncryptionBits[]> {
402
412
  // Case 1: encryptionBits provided — validate, and verify against parsed if possible
403
413
  if (encryptionBits != null) {
@@ -406,8 +416,9 @@ async function _getOrParseEncryptionBits(
406
416
  });
407
417
 
408
418
  if (zkProofParser != null) {
409
- const parsed = await zkProofParser.parseTFHEProvenCompactCiphertextList({
419
+ const parsed = await zkProofParser.parserFn.parseTFHEProvenCompactCiphertextList({
410
420
  ciphertextWithZkProof: ciphertextWithZkProof,
421
+ tfheVersion: zkProofParser.tfheVersion,
411
422
  });
412
423
  _assertEncryptionBitsMatch(parsed.encryptionBits, encryptionBits);
413
424
  }
@@ -417,8 +428,9 @@ async function _getOrParseEncryptionBits(
417
428
 
418
429
  // Case 2: encryptionBits not provided — extract if parse function available
419
430
  if (zkProofParser != null) {
420
- const parsed = await zkProofParser.parseTFHEProvenCompactCiphertextList({
431
+ const parsed = await zkProofParser.parserFn.parseTFHEProvenCompactCiphertextList({
421
432
  ciphertextWithZkProof: ciphertextWithZkProof,
433
+ tfheVersion: zkProofParser.tfheVersion,
422
434
  });
423
435
  return parsed.encryptionBits;
424
436
  }