UNPKG

mev-inspect

Version:

A JS port of 'mev-inspect-py' optimised for ease of use.

114 lines 3.11 kB
import poolAbi from '../../abi/aaveV3Pool.js'; import { isValidPool } from '../index.js'; function isValid(event, address, chainId) { return (event.name === 'LiquidationCall' && isValidPool(chainId, 'AaveV3', address.toLowerCase())); } function getMarketCalls() { return []; } function processMarketCalls(_chainId, address) { return { poolAddress: address.toLowerCase(), }; } function parseRepayment(market, event) { const { values, transactionFrom, transactionHash: hash, transactionIndex, gasUsed, logIndex, address, blockHash, blockNumber, } = event; const asset = values.debtAsset.toLowerCase(); const borrower = values.user.toLowerCase(); const amount = values.debtToCover; const payer = values.liquidator.toLowerCase(); return { contract: { address: market.address, protocol: { abi: 'AaveV3', pool: market.pool, }, }, block: { hash: blockHash, number: blockNumber, }, transaction: { from: transactionFrom.toLowerCase(), hash, index: transactionIndex, gasUsed, }, event: { logIndex, address: address.toLowerCase(), }, payer, borrower, asset: { type: 'erc20', address: asset, }, amount, }; } function parseSeizure(market, event) { const { values, transactionFrom, transactionHash: hash, transactionIndex, gasUsed, logIndex, address, blockHash, blockNumber, } = event; const asset = values.collateralAsset.toLowerCase(); const borrower = values.user.toLowerCase(); const amount = values.liquidatedCollateralAmount; const seizor = values.liquidator.toLowerCase(); return { contract: { address: market.address, protocol: { abi: 'AaveV3', pool: market.pool, }, }, block: { hash: blockHash, number: blockNumber, }, transaction: { from: transactionFrom.toLowerCase(), hash, index: transactionIndex, gasUsed, }, event: { logIndex, address: address.toLowerCase(), }, seizor, borrower, asset: { type: 'erc20', address: asset, }, amount, }; } const CLASSIFIERS = { repayment: { type: 'repayment', protocol: 'AaveV3', abi: poolAbi, isValid, parse: parseRepayment, market: { getCalls: getMarketCalls, processCalls: processMarketCalls, }, }, seizure: { type: 'seizure', protocol: 'AaveV3', abi: poolAbi, isValid, parse: parseSeizure, market: { getCalls: getMarketCalls, processCalls: processMarketCalls, }, }, }; export default CLASSIFIERS; //# sourceMappingURL=aaveV3.js.map