@aptos-labs/ts-sdk
Version:
Aptos TypeScript SDK
45 lines • 2.33 kB
TypeScript
/**
* Registry for AnyPublicKey and AnySignature variant handlers.
*
* This allows keyless (and future) variants to register themselves at runtime,
* so that singleKey.ts does not need a compile-time dependency on keyless/poseidon.
* When the keyless module is imported, it registers its deserializers and instanceof
* checkers here. If keyless is never imported, these variants remain unregistered
* and deserialization will throw a clear error.
*/
import type { Deserializer } from "../../bcs/deserializer.js";
import type { PublicKey } from "./publicKey.js";
import type { Signature } from "./signature.js";
export type PublicKeyDeserializer = (deserializer: Deserializer) => PublicKey;
export type SignatureDeserializer = (deserializer: Deserializer) => Signature;
export type VariantDetector = (key: PublicKey) => number | undefined;
export type SignatureVariantDetector = (sig: Signature) => number | undefined;
/**
* Register a deserializer for a public key variant.
* Called by modules that define new AnyPublicKey variants (e.g., keyless).
*/
export declare function registerPublicKeyVariant(variant: number, deserializer: PublicKeyDeserializer, detector: VariantDetector): void;
/**
* Register a deserializer for a signature variant.
* Called by modules that define new AnySignature variants (e.g., keyless).
*/
export declare function registerSignatureVariant(variant: number, deserializer: SignatureDeserializer, detector: SignatureVariantDetector): void;
/**
* Look up a registered public key deserializer by variant index.
*/
export declare function getPublicKeyDeserializer(variant: number): PublicKeyDeserializer | undefined;
/**
* Look up a registered signature deserializer by variant index.
*/
export declare function getSignatureDeserializer(variant: number): SignatureDeserializer | undefined;
/**
* Detect the variant for a public key using registered detectors.
* Returns the variant number, or undefined if no detector matches.
*/
export declare function detectPublicKeyVariant(key: PublicKey): number | undefined;
/**
* Detect the variant for a signature using registered detectors.
* Returns the variant number, or undefined if no detector matches.
*/
export declare function detectSignatureVariant(sig: Signature): number | undefined;
//# sourceMappingURL=anyKeyRegistry.d.ts.map