@fhevm/sdk 1.0.0-alpha.1 → 1.0.0-alpha.3

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 (648) hide show
  1. package/_cjs/core/_version.js +1 -1
  2. package/_cjs/core/actions/base/fetchVerifiedInputProof.js +1 -1
  3. package/_cjs/core/actions/base/fetchVerifiedInputProof.js.map +1 -1
  4. package/_cjs/core/actions/base/signDecryptionPermit.js.map +1 -1
  5. package/_cjs/core/actions/chain/index.js +5 -5
  6. package/_cjs/core/actions/chain/index.js.map +1 -1
  7. package/_cjs/core/actions/chain/parseSignedDecryptionPermit.js +2 -3
  8. package/_cjs/core/actions/chain/parseSignedDecryptionPermit.js.map +1 -1
  9. package/_cjs/core/actions/chain/parseTransportKeypair.js +1 -2
  10. package/_cjs/core/actions/chain/parseTransportKeypair.js.map +1 -1
  11. package/_cjs/core/actions/decrypt/decryptValue.js +4 -1
  12. package/_cjs/core/actions/decrypt/decryptValue.js.map +1 -1
  13. package/_cjs/core/actions/decrypt/decryptValues.js +4 -1
  14. package/_cjs/core/actions/decrypt/decryptValues.js.map +1 -1
  15. package/_cjs/core/actions/decrypt/decryptValuesFromPairs.js +4 -1
  16. package/_cjs/core/actions/decrypt/decryptValuesFromPairs.js.map +1 -1
  17. package/_cjs/core/actions/decrypt/index.js.map +1 -1
  18. package/_cjs/core/actions/host/getUserDecryptionDelegationExpirationDate.js +12 -14
  19. package/_cjs/core/actions/host/getUserDecryptionDelegationExpirationDate.js.map +1 -1
  20. package/_cjs/core/base/bytes.js +8 -0
  21. package/_cjs/core/base/bytes.js.map +1 -1
  22. package/_cjs/core/base/sign.js +50 -0
  23. package/_cjs/core/base/sign.js.map +1 -0
  24. package/_cjs/core/base/typedValue.js +17 -0
  25. package/_cjs/core/base/typedValue.js.map +1 -1
  26. package/_cjs/core/base/uint.js +29 -0
  27. package/_cjs/core/base/uint.js.map +1 -1
  28. package/_cjs/core/clients/decorators/decrypt.js +3 -3
  29. package/_cjs/core/clients/decorators/decrypt.js.map +1 -1
  30. package/_cjs/core/coprocessor/ZkProof-p.js +17 -11
  31. package/_cjs/core/coprocessor/ZkProof-p.js.map +1 -1
  32. package/_cjs/core/coprocessor/ZkProofBuilder-p.js +6 -4
  33. package/_cjs/core/coprocessor/ZkProofBuilder-p.js.map +1 -1
  34. package/_cjs/core/coprocessor/encrypt.js +1 -3
  35. package/_cjs/core/coprocessor/encrypt.js.map +1 -1
  36. package/_cjs/core/coprocessor/fetchVerifiedInputProof.js +3 -4
  37. package/_cjs/core/coprocessor/fetchVerifiedInputProof.js.map +1 -1
  38. package/_cjs/core/handle/FheType.js +5 -2
  39. package/_cjs/core/handle/FheType.js.map +1 -1
  40. package/_cjs/core/host-contracts/KmsSignersContext-p.js +1 -1
  41. package/_cjs/core/host-contracts/KmsSignersContext-p.js.map +1 -1
  42. package/_cjs/core/host-contracts/checkDelegation.js +74 -0
  43. package/_cjs/core/host-contracts/checkDelegation.js.map +1 -0
  44. package/_cjs/core/host-contracts/getUserDecryptionDelegationExpirationDate.js +21 -0
  45. package/_cjs/core/host-contracts/getUserDecryptionDelegationExpirationDate.js.map +1 -0
  46. package/_cjs/core/host-contracts/isHandleDelegatedForUserDecryption-p.js +33 -0
  47. package/_cjs/core/host-contracts/isHandleDelegatedForUserDecryption-p.js.map +1 -0
  48. package/_cjs/core/host-contracts/persistAllowed.js +1 -1
  49. package/_cjs/core/host-contracts/persistAllowed.js.map +1 -1
  50. package/_cjs/core/kms/fetchKmsSignedcryptedShares-p.js +18 -8
  51. package/_cjs/core/kms/fetchKmsSignedcryptedShares-p.js.map +1 -1
  52. package/_cjs/core/kms/publicDecrypt.js +1 -4
  53. package/_cjs/core/kms/publicDecrypt.js.map +1 -1
  54. package/_cjs/core/modules/decrypt/mock.js +93 -10
  55. package/_cjs/core/modules/decrypt/mock.js.map +1 -1
  56. package/_cjs/core/modules/encrypt/mock.js +142 -12
  57. package/_cjs/core/modules/encrypt/mock.js.map +1 -1
  58. package/_cjs/core/modules/encrypt/module/api-p.js +7 -2
  59. package/_cjs/core/modules/encrypt/module/api-p.js.map +1 -1
  60. package/_cjs/core/modules/ethereum/types-ct.js +3 -0
  61. package/_cjs/core/modules/ethereum/types-ct.js.map +1 -0
  62. package/_cjs/core/modules/relayer/cleartext/fetchCoprocessorSignatures.js +68 -0
  63. package/_cjs/core/modules/relayer/cleartext/fetchCoprocessorSignatures.js.map +1 -0
  64. package/_cjs/core/modules/relayer/cleartext/fetchDelegatedUserDecrypt.js +119 -0
  65. package/_cjs/core/modules/relayer/cleartext/fetchDelegatedUserDecrypt.js.map +1 -0
  66. package/_cjs/core/modules/relayer/cleartext/fetchPublicDecrypt.js +52 -0
  67. package/_cjs/core/modules/relayer/cleartext/fetchPublicDecrypt.js.map +1 -0
  68. package/_cjs/core/modules/relayer/cleartext/fetchUserDecrypt.js +117 -0
  69. package/_cjs/core/modules/relayer/cleartext/fetchUserDecrypt.js.map +1 -0
  70. package/_cjs/core/modules/relayer/cleartext/mock.js +40 -0
  71. package/_cjs/core/modules/relayer/cleartext/mock.js.map +1 -0
  72. package/_cjs/core/modules/relayer/cleartext/signers.js +34 -0
  73. package/_cjs/core/modules/relayer/cleartext/signers.js.map +1 -0
  74. package/_cjs/core/modules/relayer/module/fetchCoprocessorSignatures.js +2 -2
  75. package/_cjs/core/modules/relayer/module/fetchCoprocessorSignatures.js.map +1 -1
  76. package/_cjs/core/modules/relayer/module/fetchDelegatedUserDecrypt.js +1 -1
  77. package/_cjs/core/modules/relayer/module/fetchDelegatedUserDecrypt.js.map +1 -1
  78. package/_cjs/core/modules/relayer/module/fetchPublicDecrypt.js +1 -1
  79. package/_cjs/core/modules/relayer/module/fetchPublicDecrypt.js.map +1 -1
  80. package/_cjs/core/modules/relayer/module/fetchUserDecrypt.js +1 -1
  81. package/_cjs/core/modules/relayer/module/fetchUserDecrypt.js.map +1 -1
  82. package/_cjs/core/modules/relayer/utils.js +16 -0
  83. package/_cjs/core/modules/relayer/utils.js.map +1 -0
  84. package/_cjs/ethers/cleartext/createFhevmCleartextBaseClient.js +17 -0
  85. package/_cjs/ethers/cleartext/createFhevmCleartextBaseClient.js.map +1 -0
  86. package/_cjs/ethers/cleartext/createFhevmCleartextClient.js +11 -0
  87. package/_cjs/ethers/cleartext/createFhevmCleartextClient.js.map +1 -0
  88. package/_cjs/ethers/cleartext/createFhevmCleartextDecryptClient.js +10 -0
  89. package/_cjs/ethers/cleartext/createFhevmCleartextDecryptClient.js.map +1 -0
  90. package/_cjs/ethers/cleartext/createFhevmCleartextEncryptClient.js +10 -0
  91. package/_cjs/ethers/cleartext/createFhevmCleartextEncryptClient.js.map +1 -0
  92. package/_cjs/ethers/cleartext/decorators/decrypt.js +9 -0
  93. package/_cjs/ethers/cleartext/decorators/decrypt.js.map +1 -0
  94. package/_cjs/ethers/cleartext/decorators/encrypt.js +9 -0
  95. package/_cjs/ethers/cleartext/decorators/encrypt.js.map +1 -0
  96. package/_cjs/ethers/cleartext/index.js +12 -0
  97. package/_cjs/ethers/cleartext/index.js.map +1 -0
  98. package/_cjs/ethers/clients/createFhevmBaseClient.js +2 -1
  99. package/_cjs/ethers/clients/createFhevmBaseClient.js.map +1 -1
  100. package/_cjs/ethers/clients/createFhevmClient.js +2 -2
  101. package/_cjs/ethers/clients/createFhevmClient.js.map +1 -1
  102. package/_cjs/ethers/clients/createFhevmDecryptClient.js +1 -1
  103. package/_cjs/ethers/clients/createFhevmDecryptClient.js.map +1 -1
  104. package/_cjs/ethers/clients/createFhevmEncryptClient.js +1 -1
  105. package/_cjs/ethers/clients/createFhevmEncryptClient.js.map +1 -1
  106. package/_cjs/{viem → ethers/clients}/decorators/decrypt.js +2 -2
  107. package/_cjs/ethers/clients/decorators/decrypt.js.map +1 -0
  108. package/_cjs/ethers/{decorators → clients/decorators}/encrypt.js +2 -2
  109. package/_cjs/ethers/clients/decorators/encrypt.js.map +1 -0
  110. package/_cjs/ethers/index.js +4 -3
  111. package/_cjs/ethers/index.js.map +1 -1
  112. package/_cjs/ethers/internal/config.js +32 -0
  113. package/_cjs/ethers/internal/config.js.map +1 -0
  114. package/_cjs/ethers/internal/ethereum-ct.js +42 -0
  115. package/_cjs/ethers/internal/ethereum-ct.js.map +1 -0
  116. package/_cjs/ethers/internal/ethers-p.js +0 -32
  117. package/_cjs/ethers/internal/ethers-p.js.map +1 -1
  118. package/_cjs/ethers/internal/runtime-ct.js +22 -0
  119. package/_cjs/ethers/internal/runtime-ct.js.map +1 -0
  120. package/_cjs/ethers/internal/runtime.js +22 -0
  121. package/_cjs/ethers/internal/runtime.js.map +1 -0
  122. package/_cjs/ethers/runtime/initFhevmDecryptRuntime.js +3 -2
  123. package/_cjs/ethers/runtime/initFhevmDecryptRuntime.js.map +1 -1
  124. package/_cjs/ethers/runtime/initFhevmEncryptRuntime.js +3 -2
  125. package/_cjs/ethers/runtime/initFhevmEncryptRuntime.js.map +1 -1
  126. package/_cjs/ethers/runtime/initFhevmRuntime.js +3 -2
  127. package/_cjs/ethers/runtime/initFhevmRuntime.js.map +1 -1
  128. package/_cjs/index.js +2 -0
  129. package/_cjs/index.js.map +1 -0
  130. package/_cjs/viem/cleartext/createFhevmCleartextBaseClient.js +17 -0
  131. package/_cjs/viem/cleartext/createFhevmCleartextBaseClient.js.map +1 -0
  132. package/_cjs/viem/cleartext/createFhevmCleartextClient.js +11 -0
  133. package/_cjs/viem/cleartext/createFhevmCleartextClient.js.map +1 -0
  134. package/_cjs/viem/cleartext/createFhevmCleartextDecryptClient.js +10 -0
  135. package/_cjs/viem/cleartext/createFhevmCleartextDecryptClient.js.map +1 -0
  136. package/_cjs/viem/cleartext/createFhevmCleartextEncryptClient.js +10 -0
  137. package/_cjs/viem/cleartext/createFhevmCleartextEncryptClient.js.map +1 -0
  138. package/_cjs/viem/cleartext/decorators/decrypt.js +9 -0
  139. package/_cjs/viem/cleartext/decorators/decrypt.js.map +1 -0
  140. package/_cjs/viem/cleartext/decorators/encrypt.js +9 -0
  141. package/_cjs/viem/cleartext/decorators/encrypt.js.map +1 -0
  142. package/_cjs/viem/cleartext/index.js +12 -0
  143. package/_cjs/viem/cleartext/index.js.map +1 -0
  144. package/_cjs/viem/clients/createFhevmBaseClient.js +2 -1
  145. package/_cjs/viem/clients/createFhevmBaseClient.js.map +1 -1
  146. package/_cjs/viem/clients/createFhevmClient.js +2 -2
  147. package/_cjs/viem/clients/createFhevmClient.js.map +1 -1
  148. package/_cjs/viem/clients/createFhevmDecryptClient.js +1 -1
  149. package/_cjs/viem/clients/createFhevmDecryptClient.js.map +1 -1
  150. package/_cjs/viem/clients/createFhevmEncryptClient.js +1 -1
  151. package/_cjs/viem/clients/createFhevmEncryptClient.js.map +1 -1
  152. package/_cjs/{ethers → viem/clients}/decorators/decrypt.js +2 -2
  153. package/_cjs/viem/clients/decorators/decrypt.js.map +1 -0
  154. package/_cjs/viem/{decorators → clients/decorators}/encrypt.js +2 -2
  155. package/_cjs/viem/clients/decorators/encrypt.js.map +1 -0
  156. package/_cjs/viem/index.js +6 -5
  157. package/_cjs/viem/index.js.map +1 -1
  158. package/_cjs/viem/internal/config.js +32 -0
  159. package/_cjs/viem/internal/config.js.map +1 -0
  160. package/_cjs/viem/internal/ethereum-ct.js +42 -0
  161. package/_cjs/viem/internal/ethereum-ct.js.map +1 -0
  162. package/_cjs/viem/internal/runtime-ct.js +22 -0
  163. package/_cjs/viem/internal/runtime-ct.js.map +1 -0
  164. package/_cjs/viem/internal/runtime.js +22 -0
  165. package/_cjs/viem/internal/runtime.js.map +1 -0
  166. package/_cjs/viem/internal/viem-p.js +0 -32
  167. package/_cjs/viem/internal/viem-p.js.map +1 -1
  168. package/_cjs/viem/runtime/initFhevmDecryptRuntime.js +2 -1
  169. package/_cjs/viem/runtime/initFhevmDecryptRuntime.js.map +1 -1
  170. package/_cjs/viem/runtime/initFhevmEncryptRuntime.js +2 -1
  171. package/_cjs/viem/runtime/initFhevmEncryptRuntime.js.map +1 -1
  172. package/_cjs/viem/runtime/initFhevmRuntime.js +2 -1
  173. package/_cjs/viem/runtime/initFhevmRuntime.js.map +1 -1
  174. package/_cjs/wasm/tfhe/startWorkers.v1.5.3.js +279 -426
  175. package/_cjs/wasm/tfhe/startWorkers.v1.5.3.js.map +7 -0
  176. package/_cjs/wasm/tfhe/tfhe.v1.5.3.js +2779 -3032
  177. package/_cjs/wasm/tfhe/tfhe.v1.5.3.js.map +7 -0
  178. package/_cjs/wasm/tfhe/tfhe_bg.v1.5.3.wasm.base64.js +29 -1
  179. package/_cjs/wasm/tfhe/tfhe_bg.v1.5.3.wasm.base64.js.map +7 -0
  180. package/_cjs/wasm/tkms/kms_lib.v0.13.10.js +1793 -1985
  181. package/_cjs/wasm/tkms/kms_lib.v0.13.10.js.map +7 -0
  182. package/_cjs/wasm/tkms/kms_lib_bg.v0.13.10.wasm.base64.js +29 -3
  183. package/_cjs/wasm/tkms/kms_lib_bg.v0.13.10.wasm.base64.js.map +7 -0
  184. package/_cjs/wasm/wasmBaseUrl.js +36 -14
  185. package/_cjs/wasm/wasmBaseUrl.js.map +7 -0
  186. package/_esm/core/_version.js +1 -1
  187. package/_esm/core/actions/base/fetchVerifiedInputProof.js +1 -1
  188. package/_esm/core/actions/base/fetchVerifiedInputProof.js.map +1 -1
  189. package/_esm/core/actions/base/signDecryptionPermit.js.map +1 -1
  190. package/_esm/core/actions/chain/index.js +4 -4
  191. package/_esm/core/actions/chain/index.js.map +1 -1
  192. package/_esm/core/actions/chain/parseSignedDecryptionPermit.js +2 -3
  193. package/_esm/core/actions/chain/parseSignedDecryptionPermit.js.map +1 -1
  194. package/_esm/core/actions/chain/parseTransportKeypair.js +1 -3
  195. package/_esm/core/actions/chain/parseTransportKeypair.js.map +1 -1
  196. package/_esm/core/actions/chain/serializeTransportKeypair.js +0 -1
  197. package/_esm/core/actions/chain/serializeTransportKeypair.js.map +1 -1
  198. package/_esm/core/actions/decrypt/decryptValue.js +5 -1
  199. package/_esm/core/actions/decrypt/decryptValue.js.map +1 -1
  200. package/_esm/core/actions/decrypt/decryptValues.js +5 -1
  201. package/_esm/core/actions/decrypt/decryptValues.js.map +1 -1
  202. package/_esm/core/actions/decrypt/decryptValuesFromPairs.js +5 -1
  203. package/_esm/core/actions/decrypt/decryptValuesFromPairs.js.map +1 -1
  204. package/_esm/core/actions/decrypt/index.js +2 -2
  205. package/_esm/core/actions/decrypt/index.js.map +1 -1
  206. package/_esm/core/actions/host/getUserDecryptionDelegationExpirationDate.js +13 -14
  207. package/_esm/core/actions/host/getUserDecryptionDelegationExpirationDate.js.map +1 -1
  208. package/_esm/core/base/bytes.js +7 -0
  209. package/_esm/core/base/bytes.js.map +1 -1
  210. package/_esm/core/base/sign.js +58 -0
  211. package/_esm/core/base/sign.js.map +1 -0
  212. package/_esm/core/base/typedValue.js +16 -0
  213. package/_esm/core/base/typedValue.js.map +1 -1
  214. package/_esm/core/base/uint.js +30 -0
  215. package/_esm/core/base/uint.js.map +1 -1
  216. package/_esm/core/clients/decorators/decrypt.js +3 -3
  217. package/_esm/core/clients/decorators/decrypt.js.map +1 -1
  218. package/_esm/core/coprocessor/InputProof-p.js +2 -2
  219. package/_esm/core/coprocessor/InputProof-p.js.map +1 -1
  220. package/_esm/core/coprocessor/ZkProof-p.js +19 -12
  221. package/_esm/core/coprocessor/ZkProof-p.js.map +1 -1
  222. package/_esm/core/coprocessor/ZkProofBuilder-p.js +7 -5
  223. package/_esm/core/coprocessor/ZkProofBuilder-p.js.map +1 -1
  224. package/_esm/core/coprocessor/encrypt.js +1 -3
  225. package/_esm/core/coprocessor/encrypt.js.map +1 -1
  226. package/_esm/core/coprocessor/fetchVerifiedInputProof.js +3 -4
  227. package/_esm/core/coprocessor/fetchVerifiedInputProof.js.map +1 -1
  228. package/_esm/core/handle/FheType.js +4 -2
  229. package/_esm/core/handle/FheType.js.map +1 -1
  230. package/_esm/core/host-contracts/KmsSignersContext-p.js +1 -1
  231. package/_esm/core/host-contracts/KmsSignersContext-p.js.map +1 -1
  232. package/_esm/core/host-contracts/checkDelegation.js +81 -0
  233. package/_esm/core/host-contracts/checkDelegation.js.map +1 -0
  234. package/_esm/core/host-contracts/getUserDecryptionDelegationExpirationDate.js +19 -0
  235. package/_esm/core/host-contracts/getUserDecryptionDelegationExpirationDate.js.map +1 -0
  236. package/_esm/core/host-contracts/isHandleDelegatedForUserDecryption-p.js +32 -0
  237. package/_esm/core/host-contracts/isHandleDelegatedForUserDecryption-p.js.map +1 -0
  238. package/_esm/core/host-contracts/persistAllowed.js +1 -1
  239. package/_esm/core/host-contracts/persistAllowed.js.map +1 -1
  240. package/_esm/core/kms/fetchKmsSignedcryptedShares-p.js +18 -8
  241. package/_esm/core/kms/fetchKmsSignedcryptedShares-p.js.map +1 -1
  242. package/_esm/core/kms/publicDecrypt.js +1 -4
  243. package/_esm/core/kms/publicDecrypt.js.map +1 -1
  244. package/_esm/core/modules/decrypt/mock.js +96 -10
  245. package/_esm/core/modules/decrypt/mock.js.map +1 -1
  246. package/_esm/core/modules/encrypt/mock.js +151 -12
  247. package/_esm/core/modules/encrypt/mock.js.map +1 -1
  248. package/_esm/core/modules/encrypt/module/api-p.js +7 -2
  249. package/_esm/core/modules/encrypt/module/api-p.js.map +1 -1
  250. package/_esm/core/modules/ethereum/types-ct.js +2 -0
  251. package/_esm/core/modules/ethereum/types-ct.js.map +1 -0
  252. package/_esm/core/modules/relayer/cleartext/fetchCoprocessorSignatures.js +75 -0
  253. package/_esm/core/modules/relayer/cleartext/fetchCoprocessorSignatures.js.map +1 -0
  254. package/_esm/core/modules/relayer/cleartext/fetchDelegatedUserDecrypt.js +121 -0
  255. package/_esm/core/modules/relayer/cleartext/fetchDelegatedUserDecrypt.js.map +1 -0
  256. package/_esm/core/modules/relayer/cleartext/fetchPublicDecrypt.js +52 -0
  257. package/_esm/core/modules/relayer/cleartext/fetchPublicDecrypt.js.map +1 -0
  258. package/_esm/core/modules/relayer/cleartext/fetchUserDecrypt.js +119 -0
  259. package/_esm/core/modules/relayer/cleartext/fetchUserDecrypt.js.map +1 -0
  260. package/_esm/core/modules/relayer/cleartext/mock.js +39 -0
  261. package/_esm/core/modules/relayer/cleartext/mock.js.map +1 -0
  262. package/_esm/core/modules/relayer/cleartext/signers.js +34 -0
  263. package/_esm/core/modules/relayer/cleartext/signers.js.map +1 -0
  264. package/_esm/core/modules/relayer/module/fetchCoprocessorSignatures.js +2 -2
  265. package/_esm/core/modules/relayer/module/fetchCoprocessorSignatures.js.map +1 -1
  266. package/_esm/core/modules/relayer/module/fetchDelegatedUserDecrypt.js +1 -1
  267. package/_esm/core/modules/relayer/module/fetchDelegatedUserDecrypt.js.map +1 -1
  268. package/_esm/core/modules/relayer/module/fetchPublicDecrypt.js +1 -1
  269. package/_esm/core/modules/relayer/module/fetchPublicDecrypt.js.map +1 -1
  270. package/_esm/core/modules/relayer/module/fetchUserDecrypt.js +1 -1
  271. package/_esm/core/modules/relayer/module/fetchUserDecrypt.js.map +1 -1
  272. package/_esm/core/modules/relayer/utils.js +13 -0
  273. package/_esm/core/modules/relayer/utils.js.map +1 -0
  274. package/_esm/ethers/cleartext/createFhevmCleartextBaseClient.js +15 -0
  275. package/_esm/ethers/cleartext/createFhevmCleartextBaseClient.js.map +1 -0
  276. package/_esm/ethers/cleartext/createFhevmCleartextClient.js +9 -0
  277. package/_esm/ethers/cleartext/createFhevmCleartextClient.js.map +1 -0
  278. package/_esm/ethers/cleartext/createFhevmCleartextDecryptClient.js +8 -0
  279. package/_esm/ethers/cleartext/createFhevmCleartextDecryptClient.js.map +1 -0
  280. package/_esm/ethers/cleartext/createFhevmCleartextEncryptClient.js +8 -0
  281. package/_esm/ethers/cleartext/createFhevmCleartextEncryptClient.js.map +1 -0
  282. package/_esm/ethers/cleartext/decorators/decrypt.js +7 -0
  283. package/_esm/ethers/cleartext/decorators/decrypt.js.map +1 -0
  284. package/_esm/ethers/cleartext/decorators/encrypt.js +7 -0
  285. package/_esm/ethers/cleartext/decorators/encrypt.js.map +1 -0
  286. package/_esm/ethers/cleartext/index.js +5 -0
  287. package/_esm/ethers/cleartext/index.js.map +1 -0
  288. package/_esm/ethers/clients/createFhevmBaseClient.js +2 -1
  289. package/_esm/ethers/clients/createFhevmBaseClient.js.map +1 -1
  290. package/_esm/ethers/clients/createFhevmClient.js +2 -2
  291. package/_esm/ethers/clients/createFhevmClient.js.map +1 -1
  292. package/_esm/ethers/clients/createFhevmDecryptClient.js +1 -1
  293. package/_esm/ethers/clients/createFhevmDecryptClient.js.map +1 -1
  294. package/_esm/ethers/clients/createFhevmEncryptClient.js +1 -1
  295. package/_esm/ethers/clients/createFhevmEncryptClient.js.map +1 -1
  296. package/_esm/ethers/clients/decorators/decrypt.js +7 -0
  297. package/_esm/ethers/clients/decorators/decrypt.js.map +1 -0
  298. package/_esm/ethers/clients/decorators/encrypt.js +7 -0
  299. package/_esm/ethers/clients/decorators/encrypt.js.map +1 -0
  300. package/_esm/ethers/index.js +1 -1
  301. package/_esm/ethers/index.js.map +1 -1
  302. package/_esm/ethers/internal/config.js +38 -0
  303. package/_esm/ethers/internal/config.js.map +1 -0
  304. package/_esm/ethers/internal/ethereum-ct.js +39 -0
  305. package/_esm/ethers/internal/ethereum-ct.js.map +1 -0
  306. package/_esm/ethers/internal/ethers-p.js +0 -43
  307. package/_esm/ethers/internal/ethers-p.js.map +1 -1
  308. package/_esm/ethers/internal/runtime-ct.js +21 -0
  309. package/_esm/ethers/internal/runtime-ct.js.map +1 -0
  310. package/_esm/ethers/internal/runtime.js +21 -0
  311. package/_esm/ethers/internal/runtime.js.map +1 -0
  312. package/_esm/ethers/runtime/initFhevmDecryptRuntime.js +2 -1
  313. package/_esm/ethers/runtime/initFhevmDecryptRuntime.js.map +1 -1
  314. package/_esm/ethers/runtime/initFhevmEncryptRuntime.js +2 -1
  315. package/_esm/ethers/runtime/initFhevmEncryptRuntime.js.map +1 -1
  316. package/_esm/ethers/runtime/initFhevmRuntime.js +2 -1
  317. package/_esm/ethers/runtime/initFhevmRuntime.js.map +1 -1
  318. package/_esm/index.js +2 -0
  319. package/_esm/index.js.map +1 -0
  320. package/_esm/viem/cleartext/createFhevmCleartextBaseClient.js +15 -0
  321. package/_esm/viem/cleartext/createFhevmCleartextBaseClient.js.map +1 -0
  322. package/_esm/viem/cleartext/createFhevmCleartextClient.js +9 -0
  323. package/_esm/viem/cleartext/createFhevmCleartextClient.js.map +1 -0
  324. package/_esm/viem/cleartext/createFhevmCleartextDecryptClient.js +8 -0
  325. package/_esm/viem/cleartext/createFhevmCleartextDecryptClient.js.map +1 -0
  326. package/_esm/viem/cleartext/createFhevmCleartextEncryptClient.js +8 -0
  327. package/_esm/viem/cleartext/createFhevmCleartextEncryptClient.js.map +1 -0
  328. package/_esm/viem/cleartext/decorators/decrypt.js +7 -0
  329. package/_esm/viem/cleartext/decorators/decrypt.js.map +1 -0
  330. package/_esm/viem/cleartext/decorators/encrypt.js +7 -0
  331. package/_esm/viem/cleartext/decorators/encrypt.js.map +1 -0
  332. package/_esm/viem/cleartext/index.js +5 -0
  333. package/_esm/viem/cleartext/index.js.map +1 -0
  334. package/_esm/viem/clients/createFhevmBaseClient.js +2 -1
  335. package/_esm/viem/clients/createFhevmBaseClient.js.map +1 -1
  336. package/_esm/viem/clients/createFhevmClient.js +2 -2
  337. package/_esm/viem/clients/createFhevmClient.js.map +1 -1
  338. package/_esm/viem/clients/createFhevmDecryptClient.js +1 -1
  339. package/_esm/viem/clients/createFhevmDecryptClient.js.map +1 -1
  340. package/_esm/viem/clients/createFhevmEncryptClient.js +1 -2
  341. package/_esm/viem/clients/createFhevmEncryptClient.js.map +1 -1
  342. package/_esm/viem/clients/decorators/decrypt.js +7 -0
  343. package/_esm/viem/clients/decorators/decrypt.js.map +1 -0
  344. package/_esm/viem/clients/decorators/encrypt.js +7 -0
  345. package/_esm/viem/clients/decorators/encrypt.js.map +1 -0
  346. package/_esm/viem/index.js +2 -2
  347. package/_esm/viem/index.js.map +1 -1
  348. package/_esm/viem/internal/config.js +38 -0
  349. package/_esm/viem/internal/config.js.map +1 -0
  350. package/_esm/viem/internal/ethereum-ct.js +39 -0
  351. package/_esm/viem/internal/ethereum-ct.js.map +1 -0
  352. package/_esm/viem/internal/runtime-ct.js +21 -0
  353. package/_esm/viem/internal/runtime-ct.js.map +1 -0
  354. package/_esm/viem/internal/runtime.js +21 -0
  355. package/_esm/viem/internal/runtime.js.map +1 -0
  356. package/_esm/viem/internal/viem-p.js +0 -43
  357. package/_esm/viem/internal/viem-p.js.map +1 -1
  358. package/_esm/viem/runtime/initFhevmDecryptRuntime.js +2 -1
  359. package/_esm/viem/runtime/initFhevmDecryptRuntime.js.map +1 -1
  360. package/_esm/viem/runtime/initFhevmEncryptRuntime.js +2 -1
  361. package/_esm/viem/runtime/initFhevmEncryptRuntime.js.map +1 -1
  362. package/_esm/viem/runtime/initFhevmRuntime.js +2 -1
  363. package/_esm/viem/runtime/initFhevmRuntime.js.map +1 -1
  364. package/_types/core/actions/base/signDecryptionPermit.d.ts.map +1 -1
  365. package/_types/core/actions/chain/index.d.ts +4 -4
  366. package/_types/core/actions/chain/index.d.ts.map +1 -1
  367. package/_types/core/actions/chain/parseSignedDecryptionPermit.d.ts +7 -2
  368. package/_types/core/actions/chain/parseSignedDecryptionPermit.d.ts.map +1 -1
  369. package/_types/core/actions/chain/parseTransportKeypair.d.ts +2 -2
  370. package/_types/core/actions/chain/parseTransportKeypair.d.ts.map +1 -1
  371. package/_types/core/actions/chain/verifyKmsDelegatedUserDecryptEip712.d.ts +1 -1
  372. package/_types/core/actions/chain/verifyKmsDelegatedUserDecryptEip712.d.ts.map +1 -1
  373. package/_types/core/actions/decrypt/decryptValue.d.ts +5 -13
  374. package/_types/core/actions/decrypt/decryptValue.d.ts.map +1 -1
  375. package/_types/core/actions/decrypt/decryptValues.d.ts +5 -13
  376. package/_types/core/actions/decrypt/decryptValues.d.ts.map +1 -1
  377. package/_types/core/actions/decrypt/decryptValuesFromPairs.d.ts +5 -13
  378. package/_types/core/actions/decrypt/decryptValuesFromPairs.d.ts.map +1 -1
  379. package/_types/core/actions/decrypt/index.d.ts +3 -3
  380. package/_types/core/actions/decrypt/index.d.ts.map +1 -1
  381. package/_types/core/actions/host/getUserDecryptionDelegationExpirationDate.d.ts +5 -2
  382. package/_types/core/actions/host/getUserDecryptionDelegationExpirationDate.d.ts.map +1 -1
  383. package/_types/core/base/bytes.d.ts +1 -0
  384. package/_types/core/base/bytes.d.ts.map +1 -1
  385. package/_types/core/base/sign.d.ts +10 -0
  386. package/_types/core/base/sign.d.ts.map +1 -0
  387. package/_types/core/base/typedValue.d.ts +2 -1
  388. package/_types/core/base/typedValue.d.ts.map +1 -1
  389. package/_types/core/base/uint.d.ts +3 -0
  390. package/_types/core/base/uint.d.ts.map +1 -1
  391. package/_types/core/clients/decorators/decrypt.d.ts +6 -15
  392. package/_types/core/clients/decorators/decrypt.d.ts.map +1 -1
  393. package/_types/core/coprocessor/ZkProof-p.d.ts +2 -2
  394. package/_types/core/coprocessor/ZkProof-p.d.ts.map +1 -1
  395. package/_types/core/coprocessor/ZkProofBuilder-p.d.ts +2 -1
  396. package/_types/core/coprocessor/ZkProofBuilder-p.d.ts.map +1 -1
  397. package/_types/core/coprocessor/encrypt.d.ts.map +1 -1
  398. package/_types/core/coprocessor/fetchVerifiedInputProof.d.ts +0 -2
  399. package/_types/core/coprocessor/fetchVerifiedInputProof.d.ts.map +1 -1
  400. package/_types/core/handle/FheType.d.ts +1 -0
  401. package/_types/core/handle/FheType.d.ts.map +1 -1
  402. package/_types/core/host-contracts/checkDelegation.d.ts +22 -0
  403. package/_types/core/host-contracts/checkDelegation.d.ts.map +1 -0
  404. package/_types/core/host-contracts/getUserDecryptionDelegationExpirationDate.d.ts +19 -0
  405. package/_types/core/host-contracts/getUserDecryptionDelegationExpirationDate.d.ts.map +1 -0
  406. package/_types/core/host-contracts/isHandleDelegatedForUserDecryption-p.d.ts +20 -0
  407. package/_types/core/host-contracts/isHandleDelegatedForUserDecryption-p.d.ts.map +1 -0
  408. package/_types/core/kms/fetchKmsSignedcryptedShares-p.d.ts.map +1 -1
  409. package/_types/core/kms/publicDecrypt.d.ts.map +1 -1
  410. package/_types/core/modules/decrypt/mock.d.ts +5 -5
  411. package/_types/core/modules/decrypt/mock.d.ts.map +1 -1
  412. package/_types/core/modules/encrypt/mock.d.ts +6 -6
  413. package/_types/core/modules/encrypt/mock.d.ts.map +1 -1
  414. package/_types/core/modules/encrypt/module/api-p.d.ts.map +1 -1
  415. package/_types/core/modules/encrypt/types.d.ts +6 -2
  416. package/_types/core/modules/encrypt/types.d.ts.map +1 -1
  417. package/_types/core/modules/ethereum/types-ct.d.ts +46 -0
  418. package/_types/core/modules/ethereum/types-ct.d.ts.map +1 -0
  419. package/_types/core/modules/relayer/cleartext/fetchCoprocessorSignatures.d.ts +3 -0
  420. package/_types/core/modules/relayer/cleartext/fetchCoprocessorSignatures.d.ts.map +1 -0
  421. package/_types/core/modules/relayer/cleartext/fetchDelegatedUserDecrypt.d.ts +3 -0
  422. package/_types/core/modules/relayer/cleartext/fetchDelegatedUserDecrypt.d.ts.map +1 -0
  423. package/_types/core/modules/relayer/cleartext/fetchPublicDecrypt.d.ts +3 -0
  424. package/_types/core/modules/relayer/cleartext/fetchPublicDecrypt.d.ts.map +1 -0
  425. package/_types/core/modules/relayer/cleartext/fetchUserDecrypt.d.ts +3 -0
  426. package/_types/core/modules/relayer/cleartext/fetchUserDecrypt.d.ts.map +1 -0
  427. package/_types/core/modules/relayer/cleartext/mock.d.ts +3 -0
  428. package/_types/core/modules/relayer/cleartext/mock.d.ts.map +1 -0
  429. package/_types/core/modules/relayer/cleartext/signers.d.ts +7 -0
  430. package/_types/core/modules/relayer/cleartext/signers.d.ts.map +1 -0
  431. package/_types/core/modules/relayer/module/fetchCoprocessorSignatures.d.ts +2 -2
  432. package/_types/core/modules/relayer/module/fetchCoprocessorSignatures.d.ts.map +1 -1
  433. package/_types/core/modules/relayer/module/fetchDelegatedUserDecrypt.d.ts +2 -2
  434. package/_types/core/modules/relayer/module/fetchDelegatedUserDecrypt.d.ts.map +1 -1
  435. package/_types/core/modules/relayer/module/fetchPublicDecrypt.d.ts +2 -2
  436. package/_types/core/modules/relayer/module/fetchPublicDecrypt.d.ts.map +1 -1
  437. package/_types/core/modules/relayer/module/fetchUserDecrypt.d.ts +2 -2
  438. package/_types/core/modules/relayer/module/fetchUserDecrypt.d.ts.map +1 -1
  439. package/_types/core/modules/relayer/types.d.ts +14 -5
  440. package/_types/core/modules/relayer/types.d.ts.map +1 -1
  441. package/_types/core/modules/relayer/utils.d.ts +4 -0
  442. package/_types/core/modules/relayer/utils.d.ts.map +1 -0
  443. package/_types/core/types/index.d.ts +1 -0
  444. package/_types/core/types/index.d.ts.map +1 -1
  445. package/_types/core/types/kms.d.ts +21 -0
  446. package/_types/core/types/kms.d.ts.map +1 -1
  447. package/_types/core/types/zkProof-p.d.ts +2 -1
  448. package/_types/core/types/zkProof-p.d.ts.map +1 -1
  449. package/_types/ethers/cleartext/createFhevmCleartextBaseClient.d.ts +11 -0
  450. package/_types/ethers/cleartext/createFhevmCleartextBaseClient.d.ts.map +1 -0
  451. package/_types/ethers/cleartext/createFhevmCleartextClient.d.ts +11 -0
  452. package/_types/ethers/cleartext/createFhevmCleartextClient.d.ts.map +1 -0
  453. package/_types/ethers/cleartext/createFhevmCleartextDecryptClient.d.ts +11 -0
  454. package/_types/ethers/cleartext/createFhevmCleartextDecryptClient.d.ts.map +1 -0
  455. package/_types/ethers/cleartext/createFhevmCleartextEncryptClient.d.ts +11 -0
  456. package/_types/ethers/cleartext/createFhevmCleartextEncryptClient.d.ts.map +1 -0
  457. package/_types/ethers/cleartext/decorators/decrypt.d.ts +6 -0
  458. package/_types/ethers/cleartext/decorators/decrypt.d.ts.map +1 -0
  459. package/_types/ethers/cleartext/decorators/encrypt.d.ts +6 -0
  460. package/_types/ethers/cleartext/decorators/encrypt.d.ts.map +1 -0
  461. package/_types/ethers/cleartext/index.d.ts +5 -0
  462. package/_types/ethers/cleartext/index.d.ts.map +1 -0
  463. package/_types/ethers/clients/createFhevmBaseClient.d.ts.map +1 -1
  464. package/_types/ethers/clients/decorators/decrypt.d.ts +6 -0
  465. package/_types/ethers/clients/decorators/decrypt.d.ts.map +1 -0
  466. package/_types/ethers/clients/decorators/encrypt.d.ts +6 -0
  467. package/_types/ethers/clients/decorators/encrypt.d.ts.map +1 -0
  468. package/_types/ethers/index.d.ts +1 -1
  469. package/_types/ethers/index.d.ts.map +1 -1
  470. package/_types/ethers/internal/config.d.ts +15 -0
  471. package/_types/ethers/internal/config.d.ts.map +1 -0
  472. package/_types/ethers/internal/ethereum-ct.d.ts +3 -0
  473. package/_types/ethers/internal/ethereum-ct.d.ts.map +1 -0
  474. package/_types/ethers/internal/ethers-p.d.ts +1 -13
  475. package/_types/ethers/internal/ethers-p.d.ts.map +1 -1
  476. package/_types/ethers/internal/runtime-ct.d.ts +3 -0
  477. package/_types/ethers/internal/runtime-ct.d.ts.map +1 -0
  478. package/_types/ethers/internal/runtime.d.ts +3 -0
  479. package/_types/ethers/internal/runtime.d.ts.map +1 -0
  480. package/_types/ethers/runtime/initFhevmDecryptRuntime.d.ts.map +1 -1
  481. package/_types/ethers/runtime/initFhevmEncryptRuntime.d.ts.map +1 -1
  482. package/_types/ethers/runtime/initFhevmRuntime.d.ts.map +1 -1
  483. package/_types/index.d.ts +2 -0
  484. package/_types/index.d.ts.map +1 -0
  485. package/_types/viem/cleartext/createFhevmCleartextBaseClient.d.ts +11 -0
  486. package/_types/viem/cleartext/createFhevmCleartextBaseClient.d.ts.map +1 -0
  487. package/_types/viem/cleartext/createFhevmCleartextClient.d.ts +11 -0
  488. package/_types/viem/cleartext/createFhevmCleartextClient.d.ts.map +1 -0
  489. package/_types/viem/cleartext/createFhevmCleartextDecryptClient.d.ts +11 -0
  490. package/_types/viem/cleartext/createFhevmCleartextDecryptClient.d.ts.map +1 -0
  491. package/_types/viem/cleartext/createFhevmCleartextEncryptClient.d.ts +11 -0
  492. package/_types/viem/cleartext/createFhevmCleartextEncryptClient.d.ts.map +1 -0
  493. package/_types/viem/cleartext/decorators/decrypt.d.ts +6 -0
  494. package/_types/viem/cleartext/decorators/decrypt.d.ts.map +1 -0
  495. package/_types/viem/cleartext/decorators/encrypt.d.ts +6 -0
  496. package/_types/viem/cleartext/decorators/encrypt.d.ts.map +1 -0
  497. package/_types/viem/cleartext/index.d.ts +5 -0
  498. package/_types/viem/cleartext/index.d.ts.map +1 -0
  499. package/_types/viem/clients/createFhevmBaseClient.d.ts.map +1 -1
  500. package/_types/viem/clients/decorators/decrypt.d.ts +6 -0
  501. package/_types/viem/clients/decorators/decrypt.d.ts.map +1 -0
  502. package/_types/viem/clients/decorators/encrypt.d.ts +6 -0
  503. package/_types/viem/clients/decorators/encrypt.d.ts.map +1 -0
  504. package/_types/viem/index.d.ts +2 -2
  505. package/_types/viem/index.d.ts.map +1 -1
  506. package/_types/viem/internal/config.d.ts +15 -0
  507. package/_types/viem/internal/config.d.ts.map +1 -0
  508. package/_types/viem/internal/ethereum-ct.d.ts +3 -0
  509. package/_types/viem/internal/ethereum-ct.d.ts.map +1 -0
  510. package/_types/viem/internal/runtime-ct.d.ts +3 -0
  511. package/_types/viem/internal/runtime-ct.d.ts.map +1 -0
  512. package/_types/viem/internal/runtime.d.ts +3 -0
  513. package/_types/viem/internal/runtime.d.ts.map +1 -0
  514. package/_types/viem/internal/viem-p.d.ts +1 -13
  515. package/_types/viem/internal/viem-p.d.ts.map +1 -1
  516. package/_types/viem/runtime/initFhevmDecryptRuntime.d.ts.map +1 -1
  517. package/_types/viem/runtime/initFhevmEncryptRuntime.d.ts.map +1 -1
  518. package/_types/viem/runtime/initFhevmRuntime.d.ts.map +1 -1
  519. package/core/_version.ts +1 -1
  520. package/core/actions/base/fetchVerifiedInputProof.ts +1 -1
  521. package/core/actions/base/signDecryptionPermit.ts +2 -0
  522. package/core/actions/chain/index.ts +11 -11
  523. package/core/actions/chain/parseSignedDecryptionPermit.ts +9 -6
  524. package/core/actions/chain/parseTransportKeypair.ts +3 -7
  525. package/core/actions/chain/serializeTransportKeypair.ts +0 -2
  526. package/core/actions/chain/verifyKmsDelegatedUserDecryptEip712.ts +1 -1
  527. package/core/actions/decrypt/decryptValue.ts +9 -28
  528. package/core/actions/decrypt/decryptValues.ts +9 -28
  529. package/core/actions/decrypt/decryptValuesFromPairs.ts +9 -28
  530. package/core/actions/decrypt/index.ts +3 -14
  531. package/core/actions/host/getUserDecryptionDelegationExpirationDate.ts +22 -18
  532. package/core/base/bytes.ts +8 -0
  533. package/core/base/sign.ts +75 -0
  534. package/core/base/typedValue.ts +18 -0
  535. package/core/base/uint.ts +32 -0
  536. package/core/clients/decorators/decrypt.ts +12 -28
  537. package/core/coprocessor/InputProof-p.ts +2 -2
  538. package/core/coprocessor/ZkProof-p.ts +21 -9
  539. package/core/coprocessor/ZkProofBuilder-p.ts +15 -8
  540. package/core/coprocessor/encrypt.ts +1 -3
  541. package/core/coprocessor/fetchVerifiedInputProof.ts +7 -13
  542. package/core/handle/FheType.ts +5 -2
  543. package/core/host-contracts/KmsSignersContext-p.ts +1 -1
  544. package/core/host-contracts/checkDelegation.ts +114 -0
  545. package/core/host-contracts/getUserDecryptionDelegationExpirationDate.ts +45 -0
  546. package/core/host-contracts/isHandleDelegatedForUserDecryption-p.ts +77 -0
  547. package/core/host-contracts/persistAllowed.ts +1 -1
  548. package/core/kms/fetchKmsSignedcryptedShares-p.ts +31 -29
  549. package/core/kms/publicDecrypt.ts +6 -12
  550. package/core/modules/decrypt/mock.ts +126 -13
  551. package/core/modules/encrypt/mock.ts +206 -12
  552. package/core/modules/encrypt/module/api-p.ts +7 -2
  553. package/core/modules/encrypt/types.ts +6 -2
  554. package/core/modules/ethereum/types-ct.ts +89 -0
  555. package/core/modules/relayer/cleartext/fetchCoprocessorSignatures.ts +94 -0
  556. package/core/modules/relayer/cleartext/fetchDelegatedUserDecrypt.ts +147 -0
  557. package/core/modules/relayer/cleartext/fetchPublicDecrypt.ts +67 -0
  558. package/core/modules/relayer/cleartext/fetchUserDecrypt.ts +141 -0
  559. package/core/modules/relayer/cleartext/mock.ts +54 -0
  560. package/core/modules/relayer/cleartext/signers.ts +52 -0
  561. package/core/modules/relayer/module/fetchCoprocessorSignatures.ts +4 -4
  562. package/core/modules/relayer/module/fetchDelegatedUserDecrypt.ts +3 -3
  563. package/core/modules/relayer/module/fetchPublicDecrypt.ts +3 -3
  564. package/core/modules/relayer/module/fetchUserDecrypt.ts +3 -3
  565. package/core/modules/relayer/types.ts +13 -5
  566. package/core/modules/relayer/utils.ts +17 -0
  567. package/core/types/index.ts +1 -0
  568. package/core/types/kms.ts +19 -0
  569. package/core/types/zkProof-p.ts +3 -1
  570. package/ethers/cleartext/createFhevmCleartextBaseClient.ts +25 -0
  571. package/ethers/cleartext/createFhevmCleartextClient.ts +20 -0
  572. package/ethers/cleartext/createFhevmCleartextDecryptClient.ts +18 -0
  573. package/ethers/cleartext/createFhevmCleartextEncryptClient.ts +19 -0
  574. package/ethers/cleartext/decorators/decrypt.ts +12 -0
  575. package/ethers/cleartext/decorators/encrypt.ts +12 -0
  576. package/ethers/cleartext/index.ts +4 -0
  577. package/ethers/cleartext/package.json +6 -0
  578. package/ethers/clients/createFhevmBaseClient.ts +2 -1
  579. package/ethers/clients/createFhevmClient.ts +2 -2
  580. package/ethers/clients/createFhevmDecryptClient.ts +1 -1
  581. package/ethers/clients/createFhevmEncryptClient.ts +1 -1
  582. package/ethers/clients/decorators/decrypt.ts +12 -0
  583. package/ethers/clients/decorators/encrypt.ts +12 -0
  584. package/ethers/index.ts +1 -1
  585. package/ethers/internal/config.ts +50 -0
  586. package/ethers/internal/ethereum-ct.ts +61 -0
  587. package/ethers/internal/ethers-p.ts +1 -56
  588. package/ethers/internal/runtime-ct.ts +28 -0
  589. package/ethers/internal/runtime.ts +28 -0
  590. package/ethers/runtime/initFhevmDecryptRuntime.ts +2 -1
  591. package/ethers/runtime/initFhevmEncryptRuntime.ts +2 -1
  592. package/ethers/runtime/initFhevmRuntime.ts +2 -1
  593. package/index.ts +0 -0
  594. package/package.json +14 -2
  595. package/viem/cleartext/createFhevmCleartextBaseClient.ts +28 -0
  596. package/viem/cleartext/createFhevmCleartextClient.ts +20 -0
  597. package/viem/cleartext/createFhevmCleartextDecryptClient.ts +21 -0
  598. package/viem/cleartext/createFhevmCleartextEncryptClient.ts +22 -0
  599. package/viem/cleartext/decorators/decrypt.ts +12 -0
  600. package/viem/cleartext/decorators/encrypt.ts +12 -0
  601. package/viem/cleartext/index.ts +4 -0
  602. package/viem/cleartext/package.json +6 -0
  603. package/viem/clients/createFhevmBaseClient.ts +2 -1
  604. package/viem/clients/createFhevmClient.ts +2 -2
  605. package/viem/clients/createFhevmDecryptClient.ts +1 -1
  606. package/viem/clients/createFhevmEncryptClient.ts +1 -3
  607. package/viem/clients/decorators/decrypt.ts +12 -0
  608. package/viem/clients/decorators/encrypt.ts +12 -0
  609. package/viem/index.ts +2 -2
  610. package/viem/internal/config.ts +50 -0
  611. package/viem/internal/ethereum-ct.ts +61 -0
  612. package/viem/internal/runtime-ct.ts +28 -0
  613. package/viem/internal/runtime.ts +28 -0
  614. package/viem/internal/viem-p.ts +1 -56
  615. package/viem/runtime/initFhevmDecryptRuntime.ts +2 -1
  616. package/viem/runtime/initFhevmEncryptRuntime.ts +2 -1
  617. package/viem/runtime/initFhevmRuntime.ts +2 -1
  618. package/_cjs/core/modules/relayer/mock.js +0 -29
  619. package/_cjs/core/modules/relayer/mock.js.map +0 -1
  620. package/_cjs/ethers/decorators/decrypt.js.map +0 -1
  621. package/_cjs/ethers/decorators/encrypt.js.map +0 -1
  622. package/_cjs/viem/decorators/decrypt.js.map +0 -1
  623. package/_cjs/viem/decorators/encrypt.js.map +0 -1
  624. package/_esm/core/modules/relayer/mock.js +0 -28
  625. package/_esm/core/modules/relayer/mock.js.map +0 -1
  626. package/_esm/ethers/decorators/decrypt.js +0 -7
  627. package/_esm/ethers/decorators/decrypt.js.map +0 -1
  628. package/_esm/ethers/decorators/encrypt.js +0 -7
  629. package/_esm/ethers/decorators/encrypt.js.map +0 -1
  630. package/_esm/viem/decorators/decrypt.js +0 -7
  631. package/_esm/viem/decorators/decrypt.js.map +0 -1
  632. package/_esm/viem/decorators/encrypt.js +0 -7
  633. package/_esm/viem/decorators/encrypt.js.map +0 -1
  634. package/_types/core/modules/relayer/mock.d.ts +0 -3
  635. package/_types/core/modules/relayer/mock.d.ts.map +0 -1
  636. package/_types/ethers/decorators/decrypt.d.ts +0 -6
  637. package/_types/ethers/decorators/decrypt.d.ts.map +0 -1
  638. package/_types/ethers/decorators/encrypt.d.ts +0 -6
  639. package/_types/ethers/decorators/encrypt.d.ts.map +0 -1
  640. package/_types/viem/decorators/decrypt.d.ts +0 -6
  641. package/_types/viem/decorators/decrypt.d.ts.map +0 -1
  642. package/_types/viem/decorators/encrypt.d.ts +0 -6
  643. package/_types/viem/decorators/encrypt.d.ts.map +0 -1
  644. package/core/modules/relayer/mock.ts +0 -47
  645. package/ethers/decorators/decrypt.ts +0 -12
  646. package/ethers/decorators/encrypt.ts +0 -12
  647. package/viem/decorators/decrypt.ts +0 -12
  648. package/viem/decorators/encrypt.ts +0 -12
