@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,14 +1,13 @@
1
- import { asUint32BigInt, randomUniqueUints } from '../../../base/uint.js';
1
+ import { asUint32BigInt, asUint64BigInt, randomUniqueUints } from '../../../base/uint.js';
2
2
  import { getTrustedClient } from '../../../runtime/CoreFhevm-p.js';
3
3
  import { getCoprocessorSignersPrivateKeyMap } from './signers.js';
4
- /*
5
- export type FetchCoprocessorSignaturesReturnType = {
6
- readonly handles: readonly InputHandle[];
7
- readonly coprocessorEip712Signatures: readonly Bytes65Hex[];
8
- readonly extraData: BytesHex;
9
- };
10
-
11
- */
4
+ import { isForgeFhevmV1 } from './forgeFhevmV1.js';
5
+ import { createCoprocessorEip712Domain } from '../../../coprocessor/createCoprocessorEip712Domain.js';
6
+ import { coprocessorEip712PrimaryType, coprocessorEip712Types } from '../../../coprocessor/coprocessorEip712Types.js';
7
+ import { readCoprocessorSignersContext } from '../../../host-contracts/readCoprocessorSignersContext-p.js';
8
+ ////////////////////////////////////////////////////////////////////////////////
9
+ // runInputProofOnChain
10
+ ////////////////////////////////////////////////////////////////////////////////
12
11
  const inputProofAbi = [
13
12
  {
14
13
  type: 'function',
@@ -35,9 +34,7 @@ const inputProofAbi = [
35
34
  stateMutability: 'view',
36
35
  },
37
36
  ];
38
- export async function fetchCoprocessorSignatures(relayerClient, parameters) {
39
- const cleartextEthereumModule = relayerClient.runtime.ethereum;
40
- const { payload } = parameters;
37
+ async function runInputProofOnChain(relayerClient, payload) {
41
38
  const trustedClient = getTrustedClient(relayerClient);
42
39
  const res = (await relayerClient.runtime.ethereum.readContract(trustedClient, {
43
40
  abi: inputProofAbi,
@@ -53,6 +50,66 @@ export async function fetchCoprocessorSignatures(relayerClient, parameters) {
53
50
  const digest = res[0];
54
51
  const signersAddress = res[1];
55
52
  const threshold = asUint32BigInt(res[2]);
53
+ return {
54
+ digest,
55
+ signersAddress,
56
+ threshold,
57
+ };
58
+ }
59
+ ////////////////////////////////////////////////////////////////////////////////
60
+ // runInputProofOffChain
61
+ ////////////////////////////////////////////////////////////////////////////////
62
+ async function runInputProofOffChain(relayerClient, payload) {
63
+ const cleartextEthereumModule = relayerClient.runtime.ethereum;
64
+ const { zkProof } = payload;
65
+ // Read the coprocessor signer set + threshold from the InputVerifier's on-chain
66
+ // storage. In the forge-fhevm-v1 setup only the `inputProof` view is missing;
67
+ // the signers/threshold and the EIP-712 material are still readable, so we
68
+ // recompute the digest off-chain below (mirroring CleartextInputVerifier.inputProof).
69
+ const coprocessorSignersContext = await readCoprocessorSignersContext(relayerClient, {
70
+ address: relayerClient.chain.fhevm.contracts.inputVerifier.address,
71
+ });
72
+ // The 'InputVerification' domain uses the gateway chainId + gateway
73
+ // inputVerification address (same as verifyHandlesCoprocessorSignatures).
74
+ const domain = createCoprocessorEip712Domain({
75
+ gatewayChainId: relayerClient.chain.fhevm.gateway.id,
76
+ verifyingContractAddressInputVerification: relayerClient.chain.fhevm.gateway.contracts.inputVerification.address,
77
+ });
78
+ // Mirror CleartextInputVerifier.inputProof: hash the CiphertextVerification
79
+ // struct with contractChainId = block.chainid (the host chain), and extraData
80
+ // taken verbatim from the ZK proof (as the on-chain view would receive it).
81
+ const digest = cleartextEthereumModule.hashTypedData({
82
+ domain,
83
+ types: coprocessorEip712Types,
84
+ primaryType: coprocessorEip712PrimaryType,
85
+ message: {
86
+ ctHandles: zkProof.getInputHandles().map((h) => h.bytes32Hex),
87
+ userAddress: zkProof.userAddress,
88
+ contractAddress: zkProof.contractAddress,
89
+ contractChainId: asUint64BigInt(BigInt(relayerClient.chain.id)),
90
+ extraData: zkProof.getExtraData(),
91
+ },
92
+ });
93
+ return {
94
+ digest,
95
+ signersAddress: coprocessorSignersContext.signers,
96
+ threshold: asUint32BigInt(BigInt(coprocessorSignersContext.threshold)),
97
+ };
98
+ }
99
+ export async function fetchCoprocessorSignatures(relayerClient, parameters) {
100
+ const cleartextEthereumModule = relayerClient.runtime.ethereum;
101
+ const { payload } = parameters;
102
+ const offChain = await isForgeFhevmV1(relayerClient);
103
+ let res;
104
+ if (offChain) {
105
+ res = await runInputProofOffChain(relayerClient, payload);
106
+ }
107
+ else {
108
+ res = await runInputProofOnChain(relayerClient, payload);
109
+ }
110
+ const digest = res.digest;
111
+ const signersAddress = res.signersAddress;
112
+ const threshold = res.threshold;
56
113
  const signers = getCoprocessorSignersPrivateKeyMap(relayerClient);
57
114
  const randomSignersAddress = randomUniqueUints(signersAddress.length, Number(threshold)).map(
58
115
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
@@ -1 +1 @@
1
- {"version":3,"file":"fetchCoprocessorSignatures.js","sourceRoot":"","sources":["../../../../../core/modules/relayer/cleartext/fetchCoprocessorSignatures.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fetchCoprocessorSignatures.js","sourceRoot":"","sources":["../../../../../core/modules/relayer/cleartext/fetchCoprocessorSignatures.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,40 @@ import { asUint32BigInt, tryParseUintBigIntString, randomUniqueUints } from '../
3
3
  import { getTrustedClient } from '../../../runtime/CoreFhevm-p.js';
4
4
  import { userDecryptResultToKmsSigncryptedShares } from '../utils.js';
5
5
  import { getKmsSignersPrivateKeyMap } from './signers.js';
6
+ import { isForgeFhevmV1, readPlaintexts, xorMaskWithPublicKey } from './forgeFhevmV1.js';
7
+ import { readCurrentKmsSignersContext } from '../../../host-contracts/readKmsSignersContext-p.js';
8
+ ////////////////////////////////////////////////////////////////////////////////
9
+ // runDelegatedUserDecryptOffChain
10
+ ////////////////////////////////////////////////////////////////////////////////
11
+ async function runDelegatedUserDecryptOffChain(relayerClient, payload) {
12
+ const { kmsDecryptEip712Message } = payload;
13
+ const pairs = payload.handleContractPairs;
14
+ const trustedClient = getTrustedClient(relayerClient);
15
+ const rawCleartexts = await readPlaintexts(relayerClient, trustedClient, pairs.map((p) => p.handle));
16
+ const currentKmsSignersContext = await readCurrentKmsSignersContext(relayerClient, {
17
+ kmsVerifierAddress: relayerClient.chain.fhevm.contracts.kmsVerifier.address,
18
+ protocolConfigAddress: relayerClient.chain.fhevm.contracts.protocolConfig?.address,
19
+ });
20
+ const signersAddress = currentKmsSignersContext.signers;
21
+ const threshold = currentKmsSignersContext.threshold;
22
+ const maskedCleartexts = xorMaskWithPublicKey(kmsDecryptEip712Message.publicKey, rawCleartexts);
23
+ // extraData: the permit's message.extraData is already asserted equal to the
24
+ // current KmsSignersContext extraData by the caller (fetchKmsSigncryptedSharesV1
25
+ // step 9), so reusing it keeps the shares consistent with that context.
26
+ const extraData = kmsDecryptEip712Message.extraData;
27
+ const commonKmsSigncryptedSharePayload = relayerClient.runtime.ethereum.encode({
28
+ types: ['uint256[]', 'bytes'],
29
+ values: [maskedCleartexts, extraData],
30
+ });
31
+ return {
32
+ signersAddress,
33
+ threshold: BigInt(threshold),
34
+ commonKmsSigncryptedSharePayload,
35
+ extraData,
36
+ };
37
+ }
38
+ ////////////////////////////////////////////////////////////////////////////////
39
+ // runDelegatedUserDecryptOnChain
6
40
  ////////////////////////////////////////////////////////////////////////////////
7
41
  const delegatedUserDecryptAbi = [
8
42
  {
@@ -51,26 +85,9 @@ const delegatedUserDecryptAbi = [
51
85
  stateMutability: 'view',
52
86
  },
53
87
  ];
54
- ////////////////////////////////////////////////////////////////////////////////
55
- export async function fetchDelegatedUserDecrypt(relayerClient, parameters) {
56
- const cleartextEthereumModule = relayerClient.runtime.ethereum;
57
- const { payload } = parameters;
58
- const pairs = payload.handleContractPairs;
59
- const contractAddresses = payload.kmsDecryptEip712Message.contractAddresses;
60
- const authCount = contractAddresses.length;
61
- for (const { contractAddress: c } of pairs) {
62
- let authorized = false;
63
- for (let i = 0; i < authCount; ++i) {
64
- if (contractAddresses[i] == c) {
65
- authorized = true;
66
- break;
67
- }
68
- }
69
- if (!authorized) {
70
- throw new Error(`ContractAddressNotAuthorized: ${c} is not in the EIP-712 authorized contractAddresses list.`);
71
- }
72
- }
88
+ async function runDelegatedUserDecryptOnChain(relayerClient, payload) {
73
89
  const { kmsDecryptEip712Message, kmsDecryptEip712Signer, kmsDecryptEip712Signature } = payload;
90
+ const pairs = payload.handleContractPairs;
74
91
  const trustedClient = getTrustedClient(relayerClient);
75
92
  const res = (await relayerClient.runtime.ethereum.readContract(trustedClient, {
76
93
  abi: delegatedUserDecryptAbi,
@@ -91,10 +108,47 @@ export async function fetchDelegatedUserDecrypt(relayerClient, parameters) {
91
108
  functionName: delegatedUserDecryptAbi[0].name,
92
109
  }));
93
110
  const commonKmsSigncryptedSharePayload = res[0];
94
- const commonKmsSigncryptedSharePayloadNo0x = remove0x(commonKmsSigncryptedSharePayload);
95
111
  const signersAddress = res[1];
96
112
  const threshold = asUint32BigInt(res[2]);
97
113
  const extraData = res[3];
114
+ return {
115
+ commonKmsSigncryptedSharePayload,
116
+ signersAddress,
117
+ threshold,
118
+ extraData,
119
+ };
120
+ }
121
+ ////////////////////////////////////////////////////////////////////////////////
122
+ export async function fetchDelegatedUserDecrypt(relayerClient, parameters) {
123
+ const cleartextEthereumModule = relayerClient.runtime.ethereum;
124
+ const { payload } = parameters;
125
+ const pairs = payload.handleContractPairs;
126
+ const contractAddresses = payload.kmsDecryptEip712Message.contractAddresses;
127
+ const authCount = contractAddresses.length;
128
+ for (const { contractAddress: c } of pairs) {
129
+ let authorized = false;
130
+ for (let i = 0; i < authCount; ++i) {
131
+ if (contractAddresses[i] == c) {
132
+ authorized = true;
133
+ break;
134
+ }
135
+ }
136
+ if (!authorized) {
137
+ throw new Error(`ContractAddressNotAuthorized: ${c} is not in the EIP-712 authorized contractAddresses list.`);
138
+ }
139
+ }
140
+ const offChain = await isForgeFhevmV1(relayerClient);
141
+ let res;
142
+ if (offChain) {
143
+ res = await runDelegatedUserDecryptOffChain(relayerClient, payload);
144
+ }
145
+ else {
146
+ res = await runDelegatedUserDecryptOnChain(relayerClient, payload);
147
+ }
148
+ const commonKmsSigncryptedSharePayload = res.commonKmsSigncryptedSharePayload;
149
+ const extraData = res.extraData;
150
+ const threshold = res.threshold;
151
+ const signersAddress = res.signersAddress;
98
152
  const signers = getKmsSignersPrivateKeyMap(relayerClient);
99
153
  const randomSignersAddress = randomUniqueUints(signersAddress.length, Number(threshold)).map(
100
154
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
@@ -106,7 +160,7 @@ export async function fetchDelegatedUserDecrypt(relayerClient, parameters) {
106
160
  throw new Error(`Unable to find KMS signer for address ${signerAddress}`);
107
161
  }
108
162
  const signature = await cleartextEthereumModule.sign({ hash: commonKmsSigncryptedSharePayload, privateKey });
109
- result.push({ signature: remove0x(signature), payload: commonKmsSigncryptedSharePayloadNo0x, extraData });
163
+ result.push({ signature: remove0x(signature), payload: remove0x(commonKmsSigncryptedSharePayload), extraData });
110
164
  }
111
165
  return userDecryptResultToKmsSigncryptedShares(result);
112
166
  }
@@ -118,4 +172,4 @@ function _parseUintBigIntString(label, value) {
118
172
  }
119
173
  return bn;
120
174
  }
121
- //# sourceMappingURL=fetchDelegatedUserDecrypt.js.map
175
+ //# sourceMappingURL=fetchDelegatedUserDecryptV1.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetchDelegatedUserDecryptV1.js","sourceRoot":"","sources":["../../../../../core/modules/relayer/cleartext/fetchDelegatedUserDecryptV1.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,9 @@
1
1
  import { getTrustedClient } from '../../../runtime/CoreFhevm-p.js';
2
2
  import { getKmsSignersPrivateKeyMap } from './signers.js';
3
+ import { encodeTypedCleartexts, isForgeFhevmV1, readPlaintexts } from './forgeFhevmV1.js';
4
+ import { createKmsEip712Domain } from '../../../kms/createKmsEip712Domain.js';
5
+ import { readCurrentKmsSignersContext } from '../../../host-contracts/readKmsSignersContext-p.js';
6
+ import { kmsPublicDecryptEip712Types } from '../../../kms/kmsPublicDecryptEip712Types.js';
3
7
  ////////////////////////////////////////////////////////////////////////////////
4
8
  const publicDecryptAbi = [
5
9
  {
@@ -21,17 +25,86 @@ const publicDecryptAbi = [
21
25
  },
22
26
  ];
23
27
  ////////////////////////////////////////////////////////////////////////////////
24
- export async function fetchPublicDecrypt(relayerClient, parameters) {
28
+ async function runPublicDecryptOffChain(relayerClient, payload) {
25
29
  const cleartextEthereumModule = relayerClient.runtime.ethereum;
30
+ const { orderedHandles } = payload;
31
+ // Option B: read cleartexts from CleartextFHEVMExecutor.plaintexts and rebuild
32
+ // the public-decrypt result off-chain instead of reading the CleartextKMSVerifier
33
+ // view. ACL `isAllowedForDecryption` gating is enforced by the caller
34
+ // (publicDecrypt step 4, checkAllowedForDecryption).
35
+ const trustedClient = getTrustedClient(relayerClient);
36
+ const cleartexts = await readPlaintexts(relayerClient, trustedClient, orderedHandles);
37
+ const orderedAbiEncodedClearValues = encodeTypedCleartexts(cleartextEthereumModule, orderedHandles, cleartexts);
38
+ // The caller passes the requested extraData (= current KmsSignersContext
39
+ // extraData). Reuse it verbatim so the returned extraData reconciles exactly
40
+ // (publicDecrypt step 6) and the signed digest matches the verifier's.
41
+ const extraData = payload.extraData;
42
+ ////////////////////////////////////////////////////////////////////////////
43
+ // Warning!!!! Do not sign over '0x00' — only '0x' is permitted (matches
44
+ // verifyKmsPublicDecryptEip712 / createPublicDecryptionProof).
45
+ ////////////////////////////////////////////////////////////////////////////
46
+ const signedExtraData = extraData === '0x00' ? '0x' : extraData;
47
+ // A 'PublicDecryptVerification' domain uses the gateway chainId.
48
+ const domain = createKmsEip712Domain({
49
+ chainId: relayerClient.chain.fhevm.gateway.id,
50
+ verifyingContractAddressDecryption: relayerClient.chain.fhevm.gateway.contracts.decryption.address,
51
+ });
52
+ const currentKmsSignersContext = await readCurrentKmsSignersContext(relayerClient, {
53
+ kmsVerifierAddress: relayerClient.chain.fhevm.contracts.kmsVerifier.address,
54
+ protocolConfigAddress: relayerClient.chain.fhevm.contracts.protocolConfig?.address,
55
+ });
56
+ const digest = cleartextEthereumModule.hashTypedData({
57
+ domain,
58
+ types: kmsPublicDecryptEip712Types,
59
+ primaryType: 'PublicDecryptVerification',
60
+ message: {
61
+ ctHandles: orderedHandles.map((h) => h.bytes32Hex),
62
+ decryptedResult: orderedAbiEncodedClearValues,
63
+ extraData: signedExtraData,
64
+ },
65
+ });
66
+ return {
67
+ orderedAbiEncodedClearValues,
68
+ digest,
69
+ signersAddress: currentKmsSignersContext.signers,
70
+ extraData,
71
+ };
72
+ }
73
+ ////////////////////////////////////////////////////////////////////////////////
74
+ // runPublicDecryptOnChain
75
+ ////////////////////////////////////////////////////////////////////////////////
76
+ async function runPublicDecryptOnChain(relayerClient, payload) {
26
77
  const trustedClient = getTrustedClient(relayerClient);
27
78
  const res = (await relayerClient.runtime.ethereum.readContract(trustedClient, {
28
79
  abi: publicDecryptAbi,
29
80
  address: relayerClient.chain.fhevm.contracts.kmsVerifier.address,
30
- args: [parameters.payload.orderedHandles.map((h) => h.bytes32Hex)],
81
+ args: [payload.orderedHandles.map((h) => h.bytes32Hex)],
31
82
  functionName: publicDecryptAbi[0].name,
32
83
  }));
84
+ const orderedAbiEncodedClearValues = res[0];
33
85
  const digest = res[1];
34
86
  const signersAddress = res[2];
87
+ const extraData = res[4];
88
+ return {
89
+ orderedAbiEncodedClearValues,
90
+ digest,
91
+ signersAddress,
92
+ extraData,
93
+ };
94
+ }
95
+ ////////////////////////////////////////////////////////////////////////////////
96
+ export async function fetchPublicDecrypt(relayerClient, parameters) {
97
+ const cleartextEthereumModule = relayerClient.runtime.ethereum;
98
+ const offChain = await isForgeFhevmV1(relayerClient);
99
+ let res;
100
+ if (offChain) {
101
+ res = await runPublicDecryptOffChain(relayerClient, parameters.payload);
102
+ }
103
+ else {
104
+ res = await runPublicDecryptOnChain(relayerClient, parameters.payload);
105
+ }
106
+ const digest = res.digest;
107
+ const signersAddress = res.signersAddress;
35
108
  const signers = getKmsSignersPrivateKeyMap(relayerClient);
36
109
  const kmsPublicDecryptEip712Signatures = [];
37
110
  for (let i = 0; i < signersAddress.length; ++i) {
@@ -44,9 +117,9 @@ export async function fetchPublicDecrypt(relayerClient, parameters) {
44
117
  kmsPublicDecryptEip712Signatures.push(signature);
45
118
  }
46
119
  return {
47
- orderedAbiEncodedClearValues: res[0],
120
+ orderedAbiEncodedClearValues: res.orderedAbiEncodedClearValues,
48
121
  kmsPublicDecryptEip712Signatures,
49
- extraData: res[4],
122
+ extraData: res.extraData,
50
123
  };
51
124
  }
52
125
  //# sourceMappingURL=fetchPublicDecrypt.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fetchPublicDecrypt.js","sourceRoot":"","sources":["../../../../../core/modules/relayer/cleartext/fetchPublicDecrypt.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAE1D,gFAAgF;AAEhF,MAAM,gBAAgB,GAAG;IACvB;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,eAAe;QACrB,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC;QAC3E,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,sBAAsB;gBAC5B,IAAI,EAAE,OAAO;gBACb,YAAY,EAAE,OAAO;aACtB;YACD,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE;YAC5D,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE;YACjE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE;YAC/D,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE;SAC5D;QACD,eAAe,EAAE,MAAM;KACxB;CACO,CAAC;AAEX,gFAAgF;AAEhF,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,aAAuC,EACvC,UAAwC;IAExC,MAAM,uBAAuB,GAAG,aAAa,CAAC,OAAO,CAAC,QAAmC,CAAC;IAE1F,MAAM,aAAa,GAAG,gBAAgB,CAAC,aAAa,CAAC,CAAC;IACtD,MAAM,GAAG,GAAG,CAAC,MAAM,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,aAAa,EAAE;QAC5E,GAAG,EAAE,gBAAgB;QACrB,OAAO,EAAE,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,OAA6B;QACtF,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QAClE,YAAY,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAI;KACvC,CAAC,CAAc,CAAC;IAEjB,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,CAAe,CAAC;IACpC,MAAM,cAAc,GAAG,GAAG,CAAC,CAAC,CAAkC,CAAC;IAC/D,MAAM,OAAO,GAAG,0BAA0B,CAAC,aAAa,CAAC,CAAC;IAE1D,MAAM,gCAAgC,GAAiB,EAAE,CAAC;IAE1D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;QAC/C,oEAAoE;QACpE,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAE,CAAC,CAAC;QACnD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC/C,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,uBAAuB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;QACnF,gCAAgC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACnD,CAAC;IAED,OAAO;QACL,4BAA4B,EAAE,GAAG,CAAC,CAAC,CAAa;QAChD,gCAAgC;QAChC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAa;KAC9B,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"fetchPublicDecrypt.js","sourceRoot":"","sources":["../../../../../core/modules/relayer/cleartext/fetchPublicDecrypt.ts"],"names":[],"mappings":"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"}
@@ -1,119 +1,18 @@
1
- import { remove0x } from '../../../base/string.js';
2
- import { asUint32BigInt, tryParseUintBigIntString, randomUniqueUints } from '../../../base/uint.js';
3
- import { getTrustedClient } from '../../../runtime/CoreFhevm-p.js';
4
- import { userDecryptResultToKmsSigncryptedShares } from '../utils.js';
5
- import { getKmsSignersPrivateKeyMap } from './signers.js';
6
- ////////////////////////////////////////////////////////////////////////////////
7
- const userDecryptAbi = [
8
- {
9
- type: 'function',
10
- name: 'userDecrypt',
11
- inputs: [
12
- {
13
- name: 'pairs',
14
- type: 'tuple[]',
15
- internalType: 'struct HandleContractPair[]',
16
- components: [
17
- { name: 'handle', type: 'bytes32', internalType: 'bytes32' },
18
- {
19
- name: 'contractAddress',
20
- type: 'address',
21
- internalType: 'address',
22
- },
23
- ],
24
- },
25
- { name: 'userAddress', type: 'address', internalType: 'address' },
26
- { name: 'publicKey', type: 'bytes', internalType: 'bytes' },
27
- {
28
- name: 'contractAddresses',
29
- type: 'address[]',
30
- internalType: 'address[]',
31
- },
32
- {
33
- name: 'startTimestamp',
34
- type: 'uint256',
35
- internalType: 'uint256',
36
- },
37
- {
38
- name: 'durationDays',
39
- type: 'uint256',
40
- internalType: 'uint256',
41
- },
42
- { name: 'userSignature', type: 'bytes', internalType: 'bytes' },
43
- ],
44
- outputs: [
45
- { name: 'payload', type: 'bytes', internalType: 'bytes' },
46
- { name: 'signers', type: 'address[]', internalType: 'address[]' },
47
- { name: 'threshold', type: 'uint256', internalType: 'uint256' },
48
- { name: 'extraData', type: 'bytes', internalType: 'bytes' },
49
- ],
50
- stateMutability: 'view',
51
- },
52
- ];
53
- ////////////////////////////////////////////////////////////////////////////////
1
+ import { getResolvedProtocolVersion } from '../../../runtime/CoreFhevm-p.js';
2
+ import { isSemverStrictlyBefore } from '../../../base/semver.js';
3
+ import { fetchUserDecryptV1 } from './fetchUserDecryptV1.js';
4
+ import { fetchUserDecryptV2 } from './fetchUserDecryptV2.js';
5
+ //////////////////////////////////////////////////////////////////////////////
6
+ // fetchUserDecrypt
7
+ //////////////////////////////////////////////////////////////////////////////
54
8
  export async function fetchUserDecrypt(relayerClient, parameters) {
55
- const cleartextEthereumModule = relayerClient.runtime.ethereum;
56
- const { payload } = parameters;
57
- const pairs = payload.handleContractPairs;
58
- const contractAddresses = payload.kmsDecryptEip712Message.contractAddresses;
59
- const authCount = contractAddresses.length;
60
- for (const { contractAddress: c } of pairs) {
61
- let authorized = false;
62
- for (let i = 0; i < authCount; ++i) {
63
- if (contractAddresses[i] == c) {
64
- authorized = true;
65
- break;
66
- }
67
- }
68
- if (!authorized) {
69
- throw new Error(`ContractAddressNotAuthorized: ${c} is not in the EIP-712 authorized contractAddresses list.`);
70
- }
9
+ const protocolVersion = getResolvedProtocolVersion(relayerClient);
10
+ if (protocolVersion === undefined) {
11
+ throw new Error('Unable to resolve protocol version from context, ensure proper initialization of the FhevmRuntime and FhevmChain.');
71
12
  }
72
- const { kmsDecryptEip712Message, kmsDecryptEip712Signer, kmsDecryptEip712Signature } = payload;
73
- const trustedClient = getTrustedClient(relayerClient);
74
- const res = (await relayerClient.runtime.ethereum.readContract(trustedClient, {
75
- abi: userDecryptAbi,
76
- address: relayerClient.chain.fhevm.contracts.kmsVerifier.address,
77
- args: [
78
- pairs.map((p) => ({
79
- handle: p.handle.bytes32Hex,
80
- contractAddress: p.contractAddress,
81
- })),
82
- kmsDecryptEip712Signer,
83
- kmsDecryptEip712Message.publicKey,
84
- kmsDecryptEip712Message.contractAddresses,
85
- _parseUintBigIntString('kmsDecryptEip712Message.startTimestamp', kmsDecryptEip712Message.startTimestamp),
86
- _parseUintBigIntString('kmsDecryptEip712Message.durationDays', kmsDecryptEip712Message.durationDays),
87
- kmsDecryptEip712Signature,
88
- ],
89
- functionName: userDecryptAbi[0].name,
90
- }));
91
- const commonKmsSigncryptedSharePayload = res[0];
92
- const commonKmsSigncryptedSharePayloadNo0x = remove0x(commonKmsSigncryptedSharePayload);
93
- const signersAddress = res[1];
94
- const threshold = asUint32BigInt(res[2]);
95
- const extraData = res[3];
96
- const signers = getKmsSignersPrivateKeyMap(relayerClient);
97
- const randomSignersAddress = randomUniqueUints(signersAddress.length, Number(threshold)).map(
98
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
99
- (i) => signersAddress[i]);
100
- const result = [];
101
- for (const signerAddress of randomSignersAddress) {
102
- const privateKey = signers.get(signerAddress);
103
- if (privateKey === undefined) {
104
- throw new Error(`Unable to find KMS signer for address ${signerAddress}`);
105
- }
106
- const signature = await cleartextEthereumModule.sign({ hash: commonKmsSigncryptedSharePayload, privateKey });
107
- result.push({ signature: remove0x(signature), payload: commonKmsSigncryptedSharePayloadNo0x, extraData });
13
+ if (isSemverStrictlyBefore(protocolVersion.version, '0.14.0')) {
14
+ return await fetchUserDecryptV1(relayerClient, parameters);
108
15
  }
109
- return userDecryptResultToKmsSigncryptedShares(result);
110
- }
111
- ////////////////////////////////////////////////////////////////////////////////
112
- function _parseUintBigIntString(label, value) {
113
- const bn = tryParseUintBigIntString(value);
114
- if (bn === undefined) {
115
- throw new Error(`${label} is not a valid uint string, got ${JSON.stringify(value)}`);
116
- }
117
- return bn;
16
+ return await fetchUserDecryptV2(relayerClient, parameters);
118
17
  }
119
18
  //# sourceMappingURL=fetchUserDecrypt.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fetchUserDecrypt.js","sourceRoot":"","sources":["../../../../../core/modules/relayer/cleartext/fetchUserDecrypt.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fetchUserDecrypt.js","sourceRoot":"","sources":["../../../../../core/modules/relayer/cleartext/fetchUserDecrypt.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,8EAA8E;AAC9E,mBAAmB;AACnB,8EAA8E;AAE9E,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,aAAuC,EACvC,UAAsC;IAEtC,MAAM,eAAe,GAAG,0BAA0B,CAAC,aAAa,CAAC,CAAC;IAClE,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CACb,mHAAmH,CACpH,CAAC;IACJ,CAAC;IAED,IAAI,sBAAsB,CAAC,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC;QAC9D,OAAO,MAAM,kBAAkB,CAAC,aAAa,EAAE,UAA0C,CAAC,CAAC;IAC7F,CAAC;IAED,OAAO,MAAM,kBAAkB,CAAC,aAAa,EAAE,UAA0C,CAAC,CAAC;AAC7F,CAAC"}