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

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 (487) hide show
  1. package/_cjs/core/_version.js +1 -1
  2. package/_cjs/core/actions/base/index.js +1 -17
  3. package/_cjs/core/actions/base/index.js.map +1 -1
  4. package/_cjs/core/actions/base/signDecryptionPermit.js +0 -3
  5. package/_cjs/core/actions/base/signDecryptionPermit.js.map +1 -1
  6. package/_cjs/core/actions/chain/index.js +1 -13
  7. package/_cjs/core/actions/chain/index.js.map +1 -1
  8. package/_cjs/core/actions/chain/parseSignedDecryptionPermit.js.map +1 -1
  9. package/_cjs/core/actions/chain/serializeSignedDecryptionPermit.js.map +1 -1
  10. package/_cjs/core/actions/decrypt/canDecryptValue.js.map +1 -1
  11. package/_cjs/core/actions/decrypt/canDecryptValues.js.map +1 -1
  12. package/_cjs/core/actions/decrypt/canDecryptValuesFromPairs.js.map +1 -1
  13. package/_cjs/core/actions/decrypt/decryptValue.js +1 -0
  14. package/_cjs/core/actions/decrypt/decryptValue.js.map +1 -1
  15. package/_cjs/core/actions/decrypt/decryptValues.js +2 -0
  16. package/_cjs/core/actions/decrypt/decryptValues.js.map +1 -1
  17. package/_cjs/core/actions/decrypt/decryptValuesFromPairs.js +2 -0
  18. package/_cjs/core/actions/decrypt/decryptValuesFromPairs.js.map +1 -1
  19. package/_cjs/core/actions/decrypt/index.js +1 -3
  20. package/_cjs/core/actions/decrypt/index.js.map +1 -1
  21. package/_cjs/core/actions/host/index.js +1 -9
  22. package/_cjs/core/actions/host/index.js.map +1 -1
  23. package/_cjs/core/base/cachedFetch.js +2 -1
  24. package/_cjs/core/base/cachedFetch.js.map +1 -1
  25. package/_cjs/core/base/uint.js +7 -0
  26. package/_cjs/core/base/uint.js.map +1 -1
  27. package/_cjs/core/clients/decorators/base.js +1 -1
  28. package/_cjs/core/clients/decorators/base.js.map +1 -1
  29. package/_cjs/core/host-contracts/canDecryptValuesFromPairs.js +4 -1
  30. package/_cjs/core/host-contracts/canDecryptValuesFromPairs.js.map +1 -1
  31. package/_cjs/core/host-contracts/getCoprocessorContextSignersAndThreshold-p.js +1 -1
  32. package/_cjs/core/host-contracts/getCoprocessorContextSignersAndThreshold-p.js.map +1 -1
  33. package/_cjs/core/host-contracts/getCurrentKmsContextAndEpoch-p.js +1 -1
  34. package/_cjs/core/host-contracts/getCurrentKmsContextAndEpoch-p.js.map +1 -1
  35. package/_cjs/core/host-contracts/getCurrentKmsContextId-p.js +1 -1
  36. package/_cjs/core/host-contracts/getCurrentKmsContextId-p.js.map +1 -1
  37. package/_cjs/core/host-contracts/getKmsContextSignersAndThreshold-p.js +1 -1
  38. package/_cjs/core/host-contracts/getKmsContextSignersAndThreshold-p.js.map +1 -1
  39. package/_cjs/core/kms/PublicDecryptionProof-p.js +4 -4
  40. package/_cjs/core/kms/SignedDecryptionPermit-p.js +33 -199
  41. package/_cjs/core/kms/SignedDecryptionPermit-p.js.map +1 -1
  42. package/_cjs/core/kms/SignedDecryptionPermitV1-p.js +217 -0
  43. package/_cjs/core/kms/SignedDecryptionPermitV1-p.js.map +1 -0
  44. package/_cjs/core/kms/SignedDecryptionPermitV2-p.js +184 -0
  45. package/_cjs/core/kms/SignedDecryptionPermitV2-p.js.map +1 -0
  46. package/_cjs/core/kms/{createKmsDelegatedUserDecryptEip712.js → createKmsDelegatedUserDecryptEip712V1.js} +9 -9
  47. package/_cjs/core/kms/createKmsDelegatedUserDecryptEip712V1.js.map +1 -0
  48. package/_cjs/core/kms/{createKmsUserDecryptEip712.js → createKmsUserDecryptEip712V1.js} +16 -16
  49. package/_cjs/core/kms/createKmsUserDecryptEip712V1.js.map +1 -0
  50. package/_cjs/core/kms/decryptValuesFromPairs.js +18 -2
  51. package/_cjs/core/kms/decryptValuesFromPairs.js.map +1 -1
  52. package/_cjs/core/kms/{fetchKmsSigncryptedShares-p.js → fetchKmsSigncryptedSharesV1-p.js} +18 -8
  53. package/_cjs/core/kms/fetchKmsSigncryptedSharesV1-p.js.map +1 -0
  54. package/_cjs/core/kms/fetchKmsSigncryptedSharesV2-p.js +95 -0
  55. package/_cjs/core/kms/fetchKmsSigncryptedSharesV2-p.js.map +1 -0
  56. package/_cjs/core/kms/{kmsDelegatedUserDecryptEip712Types.js → kmsDelegatedUserDecryptEip712V1Types.js} +8 -8
  57. package/_cjs/core/kms/kmsDelegatedUserDecryptEip712V1Types.js.map +1 -0
  58. package/_cjs/core/kms/{kmsUserDecryptEip712Types.js → kmsUserDecryptEip712V1Types.js} +8 -8
  59. package/_cjs/core/kms/kmsUserDecryptEip712V1Types.js.map +1 -0
  60. package/_cjs/core/kms/kmsUserDecryptEip712V2Types.js.map +1 -1
  61. package/_cjs/core/kms/publicDecrypt.js +2 -2
  62. package/_cjs/core/kms/utils.js +0 -19
  63. package/_cjs/core/kms/utils.js.map +1 -1
  64. package/_cjs/core/kms/verifyKmsPublicDecryptEip712-p.js +1 -1
  65. package/_cjs/core/modules/decrypt/module/api-p.js +5 -5
  66. package/_cjs/core/modules/decrypt/module/init-p.js +6 -7
  67. package/_cjs/core/modules/decrypt/module/init-p.js.map +1 -1
  68. package/_cjs/core/modules/encrypt/module/init-p.js +12 -11
  69. package/_cjs/core/modules/encrypt/module/init-p.js.map +1 -1
  70. package/_cjs/core/modules/relayer/cleartext/fetchPublicDecrypt.js +3 -3
  71. package/_cjs/core/modules/relayer/cleartext/fetchUserDecrypt.js.map +1 -1
  72. package/_cjs/core/modules/relayer/module/{fetchDelegatedUserDecrypt.js → fetchDelegatedUserDecryptV1.js} +1 -1
  73. package/_cjs/core/modules/relayer/module/fetchDelegatedUserDecryptV1.js.map +1 -0
  74. package/_cjs/core/modules/relayer/module/fetchPublicDecrypt.js +1 -1
  75. package/_cjs/core/modules/relayer/module/fetchUserDecrypt.js +11 -45
  76. package/_cjs/core/modules/relayer/module/fetchUserDecrypt.js.map +1 -1
  77. package/_cjs/core/modules/relayer/module/fetchUserDecryptV1.js +52 -0
  78. package/_cjs/core/modules/relayer/module/fetchUserDecryptV1.js.map +1 -0
  79. package/_cjs/core/modules/relayer/module/fetchUserDecryptV2.js +54 -0
  80. package/_cjs/core/modules/relayer/module/fetchUserDecryptV2.js.map +1 -0
  81. package/_cjs/core/modules/relayer/module/guards/RelayerResponseFailed.js +10 -2
  82. package/_cjs/core/modules/relayer/module/guards/RelayerResponseFailed.js.map +1 -1
  83. package/_cjs/core/modules/relayer/module/guards/api-errors/RelayerApiError400NoDetails.js +5 -2
  84. package/_cjs/core/modules/relayer/module/guards/api-errors/RelayerApiError400NoDetails.js.map +1 -1
  85. package/_cjs/core/modules/relayer/module/guards/api-errors/RelayerApiError503.js +2 -0
  86. package/_cjs/core/modules/relayer/module/guards/api-errors/RelayerApiError503.js.map +1 -1
  87. package/_cjs/core/modules/relayer/module/index.js +2 -2
  88. package/_cjs/core/modules/relayer/module/index.js.map +1 -1
  89. package/_cjs/core/runtime/HyperWasmSolver-p.js +1 -6
  90. package/_cjs/core/runtime/HyperWasmSolver-p.js.map +1 -1
  91. package/_cjs/core/utils-p/decrypt/{verifyKmsDelegatedUserDecryptEip712.js → verifyKmsDelegatedUserDecryptEip712V1.js} +5 -5
  92. package/_cjs/core/utils-p/decrypt/verifyKmsDelegatedUserDecryptEip712V1.js.map +1 -0
  93. package/_cjs/core/utils-p/decrypt/{verifyKmsUserDecryptEip712.js → verifyKmsUserDecryptEip712V1.js} +5 -5
  94. package/_cjs/core/utils-p/decrypt/verifyKmsUserDecryptEip712V1.js.map +1 -0
  95. package/_cjs/core/utils-p/decrypt/verifyKmsUserDecryptEip712V2.js +30 -0
  96. package/_cjs/core/utils-p/decrypt/verifyKmsUserDecryptEip712V2.js.map +1 -0
  97. package/_cjs/wasm/tfhe/loadTfheLib.js.map +1 -1
  98. package/_cjs/wasm/tkms/loadKmsLib.js.map +1 -1
  99. package/_esm/core/_version.js +1 -1
  100. package/_esm/core/actions/base/index.js +0 -8
  101. package/_esm/core/actions/base/index.js.map +1 -1
  102. package/_esm/core/actions/base/signDecryptionPermit.js +0 -6
  103. package/_esm/core/actions/base/signDecryptionPermit.js.map +1 -1
  104. package/_esm/core/actions/chain/index.js +0 -6
  105. package/_esm/core/actions/chain/index.js.map +1 -1
  106. package/_esm/core/actions/chain/parseSignedDecryptionPermit.js.map +1 -1
  107. package/_esm/core/actions/chain/serializeSignedDecryptionPermit.js.map +1 -1
  108. package/_esm/core/actions/decrypt/canDecryptValue.js +40 -0
  109. package/_esm/core/actions/decrypt/canDecryptValue.js.map +1 -1
  110. package/_esm/core/actions/decrypt/canDecryptValues.js +1 -0
  111. package/_esm/core/actions/decrypt/canDecryptValues.js.map +1 -1
  112. package/_esm/core/actions/decrypt/canDecryptValuesFromPairs.js +1 -0
  113. package/_esm/core/actions/decrypt/canDecryptValuesFromPairs.js.map +1 -1
  114. package/_esm/core/actions/decrypt/decryptValue.js +1 -0
  115. package/_esm/core/actions/decrypt/decryptValue.js.map +1 -1
  116. package/_esm/core/actions/decrypt/decryptValues.js +2 -0
  117. package/_esm/core/actions/decrypt/decryptValues.js.map +1 -1
  118. package/_esm/core/actions/decrypt/decryptValuesFromPairs.js +2 -0
  119. package/_esm/core/actions/decrypt/decryptValuesFromPairs.js.map +1 -1
  120. package/_esm/core/actions/decrypt/index.js +0 -1
  121. package/_esm/core/actions/decrypt/index.js.map +1 -1
  122. package/_esm/core/actions/host/index.js +0 -4
  123. package/_esm/core/actions/host/index.js.map +1 -1
  124. package/_esm/core/base/cachedFetch.js +1 -0
  125. package/_esm/core/base/cachedFetch.js.map +1 -1
  126. package/_esm/core/base/uint.js +7 -0
  127. package/_esm/core/base/uint.js.map +1 -1
  128. package/_esm/core/clients/decorators/base.js +2 -4
  129. package/_esm/core/clients/decorators/base.js.map +1 -1
  130. package/_esm/core/coprocessor/coprocessorEip712Types.js +2 -2
  131. package/_esm/core/host-contracts/canDecryptValuesFromPairs.js +5 -2
  132. package/_esm/core/host-contracts/canDecryptValuesFromPairs.js.map +1 -1
  133. package/_esm/core/host-contracts/getCoprocessorContextSignersAndThreshold-p.js +2 -2
  134. package/_esm/core/host-contracts/getCoprocessorContextSignersAndThreshold-p.js.map +1 -1
  135. package/_esm/core/host-contracts/getCurrentKmsContextAndEpoch-p.js +2 -2
  136. package/_esm/core/host-contracts/getCurrentKmsContextAndEpoch-p.js.map +1 -1
  137. package/_esm/core/host-contracts/getCurrentKmsContextId-p.js +2 -2
  138. package/_esm/core/host-contracts/getCurrentKmsContextId-p.js.map +1 -1
  139. package/_esm/core/host-contracts/getKmsContextSignersAndThreshold-p.js +2 -2
  140. package/_esm/core/host-contracts/getKmsContextSignersAndThreshold-p.js.map +1 -1
  141. package/_esm/core/kms/PublicDecryptionProof-p.js +4 -4
  142. package/_esm/core/kms/SignedDecryptionPermit-p.js +48 -245
  143. package/_esm/core/kms/SignedDecryptionPermit-p.js.map +1 -1
  144. package/_esm/core/kms/SignedDecryptionPermitV1-p.js +258 -0
  145. package/_esm/core/kms/SignedDecryptionPermitV1-p.js.map +1 -0
  146. package/_esm/core/kms/SignedDecryptionPermitV2-p.js +204 -0
  147. package/_esm/core/kms/SignedDecryptionPermitV2-p.js.map +1 -0
  148. package/_esm/core/kms/{createKmsDelegatedUserDecryptEip712.js → createKmsDelegatedUserDecryptEip712V1.js} +8 -8
  149. package/_esm/core/kms/createKmsDelegatedUserDecryptEip712V1.js.map +1 -0
  150. package/_esm/core/kms/createKmsPublicDecryptEip712.js +1 -1
  151. package/_esm/core/kms/{createKmsUserDecryptEip712.js → createKmsUserDecryptEip712V1.js} +16 -16
  152. package/_esm/core/kms/createKmsUserDecryptEip712V1.js.map +1 -0
  153. package/_esm/core/kms/decryptValuesFromPairs.js +18 -2
  154. package/_esm/core/kms/decryptValuesFromPairs.js.map +1 -1
  155. package/_esm/core/kms/{fetchKmsSigncryptedShares-p.js → fetchKmsSigncryptedSharesV1-p.js} +23 -13
  156. package/_esm/core/kms/fetchKmsSigncryptedSharesV1-p.js.map +1 -0
  157. package/_esm/core/kms/fetchKmsSigncryptedSharesV2-p.js +119 -0
  158. package/_esm/core/kms/fetchKmsSigncryptedSharesV2-p.js.map +1 -0
  159. package/_esm/core/kms/{kmsDelegatedUserDecryptEip712Types.js → kmsDelegatedUserDecryptEip712V1Types.js} +9 -8
  160. package/_esm/core/kms/kmsDelegatedUserDecryptEip712V1Types.js.map +1 -0
  161. package/_esm/core/kms/kmsPublicDecryptEip712Types.js +1 -1
  162. package/_esm/core/kms/{kmsUserDecryptEip712Types.js → kmsUserDecryptEip712V1Types.js} +9 -8
  163. package/_esm/core/kms/kmsUserDecryptEip712V1Types.js.map +1 -0
  164. package/_esm/core/kms/kmsUserDecryptEip712V2Types.js +2 -1
  165. package/_esm/core/kms/kmsUserDecryptEip712V2Types.js.map +1 -1
  166. package/_esm/core/kms/publicDecrypt.js +2 -2
  167. package/_esm/core/kms/utils.js +0 -18
  168. package/_esm/core/kms/utils.js.map +1 -1
  169. package/_esm/core/kms/verifyKmsPublicDecryptEip712-p.js +2 -2
  170. package/_esm/core/modules/decrypt/module/api-p.js +6 -6
  171. package/_esm/core/modules/decrypt/module/init-p.js +7 -7
  172. package/_esm/core/modules/decrypt/module/init-p.js.map +1 -1
  173. package/_esm/core/modules/encrypt/module/init-p.js +13 -11
  174. package/_esm/core/modules/encrypt/module/init-p.js.map +1 -1
  175. package/_esm/core/modules/relayer/cleartext/fetchPublicDecrypt.js +3 -3
  176. package/_esm/core/modules/relayer/cleartext/fetchUserDecrypt.js.map +1 -1
  177. package/_esm/core/modules/relayer/module/{fetchDelegatedUserDecrypt.js → fetchDelegatedUserDecryptV1.js} +1 -1
  178. package/_esm/core/modules/relayer/module/fetchDelegatedUserDecryptV1.js.map +1 -0
  179. package/_esm/core/modules/relayer/module/fetchPublicDecrypt.js +1 -1
  180. package/_esm/core/modules/relayer/module/fetchUserDecrypt.js +11 -46
  181. package/_esm/core/modules/relayer/module/fetchUserDecrypt.js.map +1 -1
  182. package/_esm/core/modules/relayer/module/fetchUserDecryptV1.js +53 -0
  183. package/_esm/core/modules/relayer/module/fetchUserDecryptV1.js.map +1 -0
  184. package/_esm/core/modules/relayer/module/fetchUserDecryptV2.js +56 -0
  185. package/_esm/core/modules/relayer/module/fetchUserDecryptV2.js.map +1 -0
  186. package/_esm/core/modules/relayer/module/guards/RelayerResponseFailed.js +10 -2
  187. package/_esm/core/modules/relayer/module/guards/RelayerResponseFailed.js.map +1 -1
  188. package/_esm/core/modules/relayer/module/guards/api-errors/RelayerApiError400NoDetails.js +6 -3
  189. package/_esm/core/modules/relayer/module/guards/api-errors/RelayerApiError400NoDetails.js.map +1 -1
  190. package/_esm/core/modules/relayer/module/guards/api-errors/RelayerApiError503.js +2 -0
  191. package/_esm/core/modules/relayer/module/guards/api-errors/RelayerApiError503.js.map +1 -1
  192. package/_esm/core/modules/relayer/module/index.js +1 -1
  193. package/_esm/core/modules/relayer/module/index.js.map +1 -1
  194. package/_esm/core/runtime/HyperWasmSolver-p.js +1 -6
  195. package/_esm/core/runtime/HyperWasmSolver-p.js.map +1 -1
  196. package/_esm/core/utils-p/decrypt/{verifyKmsDelegatedUserDecryptEip712.js → verifyKmsDelegatedUserDecryptEip712V1.js} +5 -5
  197. package/_esm/core/utils-p/decrypt/verifyKmsDelegatedUserDecryptEip712V1.js.map +1 -0
  198. package/_esm/core/utils-p/decrypt/{verifyKmsUserDecryptEip712.js → verifyKmsUserDecryptEip712V1.js} +5 -5
  199. package/_esm/core/utils-p/decrypt/verifyKmsUserDecryptEip712V1.js.map +1 -0
  200. package/_esm/core/utils-p/decrypt/verifyKmsUserDecryptEip712V2.js +27 -0
  201. package/_esm/core/utils-p/decrypt/verifyKmsUserDecryptEip712V2.js.map +1 -0
  202. package/_types/core/actions/base/index.d.ts +0 -8
  203. package/_types/core/actions/base/index.d.ts.map +1 -1
  204. package/_types/core/actions/base/signDecryptionPermit.d.ts +4 -5
  205. package/_types/core/actions/base/signDecryptionPermit.d.ts.map +1 -1
  206. package/_types/core/actions/chain/index.d.ts +1 -7
  207. package/_types/core/actions/chain/index.d.ts.map +1 -1
  208. package/_types/core/actions/chain/parseSignedDecryptionPermit.d.ts +1 -0
  209. package/_types/core/actions/chain/parseSignedDecryptionPermit.d.ts.map +1 -1
  210. package/_types/core/actions/chain/serializeSignedDecryptionPermit.d.ts +3 -2
  211. package/_types/core/actions/chain/serializeSignedDecryptionPermit.d.ts.map +1 -1
  212. package/_types/core/actions/decrypt/canDecryptValue.d.ts +3 -4
  213. package/_types/core/actions/decrypt/canDecryptValue.d.ts.map +1 -1
  214. package/_types/core/actions/decrypt/canDecryptValues.d.ts +3 -4
  215. package/_types/core/actions/decrypt/canDecryptValues.d.ts.map +1 -1
  216. package/_types/core/actions/decrypt/canDecryptValuesFromPairs.d.ts +3 -4
  217. package/_types/core/actions/decrypt/canDecryptValuesFromPairs.d.ts.map +1 -1
  218. package/_types/core/actions/decrypt/decryptValue.d.ts.map +1 -1
  219. package/_types/core/actions/decrypt/decryptValues.d.ts.map +1 -1
  220. package/_types/core/actions/decrypt/decryptValuesFromPairs.d.ts.map +1 -1
  221. package/_types/core/actions/decrypt/index.d.ts +0 -1
  222. package/_types/core/actions/decrypt/index.d.ts.map +1 -1
  223. package/_types/core/actions/host/index.d.ts +0 -4
  224. package/_types/core/actions/host/index.d.ts.map +1 -1
  225. package/_types/core/base/cachedFetch.d.ts +1 -0
  226. package/_types/core/base/cachedFetch.d.ts.map +1 -1
  227. package/_types/core/base/uint.d.ts +2 -1
  228. package/_types/core/base/uint.d.ts.map +1 -1
  229. package/_types/core/clients/decorators/base.d.ts +12 -23
  230. package/_types/core/clients/decorators/base.d.ts.map +1 -1
  231. package/_types/core/host-contracts/canDecryptValuesFromPairs.d.ts +2 -2
  232. package/_types/core/host-contracts/canDecryptValuesFromPairs.d.ts.map +1 -1
  233. package/_types/core/kms/PublicDecryptionProof-p.d.ts +1 -1
  234. package/_types/core/kms/SignedDecryptionPermit-p.d.ts +15 -29
  235. package/_types/core/kms/SignedDecryptionPermit-p.d.ts.map +1 -1
  236. package/_types/core/kms/SignedDecryptionPermitV1-p.d.ts +7 -0
  237. package/_types/core/kms/SignedDecryptionPermitV1-p.d.ts.map +1 -0
  238. package/_types/core/kms/SignedDecryptionPermitV2-p.d.ts +7 -0
  239. package/_types/core/kms/SignedDecryptionPermitV2-p.d.ts.map +1 -0
  240. package/_types/core/kms/createKmsDelegatedUserDecryptEip712V1.d.ts +15 -0
  241. package/_types/core/kms/createKmsDelegatedUserDecryptEip712V1.d.ts.map +1 -0
  242. package/_types/core/kms/createKmsUserDecryptEip712V1.d.ts +26 -0
  243. package/_types/core/kms/createKmsUserDecryptEip712V1.d.ts.map +1 -0
  244. package/_types/core/kms/createKmsUserDecryptEip712V2.d.ts +1 -1
  245. package/_types/core/kms/createKmsUserDecryptEip712V2.d.ts.map +1 -1
  246. package/_types/core/kms/decryptValuesFromPairs.d.ts +4 -11
  247. package/_types/core/kms/decryptValuesFromPairs.d.ts.map +1 -1
  248. package/_types/core/kms/{fetchKmsSigncryptedShares-p.d.ts → fetchKmsSigncryptedSharesV1-p.d.ts} +10 -12
  249. package/_types/core/kms/fetchKmsSigncryptedSharesV1-p.d.ts.map +1 -0
  250. package/_types/core/kms/fetchKmsSigncryptedSharesV2-p.d.ts +28 -0
  251. package/_types/core/kms/fetchKmsSigncryptedSharesV2-p.d.ts.map +1 -0
  252. package/_types/core/kms/kmsDelegatedUserDecryptEip712V1Types.d.ts +3 -0
  253. package/_types/core/kms/kmsDelegatedUserDecryptEip712V1Types.d.ts.map +1 -0
  254. package/_types/core/kms/kmsUserDecryptEip712V1Types.d.ts +3 -0
  255. package/_types/core/kms/kmsUserDecryptEip712V1Types.d.ts.map +1 -0
  256. package/_types/core/kms/kmsUserDecryptEip712V2Types.d.ts.map +1 -1
  257. package/_types/core/kms/utils.d.ts +0 -4
  258. package/_types/core/kms/utils.d.ts.map +1 -1
  259. package/_types/core/kms/verifyKmsPublicDecryptEip712-p.d.ts +1 -1
  260. package/_types/core/modules/encrypt/module/init-p.d.ts.map +1 -1
  261. package/_types/core/modules/relayer/cleartext/fetchUserDecrypt.d.ts +2 -2
  262. package/_types/core/modules/relayer/cleartext/fetchUserDecrypt.d.ts.map +1 -1
  263. package/_types/core/modules/relayer/module/{fetchDelegatedUserDecrypt.d.ts → fetchDelegatedUserDecryptV1.d.ts} +1 -1
  264. package/_types/core/modules/relayer/module/fetchDelegatedUserDecryptV1.d.ts.map +1 -0
  265. package/_types/core/modules/relayer/module/fetchUserDecrypt.d.ts.map +1 -1
  266. package/_types/core/modules/relayer/module/fetchUserDecryptV1.d.ts +3 -0
  267. package/_types/core/modules/relayer/module/fetchUserDecryptV1.d.ts.map +1 -0
  268. package/_types/core/modules/relayer/module/fetchUserDecryptV2.d.ts +3 -0
  269. package/_types/core/modules/relayer/module/fetchUserDecryptV2.d.ts.map +1 -0
  270. package/_types/core/modules/relayer/module/guards/RelayerResponseFailed.d.ts.map +1 -1
  271. package/_types/core/modules/relayer/module/guards/api-errors/RelayerApiError400NoDetails.d.ts +1 -1
  272. package/_types/core/modules/relayer/module/guards/api-errors/RelayerApiError400NoDetails.d.ts.map +1 -1
  273. package/_types/core/modules/relayer/module/guards/api-errors/RelayerApiError503.d.ts.map +1 -1
  274. package/_types/core/modules/relayer/types.d.ts +18 -5
  275. package/_types/core/modules/relayer/types.d.ts.map +1 -1
  276. package/_types/core/types/kms.d.ts +18 -19
  277. package/_types/core/types/kms.d.ts.map +1 -1
  278. package/_types/core/types/logger.d.ts +3 -3
  279. package/_types/core/types/logger.d.ts.map +1 -1
  280. package/_types/core/types/record-p.d.ts +2 -1
  281. package/_types/core/types/record-p.d.ts.map +1 -1
  282. package/_types/core/types/relayer-p.d.ts +27 -5
  283. package/_types/core/types/relayer-p.d.ts.map +1 -1
  284. package/_types/core/types/signedDecryptionPermit.d.ts +37 -26
  285. package/_types/core/types/signedDecryptionPermit.d.ts.map +1 -1
  286. package/_types/core/utils-p/decrypt/verifyKmsDelegatedUserDecryptEip712V1.d.ts +14 -0
  287. package/_types/core/utils-p/decrypt/verifyKmsDelegatedUserDecryptEip712V1.d.ts.map +1 -0
  288. package/_types/core/utils-p/decrypt/verifyKmsUserDecryptEip712V1.d.ts +14 -0
  289. package/_types/core/utils-p/decrypt/verifyKmsUserDecryptEip712V1.d.ts.map +1 -0
  290. package/_types/core/utils-p/decrypt/verifyKmsUserDecryptEip712V2.d.ts +14 -0
  291. package/_types/core/utils-p/decrypt/verifyKmsUserDecryptEip712V2.d.ts.map +1 -0
  292. package/_types/core/utils-p/runtime/recoverSigners.d.ts +2 -2
  293. package/core/_version.ts +1 -1
  294. package/core/actions/base/index.ts +0 -42
  295. package/core/actions/base/signDecryptionPermit.ts +3 -31
  296. package/core/actions/chain/index.ts +0 -28
  297. package/core/actions/chain/parseSignedDecryptionPermit.ts +1 -0
  298. package/core/actions/chain/serializeSignedDecryptionPermit.ts +3 -2
  299. package/core/actions/decrypt/canDecryptValue.ts +2 -16
  300. package/core/actions/decrypt/canDecryptValues.ts +2 -16
  301. package/core/actions/decrypt/canDecryptValuesFromPairs.ts +2 -16
  302. package/core/actions/decrypt/decryptValue.ts +2 -1
  303. package/core/actions/decrypt/decryptValues.ts +3 -1
  304. package/core/actions/decrypt/decryptValuesFromPairs.ts +3 -1
  305. package/core/actions/decrypt/index.ts +0 -6
  306. package/core/actions/host/index.ts +0 -20
  307. package/core/base/cachedFetch.ts +1 -0
  308. package/core/base/uint.ts +18 -1
  309. package/core/clients/decorators/base.ts +13 -37
  310. package/core/coprocessor/coprocessorEip712Types.ts +2 -2
  311. package/core/host-contracts/canDecryptValuesFromPairs.ts +7 -7
  312. package/core/host-contracts/getCoprocessorContextSignersAndThreshold-p.ts +2 -2
  313. package/core/host-contracts/getCurrentKmsContextAndEpoch-p.ts +2 -2
  314. package/core/host-contracts/getCurrentKmsContextId-p.ts +2 -2
  315. package/core/host-contracts/getKmsContextSignersAndThreshold-p.ts +2 -2
  316. package/core/kms/PublicDecryptionProof-p.ts +5 -5
  317. package/core/kms/SignedDecryptionPermit-p.ts +67 -357
  318. package/core/kms/SignedDecryptionPermitV1-p.ts +350 -0
  319. package/core/kms/SignedDecryptionPermitV2-p.ts +292 -0
  320. package/core/kms/{createKmsDelegatedUserDecryptEip712.ts → createKmsDelegatedUserDecryptEip712V1.ts} +16 -16
  321. package/core/kms/createKmsPublicDecryptEip712.ts +1 -1
  322. package/core/kms/{createKmsUserDecryptEip712.ts → createKmsUserDecryptEip712V1.ts} +26 -24
  323. package/core/kms/createKmsUserDecryptEip712V2.ts +1 -1
  324. package/core/kms/decryptValuesFromPairs.ts +34 -22
  325. package/core/kms/{fetchKmsSigncryptedShares-p.ts → fetchKmsSigncryptedSharesV1-p.ts} +35 -30
  326. package/core/kms/fetchKmsSigncryptedSharesV2-p.ts +176 -0
  327. package/core/kms/{kmsDelegatedUserDecryptEip712Types.ts → kmsDelegatedUserDecryptEip712V1Types.ts} +9 -8
  328. package/core/kms/kmsPublicDecryptEip712Types.ts +1 -1
  329. package/core/kms/{kmsUserDecryptEip712Types.ts → kmsUserDecryptEip712V1Types.ts} +9 -8
  330. package/core/kms/kmsUserDecryptEip712V2Types.ts +2 -1
  331. package/core/kms/publicDecrypt.ts +2 -2
  332. package/core/kms/utils.ts +0 -32
  333. package/core/kms/verifyKmsPublicDecryptEip712-p.ts +3 -3
  334. package/core/modules/decrypt/module/api-p.ts +8 -8
  335. package/core/modules/decrypt/module/init-p.ts +7 -7
  336. package/core/modules/encrypt/module/init-p.ts +16 -11
  337. package/core/modules/relayer/cleartext/fetchPublicDecrypt.ts +3 -3
  338. package/core/modules/relayer/cleartext/fetchUserDecrypt.ts +2 -2
  339. package/core/modules/relayer/module/fetchPublicDecrypt.ts +1 -1
  340. package/core/modules/relayer/module/fetchUserDecrypt.ts +20 -56
  341. package/core/modules/relayer/module/fetchUserDecryptV1.ts +69 -0
  342. package/core/modules/relayer/module/fetchUserDecryptV2.ts +71 -0
  343. package/core/modules/relayer/module/guards/RelayerResponseFailed.ts +10 -2
  344. package/core/modules/relayer/module/guards/api-errors/RelayerApiError400NoDetails.ts +6 -3
  345. package/core/modules/relayer/module/guards/api-errors/RelayerApiError503.ts +2 -0
  346. package/core/modules/relayer/module/index.ts +1 -1
  347. package/core/modules/relayer/types.ts +24 -5
  348. package/core/runtime/HyperWasmSolver-p.ts +1 -5
  349. package/core/types/kms.ts +40 -28
  350. package/core/types/logger.ts +3 -3
  351. package/core/types/record-p.ts +2 -1
  352. package/core/types/relayer-p.ts +48 -5
  353. package/core/types/signedDecryptionPermit.ts +47 -26
  354. package/core/utils-p/decrypt/{verifyKmsDelegatedUserDecryptEip712.ts → verifyKmsDelegatedUserDecryptEip712V1.ts} +9 -9
  355. package/core/utils-p/decrypt/{verifyKmsUserDecryptEip712.ts → verifyKmsUserDecryptEip712V1.ts} +9 -9
  356. package/core/utils-p/decrypt/verifyKmsUserDecryptEip712V2.ts +43 -0
  357. package/core/utils-p/runtime/recoverSigners.ts +2 -2
  358. package/package.json +1 -1
  359. package/_cjs/core/actions/base/createVerifiedInputProofFromRawBytes.js +0 -10
  360. package/_cjs/core/actions/base/createVerifiedInputProofFromRawBytes.js.map +0 -1
  361. package/_cjs/core/actions/base/fetchKmsSigncryptedShares.js +0 -19
  362. package/_cjs/core/actions/base/fetchKmsSigncryptedShares.js.map +0 -1
  363. package/_cjs/core/actions/base/fetchVerifiedInputProof.js +0 -11
  364. package/_cjs/core/actions/base/fetchVerifiedInputProof.js.map +0 -1
  365. package/_cjs/core/actions/base/readKmsSignersContext.js +0 -11
  366. package/_cjs/core/actions/base/readKmsSignersContext.js.map +0 -1
  367. package/_cjs/core/actions/base/verifyHandlesCoprocessorSignatures.js +0 -31
  368. package/_cjs/core/actions/base/verifyHandlesCoprocessorSignatures.js.map +0 -1
  369. package/_cjs/core/actions/base/verifyInputProof.js +0 -24
  370. package/_cjs/core/actions/base/verifyInputProof.js.map +0 -1
  371. package/_cjs/core/actions/base/verifyZkProofCoprocessorSignatures.js +0 -17
  372. package/_cjs/core/actions/base/verifyZkProofCoprocessorSignatures.js.map +0 -1
  373. package/_cjs/core/actions/chain/createCoprocessorEip712Domain.js +0 -11
  374. package/_cjs/core/actions/chain/createCoprocessorEip712Domain.js.map +0 -1
  375. package/_cjs/core/actions/chain/createKmsDelegatedUserDecryptEip712.js +0 -17
  376. package/_cjs/core/actions/chain/createKmsDelegatedUserDecryptEip712.js.map +0 -1
  377. package/_cjs/core/actions/chain/createKmsEip712Domain.js +0 -11
  378. package/_cjs/core/actions/chain/createKmsEip712Domain.js.map +0 -1
  379. package/_cjs/core/actions/chain/createKmsUserDecryptEip712.js +0 -16
  380. package/_cjs/core/actions/chain/createKmsUserDecryptEip712.js.map +0 -1
  381. package/_cjs/core/actions/chain/verifyKmsDelegatedUserDecryptEip712.js +0 -8
  382. package/_cjs/core/actions/chain/verifyKmsDelegatedUserDecryptEip712.js.map +0 -1
  383. package/_cjs/core/actions/chain/verifyKmsUserDecryptEip712.js +0 -8
  384. package/_cjs/core/actions/chain/verifyKmsUserDecryptEip712.js.map +0 -1
  385. package/_cjs/core/actions/decrypt/decryptKmsSigncryptedShares.js +0 -13
  386. package/_cjs/core/actions/decrypt/decryptKmsSigncryptedShares.js.map +0 -1
  387. package/_cjs/core/kms/createKmsDelegatedUserDecryptEip712.js.map +0 -1
  388. package/_cjs/core/kms/createKmsUserDecryptEip712.js.map +0 -1
  389. package/_cjs/core/kms/fetchKmsSigncryptedShares-p.js.map +0 -1
  390. package/_cjs/core/kms/kmsDelegatedUserDecryptEip712Types.js.map +0 -1
  391. package/_cjs/core/kms/kmsUserDecryptEip712Types.js.map +0 -1
  392. package/_cjs/core/modules/relayer/module/fetchDelegatedUserDecrypt.js.map +0 -1
  393. package/_cjs/core/utils-p/decrypt/verifyKmsDelegatedUserDecryptEip712.js.map +0 -1
  394. package/_cjs/core/utils-p/decrypt/verifyKmsUserDecryptEip712.js.map +0 -1
  395. package/_esm/core/actions/base/createVerifiedInputProofFromRawBytes.js +0 -7
  396. package/_esm/core/actions/base/createVerifiedInputProofFromRawBytes.js.map +0 -1
  397. package/_esm/core/actions/base/fetchKmsSigncryptedShares.js +0 -17
  398. package/_esm/core/actions/base/fetchKmsSigncryptedShares.js.map +0 -1
  399. package/_esm/core/actions/base/fetchVerifiedInputProof.js +0 -8
  400. package/_esm/core/actions/base/fetchVerifiedInputProof.js.map +0 -1
  401. package/_esm/core/actions/base/readKmsSignersContext.js +0 -10
  402. package/_esm/core/actions/base/readKmsSignersContext.js.map +0 -1
  403. package/_esm/core/actions/base/verifyHandlesCoprocessorSignatures.js +0 -35
  404. package/_esm/core/actions/base/verifyHandlesCoprocessorSignatures.js.map +0 -1
  405. package/_esm/core/actions/base/verifyInputProof.js +0 -22
  406. package/_esm/core/actions/base/verifyInputProof.js.map +0 -1
  407. package/_esm/core/actions/base/verifyZkProofCoprocessorSignatures.js +0 -14
  408. package/_esm/core/actions/base/verifyZkProofCoprocessorSignatures.js.map +0 -1
  409. package/_esm/core/actions/chain/createCoprocessorEip712Domain.js +0 -8
  410. package/_esm/core/actions/chain/createCoprocessorEip712Domain.js.map +0 -1
  411. package/_esm/core/actions/chain/createKmsDelegatedUserDecryptEip712.js +0 -15
  412. package/_esm/core/actions/chain/createKmsDelegatedUserDecryptEip712.js.map +0 -1
  413. package/_esm/core/actions/chain/createKmsEip712Domain.js +0 -8
  414. package/_esm/core/actions/chain/createKmsEip712Domain.js.map +0 -1
  415. package/_esm/core/actions/chain/createKmsUserDecryptEip712.js +0 -14
  416. package/_esm/core/actions/chain/createKmsUserDecryptEip712.js.map +0 -1
  417. package/_esm/core/actions/chain/verifyKmsDelegatedUserDecryptEip712.js +0 -5
  418. package/_esm/core/actions/chain/verifyKmsDelegatedUserDecryptEip712.js.map +0 -1
  419. package/_esm/core/actions/chain/verifyKmsUserDecryptEip712.js +0 -5
  420. package/_esm/core/actions/chain/verifyKmsUserDecryptEip712.js.map +0 -1
  421. package/_esm/core/actions/decrypt/decryptKmsSigncryptedShares.js +0 -11
  422. package/_esm/core/actions/decrypt/decryptKmsSigncryptedShares.js.map +0 -1
  423. package/_esm/core/kms/createKmsDelegatedUserDecryptEip712.js.map +0 -1
  424. package/_esm/core/kms/createKmsUserDecryptEip712.js.map +0 -1
  425. package/_esm/core/kms/fetchKmsSigncryptedShares-p.js.map +0 -1
  426. package/_esm/core/kms/kmsDelegatedUserDecryptEip712Types.js.map +0 -1
  427. package/_esm/core/kms/kmsUserDecryptEip712Types.js.map +0 -1
  428. package/_esm/core/modules/relayer/module/fetchDelegatedUserDecrypt.js.map +0 -1
  429. package/_esm/core/utils-p/decrypt/verifyKmsDelegatedUserDecryptEip712.js.map +0 -1
  430. package/_esm/core/utils-p/decrypt/verifyKmsUserDecryptEip712.js.map +0 -1
  431. package/_types/core/actions/base/createVerifiedInputProofFromRawBytes.d.ts +0 -14
  432. package/_types/core/actions/base/createVerifiedInputProofFromRawBytes.d.ts.map +0 -1
  433. package/_types/core/actions/base/fetchKmsSigncryptedShares.d.ts +0 -41
  434. package/_types/core/actions/base/fetchKmsSigncryptedShares.d.ts.map +0 -1
  435. package/_types/core/actions/base/fetchVerifiedInputProof.d.ts +0 -14
  436. package/_types/core/actions/base/fetchVerifiedInputProof.d.ts.map +0 -1
  437. package/_types/core/actions/base/readKmsSignersContext.d.ts +0 -6
  438. package/_types/core/actions/base/readKmsSignersContext.d.ts.map +0 -1
  439. package/_types/core/actions/base/verifyHandlesCoprocessorSignatures.d.ts +0 -14
  440. package/_types/core/actions/base/verifyHandlesCoprocessorSignatures.d.ts.map +0 -1
  441. package/_types/core/actions/base/verifyInputProof.d.ts +0 -14
  442. package/_types/core/actions/base/verifyInputProof.d.ts.map +0 -1
  443. package/_types/core/actions/base/verifyZkProofCoprocessorSignatures.d.ts +0 -11
  444. package/_types/core/actions/base/verifyZkProofCoprocessorSignatures.d.ts.map +0 -1
  445. package/_types/core/actions/chain/createCoprocessorEip712Domain.d.ts +0 -7
  446. package/_types/core/actions/chain/createCoprocessorEip712Domain.d.ts.map +0 -1
  447. package/_types/core/actions/chain/createKmsDelegatedUserDecryptEip712.d.ts +0 -15
  448. package/_types/core/actions/chain/createKmsDelegatedUserDecryptEip712.d.ts.map +0 -1
  449. package/_types/core/actions/chain/createKmsEip712Domain.d.ts +0 -7
  450. package/_types/core/actions/chain/createKmsEip712Domain.d.ts.map +0 -1
  451. package/_types/core/actions/chain/createKmsUserDecryptEip712.d.ts +0 -14
  452. package/_types/core/actions/chain/createKmsUserDecryptEip712.d.ts.map +0 -1
  453. package/_types/core/actions/chain/verifyKmsDelegatedUserDecryptEip712.d.ts +0 -7
  454. package/_types/core/actions/chain/verifyKmsDelegatedUserDecryptEip712.d.ts.map +0 -1
  455. package/_types/core/actions/chain/verifyKmsUserDecryptEip712.d.ts +0 -7
  456. package/_types/core/actions/chain/verifyKmsUserDecryptEip712.d.ts.map +0 -1
  457. package/_types/core/actions/decrypt/decryptKmsSigncryptedShares.d.ts +0 -13
  458. package/_types/core/actions/decrypt/decryptKmsSigncryptedShares.d.ts.map +0 -1
  459. package/_types/core/kms/createKmsDelegatedUserDecryptEip712.d.ts +0 -15
  460. package/_types/core/kms/createKmsDelegatedUserDecryptEip712.d.ts.map +0 -1
  461. package/_types/core/kms/createKmsUserDecryptEip712.d.ts +0 -26
  462. package/_types/core/kms/createKmsUserDecryptEip712.d.ts.map +0 -1
  463. package/_types/core/kms/fetchKmsSigncryptedShares-p.d.ts.map +0 -1
  464. package/_types/core/kms/kmsDelegatedUserDecryptEip712Types.d.ts +0 -3
  465. package/_types/core/kms/kmsDelegatedUserDecryptEip712Types.d.ts.map +0 -1
  466. package/_types/core/kms/kmsUserDecryptEip712Types.d.ts +0 -3
  467. package/_types/core/kms/kmsUserDecryptEip712Types.d.ts.map +0 -1
  468. package/_types/core/modules/relayer/module/fetchDelegatedUserDecrypt.d.ts.map +0 -1
  469. package/_types/core/utils-p/decrypt/verifyKmsDelegatedUserDecryptEip712.d.ts +0 -14
  470. package/_types/core/utils-p/decrypt/verifyKmsDelegatedUserDecryptEip712.d.ts.map +0 -1
  471. package/_types/core/utils-p/decrypt/verifyKmsUserDecryptEip712.d.ts +0 -14
  472. package/_types/core/utils-p/decrypt/verifyKmsUserDecryptEip712.d.ts.map +0 -1
  473. package/core/actions/base/createVerifiedInputProofFromRawBytes.ts +0 -24
  474. package/core/actions/base/fetchKmsSigncryptedShares.ts +0 -83
  475. package/core/actions/base/fetchVerifiedInputProof.ts +0 -25
  476. package/core/actions/base/readKmsSignersContext.ts +0 -20
  477. package/core/actions/base/verifyHandlesCoprocessorSignatures.ts +0 -60
  478. package/core/actions/base/verifyInputProof.ts +0 -45
  479. package/core/actions/base/verifyZkProofCoprocessorSignatures.ts +0 -32
  480. package/core/actions/chain/createCoprocessorEip712Domain.ts +0 -16
  481. package/core/actions/chain/createKmsDelegatedUserDecryptEip712.ts +0 -36
  482. package/core/actions/chain/createKmsEip712Domain.ts +0 -16
  483. package/core/actions/chain/createKmsUserDecryptEip712.ts +0 -34
  484. package/core/actions/chain/verifyKmsDelegatedUserDecryptEip712.ts +0 -16
  485. package/core/actions/chain/verifyKmsUserDecryptEip712.ts +0 -16
  486. package/core/actions/decrypt/decryptKmsSigncryptedShares.ts +0 -34
  487. /package/core/modules/relayer/module/{fetchDelegatedUserDecrypt.ts → fetchDelegatedUserDecryptV1.ts} +0 -0