@@ -1,12 +1,10 @@
1
1
  import type { ethers as EthersT } from 'ethers';
2
2
  import type { TrustedClient } from '../../core/modules/ethereum/types.js';
3
- import type { FhevmRuntime, FhevmRuntimeConfig } from '../../core/types/coreFhevmRuntime.js';
3
+ import type { FhevmRuntime } from '../../core/types/coreFhevmRuntime.js';
4
4
  import type { CreateFhevmRuntimeParameters } from '../../core/runtime/CoreFhevmRuntime-p.js';
5
5
  import { createFhevmRuntime as createFhevmRuntime_ } from '../../core/runtime/CoreFhevmRuntime-p.js';
6
6
  import { verifyTrustedValue } from '../../core/base/trustedValue.js';
7
7
  import { createTrustedClient } from '../../core/modules/ethereum/createTrustedClient.js';
8
- import { ethereumModule } from './ethereum.js';
9
- import { relayerModule } from '../../core/modules/relayer/module/index.js';
10
8
 
11
9
  ////////////////////////////////////////////////////////////////////////////////
12
10
 
@@ -15,59 +13,6 @@ export const PRIVATE_ETHERS_TOKEN = Symbol('ethers.token');
15
13
 
16
14
  ////////////////////////////////////////////////////////////////////////////////
