-
Notifications
You must be signed in to change notification settings - Fork 0
/
models.ts
85 lines (79 loc) · 1.76 KB
/
models.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
interface InfraConfigurations {
element?: Element;
}
export interface AppConfigurations {
debug: boolean;
dodoBaseUrl: string;
cGeckoBaseUrl: string;
targetId: string;
}
export type Configurations = InfraConfigurations & AppConfigurations;
export interface INetwork {
id: number;
chainId: string;
nameNet: string;
name: string;
rpc: string;
symbol: string;
explorer: string;
}
export interface DodoResponse {
status: number;
data: {
resAmount: string;
resPricePerToToken: string;
resPricePerFromToken: string;
priceImpact: string;
targetApproveAddr: string;
to: string;
data: string;
}
}
export interface DodoRequest {
fromTokenAddress: string;
fromTokenDecimals: number;
toTokenAddress: string;
toTokenDecimals: number;
fromAmount: string;
slippage: number;
userAddr: string;
chainId: number;
rpc: string;
deadLine?: number;
source?: string;
}
export interface DodoApi {
getDodoRoute: (params: DodoRequest) => Promise<DodoResponse>;
}
export interface INetworkWallet {
chainId: string;
blockExplorerUrls?: string[];
chainName?: string;
iconUrls?: string[];
nativeCurrency?: {
name: string;
symbol: string;
decimals: number;
};
rpcUrls?: string[];
}
export type IRequestParams = Array<INetworkWallet>
interface IToken {
name: string,
symbol: string,
address: string,
decimals: number
}
interface RParams {
targetApprove: string;
proxyAddress: string;
requestData: string;
}
export interface TradeState {
tokenFrom: IToken,
tokenTo: IToken,
amountFrom: string;
amountTo: string;
dodoRequest: DodoRequest;
tradeRequest: RParams;
}