@fhevm/sdk 1.1.0-alpha.5 → 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 (606) 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/bytes.js +2 -1
  24. package/_cjs/core/base/bytes.js.map +1 -1
  25. package/_cjs/core/base/cachedFetch.js +2 -1
  26. package/_cjs/core/base/cachedFetch.js.map +1 -1
  27. package/_cjs/core/base/environment.js +122 -0
  28. package/_cjs/core/base/environment.js.map +1 -0
  29. package/_cjs/core/base/errors/Sha256VerificationError.js +15 -0
  30. package/_cjs/core/base/errors/Sha256VerificationError.js.map +1 -0
  31. package/_cjs/core/base/inflate.js +282 -0
  32. package/_cjs/core/base/inflate.js.map +1 -0
  33. package/_cjs/core/base/isomorphicFs.js +24 -0
  34. package/_cjs/core/base/isomorphicFs.js.map +1 -0
  35. package/_cjs/core/base/isomorphicWorker.js +42 -111
  36. package/_cjs/core/base/isomorphicWorker.js.map +1 -1
  37. package/_cjs/core/base/uint.js +7 -0
  38. package/_cjs/core/base/uint.js.map +1 -1
  39. package/_cjs/core/base/wasm.js +15 -55
  40. package/_cjs/core/base/wasm.js.map +1 -1
  41. package/_cjs/core/clients/decorators/base.js +1 -1
  42. package/_cjs/core/clients/decorators/base.js.map +1 -1
  43. package/_cjs/core/host-contracts/canDecryptValuesFromPairs.js +4 -1
  44. package/_cjs/core/host-contracts/canDecryptValuesFromPairs.js.map +1 -1
  45. package/_cjs/core/host-contracts/getCoprocessorContextSignersAndThreshold-p.js +1 -1
  46. package/_cjs/core/host-contracts/getCoprocessorContextSignersAndThreshold-p.js.map +1 -1
  47. package/_cjs/core/host-contracts/getCurrentKmsContextAndEpoch-p.js +1 -1
  48. package/_cjs/core/host-contracts/getCurrentKmsContextAndEpoch-p.js.map +1 -1
  49. package/_cjs/core/host-contracts/getCurrentKmsContextId-p.js +1 -1
  50. package/_cjs/core/host-contracts/getCurrentKmsContextId-p.js.map +1 -1
  51. package/_cjs/core/host-contracts/getKmsContextSignersAndThreshold-p.js +1 -1
  52. package/_cjs/core/host-contracts/getKmsContextSignersAndThreshold-p.js.map +1 -1
  53. package/_cjs/core/kms/PublicDecryptionProof-p.js +4 -4
  54. package/_cjs/core/kms/SignedDecryptionPermit-p.js +33 -199
  55. package/_cjs/core/kms/SignedDecryptionPermit-p.js.map +1 -1
  56. package/_cjs/core/kms/SignedDecryptionPermitV1-p.js +217 -0
  57. package/_cjs/core/kms/SignedDecryptionPermitV1-p.js.map +1 -0
  58. package/_cjs/core/kms/SignedDecryptionPermitV2-p.js +184 -0
  59. package/_cjs/core/kms/SignedDecryptionPermitV2-p.js.map +1 -0
  60. package/_cjs/core/kms/TransportKeyPair-p.js +0 -4
  61. package/_cjs/core/kms/TransportKeyPair-p.js.map +1 -1
  62. package/_cjs/core/kms/{createKmsDelegatedUserDecryptEip712.js → createKmsDelegatedUserDecryptEip712V1.js} +9 -9
  63. package/_cjs/core/kms/createKmsDelegatedUserDecryptEip712V1.js.map +1 -0
  64. package/_cjs/core/kms/{createKmsUserDecryptEip712.js → createKmsUserDecryptEip712V1.js} +18 -14
  65. package/_cjs/core/kms/createKmsUserDecryptEip712V1.js.map +1 -0
  66. package/_cjs/core/kms/decryptValuesFromPairs.js +18 -2
  67. package/_cjs/core/kms/decryptValuesFromPairs.js.map +1 -1
  68. package/_cjs/core/kms/{fetchKmsSigncryptedShares-p.js → fetchKmsSigncryptedSharesV1-p.js} +18 -8
  69. package/_cjs/core/kms/fetchKmsSigncryptedSharesV1-p.js.map +1 -0
  70. package/_cjs/core/kms/fetchKmsSigncryptedSharesV2-p.js +95 -0
  71. package/_cjs/core/kms/fetchKmsSigncryptedSharesV2-p.js.map +1 -0
  72. package/_cjs/core/kms/{kmsDelegatedUserDecryptEip712Types.js → kmsDelegatedUserDecryptEip712V1Types.js} +8 -8
  73. package/_cjs/core/kms/kmsDelegatedUserDecryptEip712V1Types.js.map +1 -0
  74. package/_cjs/core/kms/{kmsUserDecryptEip712Types.js → kmsUserDecryptEip712V1Types.js} +8 -8
  75. package/_cjs/core/kms/kmsUserDecryptEip712V1Types.js.map +1 -0
  76. package/_cjs/core/kms/kmsUserDecryptEip712V2Types.js.map +1 -1
  77. package/_cjs/core/kms/publicDecrypt.js +2 -2
  78. package/_cjs/core/kms/utils.js +0 -19
  79. package/_cjs/core/kms/utils.js.map +1 -1
  80. package/_cjs/core/kms/verifyKmsPublicDecryptEip712-p.js +1 -1
  81. package/_cjs/core/modules/decrypt/module/api-p.js +5 -5
  82. package/_cjs/core/modules/decrypt/module/init-p.js +124 -40
  83. package/_cjs/core/modules/decrypt/module/init-p.js.map +1 -1
  84. package/_cjs/core/modules/encrypt/module/init-p.js +153 -49
  85. package/_cjs/core/modules/encrypt/module/init-p.js.map +1 -1
  86. package/_cjs/core/modules/relayer/cleartext/fetchPublicDecrypt.js +3 -3
  87. package/_cjs/core/modules/relayer/cleartext/fetchUserDecrypt.js.map +1 -1
  88. package/_cjs/core/modules/relayer/module/{fetchDelegatedUserDecrypt.js → fetchDelegatedUserDecryptV1.js} +1 -1
  89. package/_cjs/core/modules/relayer/module/fetchDelegatedUserDecryptV1.js.map +1 -0
  90. package/_cjs/core/modules/relayer/module/fetchPublicDecrypt.js +1 -1
  91. package/_cjs/core/modules/relayer/module/fetchUserDecrypt.js +11 -45
  92. package/_cjs/core/modules/relayer/module/fetchUserDecrypt.js.map +1 -1
  93. package/_cjs/core/modules/relayer/module/fetchUserDecryptV1.js +52 -0
  94. package/_cjs/core/modules/relayer/module/fetchUserDecryptV1.js.map +1 -0
  95. package/_cjs/core/modules/relayer/module/fetchUserDecryptV2.js +54 -0
  96. package/_cjs/core/modules/relayer/module/fetchUserDecryptV2.js.map +1 -0
  97. package/_cjs/core/modules/relayer/module/guards/RelayerResponseFailed.js +10 -2
  98. package/_cjs/core/modules/relayer/module/guards/RelayerResponseFailed.js.map +1 -1
  99. package/_cjs/core/modules/relayer/module/guards/api-errors/RelayerApiError400NoDetails.js +5 -2
  100. package/_cjs/core/modules/relayer/module/guards/api-errors/RelayerApiError400NoDetails.js.map +1 -1
  101. package/_cjs/core/modules/relayer/module/guards/api-errors/RelayerApiError503.js +2 -0
  102. package/_cjs/core/modules/relayer/module/guards/api-errors/RelayerApiError503.js.map +1 -1
  103. package/_cjs/core/modules/relayer/module/index.js +2 -2
  104. package/_cjs/core/modules/relayer/module/index.js.map +1 -1
  105. package/_cjs/core/runtime/HyperWasmSolver-p.js +5 -10
  106. package/_cjs/core/runtime/HyperWasmSolver-p.js.map +1 -1
  107. package/_cjs/core/runtime/initFhevmEncryptRuntime-p.js +1 -1
  108. package/_cjs/core/runtime/initFhevmRuntime-p.js +1 -1
  109. package/_cjs/core/utils-p/decrypt/{verifyKmsDelegatedUserDecryptEip712.js → verifyKmsDelegatedUserDecryptEip712V1.js} +5 -5
  110. package/_cjs/core/utils-p/decrypt/verifyKmsDelegatedUserDecryptEip712V1.js.map +1 -0
  111. package/_cjs/core/utils-p/decrypt/{verifyKmsUserDecryptEip712.js → verifyKmsUserDecryptEip712V1.js} +5 -5
  112. package/_cjs/core/utils-p/decrypt/verifyKmsUserDecryptEip712V1.js.map +1 -0
  113. package/_cjs/core/utils-p/decrypt/verifyKmsUserDecryptEip712V2.js +30 -0
  114. package/_cjs/core/utils-p/decrypt/verifyKmsUserDecryptEip712V2.js.map +1 -0
  115. package/_cjs/wasm/tfhe/TfheApi.d.ts +12 -12
  116. package/_cjs/wasm/tfhe/loadTfheLib.js +11 -11
  117. package/_cjs/wasm/tfhe/loadTfheLib.js.map +2 -2
  118. package/_cjs/wasm/tfhe/v1.5.3/startWorkers.js +26 -9
  119. package/_cjs/wasm/tfhe/v1.5.3/startWorkers.js.map +2 -2
  120. package/_cjs/wasm/tfhe/v1.5.3/tfhe.d.ts +3 -0
  121. package/_cjs/wasm/tfhe/{v1.6.1 → v1.6.2}/startWorkers.js +28 -11
  122. package/_cjs/wasm/tfhe/v1.6.2/startWorkers.js.map +7 -0
  123. package/_cjs/wasm/tfhe/{v1.6.1 → v1.6.2}/tfhe-worker.mjs +40 -40
  124. package/_cjs/wasm/tfhe/{v1.6.1 → v1.6.2}/tfhe.d.ts +88 -85
  125. package/_cjs/wasm/tfhe/{v1.6.1 → v1.6.2}/tfhe.js +245 -442
  126. package/_cjs/wasm/tfhe/v1.6.2/tfhe.js.map +7 -0
  127. package/_cjs/wasm/tfhe/v1.6.2/tfhe_bg.wasm +0 -0
  128. package/_cjs/wasm/tfhe/v1.6.2/tfhe_bg.wasm.base64.js +35 -0
  129. package/_cjs/wasm/tfhe/v1.6.2/tfhe_bg.wasm.base64.js.map +7 -0
  130. package/_cjs/wasm/tkms/loadKmsLib.js.map +1 -1
  131. package/_cjs/wasm/wasmBaseUrl.js +8 -19
  132. package/_cjs/wasm/wasmBaseUrl.js.map +2 -2
  133. package/_esm/core/_version.js +1 -1
  134. package/_esm/core/actions/base/index.js +0 -8
  135. package/_esm/core/actions/base/index.js.map +1 -1
  136. package/_esm/core/actions/base/signDecryptionPermit.js +0 -6
  137. package/_esm/core/actions/base/signDecryptionPermit.js.map +1 -1
  138. package/_esm/core/actions/chain/index.js +0 -6
  139. package/_esm/core/actions/chain/index.js.map +1 -1
  140. package/_esm/core/actions/chain/parseSignedDecryptionPermit.js.map +1 -1
  141. package/_esm/core/actions/chain/serializeSignedDecryptionPermit.js.map +1 -1
  142. package/_esm/core/actions/decrypt/canDecryptValue.js +40 -0
  143. package/_esm/core/actions/decrypt/canDecryptValue.js.map +1 -1
  144. package/_esm/core/actions/decrypt/canDecryptValues.js +1 -0
  145. package/_esm/core/actions/decrypt/canDecryptValues.js.map +1 -1
  146. package/_esm/core/actions/decrypt/canDecryptValuesFromPairs.js +1 -0
  147. package/_esm/core/actions/decrypt/canDecryptValuesFromPairs.js.map +1 -1
  148. package/_esm/core/actions/decrypt/decryptValue.js +1 -0
  149. package/_esm/core/actions/decrypt/decryptValue.js.map +1 -1
  150. package/_esm/core/actions/decrypt/decryptValues.js +2 -0
  151. package/_esm/core/actions/decrypt/decryptValues.js.map +1 -1
  152. package/_esm/core/actions/decrypt/decryptValuesFromPairs.js +2 -0
  153. package/_esm/core/actions/decrypt/decryptValuesFromPairs.js.map +1 -1
  154. package/_esm/core/actions/decrypt/index.js +0 -1
  155. package/_esm/core/actions/decrypt/index.js.map +1 -1
  156. package/_esm/core/actions/host/index.js +0 -4
  157. package/_esm/core/actions/host/index.js.map +1 -1
  158. package/_esm/core/base/bytes.js +2 -1
  159. package/_esm/core/base/bytes.js.map +1 -1
  160. package/_esm/core/base/cachedFetch.js +1 -0
  161. package/_esm/core/base/cachedFetch.js.map +1 -1
  162. package/_esm/core/base/environment.js +164 -0
  163. package/_esm/core/base/environment.js.map +1 -0
  164. package/_esm/core/base/errors/Sha256VerificationError.js +11 -0
  165. package/_esm/core/base/errors/Sha256VerificationError.js.map +1 -0
  166. package/_esm/core/base/inflate.js +337 -0
  167. package/_esm/core/base/inflate.js.map +1 -0
  168. package/_esm/core/base/isomorphicFs.js +21 -0
  169. package/_esm/core/base/isomorphicFs.js.map +1 -0
  170. package/_esm/core/base/isomorphicWorker.js +92 -85
  171. package/_esm/core/base/isomorphicWorker.js.map +1 -1
  172. package/_esm/core/base/uint.js +7 -0
  173. package/_esm/core/base/uint.js.map +1 -1
  174. package/_esm/core/base/wasm.js +25 -31
  175. package/_esm/core/base/wasm.js.map +1 -1
  176. package/_esm/core/clients/decorators/base.js +2 -4
  177. package/_esm/core/clients/decorators/base.js.map +1 -1
  178. package/_esm/core/coprocessor/coprocessorEip712Types.js +2 -2
  179. package/_esm/core/host-contracts/canDecryptValuesFromPairs.js +5 -2
  180. package/_esm/core/host-contracts/canDecryptValuesFromPairs.js.map +1 -1
  181. package/_esm/core/host-contracts/getCoprocessorContextSignersAndThreshold-p.js +2 -2
  182. package/_esm/core/host-contracts/getCoprocessorContextSignersAndThreshold-p.js.map +1 -1
  183. package/_esm/core/host-contracts/getCurrentKmsContextAndEpoch-p.js +2 -2
  184. package/_esm/core/host-contracts/getCurrentKmsContextAndEpoch-p.js.map +1 -1
  185. package/_esm/core/host-contracts/getCurrentKmsContextId-p.js +2 -2
  186. package/_esm/core/host-contracts/getCurrentKmsContextId-p.js.map +1 -1
  187. package/_esm/core/host-contracts/getKmsContextSignersAndThreshold-p.js +2 -2
  188. package/_esm/core/host-contracts/getKmsContextSignersAndThreshold-p.js.map +1 -1
  189. package/_esm/core/kms/PublicDecryptionProof-p.js +4 -4
  190. package/_esm/core/kms/SignedDecryptionPermit-p.js +48 -245
  191. package/_esm/core/kms/SignedDecryptionPermit-p.js.map +1 -1
  192. package/_esm/core/kms/SignedDecryptionPermitV1-p.js +258 -0
  193. package/_esm/core/kms/SignedDecryptionPermitV1-p.js.map +1 -0
  194. package/_esm/core/kms/SignedDecryptionPermitV2-p.js +204 -0
  195. package/_esm/core/kms/SignedDecryptionPermitV2-p.js.map +1 -0
  196. package/_esm/core/kms/TransportKeyPair-p.js +0 -4
  197. package/_esm/core/kms/TransportKeyPair-p.js.map +1 -1
  198. package/_esm/core/kms/{createKmsDelegatedUserDecryptEip712.js → createKmsDelegatedUserDecryptEip712V1.js} +8 -8
  199. package/_esm/core/kms/createKmsDelegatedUserDecryptEip712V1.js.map +1 -0
  200. package/_esm/core/kms/createKmsPublicDecryptEip712.js +1 -1
  201. package/_esm/core/kms/{createKmsUserDecryptEip712.js → createKmsUserDecryptEip712V1.js} +18 -14
  202. package/_esm/core/kms/createKmsUserDecryptEip712V1.js.map +1 -0
  203. package/_esm/core/kms/decryptValuesFromPairs.js +18 -2
  204. package/_esm/core/kms/decryptValuesFromPairs.js.map +1 -1
  205. package/_esm/core/kms/{fetchKmsSigncryptedShares-p.js → fetchKmsSigncryptedSharesV1-p.js} +23 -13
  206. package/_esm/core/kms/fetchKmsSigncryptedSharesV1-p.js.map +1 -0
  207. package/_esm/core/kms/fetchKmsSigncryptedSharesV2-p.js +119 -0
  208. package/_esm/core/kms/fetchKmsSigncryptedSharesV2-p.js.map +1 -0
  209. package/_esm/core/kms/{kmsDelegatedUserDecryptEip712Types.js → kmsDelegatedUserDecryptEip712V1Types.js} +9 -8
  210. package/_esm/core/kms/kmsDelegatedUserDecryptEip712V1Types.js.map +1 -0
  211. package/_esm/core/kms/kmsPublicDecryptEip712Types.js +1 -1
  212. package/_esm/core/kms/{kmsUserDecryptEip712Types.js → kmsUserDecryptEip712V1Types.js} +9 -8
  213. package/_esm/core/kms/kmsUserDecryptEip712V1Types.js.map +1 -0
  214. package/_esm/core/kms/kmsUserDecryptEip712V2Types.js +2 -1
  215. package/_esm/core/kms/kmsUserDecryptEip712V2Types.js.map +1 -1
  216. package/_esm/core/kms/publicDecrypt.js +2 -2
  217. package/_esm/core/kms/utils.js +0 -18
  218. package/_esm/core/kms/utils.js.map +1 -1
  219. package/_esm/core/kms/verifyKmsPublicDecryptEip712-p.js +2 -2
  220. package/_esm/core/modules/decrypt/module/api-p.js +6 -6
  221. package/_esm/core/modules/decrypt/module/init-p.js +110 -55
  222. package/_esm/core/modules/decrypt/module/init-p.js.map +1 -1
  223. package/_esm/core/modules/encrypt/module/init-p.js +306 -57
  224. package/_esm/core/modules/encrypt/module/init-p.js.map +1 -1
  225. package/_esm/core/modules/relayer/cleartext/fetchPublicDecrypt.js +3 -3
  226. package/_esm/core/modules/relayer/cleartext/fetchUserDecrypt.js.map +1 -1
  227. package/_esm/core/modules/relayer/module/{fetchDelegatedUserDecrypt.js → fetchDelegatedUserDecryptV1.js} +1 -1
  228. package/_esm/core/modules/relayer/module/fetchDelegatedUserDecryptV1.js.map +1 -0
  229. package/_esm/core/modules/relayer/module/fetchPublicDecrypt.js +1 -1
  230. package/_esm/core/modules/relayer/module/fetchUserDecrypt.js +11 -46
  231. package/_esm/core/modules/relayer/module/fetchUserDecrypt.js.map +1 -1
  232. package/_esm/core/modules/relayer/module/fetchUserDecryptV1.js +53 -0
  233. package/_esm/core/modules/relayer/module/fetchUserDecryptV1.js.map +1 -0
  234. package/_esm/core/modules/relayer/module/fetchUserDecryptV2.js +56 -0
  235. package/_esm/core/modules/relayer/module/fetchUserDecryptV2.js.map +1 -0
  236. package/_esm/core/modules/relayer/module/guards/RelayerResponseFailed.js +10 -2
  237. package/_esm/core/modules/relayer/module/guards/RelayerResponseFailed.js.map +1 -1
  238. package/_esm/core/modules/relayer/module/guards/api-errors/RelayerApiError400NoDetails.js +6 -3
  239. package/_esm/core/modules/relayer/module/guards/api-errors/RelayerApiError400NoDetails.js.map +1 -1
  240. package/_esm/core/modules/relayer/module/guards/api-errors/RelayerApiError503.js +2 -0
  241. package/_esm/core/modules/relayer/module/guards/api-errors/RelayerApiError503.js.map +1 -1
  242. package/_esm/core/modules/relayer/module/index.js +1 -1
  243. package/_esm/core/modules/relayer/module/index.js.map +1 -1
  244. package/_esm/core/runtime/HyperWasmSolver-p.js +5 -10
  245. package/_esm/core/runtime/HyperWasmSolver-p.js.map +1 -1
  246. package/_esm/core/runtime/initFhevmEncryptRuntime-p.js +1 -1
  247. package/_esm/core/runtime/initFhevmRuntime-p.js +1 -1
  248. package/_esm/core/utils-p/decrypt/{verifyKmsDelegatedUserDecryptEip712.js → verifyKmsDelegatedUserDecryptEip712V1.js} +5 -5
  249. package/_esm/core/utils-p/decrypt/verifyKmsDelegatedUserDecryptEip712V1.js.map +1 -0
  250. package/_esm/core/utils-p/decrypt/{verifyKmsUserDecryptEip712.js → verifyKmsUserDecryptEip712V1.js} +5 -5
  251. package/_esm/core/utils-p/decrypt/verifyKmsUserDecryptEip712V1.js.map +1 -0
  252. package/_esm/core/utils-p/decrypt/verifyKmsUserDecryptEip712V2.js +27 -0
  253. package/_esm/core/utils-p/decrypt/verifyKmsUserDecryptEip712V2.js.map +1 -0
  254. package/_esm/wasm/tfhe/TfheApi.d.ts +12 -12
  255. package/_esm/wasm/tfhe/loadTfheLib.js +11 -11
  256. package/_esm/wasm/tfhe/v1.5.3/startWorkers.js +41 -20
  257. package/_esm/wasm/tfhe/v1.5.3/tfhe.d.ts +3 -0
  258. package/_esm/wasm/tfhe/{v1.6.1 → v1.6.2}/startWorkers.js +46 -25
  259. package/_esm/wasm/tfhe/{v1.6.1 → v1.6.2}/tfhe-worker.mjs +40 -40
  260. package/_esm/wasm/tfhe/{v1.6.1 → v1.6.2}/tfhe.d.ts +88 -85
  261. package/_esm/wasm/tfhe/{v1.6.1 → v1.6.2}/tfhe.js +245 -442
  262. package/_esm/wasm/tfhe/v1.6.2/tfhe_bg.wasm +0 -0
  263. package/_esm/wasm/tfhe/v1.6.2/tfhe_bg.wasm.base64.js +7 -0
  264. package/_esm/wasm/wasmBaseUrl.js +17 -54
  265. package/_types/core/actions/base/index.d.ts +0 -8
  266. package/_types/core/actions/base/index.d.ts.map +1 -1
  267. package/_types/core/actions/base/signDecryptionPermit.d.ts +4 -5
  268. package/_types/core/actions/base/signDecryptionPermit.d.ts.map +1 -1
  269. package/_types/core/actions/chain/index.d.ts +1 -7
  270. package/_types/core/actions/chain/index.d.ts.map +1 -1
  271. package/_types/core/actions/chain/parseSignedDecryptionPermit.d.ts +1 -0
  272. package/_types/core/actions/chain/parseSignedDecryptionPermit.d.ts.map +1 -1
  273. package/_types/core/actions/chain/serializeSignedDecryptionPermit.d.ts +3 -2
  274. package/_types/core/actions/chain/serializeSignedDecryptionPermit.d.ts.map +1 -1
  275. package/_types/core/actions/decrypt/canDecryptValue.d.ts +3 -4
  276. package/_types/core/actions/decrypt/canDecryptValue.d.ts.map +1 -1
  277. package/_types/core/actions/decrypt/canDecryptValues.d.ts +3 -4
  278. package/_types/core/actions/decrypt/canDecryptValues.d.ts.map +1 -1
  279. package/_types/core/actions/decrypt/canDecryptValuesFromPairs.d.ts +3 -4
  280. package/_types/core/actions/decrypt/canDecryptValuesFromPairs.d.ts.map +1 -1
  281. package/_types/core/actions/decrypt/decryptValue.d.ts.map +1 -1
  282. package/_types/core/actions/decrypt/decryptValues.d.ts.map +1 -1
  283. package/_types/core/actions/decrypt/decryptValuesFromPairs.d.ts.map +1 -1
  284. package/_types/core/actions/decrypt/index.d.ts +0 -1
  285. package/_types/core/actions/decrypt/index.d.ts.map +1 -1
  286. package/_types/core/actions/host/index.d.ts +0 -4
  287. package/_types/core/actions/host/index.d.ts.map +1 -1
  288. package/_types/core/base/bytes.d.ts.map +1 -1
  289. package/_types/core/base/cachedFetch.d.ts +1 -0
  290. package/_types/core/base/cachedFetch.d.ts.map +1 -1
  291. package/_types/core/base/environment.d.ts +92 -0
  292. package/_types/core/base/environment.d.ts.map +1 -0
  293. package/_types/core/base/errors/Sha256VerificationError.d.ts +14 -0
  294. package/_types/core/base/errors/Sha256VerificationError.d.ts.map +1 -0
  295. package/_types/core/base/inflate.d.ts +25 -0
  296. package/_types/core/base/inflate.d.ts.map +1 -0
  297. package/_types/core/base/isomorphicFs.d.ts +2 -0
  298. package/_types/core/base/isomorphicFs.d.ts.map +1 -0
  299. package/_types/core/base/isomorphicWorker.d.ts +27 -43
  300. package/_types/core/base/isomorphicWorker.d.ts.map +1 -1
  301. package/_types/core/base/uint.d.ts +2 -1
  302. package/_types/core/base/uint.d.ts.map +1 -1
  303. package/_types/core/base/wasm.d.ts +0 -8
  304. package/_types/core/base/wasm.d.ts.map +1 -1
  305. package/_types/core/clients/decorators/base.d.ts +12 -23
  306. package/_types/core/clients/decorators/base.d.ts.map +1 -1
  307. package/_types/core/host-contracts/canDecryptValuesFromPairs.d.ts +2 -2
  308. package/_types/core/host-contracts/canDecryptValuesFromPairs.d.ts.map +1 -1
  309. package/_types/core/kms/PublicDecryptionProof-p.d.ts +1 -1
  310. package/_types/core/kms/SignedDecryptionPermit-p.d.ts +15 -29
  311. package/_types/core/kms/SignedDecryptionPermit-p.d.ts.map +1 -1
  312. package/_types/core/kms/SignedDecryptionPermitV1-p.d.ts +7 -0
  313. package/_types/core/kms/SignedDecryptionPermitV1-p.d.ts.map +1 -0
  314. package/_types/core/kms/SignedDecryptionPermitV2-p.d.ts +7 -0
  315. package/_types/core/kms/SignedDecryptionPermitV2-p.d.ts.map +1 -0
  316. package/_types/core/kms/TransportKeyPair-p.d.ts.map +1 -1
  317. package/_types/core/kms/createKmsDelegatedUserDecryptEip712V1.d.ts +15 -0
  318. package/_types/core/kms/createKmsDelegatedUserDecryptEip712V1.d.ts.map +1 -0
  319. package/_types/core/kms/createKmsUserDecryptEip712V1.d.ts +26 -0
  320. package/_types/core/kms/createKmsUserDecryptEip712V1.d.ts.map +1 -0
  321. package/_types/core/kms/createKmsUserDecryptEip712V2.d.ts +1 -1
  322. package/_types/core/kms/createKmsUserDecryptEip712V2.d.ts.map +1 -1
  323. package/_types/core/kms/decryptValuesFromPairs.d.ts +4 -11
  324. package/_types/core/kms/decryptValuesFromPairs.d.ts.map +1 -1
  325. package/_types/core/kms/{fetchKmsSigncryptedShares-p.d.ts → fetchKmsSigncryptedSharesV1-p.d.ts} +10 -12
  326. package/_types/core/kms/fetchKmsSigncryptedSharesV1-p.d.ts.map +1 -0
  327. package/_types/core/kms/fetchKmsSigncryptedSharesV2-p.d.ts +28 -0
  328. package/_types/core/kms/fetchKmsSigncryptedSharesV2-p.d.ts.map +1 -0
  329. package/_types/core/kms/kmsDelegatedUserDecryptEip712V1Types.d.ts +3 -0
  330. package/_types/core/kms/kmsDelegatedUserDecryptEip712V1Types.d.ts.map +1 -0
  331. package/_types/core/kms/kmsUserDecryptEip712V1Types.d.ts +3 -0
  332. package/_types/core/kms/kmsUserDecryptEip712V1Types.d.ts.map +1 -0
  333. package/_types/core/kms/kmsUserDecryptEip712V2Types.d.ts.map +1 -1
  334. package/_types/core/kms/utils.d.ts +0 -4
  335. package/_types/core/kms/utils.d.ts.map +1 -1
  336. package/_types/core/kms/verifyKmsPublicDecryptEip712-p.d.ts +1 -1
  337. package/_types/core/modules/decrypt/module/init-p.d.ts.map +1 -1
  338. package/_types/core/modules/encrypt/module/init-p.d.ts.map +1 -1
  339. package/_types/core/modules/relayer/cleartext/fetchUserDecrypt.d.ts +2 -2
  340. package/_types/core/modules/relayer/cleartext/fetchUserDecrypt.d.ts.map +1 -1
  341. package/_types/core/modules/relayer/module/{fetchDelegatedUserDecrypt.d.ts → fetchDelegatedUserDecryptV1.d.ts} +1 -1
  342. package/_types/core/modules/relayer/module/fetchDelegatedUserDecryptV1.d.ts.map +1 -0
  343. package/_types/core/modules/relayer/module/fetchUserDecrypt.d.ts.map +1 -1
  344. package/_types/core/modules/relayer/module/fetchUserDecryptV1.d.ts +3 -0
  345. package/_types/core/modules/relayer/module/fetchUserDecryptV1.d.ts.map +1 -0
  346. package/_types/core/modules/relayer/module/fetchUserDecryptV2.d.ts +3 -0
  347. package/_types/core/modules/relayer/module/fetchUserDecryptV2.d.ts.map +1 -0
  348. package/_types/core/modules/relayer/module/guards/RelayerResponseFailed.d.ts.map +1 -1
  349. package/_types/core/modules/relayer/module/guards/api-errors/RelayerApiError400NoDetails.d.ts +1 -1
  350. package/_types/core/modules/relayer/module/guards/api-errors/RelayerApiError400NoDetails.d.ts.map +1 -1
  351. package/_types/core/modules/relayer/module/guards/api-errors/RelayerApiError503.d.ts.map +1 -1
  352. package/_types/core/modules/relayer/types.d.ts +18 -5
  353. package/_types/core/modules/relayer/types.d.ts.map +1 -1
  354. package/_types/core/types/kms.d.ts +18 -19
  355. package/_types/core/types/kms.d.ts.map +1 -1
  356. package/_types/core/types/logger.d.ts +3 -3
  357. package/_types/core/types/logger.d.ts.map +1 -1
  358. package/_types/core/types/record-p.d.ts +2 -1
  359. package/_types/core/types/record-p.d.ts.map +1 -1
  360. package/_types/core/types/relayer-p.d.ts +27 -5
  361. package/_types/core/types/relayer-p.d.ts.map +1 -1
  362. package/_types/core/types/signedDecryptionPermit.d.ts +37 -26
  363. package/_types/core/types/signedDecryptionPermit.d.ts.map +1 -1
  364. package/_types/core/types/wasmAssets.d.ts.map +1 -1
  365. package/_types/core/utils-p/decrypt/verifyKmsDelegatedUserDecryptEip712V1.d.ts +14 -0
  366. package/_types/core/utils-p/decrypt/verifyKmsDelegatedUserDecryptEip712V1.d.ts.map +1 -0
  367. package/_types/core/utils-p/decrypt/verifyKmsUserDecryptEip712V1.d.ts +14 -0
  368. package/_types/core/utils-p/decrypt/verifyKmsUserDecryptEip712V1.d.ts.map +1 -0
  369. package/_types/core/utils-p/decrypt/verifyKmsUserDecryptEip712V2.d.ts +14 -0
  370. package/_types/core/utils-p/decrypt/verifyKmsUserDecryptEip712V2.d.ts.map +1 -0
  371. package/_types/core/utils-p/runtime/recoverSigners.d.ts +2 -2
  372. package/_types/wasm/tfhe/TfheApi.d.ts +12 -12
  373. package/_types/wasm/tfhe/v1.5.3/tfhe.d.ts +3 -0
  374. package/_types/wasm/tfhe/{v1.6.1 → v1.6.2}/tfhe.d.ts +88 -85
  375. package/core/_version.ts +1 -1
  376. package/core/actions/base/index.ts +0 -42
  377. package/core/actions/base/signDecryptionPermit.ts +3 -31
  378. package/core/actions/chain/index.ts +0 -28
  379. package/core/actions/chain/parseSignedDecryptionPermit.ts +1 -0
  380. package/core/actions/chain/serializeSignedDecryptionPermit.ts +3 -2
  381. package/core/actions/decrypt/canDecryptValue.ts +2 -16
  382. package/core/actions/decrypt/canDecryptValues.ts +2 -16
  383. package/core/actions/decrypt/canDecryptValuesFromPairs.ts +2 -16
  384. package/core/actions/decrypt/decryptValue.ts +2 -1
  385. package/core/actions/decrypt/decryptValues.ts +3 -1
  386. package/core/actions/decrypt/decryptValuesFromPairs.ts +3 -1
  387. package/core/actions/decrypt/index.ts +0 -6
  388. package/core/actions/host/index.ts +0 -20
  389. package/core/base/bytes.ts +2 -1
  390. package/core/base/cachedFetch.ts +1 -0
  391. package/core/base/environment.ts +210 -0
  392. package/core/base/errors/Sha256VerificationError.ts +22 -0
  393. package/core/base/inflate.ts +373 -0
  394. package/core/base/isomorphicFs.ts +23 -0
  395. package/core/base/isomorphicWorker.ts +96 -123
  396. package/core/base/uint.ts +18 -1
  397. package/core/base/wasm.ts +28 -35
  398. package/core/clients/decorators/base.ts +13 -37
  399. package/core/coprocessor/coprocessorEip712Types.ts +2 -2
  400. package/core/host-contracts/canDecryptValuesFromPairs.ts +7 -7
  401. package/core/host-contracts/getCoprocessorContextSignersAndThreshold-p.ts +2 -2
  402. package/core/host-contracts/getCurrentKmsContextAndEpoch-p.ts +2 -2
  403. package/core/host-contracts/getCurrentKmsContextId-p.ts +2 -2
  404. package/core/host-contracts/getKmsContextSignersAndThreshold-p.ts +2 -2
  405. package/core/kms/PublicDecryptionProof-p.ts +5 -5
  406. package/core/kms/SignedDecryptionPermit-p.ts +67 -357
  407. package/core/kms/SignedDecryptionPermitV1-p.ts +350 -0
  408. package/core/kms/SignedDecryptionPermitV2-p.ts +292 -0
  409. package/core/kms/TransportKeyPair-p.ts +0 -5
  410. package/core/kms/{createKmsDelegatedUserDecryptEip712.ts → createKmsDelegatedUserDecryptEip712V1.ts} +16 -16
  411. package/core/kms/createKmsPublicDecryptEip712.ts +1 -1
  412. package/core/kms/{createKmsUserDecryptEip712.ts → createKmsUserDecryptEip712V1.ts} +31 -22
  413. package/core/kms/createKmsUserDecryptEip712V2.ts +1 -1
  414. package/core/kms/decryptValuesFromPairs.ts +34 -22
  415. package/core/kms/{fetchKmsSigncryptedShares-p.ts → fetchKmsSigncryptedSharesV1-p.ts} +35 -30
  416. package/core/kms/fetchKmsSigncryptedSharesV2-p.ts +176 -0
  417. package/core/kms/{kmsDelegatedUserDecryptEip712Types.ts → kmsDelegatedUserDecryptEip712V1Types.ts} +9 -8
  418. package/core/kms/kmsPublicDecryptEip712Types.ts +1 -1
  419. package/core/kms/{kmsUserDecryptEip712Types.ts → kmsUserDecryptEip712V1Types.ts} +9 -8
  420. package/core/kms/kmsUserDecryptEip712V2Types.ts +2 -1
  421. package/core/kms/publicDecrypt.ts +2 -2
  422. package/core/kms/utils.ts +0 -32
  423. package/core/kms/verifyKmsPublicDecryptEip712-p.ts +3 -3
  424. package/core/modules/decrypt/module/api-p.ts +8 -8
  425. package/core/modules/decrypt/module/init-p.ts +149 -60
  426. package/core/modules/encrypt/module/init-p.ts +377 -67
  427. package/core/modules/relayer/cleartext/fetchPublicDecrypt.ts +3 -3
  428. package/core/modules/relayer/cleartext/fetchUserDecrypt.ts +2 -2
  429. package/core/modules/relayer/module/fetchPublicDecrypt.ts +1 -1
  430. package/core/modules/relayer/module/fetchUserDecrypt.ts +20 -56
  431. package/core/modules/relayer/module/fetchUserDecryptV1.ts +69 -0
  432. package/core/modules/relayer/module/fetchUserDecryptV2.ts +71 -0
  433. package/core/modules/relayer/module/guards/RelayerResponseFailed.ts +10 -2
  434. package/core/modules/relayer/module/guards/api-errors/RelayerApiError400NoDetails.ts +6 -3
  435. package/core/modules/relayer/module/guards/api-errors/RelayerApiError503.ts +2 -0
  436. package/core/modules/relayer/module/index.ts +1 -1
  437. package/core/modules/relayer/types.ts +24 -5
  438. package/core/runtime/HyperWasmSolver-p.ts +5 -9
  439. package/core/runtime/initFhevmEncryptRuntime-p.ts +1 -1
  440. package/core/runtime/initFhevmRuntime-p.ts +1 -1
  441. package/core/types/kms.ts +40 -28
  442. package/core/types/logger.ts +3 -3
  443. package/core/types/record-p.ts +2 -1
  444. package/core/types/relayer-p.ts +48 -5
  445. package/core/types/signedDecryptionPermit.ts +47 -26
  446. package/core/types/wasmAssets.ts +58 -0
  447. package/core/utils-p/decrypt/{verifyKmsDelegatedUserDecryptEip712.ts → verifyKmsDelegatedUserDecryptEip712V1.ts} +9 -9
  448. package/core/utils-p/decrypt/{verifyKmsUserDecryptEip712.ts → verifyKmsUserDecryptEip712V1.ts} +9 -9
  449. package/core/utils-p/decrypt/verifyKmsUserDecryptEip712V2.ts +43 -0
  450. package/core/utils-p/runtime/recoverSigners.ts +2 -2
  451. package/package.json +1 -1
  452. package/wasm/tfhe/TfheApi.d.ts +12 -12
  453. package/wasm/tfhe/loadTfheLib.js +11 -11
  454. package/wasm/tfhe/v1.5.3/startWorkers.js +41 -20
  455. package/wasm/tfhe/v1.5.3/tfhe.d.ts +3 -0
  456. package/wasm/tfhe/v1.6.0-dev/startWorkers.js +41 -20
  457. package/wasm/tfhe/v1.6.0-dev/tfhe.d.ts +3 -0
  458. package/wasm/tfhe/{v1.6.1 → v1.6.2}/startWorkers.js +46 -25
  459. package/wasm/tfhe/{v1.6.1 → v1.6.2}/tfhe-worker.mjs +40 -40
  460. package/wasm/tfhe/{v1.6.1 → v1.6.2}/tfhe.d.ts +88 -85
  461. package/wasm/tfhe/{v1.6.1 → v1.6.2}/tfhe.js +245 -442
  462. package/wasm/tfhe/v1.6.2/tfhe_bg.wasm +0 -0
  463. package/wasm/tfhe/v1.6.2/tfhe_bg.wasm.base64.js +7 -0
  464. package/wasm/wasmBaseUrl.js +17 -54
  465. package/_cjs/core/actions/base/createVerifiedInputProofFromRawBytes.js +0 -10
  466. package/_cjs/core/actions/base/createVerifiedInputProofFromRawBytes.js.map +0 -1
  467. package/_cjs/core/actions/base/fetchKmsSigncryptedShares.js +0 -19
  468. package/_cjs/core/actions/base/fetchKmsSigncryptedShares.js.map +0 -1
  469. package/_cjs/core/actions/base/fetchVerifiedInputProof.js +0 -11
  470. package/_cjs/core/actions/base/fetchVerifiedInputProof.js.map +0 -1
  471. package/_cjs/core/actions/base/readKmsSignersContext.js +0 -11
  472. package/_cjs/core/actions/base/readKmsSignersContext.js.map +0 -1
  473. package/_cjs/core/actions/base/verifyHandlesCoprocessorSignatures.js +0 -31
  474. package/_cjs/core/actions/base/verifyHandlesCoprocessorSignatures.js.map +0 -1
  475. package/_cjs/core/actions/base/verifyInputProof.js +0 -24
  476. package/_cjs/core/actions/base/verifyInputProof.js.map +0 -1
  477. package/_cjs/core/actions/base/verifyZkProofCoprocessorSignatures.js +0 -17
  478. package/_cjs/core/actions/base/verifyZkProofCoprocessorSignatures.js.map +0 -1
  479. package/_cjs/core/actions/chain/createCoprocessorEip712Domain.js +0 -11
  480. package/_cjs/core/actions/chain/createCoprocessorEip712Domain.js.map +0 -1
  481. package/_cjs/core/actions/chain/createKmsDelegatedUserDecryptEip712.js +0 -17
  482. package/_cjs/core/actions/chain/createKmsDelegatedUserDecryptEip712.js.map +0 -1
  483. package/_cjs/core/actions/chain/createKmsEip712Domain.js +0 -11
  484. package/_cjs/core/actions/chain/createKmsEip712Domain.js.map +0 -1
  485. package/_cjs/core/actions/chain/createKmsUserDecryptEip712.js +0 -16
  486. package/_cjs/core/actions/chain/createKmsUserDecryptEip712.js.map +0 -1
  487. package/_cjs/core/actions/chain/verifyKmsDelegatedUserDecryptEip712.js +0 -8
  488. package/_cjs/core/actions/chain/verifyKmsDelegatedUserDecryptEip712.js.map +0 -1
  489. package/_cjs/core/actions/chain/verifyKmsUserDecryptEip712.js +0 -8
  490. package/_cjs/core/actions/chain/verifyKmsUserDecryptEip712.js.map +0 -1
  491. package/_cjs/core/actions/decrypt/decryptKmsSigncryptedShares.js +0 -13
  492. package/_cjs/core/actions/decrypt/decryptKmsSigncryptedShares.js.map +0 -1
  493. package/_cjs/core/kms/createKmsDelegatedUserDecryptEip712.js.map +0 -1
  494. package/_cjs/core/kms/createKmsUserDecryptEip712.js.map +0 -1
  495. package/_cjs/core/kms/fetchKmsSigncryptedShares-p.js.map +0 -1
  496. package/_cjs/core/kms/kmsDelegatedUserDecryptEip712Types.js.map +0 -1
  497. package/_cjs/core/kms/kmsUserDecryptEip712Types.js.map +0 -1
  498. package/_cjs/core/modules/relayer/module/fetchDelegatedUserDecrypt.js.map +0 -1
  499. package/_cjs/core/utils-p/decrypt/verifyKmsDelegatedUserDecryptEip712.js.map +0 -1
  500. package/_cjs/core/utils-p/decrypt/verifyKmsUserDecryptEip712.js.map +0 -1
  501. package/_cjs/wasm/tfhe/v1.6.1/startWorkers.js.map +0 -7
  502. package/_cjs/wasm/tfhe/v1.6.1/tfhe.js.map +0 -7
  503. package/_cjs/wasm/tfhe/v1.6.1/tfhe_bg.wasm +0 -0
  504. package/_cjs/wasm/tfhe/v1.6.1/tfhe_bg.wasm.base64.js +0 -35
  505. package/_cjs/wasm/tfhe/v1.6.1/tfhe_bg.wasm.base64.js.map +0 -7
  506. package/_esm/core/actions/base/createVerifiedInputProofFromRawBytes.js +0 -7
  507. package/_esm/core/actions/base/createVerifiedInputProofFromRawBytes.js.map +0 -1
  508. package/_esm/core/actions/base/fetchKmsSigncryptedShares.js +0 -17
  509. package/_esm/core/actions/base/fetchKmsSigncryptedShares.js.map +0 -1
  510. package/_esm/core/actions/base/fetchVerifiedInputProof.js +0 -8
  511. package/_esm/core/actions/base/fetchVerifiedInputProof.js.map +0 -1
  512. package/_esm/core/actions/base/readKmsSignersContext.js +0 -10
  513. package/_esm/core/actions/base/readKmsSignersContext.js.map +0 -1
  514. package/_esm/core/actions/base/verifyHandlesCoprocessorSignatures.js +0 -35
  515. package/_esm/core/actions/base/verifyHandlesCoprocessorSignatures.js.map +0 -1
  516. package/_esm/core/actions/base/verifyInputProof.js +0 -22
  517. package/_esm/core/actions/base/verifyInputProof.js.map +0 -1
  518. package/_esm/core/actions/base/verifyZkProofCoprocessorSignatures.js +0 -14
  519. package/_esm/core/actions/base/verifyZkProofCoprocessorSignatures.js.map +0 -1
  520. package/_esm/core/actions/chain/createCoprocessorEip712Domain.js +0 -8
  521. package/_esm/core/actions/chain/createCoprocessorEip712Domain.js.map +0 -1
  522. package/_esm/core/actions/chain/createKmsDelegatedUserDecryptEip712.js +0 -15
  523. package/_esm/core/actions/chain/createKmsDelegatedUserDecryptEip712.js.map +0 -1
  524. package/_esm/core/actions/chain/createKmsEip712Domain.js +0 -8
  525. package/_esm/core/actions/chain/createKmsEip712Domain.js.map +0 -1
  526. package/_esm/core/actions/chain/createKmsUserDecryptEip712.js +0 -14
  527. package/_esm/core/actions/chain/createKmsUserDecryptEip712.js.map +0 -1
  528. package/_esm/core/actions/chain/verifyKmsDelegatedUserDecryptEip712.js +0 -5
  529. package/_esm/core/actions/chain/verifyKmsDelegatedUserDecryptEip712.js.map +0 -1
  530. package/_esm/core/actions/chain/verifyKmsUserDecryptEip712.js +0 -5
  531. package/_esm/core/actions/chain/verifyKmsUserDecryptEip712.js.map +0 -1
  532. package/_esm/core/actions/decrypt/decryptKmsSigncryptedShares.js +0 -11
  533. package/_esm/core/actions/decrypt/decryptKmsSigncryptedShares.js.map +0 -1
  534. package/_esm/core/kms/createKmsDelegatedUserDecryptEip712.js.map +0 -1
  535. package/_esm/core/kms/createKmsUserDecryptEip712.js.map +0 -1
  536. package/_esm/core/kms/fetchKmsSigncryptedShares-p.js.map +0 -1
  537. package/_esm/core/kms/kmsDelegatedUserDecryptEip712Types.js.map +0 -1
  538. package/_esm/core/kms/kmsUserDecryptEip712Types.js.map +0 -1
  539. package/_esm/core/modules/relayer/module/fetchDelegatedUserDecrypt.js.map +0 -1
  540. package/_esm/core/utils-p/decrypt/verifyKmsDelegatedUserDecryptEip712.js.map +0 -1
  541. package/_esm/core/utils-p/decrypt/verifyKmsUserDecryptEip712.js.map +0 -1
  542. package/_esm/wasm/tfhe/v1.6.1/tfhe_bg.wasm +0 -0
  543. package/_esm/wasm/tfhe/v1.6.1/tfhe_bg.wasm.base64.js +0 -7
  544. package/_types/core/actions/base/createVerifiedInputProofFromRawBytes.d.ts +0 -14
  545. package/_types/core/actions/base/createVerifiedInputProofFromRawBytes.d.ts.map +0 -1
  546. package/_types/core/actions/base/fetchKmsSigncryptedShares.d.ts +0 -41
  547. package/_types/core/actions/base/fetchKmsSigncryptedShares.d.ts.map +0 -1
  548. package/_types/core/actions/base/fetchVerifiedInputProof.d.ts +0 -14
  549. package/_types/core/actions/base/fetchVerifiedInputProof.d.ts.map +0 -1
  550. package/_types/core/actions/base/readKmsSignersContext.d.ts +0 -6
  551. package/_types/core/actions/base/readKmsSignersContext.d.ts.map +0 -1
  552. package/_types/core/actions/base/verifyHandlesCoprocessorSignatures.d.ts +0 -14
  553. package/_types/core/actions/base/verifyHandlesCoprocessorSignatures.d.ts.map +0 -1
  554. package/_types/core/actions/base/verifyInputProof.d.ts +0 -14
  555. package/_types/core/actions/base/verifyInputProof.d.ts.map +0 -1
  556. package/_types/core/actions/base/verifyZkProofCoprocessorSignatures.d.ts +0 -11
  557. package/_types/core/actions/base/verifyZkProofCoprocessorSignatures.d.ts.map +0 -1
  558. package/_types/core/actions/chain/createCoprocessorEip712Domain.d.ts +0 -7
  559. package/_types/core/actions/chain/createCoprocessorEip712Domain.d.ts.map +0 -1
  560. package/_types/core/actions/chain/createKmsDelegatedUserDecryptEip712.d.ts +0 -15
  561. package/_types/core/actions/chain/createKmsDelegatedUserDecryptEip712.d.ts.map +0 -1
  562. package/_types/core/actions/chain/createKmsEip712Domain.d.ts +0 -7
  563. package/_types/core/actions/chain/createKmsEip712Domain.d.ts.map +0 -1
  564. package/_types/core/actions/chain/createKmsUserDecryptEip712.d.ts +0 -14
  565. package/_types/core/actions/chain/createKmsUserDecryptEip712.d.ts.map +0 -1
  566. package/_types/core/actions/chain/verifyKmsDelegatedUserDecryptEip712.d.ts +0 -7
  567. package/_types/core/actions/chain/verifyKmsDelegatedUserDecryptEip712.d.ts.map +0 -1
  568. package/_types/core/actions/chain/verifyKmsUserDecryptEip712.d.ts +0 -7
  569. package/_types/core/actions/chain/verifyKmsUserDecryptEip712.d.ts.map +0 -1
  570. package/_types/core/actions/decrypt/decryptKmsSigncryptedShares.d.ts +0 -13
  571. package/_types/core/actions/decrypt/decryptKmsSigncryptedShares.d.ts.map +0 -1
  572. package/_types/core/kms/createKmsDelegatedUserDecryptEip712.d.ts +0 -15
  573. package/_types/core/kms/createKmsDelegatedUserDecryptEip712.d.ts.map +0 -1
  574. package/_types/core/kms/createKmsUserDecryptEip712.d.ts +0 -26
  575. package/_types/core/kms/createKmsUserDecryptEip712.d.ts.map +0 -1
  576. package/_types/core/kms/fetchKmsSigncryptedShares-p.d.ts.map +0 -1
  577. package/_types/core/kms/kmsDelegatedUserDecryptEip712Types.d.ts +0 -3
  578. package/_types/core/kms/kmsDelegatedUserDecryptEip712Types.d.ts.map +0 -1
  579. package/_types/core/kms/kmsUserDecryptEip712Types.d.ts +0 -3
  580. package/_types/core/kms/kmsUserDecryptEip712Types.d.ts.map +0 -1
  581. package/_types/core/modules/relayer/module/fetchDelegatedUserDecrypt.d.ts.map +0 -1
  582. package/_types/core/utils-p/decrypt/verifyKmsDelegatedUserDecryptEip712.d.ts +0 -14
  583. package/_types/core/utils-p/decrypt/verifyKmsDelegatedUserDecryptEip712.d.ts.map +0 -1
  584. package/_types/core/utils-p/decrypt/verifyKmsUserDecryptEip712.d.ts +0 -14
  585. package/_types/core/utils-p/decrypt/verifyKmsUserDecryptEip712.d.ts.map +0 -1
  586. package/core/actions/base/createVerifiedInputProofFromRawBytes.ts +0 -24
  587. package/core/actions/base/fetchKmsSigncryptedShares.ts +0 -83
  588. package/core/actions/base/fetchVerifiedInputProof.ts +0 -25
  589. package/core/actions/base/readKmsSignersContext.ts +0 -20
  590. package/core/actions/base/verifyHandlesCoprocessorSignatures.ts +0 -60
  591. package/core/actions/base/verifyInputProof.ts +0 -45
  592. package/core/actions/base/verifyZkProofCoprocessorSignatures.ts +0 -32
  593. package/core/actions/chain/createCoprocessorEip712Domain.ts +0 -16
  594. package/core/actions/chain/createKmsDelegatedUserDecryptEip712.ts +0 -36
  595. package/core/actions/chain/createKmsEip712Domain.ts +0 -16
  596. package/core/actions/chain/createKmsUserDecryptEip712.ts +0 -34
  597. package/core/actions/chain/verifyKmsDelegatedUserDecryptEip712.ts +0 -16
  598. package/core/actions/chain/verifyKmsUserDecryptEip712.ts +0 -16
  599. package/core/actions/decrypt/decryptKmsSigncryptedShares.ts +0 -34
  600. package/wasm/tfhe/v1.6.1/tfhe_bg.wasm +0 -0
  601. package/wasm/tfhe/v1.6.1/tfhe_bg.wasm.base64.js +0 -7
  602. /package/_cjs/wasm/tfhe/{v1.6.1 → v1.6.2}/tfhe_bg.wasm.base64.d.ts +0 -0
  603. /package/_esm/wasm/tfhe/{v1.6.1 → v1.6.2}/tfhe_bg.wasm.base64.d.ts +0 -0
  604. /package/_types/wasm/tfhe/{v1.6.1 → v1.6.2}/tfhe_bg.wasm.base64.d.ts +0 -0
  605. /package/core/modules/relayer/module/{fetchDelegatedUserDecrypt.ts → fetchDelegatedUserDecryptV1.ts} +0 -0
  606. /package/wasm/tfhe/{v1.6.1 → v1.6.2}/tfhe_bg.wasm.base64.d.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
 