17
15
 
18
- let ethersFhevmRuntime: FhevmRuntime | undefined;
19
- let ethersFhevmRuntimeConfig: FhevmRuntimeConfig | undefined;
20
-
21
- ////////////////////////////////////////////////////////////////////////////////
22
-
23
- /**
24
- * Sets the global {@link FhevmRuntimeConfig} used by the ethers adapter.
25
- *
26
- * Must be called before any runtime or client is created.
27
- * May be called multiple times with identical parameters (idempotent).
28
- * Throws if called again with different parameters.
29
- *
30
- * @param config - The runtime configuration.
31
- * @throws If a different config has already been set.
32
- */
33
- export function setFhevmRuntimeConfig(config: FhevmRuntimeConfig): void {
34
- if (ethersFhevmRuntimeConfig === undefined) {
35
- ethersFhevmRuntimeConfig = { ...config };
36
- return;
37
- }
38
- if (
39
- ethersFhevmRuntimeConfig.logger !== config.logger ||
40
- ethersFhevmRuntimeConfig.locateFile !== config.locateFile ||
41
- ethersFhevmRuntimeConfig.singleThread !== config.singleThread ||
42
- ethersFhevmRuntimeConfig.numberOfThreads !== config.numberOfThreads
43
- ) {
44
- throw new Error(
45
- 'FhevmRuntime config has already been set and cannot be changed. ' +
46
- 'Ensure setFhevmRuntimeConfig is called only once, or with identical parameters.',
47
- );
48
- }
49
- }
50
-
51
- ////////////////////////////////////////////////////////////////////////////////
52
-
53
- export function getEthersRuntime(): FhevmRuntime {
54
- if (ethersFhevmRuntimeConfig === undefined) {
55
- throw new Error('Call setFhevmRuntimeConfig first.');
56
- }
57
-
58
- const em = ethereumModule();
59
- const rm = relayerModule();
60
-
61
- ethersFhevmRuntime ??= createFhevmRuntime({
62
- ethereum: em.ethereum,
63
- relayer: rm.relayer,
64
- config: ethersFhevmRuntimeConfig,
65
- });
66
- return ethersFhevmRuntime;
67
- }
68
-
69
- ////////////////////////////////////////////////////////////////////////////////
70
-
71
16
  /**
72
17
  * Seals an ethers `ContractRunner` into an opaque {@link TrustedClient}.
73
18
  *
@@ -0,0 +1,28 @@
1
+ import type { FhevmRuntime } from '../../core/types/coreFhevmRuntime.js';
2
+ import { getFhevmRuntimeConfig, hasFhevmRuntimeConfig } from './config.js';
3
+ import { cleartextEthereumModule } from './ethereum-ct.js';
4
+ import { relayerModule as cleartextRelayerModule } from '../../core/modules/relayer/cleartext/mock.js';
5
+ import { createFhevmRuntime } from './ethers-p.js';
6
+
7
+ ////////////////////////////////////////////////////////////////////////////////
8
+
9
+ let ethersFhevmRuntime: FhevmRuntime | undefined;
10
+
11
+ ////////////////////////////////////////////////////////////////////////////////
12
+
13
+ export function getCleartextEthersRuntime(): FhevmRuntime {
14
+ if (!hasFhevmRuntimeConfig()) {
15
+ throw new Error('Call setFhevmRuntimeConfig first.');
16
+ }
17
+
18
+ const em = cleartextEthereumModule();
19
+ const rm = cleartextRelayerModule();
20
+
21
+ ethersFhevmRuntime ??= createFhevmRuntime({
22
+ ethereum: em.ethereum,
23
+ relayer: rm.relayer,
24
+ config: getFhevmRuntimeConfig(),
25
+ });
26
+
27
+ return ethersFhevmRuntime;
28
+ }
@@ -0,0 +1,28 @@
1
+ import type { FhevmRuntime } from '../../core/types/coreFhevmRuntime.js';
2
+ import { getFhevmRuntimeConfig, hasFhevmRuntimeConfig } from './config.js';
3
+ import { ethereumModule } from './ethereum.js';
4
+ import { relayerModule } from '../../core/modules/relayer/module/index.js';
5
+ import { createFhevmRuntime } from './ethers-p.js';
6
+
7
+ ////////////////////////////////////////////////////////////////////////////////
8
+
9
+ let viemFhevmRuntime: FhevmRuntime | undefined;
10
+
11
+ ////////////////////////////////////////////////////////////////////////////////
12
+
13
+ export function getEthersRuntime(): FhevmRuntime {
14
+ if (!hasFhevmRuntimeConfig()) {
15
+ throw new Error('Call setFhevmRuntimeConfig first.');
16
+ }
17
+
18
+ const em = ethereumModule();
19
+ const rm = relayerModule();
20
+
21
+ viemFhevmRuntime ??= createFhevmRuntime({
22
+ ethereum: em.ethereum,
23
+ relayer: rm.relayer,
24
+ config: getFhevmRuntimeConfig(),
25
+ });
26
+
27
+ return viemFhevmRuntime;
28
+ }
@@ -1,5 +1,6 @@
1
- import { getEthersRuntime, PRIVATE_ETHERS_TOKEN } from '../internal/ethers-p.js';
2
1
  import { initFhevmDecryptRuntime as initFhevmDecyptRuntime_ } from '../../core/runtime/initFhevmDecryptRuntime-p.js';
2
+ import { PRIVATE_ETHERS_TOKEN } from '../internal/ethers-p.js';
3
+ import { getEthersRuntime } from '../internal/runtime.js';
3
4
 
4
5
  ////////////////////////////////////////////////////////////////////////////////
5
6
 
@@ -1,5 +1,6 @@
1
- import { getEthersRuntime, PRIVATE_ETHERS_TOKEN } from '../internal/ethers-p.js';
2
1
  import { initFhevmEncryptRuntime as initFhevmEncryptRuntime_ } from '../../core/runtime/initFhevmEncryptRuntime-p.js';
2
+ import { PRIVATE_ETHERS_TOKEN } from '../internal/ethers-p.js';
3
+ import { getEthersRuntime } from '../internal/runtime.js';
3
4
 
4
5
  ////////////////////////////////////////////////////////////////////////////////
5
6
 
@@ -1,5 +1,6 @@
1
- import { getEthersRuntime, PRIVATE_ETHERS_TOKEN } from '../internal/ethers-p.js';
2
1
  import { initFhevmRuntime as initFhevmRuntime_ } from '../../core/runtime/initFhevmRuntime-p.js';
2
+ import { PRIVATE_ETHERS_TOKEN } from '../internal/ethers-p.js';
3
+ import { getEthersRuntime } from '../internal/runtime.js';
3
4
 
4
5
  ////////////////////////////////////////////////////////////////////////////////
5
6
 
package/index.ts ADDED
File without changes
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@fhevm/sdk",
3
3
  "description": "TypeScript Interface for FHEVM",
4
- "version": "1.0.0-alpha.1",
4
+ "version": "1.0.0-alpha.3",
5
5
  "type": "module",
6
6
  "main": "./_cjs/index.js",
7
7
  "module": "./_esm/index.js",
@@ -11,6 +11,7 @@
11
11
  "files": [
12
12
  "*",
13
13
  "!**/*.test.ts",