@@ -1,10 +1,11 @@
1
- import type { KmsDelegateUserDecryptEip712Types } from '../types/kms.js';
1
+ import type { KmsDelegatedUserDecryptEip712V1Types } from '../types/kms.js';
2
2
 
3
3
  ////////////////////////////////////////////////////////////////////////////////
4
- // KmsDelegateUserDecryptEIP712Types
4
+ // KmsDelegatedUserDecryptEip712V1Types
5
5
  ////////////////////////////////////////////////////////////////////////////////
6
6
 
7
- export const kmsDelegatedUserDecryptEip712Types: KmsDelegateUserDecryptEip712Types = {
7
+ // Careful: do not change any fields in this structure
8
+ export const kmsDelegatedUserDecryptEip712V1Types: KmsDelegatedUserDecryptEip712V1Types = {
8
9
  EIP712Domain: [
9
10
  { name: 'name', type: 'string' },
10
11
  { name: 'version', type: 'string' },
@@ -24,8 +25,8 @@ export const kmsDelegatedUserDecryptEip712Types: KmsDelegateUserDecryptEip712Typ
24
25
  ] as const,
25
26
  } as const;
26
27
 
27
- Object.freeze(kmsDelegatedUserDecryptEip712Types);
28
- Object.freeze(kmsDelegatedUserDecryptEip712Types.EIP712Domain);
29
- Object.freeze(kmsDelegatedUserDecryptEip712Types.DelegatedUserDecryptRequestVerification);
30
- kmsDelegatedUserDecryptEip712Types.EIP712Domain.forEach(Object.freeze);
31
- kmsDelegatedUserDecryptEip712Types.DelegatedUserDecryptRequestVerification.forEach(Object.freeze);
28
+ Object.freeze(kmsDelegatedUserDecryptEip712V1Types);
29
+ Object.freeze(kmsDelegatedUserDecryptEip712V1Types.EIP712Domain);
30
+ Object.freeze(kmsDelegatedUserDecryptEip712V1Types.DelegatedUserDecryptRequestVerification);
31
+ kmsDelegatedUserDecryptEip712V1Types.EIP712Domain.forEach(Object.freeze);
32
+ kmsDelegatedUserDecryptEip712V1Types.DelegatedUserDecryptRequestVerification.forEach(Object.freeze);
@@ -1,7 +1,7 @@
1
1
  import type { KmsPublicDecryptEip712Types } from '../types/kms.js';
2
2
 
3
3
  ////////////////////////////////////////////////////////////////////////////////
4
- // KmsPublicDecryptEIP712Types
4
+ // KmsPublicDecryptEip712Types
5
5
  ////////////////////////////////////////////////////////////////////////////////
6
6
 
7
7
  export const kmsPublicDecryptEip712Types: KmsPublicDecryptEip712Types = {
@@ -1,10 +1,11 @@
1
- import type { KmsUserDecryptEip712Types } from '../types/kms.js';
1
+ import type { KmsUserDecryptEip712V1Types } from '../types/kms.js';
2
2
 
3
3
  ////////////////////////////////////////////////////////////////////////////////
4
- // KmsUserDecryptEIP712Types
4
+ // KmsUserDecryptEip712V1Types
5
5
  ////////////////////////////////////////////////////////////////////////////////
6
6
 
7
- export const kmsUserDecryptEip712Types: KmsUserDecryptEip712Types = {
7
+ // Careful: do not change any fields in this structure
8
+ export const kmsUserDecryptEip712V1Types: KmsUserDecryptEip712V1Types = {
8
9
  EIP712Domain: [
9
10
  { name: 'name', type: 'string' },
10
11
  { name: 'version', type: 'string' },
@@ -23,8 +24,8 @@ export const kmsUserDecryptEip712Types: KmsUserDecryptEip712Types = {
23
24
  ] as const,
24
25
  } as const;
25
26
 
26
- Object.freeze(kmsUserDecryptEip712Types);
27
- Object.freeze(kmsUserDecryptEip712Types.EIP712Domain);
28
- Object.freeze(kmsUserDecryptEip712Types.UserDecryptRequestVerification);
29
- kmsUserDecryptEip712Types.EIP712Domain.forEach(Object.freeze);
30
- kmsUserDecryptEip712Types.UserDecryptRequestVerification.forEach(Object.freeze);
27
+ Object.freeze(kmsUserDecryptEip712V1Types);
28
+ Object.freeze(kmsUserDecryptEip712V1Types.EIP712Domain);
29
+ Object.freeze(kmsUserDecryptEip712V1Types.UserDecryptRequestVerification);
30
+ kmsUserDecryptEip712V1Types.EIP712Domain.forEach(Object.freeze);
31
+ kmsUserDecryptEip712V1Types.UserDecryptRequestVerification.forEach(Object.freeze);
@@ -1,9 +1,10 @@
1
1
  import type { KmsUserDecryptEip712V2Types } from '../types/kms.js';
2
2
 
3
3
  ////////////////////////////////////////////////////////////////////////////////
4
- // KmsUserDecryptEIP712V2Types (RFC-016)
4
+ // KmsUserDecryptEip712V2Types (RFC-016)
5
5
  ////////////////////////////////////////////////////////////////////////////////
6
6
 
7
+ // Careful: do not change any fields in this structure
7
8
  export const kmsUserDecryptEip712V2Types: KmsUserDecryptEip712V2Types = {
8
9
  EIP712Domain: [
9
10
  { name: 'name', type: 'string' },
@@ -73,7 +73,7 @@ export async function publicDecrypt(context: Context, parameters: Parameters): P
73
73
  // 5. Call relayer
74
74
  const {
75
75
  orderedAbiEncodedClearValues,
76
- kmsPublicDecryptEIP712Signatures,
76
+ kmsPublicDecryptEip712Signatures,
77
77
  extraData: relayerExtraData,
78
78
  } = await context.runtime.relayer.fetchPublicDecrypt(context, {
79
79
  payload: {
@@ -97,7 +97,7 @@ export async function publicDecrypt(context: Context, parameters: Parameters): P
97
97
  originToken,
98
98
  orderedHandles: orderedHandles,
99
99
  orderedAbiEncodedClearValues,
100
- kmsPublicDecryptEIP712Signatures,
100
+ kmsPublicDecryptEip712Signatures,
101
101
  kmsSignersContext: reconciledKmsSignersContext,
102
102
  });
103
103
 
package/core/kms/utils.ts CHANGED
@@ -26,35 +26,3 @@ export function assertKmsDecryptionBitLimit(handles: readonly Handle[]): UintNum
26
26
 
27
27
  return total as UintNumber;
28
28
  }
29
-
30
- export function assertKmsEIP712DeadlineValidity(
31
- {
32
- startTimestamp,
33
- durationDays,
34
- }: {
35
- startTimestamp: bigint | number | string;
36
- durationDays: bigint | number | string;
37
- },
38
- maxDurationDays: UintNumber,
39
- ): void {
40
- if (durationDays === 0) {
41
- throw Error('durationDays is zero');
42
- }
43
-
44
- const durationDaysBigInt = BigInt(durationDays);
45
- if (durationDaysBigInt > BigInt(maxDurationDays)) {
46
- throw Error(`durationDays is above max duration of ${maxDurationDays}`);
47
- }
48
-
49
- const startTimestampBigInt = BigInt(startTimestamp);
50
-
51
- const currentTimestamp = BigInt(Math.floor(Date.now() / 1000));
52
- if (startTimestampBigInt > currentTimestamp) {
53
- throw Error('startTimestamp is set in the future');
54
- }
55
-
56
- const durationInSeconds = durationDaysBigInt * BigInt(24 * 60 * 60);
57
- if (startTimestampBigInt + durationInSeconds < currentTimestamp) {
58
- throw Error('request has expired');
59
- }
60
- }
@@ -19,7 +19,7 @@ type Context = {
19
19
  type Parameters = {
20
20
  readonly orderedHandles: readonly Handle[];
21
21
  readonly orderedAbiEncodedClearValues: BytesHex;
22
- readonly kmsPublicDecryptEIP712Signatures: readonly Bytes65Hex[];
22
+ readonly kmsPublicDecryptEip712Signatures: readonly Bytes65Hex[];
23
23
  readonly kmsSignersContext: KmsSignersContext;
24
24
  };
25
25
 
@@ -28,7 +28,7 @@ type Parameters = {
28
28
  export async function verifyKmsPublicDecryptEip712(context: Context, parameters: Parameters): Promise<void> {
29
29
  const { kmsSignersContext, orderedHandles: orderedEncryptedValues, orderedAbiEncodedClearValues } = parameters;
30
30
 
31
- // TODO: use createKmsPublicDecryptEIP712 instead!
31
+ // TODO: use createKmsPublicDecryptEip712 instead!
32
32
 
33
33
  const extraData: BytesHex = kmsSignersContextToExtraData(kmsSignersContext);
34
34
 
@@ -66,7 +66,7 @@ export async function verifyKmsPublicDecryptEip712(context: Context, parameters:
66
66
  domain,
67
67
  types: kmsPublicDecryptEip712Types,
68
68
  primaryType: 'PublicDecryptVerification',
69
- signatures: parameters.kmsPublicDecryptEIP712Signatures,
69
+ signatures: parameters.kmsPublicDecryptEip712Signatures,
70
70
  message,
71
71
  });
72
72
 
@@ -76,7 +76,7 @@ type TypedPlaintextWasmType = TypedPlaintext & {
76
76
  readonly [__TypedPlaintextWasm]: never;
77
77
  };
78
78
 
79
- type KmsEIP712DomainWasmType = Readonly<
79
+ type KmsEip712DomainWasmType = Readonly<
80
80
  Omit<KmsEip712Domain, 'chainId' | 'verifyingContract'> & {
81
81
  readonly chain_id: Uint8Array;
82
82
  readonly verifying_contract: ChecksummedAddress;
@@ -297,16 +297,16 @@ export async function decryptAndReconstruct(
297
297
  kmsLib,
298
298
  );
299
299
 
300
- // KmsEIP712Domain
301
- const kmsEIP712Domain: KmsEip712Domain = metadata.eip712Domain;
300
+ // KmsEip712Domain
301
+ const kmsEip712Domain: KmsEip712Domain = metadata.eip712Domain;
302
302
  const clientAddress: ChecksummedAddress = metadata.eip712SignerAddress;
303
303
 
304
304
  // To be modified! use uint64ToBytes32 instead
305
- const eip712DomainWasmArg: KmsEIP712DomainWasmType = {
306
- name: kmsEIP712Domain.name,
307
- version: kmsEIP712Domain.version,
308
- chain_id: uint32ToBytes32(kmsEIP712Domain.chainId), // gateway chainId
309
- verifying_contract: kmsEIP712Domain.verifyingContract,
305
+ const eip712DomainWasmArg: KmsEip712DomainWasmType = {
306
+ name: kmsEip712Domain.name,
307
+ version: kmsEip712Domain.version,
308
+ chain_id: uint32ToBytes32(kmsEip712Domain.chainId), // gateway chainId
309
+ verifying_contract: kmsEip712Domain.verifyingContract,
310
310
  salt: null,
311
311
  };
312
312
 
@@ -90,21 +90,21 @@ async function _resolveKmsAssets(
90
90
  function _logResolvedKmsAssets(resolvedAssets: ResolvedKmsAssets, logger: FhevmRuntimeConfig['logger']): void {
91
91
  const { wasm } = resolvedAssets;
92
92
  if (wasm.resolution === 'user') {
93
- logger?.debug(`resolve tkms wasm filename using 'locateFile' function: ${wasm.filename} -> url: ${wasm.url}`);
93
+ logger?.debug?.(`resolve tkms wasm filename using 'locateFile' function: ${wasm.filename} -> url: ${wasm.url}`);
94
94
  } else if (wasm.resolution === 'node') {
95
95
  if (wasm.url === undefined) {
96
96
  // Auto-derived assets were missing on disk (e.g. a bundler such as Turbopack
97
97
  // relocated the package) and were cleared by _resolveTkmsAssets -> base64.
98
- logger?.debug(
98
+ logger?.debug?.(
99
99
  `tkms auto-derived assets not found on disk (bundler relocation?); using embedded base64 ` +
100
100
  `(wasm: ${wasm.localRelativePath})`,
101
101
  );
102
102
  } else {
103
- logger?.debug(`resolve tkms wasm local path: ${wasm.localRelativePath} -> url: ${wasm.url}`);
103
+ logger?.debug?.(`resolve tkms wasm local path: ${wasm.localRelativePath} -> url: ${wasm.url}`);
104
104
  }
105
105
  } else {
106
106
  // 'none': browser zero-config (no 'locateFile', not Node) -> embedded base64.
107
- logger?.debug(`resolve tkms assets using embedded base64 (browser, no 'locateFile')`);
107
+ logger?.debug?.(`resolve tkms assets using embedded base64 (browser, no 'locateFile')`);
108
108
  }
109
109
  }
110
110
 
@@ -170,7 +170,7 @@ async function _resolveTkmsModuleConfig(
170
170
  logger: parameters.logger,
171
171
  };
172
172
 
173
- parameters.logger?.debug(JSON.stringify(cfg, null, 2));
173
+ //parameters.logger?.debug?.(JSON.stringify(cfg, null, 2));
174
174
 
175
175
  return cfg;
176
176
  }
@@ -226,11 +226,11 @@ async function _compileWasmModule(cfg: ResolvedTkmsModuleConfig): Promise<WebAss
226
226
  let wasmModule;
227
227
 
228
228
  if (cfg.assets.wasm.url !== undefined) {
229
- cfg.logger?.debug(`compile tkms verified wasm at: ${cfg.assets.wasm.url}`);
229
+ cfg.logger?.debug?.(`compile tkms verified wasm at: ${cfg.assets.wasm.url}`);
230
230
  wasmModule = await isomorphicCompileVerifiedWasm(cfg.assets.wasm.url, cfg.assets.wasm.sha256);
231
231
  } else {
232
232
  const { tkmsWasmBase64, tkmsWasmBase64CompressionFormat } = await loadKmsWasmBase64(cfg.version);
233
- cfg.logger?.debug(
233
+ cfg.logger?.debug?.(
234
234
  `compile tkms wasm from embedded base64 (compression:${tkmsWasmBase64CompressionFormat ?? 'none'})`,
235
235
  );
236
236
  wasmModule = await isomorphicCompileWasmFromBase64(tkmsWasmBase64, tkmsWasmBase64CompressionFormat);
@@ -208,23 +208,25 @@ async function _resolveTfheAssets(
208
208
  function _logResolvedTfheAssets(resolvedAssets: ResolvedTfheAssets, logger: FhevmRuntimeConfig['logger']): void {
209
209
  const { wasm, worker } = resolvedAssets;
210
210
  if (wasm.resolution === 'user') {
211
- logger?.debug(`resolve tfhe wasm filename using 'locateFile' function: ${wasm.filename} -> url: ${wasm.url}`);
212
- logger?.debug(`resolve tfhe worker filename using 'locateFile' function: ${worker.filename} -> url: ${worker.url}`);
211
+ logger?.debug?.(`resolve tfhe wasm filename using 'locateFile' function: ${wasm.filename} -> url: ${wasm.url}`);
212
+ logger?.debug?.(
213
+ `resolve tfhe worker filename using 'locateFile' function: ${worker.filename} -> url: ${worker.url}`,
214
+ );
213
215
  } else if (wasm.resolution === 'node') {
214
216
  if (wasm.url === undefined) {
215
217
  // Auto-derived assets were missing on disk (e.g. a bundler such as Turbopack
216
218
  // relocated the package) and were cleared by _resolveTfheAssets -> base64.
217
- logger?.debug(
219
+ logger?.debug?.(
218
220
  `tfhe auto-derived assets not found on disk (bundler relocation?); using embedded base64 ` +
219
221
  `(wasm: ${wasm.localRelativePath}, worker: ${worker.localRelativePath})`,
220
222
  );
221
223
  } else {
222
- logger?.debug(`resolve tfhe wasm local path: ${wasm.localRelativePath} -> url: ${wasm.url}`);
223
- logger?.debug(`resolve tfhe worker local path: ${worker.localRelativePath} -> url: ${worker.url}`);
224
+ logger?.debug?.(`resolve tfhe wasm local path: ${wasm.localRelativePath} -> url: ${wasm.url}`);
225
+ logger?.debug?.(`resolve tfhe worker local path: ${worker.localRelativePath} -> url: ${worker.url}`);
224
226
  }
225
227
  } else {
226
228
  // 'none': browser zero-config (no 'locateFile', not Node) -> embedded base64.
227
- logger?.debug(`resolve tfhe assets using embedded base64 (browser, no 'locateFile')`);
229
+ logger?.debug?.(`resolve tfhe assets using embedded base64 (browser, no 'locateFile')`);
228
230
  }
229
231
  }
230
232
 
@@ -475,7 +477,10 @@ async function _resolveTfheModuleConfig(
475
477
  // Single source of truth for browser-vs-Node, resolved on the main thread
476
478
  // (robust to bundler `process` shims) — the worker bootstrap no longer detects it.
477
479
  isBrowserLike: isBrowserLike(),
478
- logger: parameters.logger,
480
+ logger:
481
+ parameters.logger?.debug !== undefined && parameters.logger.error !== undefined
482
+ ? { debug: parameters.logger.debug, error: parameters.logger.error }
483
+ : undefined,
479
484
  });
480
485
 
481
486
  const cfg = {
@@ -488,7 +493,7 @@ async function _resolveTfheModuleConfig(
488
493
  supportsThreads,
489
494
  };
490
495
 
491
- parameters.logger?.debug(JSON.stringify(cfg, null, 2));
496
+ //parameters.logger?.debug?.(JSON.stringify(cfg, null, 2));
492
497
 
493
498
  return cfg;
494
499
  }
@@ -572,11 +577,11 @@ async function _compileWasmModule(cfg: ResolvedTfheModuleConfig): Promise<WebAss
572
577
  let wasmModule;
573
578
 
574
579
  if (cfg.assets.wasm.url !== undefined) {
575
- cfg.logger?.debug(`compile verified wasm at: ${cfg.assets.wasm.url}`);
580
+ cfg.logger?.debug?.(`compile verified wasm at: ${cfg.assets.wasm.url}`);
576
581
  wasmModule = await isomorphicCompileVerifiedWasm(cfg.assets.wasm.url, cfg.assets.wasm.sha256);
577
582
  } else {
578
583
  const { tfheWasmBase64, tfheWasmBase64CompressionFormat } = await loadTfheWasmBase64(cfg.version);
579
- cfg.logger?.debug(`compile wasm from embedded base64 (compression:${tfheWasmBase64CompressionFormat ?? 'none'})`);
584
+ cfg.logger?.debug?.(`compile wasm from embedded base64 (compression:${tfheWasmBase64CompressionFormat ?? 'none'})`);
580
585
  wasmModule = await isomorphicCompileWasmFromBase64(tfheWasmBase64, tfheWasmBase64CompressionFormat);
581
586
  }
582
587
 
@@ -599,7 +604,7 @@ async function _initTfheModule(cfg: ResolvedTfheModuleConfig): Promise<TfheLibAp
599
604
 
600
605
  // 4. Spawn Web Workers for parallel FHE operations (skipped when single-threaded)
601
606
  if (!cfg.singleThread) {
602
- cfg.logger?.debug(`initThreadPool(${cfg.numberOfThreads})`);
607
+ cfg.logger?.debug?.(`initThreadPool(${cfg.numberOfThreads})`);
603
608
  await tfheLib.initThreadPool(cfg.numberOfThreads);
604
609
  }
605
610
 
@@ -46,7 +46,7 @@ export async function fetchPublicDecrypt(
46
46
  const signersAddress = res[2] as readonly ChecksummedAddress[];
47
47
  const signers = getKmsSignersPrivateKeyMap(relayerClient);
48
48
 
49
- const kmsPublicDecryptEIP712Signatures: Bytes65Hex[] = [];
49
+ const kmsPublicDecryptEip712Signatures: Bytes65Hex[] = [];
50
50
 
51
51
  for (let i = 0; i < signersAddress.length; ++i) {
52
52
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
@@ -56,12 +56,12 @@ export async function fetchPublicDecrypt(
56
56
  }
57
57
 
58
58
  const signature = await cleartextEthereumModule.sign({ hash: digest, privateKey });
59
- kmsPublicDecryptEIP712Signatures.push(signature);
59
+ kmsPublicDecryptEip712Signatures.push(signature);
60
60
  }
61
61
 
62
62
  return {
63
63
  orderedAbiEncodedClearValues: res[0] as BytesHex,
64
- kmsPublicDecryptEIP712Signatures,
64
+ kmsPublicDecryptEip712Signatures,
65
65
  extraData: res[4] as BytesHex,
66
66
  };
67
67
  }
@@ -1,7 +1,7 @@
1
1
  import type { BytesHex, ChecksummedAddress } from '../../../types/primitives.js';
2
2
  import type { FetchUserDecryptResultItem } from '../../../types/relayer.js';
3
3
  import type { CleartextEthereumModule } from '../../ethereum/types-ct.js';
4
- import type { FetchUserDecryptParameters, FetchUserDecryptReturnType, RelayerClientWithRuntime } from '../types.js';
4
+ import type { FetchUserDecryptParametersV1, FetchUserDecryptReturnType, RelayerClientWithRuntime } from '../types.js';
5
5
  import { remove0x } from '../../../base/string.js';
6
6
  import { asUint32BigInt, tryParseUintBigIntString, randomUniqueUints } from '../../../base/uint.js';
7
7
  import { getTrustedClient } from '../../../runtime/CoreFhevm-p.js';
@@ -61,7 +61,7 @@ const userDecryptAbi = [
61
61
 
62
62
  export async function fetchUserDecrypt(
63
63
  relayerClient: RelayerClientWithRuntime,
64
- parameters: FetchUserDecryptParameters,
64
+ parameters: FetchUserDecryptParametersV1,
65
65
  ): Promise<FetchUserDecryptReturnType> {
66
66
  const cleartextEthereumModule = relayerClient.runtime.ethereum as CleartextEthereumModule;
67
67
  const { payload } = parameters;
@@ -39,7 +39,7 @@ export async function fetchPublicDecrypt(
39
39
 
40
40
  return {
41
41
  orderedAbiEncodedClearValues: ensure0x(result.decryptedValue),
42
- kmsPublicDecryptEIP712Signatures: result.signatures.map(ensure0x) as Bytes65Hex[],
42
+ kmsPublicDecryptEip712Signatures: result.signatures.map(ensure0x) as Bytes65Hex[],
43
43
  extraData: result.extraData,
44
44
  };
45
45
  }
@@ -1,10 +1,14 @@
1
- import type { KmsSigncryptedShare } from '../../../types/kms-p.js';
2
- import type { FetchUserDecryptPayload } from '../../../types/relayer-p.js';
3
- import type { FetchUserDecryptResult } from '../../../types/relayer.js';
4
- import type { FetchUserDecryptParameters, FetchUserDecryptReturnType, RelayerClientWithRuntime } from '../types.js';
5
- import { remove0x } from '../../../base/string.js';
6
- import { RelayerAsyncRequest } from './RelayerAsyncRequest.js';
7
- import { buildRelayerUrlString, validateRelayerBaseUrl } from './relayerUrl.js';
1
+ import type {
2
+ FetchUserDecryptParameters,
3
+ FetchUserDecryptParametersV1,
4
+ FetchUserDecryptParametersV2,
5
+ FetchUserDecryptReturnType,
6
+ RelayerClientWithRuntime,
7
+ } from '../types.js';
8
+ import { getResolvedProtocolVersion } from '../../../runtime/CoreFhevm-p.js';
9
+ import { isSemverStrictlyBefore } from '../../../base/semver.js';
10
+ import { fetchUserDecryptV1 } from './fetchUserDecryptV1.js';
11
+ import { fetchUserDecryptV2 } from './fetchUserDecryptV2.js';
8
12
 
9
13
  //////////////////////////////////////////////////////////////////////////////
10
14
  // fetchUserDecrypt
@@ -14,56 +18,16 @@ export async function fetchUserDecrypt(
14
18
  relayerClient: RelayerClientWithRuntime,
15
19
  parameters: FetchUserDecryptParameters,
16
20
  ): Promise<FetchUserDecryptReturnType> {
17
- const { options, payload } = parameters;
18
-
19
- const firstHandleContractPair = payload.handleContractPairs[0];
20
- if (firstHandleContractPair === undefined) {
21
- throw new Error('Empty handle contract pairs');
21
+ const protocolVersion = getResolvedProtocolVersion(relayerClient);
22
+ if (protocolVersion === undefined) {
23
+ throw new Error(
24
+ 'Unable to resolve protocol version from context, ensure proper initialization of the FhevmRuntime and FhevmChain.',
25
+ );
22
26
  }
23
27
 
24
- // retrieve chainId using handles
25
- const contractsChainId = firstHandleContractPair.handle.chainId.toString();
26
-
27
- const relayerPayload: FetchUserDecryptPayload = {
28
- handleContractPairs: payload.handleContractPairs.map((pair) => {
29
- return {
30
- handle: pair.handle.bytes32Hex,
31
- contractAddress: pair.contractAddress,
32
- };
33
- }),
34
- requestValidity: {
35
- startTimestamp: payload.kmsDecryptEip712Message.startTimestamp,
36
- durationDays: payload.kmsDecryptEip712Message.durationDays,
37
- },
38
- contractsChainId,
39
- contractAddresses: payload.kmsDecryptEip712Message.contractAddresses,
40
- userAddress: payload.kmsDecryptEip712Signer,
41
- signature: remove0x(payload.kmsDecryptEip712Signature),
42
- extraData: payload.kmsDecryptEip712Message.extraData,
43
- publicKey: remove0x(payload.kmsDecryptEip712Message.publicKey),
44
- };
45
-
46
- const hasAuth: boolean = options?.auth !== undefined;
47
- const relayerBaseUrl: URL = validateRelayerBaseUrl(relayerClient.chain.fhevm.relayerUrl, hasAuth);
48
- const url = buildRelayerUrlString(relayerBaseUrl, 'v2/user-decrypt');
49
-
50
- const request = new RelayerAsyncRequest({
51
- relayerOperation: 'USER_DECRYPT',
52
- url,
53
- payload: relayerPayload,
54
- options,
55
- });
56
-
57
- const result = (await request.run()) as FetchUserDecryptResult;
58
-
59
- const shares: KmsSigncryptedShare[] = result.map((r) => {
60
- const share: KmsSigncryptedShare = {
61
- signature: r.signature,
62
- payload: r.payload,
63
- extraData: remove0x(r.extraData),
64
- };
65
- return share;
66
- });
28
+ if (isSemverStrictlyBefore(protocolVersion.version, '0.14.0')) {
29
+ return await fetchUserDecryptV1(relayerClient, parameters as FetchUserDecryptParametersV1);
30
+ }
67
31
 
68
- return shares;
32
+ return await fetchUserDecryptV2(relayerClient, parameters as FetchUserDecryptParametersV2);
69
33
  }
@@ -0,0 +1,69 @@
1
+ import type { KmsSigncryptedShare } from '../../../types/kms-p.js';
2
+ import type { FetchUserDecryptPayload as FetchUserDecryptPayloadV1 } from '../../../types/relayer-p.js';
3
+ import type { FetchUserDecryptResult } from '../../../types/relayer.js';
4
+ import type { FetchUserDecryptParametersV1, FetchUserDecryptReturnType, RelayerClientWithRuntime } from '../types.js';
5
+ import { remove0x } from '../../../base/string.js';
6
+ import { RelayerAsyncRequest } from './RelayerAsyncRequest.js';
7
+ import { buildRelayerUrlString, validateRelayerBaseUrl } from './relayerUrl.js';
8
+
9
+ //////////////////////////////////////////////////////////////////////////////
10
+ // fetchUserDecryptV1 (protocol version < 0.14.0)
11
+ //////////////////////////////////////////////////////////////////////////////
12
+
13
+ export async function fetchUserDecryptV1(
14
+ relayerClient: RelayerClientWithRuntime,
15
+ parameters: FetchUserDecryptParametersV1,
16
+ ): Promise<FetchUserDecryptReturnType> {
17
+ const { options, payload } = parameters;
18
+
19
+ const firstHandleContractPair = payload.handleContractPairs[0];
20
+ if (firstHandleContractPair === undefined) {
21
+ throw new Error('Empty handle contract pairs');
22
+ }
23
+
24
+ // retrieve chainId using handles
25
+ const contractsChainId = firstHandleContractPair.handle.chainId.toString();
26
+
27
+ const relayerPayload: FetchUserDecryptPayloadV1 = {
28
+ handleContractPairs: payload.handleContractPairs.map((pair) => {
29
+ return {
30
+ handle: pair.handle.bytes32Hex,
31
+ contractAddress: pair.contractAddress,
32
+ };
33
+ }),
34
+ requestValidity: {
35
+ startTimestamp: payload.kmsDecryptEip712Message.startTimestamp,
36
+ durationDays: payload.kmsDecryptEip712Message.durationDays,
37
+ },
38
+ contractsChainId,
39
+ contractAddresses: payload.kmsDecryptEip712Message.contractAddresses,
40
+ userAddress: payload.kmsDecryptEip712Signer,
41
+ signature: remove0x(payload.kmsDecryptEip712Signature),
42
+ extraData: payload.kmsDecryptEip712Message.extraData,
43
+ publicKey: remove0x(payload.kmsDecryptEip712Message.publicKey),
44
+ };
45
+
46
+ const hasAuth: boolean = options?.auth !== undefined;
47
+ const relayerBaseUrl: URL = validateRelayerBaseUrl(relayerClient.chain.fhevm.relayerUrl, hasAuth);
48
+ const url = buildRelayerUrlString(relayerBaseUrl, 'v2/user-decrypt');
49
+
50
+ const request = new RelayerAsyncRequest({
51
+ relayerOperation: 'USER_DECRYPT',
52
+ url,
53
+ payload: relayerPayload,
54
+ options,
55
+ });
56
+
57
+ const result = (await request.run()) as FetchUserDecryptResult;
58
+
59
+ const shares: KmsSigncryptedShare[] = result.map((r) => {
60
+ const share: KmsSigncryptedShare = {
61
+ signature: r.signature,
62
+ payload: r.payload,
63
+ extraData: remove0x(r.extraData),
64
+ };
65
+ return share;
66
+ });
67
+
68
+ return shares;
69
+ }
@@ -0,0 +1,71 @@
1
+ import type { KmsSigncryptedShare } from '../../../types/kms-p.js';
2
+ import type { FetchUserDecryptPayloadV2 } from '../../../types/relayer-p.js';
3
+ import type { FetchUserDecryptResult } from '../../../types/relayer.js';
4
+ import type { FetchUserDecryptParametersV2, FetchUserDecryptReturnType, RelayerClientWithRuntime } from '../types.js';
5
+ import { remove0x } from '../../../base/string.js';
6
+ import { RelayerAsyncRequest } from './RelayerAsyncRequest.js';
7
+ import { buildRelayerUrlString, validateRelayerBaseUrl } from './relayerUrl.js';
8
+
9
+ //////////////////////////////////////////////////////////////////////////////
10
+ // fetchUserDecryptV2 (protocol version >= 0.14.0)
11
+ //////////////////////////////////////////////////////////////////////////////
12
+
13
+ export async function fetchUserDecryptV2(
14
+ relayerClient: RelayerClientWithRuntime,
15
+ parameters: FetchUserDecryptParametersV2,
16
+ ): Promise<FetchUserDecryptReturnType> {
17
+ const { options, payload } = parameters;
18
+
19
+ const firstHandleContractPair = payload.handleContractPairs[0];
20
+ if (firstHandleContractPair === undefined) {
21
+ throw new Error('Empty handle contract pairs');
22
+ }
23
+
24
+ // V3 envelope: AttestedUserDecryptRequestJson
25
+ // publicKey and signature keep their 0x prefix (unlike the V1/V2 flat payload)
26
+ const relayerPayload: FetchUserDecryptPayloadV2 = {
27
+ attestationType: 'eip712-unified-user-decrypt-v1',
28
+ attestedPayload: {
29
+ version: '2.0',
30
+ type: 'user_decryption',
31
+ handles: payload.handleContractPairs.map((pair) => ({
32
+ ctHandle: pair.handle.bytes32Hex,
33
+ contractAddress: pair.contractAddress,
34
+ ownerAddress: pair.ownerAddress,
35
+ })),
36
+ userAddress: payload.kmsDecryptEip712Message.userAddress,
37
+ allowedContracts: payload.kmsDecryptEip712Message.allowedContracts,
38
+ requestValidity: {
39
+ startTimestamp: payload.kmsDecryptEip712Message.startTimestamp,
40
+ durationSeconds: payload.kmsDecryptEip712Message.durationSeconds,
41
+ },
42
+ publicKey: payload.kmsDecryptEip712Message.publicKey,
43
+ extraData: payload.kmsDecryptEip712Message.extraData,
44
+ },
45
+ signature: payload.kmsDecryptEip712Signature,
46
+ };
47
+
48
+ const hasAuth: boolean = options?.auth !== undefined;
49
+ const relayerBaseUrl: URL = validateRelayerBaseUrl(relayerClient.chain.fhevm.relayerUrl, hasAuth);
50
+ const url = buildRelayerUrlString(relayerBaseUrl, 'v3/user-decrypt');
51
+
52
+ const request = new RelayerAsyncRequest({
53
+ relayerOperation: 'USER_DECRYPT',
54
+ url,
55
+ payload: relayerPayload,
56
+ options,
57
+ });
58
+
59
+ const result = (await request.run()) as FetchUserDecryptResult;
60
+
61
+ const shares: KmsSigncryptedShare[] = result.map((r) => {
62
+ const share: KmsSigncryptedShare = {
63
+ signature: r.signature,
64
+ payload: r.payload,
65
+ extraData: remove0x(r.extraData),
66
+ };
67
+ return share;
68
+ });
69
+
70
+ return shares;
71
+ }