@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
@@ -1,12 +1,16 @@
1
1
  import type { FhevmRuntime, FhevmRuntimeConfig } from '../../../types/coreFhevmRuntime.js';
2
- import type { GetTfheModuleInfoReturnType, TfheModuleInfo } from '../types.js';
2
+ import type {
3
+ GetTfheModuleInfoParameters,
4
+ GetTfheModuleInfoReturnType,
5
+ InitTfheModuleParameters,
6
+ TfheModuleInfo,
7
+ } from '../types.js';
3
8
  import type { TfheLibApi } from '../../../../wasm/tfhe/TfheApi.js';
4
9
  import type { TfheAssetMetadata, TfheVersion } from '../../../../wasm/tfhe/loadTfheLib.js';
5
10
  import { isomorphicCompileVerifiedWasm, isomorphicCompileWasmFromBase64 } from '../../../base/wasm.js';
6
11
  import { isBlobWorkerSupported, isBrowserLike } from '../../../base/isomorphicWorker.js';
7
12
  import { threads } from 'wasm-feature-detect';
8
13
  import { assertIsFhevmRuntime } from '../../../runtime/CoreFhevmRuntime-p.js';
9
- import { resolveTfheModuleVersion } from '../../../../wasm/tfheModuleVersion-p.js';
10
14
  // Pure JS file (not compiled by tsc) — provides cross-platform base URL
11
15
  // for resolving WASM paths. Uses import.meta.url in ESM, __filename in CJS.
12
16
  import { wasmBaseUrl } from '../../../../wasm/wasmBaseUrl.js';