@@ -6,95 +6,171 @@ import type {
6
6
  TkmsModuleInfo,
7
7
  } from '../types.js';
8
8
  import type { KmsLibApi, TkmsVersion } from '../../../../wasm/tkms/KmsLibApi.js';
9
- import type { KmsAssetMetadata } from '../../../../wasm/tkms/loadKmsLib.js';
10
- import { isBrowserLike } from '../../../base/isomorphicWorker.js';
9
+ import type { KmsAssetMetadata, KmsAssets } from '../../../../wasm/tkms/loadKmsLib.js';
10
+ import { isBrowserLike } from '../../../base/environment.js';
11
11
  import { isomorphicCompileVerifiedWasm, isomorphicCompileWasmFromBase64 } from '../../../base/wasm.js';
12
12
  import { assertIsFhevmRuntime } from '../../../runtime/CoreFhevmRuntime-p.js';
13
- import { wasmBaseUrl } from '../../../../wasm/wasmBaseUrl.js';
14
13
  import { kmsAssetsWithVersion, loadKmsLib, loadKmsWasmBase64 } from '../../../../wasm/tkms/loadKmsLib.js';
14
+ import { isomorphicFileUrlExists } from '../../../base/isomorphicFs.js';
15
15
 
16
16
  ////////////////////////////////////////////////////////////////////////////////
