UNPKG

mev-inspect

Version:

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

84 lines 2.24 kB
import exchangeAbi from '../../abi/bancorV3.js'; function isValid(event) { return event.name === 'TokensTraded'; } function getPoolCalls() { return []; } function processPoolCalls(_results, address) { return { factoryAddress: address.toLowerCase(), assets: [], }; } function parse(pool, event) { const { values, transactionFrom, transactionHash: hash, transactionIndex, gasUsed, logIndex, address, blockHash, blockNumber, } = event; const sourceToken = normalizeAsset(values.sourceToken.toLowerCase()); const targetToken = normalizeAsset(values.targetToken.toLowerCase()); const sourceAmount = values.sourceAmount; const targetAmount = values.targetAmount; const trader = values.trader.toLowerCase(); const from = trader; const to = trader; const assetIn = sourceToken; const assetOut = targetToken; const amountIn = sourceAmount; const amountOut = targetAmount; return { contract: { address, protocol: { abi: 'BancorV3', factory: pool.factory, }, }, block: { hash: blockHash, number: blockNumber, }, transaction: { from: transactionFrom.toLowerCase(), hash, index: transactionIndex, gasUsed, }, event: { address: address.toLowerCase(), logIndex, }, from, to, assetIn: { type: 'erc20', address: assetIn, }, amountIn, assetOut: { type: 'erc20', address: assetOut, }, amountOut, metadata: {}, }; } function normalizeAsset(asset) { if (asset == '0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee') { return '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2'; } return asset; } const CLASSIFIER = { swap: { type: 'swap', protocol: 'BancorV3', abi: exchangeAbi, isValid, parse, pool: { getCalls: getPoolCalls, processCalls: processPoolCalls, }, }, }; export default CLASSIFIER; //# sourceMappingURL=bancorV3.js.map