5
5
"fmt"
6
6
"strconv"
7
7
"strings"
8
- "time"
9
8
10
9
log "github.com/sirupsen/logrus"
11
10
@@ -19,25 +18,6 @@ import (
19
18
"github.com/trustwallet/go-primitives/types"
20
19
)
21
20
22
- var (
23
- UniswapForceInclude = []string {
24
- "TUSD" , "STAKE" , "YFI" , "BAT" , "MANA" , "1INCH" , "REP" , "KP3R" , "UNI" , "WBTC" , "HEX" , "CREAM" , "SLP" ,
25
- "REN" , "XOR" , "Link" , "sUSD" , "HEGIC" , "RLC" , "DAI" , "SUSHI" , "FYZ" , "DYT" , "AAVE" , "LEND" , "UBT" ,
26
- "DIA" , "RSR" , "SXP" , "OCEAN" , "MKR" , "USDC" , "CEL" , "BAL" , "BAND" , "COMP" , "SNX" , "OMG" , "AMPL" ,
27
- "USDT" , "KNC" , "ZRX" , "AXS" , "ENJ" , "STMX" , "DPX" , "FTT" , "DPI" , "PAX" ,
28
- }
29
- UniswapForceExclude = []string {"STARL" , "UFO" }
30
-
31
- PolygonSwapForceInclude = []string {}
32
- PolygonSwapForceExclude = []string {}
33
-
34
- PancakeSwapForceInclude = []string {
35
- "Cake" , "DAI" , "ETH" , "TWT" , "VAI" , "USDT" , "BLINK" , "BTCB" , "ALPHA" , "INJ" , "CTK" , "UNI" , "XVS" ,
36
- "BUSD" , "HARD" , "BIFI" , "FRONT" ,
37
- }
38
- PancakeSwapForceExclude = []string {}
39
- )
40
-
41
21
var (
42
22
UniswapTradingPairsQuery = map [string ]string {
43
23
"operationName" : "pairs" ,
56
36
` ,
57
37
}
58
38
59
- PolygonSwapTradingPairsQuery = map [string ]string {
60
- "query" : `
61
- {
62
- ethereum(network: matic) {
63
- dexTrades(date: {is: "$DATE$"}) {
64
- sellCurrency {address symbol name decimals}
65
- buyCurrency {address symbol name decimals}
66
- trade: count
67
- tradeAmount(in: USD)
68
- }
69
- }
70
- }
71
- ` ,
72
- }
73
-
74
39
PancakeSwapTradingPairsQuery = map [string ]string {
75
40
"operationName" : "pairs" ,
76
41
"query" : `
@@ -87,92 +52,30 @@ var (
87
52
}
88
53
` ,
89
54
}
90
-
91
- UniswapTradingPairsUrl = "https://api.thegraph.com/subgraphs/name/uniswap/uniswap-v2"
92
- PolygonSwapTradingPairsUrl = "https://graphql.bitquery.io"
93
- PancakeSwapTradingPairsUrl = "https://api.bscgraph.org/subgraphs/name/cakeswap"
94
- )
95
-
96
- const (
97
- UniswapMinLiquidity = 2000000
98
- UniswapMinVol24 = 1000000
99
- UniswapMinTxCount24 = 480
100
-
101
- PolygonSwapMinLiquidity = 0
102
- PolygonSwapMinVol24 = 500000
103
- PolygonSwapMinTxCount24 = 288
104
-
105
- PancakeSwapMinLiquidity = 1000000
106
- PancakeSwapMinVol24 = 500000
107
- PancakeSwapMinTxCount24 = 288
108
- )
109
-
110
- var (
111
- PrimaryTokensEthereum = []string {"WETH" , "ETH" }
112
- PrimaryTokensPolygon = []string {"WMATIC" , "MATIC" , "WETH" , "USDC" , "USDT" , "DAI" }
113
- PrimaryTokensSmartChain = []string {"WBNB" , "BNB" }
114
55
)
115
56
116
57
// nolint:dupl
117
58
func (s * Service ) UpdateEthereumTokenlist () error {
118
59
log .WithFields (log.Fields {
119
- "limit_liquidity" : UniswapMinLiquidity ,
120
- "volume" : UniswapMinVol24 ,
121
- "tx_count" : UniswapMinTxCount24 ,
60
+ "limit_liquidity" : config . Default . TradingPairSettings . Uniswap . MinLiquidity ,
61
+ "volume" : config . Default . TradingPairSettings . Uniswap . MinVol24 ,
62
+ "tx_count" : config . Default . TradingPairSettings . Uniswap . MinTxCount24 ,
122
63
}).Debug ("Retrieving pairs from Uniswap" )
123
64
124
- tradingPairs , err := retrievePairs (UniswapTradingPairsUrl , UniswapTradingPairsQuery ,
125
- UniswapMinLiquidity , UniswapMinVol24 , UniswapMinTxCount24 , UniswapForceInclude , PrimaryTokensEthereum )
126
- if err != nil {
127
- return err
128
- }
129
-
130
- pairs := make ([][]TokenItem , 0 )
131
-
132
- chain := coin .Coins [coin .ETHEREUM ]
133
-
134
- for _ , tradingPair := range tradingPairs {
135
- tokenItem0 , err := getTokenInfoFromSubgraphToken (chain , tradingPair .Token0 )
136
- if err != nil {
137
- return err
138
- }
139
-
140
- tokenItem1 , err := getTokenInfoFromSubgraphToken (chain , tradingPair .Token1 )
141
- if err != nil {
142
- return err
143
- }
65
+ forceInclude := strings .Split (config .Default .TradingPairSettings .Uniswap .ForceIncludeList , "," )
66
+ forceExclude := strings .Split (config .Default .TradingPairSettings .Uniswap .ForceExcludeList , "," )
67
+ primaryTokens := strings .Split (config .Default .TradingPairSettings .Uniswap .PrimaryTokens , "," )
144
68
145
- if ! isTokenPrimary (tradingPair .Token0 , PrimaryTokensEthereum ) {
146
- tokenItem0 , tokenItem1 = tokenItem1 , tokenItem0
147
- }
148
-
149
- pairs = append (pairs , []TokenItem {* tokenItem0 , * tokenItem1 })
150
- }
151
-
152
- return rebuildTokenList (chain , pairs , UniswapForceExclude )
153
- }
154
-
155
- func (s * Service ) UpdatePolygonTokenlist () error {
156
- log .WithFields (log.Fields {
157
- "limit_liquidity" : PolygonSwapMinLiquidity ,
158
- "volume" : PolygonSwapMinVol24 ,
159
- "tx_count" : PolygonSwapMinTxCount24 ,
160
- }).Debug ("Retrieving pairs from PolygonSwap" )
161
-
162
- yesterdayDate := time .Now ().AddDate (0 , 0 , - 1 ).Format ("2006-01-02" )
163
-
164
- PolygonSwapTradingPairsQuery ["query" ] = strings .ReplaceAll (PolygonSwapTradingPairsQuery ["query" ],
165
- "$DATE$" , yesterdayDate )
166
-
167
- tradingPairs , err := retrievePairs (PolygonSwapTradingPairsUrl , PolygonSwapTradingPairsQuery , PolygonSwapMinLiquidity ,
168
- PolygonSwapMinVol24 , PolygonSwapMinTxCount24 , PolygonSwapForceInclude , PrimaryTokensPolygon )
69
+ tradingPairs , err := retrievePairs (config .Default .TradingPairSettings .Uniswap .URL , UniswapTradingPairsQuery ,
70
+ config .Default .TradingPairSettings .Uniswap .MinLiquidity , config .Default .TradingPairSettings .Uniswap .MinVol24 ,
71
+ config .Default .TradingPairSettings .Uniswap .MinTxCount24 , forceInclude , primaryTokens )
169
72
if err != nil {
170
73
return err
171
74
}
172
75
173
76
pairs := make ([][]TokenItem , 0 )
174
77
175
- chain := coin .Coins [coin .POLYGON ]
78
+ chain := coin .Coins [coin .ETHEREUM ]
176
79
177
80
for _ , tradingPair := range tradingPairs {
178
81
tokenItem0 , err := getTokenInfoFromSubgraphToken (chain , tradingPair .Token0 )
@@ -185,27 +88,32 @@ func (s *Service) UpdatePolygonTokenlist() error {
185
88
return err
186
89
}
187
90
188
- if ! isTokenPrimary (tradingPair .Token0 , PrimaryTokensEthereum ) {
91
+ if ! isTokenPrimary (tradingPair .Token0 , primaryTokens ) {
189
92
tokenItem0 , tokenItem1 = tokenItem1 , tokenItem0
190
93
}
191
94
192
95
pairs = append (pairs , []TokenItem {* tokenItem0 , * tokenItem1 })
193
96
}
194
97
195
- return rebuildTokenList (chain , pairs , PolygonSwapForceExclude )
98
+ return rebuildTokenList (chain , pairs , forceExclude )
196
99
}
197
100
198
101
// nolint:dupl
199
102
func (s * Service ) UpdateSmartchainTokenlist () error {
200
103
log .WithFields (log.Fields {
201
- "limit_liquidity" : PancakeSwapMinLiquidity ,
202
- "volume" : PancakeSwapMinVol24 ,
203
- "tx_count" : PancakeSwapMinTxCount24 ,
104
+ "limit_liquidity" : config . Default . TradingPairSettings . Pancakeswap . MinLiquidity ,
105
+ "volume" : config . Default . TradingPairSettings . Pancakeswap . MinVol24 ,
106
+ "tx_count" : config . Default . TradingPairSettings . Pancakeswap . MinTxCount24 ,
204
107
}).Debug ("Retrieving pairs from PancakeSwap" )
205
108
206
- tradingPairs , err := retrievePairs (PancakeSwapTradingPairsUrl , PancakeSwapTradingPairsQuery ,
207
- PancakeSwapMinLiquidity , PancakeSwapMinVol24 , PancakeSwapMinTxCount24 ,
208
- PancakeSwapForceInclude , PrimaryTokensSmartChain )
109
+ forceInclude := strings .Split (config .Default .TradingPairSettings .Pancakeswap .ForceIncludeList , "," )
110
+ forceExclude := strings .Split (config .Default .TradingPairSettings .Pancakeswap .ForceExcludeList , "," )
111
+ primaryTokens := strings .Split (config .Default .TradingPairSettings .Pancakeswap .PrimaryTokens , "," )
112
+
113
+ tradingPairs , err := retrievePairs (config .Default .TradingPairSettings .Pancakeswap .URL ,
114
+ PancakeSwapTradingPairsQuery , config .Default .TradingPairSettings .Pancakeswap .MinLiquidity ,
115
+ config .Default .TradingPairSettings .Pancakeswap .MinVol24 ,
116
+ config .Default .TradingPairSettings .Pancakeswap .MinTxCount24 , forceInclude , primaryTokens )
209
117
if err != nil {
210
118
return err
211
119
}
@@ -225,14 +133,14 @@ func (s *Service) UpdateSmartchainTokenlist() error {
225
133
return err
226
134
}
227
135
228
- if ! isTokenPrimary (tradingPair .Token0 , PrimaryTokensSmartChain ) {
136
+ if ! isTokenPrimary (tradingPair .Token0 , primaryTokens ) {
229
137
tokenItem0 , tokenItem1 = tokenItem1 , tokenItem0
230
138
}
231
139
232
140
pairs = append (pairs , []TokenItem {* tokenItem0 , * tokenItem1 })
233
141
}
234
142
235
- return rebuildTokenList (chain , pairs , PancakeSwapForceExclude )
143
+ return rebuildTokenList (chain , pairs , forceExclude )
236
144
}
237
145
238
146
func retrievePairs (url string , query map [string ]string , minLiquidity , minVol24 , minTxCount24 int ,
0 commit comments