@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
TypeScript
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>;
}