@fhevm/sdk 1.1.0-alpha.7 → 1.1.0-alpha.9

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 (259) hide show
  1. package/README.md +5 -5
  2. package/_cjs/core/_version.js +1 -1
  3. package/_cjs/core/actions/encrypt/encryptValue.js +2 -1
  4. package/_cjs/core/actions/encrypt/encryptValue.js.map +1 -1
  5. package/_cjs/core/actions/encrypt/encryptValues.js +2 -1
  6. package/_cjs/core/actions/encrypt/encryptValues.js.map +1 -1
  7. package/_cjs/core/actions/encrypt/generateZkProof.js +2 -1
  8. package/_cjs/core/actions/encrypt/generateZkProof.js.map +1 -1
  9. package/_cjs/core/actions/host/readKmsVerifierContractData.js +1 -1
  10. package/_cjs/core/actions/host/readKmsVerifierContractData.js.map +1 -1
  11. package/_cjs/core/base/cachedFetch.js +1 -1
  12. package/_cjs/core/base/cachedFetch.js.map +1 -1
  13. package/_cjs/core/handle/FheType.js +4 -0
  14. package/_cjs/core/handle/FheType.js.map +1 -1
  15. package/_cjs/core/host-contracts/HostContractVersion-p.js +4 -0
  16. package/_cjs/core/host-contracts/HostContractVersion-p.js.map +1 -1
  17. package/_cjs/core/host-contracts/KmsSignersContext-p.js +15 -25
  18. package/_cjs/core/host-contracts/KmsSignersContext-p.js.map +1 -1
  19. package/_cjs/core/host-contracts/getKmsContextSignersAndThreshold-p.js.map +1 -1
  20. package/_cjs/core/host-contracts/getKmsContextSignersAndThresholdFromExtraData-p.js +7 -6
  21. package/_cjs/core/host-contracts/getKmsContextSignersAndThresholdFromExtraData-p.js.map +1 -1
  22. package/_cjs/core/host-contracts/readKmsSignersContext-p.js +55 -67
  23. package/_cjs/core/host-contracts/readKmsSignersContext-p.js.map +1 -1
  24. package/_cjs/core/kms/KmsSigncryptedShares-p.js +40 -4
  25. package/_cjs/core/kms/KmsSigncryptedShares-p.js.map +1 -1
  26. package/_cjs/core/kms/PublicDecryptionProof-p.js +4 -3
  27. package/_cjs/core/kms/PublicDecryptionProof-p.js.map +1 -1
  28. package/_cjs/core/kms/SignedDecryptionPermitV1-p.js +1 -14
  29. package/_cjs/core/kms/SignedDecryptionPermitV1-p.js.map +1 -1
  30. package/_cjs/core/kms/SignedDecryptionPermitV2-p.js +3 -15
  31. package/_cjs/core/kms/SignedDecryptionPermitV2-p.js.map +1 -1
  32. package/_cjs/core/kms/createKmsDelegatedUserDecryptEip712V1.js +3 -4
  33. package/_cjs/core/kms/createKmsDelegatedUserDecryptEip712V1.js.map +1 -1
  34. package/_cjs/core/kms/createKmsUserDecryptEip712V1.js +6 -5
  35. package/_cjs/core/kms/createKmsUserDecryptEip712V1.js.map +1 -1
  36. package/_cjs/core/kms/createKmsUserDecryptEip712V2.js +4 -5
  37. package/_cjs/core/kms/createKmsUserDecryptEip712V2.js.map +1 -1
  38. package/_cjs/core/kms/fetchKmsSigncryptedSharesV1-p.js +1 -1
  39. package/_cjs/core/kms/fetchKmsSigncryptedSharesV1-p.js.map +1 -1
  40. package/_cjs/core/kms/fetchKmsSigncryptedSharesV2-p.js +1 -1
  41. package/_cjs/core/kms/fetchKmsSigncryptedSharesV2-p.js.map +1 -1
  42. package/_cjs/core/kms/kmsExtraData-p.js +234 -0
  43. package/_cjs/core/kms/kmsExtraData-p.js.map +1 -0
  44. package/_cjs/core/kms/publicDecrypt.js +4 -4
  45. package/_cjs/core/kms/publicDecrypt.js.map +1 -1
  46. package/_cjs/core/kms/verifyKmsPublicDecryptEip712-p.js +5 -4
  47. package/_cjs/core/kms/verifyKmsPublicDecryptEip712-p.js.map +1 -1
  48. package/_cjs/core/modules/decrypt/mock.js +6 -6
  49. package/_cjs/core/modules/decrypt/mock.js.map +1 -1
  50. package/_cjs/core/modules/decrypt/module/api-p.js +7 -7
  51. package/_cjs/core/modules/decrypt/module/api-p.js.map +1 -1
  52. package/_cjs/core/modules/relayer/cleartext/fetchCoprocessorSignatures.js +53 -3
  53. package/_cjs/core/modules/relayer/cleartext/fetchCoprocessorSignatures.js.map +1 -1
  54. package/_cjs/core/modules/relayer/cleartext/{fetchDelegatedUserDecrypt.js → fetchDelegatedUserDecryptV1.js} +67 -21
  55. package/_cjs/core/modules/relayer/cleartext/fetchDelegatedUserDecryptV1.js.map +1 -0
  56. package/_cjs/core/modules/relayer/cleartext/fetchPublicDecrypt.js +61 -4
  57. package/_cjs/core/modules/relayer/cleartext/fetchPublicDecrypt.js.map +1 -1
  58. package/_cjs/core/modules/relayer/cleartext/fetchUserDecrypt.js +9 -108
  59. package/_cjs/core/modules/relayer/cleartext/fetchUserDecrypt.js.map +1 -1
  60. package/_cjs/core/modules/relayer/cleartext/fetchUserDecryptV1.js +163 -0
  61. package/_cjs/core/modules/relayer/cleartext/fetchUserDecryptV1.js.map +1 -0
  62. package/_cjs/core/modules/relayer/cleartext/fetchUserDecryptV2.js +7 -0
  63. package/_cjs/core/modules/relayer/cleartext/fetchUserDecryptV2.js.map +1 -0
  64. package/_cjs/core/modules/relayer/cleartext/forgeFhevmV1.js +83 -0
  65. package/_cjs/core/modules/relayer/cleartext/forgeFhevmV1.js.map +1 -0
  66. package/_cjs/core/modules/relayer/cleartext/mock.js +2 -2
  67. package/_cjs/core/modules/relayer/cleartext/mock.js.map +1 -1
  68. package/_cjs/core/modules/relayer/cleartext/signers.js +14 -0
  69. package/_cjs/core/modules/relayer/cleartext/signers.js.map +1 -1
  70. package/_cjs/ethers/internal/ethereum-ct.js +11 -0
  71. package/_cjs/ethers/internal/ethereum-ct.js.map +1 -1
  72. package/_cjs/ethers/internal/runtime-ct.js +9 -7
  73. package/_cjs/ethers/internal/runtime-ct.js.map +1 -1
  74. package/_cjs/viem/internal/ethereum-ct.js +8 -0
  75. package/_cjs/viem/internal/ethereum-ct.js.map +1 -1
  76. package/_cjs/viem/internal/runtime-ct.js +9 -7
  77. package/_cjs/viem/internal/runtime-ct.js.map +1 -1
  78. package/_cjs/wasm/tfhe/loadTfheLib.js.map +1 -1
  79. package/_cjs/wasm/tkms/loadKmsLib.js.map +1 -1
  80. package/_esm/core/_version.js +1 -1
  81. package/_esm/core/actions/encrypt/encryptValue.js +2 -1
  82. package/_esm/core/actions/encrypt/encryptValue.js.map +1 -1
  83. package/_esm/core/actions/encrypt/encryptValues.js +2 -1
  84. package/_esm/core/actions/encrypt/encryptValues.js.map +1 -1
  85. package/_esm/core/actions/encrypt/generateZkProof.js +2 -1
  86. package/_esm/core/actions/encrypt/generateZkProof.js.map +1 -1
  87. package/_esm/core/actions/host/readKmsVerifierContractData.js +2 -2
  88. package/_esm/core/actions/host/readKmsVerifierContractData.js.map +1 -1
  89. package/_esm/core/base/cachedFetch.js +1 -1
  90. package/_esm/core/base/cachedFetch.js.map +1 -1
  91. package/_esm/core/handle/FheType.js +10 -0
  92. package/_esm/core/handle/FheType.js.map +1 -1
  93. package/_esm/core/host-contracts/HostContractVersion-p.js +6 -0
  94. package/_esm/core/host-contracts/HostContractVersion-p.js.map +1 -1
  95. package/_esm/core/host-contracts/KmsSignersContext-p.js +16 -25
  96. package/_esm/core/host-contracts/KmsSignersContext-p.js.map +1 -1
  97. package/_esm/core/host-contracts/getKmsContextSignersAndThreshold-p.js.map +1 -1
  98. package/_esm/core/host-contracts/getKmsContextSignersAndThresholdFromExtraData-p.js +6 -5
  99. package/_esm/core/host-contracts/getKmsContextSignersAndThresholdFromExtraData-p.js.map +1 -1
  100. package/_esm/core/host-contracts/readKmsSignersContext-p.js +133 -69
  101. package/_esm/core/host-contracts/readKmsSignersContext-p.js.map +1 -1
  102. package/_esm/core/kms/KmsSigncryptedShares-p.js +70 -4
  103. package/_esm/core/kms/KmsSigncryptedShares-p.js.map +1 -1
  104. package/_esm/core/kms/PublicDecryptionProof-p.js +4 -3
  105. package/_esm/core/kms/PublicDecryptionProof-p.js.map +1 -1
  106. package/_esm/core/kms/SignedDecryptionPermitV1-p.js +2 -32
  107. package/_esm/core/kms/SignedDecryptionPermitV1-p.js.map +1 -1
  108. package/_esm/core/kms/SignedDecryptionPermitV2-p.js +4 -16
  109. package/_esm/core/kms/SignedDecryptionPermitV2-p.js.map +1 -1
  110. package/_esm/core/kms/createKmsDelegatedUserDecryptEip712V1.js +3 -4
  111. package/_esm/core/kms/createKmsDelegatedUserDecryptEip712V1.js.map +1 -1
  112. package/_esm/core/kms/createKmsUserDecryptEip712V1.js +7 -6
  113. package/_esm/core/kms/createKmsUserDecryptEip712V1.js.map +1 -1
  114. package/_esm/core/kms/createKmsUserDecryptEip712V2.js +4 -5
  115. package/_esm/core/kms/createKmsUserDecryptEip712V2.js.map +1 -1
  116. package/_esm/core/kms/fetchKmsSigncryptedSharesV1-p.js +26 -2
  117. package/_esm/core/kms/fetchKmsSigncryptedSharesV1-p.js.map +1 -1
  118. package/_esm/core/kms/fetchKmsSigncryptedSharesV2-p.js +2 -2
  119. package/_esm/core/kms/fetchKmsSigncryptedSharesV2-p.js.map +1 -1
  120. package/_esm/core/kms/kmsExtraData-p.js +298 -0
  121. package/_esm/core/kms/kmsExtraData-p.js.map +1 -0
  122. package/_esm/core/kms/publicDecrypt.js +5 -5
  123. package/_esm/core/kms/publicDecrypt.js.map +1 -1
  124. package/_esm/core/kms/verifyKmsPublicDecryptEip712-p.js +5 -4
  125. package/_esm/core/kms/verifyKmsPublicDecryptEip712-p.js.map +1 -1
  126. package/_esm/core/modules/decrypt/mock.js +6 -6
  127. package/_esm/core/modules/decrypt/mock.js.map +1 -1
  128. package/_esm/core/modules/decrypt/module/api-p.js +7 -7
  129. package/_esm/core/modules/decrypt/module/api-p.js.map +1 -1
  130. package/_esm/core/modules/relayer/cleartext/fetchCoprocessorSignatures.js +69 -12
  131. package/_esm/core/modules/relayer/cleartext/fetchCoprocessorSignatures.js.map +1 -1
  132. package/_esm/core/modules/relayer/cleartext/{fetchDelegatedUserDecrypt.js → fetchDelegatedUserDecryptV1.js} +76 -22
  133. package/_esm/core/modules/relayer/cleartext/fetchDelegatedUserDecryptV1.js.map +1 -0
  134. package/_esm/core/modules/relayer/cleartext/fetchPublicDecrypt.js +77 -4
  135. package/_esm/core/modules/relayer/cleartext/fetchPublicDecrypt.js.map +1 -1
  136. package/_esm/core/modules/relayer/cleartext/fetchUserDecrypt.js +13 -114
  137. package/_esm/core/modules/relayer/cleartext/fetchUserDecrypt.js.map +1 -1
  138. package/_esm/core/modules/relayer/cleartext/fetchUserDecryptV1.js +173 -0
  139. package/_esm/core/modules/relayer/cleartext/fetchUserDecryptV1.js.map +1 -0
  140. package/_esm/core/modules/relayer/cleartext/fetchUserDecryptV2.js +6 -0
  141. package/_esm/core/modules/relayer/cleartext/fetchUserDecryptV2.js.map +1 -0
  142. package/_esm/core/modules/relayer/cleartext/forgeFhevmV1.js +140 -0
  143. package/_esm/core/modules/relayer/cleartext/forgeFhevmV1.js.map +1 -0
  144. package/_esm/core/modules/relayer/cleartext/mock.js +1 -1
  145. package/_esm/core/modules/relayer/cleartext/mock.js.map +1 -1
  146. package/_esm/core/modules/relayer/cleartext/signers.js +26 -0
  147. package/_esm/core/modules/relayer/cleartext/signers.js.map +1 -1
  148. package/_esm/ethers/internal/ethereum-ct.js +12 -1
  149. package/_esm/ethers/internal/ethereum-ct.js.map +1 -1
  150. package/_esm/ethers/internal/runtime-ct.js +9 -7
  151. package/_esm/ethers/internal/runtime-ct.js.map +1 -1
  152. package/_esm/viem/internal/ethereum-ct.js +10 -2
  153. package/_esm/viem/internal/ethereum-ct.js.map +1 -1
  154. package/_esm/viem/internal/runtime-ct.js +9 -7
  155. package/_esm/viem/internal/runtime-ct.js.map +1 -1
  156. package/_types/core/actions/encrypt/encryptValue.d.ts.map +1 -1
  157. package/_types/core/actions/encrypt/encryptValues.d.ts.map +1 -1
  158. package/_types/core/actions/encrypt/generateZkProof.d.ts.map +1 -1
  159. package/_types/core/base/cachedFetch.d.ts.map +1 -1
  160. package/_types/core/handle/FheType.d.ts +8 -0
  161. package/_types/core/handle/FheType.d.ts.map +1 -1
  162. package/_types/core/host-contracts/HostContractVersion-p.d.ts +8 -0
  163. package/_types/core/host-contracts/HostContractVersion-p.d.ts.map +1 -1
  164. package/_types/core/host-contracts/KmsSignersContext-p.d.ts +3 -2
  165. package/_types/core/host-contracts/KmsSignersContext-p.d.ts.map +1 -1
  166. package/_types/core/host-contracts/getKmsContextSignersAndThresholdFromExtraData-p.d.ts +3 -2
  167. package/_types/core/host-contracts/getKmsContextSignersAndThresholdFromExtraData-p.d.ts.map +1 -1
  168. package/_types/core/host-contracts/readKmsSignersContext-p.d.ts +43 -26
  169. package/_types/core/host-contracts/readKmsSignersContext-p.d.ts.map +1 -1
  170. package/_types/core/kms/KmsSigncryptedShares-p.d.ts +18 -0
  171. package/_types/core/kms/KmsSigncryptedShares-p.d.ts.map +1 -1
  172. package/_types/core/kms/PublicDecryptionProof-p.d.ts.map +1 -1
  173. package/_types/core/kms/SignedDecryptionPermitV1-p.d.ts.map +1 -1
  174. package/_types/core/kms/SignedDecryptionPermitV2-p.d.ts.map +1 -1
  175. package/_types/core/kms/createKmsDelegatedUserDecryptEip712V1.d.ts +2 -1
  176. package/_types/core/kms/createKmsDelegatedUserDecryptEip712V1.d.ts.map +1 -1
  177. package/_types/core/kms/createKmsUserDecryptEip712V1.d.ts +2 -1
  178. package/_types/core/kms/createKmsUserDecryptEip712V1.d.ts.map +1 -1
  179. package/_types/core/kms/createKmsUserDecryptEip712V2.d.ts +2 -1
  180. package/_types/core/kms/createKmsUserDecryptEip712V2.d.ts.map +1 -1
  181. package/_types/core/kms/fetchKmsSigncryptedSharesV1-p.d.ts.map +1 -1
  182. package/_types/core/kms/kmsExtraData-p.d.ts +66 -0
  183. package/_types/core/kms/kmsExtraData-p.d.ts.map +1 -0
  184. package/_types/core/kms/publicDecrypt.d.ts.map +1 -1
  185. package/_types/core/kms/verifyKmsPublicDecryptEip712-p.d.ts.map +1 -1
  186. package/_types/core/modules/ethereum/types-ct.d.ts +20 -2
  187. package/_types/core/modules/ethereum/types-ct.d.ts.map +1 -1
  188. package/_types/core/modules/relayer/cleartext/fetchCoprocessorSignatures.d.ts.map +1 -1
  189. package/_types/core/modules/relayer/cleartext/{fetchDelegatedUserDecrypt.d.ts → fetchDelegatedUserDecryptV1.d.ts} +1 -1
  190. package/_types/core/modules/relayer/cleartext/fetchDelegatedUserDecryptV1.d.ts.map +1 -0
  191. package/_types/core/modules/relayer/cleartext/fetchPublicDecrypt.d.ts.map +1 -1
  192. package/_types/core/modules/relayer/cleartext/fetchUserDecrypt.d.ts +2 -2
  193. package/_types/core/modules/relayer/cleartext/fetchUserDecrypt.d.ts.map +1 -1
  194. package/_types/core/modules/relayer/cleartext/fetchUserDecryptV1.d.ts +3 -0
  195. package/_types/core/modules/relayer/cleartext/fetchUserDecryptV1.d.ts.map +1 -0
  196. package/_types/core/modules/relayer/cleartext/fetchUserDecryptV2.d.ts +3 -0
  197. package/_types/core/modules/relayer/cleartext/fetchUserDecryptV2.d.ts.map +1 -0
  198. package/_types/core/modules/relayer/cleartext/forgeFhevmV1.d.ts +29 -0
  199. package/_types/core/modules/relayer/cleartext/forgeFhevmV1.d.ts.map +1 -0
  200. package/_types/core/modules/relayer/cleartext/signers.d.ts +1 -0
  201. package/_types/core/modules/relayer/cleartext/signers.d.ts.map +1 -1
  202. package/_types/core/types/kms-p.d.ts +7 -1
  203. package/_types/core/types/kms-p.d.ts.map +1 -1
  204. package/_types/ethers/internal/ethereum-ct.d.ts.map +1 -1
  205. package/_types/ethers/internal/runtime-ct.d.ts.map +1 -1
  206. package/_types/viem/internal/ethereum-ct.d.ts.map +1 -1
  207. package/_types/viem/internal/runtime-ct.d.ts.map +1 -1
  208. package/core/_version.ts +1 -1
  209. package/core/actions/encrypt/encryptValue.ts +4 -1
  210. package/core/actions/encrypt/encryptValues.ts +5 -1
  211. package/core/actions/encrypt/generateZkProof.ts +2 -1
  212. package/core/actions/host/readKmsVerifierContractData.ts +2 -2
  213. package/core/base/cachedFetch.ts +1 -1
  214. package/core/handle/FheType.ts +11 -0
  215. package/core/host-contracts/HostContractVersion-p.ts +12 -0
  216. package/core/host-contracts/KmsSignersContext-p.ts +29 -36
  217. package/core/host-contracts/getKmsContextSignersAndThreshold-p.ts +1 -0
  218. package/core/host-contracts/getKmsContextSignersAndThresholdFromExtraData-p.ts +10 -7
  219. package/core/host-contracts/readKmsSignersContext-p.ts +157 -116
  220. package/core/kms/KmsSigncryptedShares-p.ts +87 -4
  221. package/core/kms/PublicDecryptionProof-p.ts +6 -4
  222. package/core/kms/SignedDecryptionPermitV1-p.ts +5 -47
  223. package/core/kms/SignedDecryptionPermitV2-p.ts +8 -25
  224. package/core/kms/createKmsDelegatedUserDecryptEip712V1.ts +5 -5
  225. package/core/kms/createKmsUserDecryptEip712V1.ts +9 -7
  226. package/core/kms/createKmsUserDecryptEip712V2.ts +6 -6
  227. package/core/kms/fetchKmsSigncryptedSharesV1-p.ts +27 -15
  228. package/core/kms/fetchKmsSigncryptedSharesV2-p.ts +2 -2
  229. package/core/kms/kmsExtraData-p.ts +374 -0
  230. package/core/kms/publicDecrypt.ts +8 -7
  231. package/core/kms/verifyKmsPublicDecryptEip712-p.ts +7 -5
  232. package/core/modules/decrypt/mock.ts +6 -6
  233. package/core/modules/decrypt/module/api-p.ts +7 -7
  234. package/core/modules/ethereum/types-ct.ts +25 -2
  235. package/core/modules/relayer/cleartext/fetchCoprocessorSignatures.ts +98 -15
  236. package/core/modules/relayer/cleartext/{fetchDelegatedUserDecrypt.ts → fetchDelegatedUserDecryptV1.ts} +115 -27
  237. package/core/modules/relayer/cleartext/fetchPublicDecrypt.ts +112 -6
  238. package/core/modules/relayer/cleartext/fetchUserDecrypt.ts +24 -132
  239. package/core/modules/relayer/cleartext/fetchUserDecryptV1.ts +229 -0
  240. package/core/modules/relayer/cleartext/fetchUserDecryptV2.ts +11 -0
  241. package/core/modules/relayer/cleartext/forgeFhevmV1.ts +185 -0
  242. package/core/modules/relayer/cleartext/mock.ts +1 -1
  243. package/core/modules/relayer/cleartext/signers.ts +35 -0
  244. package/core/types/kms-p.ts +16 -1
  245. package/ethers/internal/ethereum-ct.ts +15 -1
  246. package/ethers/internal/runtime-ct.ts +9 -7
  247. package/package.json +1 -1
  248. package/viem/internal/ethereum-ct.ts +14 -2
  249. package/viem/internal/runtime-ct.ts +9 -7
  250. package/_cjs/core/kms/kmsExtraData.js +0 -82
  251. package/_cjs/core/kms/kmsExtraData.js.map +0 -1
  252. package/_cjs/core/modules/relayer/cleartext/fetchDelegatedUserDecrypt.js.map +0 -1
  253. package/_esm/core/kms/kmsExtraData.js +0 -99
  254. package/_esm/core/kms/kmsExtraData.js.map +0 -1
  255. package/_esm/core/modules/relayer/cleartext/fetchDelegatedUserDecrypt.js.map +0 -1
  256. package/_types/core/kms/kmsExtraData.d.ts +0 -25
  257. package/_types/core/kms/kmsExtraData.d.ts.map +0 -1
  258. package/_types/core/modules/relayer/cleartext/fetchDelegatedUserDecrypt.d.ts.map +0 -1
  259. package/core/kms/kmsExtraData.ts +0 -127