14
+ "!**/*.template",
14
15
  "!**/*.tsbuildinfo",
15
16
  "!tsconfig.build.json"
16
17
  ],
@@ -35,6 +36,11 @@
35
36
  "import": "./_esm/ethers/index.js",
36
37
  "default": "./_cjs/ethers/index.js"
37
38
  },
39
+ "./ethers/cleartext": {
40
+ "types": "./_types/ethers/cleartext/index.d.ts",
41
+ "import": "./_esm/ethers/cleartext/index.js",
42
+ "default": "./_cjs/ethers/cleartext/index.js"
43
+ },
38
44
  "./types": {
39
45
  "types": "./_types/core/types/index.d.ts",
40
46
  "import": "./_esm/core/types/index.js",
@@ -45,6 +51,11 @@
45
51
  "import": "./_esm/viem/index.js",
46
52
  "default": "./_cjs/viem/index.js"
47
53
  },
54
+ "./viem/cleartext": {
55
+ "types": "./_types/viem/cleartext/index.d.ts",
56
+ "import": "./_esm/viem/cleartext/index.js",
57
+ "default": "./_cjs/viem/cleartext/index.js"
58
+ },
48
59
  "./actions/base": {
49
60
  "types": "./_types/core/actions/base/index.d.ts",
50
61
  "import": "./_esm/core/actions/base/index.js",
@@ -73,7 +84,7 @@
73
84
  "./package.json": "./package.json"
74
85
  },
