@reown/appkit-controllers
Version:
#### 🔗 [Website](https://reown.com/appkit)
57 lines (56 loc) • 4.04 kB
TypeScript
import type { CaipAddress, ChainNamespace } from '@reown/appkit-common';
import type { Balance } from '@reown/appkit-common';
import type { AccountType, AccountTypeMap, ConnectedWalletInfo, PreferredAccountTypes, SocialProvider, User } from '../utils/TypeUtil.js';
export interface AccountControllerState {
currentTab: number;
caipAddress?: CaipAddress;
user?: User;
address?: string;
addressLabels: Map<string, string>;
allAccounts: AccountType[];
balance?: string;
balanceSymbol?: string;
balanceLoading?: boolean;
profileName?: string | null;
profileImage?: string | null;
addressExplorerUrl?: string;
smartAccountDeployed?: boolean;
socialProvider?: SocialProvider;
tokenBalance?: Balance[];
shouldUpdateToAddress?: string;
connectedWalletInfo?: ConnectedWalletInfo;
preferredAccountTypes?: PreferredAccountTypes;
socialWindow?: Window;
farcasterUrl?: string;
status?: 'reconnecting' | 'connected' | 'disconnected' | 'connecting';
lastRetry?: number;
}
export declare const AccountController: {
state: AccountControllerState;
replaceState(newState: AccountControllerState | undefined): void;
subscribe(callback: (val: AccountControllerState) => void): () => void;
subscribeKey<K extends keyof AccountControllerState>(property: K, callback: (val: AccountControllerState[K]) => void, chain?: ChainNamespace): () => void;
setStatus(status: AccountControllerState["status"], chain: ChainNamespace | undefined): void;
getCaipAddress(chain: ChainNamespace | undefined): `eip155:${string}:${string}` | `eip155:${number}:${string}` | `solana:${string}:${string}` | `solana:${number}:${string}` | `polkadot:${string}:${string}` | `polkadot:${number}:${string}` | `bip122:${string}:${string}` | `bip122:${number}:${string}` | `cosmos:${string}:${string}` | `cosmos:${number}:${string}` | undefined;
setCaipAddress(caipAddress: AccountControllerState["caipAddress"], chain: ChainNamespace | undefined): void;
setBalance(balance: AccountControllerState["balance"], balanceSymbol: AccountControllerState["balanceSymbol"], chain: ChainNamespace): void;
setProfileName(profileName: AccountControllerState["profileName"], chain: ChainNamespace): void;
setProfileImage(profileImage: AccountControllerState["profileImage"], chain?: ChainNamespace): void;
setUser(user: AccountControllerState["user"], chain: ChainNamespace | undefined): void;
setAddressExplorerUrl(explorerUrl: AccountControllerState["addressExplorerUrl"], chain: ChainNamespace | undefined): void;
setSmartAccountDeployed(isDeployed: boolean, chain: ChainNamespace | undefined): void;
setCurrentTab(currentTab: AccountControllerState["currentTab"]): void;
setTokenBalance(tokenBalance: AccountControllerState["tokenBalance"], chain: ChainNamespace | undefined): void;
setShouldUpdateToAddress(address: string, chain: ChainNamespace | undefined): void;
setAllAccounts<N extends ChainNamespace>(accounts: AccountTypeMap[N][], namespace: N): void;
addAddressLabel(address: string, label: string, chain: ChainNamespace | undefined): void;
removeAddressLabel(address: string, chain: ChainNamespace | undefined): void;
setConnectedWalletInfo(connectedWalletInfo: AccountControllerState["connectedWalletInfo"], chain: ChainNamespace): void;
setPreferredAccountType(preferredAccountType: PreferredAccountTypes[ChainNamespace], chain: ChainNamespace): void;
setPreferredAccountTypes(preferredAccountTypes: PreferredAccountTypes): void;
setSocialProvider(socialProvider: AccountControllerState["socialProvider"], chain: ChainNamespace | undefined): void;
setSocialWindow(socialWindow: AccountControllerState["socialWindow"], chain: ChainNamespace | undefined): void;
setFarcasterUrl(farcasterUrl: AccountControllerState["farcasterUrl"], chain: ChainNamespace | undefined): void;
fetchTokenBalance(onError?: (error: unknown) => void): Promise<Balance[]>;
resetAccount(chain: ChainNamespace): void;
};