@fhevm/sdk 1.1.0-alpha.6 → 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.
- package/README.md +5 -5
- package/_cjs/core/_version.js +1 -1
- package/_cjs/core/actions/base/index.js +1 -17
- package/_cjs/core/actions/base/index.js.map +1 -1
- package/_cjs/core/actions/base/signDecryptionPermit.js +0 -3
- package/_cjs/core/actions/base/signDecryptionPermit.js.map +1 -1
- package/_cjs/core/actions/chain/index.js +1 -13
- package/_cjs/core/actions/chain/index.js.map +1 -1
- package/_cjs/core/actions/chain/parseSignedDecryptionPermit.js.map +1 -1
- package/_cjs/core/actions/chain/serializeSignedDecryptionPermit.js.map +1 -1
- package/_cjs/core/actions/decrypt/canDecryptValue.js.map +1 -1
- package/_cjs/core/actions/decrypt/canDecryptValues.js.map +1 -1
- package/_cjs/core/actions/decrypt/canDecryptValuesFromPairs.js.map +1 -1
- package/_cjs/core/actions/decrypt/decryptValue.js +1 -0
- package/_cjs/core/actions/decrypt/decryptValue.js.map +1 -1
- package/_cjs/core/actions/decrypt/decryptValues.js +2 -0
- package/_cjs/core/actions/decrypt/decryptValues.js.map +1 -1
- package/_cjs/core/actions/decrypt/decryptValuesFromPairs.js +2 -0
- package/_cjs/core/actions/decrypt/decryptValuesFromPairs.js.map +1 -1
- package/_cjs/core/actions/decrypt/index.js +1 -3
- package/_cjs/core/actions/decrypt/index.js.map +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/index.js +1 -9
- package/_cjs/core/actions/host/index.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 +2 -1
- package/_cjs/core/base/cachedFetch.js.map +1 -1
- package/_cjs/core/base/uint.js +7 -0
- package/_cjs/core/base/uint.js.map +1 -1
- package/_cjs/core/clients/decorators/base.js +1 -1
- package/_cjs/core/clients/decorators/base.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/canDecryptValuesFromPairs.js +4 -1
- package/_cjs/core/host-contracts/canDecryptValuesFromPairs.js.map +1 -1
- package/_cjs/core/host-contracts/getCoprocessorContextSignersAndThreshold-p.js +1 -1
- package/_cjs/core/host-contracts/getCoprocessorContextSignersAndThreshold-p.js.map +1 -1
- package/_cjs/core/host-contracts/getCurrentKmsContextAndEpoch-p.js +1 -1
- package/_cjs/core/host-contracts/getCurrentKmsContextAndEpoch-p.js.map +1 -1
- package/_cjs/core/host-contracts/getCurrentKmsContextId-p.js +1 -1
- package/_cjs/core/host-contracts/getCurrentKmsContextId-p.js.map +1 -1
- package/_cjs/core/host-contracts/getKmsContextSignersAndThreshold-p.js +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 +54 -66
- 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 +8 -7
- package/_cjs/core/kms/PublicDecryptionProof-p.js.map +1 -1
- package/_cjs/core/kms/SignedDecryptionPermit-p.js +33 -199
- package/_cjs/core/kms/SignedDecryptionPermit-p.js.map +1 -1
- package/_cjs/core/kms/SignedDecryptionPermitV1-p.js +204 -0
- package/_cjs/core/kms/SignedDecryptionPermitV1-p.js.map +1 -0
- package/_cjs/core/kms/SignedDecryptionPermitV2-p.js +172 -0
- package/_cjs/core/kms/SignedDecryptionPermitV2-p.js.map +1 -0
- package/_cjs/core/kms/{createKmsDelegatedUserDecryptEip712.js → createKmsDelegatedUserDecryptEip712V1.js} +12 -13
- package/_cjs/core/kms/createKmsDelegatedUserDecryptEip712V1.js.map +1 -0
- package/_cjs/core/kms/{createKmsUserDecryptEip712.js → createKmsUserDecryptEip712V1.js} +22 -21
- package/_cjs/core/kms/createKmsUserDecryptEip712V1.js.map +1 -0
- package/_cjs/core/kms/createKmsUserDecryptEip712V2.js +4 -5
- package/_cjs/core/kms/createKmsUserDecryptEip712V2.js.map +1 -1
- package/_cjs/core/kms/decryptValuesFromPairs.js +18 -2
- package/_cjs/core/kms/decryptValuesFromPairs.js.map +1 -1
- package/_cjs/core/kms/{fetchKmsSigncryptedShares-p.js → fetchKmsSigncryptedSharesV1-p.js} +19 -9
- package/_cjs/core/kms/fetchKmsSigncryptedSharesV1-p.js.map +1 -0
- package/_cjs/core/kms/fetchKmsSigncryptedSharesV2-p.js +95 -0
- package/_cjs/core/kms/fetchKmsSigncryptedSharesV2-p.js.map +1 -0
- package/_cjs/core/kms/{kmsDelegatedUserDecryptEip712Types.js → kmsDelegatedUserDecryptEip712V1Types.js} +8 -8
- package/_cjs/core/kms/kmsDelegatedUserDecryptEip712V1Types.js.map +1 -0
- package/_cjs/core/kms/kmsExtraData-p.js +234 -0
- package/_cjs/core/kms/kmsExtraData-p.js.map +1 -0
- package/_cjs/core/kms/{kmsUserDecryptEip712Types.js → kmsUserDecryptEip712V1Types.js} +8 -8
- package/_cjs/core/kms/kmsUserDecryptEip712V1Types.js.map +1 -0
- package/_cjs/core/kms/kmsUserDecryptEip712V2Types.js.map +1 -1
- package/_cjs/core/kms/publicDecrypt.js +5 -5
- package/_cjs/core/kms/publicDecrypt.js.map +1 -1
- package/_cjs/core/kms/utils.js +0 -19
- package/_cjs/core/kms/utils.js.map +1 -1
- package/_cjs/core/kms/verifyKmsPublicDecryptEip712-p.js +6 -5
- 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 +12 -12
- package/_cjs/core/modules/decrypt/module/api-p.js.map +1 -1
- package/_cjs/core/modules/decrypt/module/init-p.js +6 -7
- package/_cjs/core/modules/decrypt/module/init-p.js.map +1 -1
- package/_cjs/core/modules/encrypt/module/init-p.js +12 -11
- package/_cjs/core/modules/encrypt/module/init-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 +64 -7
- 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/core/modules/relayer/module/{fetchDelegatedUserDecrypt.js → fetchDelegatedUserDecryptV1.js} +1 -1
- package/_cjs/core/modules/relayer/module/fetchDelegatedUserDecryptV1.js.map +1 -0
- package/_cjs/core/modules/relayer/module/fetchPublicDecrypt.js +1 -1
- package/_cjs/core/modules/relayer/module/fetchUserDecrypt.js +11 -45
- package/_cjs/core/modules/relayer/module/fetchUserDecrypt.js.map +1 -1
- package/_cjs/core/modules/relayer/module/fetchUserDecryptV1.js +52 -0
- package/_cjs/core/modules/relayer/module/fetchUserDecryptV1.js.map +1 -0
- package/_cjs/core/modules/relayer/module/fetchUserDecryptV2.js +54 -0
- package/_cjs/core/modules/relayer/module/fetchUserDecryptV2.js.map +1 -0
- package/_cjs/core/modules/relayer/module/guards/RelayerResponseFailed.js +10 -2
- package/_cjs/core/modules/relayer/module/guards/RelayerResponseFailed.js.map +1 -1
- package/_cjs/core/modules/relayer/module/guards/api-errors/RelayerApiError400NoDetails.js +5 -2
- package/_cjs/core/modules/relayer/module/guards/api-errors/RelayerApiError400NoDetails.js.map +1 -1
- package/_cjs/core/modules/relayer/module/guards/api-errors/RelayerApiError503.js +2 -0
- package/_cjs/core/modules/relayer/module/guards/api-errors/RelayerApiError503.js.map +1 -1
- package/_cjs/core/modules/relayer/module/index.js +2 -2
- package/_cjs/core/modules/relayer/module/index.js.map +1 -1
- package/_cjs/core/runtime/HyperWasmSolver-p.js +1 -6
- package/_cjs/core/runtime/HyperWasmSolver-p.js.map +1 -1
- package/_cjs/core/utils-p/decrypt/{verifyKmsDelegatedUserDecryptEip712.js → verifyKmsDelegatedUserDecryptEip712V1.js} +5 -5
- package/_cjs/core/utils-p/decrypt/verifyKmsDelegatedUserDecryptEip712V1.js.map +1 -0
- package/_cjs/core/utils-p/decrypt/{verifyKmsUserDecryptEip712.js → verifyKmsUserDecryptEip712V1.js} +5 -5
- package/_cjs/core/utils-p/decrypt/verifyKmsUserDecryptEip712V1.js.map +1 -0
- package/_cjs/core/utils-p/decrypt/verifyKmsUserDecryptEip712V2.js +30 -0
- package/_cjs/core/utils-p/decrypt/verifyKmsUserDecryptEip712V2.js.map +1 -0
- 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/base/index.js +0 -8
- package/_esm/core/actions/base/index.js.map +1 -1
- package/_esm/core/actions/base/signDecryptionPermit.js +0 -6
- package/_esm/core/actions/base/signDecryptionPermit.js.map +1 -1
- package/_esm/core/actions/chain/index.js +0 -6
- package/_esm/core/actions/chain/index.js.map +1 -1
- package/_esm/core/actions/chain/parseSignedDecryptionPermit.js.map +1 -1
- package/_esm/core/actions/chain/serializeSignedDecryptionPermit.js.map +1 -1
- package/_esm/core/actions/decrypt/canDecryptValue.js +40 -0
- package/_esm/core/actions/decrypt/canDecryptValue.js.map +1 -1
- package/_esm/core/actions/decrypt/canDecryptValues.js +1 -0
- package/_esm/core/actions/decrypt/canDecryptValues.js.map +1 -1
- package/_esm/core/actions/decrypt/canDecryptValuesFromPairs.js +1 -0
- package/_esm/core/actions/decrypt/canDecryptValuesFromPairs.js.map +1 -1
- package/_esm/core/actions/decrypt/decryptValue.js +1 -0
- package/_esm/core/actions/decrypt/decryptValue.js.map +1 -1
- package/_esm/core/actions/decrypt/decryptValues.js +2 -0
- package/_esm/core/actions/decrypt/decryptValues.js.map +1 -1
- package/_esm/core/actions/decrypt/decryptValuesFromPairs.js +2 -0
- package/_esm/core/actions/decrypt/decryptValuesFromPairs.js.map +1 -1
- package/_esm/core/actions/decrypt/index.js +0 -1
- package/_esm/core/actions/decrypt/index.js.map +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/index.js +0 -4
- package/_esm/core/actions/host/index.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 -0
- package/_esm/core/base/cachedFetch.js.map +1 -1
- package/_esm/core/base/uint.js +7 -0
- package/_esm/core/base/uint.js.map +1 -1
- package/_esm/core/clients/decorators/base.js +2 -4
- package/_esm/core/clients/decorators/base.js.map +1 -1
- package/_esm/core/coprocessor/coprocessorEip712Types.js +2 -2
- 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/canDecryptValuesFromPairs.js +5 -2
- package/_esm/core/host-contracts/canDecryptValuesFromPairs.js.map +1 -1
- package/_esm/core/host-contracts/getCoprocessorContextSignersAndThreshold-p.js +2 -2
- package/_esm/core/host-contracts/getCoprocessorContextSignersAndThreshold-p.js.map +1 -1
- package/_esm/core/host-contracts/getCurrentKmsContextAndEpoch-p.js +2 -2
- package/_esm/core/host-contracts/getCurrentKmsContextAndEpoch-p.js.map +1 -1
- package/_esm/core/host-contracts/getCurrentKmsContextId-p.js +2 -2
- package/_esm/core/host-contracts/getCurrentKmsContextId-p.js.map +1 -1
- package/_esm/core/host-contracts/getKmsContextSignersAndThreshold-p.js +2 -2
- 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 +132 -68
- 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 +8 -7
- package/_esm/core/kms/PublicDecryptionProof-p.js.map +1 -1
- package/_esm/core/kms/SignedDecryptionPermit-p.js +48 -245
- package/_esm/core/kms/SignedDecryptionPermit-p.js.map +1 -1
- package/_esm/core/kms/SignedDecryptionPermitV1-p.js +228 -0
- package/_esm/core/kms/SignedDecryptionPermitV1-p.js.map +1 -0
- package/_esm/core/kms/SignedDecryptionPermitV2-p.js +192 -0
- package/_esm/core/kms/SignedDecryptionPermitV2-p.js.map +1 -0
- package/_esm/core/kms/{createKmsDelegatedUserDecryptEip712.js → createKmsDelegatedUserDecryptEip712V1.js} +11 -12
- package/_esm/core/kms/createKmsDelegatedUserDecryptEip712V1.js.map +1 -0
- package/_esm/core/kms/createKmsPublicDecryptEip712.js +1 -1
- package/_esm/core/kms/{createKmsUserDecryptEip712.js → createKmsUserDecryptEip712V1.js} +23 -22
- package/_esm/core/kms/createKmsUserDecryptEip712V1.js.map +1 -0
- package/_esm/core/kms/createKmsUserDecryptEip712V2.js +4 -5
- package/_esm/core/kms/createKmsUserDecryptEip712V2.js.map +1 -1
- package/_esm/core/kms/decryptValuesFromPairs.js +18 -2
- package/_esm/core/kms/decryptValuesFromPairs.js.map +1 -1
- package/_esm/core/kms/{fetchKmsSigncryptedShares-p.js → fetchKmsSigncryptedSharesV1-p.js} +49 -15
- package/_esm/core/kms/fetchKmsSigncryptedSharesV1-p.js.map +1 -0
- package/_esm/core/kms/fetchKmsSigncryptedSharesV2-p.js +119 -0
- package/_esm/core/kms/fetchKmsSigncryptedSharesV2-p.js.map +1 -0
- package/_esm/core/kms/{kmsDelegatedUserDecryptEip712Types.js → kmsDelegatedUserDecryptEip712V1Types.js} +9 -8
- package/_esm/core/kms/kmsDelegatedUserDecryptEip712V1Types.js.map +1 -0
- package/_esm/core/kms/kmsExtraData-p.js +298 -0
- package/_esm/core/kms/kmsExtraData-p.js.map +1 -0
- package/_esm/core/kms/kmsPublicDecryptEip712Types.js +1 -1
- package/_esm/core/kms/{kmsUserDecryptEip712Types.js → kmsUserDecryptEip712V1Types.js} +9 -8
- package/_esm/core/kms/kmsUserDecryptEip712V1Types.js.map +1 -0
- package/_esm/core/kms/kmsUserDecryptEip712V2Types.js +2 -1
- package/_esm/core/kms/kmsUserDecryptEip712V2Types.js.map +1 -1
- package/_esm/core/kms/publicDecrypt.js +6 -6
- package/_esm/core/kms/publicDecrypt.js.map +1 -1
- package/_esm/core/kms/utils.js +0 -18
- package/_esm/core/kms/utils.js.map +1 -1
- package/_esm/core/kms/verifyKmsPublicDecryptEip712-p.js +7 -6
- 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 +13 -13
- package/_esm/core/modules/decrypt/module/api-p.js.map +1 -1
- package/_esm/core/modules/decrypt/module/init-p.js +7 -7
- package/_esm/core/modules/decrypt/module/init-p.js.map +1 -1
- package/_esm/core/modules/encrypt/module/init-p.js +13 -11
- package/_esm/core/modules/encrypt/module/init-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 +80 -7
- 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/core/modules/relayer/module/{fetchDelegatedUserDecrypt.js → fetchDelegatedUserDecryptV1.js} +1 -1
- package/_esm/core/modules/relayer/module/fetchDelegatedUserDecryptV1.js.map +1 -0
- package/_esm/core/modules/relayer/module/fetchPublicDecrypt.js +1 -1
- package/_esm/core/modules/relayer/module/fetchUserDecrypt.js +11 -46
- package/_esm/core/modules/relayer/module/fetchUserDecrypt.js.map +1 -1
- package/_esm/core/modules/relayer/module/fetchUserDecryptV1.js +53 -0
- package/_esm/core/modules/relayer/module/fetchUserDecryptV1.js.map +1 -0
- package/_esm/core/modules/relayer/module/fetchUserDecryptV2.js +56 -0
- package/_esm/core/modules/relayer/module/fetchUserDecryptV2.js.map +1 -0
- package/_esm/core/modules/relayer/module/guards/RelayerResponseFailed.js +10 -2
- package/_esm/core/modules/relayer/module/guards/RelayerResponseFailed.js.map +1 -1
- package/_esm/core/modules/relayer/module/guards/api-errors/RelayerApiError400NoDetails.js +6 -3
- package/_esm/core/modules/relayer/module/guards/api-errors/RelayerApiError400NoDetails.js.map +1 -1
- package/_esm/core/modules/relayer/module/guards/api-errors/RelayerApiError503.js +2 -0
- package/_esm/core/modules/relayer/module/guards/api-errors/RelayerApiError503.js.map +1 -1
- package/_esm/core/modules/relayer/module/index.js +1 -1
- package/_esm/core/modules/relayer/module/index.js.map +1 -1
- package/_esm/core/runtime/HyperWasmSolver-p.js +1 -6
- package/_esm/core/runtime/HyperWasmSolver-p.js.map +1 -1
- package/_esm/core/utils-p/decrypt/{verifyKmsDelegatedUserDecryptEip712.js → verifyKmsDelegatedUserDecryptEip712V1.js} +5 -5
- package/_esm/core/utils-p/decrypt/verifyKmsDelegatedUserDecryptEip712V1.js.map +1 -0
- package/_esm/core/utils-p/decrypt/{verifyKmsUserDecryptEip712.js → verifyKmsUserDecryptEip712V1.js} +5 -5
- package/_esm/core/utils-p/decrypt/verifyKmsUserDecryptEip712V1.js.map +1 -0
- package/_esm/core/utils-p/decrypt/verifyKmsUserDecryptEip712V2.js +27 -0
- package/_esm/core/utils-p/decrypt/verifyKmsUserDecryptEip712V2.js.map +1 -0
- 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/base/index.d.ts +0 -8
- package/_types/core/actions/base/index.d.ts.map +1 -1
- package/_types/core/actions/base/signDecryptionPermit.d.ts +4 -5
- package/_types/core/actions/base/signDecryptionPermit.d.ts.map +1 -1
- package/_types/core/actions/chain/index.d.ts +1 -7
- package/_types/core/actions/chain/index.d.ts.map +1 -1
- package/_types/core/actions/chain/parseSignedDecryptionPermit.d.ts +1 -0
- package/_types/core/actions/chain/parseSignedDecryptionPermit.d.ts.map +1 -1
- package/_types/core/actions/chain/serializeSignedDecryptionPermit.d.ts +3 -2
- package/_types/core/actions/chain/serializeSignedDecryptionPermit.d.ts.map +1 -1
- package/_types/core/actions/decrypt/canDecryptValue.d.ts +3 -4
- package/_types/core/actions/decrypt/canDecryptValue.d.ts.map +1 -1
- package/_types/core/actions/decrypt/canDecryptValues.d.ts +3 -4
- package/_types/core/actions/decrypt/canDecryptValues.d.ts.map +1 -1
- package/_types/core/actions/decrypt/canDecryptValuesFromPairs.d.ts +3 -4
- package/_types/core/actions/decrypt/canDecryptValuesFromPairs.d.ts.map +1 -1
- package/_types/core/actions/decrypt/decryptValue.d.ts.map +1 -1
- package/_types/core/actions/decrypt/decryptValues.d.ts.map +1 -1
- package/_types/core/actions/decrypt/decryptValuesFromPairs.d.ts.map +1 -1
- package/_types/core/actions/decrypt/index.d.ts +0 -1
- package/_types/core/actions/decrypt/index.d.ts.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/actions/host/index.d.ts +0 -4
- package/_types/core/actions/host/index.d.ts.map +1 -1
- package/_types/core/base/cachedFetch.d.ts +1 -0
- package/_types/core/base/cachedFetch.d.ts.map +1 -1
- package/_types/core/base/uint.d.ts +2 -1
- package/_types/core/base/uint.d.ts.map +1 -1
- package/_types/core/clients/decorators/base.d.ts +12 -23
- package/_types/core/clients/decorators/base.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/canDecryptValuesFromPairs.d.ts +2 -2
- package/_types/core/host-contracts/canDecryptValuesFromPairs.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 +1 -1
- package/_types/core/kms/PublicDecryptionProof-p.d.ts.map +1 -1
- package/_types/core/kms/SignedDecryptionPermit-p.d.ts +15 -29
- package/_types/core/kms/SignedDecryptionPermit-p.d.ts.map +1 -1
- package/_types/core/kms/SignedDecryptionPermitV1-p.d.ts +7 -0
- package/_types/core/kms/SignedDecryptionPermitV1-p.d.ts.map +1 -0
- package/_types/core/kms/SignedDecryptionPermitV2-p.d.ts +7 -0
- package/_types/core/kms/SignedDecryptionPermitV2-p.d.ts.map +1 -0
- package/_types/core/kms/createKmsDelegatedUserDecryptEip712V1.d.ts +16 -0
- package/_types/core/kms/createKmsDelegatedUserDecryptEip712V1.d.ts.map +1 -0
- package/_types/core/kms/createKmsUserDecryptEip712V1.d.ts +27 -0
- package/_types/core/kms/createKmsUserDecryptEip712V1.d.ts.map +1 -0
- package/_types/core/kms/createKmsUserDecryptEip712V2.d.ts +3 -2
- package/_types/core/kms/createKmsUserDecryptEip712V2.d.ts.map +1 -1
- package/_types/core/kms/decryptValuesFromPairs.d.ts +4 -11
- package/_types/core/kms/decryptValuesFromPairs.d.ts.map +1 -1
- package/_types/core/kms/{fetchKmsSigncryptedShares-p.d.ts → fetchKmsSigncryptedSharesV1-p.d.ts} +10 -12
- package/_types/core/kms/fetchKmsSigncryptedSharesV1-p.d.ts.map +1 -0
- package/_types/core/kms/fetchKmsSigncryptedSharesV2-p.d.ts +28 -0
- package/_types/core/kms/fetchKmsSigncryptedSharesV2-p.d.ts.map +1 -0
- package/_types/core/kms/kmsDelegatedUserDecryptEip712V1Types.d.ts +3 -0
- package/_types/core/kms/kmsDelegatedUserDecryptEip712V1Types.d.ts.map +1 -0
- 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/kmsUserDecryptEip712V1Types.d.ts +3 -0
- package/_types/core/kms/kmsUserDecryptEip712V1Types.d.ts.map +1 -0
- package/_types/core/kms/kmsUserDecryptEip712V2Types.d.ts.map +1 -1
- package/_types/core/kms/publicDecrypt.d.ts.map +1 -1
- package/_types/core/kms/utils.d.ts +0 -4
- package/_types/core/kms/utils.d.ts.map +1 -1
- package/_types/core/kms/verifyKmsPublicDecryptEip712-p.d.ts +1 -1
- package/_types/core/kms/verifyKmsPublicDecryptEip712-p.d.ts.map +1 -1
- package/_types/core/modules/encrypt/module/init-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.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/modules/relayer/module/{fetchDelegatedUserDecrypt.d.ts → fetchDelegatedUserDecryptV1.d.ts} +1 -1
- package/_types/core/modules/relayer/module/fetchDelegatedUserDecryptV1.d.ts.map +1 -0
- package/_types/core/modules/relayer/module/fetchUserDecrypt.d.ts.map +1 -1
- package/_types/core/modules/relayer/module/fetchUserDecryptV1.d.ts +3 -0
- package/_types/core/modules/relayer/module/fetchUserDecryptV1.d.ts.map +1 -0
- package/_types/core/modules/relayer/module/fetchUserDecryptV2.d.ts +3 -0
- package/_types/core/modules/relayer/module/fetchUserDecryptV2.d.ts.map +1 -0
- package/_types/core/modules/relayer/module/guards/RelayerResponseFailed.d.ts.map +1 -1
- package/_types/core/modules/relayer/module/guards/api-errors/RelayerApiError400NoDetails.d.ts +1 -1
- package/_types/core/modules/relayer/module/guards/api-errors/RelayerApiError400NoDetails.d.ts.map +1 -1
- package/_types/core/modules/relayer/module/guards/api-errors/RelayerApiError503.d.ts.map +1 -1
- package/_types/core/modules/relayer/types.d.ts +18 -5
- package/_types/core/modules/relayer/types.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/core/types/kms.d.ts +18 -19
- package/_types/core/types/kms.d.ts.map +1 -1
- package/_types/core/types/logger.d.ts +3 -3
- package/_types/core/types/logger.d.ts.map +1 -1
- package/_types/core/types/record-p.d.ts +2 -1
- package/_types/core/types/record-p.d.ts.map +1 -1
- package/_types/core/types/relayer-p.d.ts +27 -5
- package/_types/core/types/relayer-p.d.ts.map +1 -1
- package/_types/core/types/signedDecryptionPermit.d.ts +37 -26
- package/_types/core/types/signedDecryptionPermit.d.ts.map +1 -1
- package/_types/core/utils-p/decrypt/verifyKmsDelegatedUserDecryptEip712V1.d.ts +14 -0
- package/_types/core/utils-p/decrypt/verifyKmsDelegatedUserDecryptEip712V1.d.ts.map +1 -0
- package/_types/core/utils-p/decrypt/verifyKmsUserDecryptEip712V1.d.ts +14 -0
- package/_types/core/utils-p/decrypt/verifyKmsUserDecryptEip712V1.d.ts.map +1 -0
- package/_types/core/utils-p/decrypt/verifyKmsUserDecryptEip712V2.d.ts +14 -0
- package/_types/core/utils-p/decrypt/verifyKmsUserDecryptEip712V2.d.ts.map +1 -0
- package/_types/core/utils-p/runtime/recoverSigners.d.ts +2 -2
- 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/base/index.ts +0 -42
- package/core/actions/base/signDecryptionPermit.ts +3 -31
- package/core/actions/chain/index.ts +0 -28
- package/core/actions/chain/parseSignedDecryptionPermit.ts +1 -0
- package/core/actions/chain/serializeSignedDecryptionPermit.ts +3 -2
- package/core/actions/decrypt/canDecryptValue.ts +2 -16
- package/core/actions/decrypt/canDecryptValues.ts +2 -16
- package/core/actions/decrypt/canDecryptValuesFromPairs.ts +2 -16
- package/core/actions/decrypt/decryptValue.ts +2 -1
- package/core/actions/decrypt/decryptValues.ts +3 -1
- package/core/actions/decrypt/decryptValuesFromPairs.ts +3 -1
- package/core/actions/decrypt/index.ts +0 -6
- 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/index.ts +0 -20
- package/core/actions/host/readKmsVerifierContractData.ts +2 -2
- package/core/base/cachedFetch.ts +1 -0
- package/core/base/uint.ts +18 -1
- package/core/clients/decorators/base.ts +13 -37
- package/core/coprocessor/coprocessorEip712Types.ts +2 -2
- 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/canDecryptValuesFromPairs.ts +7 -7
- package/core/host-contracts/getCoprocessorContextSignersAndThreshold-p.ts +2 -2
- package/core/host-contracts/getCurrentKmsContextAndEpoch-p.ts +2 -2
- package/core/host-contracts/getCurrentKmsContextId-p.ts +2 -2
- package/core/host-contracts/getKmsContextSignersAndThreshold-p.ts +3 -2
- package/core/host-contracts/getKmsContextSignersAndThresholdFromExtraData-p.ts +10 -7
- package/core/host-contracts/readKmsSignersContext-p.ts +156 -115
- package/core/kms/KmsSigncryptedShares-p.ts +87 -4
- package/core/kms/PublicDecryptionProof-p.ts +11 -9
- package/core/kms/SignedDecryptionPermit-p.ts +67 -357
- package/core/kms/SignedDecryptionPermitV1-p.ts +308 -0
- package/core/kms/SignedDecryptionPermitV2-p.ts +275 -0
- package/core/kms/{createKmsDelegatedUserDecryptEip712.ts → createKmsDelegatedUserDecryptEip712V1.ts} +21 -21
- package/core/kms/createKmsPublicDecryptEip712.ts +1 -1
- package/core/kms/{createKmsUserDecryptEip712.ts → createKmsUserDecryptEip712V1.ts} +35 -31
- package/core/kms/createKmsUserDecryptEip712V2.ts +7 -7
- package/core/kms/decryptValuesFromPairs.ts +34 -22
- package/core/kms/{fetchKmsSigncryptedShares-p.ts → fetchKmsSigncryptedSharesV1-p.ts} +62 -45
- package/core/kms/fetchKmsSigncryptedSharesV2-p.ts +176 -0
- package/core/kms/{kmsDelegatedUserDecryptEip712Types.ts → kmsDelegatedUserDecryptEip712V1Types.ts} +9 -8
- package/core/kms/kmsExtraData-p.ts +374 -0
- package/core/kms/kmsPublicDecryptEip712Types.ts +1 -1
- package/core/kms/{kmsUserDecryptEip712Types.ts → kmsUserDecryptEip712V1Types.ts} +9 -8
- package/core/kms/kmsUserDecryptEip712V2Types.ts +2 -1
- package/core/kms/publicDecrypt.ts +10 -9
- package/core/kms/utils.ts +0 -32
- package/core/kms/verifyKmsPublicDecryptEip712-p.ts +10 -8
- package/core/modules/decrypt/mock.ts +6 -6
- package/core/modules/decrypt/module/api-p.ts +15 -15
- package/core/modules/decrypt/module/init-p.ts +7 -7
- package/core/modules/encrypt/module/init-p.ts +16 -11
- 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 +115 -9
- package/core/modules/relayer/cleartext/fetchUserDecrypt.ts +23 -131
- 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/modules/relayer/module/fetchPublicDecrypt.ts +1 -1
- package/core/modules/relayer/module/fetchUserDecrypt.ts +20 -56
- package/core/modules/relayer/module/fetchUserDecryptV1.ts +69 -0
- package/core/modules/relayer/module/fetchUserDecryptV2.ts +71 -0
- package/core/modules/relayer/module/guards/RelayerResponseFailed.ts +10 -2
- package/core/modules/relayer/module/guards/api-errors/RelayerApiError400NoDetails.ts +6 -3
- package/core/modules/relayer/module/guards/api-errors/RelayerApiError503.ts +2 -0
- package/core/modules/relayer/module/index.ts +1 -1
- package/core/modules/relayer/types.ts +24 -5
- package/core/runtime/HyperWasmSolver-p.ts +1 -5
- package/core/types/kms-p.ts +16 -1
- package/core/types/kms.ts +40 -28
- package/core/types/logger.ts +3 -3
- package/core/types/record-p.ts +2 -1
- package/core/types/relayer-p.ts +48 -5
- package/core/types/signedDecryptionPermit.ts +47 -26
- package/core/utils-p/decrypt/{verifyKmsDelegatedUserDecryptEip712.ts → verifyKmsDelegatedUserDecryptEip712V1.ts} +9 -9
- package/core/utils-p/decrypt/{verifyKmsUserDecryptEip712.ts → verifyKmsUserDecryptEip712V1.ts} +9 -9
- package/core/utils-p/decrypt/verifyKmsUserDecryptEip712V2.ts +43 -0
- package/core/utils-p/runtime/recoverSigners.ts +2 -2
- 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/actions/base/createVerifiedInputProofFromRawBytes.js +0 -10
- package/_cjs/core/actions/base/createVerifiedInputProofFromRawBytes.js.map +0 -1
- package/_cjs/core/actions/base/fetchKmsSigncryptedShares.js +0 -19
- package/_cjs/core/actions/base/fetchKmsSigncryptedShares.js.map +0 -1
- package/_cjs/core/actions/base/fetchVerifiedInputProof.js +0 -11
- package/_cjs/core/actions/base/fetchVerifiedInputProof.js.map +0 -1
- package/_cjs/core/actions/base/readKmsSignersContext.js +0 -11
- package/_cjs/core/actions/base/readKmsSignersContext.js.map +0 -1
- package/_cjs/core/actions/base/verifyHandlesCoprocessorSignatures.js +0 -31
- package/_cjs/core/actions/base/verifyHandlesCoprocessorSignatures.js.map +0 -1
- package/_cjs/core/actions/base/verifyInputProof.js +0 -24
- package/_cjs/core/actions/base/verifyInputProof.js.map +0 -1
- package/_cjs/core/actions/base/verifyZkProofCoprocessorSignatures.js +0 -17
- package/_cjs/core/actions/base/verifyZkProofCoprocessorSignatures.js.map +0 -1
- package/_cjs/core/actions/chain/createCoprocessorEip712Domain.js +0 -11
- package/_cjs/core/actions/chain/createCoprocessorEip712Domain.js.map +0 -1
- package/_cjs/core/actions/chain/createKmsDelegatedUserDecryptEip712.js +0 -17
- package/_cjs/core/actions/chain/createKmsDelegatedUserDecryptEip712.js.map +0 -1
- package/_cjs/core/actions/chain/createKmsEip712Domain.js +0 -11
- package/_cjs/core/actions/chain/createKmsEip712Domain.js.map +0 -1
- package/_cjs/core/actions/chain/createKmsUserDecryptEip712.js +0 -16
- package/_cjs/core/actions/chain/createKmsUserDecryptEip712.js.map +0 -1
- package/_cjs/core/actions/chain/verifyKmsDelegatedUserDecryptEip712.js +0 -8
- package/_cjs/core/actions/chain/verifyKmsDelegatedUserDecryptEip712.js.map +0 -1
- package/_cjs/core/actions/chain/verifyKmsUserDecryptEip712.js +0 -8
- package/_cjs/core/actions/chain/verifyKmsUserDecryptEip712.js.map +0 -1
- package/_cjs/core/actions/decrypt/decryptKmsSigncryptedShares.js +0 -13
- package/_cjs/core/actions/decrypt/decryptKmsSigncryptedShares.js.map +0 -1
- package/_cjs/core/kms/createKmsDelegatedUserDecryptEip712.js.map +0 -1
- package/_cjs/core/kms/createKmsUserDecryptEip712.js.map +0 -1
- package/_cjs/core/kms/fetchKmsSigncryptedShares-p.js.map +0 -1
- package/_cjs/core/kms/kmsDelegatedUserDecryptEip712Types.js.map +0 -1
- package/_cjs/core/kms/kmsExtraData.js +0 -82
- package/_cjs/core/kms/kmsExtraData.js.map +0 -1
- package/_cjs/core/kms/kmsUserDecryptEip712Types.js.map +0 -1
- package/_cjs/core/modules/relayer/cleartext/fetchDelegatedUserDecrypt.js.map +0 -1
- package/_cjs/core/modules/relayer/module/fetchDelegatedUserDecrypt.js.map +0 -1
- package/_cjs/core/utils-p/decrypt/verifyKmsDelegatedUserDecryptEip712.js.map +0 -1
- package/_cjs/core/utils-p/decrypt/verifyKmsUserDecryptEip712.js.map +0 -1
- package/_esm/core/actions/base/createVerifiedInputProofFromRawBytes.js +0 -7
- package/_esm/core/actions/base/createVerifiedInputProofFromRawBytes.js.map +0 -1
- package/_esm/core/actions/base/fetchKmsSigncryptedShares.js +0 -17
- package/_esm/core/actions/base/fetchKmsSigncryptedShares.js.map +0 -1
- package/_esm/core/actions/base/fetchVerifiedInputProof.js +0 -8
- package/_esm/core/actions/base/fetchVerifiedInputProof.js.map +0 -1
- package/_esm/core/actions/base/readKmsSignersContext.js +0 -10
- package/_esm/core/actions/base/readKmsSignersContext.js.map +0 -1
- package/_esm/core/actions/base/verifyHandlesCoprocessorSignatures.js +0 -35
- package/_esm/core/actions/base/verifyHandlesCoprocessorSignatures.js.map +0 -1
- package/_esm/core/actions/base/verifyInputProof.js +0 -22
- package/_esm/core/actions/base/verifyInputProof.js.map +0 -1
- package/_esm/core/actions/base/verifyZkProofCoprocessorSignatures.js +0 -14
- package/_esm/core/actions/base/verifyZkProofCoprocessorSignatures.js.map +0 -1
- package/_esm/core/actions/chain/createCoprocessorEip712Domain.js +0 -8
- package/_esm/core/actions/chain/createCoprocessorEip712Domain.js.map +0 -1
- package/_esm/core/actions/chain/createKmsDelegatedUserDecryptEip712.js +0 -15
- package/_esm/core/actions/chain/createKmsDelegatedUserDecryptEip712.js.map +0 -1
- package/_esm/core/actions/chain/createKmsEip712Domain.js +0 -8
- package/_esm/core/actions/chain/createKmsEip712Domain.js.map +0 -1
- package/_esm/core/actions/chain/createKmsUserDecryptEip712.js +0 -14
- package/_esm/core/actions/chain/createKmsUserDecryptEip712.js.map +0 -1
- package/_esm/core/actions/chain/verifyKmsDelegatedUserDecryptEip712.js +0 -5
- package/_esm/core/actions/chain/verifyKmsDelegatedUserDecryptEip712.js.map +0 -1
- package/_esm/core/actions/chain/verifyKmsUserDecryptEip712.js +0 -5
- package/_esm/core/actions/chain/verifyKmsUserDecryptEip712.js.map +0 -1
- package/_esm/core/actions/decrypt/decryptKmsSigncryptedShares.js +0 -11
- package/_esm/core/actions/decrypt/decryptKmsSigncryptedShares.js.map +0 -1
- package/_esm/core/kms/createKmsDelegatedUserDecryptEip712.js.map +0 -1
- package/_esm/core/kms/createKmsUserDecryptEip712.js.map +0 -1
- package/_esm/core/kms/fetchKmsSigncryptedShares-p.js.map +0 -1
- package/_esm/core/kms/kmsDelegatedUserDecryptEip712Types.js.map +0 -1
- package/_esm/core/kms/kmsExtraData.js +0 -99
- package/_esm/core/kms/kmsExtraData.js.map +0 -1
- package/_esm/core/kms/kmsUserDecryptEip712Types.js.map +0 -1
- package/_esm/core/modules/relayer/cleartext/fetchDelegatedUserDecrypt.js.map +0 -1
- package/_esm/core/modules/relayer/module/fetchDelegatedUserDecrypt.js.map +0 -1
- package/_esm/core/utils-p/decrypt/verifyKmsDelegatedUserDecryptEip712.js.map +0 -1
- package/_esm/core/utils-p/decrypt/verifyKmsUserDecryptEip712.js.map +0 -1
- package/_types/core/actions/base/createVerifiedInputProofFromRawBytes.d.ts +0 -14
- package/_types/core/actions/base/createVerifiedInputProofFromRawBytes.d.ts.map +0 -1
- package/_types/core/actions/base/fetchKmsSigncryptedShares.d.ts +0 -41
- package/_types/core/actions/base/fetchKmsSigncryptedShares.d.ts.map +0 -1
- package/_types/core/actions/base/fetchVerifiedInputProof.d.ts +0 -14
- package/_types/core/actions/base/fetchVerifiedInputProof.d.ts.map +0 -1
- package/_types/core/actions/base/readKmsSignersContext.d.ts +0 -6
- package/_types/core/actions/base/readKmsSignersContext.d.ts.map +0 -1
- package/_types/core/actions/base/verifyHandlesCoprocessorSignatures.d.ts +0 -14
- package/_types/core/actions/base/verifyHandlesCoprocessorSignatures.d.ts.map +0 -1
- package/_types/core/actions/base/verifyInputProof.d.ts +0 -14
- package/_types/core/actions/base/verifyInputProof.d.ts.map +0 -1
- package/_types/core/actions/base/verifyZkProofCoprocessorSignatures.d.ts +0 -11
- package/_types/core/actions/base/verifyZkProofCoprocessorSignatures.d.ts.map +0 -1
- package/_types/core/actions/chain/createCoprocessorEip712Domain.d.ts +0 -7
- package/_types/core/actions/chain/createCoprocessorEip712Domain.d.ts.map +0 -1
- package/_types/core/actions/chain/createKmsDelegatedUserDecryptEip712.d.ts +0 -15
- package/_types/core/actions/chain/createKmsDelegatedUserDecryptEip712.d.ts.map +0 -1
- package/_types/core/actions/chain/createKmsEip712Domain.d.ts +0 -7
- package/_types/core/actions/chain/createKmsEip712Domain.d.ts.map +0 -1
- package/_types/core/actions/chain/createKmsUserDecryptEip712.d.ts +0 -14
- package/_types/core/actions/chain/createKmsUserDecryptEip712.d.ts.map +0 -1
- package/_types/core/actions/chain/verifyKmsDelegatedUserDecryptEip712.d.ts +0 -7
- package/_types/core/actions/chain/verifyKmsDelegatedUserDecryptEip712.d.ts.map +0 -1
- package/_types/core/actions/chain/verifyKmsUserDecryptEip712.d.ts +0 -7
- package/_types/core/actions/chain/verifyKmsUserDecryptEip712.d.ts.map +0 -1
- package/_types/core/actions/decrypt/decryptKmsSigncryptedShares.d.ts +0 -13
- package/_types/core/actions/decrypt/decryptKmsSigncryptedShares.d.ts.map +0 -1
- package/_types/core/kms/createKmsDelegatedUserDecryptEip712.d.ts +0 -15
- package/_types/core/kms/createKmsDelegatedUserDecryptEip712.d.ts.map +0 -1
- package/_types/core/kms/createKmsUserDecryptEip712.d.ts +0 -26
- package/_types/core/kms/createKmsUserDecryptEip712.d.ts.map +0 -1
- package/_types/core/kms/fetchKmsSigncryptedShares-p.d.ts.map +0 -1
- package/_types/core/kms/kmsDelegatedUserDecryptEip712Types.d.ts +0 -3
- package/_types/core/kms/kmsDelegatedUserDecryptEip712Types.d.ts.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/kms/kmsUserDecryptEip712Types.d.ts +0 -3
- package/_types/core/kms/kmsUserDecryptEip712Types.d.ts.map +0 -1
- package/_types/core/modules/relayer/cleartext/fetchDelegatedUserDecrypt.d.ts.map +0 -1
- package/_types/core/modules/relayer/module/fetchDelegatedUserDecrypt.d.ts.map +0 -1
- package/_types/core/utils-p/decrypt/verifyKmsDelegatedUserDecryptEip712.d.ts +0 -14
- package/_types/core/utils-p/decrypt/verifyKmsDelegatedUserDecryptEip712.d.ts.map +0 -1
- package/_types/core/utils-p/decrypt/verifyKmsUserDecryptEip712.d.ts +0 -14
- package/_types/core/utils-p/decrypt/verifyKmsUserDecryptEip712.d.ts.map +0 -1
- package/core/actions/base/createVerifiedInputProofFromRawBytes.ts +0 -24
- package/core/actions/base/fetchKmsSigncryptedShares.ts +0 -83
- package/core/actions/base/fetchVerifiedInputProof.ts +0 -25
- package/core/actions/base/readKmsSignersContext.ts +0 -20
- package/core/actions/base/verifyHandlesCoprocessorSignatures.ts +0 -60
- package/core/actions/base/verifyInputProof.ts +0 -45
- package/core/actions/base/verifyZkProofCoprocessorSignatures.ts +0 -32
- package/core/actions/chain/createCoprocessorEip712Domain.ts +0 -16
- package/core/actions/chain/createKmsDelegatedUserDecryptEip712.ts +0 -36
- package/core/actions/chain/createKmsEip712Domain.ts +0 -16
- package/core/actions/chain/createKmsUserDecryptEip712.ts +0 -34
- package/core/actions/chain/verifyKmsDelegatedUserDecryptEip712.ts +0 -16
- package/core/actions/chain/verifyKmsUserDecryptEip712.ts +0 -16
- package/core/actions/decrypt/decryptKmsSigncryptedShares.ts +0 -34
- package/core/kms/kmsExtraData.ts +0 -127
- /package/core/modules/relayer/module/{fetchDelegatedUserDecrypt.ts → fetchDelegatedUserDecryptV1.ts} +0 -0
|
@@ -1,21 +1,20 @@
|
|
|
1
1
|
import type { KmsSignersContext } from '../types/kmsSignersContext.js';
|
|
2
2
|
import type { BytesHex, ChecksummedAddress, Uint256BigInt } from '../types/primitives.js';
|
|
3
3
|
import type { FhevmRuntime } from '../types/coreFhevmRuntime.js';
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
createKmsSignersContext,
|
|
7
|
-
kmsSignersContextToExtraData,
|
|
8
|
-
} from './KmsSignersContext-p.js';
|
|
4
|
+
import type { KmsExtraData } from '../types/kms-p.js';
|
|
5
|
+
import { assertIsKmsSignersContext, createKmsSignersContext } from './KmsSignersContext-p.js';
|
|
9
6
|
import { getCurrentKmsContextId } from './getCurrentKmsContextId-p.js';
|
|
10
7
|
import { getCurrentKmsContextAndEpoch } from './getCurrentKmsContextAndEpoch-p.js';
|
|
11
8
|
import { getHostContractVersion, isVersionStrictlyBefore } from './HostContractVersion-p.js';
|
|
12
9
|
import {
|
|
13
10
|
assertIsKmsExtraData,
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
11
|
+
createKmsExtraData,
|
|
12
|
+
createKmsExtraDataV1,
|
|
13
|
+
createKmsExtraDataV2,
|
|
14
|
+
equalsKmsExtraData,
|
|
15
|
+
fromKmsExtraDataBytesHex,
|
|
16
|
+
isKmsExtraDataCompatibleWithKmsVerifier,
|
|
17
|
+
} from '../kms/kmsExtraData-p.js';
|
|
19
18
|
import { getKmsContextSignersAndThresholdFromExtraData } from './getKmsContextSignersAndThresholdFromExtraData-p.js';
|
|
20
19
|
import { getKmsSignersAndThreshold } from './getKmsContextSignersAndThreshold-p.js';
|
|
21
20
|
|
|
@@ -31,29 +30,72 @@ type Parameters = {
|
|
|
31
30
|
readonly kmsVerifierAddress: ChecksummedAddress;
|
|
32
31
|
readonly protocolConfigAddress: ChecksummedAddress | undefined;
|
|
33
32
|
readonly forceRefresh?: boolean | undefined;
|
|
34
|
-
|
|
35
|
-
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
type ParametersWithExtraData = Parameters & {
|
|
36
|
+
readonly extraData: KmsExtraData;
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
type ParametersWithOptionalExtraData = Parameters & {
|
|
40
|
+
readonly extraData?: KmsExtraData | undefined;
|
|
36
41
|
};
|
|
37
42
|
|
|
38
43
|
type ReturnType = KmsSignersContext;
|
|
39
44
|
|
|
40
45
|
////////////////////////////////////////////////////////////////////////////////
|
|
41
46
|
|
|
42
|
-
export async function
|
|
47
|
+
export async function readCurrentKmsSignersContext(context: Context, parameters: Parameters): Promise<ReturnType> {
|
|
48
|
+
return _readKmsSignersContext(context, parameters);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
////////////////////////////////////////////////////////////////////////////////
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Reads the {@link KmsSignersContext} for a caller-provided `extraData`.
|
|
55
|
+
*
|
|
56
|
+
* Accepts an `extraData` of any version (v0, v1, v2, …); the underlying resolver
|
|
57
|
+
* selects the right protocol path and verifies the version is compatible with
|
|
58
|
+
* the on-chain KMSVerifier, throwing if it is not.
|
|
59
|
+
*/
|
|
60
|
+
export async function readKmsSignersContextFromExtraData(
|
|
61
|
+
context: Context,
|
|
62
|
+
parameters: ParametersWithExtraData,
|
|
63
|
+
): Promise<ReturnType> {
|
|
64
|
+
assertIsKmsExtraData(parameters.extraData, {});
|
|
65
|
+
return _readKmsSignersContext(context, parameters);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
////////////////////////////////////////////////////////////////////////////////
|
|
69
|
+
|
|
70
|
+
async function _readKmsSignersContext(
|
|
71
|
+
context: Context,
|
|
72
|
+
parameters: ParametersWithOptionalExtraData,
|
|
73
|
+
): Promise<ReturnType> {
|
|
43
74
|
// TTL-cached
|
|
44
75
|
const kmsVerifierVersion = await getHostContractVersion(context, {
|
|
45
76
|
address: parameters.kmsVerifierAddress,
|
|
46
77
|
});
|
|
47
78
|
|
|
79
|
+
if (parameters.extraData !== undefined) {
|
|
80
|
+
if (!isKmsExtraDataCompatibleWithKmsVerifier(parameters.extraData, kmsVerifierVersion)) {
|
|
81
|
+
throw new Error(
|
|
82
|
+
`KmsExtraData ${parameters.extraData.toBytesHex()} is not compatible with ${kmsVerifierVersion.contractName} ${kmsVerifierVersion.version}`,
|
|
83
|
+
);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
|
|
48
87
|
if (isVersionStrictlyBefore(kmsVerifierVersion, { major: 0, minor: 2 })) {
|
|
88
|
+
// extraData.version = 0 only
|
|
49
89
|
return _readKmsSignersContext_Protocol_11(context, parameters);
|
|
50
90
|
}
|
|
51
91
|
|
|
52
92
|
if (isVersionStrictlyBefore(kmsVerifierVersion, { major: 0, minor: 4 })) {
|
|
93
|
+
// extraData.version = 0 or 1 only
|
|
53
94
|
return _readKmsSignersContext_Protocol_12_13(context, parameters);
|
|
54
95
|
}
|
|
55
96
|
|
|
56
|
-
|
|
97
|
+
// any extraData.version
|
|
98
|
+
return _readKmsSignersContext_Protocol_14_or_higher(context, parameters);
|
|
57
99
|
}
|
|
58
100
|
|
|
59
101
|
////////////////////////////////////////////////////////////////////////////////
|
|
@@ -62,10 +104,6 @@ export async function readKmsSignersContext(context: Context, parameters: Parame
|
|
|
62
104
|
// context ID is 0. Any other value is invalid and should throw.
|
|
63
105
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
64
106
|
async function _readKmsSignersContext_Protocol_11(context: Context, parameters: Parameters): Promise<ReturnType> {
|
|
65
|
-
if (parameters.kmsContextId !== undefined && parameters.kmsContextId !== 0n) {
|
|
66
|
-
throw new Error('Impossible on protocol v0.11.0');
|
|
67
|
-
}
|
|
68
|
-
|
|
69
107
|
// TTL-Cached
|
|
70
108
|
const c = await getKmsSignersAndThreshold(context, parameters);
|
|
71
109
|
|
|
@@ -84,40 +122,44 @@ async function _readKmsSignersContext_Protocol_11(context: Context, parameters:
|
|
|
84
122
|
|
|
85
123
|
// Protocol v0.12.0 / v0.13.0 (KMSVerifier = v0.2.0 / v0.3.0)
|
|
86
124
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
87
|
-
async function _readKmsSignersContext_Protocol_12_13(
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
if
|
|
125
|
+
async function _readKmsSignersContext_Protocol_12_13(
|
|
126
|
+
context: Context,
|
|
127
|
+
parameters: ParametersWithOptionalExtraData,
|
|
128
|
+
): Promise<ReturnType> {
|
|
129
|
+
// On protocol v0.12/v0.13, the KMS signers and threshold are looked up by
|
|
130
|
+
// `extraData` (which encodes the KMS context id). The caller may pass one in;
|
|
131
|
+
// if not, we derive it from the chain's current KMS context id using the v1
|
|
132
|
+
// extraData encoding (version byte + context id, no epoch).
|
|
133
|
+
let extraData: KmsExtraData;
|
|
134
|
+
|
|
135
|
+
if (parameters.extraData === undefined) {
|
|
94
136
|
// TTL-Cached
|
|
95
|
-
kmsContextId = await getCurrentKmsContextId(context, parameters);
|
|
137
|
+
const kmsContextId = await getCurrentKmsContextId(context, parameters);
|
|
138
|
+
extraData = createKmsExtraDataV1({
|
|
139
|
+
kmsContextId,
|
|
140
|
+
});
|
|
96
141
|
} else {
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
}
|
|
100
|
-
kmsContextId = parameters.kmsContextId;
|
|
142
|
+
// v0 or v1
|
|
143
|
+
extraData = parameters.extraData;
|
|
101
144
|
}
|
|
102
145
|
|
|
103
|
-
const extraData = toKmsExtraData({
|
|
104
|
-
version: EXTRA_DATA_V1,
|
|
105
|
-
kmsContextId,
|
|
106
|
-
kmsEpochId: 0n as Uint256BigInt,
|
|
107
|
-
});
|
|
108
|
-
|
|
109
146
|
// Permanent-Cached
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
147
|
+
// On protocol v0.12/v0.13, getKmsContextSignersAndThresholdFromExtraData
|
|
148
|
+
// supports extraData v0 and v1 only.
|
|
149
|
+
const { signers: kmsSigners, threshold: kmsSignerThreshold } = await getKmsContextSignersAndThresholdFromExtraData(
|
|
150
|
+
context,
|
|
151
|
+
{
|
|
152
|
+
...parameters,
|
|
153
|
+
extraData,
|
|
154
|
+
},
|
|
155
|
+
);
|
|
114
156
|
|
|
115
157
|
return createKmsSignersContext(new WeakRef(context.runtime), {
|
|
116
158
|
...parameters,
|
|
117
|
-
kmsContextId,
|
|
159
|
+
kmsContextId: extraData.kmsContextId,
|
|
118
160
|
kmsEpochId: 0n as Uint256BigInt,
|
|
119
|
-
kmsSigners
|
|
120
|
-
kmsSignerThreshold
|
|
161
|
+
kmsSigners,
|
|
162
|
+
kmsSignerThreshold,
|
|
121
163
|
});
|
|
122
164
|
}
|
|
123
165
|
|
|
@@ -125,57 +167,54 @@ async function _readKmsSignersContext_Protocol_12_13(context: Context, parameter
|
|
|
125
167
|
|
|
126
168
|
// Protocol v0.14.0+ (KMSVerifier = v0.4.0+)
|
|
127
169
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
128
|
-
async function
|
|
170
|
+
async function _readKmsSignersContext_Protocol_14_or_higher(
|
|
171
|
+
context: Context,
|
|
172
|
+
parameters: ParametersWithOptionalExtraData,
|
|
173
|
+
): Promise<ReturnType> {
|
|
129
174
|
if (parameters.protocolConfigAddress === undefined) {
|
|
130
175
|
throw new Error('protocolConfigAddress is required on protocol v0.14.0+');
|
|
131
176
|
}
|
|
132
177
|
const protocolConfigAddress = parameters.protocolConfigAddress;
|
|
133
178
|
|
|
134
|
-
let
|
|
135
|
-
if (parameters.kmsContextId === undefined) {
|
|
136
|
-
// TTL-Cached
|
|
137
|
-
({ contextId: kmsContextId } = await getCurrentKmsContextAndEpoch(context, { protocolConfigAddress }));
|
|
138
|
-
} else {
|
|
139
|
-
if (parameters.kmsContextId === 0n) {
|
|
140
|
-
throw new Error('kmsContextId cannot be 0 on protocol v0.14.0+');
|
|
141
|
-
}
|
|
142
|
-
kmsContextId = parameters.kmsContextId;
|
|
143
|
-
}
|
|
179
|
+
let extraData: KmsExtraData;
|
|
144
180
|
|
|
145
|
-
|
|
146
|
-
if (parameters.kmsEpochId === undefined) {
|
|
181
|
+
if (parameters.extraData === undefined) {
|
|
147
182
|
// TTL-Cached
|
|
148
|
-
|
|
183
|
+
const { contextId, epochId } = await getCurrentKmsContextAndEpoch(context, { protocolConfigAddress });
|
|
184
|
+
extraData = createKmsExtraDataV2({
|
|
185
|
+
kmsContextId: contextId,
|
|
186
|
+
kmsEpochId: epochId,
|
|
187
|
+
});
|
|
149
188
|
} else {
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
}
|
|
153
|
-
kmsEpochId = parameters.kmsEpochId;
|
|
189
|
+
// any version: v0, v1, v2, ... vn
|
|
190
|
+
extraData = parameters.extraData;
|
|
154
191
|
}
|
|
155
192
|
|
|
156
|
-
const extraData = toKmsExtraData({
|
|
157
|
-
version: EXTRA_DATA_V2,
|
|
158
|
-
kmsContextId,
|
|
159
|
-
kmsEpochId,
|
|
160
|
-
});
|
|
161
|
-
|
|
162
193
|
// Permanent-Cached
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
194
|
+
// May revert if extraData.version is incompatible (see `getKmsContextSignersAndThresholdFromExtraData` comments)
|
|
195
|
+
const { signers: kmsSigners, threshold: kmsSignerThreshold } = await getKmsContextSignersAndThresholdFromExtraData(
|
|
196
|
+
context,
|
|
197
|
+
{
|
|
198
|
+
...parameters,
|
|
199
|
+
extraData,
|
|
200
|
+
},
|
|
201
|
+
);
|
|
167
202
|
|
|
168
203
|
return createKmsSignersContext(new WeakRef(context.runtime), {
|
|
169
204
|
...parameters,
|
|
170
|
-
kmsContextId,
|
|
171
|
-
kmsEpochId,
|
|
172
|
-
kmsSigners
|
|
173
|
-
kmsSignerThreshold
|
|
205
|
+
kmsContextId: extraData.kmsContextId,
|
|
206
|
+
kmsEpochId: extraData.kmsEpochId,
|
|
207
|
+
kmsSigners,
|
|
208
|
+
kmsSignerThreshold,
|
|
174
209
|
});
|
|
175
210
|
}
|
|
176
211
|
|
|
177
212
|
////////////////////////////////////////////////////////////////////////////////
|
|
178
213
|
|
|
214
|
+
////////////////////////////////////////////////////////////////////////////////
|
|
215
|
+
|
|
216
|
+
export type ReconcileMode = 'exact' | 'strict' | 'loose';
|
|
217
|
+
|
|
179
218
|
/**
|
|
180
219
|
* Reconciles the KMS signers context used by the SDK with the one the relayer
|
|
181
220
|
* actually used when forwarding the decryption request to KMS nodes.
|
|
@@ -190,8 +229,10 @@ async function _readKmsSignersContext_Protocol_14(context: Context, parameters:
|
|
|
190
229
|
*
|
|
191
230
|
* ### Nomenclature
|
|
192
231
|
*
|
|
193
|
-
* - `
|
|
194
|
-
*
|
|
232
|
+
* - `requestedKmsExtraData` — `createKmsExtraData({ kmsContextId, kmsEpochId })`
|
|
233
|
+
* derived from `requestedKmsSignersContext`.
|
|
234
|
+
* - `relayerKmsExtraData` — `fromKmsExtraDataBytesHex(relayerKmsExtraDataBytesHex)`
|
|
235
|
+
* (its `.kmsContextId` / `.kmsEpochId`).
|
|
195
236
|
*
|
|
196
237
|
* ### Host-Contract Compatibility
|
|
197
238
|
*
|
|
@@ -202,69 +243,70 @@ async function _readKmsSignersContext_Protocol_14(context: Context, parameters:
|
|
|
202
243
|
* - host-contracts v12 and v13 support `extraData` v0 and v1.
|
|
203
244
|
* - host-contracts v14 support `extraData` v0, v1, and v2.
|
|
204
245
|
*
|
|
205
|
-
* ### Resolution (checked in order)
|
|
246
|
+
* ### Resolution (checked in order, then by `mode`)
|
|
206
247
|
*
|
|
207
|
-
* 1. `
|
|
208
|
-
* `requestedKmsSignersContext`. This is the **only** path that trusts cached
|
|
209
|
-
*
|
|
210
|
-
*
|
|
211
|
-
*
|
|
212
|
-
*
|
|
213
|
-
*
|
|
214
|
-
*
|
|
215
|
-
* (
|
|
216
|
-
*
|
|
217
|
-
*
|
|
248
|
+
* 1. `relayerKmsExtraData` equals `requestedKmsExtraData` → return
|
|
249
|
+
* `requestedKmsSignersContext`. This is the **only** path that trusts cached
|
|
250
|
+
* data, and it applies in every mode.
|
|
251
|
+
* 2. Otherwise, in `'exact'` mode → **throw**. This mode never parses, refreshes,
|
|
252
|
+
* or reconciles differing `extraData`.
|
|
253
|
+
* 3. `extraData` serialization version mismatch → **throw** (`'strict'`/`'loose'`).
|
|
254
|
+
* The SDK and relayer must agree on the encoding format, even for the same context ID.
|
|
255
|
+
* 4. Versions match but context/epoch differ → force a **full on-chain refetch**
|
|
256
|
+
* (cached data is never reused, since a mismatch means on-chain state may have
|
|
257
|
+
* diverged: rotation, destruction, signer/epoch changes). The accept criterion
|
|
258
|
+
* then depends on `mode`:
|
|
259
|
+
* - `'strict'` → accept **only** if the relayer's context equals the *current*
|
|
260
|
+
* on-chain context (both `kmsContextId` and `kmsEpochId`); otherwise throw.
|
|
261
|
+
* - `'loose'` → accept **any** on-chain-valid context (non-destroyed, in range),
|
|
262
|
+
* current or not; throw only if destroyed / out of range.
|
|
218
263
|
*
|
|
219
264
|
* ### Modes
|
|
220
265
|
*
|
|
221
|
-
* - `'exact'` — Accept only step 1 (
|
|
222
|
-
*
|
|
223
|
-
* - `'strict'` — Accept step 1
|
|
224
|
-
*
|
|
225
|
-
* The epoch check is required because RFC 005 introduces same-context
|
|
226
|
-
* (new shares, same party set) — a stale epoch must be rejected
|
|
266
|
+
* - `'exact'` — Accept only step 1 (`extraData` equality). Rejects any
|
|
267
|
+
* relayer/context drift without parsing or on-chain recovery.
|
|
268
|
+
* - `'strict'` — Accept step 1, or a relayer context whose `kmsContextId` **and**
|
|
269
|
+
* `kmsEpochId` equal the current on-chain values. Rejects valid-but-not-current
|
|
270
|
+
* contexts. The epoch check is required because RFC 005 introduces same-context
|
|
271
|
+
* epoch rotations (new shares, same party set) — a stale epoch must be rejected
|
|
272
|
+
* even when the context ID matches.
|
|
227
273
|
* - `'loose'` — Accept any on-chain valid context (non-destroyed, in range),
|
|
228
274
|
* regardless of whether it is current. Covers context rotations in either direction.
|
|
229
275
|
*/
|
|
230
|
-
|
|
231
|
-
////////////////////////////////////////////////////////////////////////////////
|
|
232
|
-
|
|
233
|
-
export type ReconcileMode = 'exact' | 'strict' | 'loose';
|
|
234
|
-
|
|
235
276
|
export async function reconcileKmsSignersContext(
|
|
236
277
|
context: Context,
|
|
237
278
|
parameters: {
|
|
238
279
|
readonly kmsVerifierAddress: ChecksummedAddress;
|
|
239
280
|
readonly protocolConfigAddress: ChecksummedAddress | undefined;
|
|
240
281
|
readonly requestedKmsSignersContext: KmsSignersContext;
|
|
241
|
-
readonly
|
|
282
|
+
readonly relayerKmsExtraDataBytesHex: BytesHex;
|
|
242
283
|
readonly mode: ReconcileMode;
|
|
243
284
|
},
|
|
244
285
|
): Promise<KmsSignersContext> {
|
|
245
|
-
const { kmsVerifierAddress, protocolConfigAddress, requestedKmsSignersContext,
|
|
286
|
+
const { kmsVerifierAddress, protocolConfigAddress, requestedKmsSignersContext, relayerKmsExtraDataBytesHex, mode } =
|
|
287
|
+
parameters;
|
|
288
|
+
|
|
289
|
+
const relayerKmsExtraData = fromKmsExtraDataBytesHex(relayerKmsExtraDataBytesHex);
|
|
246
290
|
|
|
247
|
-
assertIsKmsExtraData(relayerExtraData, {});
|
|
248
291
|
assertIsKmsSignersContext(requestedKmsSignersContext, {});
|
|
249
292
|
|
|
250
|
-
const
|
|
293
|
+
const requestedKmsExtraData = createKmsExtraData({
|
|
294
|
+
kmsContextId: requestedKmsSignersContext.id,
|
|
295
|
+
kmsEpochId: requestedKmsSignersContext.epochId,
|
|
296
|
+
});
|
|
251
297
|
|
|
252
298
|
// 1. Exact match — the relayer used the same context as the SDK.
|
|
253
|
-
if (
|
|
299
|
+
if (equalsKmsExtraData(relayerKmsExtraData, requestedKmsExtraData)) {
|
|
254
300
|
return requestedKmsSignersContext;
|
|
255
301
|
}
|
|
256
302
|
|
|
257
303
|
if (mode === 'exact') {
|
|
258
304
|
throw new Error(
|
|
259
|
-
`Exact reconciliation failed: relayer extraData ${
|
|
260
|
-
`does not match requested extraData ${
|
|
305
|
+
`Exact reconciliation failed: relayer extraData ${relayerKmsExtraData.toBytesHex()} ` +
|
|
306
|
+
`does not match requested extraData ${requestedKmsExtraData.toBytesHex()}.`,
|
|
261
307
|
);
|
|
262
308
|
}
|
|
263
309
|
|
|
264
|
-
// Bytes differ — extract and compare serialization versions.
|
|
265
|
-
const relayerKmsExtraData = fromKmsExtraData(relayerExtraData);
|
|
266
|
-
const requestedKmsExtraData = fromKmsExtraData(requestedExtraData);
|
|
267
|
-
|
|
268
310
|
// Reject if extraData serialization version differs.
|
|
269
311
|
if (relayerKmsExtraData.version !== requestedKmsExtraData.version) {
|
|
270
312
|
throw new Error(
|
|
@@ -282,7 +324,7 @@ export async function reconcileKmsSignersContext(
|
|
|
282
324
|
if (mode === 'strict') {
|
|
283
325
|
// `readKmsSignersContext` with `forceRefresh` fetches the current context.
|
|
284
326
|
// If `relayerKmsContextId` matches current, we're good.
|
|
285
|
-
const currentContext = await
|
|
327
|
+
const currentContext = await readCurrentKmsSignersContext(context, {
|
|
286
328
|
kmsVerifierAddress,
|
|
287
329
|
protocolConfigAddress,
|
|
288
330
|
forceRefresh: true,
|
|
@@ -301,11 +343,10 @@ export async function reconcileKmsSignersContext(
|
|
|
301
343
|
// 3. Loose mode — accept any valid (non-destroyed, in-range) context.
|
|
302
344
|
// `readKmsSignersContext` with `forceRefresh` + specific `kmsContextId`/`kmsEpochId` will
|
|
303
345
|
// throw if the context is destroyed or out of range.
|
|
304
|
-
return
|
|
346
|
+
return readKmsSignersContextFromExtraData(context, {
|
|
305
347
|
kmsVerifierAddress,
|
|
306
348
|
protocolConfigAddress,
|
|
307
|
-
kmsContextId: relayerKmsContextId,
|
|
308
|
-
kmsEpochId: relayerKmsEpochId,
|
|
309
349
|
forceRefresh: true,
|
|
350
|
+
extraData: relayerKmsExtraData,
|
|
310
351
|
});
|
|
311
352
|
}
|
|
@@ -7,8 +7,37 @@ import type { FhevmChain } from '../types/fhevmChain.js';
|
|
|
7
7
|
import type { TkmsVersion } from '../../wasm/tkms/KmsLibApi.js';
|
|
8
8
|
import { assertIsKmsSignersContext } from '../host-contracts/KmsSignersContext-p.js';
|
|
9
9
|
import { ensure0x } from '../base/string.js';
|
|
10
|
-
import { assertIsKmsExtraData } from './kmsExtraData.js';
|
|
11
10
|
import { reconcileKmsSignersContext } from '../host-contracts/readKmsSignersContext-p.js';
|
|
11
|
+
import { recoverSigners } from '../utils-p/runtime/recoverSigners.js';
|
|
12
|
+
|
|
13
|
+
////////////////////////////////////////////////////////////////////////////////
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* EIP-712 types for the KMS `UserDecryptResponseVerification` structure that each
|
|
17
|
+
* KMS node signs per response share (see gateway `Decryption.sol`).
|
|
18
|
+
*
|
|
19
|
+
* CRITICAL: field order and types are authoritative — they define the EIP-712
|
|
20
|
+
* type hash and must match the on-chain struct exactly.
|
|
21
|
+
*
|
|
22
|
+
* Note: `ctHandles` is declared `bytes32[]` to match `Decryption.sol` (the tkms
|
|
23
|
+
* WASM doc comments it as `uint256[]`; both encode the same 32 bytes, but the
|
|
24
|
+
* type string participates in the type hash — if verification unexpectedly
|
|
25
|
+
* fails, `uint256[]` is the first thing to try).
|
|
26
|
+
*/
|
|
27
|
+
const kmsUserDecryptResponseEip712Types = {
|
|
28
|
+
EIP712Domain: [
|
|
29
|
+
{ name: 'name', type: 'string' },
|
|
30
|
+
{ name: 'version', type: 'string' },
|
|
31
|
+
{ name: 'chainId', type: 'uint256' },
|
|
32
|
+
{ name: 'verifyingContract', type: 'address' },
|
|
33
|
+
],
|
|
34
|
+
UserDecryptResponseVerification: [
|
|
35
|
+
{ name: 'publicKey', type: 'bytes' },
|
|
36
|
+
{ name: 'ctHandles', type: 'bytes32[]' },
|
|
37
|
+
{ name: 'userDecryptedShare', type: 'bytes' },
|
|
38
|
+
{ name: 'extraData', type: 'bytes' },
|
|
39
|
+
],
|
|
40
|
+
} as const;
|
|
12
41
|
|
|
13
42
|
////////////////////////////////////////////////////////////////////////////////
|
|
14
43
|
|
|
@@ -103,6 +132,60 @@ function assertUniformExtraData(shares: readonly KmsSigncryptedShare[]): BytesHe
|
|
|
103
132
|
return firstExtraData;
|
|
104
133
|
}
|
|
105
134
|
|
|
135
|
+
/**
|
|
136
|
+
* Helper:
|
|
137
|
+
* Verifies the EIP-712 signature of a single KMS signcrypted share.
|
|
138
|
+
*
|
|
139
|
+
* Rebuilds the `UserDecryptResponseVerification` payload the KMS node signed,
|
|
140
|
+
* recovers the signer, and asserts it belongs to the reconciled KMS signers
|
|
141
|
+
* context. This is an independent, JS-only check — the same verification is also
|
|
142
|
+
* performed inside the tkms WASM during reconstruction (`verify=true`), so this
|
|
143
|
+
* is primarily a test/defense-in-depth pass and is not required for correctness.
|
|
144
|
+
*
|
|
145
|
+
* @throws If the signer cannot be recovered, or is not a known KMS signer.
|
|
146
|
+
*/
|
|
147
|
+
export async function verifyKmsSigncryptedShare(
|
|
148
|
+
context: Context,
|
|
149
|
+
parameters: {
|
|
150
|
+
readonly share: KmsSigncryptedShare;
|
|
151
|
+
readonly metadata: KmsSigncryptedSharesMetadata;
|
|
152
|
+
readonly transportPublicKey: BytesHex;
|
|
153
|
+
},
|
|
154
|
+
): Promise<void> {
|
|
155
|
+
const { share, metadata, transportPublicKey } = parameters;
|
|
156
|
+
|
|
157
|
+
// Rebuild the exact EIP-712 message each KMS node signs per response share
|
|
158
|
+
// (gateway Decryption.sol `UserDecryptResponseVerification`). `userDecryptedShare`
|
|
159
|
+
// is the serialized share bytes carried in `share.payload`.
|
|
160
|
+
const message = {
|
|
161
|
+
publicKey: transportPublicKey,
|
|
162
|
+
ctHandles: metadata.handles.map((h) => h.bytes32Hex),
|
|
163
|
+
userDecryptedShare: ensure0x(share.payload),
|
|
164
|
+
// v0 extraData is signed as '0x' (never '0x00').
|
|
165
|
+
extraData: share.extraData === '' || share.extraData === '00' ? '0x' : ensure0x(share.extraData),
|
|
166
|
+
};
|
|
167
|
+
|
|
168
|
+
// Recover the signer of this share. The KMS EIP-712 domain lives in `metadata`.
|
|
169
|
+
const [recoveredAddress] = await recoverSigners(context, {
|
|
170
|
+
domain: metadata.eip712Domain,
|
|
171
|
+
types: kmsUserDecryptResponseEip712Types,
|
|
172
|
+
primaryType: 'UserDecryptResponseVerification',
|
|
173
|
+
signatures: [ensure0x(share.signature)],
|
|
174
|
+
message,
|
|
175
|
+
});
|
|
176
|
+
|
|
177
|
+
if (recoveredAddress === undefined) {
|
|
178
|
+
throw new Error('Failed to recover signer from KMS signcrypted share signature.');
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
// The recovered signer must be one of the reconciled KMS signers (case-insensitive).
|
|
182
|
+
if (!metadata.kmsSignersContext.has(recoveredAddress)) {
|
|
183
|
+
throw new Error(
|
|
184
|
+
`KMS signcrypted share signature was not signed by a known KMS signer (recovered ${recoveredAddress}).`,
|
|
185
|
+
);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
|
|
106
189
|
/**
|
|
107
190
|
* Creates a validated {@link KmsSigncryptedShares} instance.
|
|
108
191
|
*
|
|
@@ -121,6 +204,7 @@ export async function createKmsSigncryptedShares(
|
|
|
121
204
|
},
|
|
122
205
|
): Promise<KmsSigncryptedShares> {
|
|
123
206
|
const { metadata, shares } = parameters;
|
|
207
|
+
|
|
124
208
|
/*
|
|
125
209
|
TODO: add an optional signature verification pass.
|
|
126
210
|
(13 signatures verifications. Could be CPU costly)
|
|
@@ -140,14 +224,13 @@ export async function createKmsSigncryptedShares(
|
|
|
140
224
|
assertIsKmsSignersContext(metadata.kmsSignersContext, {});
|
|
141
225
|
|
|
142
226
|
// Extract the common extraData from all shares and validate its format.
|
|
143
|
-
const
|
|
144
|
-
assertIsKmsExtraData(relayerExtraData, {});
|
|
227
|
+
const relayerKmsExtraDataBytesHex: BytesHex = ensure0x(assertUniformExtraData(shares));
|
|
145
228
|
|
|
146
229
|
// Reconcile KMS signer context using 'loose' mode.
|
|
147
230
|
const reconciledKmsSignersContext: KmsSignersContext = await reconcileKmsSignersContext(context, {
|
|
148
231
|
kmsVerifierAddress: context.chain.fhevm.contracts.kmsVerifier.address as ChecksummedAddress,
|
|
149
232
|
protocolConfigAddress: context.chain.fhevm.contracts.protocolConfig?.address as ChecksummedAddress | undefined,
|
|
150
|
-
|
|
233
|
+
relayerKmsExtraDataBytesHex,
|
|
151
234
|
requestedKmsSignersContext: metadata.kmsSignersContext,
|
|
152
235
|
mode: 'loose',
|
|
153
236
|
});
|
|
@@ -6,11 +6,13 @@ import type { FhevmRuntime } from '../types/coreFhevmRuntime.js';
|
|
|
6
6
|
import type { ClearValueType, SolidityPrimitiveTypeName } from '../types/fheType.js';
|
|
7
7
|
import type { NonEmptyReadonlyArray } from '../types/utils.js';
|
|
8
8
|
import type { ClearValue, Handle } from '../types/encryptedTypes-p.js';
|
|
9
|
+
import type { KmsExtraData } from '../types/kms-p.js';
|
|
9
10
|
import { concatBytesHex } from '../base/bytes.js';
|
|
10
11
|
import { abiEncodeClearValues, createClearValueArray } from '../handle/ClearValue.js';
|
|
11
12
|
import { toClearValueType } from '../handle/FheType.js';
|
|
12
13
|
import { kmsSignersContextToExtraData } from '../host-contracts/KmsSignersContext-p.js';
|
|
13
14
|
import { verifyKmsPublicDecryptEip712 } from './verifyKmsPublicDecryptEip712-p.js';
|
|
15
|
+
import { EXTRA_DATA_V0 } from './kmsExtraData-p.js';
|
|
14
16
|
|
|
15
17
|
//////////////////////////////////////////////////////////////////////////////
|
|
16
18
|
|
|
@@ -89,7 +91,7 @@ type Parameters = {
|
|
|
89
91
|
readonly originToken: symbol;
|
|
90
92
|
readonly orderedHandles: readonly Handle[];
|
|
91
93
|
readonly orderedAbiEncodedClearValues: BytesHex;
|
|
92
|
-
readonly
|
|
94
|
+
readonly kmsPublicDecryptEip712Signatures: readonly Bytes65Hex[];
|
|
93
95
|
readonly kmsSignersContext: KmsSignersContext;
|
|
94
96
|
};
|
|
95
97
|
|
|
@@ -108,7 +110,7 @@ export async function createPublicDecryptionProof(
|
|
|
108
110
|
const {
|
|
109
111
|
orderedHandles: orderedEncryptedValues,
|
|
110
112
|
orderedAbiEncodedClearValues,
|
|
111
|
-
|
|
113
|
+
kmsPublicDecryptEip712Signatures,
|
|
112
114
|
kmsSignersContext,
|
|
113
115
|
originToken,
|
|
114
116
|
} = parameters;
|
|
@@ -117,7 +119,7 @@ export async function createPublicDecryptionProof(
|
|
|
117
119
|
// Compute extraData using KmsSignersContext
|
|
118
120
|
//////////////////////////////////////////////////////////////////////////////
|
|
119
121
|
|
|
120
|
-
const extraData = kmsSignersContextToExtraData(kmsSignersContext);
|
|
122
|
+
const extraData: KmsExtraData = kmsSignersContextToExtraData(kmsSignersContext);
|
|
121
123
|
|
|
122
124
|
////////////////////////////////////////////////////////////////////////////
|
|
123
125
|
//
|
|
@@ -125,7 +127,7 @@ export async function createPublicDecryptionProof(
|
|
|
125
127
|
//
|
|
126
128
|
////////////////////////////////////////////////////////////////////////////
|
|
127
129
|
|
|
128
|
-
const
|
|
130
|
+
const signedExtraDataBytesHex = extraData.version === EXTRA_DATA_V0 ? ('0x' as BytesHex) : extraData.toBytesHex();
|
|
129
131
|
|
|
130
132
|
//////////////////////////////////////////////////////////////////////////////
|
|
131
133
|
// Compute the proof as numSigners + KMS signatures + extraData
|
|
@@ -133,15 +135,15 @@ export async function createPublicDecryptionProof(
|
|
|
133
135
|
|
|
134
136
|
const packedNumSigners: BytesHex = context.runtime.ethereum.encodePacked({
|
|
135
137
|
types: ['uint8'],
|
|
136
|
-
values: [
|
|
138
|
+
values: [kmsPublicDecryptEip712Signatures.length],
|
|
137
139
|
});
|
|
138
140
|
|
|
139
141
|
const packedSignatures = context.runtime.ethereum.encodePacked({
|
|
140
|
-
types: Array(
|
|
141
|
-
values:
|
|
142
|
+
types: Array(kmsPublicDecryptEip712Signatures.length).fill('bytes') as string[],
|
|
143
|
+
values: kmsPublicDecryptEip712Signatures,
|
|
142
144
|
});
|
|
143
145
|
|
|
144
|
-
const decryptionProof: BytesHex = concatBytesHex([packedNumSigners, packedSignatures,
|
|
146
|
+
const decryptionProof: BytesHex = concatBytesHex([packedNumSigners, packedSignatures, signedExtraDataBytesHex]);
|
|
145
147
|
|
|
146
148
|
//////////////////////////////////////////////////////////////////////////////
|
|
147
149
|
// Deserialize ordered decrypted result
|
|
@@ -176,6 +178,6 @@ export async function createPublicDecryptionProof(
|
|
|
176
178
|
decryptionProof: decryptionProof,
|
|
177
179
|
orderedClearValues: orderedDecryptedFhevmHandles,
|
|
178
180
|
orderedAbiEncodedClearValues: orderedAbiEncodedDecryptedFhevmHandles.abiEncodedClearValues,
|
|
179
|
-
extraData:
|
|
181
|
+
extraData: signedExtraDataBytesHex,
|
|
180
182
|
});
|
|
181
183
|
}
|