@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
@@ -3,7 +3,7 @@ import type { FetchInputProofResult } from '../../../types/relayer.js';
3
3
  import type {
4
4
  FetchCoprocessorSignaturesParameters,
5
5
  FetchCoprocessorSignaturesReturnType,
6
- RelayerClient,
6
+ RelayerClientWithRuntime,
7
7
  } from '../types.js';
8
8
  import { bytesToHexNo0x } from '../../../base/bytes.js';
9
9
  import { removeSuffix } from '../../../base/string.js';
@@ -15,7 +15,7 @@ import { RelayerAsyncRequest } from './RelayerAsyncRequest.js';
15
15
  ////////////////////////////////////////////////////////////////////////////////
16
16
 
17
17
  export async function fetchCoprocessorSignatures(
18
- relayerClient: RelayerClient,
18
+ relayerClient: RelayerClientWithRuntime,
19
19
  parameters: FetchCoprocessorSignaturesParameters,
20
20
  ): Promise<FetchCoprocessorSignaturesReturnType> {
21
21
  const { options, payload } = parameters;
@@ -24,13 +24,13 @@ export async function fetchCoprocessorSignatures(
24
24
  ciphertextWithInputVerification: bytesToHexNo0x(payload.zkProof.ciphertextWithZkProof),
25
25
  contractAddress: payload.zkProof.contractAddress,
26
26
  contractChainId: uintToHex0x(payload.zkProof.chainId),
27
- extraData: payload.extraData,
27
+ extraData: payload.zkProof.getExtraData(),
28
28
  userAddress: payload.zkProof.userAddress,
29
29
  };
30
30
 
31
31
  const request = new RelayerAsyncRequest({
32
32
  relayerOperation: 'INPUT_PROOF',
33
- url: `${removeSuffix(relayerClient.relayerUrl, '/')}/v2/input-proof`,
33
+ url: `${removeSuffix(relayerClient.chain.fhevm.relayerUrl, '/')}/v2/input-proof`,
34
34
  payload: inputProofPayload,
35
35
  options,
36
36
  });
@@ -3,7 +3,7 @@ import type { FetchDelegatedUserDecryptResult } from '../../../types/relayer.js'
3
3
  import type {
4
4
  FetchDelegatedUserDecryptParameters,
5
5
  FetchDelegatedUserDecryptReturnType,
6
- RelayerClient,
6
+ RelayerClientWithRuntime,
7
7
  } from '../types.js';
8
8
  import type { KmsSigncryptedShare } from '../../../types/kms-p.js';
9
9
  import { remove0x, removeSuffix } from '../../../base/string.js';
@@ -14,7 +14,7 @@ import { RelayerAsyncRequest } from './RelayerAsyncRequest.js';
14
14
  //////////////////////////////////////////////////////////////////////////////
15
15
 
16
16
  export async function fetchDelegatedUserDecrypt(
17
- relayerClient: RelayerClient,
17
+ relayerClient: RelayerClientWithRuntime,
18
18
  parameters: FetchDelegatedUserDecryptParameters,
19
19
  ): Promise<FetchDelegatedUserDecryptReturnType> {
20
20
  const { options, payload } = parameters;
@@ -47,7 +47,7 @@ export async function fetchDelegatedUserDecrypt(
47
47
 
48
48
  const request = new RelayerAsyncRequest({
49
49
  relayerOperation: 'DELEGATED_USER_DECRYPT',
50
- url: `${removeSuffix(relayerClient.relayerUrl, '/')}/v2/delegated-user-decrypt`,
50
+ url: `${removeSuffix(relayerClient.chain.fhevm.relayerUrl, '/')}/v2/delegated-user-decrypt`,
51
51
  payload: relayerPayload,
52
52
  options,
53
53
  });
@@ -1,7 +1,7 @@
1
1
  import type { Bytes65Hex, BytesHex } from '../../../types/primitives.js';
2
2
  import type { RelayerFetchPublicDecryptPayload } from '../../../types/relayer-p.js';
3
3
  import type { FetchPublicDecryptResult } from '../../../types/relayer.js';
4
- import type { FetchPublicDecryptParameters, FetchPublicDecryptReturnType, RelayerClient } from '../types.js';
4
+ import type { FetchPublicDecryptParameters, FetchPublicDecryptReturnType, RelayerClientWithRuntime } from '../types.js';
5
5
  import { ensure0x, removeSuffix } from '../../../base/string.js';
6
6
  import { RelayerAsyncRequest } from './RelayerAsyncRequest.js';
7
7
 
@@ -10,7 +10,7 @@ import { RelayerAsyncRequest } from './RelayerAsyncRequest.js';
10
10
  //////////////////////////////////////////////////////////////////////////////
11
11
 
12
12
  export async function fetchPublicDecrypt(
13
- relayerClient: RelayerClient,
13
+ relayerClient: RelayerClientWithRuntime,
14
14
  parameters: FetchPublicDecryptParameters,
15
15
  ): Promise<FetchPublicDecryptReturnType> {
16
16
  const { options, payload } = parameters;
@@ -25,7 +25,7 @@ export async function fetchPublicDecrypt(
25
25
 
26
26
  const request = new RelayerAsyncRequest({
27
27
  relayerOperation: 'PUBLIC_DECRYPT',
28
- url: `${removeSuffix(relayerClient.relayerUrl, '/')}/v2/public-decrypt`,
28
+ url: `${removeSuffix(relayerClient.chain.fhevm.relayerUrl, '/')}/v2/public-decrypt`,
29
29
  payload: p,
30
30
  options,
31
31
  });
@@ -2,7 +2,7 @@ import type { KmsSigncryptedShare } from '../../../types/kms-p.js';
2
2
  import type { Bytes65HexNo0x } from '../../../types/primitives.js';
3
3
  import type { FetchUserDecryptPayload } from '../../../types/relayer-p.js';
4
4
  import type { FetchUserDecryptResult } from '../../../types/relayer.js';
5
- import type { FetchUserDecryptParameters, FetchUserDecryptReturnType, RelayerClient } from '../types.js';
5
+ import type { FetchUserDecryptParameters, FetchUserDecryptReturnType, RelayerClientWithRuntime } from '../types.js';
6
6
  import { remove0x, removeSuffix } from '../../../base/string.js';
7
7
  import { RelayerAsyncRequest } from './RelayerAsyncRequest.js';
8
8
 
@@ -11,7 +11,7 @@ import { RelayerAsyncRequest } from './RelayerAsyncRequest.js';
11
11
  //////////////////////////////////////////////////////////////////////////////
12
12
 
13
13
  export async function fetchUserDecrypt(
14
- relayerClient: RelayerClient,
14
+ relayerClient: RelayerClientWithRuntime,
15
15
  parameters: FetchUserDecryptParameters,
16
16
  ): Promise<FetchUserDecryptReturnType> {
17
17
  const { options, payload } = parameters;
@@ -45,7 +45,7 @@ export async function fetchUserDecrypt(
45
45
 
46
46
  const request = new RelayerAsyncRequest({
47
47
  relayerOperation: 'USER_DECRYPT',
48
- url: `${removeSuffix(relayerClient.relayerUrl, '/')}/v2/user-decrypt`,
48
+ url: `${removeSuffix(relayerClient.chain.fhevm.relayerUrl, '/')}/v2/user-decrypt`,
49
49
  payload: relayerPayload,
50
50
  options,
51
51
  });
@@ -12,6 +12,8 @@ import type { Bytes65Hex, BytesHex, ChecksummedAddress } from '../../types/primi
12
12
  import type { Prettify } from '../../types/utils.js';
13
13
  import type { ZkProof } from '../../types/zkProof-p.js';
14
14
  import type { Handle, InputHandle } from '../../types/encryptedTypes-p.js';
15
+ import type { FhevmChain } from '../../types/fhevmChain.js';
16
+ import type { FhevmRuntime } from '../../types/coreFhevmRuntime.js';
15
17
 
16
18
  ////////////////////////////////////////////////////////////////////////////////
17
19
  //
@@ -24,6 +26,13 @@ export type RelayerClient = {
24
26
  readonly chainId: number;
25
27
  };
26
28
 
29
+ export type RelayerClientWithRuntime = {
30
+ readonly chain: FhevmChain;
31
+ readonly runtime: FhevmRuntime;
32
+ readonly client: NonNullable<object>;
33
+ readonly options: { readonly batchRpcCalls: boolean };
34
+ };
35
+
27
36
  ////////////////////////////////////////////////////////////////////////////////
28
37
  // 1.1 fetchFheEncryptionKeySource
29
38
  ////////////////////////////////////////////////////////////////////////////////
@@ -65,7 +74,6 @@ export type FetchFheEncryptionKeyBytesModuleFunction = {
65
74
  export type FetchCoprocessorSignaturesParameters = {
66
75
  readonly payload: {
67
76
  readonly zkProof: ZkProof;
68
- readonly extraData: BytesHex;
69
77
  };
70
78
  readonly options?: RelayerInputProofOptions | undefined;
71
79
  };
@@ -78,7 +86,7 @@ export type FetchCoprocessorSignaturesReturnType = {
78
86
 
79
87
  export type FetchCoprocessorSignaturesModuleFunction = {
80
88
  fetchCoprocessorSignatures(
81
- relayerClient: RelayerClient,
89
+ relayerClient: RelayerClientWithRuntime,
82
90
  parameters: FetchCoprocessorSignaturesParameters,
83
91
  ): Promise<FetchCoprocessorSignaturesReturnType>;
84
92
  };
@@ -103,7 +111,7 @@ export type FetchPublicDecryptReturnType = {
103
111
 
104
112
  export type FetchPublicDecryptModuleFunction = {
105
113
  fetchPublicDecrypt(
106
- relayerClient: RelayerClient,
114
+ relayerClient: RelayerClientWithRuntime,
107
115
  parameters: FetchPublicDecryptParameters,
108
116
  ): Promise<FetchPublicDecryptReturnType>;
109
117
  };
@@ -129,7 +137,7 @@ export type FetchUserDecryptReturnType = readonly KmsSigncryptedShare[];
129
137
 
130
138
  export type FetchUserDecryptModuleFunction = {
131
139
  fetchUserDecrypt(
132
- relayerClient: RelayerClient,
140
+ relayerClient: RelayerClientWithRuntime,
133
141
  parameters: FetchUserDecryptParameters,
134
142
  ): Promise<FetchUserDecryptReturnType>;
135
143
  };
@@ -155,7 +163,7 @@ export type FetchDelegatedUserDecryptReturnType = readonly KmsSigncryptedShare[]
155
163
 
156
164
  export type FetchDelegatedUserDecryptModuleFunction = {
157
165
  fetchDelegatedUserDecrypt(
158
- relayerClient: RelayerClient,
166
+ relayerClient: RelayerClientWithRuntime,
159
167
  parameters: FetchDelegatedUserDecryptParameters,
160
168
  ): Promise<FetchDelegatedUserDecryptReturnType>;
161
169
  };
@@ -0,0 +1,17 @@
1
+ import type { KmsSigncryptedShare } from '../../types/kms-p.js';
2
+ import type { FetchUserDecryptResult } from '../../types/relayer.js';
3
+ import { remove0x } from '../../base/string.js';
4
+
5
+ export function userDecryptResultToKmsSigncryptedShares(
6
+ result: FetchUserDecryptResult,
7
+ ): readonly KmsSigncryptedShare[] {
8
+ const shares: KmsSigncryptedShare[] = result.map((r) => {
9
+ const share: KmsSigncryptedShare = {
10
+ signature: r.signature,
11
+ payload: r.payload,
12
+ extraData: remove0x(r.extraData),
13
+ };
14
+ return share;
15
+ });
16
+ return shares;
17
+ }
@@ -1,2 +1,3 @@
1
1
  export type { TypedValue } from './primitives.js';
2
2
  export type { EncryptedValue, EncryptedValueLike } from './encryptedTypes.js';
3
+ export type { KmsDecryptEip712Like } from './kms.js';
package/core/types/kms.ts CHANGED
@@ -99,6 +99,25 @@ export type KmsPublicDecryptEip712Message = Readonly<{
99
99
  extraData: BytesHex;
100
100
  }>;
101
101
 
102
+ export type KmsDecryptEip712Like = {
103
+ readonly domain: {
104
+ readonly name: string;
105
+ readonly version: string;
106
+ readonly chainId: number | bigint;
107
+ readonly verifyingContract: string;
108
+ };
109
+ readonly primaryType?: string | undefined;
110
+ readonly types: Record<string, ReadonlyArray<{ readonly name: string; readonly type: string }>>;
111
+ readonly message: {
112
+ readonly publicKey: string | Uint8Array;
113
+ readonly contractAddresses: string[];
114
+ readonly startTimestamp: number;
115
+ readonly durationDays: number;
116
+ readonly extraData: string | Uint8Array;
117
+ readonly delegatorAddress?: string | undefined;
118
+ };
119
+ };
120
+
102
121
  export type KmsUserDecryptEip712 = Prettify<{
103
122
  readonly domain: KmsEip712Domain;
104
123
  readonly types: KmsUserDecryptEip712Types;
@@ -1,6 +1,6 @@
1
1
  import type { InputHandle } from './encryptedTypes-p.js';
2
2
  import type { EncryptionBits } from './fheType.js';
3
- import type { Bytes, ChecksummedAddress, Uint64BigInt } from './primitives.js';
3
+ import type { Bytes, BytesHex, ChecksummedAddress, Uint64BigInt } from './primitives.js';
4
4
 
5
5
  ////////////////////////////////////////////////////////////////////////////////
6
6
  //
@@ -25,5 +25,7 @@ export interface ZkProof {
25
25
  readonly ciphertextWithZkProof: Bytes;
26
26
  readonly encryptionBits: readonly EncryptionBits[];
27
27
 
28
+ // Private functions
28
29
  getInputHandles(): readonly InputHandle[];
30
+ getExtraData(): BytesHex;
29
31
  }
@@ -0,0 +1,25 @@
1
+ import type { Provider } from 'ethers';
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_ETHERS_TOKEN } from '../internal/ethers-p.js';
9
+ import { getCleartextEthersRuntime } from '../internal/runtime-ct.js';
10
+
11
+ ////////////////////////////////////////////////////////////////////////////////
12
+
13
+ export function createFhevmCleartextBaseClient<chain extends FhevmChain, provider extends Provider>(parameters: {
14
+ readonly provider: provider;
15
+ readonly chain: chain;
16
+ readonly options?: FhevmOptions | undefined;
17
+ }): FhevmBaseClient<chain, FhevmRuntime, provider> {
18
+ const c = createCoreFhevm(PRIVATE_ETHERS_TOKEN, {
19
+ chain: parameters.chain,
20
+ runtime: getCleartextEthersRuntime(),
21
+ client: parameters.provider,
22
+ options: parameters.options,
23
+ });
24
+ return c.extend(baseActions);
25
+ }
@@ -0,0 +1,20 @@
1
+ import type { Provider } from 'ethers';
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, provider extends Provider>(parameters: {
13
+ readonly provider: provider;
14
+ readonly chain: chain;
15
+ readonly options?: FhevmOptions | undefined;
16
+ }): FhevmClient<chain, WithAll, provider> {
17
+ const c = createFhevmCleartextBaseClient(parameters);
18
+
19
+ return c.extend(decryptActions).extend(encryptActions);
20
+ }
@@ -0,0 +1,18 @@
1
+ import type { Provider } from 'ethers';
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<chain extends FhevmChain, provider extends Provider>(parameters: {
12
+ readonly provider: provider;
13
+ readonly chain: chain;
14
+ readonly options?: FhevmOptions | undefined;
15
+ }): FhevmDecryptClient<chain, WithDecrypt, provider> {
16
+ const c = createFhevmCleartextBaseClient(parameters);
17
+ return c.extend(decryptActions);
18
+ }
@@ -0,0 +1,19 @@
1
+ import type { Provider } from 'ethers';
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<chain extends FhevmChain, provider extends Provider>(parameters: {
12
+ readonly provider: provider;
13
+ readonly chain: chain;
14
+ readonly options?: FhevmOptions | undefined;
15
+ }): FhevmEncryptClient<chain, WithEncrypt, provider> {
16
+ const c = createFhevmCleartextBaseClient(parameters);
17
+
18
+ return c.extend(encryptActions);
19
+ }
@@ -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/ethers/cleartext/index.d.ts",
4
+ "module": "../../_esm/ethers/cleartext/index.js",
5
+ "main": "../../_cjs/ethers/cleartext/index.js"
6
+ }
@@ -3,9 +3,10 @@ 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 { getEthersRuntime, PRIVATE_ETHERS_TOKEN } from '../internal/ethers-p.js';
6
+ import { PRIVATE_ETHERS_TOKEN } from '../internal/ethers-p.js';
7
7
  import { createCoreFhevm } from '../../core/runtime/CoreFhevm-p.js';
8
8
  import { baseActions } from '../../core/clients/decorators/base.js';
9
+ import { getEthersRuntime } from '../internal/runtime.js';
9
10
 
10
11
  ////////////////////////////////////////////////////////////////////////////////
11
12
 
@@ -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
 
@@ -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 { decryptActionsWithModule } from '../../../core/clients/decorators/decrypt.js';
6
+ import { decryptModule } from '../../../core/modules/decrypt/module/index.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 { encryptActionsWithModule } from '../../../core/clients/decorators/encrypt.js';
6
+ import { encryptModule } from '../../../core/modules/encrypt/module/index.js';
7
+
8
+ ////////////////////////////////////////////////////////////////////////////////
9
+
10
+ export function encryptActions(fhevm: FhevmBase<FhevmChain>): FhevmExtension<EncryptActions, WithEncrypt> {
11
+ return encryptActionsWithModule(fhevm, encryptModule);
12
+ }
package/ethers/index.ts CHANGED
@@ -1,4 +1,4 @@
1
- export { setFhevmRuntimeConfig } from './internal/ethers-p.js';
1
+ export { setFhevmRuntimeConfig, hasFhevmRuntimeConfig } from './internal/config.js';
2
2
 
3
3
  export { createFhevmBaseClient } from './clients/createFhevmBaseClient.js';
4
4
  export { createFhevmClient } from './clients/createFhevmClient.js';
@@ -0,0 +1,50 @@
1
+ import type { FhevmRuntimeConfig } from '../../core/types/coreFhevmRuntime.js';
2
+
3
+ let ethersFhevmRuntimeConfig: 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 (ethersFhevmRuntimeConfig === undefined) {
19
+ ethersFhevmRuntimeConfig = Object.freeze({
20
+ ...config,
21
+ logger: config.logger ? Object.freeze({ ...config.logger }) : undefined,
22
+ });
23
+ return;
24
+ }
25
+
26
+ if (
27
+ ethersFhevmRuntimeConfig.logger !== config.logger ||
28
+ ethersFhevmRuntimeConfig.locateFile !== config.locateFile ||
29
+ ethersFhevmRuntimeConfig.singleThread !== config.singleThread ||
30
+ ethersFhevmRuntimeConfig.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 ethersFhevmRuntimeConfig !== undefined;
41
+ }
42
+
43
+ export function getFhevmRuntimeConfig(): FhevmRuntimeConfig {
44
+ if (ethersFhevmRuntimeConfig === undefined) {
45
+ throw new Error(
46
+ 'FhevmRuntime config has not been set. ' + 'Call setFhevmRuntimeConfig before creating any runtime or client.',
47
+ );
48
+ }
49
+ return ethersFhevmRuntimeConfig;
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 { BytesHex, ChecksummedAddress } from '../../core/types/primitives.js';
14
+ import {
15
+ decode,
16
+ encode,
17
+ encodePacked,
18
+ getChainId,
19
+ readContract,
20
+ recoverTypedDataAddress,
21
+ signTypedData,
22
+ } from './ethereum.js';
23
+ import { SigningKey, HDNodeWallet, Wallet } from 'ethers';
24
+ import { sign, recoverAddress } from '../../core/base/sign.js';
25
+
26
+ ////////////////////////////////////////////////////////////////////////////////
27
+
28
+ export const cleartextEthereumModule: CleartextEthereumModuleFactory = () => {
29
+ return Object.freeze({
30
+ ethereum: Object.freeze({
31
+ decode,
32
+ encode,
33
+ encodePacked,
34
+ recoverTypedDataAddress,
35
+ signTypedData,
36
+ getChainId,
37
+ readContract,
38
+ mnemonicToAccount: (parameters: MnemonicToAccountParameters): MnemonicToAccountReturnType => {
39
+ const signer = HDNodeWallet.fromPhrase(parameters.mnemonic, undefined, parameters.path);
40
+ return {
41
+ privateKey: signer.privateKey as BytesHex,
42
+ address: signer.address as ChecksummedAddress,
43
+ };
44
+ },
45
+ sign: (parameters: SignParameters): Promise<SignReturnType> => {
46
+ const signature = sign(parameters);
47
+ return Promise.resolve(signature);
48
+ },
49
+ generatePrivateKey: (): GeneratePrivateKeyReturnType => {
50
+ return Wallet.createRandom().privateKey as BytesHex;
51
+ },
52
+ getPublicKey: (parameters: GetPublicKeyParameters): GetPublicKeyReturnType => {
53
+ return SigningKey.computePublicKey(parameters.privateKey, false) as BytesHex;
54
+ },
55
+ recoverAddress: (parameters: RecoverAddressParameters): Promise<RecoverAddressReturnType> => {
56
+ const recoveredAddress = recoverAddress(parameters);
57
+ return Promise.resolve(recoveredAddress);
58
+ },
59
+ }),
60
+ });
61
+ };