@maxosllc/smart-order-router
Version:
BlockDAG Smart Order Router
163 lines • 12.7 kB
JavaScript
"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 = {
[]: [
(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,
],
[]: [util_1.WRAPPED_NATIVE_CURRENCY[chains_1.ChainId.GOERLI]],
[]: [
(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
[]: [
(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,
],
[]: [
(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,
],
[]: [],
[]: [],
[]: [],
[]: [],
[]: [
(0, util_1.nativeOnChain)(chains_1.ChainId.POLYGON),
token_provider_1.USDC_POLYGON,
token_provider_1.WETH_POLYGON,
token_provider_1.WMATIC_POLYGON,
],
[]: [],
[]: [token_provider_1.CELO, token_provider_1.CUSD_CELO, token_provider_1.CEUR_CELO, token_provider_1.DAI_CELO],
[]: [],
[]: [],
[]: [
util_1.WRAPPED_NATIVE_CURRENCY[chains_1.ChainId.MOONBEAM],
token_provider_1.DAI_MOONBEAM,
token_provider_1.USDC_MOONBEAM,
token_provider_1.WBTC_MOONBEAM,
],
[]: [
(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,
],
[]: [
util_1.WRAPPED_NATIVE_CURRENCY[chains_1.ChainId.AVALANCHE],
token_provider_1.USDC_AVAX,
token_provider_1.DAI_AVAX,
],
[]: [],
[]: [
(0, util_1.nativeOnChain)(chains_1.ChainId.BASE),
util_1.WRAPPED_NATIVE_CURRENCY[chains_1.ChainId.BASE],
token_provider_1.USDC_BASE,
],
[]: [
(0, util_1.nativeOnChain)(chains_1.ChainId.ZORA),
util_1.WRAPPED_NATIVE_CURRENCY[chains_1.ChainId.ZORA],
],
[]: [util_1.WRAPPED_NATIVE_CURRENCY[chains_1.ChainId.ZORA_SEPOLIA]],
[]: [util_1.WRAPPED_NATIVE_CURRENCY[chains_1.ChainId.ROOTSTOCK]],
[]: [
(0, util_1.nativeOnChain)(chains_1.ChainId.BLAST),
util_1.WRAPPED_NATIVE_CURRENCY[chains_1.ChainId.BLAST],
token_provider_1.USDB_BLAST,
],
[]: [
util_1.WRAPPED_NATIVE_CURRENCY[chains_1.ChainId.ZKSYNC],
token_provider_1.USDCE_ZKSYNC,
token_provider_1.USDC_ZKSYNC,
],
[]: [
(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,
],
[]: [
(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,
],
[]: [
(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,
],
[]: [
(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,
],
[]: [
(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,
],
[]: [
(0, util_1.nativeOnChain)(chains_1.ChainId.SONEIUM),
util_1.WRAPPED_NATIVE_CURRENCY[chains_1.ChainId.SONEIUM],
token_provider_1.USDC_SONEIUM,
],
[]: [
(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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