@@ -0,0 +1 @@
1
+ {"version":3,"file":"forgeFhevmV1.d.ts","sourceRoot":"","sources":["../../../../../core/modules/relayer/cleartext/forgeFhevmV1.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAW,QAAQ,EAAsB,MAAM,8BAA8B,CAAC;AAC1F,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AACjE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAC1E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAoC5D,wBAAsB,cAAc,CAAC,aAAa,EAAE,wBAAwB,GAAG,OAAO,CAAC,OAAO,CAAC,CAQ9F;AAqCD;;;;;GAKG;AACH,wBAAsB,cAAc,CAClC,aAAa,EAAE,wBAAwB,EACvC,aAAa,EAAE,aAAa,EAC5B,OAAO,EAAE,SAAS,MAAM,EAAE,GACzB,OAAO,CAAC,MAAM,EAAE,CAAC,CAcnB;AA+BD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,CAOjG;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,cAAc,EAAE,uBAAuB,EACvC,OAAO,EAAE,SAAS,MAAM,EAAE,EAC1B,UAAU,EAAE,SAAS,MAAM,EAAE,GAC5B,QAAQ,CAkBV"}
@@ -1,5 +1,6 @@
1
1
  import type { BytesHex, ChecksummedAddress } from '../../../types/primitives.js';
2
2
  import type { RelayerClientWithRuntime } from '../types.js';
3
+ export declare function isForgeFhevmV1KmsSigner(signerAddress: string | undefined): boolean;
3
4
  type PrivateKeyMap = Map<ChecksummedAddress, BytesHex>;
4
5
  export declare function getCoprocessorSignersPrivateKeyMap(relayerClient: RelayerClientWithRuntime): PrivateKeyMap;
5
6
  export declare function getKmsSignersPrivateKeyMap(relayerClient: RelayerClientWithRuntime): PrivateKeyMap;
@@ -1 +1 @@
1
- {"version":3,"file":"signers.d.ts","sourceRoot":"","sources":["../../../../../core/modules/relayer/cleartext/signers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAEjF,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAQ5D,KAAK,aAAa,GAAG,GAAG,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;AASvD,wBAAgB,kCAAkC,CAAC,aAAa,EAAE,wBAAwB,GAAG,aAAa,CAKzG;AAID,wBAAgB,0BAA0B,CAAC,aAAa,EAAE,wBAAwB,GAAG,aAAa,CAKjG"}
1
+ {"version":3,"file":"signers.d.ts","sourceRoot":"","sources":["../../../../../core/modules/relayer/cleartext/signers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAEjF,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAgC5D,wBAAgB,uBAAuB,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAElF;AAID,KAAK,aAAa,GAAG,GAAG,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;AASvD,wBAAgB,kCAAkC,CAAC,aAAa,EAAE,wBAAwB,GAAG,aAAa,CASzG;AAID,wBAAgB,0BAA0B,CAAC,aAAa,EAAE,wBAAwB,GAAG,aAAa,CAMjG"}
@@ -2,7 +2,7 @@ import type { TkmsVersion } from '../../wasm/tkms/KmsLibApi.js';
2
2
  import type { Handle } from './encryptedTypes-p.js';
3
3
  import type { KmsEip712Domain } from './kms.js';
4
4
  import type { KmsSignersContext } from './kmsSignersContext.js';
5
- import type { Bytes65Hex, Bytes65HexNo0x, BytesHexNo0x, ChecksummedAddress } from './primitives.js';
5
+ import type { Bytes65Hex, Bytes65HexNo0x, BytesHex, BytesHexNo0x, ChecksummedAddress, Uint256BigInt, Uint8Number } from './primitives.js';
6
6
  export interface KmsSigncryptedSharesMetadata {
7
7
  readonly kmsSignersContext: KmsSignersContext;
8
8
  readonly eip712Domain: KmsEip712Domain;
@@ -16,4 +16,10 @@ export interface KmsSigncryptedShare {
16
16
  readonly signature: Bytes65HexNo0x;
17
17
  readonly extraData: BytesHexNo0x;
18
18
  }
19
+ export interface KmsExtraData {
20
+ readonly version: Uint8Number;
21
+ readonly kmsContextId: Uint256BigInt;
22
+ readonly kmsEpochId: Uint256BigInt;
23
+ toBytesHex(): BytesHex;
24
+ }
19
25
  //# sourceMappingURL=kms-p.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"kms-p.d.ts","sourceRoot":"","sources":["../../../core/types/kms-p.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAEpG,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAC9C,QAAQ,CAAC,YAAY,EAAE,eAAe,CAAC;IACvC,QAAQ,CAAC,eAAe,EAAE,UAAU,CAAC;IACrC,QAAQ,CAAC,mBAAmB,EAAE,kBAAkB,CAAC;IACjD,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;CACnC;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IAC/B,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAC;IACnC,QAAQ,CAAC,SAAS,EAAE,YAAY,CAAC;CAClC"}
1
+ {"version":3,"file":"kms-p.d.ts","sourceRoot":"","sources":["../../../core/types/kms-p.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EACV,UAAU,EACV,cAAc,EACd,QAAQ,EACR,YAAY,EACZ,kBAAkB,EAClB,aAAa,EACb,WAAW,EACZ,MAAM,iBAAiB,CAAC;AAEzB,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAC9C,QAAQ,CAAC,YAAY,EAAE,eAAe,CAAC;IACvC,QAAQ,CAAC,eAAe,EAAE,UAAU,CAAC;IACrC,QAAQ,CAAC,mBAAmB,EAAE,kBAAkB,CAAC;IACjD,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;CACnC;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IAC/B,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAC;IACnC,QAAQ,CAAC,SAAS,EAAE,YAAY,CAAC;CAClC;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,YAAY,EAAE,aAAa,CAAC;IACrC,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC;IACnC,UAAU,IAAI,QAAQ,CAAC;CACxB"}
@@ -1 +1 @@
1
- {"version":3,"file":"ethereum-ct.d.ts","sourceRoot":"","sources":["../../../ethers/internal/ethereum-ct.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,8BAA8B,EAU/B,MAAM,yCAAyC,CAAC;AAgBjD,eAAO,MAAM,uBAAuB,EAAE,8BAiCrC,CAAC"}
1
+ {"version":3,"file":"ethereum-ct.d.ts","sourceRoot":"","sources":["../../../ethers/internal/ethereum-ct.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,8BAA8B,EAY/B,MAAM,yCAAyC,CAAC;AAkBjD,eAAO,MAAM,uBAAuB,EAAE,8BA2CrC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-ct.d.ts","sourceRoot":"","sources":["../../../ethers/internal/runtime-ct.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AAYzE,wBAAgB,yBAAyB,IAAI,YAAY,CAexD"}
1
+ {"version":3,"file":"runtime-ct.d.ts","sourceRoot":"","sources":["../../../ethers/internal/runtime-ct.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AAYzE,wBAAgB,yBAAyB,IAAI,YAAY,CAiBxD"}
@@ -1 +1 @@
1
- {"version":3,"file":"ethereum-ct.d.ts","sourceRoot":"","sources":["../../../viem/internal/ethereum-ct.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,8BAA8B,EAU/B,MAAM,yCAAyC,CAAC;AAiBjD,eAAO,MAAM,uBAAuB,EAAE,8BAgCrC,CAAC"}
1
+ {"version":3,"file":"ethereum-ct.d.ts","sourceRoot":"","sources":["../../../viem/internal/ethereum-ct.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,8BAA8B,EAY/B,MAAM,yCAAyC,CAAC;AAiBjD,eAAO,MAAM,uBAAuB,EAAE,8BA0CrC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-ct.d.ts","sourceRoot":"","sources":["../../../viem/internal/runtime-ct.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AAYzE,wBAAgB,uBAAuB,IAAI,YAAY,CAetD"}
1
+ {"version":3,"file":"runtime-ct.d.ts","sourceRoot":"","sources":["../../../viem/internal/runtime-ct.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AAYzE,wBAAgB,uBAAuB,IAAI,YAAY,CAiBtD"}
package/core/_version.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  // This file is auto-generated
2
- export const version: string = '1.1.0-alpha.7';
2
+ export const version: string = '1.1.0-alpha.9';
3
3
  export const sdkName: string = '@fhevm/sdk';
@@ -8,6 +8,7 @@ import { addressToChecksummedAddress, assertIsAddress } from '../../base/address
8
8
  import { toArray } from '../../base/object.js';
9
9
  import { createTypedValue } from '../../base/typedValue.js';
10
10
  import { encrypt as encrypt_ } from '../../coprocessor/encrypt.js';
11
+ import { resolveRawValueTypeName } from '../../handle/FheType.js';
11
12
  import { asFhevmWithTfheVersion } from '../../runtime/CoreFhevm-p.js';
12
13
 
13
14
  ////////////////////////////////////////////////////////////////////////////////
@@ -33,7 +34,9 @@ export async function encryptValue(
33
34
  const { contractAddress, userAddress, options } = parameters;
34
35
 
35
36
  // Validates `value`
36
- const values = toArray(parameters.value).map(createTypedValue);
37
+ const values = toArray(parameters.value).map((v) =>
38
+ createTypedValue({ type: resolveRawValueTypeName(v.type), value: v.value }),
39
+ );
37
40
 
38
41
  assertIsAddress(contractAddress, {});
39
42
  assertIsAddress(userAddress, {});
@@ -7,6 +7,7 @@ import type { EncryptedValue } from '../../types/encryptedTypes.js';
7
7
  import { addressToChecksummedAddress, assertIsAddress } from '../../base/address.js';
8
8
  import { createTypedValue } from '../../base/typedValue.js';
9
9
  import { encrypt as encrypt_ } from '../../coprocessor/encrypt.js';
10
+ import { resolveRawValueTypeName } from '../../handle/FheType.js';
10
11
  import { asFhevmWithTfheVersion } from '../../runtime/CoreFhevm-p.js';
11
12
 
12
13
  ////////////////////////////////////////////////////////////////////////////////
@@ -30,8 +31,11 @@ export async function encryptValues(
30
31
  parameters: EncryptValuesParameters,
31
32
  ): Promise<EncryptValuesReturnType> {
32
33
  const { contractAddress, userAddress, options } = parameters;
34
+
33
35
  // Validates `values`
34
- const values = parameters.values.map(createTypedValue);
36
+ const values = parameters.values.map((v) =>
37
+ createTypedValue({ type: resolveRawValueTypeName(v.type), value: v.value }),
38
+ );
35
39
 
36
40
  assertIsAddress(contractAddress, {});
37
41
  assertIsAddress(userAddress, {});
@@ -5,6 +5,7 @@ import type { ZkProof } from '../../types/zkProof-p.js';
5
5
  import type { BytesHex } from '../../types/primitives.js';
6
6
  import { createTypedValue } from '../../base/typedValue.js';
7
7
  import { createZkProofBuilder } from '../../coprocessor/ZkProofBuilder-p.js';
8
+ import { resolveRawValueTypeName } from '../../handle/FheType.js';
8
9
  import { asFhevmWithTfheVersion } from '../../runtime/CoreFhevm-p.js';
9
10
 
10
11
  ////////////////////////////////////////////////////////////////////////////////
@@ -28,7 +29,7 @@ export async function generateZkProof(
28
29
 
29
30
  const builder = createZkProofBuilder();
30
31
  for (const value of values) {
31
- builder.addTypedValue(createTypedValue(value));
32
+ builder.addTypedValue(createTypedValue({ type: resolveRawValueTypeName(value.type), value: value.value }));
32
33
  }
33
34
 
34
35
  const f = asFhevmWithTfheVersion(fhevm);
@@ -10,7 +10,7 @@ import { assertIsKmsEip712Domain } from '../../kms/createKmsEip712Domain.js';
10
10
  import { eip712Domain } from '../../host-contracts/eip712Domain-p.js';
11
11
  import { assertIsHostContractVersionOf } from '../../host-contracts/HostContractVersion-p.js';
12
12
  import { getHostContractVersion } from '../../host-contracts/HostContractVersion-p.js';
13
- import { readKmsSignersContext } from '../../host-contracts/readKmsSignersContext-p.js';
13
+ import { readCurrentKmsSignersContext } from '../../host-contracts/readKmsSignersContext-p.js';
14
14
 
15
15
  ////////////////////////////////////////////////////////////////////////////////
16
16
 
@@ -44,7 +44,7 @@ export async function readKmsVerifierContractData(
44
44
  const rpcCalls = [
45
45
  () => getHostContractVersion(fhevm, parameters),
46
46
  () => eip712Domain(fhevm, parameters),
47
- () => readKmsSignersContext(fhevm, { kmsVerifierAddress, protocolConfigAddress }),
47
+ () => readCurrentKmsSignersContext(fhevm, { kmsVerifierAddress, protocolConfigAddress }),
48
48
  ];
49
49
 
50
50
  const res = await executeWithBatching<unknown>(rpcCalls, fhevm.options.batchRpcCalls);
@@ -23,7 +23,7 @@ type CachedFetchOptions<TContext, TParams, TResult> = {
23
23
  };
24
24
 
25
25
  export const CACHE_TTL_24H = 24 * 60 * 60 * 1000; // 24 hours
26
- export const CACHE_TTL_15MIN = 15 * 1000; // 15 min
26
+ export const CACHE_TTL_15MIN = 15 * 60 * 1000; // 15 min
27
27
 
28
28
  /**
29
29
  * Creates a cached, deduplicating wrapper around an async fetch function.
@@ -354,6 +354,17 @@ export function typeNameFromFheTypeName(fheType: FheType): ValueTypeName {
354
354
  return fheType.substring(1) as ValueTypeName;
355
355
  }
356
356
 
357
+ /**
358
+ * Resolves a raw type name to its clear `ValueTypeName`, accepting FHE type
359
+ * aliases ("ebool", "euint8", ...) in addition to clear-value names
360
+ * ("bool", "uint8", ...). Non-FHE type names are returned unchanged.
361
+ * @example resolveRawValueTypeName('euint8') // 'uint8'
362
+ * @example resolveRawValueTypeName('uint8') // 'uint8' (unchanged)
363
+ */
364
+ export function resolveRawValueTypeName(type: string): string {
365
+ return isFheType(type) ? typeNameFromFheTypeName(type) : type;
366
+ }
367
+
357
368
  ////////////////////////////////////////////////////////////////////////////////
358
369
  // Solidity primitive type names
359
370
  ////////////////////////////////////////////////////////////////////////////////
@@ -196,6 +196,18 @@ export function isVersionStrictlyBefore(
196
196
  return false;
197
197
  }
198
198
 
199
+ /**
200
+ * Returns `true` if the version equals `major.minor.patch` exactly.
201
+ */
202
+ export function isVersionEqual(
203
+ version: HostContractVersion,
204
+ otherVersion: { readonly major: number; readonly minor: number; readonly patch: number },
205
+ ): boolean {
206
+ return (
207
+ version.major === otherVersion.major && version.minor === otherVersion.minor && version.patch === otherVersion.patch
208
+ );
209
+ }
210
+
199
211
  /**
200
212
  * Asserts that a {@link HostContractVersion} belongs to a specific contract.
201
213
  * Narrows the type to `HostContractVersion<name>` on success.
@@ -1,20 +1,22 @@
1
- import type { BytesHex, ChecksummedAddress, Uint256BigInt, Uint8Number } from '../types/primitives.js';
1
+ import type { ChecksummedAddress, Uint256BigInt, Uint8Number } from '../types/primitives.js';
2
2
  import type { kmsBrand } from '../types/kms.js';
3
3
  import type { KmsSignersContext } from '../types/kmsSignersContext.js';
4
4
  import type { ErrorMetadataParams } from '../base/errors/ErrorBase.js';
5
5
  import type { FhevmRuntime } from '../types/coreFhevmRuntime.js';
6
+ import type { KmsExtraData } from '../types/kms-p.js';
6
7
  import { InvalidTypeError } from '../base/errors/InvalidTypeError.js';
7
8
  import { addressToChecksummedAddress } from '../base/address.js';
8
9
  import { DuplicateSignerError, ThresholdSignerError, UnknownSignerError } from '../errors/SignersError.js';
9
10
  import { assertOwnedBy } from '../runtime/CoreFhevmRuntime-p.js';
10
- import {
11
- assertIsKmsExtraData,
12
- EXTRA_DATA_V0,
13
- EXTRA_DATA_V1,
14
- EXTRA_DATA_V2,
15
- toKmsExtraData,
16
- } from '../kms/kmsExtraData.js';
17
11
  import { assertIsNonEmptyString, ensure0x } from '../base/string.js';
12
+ import {
13
+ assertIsKmsExtraDataBytesHex,
14
+ createKmsExtraData,
15
+ equalsKmsExtraData,
16
+ fromKmsExtraDataBytesHex,
17
+ isKmsExtraData,
18
+ validateKmsExtraDataParams,
19
+ } from '../kms/kmsExtraData-p.js';
18
20
 
19
21
  ////////////////////////////////////////////////////////////////////////////////
20
22
 
@@ -124,6 +126,8 @@ export function createKmsSignersContext(
124
126
  ): KmsSignersContext {
125
127
  const { kmsVerifierAddress: address, kmsContextId, kmsEpochId, kmsSigners, kmsSignerThreshold } = parameters;
126
128
 
129
+ validateKmsExtraDataParams({ kmsContextId: parameters.kmsContextId, kmsEpochId: parameters.kmsEpochId });
130
+
127
131
  return new KmsSignersContextImpl(PRIVATE_TOKEN, owner, {
128
132
  address: addressToChecksummedAddress(address),
129
133
  kmsContextId,
@@ -135,32 +139,13 @@ export function createKmsSignersContext(
135
139
 
136
140
  ////////////////////////////////////////////////////////////////////////////////
137
141
 
138
- export function kmsSignersContextToExtraData(kmsSignersContext: KmsSignersContext): BytesHex {
142
+ export function kmsSignersContextToExtraData(kmsSignersContext: KmsSignersContext): KmsExtraData {
139
143
  assertIsKmsSignersContext(kmsSignersContext, {});
140
-
141
- if (kmsSignersContext.id === 0n) {
142
- return toKmsExtraData({
143
- version: EXTRA_DATA_V0,
144
- kmsContextId: 0n as Uint256BigInt,
145
- kmsEpochId: 0n as Uint256BigInt,
146
- });
147
- }
148
-
149
- if (kmsSignersContext.epochId === 0n) {
150
- return toKmsExtraData({
151
- version: EXTRA_DATA_V1,
152
- kmsContextId: kmsSignersContext.id,
153
- kmsEpochId: 0n as Uint256BigInt,
154
- });
155
- }
156
-
157
- return toKmsExtraData({
158
- version: EXTRA_DATA_V2,
159
- kmsContextId: kmsSignersContext.id,
160
- kmsEpochId: kmsSignersContext.epochId,
161
- });
144
+ return createKmsExtraData({ kmsContextId: kmsSignersContext.id, kmsEpochId: kmsSignersContext.epochId });
162
145
  }
163
146
 
147
+ ////////////////////////////////////////////////////////////////////////////////
148
+
164
149
  /**
165
150
  * Asserts that the given `extraData` is a valid KMS extra data string and
166
151
  * matches the `extraData` derived from the provided {@link KmsSignersContext}.
@@ -176,15 +161,23 @@ export function assertExtraDataMatchesKmsSingersContext(
176
161
  options: { subject?: string } & ErrorMetadataParams,
177
162
  ): void {
178
163
  const { extraData, kmsSignersContext } = parameters;
179
- assertIsNonEmptyString(extraData);
180
164
 
181
- const sanitizedExtraData = ensure0x(extraData);
182
- assertIsKmsExtraData(sanitizedExtraData, options);
165
+ let sanitizedExtraData: KmsExtraData;
166
+ if (isKmsExtraData(extraData)) {
167
+ sanitizedExtraData = extraData;
168
+ } else {
169
+ assertIsNonEmptyString(extraData);
170
+ const sanitizedExtraDataBytesHex = ensure0x(extraData);
171
+ assertIsKmsExtraDataBytesHex(sanitizedExtraDataBytesHex, options);
172
+ sanitizedExtraData = fromKmsExtraDataBytesHex(sanitizedExtraDataBytesHex);
173
+ }
183
174
 
184
175
  const expectedExtraData = kmsSignersContextToExtraData(kmsSignersContext);
185
176
 
186
- if (sanitizedExtraData !== expectedExtraData) {
187
- throw new Error(`extraData "${extraData}" does not match KmsSignersContext extraData "${expectedExtraData}".`);
177
+ if (!equalsKmsExtraData(sanitizedExtraData, expectedExtraData)) {
178
+ throw new Error(
179
+ `extraData "${sanitizedExtraData.toBytesHex()}" does not match KmsSignersContext extraData "${expectedExtraData.toBytesHex()}".`,
180
+ );
188
181
  }
189
182
  }
190
183
 
@@ -68,6 +68,7 @@ async function _getKmsContextSignersAndThreshold(context: Context, parameters: P
68
68
  if (!isVersionStrictlyBefore(kmsVerifierVersion, { major: 0, minor: 2 })) {
69
69
  throw new Error('getContextSignersAndThreshold requires KMSVerifier < v0.2.0');
70
70
  }
71
+
71
72
  ////////////////////////////////////////////////////////////////////////////
72
73
  //
73
74
  // Important remark:
@@ -1,12 +1,13 @@
1
- import type { BytesHex, ChecksummedAddress, Uint8Number } from '../types/primitives.js';
1
+ import type { ChecksummedAddress, Uint8Number } from '../types/primitives.js';
2
2
  import type { FhevmRuntime } from '../types/coreFhevmRuntime.js';
3
+ import type { KmsExtraData } from '../types/kms-p.js';
3
4
  import { getHostContractVersion, isVersionStrictlyBefore } from './HostContractVersion-p.js';
4
5
  import { createCachedFetch } from '../base/cachedFetch.js';
5
- import { assertIsKmsExtraData, fromKmsExtraData } from '../kms/kmsExtraData.js';
6
6
  import { assertIsChecksummedAddressArray } from '../base/address.js';
7
7
  import { isUint8 } from '../base/uint.js';
8
8
  import { getContextSignersAndThresholdFromExtraDataAbi } from './abi-fragments/fragments.js';
9
9
  import { getTrustedClient } from '../runtime/CoreFhevm-p.js';
10
+ import { assertIsKmsExtraData } from '../kms/kmsExtraData-p.js';
10
11
 
11
12
  ////////////////////////////////////////////////////////////////////////////////
12
13
 
@@ -17,7 +18,7 @@ type Context = {
17
18
 
18
19
  type Parameters = {
19
20
  readonly kmsVerifierAddress: ChecksummedAddress;
20
- readonly extraData: BytesHex;
21
+ readonly extraData: KmsExtraData;
21
22
  };
22
23
 
23
24
  type ReturnType = {
@@ -30,9 +31,9 @@ type ReturnType = {
30
31
  const cachedGetKmsContextSignersAndThresholdFromExtraData = createCachedFetch<Context, Parameters, ReturnType>({
31
32
  executeFn: _getKmsContextSignersAndThresholdFromExtraData,
32
33
  cacheKeyFn: (context, params) => {
33
- const { kmsContextId } = fromKmsExtraData(params.extraData);
34
- const contextIdHex = kmsContextId.toString(16).padStart(64, '0');
35
- return `${context.runtime.uid.toLowerCase()}:${params.kmsVerifierAddress.toLowerCase()}:${contextIdHex}`;
34
+ const kmsContextId = params.extraData.kmsContextId;
35
+ const kmsContextIdHex = kmsContextId.toString(16).padStart(64, '0');
36
+ return `${context.runtime.uid.toLowerCase()}:${params.kmsVerifierAddress.toLowerCase()}:${kmsContextIdHex}`;
36
37
  },
37
38
  // Permanent cache: signers and threshold are immutable per context ID.
38
39
  });
@@ -76,10 +77,12 @@ async function _getKmsContextSignersAndThresholdFromExtraData(
76
77
 
77
78
  const trustedClient = getTrustedClient(context);
78
79
 
80
+ const extraDataBytesHex = parameters.extraData.toBytesHex();
81
+
79
82
  const res = await context.runtime.ethereum.readContract(trustedClient, {
80
83
  address: parameters.kmsVerifierAddress,
81
84
  abi: getContextSignersAndThresholdFromExtraDataAbi,
82
- args: [parameters.extraData],
85
+ args: [extraDataBytesHex],
83
86
  functionName: getContextSignersAndThresholdFromExtraDataAbi[0].name,
84
87
  });
85
88