From 8031ab0a4a7b643a1c4826a4c4c96ab0a4d6fc86 Mon Sep 17 00:00:00 2001 From: Nazih Kalo Date: Wed, 19 Feb 2025 17:26:12 -0500 Subject: [PATCH] - Update Solana fee tracking with blacklist signers - fix phantom fees by removing liquidations --- fees/phantom.ts | 24 ++++++++++++++---------- helpers/token.ts | 11 ++++++++++- 2 files changed, 24 insertions(+), 11 deletions(-) diff --git a/fees/phantom.ts b/fees/phantom.ts index 005a47714d..a5a48262e8 100644 --- a/fees/phantom.ts +++ b/fees/phantom.ts @@ -2,17 +2,21 @@ import { FetchOptions, SimpleAdapter } from "../adapters/types"; import { CHAIN } from "../helpers/chains"; import { getSolanaReceived } from "../helpers/token"; + +const fee_wallet_addresses = [ + '25mYnjJ2MXHZH6NvTTdA63JvjgRVcuiaj6MRiEQNs1Dq', + '9yj3zvLS3fDMqi1F8zhkaWfq8TZpZWHe6cz1Sgt7djXf', + '8psNvWTrdNTiVRNzAgsou9kETXNJm2SXZyaKuJraVRtf', + 'CnmA6Zb8hLrG33AT4RTzKdGv1vKwRBKQQr8iNckvv8Yg', + '2rQZb9xqQGwoCMDkpabbzDB9wyPTjSPj9WNhJodTaRHm', + '9gnLg6NtVxaASvxtADLFKZ9s8yHft1jXb1Vu6gVKvh1J', + 'wtpXRqKLdGc7vpReogsRugv6EFCw4HBHcxm8pFcR84a', + 'D1NJy3Qq3RKBG29EDRj28ozbGwnhmM5yBUp8PonSYUnm', +]; + const fetch: any = async (options: FetchOptions) => { - const dailyFees = await getSolanaReceived({ options, targets: [ - '25mYnjJ2MXHZH6NvTTdA63JvjgRVcuiaj6MRiEQNs1Dq' - ,'9yj3zvLS3fDMqi1F8zhkaWfq8TZpZWHe6cz1Sgt7djXf', - '8psNvWTrdNTiVRNzAgsou9kETXNJm2SXZyaKuJraVRtf', - 'CnmA6Zb8hLrG33AT4RTzKdGv1vKwRBKQQr8iNckvv8Yg', - '2rQZb9xqQGwoCMDkpabbzDB9wyPTjSPj9WNhJodTaRHm', - '9gnLg6NtVxaASvxtADLFKZ9s8yHft1jXb1Vu6gVKvh1J', - 'wtpXRqKLdGc7vpReogsRugv6EFCw4HBHcxm8pFcR84a', - 'D1NJy3Qq3RKBG29EDRj28ozbGwnhmM5yBUp8PonSYUnm', - ]}) + const dailyFees = await getSolanaReceived({ options, targets: fee_wallet_addresses, blacklist_signers: fee_wallet_addresses + }) return { dailyFees, dailyRevenue: dailyFees } } diff --git a/helpers/token.ts b/helpers/token.ts index 095b4115da..396fae4935 100644 --- a/helpers/token.ts +++ b/helpers/token.ts @@ -317,12 +317,13 @@ export const evmReceivedGasAndTokens = (receiverWallet: string, tokens: string[] } } - export async function getSolanaReceived({ options, balances, target, targets, blacklists }: { + export async function getSolanaReceived({ options, balances, target, targets, blacklists, blacklist_signers }: { options: FetchOptions; balances?: sdk.Balances; target?: string; targets?: string[]; blacklists?: string[]; + blacklist_signers?: string[]; }) { if (!balances) balances = options.createBalances(); @@ -338,6 +339,13 @@ export const evmReceivedGasAndTokens = (receiverWallet: string, tokens: string[] const formattedBlacklist = blacklists.map(addr => `'${addr}'`).join(', '); blacklistCondition = `AND from_address NOT IN (${formattedBlacklist})`; } + + let blacklist_signersCondition = ''; + + if (blacklist_signers && blacklist_signers.length > 0) { + const formattedBlacklist = blacklist_signers.map(addr => `'${addr}'`).join(', '); + blacklist_signersCondition = `AND signer NOT IN (${formattedBlacklist})`; + } const query = ` SELECT SUM(usd_amount) as usd_value, SUM(amount) as amount @@ -345,6 +353,7 @@ export const evmReceivedGasAndTokens = (receiverWallet: string, tokens: string[] WHERE to_address = '${target}' AND block_timestamp BETWEEN TO_TIMESTAMP_NTZ(${options.startTimestamp}) AND TO_TIMESTAMP_NTZ(${options.endTimestamp}) ${blacklistCondition} + ${blacklist_signersCondition} `; const res = await queryAllium(query);