Skip to content

Commit 05d383f

Browse files
add blacklist logic to odos (DefiLlama#6202)
1 parent 864baca commit 05d383f

File tree

1 file changed

+12
-4
lines changed

1 file changed

+12
-4
lines changed

aggregators/odos/index.ts

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11

22
import { FetchOptions, SimpleAdapter } from "../../adapters/types";
33
import { CHAIN } from "../../helpers/chains";
4+
import { getDefaultDexTokensBlacklisted } from "../../helpers/lists";
5+
import { formatAddress } from "../../utils/utils";
46

57
const event_swap = 'event Swap (address sender, uint256 inputAmount, address inputToken, uint256 amountOut, address outputToken, int256 slippage, uint32 referralCode)';
68
const event_multiswap = 'event SwapMulti(address sender, uint256[] amountsIn, address[] tokensIn, uint256[] amountsOut, address[] tokensOut, uint32 referralCode)';
@@ -34,12 +36,16 @@ const ODOS_V2_ROUTERS: TPool = {
3436

3537
async function fetch({ getLogs, createBalances, chain }: FetchOptions) {
3638
const routers = ODOS_V2_ROUTERS[chain];
39+
const blacklistedTokens = getDefaultDexTokensBlacklisted(chain)
40+
const isBlacklisted = (token: string) => blacklistedTokens.includes(formatAddress(token))
3741

3842
const dailyVolume = createBalances()
3943
const dailyFees = createBalances()
4044

41-
const logs = await getLogs({ targets: routers, eventAbi: event_swap, })
42-
const multiswapLogs = await getLogs({ targets: routers, eventAbi: event_multiswap, })
45+
let logs = (await getLogs({ targets: routers, eventAbi: event_swap, }))
46+
.filter(i => !isBlacklisted(i.outputToken) && !isBlacklisted(i.inputToken))
47+
let multiswapLogs = (await getLogs({ targets: routers, eventAbi: event_multiswap, }))
48+
.filter(i => !i.tokensIn.some(isBlacklisted) && !i.tokensOut.some(isBlacklisted))
4349

4450
// add volume
4551
logs.forEach(i => dailyVolume.add(i.outputToken, i.amountOut))
@@ -49,8 +55,10 @@ async function fetch({ getLogs, createBalances, chain }: FetchOptions) {
4955
logs.forEach(i => dailyFees.add(i.outputToken, Number(i.slippage) > 0 ? i.slippage : 0))
5056
multiswapLogs.forEach(i => dailyFees.add(i.tokensOut, i.amountsOut.map((a: any) => Number(a) * .01 / 100))) // 0.01% fixed fee
5157

52-
const logs_v3 = await getLogs({ targets: [ODOS_ROUTER_V3], eventAbi: event_swap_v3, })
53-
const multiswapLogs_v3 = await getLogs({ targets: [ODOS_ROUTER_V3], eventAbi: event_multiswap_v3, })
58+
let logs_v3 = (await getLogs({ targets: [ODOS_ROUTER_V3], eventAbi: event_swap_v3, }))
59+
.filter(i => !isBlacklisted(i.outputToken) && !isBlacklisted(i.inputToken))
60+
let multiswapLogs_v3 = (await getLogs({ targets: [ODOS_ROUTER_V3], eventAbi: event_multiswap_v3, }))
61+
.filter(i => !i.tokensIn.some(isBlacklisted) && !i.tokensOut.some(isBlacklisted))
5462

5563
// add v3 volume
5664
logs_v3.forEach(i => dailyVolume.add(i.outputToken, i.amountOut))

0 commit comments

Comments
 (0)