@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
@@ -1 +1 @@
1
- {"version":3,"file":"HostContractVersion-p.js","sourceRoot":"","sources":["../../../core/host-contracts/HostContractVersion-p.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HostContractVersion-p.js","sourceRoot":"","sources":["../../../core/host-contracts/HostContractVersion-p.ts"],"names":[],"mappings":"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"}
@@ -14,8 +14,8 @@ import { InvalidTypeError } from '../base/errors/InvalidTypeError.js';
14
14
  import { addressToChecksummedAddress } from '../base/address.js';
15
15
  import { DuplicateSignerError, ThresholdSignerError, UnknownSignerError } from '../errors/SignersError.js';
16
16
  import { assertOwnedBy } from '../runtime/CoreFhevmRuntime-p.js';
17
- import { assertIsKmsExtraData, EXTRA_DATA_V0, EXTRA_DATA_V1, EXTRA_DATA_V2, toKmsExtraData, } from '../kms/kmsExtraData.js';
18
17
  import { assertIsNonEmptyString, ensure0x } from '../base/string.js';
18
+ import { assertIsKmsExtraDataBytesHex, createKmsExtraData, equalsKmsExtraData, fromKmsExtraDataBytesHex, isKmsExtraData, validateKmsExtraDataParams, } from '../kms/kmsExtraData-p.js';
19
19
  ////////////////////////////////////////////////////////////////////////////////
20
20
  const PRIVATE_TOKEN = Symbol('KmsSignersContext.token');
21
21
  const VERIFY_FUNC = Symbol('KmsSignersContext.verify');
@@ -86,6 +86,7 @@ Object.freeze(KmsSignersContextImpl);
86
86
  ////////////////////////////////////////////////////////////////////////////////
87
87
  export function createKmsSignersContext(owner, parameters) {
88
88
  const { kmsVerifierAddress: address, kmsContextId, kmsEpochId, kmsSigners, kmsSignerThreshold } = parameters;
89
+ validateKmsExtraDataParams({ kmsContextId: parameters.kmsContextId, kmsEpochId: parameters.kmsEpochId });
89
90
  return new KmsSignersContextImpl(PRIVATE_TOKEN, owner, {
90
91
  address: addressToChecksummedAddress(address),
91
92
  kmsContextId,
@@ -97,26 +98,9 @@ export function createKmsSignersContext(owner, parameters) {
97
98
  ////////////////////////////////////////////////////////////////////////////////
98
99
  export function kmsSignersContextToExtraData(kmsSignersContext) {
99
100
  assertIsKmsSignersContext(kmsSignersContext, {});
100
- if (kmsSignersContext.id === 0n) {
101
- return toKmsExtraData({
102
- version: EXTRA_DATA_V0,
103
- kmsContextId: 0n,
104
- kmsEpochId: 0n,
105
- });
106
- }
107
- if (kmsSignersContext.epochId === 0n) {
108
- return toKmsExtraData({
109
- version: EXTRA_DATA_V1,
110
- kmsContextId: kmsSignersContext.id,
111
- kmsEpochId: 0n,
112
- });
113
- }
114
- return toKmsExtraData({
115
- version: EXTRA_DATA_V2,
116
- kmsContextId: kmsSignersContext.id,
117
- kmsEpochId: kmsSignersContext.epochId,
118
- });
101
+ return createKmsExtraData({ kmsContextId: kmsSignersContext.id, kmsEpochId: kmsSignersContext.epochId });
119
102
  }
103
+ ////////////////////////////////////////////////////////////////////////////////
120
104
  /**
121
105
  * Asserts that the given `extraData` is a valid KMS extra data string and
122
106
  * matches the `extraData` derived from the provided {@link KmsSignersContext}.
@@ -126,12 +110,19 @@ export function kmsSignersContextToExtraData(kmsSignersContext) {
126
110
  */
127
111
  export function assertExtraDataMatchesKmsSingersContext(parameters, options) {
128
112
  const { extraData, kmsSignersContext } = parameters;
129
- assertIsNonEmptyString(extraData);
130
- const sanitizedExtraData = ensure0x(extraData);
131
- assertIsKmsExtraData(sanitizedExtraData, options);
113
+ let sanitizedExtraData;
114
+ if (isKmsExtraData(extraData)) {
115
+ sanitizedExtraData = extraData;
116
+ }
117
+ else {
118
+ assertIsNonEmptyString(extraData);
119
+ const sanitizedExtraDataBytesHex = ensure0x(extraData);
120
+ assertIsKmsExtraDataBytesHex(sanitizedExtraDataBytesHex, options);
121
+ sanitizedExtraData = fromKmsExtraDataBytesHex(sanitizedExtraDataBytesHex);
122
+ }
132
123
  const expectedExtraData = kmsSignersContextToExtraData(kmsSignersContext);
133
- if (sanitizedExtraData !== expectedExtraData) {
134
- throw new Error(`extraData "${extraData}" does not match KmsSignersContext extraData "${expectedExtraData}".`);
124
+ if (!equalsKmsExtraData(sanitizedExtraData, expectedExtraData)) {
125
+ throw new Error(`extraData "${sanitizedExtraData.toBytesHex()}" does not match KmsSignersContext extraData "${expectedExtraData.toBytesHex()}".`);
135
126
  }
136
127
  }
137
128
  export function extraDataMatchesKmsSingersContext(parameters) {
@@ -1 +1 @@
1
- {"version":3,"file":"KmsSignersContext-p.js","sourceRoot":"","sources":["../../../core/host-contracts/KmsSignersContext-p.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"KmsSignersContext-p.js","sourceRoot":"","sources":["../../../core/host-contracts/KmsSignersContext-p.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"getKmsContextSignersAndThreshold-p.js","sourceRoot":"","sources":["../../../core/host-contracts/getKmsContextSignersAndThreshold-p.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"getKmsContextSignersAndThreshold-p.js","sourceRoot":"","sources":["../../../core/host-contracts/getKmsContextSignersAndThreshold-p.ts"],"names":[],"mappings":"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"}
@@ -1,17 +1,17 @@
1
1
  import { getHostContractVersion, isVersionStrictlyBefore } from './HostContractVersion-p.js';
2
2
  import { createCachedFetch } from '../base/cachedFetch.js';
3
- import { assertIsKmsExtraData, fromKmsExtraData } from '../kms/kmsExtraData.js';
4
3
  import { assertIsChecksummedAddressArray } from '../base/address.js';
5
4
  import { isUint8 } from '../base/uint.js';
6
5
  import { getContextSignersAndThresholdFromExtraDataAbi } from './abi-fragments/fragments.js';
7
6
  import { getTrustedClient } from '../runtime/CoreFhevm-p.js';
7
+ import { assertIsKmsExtraData } from '../kms/kmsExtraData-p.js';
8
8
  ////////////////////////////////////////////////////////////////////////////////
9
9
  const cachedGetKmsContextSignersAndThresholdFromExtraData = createCachedFetch({
10
10
  executeFn: _getKmsContextSignersAndThresholdFromExtraData,
11
11
  cacheKeyFn: (context, params) => {
12
- const { kmsContextId } = fromKmsExtraData(params.extraData);
13
- const contextIdHex = kmsContextId.toString(16).padStart(64, '0');
14
- return `${context.runtime.uid.toLowerCase()}:${params.kmsVerifierAddress.toLowerCase()}:${contextIdHex}`;
12
+ const kmsContextId = params.extraData.kmsContextId;
13
+ const kmsContextIdHex = kmsContextId.toString(16).padStart(64, '0');
14
+ return `${context.runtime.uid.toLowerCase()}:${params.kmsVerifierAddress.toLowerCase()}:${kmsContextIdHex}`;
15
15
  },
16
16
  // Permanent cache: signers and threshold are immutable per context ID.
17
17
  });
@@ -42,10 +42,11 @@ async function _getKmsContextSignersAndThresholdFromExtraData(context, parameter
42
42
  throw new Error('getContextSignersAndThresholdFromExtraData requires KMSVerifier >= v0.2.0');
43
43
  }
44
44
  const trustedClient = getTrustedClient(context);
45
+ const extraDataBytesHex = parameters.extraData.toBytesHex();
45
46
  const res = await context.runtime.ethereum.readContract(trustedClient, {
46
47
  address: parameters.kmsVerifierAddress,
47
48
  abi: getContextSignersAndThresholdFromExtraDataAbi,
48
- args: [parameters.extraData],
49
+ args: [extraDataBytesHex],
49
50
  functionName: getContextSignersAndThresholdFromExtraDataAbi[0].name,
50
51
  });
51
52
  if (!Array.isArray(res) || res.length < 2) {
@@ -1 +1 @@
1
- {"version":3,"file":"getKmsContextSignersAndThresholdFromExtraData-p.js","sourceRoot":"","sources":["../../../core/host-contracts/getKmsContextSignersAndThresholdFromExtraData-p.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"getKmsContextSignersAndThresholdFromExtraData-p.js","sourceRoot":"","sources":["../../../core/host-contracts/getKmsContextSignersAndThresholdFromExtraData-p.ts"],"names":[],"mappings":"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"}
@@ -1,32 +1,53 @@
1
- import { assertIsKmsSignersContext, createKmsSignersContext, kmsSignersContextToExtraData, } from './KmsSignersContext-p.js';
1
+ import { assertIsKmsSignersContext, createKmsSignersContext } from './KmsSignersContext-p.js';
2
2
  import { getCurrentKmsContextId } from './getCurrentKmsContextId-p.js';
3
3
  import { getCurrentKmsContextAndEpoch } from './getCurrentKmsContextAndEpoch-p.js';
4
4
  import { getHostContractVersion, isVersionStrictlyBefore } from './HostContractVersion-p.js';
5
- import { assertIsKmsExtraData, EXTRA_DATA_V1, EXTRA_DATA_V2, fromKmsExtraData, toKmsExtraData, } from '../kms/kmsExtraData.js';
5
+ import { assertIsKmsExtraData, createKmsExtraData, createKmsExtraDataV1, createKmsExtraDataV2, equalsKmsExtraData, fromKmsExtraDataBytesHex, isKmsExtraDataCompatibleWithKmsVerifier, } from '../kms/kmsExtraData-p.js';
6
6
  import { getKmsContextSignersAndThresholdFromExtraData } from './getKmsContextSignersAndThresholdFromExtraData-p.js';
7
7
  import { getKmsSignersAndThreshold } from './getKmsContextSignersAndThreshold-p.js';
8
8
  ////////////////////////////////////////////////////////////////////////////////
9
- export async function readKmsSignersContext(context, parameters) {
9
+ export async function readCurrentKmsSignersContext(context, parameters) {
10
+ return _readKmsSignersContext(context, parameters);
11
+ }
12
+ ////////////////////////////////////////////////////////////////////////////////
13
+ /**
14
+ * Reads the {@link KmsSignersContext} for a caller-provided `extraData`.
15
+ *
16
+ * Accepts an `extraData` of any version (v0, v1, v2, …); the underlying resolver
17
+ * selects the right protocol path and verifies the version is compatible with
18
+ * the on-chain KMSVerifier, throwing if it is not.
19
+ */
20
+ export async function readKmsSignersContextFromExtraData(context, parameters) {
21
+ assertIsKmsExtraData(parameters.extraData, {});
22
+ return _readKmsSignersContext(context, parameters);
23
+ }
24
+ ////////////////////////////////////////////////////////////////////////////////
25
+ async function _readKmsSignersContext(context, parameters) {
10
26
  // TTL-cached
11
27
  const kmsVerifierVersion = await getHostContractVersion(context, {
12
28
  address: parameters.kmsVerifierAddress,
13
29
  });
30
+ if (parameters.extraData !== undefined) {
31
+ if (!isKmsExtraDataCompatibleWithKmsVerifier(parameters.extraData, kmsVerifierVersion)) {
32
+ throw new Error(`KmsExtraData ${parameters.extraData.toBytesHex()} is not compatible with ${kmsVerifierVersion.contractName} ${kmsVerifierVersion.version}`);
33
+ }
34
+ }
14
35
  if (isVersionStrictlyBefore(kmsVerifierVersion, { major: 0, minor: 2 })) {
36
+ // extraData.version = 0 only
15
37
  return _readKmsSignersContext_Protocol_11(context, parameters);
16
38
  }
17
39
  if (isVersionStrictlyBefore(kmsVerifierVersion, { major: 0, minor: 4 })) {
40
+ // extraData.version = 0 or 1 only
18
41
  return _readKmsSignersContext_Protocol_12_13(context, parameters);
19
42
  }
20
- return _readKmsSignersContext_Protocol_14(context, parameters);
43
+ // any extraData.version
44
+ return _readKmsSignersContext_Protocol_14_or_higher(context, parameters);
21
45
  }
22
46
  ////////////////////////////////////////////////////////////////////////////////
23
47
  // Protocol v0.11.0 (KMSVerifier < v0.2.0) had no context ID support, so the only valid
24
48
  // context ID is 0. Any other value is invalid and should throw.
25
49
  // eslint-disable-next-line @typescript-eslint/naming-convention
26
50
  async function _readKmsSignersContext_Protocol_11(context, parameters) {
27
- if (parameters.kmsContextId !== undefined && parameters.kmsContextId !== 0n) {
28
- throw new Error('Impossible on protocol v0.11.0');
29
- }
30
51
  // TTL-Cached
31
52
  const c = await getKmsSignersAndThreshold(context, parameters);
32
53
  const data = createKmsSignersContext(new WeakRef(context.runtime), {
@@ -42,104 +63,148 @@ async function _readKmsSignersContext_Protocol_11(context, parameters) {
42
63
  // Protocol v0.12.0 / v0.13.0 (KMSVerifier = v0.2.0 / v0.3.0)
43
64
  // eslint-disable-next-line @typescript-eslint/naming-convention
44
65
  async function _readKmsSignersContext_Protocol_12_13(context, parameters) {
45
- if (parameters.kmsEpochId !== undefined && parameters.kmsEpochId !== 0n) {
46
- throw new Error('kmsEpochId should be 0 on protocol v0.12.0 / v0.13.0');
47
- }
48
- let kmsContextId;
49
- if (parameters.kmsContextId === undefined) {
66
+ // On protocol v0.12/v0.13, the KMS signers and threshold are looked up by
67
+ // `extraData` (which encodes the KMS context id). The caller may pass one in;
68
+ // if not, we derive it from the chain's current KMS context id using the v1
69
+ // extraData encoding (version byte + context id, no epoch).
70
+ let extraData;
71
+ if (parameters.extraData === undefined) {
50
72
  // TTL-Cached
51
- kmsContextId = await getCurrentKmsContextId(context, parameters);
73
+ const kmsContextId = await getCurrentKmsContextId(context, parameters);
74
+ extraData = createKmsExtraDataV1({
75
+ kmsContextId,
76
+ });
52
77
  }
53
78
  else {
54
- if (parameters.kmsContextId === 0n) {
55
- throw new Error('kmsContextId cannot be 0 on protocol v0.12.0 / v0.13.0');
56
- }
57
- kmsContextId = parameters.kmsContextId;
79
+ // v0 or v1
80
+ extraData = parameters.extraData;
58
81
  }
59
- const extraData = toKmsExtraData({
60
- version: EXTRA_DATA_V1,
61
- kmsContextId,
62
- kmsEpochId: 0n,
63
- });
64
82
  // Permanent-Cached
65
- const c = await getKmsContextSignersAndThresholdFromExtraData(context, {
83
+ // On protocol v0.12/v0.13, getKmsContextSignersAndThresholdFromExtraData
84
+ // supports extraData v0 and v1 only.
85
+ const { signers: kmsSigners, threshold: kmsSignerThreshold } = await getKmsContextSignersAndThresholdFromExtraData(context, {
66
86
  ...parameters,
67
87
  extraData,
68
88
  });
69
89
  return createKmsSignersContext(new WeakRef(context.runtime), {
70
90
  ...parameters,
71
- kmsContextId,
91
+ kmsContextId: extraData.kmsContextId,
72
92
  kmsEpochId: 0n,
73
- kmsSigners: c.signers,
74
- kmsSignerThreshold: c.threshold,
93
+ kmsSigners,
94
+ kmsSignerThreshold,
75
95
  });
76
96
  }
77
97
  ////////////////////////////////////////////////////////////////////////////////
78
98
  // Protocol v0.14.0+ (KMSVerifier = v0.4.0+)
79
99
  // eslint-disable-next-line @typescript-eslint/naming-convention
80
- async function _readKmsSignersContext_Protocol_14(context, parameters) {
100
+ async function _readKmsSignersContext_Protocol_14_or_higher(context, parameters) {
81
101
  if (parameters.protocolConfigAddress === undefined) {
82
102
  throw new Error('protocolConfigAddress is required on protocol v0.14.0+');
83
103
  }
84
104
  const protocolConfigAddress = parameters.protocolConfigAddress;
85
- let kmsContextId;
86
- if (parameters.kmsContextId === undefined) {
87
- // TTL-Cached
88
- ({ contextId: kmsContextId } = await getCurrentKmsContextAndEpoch(context, { protocolConfigAddress }));
89
- }
90
- else {
91
- if (parameters.kmsContextId === 0n) {
92
- throw new Error('kmsContextId cannot be 0 on protocol v0.14.0+');
93
- }
94
- kmsContextId = parameters.kmsContextId;
95
- }
96
- let kmsEpochId;
97
- if (parameters.kmsEpochId === undefined) {
105
+ let extraData;
106
+ if (parameters.extraData === undefined) {
98
107
  // TTL-Cached
99
- ({ epochId: kmsEpochId } = await getCurrentKmsContextAndEpoch(context, { protocolConfigAddress }));
108
+ const { contextId, epochId } = await getCurrentKmsContextAndEpoch(context, { protocolConfigAddress });
109
+ extraData = createKmsExtraDataV2({
110
+ kmsContextId: contextId,
111
+ kmsEpochId: epochId,
112
+ });
100
113
  }
101
114
  else {
102
- if (parameters.kmsEpochId === 0n) {
103
- throw new Error('kmsEpochId cannot be 0 on protocol v0.14.0+');
104
- }
105
- kmsEpochId = parameters.kmsEpochId;
115
+ // any version: v0, v1, v2, ... vn
116
+ extraData = parameters.extraData;
106
117
  }
107
- const extraData = toKmsExtraData({
108
- version: EXTRA_DATA_V2,
109
- kmsContextId,
110
- kmsEpochId,
111
- });
112
118
  // Permanent-Cached
113
- const c = await getKmsContextSignersAndThresholdFromExtraData(context, {
119
+ // May revert if extraData.version is incompatible (see `getKmsContextSignersAndThresholdFromExtraData` comments)
120
+ const { signers: kmsSigners, threshold: kmsSignerThreshold } = await getKmsContextSignersAndThresholdFromExtraData(context, {
114
121
  ...parameters,
115
122
  extraData,
116
123
  });
117
124
  return createKmsSignersContext(new WeakRef(context.runtime), {
118
125
  ...parameters,
119
- kmsContextId,
120
- kmsEpochId,
121
- kmsSigners: c.signers,
122
- kmsSignerThreshold: c.threshold,
126
+ kmsContextId: extraData.kmsContextId,
127
+ kmsEpochId: extraData.kmsEpochId,
128
+ kmsSigners,
129
+ kmsSignerThreshold,
123
130
  });
124
131
  }
132
+ /**
133
+ * Reconciles the KMS signers context used by the SDK with the one the relayer
134
+ * actually used when forwarding the decryption request to KMS nodes.
135
+ *
136
+ * The returned {@link KmsSignersContext} provides the signers and threshold
137
+ * needed to verify the KMS signcrypted shares and reconstruct the decrypted values.
138
+ *
139
+ * ### Assumptions
140
+ *
141
+ * - The relayer **cannot be trusted**.
142
+ * - On-chain data is the **source of truth**.
143
+ *
144
+ * ### Nomenclature
145
+ *
146
+ * - `requestedKmsExtraData` — `createKmsExtraData({ kmsContextId, kmsEpochId })`
147
+ * derived from `requestedKmsSignersContext`.
148
+ * - `relayerKmsExtraData` — `fromKmsExtraDataBytesHex(relayerKmsExtraDataBytesHex)`
149
+ * (its `.kmsContextId` / `.kmsEpochId`).
150
+ *
151
+ * ### Host-Contract Compatibility
152
+ *
153
+ * `extraData` is versioned independently from the host-contract package. The
154
+ * currently supported combinations are:
155
+ *
156
+ * - host-contracts v11 support `extraData` v0.
157
+ * - host-contracts v12 and v13 support `extraData` v0 and v1.
158
+ * - host-contracts v14 support `extraData` v0, v1, and v2.
159
+ *
160
+ * ### Resolution (checked in order, then by `mode`)
161
+ *
162
+ * 1. `relayerKmsExtraData` equals `requestedKmsExtraData` → return
163
+ * `requestedKmsSignersContext`. This is the **only** path that trusts cached
164
+ * data, and it applies in every mode.
165
+ * 2. Otherwise, in `'exact'` mode → **throw**. This mode never parses, refreshes,
166
+ * or reconciles differing `extraData`.
167
+ * 3. `extraData` serialization version mismatch → **throw** (`'strict'`/`'loose'`).
168
+ * The SDK and relayer must agree on the encoding format, even for the same context ID.
169
+ * 4. Versions match but context/epoch differ → force a **full on-chain refetch**
170
+ * (cached data is never reused, since a mismatch means on-chain state may have
171
+ * diverged: rotation, destruction, signer/epoch changes). The accept criterion
172
+ * then depends on `mode`:
173
+ * - `'strict'` → accept **only** if the relayer's context equals the *current*
174
+ * on-chain context (both `kmsContextId` and `kmsEpochId`); otherwise throw.
175
+ * - `'loose'` → accept **any** on-chain-valid context (non-destroyed, in range),
176
+ * current or not; throw only if destroyed / out of range.
177
+ *
178
+ * ### Modes
179
+ *
180
+ * - `'exact'` — Accept only step 1 (`extraData` equality). Rejects any
181
+ * relayer/context drift without parsing or on-chain recovery.
182
+ * - `'strict'` — Accept step 1, or a relayer context whose `kmsContextId` **and**
183
+ * `kmsEpochId` equal the current on-chain values. Rejects valid-but-not-current
184
+ * contexts. The epoch check is required because RFC 005 introduces same-context
185
+ * epoch rotations (new shares, same party set) — a stale epoch must be rejected
186
+ * even when the context ID matches.
187
+ * - `'loose'` — Accept any on-chain valid context (non-destroyed, in range),
188
+ * regardless of whether it is current. Covers context rotations in either direction.
189
+ */
125
190
  export async function reconcileKmsSignersContext(context, parameters) {
126
- const { kmsVerifierAddress, protocolConfigAddress, requestedKmsSignersContext, relayerExtraData, mode } = parameters;
127
- assertIsKmsExtraData(relayerExtraData, {});
191
+ const { kmsVerifierAddress, protocolConfigAddress, requestedKmsSignersContext, relayerKmsExtraDataBytesHex, mode } = parameters;
192
+ const relayerKmsExtraData = fromKmsExtraDataBytesHex(relayerKmsExtraDataBytesHex);
128
193
  assertIsKmsSignersContext(requestedKmsSignersContext, {});
129
- const requestedExtraData = kmsSignersContextToExtraData(requestedKmsSignersContext);
194
+ const requestedKmsExtraData = createKmsExtraData({
195
+ kmsContextId: requestedKmsSignersContext.id,
196
+ kmsEpochId: requestedKmsSignersContext.epochId,
197
+ });
130
198
  // 1. Exact match — the relayer used the same context as the SDK.
131
- if (relayerExtraData === requestedExtraData) {
199
+ if (equalsKmsExtraData(relayerKmsExtraData, requestedKmsExtraData)) {
132
200
  return requestedKmsSignersContext;
133
201
  }
134
202
  if (mode === 'exact') {
135
- throw new Error(`Exact reconciliation failed: relayer extraData ${relayerExtraData} ` +
136
- `does not match requested extraData ${requestedExtraData}.`);
203
+ throw new Error(`Exact reconciliation failed: relayer extraData ${relayerKmsExtraData.toBytesHex()} ` +
204
+ `does not match requested extraData ${requestedKmsExtraData.toBytesHex()}.`);
137
205
  }
138
- // Bytes differ — extract and compare serialization versions.
139
- const relayerKmsExtraData = fromKmsExtraData(relayerExtraData);
140
- const requestedKmsExtraData = fromKmsExtraData(requestedExtraData);
141
206
  // Reject if extraData serialization version differs.
142
- if (relayerKmsExtraData.version !== requestedKmsExtraData.version) {
207
+ if (relayerKmsExtraData.version !== 0 && relayerKmsExtraData.version !== requestedKmsExtraData.version) {
143
208
  throw new Error(`ExtraData serialization version mismatch: SDK uses v${requestedKmsExtraData.version}, ` +
144
209
  `relayer returned v${relayerKmsExtraData.version}. ` +
145
210
  `The SDK and relayer must agree on the extraData encoding format.`);
@@ -151,7 +216,7 @@ export async function reconcileKmsSignersContext(context, parameters) {
151
216
  if (mode === 'strict') {
152
217
  // `readKmsSignersContext` with `forceRefresh` fetches the current context.
153
218
  // If `relayerKmsContextId` matches current, we're good.
154
- const currentContext = await readKmsSignersContext(context, {
219
+ const currentContext = await readCurrentKmsSignersContext(context, {
155
220
  kmsVerifierAddress,
156
221
  protocolConfigAddress,
157
222
  forceRefresh: true,
@@ -165,12 +230,11 @@ export async function reconcileKmsSignersContext(context, parameters) {
165
230
  // 3. Loose mode — accept any valid (non-destroyed, in-range) context.
166
231
  // `readKmsSignersContext` with `forceRefresh` + specific `kmsContextId`/`kmsEpochId` will
167
232
  // throw if the context is destroyed or out of range.
168
- return readKmsSignersContext(context, {
233
+ return readKmsSignersContextFromExtraData(context, {
169
234
  kmsVerifierAddress,
170
235
  protocolConfigAddress,
171
- kmsContextId: relayerKmsContextId,
172
- kmsEpochId: relayerKmsEpochId,
173
236
  forceRefresh: true,
237
+ extraData: relayerKmsExtraData,
174
238
  });
175
239
  }
176
240
  //# sourceMappingURL=readKmsSignersContext-p.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"readKmsSignersContext-p.js","sourceRoot":"","sources":["../../../core/host-contracts/readKmsSignersContext-p.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"readKmsSignersContext-p.js","sourceRoot":"","sources":["../../../core/host-contracts/readKmsSignersContext-p.ts"],"names":[],"mappings":"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"}
@@ -12,8 +12,35 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
12
12
  var _KmsSigncryptedSharesImpl_metadata, _KmsSigncryptedSharesImpl_shares;
13
13
  import { assertIsKmsSignersContext } from '../host-contracts/KmsSignersContext-p.js';
14
14
  import { ensure0x } from '../base/string.js';
15
- import { assertIsKmsExtraData } from './kmsExtraData.js';
16
15
  import { reconcileKmsSignersContext } from '../host-contracts/readKmsSignersContext-p.js';
16
+ import { recoverSigners } from '../utils-p/runtime/recoverSigners.js';
17
+ ////////////////////////////////////////////////////////////////////////////////
18
+ /**
19
+ * EIP-712 types for the KMS `UserDecryptResponseVerification` structure that each
20
+ * KMS node signs per response share (see gateway `Decryption.sol`).
21
+ *
22
+ * CRITICAL: field order and types are authoritative — they define the EIP-712
23
+ * type hash and must match the on-chain struct exactly.
24
+ *
25
+ * Note: `ctHandles` is declared `bytes32[]` to match `Decryption.sol` (the tkms
26
+ * WASM doc comments it as `uint256[]`; both encode the same 32 bytes, but the
27
+ * type string participates in the type hash — if verification unexpectedly
28
+ * fails, `uint256[]` is the first thing to try).
29
+ */
30
+ const kmsUserDecryptResponseEip712Types = {
31
+ EIP712Domain: [
32
+ { name: 'name', type: 'string' },
33
+ { name: 'version', type: 'string' },
34
+ { name: 'chainId', type: 'uint256' },
35
+ { name: 'verifyingContract', type: 'address' },
36
+ ],
37
+ UserDecryptResponseVerification: [
38
+ { name: 'publicKey', type: 'bytes' },
39
+ { name: 'ctHandles', type: 'bytes32[]' },
40
+ { name: 'userDecryptedShare', type: 'bytes' },
41
+ { name: 'extraData', type: 'bytes' },
42
+ ],
43
+ };
17
44
  ////////////////////////////////////////////////////////////////////////////////
18
45
  const PRIVATE_KMS_SIGNCRYPTED_SHARES_TOKEN = Symbol('KmsSigncryptedShares.token');
19
46
  const GET_METADATA_FUNC = Symbol('KmsSigncryptedShares.getMetadata');
@@ -84,6 +111,46 @@ function assertUniformExtraData(shares) {
84
111
  }
85
112
  return firstExtraData;
86
113
  }
114
+ /**
115
+ * Helper:
116
+ * Verifies the EIP-712 signature of a single KMS signcrypted share.
117
+ *
118
+ * Rebuilds the `UserDecryptResponseVerification` payload the KMS node signed,
119
+ * recovers the signer, and asserts it belongs to the reconciled KMS signers
120
+ * context. This is an independent, JS-only check — the same verification is also
121
+ * performed inside the tkms WASM during reconstruction (`verify=true`), so this
122
+ * is primarily a test/defense-in-depth pass and is not required for correctness.
123
+ *
124
+ * @throws If the signer cannot be recovered, or is not a known KMS signer.
125
+ */
126
+ export async function verifyKmsSigncryptedShare(context, parameters) {
127
+ const { share, metadata, transportPublicKey } = parameters;
128
+ // Rebuild the exact EIP-712 message each KMS node signs per response share
129
+ // (gateway Decryption.sol `UserDecryptResponseVerification`). `userDecryptedShare`
130
+ // is the serialized share bytes carried in `share.payload`.
131
+ const message = {
132
+ publicKey: transportPublicKey,
133
+ ctHandles: metadata.handles.map((h) => h.bytes32Hex),
134
+ userDecryptedShare: ensure0x(share.payload),
135
+ // v0 extraData is signed as '0x' (never '0x00').
136
+ extraData: share.extraData === '' || share.extraData === '00' ? '0x' : ensure0x(share.extraData),
137
+ };
138
+ // Recover the signer of this share. The KMS EIP-712 domain lives in `metadata`.
139
+ const [recoveredAddress] = await recoverSigners(context, {
140
+ domain: metadata.eip712Domain,
141
+ types: kmsUserDecryptResponseEip712Types,
142
+ primaryType: 'UserDecryptResponseVerification',
143
+ signatures: [ensure0x(share.signature)],
144
+ message,
145
+ });
146
+ if (recoveredAddress === undefined) {
147
+ throw new Error('Failed to recover signer from KMS signcrypted share signature.');
148
+ }
149
+ // The recovered signer must be one of the reconciled KMS signers (case-insensitive).
150
+ if (!metadata.kmsSignersContext.has(recoveredAddress)) {
151
+ throw new Error(`KMS signcrypted share signature was not signed by a known KMS signer (recovered ${recoveredAddress}).`);
152
+ }
153
+ }
87
154
  /**
88
155
  * Creates a validated {@link KmsSigncryptedShares} instance.
89
156
  *
@@ -113,13 +180,12 @@ export async function createKmsSigncryptedShares(context, parameters) {
113
180
  // Assert context first — extraData comparison depends on a valid KmsSignersContext.
114
181
  assertIsKmsSignersContext(metadata.kmsSignersContext, {});
115
182
  // Extract the common extraData from all shares and validate its format.
116
- const relayerExtraData = ensure0x(assertUniformExtraData(shares));
117
- assertIsKmsExtraData(relayerExtraData, {});
183
+ const relayerKmsExtraDataBytesHex = ensure0x(assertUniformExtraData(shares));
118
184
  // Reconcile KMS signer context using 'loose' mode.
119
185
  const reconciledKmsSignersContext = await reconcileKmsSignersContext(context, {
120
186
  kmsVerifierAddress: context.chain.fhevm.contracts.kmsVerifier.address,
121
187
  protocolConfigAddress: context.chain.fhevm.contracts.protocolConfig?.address,
122
- relayerExtraData,
188
+ relayerKmsExtraDataBytesHex,
123
189
  requestedKmsSignersContext: metadata.kmsSignersContext,
124
190
  mode: 'loose',
125
191
  });