mev-inspect
Version:
A JS port of 'mev-inspect-py' optimised for ease of use.
36 lines • 1.11 kB
JavaScript
import { isValidFactory, } from '../classifier/index.js';
function getPoolAddress(log) {
if (log.classifier.type !== 'swap') {
return '';
}
if (log.classifier.protocol === 'BalancerV2') {
const poolId = log.values.poolId;
return poolId.substring(0, 42);
}
return log.address.toLowerCase();
}
function getSwaps(chainId, pools, transfers, logs) {
return logs
.map((log) => {
if (log.classifier.type !== 'swap') {
return null;
}
const poolAddress = getPoolAddress(log);
const pool = pools.find((pool) => pool.address === poolAddress);
if (!pool) {
return null;
}
const protocol = log.classifier.protocol;
if (!protocol) {
return null;
}
const swapProtocol = protocol;
if (!isValidFactory(chainId, swapProtocol, pool.factory)) {
return null;
}
return log.classifier.parse(pool, log, transfers, logs);
})
.filter((swap) => !!swap);
}
export default getSwaps;
//# sourceMappingURL=swaps.js.map