Skip to content

Commit

Permalink
reorg erc20 pool; abstract additional method
Browse files Browse the repository at this point in the history
  • Loading branch information
Mike committed Sep 12, 2023
1 parent 6f23307 commit ea9d65d
Show file tree
Hide file tree
Showing 3 changed files with 84 additions and 154 deletions.
15 changes: 14 additions & 1 deletion src/mappings/base/base-pool.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ import { incrementTokenTxCount as incrementTokenTxCountERC721Pool } from "../../
import { loadOrCreateReserveAuction, reserveAuctionKickerReward } from "../../utils/pool/reserve-auction"
import { saveOrRemovePositionLend } from "../../utils/position"
import { decreaseAllowances, increaseAllowances, loadOrCreateAllowances, revokeAllowances } from "../../utils/pool/lp-allowances"
import { loadOrCreateTransferors, revokeTransferors } from "../../utils/pool/lp-transferors"
import { approveTransferors, loadOrCreateTransferors, revokeTransferors } from "../../utils/pool/lp-transferors"


/*******************************/
Expand Down Expand Up @@ -504,6 +504,19 @@ export function _handleTransferLP(erc20Event: TransferLPERC20Event | null, erc72
/*** LPB Management Event Handlers ***/
/*************************************/

export function _handleApproveLPTransferors(event: ethereum.Event, lender: Address, transferors: Address[]): void {
const poolId = addressToBytes(event.address)
const entity = loadOrCreateTransferors(poolId, lender)
approveTransferors(entity, transferors)

const pool = Pool.load(poolId)!
pool.txCount = pool.txCount.plus(ONE_BI)

// save entities to the store
pool.save()
entity.save()
}

export function _handleDecreaseLPAllowance(event: ethereum.Event, spender: Address, indexes: BigInt[], amounts: BigInt[]): void {
const poolId = addressToBytes(event.address)
const lender = event.transaction.from
Expand Down
138 changes: 49 additions & 89 deletions src/mappings/erc-20-pool.ts
Original file line number Diff line number Diff line change
Expand Up @@ -57,8 +57,7 @@ import { updatePool, addLiquidationToPool } from "../utils/pool/pool"
import { lpbValueInQuote } from "../utils/pool/lend"
import { incrementTokenTxCount } from "../utils/token-erc20"
import { approveTransferors, loadOrCreateTransferors, revokeTransferors } from "../utils/pool/lp-transferors"
import { loadOrCreateAllowances, increaseAllowances, decreaseAllowances, revokeAllowances } from "../utils/pool/lp-allowances"
import { _handleAddQuoteToken, _handleBucketBankruptcy, _handleDecreaseLPAllowance, _handleFlashLoan, _handleIncreaseLPAllowance, _handleInterestRateEvent, _handleLoanStamped, _handleMoveQuoteToken, _handleRemoveQuoteToken, _handleReserveAuctionKick, _handleReserveAuctionTake, _handleRevokeLPAllowance, _handleRevokeLPTransferors, _handleTransferLP } from "./base/base-pool"
import { _handleAddQuoteToken, _handleApproveLPTransferors, _handleBucketBankruptcy, _handleDecreaseLPAllowance, _handleFlashLoan, _handleIncreaseLPAllowance, _handleInterestRateEvent, _handleLoanStamped, _handleMoveQuoteToken, _handleRemoveQuoteToken, _handleReserveAuctionKick, _handleReserveAuctionTake, _handleRevokeLPAllowance, _handleRevokeLPTransferors, _handleTransferLP } from "./base/base-pool"

export function handleAddCollateral(event: AddCollateralEvent): void {
const addCollateral = new AddCollateral(
Expand Down Expand Up @@ -128,16 +127,6 @@ export function handleAddQuoteToken(event: AddQuoteTokenEvent): void {
_handleAddQuoteToken(event, null)
}

export function handleApproveLPTransferors(
event: ApproveLPTransferorsEvent
): void {
const poolId = addressToBytes(event.address)
const entity = loadOrCreateTransferors(poolId, event.params.lender)
approveTransferors(entity, event.params.transferors)

entity.save()
}

// ERC20Pool only
// emitted in conjunction with Settle
export function handleAuctionSettle(event: AuctionSettleEvent): void {
Expand Down Expand Up @@ -331,22 +320,6 @@ export function handleBucketTakeLPAwarded(
bucketTake.save()
}

export function handleDecreaseLPAllowance(event: DecreaseLPAllowanceEvent): void {
// const poolId = addressToBytes(event.address)
// const lender = event.transaction.from
// const entity = loadOrCreateAllowances(poolId, lender, event.params.spender)
// decreaseAllowances(entity, event.params.indexes, event.params.amounts)

// const pool = Pool.load(poolId)
// if (pool != null) {
// pool.txCount = pool.txCount.plus(ONE_BI)
// pool.save()
// }

// entity.save()
_handleDecreaseLPAllowance(event, event.params.spender, event.params.indexes, event.params.amounts)
}

export function handleDrawDebt(event: DrawDebtEvent): void {
const drawDebt = new DrawDebt(
event.transaction.hash.concatI32(event.logIndex.toI32())
Expand Down Expand Up @@ -402,22 +375,6 @@ export function handleFlashloan(event: FlashloanEvent): void {
_handleFlashLoan(event, event.params.token, event.params.receiver, event.params.amount)
}

export function handleIncreaseLPAllowance(event: IncreaseLPAllowanceEvent): void {
// const poolId = addressToBytes(event.address)
// const lender = event.transaction.from
// const entity = loadOrCreateAllowances(poolId, lender, event.params.spender)
// increaseAllowances(entity, event.params.indexes, event.params.amounts)

// const pool = Pool.load(poolId)
// if (pool != null) {
// pool.txCount = pool.txCount.plus(ONE_BI)
// pool.save()
// }

// entity.save()
_handleIncreaseLPAllowance(event, event.params.spender, event.params.indexes, event.params.amounts)
}

export function handleKick(event: KickEvent): void {
const kick = new Kick(
event.transaction.hash.concatI32(event.logIndex.toI32())
Expand Down Expand Up @@ -619,51 +576,6 @@ export function handleRepayDebt(event: RepayDebtEvent): void {
repayDebt.save()
}

export function handleReserveAuctionKick(event: KickReserveAuctionEvent): void {
_handleReserveAuctionKick(event, event.params.currentBurnEpoch, event.params.claimableReservesRemaining, event.params.auctionPrice)
}

export function handleReserveAuctionTake(event: ReserveAuctionEvent): void {
_handleReserveAuctionTake(event, event.params.currentBurnEpoch, event.params.claimableReservesRemaining, event.params.auctionPrice)
}

export function handleResetInterestRate(event: ResetInterestRateEvent): void {
_handleInterestRateEvent(event.address, event, event.params.newRate);
}

export function handleRevokeLPAllowance(event: RevokeLPAllowanceEvent): void {
// const poolId = addressToBytes(event.address)
// const lender = event.transaction.from
// const entity = loadOrCreateAllowances(poolId, lender, event.params.spender)
// revokeAllowances(entity, event.params.indexes)

// const pool = Pool.load(poolId)
// if (pool != null) {
// pool.txCount = pool.txCount.plus(ONE_BI)
// pool.save()
// }

// entity.save()
_handleRevokeLPAllowance(event, event.params.spender, event.params.indexes)
}

export function handleRevokeLPTransferors(
event: RevokeLPTransferorsEvent
): void {
// const poolId = addressToBytes(event.address)
// const entity = loadOrCreateTransferors(poolId, event.params.lender)
// revokeTransferors(entity, event.params.transferors)

// const pool = Pool.load(poolId)
// if (pool != null) {
// pool.txCount = pool.txCount.plus(ONE_BI)
// pool.save()
// }

// entity.save()
_handleRevokeLPTransferors(event, event.params.lender, event.params.transferors)
}

export function handleTake(event: TakeEvent): void {
const take = new Take(
event.transaction.hash.concatI32(event.logIndex.toI32())
Expand Down Expand Up @@ -783,11 +695,59 @@ export function handleSettle(event: SettleEvent): void {
settle.save()
}

/*************************************/
/*** LPB Management Event Handlers ***/
/*************************************/

export function handleApproveLPTransferors(
event: ApproveLPTransferorsEvent
): void {
_handleApproveLPTransferors(event, event.params.lender, event.params.transferors)
}

export function handleDecreaseLPAllowance(event: DecreaseLPAllowanceEvent): void {
_handleDecreaseLPAllowance(event, event.params.spender, event.params.indexes, event.params.amounts)
}

export function handleIncreaseLPAllowance(event: IncreaseLPAllowanceEvent): void {
_handleIncreaseLPAllowance(event, event.params.spender, event.params.indexes, event.params.amounts)
}

export function handleRevokeLPAllowance(event: RevokeLPAllowanceEvent): void {
_handleRevokeLPAllowance(event, event.params.spender, event.params.indexes)
}

export function handleRevokeLPTransferors(
event: RevokeLPTransferorsEvent
): void {
_handleRevokeLPTransferors(event, event.params.lender, event.params.transferors)
}

export function handleTransferLP(event: TransferLPEvent): void {
event = changetype<TransferLPEvent | null>(event)!
_handleTransferLP(event, null)
}

/***************************/
/*** Pool Event Handlers ***/
/***************************/

export function handleResetInterestRate(event: ResetInterestRateEvent): void {
_handleInterestRateEvent(event.address, event, event.params.newRate);
}

export function handleUpdateInterestRate(event: UpdateInterestRateEvent): void {
_handleInterestRateEvent(event.address, event, event.params.newRate);
}

/*******************************/
/*** Reserves Event Handlers ***/
/*******************************/

export function handleReserveAuctionKick(event: KickReserveAuctionEvent): void {
_handleReserveAuctionKick(event, event.params.currentBurnEpoch, event.params.claimableReservesRemaining, event.params.auctionPrice)
}

export function handleReserveAuctionTake(event: ReserveAuctionEvent): void {
_handleReserveAuctionTake(event, event.params.currentBurnEpoch, event.params.claimableReservesRemaining, event.params.auctionPrice)
}
85 changes: 21 additions & 64 deletions src/mappings/erc-721-pool.ts
Original file line number Diff line number Diff line change
Expand Up @@ -57,9 +57,6 @@ import { getLiquidationAuctionId, loadOrCreateLiquidationAuction, updateLiquidat
import { updatePool, addLiquidationToPool, getLenderInfoERC721Pool } from "../utils/pool/pool"
import { lpbValueInQuote } from "../utils/pool/lend"
import { _handleAddQuoteToken, _handleBucketBankruptcy, _handleDecreaseLPAllowance, _handleFlashLoan, _handleIncreaseLPAllowance, _handleInterestRateEvent, _handleLoanStamped, _handleMoveQuoteToken, _handleRemoveQuoteToken, _handleReserveAuctionKick, _handleReserveAuctionTake, _handleRevokeLPAllowance, _handleRevokeLPTransferors, _handleTransferLP } from "./base/base-pool"
import { decreaseAllowances, increaseAllowances, loadOrCreateAllowances, revokeAllowances } from "../utils/pool/lp-allowances"
import { loadOrCreateTransferors, revokeTransferors } from "../utils/pool/lp-transferors"


/*******************************/
/*** Borrower Event Handlers ***/
Expand Down Expand Up @@ -842,72 +839,32 @@ export function handleTake(event: TakeEvent): void {
/*** LPB Management Event Handlers ***/
/*************************************/

// TODO: add to 721 schema
// export function handleApproveLPTransferors(
// event: ApproveLPTransferorsEvent
// ): void {
// _handleApproveLPTransferors(event, event.params.lender, event.params.transferors)
// }

// identical to ERC20Pool
export function handleDecreaseLPAllowance(event: DecreaseLPAllowanceEvent): void {
// const poolId = addressToBytes(event.address)
// const lender = event.transaction.from
// const entity = loadOrCreateAllowances(poolId, lender, event.params.spender)
// decreaseAllowances(entity, event.params.indexes, event.params.amounts)

// const pool = Pool.load(poolId)
// if (pool != null) {
// pool.txCount = pool.txCount.plus(ONE_BI)
// pool.save()
// }

// entity.save()
_handleDecreaseLPAllowance(event, event.params.spender, event.params.indexes, event.params.amounts)
}

// identical to ERC20Pool
export function handleIncreaseLPAllowance(event: IncreaseLPAllowanceEvent): void {
// const poolId = addressToBytes(event.address)
// const lender = event.transaction.from
// const entity = loadOrCreateAllowances(poolId, lender, event.params.spender)
// increaseAllowances(entity, event.params.indexes, event.params.amounts)

// const pool = Pool.load(poolId)
// if (pool != null) {
// pool.txCount = pool.txCount.plus(ONE_BI)
// pool.save()
// }

// entity.save()
_handleIncreaseLPAllowance(event, event.params.spender, event.params.indexes, event.params.amounts)
}

// identical to ERC20Pool
export function handleRevokeLPAllowance(event: RevokeLPAllowanceEvent): void {
// const poolId = addressToBytes(event.address)
// const lender = event.transaction.from
// const entity = loadOrCreateAllowances(poolId, lender, event.params.spender)
// revokeAllowances(entity, event.params.indexes)

// const pool = Pool.load(poolId)
// if (pool != null) {
// pool.txCount = pool.txCount.plus(ONE_BI)
// pool.save()
// }

// entity.save()
_handleRevokeLPAllowance(event, event.params.spender, event.params.indexes)
}

// identical to ERC20Pool
export function handleRevokeLPTransferors(
event: RevokeLPTransferorsEvent
): void {
// const poolId = addressToBytes(event.address)
// const entity = loadOrCreateTransferors(poolId, event.params.lender)
// revokeTransferors(entity, event.params.transferors)

// const pool = Pool.load(poolId)
// if (pool != null) {
// pool.txCount = pool.txCount.plus(ONE_BI)
// pool.save()
// }

// entity.save()
_handleRevokeLPTransferors(event, event.params.lender, event.params.transferors)
}

Expand All @@ -916,20 +873,6 @@ export function handleTransferLP(event: TransferLPEvent): void {
_handleTransferLP(null, event)
}

/*******************************/
/*** Reserves Event Handlers ***/
/*******************************/

// identical to ERC20Pool
export function handleReserveAuctionKick(event: KickReserveAuctionEvent): void {
_handleReserveAuctionKick(event, event.params.currentBurnEpoch, event.params.claimableReservesRemaining, event.params.auctionPrice)
}

// identical to ERC20Pool
export function handleReserveAuctionTake(event: ReserveAuctionEvent): void {
_handleReserveAuctionTake(event, event.params.currentBurnEpoch, event.params.claimableReservesRemaining, event.params.auctionPrice)
}

/***************************/
/*** Pool Event Handlers ***/
/***************************/
Expand All @@ -943,3 +886,17 @@ export function handleResetInterestRate(event: ResetInterestRateEvent): void {
export function handleUpdateInterestRate(event: UpdateInterestRateEvent): void {
_handleInterestRateEvent(event.address, event, event.params.newRate);
}

/*******************************/
/*** Reserves Event Handlers ***/
/*******************************/

// identical to ERC20Pool
export function handleReserveAuctionKick(event: KickReserveAuctionEvent): void {
_handleReserveAuctionKick(event, event.params.currentBurnEpoch, event.params.claimableReservesRemaining, event.params.auctionPrice)
}

// identical to ERC20Pool
export function handleReserveAuctionTake(event: ReserveAuctionEvent): void {
_handleReserveAuctionTake(event, event.params.currentBurnEpoch, event.params.claimableReservesRemaining, event.params.auctionPrice)
}

0 comments on commit ea9d65d

Please sign in to comment.