UNPKG

mev-inspect

Version:

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

120 lines 3.33 kB
import poolAbi from '../../abi/aaveV1Pool.js'; import { isValidPool } from '../index.js'; function isValid(event, address, chainId) { return (event.name === 'LiquidationCall' && isValidPool(chainId, 'AaveV1', 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 = normalizeAsset(values.reserve.toLowerCase()); const borrower = values.user.toLowerCase(); const amount = values.purchaseAmount; const payer = values.liquidator.toLowerCase(); return { contract: { address: market.address, protocol: { abi: 'AaveV1', 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 = normalizeAsset(values.collateral.toLowerCase()); const borrower = values.user.toLowerCase(); const amount = values.liquidatedCollateralAmount; const seizor = values.liquidator.toLowerCase(); return { contract: { address: market.address, protocol: { abi: 'AaveV1', 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, }; } function normalizeAsset(asset) { if (asset == '0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee') { return '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2'; } return asset; } const CLASSIFIERS = { repayment: { type: 'repayment', protocol: 'AaveV1', abi: poolAbi, isValid, parse: parseRepayment, market: { getCalls: getMarketCalls, processCalls: processMarketCalls, }, }, seizure: { type: 'seizure', protocol: 'AaveV1', abi: poolAbi, isValid, parse: parseSeizure, market: { getCalls: getMarketCalls, processCalls: processMarketCalls, }, }, }; export default CLASSIFIERS; //# sourceMappingURL=aaveV1.js.map