UNPKG

@aptos-labs/ts-sdk

Version:
59 lines • 2.01 kB
// Copyright © Aptos Foundation // SPDX-License-Identifier: Apache-2.0 const publicKeyDeserializers = new Map(); const signatureDeserializers = new Map(); const publicKeyVariantDetectors = []; const signatureVariantDetectors = []; /** * Register a deserializer for a public key variant. * Called by modules that define new AnyPublicKey variants (e.g., keyless). */ export function registerPublicKeyVariant(variant, deserializer, detector) { publicKeyDeserializers.set(variant, deserializer); publicKeyVariantDetectors.push(detector); } /** * Register a deserializer for a signature variant. * Called by modules that define new AnySignature variants (e.g., keyless). */ export function registerSignatureVariant(variant, deserializer, detector) { signatureDeserializers.set(variant, deserializer); signatureVariantDetectors.push(detector); } /** * Look up a registered public key deserializer by variant index. */ export function getPublicKeyDeserializer(variant) { return publicKeyDeserializers.get(variant); } /** * Look up a registered signature deserializer by variant index. */ export function getSignatureDeserializer(variant) { return signatureDeserializers.get(variant); } /** * Detect the variant for a public key using registered detectors. * Returns the variant number, or undefined if no detector matches. */ export function detectPublicKeyVariant(key) { for (const detector of publicKeyVariantDetectors) { const variant = detector(key); if (variant !== undefined) return variant; } return undefined; } /** * Detect the variant for a signature using registered detectors. * Returns the variant number, or undefined if no detector matches. */ export function detectSignatureVariant(sig) { for (const detector of signatureVariantDetectors) { const variant = detector(sig); if (variant !== undefined) return variant; } return undefined; } //# sourceMappingURL=anyKeyRegistry.js.map