UNPKG

sui-svelte-wallet-kit

Version:

Svelte 5 wallet kit for Sui: connect wallets, manage accounts, SuiNS, balance, sign transactions/messages

67 lines (66 loc) 2.45 kB
/** * SignerResolver * Resolves public keys from signer definitions */ import type { PublicKey } from '@mysten/sui/cryptography'; import { type MultisigSigner, type ResolvedSigner, type ResolverContext, type SignerKeyType } from './MultisigTypes.js'; /** * Parse base64 public key string to PublicKey object * Supports ed25519, secp256k1, secp256r1, and zklogin key types */ export declare function parsePublicKey(publicKeyBase64: string, keyType: SignerKeyType): PublicKey; /** * Generate a unique ID for a signer */ export declare function generateSignerId(signer: MultisigSigner, index: number): string; /** * SignerResolver class * Handles resolution of signer definitions to actual public keys */ export declare class SignerResolver { /** * Check if a signer can be resolved with current context */ canResolve(signer: MultisigSigner, context: ResolverContext): boolean; /** * Resolve a signer definition to a ResolvedSigner */ resolve(signer: MultisigSigner, index: number, context: ResolverContext): ResolvedSigner; /** * Resolve passkey signer * Uses saved address from signer config if available, falls back to context */ private resolvePasskeySigner; /** * Resolve zkLogin signer * Uses saved address from signer config if available, falls back to context. * zkLogin signers are considered "resolved" if we have an address, * because the actual signing will be handled by the zkLogin wallet. */ private resolveZkLoginSigner; /** * Resolve wallet signer by address * Note: Wallet signers are considered "resolved" if the wallet is connected, * even without public key - the signing will work via wallet adapter. */ private resolveWalletSigner; /** * Resolve public key signer (inline key) * Note: Public key signers are always considered "resolved" because they have * the public key inline - we have all info needed to derive multisig address. * Wallet connection is only checked when signing. */ private resolvePublicKeySigner; /** * Infer signer type from public key */ private inferTypeFromPublicKey; /** * Resolve all signers from a list */ resolveAll(signers: MultisigSigner[], context: ResolverContext): ResolvedSigner[]; } /** * Create a SignerResolver instance */ export declare function createSignerResolver(): SignerResolver;