@@ -23,7 +27,7 @@ const nodeDefaultLocateFile = (file: string): URL => {
23
27
 
24
28
  type TfheInitInput = RequestInfo | URL | Response | BufferSource | WebAssembly.Module;
25
29
 
26
- type InitTfheModuleParameters = {
30
+ type TfheLibInitAsyncParameters = {
27
31
  readonly module_or_path: TfheInitInput | Promise<TfheInitInput>;
28
32
  readonly memory?: WebAssembly.Memory;
29
33
  readonly thread_stack_size?: number;
@@ -62,29 +66,37 @@ type ResolvedTfheModuleConfig = {
62
66
  readonly supportsThreads: boolean | undefined;
63
67
  };
64
68
 
65
- let resolvedTfheModuleConfig: ResolvedTfheModuleConfig | undefined = undefined;
66
- let resolvingTfheModuleConfigPromise: Promise<ResolvedTfheModuleConfig> | undefined;
69
+ const resolvedTfheModuleConfigByVersion = new Map<TfheVersion, ResolvedTfheModuleConfig>();
70
+ const resolvingTfheModuleConfigPromiseByVersion = new Map<TfheVersion, Promise<ResolvedTfheModuleConfig>>();
67
71
 
68
72
  /**
69
73
  * @internal
70
- * Returns the existing resolved config, or resolves it from the runtime config.
74
+ * Returns the existing resolved config for a TFHE version, or resolves it from
75
+ * the runtime config.
71
76
  */
72
- async function _getOrResolveTfheModuleConfig(runtime: FhevmRuntime): Promise<ResolvedTfheModuleConfig> {
77
+ async function _getOrResolveTfheModuleConfig(
78
+ runtime: FhevmRuntime,
79
+ tfheVersion: TfheVersion,
80
+ ): Promise<ResolvedTfheModuleConfig> {
81
+ const resolvedTfheModuleConfig = resolvedTfheModuleConfigByVersion.get(tfheVersion);
73
82
  if (resolvedTfheModuleConfig !== undefined) {
74
83
  return resolvedTfheModuleConfig;
75
84
  }
76
85
 
77
- const version = resolveTfheModuleVersion(runtime.config);
78
-
79
- resolvingTfheModuleConfigPromise ??= _resolveTfheModuleConfig(runtime.config, version)
80
- .then((cfg) => {
81
- resolvedTfheModuleConfig = cfg;
82
- return cfg;
83
- })
84
- .catch((error: unknown) => {
85
- resolvingTfheModuleConfigPromise = undefined;
86
- throw error;
87
- });
86
+ let resolvingTfheModuleConfigPromise = resolvingTfheModuleConfigPromiseByVersion.get(tfheVersion);
87
+ if (resolvingTfheModuleConfigPromise === undefined) {
88
+ resolvingTfheModuleConfigPromise = _resolveTfheModuleConfig(runtime.config, tfheVersion)
89
+ .then((cfg) => {
90
+ resolvedTfheModuleConfigByVersion.set(tfheVersion, cfg);
91
+ return cfg;
92
+ })
93
+ .catch((error: unknown) => {
94
+ resolvingTfheModuleConfigPromiseByVersion.delete(tfheVersion);
95
+ throw error;
96
+ });
97
+
98
+ resolvingTfheModuleConfigPromiseByVersion.set(tfheVersion, resolvingTfheModuleConfigPromise);
99
+ }
88
100
 
89
101
  return resolvingTfheModuleConfigPromise;
90
102
  }
@@ -187,30 +199,54 @@ async function _resolveTfheModuleConfig(
187
199
  // initTfheModule
188
200
  ////////////////////////////////////////////////////////////////////////////////
189
201
 
190
- let cachedTfheModulePromise: Promise<TfheLibApi> | undefined;
191
- let ownerUid: string | undefined = undefined;
202
+ const ownerUidByVersion = new Map<TfheVersion, string>();
203
+ const cachedTfheModulePromiseByVersion = new Map<TfheVersion, Promise<TfheLibApi>>();
204
+ const moduleInfoByVersion = new Map<TfheVersion, TfheModuleInfo>();
205
+
206
+ ////////////////////////////////////////////////////////////////////////////////
207
+ // Version-tagged native wrappers
208
+ ////////////////////////////////////////////////////////////////////////////////
209
+
210
+ export const TFHE_VERSION_TAG: unique symbol = Symbol('TFHE.version');
211
+
212
+ export type VersionTaggedTfheNative = {
213
+ readonly [TFHE_VERSION_TAG]: TfheVersion;
214
+ };
215
+
216
+ export function getTaggedTfheVersion(value: VersionTaggedTfheNative): TfheVersion {
217
+ return value[TFHE_VERSION_TAG];
218
+ }
219
+
220
+ export function assertTaggedTfheVersion(value: VersionTaggedTfheNative, expectedVersion: TfheVersion): void {
221
+ const actualVersion = getTaggedTfheVersion(value);
222
+ if (actualVersion !== expectedVersion) {
223
+ throw new Error(`Unexpected TFHE native wrapper version '${actualVersion}', expected '${expectedVersion}'.`);
224
+ }
225
+ }
192
226
 
193
227
  /**
194
228
  * Initializes the TFHE module and returns the loaded lib bindings.
195
- * Idempotent: subsequent calls return the same cached lib instance.
229
+ * Idempotent per TFHE version: subsequent calls return the same cached lib instance.
196
230
  */
197
- export async function initTfheModule(runtime: FhevmRuntime): Promise<TfheLibApi> {
231
+ export async function initTfheModule(runtime: FhevmRuntime, parameters: InitTfheModuleParameters): Promise<TfheLibApi> {
198
232
  assertIsFhevmRuntime(runtime, {});
199
233
 
234
+ const ownerUid = ownerUidByVersion.get(parameters.tfheVersion);
200
235
  if (ownerUid !== undefined && runtime.uid !== ownerUid) {
201
236
  throw new Error(
202
237
  `Encrypt WASM module is already owned by runtime '${ownerUid}' and cannot be shared with runtime '${runtime.uid}'`,
203
238
  );
204
239
  }
205
240
 
206
- ownerUid = runtime.uid;
241
+ ownerUidByVersion.set(parameters.tfheVersion, runtime.uid);
207
242
 
208
243
  // Cache the whole initialization promise before the first await. Several
209
244
  // clients may call initTfheModule concurrently during startup; if the promise
210
245
  // were assigned after resolving the config, each caller could enter
211
246
  // _initTfheModule and try to start the global TFHE worker pool independently.
212
- // The worker pool is process-wide and startWorkers() is intentionally
213
- // one-shot, so every concurrent caller must await this same promise.
247
+ // Each TFHE version has its own JS glue module and worker pool, and each
248
+ // version's startWorkers() is intentionally one-shot, so concurrent callers
249
+ // for the same version must await the same promise.
214
250
  //
215
251
  // Retry is not supported:
216
252
  // -----------------------
@@ -220,20 +256,20 @@ export async function initTfheModule(runtime: FhevmRuntime): Promise<TfheLibApi>
220
256
  // original initialization error instead of retrying against half-initialized
221
257
  // state and producing secondary errors such as "Already started".
222
258
 
223
- // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
259
+ let cachedTfheModulePromise = cachedTfheModulePromiseByVersion.get(parameters.tfheVersion);
224
260
  if (cachedTfheModulePromise === undefined) {
225
261
  cachedTfheModulePromise = (async () => {
226
262
  // resolve is async
227
- const cfg = await _getOrResolveTfheModuleConfig(runtime);
263
+ const cfg = await _getOrResolveTfheModuleConfig(runtime, parameters.tfheVersion);
228
264
  return await _initTfheModule(cfg);
229
265
  })();
266
+
267
+ cachedTfheModulePromiseByVersion.set(parameters.tfheVersion, cachedTfheModulePromise);
230
268
  }
231
269
 
232
270
  return cachedTfheModulePromise;
233
271
  }
234
272
 
235
- let moduleInfo: TfheModuleInfo | undefined = undefined;
236
-
237
273
  async function _initTfheModule(cfg: ResolvedTfheModuleConfig): Promise<TfheLibApi> {
238
274
  const tfheLib = await loadTfheLib(cfg.version);
239
275
 
@@ -248,7 +284,7 @@ async function _initTfheModule(cfg: ResolvedTfheModuleConfig): Promise<TfheLibAp
248
284
  wasmModule = await isomorphicCompileWasmFromBase64(tfheWasmBase64, tfheWasmBase64CompressionFormat);
249
285
  }
250
286
 
251
- const input: InitTfheModuleParameters = { module_or_path: wasmModule };
287
+ const input: TfheLibInitAsyncParameters = { module_or_path: wasmModule };
252
288
 
253
289
  // 2. Load and instantiate the TFHE WASM binary
254
290
  await tfheLib.initAsync(input);
@@ -263,15 +299,24 @@ async function _initTfheModule(cfg: ResolvedTfheModuleConfig): Promise<TfheLibAp
263
299
  }
264
300
 
265
301
  const wasmInfo = tfheLib.getWasmInfo();
302
+ const memory = { byteLength: 0, pages: 0 };
303
+ if (wasmInfo.memory !== undefined) {
304
+ memory.byteLength = wasmInfo.memory.byteLength;
305
+ memory.pages = wasmInfo.memory.pages;
306
+ }
266
307
 
267
- moduleInfo = Object.freeze({
268
- wasmUrl: cfg.wasm.url ? new URL(cfg.wasm.url) : undefined,
269
- version: wasmInfo.version,
270
- name: wasmInfo.name,
271
- workerUrl: cfg.worker.url ? new URL(cfg.worker.url) : undefined,
272
- numberOfThreads: cfg.singleThread ? 0 : cfg.numberOfThreads,
273
- threadsAvailable: cfg.supportsThreads,
274
- });
308
+ moduleInfoByVersion.set(
309
+ cfg.version,
310
+ Object.freeze({
311
+ wasmUrl: cfg.wasm.url ? new URL(cfg.wasm.url) : undefined,
312
+ version: wasmInfo.version,
313
+ name: wasmInfo.name,
314
+ workerUrl: cfg.worker.url ? new URL(cfg.worker.url) : undefined,
315
+ numberOfThreads: cfg.singleThread ? 0 : cfg.numberOfThreads,
316
+ threadsAvailable: cfg.supportsThreads,
317
+ memory,
318
+ }),
319
+ );
275
320
 
276
321
  return tfheLib;
277
322
  }
@@ -280,6 +325,20 @@ async function _initTfheModule(cfg: ResolvedTfheModuleConfig): Promise<TfheLibAp
280
325
  // getTfheModuleInfo
281
326
  ////////////////////////////////////////////////////////////////////////////////
282
327
 
283
- export function getTfheModuleInfo(): GetTfheModuleInfoReturnType {
284
- return moduleInfo;
328
+ export async function getTfheModuleInfo(parameters: GetTfheModuleInfoParameters): Promise<GetTfheModuleInfoReturnType> {
329
+ const tfheLib = await loadTfheLib(parameters.tfheVersion);
330
+ const stored = moduleInfoByVersion.get(parameters.tfheVersion);
331
+ if (stored === undefined) {
332
+ throw new Error(`getTfheModuleInfo: no module info recorded for version "${parameters.tfheVersion}"`);
333
+ }
334
+ const memory: { byteLength: number; pages: number } = {
335
+ byteLength: stored.memory.byteLength,
336
+ pages: stored.memory.pages,
337
+ };
338
+ const wasmInfo = tfheLib.getWasmInfo();
339
+ if (wasmInfo.memory !== undefined) {
340
+ memory.byteLength = wasmInfo.memory.byteLength;
341
+ memory.pages = wasmInfo.memory.pages;
342
+ }
343
+ return { ...stored, memory };
285
344
  }
@@ -10,6 +10,7 @@ import type {
10
10
  } from '../../types/fheEncryptionKey.js';
11
11
  import type { Prettify } from '../../types/utils.js';
12
12
  import type { FhevmRuntime } from '../../types/coreFhevmRuntime.js';
13
+ import type { TfheVersion } from '../../../wasm/tfhe/TfheApi.js';
13
14
 
14
15
  ////////////////////////////////////////////////////////////////////////////////
15
16
  //
@@ -39,8 +40,12 @@ Worker creation (how to spawn thread pool workers):
39
40
  // initTfheModuleFunction
40
41
  ////////////////////////////////////////////////////////////////////////////////
41
42
 
43
+ export type InitTfheModuleParameters = {
44
+ readonly tfheVersion: TfheVersion;
45
+ };
46
+
42
47
  export type InitTfheModuleFunction = {
43
- initTfheModule(): Promise<void>;
48
+ initTfheModule(parameters: InitTfheModuleParameters): Promise<void>;
44
49
  };
45
50
 
46
51
  ////////////////////////////////////////////////////////////////////////////////
@@ -73,6 +78,25 @@ export type TfheModuleInfo = {
73
78
  * - `false` — multi-threading was requested but unavailable; fell back to single-threaded.
74
79
  */
75
80
  readonly threadsAvailable: boolean | undefined;
81
+
82
+ /**
83
+ * Current size of the TFHE WASM linear memory.
84
+ * This is the size of the underlying `WebAssembly.Memory` buffer, not live heap usage.
85
+ */
86
+ readonly memory: {
87
+ /**
88
+ * Current memory buffer size in bytes.
89
+ */
90
+ readonly byteLength: number;
91
+ /**
92
+ * Current memory buffer size in 64 KiB WASM pages.
93
+ */
94
+ readonly pages: number;
95
+ };
96
+ };
97
+
98
+ export type GetTfheModuleInfoParameters = {
99
+ readonly tfheVersion: TfheVersion;
76
100
  };
77
101
 
78
102
  export type GetTfheModuleInfoReturnType = TfheModuleInfo | undefined;
@@ -82,7 +106,7 @@ export type GetTfheModuleInfoFunction = {
82
106
  * Returns {@link TfheModuleInfo} when the module is initialized,
83
107
  * or `undefined` if the module has not completed initialization.
84
108
  */
85
- getTfheModuleInfo(): GetTfheModuleInfoReturnType;
109
+ getTfheModuleInfo(parameters: GetTfheModuleInfoParameters): Promise<GetTfheModuleInfoReturnType>;
86
110
  };
87
111
 
88
112
  ////////////////////////////////////////////////////////////////////////////////
@@ -91,6 +115,7 @@ export type GetTfheModuleInfoFunction = {
91
115
 
92
116
  export type ParseTFHEProvenCompactCiphertextListParameters = {
93
117
  readonly ciphertextWithZkProof: Uint8Array | string;
118
+ readonly tfheVersion: TfheVersion;
94
119
  };
95
120
 
96
121
  export type ParseTFHEProvenCompactCiphertextListReturnType = {
@@ -113,11 +138,13 @@ export type BuildWithProofPackedParameters = {
113
138
  readonly typedValues: TypedValue[];
114
139
  readonly metaData: Uint8Array;
115
140
  readonly extraData: BytesHex;
141
+ readonly tfheVersion: TfheVersion;
116
142
  };
117
143
 
118
144
  export type BuildWithProofPackedReturnType = {
119
145
  readonly ciphertextWithZKProofBytes: Uint8Array;
120
146
  readonly extraData: BytesHex;
147
+ readonly tfheVersion: TfheVersion;
121
148
  };
122
149
 
123
150
  export type BuildWithProofPackedModuleFunction = {
@@ -130,6 +157,7 @@ export type BuildWithProofPackedModuleFunction = {
130
157
 
131
158
  export type SerializeFheEncryptionKeyParameters = {
132
159
  readonly fheEncryptionKey: FheEncryptionKeyWasm;
160
+ readonly tfheVersion: TfheVersion;
133
161
  };
134
162
 
135
163
  export type SerializeFheEncryptionKeyReturnType = FheEncryptionKeyBytes;
@@ -146,6 +174,7 @@ export type SerializeFheEncryptionKeyModuleFunction = {
146
174
 
147
175
  export type SerializeFheEncryptionPublicKeyParameters = {
148
176
  readonly publicKey: FheEncryptionPublicKey;
177
+ readonly tfheVersion: TfheVersion;
149
178
  };
150
179
 
151
180
  export type SerializeFheEncryptionPublicKeyReturnType = FheEncryptionPublicKeyBytes;
@@ -162,6 +191,7 @@ export type SerializeFheEncryptionPublicKeyModuleFunction = {
162
191
 
163
192
  export type SerializeFheEncryptionCrsParameters = {
164
193
  readonly crs: FheEncryptionCrs;
194
+ readonly tfheVersion: TfheVersion;
165
195
  };
166
196
 
167
197
  export type SerializeFheEncryptionCrsReturnType = FheEncryptionCrsBytes;
@@ -178,6 +208,7 @@ export type SerializeFheEncryptionCrsModuleFunction = {
178
208
 
179
209
  export type DeserializeFheEncryptionPublicKeyParameters = {
180
210
  readonly publicKeyBytes: FheEncryptionPublicKeyBytes;
211
+ readonly tfheVersion: TfheVersion;
181
212
  };
182
213
 
183
214
  export type DeserializeFheEncryptionPublicKeyReturnType = FheEncryptionPublicKey;
@@ -194,6 +225,7 @@ export type DeserializeFheEncryptionPublicKeyModuleFunction = {
194
225
 
195
226
  export type DeserializeFheEncryptionCrsParameters = {
196
227
  readonly crsBytes: FheEncryptionCrsBytes;
228
+ readonly tfheVersion: TfheVersion;
197
229
  };
198
230
 
199
231
  export type DeserializeFheEncryptionCrsReturnType = FheEncryptionCrs;
@@ -7,7 +7,7 @@ import type {
7
7
  RelayerClientWithRuntime,
8
8
  } from '../types.js';
9
9
  import { remove0x } from '../../../base/string.js';
10
- import { asUint32BigInt, parseUintBigIntString, randomUniqueUints } from '../../../base/uint.js';
10
+ import { asUint32BigInt, tryParseUintBigIntString, randomUniqueUints } from '../../../base/uint.js';
11
11
  import { getTrustedClient } from '../../../runtime/CoreFhevm-p.js';
12
12
  import { userDecryptResultToKmsSigncryptedShares } from '../utils.js';
13
13
  import { getKmsSignersPrivateKeyMap } from './signers.js';
@@ -139,7 +139,7 @@ export async function fetchDelegatedUserDecrypt(
139
139
  ////////////////////////////////////////////////////////////////////////////////
140
140
 
141
141
  function _parseUintBigIntString(label: string, value: string): bigint {
142
- const bn = parseUintBigIntString(value);
142
+ const bn = tryParseUintBigIntString(value);
143
143
  if (bn === undefined) {
144
144
  throw new Error(`${label} is not a valid uint string, got ${JSON.stringify(value)}`);
145
145
  }
@@ -3,7 +3,7 @@ import type { FetchUserDecryptResultItem } from '../../../types/relayer.js';
3
3
  import type { CleartextEthereumModule } from '../../ethereum/types-ct.js';
4
4
  import type { FetchUserDecryptParameters, FetchUserDecryptReturnType, RelayerClientWithRuntime } from '../types.js';
5
5
  import { remove0x } from '../../../base/string.js';
6
- import { asUint32BigInt, parseUintBigIntString, randomUniqueUints } from '../../../base/uint.js';
6
+ import { asUint32BigInt, tryParseUintBigIntString, randomUniqueUints } from '../../../base/uint.js';
7
7
  import { getTrustedClient } from '../../../runtime/CoreFhevm-p.js';
8
8
  import { userDecryptResultToKmsSigncryptedShares } from '../utils.js';
9
9
  import { getKmsSignersPrivateKeyMap } from './signers.js';
@@ -133,7 +133,7 @@ export async function fetchUserDecrypt(
133
133
  ////////////////////////////////////////////////////////////////////////////////
134
134
 
135
135
  function _parseUintBigIntString(label: string, value: string): bigint {
136
- const bn = parseUintBigIntString(value);
136
+ const bn = tryParseUintBigIntString(value);
137
137
  if (bn === undefined) {
138
138
  throw new Error(`${label} is not a valid uint string, got ${JSON.stringify(value)}`);
139
139
  }
@@ -37,7 +37,7 @@ import { sdkName, version } from '../../../_version.js';
37
37
  import { setAuth } from '../../../base/auth.js';
38
38
  import { InvalidPropertyError } from '../../../base/errors/InvalidPropertyError.js';
39
39
  import { assertNever } from '../../../base/errors/utils.js';
40
- import { formatFetchErrorMetaMessages } from '../../../base/fetch.js';
40
+ import { formatFetchErrorMetaMessages, normalizeHeaders } from '../../../base/fetch.js';
41
41
  import { isNonEmptyString, safeJSONstringify } from '../../../base/string.js';
42
42
  import { isUint } from '../../../base/uint.js';
43
43
  import { RelayerAbortError } from '../../../errors/RelayerAbortError.js';
@@ -65,6 +65,7 @@ import {
65
65
  assertIsRelayerPostResponse202Queued,
66
66
  } from './guards/RelayerResponseQueued.js';
67
67
  import { assertIsRelayerUserDecryptSucceeded } from './guards/RelayerUserDecryptSucceeded.js';
68
+ import { readErrorMessage } from './readErrorMessage.js';
68
69
 
69
70
  /*
70
71
  Actions:
@@ -139,6 +140,7 @@ export class RelayerAsyncRequest {
139
140
  private readonly _url: string;
140
141
  private readonly _payload: Record<string, unknown>;
141
142
  private readonly _fhevmAuth: Auth | undefined;
143
+ private readonly _customHeaders: Record<string, string> | undefined;
142
144
  private _retryAfterTimeoutPromiseFuncReject?: ((reason?: unknown) => void) | undefined;
143
145
  private readonly _onProgress?:
144
146
  | ((
@@ -206,6 +208,7 @@ export class RelayerAsyncRequest {
206
208
  this._payload = params.payload;
207
209
  this._debug = params.options?.debug === true;
208
210
  this._fhevmAuth = params.options?.auth;
211
+ this._customHeaders = normalizeHeaders(params.options?.headers);
209
212
  this._onProgress = params.options?.onProgress as typeof this._onProgress;
210
213
  this._state = {
211
214
  aborted: false,
@@ -488,6 +491,15 @@ export class RelayerAsyncRequest {
488
491
 
489
492
  // At this stage: `terminated` is guaranteed to be `false`.
490
493
 
494
+ // 403 is not part of the typed relayer contract: it is emitted by an
495
+ // edge proxy (Cloudflare/Kong), typically on a missing/invalid
496
+ // `x-api-key`. Intercept it before the typed switch, read the JSON body,
497
+ // and surface the edge message instead of discarding it.
498
+ if (response.status === 403) {
499
+ const { message } = await readErrorMessage(response);
500
+ this._throwUnexpectedStatusError(403, message);
501
+ }
502
+
491
503
  const responseStatus: RelayerPostResponseStatus = response.status as RelayerPostResponseStatus;
492
504
 
493
505
  switch (responseStatus) {
@@ -562,7 +574,10 @@ export class RelayerAsyncRequest {
562
574
  // RelayerApiError401
563
575
  // falls through
564
576
  case 401: {
565
- this._throwUnauthorizedError(responseStatus);
577
+ // Surface the message the origin (Kong/relayer) actually sent for a
578
+ // missing/invalid `x-api-key`, falling back to the canned string.
579
+ const { message } = await readErrorMessage(response);
580
+ this._throwUnauthorizedError(responseStatus, message);
566
581
  }
567
582
  // RelayerResponseFailed
568
583
  // RelayerApiError429
@@ -722,6 +737,15 @@ export class RelayerAsyncRequest {
722
737
 
723
738
  // At this stage: `terminated` is guaranteed to be `false`.
724
739
 
740
+ // 403 is not part of the typed relayer contract: it is emitted by an
741
+ // edge proxy (Cloudflare/Kong), typically on a missing/invalid
742
+ // `x-api-key`. Intercept it before the typed switch, read the JSON body,
743
+ // and surface the edge message instead of discarding it.
744
+ if (response.status === 403) {
745
+ const { message } = await readErrorMessage(response);
746
+ this._throwUnexpectedStatusError(403, message);
747
+ }
748
+
725
749
  const responseStatus: RelayerGetResponseStatus = response.status as RelayerGetResponseStatus;
726
750
 
727
751
  switch (responseStatus) {
@@ -959,7 +983,10 @@ export class RelayerAsyncRequest {
959
983
  }
960
984
  // falls through
961
985
  case 401: {
962
- this._throwUnauthorizedError(responseStatus);
986
+ // Surface the message the origin (Kong/relayer) actually sent for a
987
+ // missing/invalid `x-api-key`, falling back to the canned string.
988
+ const { message } = await readErrorMessage(response);
989
+ this._throwUnauthorizedError(responseStatus, message);
963
990
  }
964
991
  // falls through
965
992
  case 404: {
@@ -1197,9 +1224,10 @@ export class RelayerAsyncRequest {
1197
1224
  {
1198
1225
  method: 'POST',
1199
1226
  headers: {
1200
- 'Content-Type': 'application/json',
1201
- 'ZAMA-SDK-VERSION': version,
1202
- 'ZAMA-SDK-NAME': sdkName,
1227
+ ...this._customHeaders,
1228
+ 'content-type': 'application/json',
1229
+ 'zama-sdk-version': version,
1230
+ 'zama-sdk-name': sdkName,
1203
1231
  },
1204
1232
  body: JSON.stringify(this._payload),
1205
1233
  ...(this._internalAbortSignal ? { signal: this._internalAbortSignal } : {}),
@@ -1265,19 +1293,18 @@ export class RelayerAsyncRequest {
1265
1293
 
1266
1294
  this._trace('_fetchGet', `jobId=${this.jobId}`);
1267
1295
 
1268
- // Do not include API key here!
1269
- // API key is only required on POST (by design).
1270
- // This is necessary for future caching on gateway.
1271
- // It will be implemented in future releases on (relayer).
1272
- // See relayer team.
1273
- const init: RequestInit = {
1274
- method: 'GET',
1275
- headers: {
1276
- 'ZAMA-SDK-VERSION': version,
1277
- 'ZAMA-SDK-NAME': sdkName,
1278
- },
1279
- ...(this._internalAbortSignal ? { signal: this._internalAbortSignal } : {}),
1280
- };
1296
+ const init = setAuth(
1297
+ {
1298
+ method: 'GET',
1299
+ headers: {
1300
+ ...this._customHeaders,
1301
+ 'zama-sdk-version': version,
1302
+ 'zama-sdk-name': sdkName,
1303
+ },
1304
+ ...(this._internalAbortSignal ? { signal: this._internalAbortSignal } : {}),
1305
+ } satisfies RequestInit,
1306
+ this._fhevmAuth,
1307
+ );
1281
1308
 
1282
1309
  this._state.fetching = true;
1283
1310
 
@@ -1599,18 +1626,49 @@ export class RelayerAsyncRequest {
1599
1626
 
1600
1627
  /**
1601
1628
  * Throws an unauthorized error for 401 responses.
1629
+ *
1630
+ * The `message` surfaced from the response body (the relayer/edge JSON error)
1631
+ * is used when present; otherwise the canned string is kept. The
1632
+ * `'unauthorized'` label and error shape are preserved so downstream
1633
+ * consumers reading `relayerApiError.message`/`.label` keep working.
1634
+ *
1635
+ * @param status - The 401 status.
1636
+ * @param surfacedMessage - The message read from the response body, if any.
1602
1637
  * @throws {RelayerResponseApiError} Always throws with 'unauthorized' label.
1603
1638
  */
1604
- private _throwUnauthorizedError(status: Extract<RelayerFailureStatus, 401>): never {
1639
+ private _throwUnauthorizedError(status: Extract<RelayerFailureStatus, 401>, surfacedMessage?: string): never {
1605
1640
  this._throwRelayerResponseApiError({
1606
1641
  status,
1607
1642
  relayerApiError: {
1608
1643
  label: 'unauthorized',
1609
- message: 'Unauthorized, missing or invalid Zama Fhevm API Key.',
1644
+ message: surfacedMessage ?? 'Unauthorized, missing or invalid Zama Fhevm API Key.',
1610
1645
  },
1611
1646
  });
1612
1647
  }
1613
1648
 
1649
+ /**
1650
+ * Throws for an HTTP status that is not part of the typed relayer contract —
1651
+ * e.g. a 403 emitted by an edge proxy (Cloudflare/Kong). The `message`
1652
+ * surfaced from the JSON body is appended to the error when present.
1653
+ *
1654
+ * @param status - The unexpected HTTP status.
1655
+ * @param surfacedMessage - The message read from the response body, if any.
1656
+ * @throws {RelayerResponseStatusError} Always throws.
1657
+ */
1658
+ private _throwUnexpectedStatusError(status: number, surfacedMessage?: string): never {
1659
+ throw new RelayerResponseStatusError({
1660
+ fetchMethod: this._fetchMethod as unknown as RelayerFetchMethod,
1661
+ status,
1662
+ url: this._url,
1663
+ ...(this._jobId !== undefined ? { jobId: this._jobId } : {}),
1664
+ operation: this._relayerOperation,
1665
+ elapsed: this._elapsed,
1666
+ retryCount: this._retryCount,
1667
+ state: { ...this._state },
1668
+ ...(surfacedMessage !== undefined ? { responseMessage: surfacedMessage } : {}),
1669
+ });
1670
+ }
1671
+
1614
1672
  // private _throwRelayerResponseApiErrorLoose(params: { status: number; bodyJson: Record<string, unknown> }): never {
1615
1673
  // // body is considered ok if:
1616
1674
  // // body.error exists
@@ -6,9 +6,9 @@ import type {
6
6
  RelayerClientWithRuntime,
7
7
  } from '../types.js';
8
8
  import { bytesToHexNo0x } from '../../../base/bytes.js';
9
- import { removeSuffix } from '../../../base/string.js';
10
9
  import { uintToHex0x } from '../../../base/uint.js';
11
10
  import { RelayerAsyncRequest } from './RelayerAsyncRequest.js';
11
+ import { buildRelayerUrlString, validateRelayerBaseUrl } from './relayerUrl.js';
12
12
 
13
13
  ////////////////////////////////////////////////////////////////////////////////
14
14
  // fetchCoprocessorSignatures
@@ -28,9 +28,13 @@ export async function fetchCoprocessorSignatures(
28
28
  userAddress: payload.zkProof.userAddress,
29
29
  };
30
30
 
31
+ const hasAuth: boolean = options?.auth !== undefined;
32
+ const relayerBaseUrl: URL = validateRelayerBaseUrl(relayerClient.chain.fhevm.relayerUrl, hasAuth);
33
+ const url = buildRelayerUrlString(relayerBaseUrl, 'v2/input-proof');
34
+
31
35
  const request = new RelayerAsyncRequest({
32
36
  relayerOperation: 'INPUT_PROOF',
33
- url: `${removeSuffix(relayerClient.chain.fhevm.relayerUrl, '/')}/v2/input-proof`,
37
+ url,
34
38
  payload: inputProofPayload,
35
39
  options,
36
40
  });
@@ -6,8 +6,9 @@ import type {
6
6
  RelayerClientWithRuntime,
7
7
  } from '../types.js';
8
8
  import type { KmsSigncryptedShare } from '../../../types/kms-p.js';
9
- import { remove0x, removeSuffix } from '../../../base/string.js';
9
+ import { remove0x } from '../../../base/string.js';
10
10
  import { RelayerAsyncRequest } from './RelayerAsyncRequest.js';
11
+ import { buildRelayerUrlString, validateRelayerBaseUrl } from './relayerUrl.js';
11
12
 
12
13
  //////////////////////////////////////////////////////////////////////////////
13
14
  // fetchDelegatedUserDecrypt
@@ -45,9 +46,13 @@ export async function fetchDelegatedUserDecrypt(
45
46
  publicKey: remove0x(payload.kmsDecryptEip712Message.publicKey),
46
47
  };
47
48
 
49
+ const hasAuth: boolean = options?.auth !== undefined;
50
+ const relayerBaseUrl: URL = validateRelayerBaseUrl(relayerClient.chain.fhevm.relayerUrl, hasAuth);
51
+ const url = buildRelayerUrlString(relayerBaseUrl, 'v2/delegated-user-decrypt');
52
+
48
53
  const request = new RelayerAsyncRequest({
49
54
  relayerOperation: 'DELEGATED_USER_DECRYPT',
50
- url: `${removeSuffix(relayerClient.chain.fhevm.relayerUrl, '/')}/v2/delegated-user-decrypt`,
55
+ url,
51
56
  payload: relayerPayload,
52
57
  options,
53
58
  });