75
86
  "peerDependencies": {
76
- "ethers": ">=6",
87
+ "ethers": ">=6.8.0",
77
88
  "typescript": ">=5.0.4",
78
89
  "viem": ">=2"
79
90
  },
@@ -90,6 +101,7 @@
90
101
  },
91
102
  "dependencies": {
92
103
  "@noble/hashes": "2.0.1",
104
+ "@noble/curves": "2.0.1",
93
105
  "wasm-feature-detect": "^1.8.0"
94
106
  },
95
107
  "repository": {
@@ -0,0 +1,28 @@
1
+ import type { PublicClient } from 'viem';
2
+ import type { FhevmChain } from '../../core/types/fhevmChain.js';
3
+ import type { FhevmRuntime } from '../../core/types/coreFhevmRuntime.js';
4
+ import type { FhevmOptions } from '../../core/types/coreFhevmClient.js';
5
+ import type { FhevmBaseClient } from '../../core/types/fhevmClient.js';
6
+ import { createCoreFhevm } from '../../core/runtime/CoreFhevm-p.js';
7
+ import { baseActions } from '../../core/clients/decorators/base.js';
8
+ import { PRIVATE_VIEM_TOKEN } from '../internal/viem-p.js';
9
+ import { getCleartextViemRuntime } from '../internal/runtime-ct.js';
10
+
11
+ ////////////////////////////////////////////////////////////////////////////////
12
+
13
+ export function createFhevmCleartextBaseClient<
14
+ chain extends FhevmChain,
15
+ publicClient extends PublicClient,
16
+ >(parameters: {
17
+ readonly publicClient: publicClient;
18
+ readonly chain: chain;
19
+ readonly options?: FhevmOptions | undefined;
20
+ }): FhevmBaseClient<chain, FhevmRuntime, publicClient> {
21
+ const c = createCoreFhevm(PRIVATE_VIEM_TOKEN, {
22
+ chain: parameters.chain,
23
+ runtime: getCleartextViemRuntime(),
24
+ client: parameters.publicClient,
25
+ options: parameters.options,
26
+ });
27
+ return c.extend(baseActions);
28
+ }
@@ -0,0 +1,20 @@
1
+ import type { PublicClient } from 'viem';
2
+ import type { FhevmChain } from '../../core/types/fhevmChain.js';
3
+ import type { WithAll } from '../../core/types/coreFhevmRuntime.js';
4
+ import type { FhevmOptions } from '../../core/types/coreFhevmClient.js';
5
+ import type { FhevmClient } from '../../core/types/fhevmClient.js';
6
+ import { createFhevmCleartextBaseClient } from './createFhevmCleartextBaseClient.js';
7
+ import { encryptActions } from './decorators/encrypt.js';
8
+ import { decryptActions } from './decorators/decrypt.js';
9
+
10
+ ////////////////////////////////////////////////////////////////////////////////
11
+
12
+ export function createFhevmCleartextClient<chain extends FhevmChain, publicClient extends PublicClient>(parameters: {
13
+ readonly publicClient: publicClient;
14
+ readonly chain: chain;
15
+ readonly options?: FhevmOptions | undefined;
16
+ }): FhevmClient<chain, WithAll, publicClient> {
17
+ const c = createFhevmCleartextBaseClient(parameters);
18
+
19
+ return c.extend(decryptActions).extend(encryptActions);
20
+ }
@@ -0,0 +1,21 @@
1
+ import type { PublicClient } from 'viem';
2
+ import type { FhevmChain } from '../../core/types/fhevmChain.js';
3
+ import type { WithDecrypt } from '../../core/types/coreFhevmRuntime.js';
4
+ import type { FhevmOptions } from '../../core/types/coreFhevmClient.js';
5
+ import type { FhevmDecryptClient } from '../../core/types/fhevmClient.js';
6
+ import { createFhevmCleartextBaseClient } from './createFhevmCleartextBaseClient.js';
7
+ import { decryptActions } from './decorators/decrypt.js';
8
+
9
+ ////////////////////////////////////////////////////////////////////////////////
10
+
11
+ export function createFhevmCleartextDecryptClient<
12
+ chain extends FhevmChain,
13
+ publicClient extends PublicClient,
14
+ >(parameters: {
15
+ readonly publicClient: publicClient;
16
+ readonly chain: chain;
17
+ readonly options?: FhevmOptions | undefined;
18
+ }): FhevmDecryptClient<chain, WithDecrypt, publicClient> {
19
+ const c = createFhevmCleartextBaseClient(parameters);
20
+ return c.extend(decryptActions);
21
+ }
@@ -0,0 +1,22 @@
1
+ import type { PublicClient } from 'viem';
2
+ import type { FhevmChain } from '../../core/types/fhevmChain.js';
3
+ import type { WithEncrypt } from '../../core/types/coreFhevmRuntime.js';
4
+ import type { FhevmOptions } from '../../core/types/coreFhevmClient.js';
5
+ import type { FhevmEncryptClient } from '../../core/types/fhevmClient.js';
6
+ import { createFhevmCleartextBaseClient } from './createFhevmCleartextBaseClient.js';
7
+ import { encryptActions } from './decorators/encrypt.js';
8
+
9
+ ////////////////////////////////////////////////////////////////////////////////
10
+
11
+ export function createFhevmCleartextEncryptClient<
12
+ chain extends FhevmChain,
13
+ publicClient extends PublicClient,
14
+ >(parameters: {
15
+ readonly publicClient: publicClient;
16
+ readonly chain: chain;
17
+ readonly options?: FhevmOptions | undefined;
18
+ }): FhevmEncryptClient<chain, WithEncrypt, publicClient> {
19
+ const c = createFhevmCleartextBaseClient(parameters);
20
+
21
+ return c.extend(encryptActions);
22
+ }
@@ -0,0 +1,12 @@
1
+ import type { FhevmChain } from '../../../core/types/fhevmChain.js';
2
+ import type { WithDecrypt } from '../../../core/types/coreFhevmRuntime.js';
3
+ import type { FhevmBase, FhevmExtension } from '../../../core/types/coreFhevmClient.js';
4
+ import type { DecryptActions } from '../../../core/clients/decorators/decrypt.js';
5
+ import { decryptModule } from '../../../core/modules/decrypt/mock.js';
6
+ import { decryptActionsWithModule } from '../../../core/clients/decorators/decrypt.js';
7
+
8
+ ////////////////////////////////////////////////////////////////////////////////
9
+
10
+ export function decryptActions(fhevm: FhevmBase<FhevmChain>): FhevmExtension<DecryptActions, WithDecrypt> {
11
+ return decryptActionsWithModule(fhevm, decryptModule);
12
+ }
@@ -0,0 +1,12 @@
1
+ import type { FhevmChain } from '../../../core/types/fhevmChain.js';
2
+ import type { WithEncrypt } from '../../../core/types/coreFhevmRuntime.js';
3
+ import type { FhevmBase, FhevmExtension } from '../../../core/types/coreFhevmClient.js';
4
+ import type { EncryptActions } from '../../../core/clients/decorators/encrypt.js';
5
+ import { encryptModule } from '../../../core/modules/encrypt/mock.js';
6
+ import { encryptActionsWithModule } from '../../../core/clients/decorators/encrypt.js';
7
+
8
+ ////////////////////////////////////////////////////////////////////////////////
9
+
10
+ export function encryptActions(fhevm: FhevmBase<FhevmChain>): FhevmExtension<EncryptActions, WithEncrypt> {
11
+ return encryptActionsWithModule(fhevm, encryptModule);
12
+ }
@@ -0,0 +1,4 @@
1
+ export { createFhevmCleartextBaseClient } from './createFhevmCleartextBaseClient.js';
2
+ export { createFhevmCleartextDecryptClient } from './createFhevmCleartextDecryptClient.js';
3
+ export { createFhevmCleartextEncryptClient } from './createFhevmCleartextEncryptClient.js';
4
+ export { createFhevmCleartextClient } from './createFhevmCleartextClient.js';
@@ -0,0 +1,6 @@
1
+ {
2
+ "type": "module",
3
+ "types": "../../_types/viem/cleartext/index.d.ts",
4
+ "module": "../../_esm/viem/cleartext/index.js",
5
+ "main": "../../_cjs/viem/cleartext/index.js"
6
+ }
@@ -3,7 +3,8 @@ import type { FhevmChain } from '../../core/types/fhevmChain.js';
3
3
  import type { FhevmRuntime } from '../../core/types/coreFhevmRuntime.js';
4
4
  import type { FhevmOptions } from '../../core/types/coreFhevmClient.js';
5
5
  import type { FhevmBaseClient } from '../../core/types/fhevmClient.js';
6
- import { getViemRuntime, PRIVATE_VIEM_TOKEN } from '../internal/viem-p.js';
6
+ import { PRIVATE_VIEM_TOKEN } from '../internal/viem-p.js';
7
+ import { getViemRuntime } from '../internal/runtime.js';
7
8
  import { createCoreFhevm } from '../../core/runtime/CoreFhevm-p.js';
8
9
  import { baseActions } from '../../core/clients/decorators/base.js';
9
10
 
@@ -4,8 +4,8 @@ import type { WithAll } from '../../core/types/coreFhevmRuntime.js';
4
4
  import type { FhevmOptions } from '../../core/types/coreFhevmClient.js';
5
5
  import type { FhevmClient } from '../../core/types/fhevmClient.js';
6
6
  import { createFhevmBaseClient } from './createFhevmBaseClient.js';
7
- import { encryptActions } from '../decorators/encrypt.js';
8
- import { decryptActions } from '../decorators/decrypt.js';
7
+ import { encryptActions } from './decorators/encrypt.js';
8
+ import { decryptActions } from './decorators/decrypt.js';
9
9
 
10
10
  ////////////////////////////////////////////////////////////////////////////////
11
11
 
@@ -4,7 +4,7 @@ import type { WithDecrypt } from '../../core/types/coreFhevmRuntime.js';
4
4
  import type { FhevmOptions } from '../../core/types/coreFhevmClient.js';
5
5
  import type { FhevmDecryptClient } from '../../core/types/fhevmClient.js';
6
6
  import { createFhevmBaseClient } from './createFhevmBaseClient.js';
7
- import { decryptActions } from '../decorators/decrypt.js';
7
+ import { decryptActions } from './decorators/decrypt.js';
8
8
 
9
9
  ////////////////////////////////////////////////////////////////////////////////
10
10
 
@@ -4,7 +4,7 @@ import type { WithEncrypt } from '../../core/types/coreFhevmRuntime.js';
4
4
  import type { FhevmOptions } from '../../core/types/coreFhevmClient.js';
5
5
  import type { FhevmEncryptClient } from '../../core/types/fhevmClient.js';
6
6
  import { createFhevmBaseClient } from './createFhevmBaseClient.js';
7
- import { encryptActions } from '../decorators/encrypt.js';
7
+ import { encryptActions } from './decorators/encrypt.js';
8
8
 
9
9
  ////////////////////////////////////////////////////////////////////////////////
10
10
 
@@ -17,5 +17,3 @@ export function createFhevmEncryptClient<chain extends FhevmChain, publicClient
17
17
 
18
18
  return c.extend(encryptActions);
19
19
  }
