@lifi/types 11.0.0-beta.1 → 11.0.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +27 -5
- package/package.json +22 -74
- package/{dist/cjs → src/_cjs}/api.js +1 -17
- package/src/_cjs/api.js.map +1 -0
- package/src/_cjs/bridges.js +3 -0
- package/src/_cjs/bridges.js.map +1 -0
- package/{dist/cjs → src/_cjs}/chains/Chain.js +2 -2
- package/src/_cjs/chains/Chain.js.map +1 -0
- package/src/_cjs/chains/EVMChain.js +3 -0
- package/src/_cjs/chains/EVMChain.js.map +1 -0
- package/src/_cjs/chains/SolanaChain.js +3 -0
- package/src/_cjs/chains/SolanaChain.js.map +1 -0
- package/{dist/cjs → src/_cjs/chains}/base.js +4 -68
- package/src/_cjs/chains/base.js.map +1 -0
- package/src/_cjs/chains/index.js +8 -0
- package/src/_cjs/chains/index.js.map +1 -0
- package/{dist/cjs/apiErrors.js → src/_cjs/errors.js} +2 -2
- package/src/_cjs/errors.js.map +1 -0
- package/src/_cjs/exchanges.js +3 -0
- package/src/_cjs/exchanges.js.map +1 -0
- package/src/_cjs/index.js +12 -0
- package/src/_cjs/index.js.map +1 -0
- package/src/_cjs/package.json +1 -0
- package/{dist/cjs → src/_cjs}/quests.js +1 -0
- package/src/_cjs/quests.js.map +1 -0
- package/{dist/cjs → src/_cjs}/step.js +1 -1
- package/src/_cjs/step.js.map +1 -0
- package/src/_cjs/tokens/base.js +63 -0
- package/src/_cjs/tokens/base.js.map +1 -0
- package/src/_cjs/tokens/index.js +6 -0
- package/src/_cjs/tokens/index.js.map +1 -0
- package/{dist/cjs/chains/SolanaChain.js → src/_cjs/tokens/token.js} +1 -0
- package/src/_cjs/tokens/token.js.map +1 -0
- package/{dist → src/_esm}/api.js +1 -0
- package/src/_esm/api.js.map +1 -0
- package/src/_esm/bridges.js +2 -0
- package/src/_esm/bridges.js.map +1 -0
- package/{dist → src/_esm}/chains/Chain.js +3 -0
- package/src/_esm/chains/Chain.js.map +1 -0
- package/src/_esm/chains/EVMChain.js +2 -0
- package/src/_esm/chains/EVMChain.js.map +1 -0
- package/src/_esm/chains/SolanaChain.js +2 -0
- package/src/_esm/chains/SolanaChain.js.map +1 -0
- package/{dist → src/_esm/chains}/base.js +1 -63
- package/src/_esm/chains/base.js.map +1 -0
- package/src/_esm/chains/index.js +5 -0
- package/src/_esm/chains/index.js.map +1 -0
- package/{dist/apiErrors.js → src/_esm/errors.js} +1 -0
- package/src/_esm/errors.js.map +1 -0
- package/src/_esm/exchanges.js +2 -0
- package/src/_esm/exchanges.js.map +1 -0
- package/src/_esm/index.js +9 -0
- package/src/_esm/index.js.map +1 -0
- package/src/_esm/package.json +1 -0
- package/src/_esm/quests.js +2 -0
- package/src/_esm/quests.js.map +1 -0
- package/{dist → src/_esm}/step.js +1 -0
- package/src/_esm/step.js.map +1 -0
- package/src/_esm/tokens/base.js +64 -0
- package/src/_esm/tokens/base.js.map +1 -0
- package/src/_esm/tokens/index.js +3 -0
- package/src/_esm/tokens/index.js.map +1 -0
- package/src/_esm/tokens/token.js +3 -0
- package/src/_esm/tokens/token.js.map +1 -0
- package/{dist → src/_types}/api.d.ts +32 -18
- package/src/_types/api.d.ts.map +1 -0
- package/src/_types/bridges.d.ts +29 -0
- package/src/_types/bridges.d.ts.map +1 -0
- package/{dist → src/_types}/chains/Chain.d.ts +3 -1
- package/src/_types/chains/Chain.d.ts.map +1 -0
- package/{dist/cjs → src/_types}/chains/EVMChain.d.ts +2 -2
- package/src/_types/chains/EVMChain.d.ts.map +1 -0
- package/{dist/cjs → src/_types}/chains/SolanaChain.d.ts +3 -2
- package/src/_types/chains/SolanaChain.d.ts.map +1 -0
- package/src/_types/chains/base.d.ts +125 -0
- package/src/_types/chains/base.d.ts.map +1 -0
- package/src/_types/chains/index.d.ts +5 -0
- package/src/_types/chains/index.d.ts.map +1 -0
- package/{dist/apiErrors.d.ts → src/_types/errors.d.ts} +1 -9
- package/src/_types/errors.d.ts.map +1 -0
- package/src/_types/exchanges.d.ts +25 -0
- package/src/_types/exchanges.d.ts.map +1 -0
- package/src/_types/index.d.ts +9 -0
- package/src/_types/index.d.ts.map +1 -0
- package/{dist/cjs → src/_types}/quests.d.ts +1 -0
- package/src/_types/quests.d.ts.map +1 -0
- package/{dist → src/_types}/step.d.ts +12 -12
- package/src/_types/step.d.ts.map +1 -0
- package/src/_types/tokens/base.d.ts +59 -0
- package/src/_types/tokens/base.d.ts.map +1 -0
- package/src/_types/tokens/index.d.ts +3 -0
- package/src/_types/tokens/index.d.ts.map +1 -0
- package/src/_types/tokens/token.d.ts +30 -0
- package/src/_types/tokens/token.d.ts.map +1 -0
- package/src/api.ts +515 -0
- package/src/bridges.ts +30 -0
- package/src/chains/Chain.ts +20 -0
- package/src/chains/EVMChain.ts +25 -0
- package/src/chains/SolanaChain.ts +8 -0
- package/src/chains/base.ts +129 -0
- package/src/chains/index.ts +4 -0
- package/src/errors.ts +15 -0
- package/src/exchanges.ts +27 -0
- package/src/index.ts +8 -0
- package/{dist/quests.d.ts → src/quests.ts} +21 -15
- package/src/step.ts +192 -0
- package/src/tokens/base.ts +66 -0
- package/src/tokens/index.ts +2 -0
- package/src/tokens/token.ts +34 -0
- package/dist/base.d.ts +0 -231
- package/dist/bridges.d.ts +0 -34
- package/dist/bridges.js +0 -167
- package/dist/chains/EVMChain.d.ts +0 -19
- package/dist/chains/EVMChain.js +0 -4
- package/dist/chains/SolanaChain.d.ts +0 -7
- package/dist/chains/SolanaChain.js +0 -1
- package/dist/chains/chain.utils.d.ts +0 -4
- package/dist/chains/chain.utils.js +0 -21
- package/dist/chains/index.d.ts +0 -5
- package/dist/chains/index.js +0 -5
- package/dist/chains/supported.chains.d.ts +0 -5
- package/dist/chains/supported.chains.js +0 -1208
- package/dist/cjs/api.d.ts +0 -375
- package/dist/cjs/apiErrors.d.ts +0 -23
- package/dist/cjs/base.d.ts +0 -231
- package/dist/cjs/bridges.d.ts +0 -34
- package/dist/cjs/bridges.js +0 -170
- package/dist/cjs/chains/Chain.d.ts +0 -15
- package/dist/cjs/chains/EVMChain.js +0 -8
- package/dist/cjs/chains/chain.utils.d.ts +0 -4
- package/dist/cjs/chains/chain.utils.js +0 -26
- package/dist/cjs/chains/index.d.ts +0 -5
- package/dist/cjs/chains/index.js +0 -21
- package/dist/cjs/chains/supported.chains.d.ts +0 -5
- package/dist/cjs/chains/supported.chains.js +0 -1211
- package/dist/cjs/coins.d.ts +0 -9
- package/dist/cjs/coins.js +0 -1898
- package/dist/cjs/exchanges.d.ts +0 -50
- package/dist/cjs/exchanges.js +0 -1104
- package/dist/cjs/index.d.ts +0 -10
- package/dist/cjs/index.js +0 -26
- package/dist/cjs/multicall.d.ts +0 -3
- package/dist/cjs/multicall.js +0 -80
- package/dist/cjs/step.d.ts +0 -128
- package/dist/coins.d.ts +0 -9
- package/dist/coins.js +0 -1891
- package/dist/exchanges.d.ts +0 -50
- package/dist/exchanges.js +0 -1100
- package/dist/index.d.ts +0 -10
- package/dist/index.js +0 -10
- package/dist/multicall.d.ts +0 -3
- package/dist/multicall.js +0 -77
- package/dist/quests.js +0 -1
package/src/bridges.ts
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { BaseToken } from './tokens/token.js'
|
|
2
|
+
|
|
3
|
+
export interface Bridge {
|
|
4
|
+
key: string
|
|
5
|
+
name: string
|
|
6
|
+
logoURI: string
|
|
7
|
+
bridgeUrl?: string
|
|
8
|
+
discordUrl?: string
|
|
9
|
+
supportUrl?: string
|
|
10
|
+
docsUrl?: string
|
|
11
|
+
explorerUrl?: string
|
|
12
|
+
analyticsUrl?: string
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Should not be accessed via the types package anymore
|
|
17
|
+
* @deprecated
|
|
18
|
+
*/
|
|
19
|
+
export interface BridgeDefinition {
|
|
20
|
+
tool: string
|
|
21
|
+
fromChainId: number
|
|
22
|
+
fromToken: BaseToken
|
|
23
|
+
toChainId: number
|
|
24
|
+
toToken: BaseToken
|
|
25
|
+
maximumTransfer: string
|
|
26
|
+
minimumTransfer: string
|
|
27
|
+
swapFeeRate: string
|
|
28
|
+
swapFeeMinimum: string
|
|
29
|
+
swapFeeMaximum: string
|
|
30
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { CoinKey } from '../tokens/base.js'
|
|
2
|
+
import { ChainKey } from './base.js'
|
|
3
|
+
|
|
4
|
+
export enum ChainType {
|
|
5
|
+
EVM = 'EVM',
|
|
6
|
+
// Solana virtual machine
|
|
7
|
+
SVM = 'SVM',
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export interface _Chain {
|
|
11
|
+
key: ChainKey
|
|
12
|
+
chainType: ChainType
|
|
13
|
+
name: string
|
|
14
|
+
coin: CoinKey
|
|
15
|
+
id: number
|
|
16
|
+
mainnet: boolean
|
|
17
|
+
logoURI?: string
|
|
18
|
+
// faucetUrls is DEPRECATED - will be removed in the next breaking release
|
|
19
|
+
faucetUrls?: string[]
|
|
20
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { _Chain } from './Chain.js'
|
|
2
|
+
|
|
3
|
+
export interface EVMChain extends _Chain {
|
|
4
|
+
// tokenlistUrl is DEPRECATED - will be removed in the next breaking release
|
|
5
|
+
tokenlistUrl?: string
|
|
6
|
+
metamask: AddEthereumChainParameter
|
|
7
|
+
multicallAddress?: string
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export interface AddEthereumChainParameter {
|
|
11
|
+
chainId: string
|
|
12
|
+
blockExplorerUrls: string[]
|
|
13
|
+
chainName: string
|
|
14
|
+
nativeCurrency: {
|
|
15
|
+
name: string
|
|
16
|
+
symbol: string
|
|
17
|
+
decimals: number
|
|
18
|
+
}
|
|
19
|
+
rpcUrls: string[]
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
// This type alias is required to avoid breaking
|
|
23
|
+
// changes with the new non EVM support types release
|
|
24
|
+
// This will be removed in the future in favour of _Chain
|
|
25
|
+
export type Chain = EVMChain
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
export enum ChainKey {
|
|
2
|
+
ETH = 'eth',
|
|
3
|
+
POL = 'pol',
|
|
4
|
+
BSC = 'bsc',
|
|
5
|
+
DAI = 'dai',
|
|
6
|
+
OKT = 'okt',
|
|
7
|
+
FTM = 'ftm',
|
|
8
|
+
AVA = 'ava',
|
|
9
|
+
ARB = 'arb',
|
|
10
|
+
HEC = 'hec',
|
|
11
|
+
OPT = 'opt',
|
|
12
|
+
ONE = 'one',
|
|
13
|
+
FSN = 'fsn',
|
|
14
|
+
MOR = 'mor',
|
|
15
|
+
EXP = 'exp',
|
|
16
|
+
TCH = 'tch',
|
|
17
|
+
UBQ = 'ubq',
|
|
18
|
+
MET = 'met',
|
|
19
|
+
DIO = 'dio',
|
|
20
|
+
CEL = 'cel',
|
|
21
|
+
FUS = 'fus',
|
|
22
|
+
TLO = 'tlo',
|
|
23
|
+
CRO = 'cro',
|
|
24
|
+
BOB = 'bob',
|
|
25
|
+
SHI = 'shi',
|
|
26
|
+
GL1 = 'gl1',
|
|
27
|
+
RSK = 'rsk',
|
|
28
|
+
TBW = 'tbw',
|
|
29
|
+
VEL = 'vel',
|
|
30
|
+
MOO = 'moo',
|
|
31
|
+
MAM = 'mam',
|
|
32
|
+
AUR = 'aur',
|
|
33
|
+
TER = 'ter',
|
|
34
|
+
OAS = 'oas',
|
|
35
|
+
SOL = 'sol',
|
|
36
|
+
EVM = 'evm',
|
|
37
|
+
ARN = 'arn',
|
|
38
|
+
ERA = 'era',
|
|
39
|
+
PZE = 'pze',
|
|
40
|
+
LNA = 'lna',
|
|
41
|
+
BAS = 'bas',
|
|
42
|
+
|
|
43
|
+
// Testnets
|
|
44
|
+
GOR = 'gor',
|
|
45
|
+
METT = 'mett',
|
|
46
|
+
DIOT = 'diot',
|
|
47
|
+
MUM = 'mum',
|
|
48
|
+
ARBG = 'arbg',
|
|
49
|
+
OPTG = 'optg',
|
|
50
|
+
BSCT = 'bsct',
|
|
51
|
+
HECT = 'hect',
|
|
52
|
+
ONET = 'onet',
|
|
53
|
+
FUST = 'fust',
|
|
54
|
+
TLOT = 'tlot',
|
|
55
|
+
RSKT = 'rskt',
|
|
56
|
+
SOLT = 'solt',
|
|
57
|
+
OAST = 'oast',
|
|
58
|
+
TERT = 'tert',
|
|
59
|
+
AVAT = 'avat',
|
|
60
|
+
EVMT = 'evmt',
|
|
61
|
+
MORT = 'mort',
|
|
62
|
+
FTMT = 'ftmt',
|
|
63
|
+
LNAT = 'lnat',
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
export enum ChainId {
|
|
67
|
+
ETH = 1,
|
|
68
|
+
POL = 137,
|
|
69
|
+
BSC = 56,
|
|
70
|
+
DAI = 100,
|
|
71
|
+
OKT = 66,
|
|
72
|
+
FTM = 250,
|
|
73
|
+
AVA = 43114,
|
|
74
|
+
ARB = 42161,
|
|
75
|
+
HEC = 128,
|
|
76
|
+
OPT = 10,
|
|
77
|
+
ONE = 1666600000,
|
|
78
|
+
FSN = 32659,
|
|
79
|
+
MOR = 1285,
|
|
80
|
+
EXP = 2,
|
|
81
|
+
TCH = 7,
|
|
82
|
+
UBQ = 8,
|
|
83
|
+
MET = 11,
|
|
84
|
+
DIO = 15,
|
|
85
|
+
CEL = 42220,
|
|
86
|
+
FUS = 122,
|
|
87
|
+
TLO = 40,
|
|
88
|
+
CRO = 25,
|
|
89
|
+
BOB = 288,
|
|
90
|
+
SHI = 27,
|
|
91
|
+
GL1 = 29,
|
|
92
|
+
RSK = 30,
|
|
93
|
+
TBW = 35,
|
|
94
|
+
VEL = 106,
|
|
95
|
+
MOO = 1284,
|
|
96
|
+
MAM = 1088,
|
|
97
|
+
AUR = 1313161554,
|
|
98
|
+
SOL = 1151111081099710, // this id is made up by the LI.FI team!
|
|
99
|
+
TER = 1161011141099710, // this id is made up by the LI.FI team!
|
|
100
|
+
OAS = 111971151099710, // this id is made up by the LI.FI team!
|
|
101
|
+
EVM = 9001,
|
|
102
|
+
ARN = 42170,
|
|
103
|
+
ERA = 324,
|
|
104
|
+
PZE = 1101,
|
|
105
|
+
LNA = 59144,
|
|
106
|
+
BAS = 8453,
|
|
107
|
+
|
|
108
|
+
// Testnets
|
|
109
|
+
GOR = 5,
|
|
110
|
+
METT = 12,
|
|
111
|
+
DIOT = 13,
|
|
112
|
+
MUM = 80001,
|
|
113
|
+
ARBG = 421613,
|
|
114
|
+
OPTG = 420,
|
|
115
|
+
BSCT = 97,
|
|
116
|
+
HECT = 256,
|
|
117
|
+
ONET = 1666700000,
|
|
118
|
+
FUST = 123,
|
|
119
|
+
TLOT = 41,
|
|
120
|
+
RSKT = 31,
|
|
121
|
+
SOLT = 1151111081161011, // this id is made up by the LI.FI team!
|
|
122
|
+
TERT = 1161011141161011, // this id is made up by the LI.FI team!
|
|
123
|
+
OAST = 1119711511610111, // this id is made up by the LI.FI team!
|
|
124
|
+
AVAT = 43113,
|
|
125
|
+
EVMT = 9000,
|
|
126
|
+
MORT = 1287,
|
|
127
|
+
FTMT = 4002,
|
|
128
|
+
LNAT = 59140,
|
|
129
|
+
}
|
package/src/errors.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// Error codes emitted by the LI.FI API
|
|
2
|
+
export enum ErrorCode {
|
|
3
|
+
DefaultError = 1000,
|
|
4
|
+
FailedToBuildTransactionError = 1001,
|
|
5
|
+
NoQuoteError = 1002,
|
|
6
|
+
NotFoundError = 1003,
|
|
7
|
+
NotProcessableError = 1004,
|
|
8
|
+
RateLimitError = 1005,
|
|
9
|
+
ServerError = 1006,
|
|
10
|
+
SlippageError = 1007,
|
|
11
|
+
ThirdPartyError = 1008,
|
|
12
|
+
TimeoutError = 1009,
|
|
13
|
+
UnauthorizedError = 1010,
|
|
14
|
+
ValidationError = 1011,
|
|
15
|
+
}
|
package/src/exchanges.ts
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { StaticToken } from './tokens/token.js'
|
|
2
|
+
|
|
3
|
+
export interface ExchangeAggregator {
|
|
4
|
+
key: string
|
|
5
|
+
name: string
|
|
6
|
+
logoURI: string
|
|
7
|
+
webUrl: string
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export interface Exchange {
|
|
11
|
+
key: string
|
|
12
|
+
name: string
|
|
13
|
+
chainId: number
|
|
14
|
+
logoURI: string
|
|
15
|
+
webUrl: string
|
|
16
|
+
graph?: string
|
|
17
|
+
tokenlistUrl: string
|
|
18
|
+
routerAddress: string
|
|
19
|
+
factoryAddress: string
|
|
20
|
+
initCodeHash: string
|
|
21
|
+
baseTokens: readonly StaticToken[]
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export interface ExchangeDefinition {
|
|
25
|
+
tool: string
|
|
26
|
+
chains: number[]
|
|
27
|
+
}
|
package/src/index.ts
ADDED
|
@@ -1,24 +1,30 @@
|
|
|
1
1
|
export interface BaseQuest {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
id: string
|
|
3
|
+
name: string
|
|
4
|
+
description: string
|
|
5
5
|
}
|
|
6
|
+
|
|
6
7
|
export interface QuestStatus extends BaseQuest {
|
|
7
|
-
|
|
8
|
+
completed: boolean
|
|
8
9
|
}
|
|
10
|
+
|
|
9
11
|
export type GetQuestStatusRequest = {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
}
|
|
12
|
+
questId: string
|
|
13
|
+
walletAddress: string
|
|
14
|
+
}
|
|
15
|
+
|
|
13
16
|
export type GetQuestsStatusRequest = {
|
|
14
|
-
|
|
15
|
-
}
|
|
17
|
+
walletAddress: string
|
|
18
|
+
}
|
|
19
|
+
|
|
16
20
|
export type GetQuestStatusResponse = {
|
|
17
|
-
|
|
18
|
-
}
|
|
21
|
+
quest: QuestStatus
|
|
22
|
+
}
|
|
23
|
+
|
|
19
24
|
export type GetQuestsStatusResponse = {
|
|
20
|
-
|
|
21
|
-
}
|
|
25
|
+
quests: QuestStatus[]
|
|
26
|
+
}
|
|
27
|
+
|
|
22
28
|
export type GetAllQuestsResponse = {
|
|
23
|
-
|
|
24
|
-
}
|
|
29
|
+
quests: BaseQuest[]
|
|
30
|
+
}
|
package/src/step.ts
ADDED
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
import type { Substatus, TransactionRequest } from './api.js'
|
|
2
|
+
import type { Token } from './tokens/index.js'
|
|
3
|
+
|
|
4
|
+
export interface FeeCost {
|
|
5
|
+
name: string
|
|
6
|
+
description: string
|
|
7
|
+
percentage: string
|
|
8
|
+
token: Token
|
|
9
|
+
amount: string
|
|
10
|
+
amountUSD: string
|
|
11
|
+
included: boolean
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export interface GasCost {
|
|
15
|
+
type: 'SUM' | 'APPROVE' | 'SEND' | 'FEE'
|
|
16
|
+
price: string // suggested current standard price for chain
|
|
17
|
+
estimate: string // estimate how much gas will be needed
|
|
18
|
+
limit: string // suggested gas limit (estimate +25%)
|
|
19
|
+
amount: string // estimate * price = amount of tokens that will be needed
|
|
20
|
+
amountUSD: string // usd value of token amount
|
|
21
|
+
token: Token // the used gas token
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
// ACTION
|
|
25
|
+
export interface Action {
|
|
26
|
+
fromChainId: number
|
|
27
|
+
fromAmount: string
|
|
28
|
+
fromToken: Token
|
|
29
|
+
fromAddress?: string
|
|
30
|
+
|
|
31
|
+
toChainId: number
|
|
32
|
+
toToken: Token
|
|
33
|
+
toAddress?: string
|
|
34
|
+
|
|
35
|
+
slippage: number
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
// ESTIMATE
|
|
39
|
+
export interface Estimate {
|
|
40
|
+
tool: string
|
|
41
|
+
fromAmount: string
|
|
42
|
+
fromAmountUSD?: string
|
|
43
|
+
toAmount: string
|
|
44
|
+
toAmountMin: string
|
|
45
|
+
toAmountUSD?: string
|
|
46
|
+
approvalAddress: string
|
|
47
|
+
feeCosts?: FeeCost[]
|
|
48
|
+
// This is a list to account for approval gas costs and transaction gas costs. However, approval gas costs are not used at the moment
|
|
49
|
+
gasCosts?: GasCost[]
|
|
50
|
+
// estimated duration in seconds
|
|
51
|
+
executionDuration: number
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
// EXECUTION
|
|
55
|
+
export type Status =
|
|
56
|
+
| 'NOT_STARTED'
|
|
57
|
+
| 'STARTED'
|
|
58
|
+
| 'ACTION_REQUIRED'
|
|
59
|
+
| 'CHAIN_SWITCH_REQUIRED'
|
|
60
|
+
| 'PENDING'
|
|
61
|
+
| 'FAILED'
|
|
62
|
+
| 'DONE'
|
|
63
|
+
| 'RESUME'
|
|
64
|
+
| 'CANCELLED'
|
|
65
|
+
|
|
66
|
+
export type ProcessType =
|
|
67
|
+
| 'TOKEN_ALLOWANCE'
|
|
68
|
+
| 'SWITCH_CHAIN'
|
|
69
|
+
| 'SWAP'
|
|
70
|
+
| 'CROSS_CHAIN'
|
|
71
|
+
| 'RECEIVING_CHAIN'
|
|
72
|
+
| 'TRANSACTION'
|
|
73
|
+
|
|
74
|
+
export interface Process {
|
|
75
|
+
startedAt: number
|
|
76
|
+
doneAt?: number
|
|
77
|
+
failedAt?: number
|
|
78
|
+
type: ProcessType
|
|
79
|
+
status: Status
|
|
80
|
+
substatus?: Substatus
|
|
81
|
+
message?: string
|
|
82
|
+
txHash?: string
|
|
83
|
+
txLink?: string
|
|
84
|
+
multisigTxHash?: string
|
|
85
|
+
error?: {
|
|
86
|
+
code: string | number
|
|
87
|
+
message: string
|
|
88
|
+
htmlMessage?: string
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
// additional information
|
|
92
|
+
[key: string]: any
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
export interface Execution {
|
|
96
|
+
status: Status
|
|
97
|
+
process: Array<Process>
|
|
98
|
+
fromAmount?: string
|
|
99
|
+
toAmount?: string
|
|
100
|
+
toToken?: Token
|
|
101
|
+
feeCosts?: FeeCost[]
|
|
102
|
+
gasCosts?: GasCost[]
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
export const emptyExecution: Execution = {
|
|
106
|
+
status: 'NOT_STARTED',
|
|
107
|
+
process: [],
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
// STEP
|
|
111
|
+
export const _StepType = [
|
|
112
|
+
'lifi',
|
|
113
|
+
'swap',
|
|
114
|
+
'cross',
|
|
115
|
+
'protocol',
|
|
116
|
+
'custom',
|
|
117
|
+
] as const
|
|
118
|
+
export type StepType = (typeof _StepType)[number]
|
|
119
|
+
export type StepTool = string
|
|
120
|
+
export type StepToolDetails = {
|
|
121
|
+
key: string
|
|
122
|
+
name: string
|
|
123
|
+
logoURI: string
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
export interface StepBase {
|
|
127
|
+
id: string
|
|
128
|
+
type: StepType
|
|
129
|
+
tool: StepTool
|
|
130
|
+
toolDetails: StepToolDetails
|
|
131
|
+
integrator?: string
|
|
132
|
+
referrer?: string
|
|
133
|
+
action: Action
|
|
134
|
+
estimate?: Estimate
|
|
135
|
+
transactionRequest?: TransactionRequest
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
export interface DestinationCallInfo {
|
|
139
|
+
toContractAddress: string
|
|
140
|
+
toContractCallData: string
|
|
141
|
+
toFallbackAddress: string
|
|
142
|
+
callDataGasLimit: string
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
export type CallAction = Action & DestinationCallInfo
|
|
146
|
+
|
|
147
|
+
export interface SwapStep extends StepBase {
|
|
148
|
+
type: 'swap'
|
|
149
|
+
action: Action
|
|
150
|
+
estimate: Estimate
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
export interface CrossStep extends StepBase {
|
|
154
|
+
type: 'cross'
|
|
155
|
+
action: Action
|
|
156
|
+
estimate: Estimate
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
export interface ProtocolStep extends StepBase {
|
|
160
|
+
type: 'protocol'
|
|
161
|
+
action: Action
|
|
162
|
+
estimate: Estimate
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
export interface CustomStep extends StepBase {
|
|
166
|
+
type: 'custom'
|
|
167
|
+
action: CallAction
|
|
168
|
+
estimate: Estimate
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
export type Step = SwapStep | CrossStep | CustomStep | ProtocolStep
|
|
172
|
+
|
|
173
|
+
export interface LiFiStep extends Omit<Step, 'type'> {
|
|
174
|
+
type: 'lifi'
|
|
175
|
+
includedSteps: Step[]
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
export function isSwapStep(step: Step): step is SwapStep {
|
|
179
|
+
return step.type === 'swap'
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
export function isCrossStep(step: Step): step is CrossStep {
|
|
183
|
+
return step.type === 'cross'
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
export function isProtocolStep(step: Step): step is ProtocolStep {
|
|
187
|
+
return step.type === 'protocol'
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
export function isCustomStep(step: Step): step is CustomStep {
|
|
191
|
+
return step.type === 'custom'
|
|
192
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
export enum CoinKey {
|
|
2
|
+
ETH = 'ETH',
|
|
3
|
+
MATIC = 'MATIC',
|
|
4
|
+
BNB = 'BNB',
|
|
5
|
+
DAI = 'DAI',
|
|
6
|
+
FTM = 'FTM',
|
|
7
|
+
OKT = 'OKT',
|
|
8
|
+
AVAX = 'AVAX',
|
|
9
|
+
HT = 'HT',
|
|
10
|
+
ONE = 'ONE',
|
|
11
|
+
FSN = 'FSN',
|
|
12
|
+
MOVR = 'MOVR',
|
|
13
|
+
EXP = 'EXP',
|
|
14
|
+
TCH = 'TCH',
|
|
15
|
+
UBQ = 'UBQ',
|
|
16
|
+
META = 'META',
|
|
17
|
+
DIODE = 'DIODE',
|
|
18
|
+
CELO = 'CELO',
|
|
19
|
+
FUSE = 'FUSE',
|
|
20
|
+
TLOS = 'TLOS',
|
|
21
|
+
CRO = 'CRO',
|
|
22
|
+
SHIB = 'SHIB',
|
|
23
|
+
L1 = 'L1',
|
|
24
|
+
RBTC = 'RBTC',
|
|
25
|
+
TBG = 'TBG',
|
|
26
|
+
VLX = 'VLX',
|
|
27
|
+
GLMR = 'GLMR',
|
|
28
|
+
METIS = 'METIS',
|
|
29
|
+
SOL = 'SOL',
|
|
30
|
+
EVM = 'EVM',
|
|
31
|
+
|
|
32
|
+
// Stable coins
|
|
33
|
+
USDT = 'USDT',
|
|
34
|
+
USDC = 'USDC',
|
|
35
|
+
cbtUSDC = 'cbtUSDC', // cBridge testnet USDC
|
|
36
|
+
cbtUSDT = 'cbtUSDT', // cBridge testnet USDT
|
|
37
|
+
cbtWUSDT = 'cbtWUSDT', // cBridge testnet wrapped USDT
|
|
38
|
+
cbtWUSDC = 'cbtWUSDC', // cBridge testnet wrapped USDC
|
|
39
|
+
cbtCELR = 'cbtCELR', // cBridge testnet CELR
|
|
40
|
+
BUSD = 'BUSD',
|
|
41
|
+
USDCe = 'USDCe',
|
|
42
|
+
|
|
43
|
+
// Testnet
|
|
44
|
+
TEST = 'TEST',
|
|
45
|
+
KAL = 'KAL',
|
|
46
|
+
SDIODE = 'SDIODE',
|
|
47
|
+
SPARK = 'SPARK',
|
|
48
|
+
TRBTC = 'TRBTC',
|
|
49
|
+
CXTT = 'CXTT', // Connext Test token
|
|
50
|
+
|
|
51
|
+
// stargate testnet tokens
|
|
52
|
+
sgMETIS = 'sgMETIS', // sgMETIS test token
|
|
53
|
+
sgWOO = 'sgWOO', // sgWOO test token
|
|
54
|
+
sgUSDT = 'sgUSDT', // sgUSDT test token
|
|
55
|
+
sgBUSD = 'sgBUSD', // sgBUSD test token
|
|
56
|
+
sgUSDC = 'sgUSDC', // sgUSDC test token
|
|
57
|
+
|
|
58
|
+
// Other tokens
|
|
59
|
+
WBTC = 'WBTC',
|
|
60
|
+
WETH = 'WETH',
|
|
61
|
+
SUSHI = 'SUSHI',
|
|
62
|
+
DODO = 'DODO',
|
|
63
|
+
MCB = 'MCB',
|
|
64
|
+
CELR = 'CELR',
|
|
65
|
+
IF = 'IF',
|
|
66
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { ChainId } from '../chains/base.js'
|
|
2
|
+
import { CoinKey } from './base.js'
|
|
3
|
+
|
|
4
|
+
export interface BaseToken {
|
|
5
|
+
chainId: ChainId
|
|
6
|
+
address: string
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export interface StaticToken extends BaseToken {
|
|
10
|
+
symbol: string
|
|
11
|
+
decimals: number
|
|
12
|
+
name: string
|
|
13
|
+
coinKey?: CoinKey
|
|
14
|
+
logoURI?: string
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export interface Token extends StaticToken {
|
|
18
|
+
priceUSD: string
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export interface TokenAmount extends Token {
|
|
22
|
+
amount?: bigint
|
|
23
|
+
blockNumber?: bigint
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export interface Coin {
|
|
27
|
+
key: CoinKey
|
|
28
|
+
name: string
|
|
29
|
+
logoURI: string
|
|
30
|
+
verified: boolean
|
|
31
|
+
chains: {
|
|
32
|
+
[ChainId: string]: StaticToken
|
|
33
|
+
}
|
|
34
|
+
}
|