UNPKG

@ponziland/account

Version:

Account management library for Starknet with wallet modal and connection state

60 lines (59 loc) 2.15 kB
import { type AccountConfig } from '../consts.js'; import { Provider as StarknetProvider } from 'starknet'; import { WALLET_API } from '@starknet-io/types-js'; import { type AccountInterface } from 'starknet'; export declare const WalletWeights: Record<string, number>; export type AccountProvider = { connect(): Promise<any>; setupSession(): Promise<StoredSession | void>; loadSession(storage: StoredSession): Promise<void>; getAccount(): AccountInterface | undefined; getWalletAccount(): AccountInterface | undefined; supportsSession(): boolean; disconnect(): Promise<void>; }; export type ConnectedEvent = { type: 'connected'; provider: AccountProvider; }; export type DisconnectedEvent = { type: 'disconnected'; }; export type ChainChangedEvent = { type: 'chain_change'; chainId: string; }; export type Event = ConnectedEvent | DisconnectedEvent | ChainChangedEvent; export type EventListener = (event: Event) => void; export declare function Provider(wallet: WALLET_API.StarknetWindowObject): Promise<AccountProvider | null>; export interface StoredSession { address: string; privateKey: string; expiry: Date; } export declare class AccountManager { private _provider?; private _walletObject?; private _setup; private _setupPromise; private _listeners; constructor(); listen(listener: EventListener): () => void; wait(): Promise<AccountManager>; private setup; getStarknetProvider(): StarknetProvider; selectAndLogin(providerId: string): Promise<void>; switchChain(chainId: string): Promise<void>; getProviderName(): string | undefined; getChainId(): Promise<string>; disconnect(): void; getProvider(): AccountProvider | undefined; setupSession(): Promise<void>; getAvailableWallets(): WALLET_API.StarknetWindowObject[]; promptForLogin(): Promise<void>; private getSessionFromStorage; private onWalletChanged; private onNetworkChanged; } export declare function setupAccount(config?: Partial<AccountConfig>): Promise<AccountManager>; export declare function useAccount(): AccountManager | null;