@aptos-labs/ts-sdk
Version:
Aptos TypeScript SDK
35 lines (29 loc) • 1.48 kB
text/typescript
// 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),
);