@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.
105 lines (104 loc) • 3.39 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 {
AvailableRoutes = "availableRoutes",
ChainPinned = "chainPinned",
ContactSupport = "contactSupport",
DestinationChainTokenSelected = "destinationChainTokenSelected",
FormFieldChanged = "formFieldChanged",
LowAddressActivityConfirmed = "lowAddressActivityConfirmed",
PageEntered = "pageEntered",
/**
* @deprecated Use `PageEntered` event instead.
*/
ReviewTransactionPageEntered = "reviewTransactionPageEntered",
RouteExecutionCompleted = "routeExecutionCompleted",
RouteExecutionFailed = "routeExecutionFailed",
RouteExecutionStarted = "routeExecutionStarted",
RouteExecutionUpdated = "routeExecutionUpdated",
RouteHighValueLoss = "routeHighValueLoss",
RouteSelected = "routeSelected",
SendToWalletToggled = "sendToWalletToggled",
SettingUpdated = "settingUpdated",
SourceChainTokenSelected = "sourceChainTokenSelected",
TokenSearch = "tokenSearch",
WidgetExpanded = "widgetExpanded"
}
export type WidgetEvents = {
availableRoutes: Route[];
chainPinned: ChainPinned;
contactSupport: ContactSupport;
destinationChainTokenSelected: ChainTokenSelected;
formFieldChanged: FormFieldChanged;
lowAddressActivityConfirmed: LowAddressActivityConfirmed;
pageEntered: NavigationRouteType;
reviewTransactionPageEntered?: Route;
routeExecutionCompleted: Route;
routeExecutionFailed: RouteExecutionUpdate;
routeExecutionStarted: Route;
routeExecutionUpdated: RouteExecutionUpdate;
routeHighValueLoss: RouteHighValueLossUpdate;
routeSelected: RouteSelected;
sendToWalletToggled: boolean;
settingUpdated: SettingUpdated;
sourceChainTokenSelected: ChainTokenSelected;
tokenSearch: TokenSearch;
walletConnected: WalletConnected;
widgetExpanded: boolean;
};
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;
};
export type ChainPinned = {
chainId: number;
pinned: boolean;
};
export type LowAddressActivityConfirmed = {
address: string;
chainId: number;
};