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
TypeScript
/**
* 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;