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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (794) hide show
  1. package/_cjs/core/_version.js +1 -1
  2. package/_cjs/core/actions/base/canDecryptPublicValue.js +1 -1
  3. package/_cjs/core/actions/base/canDecryptPublicValue.js.map +1 -1
  4. package/_cjs/core/actions/base/canDecryptPublicValues.js +1 -1
  5. package/_cjs/core/actions/base/canDecryptPublicValues.js.map +1 -1
  6. package/_cjs/core/actions/base/{fetchKmsSignedcryptedShares.js → fetchKmsSigncryptedShares.js} +5 -5
  7. package/_cjs/core/actions/base/fetchKmsSigncryptedShares.js.map +1 -0
  8. package/_cjs/core/actions/base/index.js +3 -3
  9. package/_cjs/core/actions/base/index.js.map +1 -1
  10. package/_cjs/core/actions/base/readKmsSignersContext.js +2 -1
  11. package/_cjs/core/actions/base/readKmsSignersContext.js.map +1 -1
  12. package/_cjs/core/actions/chain/parseTransportKeyPair.js.map +1 -1
  13. package/_cjs/core/actions/decrypt/decryptKmsSigncryptedShares.js +13 -0
  14. package/_cjs/core/actions/decrypt/decryptKmsSigncryptedShares.js.map +1 -0
  15. package/_cjs/core/actions/decrypt/decryptValue.js +3 -1
  16. package/_cjs/core/actions/decrypt/decryptValue.js.map +1 -1
  17. package/_cjs/core/actions/decrypt/decryptValues.js +3 -1
  18. package/_cjs/core/actions/decrypt/decryptValues.js.map +1 -1
  19. package/_cjs/core/actions/decrypt/decryptValuesFromPairs.js +3 -1
  20. package/_cjs/core/actions/decrypt/decryptValuesFromPairs.js.map +1 -1
  21. package/_cjs/core/actions/decrypt/generateTransportKeyPair.js +3 -1
  22. package/_cjs/core/actions/decrypt/generateTransportKeyPair.js.map +1 -1
  23. package/_cjs/core/actions/decrypt/index.js +3 -3
  24. package/_cjs/core/actions/decrypt/index.js.map +1 -1
  25. package/_cjs/core/actions/encrypt/encryptValue.js +3 -1
  26. package/_cjs/core/actions/encrypt/encryptValue.js.map +1 -1
  27. package/_cjs/core/actions/encrypt/encryptValues.js +3 -1
  28. package/_cjs/core/actions/encrypt/encryptValues.js.map +1 -1
  29. package/_cjs/core/actions/encrypt/generateZkProof.js +5 -1
  30. package/_cjs/core/actions/encrypt/generateZkProof.js.map +1 -1
  31. package/_cjs/core/actions/host/readFhevmExecutorContractData.js +7 -7
  32. package/_cjs/core/actions/host/readFhevmExecutorContractData.js.map +1 -1
  33. package/_cjs/core/actions/host/readInputVerifierContractData.js +1 -1
  34. package/_cjs/core/actions/host/readInputVerifierContractData.js.map +1 -1
  35. package/_cjs/core/actions/host/readKmsVerifierContractData.js +6 -5
  36. package/_cjs/core/actions/host/readKmsVerifierContractData.js.map +1 -1
  37. package/_cjs/core/actions/host/resolveFhevmConfig.js +7 -1
  38. package/_cjs/core/actions/host/resolveFhevmConfig.js.map +1 -1
  39. package/_cjs/core/base/object.js +23 -0
  40. package/_cjs/core/base/object.js.map +1 -1
  41. package/_cjs/core/base/semver.js +166 -0
  42. package/_cjs/core/base/semver.js.map +1 -0
  43. package/_cjs/core/base/uint.js +20 -3
  44. package/_cjs/core/base/uint.js.map +1 -1
  45. package/_cjs/core/chains/definitions/localTestnet.js +3 -0
  46. package/_cjs/core/chains/definitions/localTestnet.js.map +1 -1
  47. package/_cjs/core/chains/definitions/mainnet.js +1 -0
  48. package/_cjs/core/chains/definitions/mainnet.js.map +1 -1
  49. package/_cjs/core/chains/definitions/sepolia.js +1 -0
  50. package/_cjs/core/chains/definitions/sepolia.js.map +1 -1
  51. package/_cjs/core/clients/decorators/base.js +5 -0
  52. package/_cjs/core/clients/decorators/base.js.map +1 -1
  53. package/_cjs/core/clients/decorators/decrypt-p.js +13 -0
  54. package/_cjs/core/clients/decorators/decrypt-p.js.map +1 -0
  55. package/_cjs/core/clients/decorators/decrypt.js +4 -7
  56. package/_cjs/core/clients/decorators/decrypt.js.map +1 -1
  57. package/_cjs/core/clients/decorators/encrypt-p.js +5 -1
  58. package/_cjs/core/clients/decorators/encrypt-p.js.map +1 -1
  59. package/_cjs/core/clients/decorators/encrypt.js.map +1 -1
  60. package/_cjs/core/coprocessor/ZkProof-p.js +4 -2
  61. package/_cjs/core/coprocessor/ZkProof-p.js.map +1 -1
  62. package/_cjs/core/coprocessor/ZkProofBuilder-p.js +2 -1
  63. package/_cjs/core/coprocessor/ZkProofBuilder-p.js.map +1 -1
  64. package/_cjs/core/coprocessor/encrypt.js +1 -1
  65. package/_cjs/core/coprocessor/encrypt.js.map +1 -1
  66. package/_cjs/core/errors/RelayerResponseStatusError.js +3 -2
  67. package/_cjs/core/errors/RelayerResponseStatusError.js.map +1 -1
  68. package/_cjs/core/host-contracts/HostContractVersion-p.js +26 -4
  69. package/_cjs/core/host-contracts/HostContractVersion-p.js.map +1 -1
  70. package/_cjs/core/host-contracts/KmsSignersContext-p.js +23 -5
  71. package/_cjs/core/host-contracts/KmsSignersContext-p.js.map +1 -1
  72. package/_cjs/core/host-contracts/abi-fragments/fragments.js +21 -1
  73. package/_cjs/core/host-contracts/abi-fragments/fragments.js.map +1 -1
  74. package/_cjs/core/host-contracts/canDecryptValuesFromPairs.js +1 -1
  75. package/_cjs/core/host-contracts/canDecryptValuesFromPairs.js.map +1 -1
  76. package/_cjs/core/host-contracts/checkAllowedForDecryption.js +2 -2
  77. package/_cjs/core/host-contracts/checkAllowedForDecryption.js.map +1 -1
  78. package/_cjs/core/host-contracts/checkDelegation.js +8 -8
  79. package/_cjs/core/host-contracts/checkDelegation.js.map +1 -1
  80. package/_cjs/core/host-contracts/checkPersistAllowed.js +9 -9
  81. package/_cjs/core/host-contracts/checkPersistAllowed.js.map +1 -1
  82. package/_cjs/core/host-contracts/getAclAddress-p.js +1 -2
  83. package/_cjs/core/host-contracts/getAclAddress-p.js.map +1 -1
  84. package/_cjs/core/host-contracts/getCurrentKmsContextAndEpoch-p.js +51 -0
  85. package/_cjs/core/host-contracts/getCurrentKmsContextAndEpoch-p.js.map +1 -0
  86. package/_cjs/core/host-contracts/getCurrentKmsContextId-p.js +4 -5
  87. package/_cjs/core/host-contracts/getCurrentKmsContextId-p.js.map +1 -1
  88. package/_cjs/core/host-contracts/getFhevmExecutorAddress-p.js +1 -1
  89. package/_cjs/core/host-contracts/getFhevmExecutorAddress-p.js.map +1 -1
  90. package/_cjs/core/host-contracts/getHandleVersion-p.js +1 -2
  91. package/_cjs/core/host-contracts/getHandleVersion-p.js.map +1 -1
  92. package/_cjs/core/host-contracts/getHcuLimitAddress-p.js +1 -2
  93. package/_cjs/core/host-contracts/getHcuLimitAddress-p.js.map +1 -1
  94. package/_cjs/core/host-contracts/getInputVerifierAddress-p.js +1 -2
  95. package/_cjs/core/host-contracts/getInputVerifierAddress-p.js.map +1 -1
  96. package/_cjs/core/host-contracts/getKmsContextSignersAndThreshold-p.js +5 -7
  97. package/_cjs/core/host-contracts/getKmsContextSignersAndThreshold-p.js.map +1 -1
  98. package/_cjs/core/host-contracts/getKmsContextSignersAndThresholdFromExtraData-p.js +4 -5
  99. package/_cjs/core/host-contracts/getKmsContextSignersAndThresholdFromExtraData-p.js.map +1 -1
  100. package/_cjs/core/host-contracts/getSignersForKmsContext-p.js +3 -5
  101. package/_cjs/core/host-contracts/getSignersForKmsContext-p.js.map +1 -1
  102. package/_cjs/core/host-contracts/isAllowedForDecryption.js +4 -4
  103. package/_cjs/core/host-contracts/isAllowedForDecryption.js.map +1 -1
  104. package/_cjs/core/host-contracts/isHandleDelegatedForUserDecryption-p.js +5 -5
  105. package/_cjs/core/host-contracts/isHandleDelegatedForUserDecryption-p.js.map +1 -1
  106. package/_cjs/core/host-contracts/isUserDecryptable.js +2 -2
  107. package/_cjs/core/host-contracts/isUserDecryptable.js.map +1 -1
  108. package/_cjs/core/host-contracts/persistAllowed.js +4 -4
  109. package/_cjs/core/host-contracts/persistAllowed.js.map +1 -1
  110. package/_cjs/core/host-contracts/readKmsSignersContext-p.js +74 -25
  111. package/_cjs/core/host-contracts/readKmsSignersContext-p.js.map +1 -1
  112. package/_cjs/core/key/FheEncryptionKeyWasm-p.js +12 -4
  113. package/_cjs/core/key/FheEncryptionKeyWasm-p.js.map +1 -1
  114. package/_cjs/core/key/deserializeFheEncryptionKey.js +3 -0
  115. package/_cjs/core/key/deserializeFheEncryptionKey.js.map +1 -1
  116. package/_cjs/core/key/fetchFheEncryptionKey.js +1 -1
  117. package/_cjs/core/key/fetchFheEncryptionKey.js.map +1 -1
  118. package/_cjs/core/key/fetchFheEncryptionKeyBytes.js.map +1 -1
  119. package/_cjs/core/key/serializeFheEncryptionKey.js +4 -1
  120. package/_cjs/core/key/serializeFheEncryptionKey.js.map +1 -1
  121. package/_cjs/core/kms/KmsSigncryptedShares-p.js +9 -1
  122. package/_cjs/core/kms/KmsSigncryptedShares-p.js.map +1 -1
  123. package/_cjs/core/kms/SignedDecryptionPermit-p.js +5 -1
  124. package/_cjs/core/kms/SignedDecryptionPermit-p.js.map +1 -1
  125. package/_cjs/core/kms/TransportKeyPair-p.js +31 -7
  126. package/_cjs/core/kms/TransportKeyPair-p.js.map +1 -1
  127. package/_cjs/core/kms/createKmsUserDecryptEip712.js +4 -0
  128. package/_cjs/core/kms/createKmsUserDecryptEip712.js.map +1 -1
  129. package/_cjs/core/kms/createKmsUserDecryptEip712V2.js +97 -0
  130. package/_cjs/core/kms/createKmsUserDecryptEip712V2.js.map +1 -0
  131. package/_cjs/core/kms/{decryptKmsSignedcryptedShares-p.js → decryptKmsSigncryptedShares-p.js} +10 -3
  132. package/_cjs/core/kms/decryptKmsSigncryptedShares-p.js.map +1 -0
  133. package/_cjs/core/kms/decryptValuesFromPairs.js +4 -4
  134. package/_cjs/core/kms/decryptValuesFromPairs.js.map +1 -1
  135. package/_cjs/core/kms/{fetchKmsSignedcryptedShares-p.js → fetchKmsSigncryptedShares-p.js} +10 -6
  136. package/_cjs/core/kms/fetchKmsSigncryptedShares-p.js.map +1 -0
  137. package/_cjs/core/kms/kmsExtraData.js +53 -10
  138. package/_cjs/core/kms/kmsExtraData.js.map +1 -1
  139. package/_cjs/core/kms/kmsUserDecryptEip712V2Types.js +25 -0
  140. package/_cjs/core/kms/kmsUserDecryptEip712V2Types.js.map +1 -0
  141. package/_cjs/core/kms/publicDecrypt.js +5 -3
  142. package/_cjs/core/kms/publicDecrypt.js.map +1 -1
  143. package/_cjs/core/modules/decrypt/mock.js +1 -23
  144. package/_cjs/core/modules/decrypt/mock.js.map +1 -1
  145. package/_cjs/core/modules/decrypt/module/api-p.js +51 -23
  146. package/_cjs/core/modules/decrypt/module/api-p.js.map +1 -1
  147. package/_cjs/core/modules/decrypt/module/index.js +5 -27
  148. package/_cjs/core/modules/decrypt/module/index.js.map +1 -1
  149. package/_cjs/core/modules/decrypt/module/init-p.js +40 -19
  150. package/_cjs/core/modules/decrypt/module/init-p.js.map +1 -1
  151. package/_cjs/core/modules/encrypt/mock.js +26 -8
  152. package/_cjs/core/modules/encrypt/mock.js.map +1 -1
  153. package/_cjs/core/modules/encrypt/module/api-p.js +50 -21
  154. package/_cjs/core/modules/encrypt/module/api-p.js.map +1 -1
  155. package/_cjs/core/modules/encrypt/module/index.js +3 -3
  156. package/_cjs/core/modules/encrypt/module/index.js.map +1 -1
  157. package/_cjs/core/modules/encrypt/module/init-p.js +63 -24
  158. package/_cjs/core/modules/encrypt/module/init-p.js.map +1 -1
  159. package/_cjs/core/modules/relayer/cleartext/fetchDelegatedUserDecrypt.js +1 -1
  160. package/_cjs/core/modules/relayer/cleartext/fetchDelegatedUserDecrypt.js.map +1 -1
  161. package/_cjs/core/modules/relayer/cleartext/fetchUserDecrypt.js +1 -1
  162. package/_cjs/core/modules/relayer/cleartext/fetchUserDecrypt.js.map +1 -1
  163. package/_cjs/core/modules/relayer/module/RelayerAsyncRequest.js +28 -4
  164. package/_cjs/core/modules/relayer/module/RelayerAsyncRequest.js.map +1 -1
  165. package/_cjs/core/modules/relayer/module/fetchFheEncryptionKeySource.js +5 -1
  166. package/_cjs/core/modules/relayer/module/fetchFheEncryptionKeySource.js.map +1 -1
  167. package/_cjs/core/modules/relayer/module/readErrorMessage.js +29 -0
  168. package/_cjs/core/modules/relayer/module/readErrorMessage.js.map +1 -0
  169. package/_cjs/core/runtime/CoreFhevm-p.js +171 -5
  170. package/_cjs/core/runtime/CoreFhevm-p.js.map +1 -1
  171. package/_cjs/core/runtime/HyperWasmSolver-p.js +187 -0
  172. package/_cjs/core/runtime/HyperWasmSolver-p.js.map +1 -0
  173. package/_cjs/core/runtime/ProtocolVersionResolver-p.js +270 -0
  174. package/_cjs/core/runtime/ProtocolVersionResolver-p.js.map +1 -0
  175. package/_cjs/core/runtime/initFhevmDecryptRuntime-p.js +1 -1
  176. package/_cjs/core/runtime/initFhevmDecryptRuntime-p.js.map +1 -1
  177. package/_cjs/core/runtime/initFhevmEncryptRuntime-p.js +1 -1
  178. package/_cjs/core/runtime/initFhevmEncryptRuntime-p.js.map +1 -1
  179. package/_cjs/core/runtime/initFhevmRuntime-p.js +4 -1
  180. package/_cjs/core/runtime/initFhevmRuntime-p.js.map +1 -1
  181. package/_cjs/core/runtime/resolveFhevmVersions-p.js +48 -0
  182. package/_cjs/core/runtime/resolveFhevmVersions-p.js.map +1 -0
  183. package/_cjs/core/runtimeConfig-p.js +10 -0
  184. package/_cjs/core/runtimeConfig-p.js.map +1 -1
  185. package/_cjs/core/types/{zkProofBuilder.js → moduleVersions.js} +1 -1
  186. package/_cjs/core/types/moduleVersions.js.map +1 -0
  187. package/_cjs/core/types/{fhevmUser.js → wasmAssets.js} +1 -1
  188. package/_cjs/core/types/wasmAssets.js.map +1 -0
  189. package/_cjs/core/types/{fhevmDecryptionKey.js → zkProofBuilder-p.js} +1 -1
  190. package/_cjs/core/types/zkProofBuilder-p.js.map +1 -0
  191. package/_cjs/core/utils-p/decrypt/verifyTkmsPublicKey.js +1 -0
  192. package/_cjs/core/utils-p/decrypt/verifyTkmsPublicKey.js.map +1 -1
  193. package/_cjs/ethers/internal/config.js +1 -18
  194. package/_cjs/ethers/internal/config.js.map +1 -1
  195. package/_cjs/viem/internal/config.js +1 -18
  196. package/_cjs/viem/internal/config.js.map +1 -1
  197. package/_cjs/wasm/tfhe/loadTfheLib.js.map +1 -1
  198. package/_cjs/wasm/tfhe/v1.5.3/tfhe.d.ts +4 -0
  199. package/_cjs/wasm/tfhe/v1.5.3/tfhe.js +6 -1
  200. package/_cjs/wasm/tfhe/v1.5.3/tfhe.js.map +2 -2
  201. package/_cjs/wasm/tfhe/v1.6.1/tfhe.d.ts +4 -0
  202. package/_cjs/wasm/tfhe/v1.6.1/tfhe.js +6 -1
  203. package/_cjs/wasm/tfhe/v1.6.1/tfhe.js.map +2 -2
  204. package/_cjs/wasm/tkms/loadKmsLib.js.map +1 -1
  205. package/_cjs/wasm/tkms/v0.13.10/kms_lib.d.ts +4 -0
  206. package/_cjs/wasm/tkms/v0.13.10/kms_lib.js +6 -1
  207. package/_cjs/wasm/tkms/v0.13.10/kms_lib.js.map +2 -2
  208. package/_cjs/wasm/tkms/v0.13.20-0/kms_lib.d.ts +4 -0
  209. package/_cjs/wasm/tkms/v0.13.20-0/kms_lib.js +6 -1
  210. package/_cjs/wasm/tkms/v0.13.20-0/kms_lib.js.map +2 -2
  211. package/_cjs/wasm/wasmBaseUrl.js +23 -7
  212. package/_cjs/wasm/wasmBaseUrl.js.map +2 -2
  213. package/_esm/core/_version.js +1 -1
  214. package/_esm/core/actions/base/canDecryptPublicValue.js +1 -1
  215. package/_esm/core/actions/base/canDecryptPublicValue.js.map +1 -1
  216. package/_esm/core/actions/base/canDecryptPublicValues.js +1 -1
  217. package/_esm/core/actions/base/canDecryptPublicValues.js.map +1 -1
  218. package/_esm/core/actions/base/{fetchKmsSignedcryptedShares.js → fetchKmsSigncryptedShares.js} +4 -4
  219. package/_esm/core/actions/base/fetchKmsSigncryptedShares.js.map +1 -0
  220. package/_esm/core/actions/base/index.js +1 -1
  221. package/_esm/core/actions/base/index.js.map +1 -1
  222. package/_esm/core/actions/base/readKmsSignersContext.js +2 -1
  223. package/_esm/core/actions/base/readKmsSignersContext.js.map +1 -1
  224. package/_esm/core/actions/chain/parseTransportKeyPair.js.map +1 -1
  225. package/_esm/core/actions/decrypt/decryptKmsSigncryptedShares.js +11 -0
  226. package/_esm/core/actions/decrypt/decryptKmsSigncryptedShares.js.map +1 -0
  227. package/_esm/core/actions/decrypt/decryptValue.js +3 -1
  228. package/_esm/core/actions/decrypt/decryptValue.js.map +1 -1
  229. package/_esm/core/actions/decrypt/decryptValues.js +3 -1
  230. package/_esm/core/actions/decrypt/decryptValues.js.map +1 -1
  231. package/_esm/core/actions/decrypt/decryptValuesFromPairs.js +3 -1
  232. package/_esm/core/actions/decrypt/decryptValuesFromPairs.js.map +1 -1
  233. package/_esm/core/actions/decrypt/generateTransportKeyPair.js +3 -1
  234. package/_esm/core/actions/decrypt/generateTransportKeyPair.js.map +1 -1
  235. package/_esm/core/actions/decrypt/index.js +1 -1
  236. package/_esm/core/actions/decrypt/index.js.map +1 -1
  237. package/_esm/core/actions/encrypt/encryptValue.js +3 -1
  238. package/_esm/core/actions/encrypt/encryptValue.js.map +1 -1
  239. package/_esm/core/actions/encrypt/encryptValues.js +3 -1
  240. package/_esm/core/actions/encrypt/encryptValues.js.map +1 -1
  241. package/_esm/core/actions/encrypt/generateZkProof.js +5 -1
  242. package/_esm/core/actions/encrypt/generateZkProof.js.map +1 -1
  243. package/_esm/core/actions/host/readFhevmExecutorContractData.js +8 -8
  244. package/_esm/core/actions/host/readFhevmExecutorContractData.js.map +1 -1
  245. package/_esm/core/actions/host/readInputVerifierContractData.js +2 -2
  246. package/_esm/core/actions/host/readInputVerifierContractData.js.map +1 -1
  247. package/_esm/core/actions/host/readKmsVerifierContractData.js +7 -6
  248. package/_esm/core/actions/host/readKmsVerifierContractData.js.map +1 -1
  249. package/_esm/core/actions/host/resolveFhevmConfig.js +7 -1
  250. package/_esm/core/actions/host/resolveFhevmConfig.js.map +1 -1
  251. package/_esm/core/base/object.js +28 -0
  252. package/_esm/core/base/object.js.map +1 -1
  253. package/_esm/core/base/semver.js +164 -0
  254. package/_esm/core/base/semver.js.map +1 -0
  255. package/_esm/core/base/uint.js +23 -2
  256. package/_esm/core/base/uint.js.map +1 -1
  257. package/_esm/core/chains/definitions/localTestnet.js +3 -0
  258. package/_esm/core/chains/definitions/localTestnet.js.map +1 -1
  259. package/_esm/core/chains/definitions/mainnet.js +1 -0
  260. package/_esm/core/chains/definitions/mainnet.js.map +1 -1
  261. package/_esm/core/chains/definitions/sepolia.js +1 -0
  262. package/_esm/core/chains/definitions/sepolia.js.map +1 -1
  263. package/_esm/core/clients/decorators/base.js +6 -1
  264. package/_esm/core/clients/decorators/base.js.map +1 -1
  265. package/_esm/core/clients/decorators/decrypt-p.js +11 -0
  266. package/_esm/core/clients/decorators/decrypt-p.js.map +1 -0
  267. package/_esm/core/clients/decorators/decrypt.js +3 -7
  268. package/_esm/core/clients/decorators/decrypt.js.map +1 -1
  269. package/_esm/core/clients/decorators/encrypt-p.js +6 -2
  270. package/_esm/core/clients/decorators/encrypt-p.js.map +1 -1
  271. package/_esm/core/clients/decorators/encrypt.js.map +1 -1
  272. package/_esm/core/coprocessor/ZkProof-p.js +4 -2
  273. package/_esm/core/coprocessor/ZkProof-p.js.map +1 -1
  274. package/_esm/core/coprocessor/ZkProofBuilder-p.js +2 -1
  275. package/_esm/core/coprocessor/ZkProofBuilder-p.js.map +1 -1
  276. package/_esm/core/coprocessor/encrypt.js +1 -1
  277. package/_esm/core/coprocessor/encrypt.js.map +1 -1
  278. package/_esm/core/errors/RelayerResponseStatusError.js +7 -2
  279. package/_esm/core/errors/RelayerResponseStatusError.js.map +1 -1
  280. package/_esm/core/host-contracts/HostContractVersion-p.js +34 -3
  281. package/_esm/core/host-contracts/HostContractVersion-p.js.map +1 -1
  282. package/_esm/core/host-contracts/KmsSignersContext-p.js +24 -6
  283. package/_esm/core/host-contracts/KmsSignersContext-p.js.map +1 -1
  284. package/_esm/core/host-contracts/abi-fragments/fragments.js +24 -0
  285. package/_esm/core/host-contracts/abi-fragments/fragments.js.map +1 -1
  286. package/_esm/core/host-contracts/canDecryptValuesFromPairs.js +1 -1
  287. package/_esm/core/host-contracts/canDecryptValuesFromPairs.js.map +1 -1
  288. package/_esm/core/host-contracts/checkAllowedForDecryption.js +2 -2
  289. package/_esm/core/host-contracts/checkAllowedForDecryption.js.map +1 -1
  290. package/_esm/core/host-contracts/checkDelegation.js +8 -8
  291. package/_esm/core/host-contracts/checkDelegation.js.map +1 -1
  292. package/_esm/core/host-contracts/checkPersistAllowed.js +9 -9
  293. package/_esm/core/host-contracts/checkPersistAllowed.js.map +1 -1
  294. package/_esm/core/host-contracts/getAclAddress-p.js +1 -2
  295. package/_esm/core/host-contracts/getAclAddress-p.js.map +1 -1
  296. package/_esm/core/host-contracts/getCurrentKmsContextAndEpoch-p.js +63 -0
  297. package/_esm/core/host-contracts/getCurrentKmsContextAndEpoch-p.js.map +1 -0
  298. package/_esm/core/host-contracts/getCurrentKmsContextId-p.js +6 -7
  299. package/_esm/core/host-contracts/getCurrentKmsContextId-p.js.map +1 -1
  300. package/_esm/core/host-contracts/getFhevmExecutorAddress-p.js +1 -1
  301. package/_esm/core/host-contracts/getFhevmExecutorAddress-p.js.map +1 -1
  302. package/_esm/core/host-contracts/getHandleVersion-p.js +1 -2
  303. package/_esm/core/host-contracts/getHandleVersion-p.js.map +1 -1
  304. package/_esm/core/host-contracts/getHcuLimitAddress-p.js +1 -2
  305. package/_esm/core/host-contracts/getHcuLimitAddress-p.js.map +1 -1
  306. package/_esm/core/host-contracts/getInputVerifierAddress-p.js +1 -2
  307. package/_esm/core/host-contracts/getInputVerifierAddress-p.js.map +1 -1
  308. package/_esm/core/host-contracts/getKmsContextSignersAndThreshold-p.js +6 -8
  309. package/_esm/core/host-contracts/getKmsContextSignersAndThreshold-p.js.map +1 -1
  310. package/_esm/core/host-contracts/getKmsContextSignersAndThresholdFromExtraData-p.js +5 -6
  311. package/_esm/core/host-contracts/getKmsContextSignersAndThresholdFromExtraData-p.js.map +1 -1
  312. package/_esm/core/host-contracts/getSignersForKmsContext-p.js +5 -7
  313. package/_esm/core/host-contracts/getSignersForKmsContext-p.js.map +1 -1
  314. package/_esm/core/host-contracts/isAllowedForDecryption.js +4 -4
  315. package/_esm/core/host-contracts/isAllowedForDecryption.js.map +1 -1
  316. package/_esm/core/host-contracts/isHandleDelegatedForUserDecryption-p.js +5 -5
  317. package/_esm/core/host-contracts/isHandleDelegatedForUserDecryption-p.js.map +1 -1
  318. package/_esm/core/host-contracts/isUserDecryptable.js +2 -2
  319. package/_esm/core/host-contracts/isUserDecryptable.js.map +1 -1
  320. package/_esm/core/host-contracts/persistAllowed.js +4 -4
  321. package/_esm/core/host-contracts/persistAllowed.js.map +1 -1
  322. package/_esm/core/host-contracts/readKmsSignersContext-p.js +89 -29
  323. package/_esm/core/host-contracts/readKmsSignersContext-p.js.map +1 -1
  324. package/_esm/core/key/FheEncryptionKeyWasm-p.js +12 -4
  325. package/_esm/core/key/FheEncryptionKeyWasm-p.js.map +1 -1
  326. package/_esm/core/key/deserializeFheEncryptionKey.js +3 -0
  327. package/_esm/core/key/deserializeFheEncryptionKey.js.map +1 -1
  328. package/_esm/core/key/fetchFheEncryptionKey.js +1 -1
  329. package/_esm/core/key/fetchFheEncryptionKey.js.map +1 -1
  330. package/_esm/core/key/fetchFheEncryptionKeyBytes.js.map +1 -1
  331. package/_esm/core/key/serializeFheEncryptionKey.js +4 -1
  332. package/_esm/core/key/serializeFheEncryptionKey.js.map +1 -1
  333. package/_esm/core/kms/KmsSigncryptedShares-p.js +9 -1
  334. package/_esm/core/kms/KmsSigncryptedShares-p.js.map +1 -1
  335. package/_esm/core/kms/SignedDecryptionPermit-p.js +5 -1
  336. package/_esm/core/kms/SignedDecryptionPermit-p.js.map +1 -1
  337. package/_esm/core/kms/TransportKeyPair-p.js +32 -7
  338. package/_esm/core/kms/TransportKeyPair-p.js.map +1 -1
  339. package/_esm/core/kms/createKmsUserDecryptEip712.js +4 -0
  340. package/_esm/core/kms/createKmsUserDecryptEip712.js.map +1 -1
  341. package/_esm/core/kms/createKmsUserDecryptEip712V2.js +98 -0
  342. package/_esm/core/kms/createKmsUserDecryptEip712V2.js.map +1 -0
  343. package/_esm/core/kms/{decryptKmsSignedcryptedShares-p.js → decryptKmsSigncryptedShares-p.js} +9 -2
  344. package/_esm/core/kms/decryptKmsSigncryptedShares-p.js.map +1 -0
  345. package/_esm/core/kms/decryptValuesFromPairs.js +4 -4
  346. package/_esm/core/kms/decryptValuesFromPairs.js.map +1 -1
  347. package/_esm/core/kms/{fetchKmsSignedcryptedShares-p.js → fetchKmsSigncryptedShares-p.js} +12 -6
  348. package/_esm/core/kms/fetchKmsSigncryptedShares-p.js.map +1 -0
  349. package/_esm/core/kms/kmsExtraData.js +70 -12
  350. package/_esm/core/kms/kmsExtraData.js.map +1 -1
  351. package/_esm/core/kms/kmsUserDecryptEip712V2Types.js +28 -0
  352. package/_esm/core/kms/kmsUserDecryptEip712V2Types.js.map +1 -0
  353. package/_esm/core/kms/publicDecrypt.js +5 -3
  354. package/_esm/core/kms/publicDecrypt.js.map +1 -1
  355. package/_esm/core/modules/decrypt/mock.js +0 -24
  356. package/_esm/core/modules/decrypt/mock.js.map +1 -1
  357. package/_esm/core/modules/decrypt/module/api-p.js +51 -23
  358. package/_esm/core/modules/decrypt/module/api-p.js.map +1 -1
  359. package/_esm/core/modules/decrypt/module/index.js +31 -25
  360. package/_esm/core/modules/decrypt/module/index.js.map +1 -1
  361. package/_esm/core/modules/decrypt/module/init-p.js +41 -19
  362. package/_esm/core/modules/decrypt/module/init-p.js.map +1 -1
  363. package/_esm/core/modules/encrypt/mock.js +26 -9
  364. package/_esm/core/modules/encrypt/mock.js.map +1 -1
  365. package/_esm/core/modules/encrypt/module/api-p.js +50 -21
  366. package/_esm/core/modules/encrypt/module/api-p.js.map +1 -1
  367. package/_esm/core/modules/encrypt/module/index.js +3 -3
  368. package/_esm/core/modules/encrypt/module/index.js.map +1 -1
  369. package/_esm/core/modules/encrypt/module/init-p.js +69 -29
  370. package/_esm/core/modules/encrypt/module/init-p.js.map +1 -1
  371. package/_esm/core/modules/relayer/cleartext/fetchDelegatedUserDecrypt.js +2 -2
  372. package/_esm/core/modules/relayer/cleartext/fetchDelegatedUserDecrypt.js.map +1 -1
  373. package/_esm/core/modules/relayer/cleartext/fetchUserDecrypt.js +2 -2
  374. package/_esm/core/modules/relayer/cleartext/fetchUserDecrypt.js.map +1 -1
  375. package/_esm/core/modules/relayer/module/RelayerAsyncRequest.js +57 -4
  376. package/_esm/core/modules/relayer/module/RelayerAsyncRequest.js.map +1 -1
  377. package/_esm/core/modules/relayer/module/fetchFheEncryptionKeySource.js +8 -1
  378. package/_esm/core/modules/relayer/module/fetchFheEncryptionKeySource.js.map +1 -1
  379. package/_esm/core/modules/relayer/module/readErrorMessage.js +52 -0
  380. package/_esm/core/modules/relayer/module/readErrorMessage.js.map +1 -0
  381. package/_esm/core/runtime/CoreFhevm-p.js +167 -5
  382. package/_esm/core/runtime/CoreFhevm-p.js.map +1 -1
  383. package/_esm/core/runtime/HyperWasmSolver-p.js +268 -0
  384. package/_esm/core/runtime/HyperWasmSolver-p.js.map +1 -0
  385. package/_esm/core/runtime/ProtocolVersionResolver-p.js +326 -0
  386. package/_esm/core/runtime/ProtocolVersionResolver-p.js.map +1 -0
  387. package/_esm/core/runtime/initFhevmDecryptRuntime-p.js +1 -1
  388. package/_esm/core/runtime/initFhevmDecryptRuntime-p.js.map +1 -1
  389. package/_esm/core/runtime/initFhevmEncryptRuntime-p.js +1 -1
  390. package/_esm/core/runtime/initFhevmEncryptRuntime-p.js.map +1 -1
  391. package/_esm/core/runtime/initFhevmRuntime-p.js +4 -1
  392. package/_esm/core/runtime/initFhevmRuntime-p.js.map +1 -1
  393. package/_esm/core/runtime/resolveFhevmVersions-p.js +62 -0
  394. package/_esm/core/runtime/resolveFhevmVersions-p.js.map +1 -0
  395. package/_esm/core/runtimeConfig-p.js +9 -0
  396. package/_esm/core/runtimeConfig-p.js.map +1 -1
  397. package/_esm/core/types/moduleVersions.js +2 -0
  398. package/_esm/core/types/moduleVersions.js.map +1 -0
  399. package/_esm/core/types/wasmAssets.js +2 -0
  400. package/_esm/core/types/wasmAssets.js.map +1 -0
  401. package/_esm/core/types/zkProofBuilder-p.js +2 -0
  402. package/_esm/core/types/zkProofBuilder-p.js.map +1 -0
  403. package/_esm/core/utils-p/decrypt/verifyTkmsPublicKey.js +1 -0
  404. package/_esm/core/utils-p/decrypt/verifyTkmsPublicKey.js.map +1 -1
  405. package/_esm/ethers/internal/config.js +1 -18
  406. package/_esm/ethers/internal/config.js.map +1 -1
  407. package/_esm/viem/internal/config.js +1 -18
  408. package/_esm/viem/internal/config.js.map +1 -1
  409. package/_esm/wasm/tfhe/v1.5.3/tfhe.d.ts +4 -0
  410. package/_esm/wasm/tfhe/v1.5.3/tfhe.js +8 -0
  411. package/_esm/wasm/tfhe/v1.6.1/tfhe.d.ts +4 -0
  412. package/_esm/wasm/tfhe/v1.6.1/tfhe.js +8 -0
  413. package/_esm/wasm/tkms/v0.13.10/kms_lib.d.ts +4 -0
  414. package/_esm/wasm/tkms/v0.13.10/kms_lib.js +8 -0
  415. package/_esm/wasm/tkms/v0.13.20-0/kms_lib.d.ts +4 -0
  416. package/_esm/wasm/tkms/v0.13.20-0/kms_lib.js +8 -0
  417. package/_esm/wasm/wasmBaseUrl.js +69 -4
  418. package/_types/core/actions/base/{fetchKmsSignedcryptedShares.d.ts → fetchKmsSigncryptedShares.d.ts} +7 -7
  419. package/_types/core/actions/base/fetchKmsSigncryptedShares.d.ts.map +1 -0
  420. package/_types/core/actions/base/index.d.ts +1 -1
  421. package/_types/core/actions/base/index.d.ts.map +1 -1
  422. package/_types/core/actions/base/readKmsSignersContext.d.ts.map +1 -1
  423. package/_types/core/actions/chain/parseSignedDecryptionPermit.d.ts +2 -2
  424. package/_types/core/actions/chain/parseSignedDecryptionPermit.d.ts.map +1 -1
  425. package/_types/core/actions/chain/parseTransportKeyPair.d.ts +1 -1
  426. package/_types/core/actions/chain/parseTransportKeyPair.d.ts.map +1 -1
  427. package/_types/core/actions/decrypt/{decryptKmsSignedcryptedShares.d.ts → decryptKmsSigncryptedShares.d.ts} +4 -4
  428. package/_types/core/actions/decrypt/decryptKmsSigncryptedShares.d.ts.map +1 -0
  429. package/_types/core/actions/decrypt/decryptValue.d.ts.map +1 -1
  430. package/_types/core/actions/decrypt/decryptValues.d.ts.map +1 -1
  431. package/_types/core/actions/decrypt/decryptValuesFromPairs.d.ts.map +1 -1
  432. package/_types/core/actions/decrypt/generateTransportKeyPair.d.ts +2 -2
  433. package/_types/core/actions/decrypt/generateTransportKeyPair.d.ts.map +1 -1
  434. package/_types/core/actions/decrypt/index.d.ts +1 -1
  435. package/_types/core/actions/decrypt/index.d.ts.map +1 -1
  436. package/_types/core/actions/encrypt/encryptValue.d.ts.map +1 -1
  437. package/_types/core/actions/encrypt/encryptValues.d.ts.map +1 -1
  438. package/_types/core/actions/encrypt/generateZkProof.d.ts.map +1 -1
  439. package/_types/core/actions/host/readKmsVerifierContractData.d.ts +1 -0
  440. package/_types/core/actions/host/readKmsVerifierContractData.d.ts.map +1 -1
  441. package/_types/core/actions/host/resolveFhevmConfig.d.ts +2 -0
  442. package/_types/core/actions/host/resolveFhevmConfig.d.ts.map +1 -1
  443. package/_types/core/base/object.d.ts +7 -0
  444. package/_types/core/base/object.d.ts.map +1 -1
  445. package/_types/core/base/semver.d.ts +39 -0
  446. package/_types/core/base/semver.d.ts.map +1 -0
  447. package/_types/core/base/uint.d.ts +13 -2
  448. package/_types/core/base/uint.d.ts.map +1 -1
  449. package/_types/core/chains/definitions/localTestnet.d.ts +3 -0
  450. package/_types/core/chains/definitions/localTestnet.d.ts.map +1 -1
  451. package/_types/core/chains/definitions/mainnet.d.ts +1 -0
  452. package/_types/core/chains/definitions/mainnet.d.ts.map +1 -1
  453. package/_types/core/chains/definitions/sepolia.d.ts.map +1 -1
  454. package/_types/core/clients/decorators/base.d.ts.map +1 -1
  455. package/_types/core/clients/decorators/decrypt-p.d.ts +4 -0
  456. package/_types/core/clients/decorators/decrypt-p.d.ts.map +1 -0
  457. package/_types/core/clients/decorators/decrypt.d.ts +4 -2
  458. package/_types/core/clients/decorators/decrypt.d.ts.map +1 -1
  459. package/_types/core/clients/decorators/encrypt-p.d.ts +2 -3
  460. package/_types/core/clients/decorators/encrypt-p.d.ts.map +1 -1
  461. package/_types/core/clients/decorators/encrypt.d.ts +4 -2
  462. package/_types/core/clients/decorators/encrypt.d.ts.map +1 -1
  463. package/_types/core/coprocessor/ZkProof-p.d.ts +9 -2
  464. package/_types/core/coprocessor/ZkProof-p.d.ts.map +1 -1
  465. package/_types/core/coprocessor/ZkProofBuilder-p.d.ts +3 -1
  466. package/_types/core/coprocessor/ZkProofBuilder-p.d.ts.map +1 -1
  467. package/_types/core/coprocessor/encrypt.d.ts +2 -0
  468. package/_types/core/coprocessor/encrypt.d.ts.map +1 -1
  469. package/_types/core/errors/RelayerResponseStatusError.d.ts +7 -1
  470. package/_types/core/errors/RelayerResponseStatusError.d.ts.map +1 -1
  471. package/_types/core/host-contracts/HostContractVersion-p.d.ts +18 -1
  472. package/_types/core/host-contracts/HostContractVersion-p.d.ts.map +1 -1
  473. package/_types/core/host-contracts/KmsSignersContext-p.d.ts +2 -1
  474. package/_types/core/host-contracts/KmsSignersContext-p.d.ts.map +1 -1
  475. package/_types/core/host-contracts/abi-fragments/fragments.d.ts +5 -0
  476. package/_types/core/host-contracts/abi-fragments/fragments.d.ts.map +1 -1
  477. package/_types/core/host-contracts/checkAllowedForDecryption.d.ts +1 -1
  478. package/_types/core/host-contracts/checkAllowedForDecryption.d.ts.map +1 -1
  479. package/_types/core/host-contracts/checkDelegation.d.ts +1 -1
  480. package/_types/core/host-contracts/checkDelegation.d.ts.map +1 -1
  481. package/_types/core/host-contracts/checkPersistAllowed.d.ts +1 -1
  482. package/_types/core/host-contracts/checkPersistAllowed.d.ts.map +1 -1
  483. package/_types/core/host-contracts/getAclAddress-p.d.ts +1 -1
  484. package/_types/core/host-contracts/getAclAddress-p.d.ts.map +1 -1
  485. package/_types/core/host-contracts/getCurrentKmsContextAndEpoch-p.d.ts +30 -0
  486. package/_types/core/host-contracts/getCurrentKmsContextAndEpoch-p.d.ts.map +1 -0
  487. package/_types/core/host-contracts/getCurrentKmsContextId-p.d.ts +1 -1
  488. package/_types/core/host-contracts/getCurrentKmsContextId-p.d.ts.map +1 -1
  489. package/_types/core/host-contracts/getFhevmExecutorAddress-p.d.ts +1 -1
  490. package/_types/core/host-contracts/getFhevmExecutorAddress-p.d.ts.map +1 -1
  491. package/_types/core/host-contracts/getHandleVersion-p.d.ts +1 -1
  492. package/_types/core/host-contracts/getHandleVersion-p.d.ts.map +1 -1
  493. package/_types/core/host-contracts/getHcuLimitAddress-p.d.ts +1 -1
  494. package/_types/core/host-contracts/getHcuLimitAddress-p.d.ts.map +1 -1
  495. package/_types/core/host-contracts/getInputVerifierAddress-p.d.ts +1 -1
  496. package/_types/core/host-contracts/getInputVerifierAddress-p.d.ts.map +1 -1
  497. package/_types/core/host-contracts/getKmsContextSignersAndThreshold-p.d.ts +1 -1
  498. package/_types/core/host-contracts/getKmsContextSignersAndThreshold-p.d.ts.map +1 -1
  499. package/_types/core/host-contracts/getKmsContextSignersAndThresholdFromExtraData-p.d.ts +1 -1
  500. package/_types/core/host-contracts/getKmsContextSignersAndThresholdFromExtraData-p.d.ts.map +1 -1
  501. package/_types/core/host-contracts/getSignersForKmsContext-p.d.ts +2 -2
  502. package/_types/core/host-contracts/getSignersForKmsContext-p.d.ts.map +1 -1
  503. package/_types/core/host-contracts/isAllowedForDecryption.d.ts +1 -1
  504. package/_types/core/host-contracts/isAllowedForDecryption.d.ts.map +1 -1
  505. package/_types/core/host-contracts/isHandleDelegatedForUserDecryption-p.d.ts +1 -1
  506. package/_types/core/host-contracts/isHandleDelegatedForUserDecryption-p.d.ts.map +1 -1
  507. package/_types/core/host-contracts/isUserDecryptable.d.ts +1 -1
  508. package/_types/core/host-contracts/isUserDecryptable.d.ts.map +1 -1
  509. package/_types/core/host-contracts/persistAllowed.d.ts +1 -1
  510. package/_types/core/host-contracts/persistAllowed.d.ts.map +1 -1
  511. package/_types/core/host-contracts/readKmsSignersContext-p.d.ts +25 -7
  512. package/_types/core/host-contracts/readKmsSignersContext-p.d.ts.map +1 -1
  513. package/_types/core/key/FheEncryptionKeyWasm-p.d.ts +3 -1
  514. package/_types/core/key/FheEncryptionKeyWasm-p.d.ts.map +1 -1
  515. package/_types/core/key/deserializeFheEncryptionKey.d.ts +2 -0
  516. package/_types/core/key/deserializeFheEncryptionKey.d.ts.map +1 -1
  517. package/_types/core/key/fetchFheEncryptionKey.d.ts +3 -1
  518. package/_types/core/key/fetchFheEncryptionKey.d.ts.map +1 -1
  519. package/_types/core/key/fetchFheEncryptionKeyBytes.d.ts.map +1 -1
  520. package/_types/core/key/serializeFheEncryptionKey.d.ts.map +1 -1
  521. package/_types/core/kms/KmsSigncryptedShares-p.d.ts.map +1 -1
  522. package/_types/core/kms/SignedDecryptionPermit-p.d.ts.map +1 -1
  523. package/_types/core/kms/TransportKeyPair-p.d.ts +9 -0
  524. package/_types/core/kms/TransportKeyPair-p.d.ts.map +1 -1
  525. package/_types/core/kms/createKmsUserDecryptEip712.d.ts.map +1 -1
  526. package/_types/core/kms/createKmsUserDecryptEip712V2.d.ts +15 -0
  527. package/_types/core/kms/createKmsUserDecryptEip712V2.d.ts.map +1 -0
  528. package/_types/core/kms/{decryptKmsSignedcryptedShares-p.d.ts → decryptKmsSigncryptedShares-p.d.ts} +4 -2
  529. package/_types/core/kms/decryptKmsSigncryptedShares-p.d.ts.map +1 -0
  530. package/_types/core/kms/decryptValuesFromPairs.d.ts +2 -0
  531. package/_types/core/kms/decryptValuesFromPairs.d.ts.map +1 -1
  532. package/_types/core/kms/{fetchKmsSignedcryptedShares-p.d.ts → fetchKmsSigncryptedShares-p.d.ts} +2 -2
  533. package/_types/core/kms/fetchKmsSigncryptedShares-p.d.ts.map +1 -0
  534. package/_types/core/kms/kmsExtraData.d.ts +9 -2
  535. package/_types/core/kms/kmsExtraData.d.ts.map +1 -1
  536. package/_types/core/kms/kmsUserDecryptEip712V2Types.d.ts +3 -0
  537. package/_types/core/kms/kmsUserDecryptEip712V2Types.d.ts.map +1 -0
  538. package/_types/core/kms/publicDecrypt.d.ts.map +1 -1
  539. package/_types/core/modules/decrypt/mock.d.ts +1 -2
  540. package/_types/core/modules/decrypt/mock.d.ts.map +1 -1
  541. package/_types/core/modules/decrypt/module/api-p.d.ts +2 -2
  542. package/_types/core/modules/decrypt/module/api-p.d.ts.map +1 -1
  543. package/_types/core/modules/decrypt/module/index.d.ts +1 -2
  544. package/_types/core/modules/decrypt/module/index.d.ts.map +1 -1
  545. package/_types/core/modules/decrypt/module/init-p.d.ts +3 -3
  546. package/_types/core/modules/decrypt/module/init-p.d.ts.map +1 -1
  547. package/_types/core/modules/decrypt/types.d.ts +33 -34
  548. package/_types/core/modules/decrypt/types.d.ts.map +1 -1
  549. package/_types/core/modules/encrypt/mock.d.ts.map +1 -1
  550. package/_types/core/modules/encrypt/module/api-p.d.ts.map +1 -1
  551. package/_types/core/modules/encrypt/module/index.d.ts.map +1 -1
  552. package/_types/core/modules/encrypt/module/init-p.d.ts +11 -4
  553. package/_types/core/modules/encrypt/module/init-p.d.ts.map +1 -1
  554. package/_types/core/modules/encrypt/types.d.ts +31 -2
  555. package/_types/core/modules/encrypt/types.d.ts.map +1 -1
  556. package/_types/core/modules/relayer/module/RelayerAsyncRequest.d.ts +18 -0
  557. package/_types/core/modules/relayer/module/RelayerAsyncRequest.d.ts.map +1 -1
  558. package/_types/core/modules/relayer/module/fetchFheEncryptionKeySource.d.ts.map +1 -1
  559. package/_types/core/modules/relayer/module/readErrorMessage.d.ts +26 -0
  560. package/_types/core/modules/relayer/module/readErrorMessage.d.ts.map +1 -0
  561. package/_types/core/runtime/CoreFhevm-p.d.ts +15 -4
  562. package/_types/core/runtime/CoreFhevm-p.d.ts.map +1 -1
  563. package/_types/core/runtime/HyperWasmSolver-p.d.ts +71 -0
  564. package/_types/core/runtime/HyperWasmSolver-p.d.ts.map +1 -0
  565. package/_types/core/runtime/ProtocolVersionResolver-p.d.ts +29 -0
  566. package/_types/core/runtime/ProtocolVersionResolver-p.d.ts.map +1 -0
  567. package/_types/core/runtime/initFhevmRuntime-p.d.ts.map +1 -1
  568. package/_types/core/runtime/resolveFhevmVersions-p.d.ts +21 -0
  569. package/_types/core/runtime/resolveFhevmVersions-p.d.ts.map +1 -0
  570. package/_types/core/runtimeConfig-p.d.ts +3 -2
  571. package/_types/core/runtimeConfig-p.d.ts.map +1 -1
  572. package/_types/core/types/auth.d.ts +12 -1
  573. package/_types/core/types/auth.d.ts.map +1 -1
  574. package/_types/core/types/coreFhevmClient.d.ts +72 -2
  575. package/_types/core/types/coreFhevmClient.d.ts.map +1 -1
  576. package/_types/core/types/coreFhevmRuntime.d.ts +3 -9
  577. package/_types/core/types/coreFhevmRuntime.d.ts.map +1 -1
  578. package/_types/core/types/fheEncryptionKey.d.ts +2 -0
  579. package/_types/core/types/fheEncryptionKey.d.ts.map +1 -1
  580. package/_types/core/types/fhevmChain.d.ts +3 -0
  581. package/_types/core/types/fhevmChain.d.ts.map +1 -1
  582. package/_types/core/types/hostContract.d.ts +1 -0
  583. package/_types/core/types/hostContract.d.ts.map +1 -1
  584. package/_types/core/types/index.d.ts +1 -1
  585. package/_types/core/types/index.d.ts.map +1 -1
  586. package/_types/core/types/kms-p.d.ts +2 -0
  587. package/_types/core/types/kms-p.d.ts.map +1 -1
  588. package/_types/core/types/kms.d.ts +71 -21
  589. package/_types/core/types/kms.d.ts.map +1 -1
  590. package/_types/core/types/kmsSignersContext.d.ts +8 -0
  591. package/_types/core/types/kmsSignersContext.d.ts.map +1 -1
  592. package/_types/core/types/logger.d.ts +1 -0
  593. package/_types/core/types/logger.d.ts.map +1 -1
  594. package/_types/core/types/moduleVersions.d.ts +25 -0
  595. package/_types/core/types/moduleVersions.d.ts.map +1 -0
  596. package/_types/core/types/tkms-p.d.ts +2 -0
  597. package/_types/core/types/tkms-p.d.ts.map +1 -1
  598. package/_types/core/types/wasmAssets.d.ts +2 -0
  599. package/_types/core/types/wasmAssets.d.ts.map +1 -0
  600. package/_types/core/types/{zkProofBuilder.d.ts → zkProofBuilder-p.d.ts} +8 -3
  601. package/_types/core/types/zkProofBuilder-p.d.ts.map +1 -0
  602. package/_types/core/utils-p/decrypt/verifyTkmsPublicKey.d.ts +2 -0
  603. package/_types/core/utils-p/decrypt/verifyTkmsPublicKey.d.ts.map +1 -1
  604. package/_types/ethers/cleartext/createFhevmCleartextDecryptClient.d.ts +2 -2
  605. package/_types/ethers/cleartext/createFhevmCleartextDecryptClient.d.ts.map +1 -1
  606. package/_types/ethers/cleartext/createFhevmCleartextEncryptClient.d.ts +2 -2
  607. package/_types/ethers/cleartext/createFhevmCleartextEncryptClient.d.ts.map +1 -1
  608. package/_types/ethers/clients/createFhevmDecryptClient.d.ts +2 -2
  609. package/_types/ethers/clients/createFhevmDecryptClient.d.ts.map +1 -1
  610. package/_types/ethers/clients/createFhevmEncryptClient.d.ts +2 -2
  611. package/_types/ethers/clients/createFhevmEncryptClient.d.ts.map +1 -1
  612. package/_types/viem/cleartext/createFhevmCleartextDecryptClient.d.ts +2 -2
  613. package/_types/viem/cleartext/createFhevmCleartextDecryptClient.d.ts.map +1 -1
  614. package/_types/viem/cleartext/createFhevmCleartextEncryptClient.d.ts +2 -2
  615. package/_types/viem/cleartext/createFhevmCleartextEncryptClient.d.ts.map +1 -1
  616. package/_types/viem/clients/createFhevmDecryptClient.d.ts +2 -2
  617. package/_types/viem/clients/createFhevmDecryptClient.d.ts.map +1 -1
  618. package/_types/viem/clients/createFhevmEncryptClient.d.ts +2 -2
  619. package/_types/viem/clients/createFhevmEncryptClient.d.ts.map +1 -1
  620. package/_types/wasm/tfhe/v1.5.3/tfhe.d.ts +4 -0
  621. package/_types/wasm/tfhe/v1.6.1/tfhe.d.ts +4 -0
  622. package/_types/wasm/tfheModuleVersion-p.d.ts +1 -1
  623. package/_types/wasm/tfheModuleVersion-p.d.ts.map +1 -1
  624. package/_types/wasm/tkms/v0.13.10/kms_lib.d.ts +4 -0
  625. package/_types/wasm/tkms/v0.13.20-0/kms_lib.d.ts +4 -0
  626. package/_types/wasm/tkmsModuleVersion-p.d.ts +1 -1
  627. package/_types/wasm/tkmsModuleVersion-p.d.ts.map +1 -1
  628. package/core/_version.ts +1 -1
  629. package/core/actions/base/canDecryptPublicValue.ts +1 -1
  630. package/core/actions/base/canDecryptPublicValues.ts +1 -1
  631. package/core/actions/base/{fetchKmsSignedcryptedShares.ts → fetchKmsSigncryptedShares.ts} +16 -16
  632. package/core/actions/base/index.ts +5 -5
  633. package/core/actions/base/readKmsSignersContext.ts +2 -1
  634. package/core/actions/chain/parseSignedDecryptionPermit.ts +2 -2
  635. package/core/actions/chain/parseTransportKeyPair.ts +2 -1
  636. package/core/actions/decrypt/{decryptKmsSignedcryptedShares.ts → decryptKmsSigncryptedShares.ts} +12 -9
  637. package/core/actions/decrypt/decryptValue.ts +4 -1
  638. package/core/actions/decrypt/decryptValues.ts +4 -1
  639. package/core/actions/decrypt/decryptValuesFromPairs.ts +4 -1
  640. package/core/actions/decrypt/generateTransportKeyPair.ts +5 -3
  641. package/core/actions/decrypt/index.ts +4 -4
  642. package/core/actions/encrypt/encryptValue.ts +4 -1
  643. package/core/actions/encrypt/encryptValues.ts +4 -1
  644. package/core/actions/encrypt/generateZkProof.ts +9 -1
  645. package/core/actions/host/readFhevmExecutorContractData.ts +8 -8
  646. package/core/actions/host/readInputVerifierContractData.ts +2 -2
  647. package/core/actions/host/readKmsVerifierContractData.ts +8 -6
  648. package/core/actions/host/resolveFhevmConfig.ts +10 -1
  649. package/core/base/object.ts +38 -0
  650. package/core/base/semver.ts +231 -0
  651. package/core/base/uint.ts +33 -4
  652. package/core/chains/definitions/localTestnet.ts +3 -0
  653. package/core/chains/definitions/mainnet.ts +1 -0
  654. package/core/chains/definitions/sepolia.ts +6 -6
  655. package/core/clients/decorators/base.ts +8 -1
  656. package/core/clients/decorators/decrypt-p.ts +18 -0
  657. package/core/clients/decorators/decrypt.ts +10 -15
  658. package/core/clients/decorators/encrypt-p.ts +12 -7
  659. package/core/clients/decorators/encrypt.ts +6 -4
  660. package/core/coprocessor/ZkProof-p.ts +17 -5
  661. package/core/coprocessor/ZkProofBuilder-p.ts +5 -2
  662. package/core/coprocessor/encrypt.ts +6 -1
  663. package/core/errors/RelayerResponseStatusError.ts +14 -2
  664. package/core/host-contracts/HostContractVersion-p.ts +60 -3
  665. package/core/host-contracts/KmsSignersContext-p.ts +36 -5
  666. package/core/host-contracts/abi-fragments/fragments.ts +28 -0
  667. package/core/host-contracts/canDecryptValuesFromPairs.ts +1 -1
  668. package/core/host-contracts/checkAllowedForDecryption.ts +3 -3
  669. package/core/host-contracts/checkDelegation.ts +9 -9
  670. package/core/host-contracts/checkPersistAllowed.ts +10 -10
  671. package/core/host-contracts/getAclAddress-p.ts +2 -3
  672. package/core/host-contracts/getCurrentKmsContextAndEpoch-p.ts +92 -0
  673. package/core/host-contracts/getCurrentKmsContextId-p.ts +8 -8
  674. package/core/host-contracts/getFhevmExecutorAddress-p.ts +2 -2
  675. package/core/host-contracts/getHandleVersion-p.ts +2 -3
  676. package/core/host-contracts/getHcuLimitAddress-p.ts +2 -3
  677. package/core/host-contracts/getInputVerifierAddress-p.ts +2 -3
  678. package/core/host-contracts/getKmsContextSignersAndThreshold-p.ts +7 -9
  679. package/core/host-contracts/getKmsContextSignersAndThresholdFromExtraData-p.ts +6 -7
  680. package/core/host-contracts/getSignersForKmsContext-p.ts +6 -8
  681. package/core/host-contracts/isAllowedForDecryption.ts +6 -6
  682. package/core/host-contracts/isHandleDelegatedForUserDecryption-p.ts +7 -7
  683. package/core/host-contracts/isUserDecryptable.ts +3 -3
  684. package/core/host-contracts/persistAllowed.ts +6 -6
  685. package/core/host-contracts/readKmsSignersContext-p.ts +131 -41
  686. package/core/key/FheEncryptionKeyWasm-p.ts +24 -3
  687. package/core/key/deserializeFheEncryptionKey.ts +8 -1
  688. package/core/key/fetchFheEncryptionKey.ts +8 -4
  689. package/core/key/fetchFheEncryptionKeyBytes.ts +4 -2
  690. package/core/key/serializeFheEncryptionKey.ts +8 -2
  691. package/core/kms/KmsSigncryptedShares-p.ts +11 -1
  692. package/core/kms/SignedDecryptionPermit-p.ts +6 -1
  693. package/core/kms/TransportKeyPair-p.ts +56 -10
  694. package/core/kms/createKmsUserDecryptEip712.ts +4 -0
  695. package/core/kms/createKmsUserDecryptEip712V2.ts +159 -0
  696. package/core/kms/{decryptKmsSignedcryptedShares-p.ts → decryptKmsSigncryptedShares-p.ts} +12 -2
  697. package/core/kms/decryptValuesFromPairs.ts +6 -4
  698. package/core/kms/{fetchKmsSignedcryptedShares-p.ts → fetchKmsSigncryptedShares-p.ts} +12 -5
  699. package/core/kms/kmsExtraData.ts +82 -13
  700. package/core/kms/kmsUserDecryptEip712V2Types.ts +31 -0
  701. package/core/kms/publicDecrypt.ts +5 -3
  702. package/core/modules/decrypt/mock.ts +0 -35
  703. package/core/modules/decrypt/module/api-p.ts +88 -17
  704. package/core/modules/decrypt/module/index.ts +37 -34
  705. package/core/modules/decrypt/module/init-p.ts +60 -28
  706. package/core/modules/decrypt/types.ts +37 -65
  707. package/core/modules/encrypt/mock.ts +34 -4
  708. package/core/modules/encrypt/module/api-p.ts +66 -15
  709. package/core/modules/encrypt/module/index.ts +5 -3
  710. package/core/modules/encrypt/module/init-p.ts +99 -40
  711. package/core/modules/encrypt/types.ts +34 -2
  712. package/core/modules/relayer/cleartext/fetchDelegatedUserDecrypt.ts +2 -2
  713. package/core/modules/relayer/cleartext/fetchUserDecrypt.ts +2 -2
  714. package/core/modules/relayer/module/RelayerAsyncRequest.ts +60 -4
  715. package/core/modules/relayer/module/fetchFheEncryptionKeySource.ts +9 -1
  716. package/core/modules/relayer/module/readErrorMessage.ts +56 -0
  717. package/core/runtime/CoreFhevm-p.ts +247 -22
  718. package/core/runtime/HyperWasmSolver-p.ts +417 -0
  719. package/core/runtime/ProtocolVersionResolver-p.ts +463 -0
  720. package/core/runtime/initFhevmDecryptRuntime-p.ts +1 -1
  721. package/core/runtime/initFhevmEncryptRuntime-p.ts +1 -1
  722. package/core/runtime/initFhevmRuntime-p.ts +4 -1
  723. package/core/runtime/resolveFhevmVersions-p.ts +85 -0
  724. package/core/runtimeConfig-p.ts +17 -2
  725. package/core/types/auth.ts +12 -1
  726. package/core/types/coreFhevmClient.ts +89 -4
  727. package/core/types/coreFhevmRuntime.ts +3 -18
  728. package/core/types/fheEncryptionKey.ts +2 -0
  729. package/core/types/fhevmChain.ts +3 -0
  730. package/core/types/hostContract.ts +1 -0
  731. package/core/types/index.ts +1 -1
  732. package/core/types/kms-p.ts +2 -0
  733. package/core/types/kms.ts +48 -18
  734. package/core/types/kmsSignersContext.ts +8 -0
  735. package/core/types/logger.ts +1 -0
  736. package/core/types/moduleVersions.ts +35 -0
  737. package/core/types/tkms-p.ts +3 -0
  738. package/core/types/wasmAssets.ts +6 -0
  739. package/core/types/{zkProofBuilder.ts → zkProofBuilder-p.ts} +3 -2
  740. package/core/utils-p/decrypt/verifyTkmsPublicKey.ts +3 -1
  741. package/ethers/cleartext/createFhevmCleartextDecryptClient.ts +2 -2
  742. package/ethers/cleartext/createFhevmCleartextEncryptClient.ts +2 -2
  743. package/ethers/clients/createFhevmDecryptClient.ts +2 -2
  744. package/ethers/clients/createFhevmEncryptClient.ts +2 -2
  745. package/ethers/internal/config.ts +2 -30
  746. package/package.json +1 -1
  747. package/viem/cleartext/createFhevmCleartextDecryptClient.ts +2 -2
  748. package/viem/cleartext/createFhevmCleartextEncryptClient.ts +2 -2
  749. package/viem/clients/createFhevmDecryptClient.ts +2 -2
  750. package/viem/clients/createFhevmEncryptClient.ts +2 -2
  751. package/viem/internal/config.ts +2 -30
  752. package/wasm/tfhe/v1.5.3/tfhe.d.ts +4 -0
  753. package/wasm/tfhe/v1.5.3/tfhe.js +8 -0
  754. package/wasm/tfhe/v1.6.0-dev/tfhe.d.ts +4 -0
  755. package/wasm/tfhe/v1.6.0-dev/tfhe.js +8 -0
  756. package/wasm/tfhe/v1.6.1/tfhe.d.ts +4 -0
  757. package/wasm/tfhe/v1.6.1/tfhe.js +8 -0
  758. package/wasm/tfheModuleVersion-p.ts +1 -1
  759. package/wasm/tkms/v0.13.10/kms_lib.d.ts +4 -0
  760. package/wasm/tkms/v0.13.10/kms_lib.js +8 -0
  761. package/wasm/tkms/v0.13.20-0/kms_lib.d.ts +4 -0
  762. package/wasm/tkms/v0.13.20-0/kms_lib.js +8 -0
  763. package/wasm/tkmsModuleVersion-p.ts +1 -1
  764. package/wasm/wasmBaseUrl.js +69 -4
  765. package/_cjs/core/actions/base/fetchKmsSignedcryptedShares.js.map +0 -1
  766. package/_cjs/core/actions/decrypt/decryptKmsSignedcryptedShares.js +0 -11
  767. package/_cjs/core/actions/decrypt/decryptKmsSignedcryptedShares.js.map +0 -1
  768. package/_cjs/core/kms/decryptKmsSignedcryptedShares-p.js.map +0 -1
  769. package/_cjs/core/kms/fetchKmsSignedcryptedShares-p.js.map +0 -1
  770. package/_cjs/core/types/fhevmDecryptionKey.js.map +0 -1
  771. package/_cjs/core/types/fhevmUser.js.map +0 -1
  772. package/_cjs/core/types/zkProofBuilder.js.map +0 -1
  773. package/_esm/core/actions/base/fetchKmsSignedcryptedShares.js.map +0 -1
  774. package/_esm/core/actions/decrypt/decryptKmsSignedcryptedShares.js +0 -9
  775. package/_esm/core/actions/decrypt/decryptKmsSignedcryptedShares.js.map +0 -1
  776. package/_esm/core/kms/decryptKmsSignedcryptedShares-p.js.map +0 -1
  777. package/_esm/core/kms/fetchKmsSignedcryptedShares-p.js.map +0 -1
  778. package/_esm/core/types/fhevmDecryptionKey.js +0 -2
  779. package/_esm/core/types/fhevmDecryptionKey.js.map +0 -1
  780. package/_esm/core/types/fhevmUser.js +0 -2
  781. package/_esm/core/types/fhevmUser.js.map +0 -1
  782. package/_esm/core/types/zkProofBuilder.js +0 -2
  783. package/_esm/core/types/zkProofBuilder.js.map +0 -1
  784. package/_types/core/actions/base/fetchKmsSignedcryptedShares.d.ts.map +0 -1
  785. package/_types/core/actions/decrypt/decryptKmsSignedcryptedShares.d.ts.map +0 -1
  786. package/_types/core/kms/decryptKmsSignedcryptedShares-p.d.ts.map +0 -1
  787. package/_types/core/kms/fetchKmsSignedcryptedShares-p.d.ts.map +0 -1
  788. package/_types/core/types/fhevmDecryptionKey.d.ts +0 -4
  789. package/_types/core/types/fhevmDecryptionKey.d.ts.map +0 -1
  790. package/_types/core/types/fhevmUser.d.ts +0 -7
  791. package/_types/core/types/fhevmUser.d.ts.map +0 -1
  792. package/_types/core/types/zkProofBuilder.d.ts.map +0 -1
  793. package/core/types/fhevmDecryptionKey.ts +0 -8
  794. package/core/types/fhevmUser.ts +0 -7
