mev-inspect
Version:
A JS port of 'mev-inspect-py' optimised for ease of use.
84 lines • 2.2 kB
JavaScript
import exchangeAbi from '../../abi/bancorV2.js';
function isValid(event) {
return event.name === 'Conversion';
}
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 fromToken = normalizeAsset(values.fromToken.toLowerCase());
const toToken = normalizeAsset(values.toToken.toLowerCase());
const fromAmount = values.fromAmount;
const toAmount = values.toAmount;
const trader = values.trader.toLowerCase();
const from = trader;
const to = trader;
const assetIn = fromToken;
const assetOut = toToken;
const amountIn = fromAmount;
const amountOut = toAmount;
return {
contract: {
address,
protocol: {
abi: 'BancorV2',
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: 'BancorV2',
abi: exchangeAbi,
isValid,
parse,
pool: {
getCalls: getPoolCalls,
processCalls: processPoolCalls,
},
},
};
export default CLASSIFIER;
//# sourceMappingURL=bancorV2.js.map