@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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../../viem/internal/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AAYzE,wBAAgB,cAAc,IAAI,YAAY,CAe7C"}
@@ -1,20 +1,8 @@
1
1
  import type { PublicClient } from 'viem';
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
  export declare const PRIVATE_VIEM_TOKEN: unique symbol;
6
- /**
7
- * Sets the global {@link FhevmRuntimeConfig} used by the viem adapter.
8
- *
9
- * Must be called before any runtime or client is created.
10
- * May be called multiple times with identical parameters (idempotent).
11
- * Throws if called again with different parameters.
12
- *
13
- * @param config - The runtime configuration.
14
- * @throws If a different config has already been set.
15
- */
16
- export declare function setFhevmRuntimeConfig(config: FhevmRuntimeConfig): void;
17
- export declare function getViemRuntime(): FhevmRuntime;
18
6
  /**
19
7
  * Seals a viem `PublicClient` into an opaque {@link TrustedClient}.
20
8
  *
@@ -1 +1 @@
1
- {"version":3,"file":"viem-p.d.ts","sourceRoot":"","sources":["../../../viem/internal/viem-p.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AACzC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAC1E,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAC7F,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,0CAA0C,CAAC;AAU7F,eAAO,MAAM,kBAAkB,eAAuB,CAAC;AASvD;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI,CAgBtE;AAID,wBAAgB,cAAc,IAAI,YAAY,CAc7C;AAID;;;;;;;;;GASG;AACH,wBAAgB,+BAA+B,CAAC,MAAM,SAAS,YAAY,EACzE,YAAY,EAAE,MAAM,GACnB,aAAa,CAAC,MAAM,CAAC,CAEvB;AAED;;;;;;;GAOG;AACH,wBAAgB,+BAA+B,CAAC,MAAM,SAAS,YAAY,EACzE,aAAa,EAAE,aAAa,CAAC,MAAM,CAAC,GACnC,MAAM,CAER;AAID,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,4BAA4B,GAAG,YAAY,CAEzF"}
1
+ {"version":3,"file":"viem-p.d.ts","sourceRoot":"","sources":["../../../viem/internal/viem-p.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AACzC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAC1E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AACzE,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,0CAA0C,CAAC;AAQ7F,eAAO,MAAM,kBAAkB,eAAuB,CAAC;AAIvD;;;;;;;;;GASG;AACH,wBAAgB,+BAA+B,CAAC,MAAM,SAAS,YAAY,EACzE,YAAY,EAAE,MAAM,GACnB,aAAa,CAAC,MAAM,CAAC,CAEvB;AAED;;;;;;;GAOG;AACH,wBAAgB,+BAA+B,CAAC,MAAM,SAAS,YAAY,EACzE,aAAa,EAAE,aAAa,CAAC,MAAM,CAAC,GACnC,MAAM,CAER;AAID,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,4BAA4B,GAAG,YAAY,CAEzF"}
@@ -1 +1 @@
1
- {"version":3,"file":"initFhevmDecryptRuntime.d.ts","sourceRoot":"","sources":["../../../viem/runtime/initFhevmDecryptRuntime.ts"],"names":[],"mappings":"AAKA,wBAAgB,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC,CAEvD"}
1
+ {"version":3,"file":"initFhevmDecryptRuntime.d.ts","sourceRoot":"","sources":["../../../viem/runtime/initFhevmDecryptRuntime.ts"],"names":[],"mappings":"AAMA,wBAAgB,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC,CAEvD"}
@@ -1 +1 @@
1
- {"version":3,"file":"initFhevmEncryptRuntime.d.ts","sourceRoot":"","sources":["../../../viem/runtime/initFhevmEncryptRuntime.ts"],"names":[],"mappings":"AAKA,wBAAgB,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC,CAEvD"}
1
+ {"version":3,"file":"initFhevmEncryptRuntime.d.ts","sourceRoot":"","sources":["../../../viem/runtime/initFhevmEncryptRuntime.ts"],"names":[],"mappings":"AAMA,wBAAgB,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC,CAEvD"}
@@ -1 +1 @@
1
- {"version":3,"file":"initFhevmRuntime.d.ts","sourceRoot":"","sources":["../../../viem/runtime/initFhevmRuntime.ts"],"names":[],"mappings":"AAKA,wBAAgB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAEhD"}
1
+ {"version":3,"file":"initFhevmRuntime.d.ts","sourceRoot":"","sources":["../../../viem/runtime/initFhevmRuntime.ts"],"names":[],"mappings":"AAMA,wBAAgB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAEhD"}
package/core/_version.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  // This file is auto-generated
2
- export const version: string = '1.0.0-alpha.1';
2
+ export const version: string = '1.0.0-alpha.3';
3
3
  export const sdkName: string = '@fhevm/sdk';
@@ -20,6 +20,6 @@ export async function fetchVerifiedInputProof(
20
20
  parameters: FetchVerifiedInputProofParameters,
21
21
  ): Promise<FetchVerifiedInputProofReturnType> {
22
22
  const { zkProof, ...rest } = parameters;
23
- const sanitizedZkProof = await toZkProof(zkProof);
23
+ const sanitizedZkProof = await toZkProof(zkProof, parameters.extraData);
24
24
  return fetchVerifiedInputProof_(fhevm, { zkProof: sanitizedZkProof, ...rest });
25
25
  }
@@ -23,10 +23,12 @@ export async function signDecryptionPermit(
23
23
  fhevm: Fhevm<FhevmChain>,
24
24
  parameters: SignSelfDecryptionPermitParameters,
25
25
  ): Promise<SignedSelfDecryptionPermit>;
26
+
26
27
  export async function signDecryptionPermit(
27
28
  fhevm: Fhevm<FhevmChain>,
28
29
  parameters: SignDelegatedDecryptionPermitParameters,
29
30
  ): Promise<SignedDelegatedDecryptionPermit>;
31
+
30
32
  export async function signDecryptionPermit(
31
33
  fhevm: Fhevm<FhevmChain>,
32
34
  parameters: SignDecryptionPermitParameters,
@@ -1,6 +1,6 @@
1
1
  export {
2
- type VerifyKmsDelegatedUserDecryptEIP712Parameters,
3
- verifyKmsDelegatedUserDecryptEip712 as verifyKmsDelegatedUserDecryptEIP712,
2
+ type VerifyKmsDelegatedUserDecryptEip712Parameters,
3
+ verifyKmsDelegatedUserDecryptEip712,
4
4
  } from './verifyKmsDelegatedUserDecryptEip712.js';
5
5
 
6
6
  export { type CreateKmsEIP712DomainReturnType, createKmsEIP712Domain } from './createKmsEip712Domain.js';
@@ -12,15 +12,15 @@ export {
12
12
  } from './fetchFheEncryptionKeyBytes.js';
13
13
 
14
14
  export {
15
- type ParseTransportKeypairParameters as ParseE2eTransportKeypairParameters,
16
- type ParseTransportKeypairReturnType as ParseE2eTransportKeypairReturnType,
17
- parseTransportKeypair as parseE2eTransportKeypair,
15
+ type ParseTransportKeypairParameters,
16
+ type ParseTransportKeypairReturnType,
17
+ parseTransportKeypair,
18
18
  } from './parseTransportKeypair.js';
19
19
 
20
20
  export {
21
- type SerializeTransportKeypairParameters as SerializeE2eTransportKeypairParameters,
22
- type SerializeTransportKeypairReturnType as SerializeE2eTransportKeypairReturnType,
23
- serializeTransportKeypair as serializeE2eTransportKeypair,
21
+ type SerializeTransportKeypairParameters,
22
+ type SerializeTransportKeypairReturnType,
23
+ serializeTransportKeypair,
24
24
  } from './serializeTransportKeypair.js';
25
25
 
26
26
  export {
@@ -45,9 +45,9 @@ export {
45
45
  } from '../base/signDecryptionPermit.js';
46
46
 
47
47
  export {
48
- type CreateKmsUserDecryptEip712Parameters as CreateKmsUserDecryptEIP712Parameters,
49
- type CreateKmsUserDecryptEip712ReturnType as CreateKmsUserDecryptEIP712ReturnType,
50
- createKmsUserDecryptEip712 as createKmsUserDecryptEIP712,
48
+ type CreateKmsUserDecryptEip712Parameters,
49
+ type CreateKmsUserDecryptEip712ReturnType,
50
+ createKmsUserDecryptEip712,
51
51
  } from './createKmsUserDecryptEip712.js';
52
52
 
53
53
  export {
@@ -2,13 +2,18 @@ import type { Fhevm } from '../../types/coreFhevmClient.js';
2
2
  import type { FhevmChain } from '../../types/fhevmChain.js';
3
3
  import type { SignedDecryptionPermit } from '../../types/signedDecryptionPermit.js';
4
4
  import type { TransportKeypair } from '../../kms/TransportKeypair-p.js';
5
+ import type { KmsDecryptEip712Like } from '../../types/kms.js';
5
6
  import { parseSignedDecryptionPermit as parseSignedDecryptionPermit_ } from '../../kms/SignedDecryptionPermit-p.js';
6
7
 
7
8
  ////////////////////////////////////////////////////////////////////////////////
8
9
 
9
10
  export type ParseSignedDecryptionPermitParameters = {
10
- /** The serialized permit — a JSON string or a previously parsed object. */
11
- readonly serialized: string | Record<string, unknown>;
11
+ /** The serialized permit — a previously parsed permit object. */
12
+ readonly serializedPermit: {
13
+ readonly eip712: KmsDecryptEip712Like;
14
+ readonly signature: string;
15
+ readonly signerAddress: string;
16
+ };
12
17
  /** The transport keypair that was used when signing the permit. */
