@fhevm/sdk 1.0.0-alpha.4 → 1.0.0-alpha.6

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 (257) hide show
  1. package/_cjs/core/_version.js +1 -1
  2. package/_cjs/core/actions/base/fetchEncryptedValues.js +18 -0
  3. package/_cjs/core/actions/base/fetchEncryptedValues.js.map +1 -0
  4. package/_cjs/core/actions/base/index.js +3 -1
  5. package/_cjs/core/actions/base/index.js.map +1 -1
  6. package/_cjs/core/actions/chain/createKmsDelegatedUserDecryptEip712.js.map +1 -1
  7. package/_cjs/core/actions/chain/createKmsUserDecryptEip712.js.map +1 -1
  8. package/_cjs/core/actions/chain/index.js +5 -5
  9. package/_cjs/core/actions/chain/parseSignedDecryptionPermit.js +2 -2
  10. package/_cjs/core/actions/chain/parseSignedDecryptionPermit.js.map +1 -1
  11. package/_cjs/core/actions/chain/parseTransportKeyPair.js +8 -0
  12. package/_cjs/core/actions/chain/parseTransportKeyPair.js.map +1 -0
  13. package/_cjs/core/actions/chain/serializeTransportKeyPair.js +8 -0
  14. package/_cjs/core/actions/chain/serializeTransportKeyPair.js.map +1 -0
  15. package/_cjs/core/actions/decrypt/generateTransportKeyPair.js +8 -0
  16. package/_cjs/core/actions/decrypt/generateTransportKeyPair.js.map +1 -0
  17. package/_cjs/core/actions/decrypt/index.js +3 -3
  18. package/_cjs/core/actions/decrypt/index.js.map +1 -1
  19. package/_cjs/core/base/address.js.map +1 -1
  20. package/_cjs/core/base/fetch.js +2 -2
  21. package/_cjs/core/base/fetch.js.map +1 -1
  22. package/_cjs/core/base/sign.js +12 -6
  23. package/_cjs/core/base/sign.js.map +1 -1
  24. package/_cjs/core/base/wasm.js +1 -1
  25. package/_cjs/core/base/wasm.js.map +1 -1
  26. package/_cjs/core/clients/decorators/base.js +4 -4
  27. package/_cjs/core/clients/decorators/decrypt.js +2 -2
  28. package/_cjs/core/coprocessor/ZkProof-p.js +2 -1
  29. package/_cjs/core/coprocessor/ZkProof-p.js.map +1 -1
  30. package/_cjs/core/handle/EncryptedValue.js +0 -4
  31. package/_cjs/core/handle/EncryptedValue.js.map +1 -1
  32. package/_cjs/core/handle/FheType.js.map +1 -1
  33. package/_cjs/core/host-contracts/canDecryptValuesFromPairs.js +3 -3
  34. package/_cjs/core/kms/SignedDecryptionPermit-p.js +10 -10
  35. package/_cjs/core/kms/SignedDecryptionPermit-p.js.map +1 -1
  36. package/_cjs/core/kms/{TransportKeypair-p.js → TransportKeyPair-p.js} +48 -48
  37. package/_cjs/core/kms/{TransportKeypair-p.js.map → TransportKeyPair-p.js.map} +1 -1
  38. package/_cjs/core/kms/decryptKmsSignedcryptedShares-p.js +3 -3
  39. package/_cjs/core/kms/decryptKmsSignedcryptedShares-p.js.map +1 -1
  40. package/_cjs/core/kms/decryptValuesFromPairs.js +2 -2
  41. package/_cjs/core/kms/decryptValuesFromPairs.js.map +1 -1
  42. package/_cjs/core/kms/index.js +0 -1
  43. package/_cjs/core/kms/kmsExtraData.js +7 -1
  44. package/_cjs/core/kms/kmsExtraData.js.map +1 -1
  45. package/_cjs/core/modules/decrypt/mock.js.map +1 -1
  46. package/_cjs/core/modules/decrypt/module/init-p.js +3 -7
  47. package/_cjs/core/modules/decrypt/module/init-p.js.map +1 -1
  48. package/_cjs/core/modules/encrypt/mock.js.map +1 -1
  49. package/_cjs/core/modules/encrypt/module/api-p.js.map +1 -1
  50. package/_cjs/core/modules/encrypt/module/index.js.map +1 -1
  51. package/_cjs/core/modules/encrypt/module/init-p.js +18 -13
  52. package/_cjs/core/modules/encrypt/module/init-p.js.map +1 -1
  53. package/_cjs/core/modules/relayer/module/RelayerAsyncRequest.js.map +1 -1
  54. package/_cjs/core/modules/relayer/module/fetchPublicDecrypt.js.map +1 -1
  55. package/_cjs/core/modules/relayer/module/fetchUserDecrypt.js.map +1 -1
  56. package/_cjs/core/modules/relayer/module/guards/RelayerErrorBody.js +27 -0
  57. package/_cjs/core/modules/relayer/module/guards/RelayerErrorBody.js.map +1 -0
  58. package/_cjs/core/types/index.js +4 -0
  59. package/_cjs/core/types/index.js.map +1 -1
  60. package/_cjs/core/utils-p/decrypt/assertPermitMatchesKeyPair.js +14 -0
  61. package/_cjs/core/utils-p/decrypt/assertPermitMatchesKeyPair.js.map +1 -0
  62. package/_cjs/core/utils-p/decrypt/verifyTkmsPublicKey.js +1 -1
  63. package/_cjs/core/utils-p/decrypt/verifyTkmsPublicKey.js.map +1 -1
  64. package/_esm/core/_version.js +1 -1
  65. package/_esm/core/actions/base/fetchEncryptedValues.js +16 -0
  66. package/_esm/core/actions/base/fetchEncryptedValues.js.map +1 -0
  67. package/_esm/core/actions/base/index.js +1 -0
  68. package/_esm/core/actions/base/index.js.map +1 -1
  69. package/_esm/core/actions/chain/createKmsDelegatedUserDecryptEip712.js.map +1 -1
  70. package/_esm/core/actions/chain/createKmsUserDecryptEip712.js.map +1 -1
  71. package/_esm/core/actions/chain/index.js +2 -2
  72. package/_esm/core/actions/chain/parseSignedDecryptionPermit.js +3 -3
  73. package/_esm/core/actions/chain/parseSignedDecryptionPermit.js.map +1 -1
  74. package/_esm/core/actions/chain/parseTransportKeyPair.js +5 -0
  75. package/_esm/core/actions/chain/parseTransportKeyPair.js.map +1 -0
  76. package/_esm/core/actions/chain/serializeTransportKeyPair.js +5 -0
  77. package/_esm/core/actions/chain/{serializeTransportKeypair.js.map → serializeTransportKeyPair.js.map} +1 -1
  78. package/_esm/core/actions/decrypt/generateTransportKeyPair.js +6 -0
  79. package/_esm/core/actions/decrypt/{generateTransportKeypair.js.map → generateTransportKeyPair.js.map} +1 -1
  80. package/_esm/core/actions/decrypt/index.js +3 -1
  81. package/_esm/core/actions/decrypt/index.js.map +1 -1
  82. package/_esm/core/base/address.js.map +1 -1
  83. package/_esm/core/base/fetch.js +2 -2
  84. package/_esm/core/base/fetch.js.map +1 -1
  85. package/_esm/core/base/sign.js +15 -8
  86. package/_esm/core/base/sign.js.map +1 -1
  87. package/_esm/core/base/wasm.js +1 -1
  88. package/_esm/core/base/wasm.js.map +1 -1
  89. package/_esm/core/clients/decorators/base.js +4 -4
  90. package/_esm/core/clients/decorators/decrypt.js +2 -2
  91. package/_esm/core/coprocessor/ZkProof-p.js +3 -2
  92. package/_esm/core/coprocessor/ZkProof-p.js.map +1 -1
  93. package/_esm/core/handle/EncryptedValue.js +0 -3
  94. package/_esm/core/handle/EncryptedValue.js.map +1 -1
  95. package/_esm/core/handle/FheType.js +10 -17
  96. package/_esm/core/handle/FheType.js.map +1 -1
  97. package/_esm/core/host-contracts/canDecryptValuesFromPairs.js +3 -3
  98. package/_esm/core/kms/SignedDecryptionPermit-p.js +10 -10
  99. package/_esm/core/kms/SignedDecryptionPermit-p.js.map +1 -1
  100. package/_esm/core/kms/{TransportKeypair-p.js → TransportKeyPair-p.js} +55 -55
  101. package/_esm/core/kms/{TransportKeypair-p.js.map → TransportKeyPair-p.js.map} +1 -1
  102. package/_esm/core/kms/decryptKmsSignedcryptedShares-p.js +4 -4
  103. package/_esm/core/kms/decryptKmsSignedcryptedShares-p.js.map +1 -1
  104. package/_esm/core/kms/decryptValuesFromPairs.js +2 -2
  105. package/_esm/core/kms/decryptValuesFromPairs.js.map +1 -1
  106. package/_esm/core/kms/kmsExtraData.js +7 -1
  107. package/_esm/core/kms/kmsExtraData.js.map +1 -1
  108. package/_esm/core/modules/decrypt/mock.js.map +1 -1
  109. package/_esm/core/modules/decrypt/module/init-p.js +13 -11
  110. package/_esm/core/modules/decrypt/module/init-p.js.map +1 -1
  111. package/_esm/core/modules/encrypt/mock.js.map +1 -1
  112. package/_esm/core/modules/encrypt/module/api-p.js.map +1 -1
  113. package/_esm/core/modules/encrypt/module/index.js.map +1 -1
  114. package/_esm/core/modules/encrypt/module/init-p.js +34 -17
  115. package/_esm/core/modules/encrypt/module/init-p.js.map +1 -1
  116. package/_esm/core/modules/relayer/module/RelayerAsyncRequest.js +13 -0
  117. package/_esm/core/modules/relayer/module/RelayerAsyncRequest.js.map +1 -1
  118. package/_esm/core/modules/relayer/module/fetchPublicDecrypt.js.map +1 -1
  119. package/_esm/core/modules/relayer/module/fetchUserDecrypt.js.map +1 -1
  120. package/_esm/core/modules/relayer/module/guards/RelayerErrorBody.js +24 -0
  121. package/_esm/core/modules/relayer/module/guards/RelayerErrorBody.js.map +1 -0
  122. package/_esm/core/types/index.js +1 -1
  123. package/_esm/core/types/index.js.map +1 -1
  124. package/_esm/core/utils-p/decrypt/assertPermitMatchesKeyPair.js +19 -0
  125. package/_esm/core/utils-p/decrypt/assertPermitMatchesKeyPair.js.map +1 -0
  126. package/_esm/core/utils-p/decrypt/verifyTkmsPublicKey.js +1 -1
  127. package/_esm/core/utils-p/decrypt/verifyTkmsPublicKey.js.map +1 -1
  128. package/_types/core/actions/base/fetchEncryptedValues.d.ts +16 -0
  129. package/_types/core/actions/base/fetchEncryptedValues.d.ts.map +1 -0
  130. package/_types/core/actions/base/index.d.ts +1 -0
  131. package/_types/core/actions/base/index.d.ts.map +1 -1
  132. package/_types/core/actions/chain/createKmsDelegatedUserDecryptEip712.d.ts.map +1 -1
  133. package/_types/core/actions/chain/createKmsUserDecryptEip712.d.ts.map +1 -1
  134. package/_types/core/actions/chain/index.d.ts +2 -2
  135. package/_types/core/actions/chain/parseSignedDecryptionPermit.d.ts +4 -4
  136. package/_types/core/actions/chain/parseSignedDecryptionPermit.d.ts.map +1 -1
  137. package/_types/core/actions/chain/{parseTransportKeypair.d.ts → parseTransportKeyPair.d.ts} +5 -5
  138. package/_types/core/actions/chain/{parseTransportKeypair.d.ts.map → parseTransportKeyPair.d.ts.map} +1 -1
  139. package/_types/core/actions/chain/{serializeTransportKeypair.d.ts → serializeTransportKeyPair.d.ts} +6 -6
  140. package/_types/core/actions/chain/{serializeTransportKeypair.d.ts.map → serializeTransportKeyPair.d.ts.map} +1 -1
  141. package/_types/core/actions/decrypt/canDecryptValue.d.ts +4 -4
  142. package/_types/core/actions/decrypt/canDecryptValues.d.ts +2 -2
  143. package/_types/core/actions/decrypt/canDecryptValuesFromPairs.d.ts +2 -2
  144. package/_types/core/actions/decrypt/decryptKmsSignedcryptedShares.d.ts +2 -2
  145. package/_types/core/actions/decrypt/decryptValue.d.ts +2 -2
  146. package/_types/core/actions/decrypt/decryptValues.d.ts +2 -2
  147. package/_types/core/actions/decrypt/decryptValuesFromPairs.d.ts +2 -2
  148. package/_types/core/actions/decrypt/{generateTransportKeypair.d.ts → generateTransportKeyPair.d.ts} +4 -4
  149. package/_types/core/actions/decrypt/{generateTransportKeypair.d.ts.map → generateTransportKeyPair.d.ts.map} +1 -1
  150. package/_types/core/actions/decrypt/index.d.ts +3 -1
  151. package/_types/core/actions/decrypt/index.d.ts.map +1 -1
  152. package/_types/core/base/address.d.ts.map +1 -1
  153. package/_types/core/base/sign.d.ts.map +1 -1
  154. package/_types/core/clients/decorators/base.d.ts +6 -6
  155. package/_types/core/clients/decorators/base.d.ts.map +1 -1
  156. package/_types/core/clients/decorators/decrypt.d.ts +2 -2
  157. package/_types/core/coprocessor/ZkProof-p.d.ts +2 -1
  158. package/_types/core/coprocessor/ZkProof-p.d.ts.map +1 -1
  159. package/_types/core/handle/EncryptedValue.d.ts +0 -1
  160. package/_types/core/handle/EncryptedValue.d.ts.map +1 -1
  161. package/_types/core/handle/FheType.d.ts +10 -17
  162. package/_types/core/handle/FheType.d.ts.map +1 -1
  163. package/_types/core/host-contracts/canDecryptValuesFromPairs.d.ts +2 -2
  164. package/_types/core/kms/SignedDecryptionPermit-p.d.ts +6 -6
  165. package/_types/core/kms/{TransportKeypair-p.d.ts → TransportKeyPair-p.d.ts} +23 -23
  166. package/_types/core/kms/{TransportKeypair-p.d.ts.map → TransportKeyPair-p.d.ts.map} +1 -1
  167. package/_types/core/kms/decryptKmsSignedcryptedShares-p.d.ts +2 -2
  168. package/_types/core/kms/decryptValuesFromPairs.d.ts +3 -3
  169. package/_types/core/kms/index.d.ts +1 -1
  170. package/_types/core/kms/index.d.ts.map +1 -1
  171. package/_types/core/kms/kmsExtraData.d.ts.map +1 -1
  172. package/_types/core/modules/decrypt/module/init-p.d.ts.map +1 -1
  173. package/_types/core/modules/encrypt/mock.d.ts +2 -2
  174. package/_types/core/modules/encrypt/mock.d.ts.map +1 -1
  175. package/_types/core/modules/encrypt/module/api-p.d.ts +2 -2
  176. package/_types/core/modules/encrypt/module/api-p.d.ts.map +1 -1
  177. package/_types/core/modules/encrypt/module/init-p.d.ts.map +1 -1
  178. package/_types/core/modules/encrypt/types.d.ts +2 -2
  179. package/_types/core/modules/encrypt/types.d.ts.map +1 -1
  180. package/_types/core/modules/relayer/module/RelayerAsyncRequest.d.ts.map +1 -1
  181. package/_types/core/modules/relayer/module/fetchUserDecrypt.d.ts.map +1 -1
  182. package/_types/core/modules/relayer/module/guards/RelayerErrorBody.d.ts +13 -0
  183. package/_types/core/modules/relayer/module/guards/RelayerErrorBody.d.ts.map +1 -0
  184. package/_types/core/types/index.d.ts +3 -0
  185. package/_types/core/types/index.d.ts.map +1 -1
  186. package/_types/core/types/signedDecryptionPermit.d.ts +1 -1
  187. package/_types/core/types/signedDecryptionPermit.d.ts.map +1 -1
  188. package/_types/core/utils-p/decrypt/assertPermitMatchesKeyPair.d.ts +12 -0
  189. package/_types/core/utils-p/decrypt/{assertPermitMatchesKeypair.d.ts.map → assertPermitMatchesKeyPair.d.ts.map} +1 -1
  190. package/core/_version.ts +1 -1
  191. package/core/actions/base/fetchEncryptedValues.ts +42 -0
  192. package/core/actions/base/index.ts +6 -0
  193. package/core/actions/chain/createKmsDelegatedUserDecryptEip712.ts +1 -2
  194. package/core/actions/chain/createKmsUserDecryptEip712.ts +1 -2
  195. package/core/actions/chain/index.ts +8 -8
  196. package/core/actions/chain/parseSignedDecryptionPermit.ts +6 -6
  197. package/core/actions/chain/{parseTransportKeypair.ts → parseTransportKeyPair.ts} +7 -7
  198. package/core/actions/chain/{serializeTransportKeypair.ts → serializeTransportKeyPair.ts} +10 -10
  199. package/core/actions/decrypt/canDecryptValue.ts +4 -4
  200. package/core/actions/decrypt/canDecryptValues.ts +2 -2
  201. package/core/actions/decrypt/canDecryptValuesFromPairs.ts +2 -2
  202. package/core/actions/decrypt/decryptKmsSignedcryptedShares.ts +2 -2
  203. package/core/actions/decrypt/decryptValue.ts +2 -2
  204. package/core/actions/decrypt/decryptValues.ts +2 -2
  205. package/core/actions/decrypt/decryptValuesFromPairs.ts +2 -2
  206. package/core/actions/decrypt/{generateTransportKeypair.ts → generateTransportKeyPair.ts} +7 -7
  207. package/core/actions/decrypt/index.ts +8 -4
  208. package/core/base/address.ts +2 -2
  209. package/core/base/fetch.ts +2 -2
  210. package/core/base/sign.ts +16 -8
  211. package/core/base/wasm.ts +1 -1
  212. package/core/clients/decorators/base.ts +18 -18
  213. package/core/clients/decorators/decrypt.ts +4 -4
  214. package/core/coprocessor/ZkProof-p.ts +6 -6
  215. package/core/handle/EncryptedValue.ts +0 -4
  216. package/core/handle/FheType.ts +10 -17
  217. package/core/host-contracts/canDecryptValuesFromPairs.ts +5 -5
  218. package/core/kms/SignedDecryptionPermit-p.ts +14 -14
  219. package/core/kms/{TransportKeypair-p.ts → TransportKeyPair-p.ts} +42 -42
  220. package/core/kms/decryptKmsSignedcryptedShares-p.ts +6 -6
  221. package/core/kms/decryptValuesFromPairs.ts +5 -5
  222. package/core/kms/index.ts +0 -1
  223. package/core/kms/kmsExtraData.ts +8 -1
  224. package/core/modules/decrypt/mock.ts +3 -3
  225. package/core/modules/decrypt/module/init-p.ts +13 -14
  226. package/core/modules/encrypt/mock.ts +4 -6
  227. package/core/modules/encrypt/module/api-p.ts +4 -6
  228. package/core/modules/encrypt/module/index.ts +2 -2
  229. package/core/modules/encrypt/module/init-p.ts +37 -21
  230. package/core/modules/encrypt/types.ts +2 -2
  231. package/core/modules/relayer/module/RelayerAsyncRequest.ts +14 -0
  232. package/core/modules/relayer/module/fetchPublicDecrypt.ts +2 -2
  233. package/core/modules/relayer/module/fetchUserDecrypt.ts +1 -2
  234. package/core/modules/relayer/module/guards/RelayerErrorBody.ts +33 -0
  235. package/core/types/index.ts +3 -0
  236. package/core/types/signedDecryptionPermit.ts +1 -1
  237. package/core/utils-p/decrypt/assertPermitMatchesKeyPair.ts +27 -0
  238. package/core/utils-p/decrypt/verifyTkmsPublicKey.ts +1 -1
  239. package/package.json +3 -2
  240. package/_cjs/core/actions/chain/parseTransportKeypair.js +0 -8
  241. package/_cjs/core/actions/chain/parseTransportKeypair.js.map +0 -1
  242. package/_cjs/core/actions/chain/serializeTransportKeypair.js +0 -8
  243. package/_cjs/core/actions/chain/serializeTransportKeypair.js.map +0 -1
  244. package/_cjs/core/actions/decrypt/generateTransportKeypair.js +0 -8
  245. package/_cjs/core/actions/decrypt/generateTransportKeypair.js.map +0 -1
  246. package/_cjs/core/utils-p/decrypt/assertPermitMatchesKeypair.js +0 -14
  247. package/_cjs/core/utils-p/decrypt/assertPermitMatchesKeypair.js.map +0 -1
  248. package/_esm/core/actions/chain/parseTransportKeypair.js +0 -5
  249. package/_esm/core/actions/chain/parseTransportKeypair.js.map +0 -1
  250. package/_esm/core/actions/chain/serializeTransportKeypair.js +0 -5
  251. package/_esm/core/actions/decrypt/generateTransportKeypair.js +0 -6
  252. package/_esm/core/utils-p/decrypt/assertPermitMatchesKeypair.js +0 -19
  253. package/_esm/core/utils-p/decrypt/assertPermitMatchesKeypair.js.map +0 -1
  254. package/_types/core/utils-p/decrypt/assertPermitMatchesKeypair.d.ts +0 -12
  255. package/core/utils-p/decrypt/assertPermitMatchesKeypair.ts +0 -27
  256. package/tsconfig.json +0 -9
  257. package/vitest.config.ts +0 -17
