chaingate
Version:
Multi-chain cryptocurrency SDK for TypeScript — unified API for Bitcoin, Ethereum, Litecoin, Dogecoin, Bitcoin Cash, Polygon, Arbitrum, and any EVM-compatible chain. Create wallets, query balances, send transactions, and manage tokens and NFTs across UTXO
63 lines (62 loc) • 2.24 kB
TypeScript
import type { DerivationIndexEntry } from './SigningWallet/HDWallet/HDWallet';
/** All supported wallet type identifiers. */
export declare const WALLET_TYPES: readonly ["phrase", "seed", "xpriv", "privateKey", "xpub", "publicKey"];
/** Union of all wallet type string literals. */
export type WalletType = (typeof WALLET_TYPES)[number];
/** Wallet types that support encryption. */
export declare const SECRET_WALLET_TYPES: readonly ["phrase", "seed", "xpriv", "privateKey"];
/** Union of secret (signing) wallet type string literals. */
export type SecretWalletType = (typeof SECRET_WALLET_TYPES)[number];
interface EncryptedFields {
ciphertext: string;
iv: string;
salt: string;
}
interface HDRestoreFields {
masterPublicKey?: string;
derivationIndex?: DerivationIndexEntry[];
}
/** Serialized form of a {@link PhraseWallet}. */
export type PhraseWalletSerialized = ({
type: 'phrase';
phrase: string;
} & HDRestoreFields) | ({
type: 'phrase';
} & EncryptedFields & HDRestoreFields);
/** Serialized form of a {@link SeedWallet}. */
export type SeedWalletSerialized = ({
type: 'seed';
seed: string;
} & HDRestoreFields) | ({
type: 'seed';
} & EncryptedFields & HDRestoreFields);
/** Serialized form of an {@link XprivWallet}. */
export type XprivWalletSerialized = ({
type: 'xpriv';
xpriv: string;
} & HDRestoreFields) | ({
type: 'xpriv';
} & EncryptedFields & HDRestoreFields);
/** Serialized form of a {@link PrivateKeyWallet}. */
export type PrivateKeyWalletSerialized = {
type: 'privateKey';
privateKey: string;
publicKey?: string;
} | ({
type: 'privateKey';
} & EncryptedFields & {
publicKey?: string;
});
/** Serialized form of an {@link XpubWallet}. */
export interface XpubWalletSerialized {
type: 'xpub';
xpub: string;
}
/** Serialized form of a {@link PublicKeyWallet}. */
export interface PublicKeyWalletSerialized {
type: 'publicKey';
publicKey: string;
}
/** Union of all serialized wallet shapes. Validate with {@link isValidSerialized}. */
export type WalletSerialized = PhraseWalletSerialized | SeedWalletSerialized | XprivWalletSerialized | PrivateKeyWalletSerialized | XpubWalletSerialized | PublicKeyWalletSerialized;
export {};