13
18
  readonly transportKeypair: TransportKeypair;
14
19
  };
@@ -27,9 +32,7 @@ export async function parseSignedDecryptionPermit(
27
32
  fhevm: Fhevm<FhevmChain>,
28
33
  parameters: ParseSignedDecryptionPermitParameters,
29
34
  ): Promise<ParseSignedDecryptionPermitReturnType> {
30
- const { serialized, transportKeypair } = parameters;
35
+ const { serializedPermit, transportKeypair } = parameters;
31
36
 
32
- const parsed = typeof serialized === 'string' ? (JSON.parse(serialized) as unknown) : serialized;
33
-
34
- return parseSignedDecryptionPermit_(fhevm, transportKeypair, parsed);
37
+ return parseSignedDecryptionPermit_(fhevm, transportKeypair, serializedPermit);
35
38
  }
@@ -6,8 +6,8 @@ import { toTransportKeypair, type TransportKeypair } from '../../kms/TransportKe
6
6
  ////////////////////////////////////////////////////////////////////////////////
7
7
 
8
8
  export type ParseTransportKeypairParameters = {
9
- /** The serialized keypair — output of `serializeE2eTransportKeypair` or a previously parsed object. */
10
- readonly serialized: string | Record<string, unknown>;
9
+ readonly publicKey: string;
10
+ readonly privateKey: string;
11
11
  };
