starknetkit
Version:
<!-- logo --> <p align="center"> <img width='300' src="https://starknetkit-website-git-blo-1541-argentlabs.vercel.app/starknetKit-logo.svg"> </p>
67 lines (65 loc) • 2.72 kB
TypeScript
import { default as EventEmitter } from 'eventemitter3';
import { AccountInterface, ProviderInterface, ProviderOptions } from 'starknet';
import { RequestFnCall, RpcMessage, RpcTypeToMessageMap, StarknetWindowObject } from '@starknet-io/types-js';
/** Connector icons, as base64 encoded svg. */
export type ConnectorIcons = StarknetWindowObject["icon"];
/** Connector data. */
export type ConnectorData = {
/** Connector account. */
account?: string;
/** Connector network. */
chainId?: bigint;
};
/** Connector events. */
export interface BaseConnectorEvents {
/** Emitted when account or network changes. */
change(data: ConnectorData): void;
/** Emitted when connection is established. */
connect(data: ConnectorData): void;
/** Emitted when connection is lost. */
disconnect(): void;
}
interface ConnectorEvents extends BaseConnectorEvents {
/** Emitted when `shouldEmit` is true, used for StarknetReactWrapper */
connectionStatus?(s: "init" | "success" | "fail" | "fallback"): void;
}
export type ConnectArgs = {
chainIdHint?: bigint;
onlyQRCode?: boolean;
};
export declare abstract class Connector extends EventEmitter<ConnectorEvents> {
/** Unique connector id. */
abstract get id(): string;
/** Connector name. */
abstract get name(): string;
/** Connector icons. */
abstract get icon(): ConnectorIcons;
/** Whether connector is available for use */
abstract available(): boolean;
/** Whether connector is already authorized */
abstract ready(): Promise<boolean>;
/** Connect wallet. */
abstract connect(params?: ConnectArgs): Promise<ConnectorData>;
/** Disconnect wallet. */
abstract disconnect(): Promise<void>;
/** Get current account silently. Return null if the account is not authorized */
abstract account(provider: ProviderOptions | ProviderInterface): Promise<AccountInterface>;
/** Get current chain id. */
abstract chainId(): Promise<bigint>;
/** Create request call to wallet */
abstract request<T extends RpcMessage["type"]>(call: RequestFnCall<T>): Promise<RpcTypeToMessageMap[T]["result"]>;
/** Handle starknet-react type compatibility */
eventNames(): (keyof BaseConnectorEvents)[];
}
export declare abstract class StarknetkitConnector extends Connector {
/** Connector StarknetWindowObject */
abstract get wallet(): StarknetWindowObject;
}
export declare abstract class StarknetkitCompoundConnector {
readonly isCompoundConnector = true;
abstract connector: StarknetkitConnector;
abstract fallbackConnector: StarknetkitConnector | null;
abstract get name(): string;
abstract get icon(): ConnectorIcons;
}
export {};