17
17
 
18
- const ownerUidByVersion = new Map<TkmsVersion, string>();
19
- const cachedTkmsModulePromiseByVersion = new Map<TkmsVersion, Promise<KmsLibApi>>();
20
- const moduleInfoByVersion = new Map<TkmsVersion, TkmsModuleInfo>();
21
-
22
- ////////////////////////////////////////////////////////////////////////////////
23
-
24
- // Pure JS file (not compiled by tsc) — provides cross-platform base URL
25
- // for resolving WASM paths. Uses import.meta.url in ESM, __filename in CJS.
26
-
27
18
  // (Node only) Path relative to src/wasm/ where wasmBaseUrl is anchored
28
- const nodeDefaultLocateFile = (file: string): URL => {
19
+ const nodeDefaultLocateFile = async (file: string): Promise<URL> => {
20
+ // Pure JS file (not compiled by tsc) — provides cross-platform base URL
21
+ // for resolving WASM paths. Uses import.meta.url in ESM, __filename in CJS.
22
+ const { wasmBaseUrl } = await import('../../../../wasm/wasmBaseUrl.js');
29
23
  return new URL(`./tkms/${file}`, wasmBaseUrl);
30
24
  };
31
25
 
26
+ ////////////////////////////////////////////////////////////////////////////////
27
+
28
+ type KmsAssetResolution = 'user' | 'node' | 'none';
29
+
32
30
  type ResolvedKmsAsset = KmsAssetMetadata & {
33
31
  readonly url: URL | undefined;
32
+ readonly resolution: KmsAssetResolution;
34
33
  };
35
34
 
36
- function _resolveKmsAsset(asset: KmsAssetMetadata, locateFile: FhevmRuntimeConfig['locateFile']): ResolvedKmsAsset {
35
+ type ResolvedKmsAssets = {
36
+ readonly wasm: ResolvedKmsAsset;
37
+ };
38
+
39
+ ////////////////////////////////////////////////////////////////////////////////
40
+
41
+ async function _resolveSingleKmsAsset(
42
+ asset: KmsAssetMetadata,
43
+ locateFile: FhevmRuntimeConfig['locateFile'],
44
+ ): Promise<ResolvedKmsAsset> {
37
45
  let url: URL | undefined;
46
+ let resolution: KmsAssetResolution = 'none';
38
47
 
39
48
  if (locateFile !== undefined) {
40
- url = locateFile(asset.filename);
49
+ const located = locateFile(asset.filename) as unknown;
50
+ if (located === null || located === undefined) {
51
+ url = undefined;
52
+ } else if (located instanceof URL) {
53
+ url = located;
54
+ } else {
55
+ throw new TypeError(
56
+ `Invalid locateFile result for TKMS asset '${asset.filename}': expected URL, null, or undefined.`,
57
+ );
58
+ }
59
+ resolution = 'user';
41
60
  } else if (!isBrowserLike()) {
42
- url = nodeDefaultLocateFile(asset.localRelativePath);
61
+ url = await nodeDefaultLocateFile(asset.localRelativePath);
62
+ resolution = 'node';
63
+ }
64
+
65
+ return Object.freeze({ ...asset, url, resolution });
66
+ }
67
+
68
+ ////////////////////////////////////////////////////////////////////////////////
69
+
70
+ async function _resolveKmsAssets(
71
+ assets: KmsAssets,
72
+ locateFile: FhevmRuntimeConfig['locateFile'],
73
+ ): Promise<{ readonly wasm: ResolvedKmsAsset }> {
74
+ let wasm = await _resolveSingleKmsAsset(assets.wasm, locateFile);
75
+
76
+ // Only auto-derived ('node') file:// URLs need on-disk validation; the mode is
77
+ // shared across all assets, so checking one is enough to know the set's mode.
78
+ if (wasm.resolution === 'node') {
79
+ const allExist = await isomorphicFileUrlExists(wasm.url);
80
+ if (!allExist) {
81
+ wasm = Object.freeze({ ...wasm, url: undefined });
82
+ }
43
83
  }
44
84
 
45
- return Object.freeze({ ...asset, url });
85
+ return { wasm };
86
+ }
87
+
88
+ ////////////////////////////////////////////////////////////////////////////////
89
+
90
+ function _logResolvedKmsAssets(resolvedAssets: ResolvedKmsAssets, logger: FhevmRuntimeConfig['logger']): void {
91
+ const { wasm } = resolvedAssets;
92
+ if (wasm.resolution === 'user') {
93
+ logger?.debug?.(`resolve tkms wasm filename using 'locateFile' function: ${wasm.filename} -> url: ${wasm.url}`);
94
+ } else if (wasm.resolution === 'node') {
95
+ if (wasm.url === undefined) {
96
+ // Auto-derived assets were missing on disk (e.g. a bundler such as Turbopack
97
+ // relocated the package) and were cleared by _resolveTkmsAssets -> base64.
98
+ logger?.debug?.(
99
+ `tkms auto-derived assets not found on disk (bundler relocation?); using embedded base64 ` +
100
+ `(wasm: ${wasm.localRelativePath})`,
101
+ );
102
+ } else {
103
+ logger?.debug?.(`resolve tkms wasm local path: ${wasm.localRelativePath} -> url: ${wasm.url}`);
104
+ }
105
+ } else {
106
+ // 'none': browser zero-config (no 'locateFile', not Node) -> embedded base64.
107
+ logger?.debug?.(`resolve tkms assets using embedded base64 (browser, no 'locateFile')`);
108
+ }
46
109
  }
47
110
 
111
+ ////////////////////////////////////////////////////////////////////////////////
112
+
48
113
  type ResolvedTkmsModuleConfig = {
49
114
  readonly version: TkmsVersion;
50
- readonly wasm: ResolvedKmsAsset;
115
+ readonly assets: ResolvedKmsAssets;
51
116
  readonly logger: FhevmRuntimeConfig['logger'];
52
117
  };
53
118
 
54
119
  const resolvedTkmsModuleConfigByVersion = new Map<TkmsVersion, ResolvedTkmsModuleConfig>();
120
+ const resolvingTkmsModuleConfigPromiseByVersion = new Map<TkmsVersion, Promise<ResolvedTkmsModuleConfig>>();
55
121
 
56
122
  /**
57
123
  * @internal
58
- * Returns the existing resolved config, or resolves it from the runtime config.
124
+ * Returns the existing resolved config for a TKMS version, or resolves it from
125
+ * the runtime config.
59
126
  */
60
- function _getOrResolveTkmsModuleConfig(runtime: FhevmRuntime, tkmsVersion: TkmsVersion): ResolvedTkmsModuleConfig {
61
- let resolvedTkmsModuleConfig = resolvedTkmsModuleConfigByVersion.get(tkmsVersion);
127
+ async function _getOrResolveTkmsModuleConfig(
128
+ runtime: FhevmRuntime,
129
+ tkmsVersion: TkmsVersion,
130
+ ): Promise<ResolvedTkmsModuleConfig> {
131
+ const resolvedTkmsModuleConfig = resolvedTkmsModuleConfigByVersion.get(tkmsVersion);
62
132
  if (resolvedTkmsModuleConfig !== undefined) {
63
133
  return resolvedTkmsModuleConfig;
64
134
  }
65
135
 
66
- resolvedTkmsModuleConfig = _resolveTkmsModuleConfig(runtime.config, tkmsVersion);
67
-
68
- resolvedTkmsModuleConfigByVersion.set(tkmsVersion, resolvedTkmsModuleConfig);
136
+ let resolvingTkmsModuleConfigPromise = resolvingTkmsModuleConfigPromiseByVersion.get(tkmsVersion);
137
+ if (resolvingTkmsModuleConfigPromise === undefined) {
138
+ resolvingTkmsModuleConfigPromise = _resolveTkmsModuleConfig(runtime.config, tkmsVersion)
139
+ .then((cfg) => {
140
+ resolvedTkmsModuleConfigByVersion.set(tkmsVersion, cfg);
141
+ return cfg;
142
+ })
143
+ .catch((error: unknown) => {
144
+ resolvingTkmsModuleConfigPromiseByVersion.delete(tkmsVersion);
145
+ throw error;
146
+ });
147
+
148
+ resolvingTkmsModuleConfigPromiseByVersion.set(tkmsVersion, resolvingTkmsModuleConfigPromise);
149
+ }
69
150
 
70
- return resolvedTkmsModuleConfig;
151
+ return resolvingTkmsModuleConfigPromise;
71
152
  }
72
153
 
73
- function _resolveTkmsModuleConfig(parameters: FhevmRuntimeConfig, version: TkmsVersion): ResolvedTkmsModuleConfig {
154
+ async function _resolveTkmsModuleConfig(
155
+ parameters: FhevmRuntimeConfig,
156
+ version: TkmsVersion,
157
+ ): Promise<ResolvedTkmsModuleConfig> {
74
158
  const { locateFile } = parameters;
75
159
 
76
160
  const assets = kmsAssetsWithVersion(version);
77
- const wasm = _resolveKmsAsset(assets.wasm, locateFile);
78
161
 
79
- if (locateFile !== undefined) {
80
- parameters.logger?.debug(`resolve kms wasm filename: ${wasm.filename} -> url: ${wasm.url}`);
81
- } else {
82
- /*
83
- if run in Node only, use defaultLocateFile!
84
- */
85
- if (!isBrowserLike()) {
86
- parameters.logger?.debug(`resolve kms wasm local path: ${wasm.localRelativePath} -> url: ${wasm.url}`);
87
- }
88
- }
162
+ const resolvedAssets = await _resolveKmsAssets(assets, locateFile);
163
+
164
+ _logResolvedKmsAssets(resolvedAssets, parameters.logger);
89
165
 
90
166
  // if wasmUrl is undefined, use base64 code instead
91
167
  const cfg = {
92
168
  version,
93
- wasm,
169
+ assets: resolvedAssets,
94
170
  logger: parameters.logger,
95
171
  };
96
172
 
97
- parameters.logger?.debug(JSON.stringify(cfg, null, 2));
173
+ //parameters.logger?.debug?.(JSON.stringify(cfg, null, 2));
98
174
 
99
175
  return cfg;
100
176
  }
@@ -103,6 +179,12 @@ function _resolveTkmsModuleConfig(parameters: FhevmRuntimeConfig, version: TkmsV
103
179
  // initTkmsModule
104
180
  ////////////////////////////////////////////////////////////////////////////////
105
181
 
182
+ const ownerUidByVersion = new Map<TkmsVersion, string>();
183
+ const cachedTkmsModulePromiseByVersion = new Map<TkmsVersion, Promise<KmsLibApi>>();
184
+ const moduleInfoByVersion = new Map<TkmsVersion, TkmsModuleInfo>();
185
+
186
+ ////////////////////////////////////////////////////////////////////////////////
187
+
106
188
  type TkmsInitInput = RequestInfo | URL | Response | BufferSource | WebAssembly.Module;
107
189
 
108
190
  type TkmsLibInitAsyncParameters = {
@@ -121,40 +203,47 @@ export async function initTkmsModule(runtime: FhevmRuntime, parameters: InitTkms
121
203
 
122
204
  ownerUidByVersion.set(parameters.tkmsVersion, runtime.uid);
123
205
 
124
- // Cache the TKMS initialization promise once and keep it cached even if it
125
- // rejects.
206
+ // Cache the whole initialization promise before the first await. Several
207
+ // clients may call initTkmsModule concurrently during startup.
126
208
  //
127
- // Retry is not supported:
128
- // -----------------------
129
- // The underlying KMS/WASM bindings
130
- // keep module-level state that cannot be reset reliably after a partial
131
- // initialization failure; later callers should observe the original error
132
- // instead of retrying against half-initialized state.
209
+ // Retry is not supported
133
210
 
134
211
  let cachedTkmsModulePromise = cachedTkmsModulePromiseByVersion.get(parameters.tkmsVersion);
135
212
  if (cachedTkmsModulePromise === undefined) {
136
- // resolve is sync
137
- const cfg = _getOrResolveTkmsModuleConfig(runtime, parameters.tkmsVersion);
138
- cachedTkmsModulePromise = _initTkmsModule(cfg);
213
+ cachedTkmsModulePromise = (async () => {
214
+ // resolve is async
215
+ const cfg = await _getOrResolveTkmsModuleConfig(runtime, parameters.tkmsVersion);
216
+ return await _initTkmsModule(cfg);
217
+ })();
218
+
139
219
  cachedTkmsModulePromiseByVersion.set(parameters.tkmsVersion, cachedTkmsModulePromise);
140
220
  }
141
221
 
142
222
  return cachedTkmsModulePromise;
143
223
  }
144
224
 
225
+ async function _compileWasmModule(cfg: ResolvedTkmsModuleConfig): Promise<WebAssembly.Module> {
226
+ let wasmModule;
227
+
228
+ if (cfg.assets.wasm.url !== undefined) {
229
+ cfg.logger?.debug?.(`compile tkms verified wasm at: ${cfg.assets.wasm.url}`);
230
+ wasmModule = await isomorphicCompileVerifiedWasm(cfg.assets.wasm.url, cfg.assets.wasm.sha256);
231
+ } else {
232
+ const { tkmsWasmBase64, tkmsWasmBase64CompressionFormat } = await loadKmsWasmBase64(cfg.version);
233
+ cfg.logger?.debug?.(
234
+ `compile tkms wasm from embedded base64 (compression:${tkmsWasmBase64CompressionFormat ?? 'none'})`,
235
+ );
236
+ wasmModule = await isomorphicCompileWasmFromBase64(tkmsWasmBase64, tkmsWasmBase64CompressionFormat);
237
+ }
238
+
239
+ return wasmModule;
240
+ }
241
+
145
242
  async function _initTkmsModule(cfg: ResolvedTkmsModuleConfig): Promise<KmsLibApi> {
146
243
  const kmsLib = await loadKmsLib(cfg.version);
147
244
 
148
245
  // Compile WASM module (see matrix in types.ts)
149
- let wasmModule;
150
- if (cfg.wasm.url !== undefined) {
151
- cfg.logger?.debug(`compile verified wasm at: ${cfg.wasm.url}`);
152
- wasmModule = await isomorphicCompileVerifiedWasm(cfg.wasm.url, cfg.wasm.sha256);
153
- } else {
154
- const { tkmsWasmBase64, tkmsWasmBase64IsGzipped } = await loadKmsWasmBase64(cfg.version);
155
- cfg.logger?.debug(`compile wasm from embedded base64 (compression:${tkmsWasmBase64IsGzipped})`);
156
- wasmModule = await isomorphicCompileWasmFromBase64(tkmsWasmBase64, tkmsWasmBase64IsGzipped ? 'gzip' : undefined);
157
- }
246
+ const wasmModule = await _compileWasmModule(cfg);
158
247
 
159
248
  const input: TkmsLibInitAsyncParameters = { module_or_path: wasmModule };
160
249
 
@@ -171,7 +260,7 @@ async function _initTkmsModule(cfg: ResolvedTkmsModuleConfig): Promise<KmsLibApi
171
260
  moduleInfoByVersion.set(
172
261
  cfg.version,
173
262
  Object.freeze({
174
- wasmUrl: cfg.wasm.url ? new URL(cfg.wasm.url) : undefined,
263
+ wasmUrl: cfg.assets.wasm.url ? new URL(cfg.assets.wasm.url) : undefined,
175
264
  version: wasmInfo.version,
176
265
  name: wasmInfo.name,
177
266
  memory,