@luffalab/luffa-evm-sdk
Version:
luffa evm ts sdk
53 lines (50 loc) • 1.66 kB
text/typescript
import { IInitData, AccountInfo, NetworkInfo } from '../types.mjs';
interface IMetaData {
gameId: string;
userId: string;
walletAddress: string;
}
interface IMessageData {
uuid: string;
methodName: string;
from?: string | null;
metadata: IMetaData;
initData?: IInitData;
data: any;
}
interface IResponseMessageData {
uuid: string;
status: string;
data: any;
methodName: string;
errMsg?: string;
}
interface IRequestData {
initData?: IInitData;
method: string;
params: any;
}
declare enum EvmSDKEvent {
CONNECT = "connect",
GETACCOUNT = "getAccount",
DISCONNECT = "disconnect",
ACCOUNT_CHANGE = "accountChange",
ACCOUNTS_CHANGE = "accountsChanged",
NETWORK_CHANGE = "luffa_switchChain",
CHAIN_CHANGED = "chainChanged"
}
type EvmSDKEventType = (typeof EvmSDKEvent)[keyof typeof EvmSDKEvent];
interface EvmSDKEventsMap {
[EvmSDKEvent.CONNECT]: string[];
[EvmSDKEvent.DISCONNECT]: void;
[EvmSDKEvent.ACCOUNT_CHANGE]: AccountInfo;
[EvmSDKEvent.ACCOUNTS_CHANGE]: string[];
[EvmSDKEvent.GETACCOUNT]: AccountInfo[];
[EvmSDKEvent.NETWORK_CHANGE]: NetworkInfo;
[EvmSDKEvent.CHAIN_CHANGED]: string;
}
type EvmSDKEventPayload<T extends EvmSDKEventType> = T extends keyof EvmSDKEventsMap ? EvmSDKEventsMap[T] : undefined;
type EvmSDKEventListenersType = {
[K in EvmSDKEventType]?: Array<(payload: EvmSDKEventPayload<K>) => void>;
};
export { EvmSDKEvent, type EvmSDKEventListenersType, type EvmSDKEventPayload, type EvmSDKEventType, type EvmSDKEventsMap, type IMessageData, type IMetaData, type IRequestData, type IResponseMessageData };