12
12
 
13
13
  export type ParseTransportKeypairReturnType = TransportKeypair;
@@ -16,9 +16,5 @@ export async function parseTransportKeypair(
16
16
  fhevm: Fhevm<FhevmChain, FhevmRuntime, OptionalNativeClient>,
17
17
  parameters: ParseTransportKeypairParameters,
18
18
  ): Promise<ParseTransportKeypairReturnType> {
19
- const parsed =
20
- typeof parameters.serialized === 'string' ? (JSON.parse(parameters.serialized) as unknown) : parameters.serialized;
21
- return toTransportKeypair(fhevm, parsed);
19
+ return toTransportKeypair(fhevm, parameters);
22
20
  }
23
-
24
- ////////////////////////////////////////////////////////////////////////////////
@@ -24,5 +24,3 @@ export function serializeTransportKeypair(
24
24
  ): SerializeTransportKeypairReturnType {
25
25
  return serializeTransportKeypair_(parameters.transportKeypair);
26
26
  }
27
-
28
- ////////////////////////////////////////////////////////////////////////////////
@@ -6,7 +6,7 @@ import {
6
6
  type VerifyKmsDelegatedUserDecryptEip712Parameters,
7
7
  } from '../../utils-p/decrypt/verifyKmsDelegatedUserDecryptEip712.js';
8
8
 
9
- export type { VerifyKmsDelegatedUserDecryptEip712Parameters as VerifyKmsDelegatedUserDecryptEIP712Parameters };
9
+ export type { VerifyKmsDelegatedUserDecryptEip712Parameters };
10
10
 
