@lifi/widget
Version:
LI.FI Widget for cross-chain bridging and swapping. It will drive your multi-chain strategy and attract new users from everywhere.
102 lines (101 loc) • 3.32 kB
TypeScript
import type { ChainId, ChainType, Process, Route } from '@lifi/sdk';
import type { DefaultValues } from '../stores/form/types.js';
import type { SettingsProps } from '../stores/settings/types.js';
import type { NavigationRouteType } from '../utils/navigationRoutes.js';
import type { TokenAmount } from './token.js';
export declare enum WidgetEvent {
RouteExecutionStarted = "routeExecutionStarted",
RouteExecutionUpdated = "routeExecutionUpdated",
RouteExecutionCompleted = "routeExecutionCompleted",
RouteExecutionFailed = "routeExecutionFailed",
RouteHighValueLoss = "routeHighValueLoss",
RouteSelected = "routeSelected",
AvailableRoutes = "availableRoutes",
ContactSupport = "contactSupport",
SourceChainTokenSelected = "sourceChainTokenSelected",
DestinationChainTokenSelected = "destinationChainTokenSelected",
SendToWalletToggled = "sendToWalletToggled",
/**
* @deprecated Use `PageEntered` event instead.
*/
ReviewTransactionPageEntered = "reviewTransactionPageEntered",
/**
* @deprecated use useWalletManagementEvents hook.
*/
WalletConnected = "walletConnected",
WidgetExpanded = "widgetExpanded",
PageEntered = "pageEntered",
FormFieldChanged = "formFieldChanged",
SettingUpdated = "settingUpdated",
TokenSearch = "tokenSearch",
LowAddressActivityConfirmed = "lowAddressActivityConfirmed"
}
export type WidgetEvents = {
routeExecutionStarted: Route;
routeExecutionUpdated: RouteExecutionUpdate;
routeExecutionCompleted: Route;
routeExecutionFailed: RouteExecutionUpdate;
routeHighValueLoss: RouteHighValueLossUpdate;
routeSelected: RouteSelected;
availableRoutes: Route[];
contactSupport: ContactSupport;
sourceChainTokenSelected: ChainTokenSelected;
destinationChainTokenSelected: ChainTokenSelected;
sendToWalletToggled: boolean;
formFieldChanged: FormFieldChanged;
reviewTransactionPageEntered?: Route;
walletConnected: WalletConnected;
widgetExpanded: boolean;
pageEntered: NavigationRouteType;
settingUpdated: SettingUpdated;
tokenSearch: TokenSearch;
[WidgetEvent.LowAddressActivityConfirmed]: {
address: string;
chainId: number;
};
};
export type ContactSupport = {
supportId?: string;
};
export type RouteHighValueLossUpdate = {
fromAmountUSD: number;
toAmountUSD: number;
gasCostUSD?: number;
feeCostUSD?: number;
valueLoss: number;
};
export type RouteExecutionUpdate = {
route: Route;
process: Process;
};
export type RouteSelected = {
route: Route;
routes: Route[];
};
export type TokenSearch = {
value: string;
tokens: TokenAmount[];
};
export type ChainTokenSelected = {
chainId: ChainId;
tokenAddress: string;
};
export type WalletConnected = {
address?: string;
chainId?: number;
chainType?: ChainType;
};
export type FormFieldChanged = {
[K in keyof DefaultValues]: {
fieldName: K;
newValue: DefaultValues[K];
oldValue: DefaultValues[K];
};
}[keyof DefaultValues];
export type SettingUpdated<K extends keyof SettingsProps = keyof SettingsProps> = {
setting: K;
newValue: SettingsProps[K];
oldValue: SettingsProps[K];
newSettings: SettingsProps;
oldSettings: SettingsProps;
};