20
-
21
- ////////////////////////////////////////////////////////////////////////////////
@@ -0,0 +1,12 @@
1
+ import type { FhevmChain } from '../../../core/types/fhevmChain.js';
2
+ import type { WithDecrypt } from '../../../core/types/coreFhevmRuntime.js';
3
+ import type { FhevmBase, FhevmExtension } from '../../../core/types/coreFhevmClient.js';
4
+ import type { DecryptActions } from '../../../core/clients/decorators/decrypt.js';
5
+ import { decryptModule } from '../../../core/modules/decrypt/module/index.js';
6
+ import { decryptActionsWithModule } from '../../../core/clients/decorators/decrypt.js';
7
+
8
+ ////////////////////////////////////////////////////////////////////////////////
9
+
10
+ export function decryptActions(fhevm: FhevmBase<FhevmChain>): FhevmExtension<DecryptActions, WithDecrypt> {
11
+ return decryptActionsWithModule(fhevm, decryptModule);
12
+ }
@@ -0,0 +1,12 @@
1
+ import type { FhevmChain } from '../../../core/types/fhevmChain.js';
2
+ import type { WithEncrypt } from '../../../core/types/coreFhevmRuntime.js';
3
+ import type { FhevmBase, FhevmExtension } from '../../../core/types/coreFhevmClient.js';
4
+ import type { EncryptActions } from '../../../core/clients/decorators/encrypt.js';
5
+ import { encryptModule } from '../../../core/modules/encrypt/module/index.js';
6
+ import { encryptActionsWithModule } from '../../../core/clients/decorators/encrypt.js';
7
+
8
+ ////////////////////////////////////////////////////////////////////////////////
9
+
10
+ export function encryptActions(fhevm: FhevmBase<FhevmChain>): FhevmExtension<EncryptActions, WithEncrypt> {
11
+ return encryptActionsWithModule(fhevm, encryptModule);
12
+ }
package/viem/index.ts CHANGED
@@ -1,9 +1,9 @@
1
- export { setFhevmRuntimeConfig } from './internal/viem-p.js';
1
+ export { setFhevmRuntimeConfig, hasFhevmRuntimeConfig } from './internal/config.js';
2
2
 
