github.com/diadata-org/diadata@v1.4.593/pkg/dia/scraper/liquidity-scrapers/ScraperInterface.go (about) 1 package liquidityscrapers 2 3 import ( 4 "github.com/diadata-org/diadata/pkg/dia" 5 scrapers "github.com/diadata-org/diadata/pkg/dia/scraper/exchange-scrapers" 6 models "github.com/diadata-org/diadata/pkg/model" 7 "github.com/sirupsen/logrus" 8 ) 9 10 type LiquidityScraper interface { 11 Pool() chan dia.Pool 12 Done() chan bool 13 } 14 15 const ( 16 GLOBAL_NATIVE_LIQUIDITY_THRESHOLD = 0.5 17 ) 18 19 var ( 20 log *logrus.Logger 21 exchanges map[string]dia.Exchange 22 priceCache = make(map[string]float64) 23 ) 24 25 func init() { 26 log = logrus.New() 27 exchanges = scrapers.Exchanges 28 29 } 30 31 // NewLiquidityScraper returns a liquidity scraper for @source. 32 func NewLiquidityScraper(source string, relDB *models.RelDB, datastore *models.DB) LiquidityScraper { 33 switch source { 34 case dia.UniswapExchange: 35 return NewUniswapScraper(exchanges[dia.UniswapExchange], relDB, datastore) 36 case dia.UniswapExchangeBase: 37 return NewUniswapScraper(exchanges[dia.UniswapExchangeBase], relDB, datastore) 38 case dia.SushiSwapExchange: 39 return NewUniswapScraper(exchanges[dia.SushiSwapExchange], relDB, datastore) 40 case dia.SushiSwapExchangePolygon: 41 return NewUniswapScraper(exchanges[dia.SushiSwapExchangePolygon], relDB, datastore) 42 case dia.SushiSwapExchangeFantom: 43 return NewUniswapScraper(exchanges[dia.SushiSwapExchangeFantom], relDB, datastore) 44 case dia.SushiSwapExchangeArbitrum: 45 return NewUniswapScraper(exchanges[dia.SushiSwapExchangeArbitrum], relDB, datastore) 46 case dia.CamelotExchange: 47 return NewUniswapScraper(exchanges[dia.CamelotExchange], relDB, datastore) 48 case dia.NileV1Exchange: 49 return NewUniswapScraper(exchanges[dia.NileV1Exchange], relDB, datastore) 50 case dia.RamsesV1Exchange: 51 return NewUniswapScraper(exchanges[dia.RamsesV1Exchange], relDB, datastore) 52 case dia.CamelotExchangeV3: 53 return NewCamelotV3Scraper(exchanges[dia.CamelotExchangeV3], relDB, datastore) 54 case dia.ThenaV3Exchange: 55 return NewCamelotV3Scraper(exchanges[dia.ThenaV3Exchange], relDB, datastore) 56 case dia.PanCakeSwap: 57 return NewUniswapScraper(exchanges[dia.PanCakeSwap], relDB, datastore) 58 case dia.PanCakeSwapExchangeV3: 59 return NewUniswapV3Scraper(exchanges[dia.PanCakeSwapExchangeV3], relDB, datastore) 60 case dia.RamsesV2Exchange: 61 return NewUniswapV3Scraper(exchanges[dia.RamsesV2Exchange], relDB, datastore) 62 case dia.NileV2Exchange: 63 return NewUniswapV3Scraper(exchanges[dia.NileV2Exchange], relDB, datastore) 64 case dia.DfynNetwork: 65 return NewUniswapScraper(exchanges[dia.DfynNetwork], relDB, datastore) 66 case dia.QuickswapExchange: 67 return NewUniswapScraper(exchanges[dia.QuickswapExchange], relDB, datastore) 68 case dia.UbeswapExchange: 69 return NewUniswapScraper(exchanges[dia.UbeswapExchange], relDB, datastore) 70 case dia.SpookyswapExchange: 71 return NewUniswapScraper(exchanges[dia.SpookyswapExchange], relDB, datastore) 72 case dia.SpiritswapExchange: 73 return NewUniswapScraper(exchanges[dia.SpiritswapExchange], relDB, datastore) 74 case dia.SolarbeamExchange: 75 return NewUniswapScraper(exchanges[dia.SolarbeamExchange], relDB, datastore) 76 case dia.TrisolarisExchange: 77 return NewUniswapScraper(exchanges[dia.TrisolarisExchange], relDB, datastore) 78 case dia.NetswapExchange: 79 return NewUniswapScraper(exchanges[dia.NetswapExchange], relDB, datastore) 80 case dia.HuckleberryExchange: 81 return NewUniswapScraper(exchanges[dia.HuckleberryExchange], relDB, datastore) 82 case dia.PangolinExchange: 83 return NewUniswapScraper(exchanges[dia.PangolinExchange], relDB, datastore) 84 case dia.TethysExchange: 85 return NewUniswapScraper(exchanges[dia.TethysExchange], relDB, datastore) 86 case dia.HermesExchange: 87 return NewUniswapScraper(exchanges[dia.HermesExchange], relDB, datastore) 88 case dia.OmniDexExchange: 89 return NewUniswapScraper(exchanges[dia.OmniDexExchange], relDB, datastore) 90 case dia.DiffusionExchange: 91 return NewUniswapScraper(exchanges[dia.DiffusionExchange], relDB, datastore) 92 case dia.ApeswapExchange: 93 return NewUniswapScraper(exchanges[dia.ApeswapExchange], relDB, datastore) 94 case dia.BiswapExchange: 95 return NewUniswapScraper(exchanges[dia.BiswapExchange], relDB, datastore) 96 case dia.ArthswapExchange: 97 return NewUniswapScraper(exchanges[dia.ArthswapExchange], relDB, datastore) 98 case dia.StellaswapExchange: 99 return NewUniswapScraper(exchanges[dia.StellaswapExchange], relDB, datastore) 100 case dia.WanswapExchange: 101 return NewUniswapScraper(exchanges[dia.WanswapExchange], relDB, datastore) 102 case dia.ThenaExchange: 103 return NewUniswapScraper(exchanges[dia.ThenaExchange], relDB, datastore) 104 105 case dia.TraderJoeExchange: 106 return NewUniswapScraper(exchanges[dia.TraderJoeExchange], relDB, datastore) 107 case dia.TraderJoeExchangeV2_1: 108 return NewTraderJoeLiquidityScraper(exchanges[dia.TraderJoeExchangeV2_1], relDB, datastore) 109 case dia.TraderJoeExchangeV2_1Arbitrum: 110 return NewTraderJoeLiquidityScraper(exchanges[dia.TraderJoeExchangeV2_1Arbitrum], relDB, datastore) 111 case dia.TraderJoeExchangeV2_1Avalanche: 112 return NewTraderJoeLiquidityScraper(exchanges[dia.TraderJoeExchangeV2_1Avalanche], relDB, datastore) 113 case dia.TraderJoeExchangeV2_1BNB: 114 return NewTraderJoeLiquidityScraper(exchanges[dia.TraderJoeExchangeV2_1BNB], relDB, datastore) 115 case dia.TraderJoeExchangeV2_2Avalanche: 116 return NewTraderJoeLiquidityScraper(exchanges[dia.TraderJoeExchangeV2_2Avalanche], relDB, datastore) 117 118 case dia.CurveFIExchange: 119 return NewCurveFIScraper(exchanges[dia.CurveFIExchange], relDB, datastore) 120 case dia.CurveFIExchangePolygon: 121 return NewCurveFIScraper(exchanges[dia.CurveFIExchangePolygon], relDB, datastore) 122 case dia.CurveFIExchangeFantom: 123 return NewCurveFIScraper(exchanges[dia.CurveFIExchangeFantom], relDB, datastore) 124 case dia.CurveFIExchangeMoonbeam: 125 return NewCurveFIScraper(exchanges[dia.CurveFIExchangeMoonbeam], relDB, datastore) 126 case dia.CurveFIExchangeArbitrum: 127 return NewCurveFIScraper(exchanges[dia.CurveFIExchangeArbitrum], relDB, datastore) 128 129 case dia.BalancerV2Exchange: 130 return NewBalancerV2Scraper(exchanges[dia.BalancerV2Exchange], relDB, datastore) 131 case dia.BalancerV2ExchangeArbitrum: 132 return NewBalancerV2Scraper(exchanges[dia.BalancerV2ExchangeArbitrum], relDB, datastore) 133 case dia.BeetsExchange: 134 return NewBalancerV2Scraper(exchanges[dia.BeetsExchange], relDB, datastore) 135 case dia.BalancerV2ExchangePolygon: 136 return NewBalancerV2Scraper(exchanges[dia.BalancerV2ExchangePolygon], relDB, datastore) 137 138 case dia.BalancerV3Exchange: 139 return NewBalancerV3Scraper(exchanges[dia.BalancerV3Exchange], relDB, datastore) 140 141 case dia.UniswapExchangeV3: 142 return NewUniswapV3Scraper(exchanges[dia.UniswapExchangeV3], relDB, datastore) 143 case dia.UniswapExchangeV3Polygon: 144 return NewUniswapV3Scraper(exchanges[dia.UniswapExchangeV3Polygon], relDB, datastore) 145 case dia.UniswapExchangeV3Arbitrum: 146 return NewUniswapV3Scraper(exchanges[dia.UniswapExchangeV3Arbitrum], relDB, datastore) 147 case dia.UniswapExchangeV3Base: 148 return NewUniswapV3Scraper(exchanges[dia.UniswapExchangeV3Base], relDB, datastore) 149 case dia.UniswapExchangeV3Celo: 150 return NewUniswapV3Scraper(exchanges[dia.UniswapExchangeV3Celo], relDB, datastore) 151 152 case dia.UniswapExchangeV4: 153 return NewUniswapV4Scraper(exchanges[dia.UniswapExchangeV4], relDB, datastore) 154 155 case dia.BancorExchange: 156 return NewBancorPoolScraper(exchanges[dia.BancorExchange], datastore) 157 case dia.OrcaExchange: 158 return NewOrcaScraper(exchanges[dia.OrcaExchange], datastore) 159 case dia.OsmosisExchange: 160 return NewOsmosisScraper(exchanges[dia.OsmosisExchange], relDB, datastore) 161 case dia.PlatypusExchange: 162 return NewPlatypusScraper(exchanges[dia.PlatypusExchange], datastore) 163 case dia.VelodromeExchange: 164 return NewVelodromePoolScraper(exchanges[dia.VelodromeExchange], relDB, datastore) 165 case dia.VelodromeExchangeSwellchain: 166 return NewVelodromePoolScraper(exchanges[dia.VelodromeExchangeSwellchain], relDB, datastore) 167 case dia.VelodromeSlipstreamExchange: 168 return NewVelodromePoolScraper(exchanges[dia.VelodromeSlipstreamExchange], relDB, datastore) 169 case dia.AerodromeV1Exchange: 170 return NewVelodromePoolScraper(exchanges[dia.AerodromeV1Exchange], relDB, datastore) 171 case dia.AerodromeSlipstreamExchange: 172 return NewVelodromePoolScraper(exchanges[dia.AerodromeSlipstreamExchange], relDB, datastore) 173 case dia.MaverickExchange: 174 return NewMaverickScraper(exchanges[dia.MaverickExchange], relDB, datastore) 175 case dia.PearlfiExchangeTestnet: 176 return NewUniswapV3Scraper(exchanges[dia.PearlfiExchangeTestnet], relDB, datastore) 177 case dia.PearlfiExchange: 178 return NewUniswapV3Scraper(exchanges[dia.PearlfiExchange], relDB, datastore) 179 case dia.PearlfiStableswapExchange: 180 return NewUniswapScraper(exchanges[dia.PearlfiStableswapExchange], relDB, datastore) 181 182 case dia.AyinExchange: 183 return NewAyinLiquidityScraper(exchanges[dia.AyinExchange], relDB, datastore) 184 case dia.BitflowExchange: 185 return NewBitflowLiquidityScraper(exchanges[dia.BitflowExchange], relDB, datastore) 186 case dia.VelarExchange: 187 return NewVelarLiquidityScraper(exchanges[dia.VelarExchange], relDB, datastore) 188 case dia.BifrostExchange: 189 return NewBifrostLiquidityScraper(exchanges[dia.BifrostExchange], relDB, datastore) 190 case dia.HydrationExchange: 191 return NewHydrationLiquidityScraper(exchanges[dia.HydrationExchange], relDB, datastore) 192 default: 193 return nil 194 } 195 196 }