@fhevm/sdk 1.1.0-alpha.3 → 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/auth.js +8 -6
- package/_cjs/core/base/auth.js.map +1 -1
- package/_cjs/core/base/errors/InvalidUrlError.js +17 -0
- package/_cjs/core/base/errors/InvalidUrlError.js.map +1 -0
- package/_cjs/core/base/fetch.js +37 -0
- package/_cjs/core/base/fetch.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/string.js +10 -0
- package/_cjs/core/base/string.js.map +1 -1
- 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 +44 -11
- package/_cjs/core/modules/relayer/module/RelayerAsyncRequest.js.map +1 -1
- package/_cjs/core/modules/relayer/module/fetchCoprocessorSignatures.js +5 -2
- package/_cjs/core/modules/relayer/module/fetchCoprocessorSignatures.js.map +1 -1
- package/_cjs/core/modules/relayer/module/fetchDelegatedUserDecrypt.js +5 -1
- package/_cjs/core/modules/relayer/module/fetchDelegatedUserDecrypt.js.map +1 -1
- package/_cjs/core/modules/relayer/module/fetchFheEncryptionKeySource.js +15 -6
- package/_cjs/core/modules/relayer/module/fetchFheEncryptionKeySource.js.map +1 -1
- package/_cjs/core/modules/relayer/module/fetchPublicDecrypt.js +5 -1
- package/_cjs/core/modules/relayer/module/fetchPublicDecrypt.js.map +1 -1
- package/_cjs/core/modules/relayer/module/fetchUserDecrypt.js +5 -1
- package/_cjs/core/modules/relayer/module/fetchUserDecrypt.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/modules/relayer/module/relayerUrl.js +33 -27
- package/_cjs/core/modules/relayer/module/relayerUrl.js.map +1 -1
- 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/auth.js +8 -6
- package/_esm/core/base/auth.js.map +1 -1
- package/_esm/core/base/errors/InvalidUrlError.js +13 -0
- package/_esm/core/base/errors/InvalidUrlError.js.map +1 -0
- package/_esm/core/base/fetch.js +96 -0
- package/_esm/core/base/fetch.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/string.js +9 -0
- package/_esm/core/base/string.js.map +1 -1
- 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 +74 -17
- package/_esm/core/modules/relayer/module/RelayerAsyncRequest.js.map +1 -1
- package/_esm/core/modules/relayer/module/fetchCoprocessorSignatures.js +5 -2
- package/_esm/core/modules/relayer/module/fetchCoprocessorSignatures.js.map +1 -1
- package/_esm/core/modules/relayer/module/fetchDelegatedUserDecrypt.js +6 -2
- package/_esm/core/modules/relayer/module/fetchDelegatedUserDecrypt.js.map +1 -1
- package/_esm/core/modules/relayer/module/fetchFheEncryptionKeySource.js +20 -8
- package/_esm/core/modules/relayer/module/fetchFheEncryptionKeySource.js.map +1 -1
- package/_esm/core/modules/relayer/module/fetchPublicDecrypt.js +6 -2
- package/_esm/core/modules/relayer/module/fetchPublicDecrypt.js.map +1 -1
- package/_esm/core/modules/relayer/module/fetchUserDecrypt.js +6 -2
- package/_esm/core/modules/relayer/module/fetchUserDecrypt.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/modules/relayer/module/relayerUrl.js +55 -27
- package/_esm/core/modules/relayer/module/relayerUrl.js.map +1 -1
- 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/auth.d.ts.map +1 -1
- package/_types/core/base/errors/InvalidUrlError.d.ts +14 -0
- package/_types/core/base/errors/InvalidUrlError.d.ts.map +1 -0
- package/_types/core/base/fetch.d.ts +57 -0
- package/_types/core/base/fetch.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/string.d.ts +1 -0
- package/_types/core/base/string.d.ts.map +1 -1
- 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 +19 -0
- package/_types/core/modules/relayer/module/RelayerAsyncRequest.d.ts.map +1 -1
- package/_types/core/modules/relayer/module/fetchCoprocessorSignatures.d.ts.map +1 -1
- package/_types/core/modules/relayer/module/fetchDelegatedUserDecrypt.d.ts.map +1 -1
- package/_types/core/modules/relayer/module/fetchFheEncryptionKeySource.d.ts.map +1 -1
- package/_types/core/modules/relayer/module/fetchPublicDecrypt.d.ts.map +1 -1
- package/_types/core/modules/relayer/module/fetchUserDecrypt.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/modules/relayer/module/relayerUrl.d.ts +24 -5
- package/_types/core/modules/relayer/module/relayerUrl.d.ts.map +1 -1
- 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/relayer.d.ts +1 -0
- package/_types/core/types/relayer.d.ts.map +1 -1
- 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/auth.ts +8 -6
- package/core/base/errors/InvalidUrlError.ts +24 -0
- package/core/base/fetch.ts +102 -0
- package/core/base/object.ts +38 -0
- package/core/base/semver.ts +231 -0
- package/core/base/string.ts +10 -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 +79 -21
- package/core/modules/relayer/module/fetchCoprocessorSignatures.ts +6 -2
- package/core/modules/relayer/module/fetchDelegatedUserDecrypt.ts +7 -2
- package/core/modules/relayer/module/fetchFheEncryptionKeySource.ts +21 -8
- package/core/modules/relayer/module/fetchPublicDecrypt.ts +7 -2
- package/core/modules/relayer/module/fetchUserDecrypt.ts +7 -2
- package/core/modules/relayer/module/readErrorMessage.ts +56 -0
- package/core/modules/relayer/module/relayerUrl.ts +66 -27
- 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/relayer.ts +1 -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,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
|
}
|
|
@@ -14,7 +14,7 @@ type Context = {
|
|
|
14
14
|
};
|
|
15
15
|
|
|
16
16
|
type Parameters = {
|
|
17
|
-
readonly
|
|
17
|
+
readonly aclAddress: ChecksummedAddress;
|
|
18
18
|
readonly userAddress: ChecksummedAddress;
|
|
19
19
|
readonly handleContractPairs: ReadonlyArray<{
|
|
20
20
|
readonly handle: Handle;
|
|
@@ -25,7 +25,7 @@ type Parameters = {
|
|
|
25
25
|
////////////////////////////////////////////////////////////////////////////////
|
|
26
26
|
|
|
27
27
|
export async function checkPersistAllowed(context: Context, parameters: Parameters): Promise<void> {
|
|
28
|
-
const {
|
|
28
|
+
const { aclAddress, userAddress, handleContractPairs } = parameters;
|
|
29
29
|
|
|
30
30
|
if (handleContractPairs.length === 0) {
|
|
31
31
|
throw new Error('checkPersistAllowed requires at least one (handle, contractAddress) pair');
|
|
@@ -38,9 +38,9 @@ export async function checkPersistAllowed(context: Context, parameters: Paramete
|
|
|
38
38
|
|
|
39
39
|
// 1. Verify rule: userAddress !== contractAddress
|
|
40
40
|
for (const pair of handleContractPairs) {
|
|
41
|
-
if (
|
|
41
|
+
if (userAddress.toLowerCase() === pair.contractAddress.toLowerCase()) {
|
|
42
42
|
throw new AclUserDecryptionError({
|
|
43
|
-
contractAddress:
|
|
43
|
+
contractAddress: aclAddress,
|
|
44
44
|
message: `userAddress ${userAddress} should not be equal to contractAddress when requesting user decryption!`,
|
|
45
45
|
});
|
|
46
46
|
}
|
|
@@ -52,12 +52,12 @@ export async function checkPersistAllowed(context: Context, parameters: Paramete
|
|
|
52
52
|
|
|
53
53
|
for (const pair of handleContractPairs) {
|
|
54
54
|
// User check (runtime defensive check, use lowercase)
|
|
55
|
-
const userKey = getKey(
|
|
55
|
+
const userKey = getKey(userAddress, pair.handle.bytes32Hex);
|
|
56
56
|
if (!seenKeys.has(userKey)) {
|
|
57
57
|
seenKeys.add(userKey);
|
|
58
58
|
allChecks.push({
|
|
59
59
|
handle: pair.handle,
|
|
60
|
-
account:
|
|
60
|
+
account: userAddress,
|
|
61
61
|
});
|
|
62
62
|
}
|
|
63
63
|
// Contract check (runtime defensive check, use lowercase)
|
|
@@ -77,7 +77,7 @@ export async function checkPersistAllowed(context: Context, parameters: Paramete
|
|
|
77
77
|
|
|
78
78
|
// 3. Single batched RPC call for all unique checks
|
|
79
79
|
const allResults = await persistAllowed(context, {
|
|
80
|
-
|
|
80
|
+
aclAddress,
|
|
81
81
|
pairs: allChecks,
|
|
82
82
|
});
|
|
83
83
|
|
|
@@ -98,8 +98,8 @@ export async function checkPersistAllowed(context: Context, parameters: Paramete
|
|
|
98
98
|
const userKey = getKey(parameters.userAddress, pair.handle.bytes32Hex);
|
|
99
99
|
if (resultMap.get(userKey) !== true) {
|
|
100
100
|
throw new AclUserDecryptionError({
|
|
101
|
-
contractAddress:
|
|
102
|
-
message: `User ${
|
|
101
|
+
contractAddress: aclAddress,
|
|
102
|
+
message: `User ${userAddress} is not authorized to decrypt handle ${pair.handle.bytes32Hex}!`,
|
|
103
103
|
});
|
|
104
104
|
}
|
|
105
105
|
|
|
@@ -107,7 +107,7 @@ export async function checkPersistAllowed(context: Context, parameters: Paramete
|
|
|
107
107
|
const contractKey = getKey(pair.contractAddress, pair.handle.bytes32Hex);
|
|
108
108
|
if (resultMap.get(contractKey) !== true) {
|
|
109
109
|
throw new AclUserDecryptionError({
|
|
110
|
-
contractAddress:
|
|
110
|
+
contractAddress: aclAddress,
|
|
111
111
|
message: `Dapp contract ${pair.contractAddress} is not authorized to user decrypt handle ${pair.handle.bytes32Hex}!`,
|
|
112
112
|
});
|
|
113
113
|
}
|
|
@@ -12,7 +12,7 @@ type Context = {
|
|
|
12
12
|
};
|
|
13
13
|
|
|
14
14
|
type Parameters = {
|
|
15
|
-
readonly
|
|
15
|
+
readonly fhevmExecutorAddress: ChecksummedAddress;
|
|
16
16
|
};
|
|
17
17
|
|
|
18
18
|
type ReturnType = ChecksummedAddress;
|
|
@@ -26,10 +26,9 @@ type ReturnType = ChecksummedAddress;
|
|
|
26
26
|
*/
|
|
27
27
|
export async function getAclAddress(context: Context, parameters: Parameters): Promise<ReturnType> {
|
|
28
28
|
const trustedClient = getTrustedClient(context);
|
|
29
|
-
const address = parameters.address;
|
|
30
29
|
|
|
31
30
|
const res = await context.runtime.ethereum.readContract(trustedClient, {
|
|
32
|
-
address:
|
|
31
|
+
address: parameters.fhevmExecutorAddress,
|
|
33
32
|
abi: getACLAddressAbi,
|
|
34
33
|
args: [],
|
|
35
34
|
functionName: getACLAddressAbi[0].name,
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import type { ChecksummedAddress, Uint256BigInt } from '../types/primitives.js';
|
|
2
|
+
import type { FhevmRuntime } from '../types/coreFhevmRuntime.js';
|
|
3
|
+
import { getCurrentKmsContextAndEpochAbi } from './abi-fragments/fragments.js';
|
|
4
|
+
import { getTrustedClient } from '../runtime/CoreFhevm-p.js';
|
|
5
|
+
import { getHostContractVersion, isVersionStrictlyBefore } from './HostContractVersion-p.js';
|
|
6
|
+
import { assertIsUint256 } from '../base/uint.js';
|
|
7
|
+
import { CACHE_TTL_24H, createCachedFetch } from '../base/cachedFetch.js';
|
|
8
|
+
|
|
9
|
+
////////////////////////////////////////////////////////////////////////////////
|
|
10
|
+
|
|
11
|
+
type Context = {
|
|
12
|
+
readonly runtime: FhevmRuntime;
|
|
13
|
+
readonly client: NonNullable<object>;
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
type Parameters = {
|
|
17
|
+
readonly protocolConfigAddress: ChecksummedAddress;
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
type ReturnType = { readonly contextId: Uint256BigInt; readonly epochId: Uint256BigInt };
|
|
21
|
+
|
|
22
|
+
////////////////////////////////////////////////////////////////////////////////
|
|
23
|
+
|
|
24
|
+
const cachedGetCurrentKmsContextAndEpoch = createCachedFetch<Context, Parameters, ReturnType>({
|
|
25
|
+
executeFn: _getCurrentKmsContextAndEpoch,
|
|
26
|
+
cacheKeyFn: (context, params) => `${context.runtime.uid.toLowerCase()}:${params.protocolConfigAddress.toLowerCase()}`,
|
|
27
|
+
// Host contract values are immutable per deployment, so a long TTL is safe.
|
|
28
|
+
ttlMs: CACHE_TTL_24H,
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Reads the current KMS context ID and epoch ID from a ProtocolConfig contract.
|
|
33
|
+
*
|
|
34
|
+
* Requires ProtocolConfig >= v0.2.0 (protocol v0.14.0).
|
|
35
|
+
*
|
|
36
|
+
* Results are cached per (runtime, address) with a 24-hour TTL.
|
|
37
|
+
* Concurrent callers share a single in-flight RPC request (deduplication).
|
|
38
|
+
*
|
|
39
|
+
* @param parameters.address - The checksummed address of the ProtocolConfig contract.
|
|
40
|
+
* @param parameters.forceRefresh - If `true`, invalidates the cached entry and
|
|
41
|
+
* makes a fresh RPC call. The new result is stored back in the cache.
|
|
42
|
+
*/
|
|
43
|
+
export function getCurrentKmsContextAndEpoch(
|
|
44
|
+
context: Context,
|
|
45
|
+
parameters: Parameters & { readonly forceRefresh?: boolean | undefined },
|
|
46
|
+
): Promise<ReturnType> {
|
|
47
|
+
return cachedGetCurrentKmsContextAndEpoch.execute(context, parameters);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
async function _getCurrentKmsContextAndEpoch(context: Context, parameters: Parameters): Promise<ReturnType> {
|
|
51
|
+
const protocolConfigVersion = await getHostContractVersion(context, { address: parameters.protocolConfigAddress });
|
|
52
|
+
|
|
53
|
+
// getCurrentKmsContextAndEpoch requires ProtocolConfig >= v0.2.0 (protocol v0.14.0)
|
|
54
|
+
if (isVersionStrictlyBefore(protocolConfigVersion, { major: 0, minor: 2 })) {
|
|
55
|
+
throw new Error(
|
|
56
|
+
'ProtocolConfig.getCurrentKmsContextAndEpoch() requires ProtocolConfig >= v0.2.0 (protocol v0.14.0)',
|
|
57
|
+
);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
const trustedClient = getTrustedClient(context);
|
|
61
|
+
|
|
62
|
+
const res = await context.runtime.ethereum.readContract(trustedClient, {
|
|
63
|
+
address: parameters.protocolConfigAddress,
|
|
64
|
+
abi: getCurrentKmsContextAndEpochAbi,
|
|
65
|
+
args: [],
|
|
66
|
+
functionName: getCurrentKmsContextAndEpochAbi[0].name,
|
|
67
|
+
});
|
|
68
|
+
|
|
69
|
+
if (!Array.isArray(res) || res.length < 2) {
|
|
70
|
+
throw new Error(`Invalid getCurrentKmsContextAndEpoch result.`);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
const unknownContextId = res[0] as unknown;
|
|
74
|
+
const unknownEpochId = res[1] as unknown;
|
|
75
|
+
|
|
76
|
+
try {
|
|
77
|
+
assertIsUint256(unknownContextId, {});
|
|
78
|
+
} catch (e) {
|
|
79
|
+
throw new Error(`Invalid KMS Context Id.`, { cause: e });
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
try {
|
|
83
|
+
assertIsUint256(unknownEpochId, {});
|
|
84
|
+
} catch (e) {
|
|
85
|
+
throw new Error(`Invalid KMS Epoch Id.`, { cause: e });
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
return Object.freeze({
|
|
89
|
+
contextId: BigInt(unknownContextId) as Uint256BigInt,
|
|
90
|
+
epochId: BigInt(unknownEpochId) as Uint256BigInt,
|
|
91
|
+
});
|
|
92
|
+
}
|