3
3
  export { createFhevmBaseClient } from './clients/createFhevmBaseClient.js';
4
- export { createFhevmClient } from './clients/createFhevmClient.js';
5
4
  export { createFhevmDecryptClient } from './clients/createFhevmDecryptClient.js';
6
5
  export { createFhevmEncryptClient } from './clients/createFhevmEncryptClient.js';
6
+ export { createFhevmClient } from './clients/createFhevmClient.js';
7
7
 
8
8
  export { initFhevmRuntime } from './runtime/initFhevmRuntime.js';
9
9
  export { initFhevmEncryptRuntime } from './runtime/initFhevmEncryptRuntime.js';
@@ -0,0 +1,50 @@
1
+ import type { FhevmRuntimeConfig } from '../../core/types/coreFhevmRuntime.js';
2
+
3
+ let viemFhevmRuntimeConfig: FhevmRuntimeConfig | undefined;
4
+
5
+ ////////////////////////////////////////////////////////////////////////////////
6
+
7
+ /**
8
+ * Sets the global {@link FhevmRuntimeConfig} used by the viem adapter.
9
+ *
10
+ * Must be called before any runtime or client is created.
11
+ * May be called multiple times with identical parameters (idempotent).
12
+ * Throws if called again with different parameters.
13
+ *
14
+ * @param config - The runtime configuration.
15
+ * @throws If a different config has already been set.
16
+ */
17
+ export function setFhevmRuntimeConfig(config: FhevmRuntimeConfig): void {
18
+ if (viemFhevmRuntimeConfig === undefined) {
19
+ viemFhevmRuntimeConfig = Object.freeze({
20
+ ...config,
21
+ logger: config.logger ? Object.freeze({ ...config.logger }) : undefined,
22
+ });
23
+ return;
24
+ }
25
+
26
+ if (
27
+ viemFhevmRuntimeConfig.logger !== config.logger ||
28
+ viemFhevmRuntimeConfig.locateFile !== config.locateFile ||
29
+ viemFhevmRuntimeConfig.singleThread !== config.singleThread ||
30
+ viemFhevmRuntimeConfig.numberOfThreads !== config.numberOfThreads
31
+ ) {
32
+ throw new Error(
33
+ 'FhevmRuntime config has already been set and cannot be changed. ' +
34
+ 'Ensure setFhevmRuntimeConfig is called only once, or with identical parameters.',
35
+ );
36
+ }
37
+ }
38
+
39
+ export function hasFhevmRuntimeConfig(): boolean {
40
+ return viemFhevmRuntimeConfig !== undefined;
41
+ }
42
+
43
+ export function getFhevmRuntimeConfig(): FhevmRuntimeConfig {
44
+ if (viemFhevmRuntimeConfig === undefined) {
45
+ throw new Error(
46
+ 'FhevmRuntime config has not been set. ' + 'Call setFhevmRuntimeConfig before creating any runtime or client.',
47
+ );
48
+ }
49
+ return viemFhevmRuntimeConfig;
50
+ }
@@ -0,0 +1,61 @@
1
+ import type {
2
+ CleartextEthereumModuleFactory,
3
+ GeneratePrivateKeyReturnType,
4
+ GetPublicKeyParameters,
5
+ GetPublicKeyReturnType,
6
+ MnemonicToAccountParameters,
7
+ MnemonicToAccountReturnType,
8
+ RecoverAddressParameters,
9
+ RecoverAddressReturnType,
10
+ SignParameters,
11
+ SignReturnType,
12
+ } from '../../core/modules/ethereum/types-ct.js';
13
+ import type { Bytes65Hex, BytesHex, ChecksummedAddress } from '../../core/types/primitives.js';
14
+ import { generatePrivateKey, mnemonicToAccount, privateKeyToAccount, sign } from 'viem/accounts';
15
+ import {
16
+ decode,
17
+ encode,
18
+ encodePacked,
19
+ getChainId,
20
+ readContract,
21
+ recoverTypedDataAddress,
22
+ signTypedData,
23
+ } from './ethereum.js';
24
+ import { bytesToHex } from '../../core/base/bytes.js';
25
+ import { recoverAddress } from 'viem';
26
+
27
+ ////////////////////////////////////////////////////////////////////////////////
28
+
29
+ export const cleartextEthereumModule: CleartextEthereumModuleFactory = () => {
30
+ return Object.freeze({
31
+ ethereum: Object.freeze({
32
+ decode,
33
+ encode,
34
+ encodePacked,
35
+ recoverTypedDataAddress,
36
+ signTypedData,
37
+ getChainId,
38
+ readContract,
39
+ mnemonicToAccount: (parameters: MnemonicToAccountParameters): MnemonicToAccountReturnType => {
40
+ const signer = mnemonicToAccount(parameters.mnemonic, { path: parameters.path });
41
+ const pk = signer.getHdKey().privateKey;
42
+ if (pk === null) {
43
+ throw new Error(`Failed to derive private key from mnemonic at address ${signer.address}.`);
44
+ }
45
+ return { privateKey: bytesToHex(pk), address: signer.address as ChecksummedAddress };
46
+ },
47
+ sign: (parameters: SignParameters): Promise<SignReturnType> => {
48
+ return sign({ hash: parameters.hash, privateKey: parameters.privateKey, to: 'hex' }) as Promise<Bytes65Hex>;
49
+ },
50
+ generatePrivateKey: (): GeneratePrivateKeyReturnType => {
51
+ return generatePrivateKey() as BytesHex;
52
+ },
53
+ getPublicKey: (parameters: GetPublicKeyParameters): GetPublicKeyReturnType => {
54
+ return privateKeyToAccount(parameters.privateKey).publicKey as BytesHex;
55
+ },
56
+ recoverAddress: (parameters: RecoverAddressParameters): Promise<RecoverAddressReturnType> => {
57
+ return recoverAddress(parameters) as Promise<ChecksummedAddress>;
58
+ },
59
+ }),
60
+ });
61
+ };
@@ -0,0 +1,28 @@
1
+ import type { FhevmRuntime } from '../../core/types/coreFhevmRuntime.js';
2
+ import { getFhevmRuntimeConfig, hasFhevmRuntimeConfig } from './config.js';
3
+ import { cleartextEthereumModule } from './ethereum-ct.js';
4
+ import { relayerModule as cleartextRelayerModule } from '../../core/modules/relayer/cleartext/mock.js';
5
+ import { createFhevmRuntime } from './viem-p.js';
6
+
7
+ ////////////////////////////////////////////////////////////////////////////////
8
+
9
+ let viemFhevmRuntime: FhevmRuntime | undefined;
10
+
11
+ ////////////////////////////////////////////////////////////////////////////////
12
+
13
+ export function getCleartextViemRuntime(): FhevmRuntime {
14
+ if (!hasFhevmRuntimeConfig()) {
15
+ throw new Error('Call setFhevmRuntimeConfig first.');
16
+ }
17
+
18
+ const em = cleartextEthereumModule();
19
+ const rm = cleartextRelayerModule();
20
+
21
+ viemFhevmRuntime ??= createFhevmRuntime({
22
+ ethereum: em.ethereum,
23
+ relayer: rm.relayer,
24
+ config: getFhevmRuntimeConfig(),
25
+ });
26
+
27
+ return viemFhevmRuntime;
28
+ }
@@ -0,0 +1,28 @@
1
+ import type { FhevmRuntime } from '../../core/types/coreFhevmRuntime.js';
2
+ import { getFhevmRuntimeConfig, hasFhevmRuntimeConfig } from './config.js';
3
+ import { ethereumModule } from './ethereum.js';
4
+ import { relayerModule } from '../../core/modules/relayer/module/index.js';
5
+ import { createFhevmRuntime } from './viem-p.js';
6
+
7
+ ////////////////////////////////////////////////////////////////////////////////
8
+
9
+ let viemFhevmRuntime: FhevmRuntime | undefined;
10
+
11
+ ////////////////////////////////////////////////////////////////////////////////
12
+
13
+ export function getViemRuntime(): FhevmRuntime {
14
+ if (!hasFhevmRuntimeConfig()) {
15
+ throw new Error('Call setFhevmRuntimeConfig first.');
16
+ }
17
+
18
+ const em = ethereumModule();
19
+ const rm = relayerModule();
20
+
21
+ viemFhevmRuntime ??= createFhevmRuntime({
22
+ ethereum: em.ethereum,
23
+ relayer: rm.relayer,
24
+ config: getFhevmRuntimeConfig(),
25
+ });
26
+
27
+ return viemFhevmRuntime;
28
+ }