11
11
  export async function verifyKmsDelegatedUserDecryptEip712(
12
12
  fhevm: Fhevm<FhevmChain, FhevmRuntime, OptionalNativeClient>,
@@ -1,12 +1,8 @@
1
- /* eslint-disable @typescript-eslint/unified-signatures */
2
1
  import type { Fhevm } from '../../types/coreFhevmClient.js';
3
2
  import type { TypedValue } from '../../types/primitives.js';
4
3
  import type { FhevmChain } from '../../types/fhevmChain.js';
5
4
  import type { RelayerDelegatedUserDecryptOptions, RelayerUserDecryptOptions } from '../../types/relayer.js';
6
- import type {
7
- SignedDelegatedDecryptionPermit,
8
- SignedSelfDecryptionPermit,
9
- } from '../../types/signedDecryptionPermit.js';
5
+ import type { SignedDecryptionPermit } from '../../types/signedDecryptionPermit.js';
10
6
  import type { WithDecrypt } from '../../types/coreFhevmRuntime.js';
11
7
  import type { TransportKeypair } from '../../kms/TransportKeypair-p.js';
12
8
  import type { EncryptedValueLike } from '../../types/encryptedTypes.js';
@@ -16,20 +12,12 @@ import { toFhevmHandle } from '../../handle/FhevmHandle.js';
16
12
 
17
13
  ////////////////////////////////////////////////////////////////////////////////
18
14
 
19
- type DecryptValueParametersBase = {
15
+ export type DecryptValueParameters = {
20
16
  readonly encryptedValue: EncryptedValueLike;
21
17
  readonly contractAddress: string;
22
18
  readonly transportKeypair: TransportKeypair;
23
- };
24
-
25
- export type DecryptSelfValueParameters = DecryptValueParametersBase & {
26
- readonly signedPermit: SignedSelfDecryptionPermit;
27
- readonly options?: RelayerUserDecryptOptions | undefined;
28
- };
29
-
30
- export type DecryptDelegatedValueParameters = DecryptValueParametersBase & {
31
- readonly signedPermit: SignedDelegatedDecryptionPermit;
32
- readonly options?: RelayerDelegatedUserDecryptOptions | undefined;
19
+ readonly signedPermit: SignedDecryptionPermit;
20
+ readonly options?: RelayerUserDecryptOptions | RelayerDelegatedUserDecryptOptions | undefined;
33
21
  };
34
22
 
35
23
  export type DecryptValueReturnType = TypedValue;
@@ -38,17 +26,7 @@ export type DecryptValueReturnType = TypedValue;
38
26
 
39
27
  export async function decryptValue(
40
28
  fhevm: Fhevm<FhevmChain, WithDecrypt>,
41
- parameters: DecryptSelfValueParameters,
42
- ): Promise<DecryptValueReturnType>;
43
-
44
- export async function decryptValue(
45
- fhevm: Fhevm<FhevmChain, WithDecrypt>,
46
- parameters: DecryptDelegatedValueParameters,
47
- ): Promise<DecryptValueReturnType>;
48
-
49
- export async function decryptValue(
50
- fhevm: Fhevm<FhevmChain, WithDecrypt>,
51
- parameters: DecryptSelfValueParameters | DecryptDelegatedValueParameters,
29
+ parameters: DecryptValueParameters,
52
30
  ): Promise<DecryptValueReturnType> {
53
31
  const { encryptedValue, contractAddress, ...rest } = parameters;
54
32
 
@@ -62,7 +40,10 @@ export async function decryptValue(
62
40
  },
63
41
  ];
64
42
 
65
- const typedValues = await decryptValuesFromPairs_(fhevm, { ...rest, pairs: sanitizedPairs });
43
+ const typedValues = await decryptValuesFromPairs_(fhevm, {
44
+ ...rest,
45
+ pairs: sanitizedPairs,
46
+ } as Parameters<typeof decryptValuesFromPairs_>[1]);
66
47
 
67
48
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
68
49
  return typedValues[0]!;
@@ -1,12 +1,8 @@
1
- /* eslint-disable @typescript-eslint/unified-signatures */
2
1
  import type { Fhevm } from '../../types/coreFhevmClient.js';
3
2
  import type { TypedValue } from '../../types/primitives.js';
4
3
  import type { FhevmChain } from '../../types/fhevmChain.js';
5
4
  import type { RelayerDelegatedUserDecryptOptions, RelayerUserDecryptOptions } from '../../types/relayer.js';
6
- import type {
7
- SignedDelegatedDecryptionPermit,
8
- SignedSelfDecryptionPermit,
9
- } from '../../types/signedDecryptionPermit.js';
5
+ import type { SignedDecryptionPermit } from '../../types/signedDecryptionPermit.js';
10
6
  import type { WithDecrypt } from '../../types/coreFhevmRuntime.js';
11
7
  import type { TransportKeypair } from '../../kms/TransportKeypair-p.js';
12
8
  import type { EncryptedValueLike } from '../../types/encryptedTypes.js';
@@ -16,20 +12,12 @@ import { toFhevmHandle } from '../../handle/FhevmHandle.js';
16
12
 
17
13
  ////////////////////////////////////////////////////////////////////////////////
18
14
 
19
- type DecryptValuesParametersBase = {
15
+ export type DecryptValuesParameters = {
20
16
  readonly encryptedValues: readonly EncryptedValueLike[];
21
17
  readonly contractAddress: string;
22
18
  readonly transportKeypair: TransportKeypair;
23
- };
24
-
25
- export type DecryptSelfValuesParameters = DecryptValuesParametersBase & {
26
- readonly signedPermit: SignedSelfDecryptionPermit;
27
- readonly options?: RelayerUserDecryptOptions | undefined;
28
- };
29
-
30
- export type DecryptDelegatedValuesParameters = DecryptValuesParametersBase & {
31
- readonly signedPermit: SignedDelegatedDecryptionPermit;
32
- readonly options?: RelayerDelegatedUserDecryptOptions | undefined;
19
+ readonly signedPermit: SignedDecryptionPermit;
20
+ readonly options?: RelayerUserDecryptOptions | RelayerDelegatedUserDecryptOptions | undefined;
33
21
  };
34
22
 
35
23
  export type DecryptValuesReturnType = readonly TypedValue[];
@@ -38,17 +26,7 @@ export type DecryptValuesReturnType = readonly TypedValue[];
38
26
 
39
27
  export async function decryptValues(
40
28
  fhevm: Fhevm<FhevmChain, WithDecrypt>,
41
- parameters: DecryptSelfValuesParameters,
42
- ): Promise<DecryptValuesReturnType>;
43
-
44
- export async function decryptValues(
45
- fhevm: Fhevm<FhevmChain, WithDecrypt>,
46
- parameters: DecryptDelegatedValuesParameters,
47
- ): Promise<DecryptValuesReturnType>;
48
-
49
- export async function decryptValues(
50
- fhevm: Fhevm<FhevmChain, WithDecrypt>,
51
- parameters: DecryptSelfValuesParameters | DecryptDelegatedValuesParameters,
29
+ parameters: DecryptValuesParameters,
52
30
  ): Promise<DecryptValuesReturnType> {
53
31
  const { encryptedValues, contractAddress, ...rest } = parameters;
54
32
 
@@ -62,5 +40,8 @@ export async function decryptValues(
62
40
  };
63
41
  });
64
42
 
65
- return decryptValuesFromPairs_(fhevm, { ...rest, pairs: sanitizedPairs });
43
+ return decryptValuesFromPairs_(fhevm, {
44
+ ...rest,
45
+ pairs: sanitizedPairs,
46
+ } as Parameters<typeof decryptValuesFromPairs_>[1]);
66
47
  }
@@ -1,12 +1,8 @@
1
- /* eslint-disable @typescript-eslint/unified-signatures */
2
1
  import type { Fhevm } from '../../types/coreFhevmClient.js';
3
2
  import type { TypedValue } from '../../types/primitives.js';
4
3
  import type { FhevmChain } from '../../types/fhevmChain.js';
5
4
  import type { RelayerDelegatedUserDecryptOptions, RelayerUserDecryptOptions } from '../../types/relayer.js';
6
- import type {
7
- SignedDelegatedDecryptionPermit,
8
- SignedSelfDecryptionPermit,
9
- } from '../../types/signedDecryptionPermit.js';
5
+ import type { SignedDecryptionPermit } from '../../types/signedDecryptionPermit.js';
10
6
  import type { WithDecrypt } from '../../types/coreFhevmRuntime.js';
11
7
  import type { TransportKeypair } from '../../kms/TransportKeypair-p.js';
12
8
  import type { EncryptedValueLike } from '../../types/encryptedTypes.js';
@@ -16,22 +12,14 @@ import { toFhevmHandle } from '../../handle/FhevmHandle.js';
16
12
 
17
13
  ////////////////////////////////////////////////////////////////////////////////
18
14
 
19
- type DecryptValuesFromPairsParametersBase = {
15
+ export type DecryptValuesFromPairsParameters = {
20
16
  readonly pairs: ReadonlyArray<{
21
17
  readonly encryptedValue: EncryptedValueLike;
22
18
  readonly contractAddress: string;
23
19
  }>;
24
20
  readonly transportKeypair: TransportKeypair;
25
- };
26
-
27
- export type DecryptSelfValuesFromPairsParameters = DecryptValuesFromPairsParametersBase & {
28
- readonly signedPermit: SignedSelfDecryptionPermit;
29
- readonly options?: RelayerUserDecryptOptions | undefined;
30
- };
31
-
32
- export type DecryptDelegatedValuesFromPairsParameters = DecryptValuesFromPairsParametersBase & {
33
- readonly signedPermit: SignedDelegatedDecryptionPermit;
34
- readonly options?: RelayerDelegatedUserDecryptOptions | undefined;
21
+ readonly signedPermit: SignedDecryptionPermit;
22
+ readonly options?: RelayerUserDecryptOptions | RelayerDelegatedUserDecryptOptions | undefined;
35
23
  };
36
24
 
37
25
  export type DecryptValuesFromPairsReturnType = readonly TypedValue[];
@@ -40,17 +28,7 @@ export type DecryptValuesFromPairsReturnType = readonly TypedValue[];
40
28
 
41
29
  export async function decryptValuesFromPairs(
42
30
  fhevm: Fhevm<FhevmChain, WithDecrypt>,
43
- parameters: DecryptSelfValuesFromPairsParameters,
44
- ): Promise<DecryptValuesFromPairsReturnType>;
45
-
46
- export async function decryptValuesFromPairs(
47
- fhevm: Fhevm<FhevmChain, WithDecrypt>,
48
- parameters: DecryptDelegatedValuesFromPairsParameters,
49
- ): Promise<DecryptValuesFromPairsReturnType>;
50
-
51
- export async function decryptValuesFromPairs(
52
- fhevm: Fhevm<FhevmChain, WithDecrypt>,
53
- parameters: DecryptSelfValuesFromPairsParameters | DecryptDelegatedValuesFromPairsParameters,
31
+ parameters: DecryptValuesFromPairsParameters,
54
32
  ): Promise<DecryptValuesFromPairsReturnType> {
55
33
  const { pairs, ...rest } = parameters;
56
34
 
@@ -62,5 +40,8 @@ export async function decryptValuesFromPairs(
62
40
  };
63
41
  });
64
42
 
65
- return decryptValuesFromPairs_(fhevm, { ...rest, pairs: sanitizedPairs });
43
+ return decryptValuesFromPairs_(fhevm, {
44
+ ...rest,
45
+ pairs: sanitizedPairs,
46
+ } as Parameters<typeof decryptValuesFromPairs_>[1]);
66
47
  }
