@fhevm/sdk 1.1.0-alpha.6 → 1.1.0-alpha.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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/host/index.js +1 -9
- package/_cjs/core/actions/host/index.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/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/kms/PublicDecryptionProof-p.js +4 -4
- 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 +217 -0
- package/_cjs/core/kms/SignedDecryptionPermitV1-p.js.map +1 -0
- package/_cjs/core/kms/SignedDecryptionPermitV2-p.js +184 -0
- package/_cjs/core/kms/SignedDecryptionPermitV2-p.js.map +1 -0
- package/_cjs/core/kms/{createKmsDelegatedUserDecryptEip712.js → createKmsDelegatedUserDecryptEip712V1.js} +9 -9
- package/_cjs/core/kms/createKmsDelegatedUserDecryptEip712V1.js.map +1 -0
- package/_cjs/core/kms/{createKmsUserDecryptEip712.js → createKmsUserDecryptEip712V1.js} +16 -16
- package/_cjs/core/kms/createKmsUserDecryptEip712V1.js.map +1 -0
- 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} +18 -8
- 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/{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 +2 -2
- package/_cjs/core/kms/utils.js +0 -19
- package/_cjs/core/kms/utils.js.map +1 -1
- package/_cjs/core/kms/verifyKmsPublicDecryptEip712-p.js +1 -1
- package/_cjs/core/modules/decrypt/module/api-p.js +5 -5
- 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/fetchPublicDecrypt.js +3 -3
- package/_cjs/core/modules/relayer/cleartext/fetchUserDecrypt.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/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/host/index.js +0 -4
- package/_esm/core/actions/host/index.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/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/kms/PublicDecryptionProof-p.js +4 -4
- 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 +258 -0
- package/_esm/core/kms/SignedDecryptionPermitV1-p.js.map +1 -0
- package/_esm/core/kms/SignedDecryptionPermitV2-p.js +204 -0
- package/_esm/core/kms/SignedDecryptionPermitV2-p.js.map +1 -0
- package/_esm/core/kms/{createKmsDelegatedUserDecryptEip712.js → createKmsDelegatedUserDecryptEip712V1.js} +8 -8
- 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} +16 -16
- package/_esm/core/kms/createKmsUserDecryptEip712V1.js.map +1 -0
- 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} +23 -13
- 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/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 +2 -2
- package/_esm/core/kms/utils.js +0 -18
- package/_esm/core/kms/utils.js.map +1 -1
- package/_esm/core/kms/verifyKmsPublicDecryptEip712-p.js +2 -2
- package/_esm/core/modules/decrypt/module/api-p.js +6 -6
- 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/fetchPublicDecrypt.js +3 -3
- package/_esm/core/modules/relayer/cleartext/fetchUserDecrypt.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/_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/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/host-contracts/canDecryptValuesFromPairs.d.ts +2 -2
- package/_types/core/host-contracts/canDecryptValuesFromPairs.d.ts.map +1 -1
- package/_types/core/kms/PublicDecryptionProof-p.d.ts +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 +15 -0
- package/_types/core/kms/createKmsDelegatedUserDecryptEip712V1.d.ts.map +1 -0
- package/_types/core/kms/createKmsUserDecryptEip712V1.d.ts +26 -0
- package/_types/core/kms/createKmsUserDecryptEip712V1.d.ts.map +1 -0
- package/_types/core/kms/createKmsUserDecryptEip712V2.d.ts +1 -1
- 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/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/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/modules/encrypt/module/init-p.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/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.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/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/host/index.ts +0 -20
- 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/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 +2 -2
- package/core/kms/PublicDecryptionProof-p.ts +5 -5
- package/core/kms/SignedDecryptionPermit-p.ts +67 -357
- package/core/kms/SignedDecryptionPermitV1-p.ts +350 -0
- package/core/kms/SignedDecryptionPermitV2-p.ts +292 -0
- package/core/kms/{createKmsDelegatedUserDecryptEip712.ts → createKmsDelegatedUserDecryptEip712V1.ts} +16 -16
- package/core/kms/createKmsPublicDecryptEip712.ts +1 -1
- package/core/kms/{createKmsUserDecryptEip712.ts → createKmsUserDecryptEip712V1.ts} +26 -24
- package/core/kms/createKmsUserDecryptEip712V2.ts +1 -1
- package/core/kms/decryptValuesFromPairs.ts +34 -22
- package/core/kms/{fetchKmsSigncryptedShares-p.ts → fetchKmsSigncryptedSharesV1-p.ts} +35 -30
- package/core/kms/fetchKmsSigncryptedSharesV2-p.ts +176 -0
- package/core/kms/{kmsDelegatedUserDecryptEip712Types.ts → kmsDelegatedUserDecryptEip712V1Types.ts} +9 -8
- 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 +2 -2
- package/core/kms/utils.ts +0 -32
- package/core/kms/verifyKmsPublicDecryptEip712-p.ts +3 -3
- package/core/modules/decrypt/module/api-p.ts +8 -8
- package/core/modules/decrypt/module/init-p.ts +7 -7
- package/core/modules/encrypt/module/init-p.ts +16 -11
- package/core/modules/relayer/cleartext/fetchPublicDecrypt.ts +3 -3
- package/core/modules/relayer/cleartext/fetchUserDecrypt.ts +2 -2
- 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.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/package.json +1 -1
- 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/kmsUserDecryptEip712Types.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/kmsUserDecryptEip712Types.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/kmsUserDecryptEip712Types.d.ts +0 -3
- package/_types/core/kms/kmsUserDecryptEip712Types.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/modules/relayer/module/{fetchDelegatedUserDecrypt.ts → fetchDelegatedUserDecryptV1.ts} +0 -0
|
@@ -1,219 +1,79 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
|
|
3
|
-
SignedDelegatedDecryptionPermit,
|
|
4
|
-
SignedSelfDecryptionPermit,
|
|
5
|
-
} from '../types/signedDecryptionPermit.js';
|
|
6
|
-
import type { KmsDelegatedUserDecryptEip712, KmsUserDecryptEip712 } from '../types/kms.js';
|
|
7
|
-
import type {
|
|
8
|
-
Bytes65Hex,
|
|
9
|
-
BytesHex,
|
|
10
|
-
ChecksummedAddress,
|
|
11
|
-
Uint256BigInt,
|
|
12
|
-
Uint8Number,
|
|
13
|
-
UintNumber,
|
|
14
|
-
} from '../types/primitives.js';
|
|
1
|
+
import type { SignedDecryptionPermit } from '../types/signedDecryptionPermit.js';
|
|
2
|
+
import type { KmsDelegatedUserDecryptEip712V1, KmsUserDecryptEip712V1, KmsUserDecryptEip712V2 } from '../types/kms.js';
|
|
15
3
|
import type { FhevmChain } from '../types/fhevmChain.js';
|
|
16
4
|
import type { FhevmRuntime } from '../types/coreFhevmRuntime.js';
|
|
17
5
|
import type { ErrorMetadataParams } from '../base/errors/ErrorBase.js';
|
|
18
6
|
import type { NativeSigner } from '../modules/ethereum/types.js';
|
|
19
|
-
import type {
|
|
20
|
-
import { verifyKmsUserDecryptEip712 } from '../utils-p/decrypt/verifyKmsUserDecryptEip712.js';
|
|
21
|
-
import { verifyKmsDelegatedUserDecryptEip712 } from '../utils-p/decrypt/verifyKmsDelegatedUserDecryptEip712.js';
|
|
22
|
-
import { assertRecordNonNullableProperty } from '../base/record.js';
|
|
23
|
-
import { assertRecordBytes65HexProperty } from '../base/bytes.js';
|
|
7
|
+
import type { TransportKeyPair } from './TransportKeyPair-p.js';
|
|
24
8
|
import { InvalidTypeError } from '../base/errors/InvalidTypeError.js';
|
|
25
|
-
import {
|
|
26
|
-
import {
|
|
9
|
+
import { getResolvedProtocolVersion } from '../runtime/CoreFhevm-p.js';
|
|
10
|
+
import { isSemverStrictlyBefore } from '../base/semver.js';
|
|
27
11
|
import {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
import {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
////////////////////////////////////////////////////////////////////////////////
|
|
39
|
-
|
|
40
|
-
const PRIVATE_TOKEN = Symbol('SignedDecryptionPermit.token');
|
|
41
|
-
const MAX_USER_DECRYPT_DURATION_DAYS = 365 as UintNumber;
|
|
42
|
-
const MAX_USER_DECRYPT_CONTRACT_ADDRESSES = 10 as Uint8Number;
|
|
12
|
+
isSignedDecryptionPermitV1,
|
|
13
|
+
parseSignedDecryptionPermitV1,
|
|
14
|
+
signDecryptionPermitV1,
|
|
15
|
+
} from './SignedDecryptionPermitV1-p.js';
|
|
16
|
+
import {
|
|
17
|
+
isSignedDecryptionPermitV2,
|
|
18
|
+
parseSignedDecryptionPermitV2,
|
|
19
|
+
signDecryptionPermitV2,
|
|
20
|
+
} from './SignedDecryptionPermitV2-p.js';
|
|
21
|
+
import { isRecordUintNumberProperty } from '../base/uint.js';
|
|
43
22
|
|
|
44
23
|
////////////////////////////////////////////////////////////////////////////////
|
|
45
24
|
|
|
46
25
|
/**
|
|
47
|
-
*
|
|
48
|
-
*
|
|
49
|
-
* and exposed via readonly getters. Instances are only created through
|
|
50
|
-
* SDK-internal factory functions that guarantee the signature has been verified.
|
|
51
|
-
*
|
|
52
|
-
* **Invariant:** Every instance of this class has a verified signature.
|
|
53
|
-
* Construction is only possible through factory functions that validate the
|
|
54
|
-
* signature against the on-chain verifier before returning. If the EIP-712
|
|
55
|
-
* format has changed (e.g. loading a permit serialized by an older SDK version),
|
|
56
|
-
* verification will fail and construction will throw.
|
|
26
|
+
* Serializes a signed decryption permit to a plain object suitable for
|
|
27
|
+
* JSON serialization. Uses the public getters — does not access private fields.
|
|
57
28
|
*
|
|
58
|
-
*
|
|
59
|
-
*
|
|
60
|
-
* its contents without re-verification.
|
|
29
|
+
* `toJSON()` is intentionally not on the class to prevent accidental
|
|
30
|
+
* serialization of sensitive data via `JSON.stringify(permit)`.
|
|
61
31
|
*/
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
privateToken: symbol,
|
|
69
|
-
parameters: {
|
|
70
|
-
readonly eip712: KmsUserDecryptEip712 | KmsDelegatedUserDecryptEip712;
|
|
71
|
-
readonly signature: Bytes65Hex;
|
|
72
|
-
readonly signerAddress: ChecksummedAddress;
|
|
73
|
-
},
|
|
74
|
-
) {
|
|
75
|
-
if (privateToken !== PRIVATE_TOKEN) {
|
|
76
|
-
throw new Error('Unauthorized');
|
|
32
|
+
export function serializeSignedDecryptionPermitToJSON(permit: SignedDecryptionPermit):
|
|
33
|
+
| {
|
|
34
|
+
version: 1;
|
|
35
|
+
eip712: KmsUserDecryptEip712V1 | KmsDelegatedUserDecryptEip712V1;
|
|
36
|
+
signature: string;
|
|
37
|
+
signerAddress: string;
|
|
77
38
|
}
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
public get signature(): Bytes65Hex {
|
|
88
|
-
return this.#signature;
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
public get signerAddress(): ChecksummedAddress {
|
|
92
|
-
return this.#signerAddress;
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
public abstract get encryptedDataOwnerAddress(): ChecksummedAddress;
|
|
96
|
-
public abstract get isDelegated(): boolean;
|
|
97
|
-
|
|
98
|
-
public assertNotExpired(): void {
|
|
99
|
-
assertKmsEIP712DeadlineValidity(this.#eip712.message, MAX_USER_DECRYPT_DURATION_DAYS);
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
/**
|
|
103
|
-
* Asserts that this permit was signed against the given {@link KmsSignersContext}.
|
|
104
|
-
*
|
|
105
|
-
* Compares the `extraData` embedded in the permit's EIP-712 message with the
|
|
106
|
-
* `extraData` derived from the provided context. A mismatch indicates the permit
|
|
107
|
-
* was created for a different KMS context (e.g. different context ID or version)
|
|
108
|
-
* and must not be used for decryption.
|
|
109
|
-
*
|
|
110
|
-
* @todo The current check is a strict byte-level comparison. A permit signed
|
|
111
|
-
* with the correct `kmsContextId` but a different `extraData` encoding format
|
|
112
|
-
* (e.g. a version change in the serialization scheme) will be rejected even
|
|
113
|
-
* though the context ID matches. Consider comparing the decoded `kmsContextId`
|
|
114
|
-
* instead of the raw `extraData` bytes.
|
|
115
|
-
*
|
|
116
|
-
* @param kmsSignersContext - The current KMS signers context to validate against.
|
|
117
|
-
* @throws If the permit's `extraData` does not match the context's `extraData`.
|
|
118
|
-
*/
|
|
119
|
-
public assertMatchesKmsContext(kmsSignersContext: KmsSignersContext): void {
|
|
120
|
-
const expectedExtraData = kmsSignersContextToExtraData(kmsSignersContext);
|
|
121
|
-
if (expectedExtraData !== this.#eip712.message.extraData) {
|
|
122
|
-
throw new Error(
|
|
123
|
-
`Invalid permit: extraData "${this.#eip712.message.extraData}" does not match expected "${expectedExtraData}" from KmsSignersContext.`,
|
|
124
|
-
);
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
public get transportPublicKey(): BytesHex {
|
|
129
|
-
return this.#eip712.message.publicKey;
|
|
130
|
-
}
|
|
39
|
+
| {
|
|
40
|
+
version: 2;
|
|
41
|
+
eip712: KmsUserDecryptEip712V2;
|
|
42
|
+
signature: string;
|
|
43
|
+
signerAddress: string;
|
|
44
|
+
} {
|
|
45
|
+
assertIsSignedDecryptionPermit(permit, {});
|
|
131
46
|
|
|
132
|
-
|
|
133
|
-
|
|
47
|
+
// Defensive check
|
|
48
|
+
const version = permit.version as unknown as number;
|
|
49
|
+
if (version !== 1 && version !== 2) {
|
|
50
|
+
throw new Error(`Unsupported permit version: ${version}. Supported versions are 1 and 2.`);
|
|
134
51
|
}
|
|
135
52
|
|
|
136
|
-
|
|
137
|
-
|
|
53
|
+
// This if branch is needed for tsc
|
|
54
|
+
if (permit.version === 1) {
|
|
55
|
+
return {
|
|
56
|
+
version: 1,
|
|
57
|
+
eip712: permit.eip712,
|
|
58
|
+
signature: permit.signature,
|
|
59
|
+
signerAddress: permit.signerAddress,
|
|
60
|
+
};
|
|
138
61
|
}
|
|
139
|
-
}
|
|
140
62
|
|
|
141
|
-
////////////////////////////////////////////////////////////////////////////////
|
|
142
|
-
|
|
143
|
-
/**
|
|
144
|
-
* Serializes a signed decryption permit to a plain object suitable for
|
|
145
|
-
* JSON serialization. Uses the public getters — does not access private fields.
|
|
146
|
-
*
|
|
147
|
-
* `toJSON()` is intentionally not on the class to prevent accidental
|
|
148
|
-
* serialization of sensitive data via `JSON.stringify(permit)`.
|
|
149
|
-
*/
|
|
150
|
-
export function serializeSignedDecryptionPermitToJSON(permit: SignedDecryptionPermit): {
|
|
151
|
-
eip712: KmsUserDecryptEip712 | KmsDelegatedUserDecryptEip712;
|
|
152
|
-
signature: string;
|
|
153
|
-
signerAddress: string;
|
|
154
|
-
} {
|
|
155
|
-
assertIsSignedDecryptionPermit(permit, {});
|
|
156
63
|
return {
|
|
64
|
+
version: 2,
|
|
157
65
|
eip712: permit.eip712,
|
|
158
66
|
signature: permit.signature,
|
|
159
67
|
signerAddress: permit.signerAddress,
|
|
160
68
|
};
|
|
161
69
|
}
|
|
162
70
|
|
|
163
|
-
////////////////////////////////////////////////////////////////////////////////
|
|
164
|
-
// SignedUserDecryptionPermitImpl
|
|
165
|
-
////////////////////////////////////////////////////////////////////////////////
|
|
166
|
-
|
|
167
|
-
class SignedSelfDecryptionPermitImpl extends SignedDecryptionPermitBaseImpl implements SignedSelfDecryptionPermit {
|
|
168
|
-
public override get eip712(): KmsUserDecryptEip712 {
|
|
169
|
-
return super.eip712 as KmsUserDecryptEip712;
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
public override get encryptedDataOwnerAddress(): ChecksummedAddress {
|
|
173
|
-
return this.signerAddress;
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
public override get isDelegated(): false {
|
|
177
|
-
return false;
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
////////////////////////////////////////////////////////////////////////////////
|
|
182
|
-
// SignedDelegatedDecryptionPermitImpl
|
|
183
|
-
////////////////////////////////////////////////////////////////////////////////
|
|
184
|
-
|
|
185
|
-
class SignedDelegatedDecryptionPermitImpl
|
|
186
|
-
extends SignedDecryptionPermitBaseImpl
|
|
187
|
-
implements SignedDelegatedDecryptionPermit
|
|
188
|
-
{
|
|
189
|
-
public override get eip712(): KmsDelegatedUserDecryptEip712 {
|
|
190
|
-
return super.eip712 as KmsDelegatedUserDecryptEip712;
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
public override get encryptedDataOwnerAddress(): ChecksummedAddress {
|
|
194
|
-
return this.eip712.message.delegatorAddress;
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
public override get isDelegated(): true {
|
|
198
|
-
return true;
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
////////////////////////////////////////////////////////////////////////////////
|
|
203
|
-
|
|
204
|
-
Object.freeze(SignedDecryptionPermitBaseImpl);
|
|
205
|
-
Object.freeze(SignedDecryptionPermitBaseImpl.prototype);
|
|
206
|
-
Object.freeze(SignedSelfDecryptionPermitImpl);
|
|
207
|
-
Object.freeze(SignedSelfDecryptionPermitImpl.prototype);
|
|
208
|
-
Object.freeze(SignedDelegatedDecryptionPermitImpl);
|
|
209
|
-
Object.freeze(SignedDelegatedDecryptionPermitImpl.prototype);
|
|
210
|
-
|
|
211
71
|
////////////////////////////////////////////////////////////////////////////////
|
|
212
72
|
// isSignedDecryptionPermit
|
|
213
73
|
////////////////////////////////////////////////////////////////////////////////
|
|
214
74
|
|
|
215
75
|
export function isSignedDecryptionPermit(value: unknown): value is SignedDecryptionPermit {
|
|
216
|
-
return value
|
|
76
|
+
return isSignedDecryptionPermitV1(value) || isSignedDecryptionPermitV2(value);
|
|
217
77
|
}
|
|
218
78
|
|
|
219
79
|
/** Throws {@link InvalidTypeError} if value is not a valid {@link SignedDecryptionPermit}. */
|
|
@@ -233,65 +93,6 @@ export function assertIsSignedDecryptionPermit(
|
|
|
233
93
|
}
|
|
234
94
|
}
|
|
235
95
|
|
|
236
|
-
/**
|
|
237
|
-
* Asserts that every address in {@link contractAddresses} is listed in the
|
|
238
|
-
* permit's `contractAddresses` (case-insensitive comparison).
|
|
239
|
-
*/
|
|
240
|
-
export function assertPermitIncludesContractAddresses(
|
|
241
|
-
permit: SignedDecryptionPermit,
|
|
242
|
-
contractAddresses: readonly string[],
|
|
243
|
-
): void {
|
|
244
|
-
const permitAddresses = permit.eip712.message.contractAddresses;
|
|
245
|
-
for (const address of contractAddresses) {
|
|
246
|
-
if (!permitAddresses.some((a) => a.toLowerCase() === address.toLowerCase())) {
|
|
247
|
-
throw Error(`contract address ${address} is not listed in the permit's contractAddresses`);
|
|
248
|
-
}
|
|
249
|
-
}
|
|
250
|
-
}
|
|
251
|
-
|
|
252
|
-
////////////////////////////////////////////////////////////////////////////////
|
|
253
|
-
// createSignedDecryptionPermit
|
|
254
|
-
////////////////////////////////////////////////////////////////////////////////
|
|
255
|
-
|
|
256
|
-
async function _createSignedDecryptionPermit(
|
|
257
|
-
context: { readonly chain: FhevmChain; readonly runtime: FhevmRuntime },
|
|
258
|
-
parameters: {
|
|
259
|
-
readonly signerAddress: ChecksummedAddress;
|
|
260
|
-
readonly eip712: KmsUserDecryptEip712 | KmsDelegatedUserDecryptEip712;
|
|
261
|
-
readonly signature: Bytes65Hex;
|
|
262
|
-
},
|
|
263
|
-
): Promise<SignedDecryptionPermit> {
|
|
264
|
-
const { signerAddress, eip712, signature } = parameters;
|
|
265
|
-
|
|
266
|
-
if (eip712.message.contractAddresses.length === 0) {
|
|
267
|
-
throw Error('contractAddresses is empty');
|
|
268
|
-
}
|
|
269
|
-
|
|
270
|
-
if (eip712.message.contractAddresses.length > MAX_USER_DECRYPT_CONTRACT_ADDRESSES) {
|
|
271
|
-
throw Error(`contractAddresses max length of ${MAX_USER_DECRYPT_CONTRACT_ADDRESSES} exceeded`);
|
|
272
|
-
}
|
|
273
|
-
|
|
274
|
-
if (Number(eip712.message.durationDays) > MAX_USER_DECRYPT_DURATION_DAYS) {
|
|
275
|
-
throw Error(`durationDays is above max duration of ${MAX_USER_DECRYPT_DURATION_DAYS}`);
|
|
276
|
-
}
|
|
277
|
-
|
|
278
|
-
if (eip712.primaryType === 'UserDecryptRequestVerification') {
|
|
279
|
-
await verifyKmsUserDecryptEip712(context, {
|
|
280
|
-
signer: signerAddress,
|
|
281
|
-
message: eip712.message,
|
|
282
|
-
signature,
|
|
283
|
-
});
|
|
284
|
-
return new SignedSelfDecryptionPermitImpl(PRIVATE_TOKEN, parameters);
|
|
285
|
-
} else {
|
|
286
|
-
await verifyKmsDelegatedUserDecryptEip712(context, {
|
|
287
|
-
signer: signerAddress,
|
|
288
|
-
message: eip712.message,
|
|
289
|
-
signature,
|
|
290
|
-
});
|
|
291
|
-
return new SignedDelegatedDecryptionPermitImpl(PRIVATE_TOKEN, parameters);
|
|
292
|
-
}
|
|
293
|
-
}
|
|
294
|
-
|
|
295
96
|
export type SignDecryptionPermitContext = {
|
|
296
97
|
readonly chain: FhevmChain;
|
|
297
98
|
readonly runtime: FhevmRuntime;
|
|
@@ -299,27 +100,16 @@ export type SignDecryptionPermitContext = {
|
|
|
299
100
|
readonly options: { readonly batchRpcCalls: boolean };
|
|
300
101
|
};
|
|
301
102
|
|
|
302
|
-
type
|
|
103
|
+
export type SignDecryptionPermitParameters = {
|
|
303
104
|
readonly contractAddresses: readonly string[];
|
|
304
105
|
readonly startTimestamp: number;
|
|
305
|
-
readonly
|
|
106
|
+
readonly durationSeconds: number;
|
|
306
107
|
readonly signerAddress: string;
|
|
307
108
|
readonly signer: NativeSigner;
|
|
109
|
+
readonly delegatorAddress?: string | undefined;
|
|
308
110
|
readonly transportKeyPair: TransportKeyPair;
|
|
309
111
|
};
|
|
310
112
|
|
|
311
|
-
export type SignSelfDecryptionPermitParameters = SignDecryptionPermitCommonParameters & {
|
|
312
|
-
readonly delegatorAddress?: undefined;
|
|
313
|
-
};
|
|
314
|
-
|
|
315
|
-
export type SignDelegatedDecryptionPermitParameters = SignDecryptionPermitCommonParameters & {
|
|
316
|
-
readonly delegatorAddress: string;
|
|
317
|
-
};
|
|
318
|
-
|
|
319
|
-
export type SignDecryptionPermitParameters =
|
|
320
|
-
| SignSelfDecryptionPermitParameters
|
|
321
|
-
| SignDelegatedDecryptionPermitParameters;
|
|
322
|
-
|
|
323
113
|
/**
|
|
324
114
|
* Creates a signed decryption permit by constructing the EIP-712 typed data
|
|
325
115
|
* and signing it with the provided signer.
|
|
@@ -334,78 +124,22 @@ export type SignDecryptionPermitParameters =
|
|
|
334
124
|
* @throws If the signer, address, or key pair is invalid.
|
|
335
125
|
* @throws If the signature verification fails.
|
|
336
126
|
*/
|
|
337
|
-
export async function signDecryptionPermit(
|
|
338
|
-
context: SignDecryptionPermitContext,
|
|
339
|
-
parameters: SignSelfDecryptionPermitParameters,
|
|
340
|
-
): Promise<SignedSelfDecryptionPermit>;
|
|
341
|
-
export async function signDecryptionPermit(
|
|
342
|
-
context: SignDecryptionPermitContext,
|
|
343
|
-
parameters: SignDelegatedDecryptionPermitParameters,
|
|
344
|
-
): Promise<SignedDelegatedDecryptionPermit>;
|
|
345
127
|
export async function signDecryptionPermit(
|
|
346
128
|
context: SignDecryptionPermitContext,
|
|
347
129
|
parameters: SignDecryptionPermitParameters,
|
|
348
130
|
): Promise<SignedDecryptionPermit> {
|
|
349
|
-
const
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
const extraData: BytesHex = kmsSignersContextToExtraData(kmsSignersContext);
|
|
355
|
-
|
|
356
|
-
const {
|
|
357
|
-
contractAddresses,
|
|
358
|
-
startTimestamp,
|
|
359
|
-
durationDays,
|
|
360
|
-
signerAddress: signerAddressArg,
|
|
361
|
-
transportKeyPair: transportKeyPair,
|
|
362
|
-
signer,
|
|
363
|
-
delegatorAddress,
|
|
364
|
-
} = parameters;
|
|
365
|
-
|
|
366
|
-
assertIsTransportKeyPair(transportKeyPair, {});
|
|
367
|
-
assertIsAddress(signerAddressArg, {});
|
|
368
|
-
|
|
369
|
-
if (delegatorAddress !== undefined) {
|
|
370
|
-
assertIsAddress(delegatorAddress, {});
|
|
371
|
-
if (signerAddressArg.toLowerCase() === delegatorAddress.toLowerCase()) {
|
|
372
|
-
throw new Error(
|
|
373
|
-
'signerAddress and delegatorAddress must be different. ' +
|
|
374
|
-
'Use a non-delegated permit to decrypt your own values.',
|
|
375
|
-
);
|
|
376
|
-
}
|
|
131
|
+
const protocolVersion = getResolvedProtocolVersion(context);
|
|
132
|
+
if (protocolVersion === undefined) {
|
|
133
|
+
throw new Error(
|
|
134
|
+
'Unable to resolve protocol version from context, ensure proper initialization of the FhevmRuntime and FhevmChain.',
|
|
135
|
+
);
|
|
377
136
|
}
|
|
378
137
|
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
verifyingContractAddressDecryption: context.chain.fhevm.gateway.contracts.decryption.address as ChecksummedAddress,
|
|
383
|
-
chainId: context.chain.id,
|
|
384
|
-
contractAddresses,
|
|
385
|
-
durationDays,
|
|
386
|
-
startTimestamp,
|
|
387
|
-
extraData,
|
|
388
|
-
publicKey: transportKeyPair.publicKey,
|
|
389
|
-
};
|
|
390
|
-
|
|
391
|
-
const eip712 =
|
|
392
|
-
delegatorAddress !== undefined
|
|
393
|
-
? createKmsDelegatedUserDecryptEip712({
|
|
394
|
-
...commonMessage,
|
|
395
|
-
delegatorAddress,
|
|
396
|
-
})
|
|
397
|
-
: createKmsUserDecryptEip712(commonMessage);
|
|
398
|
-
|
|
399
|
-
const signature = await context.runtime.ethereum.signTypedData(signer, {
|
|
400
|
-
account: signerAddress,
|
|
401
|
-
...eip712,
|
|
402
|
-
});
|
|
138
|
+
if (isSemverStrictlyBefore(protocolVersion.version, '0.14.0')) {
|
|
139
|
+
return await signDecryptionPermitV1(context, parameters);
|
|
140
|
+
}
|
|
403
141
|
|
|
404
|
-
return await
|
|
405
|
-
signature,
|
|
406
|
-
signerAddress,
|
|
407
|
-
eip712,
|
|
408
|
-
});
|
|
142
|
+
return await signDecryptionPermitV2(context, parameters);
|
|
409
143
|
}
|
|
410
144
|
|
|
411
145
|
////////////////////////////////////////////////////////////////////////////////
|
|
@@ -413,46 +147,22 @@ export async function signDecryptionPermit(
|
|
|
413
147
|
////////////////////////////////////////////////////////////////////////////////
|
|
414
148
|
|
|
415
149
|
export async function parseSignedDecryptionPermit(
|
|
416
|
-
context:
|
|
417
|
-
readonly chain: FhevmChain;
|
|
418
|
-
readonly runtime: FhevmRuntime;
|
|
419
|
-
readonly client: NonNullable<object>;
|
|
420
|
-
readonly options: { readonly batchRpcCalls: boolean };
|
|
421
|
-
},
|
|
150
|
+
context: SignDecryptionPermitContext,
|
|
422
151
|
transportKeyPair: TransportKeyPair,
|
|
423
152
|
permit: unknown,
|
|
424
153
|
): Promise<SignedDecryptionPermit> {
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
const permitName = 'permit';
|
|
428
|
-
const options = {};
|
|
429
|
-
|
|
430
|
-
assertRecordNonNullableProperty(permit, 'eip712', permitName, options);
|
|
431
|
-
assertRecordBytes65HexProperty(permit, 'signature', permitName, options);
|
|
432
|
-
assertRecordAddressProperty(permit, 'signerAddress', permitName, options);
|
|
154
|
+
const hasVersion = isRecordUintNumberProperty(permit, 'version');
|
|
433
155
|
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
const primaryType = (eip712 as Record<string, unknown>).primaryType;
|
|
156
|
+
// if no version, interpret as permit v1
|
|
157
|
+
const version: number = hasVersion ? permit.version : 1;
|
|
437
158
|
|
|
438
|
-
if (
|
|
439
|
-
|
|
440
|
-
} else if (primaryType === 'DelegatedUserDecryptRequestVerification') {
|
|
441
|
-
assertIsKmsDelegatedUserDecryptEip712(eip712, `${permitName}.eip712`, options);
|
|
442
|
-
} else {
|
|
443
|
-
throw new Error(`Unknown permit primaryType: ${primaryType}`);
|
|
159
|
+
if (version === 1) {
|
|
160
|
+
return await parseSignedDecryptionPermitV1(context, transportKeyPair, permit);
|
|
444
161
|
}
|
|
445
162
|
|
|
446
|
-
if (
|
|
447
|
-
|
|
448
|
-
"The permit's publicKey does not match the TransportKeyPairKeyPair's publicKey. " +
|
|
449
|
-
'Ensure the permit was signed with the same key pair.',
|
|
450
|
-
);
|
|
163
|
+
if (version === 2) {
|
|
164
|
+
return await parseSignedDecryptionPermitV2(context, transportKeyPair, permit);
|
|
451
165
|
}
|
|
452
166
|
|
|
453
|
-
|
|
454
|
-
signature: permit.signature,
|
|
455
|
-
eip712,
|
|
456
|
-
signerAddress: addressToChecksummedAddress(permit.signerAddress),
|
|
457
|
-
});
|
|
167
|
+
throw new Error(`Unsupported permit version: ${version}. Supported versions are 1 and 2.`);
|
|
458
168
|
}
|