|
1 | 1 | /* eslint-disable prefer-const */ |
2 | | -import { BigInt, BigDecimal, store, Address } from '@graphprotocol/graph-ts' |
| 2 | +import { BigInt, BigDecimal, store, Address, log } from '@graphprotocol/graph-ts' |
3 | 3 | import { |
4 | 4 | Pair, |
5 | 5 | Token, |
|
8 | 8 | Mint as MintEvent, |
9 | 9 | Burn as BurnEvent, |
10 | 10 | Swap as SwapEvent, |
11 | | - Bundle |
| 11 | + Bundle, LiquidityPosition |
12 | 12 | } from '../types/schema' |
13 | 13 | import { Pair as PairContract, Mint, Burn, Swap, Transfer, Sync } from '../types/templates/Pair/Pair' |
14 | 14 | import { updatePairDayData, updateTokenDayData, updateUniswapDayData, updatePairHourData } from './dayUpdates' |
@@ -197,16 +197,24 @@ export function handleTransfer(event: Transfer): void { |
197 | 197 |
|
198 | 198 | if (from.toHexString() != ADDRESS_ZERO && from.toHexString() != pair.id) { |
199 | 199 | let fromUserLiquidityPosition = createLiquidityPosition(event.address, from) |
200 | | - fromUserLiquidityPosition.liquidityTokenBalance = convertTokenToDecimal(pairContract.balanceOf(from), BI_18) |
201 | | - fromUserLiquidityPosition.save() |
202 | | - createLiquiditySnapshot(fromUserLiquidityPosition, event) |
| 200 | + if (fromUserLiquidityPosition !== null) { |
| 201 | + fromUserLiquidityPosition.liquidityTokenBalance = convertTokenToDecimal(pairContract.balanceOf(from), BI_18) |
| 202 | + fromUserLiquidityPosition.save() |
| 203 | + createLiquiditySnapshot(fromUserLiquidityPosition as LiquidityPosition, event) |
| 204 | + } |
203 | 205 | } |
204 | 206 |
|
205 | 207 | if (event.params.to.toHexString() != ADDRESS_ZERO && to.toHexString() != pair.id) { |
206 | | - let toUserLiquidityPosition = createLiquidityPosition(event.address, to) |
207 | | - toUserLiquidityPosition.liquidityTokenBalance = convertTokenToDecimal(pairContract.balanceOf(to), BI_18) |
208 | | - toUserLiquidityPosition.save() |
209 | | - createLiquiditySnapshot(toUserLiquidityPosition, event) |
| 208 | + if (to.toHexString() !== ADDRESS_ZERO) { |
| 209 | + let toUserLiquidityPosition = createLiquidityPosition(event.address, to) |
| 210 | + if (toUserLiquidityPosition !== null) { |
| 211 | + toUserLiquidityPosition.liquidityTokenBalance = convertTokenToDecimal(pairContract.balanceOf(to), BI_18) |
| 212 | + toUserLiquidityPosition.save() |
| 213 | + createLiquiditySnapshot(toUserLiquidityPosition as LiquidityPosition, event) |
| 214 | + } |
| 215 | + } else { |
| 216 | + log.warning('Detected 0 address in handleTransfer', []) |
| 217 | + } |
210 | 218 | } |
211 | 219 |
|
212 | 220 | transaction.save() |
@@ -320,9 +328,17 @@ export function handleMint(event: Mint): void { |
320 | 328 | mint.amountUSD = amountTotalUSD as BigDecimal |
321 | 329 | mint.save() |
322 | 330 |
|
323 | | - // update the LP position |
324 | | - let liquidityPosition = createLiquidityPosition(event.address, mint.to as Address) |
325 | | - createLiquiditySnapshot(liquidityPosition, event) |
| 331 | + let to = mint.to as Address |
| 332 | + if (to.toHexString() !== ADDRESS_ZERO) { |
| 333 | + let liquidityPosition = createLiquidityPosition(event.address, to) |
| 334 | + if (liquidityPosition !== null) { |
| 335 | + createLiquiditySnapshot(liquidityPosition as LiquidityPosition, event) |
| 336 | + } else { |
| 337 | + log.warning('null position in handleMint', []) |
| 338 | + } |
| 339 | + } else { |
| 340 | + log.warning('Detected 0 address in handleMint', []) |
| 341 | + } |
326 | 342 |
|
327 | 343 | // update day entities |
328 | 344 | updatePairDayData(event) |
@@ -383,8 +399,22 @@ export function handleBurn(event: Burn): void { |
383 | 399 | burn.save() |
384 | 400 |
|
385 | 401 | // update the LP position |
386 | | - let liquidityPosition = createLiquidityPosition(event.address, burn.sender as Address) |
387 | | - createLiquiditySnapshot(liquidityPosition, event) |
| 402 | + let to = burn.sender as Address |
| 403 | + if (burn.sender.toHexString() != '0x') { |
| 404 | + let liquidityPosition = createLiquidityPosition(event.address, to) |
| 405 | + if (liquidityPosition !== null) { |
| 406 | + createLiquiditySnapshot(liquidityPosition as LiquidityPosition, event) |
| 407 | + } else { |
| 408 | + log.warning('null position in handleBurn: ' |
| 409 | + .concat(burn.sender.toHexString()).concat(' ') |
| 410 | + .concat(ADDRESS_ZERO) |
| 411 | + .concat(', tx_hash: ') |
| 412 | + .concat(event.transaction.hash.toHexString()), []) |
| 413 | + } |
| 414 | + } else { |
| 415 | + log.warning('Detected 0x address in handleBurn'.concat(', tx_hash: ') |
| 416 | + .concat(event.transaction.hash.toHexString()), []) |
| 417 | + } |
388 | 418 |
|
389 | 419 | // update day entities |
390 | 420 | updatePairDayData(event) |
|
0 commit comments