@@ -10,25 +10,14 @@ export {
10
10
  } from './generateTransportKeypair.js';
11
11
 
12
12
  export {
13
- type DecryptSelfValuesFromPairsParameters,
14
- type DecryptDelegatedValuesFromPairsParameters,
13
+ type DecryptValuesFromPairsParameters,
15
14
  type DecryptValuesFromPairsReturnType,
16
15
  decryptValuesFromPairs,
17
16
  } from './decryptValuesFromPairs.js';
18
17
 
19
- export {
20
- type DecryptSelfValueParameters,
21
- type DecryptDelegatedValueParameters,
22
- type DecryptValueReturnType,
23
- decryptValue,
24
- } from './decryptValue.js';
18
+ export { type DecryptValueParameters, type DecryptValueReturnType, decryptValue } from './decryptValue.js';
25
19
 
26
- export {
27
- type DecryptSelfValuesParameters,
28
- type DecryptDelegatedValuesParameters,
29
- type DecryptValuesReturnType,
30
- decryptValues,
31
- } from './decryptValues.js';
20
+ export { type DecryptValuesParameters, type DecryptValuesReturnType, decryptValues } from './decryptValues.js';
32
21
 
33
22
  export {
34
23
  type DecryptKmsSignedcryptedSharesParameters,
@@ -1,32 +1,36 @@
1
1
  import type { Fhevm } from '../../types/coreFhevmClient.js';
2
- import type { ChecksummedAddress, Uint64BigInt } from '../../types/primitives.js';
3
- import { isUint64 } from '../../base/uint.js';
4
- import { getUserDecryptionDelegationExpirationDateAbi } from '../../host-contracts/abi-fragments/fragments.js';
5
- import { getTrustedClient } from '../../runtime/CoreFhevm-p.js';
2
+ import type { Uint64BigInt } from '../../types/primitives.js';
3
+ import { addressToChecksummedAddress, assertIsAddress } from '../../base/address.js';
4
+ import { getUserDecryptionDelegationExpirationDate as getUserDecryptionDelegationExpirationDate_ } from '../../host-contracts/getUserDecryptionDelegationExpirationDate.js';
5
+
6
+ ////////////////////////////////////////////////////////////////////////////////
6
7
 
7
8
  export type GetUserDecryptionDelegationExpirationDateParameters = {
8
- readonly address: ChecksummedAddress;
9
+ readonly address: string;
10
+ readonly delegator: string;
11
+ readonly delegate: string;
12
+ readonly contractAddress: string;
9
13
  };
10
14
 
11
15
  export type GetUserDecryptionDelegationExpirationDateReturnType = Uint64BigInt;
12
16
 
17
+ ////////////////////////////////////////////////////////////////////////////////
18
+
13
19
  export async function getUserDecryptionDelegationExpirationDate(
14
20
  fhevm: Fhevm,
15
21
  parameters: GetUserDecryptionDelegationExpirationDateParameters,
16
22
  ): Promise<GetUserDecryptionDelegationExpirationDateReturnType> {
17
- const trustedClient = getTrustedClient(fhevm);
18
- const address = parameters.address;
23
+ const { address, delegate, delegator, contractAddress } = parameters;
19
24
 
20
- const res = await fhevm.runtime.ethereum.readContract(trustedClient, {
21
- address: address,
22
- abi: getUserDecryptionDelegationExpirationDateAbi,
23
- args: [],
24
- functionName: getUserDecryptionDelegationExpirationDateAbi[0].name,
25
- });
25
+ assertIsAddress(address, {});
26
+ assertIsAddress(delegate, {});
27
+ assertIsAddress(delegator, {});
28
+ assertIsAddress(contractAddress, {});
26
29
 
27
- if (!isUint64(res)) {
28
- throw new Error(`Invalid expiration date.`);
29
- }
30
-
31
- return BigInt(res) as Uint64BigInt;
30
+ return getUserDecryptionDelegationExpirationDate_(fhevm, {
31
+ address: addressToChecksummedAddress(address),
32
+ delegate: addressToChecksummedAddress(delegate),
33
+ delegator: addressToChecksummedAddress(delegator),
34
+ contractAddress: addressToChecksummedAddress(contractAddress),
35
+ });
32
36
  }
@@ -2058,3 +2058,11 @@ export function bytesHexSlice(bytesHex: BytesHex, position: Uint8Number, length:
2058
2058
  }
2059
2059
  return `0x${bytesHex.slice(index, index + 2 * length)}` as BytesHex;
2060
2060
  }
