UNPKG

sui-svelte-wallet-kit

Version:

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

99 lines (98 loc) 2.68 kB
/** * MultisigService * Handles multisig wallet operations including address derivation and signature collection */ import { MultiSigPublicKey } from '@mysten/sui/multisig'; import { type MultisigConfig, type SignerConfig, type SignerStatus, type MultisigAccountInfo } from './types.js'; /** * MultisigService class for multisig wallet operations */ export declare class MultisigService { private config; private multiSigPublicKey; constructor(config: MultisigConfig); /** * Validate multisig configuration */ private validateConfig; /** * Validate individual signer configuration */ private validateSigner; /** * Create MultiSigPublicKey from config */ private createMultiSigPublicKey; /** * Get PublicKey object for a signer */ private getPublicKeyForSigner; /** * Get the multisig address */ getAddress(): string; /** * Get the MultiSigPublicKey instance */ getMultiSigPublicKey(): MultiSigPublicKey; /** * Get current configuration */ getConfig(): MultisigConfig; /** * Get account info */ getAccountInfo(): MultisigAccountInfo; /** * Get total weight of all signers */ getTotalWeight(): number; /** * Get signer by ID */ getSigner(id: string): SignerConfig | undefined; /** * Get all signers */ getSigners(): SignerConfig[]; /** * Combine partial signatures into a multisig signature */ combineSignatures(signatures: string[]): string; /** * Verify if collected signatures meet threshold */ verifyThreshold(signerIds: string[]): boolean; /** * Get initial signer statuses */ getInitialSignerStatuses(): SignerStatus[]; /** * Update configuration (creates new MultiSigPublicKey) * Returns the new address */ updateConfig(newConfig: MultisigConfig): string; /** * Add a signer to the configuration * Returns the new address */ addSigner(signer: SignerConfig): string; /** * Remove a signer from the configuration * Returns the new address */ removeSigner(signerId: string): string; /** * Update threshold * Returns the new address (address changes when threshold changes) */ updateThreshold(newThreshold: number): string; } /** * Create a MultisigService instance */ export declare function createMultisigService(config: MultisigConfig): MultisigService; /** * Derive multisig address from config without creating full service */ export declare function deriveMultisigAddress(config: MultisigConfig): string;