From a45c2f0d2b253ae9551a6e419d7956a3b5998e35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Monteiro?= Date: Thu, 14 May 2026 01:19:09 +0100 Subject: [PATCH 1/2] feat(solana): add address_prefix predicates for account_activity partition pruning solana.account_activity is partitioned by (year, month, address_prefix) where address_prefix = substring(address, 1, 2). Trino 479 cannot derive this predicate from address = '' (trinodb/trino#19455), so partition enumeration during planning scans all 3,364 prefix partitions and frequently hits the 600s query.max-planning-time ceiling. Introduces a shared account_activity_prefix_filter macro that emits the address_prefix predicate from compile-time address literals, and applies it to 29 dbt models with hardcoded fee receiver addresses (20 single-address and 9 multi-address bot models, plus the lido Solana stSOL income query). Benchmarks on prod Trino (EXPLAIN ANALYZE, 1-day window) show ~2x speedup for the previously-failing pepe_boost and ~1.7x for the multi-address banana_gun pattern, with splits generation dropping from 80-130s to ~30s and physical I/O unchanged. Six models cannot use this approach (phantom_swapper, readyswap, bonkbot fee_payments_raw, base_app x3) because they either match the entire prefix space via dynamic subqueries or use token_balance_owner JOINs where the account_activity row's address column is a token account, not the fee receiver. These will be handled separately. --- .../dune/account_activity_prefix_filter.sql | 27 +++++++++++++++++++ .../lido_accounting_ethereum_other_income.sql | 1 + .../platforms/alpha_dex_solana_bot_users.sql | 1 + .../platforms/autosnipe_solana_bot_trades.sql | 2 +- .../banana_gun_solana_bot_trades.sql | 1 + .../platforms/bitfoot_solana_bot_trades.sql | 5 ++-- .../platforms/bloom_solana_bot_trades.sql | 2 +- .../consortium_key_solana_bot_users.sql | 1 + .../platforms/cswap_solana_bot_trades.sql | 5 ++-- .../platforms/falcon_solana_bot_trades.sql | 2 +- .../platforms/jupbot_solana_bot_trades.sql | 2 +- .../platforms/looter_solana_bot_trades.sql | 1 + .../platforms/maestro_solana_bot_trades.sql | 1 + .../platforms/magnum_solana_bot_trades.sql | 1 + .../platforms/mev_x_solana_bot_trades.sql | 1 + .../platforms/nova_solana_bot_trades.sql | 5 ++-- .../platforms/padre_solana_bot_users.sql | 1 + .../pepe_boost_solana_bot_trades.sql | 1 + .../platforms/pinkpunk_solana_bot_trades.sql | 1 + .../prophetbots_solana_bot_trades.sql | 1 + .../platforms/sanji_solana_bot_trades.sql | 5 ++-- .../platforms/shuriken_solana_bot_trades.sql | 1 + .../platforms/sol_gun_solana_bot_trades.sql | 5 ++-- .../sol_trading_bot_solana_bot_trades.sql | 1 + .../soul_sniper_solana_bot_users.sql | 1 + .../platforms/tirador_solana_bot_trades.sql | 5 ++-- .../platforms/tradewiz_solana_bot_trades.sql | 5 ++-- .../platforms/trojan_solana_bot_trades.sql | 1 + .../platforms/unibot_solana_bot_trades.sql | 1 + .../platforms/wifbot_solana_bot_trades.sql | 1 + 30 files changed, 63 insertions(+), 25 deletions(-) create mode 100644 dbt_macros/dune/account_activity_prefix_filter.sql diff --git a/dbt_macros/dune/account_activity_prefix_filter.sql b/dbt_macros/dune/account_activity_prefix_filter.sql new file mode 100644 index 00000000000..f1d74ab3877 --- /dev/null +++ b/dbt_macros/dune/account_activity_prefix_filter.sql @@ -0,0 +1,27 @@ +{# Generate an `address_prefix` partition predicate for `solana.account_activity`. #} +{# The table is partitioned by `(year, month, address_prefix)` where #} +{# `address_prefix = substring(address, 1, 2)`. Trino cannot derive this #} +{# predicate from `address = ''` (trinodb/trino#19455), so we must #} +{# emit it explicitly to enable partition pruning at plan time. #} +{# #} +{# Accepts either a single address string or a list of addresses. Computes the #} +{# 2-char prefix(es) at compile time and emits either `= 'XX'` or `IN (...)`. #} +{# Pass `alias` when the column needs a table alias prefix (e.g. `i`). #} +{% macro account_activity_prefix_filter(addresses, alias='') -%} + {%- if addresses is string -%} + {%- set addr_list = [addresses] -%} + {%- else -%} + {%- set addr_list = addresses -%} + {%- endif -%} + {%- set prefixes = [] -%} + {%- for addr in addr_list -%} + {%- do prefixes.append(addr[:2]) -%} + {%- endfor -%} + {%- set unique_prefixes = prefixes | unique | list -%} + {%- set col_prefix = alias ~ '.' if alias else '' -%} + {%- if unique_prefixes | length == 1 -%} +AND {{ col_prefix }}address_prefix = '{{ unique_prefixes[0] }}' + {%- else -%} +AND {{ col_prefix }}address_prefix IN ({% for p in unique_prefixes %}'{{ p }}'{% if not loop.last %}, {% endif %}{% endfor %}) + {%- endif -%} +{%- endmacro %} diff --git a/dbt_subprojects/hourly_spellbook/models/_project/lido/accounting/ethereum/lido_accounting_ethereum_other_income.sql b/dbt_subprojects/hourly_spellbook/models/_project/lido/accounting/ethereum/lido_accounting_ethereum_other_income.sql index 04b0a2375b6..30679cdda63 100644 --- a/dbt_subprojects/hourly_spellbook/models/_project/lido/accounting/ethereum/lido_accounting_ethereum_other_income.sql +++ b/dbt_subprojects/hourly_spellbook/models/_project/lido/accounting/ethereum/lido_accounting_ethereum_other_income.sql @@ -293,6 +293,7 @@ with tokens as ( and i.pre_token_balance is not null and i.token_mint_address = '7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj' and i.address = 'CYpYPtwY9QVmZsjCmguAud1ctQjXWKpWD7xeL5mnpcXk' + {{ account_activity_prefix_filter('CYpYPtwY9QVmZsjCmguAud1ctQjXWKpWD7xeL5mnpcXk', 'i') }} and i.token_balance_change > 0 ) diff --git a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/alpha_dex_solana_bot_users.sql b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/alpha_dex_solana_bot_users.sql index b21a64e673b..6938daca04a 100644 --- a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/alpha_dex_solana_bot_users.sql +++ b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/alpha_dex_solana_bot_users.sql @@ -30,3 +30,4 @@ where tx_success and balance_change > 0 and address = '{{fee_receiver}}' + {{ account_activity_prefix_filter(fee_receiver) }} diff --git a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/autosnipe_solana_bot_trades.sql b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/autosnipe_solana_bot_trades.sql index ecdd68d7ce8..408d628d03a 100644 --- a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/autosnipe_solana_bot_trades.sql +++ b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/autosnipe_solana_bot_trades.sql @@ -32,7 +32,7 @@ WITH AND tx_success AND balance_change > 0 AND address = '{{fee_receiver_1}}' - + {{ account_activity_prefix_filter(fee_receiver_1) }} ), botTrades AS ( SELECT diff --git a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/banana_gun_solana_bot_trades.sql b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/banana_gun_solana_bot_trades.sql index dbc750f0349..40923271f63 100644 --- a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/banana_gun_solana_bot_trades.sql +++ b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/banana_gun_solana_bot_trades.sql @@ -48,6 +48,7 @@ WITH OR address = '{{fee_receiver_7}}' OR address = '{{fee_receiver_8}}' ) + {{ account_activity_prefix_filter([fee_receiver_1, fee_receiver_2, fee_receiver_3, fee_receiver_4, fee_receiver_5, fee_receiver_6, fee_receiver_7, fee_receiver_8]) }} AND tx_id != 'AT915GhHaLdGsdFkywx2uE6jqSXeyTauveYH2BQqWMyptGhUtjE6dcdr74ErELg79VY9apZ9Egiyc1VtA6Ddykb' -- Edge case that sent fees to multiple fee wallets ), botTrades AS ( diff --git a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/bitfoot_solana_bot_trades.sql b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/bitfoot_solana_bot_trades.sql index d344a273166..8ddbe7c0270 100644 --- a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/bitfoot_solana_bot_trades.sql +++ b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/bitfoot_solana_bot_trades.sql @@ -31,9 +31,8 @@ WITH {% endif %} AND tx_success AND balance_change > 0 - AND ( - address = '{{fee_receiver_1}}' - ) + AND address = '{{fee_receiver_1}}' + {{ account_activity_prefix_filter(fee_receiver_1) }} ), botTrades AS ( SELECT diff --git a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/bloom_solana_bot_trades.sql b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/bloom_solana_bot_trades.sql index 08822c510d2..a56e572a5b8 100644 --- a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/bloom_solana_bot_trades.sql +++ b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/bloom_solana_bot_trades.sql @@ -32,7 +32,7 @@ WITH AND tx_success AND balance_change > 0 AND address = '{{fee_receiver_1}}' - + {{ account_activity_prefix_filter(fee_receiver_1) }} ), botTrades AS ( SELECT diff --git a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/consortium_key_solana_bot_users.sql b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/consortium_key_solana_bot_users.sql index 6a0da46c253..e0456f3f8f0 100644 --- a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/consortium_key_solana_bot_users.sql +++ b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/consortium_key_solana_bot_users.sql @@ -30,3 +30,4 @@ where tx_success and balance_change > 0 and address = '{{fee_receiver}}' + {{ account_activity_prefix_filter(fee_receiver) }} diff --git a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/cswap_solana_bot_trades.sql b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/cswap_solana_bot_trades.sql index 13700129417..b4da197cf8a 100644 --- a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/cswap_solana_bot_trades.sql +++ b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/cswap_solana_bot_trades.sql @@ -31,9 +31,8 @@ WITH {% endif %} AND tx_success AND balance_change > 0 - AND ( - address = '{{fee_receiver_1}}' - ) + AND address = '{{fee_receiver_1}}' + {{ account_activity_prefix_filter(fee_receiver_1) }} ), botTrades AS ( SELECT diff --git a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/falcon_solana_bot_trades.sql b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/falcon_solana_bot_trades.sql index c97db192614..1d4fc27d7d9 100644 --- a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/falcon_solana_bot_trades.sql +++ b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/falcon_solana_bot_trades.sql @@ -32,7 +32,7 @@ WITH AND tx_success AND balance_change > 0 AND address = '{{fee_receiver_1}}' - + {{ account_activity_prefix_filter(fee_receiver_1) }} ), botTrades AS ( SELECT diff --git a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/jupbot_solana_bot_trades.sql b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/jupbot_solana_bot_trades.sql index a41f9c295c0..79310fab673 100644 --- a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/jupbot_solana_bot_trades.sql +++ b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/jupbot_solana_bot_trades.sql @@ -32,7 +32,7 @@ WITH AND tx_success AND balance_change > 0 AND address = '{{buy_fee_receiver_1}}' - + {{ account_activity_prefix_filter(buy_fee_receiver_1) }} ), botTrades AS ( SELECT diff --git a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/looter_solana_bot_trades.sql b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/looter_solana_bot_trades.sql index 2290e49c6ca..8215476ce9d 100644 --- a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/looter_solana_bot_trades.sql +++ b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/looter_solana_bot_trades.sql @@ -36,6 +36,7 @@ with and tx_success and balance_change > 0 and address = '{{fee_receiver}}' + {{ account_activity_prefix_filter(fee_receiver) }} ), bot_trades as ( select diff --git a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/maestro_solana_bot_trades.sql b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/maestro_solana_bot_trades.sql index e2dee591ed1..d3f53d3dff4 100644 --- a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/maestro_solana_bot_trades.sql +++ b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/maestro_solana_bot_trades.sql @@ -33,6 +33,7 @@ WITH AND tx_success AND balance_change > 0 AND (address = '{{fee_receiver_1}}' OR address = '{{fee_receiver_2}}') + {{ account_activity_prefix_filter([fee_receiver_1, fee_receiver_2]) }} ), zeroFeeTrades AS ( SELECT diff --git a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/magnum_solana_bot_trades.sql b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/magnum_solana_bot_trades.sql index 76996f38b16..9f3ffef5c63 100644 --- a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/magnum_solana_bot_trades.sql +++ b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/magnum_solana_bot_trades.sql @@ -36,6 +36,7 @@ WITH address = '{{fee_receiver_1}}' OR address = '{{fee_receiver_2}}' ) + {{ account_activity_prefix_filter([fee_receiver_1, fee_receiver_2]) }} ), botTrades AS ( SELECT diff --git a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/mev_x_solana_bot_trades.sql b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/mev_x_solana_bot_trades.sql index b2f8427f999..9c3cc96f850 100644 --- a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/mev_x_solana_bot_trades.sql +++ b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/mev_x_solana_bot_trades.sql @@ -38,6 +38,7 @@ WITH OR address = '{{sell_fee_receiver_1}}' OR address = '{{sell_fee_receiver_2}}' ) + {{ account_activity_prefix_filter([buy_fee_receiver_1, sell_fee_receiver_1, sell_fee_receiver_2]) }} ), botTrades AS ( SELECT diff --git a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/nova_solana_bot_trades.sql b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/nova_solana_bot_trades.sql index c0465855f4f..82139c6af11 100644 --- a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/nova_solana_bot_trades.sql +++ b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/nova_solana_bot_trades.sql @@ -31,9 +31,8 @@ WITH {% endif %} AND tx_success AND balance_change > 0 - AND ( - address = '{{fee_receiver_1}}' - ) + AND address = '{{fee_receiver_1}}' + {{ account_activity_prefix_filter(fee_receiver_1) }} ), botTrades AS ( SELECT diff --git a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/padre_solana_bot_users.sql b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/padre_solana_bot_users.sql index 66d7c5a3b1e..9f0a1c1a7ce 100644 --- a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/padre_solana_bot_users.sql +++ b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/padre_solana_bot_users.sql @@ -30,3 +30,4 @@ where tx_success and balance_change > 0 and address = '{{fee_receiver}}' + {{ account_activity_prefix_filter(fee_receiver) }} diff --git a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/pepe_boost_solana_bot_trades.sql b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/pepe_boost_solana_bot_trades.sql index 1c30184091e..6d9218e57a9 100644 --- a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/pepe_boost_solana_bot_trades.sql +++ b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/pepe_boost_solana_bot_trades.sql @@ -40,6 +40,7 @@ WITH AND tx_success AND balance_change > 0 AND address = '{{fee_receiver}}' + {{ account_activity_prefix_filter(fee_receiver) }} ), botTrades AS ( SELECT diff --git a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/pinkpunk_solana_bot_trades.sql b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/pinkpunk_solana_bot_trades.sql index 530764de0df..5f462d143f5 100644 --- a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/pinkpunk_solana_bot_trades.sql +++ b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/pinkpunk_solana_bot_trades.sql @@ -36,6 +36,7 @@ WITH address = '{{fee_receiver_1}}' OR address = '{{fee_receiver_2}}' ) + {{ account_activity_prefix_filter([fee_receiver_1, fee_receiver_2]) }} ), bot_trades AS ( SELECT diff --git a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/prophetbots_solana_bot_trades.sql b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/prophetbots_solana_bot_trades.sql index 34164abba79..dcc05a5690e 100644 --- a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/prophetbots_solana_bot_trades.sql +++ b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/prophetbots_solana_bot_trades.sql @@ -33,6 +33,7 @@ WITH AND tx_success AND balance_change > 0 AND (address = '{{fee_receiver_1}}' OR address = '{{fee_receiver_2}}') + {{ account_activity_prefix_filter([fee_receiver_1, fee_receiver_2]) }} GROUP BY tx_id ), botTrades AS ( diff --git a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/sanji_solana_bot_trades.sql b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/sanji_solana_bot_trades.sql index 7bbe10a3628..d02bb208ec1 100644 --- a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/sanji_solana_bot_trades.sql +++ b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/sanji_solana_bot_trades.sql @@ -31,9 +31,8 @@ WITH {% endif %} AND tx_success AND balance_change > 0 - AND ( - address = '{{fee_receiver_1}}' - ) + AND address = '{{fee_receiver_1}}' + {{ account_activity_prefix_filter(fee_receiver_1) }} ), botTrades AS ( SELECT diff --git a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/shuriken_solana_bot_trades.sql b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/shuriken_solana_bot_trades.sql index 4bf08af0b0f..2a5863596a2 100644 --- a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/shuriken_solana_bot_trades.sql +++ b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/shuriken_solana_bot_trades.sql @@ -32,6 +32,7 @@ WITH AND tx_success AND balance_change > 0 AND address = '{{fee_receiver}}' + {{ account_activity_prefix_filter(fee_receiver) }} ), botTrades AS ( SELECT diff --git a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/sol_gun_solana_bot_trades.sql b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/sol_gun_solana_bot_trades.sql index a74c4952b0e..459bbd056a9 100644 --- a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/sol_gun_solana_bot_trades.sql +++ b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/sol_gun_solana_bot_trades.sql @@ -31,9 +31,8 @@ WITH {% endif %} AND tx_success AND balance_change > 0 - AND ( - address = '{{fee_receiver_1}}' - ) + AND address = '{{fee_receiver_1}}' + {{ account_activity_prefix_filter(fee_receiver_1) }} ), botTrades AS ( SELECT diff --git a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/sol_trading_bot_solana_bot_trades.sql b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/sol_trading_bot_solana_bot_trades.sql index 5404684b48a..c8cbfcb9c45 100644 --- a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/sol_trading_bot_solana_bot_trades.sql +++ b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/sol_trading_bot_solana_bot_trades.sql @@ -40,6 +40,7 @@ WITH OR address = '{{buy_fee_receiver_2}}' OR address = '{{sell_fee_receiver_2}}' ) + {{ account_activity_prefix_filter([buy_fee_receiver_1, sell_fee_receiver_1, buy_fee_receiver_2, sell_fee_receiver_2]) }} ), botTrades AS ( SELECT diff --git a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/soul_sniper_solana_bot_users.sql b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/soul_sniper_solana_bot_users.sql index cd0de3efdfd..ebdc41271a6 100644 --- a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/soul_sniper_solana_bot_users.sql +++ b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/soul_sniper_solana_bot_users.sql @@ -30,3 +30,4 @@ where tx_success and balance_change > 0 and address = '{{fee_receiver}}' + {{ account_activity_prefix_filter(fee_receiver) }} diff --git a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/tirador_solana_bot_trades.sql b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/tirador_solana_bot_trades.sql index e135e65ff0f..cf9715910f0 100644 --- a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/tirador_solana_bot_trades.sql +++ b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/tirador_solana_bot_trades.sql @@ -31,9 +31,8 @@ WITH {% endif %} AND tx_success AND balance_change > 0 - AND ( - address = '{{fee_receiver_1}}' - ) + AND address = '{{fee_receiver_1}}' + {{ account_activity_prefix_filter(fee_receiver_1) }} ), botTrades AS ( SELECT diff --git a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/tradewiz_solana_bot_trades.sql b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/tradewiz_solana_bot_trades.sql index 40b9098fe8e..c439ea98245 100644 --- a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/tradewiz_solana_bot_trades.sql +++ b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/tradewiz_solana_bot_trades.sql @@ -31,9 +31,8 @@ WITH {% endif %} AND tx_success AND balance_change > 0 - AND ( - address = '{{fee_receiver_1}}' - ) + AND address = '{{fee_receiver_1}}' + {{ account_activity_prefix_filter(fee_receiver_1) }} ), botTrades AS ( SELECT diff --git a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/trojan_solana_bot_trades.sql b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/trojan_solana_bot_trades.sql index 8f144362338..a429cee6be0 100644 --- a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/trojan_solana_bot_trades.sql +++ b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/trojan_solana_bot_trades.sql @@ -36,6 +36,7 @@ WITH address = '{{fee_receiver_1}}' OR address = '{{fee_receiver_2}}' ) + {{ account_activity_prefix_filter([fee_receiver_1, fee_receiver_2]) }} ), botTrades AS ( SELECT diff --git a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/unibot_solana_bot_trades.sql b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/unibot_solana_bot_trades.sql index 1eabb264db2..d1be4d6f650 100644 --- a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/unibot_solana_bot_trades.sql +++ b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/unibot_solana_bot_trades.sql @@ -36,6 +36,7 @@ WITH address = '{{fee_receiver_1}}' OR address = '{{fee_receiver_2}}' ) + {{ account_activity_prefix_filter([fee_receiver_1, fee_receiver_2]) }} ), botTrades AS ( SELECT diff --git a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/wifbot_solana_bot_trades.sql b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/wifbot_solana_bot_trades.sql index 7709f53abae..129272de917 100644 --- a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/wifbot_solana_bot_trades.sql +++ b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/wifbot_solana_bot_trades.sql @@ -37,6 +37,7 @@ with and tx_success and balance_change > 0 and address = '{{fee_receiver}}' + {{ account_activity_prefix_filter(fee_receiver) }} ), bot_trades as ( select From a8f60ee1da072c47c8c8451ae7d8f9d945b7a583 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Monteiro?= Date: Thu, 14 May 2026 08:07:12 +0100 Subject: [PATCH 2/2] Inline address_prefix predicates instead of using a macro Per review feedback, removes the account_activity_prefix_filter macro and inlines each predicate directly in the model. Variable-based addresses use the Jinja slice form {{ var[:2] }} so the prefix stays in sync with the underlying address literal; lido uses a hardcoded 'CY' since the address is already inline in the SQL. --- .../dune/account_activity_prefix_filter.sql | 27 ------------------- .../lido_accounting_ethereum_other_income.sql | 2 +- .../platforms/alpha_dex_solana_bot_users.sql | 2 +- .../platforms/autosnipe_solana_bot_trades.sql | 2 +- .../banana_gun_solana_bot_trades.sql | 2 +- .../platforms/bitfoot_solana_bot_trades.sql | 2 +- .../platforms/bloom_solana_bot_trades.sql | 2 +- .../consortium_key_solana_bot_users.sql | 2 +- .../platforms/cswap_solana_bot_trades.sql | 2 +- .../platforms/falcon_solana_bot_trades.sql | 2 +- .../platforms/jupbot_solana_bot_trades.sql | 2 +- .../platforms/looter_solana_bot_trades.sql | 2 +- .../platforms/maestro_solana_bot_trades.sql | 2 +- .../platforms/magnum_solana_bot_trades.sql | 2 +- .../platforms/mev_x_solana_bot_trades.sql | 2 +- .../platforms/nova_solana_bot_trades.sql | 2 +- .../platforms/padre_solana_bot_users.sql | 2 +- .../pepe_boost_solana_bot_trades.sql | 2 +- .../platforms/pinkpunk_solana_bot_trades.sql | 2 +- .../prophetbots_solana_bot_trades.sql | 2 +- .../platforms/sanji_solana_bot_trades.sql | 2 +- .../platforms/shuriken_solana_bot_trades.sql | 2 +- .../platforms/sol_gun_solana_bot_trades.sql | 2 +- .../sol_trading_bot_solana_bot_trades.sql | 2 +- .../soul_sniper_solana_bot_users.sql | 2 +- .../platforms/tirador_solana_bot_trades.sql | 2 +- .../platforms/tradewiz_solana_bot_trades.sql | 2 +- .../platforms/trojan_solana_bot_trades.sql | 2 +- .../platforms/unibot_solana_bot_trades.sql | 2 +- .../platforms/wifbot_solana_bot_trades.sql | 2 +- 30 files changed, 29 insertions(+), 56 deletions(-) delete mode 100644 dbt_macros/dune/account_activity_prefix_filter.sql diff --git a/dbt_macros/dune/account_activity_prefix_filter.sql b/dbt_macros/dune/account_activity_prefix_filter.sql deleted file mode 100644 index f1d74ab3877..00000000000 --- a/dbt_macros/dune/account_activity_prefix_filter.sql +++ /dev/null @@ -1,27 +0,0 @@ -{# Generate an `address_prefix` partition predicate for `solana.account_activity`. #} -{# The table is partitioned by `(year, month, address_prefix)` where #} -{# `address_prefix = substring(address, 1, 2)`. Trino cannot derive this #} -{# predicate from `address = ''` (trinodb/trino#19455), so we must #} -{# emit it explicitly to enable partition pruning at plan time. #} -{# #} -{# Accepts either a single address string or a list of addresses. Computes the #} -{# 2-char prefix(es) at compile time and emits either `= 'XX'` or `IN (...)`. #} -{# Pass `alias` when the column needs a table alias prefix (e.g. `i`). #} -{% macro account_activity_prefix_filter(addresses, alias='') -%} - {%- if addresses is string -%} - {%- set addr_list = [addresses] -%} - {%- else -%} - {%- set addr_list = addresses -%} - {%- endif -%} - {%- set prefixes = [] -%} - {%- for addr in addr_list -%} - {%- do prefixes.append(addr[:2]) -%} - {%- endfor -%} - {%- set unique_prefixes = prefixes | unique | list -%} - {%- set col_prefix = alias ~ '.' if alias else '' -%} - {%- if unique_prefixes | length == 1 -%} -AND {{ col_prefix }}address_prefix = '{{ unique_prefixes[0] }}' - {%- else -%} -AND {{ col_prefix }}address_prefix IN ({% for p in unique_prefixes %}'{{ p }}'{% if not loop.last %}, {% endif %}{% endfor %}) - {%- endif -%} -{%- endmacro %} diff --git a/dbt_subprojects/hourly_spellbook/models/_project/lido/accounting/ethereum/lido_accounting_ethereum_other_income.sql b/dbt_subprojects/hourly_spellbook/models/_project/lido/accounting/ethereum/lido_accounting_ethereum_other_income.sql index 30679cdda63..4ca05c97a4a 100644 --- a/dbt_subprojects/hourly_spellbook/models/_project/lido/accounting/ethereum/lido_accounting_ethereum_other_income.sql +++ b/dbt_subprojects/hourly_spellbook/models/_project/lido/accounting/ethereum/lido_accounting_ethereum_other_income.sql @@ -293,7 +293,7 @@ with tokens as ( and i.pre_token_balance is not null and i.token_mint_address = '7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj' and i.address = 'CYpYPtwY9QVmZsjCmguAud1ctQjXWKpWD7xeL5mnpcXk' - {{ account_activity_prefix_filter('CYpYPtwY9QVmZsjCmguAud1ctQjXWKpWD7xeL5mnpcXk', 'i') }} + and i.address_prefix = 'CY' and i.token_balance_change > 0 ) diff --git a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/alpha_dex_solana_bot_users.sql b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/alpha_dex_solana_bot_users.sql index 6938daca04a..052371bfa9a 100644 --- a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/alpha_dex_solana_bot_users.sql +++ b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/alpha_dex_solana_bot_users.sql @@ -30,4 +30,4 @@ where tx_success and balance_change > 0 and address = '{{fee_receiver}}' - {{ account_activity_prefix_filter(fee_receiver) }} + and address_prefix = '{{ fee_receiver[:2] }}' diff --git a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/autosnipe_solana_bot_trades.sql b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/autosnipe_solana_bot_trades.sql index 408d628d03a..478ac59581e 100644 --- a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/autosnipe_solana_bot_trades.sql +++ b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/autosnipe_solana_bot_trades.sql @@ -32,7 +32,7 @@ WITH AND tx_success AND balance_change > 0 AND address = '{{fee_receiver_1}}' - {{ account_activity_prefix_filter(fee_receiver_1) }} + AND address_prefix = '{{ fee_receiver_1[:2] }}' ), botTrades AS ( SELECT diff --git a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/banana_gun_solana_bot_trades.sql b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/banana_gun_solana_bot_trades.sql index 40923271f63..7ef2dff3c66 100644 --- a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/banana_gun_solana_bot_trades.sql +++ b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/banana_gun_solana_bot_trades.sql @@ -48,7 +48,7 @@ WITH OR address = '{{fee_receiver_7}}' OR address = '{{fee_receiver_8}}' ) - {{ account_activity_prefix_filter([fee_receiver_1, fee_receiver_2, fee_receiver_3, fee_receiver_4, fee_receiver_5, fee_receiver_6, fee_receiver_7, fee_receiver_8]) }} + AND address_prefix IN ('{{ fee_receiver_1[:2] }}', '{{ fee_receiver_2[:2] }}', '{{ fee_receiver_3[:2] }}', '{{ fee_receiver_4[:2] }}', '{{ fee_receiver_5[:2] }}', '{{ fee_receiver_6[:2] }}', '{{ fee_receiver_7[:2] }}', '{{ fee_receiver_8[:2] }}') AND tx_id != 'AT915GhHaLdGsdFkywx2uE6jqSXeyTauveYH2BQqWMyptGhUtjE6dcdr74ErELg79VY9apZ9Egiyc1VtA6Ddykb' -- Edge case that sent fees to multiple fee wallets ), botTrades AS ( diff --git a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/bitfoot_solana_bot_trades.sql b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/bitfoot_solana_bot_trades.sql index 8ddbe7c0270..aad3a7b9d2f 100644 --- a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/bitfoot_solana_bot_trades.sql +++ b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/bitfoot_solana_bot_trades.sql @@ -32,7 +32,7 @@ WITH AND tx_success AND balance_change > 0 AND address = '{{fee_receiver_1}}' - {{ account_activity_prefix_filter(fee_receiver_1) }} + AND address_prefix = '{{ fee_receiver_1[:2] }}' ), botTrades AS ( SELECT diff --git a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/bloom_solana_bot_trades.sql b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/bloom_solana_bot_trades.sql index a56e572a5b8..e392db9503a 100644 --- a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/bloom_solana_bot_trades.sql +++ b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/bloom_solana_bot_trades.sql @@ -32,7 +32,7 @@ WITH AND tx_success AND balance_change > 0 AND address = '{{fee_receiver_1}}' - {{ account_activity_prefix_filter(fee_receiver_1) }} + AND address_prefix = '{{ fee_receiver_1[:2] }}' ), botTrades AS ( SELECT diff --git a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/consortium_key_solana_bot_users.sql b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/consortium_key_solana_bot_users.sql index e0456f3f8f0..7c8ff5128de 100644 --- a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/consortium_key_solana_bot_users.sql +++ b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/consortium_key_solana_bot_users.sql @@ -30,4 +30,4 @@ where tx_success and balance_change > 0 and address = '{{fee_receiver}}' - {{ account_activity_prefix_filter(fee_receiver) }} + and address_prefix = '{{ fee_receiver[:2] }}' diff --git a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/cswap_solana_bot_trades.sql b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/cswap_solana_bot_trades.sql index b4da197cf8a..c1196a17a66 100644 --- a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/cswap_solana_bot_trades.sql +++ b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/cswap_solana_bot_trades.sql @@ -32,7 +32,7 @@ WITH AND tx_success AND balance_change > 0 AND address = '{{fee_receiver_1}}' - {{ account_activity_prefix_filter(fee_receiver_1) }} + AND address_prefix = '{{ fee_receiver_1[:2] }}' ), botTrades AS ( SELECT diff --git a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/falcon_solana_bot_trades.sql b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/falcon_solana_bot_trades.sql index 1d4fc27d7d9..3a2cbfeaef7 100644 --- a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/falcon_solana_bot_trades.sql +++ b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/falcon_solana_bot_trades.sql @@ -32,7 +32,7 @@ WITH AND tx_success AND balance_change > 0 AND address = '{{fee_receiver_1}}' - {{ account_activity_prefix_filter(fee_receiver_1) }} + AND address_prefix = '{{ fee_receiver_1[:2] }}' ), botTrades AS ( SELECT diff --git a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/jupbot_solana_bot_trades.sql b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/jupbot_solana_bot_trades.sql index 79310fab673..18453c10d05 100644 --- a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/jupbot_solana_bot_trades.sql +++ b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/jupbot_solana_bot_trades.sql @@ -32,7 +32,7 @@ WITH AND tx_success AND balance_change > 0 AND address = '{{buy_fee_receiver_1}}' - {{ account_activity_prefix_filter(buy_fee_receiver_1) }} + AND address_prefix = '{{ buy_fee_receiver_1[:2] }}' ), botTrades AS ( SELECT diff --git a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/looter_solana_bot_trades.sql b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/looter_solana_bot_trades.sql index 8215476ce9d..79a6626cf82 100644 --- a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/looter_solana_bot_trades.sql +++ b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/looter_solana_bot_trades.sql @@ -36,7 +36,7 @@ with and tx_success and balance_change > 0 and address = '{{fee_receiver}}' - {{ account_activity_prefix_filter(fee_receiver) }} + and address_prefix = '{{ fee_receiver[:2] }}' ), bot_trades as ( select diff --git a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/maestro_solana_bot_trades.sql b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/maestro_solana_bot_trades.sql index d3f53d3dff4..8f235b78f53 100644 --- a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/maestro_solana_bot_trades.sql +++ b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/maestro_solana_bot_trades.sql @@ -33,7 +33,7 @@ WITH AND tx_success AND balance_change > 0 AND (address = '{{fee_receiver_1}}' OR address = '{{fee_receiver_2}}') - {{ account_activity_prefix_filter([fee_receiver_1, fee_receiver_2]) }} + AND address_prefix IN ('{{ fee_receiver_1[:2] }}', '{{ fee_receiver_2[:2] }}') ), zeroFeeTrades AS ( SELECT diff --git a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/magnum_solana_bot_trades.sql b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/magnum_solana_bot_trades.sql index 9f3ffef5c63..56945c9f3ec 100644 --- a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/magnum_solana_bot_trades.sql +++ b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/magnum_solana_bot_trades.sql @@ -36,7 +36,7 @@ WITH address = '{{fee_receiver_1}}' OR address = '{{fee_receiver_2}}' ) - {{ account_activity_prefix_filter([fee_receiver_1, fee_receiver_2]) }} + AND address_prefix IN ('{{ fee_receiver_1[:2] }}', '{{ fee_receiver_2[:2] }}') ), botTrades AS ( SELECT diff --git a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/mev_x_solana_bot_trades.sql b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/mev_x_solana_bot_trades.sql index 9c3cc96f850..07b54840932 100644 --- a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/mev_x_solana_bot_trades.sql +++ b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/mev_x_solana_bot_trades.sql @@ -38,7 +38,7 @@ WITH OR address = '{{sell_fee_receiver_1}}' OR address = '{{sell_fee_receiver_2}}' ) - {{ account_activity_prefix_filter([buy_fee_receiver_1, sell_fee_receiver_1, sell_fee_receiver_2]) }} + AND address_prefix IN ('{{ buy_fee_receiver_1[:2] }}', '{{ sell_fee_receiver_1[:2] }}', '{{ sell_fee_receiver_2[:2] }}') ), botTrades AS ( SELECT diff --git a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/nova_solana_bot_trades.sql b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/nova_solana_bot_trades.sql index 82139c6af11..5479647faad 100644 --- a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/nova_solana_bot_trades.sql +++ b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/nova_solana_bot_trades.sql @@ -32,7 +32,7 @@ WITH AND tx_success AND balance_change > 0 AND address = '{{fee_receiver_1}}' - {{ account_activity_prefix_filter(fee_receiver_1) }} + AND address_prefix = '{{ fee_receiver_1[:2] }}' ), botTrades AS ( SELECT diff --git a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/padre_solana_bot_users.sql b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/padre_solana_bot_users.sql index 9f0a1c1a7ce..1ef39ee9461 100644 --- a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/padre_solana_bot_users.sql +++ b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/padre_solana_bot_users.sql @@ -30,4 +30,4 @@ where tx_success and balance_change > 0 and address = '{{fee_receiver}}' - {{ account_activity_prefix_filter(fee_receiver) }} + and address_prefix = '{{ fee_receiver[:2] }}' diff --git a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/pepe_boost_solana_bot_trades.sql b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/pepe_boost_solana_bot_trades.sql index 6d9218e57a9..ee133dde1c3 100644 --- a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/pepe_boost_solana_bot_trades.sql +++ b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/pepe_boost_solana_bot_trades.sql @@ -40,7 +40,7 @@ WITH AND tx_success AND balance_change > 0 AND address = '{{fee_receiver}}' - {{ account_activity_prefix_filter(fee_receiver) }} + AND address_prefix = '{{ fee_receiver[:2] }}' ), botTrades AS ( SELECT diff --git a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/pinkpunk_solana_bot_trades.sql b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/pinkpunk_solana_bot_trades.sql index 5f462d143f5..5cdfb907528 100644 --- a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/pinkpunk_solana_bot_trades.sql +++ b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/pinkpunk_solana_bot_trades.sql @@ -36,7 +36,7 @@ WITH address = '{{fee_receiver_1}}' OR address = '{{fee_receiver_2}}' ) - {{ account_activity_prefix_filter([fee_receiver_1, fee_receiver_2]) }} + AND address_prefix IN ('{{ fee_receiver_1[:2] }}', '{{ fee_receiver_2[:2] }}') ), bot_trades AS ( SELECT diff --git a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/prophetbots_solana_bot_trades.sql b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/prophetbots_solana_bot_trades.sql index dcc05a5690e..e5afedbbe75 100644 --- a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/prophetbots_solana_bot_trades.sql +++ b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/prophetbots_solana_bot_trades.sql @@ -33,7 +33,7 @@ WITH AND tx_success AND balance_change > 0 AND (address = '{{fee_receiver_1}}' OR address = '{{fee_receiver_2}}') - {{ account_activity_prefix_filter([fee_receiver_1, fee_receiver_2]) }} + AND address_prefix IN ('{{ fee_receiver_1[:2] }}', '{{ fee_receiver_2[:2] }}') GROUP BY tx_id ), botTrades AS ( diff --git a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/sanji_solana_bot_trades.sql b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/sanji_solana_bot_trades.sql index d02bb208ec1..856efe9c532 100644 --- a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/sanji_solana_bot_trades.sql +++ b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/sanji_solana_bot_trades.sql @@ -32,7 +32,7 @@ WITH AND tx_success AND balance_change > 0 AND address = '{{fee_receiver_1}}' - {{ account_activity_prefix_filter(fee_receiver_1) }} + AND address_prefix = '{{ fee_receiver_1[:2] }}' ), botTrades AS ( SELECT diff --git a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/shuriken_solana_bot_trades.sql b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/shuriken_solana_bot_trades.sql index 2a5863596a2..50eafdf4c95 100644 --- a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/shuriken_solana_bot_trades.sql +++ b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/shuriken_solana_bot_trades.sql @@ -32,7 +32,7 @@ WITH AND tx_success AND balance_change > 0 AND address = '{{fee_receiver}}' - {{ account_activity_prefix_filter(fee_receiver) }} + AND address_prefix = '{{ fee_receiver[:2] }}' ), botTrades AS ( SELECT diff --git a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/sol_gun_solana_bot_trades.sql b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/sol_gun_solana_bot_trades.sql index 459bbd056a9..28e95b89304 100644 --- a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/sol_gun_solana_bot_trades.sql +++ b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/sol_gun_solana_bot_trades.sql @@ -32,7 +32,7 @@ WITH AND tx_success AND balance_change > 0 AND address = '{{fee_receiver_1}}' - {{ account_activity_prefix_filter(fee_receiver_1) }} + AND address_prefix = '{{ fee_receiver_1[:2] }}' ), botTrades AS ( SELECT diff --git a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/sol_trading_bot_solana_bot_trades.sql b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/sol_trading_bot_solana_bot_trades.sql index c8cbfcb9c45..e71bbd6b41b 100644 --- a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/sol_trading_bot_solana_bot_trades.sql +++ b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/sol_trading_bot_solana_bot_trades.sql @@ -40,7 +40,7 @@ WITH OR address = '{{buy_fee_receiver_2}}' OR address = '{{sell_fee_receiver_2}}' ) - {{ account_activity_prefix_filter([buy_fee_receiver_1, sell_fee_receiver_1, buy_fee_receiver_2, sell_fee_receiver_2]) }} + AND address_prefix IN ('{{ buy_fee_receiver_1[:2] }}', '{{ sell_fee_receiver_1[:2] }}', '{{ buy_fee_receiver_2[:2] }}', '{{ sell_fee_receiver_2[:2] }}') ), botTrades AS ( SELECT diff --git a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/soul_sniper_solana_bot_users.sql b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/soul_sniper_solana_bot_users.sql index ebdc41271a6..e4d857894bd 100644 --- a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/soul_sniper_solana_bot_users.sql +++ b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/soul_sniper_solana_bot_users.sql @@ -30,4 +30,4 @@ where tx_success and balance_change > 0 and address = '{{fee_receiver}}' - {{ account_activity_prefix_filter(fee_receiver) }} + and address_prefix = '{{ fee_receiver[:2] }}' diff --git a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/tirador_solana_bot_trades.sql b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/tirador_solana_bot_trades.sql index cf9715910f0..d4bcd7df404 100644 --- a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/tirador_solana_bot_trades.sql +++ b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/tirador_solana_bot_trades.sql @@ -32,7 +32,7 @@ WITH AND tx_success AND balance_change > 0 AND address = '{{fee_receiver_1}}' - {{ account_activity_prefix_filter(fee_receiver_1) }} + AND address_prefix = '{{ fee_receiver_1[:2] }}' ), botTrades AS ( SELECT diff --git a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/tradewiz_solana_bot_trades.sql b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/tradewiz_solana_bot_trades.sql index c439ea98245..e39d24146db 100644 --- a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/tradewiz_solana_bot_trades.sql +++ b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/tradewiz_solana_bot_trades.sql @@ -32,7 +32,7 @@ WITH AND tx_success AND balance_change > 0 AND address = '{{fee_receiver_1}}' - {{ account_activity_prefix_filter(fee_receiver_1) }} + AND address_prefix = '{{ fee_receiver_1[:2] }}' ), botTrades AS ( SELECT diff --git a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/trojan_solana_bot_trades.sql b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/trojan_solana_bot_trades.sql index a429cee6be0..c7391d60d5f 100644 --- a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/trojan_solana_bot_trades.sql +++ b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/trojan_solana_bot_trades.sql @@ -36,7 +36,7 @@ WITH address = '{{fee_receiver_1}}' OR address = '{{fee_receiver_2}}' ) - {{ account_activity_prefix_filter([fee_receiver_1, fee_receiver_2]) }} + AND address_prefix IN ('{{ fee_receiver_1[:2] }}', '{{ fee_receiver_2[:2] }}') ), botTrades AS ( SELECT diff --git a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/unibot_solana_bot_trades.sql b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/unibot_solana_bot_trades.sql index d1be4d6f650..0e963062b46 100644 --- a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/unibot_solana_bot_trades.sql +++ b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/unibot_solana_bot_trades.sql @@ -36,7 +36,7 @@ WITH address = '{{fee_receiver_1}}' OR address = '{{fee_receiver_2}}' ) - {{ account_activity_prefix_filter([fee_receiver_1, fee_receiver_2]) }} + AND address_prefix IN ('{{ fee_receiver_1[:2] }}', '{{ fee_receiver_2[:2] }}') ), botTrades AS ( SELECT diff --git a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/wifbot_solana_bot_trades.sql b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/wifbot_solana_bot_trades.sql index 129272de917..1929dbb87e0 100644 --- a/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/wifbot_solana_bot_trades.sql +++ b/dbt_subprojects/solana/models/_sector/dex/bot_trades/solana/platforms/wifbot_solana_bot_trades.sql @@ -37,7 +37,7 @@ with and tx_success and balance_change > 0 and address = '{{fee_receiver}}' - {{ account_activity_prefix_filter(fee_receiver) }} + and address_prefix = '{{ fee_receiver[:2] }}' ), bot_trades as ( select