@fhevm/sdk 1.1.0-alpha.4 → 1.1.0-alpha.5
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/canDecryptPublicValue.js +1 -1
- package/_cjs/core/actions/base/canDecryptPublicValue.js.map +1 -1
- package/_cjs/core/actions/base/canDecryptPublicValues.js +1 -1
- package/_cjs/core/actions/base/canDecryptPublicValues.js.map +1 -1
- package/_cjs/core/actions/base/{fetchKmsSignedcryptedShares.js → fetchKmsSigncryptedShares.js} +5 -5
- package/_cjs/core/actions/base/fetchKmsSigncryptedShares.js.map +1 -0
- package/_cjs/core/actions/base/index.js +3 -3
- package/_cjs/core/actions/base/index.js.map +1 -1
- package/_cjs/core/actions/base/readKmsSignersContext.js +2 -1
- package/_cjs/core/actions/base/readKmsSignersContext.js.map +1 -1
- package/_cjs/core/actions/chain/parseTransportKeyPair.js.map +1 -1
- package/_cjs/core/actions/decrypt/decryptKmsSigncryptedShares.js +13 -0
- package/_cjs/core/actions/decrypt/decryptKmsSigncryptedShares.js.map +1 -0
- package/_cjs/core/actions/decrypt/decryptValue.js +3 -1
- package/_cjs/core/actions/decrypt/decryptValue.js.map +1 -1
- package/_cjs/core/actions/decrypt/decryptValues.js +3 -1
- package/_cjs/core/actions/decrypt/decryptValues.js.map +1 -1
- package/_cjs/core/actions/decrypt/decryptValuesFromPairs.js +3 -1
- package/_cjs/core/actions/decrypt/decryptValuesFromPairs.js.map +1 -1
- package/_cjs/core/actions/decrypt/generateTransportKeyPair.js +3 -1
- package/_cjs/core/actions/decrypt/generateTransportKeyPair.js.map +1 -1
- package/_cjs/core/actions/decrypt/index.js +3 -3
- package/_cjs/core/actions/decrypt/index.js.map +1 -1
- package/_cjs/core/actions/encrypt/encryptValue.js +3 -1
- package/_cjs/core/actions/encrypt/encryptValue.js.map +1 -1
- package/_cjs/core/actions/encrypt/encryptValues.js +3 -1
- package/_cjs/core/actions/encrypt/encryptValues.js.map +1 -1
- package/_cjs/core/actions/encrypt/generateZkProof.js +5 -1
- package/_cjs/core/actions/encrypt/generateZkProof.js.map +1 -1
- package/_cjs/core/actions/host/readFhevmExecutorContractData.js +7 -7
- package/_cjs/core/actions/host/readFhevmExecutorContractData.js.map +1 -1
- package/_cjs/core/actions/host/readInputVerifierContractData.js +1 -1
- package/_cjs/core/actions/host/readInputVerifierContractData.js.map +1 -1
- package/_cjs/core/actions/host/readKmsVerifierContractData.js +6 -5
- package/_cjs/core/actions/host/readKmsVerifierContractData.js.map +1 -1
- package/_cjs/core/actions/host/resolveFhevmConfig.js +7 -1
- package/_cjs/core/actions/host/resolveFhevmConfig.js.map +1 -1
- package/_cjs/core/base/object.js +23 -0
- package/_cjs/core/base/object.js.map +1 -1
- package/_cjs/core/base/semver.js +166 -0
- package/_cjs/core/base/semver.js.map +1 -0
- package/_cjs/core/base/uint.js +20 -3
- package/_cjs/core/base/uint.js.map +1 -1
- package/_cjs/core/chains/definitions/localTestnet.js +3 -0
- package/_cjs/core/chains/definitions/localTestnet.js.map +1 -1
- package/_cjs/core/chains/definitions/mainnet.js +1 -0
- package/_cjs/core/chains/definitions/mainnet.js.map +1 -1
- package/_cjs/core/chains/definitions/sepolia.js +1 -0
- package/_cjs/core/chains/definitions/sepolia.js.map +1 -1
- package/_cjs/core/clients/decorators/base.js +5 -0
- package/_cjs/core/clients/decorators/base.js.map +1 -1
- package/_cjs/core/clients/decorators/decrypt-p.js +13 -0
- package/_cjs/core/clients/decorators/decrypt-p.js.map +1 -0
- package/_cjs/core/clients/decorators/decrypt.js +4 -7
- package/_cjs/core/clients/decorators/decrypt.js.map +1 -1
- package/_cjs/core/clients/decorators/encrypt-p.js +5 -1
- package/_cjs/core/clients/decorators/encrypt-p.js.map +1 -1
- package/_cjs/core/clients/decorators/encrypt.js.map +1 -1
- package/_cjs/core/coprocessor/ZkProof-p.js +4 -2
- package/_cjs/core/coprocessor/ZkProof-p.js.map +1 -1
- package/_cjs/core/coprocessor/ZkProofBuilder-p.js +2 -1
- package/_cjs/core/coprocessor/ZkProofBuilder-p.js.map +1 -1
- package/_cjs/core/coprocessor/encrypt.js +1 -1
- package/_cjs/core/coprocessor/encrypt.js.map +1 -1
- package/_cjs/core/errors/RelayerResponseStatusError.js +3 -2
- package/_cjs/core/errors/RelayerResponseStatusError.js.map +1 -1
- package/_cjs/core/host-contracts/HostContractVersion-p.js +26 -4
- package/_cjs/core/host-contracts/HostContractVersion-p.js.map +1 -1
- package/_cjs/core/host-contracts/KmsSignersContext-p.js +23 -5
- package/_cjs/core/host-contracts/KmsSignersContext-p.js.map +1 -1
- package/_cjs/core/host-contracts/abi-fragments/fragments.js +21 -1
- package/_cjs/core/host-contracts/abi-fragments/fragments.js.map +1 -1
- package/_cjs/core/host-contracts/canDecryptValuesFromPairs.js +1 -1
- package/_cjs/core/host-contracts/canDecryptValuesFromPairs.js.map +1 -1
- package/_cjs/core/host-contracts/checkAllowedForDecryption.js +2 -2
- package/_cjs/core/host-contracts/checkAllowedForDecryption.js.map +1 -1
- package/_cjs/core/host-contracts/checkDelegation.js +8 -8
- package/_cjs/core/host-contracts/checkDelegation.js.map +1 -1
- package/_cjs/core/host-contracts/checkPersistAllowed.js +9 -9
- package/_cjs/core/host-contracts/checkPersistAllowed.js.map +1 -1
- package/_cjs/core/host-contracts/getAclAddress-p.js +1 -2
- package/_cjs/core/host-contracts/getAclAddress-p.js.map +1 -1
- package/_cjs/core/host-contracts/getCurrentKmsContextAndEpoch-p.js +51 -0
- package/_cjs/core/host-contracts/getCurrentKmsContextAndEpoch-p.js.map +1 -0
- package/_cjs/core/host-contracts/getCurrentKmsContextId-p.js +4 -5
- package/_cjs/core/host-contracts/getCurrentKmsContextId-p.js.map +1 -1
- package/_cjs/core/host-contracts/getFhevmExecutorAddress-p.js +1 -1
- package/_cjs/core/host-contracts/getFhevmExecutorAddress-p.js.map +1 -1
- package/_cjs/core/host-contracts/getHandleVersion-p.js +1 -2
- package/_cjs/core/host-contracts/getHandleVersion-p.js.map +1 -1
- package/_cjs/core/host-contracts/getHcuLimitAddress-p.js +1 -2
- package/_cjs/core/host-contracts/getHcuLimitAddress-p.js.map +1 -1
- package/_cjs/core/host-contracts/getInputVerifierAddress-p.js +1 -2
- package/_cjs/core/host-contracts/getInputVerifierAddress-p.js.map +1 -1
- package/_cjs/core/host-contracts/getKmsContextSignersAndThreshold-p.js +5 -7
- package/_cjs/core/host-contracts/getKmsContextSignersAndThreshold-p.js.map +1 -1
- package/_cjs/core/host-contracts/getKmsContextSignersAndThresholdFromExtraData-p.js +4 -5
- package/_cjs/core/host-contracts/getKmsContextSignersAndThresholdFromExtraData-p.js.map +1 -1
- package/_cjs/core/host-contracts/getSignersForKmsContext-p.js +3 -5
- package/_cjs/core/host-contracts/getSignersForKmsContext-p.js.map +1 -1
- package/_cjs/core/host-contracts/isAllowedForDecryption.js +4 -4
- package/_cjs/core/host-contracts/isAllowedForDecryption.js.map +1 -1
- package/_cjs/core/host-contracts/isHandleDelegatedForUserDecryption-p.js +5 -5
- package/_cjs/core/host-contracts/isHandleDelegatedForUserDecryption-p.js.map +1 -1
- package/_cjs/core/host-contracts/isUserDecryptable.js +2 -2
- package/_cjs/core/host-contracts/isUserDecryptable.js.map +1 -1
- package/_cjs/core/host-contracts/persistAllowed.js +4 -4
- package/_cjs/core/host-contracts/persistAllowed.js.map +1 -1
- package/_cjs/core/host-contracts/readKmsSignersContext-p.js +74 -25
- package/_cjs/core/host-contracts/readKmsSignersContext-p.js.map +1 -1
- package/_cjs/core/key/FheEncryptionKeyWasm-p.js +12 -4
- package/_cjs/core/key/FheEncryptionKeyWasm-p.js.map +1 -1
- package/_cjs/core/key/deserializeFheEncryptionKey.js +3 -0
- package/_cjs/core/key/deserializeFheEncryptionKey.js.map +1 -1
- package/_cjs/core/key/fetchFheEncryptionKey.js +1 -1
- package/_cjs/core/key/fetchFheEncryptionKey.js.map +1 -1
- package/_cjs/core/key/fetchFheEncryptionKeyBytes.js.map +1 -1
- package/_cjs/core/key/serializeFheEncryptionKey.js +4 -1
- package/_cjs/core/key/serializeFheEncryptionKey.js.map +1 -1
- package/_cjs/core/kms/KmsSigncryptedShares-p.js +9 -1
- package/_cjs/core/kms/KmsSigncryptedShares-p.js.map +1 -1
- package/_cjs/core/kms/SignedDecryptionPermit-p.js +5 -1
- package/_cjs/core/kms/SignedDecryptionPermit-p.js.map +1 -1
- package/_cjs/core/kms/TransportKeyPair-p.js +31 -7
- package/_cjs/core/kms/TransportKeyPair-p.js.map +1 -1
- package/_cjs/core/kms/createKmsUserDecryptEip712.js +4 -0
- package/_cjs/core/kms/createKmsUserDecryptEip712.js.map +1 -1
- package/_cjs/core/kms/createKmsUserDecryptEip712V2.js +97 -0
- package/_cjs/core/kms/createKmsUserDecryptEip712V2.js.map +1 -0
- package/_cjs/core/kms/{decryptKmsSignedcryptedShares-p.js → decryptKmsSigncryptedShares-p.js} +10 -3
- package/_cjs/core/kms/decryptKmsSigncryptedShares-p.js.map +1 -0
- package/_cjs/core/kms/decryptValuesFromPairs.js +4 -4
- package/_cjs/core/kms/decryptValuesFromPairs.js.map +1 -1
- package/_cjs/core/kms/{fetchKmsSignedcryptedShares-p.js → fetchKmsSigncryptedShares-p.js} +10 -6
- package/_cjs/core/kms/fetchKmsSigncryptedShares-p.js.map +1 -0
- package/_cjs/core/kms/kmsExtraData.js +53 -10
- package/_cjs/core/kms/kmsExtraData.js.map +1 -1
- package/_cjs/core/kms/kmsUserDecryptEip712V2Types.js +25 -0
- package/_cjs/core/kms/kmsUserDecryptEip712V2Types.js.map +1 -0
- package/_cjs/core/kms/publicDecrypt.js +5 -3
- package/_cjs/core/kms/publicDecrypt.js.map +1 -1
- package/_cjs/core/modules/decrypt/mock.js +1 -23
- package/_cjs/core/modules/decrypt/mock.js.map +1 -1
- package/_cjs/core/modules/decrypt/module/api-p.js +51 -23
- package/_cjs/core/modules/decrypt/module/api-p.js.map +1 -1
- package/_cjs/core/modules/decrypt/module/index.js +5 -27
- package/_cjs/core/modules/decrypt/module/index.js.map +1 -1
- package/_cjs/core/modules/decrypt/module/init-p.js +40 -19
- package/_cjs/core/modules/decrypt/module/init-p.js.map +1 -1
- package/_cjs/core/modules/encrypt/mock.js +26 -8
- package/_cjs/core/modules/encrypt/mock.js.map +1 -1
- package/_cjs/core/modules/encrypt/module/api-p.js +50 -21
- package/_cjs/core/modules/encrypt/module/api-p.js.map +1 -1
- package/_cjs/core/modules/encrypt/module/index.js +3 -3
- package/_cjs/core/modules/encrypt/module/index.js.map +1 -1
- package/_cjs/core/modules/encrypt/module/init-p.js +63 -24
- package/_cjs/core/modules/encrypt/module/init-p.js.map +1 -1
- package/_cjs/core/modules/relayer/cleartext/fetchDelegatedUserDecrypt.js +1 -1
- package/_cjs/core/modules/relayer/cleartext/fetchDelegatedUserDecrypt.js.map +1 -1
- package/_cjs/core/modules/relayer/cleartext/fetchUserDecrypt.js +1 -1
- package/_cjs/core/modules/relayer/cleartext/fetchUserDecrypt.js.map +1 -1
- package/_cjs/core/modules/relayer/module/RelayerAsyncRequest.js +28 -4
- package/_cjs/core/modules/relayer/module/RelayerAsyncRequest.js.map +1 -1
- package/_cjs/core/modules/relayer/module/fetchFheEncryptionKeySource.js +5 -1
- package/_cjs/core/modules/relayer/module/fetchFheEncryptionKeySource.js.map +1 -1
- package/_cjs/core/modules/relayer/module/readErrorMessage.js +29 -0
- package/_cjs/core/modules/relayer/module/readErrorMessage.js.map +1 -0
- package/_cjs/core/runtime/CoreFhevm-p.js +171 -5
- package/_cjs/core/runtime/CoreFhevm-p.js.map +1 -1
- package/_cjs/core/runtime/HyperWasmSolver-p.js +187 -0
- package/_cjs/core/runtime/HyperWasmSolver-p.js.map +1 -0
- package/_cjs/core/runtime/ProtocolVersionResolver-p.js +270 -0
- package/_cjs/core/runtime/ProtocolVersionResolver-p.js.map +1 -0
- package/_cjs/core/runtime/initFhevmDecryptRuntime-p.js +1 -1
- package/_cjs/core/runtime/initFhevmDecryptRuntime-p.js.map +1 -1
- package/_cjs/core/runtime/initFhevmEncryptRuntime-p.js +1 -1
- package/_cjs/core/runtime/initFhevmEncryptRuntime-p.js.map +1 -1
- package/_cjs/core/runtime/initFhevmRuntime-p.js +4 -1
- package/_cjs/core/runtime/initFhevmRuntime-p.js.map +1 -1
- package/_cjs/core/runtime/resolveFhevmVersions-p.js +48 -0
- package/_cjs/core/runtime/resolveFhevmVersions-p.js.map +1 -0
- package/_cjs/core/runtimeConfig-p.js +10 -0
- package/_cjs/core/runtimeConfig-p.js.map +1 -1
- package/_cjs/core/types/{zkProofBuilder.js → moduleVersions.js} +1 -1
- package/_cjs/core/types/moduleVersions.js.map +1 -0
- package/_cjs/core/types/{fhevmUser.js → wasmAssets.js} +1 -1
- package/_cjs/core/types/wasmAssets.js.map +1 -0
- package/_cjs/core/types/{fhevmDecryptionKey.js → zkProofBuilder-p.js} +1 -1
- package/_cjs/core/types/zkProofBuilder-p.js.map +1 -0
- package/_cjs/core/utils-p/decrypt/verifyTkmsPublicKey.js +1 -0
- package/_cjs/core/utils-p/decrypt/verifyTkmsPublicKey.js.map +1 -1
- package/_cjs/ethers/internal/config.js +1 -18
- package/_cjs/ethers/internal/config.js.map +1 -1
- package/_cjs/viem/internal/config.js +1 -18
- package/_cjs/viem/internal/config.js.map +1 -1
- package/_cjs/wasm/tfhe/loadTfheLib.js.map +1 -1
- package/_cjs/wasm/tfhe/v1.5.3/tfhe.d.ts +4 -0
- package/_cjs/wasm/tfhe/v1.5.3/tfhe.js +6 -1
- package/_cjs/wasm/tfhe/v1.5.3/tfhe.js.map +2 -2
- package/_cjs/wasm/tfhe/v1.6.1/tfhe.d.ts +4 -0
- package/_cjs/wasm/tfhe/v1.6.1/tfhe.js +6 -1
- package/_cjs/wasm/tfhe/v1.6.1/tfhe.js.map +2 -2
- package/_cjs/wasm/tkms/loadKmsLib.js.map +1 -1
- package/_cjs/wasm/tkms/v0.13.10/kms_lib.d.ts +4 -0
- package/_cjs/wasm/tkms/v0.13.10/kms_lib.js +6 -1
- package/_cjs/wasm/tkms/v0.13.10/kms_lib.js.map +2 -2
- package/_cjs/wasm/tkms/v0.13.20-0/kms_lib.d.ts +4 -0
- package/_cjs/wasm/tkms/v0.13.20-0/kms_lib.js +6 -1
- package/_cjs/wasm/tkms/v0.13.20-0/kms_lib.js.map +2 -2
- package/_cjs/wasm/wasmBaseUrl.js +23 -7
- package/_cjs/wasm/wasmBaseUrl.js.map +2 -2
- package/_esm/core/_version.js +1 -1
- package/_esm/core/actions/base/canDecryptPublicValue.js +1 -1
- package/_esm/core/actions/base/canDecryptPublicValue.js.map +1 -1
- package/_esm/core/actions/base/canDecryptPublicValues.js +1 -1
- package/_esm/core/actions/base/canDecryptPublicValues.js.map +1 -1
- package/_esm/core/actions/base/{fetchKmsSignedcryptedShares.js → fetchKmsSigncryptedShares.js} +4 -4
- package/_esm/core/actions/base/fetchKmsSigncryptedShares.js.map +1 -0
- package/_esm/core/actions/base/index.js +1 -1
- package/_esm/core/actions/base/index.js.map +1 -1
- package/_esm/core/actions/base/readKmsSignersContext.js +2 -1
- package/_esm/core/actions/base/readKmsSignersContext.js.map +1 -1
- package/_esm/core/actions/chain/parseTransportKeyPair.js.map +1 -1
- package/_esm/core/actions/decrypt/decryptKmsSigncryptedShares.js +11 -0
- package/_esm/core/actions/decrypt/decryptKmsSigncryptedShares.js.map +1 -0
- package/_esm/core/actions/decrypt/decryptValue.js +3 -1
- package/_esm/core/actions/decrypt/decryptValue.js.map +1 -1
- package/_esm/core/actions/decrypt/decryptValues.js +3 -1
- package/_esm/core/actions/decrypt/decryptValues.js.map +1 -1
- package/_esm/core/actions/decrypt/decryptValuesFromPairs.js +3 -1
- package/_esm/core/actions/decrypt/decryptValuesFromPairs.js.map +1 -1
- package/_esm/core/actions/decrypt/generateTransportKeyPair.js +3 -1
- package/_esm/core/actions/decrypt/generateTransportKeyPair.js.map +1 -1
- package/_esm/core/actions/decrypt/index.js +1 -1
- package/_esm/core/actions/decrypt/index.js.map +1 -1
- package/_esm/core/actions/encrypt/encryptValue.js +3 -1
- package/_esm/core/actions/encrypt/encryptValue.js.map +1 -1
- package/_esm/core/actions/encrypt/encryptValues.js +3 -1
- package/_esm/core/actions/encrypt/encryptValues.js.map +1 -1
- package/_esm/core/actions/encrypt/generateZkProof.js +5 -1
- package/_esm/core/actions/encrypt/generateZkProof.js.map +1 -1
- package/_esm/core/actions/host/readFhevmExecutorContractData.js +8 -8
- package/_esm/core/actions/host/readFhevmExecutorContractData.js.map +1 -1
- package/_esm/core/actions/host/readInputVerifierContractData.js +2 -2
- package/_esm/core/actions/host/readInputVerifierContractData.js.map +1 -1
- package/_esm/core/actions/host/readKmsVerifierContractData.js +7 -6
- package/_esm/core/actions/host/readKmsVerifierContractData.js.map +1 -1
- package/_esm/core/actions/host/resolveFhevmConfig.js +7 -1
- package/_esm/core/actions/host/resolveFhevmConfig.js.map +1 -1
- package/_esm/core/base/object.js +28 -0
- package/_esm/core/base/object.js.map +1 -1
- package/_esm/core/base/semver.js +164 -0
- package/_esm/core/base/semver.js.map +1 -0
- package/_esm/core/base/uint.js +23 -2
- package/_esm/core/base/uint.js.map +1 -1
- package/_esm/core/chains/definitions/localTestnet.js +3 -0
- package/_esm/core/chains/definitions/localTestnet.js.map +1 -1
- package/_esm/core/chains/definitions/mainnet.js +1 -0
- package/_esm/core/chains/definitions/mainnet.js.map +1 -1
- package/_esm/core/chains/definitions/sepolia.js +1 -0
- package/_esm/core/chains/definitions/sepolia.js.map +1 -1
- package/_esm/core/clients/decorators/base.js +6 -1
- package/_esm/core/clients/decorators/base.js.map +1 -1
- package/_esm/core/clients/decorators/decrypt-p.js +11 -0
- package/_esm/core/clients/decorators/decrypt-p.js.map +1 -0
- package/_esm/core/clients/decorators/decrypt.js +3 -7
- package/_esm/core/clients/decorators/decrypt.js.map +1 -1
- package/_esm/core/clients/decorators/encrypt-p.js +6 -2
- package/_esm/core/clients/decorators/encrypt-p.js.map +1 -1
- package/_esm/core/clients/decorators/encrypt.js.map +1 -1
- package/_esm/core/coprocessor/ZkProof-p.js +4 -2
- package/_esm/core/coprocessor/ZkProof-p.js.map +1 -1
- package/_esm/core/coprocessor/ZkProofBuilder-p.js +2 -1
- package/_esm/core/coprocessor/ZkProofBuilder-p.js.map +1 -1
- package/_esm/core/coprocessor/encrypt.js +1 -1
- package/_esm/core/coprocessor/encrypt.js.map +1 -1
- package/_esm/core/errors/RelayerResponseStatusError.js +7 -2
- package/_esm/core/errors/RelayerResponseStatusError.js.map +1 -1
- package/_esm/core/host-contracts/HostContractVersion-p.js +34 -3
- package/_esm/core/host-contracts/HostContractVersion-p.js.map +1 -1
- package/_esm/core/host-contracts/KmsSignersContext-p.js +24 -6
- package/_esm/core/host-contracts/KmsSignersContext-p.js.map +1 -1
- package/_esm/core/host-contracts/abi-fragments/fragments.js +24 -0
- package/_esm/core/host-contracts/abi-fragments/fragments.js.map +1 -1
- package/_esm/core/host-contracts/canDecryptValuesFromPairs.js +1 -1
- package/_esm/core/host-contracts/canDecryptValuesFromPairs.js.map +1 -1
- package/_esm/core/host-contracts/checkAllowedForDecryption.js +2 -2
- package/_esm/core/host-contracts/checkAllowedForDecryption.js.map +1 -1
- package/_esm/core/host-contracts/checkDelegation.js +8 -8
- package/_esm/core/host-contracts/checkDelegation.js.map +1 -1
- package/_esm/core/host-contracts/checkPersistAllowed.js +9 -9
- package/_esm/core/host-contracts/checkPersistAllowed.js.map +1 -1
- package/_esm/core/host-contracts/getAclAddress-p.js +1 -2
- package/_esm/core/host-contracts/getAclAddress-p.js.map +1 -1
- package/_esm/core/host-contracts/getCurrentKmsContextAndEpoch-p.js +63 -0
- package/_esm/core/host-contracts/getCurrentKmsContextAndEpoch-p.js.map +1 -0
- package/_esm/core/host-contracts/getCurrentKmsContextId-p.js +6 -7
- package/_esm/core/host-contracts/getCurrentKmsContextId-p.js.map +1 -1
- package/_esm/core/host-contracts/getFhevmExecutorAddress-p.js +1 -1
- package/_esm/core/host-contracts/getFhevmExecutorAddress-p.js.map +1 -1
- package/_esm/core/host-contracts/getHandleVersion-p.js +1 -2
- package/_esm/core/host-contracts/getHandleVersion-p.js.map +1 -1
- package/_esm/core/host-contracts/getHcuLimitAddress-p.js +1 -2
- package/_esm/core/host-contracts/getHcuLimitAddress-p.js.map +1 -1
- package/_esm/core/host-contracts/getInputVerifierAddress-p.js +1 -2
- package/_esm/core/host-contracts/getInputVerifierAddress-p.js.map +1 -1
- package/_esm/core/host-contracts/getKmsContextSignersAndThreshold-p.js +6 -8
- package/_esm/core/host-contracts/getKmsContextSignersAndThreshold-p.js.map +1 -1
- package/_esm/core/host-contracts/getKmsContextSignersAndThresholdFromExtraData-p.js +5 -6
- package/_esm/core/host-contracts/getKmsContextSignersAndThresholdFromExtraData-p.js.map +1 -1
- package/_esm/core/host-contracts/getSignersForKmsContext-p.js +5 -7
- package/_esm/core/host-contracts/getSignersForKmsContext-p.js.map +1 -1
- package/_esm/core/host-contracts/isAllowedForDecryption.js +4 -4
- package/_esm/core/host-contracts/isAllowedForDecryption.js.map +1 -1
- package/_esm/core/host-contracts/isHandleDelegatedForUserDecryption-p.js +5 -5
- package/_esm/core/host-contracts/isHandleDelegatedForUserDecryption-p.js.map +1 -1
- package/_esm/core/host-contracts/isUserDecryptable.js +2 -2
- package/_esm/core/host-contracts/isUserDecryptable.js.map +1 -1
- package/_esm/core/host-contracts/persistAllowed.js +4 -4
- package/_esm/core/host-contracts/persistAllowed.js.map +1 -1
- package/_esm/core/host-contracts/readKmsSignersContext-p.js +89 -29
- package/_esm/core/host-contracts/readKmsSignersContext-p.js.map +1 -1
- package/_esm/core/key/FheEncryptionKeyWasm-p.js +12 -4
- package/_esm/core/key/FheEncryptionKeyWasm-p.js.map +1 -1
- package/_esm/core/key/deserializeFheEncryptionKey.js +3 -0
- package/_esm/core/key/deserializeFheEncryptionKey.js.map +1 -1
- package/_esm/core/key/fetchFheEncryptionKey.js +1 -1
- package/_esm/core/key/fetchFheEncryptionKey.js.map +1 -1
- package/_esm/core/key/fetchFheEncryptionKeyBytes.js.map +1 -1
- package/_esm/core/key/serializeFheEncryptionKey.js +4 -1
- package/_esm/core/key/serializeFheEncryptionKey.js.map +1 -1
- package/_esm/core/kms/KmsSigncryptedShares-p.js +9 -1
- package/_esm/core/kms/KmsSigncryptedShares-p.js.map +1 -1
- package/_esm/core/kms/SignedDecryptionPermit-p.js +5 -1
- package/_esm/core/kms/SignedDecryptionPermit-p.js.map +1 -1
- package/_esm/core/kms/TransportKeyPair-p.js +32 -7
- package/_esm/core/kms/TransportKeyPair-p.js.map +1 -1
- package/_esm/core/kms/createKmsUserDecryptEip712.js +4 -0
- package/_esm/core/kms/createKmsUserDecryptEip712.js.map +1 -1
- package/_esm/core/kms/createKmsUserDecryptEip712V2.js +98 -0
- package/_esm/core/kms/createKmsUserDecryptEip712V2.js.map +1 -0
- package/_esm/core/kms/{decryptKmsSignedcryptedShares-p.js → decryptKmsSigncryptedShares-p.js} +9 -2
- package/_esm/core/kms/decryptKmsSigncryptedShares-p.js.map +1 -0
- package/_esm/core/kms/decryptValuesFromPairs.js +4 -4
- package/_esm/core/kms/decryptValuesFromPairs.js.map +1 -1
- package/_esm/core/kms/{fetchKmsSignedcryptedShares-p.js → fetchKmsSigncryptedShares-p.js} +12 -6
- package/_esm/core/kms/fetchKmsSigncryptedShares-p.js.map +1 -0
- package/_esm/core/kms/kmsExtraData.js +70 -12
- package/_esm/core/kms/kmsExtraData.js.map +1 -1
- package/_esm/core/kms/kmsUserDecryptEip712V2Types.js +28 -0
- package/_esm/core/kms/kmsUserDecryptEip712V2Types.js.map +1 -0
- package/_esm/core/kms/publicDecrypt.js +5 -3
- package/_esm/core/kms/publicDecrypt.js.map +1 -1
- package/_esm/core/modules/decrypt/mock.js +0 -24
- package/_esm/core/modules/decrypt/mock.js.map +1 -1
- package/_esm/core/modules/decrypt/module/api-p.js +51 -23
- package/_esm/core/modules/decrypt/module/api-p.js.map +1 -1
- package/_esm/core/modules/decrypt/module/index.js +31 -25
- package/_esm/core/modules/decrypt/module/index.js.map +1 -1
- package/_esm/core/modules/decrypt/module/init-p.js +41 -19
- package/_esm/core/modules/decrypt/module/init-p.js.map +1 -1
- package/_esm/core/modules/encrypt/mock.js +26 -9
- package/_esm/core/modules/encrypt/mock.js.map +1 -1
- package/_esm/core/modules/encrypt/module/api-p.js +50 -21
- package/_esm/core/modules/encrypt/module/api-p.js.map +1 -1
- package/_esm/core/modules/encrypt/module/index.js +3 -3
- package/_esm/core/modules/encrypt/module/index.js.map +1 -1
- package/_esm/core/modules/encrypt/module/init-p.js +69 -29
- package/_esm/core/modules/encrypt/module/init-p.js.map +1 -1
- package/_esm/core/modules/relayer/cleartext/fetchDelegatedUserDecrypt.js +2 -2
- package/_esm/core/modules/relayer/cleartext/fetchDelegatedUserDecrypt.js.map +1 -1
- package/_esm/core/modules/relayer/cleartext/fetchUserDecrypt.js +2 -2
- package/_esm/core/modules/relayer/cleartext/fetchUserDecrypt.js.map +1 -1
- package/_esm/core/modules/relayer/module/RelayerAsyncRequest.js +57 -4
- package/_esm/core/modules/relayer/module/RelayerAsyncRequest.js.map +1 -1
- package/_esm/core/modules/relayer/module/fetchFheEncryptionKeySource.js +8 -1
- package/_esm/core/modules/relayer/module/fetchFheEncryptionKeySource.js.map +1 -1
- package/_esm/core/modules/relayer/module/readErrorMessage.js +52 -0
- package/_esm/core/modules/relayer/module/readErrorMessage.js.map +1 -0
- package/_esm/core/runtime/CoreFhevm-p.js +167 -5
- package/_esm/core/runtime/CoreFhevm-p.js.map +1 -1
- package/_esm/core/runtime/HyperWasmSolver-p.js +268 -0
- package/_esm/core/runtime/HyperWasmSolver-p.js.map +1 -0
- package/_esm/core/runtime/ProtocolVersionResolver-p.js +326 -0
- package/_esm/core/runtime/ProtocolVersionResolver-p.js.map +1 -0
- package/_esm/core/runtime/initFhevmDecryptRuntime-p.js +1 -1
- package/_esm/core/runtime/initFhevmDecryptRuntime-p.js.map +1 -1
- package/_esm/core/runtime/initFhevmEncryptRuntime-p.js +1 -1
- package/_esm/core/runtime/initFhevmEncryptRuntime-p.js.map +1 -1
- package/_esm/core/runtime/initFhevmRuntime-p.js +4 -1
- package/_esm/core/runtime/initFhevmRuntime-p.js.map +1 -1
- package/_esm/core/runtime/resolveFhevmVersions-p.js +62 -0
- package/_esm/core/runtime/resolveFhevmVersions-p.js.map +1 -0
- package/_esm/core/runtimeConfig-p.js +9 -0
- package/_esm/core/runtimeConfig-p.js.map +1 -1
- package/_esm/core/types/moduleVersions.js +2 -0
- package/_esm/core/types/moduleVersions.js.map +1 -0
- package/_esm/core/types/wasmAssets.js +2 -0
- package/_esm/core/types/wasmAssets.js.map +1 -0
- package/_esm/core/types/zkProofBuilder-p.js +2 -0
- package/_esm/core/types/zkProofBuilder-p.js.map +1 -0
- package/_esm/core/utils-p/decrypt/verifyTkmsPublicKey.js +1 -0
- package/_esm/core/utils-p/decrypt/verifyTkmsPublicKey.js.map +1 -1
- package/_esm/ethers/internal/config.js +1 -18
- package/_esm/ethers/internal/config.js.map +1 -1
- package/_esm/viem/internal/config.js +1 -18
- package/_esm/viem/internal/config.js.map +1 -1
- package/_esm/wasm/tfhe/v1.5.3/tfhe.d.ts +4 -0
- package/_esm/wasm/tfhe/v1.5.3/tfhe.js +8 -0
- package/_esm/wasm/tfhe/v1.6.1/tfhe.d.ts +4 -0
- package/_esm/wasm/tfhe/v1.6.1/tfhe.js +8 -0
- package/_esm/wasm/tkms/v0.13.10/kms_lib.d.ts +4 -0
- package/_esm/wasm/tkms/v0.13.10/kms_lib.js +8 -0
- package/_esm/wasm/tkms/v0.13.20-0/kms_lib.d.ts +4 -0
- package/_esm/wasm/tkms/v0.13.20-0/kms_lib.js +8 -0
- package/_esm/wasm/wasmBaseUrl.js +69 -4
- package/_types/core/actions/base/{fetchKmsSignedcryptedShares.d.ts → fetchKmsSigncryptedShares.d.ts} +7 -7
- package/_types/core/actions/base/fetchKmsSigncryptedShares.d.ts.map +1 -0
- package/_types/core/actions/base/index.d.ts +1 -1
- package/_types/core/actions/base/index.d.ts.map +1 -1
- package/_types/core/actions/base/readKmsSignersContext.d.ts.map +1 -1
- package/_types/core/actions/chain/parseSignedDecryptionPermit.d.ts +2 -2
- package/_types/core/actions/chain/parseSignedDecryptionPermit.d.ts.map +1 -1
- package/_types/core/actions/chain/parseTransportKeyPair.d.ts +1 -1
- package/_types/core/actions/chain/parseTransportKeyPair.d.ts.map +1 -1
- package/_types/core/actions/decrypt/{decryptKmsSignedcryptedShares.d.ts → decryptKmsSigncryptedShares.d.ts} +4 -4
- package/_types/core/actions/decrypt/decryptKmsSigncryptedShares.d.ts.map +1 -0
- 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/generateTransportKeyPair.d.ts +2 -2
- package/_types/core/actions/decrypt/generateTransportKeyPair.d.ts.map +1 -1
- package/_types/core/actions/decrypt/index.d.ts +1 -1
- package/_types/core/actions/decrypt/index.d.ts.map +1 -1
- package/_types/core/actions/encrypt/encryptValue.d.ts.map +1 -1
- package/_types/core/actions/encrypt/encryptValues.d.ts.map +1 -1
- package/_types/core/actions/encrypt/generateZkProof.d.ts.map +1 -1
- package/_types/core/actions/host/readKmsVerifierContractData.d.ts +1 -0
- package/_types/core/actions/host/readKmsVerifierContractData.d.ts.map +1 -1
- package/_types/core/actions/host/resolveFhevmConfig.d.ts +2 -0
- package/_types/core/actions/host/resolveFhevmConfig.d.ts.map +1 -1
- package/_types/core/base/object.d.ts +7 -0
- package/_types/core/base/object.d.ts.map +1 -1
- package/_types/core/base/semver.d.ts +39 -0
- package/_types/core/base/semver.d.ts.map +1 -0
- package/_types/core/base/uint.d.ts +13 -2
- package/_types/core/base/uint.d.ts.map +1 -1
- package/_types/core/chains/definitions/localTestnet.d.ts +3 -0
- package/_types/core/chains/definitions/localTestnet.d.ts.map +1 -1
- package/_types/core/chains/definitions/mainnet.d.ts +1 -0
- package/_types/core/chains/definitions/mainnet.d.ts.map +1 -1
- package/_types/core/chains/definitions/sepolia.d.ts.map +1 -1
- package/_types/core/clients/decorators/base.d.ts.map +1 -1
- package/_types/core/clients/decorators/decrypt-p.d.ts +4 -0
- package/_types/core/clients/decorators/decrypt-p.d.ts.map +1 -0
- package/_types/core/clients/decorators/decrypt.d.ts +4 -2
- package/_types/core/clients/decorators/decrypt.d.ts.map +1 -1
- package/_types/core/clients/decorators/encrypt-p.d.ts +2 -3
- package/_types/core/clients/decorators/encrypt-p.d.ts.map +1 -1
- package/_types/core/clients/decorators/encrypt.d.ts +4 -2
- package/_types/core/clients/decorators/encrypt.d.ts.map +1 -1
- package/_types/core/coprocessor/ZkProof-p.d.ts +9 -2
- package/_types/core/coprocessor/ZkProof-p.d.ts.map +1 -1
- package/_types/core/coprocessor/ZkProofBuilder-p.d.ts +3 -1
- package/_types/core/coprocessor/ZkProofBuilder-p.d.ts.map +1 -1
- package/_types/core/coprocessor/encrypt.d.ts +2 -0
- package/_types/core/coprocessor/encrypt.d.ts.map +1 -1
- package/_types/core/errors/RelayerResponseStatusError.d.ts +7 -1
- package/_types/core/errors/RelayerResponseStatusError.d.ts.map +1 -1
- package/_types/core/host-contracts/HostContractVersion-p.d.ts +18 -1
- package/_types/core/host-contracts/HostContractVersion-p.d.ts.map +1 -1
- package/_types/core/host-contracts/KmsSignersContext-p.d.ts +2 -1
- package/_types/core/host-contracts/KmsSignersContext-p.d.ts.map +1 -1
- package/_types/core/host-contracts/abi-fragments/fragments.d.ts +5 -0
- package/_types/core/host-contracts/abi-fragments/fragments.d.ts.map +1 -1
- package/_types/core/host-contracts/checkAllowedForDecryption.d.ts +1 -1
- package/_types/core/host-contracts/checkAllowedForDecryption.d.ts.map +1 -1
- package/_types/core/host-contracts/checkDelegation.d.ts +1 -1
- package/_types/core/host-contracts/checkDelegation.d.ts.map +1 -1
- package/_types/core/host-contracts/checkPersistAllowed.d.ts +1 -1
- package/_types/core/host-contracts/checkPersistAllowed.d.ts.map +1 -1
- package/_types/core/host-contracts/getAclAddress-p.d.ts +1 -1
- package/_types/core/host-contracts/getAclAddress-p.d.ts.map +1 -1
- package/_types/core/host-contracts/getCurrentKmsContextAndEpoch-p.d.ts +30 -0
- package/_types/core/host-contracts/getCurrentKmsContextAndEpoch-p.d.ts.map +1 -0
- package/_types/core/host-contracts/getCurrentKmsContextId-p.d.ts +1 -1
- package/_types/core/host-contracts/getCurrentKmsContextId-p.d.ts.map +1 -1
- package/_types/core/host-contracts/getFhevmExecutorAddress-p.d.ts +1 -1
- package/_types/core/host-contracts/getFhevmExecutorAddress-p.d.ts.map +1 -1
- package/_types/core/host-contracts/getHandleVersion-p.d.ts +1 -1
- package/_types/core/host-contracts/getHandleVersion-p.d.ts.map +1 -1
- package/_types/core/host-contracts/getHcuLimitAddress-p.d.ts +1 -1
- package/_types/core/host-contracts/getHcuLimitAddress-p.d.ts.map +1 -1
- package/_types/core/host-contracts/getInputVerifierAddress-p.d.ts +1 -1
- package/_types/core/host-contracts/getInputVerifierAddress-p.d.ts.map +1 -1
- package/_types/core/host-contracts/getKmsContextSignersAndThreshold-p.d.ts +1 -1
- package/_types/core/host-contracts/getKmsContextSignersAndThreshold-p.d.ts.map +1 -1
- package/_types/core/host-contracts/getKmsContextSignersAndThresholdFromExtraData-p.d.ts +1 -1
- package/_types/core/host-contracts/getKmsContextSignersAndThresholdFromExtraData-p.d.ts.map +1 -1
- package/_types/core/host-contracts/getSignersForKmsContext-p.d.ts +2 -2
- package/_types/core/host-contracts/getSignersForKmsContext-p.d.ts.map +1 -1
- package/_types/core/host-contracts/isAllowedForDecryption.d.ts +1 -1
- package/_types/core/host-contracts/isAllowedForDecryption.d.ts.map +1 -1
- package/_types/core/host-contracts/isHandleDelegatedForUserDecryption-p.d.ts +1 -1
- package/_types/core/host-contracts/isHandleDelegatedForUserDecryption-p.d.ts.map +1 -1
- package/_types/core/host-contracts/isUserDecryptable.d.ts +1 -1
- package/_types/core/host-contracts/isUserDecryptable.d.ts.map +1 -1
- package/_types/core/host-contracts/persistAllowed.d.ts +1 -1
- package/_types/core/host-contracts/persistAllowed.d.ts.map +1 -1
- package/_types/core/host-contracts/readKmsSignersContext-p.d.ts +25 -7
- package/_types/core/host-contracts/readKmsSignersContext-p.d.ts.map +1 -1
- package/_types/core/key/FheEncryptionKeyWasm-p.d.ts +3 -1
- package/_types/core/key/FheEncryptionKeyWasm-p.d.ts.map +1 -1
- package/_types/core/key/deserializeFheEncryptionKey.d.ts +2 -0
- package/_types/core/key/deserializeFheEncryptionKey.d.ts.map +1 -1
- package/_types/core/key/fetchFheEncryptionKey.d.ts +3 -1
- package/_types/core/key/fetchFheEncryptionKey.d.ts.map +1 -1
- package/_types/core/key/fetchFheEncryptionKeyBytes.d.ts.map +1 -1
- package/_types/core/key/serializeFheEncryptionKey.d.ts.map +1 -1
- package/_types/core/kms/KmsSigncryptedShares-p.d.ts.map +1 -1
- package/_types/core/kms/SignedDecryptionPermit-p.d.ts.map +1 -1
- package/_types/core/kms/TransportKeyPair-p.d.ts +9 -0
- package/_types/core/kms/TransportKeyPair-p.d.ts.map +1 -1
- package/_types/core/kms/createKmsUserDecryptEip712.d.ts.map +1 -1
- package/_types/core/kms/createKmsUserDecryptEip712V2.d.ts +15 -0
- package/_types/core/kms/createKmsUserDecryptEip712V2.d.ts.map +1 -0
- package/_types/core/kms/{decryptKmsSignedcryptedShares-p.d.ts → decryptKmsSigncryptedShares-p.d.ts} +4 -2
- package/_types/core/kms/decryptKmsSigncryptedShares-p.d.ts.map +1 -0
- package/_types/core/kms/decryptValuesFromPairs.d.ts +2 -0
- package/_types/core/kms/decryptValuesFromPairs.d.ts.map +1 -1
- package/_types/core/kms/{fetchKmsSignedcryptedShares-p.d.ts → fetchKmsSigncryptedShares-p.d.ts} +2 -2
- package/_types/core/kms/fetchKmsSigncryptedShares-p.d.ts.map +1 -0
- package/_types/core/kms/kmsExtraData.d.ts +9 -2
- package/_types/core/kms/kmsExtraData.d.ts.map +1 -1
- package/_types/core/kms/kmsUserDecryptEip712V2Types.d.ts +3 -0
- package/_types/core/kms/kmsUserDecryptEip712V2Types.d.ts.map +1 -0
- package/_types/core/kms/publicDecrypt.d.ts.map +1 -1
- package/_types/core/modules/decrypt/mock.d.ts +1 -2
- package/_types/core/modules/decrypt/mock.d.ts.map +1 -1
- package/_types/core/modules/decrypt/module/api-p.d.ts +2 -2
- package/_types/core/modules/decrypt/module/api-p.d.ts.map +1 -1
- package/_types/core/modules/decrypt/module/index.d.ts +1 -2
- package/_types/core/modules/decrypt/module/index.d.ts.map +1 -1
- package/_types/core/modules/decrypt/module/init-p.d.ts +3 -3
- package/_types/core/modules/decrypt/module/init-p.d.ts.map +1 -1
- package/_types/core/modules/decrypt/types.d.ts +33 -34
- package/_types/core/modules/decrypt/types.d.ts.map +1 -1
- package/_types/core/modules/encrypt/mock.d.ts.map +1 -1
- package/_types/core/modules/encrypt/module/api-p.d.ts.map +1 -1
- package/_types/core/modules/encrypt/module/index.d.ts.map +1 -1
- package/_types/core/modules/encrypt/module/init-p.d.ts +11 -4
- package/_types/core/modules/encrypt/module/init-p.d.ts.map +1 -1
- package/_types/core/modules/encrypt/types.d.ts +31 -2
- package/_types/core/modules/encrypt/types.d.ts.map +1 -1
- package/_types/core/modules/relayer/module/RelayerAsyncRequest.d.ts +18 -0
- package/_types/core/modules/relayer/module/RelayerAsyncRequest.d.ts.map +1 -1
- package/_types/core/modules/relayer/module/fetchFheEncryptionKeySource.d.ts.map +1 -1
- package/_types/core/modules/relayer/module/readErrorMessage.d.ts +26 -0
- package/_types/core/modules/relayer/module/readErrorMessage.d.ts.map +1 -0
- package/_types/core/runtime/CoreFhevm-p.d.ts +15 -4
- package/_types/core/runtime/CoreFhevm-p.d.ts.map +1 -1
- package/_types/core/runtime/HyperWasmSolver-p.d.ts +71 -0
- package/_types/core/runtime/HyperWasmSolver-p.d.ts.map +1 -0
- package/_types/core/runtime/ProtocolVersionResolver-p.d.ts +29 -0
- package/_types/core/runtime/ProtocolVersionResolver-p.d.ts.map +1 -0
- package/_types/core/runtime/initFhevmRuntime-p.d.ts.map +1 -1
- package/_types/core/runtime/resolveFhevmVersions-p.d.ts +21 -0
- package/_types/core/runtime/resolveFhevmVersions-p.d.ts.map +1 -0
- package/_types/core/runtimeConfig-p.d.ts +3 -2
- package/_types/core/runtimeConfig-p.d.ts.map +1 -1
- package/_types/core/types/auth.d.ts +12 -1
- package/_types/core/types/auth.d.ts.map +1 -1
- package/_types/core/types/coreFhevmClient.d.ts +72 -2
- package/_types/core/types/coreFhevmClient.d.ts.map +1 -1
- package/_types/core/types/coreFhevmRuntime.d.ts +3 -9
- package/_types/core/types/coreFhevmRuntime.d.ts.map +1 -1
- package/_types/core/types/fheEncryptionKey.d.ts +2 -0
- package/_types/core/types/fheEncryptionKey.d.ts.map +1 -1
- package/_types/core/types/fhevmChain.d.ts +3 -0
- package/_types/core/types/fhevmChain.d.ts.map +1 -1
- package/_types/core/types/hostContract.d.ts +1 -0
- package/_types/core/types/hostContract.d.ts.map +1 -1
- package/_types/core/types/index.d.ts +1 -1
- package/_types/core/types/index.d.ts.map +1 -1
- package/_types/core/types/kms-p.d.ts +2 -0
- package/_types/core/types/kms-p.d.ts.map +1 -1
- package/_types/core/types/kms.d.ts +71 -21
- package/_types/core/types/kms.d.ts.map +1 -1
- package/_types/core/types/kmsSignersContext.d.ts +8 -0
- package/_types/core/types/kmsSignersContext.d.ts.map +1 -1
- package/_types/core/types/logger.d.ts +1 -0
- package/_types/core/types/logger.d.ts.map +1 -1
- package/_types/core/types/moduleVersions.d.ts +25 -0
- package/_types/core/types/moduleVersions.d.ts.map +1 -0
- package/_types/core/types/tkms-p.d.ts +2 -0
- package/_types/core/types/tkms-p.d.ts.map +1 -1
- package/_types/core/types/wasmAssets.d.ts +2 -0
- package/_types/core/types/wasmAssets.d.ts.map +1 -0
- package/_types/core/types/{zkProofBuilder.d.ts → zkProofBuilder-p.d.ts} +8 -3
- package/_types/core/types/zkProofBuilder-p.d.ts.map +1 -0
- package/_types/core/utils-p/decrypt/verifyTkmsPublicKey.d.ts +2 -0
- package/_types/core/utils-p/decrypt/verifyTkmsPublicKey.d.ts.map +1 -1
- package/_types/ethers/cleartext/createFhevmCleartextDecryptClient.d.ts +2 -2
- package/_types/ethers/cleartext/createFhevmCleartextDecryptClient.d.ts.map +1 -1
- package/_types/ethers/cleartext/createFhevmCleartextEncryptClient.d.ts +2 -2
- package/_types/ethers/cleartext/createFhevmCleartextEncryptClient.d.ts.map +1 -1
- package/_types/ethers/clients/createFhevmDecryptClient.d.ts +2 -2
- package/_types/ethers/clients/createFhevmDecryptClient.d.ts.map +1 -1
- package/_types/ethers/clients/createFhevmEncryptClient.d.ts +2 -2
- package/_types/ethers/clients/createFhevmEncryptClient.d.ts.map +1 -1
- package/_types/viem/cleartext/createFhevmCleartextDecryptClient.d.ts +2 -2
- package/_types/viem/cleartext/createFhevmCleartextDecryptClient.d.ts.map +1 -1
- package/_types/viem/cleartext/createFhevmCleartextEncryptClient.d.ts +2 -2
- package/_types/viem/cleartext/createFhevmCleartextEncryptClient.d.ts.map +1 -1
- package/_types/viem/clients/createFhevmDecryptClient.d.ts +2 -2
- package/_types/viem/clients/createFhevmDecryptClient.d.ts.map +1 -1
- package/_types/viem/clients/createFhevmEncryptClient.d.ts +2 -2
- package/_types/viem/clients/createFhevmEncryptClient.d.ts.map +1 -1
- package/_types/wasm/tfhe/v1.5.3/tfhe.d.ts +4 -0
- package/_types/wasm/tfhe/v1.6.1/tfhe.d.ts +4 -0
- package/_types/wasm/tfheModuleVersion-p.d.ts +1 -1
- package/_types/wasm/tfheModuleVersion-p.d.ts.map +1 -1
- package/_types/wasm/tkms/v0.13.10/kms_lib.d.ts +4 -0
- package/_types/wasm/tkms/v0.13.20-0/kms_lib.d.ts +4 -0
- package/_types/wasm/tkmsModuleVersion-p.d.ts +1 -1
- package/_types/wasm/tkmsModuleVersion-p.d.ts.map +1 -1
- package/core/_version.ts +1 -1
- package/core/actions/base/canDecryptPublicValue.ts +1 -1
- package/core/actions/base/canDecryptPublicValues.ts +1 -1
- package/core/actions/base/{fetchKmsSignedcryptedShares.ts → fetchKmsSigncryptedShares.ts} +16 -16
- package/core/actions/base/index.ts +5 -5
- package/core/actions/base/readKmsSignersContext.ts +2 -1
- package/core/actions/chain/parseSignedDecryptionPermit.ts +2 -2
- package/core/actions/chain/parseTransportKeyPair.ts +2 -1
- package/core/actions/decrypt/{decryptKmsSignedcryptedShares.ts → decryptKmsSigncryptedShares.ts} +12 -9
- package/core/actions/decrypt/decryptValue.ts +4 -1
- package/core/actions/decrypt/decryptValues.ts +4 -1
- package/core/actions/decrypt/decryptValuesFromPairs.ts +4 -1
- package/core/actions/decrypt/generateTransportKeyPair.ts +5 -3
- package/core/actions/decrypt/index.ts +4 -4
- package/core/actions/encrypt/encryptValue.ts +4 -1
- package/core/actions/encrypt/encryptValues.ts +4 -1
- package/core/actions/encrypt/generateZkProof.ts +9 -1
- package/core/actions/host/readFhevmExecutorContractData.ts +8 -8
- package/core/actions/host/readInputVerifierContractData.ts +2 -2
- package/core/actions/host/readKmsVerifierContractData.ts +8 -6
- package/core/actions/host/resolveFhevmConfig.ts +10 -1
- package/core/base/object.ts +38 -0
- package/core/base/semver.ts +231 -0
- package/core/base/uint.ts +33 -4
- package/core/chains/definitions/localTestnet.ts +3 -0
- package/core/chains/definitions/mainnet.ts +1 -0
- package/core/chains/definitions/sepolia.ts +6 -6
- package/core/clients/decorators/base.ts +8 -1
- package/core/clients/decorators/decrypt-p.ts +18 -0
- package/core/clients/decorators/decrypt.ts +10 -15
- package/core/clients/decorators/encrypt-p.ts +12 -7
- package/core/clients/decorators/encrypt.ts +6 -4
- package/core/coprocessor/ZkProof-p.ts +17 -5
- package/core/coprocessor/ZkProofBuilder-p.ts +5 -2
- package/core/coprocessor/encrypt.ts +6 -1
- package/core/errors/RelayerResponseStatusError.ts +14 -2
- package/core/host-contracts/HostContractVersion-p.ts +60 -3
- package/core/host-contracts/KmsSignersContext-p.ts +36 -5
- package/core/host-contracts/abi-fragments/fragments.ts +28 -0
- package/core/host-contracts/canDecryptValuesFromPairs.ts +1 -1
- package/core/host-contracts/checkAllowedForDecryption.ts +3 -3
- package/core/host-contracts/checkDelegation.ts +9 -9
- package/core/host-contracts/checkPersistAllowed.ts +10 -10
- package/core/host-contracts/getAclAddress-p.ts +2 -3
- package/core/host-contracts/getCurrentKmsContextAndEpoch-p.ts +92 -0
- package/core/host-contracts/getCurrentKmsContextId-p.ts +8 -8
- package/core/host-contracts/getFhevmExecutorAddress-p.ts +2 -2
- package/core/host-contracts/getHandleVersion-p.ts +2 -3
- package/core/host-contracts/getHcuLimitAddress-p.ts +2 -3
- package/core/host-contracts/getInputVerifierAddress-p.ts +2 -3
- package/core/host-contracts/getKmsContextSignersAndThreshold-p.ts +7 -9
- package/core/host-contracts/getKmsContextSignersAndThresholdFromExtraData-p.ts +6 -7
- package/core/host-contracts/getSignersForKmsContext-p.ts +6 -8
- package/core/host-contracts/isAllowedForDecryption.ts +6 -6
- package/core/host-contracts/isHandleDelegatedForUserDecryption-p.ts +7 -7
- package/core/host-contracts/isUserDecryptable.ts +3 -3
- package/core/host-contracts/persistAllowed.ts +6 -6
- package/core/host-contracts/readKmsSignersContext-p.ts +131 -41
- package/core/key/FheEncryptionKeyWasm-p.ts +24 -3
- package/core/key/deserializeFheEncryptionKey.ts +8 -1
- package/core/key/fetchFheEncryptionKey.ts +8 -4
- package/core/key/fetchFheEncryptionKeyBytes.ts +4 -2
- package/core/key/serializeFheEncryptionKey.ts +8 -2
- package/core/kms/KmsSigncryptedShares-p.ts +11 -1
- package/core/kms/SignedDecryptionPermit-p.ts +6 -1
- package/core/kms/TransportKeyPair-p.ts +56 -10
- package/core/kms/createKmsUserDecryptEip712.ts +4 -0
- package/core/kms/createKmsUserDecryptEip712V2.ts +159 -0
- package/core/kms/{decryptKmsSignedcryptedShares-p.ts → decryptKmsSigncryptedShares-p.ts} +12 -2
- package/core/kms/decryptValuesFromPairs.ts +6 -4
- package/core/kms/{fetchKmsSignedcryptedShares-p.ts → fetchKmsSigncryptedShares-p.ts} +12 -5
- package/core/kms/kmsExtraData.ts +82 -13
- package/core/kms/kmsUserDecryptEip712V2Types.ts +31 -0
- package/core/kms/publicDecrypt.ts +5 -3
- package/core/modules/decrypt/mock.ts +0 -35
- package/core/modules/decrypt/module/api-p.ts +88 -17
- package/core/modules/decrypt/module/index.ts +37 -34
- package/core/modules/decrypt/module/init-p.ts +60 -28
- package/core/modules/decrypt/types.ts +37 -65
- package/core/modules/encrypt/mock.ts +34 -4
- package/core/modules/encrypt/module/api-p.ts +66 -15
- package/core/modules/encrypt/module/index.ts +5 -3
- package/core/modules/encrypt/module/init-p.ts +99 -40
- package/core/modules/encrypt/types.ts +34 -2
- package/core/modules/relayer/cleartext/fetchDelegatedUserDecrypt.ts +2 -2
- package/core/modules/relayer/cleartext/fetchUserDecrypt.ts +2 -2
- package/core/modules/relayer/module/RelayerAsyncRequest.ts +60 -4
- package/core/modules/relayer/module/fetchFheEncryptionKeySource.ts +9 -1
- package/core/modules/relayer/module/readErrorMessage.ts +56 -0
- package/core/runtime/CoreFhevm-p.ts +247 -22
- package/core/runtime/HyperWasmSolver-p.ts +417 -0
- package/core/runtime/ProtocolVersionResolver-p.ts +463 -0
- package/core/runtime/initFhevmDecryptRuntime-p.ts +1 -1
- package/core/runtime/initFhevmEncryptRuntime-p.ts +1 -1
- package/core/runtime/initFhevmRuntime-p.ts +4 -1
- package/core/runtime/resolveFhevmVersions-p.ts +85 -0
- package/core/runtimeConfig-p.ts +17 -2
- package/core/types/auth.ts +12 -1
- package/core/types/coreFhevmClient.ts +89 -4
- package/core/types/coreFhevmRuntime.ts +3 -18
- package/core/types/fheEncryptionKey.ts +2 -0
- package/core/types/fhevmChain.ts +3 -0
- package/core/types/hostContract.ts +1 -0
- package/core/types/index.ts +1 -1
- package/core/types/kms-p.ts +2 -0
- package/core/types/kms.ts +48 -18
- package/core/types/kmsSignersContext.ts +8 -0
- package/core/types/logger.ts +1 -0
- package/core/types/moduleVersions.ts +35 -0
- package/core/types/tkms-p.ts +3 -0
- package/core/types/wasmAssets.ts +6 -0
- package/core/types/{zkProofBuilder.ts → zkProofBuilder-p.ts} +3 -2
- package/core/utils-p/decrypt/verifyTkmsPublicKey.ts +3 -1
- package/ethers/cleartext/createFhevmCleartextDecryptClient.ts +2 -2
- package/ethers/cleartext/createFhevmCleartextEncryptClient.ts +2 -2
- package/ethers/clients/createFhevmDecryptClient.ts +2 -2
- package/ethers/clients/createFhevmEncryptClient.ts +2 -2
- package/ethers/internal/config.ts +2 -30
- package/package.json +1 -1
- package/viem/cleartext/createFhevmCleartextDecryptClient.ts +2 -2
- package/viem/cleartext/createFhevmCleartextEncryptClient.ts +2 -2
- package/viem/clients/createFhevmDecryptClient.ts +2 -2
- package/viem/clients/createFhevmEncryptClient.ts +2 -2
- package/viem/internal/config.ts +2 -30
- package/wasm/tfhe/v1.5.3/tfhe.d.ts +4 -0
- package/wasm/tfhe/v1.5.3/tfhe.js +8 -0
- package/wasm/tfhe/v1.6.0-dev/tfhe.d.ts +4 -0
- package/wasm/tfhe/v1.6.0-dev/tfhe.js +8 -0
- package/wasm/tfhe/v1.6.1/tfhe.d.ts +4 -0
- package/wasm/tfhe/v1.6.1/tfhe.js +8 -0
- package/wasm/tfheModuleVersion-p.ts +1 -1
- package/wasm/tkms/v0.13.10/kms_lib.d.ts +4 -0
- package/wasm/tkms/v0.13.10/kms_lib.js +8 -0
- package/wasm/tkms/v0.13.20-0/kms_lib.d.ts +4 -0
- package/wasm/tkms/v0.13.20-0/kms_lib.js +8 -0
- package/wasm/tkmsModuleVersion-p.ts +1 -1
- package/wasm/wasmBaseUrl.js +69 -4
- package/_cjs/core/actions/base/fetchKmsSignedcryptedShares.js.map +0 -1
- package/_cjs/core/actions/decrypt/decryptKmsSignedcryptedShares.js +0 -11
- package/_cjs/core/actions/decrypt/decryptKmsSignedcryptedShares.js.map +0 -1
- package/_cjs/core/kms/decryptKmsSignedcryptedShares-p.js.map +0 -1
- package/_cjs/core/kms/fetchKmsSignedcryptedShares-p.js.map +0 -1
- package/_cjs/core/types/fhevmDecryptionKey.js.map +0 -1
- package/_cjs/core/types/fhevmUser.js.map +0 -1
- package/_cjs/core/types/zkProofBuilder.js.map +0 -1
- package/_esm/core/actions/base/fetchKmsSignedcryptedShares.js.map +0 -1
- package/_esm/core/actions/decrypt/decryptKmsSignedcryptedShares.js +0 -9
- package/_esm/core/actions/decrypt/decryptKmsSignedcryptedShares.js.map +0 -1
- package/_esm/core/kms/decryptKmsSignedcryptedShares-p.js.map +0 -1
- package/_esm/core/kms/fetchKmsSignedcryptedShares-p.js.map +0 -1
- package/_esm/core/types/fhevmDecryptionKey.js +0 -2
- package/_esm/core/types/fhevmDecryptionKey.js.map +0 -1
- package/_esm/core/types/fhevmUser.js +0 -2
- package/_esm/core/types/fhevmUser.js.map +0 -1
- package/_esm/core/types/zkProofBuilder.js +0 -2
- package/_esm/core/types/zkProofBuilder.js.map +0 -1
- package/_types/core/actions/base/fetchKmsSignedcryptedShares.d.ts.map +0 -1
- package/_types/core/actions/decrypt/decryptKmsSignedcryptedShares.d.ts.map +0 -1
- package/_types/core/kms/decryptKmsSignedcryptedShares-p.d.ts.map +0 -1
- package/_types/core/kms/fetchKmsSignedcryptedShares-p.d.ts.map +0 -1
- package/_types/core/types/fhevmDecryptionKey.d.ts +0 -4
- package/_types/core/types/fhevmDecryptionKey.d.ts.map +0 -1
- package/_types/core/types/fhevmUser.d.ts +0 -7
- package/_types/core/types/fhevmUser.d.ts.map +0 -1
- package/_types/core/types/zkProofBuilder.d.ts.map +0 -1
- package/core/types/fhevmDecryptionKey.ts +0 -8
- package/core/types/fhevmUser.ts +0 -7
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import type { Fhevm, FhevmBase, FhevmExtension,
|
|
2
|
-
import type {
|
|
1
|
+
import type { Fhevm, FhevmBase, FhevmExtension, WithTkmsVersion } from '../../types/coreFhevmClient.js';
|
|
2
|
+
import type { WithDecrypt } from '../../types/coreFhevmRuntime.js';
|
|
3
3
|
import type { FhevmChain } from '../../types/fhevmChain.js';
|
|
4
4
|
import type { GenerateTransportKeyPairReturnType } from '../../actions/decrypt/generateTransportKeyPair.js';
|
|
5
5
|
import type { DecryptModuleFactory } from '../../modules/decrypt/types.js';
|
|
6
|
-
import {
|
|
7
|
-
import { generateTransportKeyPair } from '../../
|
|
6
|
+
import { assertIsFhevmClientWith } from '../../runtime/CoreFhevm-p.js';
|
|
7
|
+
import { generateTransportKeyPair } from '../../actions/decrypt/generateTransportKeyPair.js';
|
|
8
8
|
import {
|
|
9
9
|
decryptValue,
|
|
10
10
|
type DecryptValueParameters,
|
|
@@ -20,22 +20,24 @@ import {
|
|
|
20
20
|
type DecryptValuesFromPairsParameters,
|
|
21
21
|
type DecryptValuesFromPairsReturnType,
|
|
22
22
|
} from '../../actions/decrypt/decryptValuesFromPairs.js';
|
|
23
|
+
import { _initDecrypt } from './decrypt-p.js';
|
|
23
24
|
|
|
24
25
|
////////////////////////////////////////////////////////////////////////////////
|
|
25
26
|
|
|
26
|
-
|
|
27
|
+
type DecryptActionMethods = {
|
|
27
28
|
readonly decryptValue: (parameters: DecryptValueParameters) => Promise<DecryptValueReturnType>;
|
|
28
29
|
readonly decryptValues: (parameters: DecryptValuesParameters) => Promise<DecryptValuesReturnType>;
|
|
29
|
-
|
|
30
30
|
readonly decryptValuesFromPairs: (
|
|
31
31
|
parameters: DecryptValuesFromPairsParameters,
|
|
32
32
|
) => Promise<DecryptValuesFromPairsReturnType>;
|
|
33
33
|
readonly generateTransportKeyPair: () => Promise<GenerateTransportKeyPairReturnType>;
|
|
34
34
|
};
|
|
35
35
|
|
|
36
|
+
export type DecryptActions = DecryptActionMethods & WithTkmsVersion;
|
|
37
|
+
|
|
36
38
|
////////////////////////////////////////////////////////////////////////////////
|
|
37
39
|
|
|
38
|
-
function _decryptActions(fhevm: Fhevm<FhevmChain, WithDecrypt>):
|
|
40
|
+
function _decryptActions(fhevm: Fhevm<FhevmChain, WithDecrypt>): DecryptActionMethods {
|
|
39
41
|
// Preserve the original action overloads on the decorated client API.
|
|
40
42
|
// Runtime behavior is unchanged: this is a direct pass-through wrapper.
|
|
41
43
|
return {
|
|
@@ -48,13 +50,6 @@ function _decryptActions(fhevm: Fhevm<FhevmChain, WithDecrypt>): DecryptActions
|
|
|
48
50
|
|
|
49
51
|
////////////////////////////////////////////////////////////////////////////////
|
|
50
52
|
|
|
51
|
-
function _initDecrypt(fhevm: FhevmBase<FhevmChain | undefined, FhevmRuntime, OptionalNativeClient>): Promise<void> {
|
|
52
|
-
const f = asFhevmClientWith(fhevm, 'decrypt');
|
|
53
|
-
return f.runtime.decrypt.initTkmsModule();
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
////////////////////////////////////////////////////////////////////////////////
|
|
57
|
-
|
|
58
53
|
export function decryptActionsWithModule(
|
|
59
54
|
fhevm: FhevmBase<FhevmChain>,
|
|
60
55
|
factory: DecryptModuleFactory,
|
|
@@ -62,7 +57,7 @@ export function decryptActionsWithModule(
|
|
|
62
57
|
const runtime = fhevm.runtime.extend(factory);
|
|
63
58
|
assertIsFhevmClientWith(fhevm, 'decrypt');
|
|
64
59
|
return {
|
|
65
|
-
actions: _decryptActions(fhevm),
|
|
60
|
+
actions: _decryptActions(fhevm) as DecryptActions,
|
|
66
61
|
runtime,
|
|
67
62
|
init: _initDecrypt,
|
|
68
63
|
};
|
|
@@ -1,18 +1,23 @@
|
|
|
1
|
-
import type { FhevmBase
|
|
2
|
-
import type { FhevmRuntime } from '../../types/coreFhevmRuntime.js';
|
|
1
|
+
import type { FhevmBase } from '../../types/coreFhevmClient.js';
|
|
3
2
|
import type { FhevmChain } from '../../types/fhevmChain.js';
|
|
4
|
-
import { asFhevmClientWith } from '../../runtime/CoreFhevm-p.js';
|
|
3
|
+
import { asFhevmClientWith, setResolvedTfheVersion } from '../../runtime/CoreFhevm-p.js';
|
|
5
4
|
import { fetchFheEncryptionKeyBytes } from '../../key/fetchFheEncryptionKeyBytes.js';
|
|
5
|
+
import { ensureResolvedProtocolVersion, resolveFhevmTfheVersion } from '../../runtime/resolveFhevmVersions-p.js';
|
|
6
6
|
|
|
7
7
|
////////////////////////////////////////////////////////////////////////////////
|
|
8
8
|
|
|
9
|
-
export async function _initEncrypt(
|
|
10
|
-
fhevm: FhevmBase<FhevmChain | undefined, FhevmRuntime, OptionalNativeClient>,
|
|
11
|
-
): Promise<void> {
|
|
9
|
+
export async function _initEncrypt(fhevm: FhevmBase<FhevmChain>): Promise<void> {
|
|
12
10
|
const f = asFhevmClientWith(fhevm, 'encrypt');
|
|
11
|
+
|
|
12
|
+
await ensureResolvedProtocolVersion(fhevm);
|
|
13
|
+
|
|
14
|
+
const tfheVersion = await resolveFhevmTfheVersion(f);
|
|
15
|
+
|
|
13
16
|
await Promise.all([
|
|
14
17
|
// Prefetch the global FheEncryptionKey in bytes format
|
|
15
18
|
fetchFheEncryptionKeyBytes(f, {}),
|
|
16
|
-
f.runtime.encrypt.initTfheModule(),
|
|
19
|
+
f.runtime.encrypt.initTfheModule({ tfheVersion }),
|
|
17
20
|
]);
|
|
21
|
+
|
|
22
|
+
setResolvedTfheVersion(f, tfheVersion);
|
|
18
23
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Fhevm, FhevmBase, FhevmExtension } from '../../types/coreFhevmClient.js';
|
|
1
|
+
import type { Fhevm, FhevmBase, FhevmExtension, WithTfheVersion } from '../../types/coreFhevmClient.js';
|
|
2
2
|
import type { WithEncrypt } from '../../types/coreFhevmRuntime.js';
|
|
3
3
|
import type { FhevmChain } from '../../types/fhevmChain.js';
|
|
4
4
|
import type { EncryptModuleFactory } from '../../modules/encrypt/types.js';
|
|
@@ -17,14 +17,16 @@ import { _initEncrypt } from './encrypt-p.js';
|
|
|
17
17
|
|
|
18
18
|
////////////////////////////////////////////////////////////////////////////////
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
type EncryptActionMethods = {
|
|
21
21
|
readonly encryptValue: (parameters: EncryptValueParameters) => Promise<EncryptValueReturnType>;
|
|
22
22
|
readonly encryptValues: (parameters: EncryptValuesParameters) => Promise<EncryptValuesReturnType>;
|
|
23
23
|
};
|
|
24
24
|
|
|
25
|
+
export type EncryptActions = EncryptActionMethods & WithTfheVersion;
|
|
26
|
+
|
|
25
27
|
////////////////////////////////////////////////////////////////////////////////
|
|
26
28
|
|
|
27
|
-
function _encryptActions(fhevm: Fhevm<FhevmChain, WithEncrypt>):
|
|
29
|
+
function _encryptActions(fhevm: Fhevm<FhevmChain, WithEncrypt>): EncryptActionMethods {
|
|
28
30
|
return {
|
|
29
31
|
encryptValue: (parameters) => encryptValue(fhevm, parameters),
|
|
30
32
|
encryptValues: (parameters) => encryptValues(fhevm, parameters),
|
|
@@ -40,7 +42,7 @@ export function encryptActionsWithModule(
|
|
|
40
42
|
const runtime = fhevm.runtime.extend(factory);
|
|
41
43
|
assertIsFhevmClientWith(fhevm, 'encrypt');
|
|
42
44
|
return {
|
|
43
|
-
actions: _encryptActions(fhevm),
|
|
45
|
+
actions: _encryptActions(fhevm) as EncryptActions,
|
|
44
46
|
runtime,
|
|
45
47
|
init: _initEncrypt,
|
|
46
48
|
};
|
|
@@ -13,6 +13,7 @@ import type { ErrorMetadataParams } from '../base/errors/ErrorBase.js';
|
|
|
13
13
|
import type { EncryptionBits, FheTypeId } from '../types/fheType.js';
|
|
14
14
|
import type { ParseTFHEProvenCompactCiphertextListModuleFunction } from '../modules/encrypt/types.js';
|
|
15
15
|
import type { InputHandle } from '../types/encryptedTypes-p.js';
|
|
16
|
+
import type { TfheVersion } from '../../wasm/tfhe/TfheApi.js';
|
|
16
17
|
import {
|
|
17
18
|
addressToChecksummedAddress,
|
|
18
19
|
assertIsAddress,
|
|
@@ -230,7 +231,10 @@ export async function toZkProof(
|
|
|
230
231
|
zkProofLike: ZkProofLike,
|
|
231
232
|
extraData: BytesHex,
|
|
232
233
|
options?: {
|
|
233
|
-
readonly zkProofParser?:
|
|
234
|
+
readonly zkProofParser?: {
|
|
235
|
+
readonly parserFn: ParseTFHEProvenCompactCiphertextListModuleFunction;
|
|
236
|
+
readonly tfheVersion: TfheVersion;
|
|
237
|
+
};
|
|
234
238
|
readonly copy?: boolean;
|
|
235
239
|
},
|
|
236
240
|
): Promise<ZkProof> {
|
|
@@ -290,7 +294,10 @@ export async function zkProofToExternalEncryptedValues(
|
|
|
290
294
|
zkProofLike: ZkProofLike,
|
|
291
295
|
options?: {
|
|
292
296
|
readonly version?: number;
|
|
293
|
-
readonly zkProofParser?:
|
|
297
|
+
readonly zkProofParser?: {
|
|
298
|
+
readonly parserFn: ParseTFHEProvenCompactCiphertextListModuleFunction;
|
|
299
|
+
readonly tfheVersion: TfheVersion;
|
|
300
|
+
};
|
|
294
301
|
},
|
|
295
302
|
): Promise<readonly InputHandle[]> {
|
|
296
303
|
if (zkProofLike instanceof ZkProofImpl) {
|
|
@@ -397,7 +404,10 @@ function _zkProofToInputHandles(
|
|
|
397
404
|
async function _getOrParseEncryptionBits(
|
|
398
405
|
encryptionBits: readonly number[] | undefined,
|
|
399
406
|
ciphertextWithZkProof: Uint8Array | string,
|
|
400
|
-
zkProofParser?:
|
|
407
|
+
zkProofParser?: {
|
|
408
|
+
readonly parserFn: ParseTFHEProvenCompactCiphertextListModuleFunction;
|
|
409
|
+
readonly tfheVersion: TfheVersion;
|
|
410
|
+
},
|
|
401
411
|
): Promise<readonly EncryptionBits[]> {
|
|
402
412
|
// Case 1: encryptionBits provided — validate, and verify against parsed if possible
|
|
403
413
|
if (encryptionBits != null) {
|
|
@@ -406,8 +416,9 @@ async function _getOrParseEncryptionBits(
|
|
|
406
416
|
});
|
|
407
417
|
|
|
408
418
|
if (zkProofParser != null) {
|
|
409
|
-
const parsed = await zkProofParser.parseTFHEProvenCompactCiphertextList({
|
|
419
|
+
const parsed = await zkProofParser.parserFn.parseTFHEProvenCompactCiphertextList({
|
|
410
420
|
ciphertextWithZkProof: ciphertextWithZkProof,
|
|
421
|
+
tfheVersion: zkProofParser.tfheVersion,
|
|
411
422
|
});
|
|
412
423
|
_assertEncryptionBitsMatch(parsed.encryptionBits, encryptionBits);
|
|
413
424
|
}
|
|
@@ -417,8 +428,9 @@ async function _getOrParseEncryptionBits(
|
|
|
417
428
|
|
|
418
429
|
// Case 2: encryptionBits not provided — extract if parse function available
|
|
419
430
|
if (zkProofParser != null) {
|
|
420
|
-
const parsed = await zkProofParser.parseTFHEProvenCompactCiphertextList({
|
|
431
|
+
const parsed = await zkProofParser.parserFn.parseTFHEProvenCompactCiphertextList({
|
|
421
432
|
ciphertextWithZkProof: ciphertextWithZkProof,
|
|
433
|
+
tfheVersion: zkProofParser.tfheVersion,
|
|
422
434
|
});
|
|
423
435
|
return parsed.encryptionBits;
|
|
424
436
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Bytes20, Bytes32, BytesHex, ChecksummedAddress, UintNumber } from '../types/primitives.js';
|
|
2
2
|
import type { ZkProof } from '../types/zkProof-p.js';
|
|
3
3
|
import type { EncryptionBits, FheType } from '../types/fheType.js';
|
|
4
|
-
import type { ZkProofBuilder } from '../types/zkProofBuilder.js';
|
|
4
|
+
import type { ZkProofBuilder } from '../types/zkProofBuilder-p.js';
|
|
5
5
|
import type { WithEncrypt } from '../types/coreFhevmRuntime.js';
|
|
6
6
|
import type { FhevmChain } from '../types/fhevmChain.js';
|
|
7
7
|
import type {
|
|
@@ -15,6 +15,7 @@ import type {
|
|
|
15
15
|
BoolValueLike,
|
|
16
16
|
AddressValueLike,
|
|
17
17
|
} from '../types/primitives.js';
|
|
18
|
+
import type { TfheVersion } from '../../wasm/tfhe/TfheApi.js';
|
|
18
19
|
import { assert } from '../base/errors/InternalError.js';
|
|
19
20
|
import { isUint64, uint256ToBytes32 } from '../base/uint.js';
|
|
20
21
|
import { isAddress } from '../base/address.js';
|
|
@@ -30,6 +31,7 @@ import { fetchFheEncryptionKeyWasm } from '../key/fetchFheEncryptionKey.js';
|
|
|
30
31
|
type Context = {
|
|
31
32
|
readonly chain: FhevmChain;
|
|
32
33
|
readonly runtime: WithEncrypt;
|
|
34
|
+
readonly tfheVersion: TfheVersion;
|
|
33
35
|
};
|
|
34
36
|
|
|
35
37
|
////////////////////////////////////////////////////////////////////////////////
|
|
@@ -150,7 +152,7 @@ class ZkProofBuilderImpl implements ZkProofBuilder {
|
|
|
150
152
|
},
|
|
151
153
|
): Promise<ZkProof> {
|
|
152
154
|
// Fetch the FheEncryptionKey (in wasm format) from the global cache.
|
|
153
|
-
const fheEncryptionKeyWasm = await fetchFheEncryptionKeyWasm(context);
|
|
155
|
+
const fheEncryptionKeyWasm = await fetchFheEncryptionKeyWasm(context, {});
|
|
154
156
|
|
|
155
157
|
if (this.#totalBits === 0) {
|
|
156
158
|
throw new ZkProofError({
|
|
@@ -219,6 +221,7 @@ class ZkProofBuilderImpl implements ZkProofBuilder {
|
|
|
219
221
|
fheEncryptionKey: fheEncryptionKeyWasm,
|
|
220
222
|
metaData,
|
|
221
223
|
extraData: asBytesHex(extraData),
|
|
224
|
+
tfheVersion: context.tfheVersion,
|
|
222
225
|
});
|
|
223
226
|
|
|
224
227
|
return toZkProof(
|
|
@@ -3,6 +3,7 @@ import type { FhevmChain } from '../types/fhevmChain.js';
|
|
|
3
3
|
import type { BytesHex, ChecksummedAddress, TypedValue } from '../types/primitives.js';
|
|
4
4
|
import type { RelayerInputProofOptions } from '../types/relayer.js';
|
|
5
5
|
import type { InputHandle } from '../types/encryptedTypes-p.js';
|
|
6
|
+
import type { TfheVersion } from '../../wasm/tfhe/TfheApi.js';
|
|
6
7
|
import { fetchVerifiedInputProof } from './fetchVerifiedInputProof.js';
|
|
7
8
|
import { createZkProof } from './ZkProofBuilder-p.js';
|
|
8
9
|
|
|
@@ -12,6 +13,7 @@ type Context = {
|
|
|
12
13
|
readonly chain: FhevmChain;
|
|
13
14
|
readonly runtime: WithEncrypt;
|
|
14
15
|
readonly client: NonNullable<object>;
|
|
16
|
+
readonly tfheVersion: TfheVersion;
|
|
15
17
|
readonly options: { readonly batchRpcCalls: boolean };
|
|
16
18
|
};
|
|
17
19
|
|
|
@@ -32,7 +34,10 @@ type ReturnType = {
|
|
|
32
34
|
export async function encrypt(context: Context, parameters: Parameters): Promise<ReturnType> {
|
|
33
35
|
const hardCodedExtraData = '0x00' as BytesHex;
|
|
34
36
|
|
|
35
|
-
const zkProof = await createZkProof(
|
|
37
|
+
const zkProof = await createZkProof(
|
|
38
|
+
{ chain: context.chain, runtime: context.runtime, tfheVersion: context.tfheVersion },
|
|
39
|
+
{ ...parameters, extraData: hardCodedExtraData },
|
|
40
|
+
);
|
|
36
41
|
|
|
37
42
|
const inputProof = await fetchVerifiedInputProof(context, {
|
|
38
43
|
zkProof,
|
|
@@ -15,6 +15,12 @@ export type RelayerResponseStatusErrorType = RelayerResponseStatusError & {
|
|
|
15
15
|
export type RelayerResponseStatusErrorParams = Prettify<
|
|
16
16
|
Omit<RelayerResponseErrorBaseParams, 'message' | 'name' | 'details'> & {
|
|
17
17
|
readonly state: RelayerAsyncRequestState;
|
|
18
|
+
/**
|
|
19
|
+
* Optional message surfaced from the response body — e.g. the JSON error a
|
|
20
|
+
* Cloudflare/Kong edge proxy returns on a 403. Appended to the error
|
|
21
|
+
* message and details when present.
|
|
22
|
+
*/
|
|
23
|
+
readonly responseMessage?: string | undefined;
|
|
18
24
|
}
|
|
19
25
|
>;
|
|
20
26
|
|
|
@@ -22,12 +28,18 @@ export type RelayerResponseStatusErrorParams = Prettify<
|
|
|
22
28
|
* The response status is unexpected.
|
|
23
29
|
*/
|
|
24
30
|
export class RelayerResponseStatusError extends RelayerResponseErrorBase {
|
|
25
|
-
constructor(params: RelayerResponseStatusErrorParams) {
|
|
31
|
+
constructor({ responseMessage, ...params }: RelayerResponseStatusErrorParams) {
|
|
26
32
|
super({
|
|
27
33
|
...params,
|
|
28
34
|
name: 'RelayerResponseStatusError',
|
|
29
35
|
message: `${humanReadableOperation(params.operation, true)}: Relayer returned unexpected response status: ${params.status}`,
|
|
30
|
-
|
|
36
|
+
// Surface the relayer/edge message (e.g. a Cloudflare/Kong 403 block) via
|
|
37
|
+
// the `Details:` line when present; otherwise keep the generic
|
|
38
|
+
// explanation. The primary message is unchanged for backward
|
|
39
|
+
// compatibility.
|
|
40
|
+
details:
|
|
41
|
+
responseMessage ??
|
|
42
|
+
`The Relayer server returned an unexpected response status (${params.status}). This status ${params.status} is not part of the expected API contract and may indicate a server configuration issue.`,
|
|
31
43
|
});
|
|
32
44
|
}
|
|
33
45
|
}
|
|
@@ -19,16 +19,34 @@ type Parameters = {
|
|
|
19
19
|
};
|
|
20
20
|
|
|
21
21
|
type ReturnType = HostContractVersion;
|
|
22
|
+
type InvalidateVersionCacheOptions = {
|
|
23
|
+
readonly includeInflight?: boolean | undefined;
|
|
24
|
+
};
|
|
25
|
+
type InvalidateVersionCacheParameters = Parameters & InvalidateVersionCacheOptions;
|
|
22
26
|
|
|
23
27
|
////////////////////////////////////////////////////////////////////////////////
|
|
24
28
|
|
|
25
29
|
const cachedGetVersion = createCachedFetch<Context, Parameters, ReturnType>({
|
|
26
30
|
executeFn: _getVersion,
|
|
27
|
-
cacheKeyFn:
|
|
31
|
+
cacheKeyFn: _getVersionCacheKey,
|
|
28
32
|
// Host contract versions are immutable per deployment, so a long TTL is safe.
|
|
29
33
|
ttlMs: CACHE_TTL_24H,
|
|
30
34
|
});
|
|
31
35
|
|
|
36
|
+
/**
|
|
37
|
+
* Builds the cache key for a host contract version lookup.
|
|
38
|
+
*
|
|
39
|
+
* The runtime UID scopes the entry to one SDK runtime instance, while the
|
|
40
|
+
* address scopes it to one deployed host contract within that runtime.
|
|
41
|
+
*
|
|
42
|
+
* Host-contract addresses are treated as globally unique deployment
|
|
43
|
+
* identifiers across supported chains. If that invariant changes, include the
|
|
44
|
+
* chain id in this key.
|
|
45
|
+
*/
|
|
46
|
+
function _getVersionCacheKey(context: Context, parameters: Parameters): string {
|
|
47
|
+
return `${context.runtime.uid.toLowerCase()}:${parameters.address.toLowerCase()}`;
|
|
48
|
+
}
|
|
49
|
+
|
|
32
50
|
/**
|
|
33
51
|
* Reads the version of a host contract at the given address.
|
|
34
52
|
*
|
|
@@ -46,13 +64,51 @@ const cachedGetVersion = createCachedFetch<Context, Parameters, ReturnType>({
|
|
|
46
64
|
* Use this after a known contract upgrade to ensure all subsequent callers
|
|
47
65
|
* see the updated version.
|
|
48
66
|
*/
|
|
49
|
-
export function
|
|
67
|
+
export function getHostContractVersion(
|
|
50
68
|
context: Context,
|
|
51
69
|
parameters: Parameters & { readonly forceRefresh?: boolean },
|
|
52
70
|
): Promise<ReturnType> {
|
|
53
71
|
return cachedGetVersion.execute(context, parameters);
|
|
54
72
|
}
|
|
55
73
|
|
|
74
|
+
/**
|
|
75
|
+
* Invalidates cached host contract versions.
|
|
76
|
+
*
|
|
77
|
+
* When called with `context` and `address`, only that runtime/address entry is
|
|
78
|
+
* invalidated. When called without arguments, all settled host-version cache
|
|
79
|
+
* entries in the current JS realm are invalidated.
|
|
80
|
+
*
|
|
81
|
+
* In-flight entries are kept by default. Pass `includeInflight: true` to also
|
|
82
|
+
* discard in-flight fetches; existing callers still receive their promises, but
|
|
83
|
+
* those results will no longer be stored in the cache.
|
|
84
|
+
*/
|
|
85
|
+
export function invalidateVersionCache(options?: InvalidateVersionCacheOptions): void;
|
|
86
|
+
export function invalidateVersionCache(context: Context, parameters: InvalidateVersionCacheParameters): void;
|
|
87
|
+
export function invalidateVersionCache(
|
|
88
|
+
contextOrOptions?: Context | InvalidateVersionCacheOptions,
|
|
89
|
+
parameters?: InvalidateVersionCacheParameters,
|
|
90
|
+
): void {
|
|
91
|
+
if (parameters === undefined) {
|
|
92
|
+
const options = contextOrOptions as InvalidateVersionCacheOptions | undefined;
|
|
93
|
+
cachedGetVersion.clear(_makeClearOptions(options));
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
cachedGetVersion.clear({
|
|
98
|
+
key: _getVersionCacheKey(contextOrOptions as Context, parameters),
|
|
99
|
+
..._makeClearOptions(parameters),
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
function _makeClearOptions(
|
|
104
|
+
options: InvalidateVersionCacheOptions | undefined,
|
|
105
|
+
): { readonly includeInflight?: boolean } | undefined {
|
|
106
|
+
if (options?.includeInflight === undefined) {
|
|
107
|
+
return undefined;
|
|
108
|
+
}
|
|
109
|
+
return { includeInflight: options.includeInflight };
|
|
110
|
+
}
|
|
111
|
+
|
|
56
112
|
async function _getVersion(context: Context, parameters: Parameters): Promise<HostContractVersion> {
|
|
57
113
|
const trustedClient = getTrustedClient(context);
|
|
58
114
|
const address = parameters.address;
|
|
@@ -109,7 +165,8 @@ function parseVersion(version: string): HostContractVersion {
|
|
|
109
165
|
contractName !== 'FHEVMExecutor' &&
|
|
110
166
|
contractName !== 'InputVerifier' &&
|
|
111
167
|
contractName !== 'KMSVerifier' &&
|
|
112
|
-
contractName !== 'HCULimit'
|
|
168
|
+
contractName !== 'HCULimit' &&
|
|
169
|
+
contractName !== 'ProtocolConfig'
|
|
113
170
|
) {
|
|
114
171
|
throw new Error(err);
|
|
115
172
|
}
|
|
@@ -7,7 +7,13 @@ import { InvalidTypeError } from '../base/errors/InvalidTypeError.js';
|
|
|
7
7
|
import { addressToChecksummedAddress } from '../base/address.js';
|
|
8
8
|
import { DuplicateSignerError, ThresholdSignerError, UnknownSignerError } from '../errors/SignersError.js';
|
|
9
9
|
import { assertOwnedBy } from '../runtime/CoreFhevmRuntime-p.js';
|
|
10
|
-
import {
|
|
10
|
+
import {
|
|
11
|
+
assertIsKmsExtraData,
|
|
12
|
+
EXTRA_DATA_V0,
|
|
13
|
+
EXTRA_DATA_V1,
|
|
14
|
+
EXTRA_DATA_V2,
|
|
15
|
+
toKmsExtraData,
|
|
16
|
+
} from '../kms/kmsExtraData.js';
|
|
11
17
|
import { assertIsNonEmptyString, ensure0x } from '../base/string.js';
|
|
12
18
|
|
|
13
19
|
////////////////////////////////////////////////////////////////////////////////
|
|
@@ -25,6 +31,7 @@ class KmsSignersContextImpl implements KmsSignersContext {
|
|
|
25
31
|
readonly #owner: WeakRef<FhevmRuntime>;
|
|
26
32
|
readonly #address: ChecksummedAddress;
|
|
27
33
|
readonly #kmsContextId: Uint256BigInt;
|
|
34
|
+
readonly #kmsEpochId: Uint256BigInt;
|
|
28
35
|
readonly #kmsSigners: ChecksummedAddress[];
|
|
29
36
|
readonly #kmsSignersSet: Set<string>;
|
|
30
37
|
readonly #kmsSignerThreshold: Uint8Number;
|
|
@@ -35,6 +42,7 @@ class KmsSignersContextImpl implements KmsSignersContext {
|
|
|
35
42
|
parameters: {
|
|
36
43
|
readonly address: ChecksummedAddress;
|
|
37
44
|
readonly kmsContextId: Uint256BigInt;
|
|
45
|
+
readonly kmsEpochId: Uint256BigInt;
|
|
38
46
|
readonly kmsSigners: ChecksummedAddress[];
|
|
39
47
|
readonly kmsSignerThreshold: Uint8Number;
|
|
40
48
|
},
|
|
@@ -45,6 +53,7 @@ class KmsSignersContextImpl implements KmsSignersContext {
|
|
|
45
53
|
this.#owner = owner;
|
|
46
54
|
this.#address = parameters.address;
|
|
47
55
|
this.#kmsContextId = parameters.kmsContextId;
|
|
56
|
+
this.#kmsEpochId = parameters.kmsEpochId;
|
|
48
57
|
this.#kmsSigners = [...parameters.kmsSigners];
|
|
49
58
|
this.#kmsSignerThreshold = parameters.kmsSignerThreshold;
|
|
50
59
|
this.#kmsSignersSet = new Set(this.#kmsSigners.map((addr) => addr.toLowerCase()));
|
|
@@ -61,6 +70,10 @@ class KmsSignersContextImpl implements KmsSignersContext {
|
|
|
61
70
|
return this.#kmsContextId;
|
|
62
71
|
}
|
|
63
72
|
|
|
73
|
+
public get epochId(): Uint256BigInt {
|
|
74
|
+
return this.#kmsEpochId;
|
|
75
|
+
}
|
|
76
|
+
|
|
64
77
|
public get signers(): ChecksummedAddress[] {
|
|
65
78
|
return this.#kmsSigners;
|
|
66
79
|
}
|
|
@@ -102,16 +115,19 @@ Object.freeze(KmsSignersContextImpl);
|
|
|
102
115
|
export function createKmsSignersContext(
|
|
103
116
|
owner: WeakRef<FhevmRuntime>,
|
|
104
117
|
parameters: {
|
|
105
|
-
readonly
|
|
118
|
+
readonly kmsVerifierAddress: ChecksummedAddress;
|
|
106
119
|
readonly kmsContextId: Uint256BigInt;
|
|
120
|
+
readonly kmsEpochId: Uint256BigInt;
|
|
107
121
|
readonly kmsSigners: readonly ChecksummedAddress[];
|
|
108
122
|
readonly kmsSignerThreshold: Uint8Number;
|
|
109
123
|
},
|
|
110
124
|
): KmsSignersContext {
|
|
111
|
-
const { address, kmsContextId, kmsSigners, kmsSignerThreshold } = parameters;
|
|
125
|
+
const { kmsVerifierAddress: address, kmsContextId, kmsEpochId, kmsSigners, kmsSignerThreshold } = parameters;
|
|
126
|
+
|
|
112
127
|
return new KmsSignersContextImpl(PRIVATE_TOKEN, owner, {
|
|
113
128
|
address: addressToChecksummedAddress(address),
|
|
114
129
|
kmsContextId,
|
|
130
|
+
kmsEpochId,
|
|
115
131
|
kmsSignerThreshold: Number(kmsSignerThreshold) as Uint8Number,
|
|
116
132
|
kmsSigners: kmsSigners.map(addressToChecksummedAddress),
|
|
117
133
|
});
|
|
@@ -121,12 +137,27 @@ export function createKmsSignersContext(
|
|
|
121
137
|
|
|
122
138
|
export function kmsSignersContextToExtraData(kmsSignersContext: KmsSignersContext): BytesHex {
|
|
123
139
|
assertIsKmsSignersContext(kmsSignersContext, {});
|
|
140
|
+
|
|
124
141
|
if (kmsSignersContext.id === 0n) {
|
|
125
|
-
return
|
|
142
|
+
return toKmsExtraData({
|
|
143
|
+
version: EXTRA_DATA_V0,
|
|
144
|
+
kmsContextId: 0n as Uint256BigInt,
|
|
145
|
+
kmsEpochId: 0n as Uint256BigInt,
|
|
146
|
+
});
|
|
126
147
|
}
|
|
148
|
+
|
|
149
|
+
if (kmsSignersContext.epochId === 0n) {
|
|
150
|
+
return toKmsExtraData({
|
|
151
|
+
version: EXTRA_DATA_V1,
|
|
152
|
+
kmsContextId: kmsSignersContext.id,
|
|
153
|
+
kmsEpochId: 0n as Uint256BigInt,
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
|
|
127
157
|
return toKmsExtraData({
|
|
128
|
-
version:
|
|
158
|
+
version: EXTRA_DATA_V2,
|
|
129
159
|
kmsContextId: kmsSignersContext.id,
|
|
160
|
+
kmsEpochId: kmsSignersContext.epochId,
|
|
130
161
|
});
|
|
131
162
|
}
|
|
132
163
|
|
|
@@ -309,6 +309,34 @@ export const getSignersForKmsContextAbi: readonly [
|
|
|
309
309
|
},
|
|
310
310
|
] as const;
|
|
311
311
|
|
|
312
|
+
////////////////////////////////////////////////////////////////////////////////
|
|
313
|
+
// ProtocolConfig.getCurrentKmsContextAndEpoch()
|
|
314
|
+
// Protocol version >= 0.14
|
|
315
|
+
////////////////////////////////////////////////////////////////////////////////
|
|
316
|
+
|
|
317
|
+
export const getCurrentKmsContextAndEpochAbi: readonly [
|
|
318
|
+
Record<string, unknown> & { readonly name: 'getCurrentKmsContextAndEpoch' },
|
|
319
|
+
] = [
|
|
320
|
+
{
|
|
321
|
+
inputs: [],
|
|
322
|
+
name: 'getCurrentKmsContextAndEpoch',
|
|
323
|
+
outputs: [
|
|
324
|
+
{
|
|
325
|
+
internalType: 'uint256',
|
|
326
|
+
name: 'contextId',
|
|
327
|
+
type: 'uint256',
|
|
328
|
+
},
|
|
329
|
+
{
|
|
330
|
+
internalType: 'uint256',
|
|
331
|
+
name: 'epochId',
|
|
332
|
+
type: 'uint256',
|
|
333
|
+
},
|
|
334
|
+
],
|
|
335
|
+
stateMutability: 'view',
|
|
336
|
+
type: 'function',
|
|
337
|
+
},
|
|
338
|
+
] as const;
|
|
339
|
+
|
|
312
340
|
//getSignersForKmsContext
|
|
313
341
|
////////////////////////////////////////////////////////////////////////////////
|
|
314
342
|
// InputVerifier.getCoprocessorSigners()
|
|
@@ -82,7 +82,7 @@ export async function canDecryptValuesFromPairs(context: Context, parameters: Pa
|
|
|
82
82
|
}
|
|
83
83
|
|
|
84
84
|
const details = await isUserDecryptable(context, {
|
|
85
|
-
|
|
85
|
+
aclAddress: context.chain.fhevm.contracts.acl.address as ChecksummedAddress,
|
|
86
86
|
userAddress,
|
|
87
87
|
handleContractPairs,
|
|
88
88
|
});
|
|
@@ -15,21 +15,21 @@ type Context = {
|
|
|
15
15
|
};
|
|
16
16
|
|
|
17
17
|
type Parameters = {
|
|
18
|
-
readonly
|
|
18
|
+
readonly aclAddress: ChecksummedAddress;
|
|
19
19
|
readonly handles: readonly Handle[];
|
|
20
20
|
};
|
|
21
21
|
|
|
22
22
|
////////////////////////////////////////////////////////////////////////////////
|
|
23
23
|
|
|
24
24
|
export async function checkAllowedForDecryption(context: Context, parameters: Parameters): Promise<void> {
|
|
25
|
-
const { handles } = parameters;
|
|
25
|
+
const { aclAddress, handles } = parameters;
|
|
26
26
|
|
|
27
27
|
const results = await isAllowedForDecryption(context, parameters);
|
|
28
28
|
|
|
29
29
|
const failedHandles = handles.filter((_, i) => results[i] !== true).map((h) => h.bytes32Hex);
|
|
30
30
|
if (failedHandles.length > 0) {
|
|
31
31
|
throw new AclPublicDecryptionError({
|
|
32
|
-
contractAddress:
|
|
32
|
+
contractAddress: aclAddress,
|
|
33
33
|
handles: failedHandles,
|
|
34
34
|
});
|
|
35
35
|
}
|
|
@@ -15,7 +15,7 @@ type Context = {
|
|
|
15
15
|
};
|
|
16
16
|
|
|
17
17
|
type Parameters = {
|
|
18
|
-
readonly
|
|
18
|
+
readonly aclAddress: ChecksummedAddress;
|
|
19
19
|
readonly delegator: ChecksummedAddress;
|
|
20
20
|
readonly delegate: ChecksummedAddress;
|
|
21
21
|
readonly handleContractPairs: ReadonlyArray<{
|
|
@@ -27,7 +27,7 @@ type Parameters = {
|
|
|
27
27
|
////////////////////////////////////////////////////////////////////////////////
|
|
28
28
|
|
|
29
29
|
export async function checkDelegation(context: Context, parameters: Parameters): Promise<void> {
|
|
30
|
-
const {
|
|
30
|
+
const { aclAddress, delegator, delegate, handleContractPairs } = parameters;
|
|
31
31
|
|
|
32
32
|
if (handleContractPairs.length === 0) {
|
|
33
33
|
throw new Error('checkDelegation requires at least one (handle, contractAddress) pair');
|
|
@@ -41,7 +41,7 @@ export async function checkDelegation(context: Context, parameters: Parameters):
|
|
|
41
41
|
// 1. Verify rule: delegator !== delegate
|
|
42
42
|
if (delegator.toLowerCase() === delegate.toLowerCase()) {
|
|
43
43
|
throw new AclUserDecryptionError({
|
|
44
|
-
contractAddress:
|
|
44
|
+
contractAddress: aclAddress,
|
|
45
45
|
message: `delegator ${delegator} cannot be equal to delegate`,
|
|
46
46
|
});
|
|
47
47
|
}
|
|
@@ -49,13 +49,13 @@ export async function checkDelegation(context: Context, parameters: Parameters):
|
|
|
49
49
|
// 2. Verify rule: delegate !== WILDCARD_CONTRACT
|
|
50
50
|
if (delegate.toLowerCase() === WILDCARD_DELEGATION_ADDRESS.toLowerCase()) {
|
|
51
51
|
throw new AclUserDecryptionError({
|
|
52
|
-
contractAddress:
|
|
52
|
+
contractAddress: aclAddress,
|
|
53
53
|
message: `delegate cannot be equal to wildcard contract address`,
|
|
54
54
|
});
|
|
55
55
|
}
|
|
56
56
|
if (delegator.toLowerCase() === WILDCARD_DELEGATION_ADDRESS.toLowerCase()) {
|
|
57
57
|
throw new AclUserDecryptionError({
|
|
58
|
-
contractAddress:
|
|
58
|
+
contractAddress: aclAddress,
|
|
59
59
|
message: `delegator cannot be equal to wildcard contract address`,
|
|
60
60
|
});
|
|
61
61
|
}
|
|
@@ -64,13 +64,13 @@ export async function checkDelegation(context: Context, parameters: Parameters):
|
|
|
64
64
|
for (const pair of handleContractPairs) {
|
|
65
65
|
if (delegator.toLowerCase() === pair.contractAddress.toLowerCase()) {
|
|
66
66
|
throw new AclUserDecryptionError({
|
|
67
|
-
contractAddress:
|
|
67
|
+
contractAddress: aclAddress,
|
|
68
68
|
message: `delegator ${delegator} cannot be equal to contractAddress`,
|
|
69
69
|
});
|
|
70
70
|
}
|
|
71
71
|
if (delegate.toLowerCase() === pair.contractAddress.toLowerCase()) {
|
|
72
72
|
throw new AclUserDecryptionError({
|
|
73
|
-
contractAddress:
|
|
73
|
+
contractAddress: aclAddress,
|
|
74
74
|
message: `delegate ${delegate} cannot be equal to contractAddress`,
|
|
75
75
|
});
|
|
76
76
|
}
|
|
@@ -98,7 +98,7 @@ export async function checkDelegation(context: Context, parameters: Parameters):
|
|
|
98
98
|
|
|
99
99
|
// 5. Single batched RPC call for all unique checks
|
|
100
100
|
const allResults = await isHandleDelegatedForUserDecryption(context, {
|
|
101
|
-
|
|
101
|
+
aclAddress,
|
|
102
102
|
delegator,
|
|
103
103
|
delegate,
|
|
104
104
|
pairs: allChecks,
|
|
@@ -121,7 +121,7 @@ export async function checkDelegation(context: Context, parameters: Parameters):
|
|
|
121
121
|
const key = getKey(pair.contractAddress, pair.handle.bytes32Hex);
|
|
122
122
|
if (resultMap.get(key) !== true) {
|
|
123
123
|
throw new AclUserDecryptionError({
|
|
124
|
-
contractAddress:
|
|
124
|
+
contractAddress: aclAddress,
|
|
125
125
|
message: `Delegate ${delegate} is not delegated by ${delegator} to user decrypt handle ${pair.handle.bytes32Hex} on contract ${pair.contractAddress}!`,
|
|
126
126
|
});
|
|
127
127
|
}
|