Skip to content

Commit

Permalink
add v2 console log pool reserve
Browse files Browse the repository at this point in the history
  • Loading branch information
jsy1218 committed Feb 7, 2024
1 parent 0bf9db1 commit e7bca1c
Show file tree
Hide file tree
Showing 5 changed files with 69 additions and 4 deletions.
4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@uniswap/smart-order-router",
"version": "3.21.1",
"version": "3.21.0-arb-on-v2-1",
"description": "Uniswap Smart Order Router",
"main": "build/main/index.js",
"typings": "build/main/index.d.ts",
Expand Down
2 changes: 2 additions & 0 deletions src/providers/v2/pool-provider.ts
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,8 @@ export class V2PoolProvider implements IV2PoolProvider {
tokenB
);

console.log(`poolAddress ${poolAddress} token0 ${token0.address} token1 ${token1.address}`)

if (poolAddressSet.has(poolAddress)) {
continue;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -230,12 +230,17 @@ export class V2HeuristicGasModelFactory extends IV2GasModelFactory {
);
}

console.log(`usdTokens ${JSON.stringify(usdTokens)}`)

const usdPools = _.map<Token, [Token, Token]>(usdTokens, (usdToken) => [
usdToken,
WRAPPED_NATIVE_CURRENCY[chainId]!,
]);
const poolAccessor = await poolProvider.getPools(usdPools, providerConfig);
const poolsRaw = poolAccessor.getAllPools();
console.log(`poolsRaw ${JSON.stringify(poolsRaw)} reserve0
${JSON.stringify(poolsRaw.map(pool => pool.reserve1.greaterThan(0)))}`)

const pools = _.filter(
poolsRaw,
(pool) =>
Expand All @@ -251,7 +256,8 @@ export class V2HeuristicGasModelFactory extends IV2GasModelFactory {
{ pools },
`Could not find a USD/WETH pool for computing gas costs.`
);
throw new Error(`Can't find USD/WETH pool for computing gas costs.`);
const error = new Error(`InnerError`);
throw new Error(`Can't find USD/WETH pool for computing gas costs. ${JSON.stringify(poolsRaw)} ${error.stack}`);
}

const maxPool = _.maxBy(pools, (pool) => {
Expand Down
57 changes: 57 additions & 0 deletions test/unit/providers/v2/pool-provider.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
import {
TokenPropertiesProvider,
UniswapMulticallProvider,
V2PoolProvider
} from '../../../../build/main';
import { ChainId, Token } from '@uniswap/sdk-core';
import { JsonRpcProvider } from '@ethersproject/providers';
import {
NodeJSCache,
usdGasTokensByChain, WRAPPED_NATIVE_CURRENCY
} from '../../../../src';
import NodeCache from 'node-cache';
import {
OnChainTokenFeeFetcher
} from '../../../../src/providers/token-fee-fetcher';
import _ from 'lodash';

describe('PoolProvider', () => {
it('pools', async () => {
const chain = ChainId.ARBITRUM_ONE;
const provider = new JsonRpcProvider('https://arbitrum-mainnet.infura.io/v3/1251f92fb3044883b08bd8913471ba6e', chain);
const multicallProvider = new UniswapMulticallProvider(chain, provider);
const tokenFeeFetcher = new OnChainTokenFeeFetcher(
ChainId.MAINNET,
provider
)
const tokenPropertiesProvider = new TokenPropertiesProvider(
ChainId.MAINNET,
new NodeJSCache(new NodeCache({ stdTTL: 360, useClones: false })),
tokenFeeFetcher
)
const poolProvider = new V2PoolProvider(
ChainId.ARBITRUM_ONE,
multicallProvider,
tokenPropertiesProvider
);

const usdTokens = usdGasTokensByChain[chain];
const usdPools = _.map<Token, [Token, Token]>(usdTokens, (usdToken) => [
usdToken,
WRAPPED_NATIVE_CURRENCY[chain]!,
]);

const poolsAccessor = await poolProvider.getPools(usdPools)
const poolsRaw = poolsAccessor.getAllPools();
const pools = _.filter(
poolsRaw,
(pool) =>
pool.reserve0.greaterThan(0) &&
pool.reserve1.greaterThan(0) &&
// this case should never happen in production, but when we mock the pool provider it may return non native pairs
(pool.token0.equals(WRAPPED_NATIVE_CURRENCY[chain]!) ||
pool.token1.equals(WRAPPED_NATIVE_CURRENCY[chain]!))
);
console.log(`pools ${JSON.stringify(pools)}`);
})
});

0 comments on commit e7bca1c

Please sign in to comment.