Commit 539a6e05 authored by Moody Salem's avatar Moody Salem

don't fetch pool tick data

parent 3693c83b
{ {
"name": "Uniswap V2 Unsupported List", "name": "Unsupported Tokens",
"timestamp": "2021-01-05T20:47:02.923Z", "timestamp": "2021-01-05T20:47:02.923Z",
"version": { "version": {
"major": 1, "major": 1,
......
import { computePoolAddress, Tick } from '@uniswap/v3-sdk' import { computePoolAddress } from '@uniswap/v3-sdk'
import { ZERO_ADDRESS } from './../constants/index' import { ZERO_ADDRESS } from './../constants/index'
import { Currency } from '@uniswap/sdk-core' import { Currency } from '@uniswap/sdk-core'
import { useMemo } from 'react' import { useMemo } from 'react'
...@@ -8,7 +8,6 @@ import { wrappedCurrency } from '../utils/wrappedCurrency' ...@@ -8,7 +8,6 @@ import { wrappedCurrency } from '../utils/wrappedCurrency'
import { Pool, FeeAmount } from '@uniswap/v3-sdk' import { Pool, FeeAmount } from '@uniswap/v3-sdk'
import { useV3Factory, useV3Pool } from 'hooks/useContract' import { useV3Factory, useV3Pool } from 'hooks/useContract'
import { V3_CORE_FACTORY_ADDRESSES } from 'constants/v3' import { V3_CORE_FACTORY_ADDRESSES } from 'constants/v3'
import { useAllV3Ticks } from 'hooks/useAllV3Ticks'
export enum PoolState { export enum PoolState {
LOADING = 'LOADING', LOADING = 'LOADING',
...@@ -71,13 +70,9 @@ export function usePool(currencyA?: Currency, currencyB?: Currency, feeAmount?: ...@@ -71,13 +70,9 @@ export function usePool(currencyA?: Currency, currencyB?: Currency, feeAmount?:
const liquidity = liquidityResult?.[0] const liquidity = liquidityResult?.[0]
// fetch tick data for pool
const { tickData, loading: tickLoading, syncing: tickSyncing } = useAllV3Ticks(token0, token1, feeAmount)
return useMemo(() => { return useMemo(() => {
// still loading data // still loading data
if (slot0Loading || addressesLoading || liquidityLoading || tickLoading || tickSyncing) if (slot0Loading || addressesLoading || liquidityLoading) return [PoolState.LOADING, null]
return [PoolState.LOADING, null]
// invalid pool setup // invalid pool setup
if (!tokenA || !tokenB || !feeAmount || tokenA.equals(tokenB)) return [PoolState.INVALID, null] if (!tokenA || !tokenB || !feeAmount || tokenA.equals(tokenB)) return [PoolState.INVALID, null]
...@@ -87,17 +82,7 @@ export function usePool(currencyA?: Currency, currencyB?: Currency, feeAmount?: ...@@ -87,17 +82,7 @@ export function usePool(currencyA?: Currency, currencyB?: Currency, feeAmount?:
return [PoolState.NOT_EXISTS, null] return [PoolState.NOT_EXISTS, null]
} }
const tickList: Tick[] = tickData return [PoolState.EXISTS, new Pool(tokenA, tokenB, feeAmount, slot0.sqrtPriceX96, liquidity, slot0.tick)]
.map((tick) => {
return new Tick({
index: tick.tick,
liquidityGross: tick.liquidityGross,
liquidityNet: tick.liquidityNet,
})
})
.sort((tickA, tickB) => (tickA.index > tickB.index ? 1 : -1))
return [PoolState.EXISTS, new Pool(tokenA, tokenB, feeAmount, slot0.sqrtPriceX96, liquidity, slot0.tick, tickList)]
}, [ }, [
addressesLoading, addressesLoading,
feeAmount, feeAmount,
...@@ -106,9 +91,6 @@ export function usePool(currencyA?: Currency, currencyB?: Currency, feeAmount?: ...@@ -106,9 +91,6 @@ export function usePool(currencyA?: Currency, currencyB?: Currency, feeAmount?:
poolAddressFromFactory, poolAddressFromFactory,
slot0, slot0,
slot0Loading, slot0Loading,
tickData,
tickLoading,
tickSyncing,
tokenA, tokenA,
tokenB, tokenB,
]) ])
......
...@@ -18,6 +18,7 @@ interface TickData { ...@@ -18,6 +18,7 @@ interface TickData {
liquidityGross: number liquidityGross: number
} }
/// for now, reconsider using this function, it consumes a lot of data and cpu to fetch all the ticks.
export function useAllV3Ticks( export function useAllV3Ticks(
token0: Token | undefined, token0: Token | undefined,
token1: Token | undefined, token1: Token | undefined,
......
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment