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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (259) hide show
  1. package/README.md +5 -5
  2. package/_cjs/core/_version.js +1 -1
  3. package/_cjs/core/actions/encrypt/encryptValue.js +2 -1
  4. package/_cjs/core/actions/encrypt/encryptValue.js.map +1 -1
  5. package/_cjs/core/actions/encrypt/encryptValues.js +2 -1
  6. package/_cjs/core/actions/encrypt/encryptValues.js.map +1 -1
  7. package/_cjs/core/actions/encrypt/generateZkProof.js +2 -1
  8. package/_cjs/core/actions/encrypt/generateZkProof.js.map +1 -1
  9. package/_cjs/core/actions/host/readKmsVerifierContractData.js +1 -1
  10. package/_cjs/core/actions/host/readKmsVerifierContractData.js.map +1 -1
  11. package/_cjs/core/base/cachedFetch.js +1 -1
  12. package/_cjs/core/base/cachedFetch.js.map +1 -1
  13. package/_cjs/core/handle/FheType.js +4 -0
  14. package/_cjs/core/handle/FheType.js.map +1 -1
  15. package/_cjs/core/host-contracts/HostContractVersion-p.js +4 -0
  16. package/_cjs/core/host-contracts/HostContractVersion-p.js.map +1 -1
  17. package/_cjs/core/host-contracts/KmsSignersContext-p.js +15 -25
  18. package/_cjs/core/host-contracts/KmsSignersContext-p.js.map +1 -1
  19. package/_cjs/core/host-contracts/getKmsContextSignersAndThreshold-p.js.map +1 -1
  20. package/_cjs/core/host-contracts/getKmsContextSignersAndThresholdFromExtraData-p.js +7 -6
  21. package/_cjs/core/host-contracts/getKmsContextSignersAndThresholdFromExtraData-p.js.map +1 -1
  22. package/_cjs/core/host-contracts/readKmsSignersContext-p.js +54 -66
  23. package/_cjs/core/host-contracts/readKmsSignersContext-p.js.map +1 -1
  24. package/_cjs/core/kms/KmsSigncryptedShares-p.js +40 -4
  25. package/_cjs/core/kms/KmsSigncryptedShares-p.js.map +1 -1
  26. package/_cjs/core/kms/PublicDecryptionProof-p.js +4 -3
  27. package/_cjs/core/kms/PublicDecryptionProof-p.js.map +1 -1
  28. package/_cjs/core/kms/SignedDecryptionPermitV1-p.js +1 -14
  29. package/_cjs/core/kms/SignedDecryptionPermitV1-p.js.map +1 -1
  30. package/_cjs/core/kms/SignedDecryptionPermitV2-p.js +3 -15
  31. package/_cjs/core/kms/SignedDecryptionPermitV2-p.js.map +1 -1
  32. package/_cjs/core/kms/createKmsDelegatedUserDecryptEip712V1.js +3 -4
  33. package/_cjs/core/kms/createKmsDelegatedUserDecryptEip712V1.js.map +1 -1
  34. package/_cjs/core/kms/createKmsUserDecryptEip712V1.js +6 -5
  35. package/_cjs/core/kms/createKmsUserDecryptEip712V1.js.map +1 -1
  36. package/_cjs/core/kms/createKmsUserDecryptEip712V2.js +4 -5
  37. package/_cjs/core/kms/createKmsUserDecryptEip712V2.js.map +1 -1
  38. package/_cjs/core/kms/fetchKmsSigncryptedSharesV1-p.js +1 -1
  39. package/_cjs/core/kms/fetchKmsSigncryptedSharesV1-p.js.map +1 -1
  40. package/_cjs/core/kms/fetchKmsSigncryptedSharesV2-p.js +1 -1
  41. package/_cjs/core/kms/fetchKmsSigncryptedSharesV2-p.js.map +1 -1
  42. package/_cjs/core/kms/kmsExtraData-p.js +234 -0
  43. package/_cjs/core/kms/kmsExtraData-p.js.map +1 -0
  44. package/_cjs/core/kms/publicDecrypt.js +4 -4
  45. package/_cjs/core/kms/publicDecrypt.js.map +1 -1
  46. package/_cjs/core/kms/verifyKmsPublicDecryptEip712-p.js +5 -4
  47. package/_cjs/core/kms/verifyKmsPublicDecryptEip712-p.js.map +1 -1
  48. package/_cjs/core/modules/decrypt/mock.js +6 -6
  49. package/_cjs/core/modules/decrypt/mock.js.map +1 -1
  50. package/_cjs/core/modules/decrypt/module/api-p.js +7 -7
  51. package/_cjs/core/modules/decrypt/module/api-p.js.map +1 -1
  52. package/_cjs/core/modules/relayer/cleartext/fetchCoprocessorSignatures.js +53 -3
  53. package/_cjs/core/modules/relayer/cleartext/fetchCoprocessorSignatures.js.map +1 -1
  54. package/_cjs/core/modules/relayer/cleartext/{fetchDelegatedUserDecrypt.js → fetchDelegatedUserDecryptV1.js} +67 -21
  55. package/_cjs/core/modules/relayer/cleartext/fetchDelegatedUserDecryptV1.js.map +1 -0
  56. package/_cjs/core/modules/relayer/cleartext/fetchPublicDecrypt.js +61 -4
  57. package/_cjs/core/modules/relayer/cleartext/fetchPublicDecrypt.js.map +1 -1
  58. package/_cjs/core/modules/relayer/cleartext/fetchUserDecrypt.js +9 -108
  59. package/_cjs/core/modules/relayer/cleartext/fetchUserDecrypt.js.map +1 -1
  60. package/_cjs/core/modules/relayer/cleartext/fetchUserDecryptV1.js +163 -0
  61. package/_cjs/core/modules/relayer/cleartext/fetchUserDecryptV1.js.map +1 -0
  62. package/_cjs/core/modules/relayer/cleartext/fetchUserDecryptV2.js +7 -0
  63. package/_cjs/core/modules/relayer/cleartext/fetchUserDecryptV2.js.map +1 -0
  64. package/_cjs/core/modules/relayer/cleartext/forgeFhevmV1.js +83 -0
  65. package/_cjs/core/modules/relayer/cleartext/forgeFhevmV1.js.map +1 -0
  66. package/_cjs/core/modules/relayer/cleartext/mock.js +2 -2
  67. package/_cjs/core/modules/relayer/cleartext/mock.js.map +1 -1
  68. package/_cjs/core/modules/relayer/cleartext/signers.js +14 -0
  69. package/_cjs/core/modules/relayer/cleartext/signers.js.map +1 -1
  70. package/_cjs/ethers/internal/ethereum-ct.js +11 -0
  71. package/_cjs/ethers/internal/ethereum-ct.js.map +1 -1
  72. package/_cjs/ethers/internal/runtime-ct.js +9 -7
  73. package/_cjs/ethers/internal/runtime-ct.js.map +1 -1
  74. package/_cjs/viem/internal/ethereum-ct.js +8 -0
  75. package/_cjs/viem/internal/ethereum-ct.js.map +1 -1
  76. package/_cjs/viem/internal/runtime-ct.js +9 -7
  77. package/_cjs/viem/internal/runtime-ct.js.map +1 -1
  78. package/_cjs/wasm/tfhe/loadTfheLib.js.map +1 -1
  79. package/_cjs/wasm/tkms/loadKmsLib.js.map +1 -1
  80. package/_esm/core/_version.js +1 -1
  81. package/_esm/core/actions/encrypt/encryptValue.js +2 -1
  82. package/_esm/core/actions/encrypt/encryptValue.js.map +1 -1
  83. package/_esm/core/actions/encrypt/encryptValues.js +2 -1
  84. package/_esm/core/actions/encrypt/encryptValues.js.map +1 -1
  85. package/_esm/core/actions/encrypt/generateZkProof.js +2 -1
  86. package/_esm/core/actions/encrypt/generateZkProof.js.map +1 -1
  87. package/_esm/core/actions/host/readKmsVerifierContractData.js +2 -2
  88. package/_esm/core/actions/host/readKmsVerifierContractData.js.map +1 -1
  89. package/_esm/core/base/cachedFetch.js +1 -1
  90. package/_esm/core/base/cachedFetch.js.map +1 -1
  91. package/_esm/core/handle/FheType.js +10 -0
  92. package/_esm/core/handle/FheType.js.map +1 -1
  93. package/_esm/core/host-contracts/HostContractVersion-p.js +6 -0
  94. package/_esm/core/host-contracts/HostContractVersion-p.js.map +1 -1
  95. package/_esm/core/host-contracts/KmsSignersContext-p.js +16 -25
  96. package/_esm/core/host-contracts/KmsSignersContext-p.js.map +1 -1
  97. package/_esm/core/host-contracts/getKmsContextSignersAndThreshold-p.js.map +1 -1
  98. package/_esm/core/host-contracts/getKmsContextSignersAndThresholdFromExtraData-p.js +6 -5
  99. package/_esm/core/host-contracts/getKmsContextSignersAndThresholdFromExtraData-p.js.map +1 -1
  100. package/_esm/core/host-contracts/readKmsSignersContext-p.js +132 -68
  101. package/_esm/core/host-contracts/readKmsSignersContext-p.js.map +1 -1
  102. package/_esm/core/kms/KmsSigncryptedShares-p.js +70 -4
  103. package/_esm/core/kms/KmsSigncryptedShares-p.js.map +1 -1
  104. package/_esm/core/kms/PublicDecryptionProof-p.js +4 -3
  105. package/_esm/core/kms/PublicDecryptionProof-p.js.map +1 -1
  106. package/_esm/core/kms/SignedDecryptionPermitV1-p.js +2 -32
  107. package/_esm/core/kms/SignedDecryptionPermitV1-p.js.map +1 -1
  108. package/_esm/core/kms/SignedDecryptionPermitV2-p.js +4 -16
  109. package/_esm/core/kms/SignedDecryptionPermitV2-p.js.map +1 -1
  110. package/_esm/core/kms/createKmsDelegatedUserDecryptEip712V1.js +3 -4
  111. package/_esm/core/kms/createKmsDelegatedUserDecryptEip712V1.js.map +1 -1
  112. package/_esm/core/kms/createKmsUserDecryptEip712V1.js +7 -6
  113. package/_esm/core/kms/createKmsUserDecryptEip712V1.js.map +1 -1
  114. package/_esm/core/kms/createKmsUserDecryptEip712V2.js +4 -5
  115. package/_esm/core/kms/createKmsUserDecryptEip712V2.js.map +1 -1
  116. package/_esm/core/kms/fetchKmsSigncryptedSharesV1-p.js +26 -2
  117. package/_esm/core/kms/fetchKmsSigncryptedSharesV1-p.js.map +1 -1
  118. package/_esm/core/kms/fetchKmsSigncryptedSharesV2-p.js +2 -2
  119. package/_esm/core/kms/fetchKmsSigncryptedSharesV2-p.js.map +1 -1
  120. package/_esm/core/kms/kmsExtraData-p.js +298 -0
  121. package/_esm/core/kms/kmsExtraData-p.js.map +1 -0
  122. package/_esm/core/kms/publicDecrypt.js +5 -5
  123. package/_esm/core/kms/publicDecrypt.js.map +1 -1
  124. package/_esm/core/kms/verifyKmsPublicDecryptEip712-p.js +5 -4
  125. package/_esm/core/kms/verifyKmsPublicDecryptEip712-p.js.map +1 -1
  126. package/_esm/core/modules/decrypt/mock.js +6 -6
  127. package/_esm/core/modules/decrypt/mock.js.map +1 -1
  128. package/_esm/core/modules/decrypt/module/api-p.js +7 -7
  129. package/_esm/core/modules/decrypt/module/api-p.js.map +1 -1
  130. package/_esm/core/modules/relayer/cleartext/fetchCoprocessorSignatures.js +69 -12
  131. package/_esm/core/modules/relayer/cleartext/fetchCoprocessorSignatures.js.map +1 -1
  132. package/_esm/core/modules/relayer/cleartext/{fetchDelegatedUserDecrypt.js → fetchDelegatedUserDecryptV1.js} +76 -22
  133. package/_esm/core/modules/relayer/cleartext/fetchDelegatedUserDecryptV1.js.map +1 -0
  134. package/_esm/core/modules/relayer/cleartext/fetchPublicDecrypt.js +77 -4
  135. package/_esm/core/modules/relayer/cleartext/fetchPublicDecrypt.js.map +1 -1
  136. package/_esm/core/modules/relayer/cleartext/fetchUserDecrypt.js +13 -114
  137. package/_esm/core/modules/relayer/cleartext/fetchUserDecrypt.js.map +1 -1
  138. package/_esm/core/modules/relayer/cleartext/fetchUserDecryptV1.js +173 -0
  139. package/_esm/core/modules/relayer/cleartext/fetchUserDecryptV1.js.map +1 -0
  140. package/_esm/core/modules/relayer/cleartext/fetchUserDecryptV2.js +6 -0
  141. package/_esm/core/modules/relayer/cleartext/fetchUserDecryptV2.js.map +1 -0
  142. package/_esm/core/modules/relayer/cleartext/forgeFhevmV1.js +140 -0
  143. package/_esm/core/modules/relayer/cleartext/forgeFhevmV1.js.map +1 -0
  144. package/_esm/core/modules/relayer/cleartext/mock.js +1 -1
  145. package/_esm/core/modules/relayer/cleartext/mock.js.map +1 -1
  146. package/_esm/core/modules/relayer/cleartext/signers.js +26 -0
  147. package/_esm/core/modules/relayer/cleartext/signers.js.map +1 -1
  148. package/_esm/ethers/internal/ethereum-ct.js +12 -1
  149. package/_esm/ethers/internal/ethereum-ct.js.map +1 -1
  150. package/_esm/ethers/internal/runtime-ct.js +9 -7
  151. package/_esm/ethers/internal/runtime-ct.js.map +1 -1
  152. package/_esm/viem/internal/ethereum-ct.js +10 -2
  153. package/_esm/viem/internal/ethereum-ct.js.map +1 -1
  154. package/_esm/viem/internal/runtime-ct.js +9 -7
  155. package/_esm/viem/internal/runtime-ct.js.map +1 -1
  156. package/_types/core/actions/encrypt/encryptValue.d.ts.map +1 -1
  157. package/_types/core/actions/encrypt/encryptValues.d.ts.map +1 -1
  158. package/_types/core/actions/encrypt/generateZkProof.d.ts.map +1 -1
  159. package/_types/core/base/cachedFetch.d.ts.map +1 -1
  160. package/_types/core/handle/FheType.d.ts +8 -0
  161. package/_types/core/handle/FheType.d.ts.map +1 -1
  162. package/_types/core/host-contracts/HostContractVersion-p.d.ts +8 -0
  163. package/_types/core/host-contracts/HostContractVersion-p.d.ts.map +1 -1
  164. package/_types/core/host-contracts/KmsSignersContext-p.d.ts +3 -2
  165. package/_types/core/host-contracts/KmsSignersContext-p.d.ts.map +1 -1
  166. package/_types/core/host-contracts/getKmsContextSignersAndThresholdFromExtraData-p.d.ts +3 -2
  167. package/_types/core/host-contracts/getKmsContextSignersAndThresholdFromExtraData-p.d.ts.map +1 -1
  168. package/_types/core/host-contracts/readKmsSignersContext-p.d.ts +43 -26
  169. package/_types/core/host-contracts/readKmsSignersContext-p.d.ts.map +1 -1
  170. package/_types/core/kms/KmsSigncryptedShares-p.d.ts +18 -0
  171. package/_types/core/kms/KmsSigncryptedShares-p.d.ts.map +1 -1
  172. package/_types/core/kms/PublicDecryptionProof-p.d.ts.map +1 -1
  173. package/_types/core/kms/SignedDecryptionPermitV1-p.d.ts.map +1 -1
  174. package/_types/core/kms/SignedDecryptionPermitV2-p.d.ts.map +1 -1
  175. package/_types/core/kms/createKmsDelegatedUserDecryptEip712V1.d.ts +2 -1
  176. package/_types/core/kms/createKmsDelegatedUserDecryptEip712V1.d.ts.map +1 -1
  177. package/_types/core/kms/createKmsUserDecryptEip712V1.d.ts +2 -1
  178. package/_types/core/kms/createKmsUserDecryptEip712V1.d.ts.map +1 -1
  179. package/_types/core/kms/createKmsUserDecryptEip712V2.d.ts +2 -1
  180. package/_types/core/kms/createKmsUserDecryptEip712V2.d.ts.map +1 -1
  181. package/_types/core/kms/fetchKmsSigncryptedSharesV1-p.d.ts.map +1 -1
  182. package/_types/core/kms/kmsExtraData-p.d.ts +66 -0
  183. package/_types/core/kms/kmsExtraData-p.d.ts.map +1 -0
  184. package/_types/core/kms/publicDecrypt.d.ts.map +1 -1
  185. package/_types/core/kms/verifyKmsPublicDecryptEip712-p.d.ts.map +1 -1
  186. package/_types/core/modules/ethereum/types-ct.d.ts +20 -2
  187. package/_types/core/modules/ethereum/types-ct.d.ts.map +1 -1
  188. package/_types/core/modules/relayer/cleartext/fetchCoprocessorSignatures.d.ts.map +1 -1
  189. package/_types/core/modules/relayer/cleartext/{fetchDelegatedUserDecrypt.d.ts → fetchDelegatedUserDecryptV1.d.ts} +1 -1
  190. package/_types/core/modules/relayer/cleartext/fetchDelegatedUserDecryptV1.d.ts.map +1 -0
  191. package/_types/core/modules/relayer/cleartext/fetchPublicDecrypt.d.ts.map +1 -1
  192. package/_types/core/modules/relayer/cleartext/fetchUserDecrypt.d.ts +2 -2
  193. package/_types/core/modules/relayer/cleartext/fetchUserDecrypt.d.ts.map +1 -1
  194. package/_types/core/modules/relayer/cleartext/fetchUserDecryptV1.d.ts +3 -0
  195. package/_types/core/modules/relayer/cleartext/fetchUserDecryptV1.d.ts.map +1 -0
  196. package/_types/core/modules/relayer/cleartext/fetchUserDecryptV2.d.ts +3 -0
  197. package/_types/core/modules/relayer/cleartext/fetchUserDecryptV2.d.ts.map +1 -0
  198. package/_types/core/modules/relayer/cleartext/forgeFhevmV1.d.ts +29 -0
  199. package/_types/core/modules/relayer/cleartext/forgeFhevmV1.d.ts.map +1 -0
  200. package/_types/core/modules/relayer/cleartext/signers.d.ts +1 -0
  201. package/_types/core/modules/relayer/cleartext/signers.d.ts.map +1 -1
  202. package/_types/core/types/kms-p.d.ts +7 -1
  203. package/_types/core/types/kms-p.d.ts.map +1 -1
  204. package/_types/ethers/internal/ethereum-ct.d.ts.map +1 -1
  205. package/_types/ethers/internal/runtime-ct.d.ts.map +1 -1
  206. package/_types/viem/internal/ethereum-ct.d.ts.map +1 -1
  207. package/_types/viem/internal/runtime-ct.d.ts.map +1 -1
  208. package/core/_version.ts +1 -1
  209. package/core/actions/encrypt/encryptValue.ts +4 -1
  210. package/core/actions/encrypt/encryptValues.ts +5 -1
  211. package/core/actions/encrypt/generateZkProof.ts +2 -1
  212. package/core/actions/host/readKmsVerifierContractData.ts +2 -2
  213. package/core/base/cachedFetch.ts +1 -1
  214. package/core/handle/FheType.ts +11 -0
  215. package/core/host-contracts/HostContractVersion-p.ts +12 -0
  216. package/core/host-contracts/KmsSignersContext-p.ts +29 -36
  217. package/core/host-contracts/getKmsContextSignersAndThreshold-p.ts +1 -0
  218. package/core/host-contracts/getKmsContextSignersAndThresholdFromExtraData-p.ts +10 -7
  219. package/core/host-contracts/readKmsSignersContext-p.ts +156 -115
  220. package/core/kms/KmsSigncryptedShares-p.ts +87 -4
  221. package/core/kms/PublicDecryptionProof-p.ts +6 -4
  222. package/core/kms/SignedDecryptionPermitV1-p.ts +5 -47
  223. package/core/kms/SignedDecryptionPermitV2-p.ts +8 -25
  224. package/core/kms/createKmsDelegatedUserDecryptEip712V1.ts +5 -5
  225. package/core/kms/createKmsUserDecryptEip712V1.ts +9 -7
  226. package/core/kms/createKmsUserDecryptEip712V2.ts +6 -6
  227. package/core/kms/fetchKmsSigncryptedSharesV1-p.ts +27 -15
  228. package/core/kms/fetchKmsSigncryptedSharesV2-p.ts +2 -2
  229. package/core/kms/kmsExtraData-p.ts +374 -0
  230. package/core/kms/publicDecrypt.ts +8 -7
  231. package/core/kms/verifyKmsPublicDecryptEip712-p.ts +7 -5
  232. package/core/modules/decrypt/mock.ts +6 -6
  233. package/core/modules/decrypt/module/api-p.ts +7 -7
  234. package/core/modules/ethereum/types-ct.ts +25 -2
  235. package/core/modules/relayer/cleartext/fetchCoprocessorSignatures.ts +98 -15
  236. package/core/modules/relayer/cleartext/{fetchDelegatedUserDecrypt.ts → fetchDelegatedUserDecryptV1.ts} +115 -27
  237. package/core/modules/relayer/cleartext/fetchPublicDecrypt.ts +112 -6
  238. package/core/modules/relayer/cleartext/fetchUserDecrypt.ts +24 -132
  239. package/core/modules/relayer/cleartext/fetchUserDecryptV1.ts +229 -0
  240. package/core/modules/relayer/cleartext/fetchUserDecryptV2.ts +11 -0
  241. package/core/modules/relayer/cleartext/forgeFhevmV1.ts +185 -0
  242. package/core/modules/relayer/cleartext/mock.ts +1 -1
  243. package/core/modules/relayer/cleartext/signers.ts +35 -0
  244. package/core/types/kms-p.ts +16 -1
  245. package/ethers/internal/ethereum-ct.ts +15 -1
  246. package/ethers/internal/runtime-ct.ts +9 -7
  247. package/package.json +1 -1
  248. package/viem/internal/ethereum-ct.ts +14 -2
  249. package/viem/internal/runtime-ct.ts +9 -7
  250. package/_cjs/core/kms/kmsExtraData.js +0 -82
  251. package/_cjs/core/kms/kmsExtraData.js.map +0 -1
  252. package/_cjs/core/modules/relayer/cleartext/fetchDelegatedUserDecrypt.js.map +0 -1
  253. package/_esm/core/kms/kmsExtraData.js +0 -99
  254. package/_esm/core/kms/kmsExtraData.js.map +0 -1
  255. package/_esm/core/modules/relayer/cleartext/fetchDelegatedUserDecrypt.js.map +0 -1
  256. package/_types/core/kms/kmsExtraData.d.ts +0 -25
  257. package/_types/core/kms/kmsExtraData.d.ts.map +0 -1
  258. package/_types/core/modules/relayer/cleartext/fetchDelegatedUserDecrypt.d.ts.map +0 -1
  259. package/core/kms/kmsExtraData.ts +0 -127