@@ -2,8 +2,10 @@ import type { Fhevm } 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 { ZkProof } from '../../types/zkProof-p.js';
5
+ import type { BytesHex } from '../../types/primitives.js';
5
6
  import { createTypedValue } from '../../base/typedValue.js';
6
7
  import { createZkProofBuilder } from '../../coprocessor/ZkProofBuilder-p.js';
8
+ import { asFhevmWithTfheVersion } from '../../runtime/CoreFhevm-p.js';
7
9
 
8
10
  ////////////////////////////////////////////////////////////////////////////////
9
11
 
@@ -22,12 +24,18 @@ export async function generateZkProof(
22
24
  parameters: GenerateZkProofParameters,
23
25
  ): Promise<GenerateZkProofReturnType> {
24
26
  const { values, contractAddress, userAddress } = parameters;
27
+ const hardCodedExtraData = '0x00' as BytesHex;
28
+
25
29
  const builder = createZkProofBuilder();
26
30
  for (const value of values) {
27
31
  builder.addTypedValue(createTypedValue(value));
28
32
  }
29
- return builder.build(fhevm, {
33
+
34
+ const f = asFhevmWithTfheVersion(fhevm);
35
+
36
+ return builder.build(f, {
30
37
  contractAddress,
31
38
  userAddress,
39
+ extraData: hardCodedExtraData,
32
40
  });
33
41
  }
@@ -10,7 +10,7 @@ import { getAclAddress } from '../../host-contracts/getAclAddress-p.js';
10
10
  import { getHandleVersion } from '../../host-contracts/getHandleVersion-p.js';
11
11
  import { getHcuLimitAddress } from '../../host-contracts/getHcuLimitAddress-p.js';
12
12
  import { assertIsHostContractVersionOf } from '../../host-contracts/HostContractVersion-p.js';
13
- import { getVersion } from '../../host-contracts/HostContractVersion-p.js';
13
+ import { getHostContractVersion } from '../../host-contracts/HostContractVersion-p.js';
14
14
  import { getInputVerifierAddress } from '../../host-contracts/getInputVerifierAddress-p.js';
15
15
 
16
16
  export type ReadFhevmExecutorContractDataParameters = {
@@ -22,7 +22,7 @@ export async function readFhevmExecutorContractData(
22
22
  fhevm: Fhevm,
23
23
  parameters: ReadFhevmExecutorContractDataParameters,
24
24
  ): Promise<ReadFhevmExecutorContractDataReturnType> {
25
- const fhevmExecutorContractAddress = parameters.address;
25
+ const fhevmExecutorAddress = parameters.address;
26
26
 
27
27
  ////////////////////////////////////////////////////////////////////////////
28
28
  //
@@ -36,11 +36,11 @@ export async function readFhevmExecutorContractData(
36
36
  ////////////////////////////////////////////////////////////////////////////
37
37
 
38
38
  const rpcCalls = [
39
- () => getVersion(fhevm, parameters),
40
- () => getAclAddress(fhevm, parameters),
41
- () => getHcuLimitAddress(fhevm, parameters),
42
- () => getInputVerifierAddress(fhevm, parameters),
43
- () => getHandleVersion(fhevm, parameters),
39
+ () => getHostContractVersion(fhevm, parameters),
40
+ () => getAclAddress(fhevm, { fhevmExecutorAddress }),
41
+ () => getHcuLimitAddress(fhevm, { fhevmExecutorAddress }),
42
+ () => getInputVerifierAddress(fhevm, { fhevmExecutorAddress }),
43
+ () => getHandleVersion(fhevm, { fhevmExecutorAddress }),
44
44
  ];
45
45
 
46
46
  const res = await executeWithBatching<unknown>(rpcCalls, fhevm.options.batchRpcCalls);
@@ -63,7 +63,7 @@ export async function readFhevmExecutorContractData(
63
63
 
64
64
  const data = createFhevmExecutorContractData(new WeakRef(fhevm.runtime), {
65
65
  version: contractVersion,
66
- address: fhevmExecutorContractAddress,
66
+ address: fhevmExecutorAddress,
67
67
  aclContractAddress,
68
68
  inputVerifierContractAddress,
69
69
  hcuLimitContractAddress,
@@ -6,7 +6,7 @@ import type { CoprocessorSignersContext } from '../../types/coprocessorSignersCo
6
6
  import { eip712Domain, type Eip712DomainReturnType } from '../../host-contracts/eip712Domain-p.js';
7
7
  import { assertIsHostContractVersionOf } from '../../host-contracts/HostContractVersion-p.js';
8
8
  import { readCoprocessorSignersContext } from '../../host-contracts/readCoprocessorSignersContext-p.js';
9
- import { getVersion } from '../../host-contracts/HostContractVersion-p.js';
9
+ import { getHostContractVersion } from '../../host-contracts/HostContractVersion-p.js';
10
10
  import { executeWithBatching } from '../../base/promise.js';
11
11
  import { assertIsCoprocessorEip712Domain } from '../../coprocessor/assertIsCoprocessorEip712Domain.js';
12
12
  import { createInputVerifierContractData } from '../../host-contracts/InputVerifierContractData-p.js';
@@ -39,7 +39,7 @@ export async function readInputVerifierContractData(
39
39
  ////////////////////////////////////////////////////////////////////////////
40
40
 
41
41
  const rpcCalls = [
42
- () => getVersion(fhevm, parameters),
42
+ () => getHostContractVersion(fhevm, parameters),
43
43
  () => eip712Domain(fhevm, parameters),
44
44
  () => readCoprocessorSignersContext(fhevm, parameters),
45
45
  ];
@@ -9,13 +9,14 @@ import { createKmsVerifierContractData } from '../../host-contracts/KmsVerifierC
9
9
  import { assertIsKmsEip712Domain } from '../../kms/createKmsEip712Domain.js';
10
10
  import { eip712Domain } from '../../host-contracts/eip712Domain-p.js';
11
11
  import { assertIsHostContractVersionOf } from '../../host-contracts/HostContractVersion-p.js';
12
- import { getVersion } from '../../host-contracts/HostContractVersion-p.js';
12
+ import { getHostContractVersion } from '../../host-contracts/HostContractVersion-p.js';
13
13
  import { readKmsSignersContext } from '../../host-contracts/readKmsSignersContext-p.js';
14
14
 
15
15
  ////////////////////////////////////////////////////////////////////////////////
16
16
 
17
17
  export type ReadKmsVerifierContractDataParameters = {
18
18
  readonly address: ChecksummedAddress;
19
+ readonly protocolConfigAddress: ChecksummedAddress | undefined;
19
20
  };
20
21
 
21
22
  export type ReadKmsVerifierContractDataReturnType = KmsVerifierContractData;
@@ -26,7 +27,8 @@ export async function readKmsVerifierContractData(
26
27
  fhevm: Fhevm,
27
28
  parameters: ReadKmsVerifierContractDataParameters,
28
29
  ): Promise<ReadKmsVerifierContractDataReturnType> {
29
- const kmsVerifierContractAddress = parameters.address;
30
+ const kmsVerifierAddress = parameters.address;
31
+ const protocolConfigAddress = parameters.protocolConfigAddress;
30
32
 
31
33
  ////////////////////////////////////////////////////////////////////////////
32
34
  //
@@ -40,9 +42,9 @@ export async function readKmsVerifierContractData(
40
42
  ////////////////////////////////////////////////////////////////////////////
41
43
 
42
44
  const rpcCalls = [
43
- () => getVersion(fhevm, parameters),
45
+ () => getHostContractVersion(fhevm, parameters),
44
46
  () => eip712Domain(fhevm, parameters),
45
- () => readKmsSignersContext(fhevm, parameters),
47
+ () => readKmsSignersContext(fhevm, { kmsVerifierAddress, protocolConfigAddress }),
46
48
  ];
47
49
 
48
50
  const res = await executeWithBatching<unknown>(rpcCalls, fhevm.options.batchRpcCalls);
@@ -59,13 +61,13 @@ export async function readKmsVerifierContractData(
59
61
  throw new Error(`Invalid KMSVerifier EIP-712 domain.`, { cause: e });
60
62
  }
61
63
 
62
- if (eip712DomainRes.verifyingContract.toLowerCase() === kmsVerifierContractAddress.toLowerCase()) {
64
+ if (eip712DomainRes.verifyingContract.toLowerCase() === kmsVerifierAddress.toLowerCase()) {
63
65
  throw new Error(`Invalid KMSVerifier EIP-712 domain. Unexpected verifyingContract.`);
64
66
  }
65
67
 
66
68
  const data = createKmsVerifierContractData(new WeakRef(fhevm.runtime), {
67
69
  version: contractVersion,
68
- address: kmsVerifierContractAddress,
70
+ address: kmsVerifierAddress,
69
71
  eip712Domain: eip712DomainRes,
70
72
  kmsSignerThreshold: kmsSignersContext.threshold,
71
73
  kmsSigners: kmsSignersContext.signers,
@@ -29,6 +29,7 @@ export type ResolveFhevmConfigParameters = {
29
29
  readonly hcuLimit?: OptionalChainContract | undefined;
30
30
  readonly inputVerifier?: OptionalChainContract | undefined;
31
31
  readonly kmsVerifier: { readonly address: string };
32
+ readonly protocolConfig: OptionalChainContract | undefined;
32
33
  };
33
34
  readonly gateway?:
34
35
  | {
@@ -52,6 +53,7 @@ export type ResolveFhevmConfigReturnType = {
52
53
  readonly fhevmExecutor: FhevmExecutorContractData;
53
54
  readonly inputVerifier: InputVerifierContractData;
54
55
  readonly kmsVerifier: KmsVerifierContractData;
56
+ readonly protocolConfig: ChecksummedAddress | undefined;
55
57
  };
56
58
 
57
59
  ////////////////////////////////////////////////////////////////////////////////
@@ -64,6 +66,11 @@ export async function resolveFhevmConfig(
64
66
  const kmsVerifierAddress = parameters.fhevm.contracts.kmsVerifier.address;
65
67
  assertIsAddress(kmsVerifierAddress, {});
66
68
 
69
+ const protocolConfigAddress = parameters.fhevm.contracts.protocolConfig?.address;
70
+ if (protocolConfigAddress !== undefined) {
71
+ assertIsAddress(protocolConfigAddress, {});
72
+ }
73
+
67
74
  const id: Uint64BigInt = await resolveChainId(fhevm, parameters);
68
75
  const fhevmExecutorData = await _resolveFhevmExecutor(fhevm, parameters.fhevm.contracts);
69
76
 
@@ -86,6 +93,7 @@ export async function resolveFhevmConfig(
86
93
  () =>
87
94
  readKmsVerifierContractData(fhevm, {
88
95
  address: addressToChecksummedAddress(kmsVerifierAddress),
96
+ protocolConfigAddress: protocolConfigAddress ? addressToChecksummedAddress(protocolConfigAddress) : undefined,
89
97
  }),
90
98
  ];
91
99
 
@@ -120,6 +128,7 @@ export async function resolveFhevmConfig(
120
128
  fhevmExecutor: fhevmExecutorData,
121
129
  inputVerifier: inputVerifierData,
122
130
  kmsVerifier: kmsVerifierData,
131
+ protocolConfig: protocolConfigAddress ? addressToChecksummedAddress(protocolConfigAddress) : undefined,
123
132
  };
124
133
 
125
134
  return Object.freeze(returnValue);
@@ -150,7 +159,7 @@ async function _resolveFhevmExecutor(
150
159
 
151
160
  if (acl !== undefined) {
152
161
  const aclFhevmExecutor = await getFhevmExecutorAddress(fhevm, {
153
- address: addressToChecksummedAddress(acl),
162
+ aclAddress: addressToChecksummedAddress(acl),
154
163
  });
155
164
  if (fhevmExecutor !== undefined) {
156
165
  if (aclFhevmExecutor !== fhevmExecutor) {
@@ -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
+ }
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
+ }