@@ -12,16 +12,16 @@ export {
12
12
  } from './fetchFheEncryptionKeyBytes.js';
13
13
 
14
14
  export {
15
- type ParseTransportKeypairParameters,
16
- type ParseTransportKeypairReturnType,
17
- parseTransportKeypair,
18
- } from './parseTransportKeypair.js';
15
+ type ParseTransportKeyPairParameters,
16
+ type ParseTransportKeyPairReturnType,
17
+ parseTransportKeyPair,
18
+ } from './parseTransportKeyPair.js';
19
19
 
20
20
  export {
21
- type SerializeTransportKeypairParameters,
22
- type SerializeTransportKeypairReturnType,
23
- serializeTransportKeypair,
24
- } from './serializeTransportKeypair.js';
21
+ type SerializeTransportKeyPairParameters,
22
+ type SerializeTransportKeyPairReturnType,
23
+ serializeTransportKeyPair,
24
+ } from './serializeTransportKeyPair.js';
25
25
 
26
26
  export {
27
27
  type CreateKmsDelegatedUserDecryptEip712Parameters,
@@ -1,7 +1,7 @@
1
1
  import type { Fhevm } from '../../types/coreFhevmClient.js';
2
2
  import type { FhevmChain } from '../../types/fhevmChain.js';
3
3
  import type { SignedDecryptionPermit } from '../../types/signedDecryptionPermit.js';
4
- import type { TransportKeypair } from '../../kms/TransportKeypair-p.js';
4
+ import type { TransportKeyPair } from '../../kms/TransportKeyPair-p.js';
5
5
  import type { KmsDecryptEip712Like } from '../../types/kms.js';
6
6
  import { parseSignedDecryptionPermit as parseSignedDecryptionPermit_ } from '../../kms/SignedDecryptionPermit-p.js';
7
7
 
@@ -14,8 +14,8 @@ export type ParseSignedDecryptionPermitParameters = {
14
14
  readonly signature: string;
15
15
  readonly signerAddress: string;
16
16
  };
17
- /** The transport keypair that was used when signing the permit. */
18
- readonly transportKeypair: TransportKeypair;
17
+ /** The transport key pair that was used when signing the permit. */
18
+ readonly transportKeyPair: TransportKeyPair;
19
19
  };
