UNPKG

@maxosllc/smart-order-router

Version:
163 lines 12.7 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.CachingSubgraphProvider = exports.BASES_TO_CHECK_TRADES_AGAINST = void 0; const chains_1 = require("../../src/util/chains"); const util_1 = require("../util"); const token_provider_1 = require("./token-provider"); exports.BASES_TO_CHECK_TRADES_AGAINST = { [chains_1.ChainId.MAINNET]: [ (0, util_1.nativeOnChain)(chains_1.ChainId.MAINNET), util_1.WRAPPED_NATIVE_CURRENCY[chains_1.ChainId.MAINNET], token_provider_1.DAI_MAINNET, token_provider_1.USDC_MAINNET, token_provider_1.USDT_MAINNET, token_provider_1.WBTC_MAINNET, token_provider_1.WSTETH_MAINNET, ], [chains_1.ChainId.GOERLI]: [util_1.WRAPPED_NATIVE_CURRENCY[chains_1.ChainId.GOERLI]], [chains_1.ChainId.SEPOLIA]: [ (0, util_1.nativeOnChain)(chains_1.ChainId.SEPOLIA), util_1.WRAPPED_NATIVE_CURRENCY[chains_1.ChainId.SEPOLIA], ], //v2 not deployed on [arbitrum, polygon, celo, gnosis, moonbeam, bnb, avalanche] and their testnets [chains_1.ChainId.OPTIMISM]: [ (0, util_1.nativeOnChain)(chains_1.ChainId.OPTIMISM), util_1.WRAPPED_NATIVE_CURRENCY[chains_1.ChainId.OPTIMISM], token_provider_1.USDC_OPTIMISM, token_provider_1.DAI_OPTIMISM, token_provider_1.USDT_OPTIMISM, token_provider_1.WBTC_OPTIMISM, token_provider_1.OP_OPTIMISM, ], [chains_1.ChainId.ARBITRUM_ONE]: [ (0, util_1.nativeOnChain)(chains_1.ChainId.ARBITRUM_ONE), util_1.WRAPPED_NATIVE_CURRENCY[chains_1.ChainId.ARBITRUM_ONE], token_provider_1.WBTC_ARBITRUM, token_provider_1.DAI_ARBITRUM, token_provider_1.USDC_ARBITRUM, token_provider_1.USDC_NATIVE_ARBITRUM, token_provider_1.USDT_ARBITRUM, token_provider_1.ARB_ARBITRUM, ], [chains_1.ChainId.ARBITRUM_GOERLI]: [], [chains_1.ChainId.ARBITRUM_SEPOLIA]: [], [chains_1.ChainId.OPTIMISM_GOERLI]: [], [chains_1.ChainId.OPTIMISM_SEPOLIA]: [], [chains_1.ChainId.POLYGON]: [ (0, util_1.nativeOnChain)(chains_1.ChainId.POLYGON), token_provider_1.USDC_POLYGON, token_provider_1.WETH_POLYGON, token_provider_1.WMATIC_POLYGON, ], [chains_1.ChainId.POLYGON_MUMBAI]: [], [chains_1.ChainId.CELO]: [token_provider_1.CELO, token_provider_1.CUSD_CELO, token_provider_1.CEUR_CELO, token_provider_1.DAI_CELO], [chains_1.ChainId.CELO_ALFAJORES]: [], [chains_1.ChainId.GNOSIS]: [], [chains_1.ChainId.MOONBEAM]: [ util_1.WRAPPED_NATIVE_CURRENCY[chains_1.ChainId.MOONBEAM], token_provider_1.DAI_MOONBEAM, token_provider_1.USDC_MOONBEAM, token_provider_1.WBTC_MOONBEAM, ], [chains_1.ChainId.BNB]: [ (0, util_1.nativeOnChain)(chains_1.ChainId.BNB), util_1.WRAPPED_NATIVE_CURRENCY[chains_1.ChainId.BNB], token_provider_1.BUSD_BNB, token_provider_1.DAI_BNB, token_provider_1.USDC_BNB, token_provider_1.USDT_BNB, token_provider_1.BTC_BNB, token_provider_1.ETH_BNB, ], [chains_1.ChainId.AVALANCHE]: [ util_1.WRAPPED_NATIVE_CURRENCY[chains_1.ChainId.AVALANCHE], token_provider_1.USDC_AVAX, token_provider_1.DAI_AVAX, ], [chains_1.ChainId.BASE_GOERLI]: [], [chains_1.ChainId.BASE]: [ (0, util_1.nativeOnChain)(chains_1.ChainId.BASE), util_1.WRAPPED_NATIVE_CURRENCY[chains_1.ChainId.BASE], token_provider_1.USDC_BASE, ], [chains_1.ChainId.ZORA]: [ (0, util_1.nativeOnChain)(chains_1.ChainId.ZORA), util_1.WRAPPED_NATIVE_CURRENCY[chains_1.ChainId.ZORA], ], [chains_1.ChainId.ZORA_SEPOLIA]: [util_1.WRAPPED_NATIVE_CURRENCY[chains_1.ChainId.ZORA_SEPOLIA]], [chains_1.ChainId.ROOTSTOCK]: [util_1.WRAPPED_NATIVE_CURRENCY[chains_1.ChainId.ROOTSTOCK]], [chains_1.ChainId.BLAST]: [ (0, util_1.nativeOnChain)(chains_1.ChainId.BLAST), util_1.WRAPPED_NATIVE_CURRENCY[chains_1.ChainId.BLAST], token_provider_1.USDB_BLAST, ], [chains_1.ChainId.ZKSYNC]: [ util_1.WRAPPED_NATIVE_CURRENCY[chains_1.ChainId.ZKSYNC], token_provider_1.USDCE_ZKSYNC, token_provider_1.USDC_ZKSYNC, ], [chains_1.ChainId.WORLDCHAIN]: [ (0, util_1.nativeOnChain)(chains_1.ChainId.WORLDCHAIN), util_1.WRAPPED_NATIVE_CURRENCY[chains_1.ChainId.WORLDCHAIN], token_provider_1.USDC_WORLDCHAIN, token_provider_1.WLD_WORLDCHAIN, token_provider_1.WBTC_WORLDCHAIN, ], [chains_1.ChainId.UNICHAIN_SEPOLIA]: [ (0, util_1.nativeOnChain)(chains_1.ChainId.UNICHAIN_SEPOLIA), util_1.WRAPPED_NATIVE_CURRENCY[chains_1.ChainId.UNICHAIN_SEPOLIA], token_provider_1.USDC_UNICHAIN_SEPOLIA, ], [chains_1.ChainId.UNICHAIN]: [ (0, util_1.nativeOnChain)(chains_1.ChainId.UNICHAIN), util_1.WRAPPED_NATIVE_CURRENCY[chains_1.ChainId.UNICHAIN], token_provider_1.DAI_UNICHAIN, token_provider_1.USDC_UNICHAIN, ], [chains_1.ChainId.BASE_SEPOLIA]: [ (0, util_1.nativeOnChain)(chains_1.ChainId.BASE_SEPOLIA), util_1.WRAPPED_NATIVE_CURRENCY[chains_1.ChainId.BASE_SEPOLIA], token_provider_1.USDC_BASE_SEPOLIA, ], [chains_1.ChainId.MONAD_TESTNET]: [ (0, util_1.nativeOnChain)(chains_1.ChainId.MONAD_TESTNET), util_1.WRAPPED_NATIVE_CURRENCY[chains_1.ChainId.MONAD_TESTNET], token_provider_1.USDT_MONAD_TESTNET, ], [chains_1.ChainId.SONEIUM]: [ (0, util_1.nativeOnChain)(chains_1.ChainId.SONEIUM), util_1.WRAPPED_NATIVE_CURRENCY[chains_1.ChainId.SONEIUM], token_provider_1.USDC_SONEIUM, ], [chains_1.ChainId.BLOCKDAG_TESTNET]: [ (0, util_1.nativeOnChain)(chains_1.ChainId.BLOCKDAG_TESTNET), util_1.WRAPPED_NATIVE_CURRENCY[chains_1.ChainId.BLOCKDAG_TESTNET], ], }; class CachingSubgraphProvider { /** * Creates an instance of CachingV3SubgraphProvider. * @param chainId The chain id to use. * @param subgraphProvider The provider to use to get the subgraph pools when not in the cache. * @param cache Cache instance to hold cached pools. * @param protocol Subgraph protocol version */ constructor(chainId, subgraphProvider, cache, protocol) { this.chainId = chainId; this.subgraphProvider = subgraphProvider; this.cache = cache; this.protocol = protocol; this.SUBGRAPH_KEY = (chainId) => `subgraph-pools-${this.protocol}-${chainId}`; } async getPools() { const cachedPools = await this.cache.get(this.SUBGRAPH_KEY(this.chainId)); if (cachedPools) { return cachedPools; } const pools = await this.subgraphProvider.getPools(); await this.cache.set(this.SUBGRAPH_KEY(this.chainId), pools); return pools; } } exports.CachingSubgraphProvider = CachingSubgraphProvider; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGluZy1zdWJncmFwaC1wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wcm92aWRlcnMvY2FjaGluZy1zdWJncmFwaC1wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxrREFBZ0Q7QUFJaEQsa0NBQWlFO0FBSWpFLHFEQWdEMEI7QUFPYixRQUFBLDZCQUE2QixHQUFtQjtJQUMzRCxDQUFDLGdCQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7UUFDakIsSUFBQSxvQkFBYSxFQUFDLGdCQUFPLENBQUMsT0FBTyxDQUFDO1FBQzlCLDhCQUF1QixDQUFDLGdCQUFPLENBQUMsT0FBTyxDQUFFO1FBQ3pDLDRCQUFXO1FBQ1gsNkJBQVk7UUFDWiw2QkFBWTtRQUNaLDZCQUFZO1FBQ1osK0JBQWM7S0FDZjtJQUNELENBQUMsZ0JBQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLDhCQUF1QixDQUFDLGdCQUFPLENBQUMsTUFBTSxDQUFFLENBQUM7SUFDNUQsQ0FBQyxnQkFBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ2pCLElBQUEsb0JBQWEsRUFBQyxnQkFBTyxDQUFDLE9BQU8sQ0FBQztRQUM5Qiw4QkFBdUIsQ0FBQyxnQkFBTyxDQUFDLE9BQU8sQ0FBRTtLQUMxQztJQUNELG1HQUFtRztJQUNuRyxDQUFDLGdCQUFPLENBQUMsUUFBUSxDQUFDLEVBQUU7UUFDbEIsSUFBQSxvQkFBYSxFQUFDLGdCQUFPLENBQUMsUUFBUSxDQUFDO1FBQy9CLDhCQUF1QixDQUFDLGdCQUFPLENBQUMsUUFBUSxDQUFFO1FBQzFDLDhCQUFhO1FBQ2IsNkJBQVk7UUFDWiw4QkFBYTtRQUNiLDhCQUFhO1FBQ2IsNEJBQVc7S0FDWjtJQUNELENBQUMsZ0JBQU8sQ0FBQyxZQUFZLENBQUMsRUFBRTtRQUN0QixJQUFBLG9CQUFhLEVBQUMsZ0JBQU8sQ0FBQyxZQUFZLENBQUM7UUFDbkMsOEJBQXVCLENBQUMsZ0JBQU8s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