2061
+
2062
+ export function createDeadbeefBytes(numBytes: number): Uint8Array {
2063
+ const length = numBytes > 0 ? Math.ceil(numBytes / 4) * 4 : 0;
2064
+ const buf = new ArrayBuffer(length);
2065
+ const isLE = new Uint8Array(new Uint16Array([1]).buffer)[0] === 1;
2066
+ new Uint32Array(buf).fill(isLE ? 0xefbeadde : 0xdeadbeef);
2067
+ return new Uint8Array(buf).subarray(0, numBytes);
2068
+ }
@@ -0,0 +1,75 @@
1
+ import type { Address, Bytes65Hex, BytesHex, ChecksummedAddress } from '../types/primitives.js';
2
+ import { secp256k1 } from '@noble/curves/secp256k1';
3
+ import { keccak_256 } from '@noble/hashes/sha3.js';
4
+ import { addressToChecksummedAddress } from './address.js';
5
+ import { bytesToHex } from './bytes.js';
6
+
7
+ export function sign({ hash, privateKey }: { readonly hash: BytesHex; readonly privateKey: BytesHex }): Bytes65Hex {
8
+ const sig = secp256k1.sign(hash.slice(2), privateKey.slice(2), {
9
+ lowS: true,
10
+ extraEntropy: true,
11
+ });
12
+
13
+ if (sig.recovery !== 0 && sig.recovery !== 1) {
14
+ throw new Error('Unexpected signature recovery value');
15
+ }
16
+
17
+ const signatureHex = `0x${sig.toCompactHex()}${sig.recovery === 0 ? '1b' : '1c'}` as BytesHex;
18
+
19
+ if (signatureHex.length !== 2 + 130) {
20
+ throw new Error('Unexpected signature length');
21
+ }
22
+
23
+ return signatureHex as Bytes65Hex;
24
+ }
25
+
26
+ /**
27
+ * Recover the secp256k1 public key (uncompressed, 65 bytes prefixed by 0x04)
28
+ * that produced `signature` over `hash`. Inverse of `sign(...)`.
29
+ *
30
+ * Simplified vs viem's `recoverPublicKey`: only accepts the canonical hex
31
+ * forms emitted by `sign(...)` — `hash` is `BytesHex`, `signature` is the
32
+ * 65-byte (r || s || v) `Bytes65Hex` with v in `{0x1b, 0x1c}` (legacy 27/28)
33
+ * or `{0x00, 0x01}` (raw yParity).
34
+ */
35
+ function _recoverPublicKey(parameters: { readonly hash: BytesHex; readonly signature: Bytes65Hex }): Uint8Array {
36
+ const { hash, signature } = parameters;
37
+
38
+ if (signature.length !== 2 + 130) {
39
+ throw new Error('Unexpected signature length');
40
+ }
41
+
42
+ const compactHex = signature.slice(2, 130); // r || s, 64 bytes (128 hex chars)
43
+ const v = parseInt(signature.slice(130), 16); // 1 byte (2 hex chars)
44
+
45
+ // v is one of {0, 1, 27, 28} — anything else is malformed.
46
+ const recoveryBit = v === 0 || v === 1 ? v : v === 27 ? 0 : v === 28 ? 1 : -1;
47
+ if (recoveryBit !== 0 && recoveryBit !== 1) {
48
+ throw new Error(`Invalid v value: ${v}`);
49
+ }
50
+
51
+ const sig = secp256k1.Signature.fromCompact(compactHex).addRecoveryBit(recoveryBit);
52
+
53
+ // toRawBytes(false) → uncompressed encoding: 0x04 || X (32) || Y (32) = 65 bytes.
54
+ return sig.recoverPublicKey(hash.slice(2)).toRawBytes(false);
55
+ }
56
+
57
+ function _keccak256(bytes: Uint8Array): Uint8Array {
58
+ return keccak_256(bytes);
59
+ }
60
+
61
+ function _publicKeyToAddress(publicKey: Uint8Array): ChecksummedAddress {
62
+ if (publicKey.length !== 65) {
63
+ throw new Error('Expected uncompressed public key (65 bytes)');
64
+ }
65
+ // Drop the 0x04 prefix tag, keccak256 over X||Y, take the last 20 bytes.
66
+ const last20 = _keccak256(publicKey.subarray(1)).subarray(-20);
67
+ return addressToChecksummedAddress(bytesToHex(last20) as Address);
68
+ }
69
+
70
+ export function recoverAddress(parameters: {
71
+ readonly hash: BytesHex;
72
+ readonly signature: Bytes65Hex;
73
+ }): ChecksummedAddress {
74
+ return _publicKeyToAddress(_recoverPublicKey(parameters));
75
+ }
@@ -2,6 +2,7 @@ import type { ErrorMetadataParams } from './errors/ErrorBase.js';
2
2
  import type {
3
3
  AddressValueLike,
4
4
  BoolValueLike,
5
+ Bytes32Hex,
5
6
  TypedValue,
6
7
  TypedValueFrom,
7
8
  TypedValueLike,
@@ -20,6 +21,7 @@ import { asAddress } from './address.js';
20
21
  import { toBoolean } from './boolean.js';
21
22
  import { InvalidTypeError } from './errors/InvalidTypeError.js';
22
23
  import { asUintForType, normalizeUintForType } from './uint.js';
24
+ import { bigIntToBytesHex } from './bytes.js';
23
25
 
24
26
  ////////////////////////////////////////////////////////////////////////////////
25
27
 
@@ -324,3 +326,19 @@ export class TypedValueArrayBuilder {
324
326
  return Object.freeze([...this.#arr]);
325
327
  }
326
328
  }
329
+
330
+ export function typedValueToBytes32Hex(typedValue: TypedValue): Bytes32Hex {
331
+ assertIsTypedValue(typedValue, {});
332
+ switch (typedValue.type) {
333
+ case 'uint8':
334
+ case 'uint16':
335
+ case 'uint32':
336
+ case 'uint64':
337
+ case 'uint128':
338
+ case 'uint256':
339
+ case 'address':
340
+ return bigIntToBytesHex(BigInt(typedValue.value), { byteLength: 32 });
341
+ case 'bool':
342
+ return bigIntToBytesHex(typedValue.value ? 1n : 0n, { byteLength: 32 });
343
+ }
344
+ }
package/core/base/uint.ts CHANGED
@@ -628,3 +628,35 @@ export function assertRecordUintBigIntProperty<K extends string>(
628
628
  );
629
629
  }
630
630
  }
631
+
632
+ export function parseUintBigIntString(value: string): bigint | undefined {
633
+ let parsed: bigint;
634
+ try {
635
+ parsed = BigInt(value);
636
+ } catch {
637
+ return undefined;
638
+ }
639
+ if (parsed < 0n || parsed.toString() !== value) {
640
+ return undefined;
641
+ }
642
+ return parsed;
643
+ }
644
+
645
+ /** Returns `count` unique integers drawn uniformly from [0, n-1]. Mock/debug only. */
646
+ export function randomUniqueUints(n: number, count: number): number[] {
647
+ if (count > n) {
648
+ throw new RangeError(`count ${count} cannot exceed n ${n}`);
649
+ }
650
+ const pool = Array.from({ length: n }, (_, i) => i);
651
+ for (let i = 0; i < count; i++) {
652
+ const j = i + Math.floor(Math.random() * (n - i));
653
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
654
+ const pi = pool[i]!;
655
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
656
+ const pj = pool[j]!;
657
+
658
+ pool[i] = pj;
659
+ pool[j] = pi;
660
+ }
661
+ return pool.slice(0, count);
662
+ }