Skip to content

Commit

Permalink
Merge pull request #1511 from sushiswap/fix-jobs-pool-old-data
Browse files Browse the repository at this point in the history
fix(jobs/pool): thegraph returning old data
  • Loading branch information
OlaStenberg authored Jun 20, 2024
2 parents 88c2246 + 6210d85 commit ad0f77b
Showing 1 changed file with 61 additions and 2 deletions.
63 changes: 61 additions & 2 deletions jobs/pool/src/pools.ts
Original file line number Diff line number Diff line change
Expand Up @@ -667,10 +667,15 @@ function transformV2(queryResult: {
]),
)

const chainsToSkip = new Set<ChainId>()
const tokens: Prisma.TokenCreateManyInput[] = []

return {
pools: queryResult.data.currentPools.map((pair) => {
pools: queryResult.data.currentPools.flatMap((pair) => {
if (chainsToSkip.has(queryResult.chainId)) {
return []
}

tokens.push(
Prisma.validator<Prisma.TokenCreateManyInput>()({
id: pair.token0.id.toLowerCase(),
Expand Down Expand Up @@ -704,6 +709,30 @@ function transformV2(queryResult: {
const currentLiquidityUSD = Number(pair.liquidityUSD)
const currentFeesUSD = Number(pair.volumeUSD * 0.003)

const anyNotCurrent =
oneHourData.get(pair.id) ||
twoHourData.get(pair.id) ||
oneDayData.get(pair.id) ||
twoDayData.get(pair.id) ||
oneWeekData.get(pair.id) ||
twoWeekData.get(pair.id) ||
oneMonthData.get(pair.id) ||
twoMonthData.get(pair.id)

// A way to prevent old data (thanks TheGraph!) from being added
if (anyNotCurrent && anyNotCurrent.volumeUSD > currentVolumeUSD) {
console.warn(
'Ignoring chain',
queryResult.chainId,
'Old Volume:',
anyNotCurrent.volumeUSD,
'Current Volume:',
currentVolumeUSD,
)
chainsToSkip.add(queryResult.chainId)
return []
}

const feeApr1h = calculateFeeApr(
AprTimeRange.ONE_HOUR,
oneHourData.get(pair.id)?.feesUSD ?? currentFeesUSD,
Expand Down Expand Up @@ -952,8 +981,14 @@ function transformV3(queryResult: { chainId: ChainId; data: V3Data }) {
},
]),
)

const chainsToSkip = new Set<ChainId>()
const tokens: Prisma.TokenCreateManyInput[] = []
const poolsTransformed = queryResult.data.currentPools.map((pair) => {
const poolsTransformed = queryResult.data.currentPools.flatMap((pair) => {
if (chainsToSkip.has(queryResult.chainId)) {
return []
}

tokens.push(
Prisma.validator<Prisma.TokenCreateManyInput>()({
id: pair.token0.id.toLowerCase(),
Expand Down Expand Up @@ -986,6 +1021,30 @@ function transformV3(queryResult: { chainId: ChainId; data: V3Data }) {
const currentLiquidityUSD = Number(pair.liquidityUSD)
const currentFeesUSD = Number(pair.feesUSD)

const anyNotCurrent =
oneHourData.get(pair.id) ||
twoHourData.get(pair.id) ||
oneDayData.get(pair.id) ||
twoDayData.get(pair.id) ||
oneWeekData.get(pair.id) ||
twoWeekData.get(pair.id) ||
oneMonthData.get(pair.id) ||
twoMonthData.get(pair.id)

// A way to prevent old data (thanks TheGraph!) from being added
if (anyNotCurrent && anyNotCurrent.volumeUSD > currentVolumeUSD) {
console.warn(
'Ignoring chain',
queryResult.chainId,
'Old Volume:',
anyNotCurrent.volumeUSD,
'Current Volume:',
currentVolumeUSD,
)
chainsToSkip.add(queryResult.chainId)
return []
}

const feeApr1h = calculateFeeApr(
AprTimeRange.ONE_HOUR,
oneHourData.get(pair.id)?.feesUSD ?? currentFeesUSD,
Expand Down

0 comments on commit ad0f77b

Please sign in to comment.