20
20
 
21
21
  export type ParseSignedDecryptionPermitReturnType = SignedDecryptionPermit;
@@ -24,7 +24,7 @@ export type ParseSignedDecryptionPermitReturnType = SignedDecryptionPermit;
24
24
  * Parses and verifies a previously serialized signed decryption permit.
25
25
  *
26
26
  * Validates the EIP-712 structure, verifies the signature against the on-chain
27
- * verifier, and checks the permit's public key matches the provided keypair.
27
+ * verifier, and checks the permit's public key matches the provided key pair.
28
28
  *
29
29
  * @throws If the permit is malformed, expired, or the signature is invalid.
30
30
  */
@@ -32,7 +32,7 @@ export async function parseSignedDecryptionPermit(
32
32
  fhevm: Fhevm<FhevmChain>,
33
33
  parameters: ParseSignedDecryptionPermitParameters,
34
34
  ): Promise<ParseSignedDecryptionPermitReturnType> {
35
- const { serializedPermit, transportKeypair } = parameters;
35
+ const { serializedPermit, transportKeyPair: transportKeyPair } = parameters;
36
36
 
37
- return parseSignedDecryptionPermit_(fhevm, transportKeypair, serializedPermit);
37
+ return parseSignedDecryptionPermit_(fhevm, transportKeyPair, serializedPermit);
38
38
  }
