@fhevm/sdk 1.1.0-alpha.7 → 1.1.0-alpha.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -5
- package/_cjs/core/_version.js +1 -1
- package/_cjs/core/actions/encrypt/encryptValue.js +2 -1
- package/_cjs/core/actions/encrypt/encryptValue.js.map +1 -1
- package/_cjs/core/actions/encrypt/encryptValues.js +2 -1
- package/_cjs/core/actions/encrypt/encryptValues.js.map +1 -1
- package/_cjs/core/actions/encrypt/generateZkProof.js +2 -1
- package/_cjs/core/actions/encrypt/generateZkProof.js.map +1 -1
- package/_cjs/core/actions/host/readKmsVerifierContractData.js +1 -1
- package/_cjs/core/actions/host/readKmsVerifierContractData.js.map +1 -1
- package/_cjs/core/base/cachedFetch.js +1 -1
- package/_cjs/core/base/cachedFetch.js.map +1 -1
- package/_cjs/core/handle/FheType.js +4 -0
- package/_cjs/core/handle/FheType.js.map +1 -1
- package/_cjs/core/host-contracts/HostContractVersion-p.js +4 -0
- package/_cjs/core/host-contracts/HostContractVersion-p.js.map +1 -1
- package/_cjs/core/host-contracts/KmsSignersContext-p.js +15 -25
- package/_cjs/core/host-contracts/KmsSignersContext-p.js.map +1 -1
- package/_cjs/core/host-contracts/getKmsContextSignersAndThreshold-p.js.map +1 -1
- package/_cjs/core/host-contracts/getKmsContextSignersAndThresholdFromExtraData-p.js +7 -6
- package/_cjs/core/host-contracts/getKmsContextSignersAndThresholdFromExtraData-p.js.map +1 -1
- package/_cjs/core/host-contracts/readKmsSignersContext-p.js +55 -67
- package/_cjs/core/host-contracts/readKmsSignersContext-p.js.map +1 -1
- package/_cjs/core/kms/KmsSigncryptedShares-p.js +40 -4
- package/_cjs/core/kms/KmsSigncryptedShares-p.js.map +1 -1
- package/_cjs/core/kms/PublicDecryptionProof-p.js +4 -3
- package/_cjs/core/kms/PublicDecryptionProof-p.js.map +1 -1
- package/_cjs/core/kms/SignedDecryptionPermitV1-p.js +1 -14
- package/_cjs/core/kms/SignedDecryptionPermitV1-p.js.map +1 -1
- package/_cjs/core/kms/SignedDecryptionPermitV2-p.js +3 -15
- package/_cjs/core/kms/SignedDecryptionPermitV2-p.js.map +1 -1
- package/_cjs/core/kms/createKmsDelegatedUserDecryptEip712V1.js +3 -4
- package/_cjs/core/kms/createKmsDelegatedUserDecryptEip712V1.js.map +1 -1
- package/_cjs/core/kms/createKmsUserDecryptEip712V1.js +6 -5
- package/_cjs/core/kms/createKmsUserDecryptEip712V1.js.map +1 -1
- package/_cjs/core/kms/createKmsUserDecryptEip712V2.js +4 -5
- package/_cjs/core/kms/createKmsUserDecryptEip712V2.js.map +1 -1
- package/_cjs/core/kms/fetchKmsSigncryptedSharesV1-p.js +1 -1
- package/_cjs/core/kms/fetchKmsSigncryptedSharesV1-p.js.map +1 -1
- package/_cjs/core/kms/fetchKmsSigncryptedSharesV2-p.js +1 -1
- package/_cjs/core/kms/fetchKmsSigncryptedSharesV2-p.js.map +1 -1
- package/_cjs/core/kms/kmsExtraData-p.js +234 -0
- package/_cjs/core/kms/kmsExtraData-p.js.map +1 -0
- package/_cjs/core/kms/publicDecrypt.js +4 -4
- package/_cjs/core/kms/publicDecrypt.js.map +1 -1
- package/_cjs/core/kms/verifyKmsPublicDecryptEip712-p.js +5 -4
- package/_cjs/core/kms/verifyKmsPublicDecryptEip712-p.js.map +1 -1
- package/_cjs/core/modules/decrypt/mock.js +6 -6
- package/_cjs/core/modules/decrypt/mock.js.map +1 -1
- package/_cjs/core/modules/decrypt/module/api-p.js +7 -7
- package/_cjs/core/modules/decrypt/module/api-p.js.map +1 -1
- package/_cjs/core/modules/relayer/cleartext/fetchCoprocessorSignatures.js +53 -3
- package/_cjs/core/modules/relayer/cleartext/fetchCoprocessorSignatures.js.map +1 -1
- package/_cjs/core/modules/relayer/cleartext/{fetchDelegatedUserDecrypt.js → fetchDelegatedUserDecryptV1.js} +67 -21
- package/_cjs/core/modules/relayer/cleartext/fetchDelegatedUserDecryptV1.js.map +1 -0
- package/_cjs/core/modules/relayer/cleartext/fetchPublicDecrypt.js +61 -4
- package/_cjs/core/modules/relayer/cleartext/fetchPublicDecrypt.js.map +1 -1
- package/_cjs/core/modules/relayer/cleartext/fetchUserDecrypt.js +9 -108
- package/_cjs/core/modules/relayer/cleartext/fetchUserDecrypt.js.map +1 -1
- package/_cjs/core/modules/relayer/cleartext/fetchUserDecryptV1.js +163 -0
- package/_cjs/core/modules/relayer/cleartext/fetchUserDecryptV1.js.map +1 -0
- package/_cjs/core/modules/relayer/cleartext/fetchUserDecryptV2.js +7 -0
- package/_cjs/core/modules/relayer/cleartext/fetchUserDecryptV2.js.map +1 -0
- package/_cjs/core/modules/relayer/cleartext/forgeFhevmV1.js +83 -0
- package/_cjs/core/modules/relayer/cleartext/forgeFhevmV1.js.map +1 -0
- package/_cjs/core/modules/relayer/cleartext/mock.js +2 -2
- package/_cjs/core/modules/relayer/cleartext/mock.js.map +1 -1
- package/_cjs/core/modules/relayer/cleartext/signers.js +14 -0
- package/_cjs/core/modules/relayer/cleartext/signers.js.map +1 -1
- package/_cjs/ethers/internal/ethereum-ct.js +11 -0
- package/_cjs/ethers/internal/ethereum-ct.js.map +1 -1
- package/_cjs/ethers/internal/runtime-ct.js +9 -7
- package/_cjs/ethers/internal/runtime-ct.js.map +1 -1
- package/_cjs/viem/internal/ethereum-ct.js +8 -0
- package/_cjs/viem/internal/ethereum-ct.js.map +1 -1
- package/_cjs/viem/internal/runtime-ct.js +9 -7
- package/_cjs/viem/internal/runtime-ct.js.map +1 -1
- package/_cjs/wasm/tfhe/loadTfheLib.js.map +1 -1
- package/_cjs/wasm/tkms/loadKmsLib.js.map +1 -1
- package/_esm/core/_version.js +1 -1
- package/_esm/core/actions/encrypt/encryptValue.js +2 -1
- package/_esm/core/actions/encrypt/encryptValue.js.map +1 -1
- package/_esm/core/actions/encrypt/encryptValues.js +2 -1
- package/_esm/core/actions/encrypt/encryptValues.js.map +1 -1
- package/_esm/core/actions/encrypt/generateZkProof.js +2 -1
- package/_esm/core/actions/encrypt/generateZkProof.js.map +1 -1
- package/_esm/core/actions/host/readKmsVerifierContractData.js +2 -2
- package/_esm/core/actions/host/readKmsVerifierContractData.js.map +1 -1
- package/_esm/core/base/cachedFetch.js +1 -1
- package/_esm/core/base/cachedFetch.js.map +1 -1
- package/_esm/core/handle/FheType.js +10 -0
- package/_esm/core/handle/FheType.js.map +1 -1
- package/_esm/core/host-contracts/HostContractVersion-p.js +6 -0
- package/_esm/core/host-contracts/HostContractVersion-p.js.map +1 -1
- package/_esm/core/host-contracts/KmsSignersContext-p.js +16 -25
- package/_esm/core/host-contracts/KmsSignersContext-p.js.map +1 -1
- package/_esm/core/host-contracts/getKmsContextSignersAndThreshold-p.js.map +1 -1
- package/_esm/core/host-contracts/getKmsContextSignersAndThresholdFromExtraData-p.js +6 -5
- package/_esm/core/host-contracts/getKmsContextSignersAndThresholdFromExtraData-p.js.map +1 -1
- package/_esm/core/host-contracts/readKmsSignersContext-p.js +133 -69
- package/_esm/core/host-contracts/readKmsSignersContext-p.js.map +1 -1
- package/_esm/core/kms/KmsSigncryptedShares-p.js +70 -4
- package/_esm/core/kms/KmsSigncryptedShares-p.js.map +1 -1
- package/_esm/core/kms/PublicDecryptionProof-p.js +4 -3
- package/_esm/core/kms/PublicDecryptionProof-p.js.map +1 -1
- package/_esm/core/kms/SignedDecryptionPermitV1-p.js +2 -32
- package/_esm/core/kms/SignedDecryptionPermitV1-p.js.map +1 -1
- package/_esm/core/kms/SignedDecryptionPermitV2-p.js +4 -16
- package/_esm/core/kms/SignedDecryptionPermitV2-p.js.map +1 -1
- package/_esm/core/kms/createKmsDelegatedUserDecryptEip712V1.js +3 -4
- package/_esm/core/kms/createKmsDelegatedUserDecryptEip712V1.js.map +1 -1
- package/_esm/core/kms/createKmsUserDecryptEip712V1.js +7 -6
- package/_esm/core/kms/createKmsUserDecryptEip712V1.js.map +1 -1
- package/_esm/core/kms/createKmsUserDecryptEip712V2.js +4 -5
- package/_esm/core/kms/createKmsUserDecryptEip712V2.js.map +1 -1
- package/_esm/core/kms/fetchKmsSigncryptedSharesV1-p.js +26 -2
- package/_esm/core/kms/fetchKmsSigncryptedSharesV1-p.js.map +1 -1
- package/_esm/core/kms/fetchKmsSigncryptedSharesV2-p.js +2 -2
- package/_esm/core/kms/fetchKmsSigncryptedSharesV2-p.js.map +1 -1
- package/_esm/core/kms/kmsExtraData-p.js +298 -0
- package/_esm/core/kms/kmsExtraData-p.js.map +1 -0
- package/_esm/core/kms/publicDecrypt.js +5 -5
- package/_esm/core/kms/publicDecrypt.js.map +1 -1
- package/_esm/core/kms/verifyKmsPublicDecryptEip712-p.js +5 -4
- package/_esm/core/kms/verifyKmsPublicDecryptEip712-p.js.map +1 -1
- package/_esm/core/modules/decrypt/mock.js +6 -6
- package/_esm/core/modules/decrypt/mock.js.map +1 -1
- package/_esm/core/modules/decrypt/module/api-p.js +7 -7
- package/_esm/core/modules/decrypt/module/api-p.js.map +1 -1
- package/_esm/core/modules/relayer/cleartext/fetchCoprocessorSignatures.js +69 -12
- package/_esm/core/modules/relayer/cleartext/fetchCoprocessorSignatures.js.map +1 -1
- package/_esm/core/modules/relayer/cleartext/{fetchDelegatedUserDecrypt.js → fetchDelegatedUserDecryptV1.js} +76 -22
- package/_esm/core/modules/relayer/cleartext/fetchDelegatedUserDecryptV1.js.map +1 -0
- package/_esm/core/modules/relayer/cleartext/fetchPublicDecrypt.js +77 -4
- package/_esm/core/modules/relayer/cleartext/fetchPublicDecrypt.js.map +1 -1
- package/_esm/core/modules/relayer/cleartext/fetchUserDecrypt.js +13 -114
- package/_esm/core/modules/relayer/cleartext/fetchUserDecrypt.js.map +1 -1
- package/_esm/core/modules/relayer/cleartext/fetchUserDecryptV1.js +173 -0
- package/_esm/core/modules/relayer/cleartext/fetchUserDecryptV1.js.map +1 -0
- package/_esm/core/modules/relayer/cleartext/fetchUserDecryptV2.js +6 -0
- package/_esm/core/modules/relayer/cleartext/fetchUserDecryptV2.js.map +1 -0
- package/_esm/core/modules/relayer/cleartext/forgeFhevmV1.js +140 -0
- package/_esm/core/modules/relayer/cleartext/forgeFhevmV1.js.map +1 -0
- package/_esm/core/modules/relayer/cleartext/mock.js +1 -1
- package/_esm/core/modules/relayer/cleartext/mock.js.map +1 -1
- package/_esm/core/modules/relayer/cleartext/signers.js +26 -0
- package/_esm/core/modules/relayer/cleartext/signers.js.map +1 -1
- package/_esm/ethers/internal/ethereum-ct.js +12 -1
- package/_esm/ethers/internal/ethereum-ct.js.map +1 -1
- package/_esm/ethers/internal/runtime-ct.js +9 -7
- package/_esm/ethers/internal/runtime-ct.js.map +1 -1
- package/_esm/viem/internal/ethereum-ct.js +10 -2
- package/_esm/viem/internal/ethereum-ct.js.map +1 -1
- package/_esm/viem/internal/runtime-ct.js +9 -7
- package/_esm/viem/internal/runtime-ct.js.map +1 -1
- package/_types/core/actions/encrypt/encryptValue.d.ts.map +1 -1
- package/_types/core/actions/encrypt/encryptValues.d.ts.map +1 -1
- package/_types/core/actions/encrypt/generateZkProof.d.ts.map +1 -1
- package/_types/core/base/cachedFetch.d.ts.map +1 -1
- package/_types/core/handle/FheType.d.ts +8 -0
- package/_types/core/handle/FheType.d.ts.map +1 -1
- package/_types/core/host-contracts/HostContractVersion-p.d.ts +8 -0
- package/_types/core/host-contracts/HostContractVersion-p.d.ts.map +1 -1
- package/_types/core/host-contracts/KmsSignersContext-p.d.ts +3 -2
- package/_types/core/host-contracts/KmsSignersContext-p.d.ts.map +1 -1
- package/_types/core/host-contracts/getKmsContextSignersAndThresholdFromExtraData-p.d.ts +3 -2
- package/_types/core/host-contracts/getKmsContextSignersAndThresholdFromExtraData-p.d.ts.map +1 -1
- package/_types/core/host-contracts/readKmsSignersContext-p.d.ts +43 -26
- package/_types/core/host-contracts/readKmsSignersContext-p.d.ts.map +1 -1
- package/_types/core/kms/KmsSigncryptedShares-p.d.ts +18 -0
- package/_types/core/kms/KmsSigncryptedShares-p.d.ts.map +1 -1
- package/_types/core/kms/PublicDecryptionProof-p.d.ts.map +1 -1
- package/_types/core/kms/SignedDecryptionPermitV1-p.d.ts.map +1 -1
- package/_types/core/kms/SignedDecryptionPermitV2-p.d.ts.map +1 -1
- package/_types/core/kms/createKmsDelegatedUserDecryptEip712V1.d.ts +2 -1
- package/_types/core/kms/createKmsDelegatedUserDecryptEip712V1.d.ts.map +1 -1
- package/_types/core/kms/createKmsUserDecryptEip712V1.d.ts +2 -1
- package/_types/core/kms/createKmsUserDecryptEip712V1.d.ts.map +1 -1
- package/_types/core/kms/createKmsUserDecryptEip712V2.d.ts +2 -1
- package/_types/core/kms/createKmsUserDecryptEip712V2.d.ts.map +1 -1
- package/_types/core/kms/fetchKmsSigncryptedSharesV1-p.d.ts.map +1 -1
- package/_types/core/kms/kmsExtraData-p.d.ts +66 -0
- package/_types/core/kms/kmsExtraData-p.d.ts.map +1 -0
- package/_types/core/kms/publicDecrypt.d.ts.map +1 -1
- package/_types/core/kms/verifyKmsPublicDecryptEip712-p.d.ts.map +1 -1
- package/_types/core/modules/ethereum/types-ct.d.ts +20 -2
- package/_types/core/modules/ethereum/types-ct.d.ts.map +1 -1
- package/_types/core/modules/relayer/cleartext/fetchCoprocessorSignatures.d.ts.map +1 -1
- package/_types/core/modules/relayer/cleartext/{fetchDelegatedUserDecrypt.d.ts → fetchDelegatedUserDecryptV1.d.ts} +1 -1
- package/_types/core/modules/relayer/cleartext/fetchDelegatedUserDecryptV1.d.ts.map +1 -0
- package/_types/core/modules/relayer/cleartext/fetchPublicDecrypt.d.ts.map +1 -1
- package/_types/core/modules/relayer/cleartext/fetchUserDecrypt.d.ts +2 -2
- package/_types/core/modules/relayer/cleartext/fetchUserDecrypt.d.ts.map +1 -1
- package/_types/core/modules/relayer/cleartext/fetchUserDecryptV1.d.ts +3 -0
- package/_types/core/modules/relayer/cleartext/fetchUserDecryptV1.d.ts.map +1 -0
- package/_types/core/modules/relayer/cleartext/fetchUserDecryptV2.d.ts +3 -0
- package/_types/core/modules/relayer/cleartext/fetchUserDecryptV2.d.ts.map +1 -0
- package/_types/core/modules/relayer/cleartext/forgeFhevmV1.d.ts +29 -0
- package/_types/core/modules/relayer/cleartext/forgeFhevmV1.d.ts.map +1 -0
- package/_types/core/modules/relayer/cleartext/signers.d.ts +1 -0
- package/_types/core/modules/relayer/cleartext/signers.d.ts.map +1 -1
- package/_types/core/types/kms-p.d.ts +7 -1
- package/_types/core/types/kms-p.d.ts.map +1 -1
- package/_types/ethers/internal/ethereum-ct.d.ts.map +1 -1
- package/_types/ethers/internal/runtime-ct.d.ts.map +1 -1
- package/_types/viem/internal/ethereum-ct.d.ts.map +1 -1
- package/_types/viem/internal/runtime-ct.d.ts.map +1 -1
- package/core/_version.ts +1 -1
- package/core/actions/encrypt/encryptValue.ts +4 -1
- package/core/actions/encrypt/encryptValues.ts +5 -1
- package/core/actions/encrypt/generateZkProof.ts +2 -1
- package/core/actions/host/readKmsVerifierContractData.ts +2 -2
- package/core/base/cachedFetch.ts +1 -1
- package/core/handle/FheType.ts +11 -0
- package/core/host-contracts/HostContractVersion-p.ts +12 -0
- package/core/host-contracts/KmsSignersContext-p.ts +29 -36
- package/core/host-contracts/getKmsContextSignersAndThreshold-p.ts +1 -0
- package/core/host-contracts/getKmsContextSignersAndThresholdFromExtraData-p.ts +10 -7
- package/core/host-contracts/readKmsSignersContext-p.ts +157 -116
- package/core/kms/KmsSigncryptedShares-p.ts +87 -4
- package/core/kms/PublicDecryptionProof-p.ts +6 -4
- package/core/kms/SignedDecryptionPermitV1-p.ts +5 -47
- package/core/kms/SignedDecryptionPermitV2-p.ts +8 -25
- package/core/kms/createKmsDelegatedUserDecryptEip712V1.ts +5 -5
- package/core/kms/createKmsUserDecryptEip712V1.ts +9 -7
- package/core/kms/createKmsUserDecryptEip712V2.ts +6 -6
- package/core/kms/fetchKmsSigncryptedSharesV1-p.ts +27 -15
- package/core/kms/fetchKmsSigncryptedSharesV2-p.ts +2 -2
- package/core/kms/kmsExtraData-p.ts +374 -0
- package/core/kms/publicDecrypt.ts +8 -7
- package/core/kms/verifyKmsPublicDecryptEip712-p.ts +7 -5
- package/core/modules/decrypt/mock.ts +6 -6
- package/core/modules/decrypt/module/api-p.ts +7 -7
- package/core/modules/ethereum/types-ct.ts +25 -2
- package/core/modules/relayer/cleartext/fetchCoprocessorSignatures.ts +98 -15
- package/core/modules/relayer/cleartext/{fetchDelegatedUserDecrypt.ts → fetchDelegatedUserDecryptV1.ts} +115 -27
- package/core/modules/relayer/cleartext/fetchPublicDecrypt.ts +112 -6
- package/core/modules/relayer/cleartext/fetchUserDecrypt.ts +24 -132
- package/core/modules/relayer/cleartext/fetchUserDecryptV1.ts +229 -0
- package/core/modules/relayer/cleartext/fetchUserDecryptV2.ts +11 -0
- package/core/modules/relayer/cleartext/forgeFhevmV1.ts +185 -0
- package/core/modules/relayer/cleartext/mock.ts +1 -1
- package/core/modules/relayer/cleartext/signers.ts +35 -0
- package/core/types/kms-p.ts +16 -1
- package/ethers/internal/ethereum-ct.ts +15 -1
- package/ethers/internal/runtime-ct.ts +9 -7
- package/package.json +1 -1
- package/viem/internal/ethereum-ct.ts +14 -2
- package/viem/internal/runtime-ct.ts +9 -7
- package/_cjs/core/kms/kmsExtraData.js +0 -82
- package/_cjs/core/kms/kmsExtraData.js.map +0 -1
- package/_cjs/core/modules/relayer/cleartext/fetchDelegatedUserDecrypt.js.map +0 -1
- package/_esm/core/kms/kmsExtraData.js +0 -99
- package/_esm/core/kms/kmsExtraData.js.map +0 -1
- package/_esm/core/modules/relayer/cleartext/fetchDelegatedUserDecrypt.js.map +0 -1
- package/_types/core/kms/kmsExtraData.d.ts +0 -25
- package/_types/core/kms/kmsExtraData.d.ts.map +0 -1
- package/_types/core/modules/relayer/cleartext/fetchDelegatedUserDecrypt.d.ts.map +0 -1
- package/core/kms/kmsExtraData.ts +0 -127
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"forgeFhevmV1.d.ts","sourceRoot":"","sources":["../../../../../core/modules/relayer/cleartext/forgeFhevmV1.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAW,QAAQ,EAAsB,MAAM,8BAA8B,CAAC;AAC1F,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AACjE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAC1E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAoC5D,wBAAsB,cAAc,CAAC,aAAa,EAAE,wBAAwB,GAAG,OAAO,CAAC,OAAO,CAAC,CAQ9F;AAqCD;;;;;GAKG;AACH,wBAAsB,cAAc,CAClC,aAAa,EAAE,wBAAwB,EACvC,aAAa,EAAE,aAAa,EAC5B,OAAO,EAAE,SAAS,MAAM,EAAE,GACzB,OAAO,CAAC,MAAM,EAAE,CAAC,CAcnB;AA+BD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,CAOjG;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,cAAc,EAAE,uBAAuB,EACvC,OAAO,EAAE,SAAS,MAAM,EAAE,EAC1B,UAAU,EAAE,SAAS,MAAM,EAAE,GAC5B,QAAQ,CAkBV"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { BytesHex, ChecksummedAddress } from '../../../types/primitives.js';
|
|
2
2
|
import type { RelayerClientWithRuntime } from '../types.js';
|
|
3
|
+
export declare function isForgeFhevmV1KmsSigner(signerAddress: string | undefined): boolean;
|
|
3
4
|
type PrivateKeyMap = Map<ChecksummedAddress, BytesHex>;
|
|
4
5
|
export declare function getCoprocessorSignersPrivateKeyMap(relayerClient: RelayerClientWithRuntime): PrivateKeyMap;
|
|
5
6
|
export declare function getKmsSignersPrivateKeyMap(relayerClient: RelayerClientWithRuntime): PrivateKeyMap;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signers.d.ts","sourceRoot":"","sources":["../../../../../core/modules/relayer/cleartext/signers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAEjF,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"signers.d.ts","sourceRoot":"","sources":["../../../../../core/modules/relayer/cleartext/signers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAEjF,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAgC5D,wBAAgB,uBAAuB,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAElF;AAID,KAAK,aAAa,GAAG,GAAG,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;AASvD,wBAAgB,kCAAkC,CAAC,aAAa,EAAE,wBAAwB,GAAG,aAAa,CASzG;AAID,wBAAgB,0BAA0B,CAAC,aAAa,EAAE,wBAAwB,GAAG,aAAa,CAMjG"}
|
|
@@ -2,7 +2,7 @@ import type { TkmsVersion } from '../../wasm/tkms/KmsLibApi.js';
|
|
|
2
2
|
import type { Handle } from './encryptedTypes-p.js';
|
|
3
3
|
import type { KmsEip712Domain } from './kms.js';
|
|
4
4
|
import type { KmsSignersContext } from './kmsSignersContext.js';
|
|
5
|
-
import type { Bytes65Hex, Bytes65HexNo0x, BytesHexNo0x, ChecksummedAddress } from './primitives.js';
|
|
5
|
+
import type { Bytes65Hex, Bytes65HexNo0x, BytesHex, BytesHexNo0x, ChecksummedAddress, Uint256BigInt, Uint8Number } from './primitives.js';
|
|
6
6
|
export interface KmsSigncryptedSharesMetadata {
|
|
7
7
|
readonly kmsSignersContext: KmsSignersContext;
|
|
8
8
|
readonly eip712Domain: KmsEip712Domain;
|
|
@@ -16,4 +16,10 @@ export interface KmsSigncryptedShare {
|
|
|
16
16
|
readonly signature: Bytes65HexNo0x;
|
|
17
17
|
readonly extraData: BytesHexNo0x;
|
|
18
18
|
}
|
|
19
|
+
export interface KmsExtraData {
|
|
20
|
+
readonly version: Uint8Number;
|
|
21
|
+
readonly kmsContextId: Uint256BigInt;
|
|
22
|
+
readonly kmsEpochId: Uint256BigInt;
|
|
23
|
+
toBytesHex(): BytesHex;
|
|
24
|
+
}
|
|
19
25
|
//# sourceMappingURL=kms-p.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kms-p.d.ts","sourceRoot":"","sources":["../../../core/types/kms-p.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"kms-p.d.ts","sourceRoot":"","sources":["../../../core/types/kms-p.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EACV,UAAU,EACV,cAAc,EACd,QAAQ,EACR,YAAY,EACZ,kBAAkB,EAClB,aAAa,EACb,WAAW,EACZ,MAAM,iBAAiB,CAAC;AAEzB,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAC9C,QAAQ,CAAC,YAAY,EAAE,eAAe,CAAC;IACvC,QAAQ,CAAC,eAAe,EAAE,UAAU,CAAC;IACrC,QAAQ,CAAC,mBAAmB,EAAE,kBAAkB,CAAC;IACjD,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;CACnC;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IAC/B,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAC;IACnC,QAAQ,CAAC,SAAS,EAAE,YAAY,CAAC;CAClC;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,YAAY,EAAE,aAAa,CAAC;IACrC,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC;IACnC,UAAU,IAAI,QAAQ,CAAC;CACxB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ethereum-ct.d.ts","sourceRoot":"","sources":["../../../ethers/internal/ethereum-ct.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,8BAA8B,
|
|
1
|
+
{"version":3,"file":"ethereum-ct.d.ts","sourceRoot":"","sources":["../../../ethers/internal/ethereum-ct.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,8BAA8B,EAY/B,MAAM,yCAAyC,CAAC;AAkBjD,eAAO,MAAM,uBAAuB,EAAE,8BA2CrC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-ct.d.ts","sourceRoot":"","sources":["../../../ethers/internal/runtime-ct.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AAYzE,wBAAgB,yBAAyB,IAAI,YAAY,
|
|
1
|
+
{"version":3,"file":"runtime-ct.d.ts","sourceRoot":"","sources":["../../../ethers/internal/runtime-ct.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AAYzE,wBAAgB,yBAAyB,IAAI,YAAY,CAiBxD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ethereum-ct.d.ts","sourceRoot":"","sources":["../../../viem/internal/ethereum-ct.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,8BAA8B,
|
|
1
|
+
{"version":3,"file":"ethereum-ct.d.ts","sourceRoot":"","sources":["../../../viem/internal/ethereum-ct.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,8BAA8B,EAY/B,MAAM,yCAAyC,CAAC;AAiBjD,eAAO,MAAM,uBAAuB,EAAE,8BA0CrC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-ct.d.ts","sourceRoot":"","sources":["../../../viem/internal/runtime-ct.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AAYzE,wBAAgB,uBAAuB,IAAI,YAAY,
|
|
1
|
+
{"version":3,"file":"runtime-ct.d.ts","sourceRoot":"","sources":["../../../viem/internal/runtime-ct.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AAYzE,wBAAgB,uBAAuB,IAAI,YAAY,CAiBtD"}
|
package/core/_version.ts
CHANGED
|
@@ -8,6 +8,7 @@ import { addressToChecksummedAddress, assertIsAddress } from '../../base/address
|
|
|
8
8
|
import { toArray } from '../../base/object.js';
|
|
9
9
|
import { createTypedValue } from '../../base/typedValue.js';
|
|
10
10
|
import { encrypt as encrypt_ } from '../../coprocessor/encrypt.js';
|
|
11
|
+
import { resolveRawValueTypeName } from '../../handle/FheType.js';
|
|
11
12
|
import { asFhevmWithTfheVersion } from '../../runtime/CoreFhevm-p.js';
|
|
12
13
|
|
|
13
14
|
////////////////////////////////////////////////////////////////////////////////
|
|
@@ -33,7 +34,9 @@ export async function encryptValue(
|
|
|
33
34
|
const { contractAddress, userAddress, options } = parameters;
|
|
34
35
|
|
|
35
36
|
// Validates `value`
|
|
36
|
-
const values = toArray(parameters.value).map(
|
|
37
|
+
const values = toArray(parameters.value).map((v) =>
|
|
38
|
+
createTypedValue({ type: resolveRawValueTypeName(v.type), value: v.value }),
|
|
39
|
+
);
|
|
37
40
|
|
|
38
41
|
assertIsAddress(contractAddress, {});
|
|
39
42
|
assertIsAddress(userAddress, {});
|
|
@@ -7,6 +7,7 @@ import type { EncryptedValue } from '../../types/encryptedTypes.js';
|
|
|
7
7
|
import { addressToChecksummedAddress, assertIsAddress } from '../../base/address.js';
|
|
8
8
|
import { createTypedValue } from '../../base/typedValue.js';
|
|
9
9
|
import { encrypt as encrypt_ } from '../../coprocessor/encrypt.js';
|
|
10
|
+
import { resolveRawValueTypeName } from '../../handle/FheType.js';
|
|
10
11
|
import { asFhevmWithTfheVersion } from '../../runtime/CoreFhevm-p.js';
|
|
11
12
|
|
|
12
13
|
////////////////////////////////////////////////////////////////////////////////
|
|
@@ -30,8 +31,11 @@ export async function encryptValues(
|
|
|
30
31
|
parameters: EncryptValuesParameters,
|
|
31
32
|
): Promise<EncryptValuesReturnType> {
|
|
32
33
|
const { contractAddress, userAddress, options } = parameters;
|
|
34
|
+
|
|
33
35
|
// Validates `values`
|
|
34
|
-
const values = parameters.values.map(
|
|
36
|
+
const values = parameters.values.map((v) =>
|
|
37
|
+
createTypedValue({ type: resolveRawValueTypeName(v.type), value: v.value }),
|
|
38
|
+
);
|
|
35
39
|
|
|
36
40
|
assertIsAddress(contractAddress, {});
|
|
37
41
|
assertIsAddress(userAddress, {});
|
|
@@ -5,6 +5,7 @@ import type { ZkProof } from '../../types/zkProof-p.js';
|
|
|
5
5
|
import type { BytesHex } from '../../types/primitives.js';
|
|
6
6
|
import { createTypedValue } from '../../base/typedValue.js';
|
|
7
7
|
import { createZkProofBuilder } from '../../coprocessor/ZkProofBuilder-p.js';
|
|
8
|
+
import { resolveRawValueTypeName } from '../../handle/FheType.js';
|
|
8
9
|
import { asFhevmWithTfheVersion } from '../../runtime/CoreFhevm-p.js';
|
|
9
10
|
|
|
10
11
|
////////////////////////////////////////////////////////////////////////////////
|
|
@@ -28,7 +29,7 @@ export async function generateZkProof(
|
|
|
28
29
|
|
|
29
30
|
const builder = createZkProofBuilder();
|
|
30
31
|
for (const value of values) {
|
|
31
|
-
builder.addTypedValue(createTypedValue(value));
|
|
32
|
+
builder.addTypedValue(createTypedValue({ type: resolveRawValueTypeName(value.type), value: value.value }));
|
|
32
33
|
}
|
|
33
34
|
|
|
34
35
|
const f = asFhevmWithTfheVersion(fhevm);
|
|
@@ -10,7 +10,7 @@ import { assertIsKmsEip712Domain } from '../../kms/createKmsEip712Domain.js';
|
|
|
10
10
|
import { eip712Domain } from '../../host-contracts/eip712Domain-p.js';
|
|
11
11
|
import { assertIsHostContractVersionOf } from '../../host-contracts/HostContractVersion-p.js';
|
|
12
12
|
import { getHostContractVersion } from '../../host-contracts/HostContractVersion-p.js';
|
|
13
|
-
import {
|
|
13
|
+
import { readCurrentKmsSignersContext } from '../../host-contracts/readKmsSignersContext-p.js';
|
|
14
14
|
|
|
15
15
|
////////////////////////////////////////////////////////////////////////////////
|
|
16
16
|
|
|
@@ -44,7 +44,7 @@ export async function readKmsVerifierContractData(
|
|
|
44
44
|
const rpcCalls = [
|
|
45
45
|
() => getHostContractVersion(fhevm, parameters),
|
|
46
46
|
() => eip712Domain(fhevm, parameters),
|
|
47
|
-
() =>
|
|
47
|
+
() => readCurrentKmsSignersContext(fhevm, { kmsVerifierAddress, protocolConfigAddress }),
|
|
48
48
|
];
|
|
49
49
|
|
|
50
50
|
const res = await executeWithBatching<unknown>(rpcCalls, fhevm.options.batchRpcCalls);
|
package/core/base/cachedFetch.ts
CHANGED
|
@@ -23,7 +23,7 @@ type CachedFetchOptions<TContext, TParams, TResult> = {
|
|
|
23
23
|
};
|
|
24
24
|
|
|
25
25
|
export const CACHE_TTL_24H = 24 * 60 * 60 * 1000; // 24 hours
|
|
26
|
-
export const CACHE_TTL_15MIN = 15 * 1000; // 15 min
|
|
26
|
+
export const CACHE_TTL_15MIN = 15 * 60 * 1000; // 15 min
|
|
27
27
|
|
|
28
28
|
/**
|
|
29
29
|
* Creates a cached, deduplicating wrapper around an async fetch function.
|
package/core/handle/FheType.ts
CHANGED
|
@@ -354,6 +354,17 @@ export function typeNameFromFheTypeName(fheType: FheType): ValueTypeName {
|
|
|
354
354
|
return fheType.substring(1) as ValueTypeName;
|
|
355
355
|
}
|
|
356
356
|
|
|
357
|
+
/**
|
|
358
|
+
* Resolves a raw type name to its clear `ValueTypeName`, accepting FHE type
|
|
359
|
+
* aliases ("ebool", "euint8", ...) in addition to clear-value names
|
|
360
|
+
* ("bool", "uint8", ...). Non-FHE type names are returned unchanged.
|
|
361
|
+
* @example resolveRawValueTypeName('euint8') // 'uint8'
|
|
362
|
+
* @example resolveRawValueTypeName('uint8') // 'uint8' (unchanged)
|
|
363
|
+
*/
|
|
364
|
+
export function resolveRawValueTypeName(type: string): string {
|
|
365
|
+
return isFheType(type) ? typeNameFromFheTypeName(type) : type;
|
|
366
|
+
}
|
|
367
|
+
|
|
357
368
|
////////////////////////////////////////////////////////////////////////////////
|
|
358
369
|
// Solidity primitive type names
|
|
359
370
|
////////////////////////////////////////////////////////////////////////////////
|
|
@@ -196,6 +196,18 @@ export function isVersionStrictlyBefore(
|
|
|
196
196
|
return false;
|
|
197
197
|
}
|
|
198
198
|
|
|
199
|
+
/**
|
|
200
|
+
* Returns `true` if the version equals `major.minor.patch` exactly.
|
|
201
|
+
*/
|
|
202
|
+
export function isVersionEqual(
|
|
203
|
+
version: HostContractVersion,
|
|
204
|
+
otherVersion: { readonly major: number; readonly minor: number; readonly patch: number },
|
|
205
|
+
): boolean {
|
|
206
|
+
return (
|
|
207
|
+
version.major === otherVersion.major && version.minor === otherVersion.minor && version.patch === otherVersion.patch
|
|
208
|
+
);
|
|
209
|
+
}
|
|
210
|
+
|
|
199
211
|
/**
|
|
200
212
|
* Asserts that a {@link HostContractVersion} belongs to a specific contract.
|
|
201
213
|
* Narrows the type to `HostContractVersion<name>` on success.
|
|
@@ -1,20 +1,22 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ChecksummedAddress, Uint256BigInt, Uint8Number } from '../types/primitives.js';
|
|
2
2
|
import type { kmsBrand } from '../types/kms.js';
|
|
3
3
|
import type { KmsSignersContext } from '../types/kmsSignersContext.js';
|
|
4
4
|
import type { ErrorMetadataParams } from '../base/errors/ErrorBase.js';
|
|
5
5
|
import type { FhevmRuntime } from '../types/coreFhevmRuntime.js';
|
|
6
|
+
import type { KmsExtraData } from '../types/kms-p.js';
|
|
6
7
|
import { InvalidTypeError } from '../base/errors/InvalidTypeError.js';
|
|
7
8
|
import { addressToChecksummedAddress } from '../base/address.js';
|
|
8
9
|
import { DuplicateSignerError, ThresholdSignerError, UnknownSignerError } from '../errors/SignersError.js';
|
|
9
10
|
import { assertOwnedBy } from '../runtime/CoreFhevmRuntime-p.js';
|
|
10
|
-
import {
|
|
11
|
-
assertIsKmsExtraData,
|
|
12
|
-
EXTRA_DATA_V0,
|
|
13
|
-
EXTRA_DATA_V1,
|
|
14
|
-
EXTRA_DATA_V2,
|
|
15
|
-
toKmsExtraData,
|
|
16
|
-
} from '../kms/kmsExtraData.js';
|
|
17
11
|
import { assertIsNonEmptyString, ensure0x } from '../base/string.js';
|
|
12
|
+
import {
|
|
13
|
+
assertIsKmsExtraDataBytesHex,
|
|
14
|
+
createKmsExtraData,
|
|
15
|
+
equalsKmsExtraData,
|
|
16
|
+
fromKmsExtraDataBytesHex,
|
|
17
|
+
isKmsExtraData,
|
|
18
|
+
validateKmsExtraDataParams,
|
|
19
|
+
} from '../kms/kmsExtraData-p.js';
|
|
18
20
|
|
|
19
21
|
////////////////////////////////////////////////////////////////////////////////
|
|
20
22
|
|
|
@@ -124,6 +126,8 @@ export function createKmsSignersContext(
|
|
|
124
126
|
): KmsSignersContext {
|
|
125
127
|
const { kmsVerifierAddress: address, kmsContextId, kmsEpochId, kmsSigners, kmsSignerThreshold } = parameters;
|
|
126
128
|
|
|
129
|
+
validateKmsExtraDataParams({ kmsContextId: parameters.kmsContextId, kmsEpochId: parameters.kmsEpochId });
|
|
130
|
+
|
|
127
131
|
return new KmsSignersContextImpl(PRIVATE_TOKEN, owner, {
|
|
128
132
|
address: addressToChecksummedAddress(address),
|
|
129
133
|
kmsContextId,
|
|
@@ -135,32 +139,13 @@ export function createKmsSignersContext(
|
|
|
135
139
|
|
|
136
140
|
////////////////////////////////////////////////////////////////////////////////
|
|
137
141
|
|
|
138
|
-
export function kmsSignersContextToExtraData(kmsSignersContext: KmsSignersContext):
|
|
142
|
+
export function kmsSignersContextToExtraData(kmsSignersContext: KmsSignersContext): KmsExtraData {
|
|
139
143
|
assertIsKmsSignersContext(kmsSignersContext, {});
|
|
140
|
-
|
|
141
|
-
if (kmsSignersContext.id === 0n) {
|
|
142
|
-
return toKmsExtraData({
|
|
143
|
-
version: EXTRA_DATA_V0,
|
|
144
|
-
kmsContextId: 0n as Uint256BigInt,
|
|
145
|
-
kmsEpochId: 0n as Uint256BigInt,
|
|
146
|
-
});
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
if (kmsSignersContext.epochId === 0n) {
|
|
150
|
-
return toKmsExtraData({
|
|
151
|
-
version: EXTRA_DATA_V1,
|
|
152
|
-
kmsContextId: kmsSignersContext.id,
|
|
153
|
-
kmsEpochId: 0n as Uint256BigInt,
|
|
154
|
-
});
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
return toKmsExtraData({
|
|
158
|
-
version: EXTRA_DATA_V2,
|
|
159
|
-
kmsContextId: kmsSignersContext.id,
|
|
160
|
-
kmsEpochId: kmsSignersContext.epochId,
|
|
161
|
-
});
|
|
144
|
+
return createKmsExtraData({ kmsContextId: kmsSignersContext.id, kmsEpochId: kmsSignersContext.epochId });
|
|
162
145
|
}
|
|
163
146
|
|
|
147
|
+
////////////////////////////////////////////////////////////////////////////////
|
|
148
|
+
|
|
164
149
|
/**
|
|
165
150
|
* Asserts that the given `extraData` is a valid KMS extra data string and
|
|
166
151
|
* matches the `extraData` derived from the provided {@link KmsSignersContext}.
|
|
@@ -176,15 +161,23 @@ export function assertExtraDataMatchesKmsSingersContext(
|
|
|
176
161
|
options: { subject?: string } & ErrorMetadataParams,
|
|
177
162
|
): void {
|
|
178
163
|
const { extraData, kmsSignersContext } = parameters;
|
|
179
|
-
assertIsNonEmptyString(extraData);
|
|
180
164
|
|
|
181
|
-
|
|
182
|
-
|
|
165
|
+
let sanitizedExtraData: KmsExtraData;
|
|
166
|
+
if (isKmsExtraData(extraData)) {
|
|
167
|
+
sanitizedExtraData = extraData;
|
|
168
|
+
} else {
|
|
169
|
+
assertIsNonEmptyString(extraData);
|
|
170
|
+
const sanitizedExtraDataBytesHex = ensure0x(extraData);
|
|
171
|
+
assertIsKmsExtraDataBytesHex(sanitizedExtraDataBytesHex, options);
|
|
172
|
+
sanitizedExtraData = fromKmsExtraDataBytesHex(sanitizedExtraDataBytesHex);
|
|
173
|
+
}
|
|
183
174
|
|
|
184
175
|
const expectedExtraData = kmsSignersContextToExtraData(kmsSignersContext);
|
|
185
176
|
|
|
186
|
-
if (sanitizedExtraData
|
|
187
|
-
throw new Error(
|
|
177
|
+
if (!equalsKmsExtraData(sanitizedExtraData, expectedExtraData)) {
|
|
178
|
+
throw new Error(
|
|
179
|
+
`extraData "${sanitizedExtraData.toBytesHex()}" does not match KmsSignersContext extraData "${expectedExtraData.toBytesHex()}".`,
|
|
180
|
+
);
|
|
188
181
|
}
|
|
189
182
|
}
|
|
190
183
|
|
|
@@ -68,6 +68,7 @@ async function _getKmsContextSignersAndThreshold(context: Context, parameters: P
|
|
|
68
68
|
if (!isVersionStrictlyBefore(kmsVerifierVersion, { major: 0, minor: 2 })) {
|
|
69
69
|
throw new Error('getContextSignersAndThreshold requires KMSVerifier < v0.2.0');
|
|
70
70
|
}
|
|
71
|
+
|
|
71
72
|
////////////////////////////////////////////////////////////////////////////
|
|
72
73
|
//
|
|
73
74
|
// Important remark:
|
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ChecksummedAddress, Uint8Number } from '../types/primitives.js';
|
|
2
2
|
import type { FhevmRuntime } from '../types/coreFhevmRuntime.js';
|
|
3
|
+
import type { KmsExtraData } from '../types/kms-p.js';
|
|
3
4
|
import { getHostContractVersion, isVersionStrictlyBefore } from './HostContractVersion-p.js';
|
|
4
5
|
import { createCachedFetch } from '../base/cachedFetch.js';
|
|
5
|
-
import { assertIsKmsExtraData, fromKmsExtraData } from '../kms/kmsExtraData.js';
|
|
6
6
|
import { assertIsChecksummedAddressArray } from '../base/address.js';
|
|
7
7
|
import { isUint8 } from '../base/uint.js';
|
|
8
8
|
import { getContextSignersAndThresholdFromExtraDataAbi } from './abi-fragments/fragments.js';
|
|
9
9
|
import { getTrustedClient } from '../runtime/CoreFhevm-p.js';
|
|
10
|
+
import { assertIsKmsExtraData } from '../kms/kmsExtraData-p.js';
|
|
10
11
|
|
|
11
12
|
////////////////////////////////////////////////////////////////////////////////
|
|
12
13
|
|
|
@@ -17,7 +18,7 @@ type Context = {
|
|
|
17
18
|
|
|
18
19
|
type Parameters = {
|
|
19
20
|
readonly kmsVerifierAddress: ChecksummedAddress;
|
|
20
|
-
readonly extraData:
|
|
21
|
+
readonly extraData: KmsExtraData;
|
|
21
22
|
};
|
|
22
23
|
|
|
23
24
|
type ReturnType = {
|
|
@@ -30,9 +31,9 @@ type ReturnType = {
|
|
|
30
31
|
const cachedGetKmsContextSignersAndThresholdFromExtraData = createCachedFetch<Context, Parameters, ReturnType>({
|
|
31
32
|
executeFn: _getKmsContextSignersAndThresholdFromExtraData,
|
|
32
33
|
cacheKeyFn: (context, params) => {
|
|
33
|
-
const
|
|
34
|
-
const
|
|
35
|
-
return `${context.runtime.uid.toLowerCase()}:${params.kmsVerifierAddress.toLowerCase()}:${
|
|
34
|
+
const kmsContextId = params.extraData.kmsContextId;
|
|
35
|
+
const kmsContextIdHex = kmsContextId.toString(16).padStart(64, '0');
|
|
36
|
+
return `${context.runtime.uid.toLowerCase()}:${params.kmsVerifierAddress.toLowerCase()}:${kmsContextIdHex}`;
|
|
36
37
|
},
|
|
37
38
|
// Permanent cache: signers and threshold are immutable per context ID.
|
|
38
39
|
});
|
|
@@ -76,10 +77,12 @@ async function _getKmsContextSignersAndThresholdFromExtraData(
|
|
|
76
77
|
|
|
77
78
|
const trustedClient = getTrustedClient(context);
|
|
78
79
|
|
|
80
|
+
const extraDataBytesHex = parameters.extraData.toBytesHex();
|
|
81
|
+
|
|
79
82
|
const res = await context.runtime.ethereum.readContract(trustedClient, {
|
|
80
83
|
address: parameters.kmsVerifierAddress,
|
|
81
84
|
abi: getContextSignersAndThresholdFromExtraDataAbi,
|
|
82
|
-
args: [
|
|
85
|
+
args: [extraDataBytesHex],
|
|
83
86
|
functionName: getContextSignersAndThresholdFromExtraDataAbi[0].name,
|
|
84
87
|
});
|
|
85
88
|
|