@@ -1,82 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EXTRA_DATA_V2 = exports.EXTRA_DATA_V1 = exports.EXTRA_DATA_V0 = void 0;
4
- exports.fromKmsExtraData = fromKmsExtraData;
5
- exports.toKmsExtraData = toKmsExtraData;
6
- exports.assertIsKmsExtraData = assertIsKmsExtraData;
7
- const uint_js_1 = require("../base/uint.js");
8
- const bytes_js_1 = require("../base/bytes.js");
9
- exports.EXTRA_DATA_V0 = 0x00;
10
- exports.EXTRA_DATA_V1 = 0x01;
11
- exports.EXTRA_DATA_V2 = 0x02;
12
- function fromKmsExtraData(extraData) {
13
- if (extraData === '0x00' || extraData === '0x') {
14
- return {
15
- version: exports.EXTRA_DATA_V0,
16
- kmsContextId: 0n,
17
- kmsEpochId: 0n,
18
- };
19
- }
20
- if (extraData.length <= 4) {
21
- throw new Error(`Unsupported extraData length ${extraData.length}: must be more than 4 bytes`);
22
- }
23
- const version = (0, uint_js_1.asUint8Number)(Number('0x' + extraData.slice(2, 4)));
24
- if (version === exports.EXTRA_DATA_V1) {
25
- if (extraData.length != 68) {
26
- throw new Error(`Invalid extraData length for v1: expected 68, got ${extraData.length}`);
27
- }
28
- const contextIdBytes32Hex = (0, bytes_js_1.asBytes32Hex)(`0x${extraData.slice(4, 68)}`);
29
- const kmsContextId = (0, uint_js_1.asUint256BigInt)(BigInt(contextIdBytes32Hex));
30
- return { version, kmsContextId, kmsEpochId: 0n };
31
- }
32
- if (version === exports.EXTRA_DATA_V2) {
33
- if (extraData.length != 132) {
34
- throw new Error(`Invalid extraData length for v2: expected 132, got ${extraData.length}`);
35
- }
36
- const contextIdBytes32Hex = (0, bytes_js_1.asBytes32Hex)(`0x${extraData.slice(4, 68)}`);
37
- const kmsContextId = (0, uint_js_1.asUint256BigInt)(BigInt(contextIdBytes32Hex));
38
- const epochIdBytes32Hex = (0, bytes_js_1.asBytes32Hex)(`0x${extraData.slice(68, 132)}`);
39
- const kmsEpochId = (0, uint_js_1.asUint256BigInt)(BigInt(epochIdBytes32Hex));
40
- return { version, kmsContextId, kmsEpochId };
41
- }
42
- throw new Error(`Unsupported extraData version ${version}`);
43
- }
44
- function toKmsExtraData(args) {
45
- const v = args.version.toString(16).padStart(2, '0');
46
- switch (args.version) {
47
- case exports.EXTRA_DATA_V0: {
48
- return `0x${v}`;
49
- }
50
- case exports.EXTRA_DATA_V1: {
51
- if (args.kmsContextId === 0n) {
52
- throw new Error('kmsContextId cannot be 0 for v1 extraData');
53
- }
54
- if (args.kmsEpochId !== 0n) {
55
- throw new Error('kmsEpochId must be 0 for v1 extraData');
56
- }
57
- const contextId = args.kmsContextId.toString(16).padStart(64, '0');
58
- return `0x${v}${contextId}`;
59
- }
60
- case exports.EXTRA_DATA_V2: {
61
- if (args.kmsContextId === 0n) {
62
- throw new Error('kmsContextId cannot be 0 for v2 extraData');
63
- }
64
- if (args.kmsEpochId === 0n) {
65
- throw new Error('kmsEpochId cannot be 0 for v2 extraData');
66
- }
67
- const contextId = args.kmsContextId.toString(16).padStart(64, '0');
68
- const epochId = args.kmsEpochId.toString(16).padStart(64, '0');
69
- return `0x${v}${contextId}${epochId}`;
70
- }
71
- default:
72
- throw new Error(`Unsupported extraData version ${args.version}`);
73
- }
74
- }
75
- function assertIsKmsExtraData(value, options) {
76
- if (value === '0x00' || value === '0x') {
77
- return;
78
- }
79
- (0, bytes_js_1.assertIsBytesHex)(value, options);
80
- fromKmsExtraData(value);
81
- }
82
- //# sourceMappingURL=kmsExtraData.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"kmsExtraData.js","sourceRoot":"","sources":["../../../core/kms/kmsExtraData.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"fetchDelegatedUserDecrypt.js","sourceRoot":"","sources":["../../../../../core/modules/relayer/cleartext/fetchDelegatedUserDecrypt.ts"],"names":[],"mappings":"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"}
@@ -1,99 +0,0 @@
1
- import { asUint256BigInt, asUint8Number } from '../base/uint.js';
2
- import { asBytes32Hex, assertIsBytesHex } from '../base/bytes.js';
3
- export const EXTRA_DATA_V0 = 0x00; // 0x00
4
- export const EXTRA_DATA_V1 = 0x01; // 1 version byte + 32-byte big-endian context ID = 33 bytes
5
- export const EXTRA_DATA_V2 = 0x02; // 1 version byte + 32-byte big-endian context ID + 32-byte big-endian epoch ID = 65 bytes
6
- export function fromKmsExtraData(extraData) {
7
- if (extraData === '0x00' || extraData === '0x') {
8
- return {
9
- version: EXTRA_DATA_V0,
10
- kmsContextId: 0n,
11
- kmsEpochId: 0n,
12
- };
13
- }
14
- if (extraData.length <= 4) {
15
- throw new Error(`Unsupported extraData length ${extraData.length}: must be more than 4 bytes`);
16
- }
17
- // First byte = version (characters 2-3 after '0x')
18
- const version = asUint8Number(Number('0x' + extraData.slice(2, 4)));
19
- if (version === EXTRA_DATA_V1) {
20
- // ExtraData v1 format: 1 version byte + 32-byte big-endian context ID = 33 bytes = 66 hex chars + 2 for '0x' = 68
21
- // 0x01aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
22
- // ↑ ↑ ↑
23
- // 0 4 68
24
- // 0 1 2 3 4 5 6
25
- // 01234567890123456789012345678901234567890123456789012345678901234567
26
- if (extraData.length != 68) {
27
- throw new Error(`Invalid extraData length for v1: expected 68, got ${extraData.length}`);
28
- }
29
- // 32-byte contextId starts at byte 1 (hex chars 4..67)
30
- const contextIdBytes32Hex = asBytes32Hex(`0x${extraData.slice(4, 68)}`);
31
- const kmsContextId = asUint256BigInt(BigInt(contextIdBytes32Hex));
32
- return { version, kmsContextId, kmsEpochId: 0n };
33
- }
34
- if (version === EXTRA_DATA_V2) {
35
- // ExtraData v2 format: 1 version byte + 32-byte big-endian context ID + 32-byte big-endian epoch ID = 65 bytes = 130 hex chars + 2 for '0x' = 132
36
- // 0x01aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
37
- // ↑ ↑ ↑ ↑
38
- // 0 4 68 132
39
- // 0 1 2 3 4 5 6 7 8 9 0 1 2 3
40
- // 012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901
41
- if (extraData.length != 132) {
42
- throw new Error(`Invalid extraData length for v2: expected 132, got ${extraData.length}`);
43
- }
44
- // 32-byte contextId starts at byte 1 (hex chars 4..67)
45
- const contextIdBytes32Hex = asBytes32Hex(`0x${extraData.slice(4, 68)}`);
46
- const kmsContextId = asUint256BigInt(BigInt(contextIdBytes32Hex));
47
- // 32-byte epochId starts at byte 33 (hex chars 68..131)
48
- const epochIdBytes32Hex = asBytes32Hex(`0x${extraData.slice(68, 132)}`);
49
- const kmsEpochId = asUint256BigInt(BigInt(epochIdBytes32Hex));
50
- return { version, kmsContextId, kmsEpochId };
51
- }
52
- throw new Error(`Unsupported extraData version ${version}`);
53
- }
54
- /**
55
- * Encodes a KMS context into an extraData format.
56
- * v0: `0x00`
57
- * v1: `0x01` + 32-byte big-endian context ID.
58
- * v2: `0x02` + 32-byte big-endian context ID + 32-byte big-endian epoch ID.
59
- */
60
- export function toKmsExtraData(args) {
61
- const v = args.version.toString(16).padStart(2, '0');
62
- switch (args.version) {
63
- case EXTRA_DATA_V0: {
64
- return `0x${v}`;
65
- }
66
- case EXTRA_DATA_V1: {
67
- if (args.kmsContextId === 0n) {
68
- throw new Error('kmsContextId cannot be 0 for v1 extraData');
69
- }
70
- if (args.kmsEpochId !== 0n) {
71
- throw new Error('kmsEpochId must be 0 for v1 extraData');
72
- }
73
- const contextId = args.kmsContextId.toString(16).padStart(64, '0');
74
- return `0x${v}${contextId}`;
75
- }
76
- case EXTRA_DATA_V2: {
77
- if (args.kmsContextId === 0n) {
78
- throw new Error('kmsContextId cannot be 0 for v2 extraData');
79
- }
80
- if (args.kmsEpochId === 0n) {
81
- throw new Error('kmsEpochId cannot be 0 for v2 extraData');
82
- }
83
- const contextId = args.kmsContextId.toString(16).padStart(64, '0');
84
- const epochId = args.kmsEpochId.toString(16).padStart(64, '0');
85
- return `0x${v}${contextId}${epochId}`;
86
- }
87
- default:
88
- throw new Error(`Unsupported extraData version ${args.version}`);
89
- }
90
- }
91
- export function assertIsKmsExtraData(value, options) {
92
- if (value === '0x00' || value === '0x') {
93
- return;
94
- }
95
- assertIsBytesHex(value, options);
96
- // Will valid extraData length too
97
- fromKmsExtraData(value);
98
- }
99
- //# sourceMappingURL=kmsExtraData.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"kmsExtraData.js","sourceRoot":"","sources":["../../../core/kms/kmsExtraData.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"fetchDelegatedUserDecrypt.js","sourceRoot":"","sources":["../../../../../core/modules/relayer/cleartext/fetchDelegatedUserDecrypt.ts"],"names":[],"mappings":"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"}
@@ -1,25 +0,0 @@
1
- import type { BytesHex, Uint256BigInt, Uint8Number } from '../types/primitives.js';
2
- import type { ErrorMetadataParams } from '../base/errors/ErrorBase.js';
3
- export declare const EXTRA_DATA_V0: Uint8Number;
4
- export declare const EXTRA_DATA_V1: Uint8Number;
5
- export declare const EXTRA_DATA_V2: Uint8Number;
6
- export declare function fromKmsExtraData(extraData: BytesHex): {
7
- version: Uint8Number;
8
- kmsContextId: Uint256BigInt;
9
- kmsEpochId: Uint256BigInt;
10
- };
11
- /**
12
- * Encodes a KMS context into an extraData format.
13
- * v0: `0x00`
14
- * v1: `0x01` + 32-byte big-endian context ID.
15
- * v2: `0x02` + 32-byte big-endian context ID + 32-byte big-endian epoch ID.
16
- */
17
- export declare function toKmsExtraData(args: {
18
- readonly version: Uint8Number;
19
- readonly kmsContextId: Uint256BigInt;
20
- readonly kmsEpochId: Uint256BigInt;
21
- }): BytesHex;
22
- export declare function assertIsKmsExtraData(value: unknown, options: {
23
- subject?: string;
24
- } & ErrorMetadataParams): asserts value is BytesHex;
25
- //# sourceMappingURL=kmsExtraData.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"kmsExtraData.d.ts","sourceRoot":"","sources":["../../../core/kms/kmsExtraData.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAc,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC/F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAIvE,eAAO,MAAM,aAAa,EAAE,WAAiC,CAAC;AAC9D,eAAO,MAAM,aAAa,EAAE,WAAiC,CAAC;AAC9D,eAAO,MAAM,aAAa,EAAE,WAAiC,CAAC;AAE9D,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,QAAQ,GAAG;IACrD,OAAO,EAAE,WAAW,CAAC;IACrB,YAAY,EAAE,aAAa,CAAC;IAC5B,UAAU,EAAE,aAAa,CAAC;CAC3B,CAwDA;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE;IACnC,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,YAAY,EAAE,aAAa,CAAC;IACrC,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC;CACpC,GAAG,QAAQ,CA+BX;AAED,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,OAAO,EACd,OAAO,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,mBAAmB,GAClD,OAAO,CAAC,KAAK,IAAI,QAAQ,CAS3B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"fetchDelegatedUserDecrypt.d.ts","sourceRoot":"","sources":["../../../../../core/modules/relayer/cleartext/fetchDelegatedUserDecrypt.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,mCAAmC,EACnC,0BAA0B,EAC1B,wBAAwB,EACzB,MAAM,aAAa,CAAC;AA2DrB,wBAAsB,yBAAyB,CAC7C,aAAa,EAAE,wBAAwB,EACvC,UAAU,EAAE,mCAAmC,GAC9C,OAAO,CAAC,0BAA0B,CAAC,CAmErC"}
@@ -1,127 +0,0 @@
1
- import type { Bytes32Hex, BytesHex, Uint256BigInt, Uint8Number } from '../types/primitives.js';
2
- import type { ErrorMetadataParams } from '../base/errors/ErrorBase.js';
3
- import { asUint256BigInt, asUint8Number } from '../base/uint.js';
4
- import { asBytes32Hex, assertIsBytesHex } from '../base/bytes.js';
5
-
6
- export const EXTRA_DATA_V0: Uint8Number = 0x00 as Uint8Number; // 0x00
7
- export const EXTRA_DATA_V1: Uint8Number = 0x01 as Uint8Number; // 1 version byte + 32-byte big-endian context ID = 33 bytes
8
- export const EXTRA_DATA_V2: Uint8Number = 0x02 as Uint8Number; // 1 version byte + 32-byte big-endian context ID + 32-byte big-endian epoch ID = 65 bytes
9
-
10
- export function fromKmsExtraData(extraData: BytesHex): {
11
- version: Uint8Number;
12
- kmsContextId: Uint256BigInt;
13
- kmsEpochId: Uint256BigInt;
14
- } {
15
- if ((extraData as string) === '0x00' || (extraData as string) === '0x') {
16
- return {
17
- version: EXTRA_DATA_V0,
18
- kmsContextId: 0n as Uint256BigInt,
19
- kmsEpochId: 0n as Uint256BigInt,
20
- };
21
- }
22
-
23
- if (extraData.length <= 4) {
24
- throw new Error(`Unsupported extraData length ${extraData.length}: must be more than 4 bytes`);
25
- }
26
-
27
- // First byte = version (characters 2-3 after '0x')
28
- const version = asUint8Number(Number('0x' + extraData.slice(2, 4)));
29
-
30
- if (version === EXTRA_DATA_V1) {
31
- // ExtraData v1 format: 1 version byte + 32-byte big-endian context ID = 33 bytes = 66 hex chars + 2 for '0x' = 68
32
- // 0x01aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
33
- // ↑ ↑ ↑
34
- // 0 4 68
35
- // 0 1 2 3 4 5 6
36
- // 01234567890123456789012345678901234567890123456789012345678901234567
37
-
38
- if (extraData.length != 68) {
39
- throw new Error(`Invalid extraData length for v1: expected 68, got ${extraData.length}`);
40
- }
41
- // 32-byte contextId starts at byte 1 (hex chars 4..67)
42
- const contextIdBytes32Hex: Bytes32Hex = asBytes32Hex(`0x${extraData.slice(4, 68)}`);
43
- const kmsContextId = asUint256BigInt(BigInt(contextIdBytes32Hex));
44
- return { version, kmsContextId, kmsEpochId: 0n as Uint256BigInt };
45
- }
46
-
47
- if (version === EXTRA_DATA_V2) {
48
- // ExtraData v2 format: 1 version byte + 32-byte big-endian context ID + 32-byte big-endian epoch ID = 65 bytes = 130 hex chars + 2 for '0x' = 132
49
- // 0x01aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
50
- // ↑ ↑ ↑ ↑
51
- // 0 4 68 132
52
- // 0 1 2 3 4 5 6 7 8 9 0 1 2 3
53
- // 012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901
54
-
55
- if (extraData.length != 132) {
56
- throw new Error(`Invalid extraData length for v2: expected 132, got ${extraData.length}`);
57
- }
58
- // 32-byte contextId starts at byte 1 (hex chars 4..67)
59
- const contextIdBytes32Hex: Bytes32Hex = asBytes32Hex(`0x${extraData.slice(4, 68)}`);
60
- const kmsContextId = asUint256BigInt(BigInt(contextIdBytes32Hex));
61
-
62
- // 32-byte epochId starts at byte 33 (hex chars 68..131)
63
- const epochIdBytes32Hex: Bytes32Hex = asBytes32Hex(`0x${extraData.slice(68, 132)}`);
64
- const kmsEpochId = asUint256BigInt(BigInt(epochIdBytes32Hex));
65
-
66
- return { version, kmsContextId, kmsEpochId };
67
- }
68
-
69
- throw new Error(`Unsupported extraData version ${version}`);
70
- }
71
-
72
- /**
73
- * Encodes a KMS context into an extraData format.
74
- * v0: `0x00`
75
- * v1: `0x01` + 32-byte big-endian context ID.
76
- * v2: `0x02` + 32-byte big-endian context ID + 32-byte big-endian epoch ID.
77
- */
78
- export function toKmsExtraData(args: {
79
- readonly version: Uint8Number;
80
- readonly kmsContextId: Uint256BigInt;
81
- readonly kmsEpochId: Uint256BigInt;
82
- }): BytesHex {
83
- const v = args.version.toString(16).padStart(2, '0');
84
-
85
- switch (args.version) {
86
- case EXTRA_DATA_V0: {
87
- return `0x${v}` as BytesHex;
88
- }
89
- case EXTRA_DATA_V1: {
90
- if (args.kmsContextId === 0n) {
91
- throw new Error('kmsContextId cannot be 0 for v1 extraData');
92
- }
93
- if (args.kmsEpochId !== 0n) {
94
- throw new Error('kmsEpochId must be 0 for v1 extraData');
95
- }
96
- const contextId = args.kmsContextId.toString(16).padStart(64, '0');
97
- return `0x${v}${contextId}` as BytesHex;
98
- }
99
- case EXTRA_DATA_V2: {
100
- if (args.kmsContextId === 0n) {
101
- throw new Error('kmsContextId cannot be 0 for v2 extraData');
102
- }
103
- if (args.kmsEpochId === 0n) {
104
- throw new Error('kmsEpochId cannot be 0 for v2 extraData');
105
- }
106
- const contextId = args.kmsContextId.toString(16).padStart(64, '0');
107
- const epochId = args.kmsEpochId.toString(16).padStart(64, '0');
108
- return `0x${v}${contextId}${epochId}` as BytesHex;
109
- }
110
- default:
111
- throw new Error(`Unsupported extraData version ${args.version}`);
112
- }
113
- }
114
-
115
- export function assertIsKmsExtraData(
116
- value: unknown,
117
- options: { subject?: string } & ErrorMetadataParams,
118
- ): asserts value is BytesHex {
119
- if (value === '0x00' || value === '0x') {
120
- return;
121
- }
122
-
123
- assertIsBytesHex(value, options);
124
-
125
- // Will valid extraData length too
126
- fromKmsExtraData(value);
127
- }