From 12c211198da6c9fd5dd27cb98a9513d045a8dd3f Mon Sep 17 00:00:00 2001 From: alexshchur <60445720+alexshchur@users.noreply.github.com> Date: Wed, 27 Nov 2024 12:57:17 +0000 Subject: [PATCH] delta-v2 fees on all chains (base, ethereum for now) --- .../paraswap/paraswap_delta_v2_fees.sql | 44 +++++++++++++++++++ .../paraswap/paraswap_fees_delta.sql | 38 ++++++++++++++++ 2 files changed, 82 insertions(+) create mode 100644 dbt_subprojects/dex/macros/models/_project/paraswap/paraswap_delta_v2_fees.sql create mode 100644 dbt_subprojects/dex/models/_projects/paraswap/paraswap_fees_delta.sql diff --git a/dbt_subprojects/dex/macros/models/_project/paraswap/paraswap_delta_v2_fees.sql b/dbt_subprojects/dex/macros/models/_project/paraswap/paraswap_delta_v2_fees.sql new file mode 100644 index 00000000000..973d5f4130d --- /dev/null +++ b/dbt_subprojects/dex/macros/models/_project/paraswap/paraswap_delta_v2_fees.sql @@ -0,0 +1,44 @@ +{% macro paraswap_delta_v2_fees(blockchain, weth) %} +-- to be called wrapped by "with" + protocols_fees_balances_raw_{{blockchain}} as ( + select + destToken as fee_token, + prices.symbol as symbol, + prices.decimals as decimals, + prices.price as price, + sum(protocolFee) as combined_protocol_fee_wei -- vs partnerFee + from + paraswapdelta_{{ blockchain }}.ParaswapDeltav2_evt_OrderSettled as evt + left join prices.usd as prices on prices.blockchain = '{{ blockchain }}' + and prices.contract_address = ( + CASE + WHEN destToken = 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee THEN {{ weth }} + ELSE destToken + END + ) + -- would be good to have real time pricing, but there's a availability lag, so resorting to 10h-old price + and prices.minute = DATE_TRUNC('hour', CURRENT_TIMESTAMP - interval '10' HOUR ) + group by + 1, + 2, + 3, + 4 + ), protocols_fees_balances_{{blockchain}} as ( + select + fee_token, + symbol, + decimals, + price, + combined_protocol_fee_wei/pow(10,decimals) as combined_protocol_fee_unit, + price*combined_protocol_fee_wei/pow(10,decimals) as combined_usd_price + from + protocols_fees_balances_raw_{{blockchain}} + + {% if is_incremental() %} + WHERE + {{ incremental_predicate('evt_block_time') }} + {% endif %} + ) +{% endmacro %} + + diff --git a/dbt_subprojects/dex/models/_projects/paraswap/paraswap_fees_delta.sql b/dbt_subprojects/dex/models/_projects/paraswap/paraswap_fees_delta.sql new file mode 100644 index 00000000000..e99b803c563 --- /dev/null +++ b/dbt_subprojects/dex/models/_projects/paraswap/paraswap_fees_delta.sql @@ -0,0 +1,38 @@ +{{ config( + schema='paraswap', + alias = 'delta_fees', + post_hook='{{ expose_spells(\'["ethereum","base"]\', + "project", + "paraswap", + \'["eptighte"]\') }}' + ) +}} + + +-- https://dune.com/queries/4335045 + +{% set + config = [ + ('ethereum', '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2'), + ('base', '0x4200000000000000000000000000000000000006') + ] +%} + + +with +{% for row in config %} + {% if not loop.first %} + ,{% endif %}{{ paraswap_delta_v2_fees(row[0], row[1]) }} +{% endfor %} + + +{% for row in config %} + {% if not loop.first %} + union all + ( + {% endif %} + select '{{ row[0] }}' as blockchain, * from protocols_fees_balances_{{ row[0] }} + {% if not loop.first %} + ) + {% endif %} +{% endfor %}