@@ -1,20 +1,20 @@
1
1
  import type { Fhevm, OptionalNativeClient } from '../../types/coreFhevmClient.js';
2
2
  import type { FhevmRuntime } from '../../types/coreFhevmRuntime.js';
3
3
  import type { FhevmChain } from '../../types/fhevmChain.js';
4
- import { toTransportKeypair, type TransportKeypair } from '../../kms/TransportKeypair-p.js';
4
+ import { toTransportKeyPair, type TransportKeyPair } from '../../kms/TransportKeyPair-p.js';
5
5
 
6
6
  ////////////////////////////////////////////////////////////////////////////////
7
7
 
8
- export type ParseTransportKeypairParameters = {
8
+ export type ParseTransportKeyPairParameters = {
9
9
  readonly publicKey: string;
10
10
  readonly privateKey: string;
11
11
  };
12
12
 
13
- export type ParseTransportKeypairReturnType = TransportKeypair;
13
+ export type ParseTransportKeyPairReturnType = TransportKeyPair;
14
14
 
15
- export async function parseTransportKeypair(
15
+ export async function parseTransportKeyPair(
16
16
  fhevm: Fhevm<FhevmChain, FhevmRuntime, OptionalNativeClient>,
17
- parameters: ParseTransportKeypairParameters,
18
- ): Promise<ParseTransportKeypairReturnType> {
19
- return toTransportKeypair(fhevm, parameters);
17
+ parameters: ParseTransportKeyPairParameters,
18
+ ): Promise<ParseTransportKeyPairReturnType> {
19
+ return toTransportKeyPair(fhevm, parameters);
20
20
  }
@@ -3,24 +3,24 @@ import type { FhevmRuntime } from '../../types/coreFhevmRuntime.js';
3
3
  import type { FhevmChain } from '../../types/fhevmChain.js';
4
4
  import type { BytesHex } from '../../types/primitives.js';
5
5
  import {
6
- serializeTransportKeypair as serializeTransportKeypair_,
7
- type TransportKeypair,
8
- } from '../../kms/TransportKeypair-p.js';
6
+ serializeTransportKeyPair as serializeTransportKeyPair_,
7
+ type TransportKeyPair,
8
+ } from '../../kms/TransportKeyPair-p.js';
9
9
 
10
10
  ////////////////////////////////////////////////////////////////////////////////
11
11
 
12
- export type SerializeTransportKeypairParameters = {
13
- readonly transportKeypair: TransportKeypair;
12
+ export type SerializeTransportKeyPairParameters = {
13
+ readonly transportKeyPair: TransportKeyPair;
14
14
  };
15
15
 
16
- export type SerializeTransportKeypairReturnType = {
16
+ export type SerializeTransportKeyPairReturnType = {
17
17
  publicKey: BytesHex;
18
18
  privateKey: BytesHex;
19
19
  };
20
20
 
21
- export function serializeTransportKeypair(
21
+ export function serializeTransportKeyPair(
22
22
  _fhevm: Fhevm<FhevmChain, FhevmRuntime, OptionalNativeClient>,
23
- parameters: SerializeTransportKeypairParameters,
24
- ): SerializeTransportKeypairReturnType {
25
- return serializeTransportKeypair_(parameters.transportKeypair);
23
+ parameters: SerializeTransportKeyPairParameters,
24
+ ): SerializeTransportKeyPairReturnType {
25
+ return serializeTransportKeyPair_(parameters.transportKeyPair);
26
26
  }
@@ -5,7 +5,7 @@ import type {
5
5
  SignedDelegatedDecryptionPermit,
6
6
  SignedSelfDecryptionPermit,
7
7
  } from '../../types/signedDecryptionPermit.js';
8
- import type { TransportKeypair } from '../../kms/TransportKeypair-p.js';
8
+ import type { TransportKeyPair } from '../../kms/TransportKeyPair-p.js';
9
9
  import type { EncryptedValueLike } from '../../types/encryptedTypes.js';
10
10
  import { canDecryptValuesFromPairs as canDecryptValuesFromPairs_ } from '../../host-contracts/canDecryptValuesFromPairs.js';
11
11
  import { addressToChecksummedAddress, assertIsAddress } from '../../base/address.js';
@@ -24,7 +24,7 @@ export type CanDecryptValueWithUserAddressParameters = CanDecryptValueParameters
24
24
 
25
25
  export type CanDecryptValueWithPermitParameters = CanDecryptValueParametersBase & {
26
26
  readonly signedPermit: SignedSelfDecryptionPermit | SignedDelegatedDecryptionPermit;
27
- readonly transportKeypair?: TransportKeypair | undefined;
27
+ readonly transportKeyPair?: TransportKeyPair | undefined;
28
28
  };
29
29
 
30
30
  export type CanDecryptValueReturnType = {
@@ -54,9 +54,9 @@ export type CanDecryptValueReturnType = {
54
54
  * - the current time is within the permit validity window
55
55
  * - the permit is scoped to the requested `contractAddress`
56
56
  *
57
- * When both a `SignedDecryptionPermit` and an `transportKeypair` are provided,
57
+ * When both a `SignedDecryptionPermit` and an `transportKeyPair` are provided,
58
58
  * the function also checks that the permit is scoped to the corresponding
59
- * `transportKeypair.publicKey`.
59
+ * `transportKeyPair.publicKey`.
60
60
  *
61
61
  * A permit is scoped to:
62
62
  * - a user
@@ -5,7 +5,7 @@ import type {
5
5
  SignedDelegatedDecryptionPermit,
6
6
  SignedSelfDecryptionPermit,
7
7
  } from '../../types/signedDecryptionPermit.js';
8
- import type { TransportKeypair } from '../../kms/TransportKeypair-p.js';
8
+ import type { TransportKeyPair } from '../../kms/TransportKeyPair-p.js';
9
9
  import type { EncryptedValueLike } from '../../types/encryptedTypes.js';
10
10
  import { canDecryptValuesFromPairs as canDecryptValuesFromPairs_ } from '../../host-contracts/canDecryptValuesFromPairs.js';
11
11
  import { addressToChecksummedAddress, assertIsAddress } from '../../base/address.js';
@@ -24,7 +24,7 @@ export type CanDecryptValuesWithUserAddressParameters = CanDecryptValuesParamete
24
24
 
25
25
  export type CanDecryptValuesWithPermitParameters = CanDecryptValuesParametersBase & {
26
26
  readonly signedPermit: SignedSelfDecryptionPermit | SignedDelegatedDecryptionPermit;
27
- readonly transportKeypair?: TransportKeypair | undefined;
27
+ readonly transportKeyPair?: TransportKeyPair | undefined;
28
28
  };
29
29
 
30
30
  export type CanDecryptValuesReturnType = {
@@ -5,7 +5,7 @@ import type {
5
5
  SignedDelegatedDecryptionPermit,
6
6
  SignedSelfDecryptionPermit,
7
7
  } from '../../types/signedDecryptionPermit.js';
8
- import type { TransportKeypair } from '../../kms/TransportKeypair-p.js';
8
+ import type { TransportKeyPair } from '../../kms/TransportKeyPair-p.js';
9
9
  import type { EncryptedValueLike } from '../../types/encryptedTypes.js';
10
10
  import { canDecryptValuesFromPairs as canDecryptValuesFromPairs_ } from '../../host-contracts/canDecryptValuesFromPairs.js';
11
11
  import { addressToChecksummedAddress, assertIsAddress } from '../../base/address.js';
@@ -26,7 +26,7 @@ export type CanDecryptValuesFromPairsWithUserAddressParameters = CanDecryptValue
26
26
 
27
27
  export type CanDecryptValuesFromPairsWithPermitParameters = CanDecryptValuesFromPairsParametersBase & {
28
28
  readonly signedPermit: SignedSelfDecryptionPermit | SignedDelegatedDecryptionPermit;
29
- readonly transportKeypair?: TransportKeypair | undefined;
29
+ readonly transportKeyPair?: TransportKeyPair | undefined;
30
30
  };
31
31
 
32
32
  export type CanDecryptValuesFromPairsReturnType = {
@@ -2,7 +2,7 @@ import type { Fhevm } from '../../types/coreFhevmClient.js';
2
2
  import type { FhevmChain } from '../../types/fhevmChain.js';
3
3
  import type { WithDecrypt } from '../../types/coreFhevmRuntime.js';
4
4
  import type { KmsSigncryptedShares } from '../../types/kms.js';
5
- import type { TransportKeypair } from '../../kms/TransportKeypair-p.js';
5
+ import type { TransportKeyPair } from '../../kms/TransportKeyPair-p.js';
6
6
  import type { TypedValue } from '../../types/primitives.js';
7
7
  import { decryptKmsSignedcryptedShares as decryptKmsSignedcryptedShares_ } from '../../kms/decryptKmsSignedcryptedShares-p.js';
8
8
  import { clearValueToTypedValue } from '../../handle/ClearValue.js';
@@ -13,7 +13,7 @@ import { clearValueToTypedValue } from '../../handle/ClearValue.js';
13
13
 
14
14
  export type DecryptKmsSignedcryptedSharesParameters = {
15
15
  readonly kmsSigncryptedShares: KmsSigncryptedShares;
16
- readonly transportKeypair: TransportKeypair;
16
+ readonly transportKeyPair: TransportKeyPair;
17
17
  };
18
18
 
19
19
  export type DecryptKmsSignedcryptedSharesReturnType = readonly TypedValue[];
@@ -4,7 +4,7 @@ import type { FhevmChain } from '../../types/fhevmChain.js';
4
4
  import type { RelayerDelegatedUserDecryptOptions, RelayerUserDecryptOptions } from '../../types/relayer.js';
5
5
  import type { SignedDecryptionPermit } from '../../types/signedDecryptionPermit.js';
6
6
  import type { WithDecrypt } from '../../types/coreFhevmRuntime.js';
7
- import type { TransportKeypair } from '../../kms/TransportKeypair-p.js';
7
+ import type { TransportKeyPair } from '../../kms/TransportKeyPair-p.js';
8
8
  import type { EncryptedValueLike } from '../../types/encryptedTypes.js';
9
9
  import { decryptValuesFromPairs as decryptValuesFromPairs_ } from '../../kms/decryptValuesFromPairs.js';
10
10
  import { addressToChecksummedAddress, assertIsAddress } from '../../base/address.js';
@@ -15,7 +15,7 @@ import { toFhevmHandle } from '../../handle/FhevmHandle.js';
15
15
  export type DecryptValueParameters = {
16
16
  readonly encryptedValue: EncryptedValueLike;
17
17
  readonly contractAddress: string;
18
- readonly transportKeypair: TransportKeypair;
18
+ readonly transportKeyPair: TransportKeyPair;
19
19
  readonly signedPermit: SignedDecryptionPermit;
20
20
  readonly options?: RelayerUserDecryptOptions | RelayerDelegatedUserDecryptOptions | undefined;
21
21
  };
@@ -4,7 +4,7 @@ import type { FhevmChain } from '../../types/fhevmChain.js';
4
4
  import type { RelayerDelegatedUserDecryptOptions, RelayerUserDecryptOptions } from '../../types/relayer.js';
5
5
  import type { SignedDecryptionPermit } from '../../types/signedDecryptionPermit.js';
6
6
  import type { WithDecrypt } from '../../types/coreFhevmRuntime.js';
7
- import type { TransportKeypair } from '../../kms/TransportKeypair-p.js';
7
+ import type { TransportKeyPair } from '../../kms/TransportKeyPair-p.js';
8
8
  import type { EncryptedValueLike } from '../../types/encryptedTypes.js';
9
9
  import { decryptValuesFromPairs as decryptValuesFromPairs_ } from '../../kms/decryptValuesFromPairs.js';
10
10
  import { addressToChecksummedAddress, assertIsAddress } from '../../base/address.js';
@@ -15,7 +15,7 @@ import { toFhevmHandle } from '../../handle/FhevmHandle.js';
15
15
  export type DecryptValuesParameters = {
16
16
  readonly encryptedValues: readonly EncryptedValueLike[];
17
17
  readonly contractAddress: string;
18
- readonly transportKeypair: TransportKeypair;
18
+ readonly transportKeyPair: TransportKeyPair;
19
19
  readonly signedPermit: SignedDecryptionPermit;
20
20
  readonly options?: RelayerUserDecryptOptions | RelayerDelegatedUserDecryptOptions | undefined;
21
21
  };
@@ -4,7 +4,7 @@ import type { FhevmChain } from '../../types/fhevmChain.js';
4
4
  import type { RelayerDelegatedUserDecryptOptions, RelayerUserDecryptOptions } from '../../types/relayer.js';
5
5
  import type { SignedDecryptionPermit } from '../../types/signedDecryptionPermit.js';
6
6
  import type { WithDecrypt } from '../../types/coreFhevmRuntime.js';
7
- import type { TransportKeypair } from '../../kms/TransportKeypair-p.js';
7
+ import type { TransportKeyPair } from '../../kms/TransportKeyPair-p.js';
8
8
  import type { EncryptedValueLike } from '../../types/encryptedTypes.js';
9
9
  import { decryptValuesFromPairs as decryptValuesFromPairs_ } from '../../kms/decryptValuesFromPairs.js';
10
10
  import { addressToChecksummedAddress, assertIsAddress } from '../../base/address.js';
@@ -17,7 +17,7 @@ export type DecryptValuesFromPairsParameters = {
17
17
  readonly encryptedValue: EncryptedValueLike;
18
18
  readonly contractAddress: string;
19
19
  }>;
20
- readonly transportKeypair: TransportKeypair;
20
+ readonly transportKeyPair: TransportKeyPair;
21
21
  readonly signedPermit: SignedDecryptionPermit;
22
22
  readonly options?: RelayerUserDecryptOptions | RelayerDelegatedUserDecryptOptions | undefined;
23
23
  };
@@ -2,18 +2,18 @@ import type { Fhevm, OptionalNativeClient } from '../../types/coreFhevmClient.js
2
2
  import type { WithDecrypt } from '../../types/coreFhevmRuntime.js';
3
3
  import type { FhevmChain } from '../../types/fhevmChain.js';
4
4
  import {
5
- generateTransportKeypair as generateTransportKeypair_,
6
- type TransportKeypair,
7
- } from '../../kms/TransportKeypair-p.js';
5
+ generateTransportKeyPair as generateTransportKeyPair_,
6
+ type TransportKeyPair,
7
+ } from '../../kms/TransportKeyPair-p.js';
8
8
 
9
9
  ////////////////////////////////////////////////////////////////////////////////
10
10
 
11
- export type GenerateTransportKeypairReturnType = TransportKeypair;
11
+ export type GenerateTransportKeyPairReturnType = TransportKeyPair;
12
12
 
13
- export async function generateTransportKeypair(
13
+ export async function generateTransportKeyPair(
14
14
  fhevm: Fhevm<FhevmChain | undefined, WithDecrypt, OptionalNativeClient>,
15
- ): Promise<GenerateTransportKeypairReturnType> {
16
- return await generateTransportKeypair_(fhevm);
15
+ ): Promise<GenerateTransportKeyPairReturnType> {
16
+ return await generateTransportKeyPair_(fhevm);
17
17
  }
18
18
 
19
19
  ////////////////////////////////////////////////////////////////////////////////
@@ -4,10 +4,7 @@ export type {
4
4
  RelayerDelegatedUserDecryptProgressArgs,
5
5
  } from '../../types/relayer.js';
6
6
 
7
- export {
8
- type GenerateTransportKeypairReturnType as GenerateE2eTransportKeypairReturnType,
9
- generateTransportKeypair as generateE2eTransportKeypair,
10
- } from './generateTransportKeypair.js';
7
+ export { type GenerateTransportKeyPairReturnType, generateTransportKeyPair } from './generateTransportKeyPair.js';
11
8
 
12
9
  export {
13
10
  type DecryptValuesFromPairsParameters,
@@ -45,3 +42,10 @@ export {
45
42
  type CanDecryptValueReturnType,
46
43
  canDecryptValue,
47
44
  } from './canDecryptValue.js';
45
+
46
+ export { type TransportKeyPair } from '../../kms/TransportKeyPair-p.js';
47
+
48
+ export {
49
+ type SignDecryptionPermitParameters,
50
+ type SignDecryptionPermitReturnType,
51
+ } from '../base/signDecryptionPermit.js';
@@ -1,4 +1,4 @@
1
- import type { Address, Bytes20, Bytes20HexNo0x, ChecksummedAddress } from '../types/primitives.js';
1
+ import type { Address, Bytes20, ChecksummedAddress } from '../types/primitives.js';
2
2
  import type {
3
3
  RecordAddressPropertyType,
4
4
  RecordChecksummedAddressArrayPropertyType,
@@ -117,7 +117,7 @@ export function isAddress(value: unknown): value is Address {
117
117
  return false;
118
118
  }
119
119
 
120
- const hexNo0x = remove0x(value) as Bytes20HexNo0x;
120
+ const hexNo0x = remove0x(value);
121
121
  const hexNo0xLowerCase = hexNo0x.toLowerCase();
122
122
 
123
123
  if (hexNo0x === hexNo0xLowerCase) {
@@ -219,8 +219,8 @@ export async function fetchWithRetry(
219
219
  ): Promise<Response> {
220
220
  let lastError: unknown;
221
221
 
222
- const retries = args.retries ?? 3;
223
- const retryDelayMs = args.retryDelayMs ?? 1000;
222
+ const retries = Math.max(0, Math.min(1000, args.retries ?? 3));
223
+ const retryDelayMs = Math.max(100, args.retryDelayMs ?? 1000);
224
224
  const { url, init } = args;
225
225
 
226
226
  for (let attempt = 0; attempt <= retries; attempt++) {
package/core/base/sign.ts CHANGED
@@ -1,20 +1,28 @@
1
1
  import type { Address, Bytes65Hex, BytesHex, ChecksummedAddress } from '../types/primitives.js';
2
- import { secp256k1 } from '@noble/curves/secp256k1';
2
+ import { secp256k1 } from '@noble/curves/secp256k1.js';
3
3
  import { keccak_256 } from '@noble/hashes/sha3.js';
4
4
  import { addressToChecksummedAddress } from './address.js';
5
- import { bytesToHex } from './bytes.js';
5
+ import { bytesToHex, bytesToHexNo0x, hexToBytes } from './bytes.js';
6
6
 
7
7
  export function sign({ hash, privateKey }: { readonly hash: BytesHex; readonly privateKey: BytesHex }): Bytes65Hex {
8
- const sig = secp256k1.sign(hash.slice(2), privateKey.slice(2), {
8
+ const sig = secp256k1.sign(hexToBytes(hash), hexToBytes(privateKey), {
9
+ prehash: false,
9
10
  lowS: true,
10
11
  extraEntropy: true,
12
+ format: 'recovered',
11
13
  });
12
14
 
13
- if (sig.recovery !== 0 && sig.recovery !== 1) {
15
+ if (sig.length !== 65) {
16
+ throw new Error('Unexpected signature length');
17
+ }
18
+
19
+ // @noble/curves v2 'recovered' format: [recovery (1 byte)] || [r (32 bytes)] || [s (32 bytes)]
20
+ const recovery = sig[0];
21
+ if (recovery !== 0 && recovery !== 1) {
14
22
  throw new Error('Unexpected signature recovery value');
15
23
  }
16
24
 
17
- const signatureHex = `0x${sig.toCompactHex()}${sig.recovery === 0 ? '1b' : '1c'}` as BytesHex;
25
+ const signatureHex = `0x${bytesToHexNo0x(sig.subarray(1, 65))}${recovery === 0 ? '1b' : '1c'}` as BytesHex;
18
26
 
19
27
  if (signatureHex.length !== 2 + 130) {
20
28
  throw new Error('Unexpected signature length');
@@ -48,10 +56,10 @@ function _recoverPublicKey(parameters: { readonly hash: BytesHex; readonly signa
48
56
  throw new Error(`Invalid v value: ${v}`);
49
57
  }
50
58
 
51
- const sig = secp256k1.Signature.fromCompact(compactHex).addRecoveryBit(recoveryBit);
59
+ const sig = secp256k1.Signature.fromBytes(hexToBytes(compactHex), 'compact').addRecoveryBit(recoveryBit);
52
60
 
53
- // toRawBytes(false) → uncompressed encoding: 0x04 || X (32) || Y (32) = 65 bytes.
54
- return sig.recoverPublicKey(hash.slice(2)).toRawBytes(false);
61
+ // toBytes(false) → uncompressed encoding: 0x04 || X (32) || Y (32) = 65 bytes.
62
+ return sig.recoverPublicKey(hexToBytes(hash)).toBytes(false);
55
63
  }
56
64
 
57
65
  function _keccak256(bytes: Uint8Array): Uint8Array {
package/core/base/wasm.ts CHANGED
@@ -52,7 +52,7 @@ export async function isomorphicCompileWasm(wasmUrl: URL): Promise<WebAssembly.M
52
52
  // ArrayBufferLike (includes SharedArrayBuffer), making it incompatible with
53
53
  // BufferSource. At runtime Buffer is always backed by ArrayBuffer, so the
54
54
  // cast at WebAssembly.compile is safe and avoids copying.
55
- bytes = (await readFile(fileURLToPath(wasmUrl))) as BufferSource;
55
+ bytes = await readFile(fileURLToPath(wasmUrl));
56
56
  } else {
57
57
  // fetch wasm
58
58
  const res = await fetch(wasmUrl);
@@ -5,9 +5,9 @@ import type {
5
5
  SignedDelegatedDecryptionPermit,
6
6
  } from '../../types/signedDecryptionPermit.js';
7
7
  import type {
8
- SerializeTransportKeypairParameters,
9
- SerializeTransportKeypairReturnType,
10
- } from '../../actions/chain/serializeTransportKeypair.js';
8
+ SerializeTransportKeyPairParameters,
9
+ SerializeTransportKeyPairReturnType,
10
+ } from '../../actions/chain/serializeTransportKeyPair.js';
11
11
  import { assertIsFhevmBaseClient } from '../../runtime/CoreFhevm-p.js';
12
12
  import {
13
13
  signDecryptionPermit,
@@ -15,16 +15,16 @@ import {
15
15
  type SignDelegatedDecryptionPermitParameters,
16
16
  } from '../../actions/base/signDecryptionPermit.js';
17
17
  import {
18
- parseTransportKeypair,
19
- type ParseTransportKeypairParameters,
20
- type ParseTransportKeypairReturnType,
21
- } from '../../actions/chain/parseTransportKeypair.js';
18
+ parseTransportKeyPair,
19
+ type ParseTransportKeyPairParameters,
20
+ type ParseTransportKeyPairReturnType,
21
+ } from '../../actions/chain/parseTransportKeyPair.js';
22
22
  import {
23
23
  fetchFheEncryptionKeyBytes,
24
24
  type FetchFheEncryptionKeyBytesParameters,
25
25
  type FetchFheEncryptionKeyBytesReturnType,
26
26
  } from '../../actions/chain/fetchFheEncryptionKeyBytes.js';
27
- import { serializeTransportKeypair } from '../../actions/chain/serializeTransportKeypair.js';
27
+ import { serializeTransportKeyPair } from '../../actions/chain/serializeTransportKeyPair.js';
28
28
  import {
29
29
  serializeSignedDecryptionPermit,
30
30
  type SerializeSignedDecryptionPermitParameters,
@@ -147,14 +147,14 @@ export type BaseActions = {
147
147
  */
148
148
  (parameters: SignDelegatedDecryptionPermitParameters): Promise<SignedDelegatedDecryptionPermit>;
149
149
  };
150
- /** Deserializes a previously serialized e2e transport keypair back into a usable keypair. */
151
- readonly parseTransportKeypair: (
152
- parameters: ParseTransportKeypairParameters,
153
- ) => Promise<ParseTransportKeypairReturnType>;
154
- /** Serializes an e2e transport keypair to hex strings for storage. */
155
- readonly serializeTransportKeypair: (
156
- parameters: SerializeTransportKeypairParameters,
157
- ) => SerializeTransportKeypairReturnType;
150
+ /** Deserializes a previously serialized e2e transport key pair back into a usable key pair. */
151
+ readonly parseTransportKeyPair: (
152
+ parameters: ParseTransportKeyPairParameters,
153
+ ) => Promise<ParseTransportKeyPairReturnType>;
154
+ /** Serializes an e2e transport key pair to hex strings for storage. */
155
+ readonly serializeTransportKeyPair: (
156
+ parameters: SerializeTransportKeyPairParameters,
157
+ ) => SerializeTransportKeyPairReturnType;
158
158
  /** Serializes a signed decryption permit to a plain object for storage or transmission. */
159
159
  readonly serializeSignedDecryptionPermit: (
160
160
  parameters: SerializeSignedDecryptionPermitParameters,
@@ -183,8 +183,8 @@ function _baseActions(fhevm: Fhevm<FhevmChain>): BaseActions {
183
183
  fhevm,
184
184
  parameters as SignSelfDecryptionPermitParameters,
185
185
  )) as BaseActions['signDecryptionPermit'],
186
- parseTransportKeypair: (parameters) => parseTransportKeypair(fhevm, parameters),
187
- serializeTransportKeypair: (parameters) => serializeTransportKeypair(fhevm, parameters),
186
+ parseTransportKeyPair: (parameters) => parseTransportKeyPair(fhevm, parameters),
187
+ serializeTransportKeyPair: (parameters) => serializeTransportKeyPair(fhevm, parameters),
188
188
  serializeSignedDecryptionPermit: (parameters) => serializeSignedDecryptionPermit(fhevm, parameters),
189
189
  parseSignedDecryptionPermit: (parameters) => parseSignedDecryptionPermit(fhevm, parameters),
190
190
  fetchFheEncryptionKeyBytes: (parameters) => fetchFheEncryptionKeyBytes(fhevm, parameters),
@@ -1,10 +1,10 @@
1
1
  import type { Fhevm, FhevmBase, FhevmExtension, OptionalNativeClient } from '../../types/coreFhevmClient.js';
2
2
  import type { FhevmRuntime, WithDecrypt } from '../../types/coreFhevmRuntime.js';
3
3
  import type { FhevmChain } from '../../types/fhevmChain.js';
4
- import type { GenerateTransportKeypairReturnType } from '../../actions/decrypt/generateTransportKeypair.js';
4
+ import type { GenerateTransportKeyPairReturnType } from '../../actions/decrypt/generateTransportKeyPair.js';
5
5
  import type { DecryptModuleFactory } from '../../modules/decrypt/types.js';
6
6
  import { asFhevmClientWith, assertIsFhevmClientWith } from '../../runtime/CoreFhevm-p.js';
7
- import { generateTransportKeypair } from '../../kms/TransportKeypair-p.js';
7
+ import { generateTransportKeyPair } from '../../kms/TransportKeyPair-p.js';
8
8
  import {
9
9
  decryptValue,
10
10
  type DecryptValueParameters,
@@ -30,7 +30,7 @@ export type DecryptActions = {
30
30
  readonly decryptValuesFromPairs: (
31
31
  parameters: DecryptValuesFromPairsParameters,
32
32
  ) => Promise<DecryptValuesFromPairsReturnType>;
33
- readonly generateTransportKeypair: () => Promise<GenerateTransportKeypairReturnType>;
33
+ readonly generateTransportKeyPair: () => Promise<GenerateTransportKeyPairReturnType>;
34
34
  };
35
35
 
36
36
  ////////////////////////////////////////////////////////////////////////////////
@@ -42,7 +42,7 @@ function _decryptActions(fhevm: Fhevm<FhevmChain, WithDecrypt>): DecryptActions
42
42
  decryptValue: (parameters) => decryptValue(fhevm, parameters),
43
43
  decryptValues: (parameters) => decryptValues(fhevm, parameters),
44
44
  decryptValuesFromPairs: (parameters) => decryptValuesFromPairs(fhevm, parameters),
45
- generateTransportKeypair: () => generateTransportKeypair(fhevm),
45
+ generateTransportKeyPair: () => generateTransportKeyPair(fhevm),
46
46
  };
47
47
  }
48
48
 
@@ -6,7 +6,6 @@ import type {
6
6
  Bytes32,
7
7
  Uint64,
8
8
  Bytes21Hex,
9
- Uint8Number,
10
9
  BytesHex,
11
10
  } from '../types/primitives.js';
12
11
  import type { ZkProofLike, ZkProof } from '../types/zkProof-p.js';
@@ -23,7 +22,7 @@ import {
23
22
  import { bytes32ToHex, bytesToHexLarge, concatBytes, hexToBytes32, toBytes } from '../base/bytes.js';
24
23
  import { assertIsUint64, assertIsUint8, asUint64BigInt, uint64ToBytes32 } from '../base/uint.js';
25
24
  import { ZkProofError } from '../errors/ZkProofError.js';
26
- import { assertIsEncryptionBitsArray, fheTypeIdFromEncryptionBits } from '../handle/FheType.js';
25
+ import { asEncryptionBits, assertIsEncryptionBitsArray, fheTypeIdFromEncryptionBits } from '../handle/FheType.js';
27
26
  import { buildHandle } from '../handle/FhevmHandle.js';
28
27
  import { keccak_256 } from '@noble/hashes/sha3.js';
29
28
  import { InvalidTypeError } from '../base/errors/InvalidTypeError.js';
@@ -74,7 +73,7 @@ class ZkProofImpl implements ZkProof {
74
73
  this.#userAddress = parameters.userAddress;
75
74
  this.#ciphertextWithZkProof = parameters.ciphertextWithZkProof;
76
75
  this.#encryptionBits = Object.freeze([...parameters.encryptionBits]);
77
- this.#fheTypeIds = Object.freeze(this.#encryptionBits.map(fheTypeIdFromEncryptionBits));
76
+ this.#fheTypeIds = Object.freeze(this.#encryptionBits.map((w) => fheTypeIdFromEncryptionBits(asEncryptionBits(w))));
78
77
  this.#extraData = parameters.extraData;
79
78
  Object.freeze(this);
80
79
  }
@@ -105,7 +104,7 @@ class ZkProofImpl implements ZkProof {
105
104
 
106
105
  /** The ciphertext with Zk proof (guaranteed non-empty). Returns a copy. */
107
106
  public get ciphertextWithZkProof(): Bytes {
108
- return new Uint8Array(this.#ciphertextWithZkProof) as Bytes;
107
+ return new Uint8Array(this.#ciphertextWithZkProof);
109
108
  }
110
109
 
111
110
  /** The encryption bit sizes for each encrypted value in the proof. */
@@ -197,7 +196,7 @@ export function isZkProof(value: unknown): value is ZkProof {
197
196
 
198
197
  export function assertIsZkProof(
199
198
  value: unknown,
200
- options: { subject?: string } & ErrorMetadataParams,
199
+ options: { readonly subject?: string; readonly metaMessages?: string[] | undefined } & ErrorMetadataParams,
201
200
  ): asserts value is ZkProof {
202
201
  if (!isZkProof(value)) {
203
202
  throw new InvalidTypeError(
@@ -205,6 +204,7 @@ export function assertIsZkProof(
205
204
  subject: options.subject,
206
205
  type: typeof value,
207
206
  expectedType: 'ZkProof',
207
+ metaMessages: options.metaMessages,
208
208
  },
209
209
  options,
210
210
  );
@@ -379,7 +379,7 @@ function _zkProofToInputHandles(
379
379
  chainId: args.chainId,
380
380
  fheTypeId,
381
381
  ...(options?.version !== undefined ? { version: options.version } : {}),
382
- index: i as Uint8Number,
382
+ index: i,
383
383
  }),
384
384
  );
385
385
  }
@@ -23,7 +23,3 @@ export function asEncryptedValue(value: unknown): EncryptedValue {
23
23
  assertIsEncryptedValue(value);
24
24
  return value;
25
25
  }
26
-
27
- export function toEncryptedValue(value: unknown): EncryptedValue {
28
- return toFhevmHandle(value).bytes32Hex as unknown as EncryptedValue;
29
- }