// Copyright © Aptos Foundation // SPDX-License-Identifier: Apache-2.0 /** * Registers keyless public key and signature variants with the AnyKey registry. * This file is imported by modules that need keyless support, ensuring * the keyless deserializers are available without requiring singleKey.ts * to have a compile-time dependency on keyless/poseidon. */ import { AnyPublicKeyVariant, AnySignatureVariant } from "../../types/index.js"; import { registerPublicKeyVariant, registerSignatureVariant } from "./anyKeyRegistry.js"; import { KeylessPublicKey, KeylessSignature } from "./keyless.js"; import { FederatedKeylessPublicKey } from "./federatedKeyless.js"; import type { PublicKey } from "./publicKey.js"; import type { Signature } from "./signature.js"; registerPublicKeyVariant( AnyPublicKeyVariant.Keyless, (deserializer) => KeylessPublicKey.deserialize(deserializer), (key: PublicKey) => (key instanceof KeylessPublicKey ? AnyPublicKeyVariant.Keyless : undefined), ); registerPublicKeyVariant( AnyPublicKeyVariant.FederatedKeyless, (deserializer) => FederatedKeylessPublicKey.deserialize(deserializer), (key: PublicKey) => (key instanceof FederatedKeylessPublicKey ? AnyPublicKeyVariant.FederatedKeyless : undefined), ); registerSignatureVariant( AnySignatureVariant.Keyless, (deserializer) => KeylessSignature.deserialize(deserializer), (sig: Signature) => (sig instanceof KeylessSignature ? AnySignatureVariant.Keyless : undefined), );