@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
package/core/kms/{kmsDelegatedUserDecryptEip712Types.ts → kmsDelegatedUserDecryptEip712V1Types.ts}
RENAMED
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { KmsDelegatedUserDecryptEip712V1Types } from '../types/kms.js';
|
|
2
2
|
|
|
3
3
|
////////////////////////////////////////////////////////////////////////////////
|
|
4
|
-
//
|
|
4
|
+
// KmsDelegatedUserDecryptEip712V1Types
|
|
5
5
|
////////////////////////////////////////////////////////////////////////////////
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
// Careful: do not change any fields in this structure
|
|
8
|
+
export const kmsDelegatedUserDecryptEip712V1Types: KmsDelegatedUserDecryptEip712V1Types = {
|
|
8
9
|
EIP712Domain: [
|
|
9
10
|
{ name: 'name', type: 'string' },
|
|
10
11
|
{ name: 'version', type: 'string' },
|
|
@@ -24,8 +25,8 @@ export const kmsDelegatedUserDecryptEip712Types: KmsDelegateUserDecryptEip712Typ
|
|
|
24
25
|
] as const,
|
|
25
26
|
} as const;
|
|
26
27
|
|
|
27
|
-
Object.freeze(
|
|
28
|
-
Object.freeze(
|
|
29
|
-
Object.freeze(
|
|
30
|
-
|
|
31
|
-
|
|
28
|
+
Object.freeze(kmsDelegatedUserDecryptEip712V1Types);
|
|
29
|
+
Object.freeze(kmsDelegatedUserDecryptEip712V1Types.EIP712Domain);
|
|
30
|
+
Object.freeze(kmsDelegatedUserDecryptEip712V1Types.DelegatedUserDecryptRequestVerification);
|
|
31
|
+
kmsDelegatedUserDecryptEip712V1Types.EIP712Domain.forEach(Object.freeze);
|
|
32
|
+
kmsDelegatedUserDecryptEip712V1Types.DelegatedUserDecryptRequestVerification.forEach(Object.freeze);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { KmsPublicDecryptEip712Types } from '../types/kms.js';
|
|
2
2
|
|
|
3
3
|
////////////////////////////////////////////////////////////////////////////////
|
|
4
|
-
//
|
|
4
|
+
// KmsPublicDecryptEip712Types
|
|
5
5
|
////////////////////////////////////////////////////////////////////////////////
|
|
6
6
|
|
|
7
7
|
export const kmsPublicDecryptEip712Types: KmsPublicDecryptEip712Types = {
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { KmsUserDecryptEip712V1Types } from '../types/kms.js';
|
|
2
2
|
|
|
3
3
|
////////////////////////////////////////////////////////////////////////////////
|
|
4
|
-
//
|
|
4
|
+
// KmsUserDecryptEip712V1Types
|
|
5
5
|
////////////////////////////////////////////////////////////////////////////////
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
// Careful: do not change any fields in this structure
|
|
8
|
+
export const kmsUserDecryptEip712V1Types: KmsUserDecryptEip712V1Types = {
|
|
8
9
|
EIP712Domain: [
|
|
9
10
|
{ name: 'name', type: 'string' },
|
|
10
11
|
{ name: 'version', type: 'string' },
|
|
@@ -23,8 +24,8 @@ export const kmsUserDecryptEip712Types: KmsUserDecryptEip712Types = {
|
|
|
23
24
|
] as const,
|
|
24
25
|
} as const;
|
|
25
26
|
|
|
26
|
-
Object.freeze(
|
|
27
|
-
Object.freeze(
|
|
28
|
-
Object.freeze(
|
|
29
|
-
|
|
30
|
-
|
|
27
|
+
Object.freeze(kmsUserDecryptEip712V1Types);
|
|
28
|
+
Object.freeze(kmsUserDecryptEip712V1Types.EIP712Domain);
|
|
29
|
+
Object.freeze(kmsUserDecryptEip712V1Types.UserDecryptRequestVerification);
|
|
30
|
+
kmsUserDecryptEip712V1Types.EIP712Domain.forEach(Object.freeze);
|
|
31
|
+
kmsUserDecryptEip712V1Types.UserDecryptRequestVerification.forEach(Object.freeze);
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import type { KmsUserDecryptEip712V2Types } from '../types/kms.js';
|
|
2
2
|
|
|
3
3
|
////////////////////////////////////////////////////////////////////////////////
|
|
4
|
-
//
|
|
4
|
+
// KmsUserDecryptEip712V2Types (RFC-016)
|
|
5
5
|
////////////////////////////////////////////////////////////////////////////////
|
|
6
6
|
|
|
7
|
+
// Careful: do not change any fields in this structure
|
|
7
8
|
export const kmsUserDecryptEip712V2Types: KmsUserDecryptEip712V2Types = {
|
|
8
9
|
EIP712Domain: [
|
|
9
10
|
{ name: 'name', type: 'string' },
|
|
@@ -73,7 +73,7 @@ export async function publicDecrypt(context: Context, parameters: Parameters): P
|
|
|
73
73
|
// 5. Call relayer
|
|
74
74
|
const {
|
|
75
75
|
orderedAbiEncodedClearValues,
|
|
76
|
-
|
|
76
|
+
kmsPublicDecryptEip712Signatures,
|
|
77
77
|
extraData: relayerExtraData,
|
|
78
78
|
} = await context.runtime.relayer.fetchPublicDecrypt(context, {
|
|
79
79
|
payload: {
|
|
@@ -97,7 +97,7 @@ export async function publicDecrypt(context: Context, parameters: Parameters): P
|
|
|
97
97
|
originToken,
|
|
98
98
|
orderedHandles: orderedHandles,
|
|
99
99
|
orderedAbiEncodedClearValues,
|
|
100
|
-
|
|
100
|
+
kmsPublicDecryptEip712Signatures,
|
|
101
101
|
kmsSignersContext: reconciledKmsSignersContext,
|
|
102
102
|
});
|
|
103
103
|
|
package/core/kms/utils.ts
CHANGED
|
@@ -26,35 +26,3 @@ export function assertKmsDecryptionBitLimit(handles: readonly Handle[]): UintNum
|
|
|
26
26
|
|
|
27
27
|
return total as UintNumber;
|
|
28
28
|
}
|
|
29
|
-
|
|
30
|
-
export function assertKmsEIP712DeadlineValidity(
|
|
31
|
-
{
|
|
32
|
-
startTimestamp,
|
|
33
|
-
durationDays,
|
|
34
|
-
}: {
|
|
35
|
-
startTimestamp: bigint | number | string;
|
|
36
|
-
durationDays: bigint | number | string;
|
|
37
|
-
},
|
|
38
|
-
maxDurationDays: UintNumber,
|
|
39
|
-
): void {
|
|
40
|
-
if (durationDays === 0) {
|
|
41
|
-
throw Error('durationDays is zero');
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
const durationDaysBigInt = BigInt(durationDays);
|
|
45
|
-
if (durationDaysBigInt > BigInt(maxDurationDays)) {
|
|
46
|
-
throw Error(`durationDays is above max duration of ${maxDurationDays}`);
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
const startTimestampBigInt = BigInt(startTimestamp);
|
|
50
|
-
|
|
51
|
-
const currentTimestamp = BigInt(Math.floor(Date.now() / 1000));
|
|
52
|
-
if (startTimestampBigInt > currentTimestamp) {
|
|
53
|
-
throw Error('startTimestamp is set in the future');
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
const durationInSeconds = durationDaysBigInt * BigInt(24 * 60 * 60);
|
|
57
|
-
if (startTimestampBigInt + durationInSeconds < currentTimestamp) {
|
|
58
|
-
throw Error('request has expired');
|
|
59
|
-
}
|
|
60
|
-
}
|
|
@@ -19,7 +19,7 @@ type Context = {
|
|
|
19
19
|
type Parameters = {
|
|
20
20
|
readonly orderedHandles: readonly Handle[];
|
|
21
21
|
readonly orderedAbiEncodedClearValues: BytesHex;
|
|
22
|
-
readonly
|
|
22
|
+
readonly kmsPublicDecryptEip712Signatures: readonly Bytes65Hex[];
|
|
23
23
|
readonly kmsSignersContext: KmsSignersContext;
|
|
24
24
|
};
|
|
25
25
|
|
|
@@ -28,7 +28,7 @@ type Parameters = {
|
|
|
28
28
|
export async function verifyKmsPublicDecryptEip712(context: Context, parameters: Parameters): Promise<void> {
|
|
29
29
|
const { kmsSignersContext, orderedHandles: orderedEncryptedValues, orderedAbiEncodedClearValues } = parameters;
|
|
30
30
|
|
|
31
|
-
// TODO: use
|
|
31
|
+
// TODO: use createKmsPublicDecryptEip712 instead!
|
|
32
32
|
|
|
33
33
|
const extraData: BytesHex = kmsSignersContextToExtraData(kmsSignersContext);
|
|
34
34
|
|
|
@@ -66,7 +66,7 @@ export async function verifyKmsPublicDecryptEip712(context: Context, parameters:
|
|
|
66
66
|
domain,
|
|
67
67
|
types: kmsPublicDecryptEip712Types,
|
|
68
68
|
primaryType: 'PublicDecryptVerification',
|
|
69
|
-
signatures: parameters.
|
|
69
|
+
signatures: parameters.kmsPublicDecryptEip712Signatures,
|
|
70
70
|
message,
|
|
71
71
|
});
|
|
72
72
|
|
|
@@ -76,7 +76,7 @@ type TypedPlaintextWasmType = TypedPlaintext & {
|
|
|
76
76
|
readonly [__TypedPlaintextWasm]: never;
|
|
77
77
|
};
|
|
78
78
|
|
|
79
|
-
type
|
|
79
|
+
type KmsEip712DomainWasmType = Readonly<
|
|
80
80
|
Omit<KmsEip712Domain, 'chainId' | 'verifyingContract'> & {
|
|
81
81
|
readonly chain_id: Uint8Array;
|
|
82
82
|
readonly verifying_contract: ChecksummedAddress;
|
|
@@ -297,16 +297,16 @@ export async function decryptAndReconstruct(
|
|
|
297
297
|
kmsLib,
|
|
298
298
|
);
|
|
299
299
|
|
|
300
|
-
//
|
|
301
|
-
const
|
|
300
|
+
// KmsEip712Domain
|
|
301
|
+
const kmsEip712Domain: KmsEip712Domain = metadata.eip712Domain;
|
|
302
302
|
const clientAddress: ChecksummedAddress = metadata.eip712SignerAddress;
|
|
303
303
|
|
|
304
304
|
// To be modified! use uint64ToBytes32 instead
|
|
305
|
-
const eip712DomainWasmArg:
|
|
306
|
-
name:
|
|
307
|
-
version:
|
|
308
|
-
chain_id: uint32ToBytes32(
|
|
309
|
-
verifying_contract:
|
|
305
|
+
const eip712DomainWasmArg: KmsEip712DomainWasmType = {
|
|
306
|
+
name: kmsEip712Domain.name,
|
|
307
|
+
version: kmsEip712Domain.version,
|
|
308
|
+
chain_id: uint32ToBytes32(kmsEip712Domain.chainId), // gateway chainId
|
|
309
|
+
verifying_contract: kmsEip712Domain.verifyingContract,
|
|
310
310
|
salt: null,
|
|
311
311
|
};
|
|
312
312
|
|
|
@@ -90,21 +90,21 @@ async function _resolveKmsAssets(
|
|
|
90
90
|
function _logResolvedKmsAssets(resolvedAssets: ResolvedKmsAssets, logger: FhevmRuntimeConfig['logger']): void {
|
|
91
91
|
const { wasm } = resolvedAssets;
|
|
92
92
|
if (wasm.resolution === 'user') {
|
|
93
|
-
logger?.debug(`resolve tkms wasm filename using 'locateFile' function: ${wasm.filename} -> url: ${wasm.url}`);
|
|
93
|
+
logger?.debug?.(`resolve tkms wasm filename using 'locateFile' function: ${wasm.filename} -> url: ${wasm.url}`);
|
|
94
94
|
} else if (wasm.resolution === 'node') {
|
|
95
95
|
if (wasm.url === undefined) {
|
|
96
96
|
// Auto-derived assets were missing on disk (e.g. a bundler such as Turbopack
|
|
97
97
|
// relocated the package) and were cleared by _resolveTkmsAssets -> base64.
|
|
98
|
-
logger?.debug(
|
|
98
|
+
logger?.debug?.(
|
|
99
99
|
`tkms auto-derived assets not found on disk (bundler relocation?); using embedded base64 ` +
|
|
100
100
|
`(wasm: ${wasm.localRelativePath})`,
|
|
101
101
|
);
|
|
102
102
|
} else {
|
|
103
|
-
logger?.debug(`resolve tkms wasm local path: ${wasm.localRelativePath} -> url: ${wasm.url}`);
|
|
103
|
+
logger?.debug?.(`resolve tkms wasm local path: ${wasm.localRelativePath} -> url: ${wasm.url}`);
|
|
104
104
|
}
|
|
105
105
|
} else {
|
|
106
106
|
// 'none': browser zero-config (no 'locateFile', not Node) -> embedded base64.
|
|
107
|
-
logger?.debug(`resolve tkms assets using embedded base64 (browser, no 'locateFile')`);
|
|
107
|
+
logger?.debug?.(`resolve tkms assets using embedded base64 (browser, no 'locateFile')`);
|
|
108
108
|
}
|
|
109
109
|
}
|
|
110
110
|
|
|
@@ -170,7 +170,7 @@ async function _resolveTkmsModuleConfig(
|
|
|
170
170
|
logger: parameters.logger,
|
|
171
171
|
};
|
|
172
172
|
|
|
173
|
-
parameters.logger?.debug(JSON.stringify(cfg, null, 2));
|
|
173
|
+
//parameters.logger?.debug?.(JSON.stringify(cfg, null, 2));
|
|
174
174
|
|
|
175
175
|
return cfg;
|
|
176
176
|
}
|
|
@@ -226,11 +226,11 @@ async function _compileWasmModule(cfg: ResolvedTkmsModuleConfig): Promise<WebAss
|
|
|
226
226
|
let wasmModule;
|
|
227
227
|
|
|
228
228
|
if (cfg.assets.wasm.url !== undefined) {
|
|
229
|
-
cfg.logger?.debug(`compile tkms verified wasm at: ${cfg.assets.wasm.url}`);
|
|
229
|
+
cfg.logger?.debug?.(`compile tkms verified wasm at: ${cfg.assets.wasm.url}`);
|
|
230
230
|
wasmModule = await isomorphicCompileVerifiedWasm(cfg.assets.wasm.url, cfg.assets.wasm.sha256);
|
|
231
231
|
} else {
|
|
232
232
|
const { tkmsWasmBase64, tkmsWasmBase64CompressionFormat } = await loadKmsWasmBase64(cfg.version);
|
|
233
|
-
cfg.logger?.debug(
|
|
233
|
+
cfg.logger?.debug?.(
|
|
234
234
|
`compile tkms wasm from embedded base64 (compression:${tkmsWasmBase64CompressionFormat ?? 'none'})`,
|
|
235
235
|
);
|
|
236
236
|
wasmModule = await isomorphicCompileWasmFromBase64(tkmsWasmBase64, tkmsWasmBase64CompressionFormat);
|
|
@@ -208,23 +208,25 @@ async function _resolveTfheAssets(
|
|
|
208
208
|
function _logResolvedTfheAssets(resolvedAssets: ResolvedTfheAssets, logger: FhevmRuntimeConfig['logger']): void {
|
|
209
209
|
const { wasm, worker } = resolvedAssets;
|
|
210
210
|
if (wasm.resolution === 'user') {
|
|
211
|
-
logger?.debug(`resolve tfhe wasm filename using 'locateFile' function: ${wasm.filename} -> url: ${wasm.url}`);
|
|
212
|
-
logger?.debug(
|
|
211
|
+
logger?.debug?.(`resolve tfhe wasm filename using 'locateFile' function: ${wasm.filename} -> url: ${wasm.url}`);
|
|
212
|
+
logger?.debug?.(
|
|
213
|
+
`resolve tfhe worker filename using 'locateFile' function: ${worker.filename} -> url: ${worker.url}`,
|
|
214
|
+
);
|
|
213
215
|
} else if (wasm.resolution === 'node') {
|
|
214
216
|
if (wasm.url === undefined) {
|
|
215
217
|
// Auto-derived assets were missing on disk (e.g. a bundler such as Turbopack
|
|
216
218
|
// relocated the package) and were cleared by _resolveTfheAssets -> base64.
|
|
217
|
-
logger?.debug(
|
|
219
|
+
logger?.debug?.(
|
|
218
220
|
`tfhe auto-derived assets not found on disk (bundler relocation?); using embedded base64 ` +
|
|
219
221
|
`(wasm: ${wasm.localRelativePath}, worker: ${worker.localRelativePath})`,
|
|
220
222
|
);
|
|
221
223
|
} else {
|
|
222
|
-
logger?.debug(`resolve tfhe wasm local path: ${wasm.localRelativePath} -> url: ${wasm.url}`);
|
|
223
|
-
logger?.debug(`resolve tfhe worker local path: ${worker.localRelativePath} -> url: ${worker.url}`);
|
|
224
|
+
logger?.debug?.(`resolve tfhe wasm local path: ${wasm.localRelativePath} -> url: ${wasm.url}`);
|
|
225
|
+
logger?.debug?.(`resolve tfhe worker local path: ${worker.localRelativePath} -> url: ${worker.url}`);
|
|
224
226
|
}
|
|
225
227
|
} else {
|
|
226
228
|
// 'none': browser zero-config (no 'locateFile', not Node) -> embedded base64.
|
|
227
|
-
logger?.debug(`resolve tfhe assets using embedded base64 (browser, no 'locateFile')`);
|
|
229
|
+
logger?.debug?.(`resolve tfhe assets using embedded base64 (browser, no 'locateFile')`);
|
|
228
230
|
}
|
|
229
231
|
}
|
|
230
232
|
|
|
@@ -475,7 +477,10 @@ async function _resolveTfheModuleConfig(
|
|
|
475
477
|
// Single source of truth for browser-vs-Node, resolved on the main thread
|
|
476
478
|
// (robust to bundler `process` shims) — the worker bootstrap no longer detects it.
|
|
477
479
|
isBrowserLike: isBrowserLike(),
|
|
478
|
-
logger:
|
|
480
|
+
logger:
|
|
481
|
+
parameters.logger?.debug !== undefined && parameters.logger.error !== undefined
|
|
482
|
+
? { debug: parameters.logger.debug, error: parameters.logger.error }
|
|
483
|
+
: undefined,
|
|
479
484
|
});
|
|
480
485
|
|
|
481
486
|
const cfg = {
|
|
@@ -488,7 +493,7 @@ async function _resolveTfheModuleConfig(
|
|
|
488
493
|
supportsThreads,
|
|
489
494
|
};
|
|
490
495
|
|
|
491
|
-
parameters.logger?.debug(JSON.stringify(cfg, null, 2));
|
|
496
|
+
//parameters.logger?.debug?.(JSON.stringify(cfg, null, 2));
|
|
492
497
|
|
|
493
498
|
return cfg;
|
|
494
499
|
}
|
|
@@ -572,11 +577,11 @@ async function _compileWasmModule(cfg: ResolvedTfheModuleConfig): Promise<WebAss
|
|
|
572
577
|
let wasmModule;
|
|
573
578
|
|
|
574
579
|
if (cfg.assets.wasm.url !== undefined) {
|
|
575
|
-
cfg.logger?.debug(`compile verified wasm at: ${cfg.assets.wasm.url}`);
|
|
580
|
+
cfg.logger?.debug?.(`compile verified wasm at: ${cfg.assets.wasm.url}`);
|
|
576
581
|
wasmModule = await isomorphicCompileVerifiedWasm(cfg.assets.wasm.url, cfg.assets.wasm.sha256);
|
|
577
582
|
} else {
|
|
578
583
|
const { tfheWasmBase64, tfheWasmBase64CompressionFormat } = await loadTfheWasmBase64(cfg.version);
|
|
579
|
-
cfg.logger?.debug(`compile wasm from embedded base64 (compression:${tfheWasmBase64CompressionFormat ?? 'none'})`);
|
|
584
|
+
cfg.logger?.debug?.(`compile wasm from embedded base64 (compression:${tfheWasmBase64CompressionFormat ?? 'none'})`);
|
|
580
585
|
wasmModule = await isomorphicCompileWasmFromBase64(tfheWasmBase64, tfheWasmBase64CompressionFormat);
|
|
581
586
|
}
|
|
582
587
|
|
|
@@ -599,7 +604,7 @@ async function _initTfheModule(cfg: ResolvedTfheModuleConfig): Promise<TfheLibAp
|
|
|
599
604
|
|
|
600
605
|
// 4. Spawn Web Workers for parallel FHE operations (skipped when single-threaded)
|
|
601
606
|
if (!cfg.singleThread) {
|
|
602
|
-
cfg.logger?.debug(`initThreadPool(${cfg.numberOfThreads})`);
|
|
607
|
+
cfg.logger?.debug?.(`initThreadPool(${cfg.numberOfThreads})`);
|
|
603
608
|
await tfheLib.initThreadPool(cfg.numberOfThreads);
|
|
604
609
|
}
|
|
605
610
|
|
|
@@ -46,7 +46,7 @@ export async function fetchPublicDecrypt(
|
|
|
46
46
|
const signersAddress = res[2] as readonly ChecksummedAddress[];
|
|
47
47
|
const signers = getKmsSignersPrivateKeyMap(relayerClient);
|
|
48
48
|
|
|
49
|
-
const
|
|
49
|
+
const kmsPublicDecryptEip712Signatures: Bytes65Hex[] = [];
|
|
50
50
|
|
|
51
51
|
for (let i = 0; i < signersAddress.length; ++i) {
|
|
52
52
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
@@ -56,12 +56,12 @@ export async function fetchPublicDecrypt(
|
|
|
56
56
|
}
|
|
57
57
|
|
|
58
58
|
const signature = await cleartextEthereumModule.sign({ hash: digest, privateKey });
|
|
59
|
-
|
|
59
|
+
kmsPublicDecryptEip712Signatures.push(signature);
|
|
60
60
|
}
|
|
61
61
|
|
|
62
62
|
return {
|
|
63
63
|
orderedAbiEncodedClearValues: res[0] as BytesHex,
|
|
64
|
-
|
|
64
|
+
kmsPublicDecryptEip712Signatures,
|
|
65
65
|
extraData: res[4] as BytesHex,
|
|
66
66
|
};
|
|
67
67
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { BytesHex, ChecksummedAddress } from '../../../types/primitives.js';
|
|
2
2
|
import type { FetchUserDecryptResultItem } from '../../../types/relayer.js';
|
|
3
3
|
import type { CleartextEthereumModule } from '../../ethereum/types-ct.js';
|
|
4
|
-
import type {
|
|
4
|
+
import type { FetchUserDecryptParametersV1, FetchUserDecryptReturnType, RelayerClientWithRuntime } from '../types.js';
|
|
5
5
|
import { remove0x } from '../../../base/string.js';
|
|
6
6
|
import { asUint32BigInt, tryParseUintBigIntString, randomUniqueUints } from '../../../base/uint.js';
|
|
7
7
|
import { getTrustedClient } from '../../../runtime/CoreFhevm-p.js';
|
|
@@ -61,7 +61,7 @@ const userDecryptAbi = [
|
|
|
61
61
|
|
|
62
62
|
export async function fetchUserDecrypt(
|
|
63
63
|
relayerClient: RelayerClientWithRuntime,
|
|
64
|
-
parameters:
|
|
64
|
+
parameters: FetchUserDecryptParametersV1,
|
|
65
65
|
): Promise<FetchUserDecryptReturnType> {
|
|
66
66
|
const cleartextEthereumModule = relayerClient.runtime.ethereum as CleartextEthereumModule;
|
|
67
67
|
const { payload } = parameters;
|
|
@@ -39,7 +39,7 @@ export async function fetchPublicDecrypt(
|
|
|
39
39
|
|
|
40
40
|
return {
|
|
41
41
|
orderedAbiEncodedClearValues: ensure0x(result.decryptedValue),
|
|
42
|
-
|
|
42
|
+
kmsPublicDecryptEip712Signatures: result.signatures.map(ensure0x) as Bytes65Hex[],
|
|
43
43
|
extraData: result.extraData,
|
|
44
44
|
};
|
|
45
45
|
}
|
|
@@ -1,10 +1,14 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
import type {
|
|
2
|
+
FetchUserDecryptParameters,
|
|
3
|
+
FetchUserDecryptParametersV1,
|
|
4
|
+
FetchUserDecryptParametersV2,
|
|
5
|
+
FetchUserDecryptReturnType,
|
|
6
|
+
RelayerClientWithRuntime,
|
|
7
|
+
} from '../types.js';
|
|
8
|
+
import { getResolvedProtocolVersion } from '../../../runtime/CoreFhevm-p.js';
|
|
9
|
+
import { isSemverStrictlyBefore } from '../../../base/semver.js';
|
|
10
|
+
import { fetchUserDecryptV1 } from './fetchUserDecryptV1.js';
|
|
11
|
+
import { fetchUserDecryptV2 } from './fetchUserDecryptV2.js';
|
|
8
12
|
|
|
9
13
|
//////////////////////////////////////////////////////////////////////////////
|
|
10
14
|
// fetchUserDecrypt
|
|
@@ -14,56 +18,16 @@ export async function fetchUserDecrypt(
|
|
|
14
18
|
relayerClient: RelayerClientWithRuntime,
|
|
15
19
|
parameters: FetchUserDecryptParameters,
|
|
16
20
|
): Promise<FetchUserDecryptReturnType> {
|
|
17
|
-
const
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
21
|
+
const protocolVersion = getResolvedProtocolVersion(relayerClient);
|
|
22
|
+
if (protocolVersion === undefined) {
|
|
23
|
+
throw new Error(
|
|
24
|
+
'Unable to resolve protocol version from context, ensure proper initialization of the FhevmRuntime and FhevmChain.',
|
|
25
|
+
);
|
|
22
26
|
}
|
|
23
27
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
const relayerPayload: FetchUserDecryptPayload = {
|
|
28
|
-
handleContractPairs: payload.handleContractPairs.map((pair) => {
|
|
29
|
-
return {
|
|
30
|
-
handle: pair.handle.bytes32Hex,
|
|
31
|
-
contractAddress: pair.contractAddress,
|
|
32
|
-
};
|
|
33
|
-
}),
|
|
34
|
-
requestValidity: {
|
|
35
|
-
startTimestamp: payload.kmsDecryptEip712Message.startTimestamp,
|
|
36
|
-
durationDays: payload.kmsDecryptEip712Message.durationDays,
|
|
37
|
-
},
|
|
38
|
-
contractsChainId,
|
|
39
|
-
contractAddresses: payload.kmsDecryptEip712Message.contractAddresses,
|
|
40
|
-
userAddress: payload.kmsDecryptEip712Signer,
|
|
41
|
-
signature: remove0x(payload.kmsDecryptEip712Signature),
|
|
42
|
-
extraData: payload.kmsDecryptEip712Message.extraData,
|
|
43
|
-
publicKey: remove0x(payload.kmsDecryptEip712Message.publicKey),
|
|
44
|
-
};
|
|
45
|
-
|
|
46
|
-
const hasAuth: boolean = options?.auth !== undefined;
|
|
47
|
-
const relayerBaseUrl: URL = validateRelayerBaseUrl(relayerClient.chain.fhevm.relayerUrl, hasAuth);
|
|
48
|
-
const url = buildRelayerUrlString(relayerBaseUrl, 'v2/user-decrypt');
|
|
49
|
-
|
|
50
|
-
const request = new RelayerAsyncRequest({
|
|
51
|
-
relayerOperation: 'USER_DECRYPT',
|
|
52
|
-
url,
|
|
53
|
-
payload: relayerPayload,
|
|
54
|
-
options,
|
|
55
|
-
});
|
|
56
|
-
|
|
57
|
-
const result = (await request.run()) as FetchUserDecryptResult;
|
|
58
|
-
|
|
59
|
-
const shares: KmsSigncryptedShare[] = result.map((r) => {
|
|
60
|
-
const share: KmsSigncryptedShare = {
|
|
61
|
-
signature: r.signature,
|
|
62
|
-
payload: r.payload,
|
|
63
|
-
extraData: remove0x(r.extraData),
|
|
64
|
-
};
|
|
65
|
-
return share;
|
|
66
|
-
});
|
|
28
|
+
if (isSemverStrictlyBefore(protocolVersion.version, '0.14.0')) {
|
|
29
|
+
return await fetchUserDecryptV1(relayerClient, parameters as FetchUserDecryptParametersV1);
|
|
30
|
+
}
|
|
67
31
|
|
|
68
|
-
return
|
|
32
|
+
return await fetchUserDecryptV2(relayerClient, parameters as FetchUserDecryptParametersV2);
|
|
69
33
|
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import type { KmsSigncryptedShare } from '../../../types/kms-p.js';
|
|
2
|
+
import type { FetchUserDecryptPayload as FetchUserDecryptPayloadV1 } from '../../../types/relayer-p.js';
|
|
3
|
+
import type { FetchUserDecryptResult } from '../../../types/relayer.js';
|
|
4
|
+
import type { FetchUserDecryptParametersV1, FetchUserDecryptReturnType, RelayerClientWithRuntime } from '../types.js';
|
|
5
|
+
import { remove0x } from '../../../base/string.js';
|
|
6
|
+
import { RelayerAsyncRequest } from './RelayerAsyncRequest.js';
|
|
7
|
+
import { buildRelayerUrlString, validateRelayerBaseUrl } from './relayerUrl.js';
|
|
8
|
+
|
|
9
|
+
//////////////////////////////////////////////////////////////////////////////
|
|
10
|
+
// fetchUserDecryptV1 (protocol version < 0.14.0)
|
|
11
|
+
//////////////////////////////////////////////////////////////////////////////
|
|
12
|
+
|
|
13
|
+
export async function fetchUserDecryptV1(
|
|
14
|
+
relayerClient: RelayerClientWithRuntime,
|
|
15
|
+
parameters: FetchUserDecryptParametersV1,
|
|
16
|
+
): Promise<FetchUserDecryptReturnType> {
|
|
17
|
+
const { options, payload } = parameters;
|
|
18
|
+
|
|
19
|
+
const firstHandleContractPair = payload.handleContractPairs[0];
|
|
20
|
+
if (firstHandleContractPair === undefined) {
|
|
21
|
+
throw new Error('Empty handle contract pairs');
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
// retrieve chainId using handles
|
|
25
|
+
const contractsChainId = firstHandleContractPair.handle.chainId.toString();
|
|
26
|
+
|
|
27
|
+
const relayerPayload: FetchUserDecryptPayloadV1 = {
|
|
28
|
+
handleContractPairs: payload.handleContractPairs.map((pair) => {
|
|
29
|
+
return {
|
|
30
|
+
handle: pair.handle.bytes32Hex,
|
|
31
|
+
contractAddress: pair.contractAddress,
|
|
32
|
+
};
|
|
33
|
+
}),
|
|
34
|
+
requestValidity: {
|
|
35
|
+
startTimestamp: payload.kmsDecryptEip712Message.startTimestamp,
|
|
36
|
+
durationDays: payload.kmsDecryptEip712Message.durationDays,
|
|
37
|
+
},
|
|
38
|
+
contractsChainId,
|
|
39
|
+
contractAddresses: payload.kmsDecryptEip712Message.contractAddresses,
|
|
40
|
+
userAddress: payload.kmsDecryptEip712Signer,
|
|
41
|
+
signature: remove0x(payload.kmsDecryptEip712Signature),
|
|
42
|
+
extraData: payload.kmsDecryptEip712Message.extraData,
|
|
43
|
+
publicKey: remove0x(payload.kmsDecryptEip712Message.publicKey),
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
const hasAuth: boolean = options?.auth !== undefined;
|
|
47
|
+
const relayerBaseUrl: URL = validateRelayerBaseUrl(relayerClient.chain.fhevm.relayerUrl, hasAuth);
|
|
48
|
+
const url = buildRelayerUrlString(relayerBaseUrl, 'v2/user-decrypt');
|
|
49
|
+
|
|
50
|
+
const request = new RelayerAsyncRequest({
|
|
51
|
+
relayerOperation: 'USER_DECRYPT',
|
|
52
|
+
url,
|
|
53
|
+
payload: relayerPayload,
|
|
54
|
+
options,
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
const result = (await request.run()) as FetchUserDecryptResult;
|
|
58
|
+
|
|
59
|
+
const shares: KmsSigncryptedShare[] = result.map((r) => {
|
|
60
|
+
const share: KmsSigncryptedShare = {
|
|
61
|
+
signature: r.signature,
|
|
62
|
+
payload: r.payload,
|
|
63
|
+
extraData: remove0x(r.extraData),
|
|
64
|
+
};
|
|
65
|
+
return share;
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
return shares;
|
|
69
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import type { KmsSigncryptedShare } from '../../../types/kms-p.js';
|
|
2
|
+
import type { FetchUserDecryptPayloadV2 } from '../../../types/relayer-p.js';
|
|
3
|
+
import type { FetchUserDecryptResult } from '../../../types/relayer.js';
|
|
4
|
+
import type { FetchUserDecryptParametersV2, FetchUserDecryptReturnType, RelayerClientWithRuntime } from '../types.js';
|
|
5
|
+
import { remove0x } from '../../../base/string.js';
|
|
6
|
+
import { RelayerAsyncRequest } from './RelayerAsyncRequest.js';
|
|
7
|
+
import { buildRelayerUrlString, validateRelayerBaseUrl } from './relayerUrl.js';
|
|
8
|
+
|
|
9
|
+
//////////////////////////////////////////////////////////////////////////////
|
|
10
|
+
// fetchUserDecryptV2 (protocol version >= 0.14.0)
|
|
11
|
+
//////////////////////////////////////////////////////////////////////////////
|
|
12
|
+
|
|
13
|
+
export async function fetchUserDecryptV2(
|
|
14
|
+
relayerClient: RelayerClientWithRuntime,
|
|
15
|
+
parameters: FetchUserDecryptParametersV2,
|
|
16
|
+
): Promise<FetchUserDecryptReturnType> {
|
|
17
|
+
const { options, payload } = parameters;
|
|
18
|
+
|
|
19
|
+
const firstHandleContractPair = payload.handleContractPairs[0];
|
|
20
|
+
if (firstHandleContractPair === undefined) {
|
|
21
|
+
throw new Error('Empty handle contract pairs');
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
// V3 envelope: AttestedUserDecryptRequestJson
|
|
25
|
+
// publicKey and signature keep their 0x prefix (unlike the V1/V2 flat payload)
|
|
26
|
+
const relayerPayload: FetchUserDecryptPayloadV2 = {
|
|
27
|
+
attestationType: 'eip712-unified-user-decrypt-v1',
|
|
28
|
+
attestedPayload: {
|
|
29
|
+
version: '2.0',
|
|
30
|
+
type: 'user_decryption',
|
|
31
|
+
handles: payload.handleContractPairs.map((pair) => ({
|
|
32
|
+
ctHandle: pair.handle.bytes32Hex,
|
|
33
|
+
contractAddress: pair.contractAddress,
|
|
34
|
+
ownerAddress: pair.ownerAddress,
|
|
35
|
+
})),
|
|
36
|
+
userAddress: payload.kmsDecryptEip712Message.userAddress,
|
|
37
|
+
allowedContracts: payload.kmsDecryptEip712Message.allowedContracts,
|
|
38
|
+
requestValidity: {
|
|
39
|
+
startTimestamp: payload.kmsDecryptEip712Message.startTimestamp,
|
|
40
|
+
durationSeconds: payload.kmsDecryptEip712Message.durationSeconds,
|
|
41
|
+
},
|
|
42
|
+
publicKey: payload.kmsDecryptEip712Message.publicKey,
|
|
43
|
+
extraData: payload.kmsDecryptEip712Message.extraData,
|
|
44
|
+
},
|
|
45
|
+
signature: payload.kmsDecryptEip712Signature,
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
const hasAuth: boolean = options?.auth !== undefined;
|
|
49
|
+
const relayerBaseUrl: URL = validateRelayerBaseUrl(relayerClient.chain.fhevm.relayerUrl, hasAuth);
|
|
50
|
+
const url = buildRelayerUrlString(relayerBaseUrl, 'v3/user-decrypt');
|
|
51
|
+
|
|
52
|
+
const request = new RelayerAsyncRequest({
|
|
53
|
+
relayerOperation: 'USER_DECRYPT',
|
|
54
|
+
url,
|
|
55
|
+
payload: relayerPayload,
|
|
56
|
+
options,
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
const result = (await request.run()) as FetchUserDecryptResult;
|
|
60
|
+
|
|
61
|
+
const shares: KmsSigncryptedShare[] = result.map((r) => {
|
|
62
|
+
const share: KmsSigncryptedShare = {
|
|
63
|
+
signature: r.signature,
|
|
64
|
+
payload: r.payload,
|
|
65
|
+
extraData: remove0x(r.extraData),
|
|
66
|
+
};
|
|
67
|
+
return share;
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
return shares;
|
|
71
|
+
}
|