UNPKG

@aelf-react/core

Version:

Please visit the [parent](https://github.com/mason-hz/aelf-react) [aelf-react](https://github.com/mason-hz/aelf-react) [repository](https://github.com/mason-hz/aelf-react) for documentation and details on this packge.

60 lines (59 loc) 1.84 kB
import { AElfAddress, AElfDappBridge, PublicKey } from '@aelf-react/types'; import type { ReactNode, Dispatch } from 'react'; export declare enum Actions { ACTIVATE = "ACTIVATE", DEACTIVATE = "DEACTIVATE" } export declare type AelfNode = { rpcUrl: string; chainId: string; }; /** * @param children - A React subtree that needs access to the context. * @param appName - App name. * @param nodes - node object. @example `nodes = {AELF: {rpcUrl:'xxx', chainId:"AELF"}, tDVV: {rpcUrl:'xxx', chainId:"tDVV"}}`. * @see https://github.com/mason-hz/aelf-react/blob/dev/example/src/index.tsx#:~:text=%3CAElfReactProvider,/AElfReactProvider%3E */ export interface AElfReactProviderProps { children: ReactNode; appName: string; nodes?: { [key: string]: AelfNode; }; } export interface AElfContextState { name?: string; chainId?: string; account?: AElfAddress; defaultAElfBridge?: AElfDappBridge; aelfBridges?: { [key: string]: AElfDappBridge; }; nodes?: AElfReactProviderProps['nodes']; pubKey?: string; publicKey?: PublicKey; isActive: boolean; } export interface AElfContextType extends AElfContextState { /** * The activate connection can optionally pass in a new node * @param nodes - @see AElfReactProviderProps.nodes */ activate: (nodes?: AElfReactProviderProps['nodes']) => Promise<AElfContextState['aelfBridges']>; deactivate: () => Promise<true>; connectEagerly: (nodes?: AElfReactProviderProps['nodes']) => Promise<true>; } export declare type ReducerAction = { type: Actions; payload?: any; }; export declare type NightELFListener = { type: string; detail?: { address?: string; }; }; export interface AElfContextDefine { state: AElfContextState; dispatch: Dispatch<ReducerAction>; }