From 0fb98f2b5f1ff750399c41042920a29d4d0f20e5 Mon Sep 17 00:00:00 2001 From: gustavobftorres Date: Wed, 18 Mar 2026 10:16:09 -0300 Subject: [PATCH 1/3] feat: sync files from open source spellbook, only spells / labels that do not depend on bigger public dbs --- .gitignore | 3 +- docs/balancer_v3_spell_gap_mapping.md | 18 + .../shared/balancer/balancer_lbps_macro.sql | 67 +++ ...l_token_supply_changes_daily_agg_macro.sql | 82 ++++ ...lancer_pool_token_supply_changes_macro.sql | 261 ++++++++++++ .../balancer/balancer_protocol_fee_macro.sql | 395 ++++++++++++++++++ ...alancer_v3_arbitrum_bpt_supply_changes.sql | 21 + ...r_v3_arbitrum_bpt_supply_changes_daily.sql | 17 + .../bpt/balancer_bpt_supply_changes.sql | 36 ++ .../bpt/balancer_bpt_supply_changes_daily.sql | 30 ++ .../balancer_v3_base_bpt_supply_changes.sql | 21 + ...ancer_v3_base_bpt_supply_changes_daily.sql | 17 + ...alancer_v3_ethereum_bpt_supply_changes.sql | 21 + ...r_v3_ethereum_bpt_supply_changes_daily.sql | 17 + .../balancer_v3_gnosis_bpt_supply_changes.sql | 21 + ...cer_v3_gnosis_bpt_supply_changes_daily.sql | 17 + .../balancer/erc4626_tokens/_schema.yml | 22 + .../erc4626_tokens/arbitrum/_schema.yml | 31 ++ ...ncer_v3_arbitrum_erc4626_token_mapping.sql | 46 ++ ...ancer_v3_arbitrum_erc4626_token_prices.sql | 68 +++ .../balancer_v3_erc4626_token_mapping.sql | 30 ++ .../balancer_v3_erc4626_token_prices.sql | 32 ++ .../balancer/erc4626_tokens/base/_schema.yml | 31 ++ ...balancer_v3_base_erc4626_token_mapping.sql | 46 ++ .../balancer_v3_base_erc4626_token_prices.sql | 68 +++ .../erc4626_tokens/ethereum/_schema.yml | 31 ++ ...ncer_v3_ethereum_erc4626_token_mapping.sql | 46 ++ ...ancer_v3_ethereum_erc4626_token_prices.sql | 68 +++ .../erc4626_tokens/gnosis/_schema.yml | 31 ++ ...lancer_v3_gnosis_erc4626_token_mapping.sql | 46 ++ ...alancer_v3_gnosis_erc4626_token_prices.sql | 68 +++ .../arbitrum/balancer_v3_arbitrum_lbps.sql | 15 + .../balancer/pools/balancer_v3_lbps.sql | 36 ++ .../pools/base/balancer_v3_base_lbps.sql | 15 + .../ethereum/balancer_v3_ethereum_lbps.sql | 15 + .../pools/gnosis/balancer_v3_gnosis_lbps.sql | 15 + .../balancer/protocol_fee/_schema.yml | 21 + .../protocol_fee/arbitrum/_schema.yml | 19 + .../balancer_v3_arbitrum_protocol_fee.sql | 18 + .../protocol_fee/balancer_protocol_fee.sql | 40 ++ .../balancer/protocol_fee/base/_schema.yml | 19 + .../base/balancer_v3_base_protocol_fee.sql | 18 + .../protocol_fee/ethereum/_schema.yml | 19 + .../balancer_v3_ethereum_protocol_fee.sql | 18 + .../balancer/protocol_fee/gnosis/_schema.yml | 19 + .../balancer_v3_gnosis_protocol_fee.sql | 18 + 46 files changed, 2011 insertions(+), 2 deletions(-) create mode 100644 docs/balancer_v3_spell_gap_mapping.md create mode 100644 macros/shared/balancer/balancer_lbps_macro.sql create mode 100644 macros/shared/balancer/balancer_pool_token_supply_changes_daily_agg_macro.sql create mode 100644 macros/shared/balancer/balancer_pool_token_supply_changes_macro.sql create mode 100644 macros/shared/balancer/balancer_protocol_fee_macro.sql create mode 100644 models/_project/balancer/bpt/arbitrum/balancer_v3_arbitrum_bpt_supply_changes.sql create mode 100644 models/_project/balancer/bpt/arbitrum/balancer_v3_arbitrum_bpt_supply_changes_daily.sql create mode 100644 models/_project/balancer/bpt/balancer_bpt_supply_changes.sql create mode 100644 models/_project/balancer/bpt/balancer_bpt_supply_changes_daily.sql create mode 100644 models/_project/balancer/bpt/base/balancer_v3_base_bpt_supply_changes.sql create mode 100644 models/_project/balancer/bpt/base/balancer_v3_base_bpt_supply_changes_daily.sql create mode 100644 models/_project/balancer/bpt/ethereum/balancer_v3_ethereum_bpt_supply_changes.sql create mode 100644 models/_project/balancer/bpt/ethereum/balancer_v3_ethereum_bpt_supply_changes_daily.sql create mode 100644 models/_project/balancer/bpt/gnosis/balancer_v3_gnosis_bpt_supply_changes.sql create mode 100644 models/_project/balancer/bpt/gnosis/balancer_v3_gnosis_bpt_supply_changes_daily.sql create mode 100644 models/_project/balancer/erc4626_tokens/_schema.yml create mode 100644 models/_project/balancer/erc4626_tokens/arbitrum/_schema.yml create mode 100644 models/_project/balancer/erc4626_tokens/arbitrum/balancer_v3_arbitrum_erc4626_token_mapping.sql create mode 100644 models/_project/balancer/erc4626_tokens/arbitrum/balancer_v3_arbitrum_erc4626_token_prices.sql create mode 100644 models/_project/balancer/erc4626_tokens/balancer_v3_erc4626_token_mapping.sql create mode 100644 models/_project/balancer/erc4626_tokens/balancer_v3_erc4626_token_prices.sql create mode 100644 models/_project/balancer/erc4626_tokens/base/_schema.yml create mode 100644 models/_project/balancer/erc4626_tokens/base/balancer_v3_base_erc4626_token_mapping.sql create mode 100644 models/_project/balancer/erc4626_tokens/base/balancer_v3_base_erc4626_token_prices.sql create mode 100644 models/_project/balancer/erc4626_tokens/ethereum/_schema.yml create mode 100644 models/_project/balancer/erc4626_tokens/ethereum/balancer_v3_ethereum_erc4626_token_mapping.sql create mode 100644 models/_project/balancer/erc4626_tokens/ethereum/balancer_v3_ethereum_erc4626_token_prices.sql create mode 100644 models/_project/balancer/erc4626_tokens/gnosis/_schema.yml create mode 100644 models/_project/balancer/erc4626_tokens/gnosis/balancer_v3_gnosis_erc4626_token_mapping.sql create mode 100644 models/_project/balancer/erc4626_tokens/gnosis/balancer_v3_gnosis_erc4626_token_prices.sql create mode 100644 models/_project/balancer/pools/arbitrum/balancer_v3_arbitrum_lbps.sql create mode 100644 models/_project/balancer/pools/balancer_v3_lbps.sql create mode 100644 models/_project/balancer/pools/base/balancer_v3_base_lbps.sql create mode 100644 models/_project/balancer/pools/ethereum/balancer_v3_ethereum_lbps.sql create mode 100644 models/_project/balancer/pools/gnosis/balancer_v3_gnosis_lbps.sql create mode 100644 models/_project/balancer/protocol_fee/_schema.yml create mode 100644 models/_project/balancer/protocol_fee/arbitrum/_schema.yml create mode 100644 models/_project/balancer/protocol_fee/arbitrum/balancer_v3_arbitrum_protocol_fee.sql create mode 100644 models/_project/balancer/protocol_fee/balancer_protocol_fee.sql create mode 100644 models/_project/balancer/protocol_fee/base/_schema.yml create mode 100644 models/_project/balancer/protocol_fee/base/balancer_v3_base_protocol_fee.sql create mode 100644 models/_project/balancer/protocol_fee/ethereum/_schema.yml create mode 100644 models/_project/balancer/protocol_fee/ethereum/balancer_v3_ethereum_protocol_fee.sql create mode 100644 models/_project/balancer/protocol_fee/gnosis/_schema.yml create mode 100644 models/_project/balancer/protocol_fee/gnosis/balancer_v3_gnosis_protocol_fee.sql diff --git a/.gitignore b/.gitignore index 104755e..38593ed 100644 --- a/.gitignore +++ b/.gitignore @@ -37,5 +37,4 @@ logs/ .envrc # Compiled files -*.pyc - +*.pyc \ No newline at end of file diff --git a/docs/balancer_v3_spell_gap_mapping.md b/docs/balancer_v3_spell_gap_mapping.md new file mode 100644 index 0000000..1596350 --- /dev/null +++ b/docs/balancer_v3_spell_gap_mapping.md @@ -0,0 +1,18 @@ +# Balancer V3 Spell Gap Mapping (Wave 1) + +## Source to Target +- Hourly source: `/Users/gustavotorres/Desktop/Projects/balancer/spellbook/dbt_subprojects/hourly_spellbook/models/_project/balancer` +- Dex source: `/Users/gustavotorres/Desktop/Projects/balancer/spellbook/dbt_subprojects/dex/models/_projects/balancer` +- Hourly target: `/Users/gustavotorres/Desktop/Projects/balancer/dune-dbt/models/_project/balancer` +- Dex target: `/Users/gustavotorres/Desktop/Projects/balancer/dune-dbt/models/_projects/balancer` + +## Implemented in Wave 1 +- Shared macros: `balancer_lbps_macro`, `balancer_pool_token_supply_changes_macro`, `balancer_pool_token_supply_changes_daily_agg_macro`, `balancer_protocol_fee_macro` +- BPT V3 supply changes: `arbitrum`, `base`, `ethereum`, `gnosis` + global V3-only aggregators +- ERC4626 V3 mapping/prices: `arbitrum`, `base`, `ethereum`, `gnosis` + global V3-only aggregators +- LBP V3: `arbitrum`, `base`, `ethereum`, `gnosis` + global aggregator +- Protocol fee V3: `arbitrum`, `base`, `ethereum`, `gnosis` + global V3-only aggregator + +## Deferred +- Dex V3 Balancer models (`pools_fees`, `trades`) until dex foundation is imported in this repo. +- New-chain backlog (`hyperevm`, `monad`, `sonic`, `avalanche_c v3`) remains out of Wave 1. diff --git a/macros/shared/balancer/balancer_lbps_macro.sql b/macros/shared/balancer/balancer_lbps_macro.sql new file mode 100644 index 0000000..9cce7ce --- /dev/null +++ b/macros/shared/balancer/balancer_lbps_macro.sql @@ -0,0 +1,67 @@ +{% macro + balancer_v3_compatible_lbps_macro( + blockchain, project_decoded_as + ) +%} + +WITH lbps_list AS ( + SELECT + e.pool AS pool_address, + c.symbol AS pool_symbol, + e.projectToken AS project_token, + e.reserveToken AS reserve_token + FROM {{ source(project_decoded_as + '_' + blockchain, 'LBPoolFactory_evt_LBPoolCreated') }} e + JOIN {{ source(project_decoded_as + '_' + blockchain, 'LBPoolFactory_call_create') }} c ON e.pool = c.output_pool + ), + + lbps_weight_update AS ( + SELECT + contract_address AS pool_address, + evt_block_time, + startTime, + endTime, + element_at(startWeights, 1) / POWER(10,18) AS project_token_start_weight, + element_at(startWeights, 2) / POWER(10,18) AS reserve_token_start_weight, + element_at(endWeights, 1) / POWER(10,18) AS project_token_end_weight, + element_at(endWeights, 2) / POWER(10,18) AS reserve_token_end_weight + FROM {{ source(project_decoded_as + '_' + blockchain, 'LBPool_evt_GradualWeightUpdateScheduled') }} + ), + + last_weight_update AS ( + SELECT * + FROM ( + SELECT + pool_address, + from_unixtime(startTime) AS start_time, + from_unixtime(endTime) AS end_time, + project_token_start_weight, + reserve_token_start_weight, + project_token_end_weight, + reserve_token_end_weight, + ROW_NUMBER() OVER (PARTITION BY pool_address ORDER BY evt_block_time DESC) AS ranking + FROM lbps_weight_update c + ) w + WHERE ranking = 1 + ) + + SELECT + '{{blockchain}}' AS blockchain, + l.pool_symbol, + l.pool_address, + w.start_time, + w.end_time, + l.project_token, + t1.symbol AS project_token_symbol, + l.reserve_token, + t2.symbol AS reserve_token_symbol, + project_token_start_weight, + reserve_token_start_weight, + project_token_end_weight, + reserve_token_end_weight + FROM lbps_list l + JOIN last_weight_update w + ON w.pool_address = l.pool_address + LEFT JOIN {{ source('tokens', 'erc20') }} t1 ON l.project_token = t1.contract_address AND t1.blockchain = '{{blockchain}}' + LEFT JOIN {{ source('tokens', 'erc20') }} t2 ON l.reserve_token = t2.contract_address AND t2.blockchain = '{{blockchain}}' + +{% endmacro %} \ No newline at end of file diff --git a/macros/shared/balancer/balancer_pool_token_supply_changes_daily_agg_macro.sql b/macros/shared/balancer/balancer_pool_token_supply_changes_daily_agg_macro.sql new file mode 100644 index 0000000..f2f299e --- /dev/null +++ b/macros/shared/balancer/balancer_pool_token_supply_changes_daily_agg_macro.sql @@ -0,0 +1,82 @@ +{% macro + balancer_v2_compatible_bpt_supply_changes_daily_agg_macro( + blockchain, version, project_decoded_as, base_spells_namespace + ) +%} +WITH + daily_balance AS ( + SELECT + block_date, + blockchain, + pool_type, + pool_symbol, + token_address, + LEAD(block_date, 1, NOW()) OVER (PARTITION BY token_address ORDER BY block_date) AS day_of_next_change, + SUM(delta_amount) AS daily_amount + FROM {{ ref(base_spells_namespace + '_bpt_supply_changes') }} + WHERE blockchain = '{{blockchain}}' + AND version = '{{version}}' + GROUP BY 1, 2, 3, 4, 5 + ), + + calendar AS ( + SELECT date_sequence AS day + FROM unnest(sequence(date('2021-04-21'), date(now()), interval '1' day)) as t(date_sequence) + ) + + SELECT + c.day AS block_date, + '{{blockchain}}' as blockchain, + '{{version}}' AS version, + b.pool_type, + b.pool_symbol, + b.token_address, + b.daily_amount AS daily_delta + FROM calendar c + LEFT JOIN daily_balance b ON b.block_date = c.day + WHERE b.token_address IS NOT NULL + AND b.pool_type IS NOT NULL + {% endmacro %} + +{# ######################################################################### #} + +{% macro + balancer_v3_compatible_bpt_supply_changes_daily_agg_macro( + blockchain, version, project_decoded_as, base_spells_namespace + ) +%} +WITH + daily_balance AS ( + SELECT + block_date, + blockchain, + pool_type, + pool_symbol, + token_address, + LEAD(block_date, 1, NOW()) OVER (PARTITION BY token_address ORDER BY block_date) AS day_of_next_change, + SUM(delta_amount) AS daily_amount + FROM {{ ref(base_spells_namespace + '_bpt_supply_changes') }} + WHERE blockchain = '{{blockchain}}' + AND version = '{{version}}' + GROUP BY 1, 2, 3, 4, 5 + ), + + calendar AS ( + SELECT date_sequence AS day + FROM unnest(sequence(date('2024-12-01'), date(now()), interval '1' day)) as t(date_sequence) + ) + + SELECT DISTINCT + c.day AS block_date, + '{{blockchain}}' as blockchain, + '{{version}}' AS version, + b.pool_type, + b.pool_symbol, + b.token_address, + b.daily_amount AS daily_delta + FROM calendar c + LEFT JOIN daily_balance b ON b.block_date = c.day + WHERE b.token_address IS NOT NULL + AND b.pool_type IS NOT NULL + + {% endmacro %} \ No newline at end of file diff --git a/macros/shared/balancer/balancer_pool_token_supply_changes_macro.sql b/macros/shared/balancer/balancer_pool_token_supply_changes_macro.sql new file mode 100644 index 0000000..b5ebeee --- /dev/null +++ b/macros/shared/balancer/balancer_pool_token_supply_changes_macro.sql @@ -0,0 +1,261 @@ +{% macro + balancer_v2_compatible_bpt_supply_changes_macro( + blockchain, version, project_decoded_as, base_spells_namespace, pool_labels_model + ) +%} +WITH pool_labels AS ( + SELECT + address, + name, + pool_type + FROM {{ source('labels', pool_labels_model) }} + WHERE blockchain = '{{blockchain}}' + AND source = 'query' + AND model_name = '{{pool_labels_model}}' + ), + + -- Extract mints and burns from transfers + transfers AS ( + SELECT + t.evt_block_time, + t.evt_block_number, + t.evt_tx_hash, + t.evt_index, + t.contract_address AS token, + CASE + WHEN t."from" = 0x0000000000000000000000000000000000000000 + THEN 'mint' + WHEN t.to = 0x0000000000000000000000000000000000000000 + THEN 'burn' + END AS label, + l.pool_type, + l.name, + CASE + WHEN t."from" = 0x0000000000000000000000000000000000000000 + THEN value + WHEN t.to = 0x0000000000000000000000000000000000000000 + THEN - value + ELSE 0 + END AS amount + FROM {{ ref(base_spells_namespace + '_transfers_bpt') }} t + LEFT JOIN pool_labels l ON t.contract_address = l.address + WHERE t.blockchain = '{{blockchain}}' + AND t.version = '{{version}}' + {% if is_incremental() %} + AND {{ incremental_predicate('t.evt_block_time') }} + {% endif %} + ), + + -- Calculating Joins(mint) and Exits(burn) via Swap + joins AS ( + SELECT + s.evt_block_time, + s.evt_block_number, + s.evt_tx_hash, + s.evt_index, + s.tokenOut AS token, + 'join' AS label, + l.pool_type, + l.name, + CASE WHEN l.pool_type IN ('weighted') + THEN 0 + ELSE s.amountOut + END AS amount + FROM {{ source(project_decoded_as + '_' + blockchain, 'Vault_evt_Swap') }} s + LEFT JOIN pool_labels l ON BYTEARRAY_SUBSTRING(s.poolId, 1, 20) = l.address + WHERE tokenOut = BYTEARRAY_SUBSTRING(s.poolId, 1, 20) + {% if is_incremental() %} + AND {{ incremental_predicate('s.evt_block_time') }} + {% endif %} + + ), + + exits AS ( + SELECT + s.evt_block_time, + s.evt_block_number, + s.evt_tx_hash, + s.evt_index, + s.tokenIn AS token, + 'exit' AS label, + l.pool_type, + l.name, + CASE WHEN l.pool_type IN ('weighted') + THEN 0 + ELSE - s.amountIn + END AS amount + FROM {{ source(project_decoded_as + '_' + blockchain, 'Vault_evt_Swap') }} s + LEFT JOIN pool_labels l ON BYTEARRAY_SUBSTRING(s.poolId, 1, 20) = l.address + WHERE tokenIn = BYTEARRAY_SUBSTRING(s.poolId, 1, 20) + {% if is_incremental() %} + AND {{ incremental_predicate('s.evt_block_time') }} + {% endif %} + ) + + SELECT + date_trunc('day', evt_block_time) AS block_date, + evt_block_time, + evt_block_number, + '{{blockchain}}' AS blockchain, + evt_tx_hash, + evt_index, + pool_type, + name AS pool_symbol, + '{{version}}' AS version, + label, + token AS token_address, + amount AS delta_amount_raw, + amount / POWER (10, 18) AS delta_amount --18 decimals standard for BPTs + FROM + ( + SELECT + * + FROM joins + + UNION ALL + + SELECT + * + FROM exits + + UNION ALL + + SELECT + * + FROM transfers + WHERE label IS NOT NULL + ) + {% if is_incremental() %} + WHERE {{ incremental_predicate('evt_block_time') }} + {% endif %} + + {% endmacro %} + +{# ######################################################################### #} + +{% macro + balancer_v3_compatible_bpt_supply_changes_macro( + blockchain, version, project_decoded_as, base_spells_namespace, pool_labels_model + ) +%} +WITH pool_labels AS ( + SELECT + address, + name, + pool_type + FROM {{ source('labels', pool_labels_model) }} + WHERE blockchain = '{{blockchain}}' + AND source = 'query' + AND model_name = '{{pool_labels_model}}' + ), + + -- Extract mints and burns from transfers + transfers AS ( + SELECT + t.evt_block_time, + t.evt_block_number, + t.evt_tx_hash, + t.evt_index, + t.contract_address AS token, + CASE + WHEN t."from" = 0x0000000000000000000000000000000000000000 + THEN 'mint' + WHEN t.to = 0x0000000000000000000000000000000000000000 + THEN 'burn' + END AS label, + l.pool_type, + l.name, + CASE + WHEN t."from" = 0x0000000000000000000000000000000000000000 + THEN value + WHEN t.to = 0x0000000000000000000000000000000000000000 + THEN - value + ELSE 0 + END AS amount + FROM {{ ref(base_spells_namespace + '_transfers_bpt') }} t + LEFT JOIN pool_labels l ON t.contract_address = l.address + WHERE t.blockchain = '{{blockchain}}' + AND t.version = '{{version}}' + {% if is_incremental() %} + AND {{ incremental_predicate('t.evt_block_time') }} + {% endif %} + ), + + -- Calculating Joins(mint) and Exits(burn) via Swap + joins AS ( + SELECT + s.evt_block_time, + s.evt_block_number, + s.evt_tx_hash, + s.evt_index, + s.tokenOut AS token, + 'join' AS label, + l.pool_type, + l.name, + s.amountOut AS amount + FROM {{ source(project_decoded_as + '_' + blockchain, 'Vault_evt_Swap') }} s + LEFT JOIN pool_labels l ON pool = l.address + WHERE tokenOut = pool + {% if is_incremental() %} + AND {{ incremental_predicate('s.evt_block_time') }} + {% endif %} + + ), + + exits AS ( + SELECT + s.evt_block_time, + s.evt_block_number, + s.evt_tx_hash, + s.evt_index, + s.tokenIn AS token, + 'exit' AS label, + l.pool_type, + l.name, + - s.amountIn AS amount + FROM {{ source(project_decoded_as + '_' + blockchain, 'Vault_evt_Swap') }} s + LEFT JOIN pool_labels l ON pool = l.address + WHERE tokenIn = pool + {% if is_incremental() %} + AND {{ incremental_predicate('s.evt_block_time') }} + {% endif %} + ) + + SELECT + date_trunc('day', evt_block_time) AS block_date, + evt_block_time, + evt_block_number, + '{{blockchain}}' AS blockchain, + evt_tx_hash, + evt_index, + pool_type, + name AS pool_symbol, + '{{version}}' AS version, + label, + token AS token_address, + amount AS delta_amount_raw, + amount / POWER (10, 18) AS delta_amount --18 decimals standard for BPTs + FROM + ( + SELECT + * + FROM joins + + UNION ALL + + SELECT + * + FROM exits + + UNION ALL + + SELECT + * + FROM transfers + WHERE label IS NOT NULL + ) + {% if is_incremental() %} + WHERE {{ incremental_predicate('evt_block_time') }} + {% endif %} + + {% endmacro %} \ No newline at end of file diff --git a/macros/shared/balancer/balancer_protocol_fee_macro.sql b/macros/shared/balancer/balancer_protocol_fee_macro.sql new file mode 100644 index 0000000..794a3f7 --- /dev/null +++ b/macros/shared/balancer/balancer_protocol_fee_macro.sql @@ -0,0 +1,395 @@ +{% macro + balancer_v2_compatible_protocol_fee_macro( + blockchain, version, project_decoded_as, base_spells_namespace, pool_labels_model + ) +%} + +WITH pool_labels AS ( + SELECT * FROM ( + SELECT + address, + name, + pool_type, + ROW_NUMBER() OVER (PARTITION BY address ORDER BY MAX(updated_at) DESC) AS num + FROM {{ source('labels', pool_labels_model) }} + WHERE blockchain = '{{blockchain}}' + AND source = 'query' + AND model_name = '{{pool_labels_model}}' + GROUP BY 1, 2, 3) + WHERE num = 1 + ), + + prices AS ( + SELECT + date_trunc('day', minute) AS day, + contract_address AS token, + decimals, + AVG(price) AS price + FROM {{ source('prices', 'usd') }} + WHERE blockchain = '{{blockchain}}' + GROUP BY 1, 2, 3 + + ), + + dex_prices_1 AS ( + SELECT + date_trunc('day', HOUR) AS DAY, + contract_address AS token, + approx_percentile(median_price, 0.5) AS price, + sum(sample_size) AS sample_size + FROM {{ source('dex', 'prices') }} + WHERE blockchain = '{{blockchain}}' + AND contract_address NOT IN (0x039e2fb66102314ce7b64ce5ce3e5183bc94ad38, 0xde1e704dae0b4051e80dabb26ab6ad6c12262da0, 0x5ddb92a5340fd0ead3987d3661afcd6104c3b757) + GROUP BY 1, 2 + HAVING sum(sample_size) > 3 + ), + + dex_prices_2 AS( + SELECT + day, + token, + price, + lag(price) OVER(PARTITION BY token ORDER BY day) AS previous_price + FROM dex_prices_1 + ), + + dex_prices AS ( + SELECT + day, + token, + price, + LEAD(DAY, 1, NOW()) OVER (PARTITION BY token ORDER BY DAY) AS day_of_next_change + FROM dex_prices_2 + WHERE (price < previous_price * 1e4 AND price > previous_price / 1e4) + ), + + bpt_prices_1 AS ( --special calculation for this spell, in order to achieve completeness without relying on prices.usd + SELECT + l.day, + s.token_address AS token, + 18 AS decimals, + SUM(protocol_liquidity_usd / supply) AS price + FROM {{ ref(base_spells_namespace + '_liquidity') }} l + LEFT JOIN {{ ref(base_spells_namespace + '_bpt_supply') }} s ON s.token_address = l.pool_address + AND l.blockchain = s.blockchain AND s.day = l.day AND s.supply > 1e-4 + WHERE l.blockchain = '{{blockchain}}' + AND l.version = '{{version}}' + GROUP BY 1, 2, 3 + ), + + bpt_prices AS ( + SELECT + day, + token, + decimals, + price, + LEAD(DAY, 1, NOW()) OVER (PARTITION BY token ORDER BY DAY) AS day_of_next_change + FROM bpt_prices_1 + ), + + daily_protocol_fee_collected AS ( + -- flashloans are taken from the vault contract, there is no pool involved. + SELECT + date_trunc('day', evt_block_time) AS day, + 0xba12222222228d8ba445958a75a0704d566bf2c8 AS pool_id, + token AS token_address, + SUM(feeAmount) AS protocol_fee_amount_raw + FROM {{ source(project_decoded_as + '_' + blockchain, 'Vault_evt_FlashLoan') }} b + GROUP BY 1, 2, 3 + + UNION ALL + + SELECT + date_trunc('day', evt_block_time) AS day, + poolId AS pool_id, + token AS token_address, + SUM(protocol_fees) AS protocol_fee_amount_raw + FROM {{ source(project_decoded_as + '_' + blockchain, 'Vault_evt_PoolBalanceChanged') }} b + CROSS JOIN unnest("protocolFeeAmounts", "tokens") AS t(protocol_fees, token) + GROUP BY 1, 2, 3 + + UNION ALL + + SELECT + date_trunc('day', t.evt_block_time) AS day, + poolId AS pool_id, + b.poolAddress AS token_address, + sum(value) AS protocol_fee_amount_raw + FROM {{ source(project_decoded_as + '_' + blockchain, 'Vault_evt_PoolRegistered') }} b + INNER JOIN {{ source('erc20_' + blockchain, 'evt_Transfer') }} t + ON t.contract_address = b.poolAddress + AND t."from" = 0x0000000000000000000000000000000000000000 + AND t."to" = + CASE + WHEN '{{blockchain}}' = 'fantom' THEN 0xc6920d3a369e7c8bd1a22dbe385e11d1f7af948f + ELSE 0xce88686553686DA562CE7Cea497CE749DA109f9F + END --ProtocolFeesCollector address, which is the same across all chains except for fantom + GROUP BY 1, 2, 3 + ), + + decorated_protocol_fee AS ( + SELECT + d.day, + d.pool_id, + d.token_address, + t.symbol AS token_symbol, + SUM(d.protocol_fee_amount_raw) AS token_amount_raw, + SUM(d.protocol_fee_amount_raw / POWER(10, COALESCE(t.decimals,p1.decimals, p3.decimals))) AS token_amount, + SUM(COALESCE(p1.price, p2.price, p3.price) * protocol_fee_amount_raw / POWER(10, COALESCE(t.decimals,p1.decimals, p3.decimals))) AS protocol_fee_collected_usd + FROM daily_protocol_fee_collected d + LEFT JOIN prices p1 + ON p1.token = d.token_address + AND p1.day = d.day + LEFT JOIN dex_prices p2 + ON p2.token = d.token_address + AND p2.day = d.day + LEFT JOIN bpt_prices p3 + ON p3.token = d.token_address + AND p3.day <= d.day + AND d.day < p3.day_of_next_change + LEFT JOIN {{ source('tokens', 'erc20') }} t + ON t.contract_address = d.token_address + AND t.blockchain = '{{blockchain}}' + GROUP BY 1, 2, 3, 4 + ), + + revenue_share as( + SELECT + day, + CASE + WHEN day < DATE '2022-07-03' THEN 0.25 -- veBAL release + WHEN day >= DATE '2022-07-03' AND day < DATE '2023-01-23' THEN 0.25 -- BIP 19 + WHEN day >= DATE '2023-01-23' AND day < DATE '2023-07-24' THEN 0.35 -- BIP 161 + WHEN day >= DATE '2023-07-24' THEN 0.175 -- BIP 371 and BIP 734 + END AS treasury_share + FROM UNNEST(SEQUENCE(DATE '2022-03-01', CURRENT_DATE, INTERVAL '1' DAY)) AS date(day) + ) + + + SELECT + f.day, + f.pool_id, + BYTEARRAY_SUBSTRING(f.pool_id,1,20) AS pool_address, + CASE WHEN f.pool_id = 0xba12222222228d8ba445958a75a0704d566bf2c8 THEN 'flashloan' ELSE l.name END AS pool_symbol, + '{{version}}' AS version, + '{{blockchain}}' AS blockchain, + l.pool_type, + CASE WHEN f.pool_id = 0xba12222222228d8ba445958a75a0704d566bf2c8 THEN 'flashloan' ELSE 'v2' END AS fee_type, + f.token_address, + f.token_symbol, + SUM(f.token_amount_raw) AS token_amount_raw, + SUM(f.token_amount) AS token_amount, + SUM(f.protocol_fee_collected_usd) AS protocol_fee_collected_usd, + r.treasury_share, + SUM(f.protocol_fee_collected_usd) * r.treasury_share AS treasury_fee_usd, + SUM(f.protocol_fee_collected_usd) AS lp_fee_collected_usd + FROM decorated_protocol_fee f + INNER JOIN revenue_share r + ON r.day = f.day + LEFT JOIN pool_labels l + ON BYTEARRAY_SUBSTRING(f.pool_id,1,20) = l.address + GROUP BY 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 14 + +{% endmacro %} + +{# ######################################################################### #} + +{% macro + balancer_v3_compatible_protocol_fee_macro( + blockchain, version, project_decoded_as, base_spells_namespace, pool_labels_model + ) +%} + +WITH pool_labels AS ( + SELECT * FROM ( + SELECT + address, + name, + pool_type, + ROW_NUMBER() OVER (PARTITION BY address ORDER BY MAX(updated_at) DESC) AS num + FROM {{ source('labels', pool_labels_model) }} + WHERE blockchain = '{{blockchain}}' + AND source = 'query' + AND model_name = '{{pool_labels_model}}' + GROUP BY 1, 2, 3) + WHERE num = 1 + ), + + prices AS ( + SELECT + date_trunc('day', minute) AS day, + contract_address AS token, + decimals, + AVG(price) AS price + FROM {{ source('prices', 'usd') }} + WHERE blockchain = '{{blockchain}}' + GROUP BY 1, 2, 3 + + ), + + dex_prices_1 AS ( + SELECT + date_trunc('day', HOUR) AS DAY, + contract_address AS token, + approx_percentile(median_price, 0.5) AS price, + sum(sample_size) AS sample_size + FROM {{ source('dex', 'prices') }} + WHERE blockchain = '{{blockchain}}' + AND contract_address NOT IN (0x039e2fb66102314ce7b64ce5ce3e5183bc94ad38, 0xde1e704dae0b4051e80dabb26ab6ad6c12262da0, 0x5ddb92a5340fd0ead3987d3661afcd6104c3b757) + GROUP BY 1, 2 + HAVING sum(sample_size) > 3 + ), + + dex_prices_2 AS( + SELECT + day, + token, + price, + lag(price) OVER(PARTITION BY token ORDER BY day) AS previous_price + FROM dex_prices_1 + ), + + dex_prices AS ( + SELECT + day, + token, + price, + LEAD(DAY, 1, NOW()) OVER (PARTITION BY token ORDER BY DAY) AS day_of_next_change + FROM dex_prices_2 + WHERE (price < previous_price * 1e4 AND price > previous_price / 1e4) + ), + + bpt_prices_1 AS ( --special calculation for this spell, in order to achieve completeness without relying on prices.usd + SELECT + l.day, + s.token_address AS token, + 18 AS decimals, + SUM(protocol_liquidity_usd / supply) AS price + FROM {{ ref(base_spells_namespace + '_liquidity') }} l + LEFT JOIN {{ ref(base_spells_namespace + '_bpt_supply') }} s ON s.token_address = l.pool_address + AND l.blockchain = s.blockchain AND s.day = l.day AND s.supply > 1e-4 + WHERE l.blockchain = '{{blockchain}}' + AND l.version = '{{version}}' + GROUP BY 1, 2, 3 + ), + + bpt_prices AS ( + SELECT + day, + token, + decimals, + price, + LEAD(DAY, 1, NOW()) OVER (PARTITION BY token ORDER BY DAY) AS day_of_next_change + FROM bpt_prices_1 + ), + + erc4626_prices AS ( + SELECT + DATE_TRUNC('day', minute) AS day, + wrapped_token AS token, + decimals, + APPROX_PERCENTILE(median_price, 0.5) AS price, + LEAD(DATE_TRUNC('day', minute), 1, CURRENT_DATE + INTERVAL '1' day) OVER (PARTITION BY wrapped_token ORDER BY date_trunc('day', minute)) AS next_change + FROM {{ source('balancer_v3' , 'erc4626_token_prices') }} + WHERE blockchain = '{{blockchain}}' + GROUP BY 1, 2, 3 + ), + + daily_protocol_fee_collected AS ( + SELECT + d.day, + d.pool_id, + d.token_address, + d.fee_type, + SUM(d.protocol_fee_amount_raw) AS token_amount_raw + FROM ( + SELECT + date_trunc('day', evt_block_time) AS day, + pool AS pool_id, + token AS token_address, + 'swap_fee' AS fee_type, + SUM(amount) AS protocol_fee_amount_raw + FROM {{ source(project_decoded_as + '_' + blockchain, 'ProtocolFeeController_evt_ProtocolSwapFeeCollected') }} + GROUP BY 1, 2, 3, 4 + + UNION ALL + + SELECT + date_trunc('day', evt_block_time) AS day, + pool AS pool_id, + token AS token_address, + 'yield_fee' AS fee_type, + SUM(amount) AS protocol_fee_amount_raw + FROM {{ source(project_decoded_as + '_' + blockchain, 'ProtocolFeeController_evt_ProtocolYieldFeeCollected') }} + GROUP BY 1, 2, 3, 4 + ) d + GROUP BY 1, 2, 3, 4 + ), + + decorated_protocol_fee AS ( + SELECT + d.day, + d.pool_id, + d.token_address, + t.symbol AS token_symbol, + d.fee_type, + SUM(d.token_amount_raw) AS token_amount_raw, + SUM(d.token_amount_raw / POWER(10, COALESCE(t.decimals,p1.decimals, p3.decimals, p4.decimals))) AS token_amount, + SUM(COALESCE(p1.price, p2.price, p3.price, p4.price) * token_amount_raw / POWER(10, COALESCE(t.decimals,p1.decimals, p3.decimals, p4.decimals))) AS protocol_fee_collected_usd + FROM daily_protocol_fee_collected d + LEFT JOIN prices p1 + ON p1.token = d.token_address + AND p1.day = d.day + LEFT JOIN dex_prices p2 + ON p2.token = d.token_address + AND p2.day = d.day + LEFT JOIN bpt_prices p3 + ON p3.token = d.token_address + AND p3.day <= d.day + AND d.day < p3.day_of_next_change + LEFT JOIN erc4626_prices p4 ON p4.day <= d.day + AND d.day < p4.next_change + AND p4.token = d.token_address + LEFT JOIN {{ source('tokens', 'erc20') }} t + ON t.contract_address = d.token_address + AND t.blockchain = '{{blockchain}}' + GROUP BY 1, 2, 3, 4, 5 + ), + + revenue_share as( + SELECT + day, + CASE + WHEN day >= DATE '2024-12-01' THEN 0.175 -- BIP 734 + END AS treasury_share + FROM UNNEST(SEQUENCE(DATE '2024-12-01', CURRENT_DATE, INTERVAL '1' DAY)) AS date(day) + ) + + + SELECT + f.day, + f.pool_id, + BYTEARRAY_SUBSTRING(f.pool_id,1,20) as pool_address, + l.name AS pool_symbol, + '{{version}}' as version, + '{{blockchain}}' as blockchain, + l.pool_type, + f.fee_type, + f.token_address, + f.token_symbol, + SUM(f.token_amount_raw) as token_amount_raw, + SUM(f.token_amount) as token_amount, + SUM(f.protocol_fee_collected_usd) as protocol_fee_collected_usd, + r.treasury_share, + SUM(f.protocol_fee_collected_usd) * r.treasury_share as treasury_fee_usd, + SUM(CASE WHEN f.fee_type = 'swap_fee' THEN f.protocol_fee_collected_usd + WHEN f.fee_type = 'yield_fee' THEN f.protocol_fee_collected_usd * 9 END) + AS lp_fee_collected_usd + FROM decorated_protocol_fee f + INNER JOIN revenue_share r + ON r.day = f.day + LEFT JOIN pool_labels l + ON BYTEARRAY_SUBSTRING(f.pool_id,1,20) = l.address + GROUP BY 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 14 + +{% endmacro %} diff --git a/models/_project/balancer/bpt/arbitrum/balancer_v3_arbitrum_bpt_supply_changes.sql b/models/_project/balancer/bpt/arbitrum/balancer_v3_arbitrum_bpt_supply_changes.sql new file mode 100644 index 0000000..8cd9f3b --- /dev/null +++ b/models/_project/balancer/bpt/arbitrum/balancer_v3_arbitrum_bpt_supply_changes.sql @@ -0,0 +1,21 @@ +{% set blockchain = 'arbitrum' %} + +{{ + config( + alias = 'balancer_v3_arbitrum_bpt_supply_changes', + materialized = 'incremental', + incremental_strategy = 'merge', + unique_key = ['block_date', 'evt_tx_hash', 'evt_index', 'label'], + incremental_predicates = [incremental_predicate('DBT_INTERNAL_DEST.evt_block_time')] + ) +}} + +{{ + balancer_v3_compatible_bpt_supply_changes_macro( + blockchain = blockchain, + version = '3', + project_decoded_as = 'balancer_v3', + base_spells_namespace = 'balancer', + pool_labels_model = 'balancer_v3_pools_arbitrum' + ) +}} diff --git a/models/_project/balancer/bpt/arbitrum/balancer_v3_arbitrum_bpt_supply_changes_daily.sql b/models/_project/balancer/bpt/arbitrum/balancer_v3_arbitrum_bpt_supply_changes_daily.sql new file mode 100644 index 0000000..85b5cbe --- /dev/null +++ b/models/_project/balancer/bpt/arbitrum/balancer_v3_arbitrum_bpt_supply_changes_daily.sql @@ -0,0 +1,17 @@ +{% set blockchain = 'arbitrum' %} + +{{ + config( + alias = 'balancer_v3_arbitrum_bpt_supply_changes_daily', + materialized = 'table' + ) +}} + +{{ + balancer_v3_compatible_bpt_supply_changes_daily_agg_macro( + blockchain = blockchain, + version = '3', + project_decoded_as = 'balancer_v3', + base_spells_namespace = 'balancer' + ) +}} diff --git a/models/_project/balancer/bpt/balancer_bpt_supply_changes.sql b/models/_project/balancer/bpt/balancer_bpt_supply_changes.sql new file mode 100644 index 0000000..b9a94f5 --- /dev/null +++ b/models/_project/balancer/bpt/balancer_bpt_supply_changes.sql @@ -0,0 +1,36 @@ +{{ config( + alias = 'balancer_bpt_supply_changes' + , post_hook='{{ hide_spells() }}' + ) +}} + +{% set balancer_models = [ + ref('balancer_v3_ethereum_bpt_supply_changes'), + ref('balancer_v3_gnosis_bpt_supply_changes'), + ref('balancer_v3_arbitrum_bpt_supply_changes'), + ref('balancer_v3_base_bpt_supply_changes') +] %} + +SELECT * +FROM ( + {% for model in balancer_models %} + SELECT + block_date + , evt_block_time + , evt_block_number + , blockchain + , evt_tx_hash + , evt_index + , pool_type + , pool_symbol + , version + , label + , token_address + , delta_amount_raw + , delta_amount + FROM {{ model }} + {% if not loop.last %} + UNION ALL + {% endif %} + {% endfor %} +) diff --git a/models/_project/balancer/bpt/balancer_bpt_supply_changes_daily.sql b/models/_project/balancer/bpt/balancer_bpt_supply_changes_daily.sql new file mode 100644 index 0000000..d38a9c8 --- /dev/null +++ b/models/_project/balancer/bpt/balancer_bpt_supply_changes_daily.sql @@ -0,0 +1,30 @@ +{{ config( + alias = 'balancer_bpt_supply_changes_daily' + , post_hook='{{ hide_spells() }}' + ) +}} + +{% set balancer_models = [ + ref('balancer_v3_ethereum_bpt_supply_changes_daily'), + ref('balancer_v3_gnosis_bpt_supply_changes_daily'), + ref('balancer_v3_arbitrum_bpt_supply_changes_daily'), + ref('balancer_v3_base_bpt_supply_changes_daily') +] %} + +SELECT * +FROM ( + {% for model in balancer_models %} + SELECT + block_date + , blockchain + , pool_type + , pool_symbol + , version + , token_address + , daily_delta + FROM {{ model }} + {% if not loop.last %} + UNION ALL + {% endif %} + {% endfor %} +) diff --git a/models/_project/balancer/bpt/base/balancer_v3_base_bpt_supply_changes.sql b/models/_project/balancer/bpt/base/balancer_v3_base_bpt_supply_changes.sql new file mode 100644 index 0000000..efbd36d --- /dev/null +++ b/models/_project/balancer/bpt/base/balancer_v3_base_bpt_supply_changes.sql @@ -0,0 +1,21 @@ +{% set blockchain = 'base' %} + +{{ + config( + alias = 'balancer_v3_base_bpt_supply_changes', + materialized = 'incremental', + incremental_strategy = 'merge', + unique_key = ['block_date', 'evt_tx_hash', 'evt_index', 'label'], + incremental_predicates = [incremental_predicate('DBT_INTERNAL_DEST.evt_block_time')] + ) +}} + +{{ + balancer_v3_compatible_bpt_supply_changes_macro( + blockchain = blockchain, + version = '3', + project_decoded_as = 'balancer_v3', + base_spells_namespace = 'balancer', + pool_labels_model = 'balancer_v3_pools_base' + ) +}} diff --git a/models/_project/balancer/bpt/base/balancer_v3_base_bpt_supply_changes_daily.sql b/models/_project/balancer/bpt/base/balancer_v3_base_bpt_supply_changes_daily.sql new file mode 100644 index 0000000..714c61f --- /dev/null +++ b/models/_project/balancer/bpt/base/balancer_v3_base_bpt_supply_changes_daily.sql @@ -0,0 +1,17 @@ +{% set blockchain = 'base' %} + +{{ + config( + alias = 'balancer_v3_base_bpt_supply_changes_daily', + materialized = 'table' + ) +}} + +{{ + balancer_v3_compatible_bpt_supply_changes_daily_agg_macro( + blockchain = blockchain, + version = '3', + project_decoded_as = 'balancer_v3', + base_spells_namespace = 'balancer' + ) +}} diff --git a/models/_project/balancer/bpt/ethereum/balancer_v3_ethereum_bpt_supply_changes.sql b/models/_project/balancer/bpt/ethereum/balancer_v3_ethereum_bpt_supply_changes.sql new file mode 100644 index 0000000..fff8d7e --- /dev/null +++ b/models/_project/balancer/bpt/ethereum/balancer_v3_ethereum_bpt_supply_changes.sql @@ -0,0 +1,21 @@ +{% set blockchain = 'ethereum' %} + +{{ + config( + alias = 'balancer_v3_ethereum_bpt_supply_changes', + materialized = 'incremental', + incremental_strategy = 'merge', + unique_key = ['block_date', 'evt_tx_hash', 'evt_index', 'label'], + incremental_predicates = [incremental_predicate('DBT_INTERNAL_DEST.evt_block_time')] + ) +}} + +{{ + balancer_v3_compatible_bpt_supply_changes_macro( + blockchain = blockchain, + version = '3', + project_decoded_as = 'balancer_v3', + base_spells_namespace = 'balancer', + pool_labels_model = 'balancer_v3_pools_ethereum' + ) +}} diff --git a/models/_project/balancer/bpt/ethereum/balancer_v3_ethereum_bpt_supply_changes_daily.sql b/models/_project/balancer/bpt/ethereum/balancer_v3_ethereum_bpt_supply_changes_daily.sql new file mode 100644 index 0000000..572b0d7 --- /dev/null +++ b/models/_project/balancer/bpt/ethereum/balancer_v3_ethereum_bpt_supply_changes_daily.sql @@ -0,0 +1,17 @@ +{% set blockchain = 'ethereum' %} + +{{ + config( + alias = 'balancer_v3_ethereum_bpt_supply_changes_daily', + materialized = 'table' + ) +}} + +{{ + balancer_v3_compatible_bpt_supply_changes_daily_agg_macro( + blockchain = blockchain, + version = '3', + project_decoded_as = 'balancer_v3', + base_spells_namespace = 'balancer' + ) +}} diff --git a/models/_project/balancer/bpt/gnosis/balancer_v3_gnosis_bpt_supply_changes.sql b/models/_project/balancer/bpt/gnosis/balancer_v3_gnosis_bpt_supply_changes.sql new file mode 100644 index 0000000..5c82eb1 --- /dev/null +++ b/models/_project/balancer/bpt/gnosis/balancer_v3_gnosis_bpt_supply_changes.sql @@ -0,0 +1,21 @@ +{% set blockchain = 'gnosis' %} + +{{ + config( + alias = 'balancer_v3_gnosis_bpt_supply_changes', + materialized = 'incremental', + incremental_strategy = 'merge', + unique_key = ['block_date', 'evt_tx_hash', 'evt_index', 'label'], + incremental_predicates = [incremental_predicate('DBT_INTERNAL_DEST.evt_block_time')] + ) +}} + +{{ + balancer_v3_compatible_bpt_supply_changes_macro( + blockchain = blockchain, + version = '3', + project_decoded_as = 'balancer_v3', + base_spells_namespace = 'balancer', + pool_labels_model = 'balancer_v3_pools_gnosis' + ) +}} diff --git a/models/_project/balancer/bpt/gnosis/balancer_v3_gnosis_bpt_supply_changes_daily.sql b/models/_project/balancer/bpt/gnosis/balancer_v3_gnosis_bpt_supply_changes_daily.sql new file mode 100644 index 0000000..3403625 --- /dev/null +++ b/models/_project/balancer/bpt/gnosis/balancer_v3_gnosis_bpt_supply_changes_daily.sql @@ -0,0 +1,17 @@ +{% set blockchain = 'gnosis' %} + +{{ + config( + alias = 'balancer_v3_gnosis_bpt_supply_changes_daily', + materialized = 'table' + ) +}} + +{{ + balancer_v3_compatible_bpt_supply_changes_daily_agg_macro( + blockchain = blockchain, + version = '3', + project_decoded_as = 'balancer_v3', + base_spells_namespace = 'balancer' + ) +}} diff --git a/models/_project/balancer/erc4626_tokens/_schema.yml b/models/_project/balancer/erc4626_tokens/_schema.yml new file mode 100644 index 0000000..c18feba --- /dev/null +++ b/models/_project/balancer/erc4626_tokens/_schema.yml @@ -0,0 +1,22 @@ +version: 2 + +models: + - name: balancer_v3_erc4626_token_mapping + meta: + blockchain: arbitrum, base, ethereum, gnosis + project: balancer_v3 + contributors: gustavotorres + config: + tags: ['arbitrum', 'base', 'ethereum', 'gnosis', 'erc4626', 'mapping'] + description: > + Balancer V3 ERC4626 token mapping aggregated for active Wave-1 chains. + + - name: balancer_v3_erc4626_token_prices + meta: + blockchain: arbitrum, base, ethereum, gnosis + project: balancer_v3 + contributors: gustavotorres + config: + tags: ['arbitrum', 'base', 'ethereum', 'gnosis', 'erc4626', 'prices'] + description: > + Balancer V3 ERC4626 token prices aggregated for active Wave-1 chains. diff --git a/models/_project/balancer/erc4626_tokens/arbitrum/_schema.yml b/models/_project/balancer/erc4626_tokens/arbitrum/_schema.yml new file mode 100644 index 0000000..bbc3175 --- /dev/null +++ b/models/_project/balancer/erc4626_tokens/arbitrum/_schema.yml @@ -0,0 +1,31 @@ +version: 2 + +models: + - name: balancer_v3_arbitrum_erc4626_token_mapping + meta: + blockchain: arbitrum + project: balancer_v3 + contributors: gustavotorres + config: + tags: ['arbitrum', 'erc4626', 'mapping'] + description: > + Mapping between Balancer V3 ERC4626 wrapper tokens and underlying tokens on arbitrum. + data_tests: + - dbt_utils.unique_combination_of_columns: + combination_of_columns: + - erc4626_token + + - name: balancer_v3_arbitrum_erc4626_token_prices + meta: + blockchain: arbitrum + project: balancer_v3 + contributors: gustavotorres + config: + tags: ['arbitrum', 'erc4626', 'prices'] + description: > + Minute-level ERC4626 prices inferred from wrap/unwrap events and underlying token USD prices on arbitrum. + data_tests: + - dbt_utils.unique_combination_of_columns: + combination_of_columns: + - minute + - wrapped_token diff --git a/models/_project/balancer/erc4626_tokens/arbitrum/balancer_v3_arbitrum_erc4626_token_mapping.sql b/models/_project/balancer/erc4626_tokens/arbitrum/balancer_v3_arbitrum_erc4626_token_mapping.sql new file mode 100644 index 0000000..8b40f3a --- /dev/null +++ b/models/_project/balancer/erc4626_tokens/arbitrum/balancer_v3_arbitrum_erc4626_token_mapping.sql @@ -0,0 +1,46 @@ +{% set blockchain = 'arbitrum' %} + +{{ + config( + alias = 'balancer_v3_arbitrum_erc4626_token_mapping', + materialized = 'table' + ) +}} + +WITH vault_mappings AS ( + SELECT DISTINCT + evt_tx_hash, + wrappedToken AS vault_address, + amountUnderlying + FROM {{ source('balancer_v3_' ~ blockchain, 'Vault_evt_LiquidityAddedToBuffer') }} b + WHERE b.amountUnderlying > 0 +), + +underlying_tokens AS ( + SELECT DISTINCT + vm.vault_address, + t.contract_address AS underlying_address, + vm.evt_tx_hash + FROM vault_mappings vm + JOIN {{ source('erc20_' ~ blockchain, 'evt_Transfer') }} t + ON t.evt_tx_hash = vm.evt_tx_hash + AND t.contract_address != vm.vault_address + AND t.value = vm.amountUnderlying + AND t.to = 0xba1333333333a1ba1108e8412f11850a5c319ba9 +) + +SELECT DISTINCT + '{{ blockchain }}' AS blockchain, + ut.vault_address AS erc4626_token, + COALESCE(vault_token.name, 'Unknown Vault') AS erc4626_token_name, + COALESCE(vault_token.symbol, 'Unknown') AS erc4626_token_symbol, + ut.underlying_address AS underlying_token, + COALESCE(underlying_token.symbol, 'Unknown') AS underlying_token_symbol, + vault_token.decimals AS decimals +FROM underlying_tokens ut +LEFT JOIN {{ source('tokens', 'erc20') }} vault_token + ON vault_token.contract_address = ut.vault_address + AND vault_token.blockchain = '{{ blockchain }}' +LEFT JOIN {{ source('tokens', 'erc20') }} underlying_token + ON underlying_token.contract_address = ut.underlying_address + AND underlying_token.blockchain = '{{ blockchain }}' diff --git a/models/_project/balancer/erc4626_tokens/arbitrum/balancer_v3_arbitrum_erc4626_token_prices.sql b/models/_project/balancer/erc4626_tokens/arbitrum/balancer_v3_arbitrum_erc4626_token_prices.sql new file mode 100644 index 0000000..db13a07 --- /dev/null +++ b/models/_project/balancer/erc4626_tokens/arbitrum/balancer_v3_arbitrum_erc4626_token_prices.sql @@ -0,0 +1,68 @@ +{% set blockchain = 'arbitrum' %} + +{{ + config( + alias = 'balancer_v3_arbitrum_erc4626_token_prices', + materialized = 'incremental', + incremental_strategy = 'merge', + unique_key = ['minute', 'wrapped_token'], + incremental_predicates = ["DBT_INTERNAL_DEST.minute >= date_trunc('day', now() - interval '4' day)"] + ) +}} + +WITH wrap_unwrap AS ( + SELECT + evt_block_time, + wrappedToken, + CAST(depositedUnderlying AS DOUBLE) / NULLIF(CAST(mintedShares AS DOUBLE), 0) AS ratio + FROM {{ source('balancer_v3_' ~ blockchain, 'Vault_evt_Wrap') }} + {% if is_incremental() %} + WHERE evt_block_time >= date_trunc('day', now() - interval '4' day) + {% endif %} + + UNION ALL + + SELECT + evt_block_time, + wrappedToken, + CAST(withdrawnUnderlying AS DOUBLE) / NULLIF(CAST(burnedShares AS DOUBLE), 0) AS ratio + FROM {{ source('balancer_v3_' ~ blockchain, 'Vault_evt_Unwrap') }} + {% if is_incremental() %} + WHERE evt_block_time >= date_trunc('day', now() - interval '4' day) + {% endif %} +), + +price_join AS ( + SELECT + DATE_TRUNC('minute', w.evt_block_time) AS minute, + m.underlying_token, + w.wrappedToken, + m.erc4626_token_symbol, + m.underlying_token_symbol, + m.decimals, + ratio * price * POWER(10, (m.decimals - p.decimals)) AS adjusted_price + FROM wrap_unwrap w + JOIN {{ ref('balancer_v3_' ~ blockchain ~ '_erc4626_token_mapping') }} m + ON m.erc4626_token = w.wrappedToken + JOIN {{ source('prices', 'usd') }} p + ON m.underlying_token = p.contract_address + AND p.blockchain = '{{ blockchain }}' + AND DATE_TRUNC('minute', w.evt_block_time) = DATE_TRUNC('minute', p.minute) + {% if is_incremental() %} + AND p.minute >= date_trunc('day', now() - interval '4' day) + {% endif %} + WHERE ratio IS NOT NULL +) + +SELECT + p.minute, + '{{ blockchain }}' AS blockchain, + wrappedToken AS wrapped_token, + underlying_token, + erc4626_token_symbol, + underlying_token_symbol, + decimals, + APPROX_PERCENTILE(adjusted_price, 0.5) AS median_price, + LEAD(p.minute, 1, TIMESTAMP '9999-12-31 23:59:59') OVER (PARTITION BY wrappedToken ORDER BY p.minute) AS next_change +FROM price_join p +GROUP BY 1, 2, 3, 4, 5, 6, 7 diff --git a/models/_project/balancer/erc4626_tokens/balancer_v3_erc4626_token_mapping.sql b/models/_project/balancer/erc4626_tokens/balancer_v3_erc4626_token_mapping.sql new file mode 100644 index 0000000..5c80365 --- /dev/null +++ b/models/_project/balancer/erc4626_tokens/balancer_v3_erc4626_token_mapping.sql @@ -0,0 +1,30 @@ +{{ config( + alias = 'balancer_v3_erc4626_token_mapping' + , post_hook='{{ hide_spells() }}' + ) +}} + +{% set balancer_models = [ + ref('balancer_v3_ethereum_erc4626_token_mapping'), + ref('balancer_v3_gnosis_erc4626_token_mapping'), + ref('balancer_v3_arbitrum_erc4626_token_mapping'), + ref('balancer_v3_base_erc4626_token_mapping') +] %} + +SELECT * +FROM ( + {% for model in balancer_models %} + SELECT + blockchain, + erc4626_token, + erc4626_token_name, + erc4626_token_symbol, + underlying_token, + underlying_token_symbol, + decimals + FROM {{ model }} + {% if not loop.last %} + UNION ALL + {% endif %} + {% endfor %} +) diff --git a/models/_project/balancer/erc4626_tokens/balancer_v3_erc4626_token_prices.sql b/models/_project/balancer/erc4626_tokens/balancer_v3_erc4626_token_prices.sql new file mode 100644 index 0000000..a820ca7 --- /dev/null +++ b/models/_project/balancer/erc4626_tokens/balancer_v3_erc4626_token_prices.sql @@ -0,0 +1,32 @@ +{{ config( + alias = 'balancer_v3_erc4626_token_prices' + , post_hook='{{ hide_spells() }}' + ) +}} + +{% set balancer_models = [ + ref('balancer_v3_ethereum_erc4626_token_prices'), + ref('balancer_v3_gnosis_erc4626_token_prices'), + ref('balancer_v3_arbitrum_erc4626_token_prices'), + ref('balancer_v3_base_erc4626_token_prices') +] %} + +SELECT * +FROM ( + {% for model in balancer_models %} + SELECT + minute, + blockchain, + wrapped_token, + underlying_token, + erc4626_token_symbol, + underlying_token_symbol, + decimals, + median_price, + next_change + FROM {{ model }} + {% if not loop.last %} + UNION ALL + {% endif %} + {% endfor %} +) diff --git a/models/_project/balancer/erc4626_tokens/base/_schema.yml b/models/_project/balancer/erc4626_tokens/base/_schema.yml new file mode 100644 index 0000000..5d8d599 --- /dev/null +++ b/models/_project/balancer/erc4626_tokens/base/_schema.yml @@ -0,0 +1,31 @@ +version: 2 + +models: + - name: balancer_v3_base_erc4626_token_mapping + meta: + blockchain: base + project: balancer_v3 + contributors: gustavotorres + config: + tags: ['base', 'erc4626', 'mapping'] + description: > + Mapping between Balancer V3 ERC4626 wrapper tokens and underlying tokens on base. + data_tests: + - dbt_utils.unique_combination_of_columns: + combination_of_columns: + - erc4626_token + + - name: balancer_v3_base_erc4626_token_prices + meta: + blockchain: base + project: balancer_v3 + contributors: gustavotorres + config: + tags: ['base', 'erc4626', 'prices'] + description: > + Minute-level ERC4626 prices inferred from wrap/unwrap events and underlying token USD prices on base. + data_tests: + - dbt_utils.unique_combination_of_columns: + combination_of_columns: + - minute + - wrapped_token diff --git a/models/_project/balancer/erc4626_tokens/base/balancer_v3_base_erc4626_token_mapping.sql b/models/_project/balancer/erc4626_tokens/base/balancer_v3_base_erc4626_token_mapping.sql new file mode 100644 index 0000000..2314e0f --- /dev/null +++ b/models/_project/balancer/erc4626_tokens/base/balancer_v3_base_erc4626_token_mapping.sql @@ -0,0 +1,46 @@ +{% set blockchain = 'base' %} + +{{ + config( + alias = 'balancer_v3_base_erc4626_token_mapping', + materialized = 'table' + ) +}} + +WITH vault_mappings AS ( + SELECT DISTINCT + evt_tx_hash, + wrappedToken AS vault_address, + amountUnderlying + FROM {{ source('balancer_v3_' ~ blockchain, 'Vault_evt_LiquidityAddedToBuffer') }} b + WHERE b.amountUnderlying > 0 +), + +underlying_tokens AS ( + SELECT DISTINCT + vm.vault_address, + t.contract_address AS underlying_address, + vm.evt_tx_hash + FROM vault_mappings vm + JOIN {{ source('erc20_' ~ blockchain, 'evt_Transfer') }} t + ON t.evt_tx_hash = vm.evt_tx_hash + AND t.contract_address != vm.vault_address + AND t.value = vm.amountUnderlying + AND t.to = 0xba1333333333a1ba1108e8412f11850a5c319ba9 +) + +SELECT DISTINCT + '{{ blockchain }}' AS blockchain, + ut.vault_address AS erc4626_token, + COALESCE(vault_token.name, 'Unknown Vault') AS erc4626_token_name, + COALESCE(vault_token.symbol, 'Unknown') AS erc4626_token_symbol, + ut.underlying_address AS underlying_token, + COALESCE(underlying_token.symbol, 'Unknown') AS underlying_token_symbol, + vault_token.decimals AS decimals +FROM underlying_tokens ut +LEFT JOIN {{ source('tokens', 'erc20') }} vault_token + ON vault_token.contract_address = ut.vault_address + AND vault_token.blockchain = '{{ blockchain }}' +LEFT JOIN {{ source('tokens', 'erc20') }} underlying_token + ON underlying_token.contract_address = ut.underlying_address + AND underlying_token.blockchain = '{{ blockchain }}' diff --git a/models/_project/balancer/erc4626_tokens/base/balancer_v3_base_erc4626_token_prices.sql b/models/_project/balancer/erc4626_tokens/base/balancer_v3_base_erc4626_token_prices.sql new file mode 100644 index 0000000..f224a0c --- /dev/null +++ b/models/_project/balancer/erc4626_tokens/base/balancer_v3_base_erc4626_token_prices.sql @@ -0,0 +1,68 @@ +{% set blockchain = 'base' %} + +{{ + config( + alias = 'balancer_v3_base_erc4626_token_prices', + materialized = 'incremental', + incremental_strategy = 'merge', + unique_key = ['minute', 'wrapped_token'], + incremental_predicates = ["DBT_INTERNAL_DEST.minute >= date_trunc('day', now() - interval '4' day)"] + ) +}} + +WITH wrap_unwrap AS ( + SELECT + evt_block_time, + wrappedToken, + CAST(depositedUnderlying AS DOUBLE) / NULLIF(CAST(mintedShares AS DOUBLE), 0) AS ratio + FROM {{ source('balancer_v3_' ~ blockchain, 'Vault_evt_Wrap') }} + {% if is_incremental() %} + WHERE evt_block_time >= date_trunc('day', now() - interval '4' day) + {% endif %} + + UNION ALL + + SELECT + evt_block_time, + wrappedToken, + CAST(withdrawnUnderlying AS DOUBLE) / NULLIF(CAST(burnedShares AS DOUBLE), 0) AS ratio + FROM {{ source('balancer_v3_' ~ blockchain, 'Vault_evt_Unwrap') }} + {% if is_incremental() %} + WHERE evt_block_time >= date_trunc('day', now() - interval '4' day) + {% endif %} +), + +price_join AS ( + SELECT + DATE_TRUNC('minute', w.evt_block_time) AS minute, + m.underlying_token, + w.wrappedToken, + m.erc4626_token_symbol, + m.underlying_token_symbol, + m.decimals, + ratio * price * POWER(10, (m.decimals - p.decimals)) AS adjusted_price + FROM wrap_unwrap w + JOIN {{ ref('balancer_v3_' ~ blockchain ~ '_erc4626_token_mapping') }} m + ON m.erc4626_token = w.wrappedToken + JOIN {{ source('prices', 'usd') }} p + ON m.underlying_token = p.contract_address + AND p.blockchain = '{{ blockchain }}' + AND DATE_TRUNC('minute', w.evt_block_time) = DATE_TRUNC('minute', p.minute) + {% if is_incremental() %} + AND p.minute >= date_trunc('day', now() - interval '4' day) + {% endif %} + WHERE ratio IS NOT NULL +) + +SELECT + p.minute, + '{{ blockchain }}' AS blockchain, + wrappedToken AS wrapped_token, + underlying_token, + erc4626_token_symbol, + underlying_token_symbol, + decimals, + APPROX_PERCENTILE(adjusted_price, 0.5) AS median_price, + LEAD(p.minute, 1, TIMESTAMP '9999-12-31 23:59:59') OVER (PARTITION BY wrappedToken ORDER BY p.minute) AS next_change +FROM price_join p +GROUP BY 1, 2, 3, 4, 5, 6, 7 diff --git a/models/_project/balancer/erc4626_tokens/ethereum/_schema.yml b/models/_project/balancer/erc4626_tokens/ethereum/_schema.yml new file mode 100644 index 0000000..315d902 --- /dev/null +++ b/models/_project/balancer/erc4626_tokens/ethereum/_schema.yml @@ -0,0 +1,31 @@ +version: 2 + +models: + - name: balancer_v3_ethereum_erc4626_token_mapping + meta: + blockchain: ethereum + project: balancer_v3 + contributors: gustavotorres + config: + tags: ['ethereum', 'erc4626', 'mapping'] + description: > + Mapping between Balancer V3 ERC4626 wrapper tokens and underlying tokens on ethereum. + data_tests: + - dbt_utils.unique_combination_of_columns: + combination_of_columns: + - erc4626_token + + - name: balancer_v3_ethereum_erc4626_token_prices + meta: + blockchain: ethereum + project: balancer_v3 + contributors: gustavotorres + config: + tags: ['ethereum', 'erc4626', 'prices'] + description: > + Minute-level ERC4626 prices inferred from wrap/unwrap events and underlying token USD prices on ethereum. + data_tests: + - dbt_utils.unique_combination_of_columns: + combination_of_columns: + - minute + - wrapped_token diff --git a/models/_project/balancer/erc4626_tokens/ethereum/balancer_v3_ethereum_erc4626_token_mapping.sql b/models/_project/balancer/erc4626_tokens/ethereum/balancer_v3_ethereum_erc4626_token_mapping.sql new file mode 100644 index 0000000..b5b3932 --- /dev/null +++ b/models/_project/balancer/erc4626_tokens/ethereum/balancer_v3_ethereum_erc4626_token_mapping.sql @@ -0,0 +1,46 @@ +{% set blockchain = 'ethereum' %} + +{{ + config( + alias = 'balancer_v3_ethereum_erc4626_token_mapping', + materialized = 'table' + ) +}} + +WITH vault_mappings AS ( + SELECT DISTINCT + evt_tx_hash, + wrappedToken AS vault_address, + amountUnderlying + FROM {{ source('balancer_v3_' ~ blockchain, 'Vault_evt_LiquidityAddedToBuffer') }} b + WHERE b.amountUnderlying > 0 +), + +underlying_tokens AS ( + SELECT DISTINCT + vm.vault_address, + t.contract_address AS underlying_address, + vm.evt_tx_hash + FROM vault_mappings vm + JOIN {{ source('erc20_' ~ blockchain, 'evt_Transfer') }} t + ON t.evt_tx_hash = vm.evt_tx_hash + AND t.contract_address != vm.vault_address + AND t.value = vm.amountUnderlying + AND t.to = 0xba1333333333a1ba1108e8412f11850a5c319ba9 +) + +SELECT DISTINCT + '{{ blockchain }}' AS blockchain, + ut.vault_address AS erc4626_token, + COALESCE(vault_token.name, 'Unknown Vault') AS erc4626_token_name, + COALESCE(vault_token.symbol, 'Unknown') AS erc4626_token_symbol, + ut.underlying_address AS underlying_token, + COALESCE(underlying_token.symbol, 'Unknown') AS underlying_token_symbol, + vault_token.decimals AS decimals +FROM underlying_tokens ut +LEFT JOIN {{ source('tokens', 'erc20') }} vault_token + ON vault_token.contract_address = ut.vault_address + AND vault_token.blockchain = '{{ blockchain }}' +LEFT JOIN {{ source('tokens', 'erc20') }} underlying_token + ON underlying_token.contract_address = ut.underlying_address + AND underlying_token.blockchain = '{{ blockchain }}' diff --git a/models/_project/balancer/erc4626_tokens/ethereum/balancer_v3_ethereum_erc4626_token_prices.sql b/models/_project/balancer/erc4626_tokens/ethereum/balancer_v3_ethereum_erc4626_token_prices.sql new file mode 100644 index 0000000..852f634 --- /dev/null +++ b/models/_project/balancer/erc4626_tokens/ethereum/balancer_v3_ethereum_erc4626_token_prices.sql @@ -0,0 +1,68 @@ +{% set blockchain = 'ethereum' %} + +{{ + config( + alias = 'balancer_v3_ethereum_erc4626_token_prices', + materialized = 'incremental', + incremental_strategy = 'merge', + unique_key = ['minute', 'wrapped_token'], + incremental_predicates = ["DBT_INTERNAL_DEST.minute >= date_trunc('day', now() - interval '4' day)"] + ) +}} + +WITH wrap_unwrap AS ( + SELECT + evt_block_time, + wrappedToken, + CAST(depositedUnderlying AS DOUBLE) / NULLIF(CAST(mintedShares AS DOUBLE), 0) AS ratio + FROM {{ source('balancer_v3_' ~ blockchain, 'Vault_evt_Wrap') }} + {% if is_incremental() %} + WHERE evt_block_time >= date_trunc('day', now() - interval '4' day) + {% endif %} + + UNION ALL + + SELECT + evt_block_time, + wrappedToken, + CAST(withdrawnUnderlying AS DOUBLE) / NULLIF(CAST(burnedShares AS DOUBLE), 0) AS ratio + FROM {{ source('balancer_v3_' ~ blockchain, 'Vault_evt_Unwrap') }} + {% if is_incremental() %} + WHERE evt_block_time >= date_trunc('day', now() - interval '4' day) + {% endif %} +), + +price_join AS ( + SELECT + DATE_TRUNC('minute', w.evt_block_time) AS minute, + m.underlying_token, + w.wrappedToken, + m.erc4626_token_symbol, + m.underlying_token_symbol, + m.decimals, + ratio * price * POWER(10, (m.decimals - p.decimals)) AS adjusted_price + FROM wrap_unwrap w + JOIN {{ ref('balancer_v3_' ~ blockchain ~ '_erc4626_token_mapping') }} m + ON m.erc4626_token = w.wrappedToken + JOIN {{ source('prices', 'usd') }} p + ON m.underlying_token = p.contract_address + AND p.blockchain = '{{ blockchain }}' + AND DATE_TRUNC('minute', w.evt_block_time) = DATE_TRUNC('minute', p.minute) + {% if is_incremental() %} + AND p.minute >= date_trunc('day', now() - interval '4' day) + {% endif %} + WHERE ratio IS NOT NULL +) + +SELECT + p.minute, + '{{ blockchain }}' AS blockchain, + wrappedToken AS wrapped_token, + underlying_token, + erc4626_token_symbol, + underlying_token_symbol, + decimals, + APPROX_PERCENTILE(adjusted_price, 0.5) AS median_price, + LEAD(p.minute, 1, TIMESTAMP '9999-12-31 23:59:59') OVER (PARTITION BY wrappedToken ORDER BY p.minute) AS next_change +FROM price_join p +GROUP BY 1, 2, 3, 4, 5, 6, 7 diff --git a/models/_project/balancer/erc4626_tokens/gnosis/_schema.yml b/models/_project/balancer/erc4626_tokens/gnosis/_schema.yml new file mode 100644 index 0000000..b710622 --- /dev/null +++ b/models/_project/balancer/erc4626_tokens/gnosis/_schema.yml @@ -0,0 +1,31 @@ +version: 2 + +models: + - name: balancer_v3_gnosis_erc4626_token_mapping + meta: + blockchain: gnosis + project: balancer_v3 + contributors: gustavotorres + config: + tags: ['gnosis', 'erc4626', 'mapping'] + description: > + Mapping between Balancer V3 ERC4626 wrapper tokens and underlying tokens on gnosis. + data_tests: + - dbt_utils.unique_combination_of_columns: + combination_of_columns: + - erc4626_token + + - name: balancer_v3_gnosis_erc4626_token_prices + meta: + blockchain: gnosis + project: balancer_v3 + contributors: gustavotorres + config: + tags: ['gnosis', 'erc4626', 'prices'] + description: > + Minute-level ERC4626 prices inferred from wrap/unwrap events and underlying token USD prices on gnosis. + data_tests: + - dbt_utils.unique_combination_of_columns: + combination_of_columns: + - minute + - wrapped_token diff --git a/models/_project/balancer/erc4626_tokens/gnosis/balancer_v3_gnosis_erc4626_token_mapping.sql b/models/_project/balancer/erc4626_tokens/gnosis/balancer_v3_gnosis_erc4626_token_mapping.sql new file mode 100644 index 0000000..5c70e58 --- /dev/null +++ b/models/_project/balancer/erc4626_tokens/gnosis/balancer_v3_gnosis_erc4626_token_mapping.sql @@ -0,0 +1,46 @@ +{% set blockchain = 'gnosis' %} + +{{ + config( + alias = 'balancer_v3_gnosis_erc4626_token_mapping', + materialized = 'table' + ) +}} + +WITH vault_mappings AS ( + SELECT DISTINCT + evt_tx_hash, + wrappedToken AS vault_address, + amountUnderlying + FROM {{ source('balancer_v3_' ~ blockchain, 'Vault_evt_LiquidityAddedToBuffer') }} b + WHERE b.amountUnderlying > 0 +), + +underlying_tokens AS ( + SELECT DISTINCT + vm.vault_address, + t.contract_address AS underlying_address, + vm.evt_tx_hash + FROM vault_mappings vm + JOIN {{ source('erc20_' ~ blockchain, 'evt_Transfer') }} t + ON t.evt_tx_hash = vm.evt_tx_hash + AND t.contract_address != vm.vault_address + AND t.value = vm.amountUnderlying + AND t.to = 0xba1333333333a1ba1108e8412f11850a5c319ba9 +) + +SELECT DISTINCT + '{{ blockchain }}' AS blockchain, + ut.vault_address AS erc4626_token, + COALESCE(vault_token.name, 'Unknown Vault') AS erc4626_token_name, + COALESCE(vault_token.symbol, 'Unknown') AS erc4626_token_symbol, + ut.underlying_address AS underlying_token, + COALESCE(underlying_token.symbol, 'Unknown') AS underlying_token_symbol, + vault_token.decimals AS decimals +FROM underlying_tokens ut +LEFT JOIN {{ source('tokens', 'erc20') }} vault_token + ON vault_token.contract_address = ut.vault_address + AND vault_token.blockchain = '{{ blockchain }}' +LEFT JOIN {{ source('tokens', 'erc20') }} underlying_token + ON underlying_token.contract_address = ut.underlying_address + AND underlying_token.blockchain = '{{ blockchain }}' diff --git a/models/_project/balancer/erc4626_tokens/gnosis/balancer_v3_gnosis_erc4626_token_prices.sql b/models/_project/balancer/erc4626_tokens/gnosis/balancer_v3_gnosis_erc4626_token_prices.sql new file mode 100644 index 0000000..3c673ce --- /dev/null +++ b/models/_project/balancer/erc4626_tokens/gnosis/balancer_v3_gnosis_erc4626_token_prices.sql @@ -0,0 +1,68 @@ +{% set blockchain = 'gnosis' %} + +{{ + config( + alias = 'balancer_v3_gnosis_erc4626_token_prices', + materialized = 'incremental', + incremental_strategy = 'merge', + unique_key = ['minute', 'wrapped_token'], + incremental_predicates = ["DBT_INTERNAL_DEST.minute >= date_trunc('day', now() - interval '4' day)"] + ) +}} + +WITH wrap_unwrap AS ( + SELECT + evt_block_time, + wrappedToken, + CAST(depositedUnderlying AS DOUBLE) / NULLIF(CAST(mintedShares AS DOUBLE), 0) AS ratio + FROM {{ source('balancer_v3_' ~ blockchain, 'Vault_evt_Wrap') }} + {% if is_incremental() %} + WHERE evt_block_time >= date_trunc('day', now() - interval '4' day) + {% endif %} + + UNION ALL + + SELECT + evt_block_time, + wrappedToken, + CAST(withdrawnUnderlying AS DOUBLE) / NULLIF(CAST(burnedShares AS DOUBLE), 0) AS ratio + FROM {{ source('balancer_v3_' ~ blockchain, 'Vault_evt_Unwrap') }} + {% if is_incremental() %} + WHERE evt_block_time >= date_trunc('day', now() - interval '4' day) + {% endif %} +), + +price_join AS ( + SELECT + DATE_TRUNC('minute', w.evt_block_time) AS minute, + m.underlying_token, + w.wrappedToken, + m.erc4626_token_symbol, + m.underlying_token_symbol, + m.decimals, + ratio * price * POWER(10, (m.decimals - p.decimals)) AS adjusted_price + FROM wrap_unwrap w + JOIN {{ ref('balancer_v3_' ~ blockchain ~ '_erc4626_token_mapping') }} m + ON m.erc4626_token = w.wrappedToken + JOIN {{ source('prices', 'usd') }} p + ON m.underlying_token = p.contract_address + AND p.blockchain = '{{ blockchain }}' + AND DATE_TRUNC('minute', w.evt_block_time) = DATE_TRUNC('minute', p.minute) + {% if is_incremental() %} + AND p.minute >= date_trunc('day', now() - interval '4' day) + {% endif %} + WHERE ratio IS NOT NULL +) + +SELECT + p.minute, + '{{ blockchain }}' AS blockchain, + wrappedToken AS wrapped_token, + underlying_token, + erc4626_token_symbol, + underlying_token_symbol, + decimals, + APPROX_PERCENTILE(adjusted_price, 0.5) AS median_price, + LEAD(p.minute, 1, TIMESTAMP '9999-12-31 23:59:59') OVER (PARTITION BY wrappedToken ORDER BY p.minute) AS next_change +FROM price_join p +GROUP BY 1, 2, 3, 4, 5, 6, 7 diff --git a/models/_project/balancer/pools/arbitrum/balancer_v3_arbitrum_lbps.sql b/models/_project/balancer/pools/arbitrum/balancer_v3_arbitrum_lbps.sql new file mode 100644 index 0000000..5accc7c --- /dev/null +++ b/models/_project/balancer/pools/arbitrum/balancer_v3_arbitrum_lbps.sql @@ -0,0 +1,15 @@ +{% set blockchain = 'arbitrum' %} + +{{ + config( + alias = 'balancer_v3_arbitrum_lbps', + materialized = 'table' + ) +}} + +{{ + balancer_v3_compatible_lbps_macro( + blockchain = blockchain, + project_decoded_as = 'balancer_v3' + ) +}} diff --git a/models/_project/balancer/pools/balancer_v3_lbps.sql b/models/_project/balancer/pools/balancer_v3_lbps.sql new file mode 100644 index 0000000..178504b --- /dev/null +++ b/models/_project/balancer/pools/balancer_v3_lbps.sql @@ -0,0 +1,36 @@ +{{ config( + alias = 'balancer_v3_lbps' + , post_hook='{{ hide_spells() }}' + ) +}} + +{% set balancer_models = [ + ref('balancer_v3_arbitrum_lbps'), + ref('balancer_v3_base_lbps'), + ref('balancer_v3_ethereum_lbps'), + ref('balancer_v3_gnosis_lbps') +] %} + +SELECT * +FROM ( + {% for model in balancer_models %} + SELECT + blockchain, + pool_symbol, + pool_address, + start_time, + end_time, + project_token, + project_token_symbol, + reserve_token, + reserve_token_symbol, + project_token_start_weight, + reserve_token_start_weight, + project_token_end_weight, + reserve_token_end_weight + FROM {{ model }} + {% if not loop.last %} + UNION ALL + {% endif %} + {% endfor %} +) diff --git a/models/_project/balancer/pools/base/balancer_v3_base_lbps.sql b/models/_project/balancer/pools/base/balancer_v3_base_lbps.sql new file mode 100644 index 0000000..721a36e --- /dev/null +++ b/models/_project/balancer/pools/base/balancer_v3_base_lbps.sql @@ -0,0 +1,15 @@ +{% set blockchain = 'base' %} + +{{ + config( + alias = 'balancer_v3_base_lbps', + materialized = 'table' + ) +}} + +{{ + balancer_v3_compatible_lbps_macro( + blockchain = blockchain, + project_decoded_as = 'balancer_v3' + ) +}} diff --git a/models/_project/balancer/pools/ethereum/balancer_v3_ethereum_lbps.sql b/models/_project/balancer/pools/ethereum/balancer_v3_ethereum_lbps.sql new file mode 100644 index 0000000..f39bc19 --- /dev/null +++ b/models/_project/balancer/pools/ethereum/balancer_v3_ethereum_lbps.sql @@ -0,0 +1,15 @@ +{% set blockchain = 'ethereum' %} + +{{ + config( + alias = 'balancer_v3_ethereum_lbps', + materialized = 'table' + ) +}} + +{{ + balancer_v3_compatible_lbps_macro( + blockchain = blockchain, + project_decoded_as = 'balancer_v3' + ) +}} diff --git a/models/_project/balancer/pools/gnosis/balancer_v3_gnosis_lbps.sql b/models/_project/balancer/pools/gnosis/balancer_v3_gnosis_lbps.sql new file mode 100644 index 0000000..c9673d7 --- /dev/null +++ b/models/_project/balancer/pools/gnosis/balancer_v3_gnosis_lbps.sql @@ -0,0 +1,15 @@ +{% set blockchain = 'gnosis' %} + +{{ + config( + alias = 'balancer_v3_gnosis_lbps', + materialized = 'table' + ) +}} + +{{ + balancer_v3_compatible_lbps_macro( + blockchain = blockchain, + project_decoded_as = 'balancer_v3' + ) +}} diff --git a/models/_project/balancer/protocol_fee/_schema.yml b/models/_project/balancer/protocol_fee/_schema.yml new file mode 100644 index 0000000..7cee854 --- /dev/null +++ b/models/_project/balancer/protocol_fee/_schema.yml @@ -0,0 +1,21 @@ +version: 2 + +models: + - name: balancer_protocol_fee + meta: + blockchain: arbitrum, base, ethereum, gnosis + project: balancer_v3 + contributors: gustavotorres + config: + tags: ['arbitrum', 'base', 'ethereum', 'gnosis', 'fees'] + description: > + Daily Balancer V3 protocol fee aggregates for active Wave-1 chains. + data_tests: + - dbt_utils.unique_combination_of_columns: + combination_of_columns: + - blockchain + - version + - day + - pool_id + - token_address + - fee_type diff --git a/models/_project/balancer/protocol_fee/arbitrum/_schema.yml b/models/_project/balancer/protocol_fee/arbitrum/_schema.yml new file mode 100644 index 0000000..d9902bc --- /dev/null +++ b/models/_project/balancer/protocol_fee/arbitrum/_schema.yml @@ -0,0 +1,19 @@ +version: 2 + +models: + - name: balancer_v3_arbitrum_protocol_fee + meta: + blockchain: arbitrum + project: balancer_v3 + contributors: gustavotorres + config: + tags: ['arbitrum', 'revenue', 'fees'] + description: > + Daily protocol fees and treasury split for Balancer V3 pools on arbitrum. + data_tests: + - dbt_utils.unique_combination_of_columns: + combination_of_columns: + - day + - pool_id + - fee_type + - token_address diff --git a/models/_project/balancer/protocol_fee/arbitrum/balancer_v3_arbitrum_protocol_fee.sql b/models/_project/balancer/protocol_fee/arbitrum/balancer_v3_arbitrum_protocol_fee.sql new file mode 100644 index 0000000..d42c040 --- /dev/null +++ b/models/_project/balancer/protocol_fee/arbitrum/balancer_v3_arbitrum_protocol_fee.sql @@ -0,0 +1,18 @@ +{% set blockchain = 'arbitrum' %} + +{{ + config( + alias = 'balancer_v3_arbitrum_protocol_fee', + materialized = 'table' + ) +}} + +{{ + balancer_v3_compatible_protocol_fee_macro( + blockchain = blockchain, + version = '3', + project_decoded_as = 'balancer_v3', + base_spells_namespace = 'balancer', + pool_labels_model = 'balancer_v3_pools_arbitrum' + ) +}} diff --git a/models/_project/balancer/protocol_fee/balancer_protocol_fee.sql b/models/_project/balancer/protocol_fee/balancer_protocol_fee.sql new file mode 100644 index 0000000..e706c34 --- /dev/null +++ b/models/_project/balancer/protocol_fee/balancer_protocol_fee.sql @@ -0,0 +1,40 @@ +{{ config( + alias = 'balancer_protocol_fee' + , post_hook='{{ hide_spells() }}' + ) +}} + +{% set balancer_models = [ + ref('balancer_v3_ethereum_protocol_fee'), + ref('balancer_v3_gnosis_protocol_fee'), + ref('balancer_v3_arbitrum_protocol_fee'), + ref('balancer_v3_base_protocol_fee') +] %} + +SELECT * +FROM ( + {% for protocol_fee in balancer_models %} + SELECT + day, + pool_id, + pool_address, + pool_symbol, + version, + blockchain, + pool_type, + fee_type, + token_address, + token_symbol, + token_amount_raw, + token_amount, + protocol_fee_collected_usd, + treasury_share, + treasury_fee_usd, + lp_fee_collected_usd + FROM {{ protocol_fee }} + {% if not loop.last %} + UNION ALL + {% endif %} + {% endfor %} +) +; diff --git a/models/_project/balancer/protocol_fee/base/_schema.yml b/models/_project/balancer/protocol_fee/base/_schema.yml new file mode 100644 index 0000000..b2f154c --- /dev/null +++ b/models/_project/balancer/protocol_fee/base/_schema.yml @@ -0,0 +1,19 @@ +version: 2 + +models: + - name: balancer_v3_base_protocol_fee + meta: + blockchain: base + project: balancer_v3 + contributors: gustavotorres + config: + tags: ['base', 'revenue', 'fees'] + description: > + Daily protocol fees and treasury split for Balancer V3 pools on base. + data_tests: + - dbt_utils.unique_combination_of_columns: + combination_of_columns: + - day + - pool_id + - fee_type + - token_address diff --git a/models/_project/balancer/protocol_fee/base/balancer_v3_base_protocol_fee.sql b/models/_project/balancer/protocol_fee/base/balancer_v3_base_protocol_fee.sql new file mode 100644 index 0000000..892c0e3 --- /dev/null +++ b/models/_project/balancer/protocol_fee/base/balancer_v3_base_protocol_fee.sql @@ -0,0 +1,18 @@ +{% set blockchain = 'base' %} + +{{ + config( + alias = 'balancer_v3_base_protocol_fee', + materialized = 'table' + ) +}} + +{{ + balancer_v3_compatible_protocol_fee_macro( + blockchain = blockchain, + version = '3', + project_decoded_as = 'balancer_v3', + base_spells_namespace = 'balancer', + pool_labels_model = 'balancer_v3_pools_base' + ) +}} diff --git a/models/_project/balancer/protocol_fee/ethereum/_schema.yml b/models/_project/balancer/protocol_fee/ethereum/_schema.yml new file mode 100644 index 0000000..295cf65 --- /dev/null +++ b/models/_project/balancer/protocol_fee/ethereum/_schema.yml @@ -0,0 +1,19 @@ +version: 2 + +models: + - name: balancer_v3_ethereum_protocol_fee + meta: + blockchain: ethereum + project: balancer_v3 + contributors: gustavotorres + config: + tags: ['ethereum', 'revenue', 'fees'] + description: > + Daily protocol fees and treasury split for Balancer V3 pools on ethereum. + data_tests: + - dbt_utils.unique_combination_of_columns: + combination_of_columns: + - day + - pool_id + - fee_type + - token_address diff --git a/models/_project/balancer/protocol_fee/ethereum/balancer_v3_ethereum_protocol_fee.sql b/models/_project/balancer/protocol_fee/ethereum/balancer_v3_ethereum_protocol_fee.sql new file mode 100644 index 0000000..5b1344c --- /dev/null +++ b/models/_project/balancer/protocol_fee/ethereum/balancer_v3_ethereum_protocol_fee.sql @@ -0,0 +1,18 @@ +{% set blockchain = 'ethereum' %} + +{{ + config( + alias = 'balancer_v3_ethereum_protocol_fee', + materialized = 'table' + ) +}} + +{{ + balancer_v3_compatible_protocol_fee_macro( + blockchain = blockchain, + version = '3', + project_decoded_as = 'balancer_v3', + base_spells_namespace = 'balancer', + pool_labels_model = 'balancer_v3_pools_ethereum' + ) +}} diff --git a/models/_project/balancer/protocol_fee/gnosis/_schema.yml b/models/_project/balancer/protocol_fee/gnosis/_schema.yml new file mode 100644 index 0000000..3eb4487 --- /dev/null +++ b/models/_project/balancer/protocol_fee/gnosis/_schema.yml @@ -0,0 +1,19 @@ +version: 2 + +models: + - name: balancer_v3_gnosis_protocol_fee + meta: + blockchain: gnosis + project: balancer_v3 + contributors: gustavotorres + config: + tags: ['gnosis', 'revenue', 'fees'] + description: > + Daily protocol fees and treasury split for Balancer V3 pools on gnosis. + data_tests: + - dbt_utils.unique_combination_of_columns: + combination_of_columns: + - day + - pool_id + - fee_type + - token_address diff --git a/models/_project/balancer/protocol_fee/gnosis/balancer_v3_gnosis_protocol_fee.sql b/models/_project/balancer/protocol_fee/gnosis/balancer_v3_gnosis_protocol_fee.sql new file mode 100644 index 0000000..cb478dc --- /dev/null +++ b/models/_project/balancer/protocol_fee/gnosis/balancer_v3_gnosis_protocol_fee.sql @@ -0,0 +1,18 @@ +{% set blockchain = 'gnosis' %} + +{{ + config( + alias = 'balancer_v3_gnosis_protocol_fee', + materialized = 'table' + ) +}} + +{{ + balancer_v3_compatible_protocol_fee_macro( + blockchain = blockchain, + version = '3', + project_decoded_as = 'balancer_v3', + base_spells_namespace = 'balancer', + pool_labels_model = 'balancer_v3_pools_gnosis' + ) +}} From fb42d2cab61432bd4ec121bbfe70f2890dda946b Mon Sep 17 00:00:00 2001 From: gustavobftorres Date: Thu, 19 Mar 2026 15:57:50 -0300 Subject: [PATCH 2/3] import labels and tables from public speelbook (excluding dependencies from dex trades) --- .../balancer/balancer_pools_fees_macro.sql | 19 +++ ...ncer_v2_arbitrum_token_balance_changes.sql | 2 +- ...2_arbitrum_token_balance_changes_daily.sql | 2 +- ...ncer_v3_arbitrum_token_balance_changes.sql | 2 +- ...3_arbitrum_token_balance_changes_daily.sql | 2 +- ...r_v2_avalanche_c_token_balance_changes.sql | 2 +- ...valanche_c_token_balance_changes_daily.sql | 2 +- .../balancer_token_balance_changes.sql | 2 +- .../balancer_token_balance_changes_daily.sql | 2 +- ...balancer_v2_base_token_balance_changes.sql | 2 +- ...er_v2_base_token_balance_changes_daily.sql | 2 +- ...balancer_v3_base_token_balance_changes.sql | 2 +- ...er_v3_base_token_balance_changes_daily.sql | 2 +- .../ethereum/balancer_ethereum_balances.sql | 2 +- ...ncer_v2_ethereum_token_balance_changes.sql | 2 +- ...2_ethereum_token_balance_changes_daily.sql | 2 +- ...ncer_v3_ethereum_token_balance_changes.sql | 2 +- ...3_ethereum_token_balance_changes_daily.sql | 2 +- ...lancer_v2_gnosis_token_balance_changes.sql | 2 +- ..._v2_gnosis_token_balance_changes_daily.sql | 2 +- ...lancer_v3_gnosis_token_balance_changes.sql | 2 +- ..._v3_gnosis_token_balance_changes_daily.sql | 2 +- ...ncer_v2_optimism_token_balance_changes.sql | 2 +- ...2_optimism_token_balance_changes_daily.sql | 2 +- ...ancer_v2_polygon_token_balance_changes.sql | 2 +- ...v2_polygon_token_balance_changes_daily.sql | 2 +- ...alancer_v2_zkevm_token_balance_changes.sql | 2 +- ...r_v2_zkevm_token_balance_changes_daily.sql | 2 +- .../balancer_v2_arbitrum_bpt_prices.sql | 2 +- .../balancer_v2_arbitrum_bpt_supply.sql | 2 +- .../balancer_v2_arbitrum_transfers_bpt.sql | 2 +- .../balancer_v3_arbitrum_bpt_prices.sql | 2 +- .../balancer_v3_arbitrum_bpt_supply.sql | 2 +- ...alancer_v3_arbitrum_bpt_supply_changes.sql | 2 +- ...r_v3_arbitrum_bpt_supply_changes_daily.sql | 2 +- .../balancer_v3_arbitrum_transfers_bpt.sql | 2 +- .../balancer_v2_avalanche_c_bpt_prices.sql | 2 +- .../balancer_v2_avalanche_c_bpt_supply.sql | 2 +- .../balancer_v2_avalanche_c_transfers_bpt.sql | 2 +- .../balancer/bpt/balancer_bpt_prices.sql | 2 +- .../balancer/bpt/balancer_bpt_supply.sql | 2 +- .../bpt/balancer_bpt_supply_changes.sql | 2 +- .../bpt/balancer_bpt_supply_changes_daily.sql | 2 +- .../balancer/bpt/balancer_transfers_bpt.sql | 2 +- .../bpt/base/balancer_v2_base_bpt_prices.sql | 2 +- .../bpt/base/balancer_v2_base_bpt_supply.sql | 2 +- .../base/balancer_v2_base_transfers_bpt.sql | 2 +- .../bpt/base/balancer_v3_base_bpt_prices.sql | 2 +- .../bpt/base/balancer_v3_base_bpt_supply.sql | 2 +- .../balancer_v3_base_bpt_supply_changes.sql | 2 +- ...ancer_v3_base_bpt_supply_changes_daily.sql | 2 +- .../base/balancer_v3_base_transfers_bpt.sql | 2 +- .../balancer_v2_ethereum_bpt_prices.sql | 2 +- .../balancer_v2_ethereum_bpt_supply.sql | 2 +- .../balancer_v2_ethereum_transfers_bpt.sql | 2 +- .../balancer_v3_ethereum_bpt_prices.sql | 2 +- .../balancer_v3_ethereum_bpt_supply.sql | 2 +- ...alancer_v3_ethereum_bpt_supply_changes.sql | 2 +- ...r_v3_ethereum_bpt_supply_changes_daily.sql | 2 +- .../balancer_v3_ethereum_transfers_bpt.sql | 2 +- .../gnosis/balancer_v2_gnosis_bpt_prices.sql | 2 +- .../gnosis/balancer_v2_gnosis_bpt_supply.sql | 2 +- .../balancer_v2_gnosis_transfers_bpt.sql | 2 +- .../gnosis/balancer_v3_gnosis_bpt_prices.sql | 2 +- .../gnosis/balancer_v3_gnosis_bpt_supply.sql | 2 +- .../balancer_v3_gnosis_bpt_supply_changes.sql | 2 +- ...cer_v3_gnosis_bpt_supply_changes_daily.sql | 2 +- .../balancer_v3_gnosis_transfers_bpt.sql | 2 +- .../balancer_v2_optimism_bpt_prices.sql | 2 +- .../balancer_v2_optimism_bpt_supply.sql | 2 +- .../balancer_v2_optimism_transfers_bpt.sql | 2 +- .../balancer_v2_polygon_bpt_prices.sql | 2 +- .../balancer_v2_polygon_bpt_supply.sql | 2 +- .../balancer_v2_polygon_transfers_bpt.sql | 2 +- .../zkevm/balancer_v2_zkevm_bpt_prices.sql | 2 +- .../zkevm/balancer_v2_zkevm_bpt_supply.sql | 2 +- .../zkevm/balancer_v2_zkevm_transfers_bpt.sql | 2 +- .../balancer/erc4626_tokens/_schema.yml | 12 +- .../erc4626_tokens/arbitrum/_schema.yml | 1 + ...ncer_v3_arbitrum_erc4626_token_mapping.sql | 2 +- ...ancer_v3_arbitrum_erc4626_token_prices.sql | 6 +- .../balancer_v3_erc4626_token_mapping.sql | 5 +- .../balancer_v3_erc4626_token_prices.sql | 5 +- .../balancer/erc4626_tokens/base/_schema.yml | 1 + ...balancer_v3_base_erc4626_token_mapping.sql | 2 +- .../balancer_v3_base_erc4626_token_prices.sql | 6 +- .../erc4626_tokens/ethereum/_schema.yml | 1 + ...ncer_v3_ethereum_erc4626_token_mapping.sql | 2 +- ...ancer_v3_ethereum_erc4626_token_prices.sql | 6 +- .../erc4626_tokens/gnosis/_schema.yml | 1 + ...lancer_v3_gnosis_erc4626_token_mapping.sql | 2 +- ...alancer_v3_gnosis_erc4626_token_prices.sql | 6 +- .../balancer/erc4626_tokens/sonic/_schema.yml | 32 +++++ ...alancer_v3_sonic_erc4626_token_mapping.sql | 44 ++++++ ...balancer_v3_sonic_erc4626_token_prices.sql | 66 +++++++++ .../balancer_v2_arbitrum_liquidity.sql | 2 +- .../balancer_v3_arbitrum_liquidity.sql | 2 +- .../balancer_v2_avalanche_c_liquidity.sql | 2 +- .../balancer/liquidity/balancer_liquidity.sql | 2 +- .../base/balancer_v2_base_liquidity.sql | 2 +- .../base/balancer_v3_base_liquidity.sql | 2 +- .../balancer_v1_ethereum_liquidity.sql | 2 +- .../balancer_v2_ethereum_liquidity.sql | 2 +- .../balancer_v3_ethereum_liquidity.sql | 2 +- .../gnosis/balancer_v2_gnosis_liquidity.sql | 2 +- .../gnosis/balancer_v3_gnosis_liquidity.sql | 2 +- .../balancer_v2_optimism_liquidity.sql | 2 +- .../polygon/balancer_v2_polygon_liquidity.sql | 2 +- .../zkevm/balancer_v2_zkevm_liquidity.sql | 2 +- ...balancer_arbitrum_pools_tokens_weights.sql | 2 +- ...ancer_v2_arbitrum_pools_tokens_weights.sql | 2 +- .../arbitrum/balancer_v3_arbitrum_lbps.sql | 2 +- ...ancer_v3_arbitrum_pools_tokens_weights.sql | 2 +- ...ancer_avalanche_c_pools_tokens_weights.sql | 2 +- ...er_v2_avalanche_c_pools_tokens_weights.sql | 2 +- .../pools/balancer_pools_tokens_weights.sql | 2 +- .../balancer/pools/balancer_v3_lbps.sql | 2 +- .../balancer_base_pools_tokens_weights.sql | 2 +- .../balancer_v2_base_pools_tokens_weights.sql | 2 +- .../pools/base/balancer_v3_base_lbps.sql | 2 +- .../balancer_v3_base_pools_tokens_weights.sql | 2 +- ...balancer_ethereum_pools_tokens_weights.sql | 2 +- ...ancer_v1_ethereum_pools_tokens_weights.sql | 2 +- ...ancer_v2_ethereum_pools_tokens_weights.sql | 2 +- .../ethereum/balancer_v3_ethereum_lbps.sql | 2 +- ...ancer_v3_ethereum_pools_tokens_weights.sql | 2 +- .../balancer_gnosis_pools_tokens_weights.sql | 2 +- ...alancer_v2_gnosis_pools_tokens_weights.sql | 2 +- .../pools/gnosis/balancer_v3_gnosis_lbps.sql | 2 +- ...alancer_v3_gnosis_pools_tokens_weights.sql | 2 +- ...balancer_optimism_pools_tokens_weights.sql | 2 +- ...ancer_v2_optimism_pools_tokens_weights.sql | 2 +- .../balancer_polygon_pools_tokens_weights.sql | 2 +- ...lancer_v2_polygon_pools_tokens_weights.sql | 2 +- .../balancer/pools/pools_fees/_schema.yml | 4 + .../pools/pools_fees/arbitrum/_schema.yml | 4 + .../balancer_v3_arbitrum_pools_fees.sql | 11 ++ .../pools/pools_fees/avalanche_c/_schema.yml | 4 + .../balancer_v3_avalanche_c_pools_fees.sql | 11 ++ .../pools_fees/balancer_v3_pools_fees.sql | 37 +++++ .../pools/pools_fees/base/_schema.yml | 4 + .../base/balancer_v3_base_pools_fees.sql | 11 ++ .../pools/pools_fees/ethereum/_schema.yml | 4 + .../balancer_v3_ethereum_pools_fees.sql | 11 ++ .../pools/pools_fees/gnosis/_schema.yml | 4 + .../gnosis/balancer_v3_gnosis_pools_fees.sql | 11 ++ .../pools/pools_fees/hyperevm/_schema.yml | 4 + .../balancer_v3_hyperevm_pools_fees.sql | 11 ++ .../pools/pools_fees/monad/_schema.yml | 4 + .../monad/balancer_v3_monad_pools_fees.sql | 11 ++ ...balancer_v2_zkevm_pools_tokens_weights.sql | 2 +- .../balancer_zkevm_pools_tokens_weights.sql | 2 +- .../balancer_v3_arbitrum_protocol_fee.sql | 2 +- .../protocol_fee/balancer_protocol_fee.sql | 2 +- .../base/balancer_v3_base_protocol_fee.sql | 2 +- .../balancer_v3_ethereum_protocol_fee.sql | 2 +- .../balancer_v3_gnosis_protocol_fee.sql | 2 +- ...balancer_cowswap_amm_arbitrum_balances.sql | 2 +- ...alancer_cowswap_amm_arbitrum_liquidity.sql | 2 +- .../balancer_cowswap_amm_balances.sql | 2 +- .../balancer_cowswap_amm_liquidity.sql | 2 +- .../balancer_cowswap_amm_base_balances.sql | 2 +- .../balancer_cowswap_amm_base_liquidity.sql | 2 +- ...balancer_cowswap_amm_ethereum_balances.sql | 2 +- ...alancer_cowswap_amm_ethereum_liquidity.sql | 2 +- .../balancer_cowswap_amm_gnosis_balances.sql | 2 +- .../balancer_cowswap_amm_gnosis_liquidity.sql | 2 +- models/_projects/balancer/labels/_schema.yml | 79 +++++++++- .../labels_balancer_v2_pools_arbitrum.sql | 2 +- .../labels_balancer_v3_pools_arbitrum.sql | 2 +- .../labels_balancer_v2_pools_avalanche_c.sql | 2 +- .../labels_balancer_v3_pools_avalanche_c.sql | 136 ++++++++++++++++++ .../base/labels_balancer_v2_pools_base.sql | 2 +- .../base/labels_balancer_v3_pools_base.sql | 2 +- .../labels_balancer_v1_pools_ethereum.sql | 2 +- .../labels_balancer_v2_pools_ethereum.sql | 2 +- .../labels_balancer_v3_pools_ethereum.sql | 2 +- .../labels_balancer_v2_pools_gnosis.sql | 2 +- .../labels_balancer_v3_pools_gnosis.sql | 2 +- .../labels_balancer_v3_pools_hyperevm.sql | 136 ++++++++++++++++++ .../labels/labels_balancer_v1_pools.sql | 2 +- .../labels/labels_balancer_v2_pools.sql | 2 +- .../labels/labels_balancer_v3_pools.sql | 8 +- .../monad/labels_balancer_v3_pools_monad.sql | 136 ++++++++++++++++++ .../labels_balancer_v2_pools_optimism.sql | 2 +- .../labels_balancer_v3_pools_plasma.sql | 2 +- .../labels_balancer_v2_pools_polygon.sql | 2 +- .../zkevm/labels_balancer_v2_pools_zkevm.sql | 2 +- .../balancer_avalanche_c_sources.yml | 18 +++ .../hyperevm/balancer_hyperevm_sources.yml | 20 +++ .../balancer/monad/balancer_monad_sources.yml | 20 +++ .../balancer/sonic/balancer_sonic_sources.yml | 12 ++ sources/balancer_liquidity_extra_sources.yml | 22 +++ 193 files changed, 1071 insertions(+), 177 deletions(-) create mode 100644 macros/shared/balancer/balancer_pools_fees_macro.sql create mode 100644 models/_project/balancer/erc4626_tokens/sonic/_schema.yml create mode 100644 models/_project/balancer/erc4626_tokens/sonic/balancer_v3_sonic_erc4626_token_mapping.sql create mode 100644 models/_project/balancer/erc4626_tokens/sonic/balancer_v3_sonic_erc4626_token_prices.sql create mode 100644 models/_project/balancer/pools/pools_fees/_schema.yml create mode 100644 models/_project/balancer/pools/pools_fees/arbitrum/_schema.yml create mode 100644 models/_project/balancer/pools/pools_fees/arbitrum/balancer_v3_arbitrum_pools_fees.sql create mode 100644 models/_project/balancer/pools/pools_fees/avalanche_c/_schema.yml create mode 100644 models/_project/balancer/pools/pools_fees/avalanche_c/balancer_v3_avalanche_c_pools_fees.sql create mode 100644 models/_project/balancer/pools/pools_fees/balancer_v3_pools_fees.sql create mode 100644 models/_project/balancer/pools/pools_fees/base/_schema.yml create mode 100644 models/_project/balancer/pools/pools_fees/base/balancer_v3_base_pools_fees.sql create mode 100644 models/_project/balancer/pools/pools_fees/ethereum/_schema.yml create mode 100644 models/_project/balancer/pools/pools_fees/ethereum/balancer_v3_ethereum_pools_fees.sql create mode 100644 models/_project/balancer/pools/pools_fees/gnosis/_schema.yml create mode 100644 models/_project/balancer/pools/pools_fees/gnosis/balancer_v3_gnosis_pools_fees.sql create mode 100644 models/_project/balancer/pools/pools_fees/hyperevm/_schema.yml create mode 100644 models/_project/balancer/pools/pools_fees/hyperevm/balancer_v3_hyperevm_pools_fees.sql create mode 100644 models/_project/balancer/pools/pools_fees/monad/_schema.yml create mode 100644 models/_project/balancer/pools/pools_fees/monad/balancer_v3_monad_pools_fees.sql create mode 100644 models/_projects/balancer/labels/avalanche_c/labels_balancer_v3_pools_avalanche_c.sql create mode 100644 models/_projects/balancer/labels/hyperevm/labels_balancer_v3_pools_hyperevm.sql create mode 100644 models/_projects/balancer/labels/monad/labels_balancer_v3_pools_monad.sql create mode 100644 sources/balancer/hyperevm/balancer_hyperevm_sources.yml create mode 100644 sources/balancer/monad/balancer_monad_sources.yml create mode 100644 sources/balancer/sonic/balancer_sonic_sources.yml diff --git a/macros/shared/balancer/balancer_pools_fees_macro.sql b/macros/shared/balancer/balancer_pools_fees_macro.sql new file mode 100644 index 0000000..e53b390 --- /dev/null +++ b/macros/shared/balancer/balancer_pools_fees_macro.sql @@ -0,0 +1,19 @@ +{% macro balancer_v3_pools_fees_macro(blockchain, source_namespace) %} + + SELECT + '{{ blockchain }}' AS blockchain + , '3' AS version + , bytearray_substring(pool, 1, 20) AS pool_address + , pool AS pool_id + , evt_tx_hash AS tx_hash + , evt_index AS tx_index + , evt_index AS index + , evt_block_time AS block_time + , evt_block_number AS block_number + , swapFeePercentage AS swap_fee_percentage + FROM {{ source(source_namespace, 'Vault_evt_SwapFeePercentageChanged') }} + {% if is_incremental() %} + WHERE {{ incremental_predicate('evt_block_time') }} + {% endif %} + +{% endmacro %} diff --git a/models/_project/balancer/balances/arbitrum/balancer_v2_arbitrum_token_balance_changes.sql b/models/_project/balancer/balances/arbitrum/balancer_v2_arbitrum_token_balance_changes.sql index a61b06f..1b45ce4 100644 --- a/models/_project/balancer/balances/arbitrum/balancer_v2_arbitrum_token_balance_changes.sql +++ b/models/_project/balancer/balances/arbitrum/balancer_v2_arbitrum_token_balance_changes.sql @@ -1,7 +1,7 @@ {% set blockchain = 'arbitrum' %} {{ config( - alias = 'balancer_v2_arbitrum_token_balance_changes', + alias = 'v2_arbitrum_token_balance_changes', materialized = 'table', ) }} diff --git a/models/_project/balancer/balances/arbitrum/balancer_v2_arbitrum_token_balance_changes_daily.sql b/models/_project/balancer/balances/arbitrum/balancer_v2_arbitrum_token_balance_changes_daily.sql index 4fc8746..8e423f4 100644 --- a/models/_project/balancer/balances/arbitrum/balancer_v2_arbitrum_token_balance_changes_daily.sql +++ b/models/_project/balancer/balances/arbitrum/balancer_v2_arbitrum_token_balance_changes_daily.sql @@ -2,7 +2,7 @@ {{ config( - alias = 'balancer_v2_arbitrum_token_balance_changes_daily', + alias = 'v2_arbitrum_token_balance_changes_daily', materialized = 'table', ) }} diff --git a/models/_project/balancer/balances/arbitrum/balancer_v3_arbitrum_token_balance_changes.sql b/models/_project/balancer/balances/arbitrum/balancer_v3_arbitrum_token_balance_changes.sql index ac84568..ec102b7 100644 --- a/models/_project/balancer/balances/arbitrum/balancer_v3_arbitrum_token_balance_changes.sql +++ b/models/_project/balancer/balances/arbitrum/balancer_v3_arbitrum_token_balance_changes.sql @@ -1,7 +1,7 @@ {% set blockchain = 'arbitrum' %} {{ config( - alias = 'balancer_v3_arbitrum_token_balance_changes', + alias = 'v3_arbitrum_token_balance_changes', materialized = 'table', ) }} diff --git a/models/_project/balancer/balances/arbitrum/balancer_v3_arbitrum_token_balance_changes_daily.sql b/models/_project/balancer/balances/arbitrum/balancer_v3_arbitrum_token_balance_changes_daily.sql index a5760e4..12f2351 100644 --- a/models/_project/balancer/balances/arbitrum/balancer_v3_arbitrum_token_balance_changes_daily.sql +++ b/models/_project/balancer/balances/arbitrum/balancer_v3_arbitrum_token_balance_changes_daily.sql @@ -2,7 +2,7 @@ {{ config( - alias = 'balancer_v3_arbitrum_token_balance_changes_daily', + alias = 'v3_arbitrum_token_balance_changes_daily', materialized = 'table', ) }} diff --git a/models/_project/balancer/balances/avalanche_c/balancer_v2_avalanche_c_token_balance_changes.sql b/models/_project/balancer/balances/avalanche_c/balancer_v2_avalanche_c_token_balance_changes.sql index 9c27538..6e43e8b 100644 --- a/models/_project/balancer/balances/avalanche_c/balancer_v2_avalanche_c_token_balance_changes.sql +++ b/models/_project/balancer/balances/avalanche_c/balancer_v2_avalanche_c_token_balance_changes.sql @@ -1,7 +1,7 @@ {% set blockchain = 'avalanche_c' %} {{ config( - alias = 'balancer_v2_avalanche_c_token_balance_changes', + alias = 'v2_avalanche_c_token_balance_changes', materialized = 'table', ) }} diff --git a/models/_project/balancer/balances/avalanche_c/balancer_v2_avalanche_c_token_balance_changes_daily.sql b/models/_project/balancer/balances/avalanche_c/balancer_v2_avalanche_c_token_balance_changes_daily.sql index 87b4c6f..fd73b00 100644 --- a/models/_project/balancer/balances/avalanche_c/balancer_v2_avalanche_c_token_balance_changes_daily.sql +++ b/models/_project/balancer/balances/avalanche_c/balancer_v2_avalanche_c_token_balance_changes_daily.sql @@ -2,7 +2,7 @@ {{ config( - alias = 'balancer_v2_avalanche_c_token_balance_changes_daily', + alias = 'v2_avalanche_c_token_balance_changes_daily', materialized = 'table', ) }} diff --git a/models/_project/balancer/balances/balancer_token_balance_changes.sql b/models/_project/balancer/balances/balancer_token_balance_changes.sql index f8f363d..b60c7e2 100644 --- a/models/_project/balancer/balances/balancer_token_balance_changes.sql +++ b/models/_project/balancer/balances/balancer_token_balance_changes.sql @@ -1,5 +1,5 @@ {{ config( - alias = 'balancer_token_balance_changes' + alias = 'token_balance_changes' , post_hook='{{ hide_spells() }}' ) }} diff --git a/models/_project/balancer/balances/balancer_token_balance_changes_daily.sql b/models/_project/balancer/balances/balancer_token_balance_changes_daily.sql index 5765189..781402e 100644 --- a/models/_project/balancer/balances/balancer_token_balance_changes_daily.sql +++ b/models/_project/balancer/balances/balancer_token_balance_changes_daily.sql @@ -1,5 +1,5 @@ {{ config( - alias = 'balancer_token_balance_changes_daily' + alias = 'token_balance_changes_daily' , post_hook='{{ hide_spells() }}' ) }} diff --git a/models/_project/balancer/balances/base/balancer_v2_base_token_balance_changes.sql b/models/_project/balancer/balances/base/balancer_v2_base_token_balance_changes.sql index e1978c1..8a14b04 100644 --- a/models/_project/balancer/balances/base/balancer_v2_base_token_balance_changes.sql +++ b/models/_project/balancer/balances/base/balancer_v2_base_token_balance_changes.sql @@ -1,7 +1,7 @@ {% set blockchain = 'base' %} {{ config( - alias = 'balancer_v2_base_token_balance_changes', + alias = 'v2_base_token_balance_changes', materialized = 'table', ) }} diff --git a/models/_project/balancer/balances/base/balancer_v2_base_token_balance_changes_daily.sql b/models/_project/balancer/balances/base/balancer_v2_base_token_balance_changes_daily.sql index 51d3193..075f86a 100644 --- a/models/_project/balancer/balances/base/balancer_v2_base_token_balance_changes_daily.sql +++ b/models/_project/balancer/balances/base/balancer_v2_base_token_balance_changes_daily.sql @@ -2,7 +2,7 @@ {{ config( - alias = 'balancer_v2_base_token_balance_changes_daily', + alias = 'v2_base_token_balance_changes_daily', materialized = 'table', ) }} diff --git a/models/_project/balancer/balances/base/balancer_v3_base_token_balance_changes.sql b/models/_project/balancer/balances/base/balancer_v3_base_token_balance_changes.sql index 4dda42d..aad50f7 100644 --- a/models/_project/balancer/balances/base/balancer_v3_base_token_balance_changes.sql +++ b/models/_project/balancer/balances/base/balancer_v3_base_token_balance_changes.sql @@ -1,7 +1,7 @@ {% set blockchain = 'base' %} {{ config( - alias = 'balancer_v3_base_token_balance_changes', + alias = 'v3_base_token_balance_changes', materialized = 'table', ) }} diff --git a/models/_project/balancer/balances/base/balancer_v3_base_token_balance_changes_daily.sql b/models/_project/balancer/balances/base/balancer_v3_base_token_balance_changes_daily.sql index 39e9ea3..9b9487f 100644 --- a/models/_project/balancer/balances/base/balancer_v3_base_token_balance_changes_daily.sql +++ b/models/_project/balancer/balances/base/balancer_v3_base_token_balance_changes_daily.sql @@ -2,7 +2,7 @@ {{ config( - alias = 'balancer_v3_base_token_balance_changes_daily', + alias = 'v3_base_token_balance_changes_daily', materialized = 'table', ) }} diff --git a/models/_project/balancer/balances/ethereum/balancer_ethereum_balances.sql b/models/_project/balancer/balances/ethereum/balancer_ethereum_balances.sql index cb6f222..3994001 100644 --- a/models/_project/balancer/balances/ethereum/balancer_ethereum_balances.sql +++ b/models/_project/balancer/balances/ethereum/balancer_ethereum_balances.sql @@ -1,6 +1,6 @@ {{ config( - alias = 'balancer_ethereum_balances' + alias = 'ethereum_balances' , post_hook='{{ hide_spells() }}' ) }} diff --git a/models/_project/balancer/balances/ethereum/balancer_v2_ethereum_token_balance_changes.sql b/models/_project/balancer/balances/ethereum/balancer_v2_ethereum_token_balance_changes.sql index b7c9dbf..4979aa2 100644 --- a/models/_project/balancer/balances/ethereum/balancer_v2_ethereum_token_balance_changes.sql +++ b/models/_project/balancer/balances/ethereum/balancer_v2_ethereum_token_balance_changes.sql @@ -1,7 +1,7 @@ {% set blockchain = 'ethereum' %} {{ config( - alias = 'balancer_v2_ethereum_token_balance_changes', + alias = 'v2_ethereum_token_balance_changes', materialized = 'table', ) }} diff --git a/models/_project/balancer/balances/ethereum/balancer_v2_ethereum_token_balance_changes_daily.sql b/models/_project/balancer/balances/ethereum/balancer_v2_ethereum_token_balance_changes_daily.sql index 9f5d818..edff3f9 100644 --- a/models/_project/balancer/balances/ethereum/balancer_v2_ethereum_token_balance_changes_daily.sql +++ b/models/_project/balancer/balances/ethereum/balancer_v2_ethereum_token_balance_changes_daily.sql @@ -2,7 +2,7 @@ {{ config( - alias = 'balancer_v2_ethereum_token_balance_changes_daily', + alias = 'v2_ethereum_token_balance_changes_daily', materialized = 'table', ) }} diff --git a/models/_project/balancer/balances/ethereum/balancer_v3_ethereum_token_balance_changes.sql b/models/_project/balancer/balances/ethereum/balancer_v3_ethereum_token_balance_changes.sql index 4974b6c..3b714ac 100644 --- a/models/_project/balancer/balances/ethereum/balancer_v3_ethereum_token_balance_changes.sql +++ b/models/_project/balancer/balances/ethereum/balancer_v3_ethereum_token_balance_changes.sql @@ -1,7 +1,7 @@ {% set blockchain = 'ethereum' %} {{ config( - alias = 'balancer_v3_ethereum_token_balance_changes', + alias = 'v3_ethereum_token_balance_changes', materialized = 'table', ) }} diff --git a/models/_project/balancer/balances/ethereum/balancer_v3_ethereum_token_balance_changes_daily.sql b/models/_project/balancer/balances/ethereum/balancer_v3_ethereum_token_balance_changes_daily.sql index 1b73c31..cd12796 100644 --- a/models/_project/balancer/balances/ethereum/balancer_v3_ethereum_token_balance_changes_daily.sql +++ b/models/_project/balancer/balances/ethereum/balancer_v3_ethereum_token_balance_changes_daily.sql @@ -2,7 +2,7 @@ {{ config( - alias = 'balancer_v3_ethereum_token_balance_changes_daily', + alias = 'v3_ethereum_token_balance_changes_daily', materialized = 'table', ) }} diff --git a/models/_project/balancer/balances/gnosis/balancer_v2_gnosis_token_balance_changes.sql b/models/_project/balancer/balances/gnosis/balancer_v2_gnosis_token_balance_changes.sql index 4c5e45b..a2e0ccf 100644 --- a/models/_project/balancer/balances/gnosis/balancer_v2_gnosis_token_balance_changes.sql +++ b/models/_project/balancer/balances/gnosis/balancer_v2_gnosis_token_balance_changes.sql @@ -1,7 +1,7 @@ {% set blockchain = 'gnosis' %} {{ config( - alias = 'balancer_v2_gnosis_token_balance_changes', + alias = 'v2_gnosis_token_balance_changes', materialized = 'table', ) }} diff --git a/models/_project/balancer/balances/gnosis/balancer_v2_gnosis_token_balance_changes_daily.sql b/models/_project/balancer/balances/gnosis/balancer_v2_gnosis_token_balance_changes_daily.sql index 734fe8f..0349ba3 100644 --- a/models/_project/balancer/balances/gnosis/balancer_v2_gnosis_token_balance_changes_daily.sql +++ b/models/_project/balancer/balances/gnosis/balancer_v2_gnosis_token_balance_changes_daily.sql @@ -2,7 +2,7 @@ {{ config( - alias = 'balancer_v2_gnosis_token_balance_changes_daily', + alias = 'v2_gnosis_token_balance_changes_daily', materialized = 'table', ) }} diff --git a/models/_project/balancer/balances/gnosis/balancer_v3_gnosis_token_balance_changes.sql b/models/_project/balancer/balances/gnosis/balancer_v3_gnosis_token_balance_changes.sql index 11e492f..705392e 100644 --- a/models/_project/balancer/balances/gnosis/balancer_v3_gnosis_token_balance_changes.sql +++ b/models/_project/balancer/balances/gnosis/balancer_v3_gnosis_token_balance_changes.sql @@ -1,7 +1,7 @@ {% set blockchain = 'gnosis' %} {{ config( - alias = 'balancer_v3_gnosis_token_balance_changes', + alias = 'v3_gnosis_token_balance_changes', materialized = 'table', ) }} diff --git a/models/_project/balancer/balances/gnosis/balancer_v3_gnosis_token_balance_changes_daily.sql b/models/_project/balancer/balances/gnosis/balancer_v3_gnosis_token_balance_changes_daily.sql index cfb0834..c3feeef 100644 --- a/models/_project/balancer/balances/gnosis/balancer_v3_gnosis_token_balance_changes_daily.sql +++ b/models/_project/balancer/balances/gnosis/balancer_v3_gnosis_token_balance_changes_daily.sql @@ -2,7 +2,7 @@ {{ config( - alias = 'balancer_v3_gnosis_token_balance_changes_daily', + alias = 'v3_gnosis_token_balance_changes_daily', materialized = 'table', ) }} diff --git a/models/_project/balancer/balances/optimism/balancer_v2_optimism_token_balance_changes.sql b/models/_project/balancer/balances/optimism/balancer_v2_optimism_token_balance_changes.sql index c8db6ad..d1eb2f3 100644 --- a/models/_project/balancer/balances/optimism/balancer_v2_optimism_token_balance_changes.sql +++ b/models/_project/balancer/balances/optimism/balancer_v2_optimism_token_balance_changes.sql @@ -1,7 +1,7 @@ {% set blockchain = 'optimism' %} {{ config( - alias = 'balancer_v2_optimism_token_balance_changes', + alias = 'v2_optimism_token_balance_changes', materialized = 'table', ) }} diff --git a/models/_project/balancer/balances/optimism/balancer_v2_optimism_token_balance_changes_daily.sql b/models/_project/balancer/balances/optimism/balancer_v2_optimism_token_balance_changes_daily.sql index 726b978..41bf7b5 100644 --- a/models/_project/balancer/balances/optimism/balancer_v2_optimism_token_balance_changes_daily.sql +++ b/models/_project/balancer/balances/optimism/balancer_v2_optimism_token_balance_changes_daily.sql @@ -2,7 +2,7 @@ {{ config( - alias = 'balancer_v2_optimism_token_balance_changes_daily', + alias = 'v2_optimism_token_balance_changes_daily', materialized = 'table', ) }} diff --git a/models/_project/balancer/balances/polygon/balancer_v2_polygon_token_balance_changes.sql b/models/_project/balancer/balances/polygon/balancer_v2_polygon_token_balance_changes.sql index a068d47..0d134fa 100644 --- a/models/_project/balancer/balances/polygon/balancer_v2_polygon_token_balance_changes.sql +++ b/models/_project/balancer/balances/polygon/balancer_v2_polygon_token_balance_changes.sql @@ -1,7 +1,7 @@ {% set blockchain = 'polygon' %} {{ config( - alias = 'balancer_v2_polygon_token_balance_changes', + alias = 'v2_polygon_token_balance_changes', materialized = 'table', ) }} diff --git a/models/_project/balancer/balances/polygon/balancer_v2_polygon_token_balance_changes_daily.sql b/models/_project/balancer/balances/polygon/balancer_v2_polygon_token_balance_changes_daily.sql index 217b529..6af7cc7 100644 --- a/models/_project/balancer/balances/polygon/balancer_v2_polygon_token_balance_changes_daily.sql +++ b/models/_project/balancer/balances/polygon/balancer_v2_polygon_token_balance_changes_daily.sql @@ -2,7 +2,7 @@ {{ config( - alias = 'balancer_v2_polygon_token_balance_changes_daily', + alias = 'v2_polygon_token_balance_changes_daily', materialized = 'table', ) }} diff --git a/models/_project/balancer/balances/zkevm/balancer_v2_zkevm_token_balance_changes.sql b/models/_project/balancer/balances/zkevm/balancer_v2_zkevm_token_balance_changes.sql index 68279e8..77343e5 100644 --- a/models/_project/balancer/balances/zkevm/balancer_v2_zkevm_token_balance_changes.sql +++ b/models/_project/balancer/balances/zkevm/balancer_v2_zkevm_token_balance_changes.sql @@ -1,7 +1,7 @@ {% set blockchain = 'zkevm' %} {{ config( - alias = 'balancer_v2_zkevm_token_balance_changes', + alias = 'v2_zkevm_token_balance_changes', materialized = 'table', ) }} diff --git a/models/_project/balancer/balances/zkevm/balancer_v2_zkevm_token_balance_changes_daily.sql b/models/_project/balancer/balances/zkevm/balancer_v2_zkevm_token_balance_changes_daily.sql index 423a671..cc825d1 100644 --- a/models/_project/balancer/balances/zkevm/balancer_v2_zkevm_token_balance_changes_daily.sql +++ b/models/_project/balancer/balances/zkevm/balancer_v2_zkevm_token_balance_changes_daily.sql @@ -2,7 +2,7 @@ {{ config( - alias = 'balancer_v2_zkevm_token_balance_changes_daily', + alias = 'v2_zkevm_token_balance_changes_daily', materialized = 'table', ) }} diff --git a/models/_project/balancer/bpt/arbitrum/balancer_v2_arbitrum_bpt_prices.sql b/models/_project/balancer/bpt/arbitrum/balancer_v2_arbitrum_bpt_prices.sql index 018bf8c..9d92e1b 100644 --- a/models/_project/balancer/bpt/arbitrum/balancer_v2_arbitrum_bpt_prices.sql +++ b/models/_project/balancer/bpt/arbitrum/balancer_v2_arbitrum_bpt_prices.sql @@ -2,7 +2,7 @@ {{ config( - alias = 'balancer_v2_arbitrum_bpt_prices', + alias = 'v2_arbitrum_bpt_prices', materialized = 'table', ) }} diff --git a/models/_project/balancer/bpt/arbitrum/balancer_v2_arbitrum_bpt_supply.sql b/models/_project/balancer/bpt/arbitrum/balancer_v2_arbitrum_bpt_supply.sql index c31bdb6..a5cd528 100644 --- a/models/_project/balancer/bpt/arbitrum/balancer_v2_arbitrum_bpt_supply.sql +++ b/models/_project/balancer/bpt/arbitrum/balancer_v2_arbitrum_bpt_supply.sql @@ -1,7 +1,7 @@ {% set blockchain = 'arbitrum' %} {{ config( - alias = 'balancer_v2_arbitrum_bpt_supply', + alias = 'v2_arbitrum_bpt_supply', materialized = 'table', ) }} diff --git a/models/_project/balancer/bpt/arbitrum/balancer_v2_arbitrum_transfers_bpt.sql b/models/_project/balancer/bpt/arbitrum/balancer_v2_arbitrum_transfers_bpt.sql index 742fc91..7e59f9d 100644 --- a/models/_project/balancer/bpt/arbitrum/balancer_v2_arbitrum_transfers_bpt.sql +++ b/models/_project/balancer/bpt/arbitrum/balancer_v2_arbitrum_transfers_bpt.sql @@ -2,7 +2,7 @@ {{ config( - alias = 'balancer_v2_arbitrum_transfers_bpt', + alias = 'v2_arbitrum_transfers_bpt', partition_by = ['block_month'], materialized = 'incremental', incremental_strategy = 'merge', diff --git a/models/_project/balancer/bpt/arbitrum/balancer_v3_arbitrum_bpt_prices.sql b/models/_project/balancer/bpt/arbitrum/balancer_v3_arbitrum_bpt_prices.sql index 16389a3..294161d 100644 --- a/models/_project/balancer/bpt/arbitrum/balancer_v3_arbitrum_bpt_prices.sql +++ b/models/_project/balancer/bpt/arbitrum/balancer_v3_arbitrum_bpt_prices.sql @@ -2,7 +2,7 @@ {{ config( - alias = 'balancer_v3_arbitrum_bpt_prices', + alias = 'v3_arbitrum_bpt_prices', materialized = 'table', ) }} diff --git a/models/_project/balancer/bpt/arbitrum/balancer_v3_arbitrum_bpt_supply.sql b/models/_project/balancer/bpt/arbitrum/balancer_v3_arbitrum_bpt_supply.sql index bc5a797..2c9d9f0 100644 --- a/models/_project/balancer/bpt/arbitrum/balancer_v3_arbitrum_bpt_supply.sql +++ b/models/_project/balancer/bpt/arbitrum/balancer_v3_arbitrum_bpt_supply.sql @@ -2,7 +2,7 @@ {{ config( - alias = 'balancer_v3_arbitrum_bpt_supply', + alias = 'v3_arbitrum_bpt_supply', materialized = 'table', ) diff --git a/models/_project/balancer/bpt/arbitrum/balancer_v3_arbitrum_bpt_supply_changes.sql b/models/_project/balancer/bpt/arbitrum/balancer_v3_arbitrum_bpt_supply_changes.sql index 8cd9f3b..18313ec 100644 --- a/models/_project/balancer/bpt/arbitrum/balancer_v3_arbitrum_bpt_supply_changes.sql +++ b/models/_project/balancer/bpt/arbitrum/balancer_v3_arbitrum_bpt_supply_changes.sql @@ -2,7 +2,7 @@ {{ config( - alias = 'balancer_v3_arbitrum_bpt_supply_changes', + alias = 'v3_arbitrum_bpt_supply_changes', materialized = 'incremental', incremental_strategy = 'merge', unique_key = ['block_date', 'evt_tx_hash', 'evt_index', 'label'], diff --git a/models/_project/balancer/bpt/arbitrum/balancer_v3_arbitrum_bpt_supply_changes_daily.sql b/models/_project/balancer/bpt/arbitrum/balancer_v3_arbitrum_bpt_supply_changes_daily.sql index 85b5cbe..ec32f3d 100644 --- a/models/_project/balancer/bpt/arbitrum/balancer_v3_arbitrum_bpt_supply_changes_daily.sql +++ b/models/_project/balancer/bpt/arbitrum/balancer_v3_arbitrum_bpt_supply_changes_daily.sql @@ -2,7 +2,7 @@ {{ config( - alias = 'balancer_v3_arbitrum_bpt_supply_changes_daily', + alias = 'v3_arbitrum_bpt_supply_changes_daily', materialized = 'table' ) }} diff --git a/models/_project/balancer/bpt/arbitrum/balancer_v3_arbitrum_transfers_bpt.sql b/models/_project/balancer/bpt/arbitrum/balancer_v3_arbitrum_transfers_bpt.sql index 471acbf..9f6de85 100644 --- a/models/_project/balancer/bpt/arbitrum/balancer_v3_arbitrum_transfers_bpt.sql +++ b/models/_project/balancer/bpt/arbitrum/balancer_v3_arbitrum_transfers_bpt.sql @@ -2,7 +2,7 @@ {{ config( - alias = 'balancer_v3_arbitrum_transfers_bpt', + alias = 'v3_arbitrum_transfers_bpt', partition_by = ['block_month'], materialized = 'incremental', incremental_strategy = 'merge', diff --git a/models/_project/balancer/bpt/avalanche_c/balancer_v2_avalanche_c_bpt_prices.sql b/models/_project/balancer/bpt/avalanche_c/balancer_v2_avalanche_c_bpt_prices.sql index 700799c..f978117 100644 --- a/models/_project/balancer/bpt/avalanche_c/balancer_v2_avalanche_c_bpt_prices.sql +++ b/models/_project/balancer/bpt/avalanche_c/balancer_v2_avalanche_c_bpt_prices.sql @@ -2,7 +2,7 @@ {{ config( - alias = 'balancer_v2_avalanche_c_bpt_prices', + alias = 'v2_avalanche_c_bpt_prices', materialized = 'table', ) }} diff --git a/models/_project/balancer/bpt/avalanche_c/balancer_v2_avalanche_c_bpt_supply.sql b/models/_project/balancer/bpt/avalanche_c/balancer_v2_avalanche_c_bpt_supply.sql index 425deeb..f28b68e 100644 --- a/models/_project/balancer/bpt/avalanche_c/balancer_v2_avalanche_c_bpt_supply.sql +++ b/models/_project/balancer/bpt/avalanche_c/balancer_v2_avalanche_c_bpt_supply.sql @@ -2,7 +2,7 @@ {{ config( - alias = 'balancer_v2_avalanche_c_bpt_supply', + alias = 'v2_avalanche_c_bpt_supply', materialized = 'table', ) diff --git a/models/_project/balancer/bpt/avalanche_c/balancer_v2_avalanche_c_transfers_bpt.sql b/models/_project/balancer/bpt/avalanche_c/balancer_v2_avalanche_c_transfers_bpt.sql index 5739f36..8a58a89 100644 --- a/models/_project/balancer/bpt/avalanche_c/balancer_v2_avalanche_c_transfers_bpt.sql +++ b/models/_project/balancer/bpt/avalanche_c/balancer_v2_avalanche_c_transfers_bpt.sql @@ -2,7 +2,7 @@ {{ config( - alias = 'balancer_v2_avalanche_c_transfers_bpt', + alias = 'v2_avalanche_c_transfers_bpt', partition_by = ['block_month'], materialized = 'incremental', incremental_strategy = 'merge', diff --git a/models/_project/balancer/bpt/balancer_bpt_prices.sql b/models/_project/balancer/bpt/balancer_bpt_prices.sql index ca6fdff..066f9eb 100644 --- a/models/_project/balancer/bpt/balancer_bpt_prices.sql +++ b/models/_project/balancer/bpt/balancer_bpt_prices.sql @@ -1,5 +1,5 @@ {{ config( - alias = 'balancer_bpt_prices' + alias = 'bpt_prices' , post_hook='{{ hide_spells() }}' ) }} diff --git a/models/_project/balancer/bpt/balancer_bpt_supply.sql b/models/_project/balancer/bpt/balancer_bpt_supply.sql index 394bcd9..f96deb3 100644 --- a/models/_project/balancer/bpt/balancer_bpt_supply.sql +++ b/models/_project/balancer/bpt/balancer_bpt_supply.sql @@ -1,5 +1,5 @@ {{ config( - alias = 'balancer_bpt_supply' + alias = 'bpt_supply' , post_hook='{{ hide_spells() }}' ) }} diff --git a/models/_project/balancer/bpt/balancer_bpt_supply_changes.sql b/models/_project/balancer/bpt/balancer_bpt_supply_changes.sql index b9a94f5..be7d349 100644 --- a/models/_project/balancer/bpt/balancer_bpt_supply_changes.sql +++ b/models/_project/balancer/bpt/balancer_bpt_supply_changes.sql @@ -1,5 +1,5 @@ {{ config( - alias = 'balancer_bpt_supply_changes' + alias = 'bpt_supply_changes' , post_hook='{{ hide_spells() }}' ) }} diff --git a/models/_project/balancer/bpt/balancer_bpt_supply_changes_daily.sql b/models/_project/balancer/bpt/balancer_bpt_supply_changes_daily.sql index d38a9c8..2148ba3 100644 --- a/models/_project/balancer/bpt/balancer_bpt_supply_changes_daily.sql +++ b/models/_project/balancer/bpt/balancer_bpt_supply_changes_daily.sql @@ -1,5 +1,5 @@ {{ config( - alias = 'balancer_bpt_supply_changes_daily' + alias = 'bpt_supply_changes_daily' , post_hook='{{ hide_spells() }}' ) }} diff --git a/models/_project/balancer/bpt/balancer_transfers_bpt.sql b/models/_project/balancer/bpt/balancer_transfers_bpt.sql index f7010d5..4f8d700 100644 --- a/models/_project/balancer/bpt/balancer_transfers_bpt.sql +++ b/models/_project/balancer/bpt/balancer_transfers_bpt.sql @@ -1,5 +1,5 @@ {{ config( - alias = 'balancer_transfers_bpt' + alias = 'transfers_bpt' , post_hook='{{ hide_spells() }}' ) }} diff --git a/models/_project/balancer/bpt/base/balancer_v2_base_bpt_prices.sql b/models/_project/balancer/bpt/base/balancer_v2_base_bpt_prices.sql index 6205eb4..120cbdd 100644 --- a/models/_project/balancer/bpt/base/balancer_v2_base_bpt_prices.sql +++ b/models/_project/balancer/bpt/base/balancer_v2_base_bpt_prices.sql @@ -2,7 +2,7 @@ {{ config( - alias = 'balancer_v2_base_bpt_prices', + alias = 'v2_base_bpt_prices', materialized = 'table', ) }} diff --git a/models/_project/balancer/bpt/base/balancer_v2_base_bpt_supply.sql b/models/_project/balancer/bpt/base/balancer_v2_base_bpt_supply.sql index ef9467a..d9fbf6c 100644 --- a/models/_project/balancer/bpt/base/balancer_v2_base_bpt_supply.sql +++ b/models/_project/balancer/bpt/base/balancer_v2_base_bpt_supply.sql @@ -2,7 +2,7 @@ {{ config( - alias = 'balancer_v2_base_bpt_supply', + alias = 'v2_base_bpt_supply', materialized = 'table', ) diff --git a/models/_project/balancer/bpt/base/balancer_v2_base_transfers_bpt.sql b/models/_project/balancer/bpt/base/balancer_v2_base_transfers_bpt.sql index 94d228e..cd76be1 100644 --- a/models/_project/balancer/bpt/base/balancer_v2_base_transfers_bpt.sql +++ b/models/_project/balancer/bpt/base/balancer_v2_base_transfers_bpt.sql @@ -2,7 +2,7 @@ {{ config( - alias = 'balancer_v2_base_transfers_bpt', + alias = 'v2_base_transfers_bpt', partition_by = ['block_month'], materialized = 'incremental', incremental_strategy = 'merge', diff --git a/models/_project/balancer/bpt/base/balancer_v3_base_bpt_prices.sql b/models/_project/balancer/bpt/base/balancer_v3_base_bpt_prices.sql index 20a3eb7..8571421 100644 --- a/models/_project/balancer/bpt/base/balancer_v3_base_bpt_prices.sql +++ b/models/_project/balancer/bpt/base/balancer_v3_base_bpt_prices.sql @@ -2,7 +2,7 @@ {{ config( - alias = 'balancer_v3_base_bpt_prices', + alias = 'v3_base_bpt_prices', materialized = 'table', ) }} diff --git a/models/_project/balancer/bpt/base/balancer_v3_base_bpt_supply.sql b/models/_project/balancer/bpt/base/balancer_v3_base_bpt_supply.sql index e4351b7..c4885b2 100644 --- a/models/_project/balancer/bpt/base/balancer_v3_base_bpt_supply.sql +++ b/models/_project/balancer/bpt/base/balancer_v3_base_bpt_supply.sql @@ -2,7 +2,7 @@ {{ config( - alias = 'balancer_v3_base_bpt_supply', + alias = 'v3_base_bpt_supply', materialized = 'table', ) diff --git a/models/_project/balancer/bpt/base/balancer_v3_base_bpt_supply_changes.sql b/models/_project/balancer/bpt/base/balancer_v3_base_bpt_supply_changes.sql index efbd36d..f261d94 100644 --- a/models/_project/balancer/bpt/base/balancer_v3_base_bpt_supply_changes.sql +++ b/models/_project/balancer/bpt/base/balancer_v3_base_bpt_supply_changes.sql @@ -2,7 +2,7 @@ {{ config( - alias = 'balancer_v3_base_bpt_supply_changes', + alias = 'v3_base_bpt_supply_changes', materialized = 'incremental', incremental_strategy = 'merge', unique_key = ['block_date', 'evt_tx_hash', 'evt_index', 'label'], diff --git a/models/_project/balancer/bpt/base/balancer_v3_base_bpt_supply_changes_daily.sql b/models/_project/balancer/bpt/base/balancer_v3_base_bpt_supply_changes_daily.sql index 714c61f..a61f0f0 100644 --- a/models/_project/balancer/bpt/base/balancer_v3_base_bpt_supply_changes_daily.sql +++ b/models/_project/balancer/bpt/base/balancer_v3_base_bpt_supply_changes_daily.sql @@ -2,7 +2,7 @@ {{ config( - alias = 'balancer_v3_base_bpt_supply_changes_daily', + alias = 'v3_base_bpt_supply_changes_daily', materialized = 'table' ) }} diff --git a/models/_project/balancer/bpt/base/balancer_v3_base_transfers_bpt.sql b/models/_project/balancer/bpt/base/balancer_v3_base_transfers_bpt.sql index 4c3134e..c205d47 100644 --- a/models/_project/balancer/bpt/base/balancer_v3_base_transfers_bpt.sql +++ b/models/_project/balancer/bpt/base/balancer_v3_base_transfers_bpt.sql @@ -2,7 +2,7 @@ {{ config( - alias = 'balancer_v3_base_transfers_bpt', + alias = 'v3_base_transfers_bpt', partition_by = ['block_month'], materialized = 'incremental', incremental_strategy = 'merge', diff --git a/models/_project/balancer/bpt/ethereum/balancer_v2_ethereum_bpt_prices.sql b/models/_project/balancer/bpt/ethereum/balancer_v2_ethereum_bpt_prices.sql index c61b06f..33c0fdd 100644 --- a/models/_project/balancer/bpt/ethereum/balancer_v2_ethereum_bpt_prices.sql +++ b/models/_project/balancer/bpt/ethereum/balancer_v2_ethereum_bpt_prices.sql @@ -2,7 +2,7 @@ {{ config( - alias = 'balancer_v2_ethereum_bpt_prices', + alias = 'v2_ethereum_bpt_prices', materialized = 'table', ) }} diff --git a/models/_project/balancer/bpt/ethereum/balancer_v2_ethereum_bpt_supply.sql b/models/_project/balancer/bpt/ethereum/balancer_v2_ethereum_bpt_supply.sql index e9fe5b3..7700e28 100644 --- a/models/_project/balancer/bpt/ethereum/balancer_v2_ethereum_bpt_supply.sql +++ b/models/_project/balancer/bpt/ethereum/balancer_v2_ethereum_bpt_supply.sql @@ -2,7 +2,7 @@ {{ config( - alias = 'balancer_v2_ethereum_bpt_supply', + alias = 'v2_ethereum_bpt_supply', materialized = 'table', ) diff --git a/models/_project/balancer/bpt/ethereum/balancer_v2_ethereum_transfers_bpt.sql b/models/_project/balancer/bpt/ethereum/balancer_v2_ethereum_transfers_bpt.sql index 59a7ab6..4b43d9f 100644 --- a/models/_project/balancer/bpt/ethereum/balancer_v2_ethereum_transfers_bpt.sql +++ b/models/_project/balancer/bpt/ethereum/balancer_v2_ethereum_transfers_bpt.sql @@ -2,7 +2,7 @@ {{ config( - alias = 'balancer_v2_ethereum_transfers_bpt', + alias = 'v2_ethereum_transfers_bpt', partition_by = ['block_month'], materialized = 'incremental', incremental_strategy = 'merge', diff --git a/models/_project/balancer/bpt/ethereum/balancer_v3_ethereum_bpt_prices.sql b/models/_project/balancer/bpt/ethereum/balancer_v3_ethereum_bpt_prices.sql index 186b787..a9a8a1b 100644 --- a/models/_project/balancer/bpt/ethereum/balancer_v3_ethereum_bpt_prices.sql +++ b/models/_project/balancer/bpt/ethereum/balancer_v3_ethereum_bpt_prices.sql @@ -2,7 +2,7 @@ {{ config( - alias = 'balancer_v3_ethereum_bpt_prices', + alias = 'v3_ethereum_bpt_prices', materialized = 'table', ) }} diff --git a/models/_project/balancer/bpt/ethereum/balancer_v3_ethereum_bpt_supply.sql b/models/_project/balancer/bpt/ethereum/balancer_v3_ethereum_bpt_supply.sql index 4d0dc77..b23a5f2 100644 --- a/models/_project/balancer/bpt/ethereum/balancer_v3_ethereum_bpt_supply.sql +++ b/models/_project/balancer/bpt/ethereum/balancer_v3_ethereum_bpt_supply.sql @@ -2,7 +2,7 @@ {{ config( - alias = 'balancer_v3_ethereum_bpt_supply', + alias = 'v3_ethereum_bpt_supply', materialized = 'table', ) diff --git a/models/_project/balancer/bpt/ethereum/balancer_v3_ethereum_bpt_supply_changes.sql b/models/_project/balancer/bpt/ethereum/balancer_v3_ethereum_bpt_supply_changes.sql index fff8d7e..e2a6e19 100644 --- a/models/_project/balancer/bpt/ethereum/balancer_v3_ethereum_bpt_supply_changes.sql +++ b/models/_project/balancer/bpt/ethereum/balancer_v3_ethereum_bpt_supply_changes.sql @@ -2,7 +2,7 @@ {{ config( - alias = 'balancer_v3_ethereum_bpt_supply_changes', + alias = 'v3_ethereum_bpt_supply_changes', materialized = 'incremental', incremental_strategy = 'merge', unique_key = ['block_date', 'evt_tx_hash', 'evt_index', 'label'], diff --git a/models/_project/balancer/bpt/ethereum/balancer_v3_ethereum_bpt_supply_changes_daily.sql b/models/_project/balancer/bpt/ethereum/balancer_v3_ethereum_bpt_supply_changes_daily.sql index 572b0d7..d29847d 100644 --- a/models/_project/balancer/bpt/ethereum/balancer_v3_ethereum_bpt_supply_changes_daily.sql +++ b/models/_project/balancer/bpt/ethereum/balancer_v3_ethereum_bpt_supply_changes_daily.sql @@ -2,7 +2,7 @@ {{ config( - alias = 'balancer_v3_ethereum_bpt_supply_changes_daily', + alias = 'v3_ethereum_bpt_supply_changes_daily', materialized = 'table' ) }} diff --git a/models/_project/balancer/bpt/ethereum/balancer_v3_ethereum_transfers_bpt.sql b/models/_project/balancer/bpt/ethereum/balancer_v3_ethereum_transfers_bpt.sql index 1338f05..3e5f239 100644 --- a/models/_project/balancer/bpt/ethereum/balancer_v3_ethereum_transfers_bpt.sql +++ b/models/_project/balancer/bpt/ethereum/balancer_v3_ethereum_transfers_bpt.sql @@ -2,7 +2,7 @@ {{ config( - alias = 'balancer_v3_ethereum_transfers_bpt', + alias = 'v3_ethereum_transfers_bpt', partition_by = ['block_month'], materialized = 'incremental', incremental_strategy = 'merge', diff --git a/models/_project/balancer/bpt/gnosis/balancer_v2_gnosis_bpt_prices.sql b/models/_project/balancer/bpt/gnosis/balancer_v2_gnosis_bpt_prices.sql index 3e03982..9045f67 100644 --- a/models/_project/balancer/bpt/gnosis/balancer_v2_gnosis_bpt_prices.sql +++ b/models/_project/balancer/bpt/gnosis/balancer_v2_gnosis_bpt_prices.sql @@ -2,7 +2,7 @@ {{ config( - alias = 'balancer_v2_gnosis_bpt_prices', + alias = 'v2_gnosis_bpt_prices', materialized = 'table', ) }} diff --git a/models/_project/balancer/bpt/gnosis/balancer_v2_gnosis_bpt_supply.sql b/models/_project/balancer/bpt/gnosis/balancer_v2_gnosis_bpt_supply.sql index f48fe98..42d0436 100644 --- a/models/_project/balancer/bpt/gnosis/balancer_v2_gnosis_bpt_supply.sql +++ b/models/_project/balancer/bpt/gnosis/balancer_v2_gnosis_bpt_supply.sql @@ -2,7 +2,7 @@ {{ config( - alias = 'balancer_v2_gnosis_bpt_supply', + alias = 'v2_gnosis_bpt_supply', materialized = 'table', ) }} diff --git a/models/_project/balancer/bpt/gnosis/balancer_v2_gnosis_transfers_bpt.sql b/models/_project/balancer/bpt/gnosis/balancer_v2_gnosis_transfers_bpt.sql index c7bd53a..aceb4ff 100644 --- a/models/_project/balancer/bpt/gnosis/balancer_v2_gnosis_transfers_bpt.sql +++ b/models/_project/balancer/bpt/gnosis/balancer_v2_gnosis_transfers_bpt.sql @@ -2,7 +2,7 @@ {{ config( - alias = 'balancer_v2_gnosis_transfers_bpt', + alias = 'v2_gnosis_transfers_bpt', partition_by = ['block_month'], materialized = 'incremental', incremental_strategy = 'merge', diff --git a/models/_project/balancer/bpt/gnosis/balancer_v3_gnosis_bpt_prices.sql b/models/_project/balancer/bpt/gnosis/balancer_v3_gnosis_bpt_prices.sql index 66f147b..d210081 100644 --- a/models/_project/balancer/bpt/gnosis/balancer_v3_gnosis_bpt_prices.sql +++ b/models/_project/balancer/bpt/gnosis/balancer_v3_gnosis_bpt_prices.sql @@ -2,7 +2,7 @@ {{ config( - alias = 'balancer_v3_gnosis_bpt_prices', + alias = 'v3_gnosis_bpt_prices', materialized = 'table', ) }} diff --git a/models/_project/balancer/bpt/gnosis/balancer_v3_gnosis_bpt_supply.sql b/models/_project/balancer/bpt/gnosis/balancer_v3_gnosis_bpt_supply.sql index 795a8be..ef9221f 100644 --- a/models/_project/balancer/bpt/gnosis/balancer_v3_gnosis_bpt_supply.sql +++ b/models/_project/balancer/bpt/gnosis/balancer_v3_gnosis_bpt_supply.sql @@ -2,7 +2,7 @@ {{ config( - alias = 'balancer_v3_gnosis_bpt_supply', + alias = 'v3_gnosis_bpt_supply', materialized = 'table', ) diff --git a/models/_project/balancer/bpt/gnosis/balancer_v3_gnosis_bpt_supply_changes.sql b/models/_project/balancer/bpt/gnosis/balancer_v3_gnosis_bpt_supply_changes.sql index 5c82eb1..cce7711 100644 --- a/models/_project/balancer/bpt/gnosis/balancer_v3_gnosis_bpt_supply_changes.sql +++ b/models/_project/balancer/bpt/gnosis/balancer_v3_gnosis_bpt_supply_changes.sql @@ -2,7 +2,7 @@ {{ config( - alias = 'balancer_v3_gnosis_bpt_supply_changes', + alias = 'v3_gnosis_bpt_supply_changes', materialized = 'incremental', incremental_strategy = 'merge', unique_key = ['block_date', 'evt_tx_hash', 'evt_index', 'label'], diff --git a/models/_project/balancer/bpt/gnosis/balancer_v3_gnosis_bpt_supply_changes_daily.sql b/models/_project/balancer/bpt/gnosis/balancer_v3_gnosis_bpt_supply_changes_daily.sql index 3403625..cb1235d 100644 --- a/models/_project/balancer/bpt/gnosis/balancer_v3_gnosis_bpt_supply_changes_daily.sql +++ b/models/_project/balancer/bpt/gnosis/balancer_v3_gnosis_bpt_supply_changes_daily.sql @@ -2,7 +2,7 @@ {{ config( - alias = 'balancer_v3_gnosis_bpt_supply_changes_daily', + alias = 'v3_gnosis_bpt_supply_changes_daily', materialized = 'table' ) }} diff --git a/models/_project/balancer/bpt/gnosis/balancer_v3_gnosis_transfers_bpt.sql b/models/_project/balancer/bpt/gnosis/balancer_v3_gnosis_transfers_bpt.sql index 240df13..b7033cb 100644 --- a/models/_project/balancer/bpt/gnosis/balancer_v3_gnosis_transfers_bpt.sql +++ b/models/_project/balancer/bpt/gnosis/balancer_v3_gnosis_transfers_bpt.sql @@ -2,7 +2,7 @@ {{ config( - alias = 'balancer_v3_gnosis_transfers_bpt', + alias = 'v3_gnosis_transfers_bpt', partition_by = ['block_month'], materialized = 'incremental', incremental_strategy = 'merge', diff --git a/models/_project/balancer/bpt/optimism/balancer_v2_optimism_bpt_prices.sql b/models/_project/balancer/bpt/optimism/balancer_v2_optimism_bpt_prices.sql index c58e69b..56682d2 100644 --- a/models/_project/balancer/bpt/optimism/balancer_v2_optimism_bpt_prices.sql +++ b/models/_project/balancer/bpt/optimism/balancer_v2_optimism_bpt_prices.sql @@ -2,7 +2,7 @@ {{ config( - alias = 'balancer_v2_optimism_bpt_prices', + alias = 'v2_optimism_bpt_prices', materialized = 'table', ) }} diff --git a/models/_project/balancer/bpt/optimism/balancer_v2_optimism_bpt_supply.sql b/models/_project/balancer/bpt/optimism/balancer_v2_optimism_bpt_supply.sql index e1049df..a208ad7 100644 --- a/models/_project/balancer/bpt/optimism/balancer_v2_optimism_bpt_supply.sql +++ b/models/_project/balancer/bpt/optimism/balancer_v2_optimism_bpt_supply.sql @@ -2,7 +2,7 @@ {{ config( - alias = 'balancer_v2_optimism_bpt_supply', + alias = 'v2_optimism_bpt_supply', materialized = 'table', ) }} diff --git a/models/_project/balancer/bpt/optimism/balancer_v2_optimism_transfers_bpt.sql b/models/_project/balancer/bpt/optimism/balancer_v2_optimism_transfers_bpt.sql index 619e747..8f69a30 100644 --- a/models/_project/balancer/bpt/optimism/balancer_v2_optimism_transfers_bpt.sql +++ b/models/_project/balancer/bpt/optimism/balancer_v2_optimism_transfers_bpt.sql @@ -2,7 +2,7 @@ {{ config( - alias = 'balancer_v2_optimism_transfers_bpt', + alias = 'v2_optimism_transfers_bpt', partition_by = ['block_month'], materialized = 'incremental', incremental_strategy = 'merge', diff --git a/models/_project/balancer/bpt/polygon/balancer_v2_polygon_bpt_prices.sql b/models/_project/balancer/bpt/polygon/balancer_v2_polygon_bpt_prices.sql index a445a3b..90eb21c 100644 --- a/models/_project/balancer/bpt/polygon/balancer_v2_polygon_bpt_prices.sql +++ b/models/_project/balancer/bpt/polygon/balancer_v2_polygon_bpt_prices.sql @@ -2,7 +2,7 @@ {{ config( - alias = 'balancer_v2_polygon_bpt_prices', + alias = 'v2_polygon_bpt_prices', materialized = 'table', ) }} diff --git a/models/_project/balancer/bpt/polygon/balancer_v2_polygon_bpt_supply.sql b/models/_project/balancer/bpt/polygon/balancer_v2_polygon_bpt_supply.sql index e25d5c3..e485531 100644 --- a/models/_project/balancer/bpt/polygon/balancer_v2_polygon_bpt_supply.sql +++ b/models/_project/balancer/bpt/polygon/balancer_v2_polygon_bpt_supply.sql @@ -2,7 +2,7 @@ {{ config( - alias = 'balancer_v2_polygon_bpt_supply', + alias = 'v2_polygon_bpt_supply', materialized = 'table', ) }} diff --git a/models/_project/balancer/bpt/polygon/balancer_v2_polygon_transfers_bpt.sql b/models/_project/balancer/bpt/polygon/balancer_v2_polygon_transfers_bpt.sql index c4a9448..df6d86f 100644 --- a/models/_project/balancer/bpt/polygon/balancer_v2_polygon_transfers_bpt.sql +++ b/models/_project/balancer/bpt/polygon/balancer_v2_polygon_transfers_bpt.sql @@ -2,7 +2,7 @@ {{ config( - alias = 'balancer_v2_polygon_transfers_bpt', + alias = 'v2_polygon_transfers_bpt', partition_by = ['block_month'], materialized = 'incremental', incremental_strategy = 'merge', diff --git a/models/_project/balancer/bpt/zkevm/balancer_v2_zkevm_bpt_prices.sql b/models/_project/balancer/bpt/zkevm/balancer_v2_zkevm_bpt_prices.sql index 9984a8f..26a4ba6 100644 --- a/models/_project/balancer/bpt/zkevm/balancer_v2_zkevm_bpt_prices.sql +++ b/models/_project/balancer/bpt/zkevm/balancer_v2_zkevm_bpt_prices.sql @@ -2,7 +2,7 @@ {{ config( - alias = 'balancer_v2_zkevm_bpt_prices', + alias = 'v2_zkevm_bpt_prices', materialized = 'table', ) }} diff --git a/models/_project/balancer/bpt/zkevm/balancer_v2_zkevm_bpt_supply.sql b/models/_project/balancer/bpt/zkevm/balancer_v2_zkevm_bpt_supply.sql index 735a5ea..0e18e1d 100644 --- a/models/_project/balancer/bpt/zkevm/balancer_v2_zkevm_bpt_supply.sql +++ b/models/_project/balancer/bpt/zkevm/balancer_v2_zkevm_bpt_supply.sql @@ -2,7 +2,7 @@ {{ config( - alias = 'balancer_v2_zkevm_bpt_supply', + alias = 'v2_zkevm_bpt_supply', materialized = 'table', ) }} diff --git a/models/_project/balancer/bpt/zkevm/balancer_v2_zkevm_transfers_bpt.sql b/models/_project/balancer/bpt/zkevm/balancer_v2_zkevm_transfers_bpt.sql index 34c5317..f3c593a 100644 --- a/models/_project/balancer/bpt/zkevm/balancer_v2_zkevm_transfers_bpt.sql +++ b/models/_project/balancer/bpt/zkevm/balancer_v2_zkevm_transfers_bpt.sql @@ -2,7 +2,7 @@ {{ config( - alias = 'balancer_v2_zkevm_transfers_bpt', + alias = 'v2_zkevm_transfers_bpt', partition_by = ['block_month'], materialized = 'incremental', incremental_strategy = 'merge', diff --git a/models/_project/balancer/erc4626_tokens/_schema.yml b/models/_project/balancer/erc4626_tokens/_schema.yml index c18feba..29b7802 100644 --- a/models/_project/balancer/erc4626_tokens/_schema.yml +++ b/models/_project/balancer/erc4626_tokens/_schema.yml @@ -3,20 +3,20 @@ version: 2 models: - name: balancer_v3_erc4626_token_mapping meta: - blockchain: arbitrum, base, ethereum, gnosis + blockchain: arbitrum, base, ethereum, gnosis, sonic project: balancer_v3 contributors: gustavotorres config: - tags: ['arbitrum', 'base', 'ethereum', 'gnosis', 'erc4626', 'mapping'] + tags: ['arbitrum', 'base', 'ethereum', 'gnosis', 'sonic', 'erc4626', 'mapping'] description: > - Balancer V3 ERC4626 token mapping aggregated for active Wave-1 chains. + Balancer V3 ERC4626 token mapping aggregated for active chains. - name: balancer_v3_erc4626_token_prices meta: - blockchain: arbitrum, base, ethereum, gnosis + blockchain: arbitrum, base, ethereum, gnosis, sonic project: balancer_v3 contributors: gustavotorres config: - tags: ['arbitrum', 'base', 'ethereum', 'gnosis', 'erc4626', 'prices'] + tags: ['arbitrum', 'base', 'ethereum', 'gnosis', 'sonic', 'erc4626', 'prices'] description: > - Balancer V3 ERC4626 token prices aggregated for active Wave-1 chains. + Balancer V3 ERC4626 token prices aggregated for active chains. diff --git a/models/_project/balancer/erc4626_tokens/arbitrum/_schema.yml b/models/_project/balancer/erc4626_tokens/arbitrum/_schema.yml index bbc3175..11c1115 100644 --- a/models/_project/balancer/erc4626_tokens/arbitrum/_schema.yml +++ b/models/_project/balancer/erc4626_tokens/arbitrum/_schema.yml @@ -29,3 +29,4 @@ models: combination_of_columns: - minute - wrapped_token + - underlying_token diff --git a/models/_project/balancer/erc4626_tokens/arbitrum/balancer_v3_arbitrum_erc4626_token_mapping.sql b/models/_project/balancer/erc4626_tokens/arbitrum/balancer_v3_arbitrum_erc4626_token_mapping.sql index 8b40f3a..e92e07c 100644 --- a/models/_project/balancer/erc4626_tokens/arbitrum/balancer_v3_arbitrum_erc4626_token_mapping.sql +++ b/models/_project/balancer/erc4626_tokens/arbitrum/balancer_v3_arbitrum_erc4626_token_mapping.sql @@ -2,7 +2,7 @@ {{ config( - alias = 'balancer_v3_arbitrum_erc4626_token_mapping', + alias = 'v3_arbitrum_erc4626_token_mapping', materialized = 'table' ) }} diff --git a/models/_project/balancer/erc4626_tokens/arbitrum/balancer_v3_arbitrum_erc4626_token_prices.sql b/models/_project/balancer/erc4626_tokens/arbitrum/balancer_v3_arbitrum_erc4626_token_prices.sql index db13a07..699679f 100644 --- a/models/_project/balancer/erc4626_tokens/arbitrum/balancer_v3_arbitrum_erc4626_token_prices.sql +++ b/models/_project/balancer/erc4626_tokens/arbitrum/balancer_v3_arbitrum_erc4626_token_prices.sql @@ -2,10 +2,10 @@ {{ config( - alias = 'balancer_v3_arbitrum_erc4626_token_prices', + alias = 'v3_arbitrum_erc4626_token_prices', materialized = 'incremental', incremental_strategy = 'merge', - unique_key = ['minute', 'wrapped_token'], + unique_key = ['minute', 'wrapped_token', 'underlying_token'], incremental_predicates = ["DBT_INTERNAL_DEST.minute >= date_trunc('day', now() - interval '4' day)"] ) }} @@ -63,6 +63,6 @@ SELECT underlying_token_symbol, decimals, APPROX_PERCENTILE(adjusted_price, 0.5) AS median_price, - LEAD(p.minute, 1, TIMESTAMP '9999-12-31 23:59:59') OVER (PARTITION BY wrappedToken ORDER BY p.minute) AS next_change + LEAD(p.minute, 1, TIMESTAMP '9999-12-31 23:59:59') OVER (PARTITION BY wrappedToken, underlying_token ORDER BY p.minute) AS next_change FROM price_join p GROUP BY 1, 2, 3, 4, 5, 6, 7 diff --git a/models/_project/balancer/erc4626_tokens/balancer_v3_erc4626_token_mapping.sql b/models/_project/balancer/erc4626_tokens/balancer_v3_erc4626_token_mapping.sql index 5c80365..fe7b698 100644 --- a/models/_project/balancer/erc4626_tokens/balancer_v3_erc4626_token_mapping.sql +++ b/models/_project/balancer/erc4626_tokens/balancer_v3_erc4626_token_mapping.sql @@ -1,5 +1,5 @@ {{ config( - alias = 'balancer_v3_erc4626_token_mapping' + alias = 'v3_erc4626_token_mapping' , post_hook='{{ hide_spells() }}' ) }} @@ -8,7 +8,8 @@ ref('balancer_v3_ethereum_erc4626_token_mapping'), ref('balancer_v3_gnosis_erc4626_token_mapping'), ref('balancer_v3_arbitrum_erc4626_token_mapping'), - ref('balancer_v3_base_erc4626_token_mapping') + ref('balancer_v3_base_erc4626_token_mapping'), + ref('balancer_v3_sonic_erc4626_token_mapping') ] %} SELECT * diff --git a/models/_project/balancer/erc4626_tokens/balancer_v3_erc4626_token_prices.sql b/models/_project/balancer/erc4626_tokens/balancer_v3_erc4626_token_prices.sql index a820ca7..0c4663a 100644 --- a/models/_project/balancer/erc4626_tokens/balancer_v3_erc4626_token_prices.sql +++ b/models/_project/balancer/erc4626_tokens/balancer_v3_erc4626_token_prices.sql @@ -1,5 +1,5 @@ {{ config( - alias = 'balancer_v3_erc4626_token_prices' + alias = 'v3_erc4626_token_prices' , post_hook='{{ hide_spells() }}' ) }} @@ -8,7 +8,8 @@ ref('balancer_v3_ethereum_erc4626_token_prices'), ref('balancer_v3_gnosis_erc4626_token_prices'), ref('balancer_v3_arbitrum_erc4626_token_prices'), - ref('balancer_v3_base_erc4626_token_prices') + ref('balancer_v3_base_erc4626_token_prices'), + ref('balancer_v3_sonic_erc4626_token_prices') ] %} SELECT * diff --git a/models/_project/balancer/erc4626_tokens/base/_schema.yml b/models/_project/balancer/erc4626_tokens/base/_schema.yml index 5d8d599..2073919 100644 --- a/models/_project/balancer/erc4626_tokens/base/_schema.yml +++ b/models/_project/balancer/erc4626_tokens/base/_schema.yml @@ -29,3 +29,4 @@ models: combination_of_columns: - minute - wrapped_token + - underlying_token diff --git a/models/_project/balancer/erc4626_tokens/base/balancer_v3_base_erc4626_token_mapping.sql b/models/_project/balancer/erc4626_tokens/base/balancer_v3_base_erc4626_token_mapping.sql index 2314e0f..6e509d2 100644 --- a/models/_project/balancer/erc4626_tokens/base/balancer_v3_base_erc4626_token_mapping.sql +++ b/models/_project/balancer/erc4626_tokens/base/balancer_v3_base_erc4626_token_mapping.sql @@ -2,7 +2,7 @@ {{ config( - alias = 'balancer_v3_base_erc4626_token_mapping', + alias = 'v3_base_erc4626_token_mapping', materialized = 'table' ) }} diff --git a/models/_project/balancer/erc4626_tokens/base/balancer_v3_base_erc4626_token_prices.sql b/models/_project/balancer/erc4626_tokens/base/balancer_v3_base_erc4626_token_prices.sql index f224a0c..91454e0 100644 --- a/models/_project/balancer/erc4626_tokens/base/balancer_v3_base_erc4626_token_prices.sql +++ b/models/_project/balancer/erc4626_tokens/base/balancer_v3_base_erc4626_token_prices.sql @@ -2,10 +2,10 @@ {{ config( - alias = 'balancer_v3_base_erc4626_token_prices', + alias = 'v3_base_erc4626_token_prices', materialized = 'incremental', incremental_strategy = 'merge', - unique_key = ['minute', 'wrapped_token'], + unique_key = ['minute', 'wrapped_token', 'underlying_token'], incremental_predicates = ["DBT_INTERNAL_DEST.minute >= date_trunc('day', now() - interval '4' day)"] ) }} @@ -63,6 +63,6 @@ SELECT underlying_token_symbol, decimals, APPROX_PERCENTILE(adjusted_price, 0.5) AS median_price, - LEAD(p.minute, 1, TIMESTAMP '9999-12-31 23:59:59') OVER (PARTITION BY wrappedToken ORDER BY p.minute) AS next_change + LEAD(p.minute, 1, TIMESTAMP '9999-12-31 23:59:59') OVER (PARTITION BY wrappedToken, underlying_token ORDER BY p.minute) AS next_change FROM price_join p GROUP BY 1, 2, 3, 4, 5, 6, 7 diff --git a/models/_project/balancer/erc4626_tokens/ethereum/_schema.yml b/models/_project/balancer/erc4626_tokens/ethereum/_schema.yml index 315d902..bc1e4a3 100644 --- a/models/_project/balancer/erc4626_tokens/ethereum/_schema.yml +++ b/models/_project/balancer/erc4626_tokens/ethereum/_schema.yml @@ -29,3 +29,4 @@ models: combination_of_columns: - minute - wrapped_token + - underlying_token diff --git a/models/_project/balancer/erc4626_tokens/ethereum/balancer_v3_ethereum_erc4626_token_mapping.sql b/models/_project/balancer/erc4626_tokens/ethereum/balancer_v3_ethereum_erc4626_token_mapping.sql index b5b3932..5f089a9 100644 --- a/models/_project/balancer/erc4626_tokens/ethereum/balancer_v3_ethereum_erc4626_token_mapping.sql +++ b/models/_project/balancer/erc4626_tokens/ethereum/balancer_v3_ethereum_erc4626_token_mapping.sql @@ -2,7 +2,7 @@ {{ config( - alias = 'balancer_v3_ethereum_erc4626_token_mapping', + alias = 'v3_ethereum_erc4626_token_mapping', materialized = 'table' ) }} diff --git a/models/_project/balancer/erc4626_tokens/ethereum/balancer_v3_ethereum_erc4626_token_prices.sql b/models/_project/balancer/erc4626_tokens/ethereum/balancer_v3_ethereum_erc4626_token_prices.sql index 852f634..de06917 100644 --- a/models/_project/balancer/erc4626_tokens/ethereum/balancer_v3_ethereum_erc4626_token_prices.sql +++ b/models/_project/balancer/erc4626_tokens/ethereum/balancer_v3_ethereum_erc4626_token_prices.sql @@ -2,10 +2,10 @@ {{ config( - alias = 'balancer_v3_ethereum_erc4626_token_prices', + alias = 'v3_ethereum_erc4626_token_prices', materialized = 'incremental', incremental_strategy = 'merge', - unique_key = ['minute', 'wrapped_token'], + unique_key = ['minute', 'wrapped_token', 'underlying_token'], incremental_predicates = ["DBT_INTERNAL_DEST.minute >= date_trunc('day', now() - interval '4' day)"] ) }} @@ -63,6 +63,6 @@ SELECT underlying_token_symbol, decimals, APPROX_PERCENTILE(adjusted_price, 0.5) AS median_price, - LEAD(p.minute, 1, TIMESTAMP '9999-12-31 23:59:59') OVER (PARTITION BY wrappedToken ORDER BY p.minute) AS next_change + LEAD(p.minute, 1, TIMESTAMP '9999-12-31 23:59:59') OVER (PARTITION BY wrappedToken, underlying_token ORDER BY p.minute) AS next_change FROM price_join p GROUP BY 1, 2, 3, 4, 5, 6, 7 diff --git a/models/_project/balancer/erc4626_tokens/gnosis/_schema.yml b/models/_project/balancer/erc4626_tokens/gnosis/_schema.yml index b710622..b998210 100644 --- a/models/_project/balancer/erc4626_tokens/gnosis/_schema.yml +++ b/models/_project/balancer/erc4626_tokens/gnosis/_schema.yml @@ -29,3 +29,4 @@ models: combination_of_columns: - minute - wrapped_token + - underlying_token diff --git a/models/_project/balancer/erc4626_tokens/gnosis/balancer_v3_gnosis_erc4626_token_mapping.sql b/models/_project/balancer/erc4626_tokens/gnosis/balancer_v3_gnosis_erc4626_token_mapping.sql index 5c70e58..4e5ea2c 100644 --- a/models/_project/balancer/erc4626_tokens/gnosis/balancer_v3_gnosis_erc4626_token_mapping.sql +++ b/models/_project/balancer/erc4626_tokens/gnosis/balancer_v3_gnosis_erc4626_token_mapping.sql @@ -2,7 +2,7 @@ {{ config( - alias = 'balancer_v3_gnosis_erc4626_token_mapping', + alias = 'v3_gnosis_erc4626_token_mapping', materialized = 'table' ) }} diff --git a/models/_project/balancer/erc4626_tokens/gnosis/balancer_v3_gnosis_erc4626_token_prices.sql b/models/_project/balancer/erc4626_tokens/gnosis/balancer_v3_gnosis_erc4626_token_prices.sql index 3c673ce..9a17181 100644 --- a/models/_project/balancer/erc4626_tokens/gnosis/balancer_v3_gnosis_erc4626_token_prices.sql +++ b/models/_project/balancer/erc4626_tokens/gnosis/balancer_v3_gnosis_erc4626_token_prices.sql @@ -2,10 +2,10 @@ {{ config( - alias = 'balancer_v3_gnosis_erc4626_token_prices', + alias = 'v3_gnosis_erc4626_token_prices', materialized = 'incremental', incremental_strategy = 'merge', - unique_key = ['minute', 'wrapped_token'], + unique_key = ['minute', 'wrapped_token', 'underlying_token'], incremental_predicates = ["DBT_INTERNAL_DEST.minute >= date_trunc('day', now() - interval '4' day)"] ) }} @@ -63,6 +63,6 @@ SELECT underlying_token_symbol, decimals, APPROX_PERCENTILE(adjusted_price, 0.5) AS median_price, - LEAD(p.minute, 1, TIMESTAMP '9999-12-31 23:59:59') OVER (PARTITION BY wrappedToken ORDER BY p.minute) AS next_change + LEAD(p.minute, 1, TIMESTAMP '9999-12-31 23:59:59') OVER (PARTITION BY wrappedToken, underlying_token ORDER BY p.minute) AS next_change FROM price_join p GROUP BY 1, 2, 3, 4, 5, 6, 7 diff --git a/models/_project/balancer/erc4626_tokens/sonic/_schema.yml b/models/_project/balancer/erc4626_tokens/sonic/_schema.yml new file mode 100644 index 0000000..8fb540d --- /dev/null +++ b/models/_project/balancer/erc4626_tokens/sonic/_schema.yml @@ -0,0 +1,32 @@ +version: 2 + +models: + - name: balancer_v3_sonic_erc4626_token_mapping + meta: + blockchain: sonic + project: balancer_v3 + contributors: gustavotorres + config: + tags: ['sonic', 'erc4626', 'mapping'] + description: > + Mapping between Balancer V3 ERC4626 wrapper tokens and underlying tokens on sonic. + data_tests: + - dbt_utils.unique_combination_of_columns: + combination_of_columns: + - erc4626_token + + - name: balancer_v3_sonic_erc4626_token_prices + meta: + blockchain: sonic + project: balancer_v3 + contributors: gustavotorres + config: + tags: ['sonic', 'erc4626', 'prices'] + description: > + Minute-level ERC4626 prices inferred from wrap/unwrap events and underlying token USD prices on sonic. + data_tests: + - dbt_utils.unique_combination_of_columns: + combination_of_columns: + - minute + - wrapped_token + - underlying_token diff --git a/models/_project/balancer/erc4626_tokens/sonic/balancer_v3_sonic_erc4626_token_mapping.sql b/models/_project/balancer/erc4626_tokens/sonic/balancer_v3_sonic_erc4626_token_mapping.sql new file mode 100644 index 0000000..27c16f0 --- /dev/null +++ b/models/_project/balancer/erc4626_tokens/sonic/balancer_v3_sonic_erc4626_token_mapping.sql @@ -0,0 +1,44 @@ +{{ + config( + alias = 'v3_sonic_erc4626_token_mapping', + materialized = 'table' + ) +}} + +WITH vault_mappings AS ( + SELECT DISTINCT + evt_tx_hash, + wrappedToken AS vault_address, + amountUnderlying + FROM {{ source('beethoven_x_v3_sonic', 'Vault_evt_LiquidityAddedToBuffer') }} AS b + WHERE b.amountUnderlying > 0 +), + +underlying_tokens AS ( + SELECT DISTINCT + vm.vault_address, + t.contract_address AS underlying_address, + vm.evt_tx_hash + FROM vault_mappings vm + JOIN {{ source('erc20_sonic', 'evt_Transfer') }} t + ON t.evt_tx_hash = vm.evt_tx_hash + AND t.contract_address != vm.vault_address + AND t.value = vm.amountUnderlying + AND t.to = 0xba1333333333a1ba1108e8412f11850a5c319ba9 +) + +SELECT DISTINCT + 'sonic' AS blockchain, + ut.vault_address AS erc4626_token, + COALESCE(vault_token.name, 'Unknown Vault') AS erc4626_token_name, + COALESCE(vault_token.symbol, 'Unknown') AS erc4626_token_symbol, + ut.underlying_address AS underlying_token, + COALESCE(underlying_token.symbol, 'Unknown') AS underlying_token_symbol, + vault_token.decimals AS decimals +FROM underlying_tokens ut +LEFT JOIN {{ source('tokens', 'erc20') }} vault_token + ON vault_token.contract_address = ut.vault_address + AND vault_token.blockchain = 'sonic' +LEFT JOIN {{ source('tokens', 'erc20') }} underlying_token + ON underlying_token.contract_address = ut.underlying_address + AND underlying_token.blockchain = 'sonic' diff --git a/models/_project/balancer/erc4626_tokens/sonic/balancer_v3_sonic_erc4626_token_prices.sql b/models/_project/balancer/erc4626_tokens/sonic/balancer_v3_sonic_erc4626_token_prices.sql new file mode 100644 index 0000000..2b22724 --- /dev/null +++ b/models/_project/balancer/erc4626_tokens/sonic/balancer_v3_sonic_erc4626_token_prices.sql @@ -0,0 +1,66 @@ +{{ + config( + alias = 'v3_sonic_erc4626_token_prices', + materialized = 'incremental', + incremental_strategy = 'merge', + unique_key = ['minute', 'wrapped_token', 'underlying_token'], + incremental_predicates = ["DBT_INTERNAL_DEST.minute >= date_trunc('day', now() - interval '4' day)"] + ) +}} + +WITH wrap_unwrap AS ( + SELECT + evt_block_time, + wrappedToken, + CAST(depositedUnderlying AS DOUBLE) / NULLIF(CAST(mintedShares AS DOUBLE), 0) AS ratio + FROM {{ source('beethoven_x_v3_sonic', 'Vault_evt_Wrap') }} + {% if is_incremental() %} + WHERE evt_block_time >= date_trunc('day', now() - interval '4' day) + {% endif %} + + UNION ALL + + SELECT + evt_block_time, + wrappedToken, + CAST(withdrawnUnderlying AS DOUBLE) / NULLIF(CAST(burnedShares AS DOUBLE), 0) AS ratio + FROM {{ source('beethoven_x_v3_sonic', 'Vault_evt_Unwrap') }} + {% if is_incremental() %} + WHERE evt_block_time >= date_trunc('day', now() - interval '4' day) + {% endif %} +), + +price_join AS ( + SELECT + DATE_TRUNC('minute', w.evt_block_time) AS minute, + m.underlying_token, + w.wrappedToken, + m.erc4626_token_symbol, + m.underlying_token_symbol, + m.decimals, + ratio * price * POWER(10, (m.decimals - p.decimals)) AS adjusted_price + FROM wrap_unwrap w + JOIN {{ ref('balancer_v3_sonic_erc4626_token_mapping') }} m + ON m.erc4626_token = w.wrappedToken + JOIN {{ source('prices', 'usd') }} p + ON m.underlying_token = p.contract_address + AND p.blockchain = 'sonic' + AND DATE_TRUNC('minute', w.evt_block_time) = DATE_TRUNC('minute', p.minute) + {% if is_incremental() %} + AND p.minute >= date_trunc('day', now() - interval '4' day) + {% endif %} + WHERE ratio IS NOT NULL +) + +SELECT + p.minute, + 'sonic' AS blockchain, + wrappedToken AS wrapped_token, + underlying_token, + erc4626_token_symbol, + underlying_token_symbol, + decimals, + APPROX_PERCENTILE(adjusted_price, 0.5) AS median_price, + LEAD(p.minute, 1, TIMESTAMP '9999-12-31 23:59:59') OVER (PARTITION BY wrappedToken, underlying_token ORDER BY p.minute) AS next_change +FROM price_join p +GROUP BY 1, 2, 3, 4, 5, 6, 7 diff --git a/models/_project/balancer/liquidity/arbitrum/balancer_v2_arbitrum_liquidity.sql b/models/_project/balancer/liquidity/arbitrum/balancer_v2_arbitrum_liquidity.sql index c70318d..7eb3ebc 100644 --- a/models/_project/balancer/liquidity/arbitrum/balancer_v2_arbitrum_liquidity.sql +++ b/models/_project/balancer/liquidity/arbitrum/balancer_v2_arbitrum_liquidity.sql @@ -3,7 +3,7 @@ {{ config( - alias = 'balancer_v2_arbitrum_liquidity', + alias = 'v2_arbitrum_liquidity', materialized = 'table', ) }} diff --git a/models/_project/balancer/liquidity/arbitrum/balancer_v3_arbitrum_liquidity.sql b/models/_project/balancer/liquidity/arbitrum/balancer_v3_arbitrum_liquidity.sql index 23bb686..d570986 100644 --- a/models/_project/balancer/liquidity/arbitrum/balancer_v3_arbitrum_liquidity.sql +++ b/models/_project/balancer/liquidity/arbitrum/balancer_v3_arbitrum_liquidity.sql @@ -3,7 +3,7 @@ {{ config( - alias = 'balancer_v3_arbitrum_liquidity', + alias = 'v3_arbitrum_liquidity', materialized = 'table', ) }} diff --git a/models/_project/balancer/liquidity/avalanche_c/balancer_v2_avalanche_c_liquidity.sql b/models/_project/balancer/liquidity/avalanche_c/balancer_v2_avalanche_c_liquidity.sql index bca9a2d..a72a734 100644 --- a/models/_project/balancer/liquidity/avalanche_c/balancer_v2_avalanche_c_liquidity.sql +++ b/models/_project/balancer/liquidity/avalanche_c/balancer_v2_avalanche_c_liquidity.sql @@ -3,7 +3,7 @@ {{ config( - alias = 'balancer_v2_avalanche_c_liquidity', + alias = 'v2_avalanche_c_liquidity', materialized = 'table', ) }} diff --git a/models/_project/balancer/liquidity/balancer_liquidity.sql b/models/_project/balancer/liquidity/balancer_liquidity.sql index 3cc736a..5ad59df 100644 --- a/models/_project/balancer/liquidity/balancer_liquidity.sql +++ b/models/_project/balancer/liquidity/balancer_liquidity.sql @@ -1,5 +1,5 @@ {{ config( - alias = 'balancer_liquidity' + alias = 'liquidity' , post_hook='{{ hide_spells() }}' ) }} diff --git a/models/_project/balancer/liquidity/base/balancer_v2_base_liquidity.sql b/models/_project/balancer/liquidity/base/balancer_v2_base_liquidity.sql index 9a9d7a7..d1b7506 100644 --- a/models/_project/balancer/liquidity/base/balancer_v2_base_liquidity.sql +++ b/models/_project/balancer/liquidity/base/balancer_v2_base_liquidity.sql @@ -3,7 +3,7 @@ {{ config( - alias = 'balancer_v2_base_liquidity', + alias = 'v2_base_liquidity', materialized = 'table', ) }} diff --git a/models/_project/balancer/liquidity/base/balancer_v3_base_liquidity.sql b/models/_project/balancer/liquidity/base/balancer_v3_base_liquidity.sql index 5d00cae..f6be724 100644 --- a/models/_project/balancer/liquidity/base/balancer_v3_base_liquidity.sql +++ b/models/_project/balancer/liquidity/base/balancer_v3_base_liquidity.sql @@ -3,7 +3,7 @@ {{ config( - alias = 'balancer_v3_base_liquidity', + alias = 'v3_base_liquidity', materialized = 'table', ) }} diff --git a/models/_project/balancer/liquidity/ethereum/balancer_v1_ethereum_liquidity.sql b/models/_project/balancer/liquidity/ethereum/balancer_v1_ethereum_liquidity.sql index 3d3fcac..92e93c1 100644 --- a/models/_project/balancer/liquidity/ethereum/balancer_v1_ethereum_liquidity.sql +++ b/models/_project/balancer/liquidity/ethereum/balancer_v1_ethereum_liquidity.sql @@ -1,6 +1,6 @@ {{ config( - alias = 'balancer_v1_ethereum_liquidity', + alias = 'v1_ethereum_liquidity', materialized = 'table', ) }} diff --git a/models/_project/balancer/liquidity/ethereum/balancer_v2_ethereum_liquidity.sql b/models/_project/balancer/liquidity/ethereum/balancer_v2_ethereum_liquidity.sql index 050f95d..45d4552 100644 --- a/models/_project/balancer/liquidity/ethereum/balancer_v2_ethereum_liquidity.sql +++ b/models/_project/balancer/liquidity/ethereum/balancer_v2_ethereum_liquidity.sql @@ -3,7 +3,7 @@ {{ config( - alias = 'balancer_v2_ethereum_liquidity', + alias = 'v2_ethereum_liquidity', materialized = 'table', ) }} diff --git a/models/_project/balancer/liquidity/ethereum/balancer_v3_ethereum_liquidity.sql b/models/_project/balancer/liquidity/ethereum/balancer_v3_ethereum_liquidity.sql index 27f0179..b678a46 100644 --- a/models/_project/balancer/liquidity/ethereum/balancer_v3_ethereum_liquidity.sql +++ b/models/_project/balancer/liquidity/ethereum/balancer_v3_ethereum_liquidity.sql @@ -3,7 +3,7 @@ {{ config( - alias = 'balancer_v3_ethereum_liquidity', + alias = 'v3_ethereum_liquidity', materialized = 'table', ) }} diff --git a/models/_project/balancer/liquidity/gnosis/balancer_v2_gnosis_liquidity.sql b/models/_project/balancer/liquidity/gnosis/balancer_v2_gnosis_liquidity.sql index b302dc1..b805e51 100644 --- a/models/_project/balancer/liquidity/gnosis/balancer_v2_gnosis_liquidity.sql +++ b/models/_project/balancer/liquidity/gnosis/balancer_v2_gnosis_liquidity.sql @@ -3,7 +3,7 @@ {{ config( - alias = 'balancer_v2_gnosis_liquidity', + alias = 'v2_gnosis_liquidity', materialized = 'table', ) }} diff --git a/models/_project/balancer/liquidity/gnosis/balancer_v3_gnosis_liquidity.sql b/models/_project/balancer/liquidity/gnosis/balancer_v3_gnosis_liquidity.sql index 26f3925..ebd4dc1 100644 --- a/models/_project/balancer/liquidity/gnosis/balancer_v3_gnosis_liquidity.sql +++ b/models/_project/balancer/liquidity/gnosis/balancer_v3_gnosis_liquidity.sql @@ -3,7 +3,7 @@ {{ config( - alias = 'balancer_v3_gnosis_liquidity', + alias = 'v3_gnosis_liquidity', materialized = 'table', ) }} diff --git a/models/_project/balancer/liquidity/optimism/balancer_v2_optimism_liquidity.sql b/models/_project/balancer/liquidity/optimism/balancer_v2_optimism_liquidity.sql index 57dfcc0..8c7ea9c 100644 --- a/models/_project/balancer/liquidity/optimism/balancer_v2_optimism_liquidity.sql +++ b/models/_project/balancer/liquidity/optimism/balancer_v2_optimism_liquidity.sql @@ -3,7 +3,7 @@ {{ config( - alias = 'balancer_v2_optimism_liquidity', + alias = 'v2_optimism_liquidity', materialized = 'table', ) }} diff --git a/models/_project/balancer/liquidity/polygon/balancer_v2_polygon_liquidity.sql b/models/_project/balancer/liquidity/polygon/balancer_v2_polygon_liquidity.sql index d57ef8b..0ce873c 100644 --- a/models/_project/balancer/liquidity/polygon/balancer_v2_polygon_liquidity.sql +++ b/models/_project/balancer/liquidity/polygon/balancer_v2_polygon_liquidity.sql @@ -3,7 +3,7 @@ {{ config( - alias = 'balancer_v2_polygon_liquidity', + alias = 'v2_polygon_liquidity', materialized = 'table', ) }} diff --git a/models/_project/balancer/liquidity/zkevm/balancer_v2_zkevm_liquidity.sql b/models/_project/balancer/liquidity/zkevm/balancer_v2_zkevm_liquidity.sql index 850dec3..8494ff3 100644 --- a/models/_project/balancer/liquidity/zkevm/balancer_v2_zkevm_liquidity.sql +++ b/models/_project/balancer/liquidity/zkevm/balancer_v2_zkevm_liquidity.sql @@ -3,7 +3,7 @@ {{ config( - alias = 'balancer_v2_zkevm_liquidity', + alias = 'v2_zkevm_liquidity', materialized = 'table', ) }} diff --git a/models/_project/balancer/pools/arbitrum/balancer_arbitrum_pools_tokens_weights.sql b/models/_project/balancer/pools/arbitrum/balancer_arbitrum_pools_tokens_weights.sql index de6a1d8..6efa569 100644 --- a/models/_project/balancer/pools/arbitrum/balancer_arbitrum_pools_tokens_weights.sql +++ b/models/_project/balancer/pools/arbitrum/balancer_arbitrum_pools_tokens_weights.sql @@ -1,5 +1,5 @@ {{ config( - alias = 'balancer_arbitrum_pools_tokens_weights', + alias = 'arbitrum_pools_tokens_weights', ) }} diff --git a/models/_project/balancer/pools/arbitrum/balancer_v2_arbitrum_pools_tokens_weights.sql b/models/_project/balancer/pools/arbitrum/balancer_v2_arbitrum_pools_tokens_weights.sql index 56ee09e..3a27d4c 100644 --- a/models/_project/balancer/pools/arbitrum/balancer_v2_arbitrum_pools_tokens_weights.sql +++ b/models/_project/balancer/pools/arbitrum/balancer_v2_arbitrum_pools_tokens_weights.sql @@ -1,6 +1,6 @@ {{ config( - alias = 'balancer_v2_arbitrum_pools_tokens_weights', + alias = 'v2_arbitrum_pools_tokens_weights', materialized = 'incremental', incremental_strategy = 'merge', unique_key = ['pool_id', 'token_address'] diff --git a/models/_project/balancer/pools/arbitrum/balancer_v3_arbitrum_lbps.sql b/models/_project/balancer/pools/arbitrum/balancer_v3_arbitrum_lbps.sql index 5accc7c..730096c 100644 --- a/models/_project/balancer/pools/arbitrum/balancer_v3_arbitrum_lbps.sql +++ b/models/_project/balancer/pools/arbitrum/balancer_v3_arbitrum_lbps.sql @@ -2,7 +2,7 @@ {{ config( - alias = 'balancer_v3_arbitrum_lbps', + alias = 'v3_arbitrum_lbps', materialized = 'table' ) }} diff --git a/models/_project/balancer/pools/arbitrum/balancer_v3_arbitrum_pools_tokens_weights.sql b/models/_project/balancer/pools/arbitrum/balancer_v3_arbitrum_pools_tokens_weights.sql index 72e95ee..44db81d 100644 --- a/models/_project/balancer/pools/arbitrum/balancer_v3_arbitrum_pools_tokens_weights.sql +++ b/models/_project/balancer/pools/arbitrum/balancer_v3_arbitrum_pools_tokens_weights.sql @@ -1,6 +1,6 @@ {{ config( - alias = 'balancer_v3_arbitrum_pools_tokens_weights', + alias = 'v3_arbitrum_pools_tokens_weights', materialized = 'incremental', incremental_strategy = 'merge', unique_key = ['pool_id', 'token_address'] diff --git a/models/_project/balancer/pools/avalanche_c/balancer_avalanche_c_pools_tokens_weights.sql b/models/_project/balancer/pools/avalanche_c/balancer_avalanche_c_pools_tokens_weights.sql index 80985e9..7ff6cac 100644 --- a/models/_project/balancer/pools/avalanche_c/balancer_avalanche_c_pools_tokens_weights.sql +++ b/models/_project/balancer/pools/avalanche_c/balancer_avalanche_c_pools_tokens_weights.sql @@ -1,5 +1,5 @@ {{ config( - alias = 'balancer_avalanche_c_pools_tokens_weights', + alias = 'avalanche_c_pools_tokens_weights', ) }} diff --git a/models/_project/balancer/pools/avalanche_c/balancer_v2_avalanche_c_pools_tokens_weights.sql b/models/_project/balancer/pools/avalanche_c/balancer_v2_avalanche_c_pools_tokens_weights.sql index 2c0240a..fd4cff3 100644 --- a/models/_project/balancer/pools/avalanche_c/balancer_v2_avalanche_c_pools_tokens_weights.sql +++ b/models/_project/balancer/pools/avalanche_c/balancer_v2_avalanche_c_pools_tokens_weights.sql @@ -1,6 +1,6 @@ {{ config( - alias = 'balancer_v2_avalanche_c_pools_tokens_weights', + alias = 'v2_avalanche_c_pools_tokens_weights', materialized = 'incremental', incremental_strategy = 'merge', unique_key = ['pool_id', 'token_address'] diff --git a/models/_project/balancer/pools/balancer_pools_tokens_weights.sql b/models/_project/balancer/pools/balancer_pools_tokens_weights.sql index 5b0af6c..6248575 100644 --- a/models/_project/balancer/pools/balancer_pools_tokens_weights.sql +++ b/models/_project/balancer/pools/balancer_pools_tokens_weights.sql @@ -1,5 +1,5 @@ {{ config( - alias = 'balancer_pools_tokens_weights' + alias = 'pools_tokens_weights' , post_hook='{{ hide_spells() }}' ) }} diff --git a/models/_project/balancer/pools/balancer_v3_lbps.sql b/models/_project/balancer/pools/balancer_v3_lbps.sql index 178504b..eba0a01 100644 --- a/models/_project/balancer/pools/balancer_v3_lbps.sql +++ b/models/_project/balancer/pools/balancer_v3_lbps.sql @@ -1,5 +1,5 @@ {{ config( - alias = 'balancer_v3_lbps' + alias = 'v3_lbps' , post_hook='{{ hide_spells() }}' ) }} diff --git a/models/_project/balancer/pools/base/balancer_base_pools_tokens_weights.sql b/models/_project/balancer/pools/base/balancer_base_pools_tokens_weights.sql index c286d6a..22b5e4f 100644 --- a/models/_project/balancer/pools/base/balancer_base_pools_tokens_weights.sql +++ b/models/_project/balancer/pools/base/balancer_base_pools_tokens_weights.sql @@ -1,5 +1,5 @@ {{ config( - alias = 'balancer_base_pools_tokens_weights', + alias = 'base_pools_tokens_weights', ) }} diff --git a/models/_project/balancer/pools/base/balancer_v2_base_pools_tokens_weights.sql b/models/_project/balancer/pools/base/balancer_v2_base_pools_tokens_weights.sql index 63f88f8..bd6a14c 100644 --- a/models/_project/balancer/pools/base/balancer_v2_base_pools_tokens_weights.sql +++ b/models/_project/balancer/pools/base/balancer_v2_base_pools_tokens_weights.sql @@ -1,6 +1,6 @@ {{ config( - alias = 'balancer_v2_base_pools_tokens_weights', + alias = 'v2_base_pools_tokens_weights', materialized = 'incremental', incremental_strategy = 'merge', unique_key = ['pool_id', 'token_address'] diff --git a/models/_project/balancer/pools/base/balancer_v3_base_lbps.sql b/models/_project/balancer/pools/base/balancer_v3_base_lbps.sql index 721a36e..df14c9b 100644 --- a/models/_project/balancer/pools/base/balancer_v3_base_lbps.sql +++ b/models/_project/balancer/pools/base/balancer_v3_base_lbps.sql @@ -2,7 +2,7 @@ {{ config( - alias = 'balancer_v3_base_lbps', + alias = 'v3_base_lbps', materialized = 'table' ) }} diff --git a/models/_project/balancer/pools/base/balancer_v3_base_pools_tokens_weights.sql b/models/_project/balancer/pools/base/balancer_v3_base_pools_tokens_weights.sql index 9291fb2..577bff4 100644 --- a/models/_project/balancer/pools/base/balancer_v3_base_pools_tokens_weights.sql +++ b/models/_project/balancer/pools/base/balancer_v3_base_pools_tokens_weights.sql @@ -1,6 +1,6 @@ {{ config( - alias = 'balancer_v3_base_pools_tokens_weights', + alias = 'v3_base_pools_tokens_weights', materialized = 'incremental', incremental_strategy = 'merge', unique_key = ['pool_id', 'token_address'] diff --git a/models/_project/balancer/pools/ethereum/balancer_ethereum_pools_tokens_weights.sql b/models/_project/balancer/pools/ethereum/balancer_ethereum_pools_tokens_weights.sql index 0d66c89..fdebf13 100644 --- a/models/_project/balancer/pools/ethereum/balancer_ethereum_pools_tokens_weights.sql +++ b/models/_project/balancer/pools/ethereum/balancer_ethereum_pools_tokens_weights.sql @@ -1,5 +1,5 @@ {{ config( - alias = 'balancer_ethereum_pools_tokens_weights', + alias = 'ethereum_pools_tokens_weights', ) }} diff --git a/models/_project/balancer/pools/ethereum/balancer_v1_ethereum_pools_tokens_weights.sql b/models/_project/balancer/pools/ethereum/balancer_v1_ethereum_pools_tokens_weights.sql index 7808aad..8c2251c 100644 --- a/models/_project/balancer/pools/ethereum/balancer_v1_ethereum_pools_tokens_weights.sql +++ b/models/_project/balancer/pools/ethereum/balancer_v1_ethereum_pools_tokens_weights.sql @@ -1,6 +1,6 @@ {{ config( - alias = 'balancer_v1_ethereum_pools_tokens_weights', + alias = 'v1_ethereum_pools_tokens_weights', materialized = 'incremental', incremental_strategy = 'merge', unique_key = ['pool_id', 'token_address'] diff --git a/models/_project/balancer/pools/ethereum/balancer_v2_ethereum_pools_tokens_weights.sql b/models/_project/balancer/pools/ethereum/balancer_v2_ethereum_pools_tokens_weights.sql index c0ecb86..65f137b 100644 --- a/models/_project/balancer/pools/ethereum/balancer_v2_ethereum_pools_tokens_weights.sql +++ b/models/_project/balancer/pools/ethereum/balancer_v2_ethereum_pools_tokens_weights.sql @@ -1,6 +1,6 @@ {{ config( - alias = 'balancer_v2_ethereum_pools_tokens_weights', + alias = 'v2_ethereum_pools_tokens_weights', materialized = 'incremental', incremental_strategy = 'merge', unique_key = ['pool_id', 'token_address'] diff --git a/models/_project/balancer/pools/ethereum/balancer_v3_ethereum_lbps.sql b/models/_project/balancer/pools/ethereum/balancer_v3_ethereum_lbps.sql index f39bc19..d215a23 100644 --- a/models/_project/balancer/pools/ethereum/balancer_v3_ethereum_lbps.sql +++ b/models/_project/balancer/pools/ethereum/balancer_v3_ethereum_lbps.sql @@ -2,7 +2,7 @@ {{ config( - alias = 'balancer_v3_ethereum_lbps', + alias = 'v3_ethereum_lbps', materialized = 'table' ) }} diff --git a/models/_project/balancer/pools/ethereum/balancer_v3_ethereum_pools_tokens_weights.sql b/models/_project/balancer/pools/ethereum/balancer_v3_ethereum_pools_tokens_weights.sql index b32b3e5..1ef9d63 100644 --- a/models/_project/balancer/pools/ethereum/balancer_v3_ethereum_pools_tokens_weights.sql +++ b/models/_project/balancer/pools/ethereum/balancer_v3_ethereum_pools_tokens_weights.sql @@ -1,6 +1,6 @@ {{ config( - alias = 'balancer_v3_ethereum_pools_tokens_weights', + alias = 'v3_ethereum_pools_tokens_weights', materialized = 'incremental', incremental_strategy = 'merge', unique_key = ['pool_id', 'token_address'] diff --git a/models/_project/balancer/pools/gnosis/balancer_gnosis_pools_tokens_weights.sql b/models/_project/balancer/pools/gnosis/balancer_gnosis_pools_tokens_weights.sql index d5ab07e..d029640 100644 --- a/models/_project/balancer/pools/gnosis/balancer_gnosis_pools_tokens_weights.sql +++ b/models/_project/balancer/pools/gnosis/balancer_gnosis_pools_tokens_weights.sql @@ -1,5 +1,5 @@ {{ config( - alias = 'balancer_gnosis_pools_tokens_weights', + alias = 'gnosis_pools_tokens_weights', ) }} diff --git a/models/_project/balancer/pools/gnosis/balancer_v2_gnosis_pools_tokens_weights.sql b/models/_project/balancer/pools/gnosis/balancer_v2_gnosis_pools_tokens_weights.sql index 584ac4b..334af24 100644 --- a/models/_project/balancer/pools/gnosis/balancer_v2_gnosis_pools_tokens_weights.sql +++ b/models/_project/balancer/pools/gnosis/balancer_v2_gnosis_pools_tokens_weights.sql @@ -1,6 +1,6 @@ {{ config( - alias = 'balancer_v2_gnosis_pools_tokens_weights', + alias = 'v2_gnosis_pools_tokens_weights', materialized = 'incremental', incremental_strategy = 'merge', unique_key = ['pool_id', 'token_address'] diff --git a/models/_project/balancer/pools/gnosis/balancer_v3_gnosis_lbps.sql b/models/_project/balancer/pools/gnosis/balancer_v3_gnosis_lbps.sql index c9673d7..11e100f 100644 --- a/models/_project/balancer/pools/gnosis/balancer_v3_gnosis_lbps.sql +++ b/models/_project/balancer/pools/gnosis/balancer_v3_gnosis_lbps.sql @@ -2,7 +2,7 @@ {{ config( - alias = 'balancer_v3_gnosis_lbps', + alias = 'v3_gnosis_lbps', materialized = 'table' ) }} diff --git a/models/_project/balancer/pools/gnosis/balancer_v3_gnosis_pools_tokens_weights.sql b/models/_project/balancer/pools/gnosis/balancer_v3_gnosis_pools_tokens_weights.sql index aa989a5..87d05d3 100644 --- a/models/_project/balancer/pools/gnosis/balancer_v3_gnosis_pools_tokens_weights.sql +++ b/models/_project/balancer/pools/gnosis/balancer_v3_gnosis_pools_tokens_weights.sql @@ -1,6 +1,6 @@ {{ config( - alias = 'balancer_v3_gnosis_pools_tokens_weights', + alias = 'v3_gnosis_pools_tokens_weights', materialized = 'incremental', incremental_strategy = 'merge', unique_key = ['pool_id', 'token_address'] diff --git a/models/_project/balancer/pools/optimism/balancer_optimism_pools_tokens_weights.sql b/models/_project/balancer/pools/optimism/balancer_optimism_pools_tokens_weights.sql index 9316ad8..bb97f4e 100644 --- a/models/_project/balancer/pools/optimism/balancer_optimism_pools_tokens_weights.sql +++ b/models/_project/balancer/pools/optimism/balancer_optimism_pools_tokens_weights.sql @@ -1,5 +1,5 @@ {{ config( - alias = 'balancer_optimism_pools_tokens_weights' + alias = 'optimism_pools_tokens_weights' ) }} diff --git a/models/_project/balancer/pools/optimism/balancer_v2_optimism_pools_tokens_weights.sql b/models/_project/balancer/pools/optimism/balancer_v2_optimism_pools_tokens_weights.sql index 8782735..93adeac 100644 --- a/models/_project/balancer/pools/optimism/balancer_v2_optimism_pools_tokens_weights.sql +++ b/models/_project/balancer/pools/optimism/balancer_v2_optimism_pools_tokens_weights.sql @@ -1,6 +1,6 @@ {{ config( - alias = 'balancer_v2_optimism_pools_tokens_weights', + alias = 'v2_optimism_pools_tokens_weights', materialized = 'incremental', incremental_strategy = 'merge', unique_key = ['pool_id', 'token_address'] diff --git a/models/_project/balancer/pools/polygon/balancer_polygon_pools_tokens_weights.sql b/models/_project/balancer/pools/polygon/balancer_polygon_pools_tokens_weights.sql index 79f8cf2..6bba390 100644 --- a/models/_project/balancer/pools/polygon/balancer_polygon_pools_tokens_weights.sql +++ b/models/_project/balancer/pools/polygon/balancer_polygon_pools_tokens_weights.sql @@ -1,5 +1,5 @@ {{ config( - alias = 'balancer_polygon_pools_tokens_weights', + alias = 'polygon_pools_tokens_weights', ) }} diff --git a/models/_project/balancer/pools/polygon/balancer_v2_polygon_pools_tokens_weights.sql b/models/_project/balancer/pools/polygon/balancer_v2_polygon_pools_tokens_weights.sql index a42fc7c..ef2aa26 100644 --- a/models/_project/balancer/pools/polygon/balancer_v2_polygon_pools_tokens_weights.sql +++ b/models/_project/balancer/pools/polygon/balancer_v2_polygon_pools_tokens_weights.sql @@ -1,6 +1,6 @@ {{ config( - alias = 'balancer_v2_polygon_pools_tokens_weights', + alias = 'v2_polygon_pools_tokens_weights', materialized = 'incremental', incremental_strategy = 'merge', unique_key = ['pool_id', 'token_address'] diff --git a/models/_project/balancer/pools/pools_fees/_schema.yml b/models/_project/balancer/pools/pools_fees/_schema.yml new file mode 100644 index 0000000..d0a842e --- /dev/null +++ b/models/_project/balancer/pools/pools_fees/_schema.yml @@ -0,0 +1,4 @@ +version: 2 + +models: + - name: balancer_v3_pools_fees diff --git a/models/_project/balancer/pools/pools_fees/arbitrum/_schema.yml b/models/_project/balancer/pools/pools_fees/arbitrum/_schema.yml new file mode 100644 index 0000000..36bf7c4 --- /dev/null +++ b/models/_project/balancer/pools/pools_fees/arbitrum/_schema.yml @@ -0,0 +1,4 @@ +version: 2 + +models: + - name: balancer_v3_arbitrum_pools_fees diff --git a/models/_project/balancer/pools/pools_fees/arbitrum/balancer_v3_arbitrum_pools_fees.sql b/models/_project/balancer/pools/pools_fees/arbitrum/balancer_v3_arbitrum_pools_fees.sql new file mode 100644 index 0000000..8c3901c --- /dev/null +++ b/models/_project/balancer/pools/pools_fees/arbitrum/balancer_v3_arbitrum_pools_fees.sql @@ -0,0 +1,11 @@ +{{ + config( + alias = 'v3_arbitrum_pools_fees', + materialized = 'incremental', + incremental_strategy = 'merge', + unique_key = ['block_number', 'tx_hash', 'index'], + incremental_predicates = [incremental_predicate('DBT_INTERNAL_DEST.block_time')] + ) +}} + +{{ balancer_v3_pools_fees_macro('arbitrum', 'balancer_v3_arbitrum') }} diff --git a/models/_project/balancer/pools/pools_fees/avalanche_c/_schema.yml b/models/_project/balancer/pools/pools_fees/avalanche_c/_schema.yml new file mode 100644 index 0000000..0c36a54 --- /dev/null +++ b/models/_project/balancer/pools/pools_fees/avalanche_c/_schema.yml @@ -0,0 +1,4 @@ +version: 2 + +models: + - name: balancer_v3_avalanche_c_pools_fees diff --git a/models/_project/balancer/pools/pools_fees/avalanche_c/balancer_v3_avalanche_c_pools_fees.sql b/models/_project/balancer/pools/pools_fees/avalanche_c/balancer_v3_avalanche_c_pools_fees.sql new file mode 100644 index 0000000..5fd584a --- /dev/null +++ b/models/_project/balancer/pools/pools_fees/avalanche_c/balancer_v3_avalanche_c_pools_fees.sql @@ -0,0 +1,11 @@ +{{ + config( + alias = 'v3_avalanche_c_pools_fees', + materialized = 'incremental', + incremental_strategy = 'merge', + unique_key = ['block_number', 'tx_hash', 'index'], + incremental_predicates = [incremental_predicate('DBT_INTERNAL_DEST.block_time')] + ) +}} + +{{ balancer_v3_pools_fees_macro('avalanche_c', 'balancer_v3_avalanche_c') }} diff --git a/models/_project/balancer/pools/pools_fees/balancer_v3_pools_fees.sql b/models/_project/balancer/pools/pools_fees/balancer_v3_pools_fees.sql new file mode 100644 index 0000000..800d751 --- /dev/null +++ b/models/_project/balancer/pools/pools_fees/balancer_v3_pools_fees.sql @@ -0,0 +1,37 @@ +{{ config( + alias = 'v3_pools_fees' + , materialized = 'view' + , post_hook='{{ hide_spells() }}' + ) +}} + +{% set balancer_models = [ + ref('balancer_v3_ethereum_pools_fees'), + ref('balancer_v3_gnosis_pools_fees'), + ref('balancer_v3_arbitrum_pools_fees'), + ref('balancer_v3_base_pools_fees'), + ref('balancer_v3_avalanche_c_pools_fees'), + ref('balancer_v3_hyperevm_pools_fees'), + ref('balancer_v3_monad_pools_fees') +] %} + +SELECT * +FROM ( + {% for model in balancer_models %} + SELECT + blockchain + , version + , pool_address + , pool_id + , tx_hash + , tx_index + , index + , block_time + , block_number + , swap_fee_percentage + FROM {{ model }} + {% if not loop.last %} + UNION ALL + {% endif %} + {% endfor %} +) diff --git a/models/_project/balancer/pools/pools_fees/base/_schema.yml b/models/_project/balancer/pools/pools_fees/base/_schema.yml new file mode 100644 index 0000000..a057e4a --- /dev/null +++ b/models/_project/balancer/pools/pools_fees/base/_schema.yml @@ -0,0 +1,4 @@ +version: 2 + +models: + - name: balancer_v3_base_pools_fees diff --git a/models/_project/balancer/pools/pools_fees/base/balancer_v3_base_pools_fees.sql b/models/_project/balancer/pools/pools_fees/base/balancer_v3_base_pools_fees.sql new file mode 100644 index 0000000..7de8d5f --- /dev/null +++ b/models/_project/balancer/pools/pools_fees/base/balancer_v3_base_pools_fees.sql @@ -0,0 +1,11 @@ +{{ + config( + alias = 'v3_base_pools_fees', + materialized = 'incremental', + incremental_strategy = 'merge', + unique_key = ['block_number', 'tx_hash', 'index'], + incremental_predicates = [incremental_predicate('DBT_INTERNAL_DEST.block_time')] + ) +}} + +{{ balancer_v3_pools_fees_macro('base', 'balancer_v3_base') }} diff --git a/models/_project/balancer/pools/pools_fees/ethereum/_schema.yml b/models/_project/balancer/pools/pools_fees/ethereum/_schema.yml new file mode 100644 index 0000000..ec2fdc2 --- /dev/null +++ b/models/_project/balancer/pools/pools_fees/ethereum/_schema.yml @@ -0,0 +1,4 @@ +version: 2 + +models: + - name: balancer_v3_ethereum_pools_fees diff --git a/models/_project/balancer/pools/pools_fees/ethereum/balancer_v3_ethereum_pools_fees.sql b/models/_project/balancer/pools/pools_fees/ethereum/balancer_v3_ethereum_pools_fees.sql new file mode 100644 index 0000000..5dcdf25 --- /dev/null +++ b/models/_project/balancer/pools/pools_fees/ethereum/balancer_v3_ethereum_pools_fees.sql @@ -0,0 +1,11 @@ +{{ + config( + alias = 'v3_ethereum_pools_fees', + materialized = 'incremental', + incremental_strategy = 'merge', + unique_key = ['block_number', 'tx_hash', 'index'], + incremental_predicates = [incremental_predicate('DBT_INTERNAL_DEST.block_time')] + ) +}} + +{{ balancer_v3_pools_fees_macro('ethereum', 'balancer_v3_ethereum') }} diff --git a/models/_project/balancer/pools/pools_fees/gnosis/_schema.yml b/models/_project/balancer/pools/pools_fees/gnosis/_schema.yml new file mode 100644 index 0000000..17d5736 --- /dev/null +++ b/models/_project/balancer/pools/pools_fees/gnosis/_schema.yml @@ -0,0 +1,4 @@ +version: 2 + +models: + - name: balancer_v3_gnosis_pools_fees diff --git a/models/_project/balancer/pools/pools_fees/gnosis/balancer_v3_gnosis_pools_fees.sql b/models/_project/balancer/pools/pools_fees/gnosis/balancer_v3_gnosis_pools_fees.sql new file mode 100644 index 0000000..f2d1f9b --- /dev/null +++ b/models/_project/balancer/pools/pools_fees/gnosis/balancer_v3_gnosis_pools_fees.sql @@ -0,0 +1,11 @@ +{{ + config( + alias = 'v3_gnosis_pools_fees', + materialized = 'incremental', + incremental_strategy = 'merge', + unique_key = ['block_number', 'tx_hash', 'index'], + incremental_predicates = [incremental_predicate('DBT_INTERNAL_DEST.block_time')] + ) +}} + +{{ balancer_v3_pools_fees_macro('gnosis', 'balancer_v3_gnosis') }} diff --git a/models/_project/balancer/pools/pools_fees/hyperevm/_schema.yml b/models/_project/balancer/pools/pools_fees/hyperevm/_schema.yml new file mode 100644 index 0000000..773aea7 --- /dev/null +++ b/models/_project/balancer/pools/pools_fees/hyperevm/_schema.yml @@ -0,0 +1,4 @@ +version: 2 + +models: + - name: balancer_v3_hyperevm_pools_fees diff --git a/models/_project/balancer/pools/pools_fees/hyperevm/balancer_v3_hyperevm_pools_fees.sql b/models/_project/balancer/pools/pools_fees/hyperevm/balancer_v3_hyperevm_pools_fees.sql new file mode 100644 index 0000000..93191f8 --- /dev/null +++ b/models/_project/balancer/pools/pools_fees/hyperevm/balancer_v3_hyperevm_pools_fees.sql @@ -0,0 +1,11 @@ +{{ + config( + alias = 'v3_hyperevm_pools_fees', + materialized = 'incremental', + incremental_strategy = 'merge', + unique_key = ['block_number', 'tx_hash', 'index'], + incremental_predicates = [incremental_predicate('DBT_INTERNAL_DEST.block_time')] + ) +}} + +{{ balancer_v3_pools_fees_macro('hyperevm', 'balancer_v3_hyperevm') }} diff --git a/models/_project/balancer/pools/pools_fees/monad/_schema.yml b/models/_project/balancer/pools/pools_fees/monad/_schema.yml new file mode 100644 index 0000000..842dbcd --- /dev/null +++ b/models/_project/balancer/pools/pools_fees/monad/_schema.yml @@ -0,0 +1,4 @@ +version: 2 + +models: + - name: balancer_v3_monad_pools_fees diff --git a/models/_project/balancer/pools/pools_fees/monad/balancer_v3_monad_pools_fees.sql b/models/_project/balancer/pools/pools_fees/monad/balancer_v3_monad_pools_fees.sql new file mode 100644 index 0000000..e617b5a --- /dev/null +++ b/models/_project/balancer/pools/pools_fees/monad/balancer_v3_monad_pools_fees.sql @@ -0,0 +1,11 @@ +{{ + config( + alias = 'v3_monad_pools_fees', + materialized = 'incremental', + incremental_strategy = 'merge', + unique_key = ['block_number', 'tx_hash', 'index'], + incremental_predicates = [incremental_predicate('DBT_INTERNAL_DEST.block_time')] + ) +}} + +{{ balancer_v3_pools_fees_macro('monad', 'balancer_v3_monad') }} diff --git a/models/_project/balancer/pools/zkevm/balancer_v2_zkevm_pools_tokens_weights.sql b/models/_project/balancer/pools/zkevm/balancer_v2_zkevm_pools_tokens_weights.sql index ee9f2cc..35aca0e 100644 --- a/models/_project/balancer/pools/zkevm/balancer_v2_zkevm_pools_tokens_weights.sql +++ b/models/_project/balancer/pools/zkevm/balancer_v2_zkevm_pools_tokens_weights.sql @@ -1,6 +1,6 @@ {{ config( - alias = 'balancer_v2_zkevm_pools_tokens_weights', + alias = 'v2_zkevm_pools_tokens_weights', materialized = 'incremental', incremental_strategy = 'merge', unique_key = ['pool_id', 'token_address'] diff --git a/models/_project/balancer/pools/zkevm/balancer_zkevm_pools_tokens_weights.sql b/models/_project/balancer/pools/zkevm/balancer_zkevm_pools_tokens_weights.sql index cdc274e..ceca681 100644 --- a/models/_project/balancer/pools/zkevm/balancer_zkevm_pools_tokens_weights.sql +++ b/models/_project/balancer/pools/zkevm/balancer_zkevm_pools_tokens_weights.sql @@ -1,5 +1,5 @@ {{ config( - alias = 'balancer_zkevm_pools_tokens_weights', + alias = 'zkevm_pools_tokens_weights', ) }} diff --git a/models/_project/balancer/protocol_fee/arbitrum/balancer_v3_arbitrum_protocol_fee.sql b/models/_project/balancer/protocol_fee/arbitrum/balancer_v3_arbitrum_protocol_fee.sql index d42c040..85a8301 100644 --- a/models/_project/balancer/protocol_fee/arbitrum/balancer_v3_arbitrum_protocol_fee.sql +++ b/models/_project/balancer/protocol_fee/arbitrum/balancer_v3_arbitrum_protocol_fee.sql @@ -2,7 +2,7 @@ {{ config( - alias = 'balancer_v3_arbitrum_protocol_fee', + alias = 'v3_arbitrum_protocol_fee', materialized = 'table' ) }} diff --git a/models/_project/balancer/protocol_fee/balancer_protocol_fee.sql b/models/_project/balancer/protocol_fee/balancer_protocol_fee.sql index e706c34..22fac0a 100644 --- a/models/_project/balancer/protocol_fee/balancer_protocol_fee.sql +++ b/models/_project/balancer/protocol_fee/balancer_protocol_fee.sql @@ -1,5 +1,5 @@ {{ config( - alias = 'balancer_protocol_fee' + alias = 'protocol_fee' , post_hook='{{ hide_spells() }}' ) }} diff --git a/models/_project/balancer/protocol_fee/base/balancer_v3_base_protocol_fee.sql b/models/_project/balancer/protocol_fee/base/balancer_v3_base_protocol_fee.sql index 892c0e3..769d34b 100644 --- a/models/_project/balancer/protocol_fee/base/balancer_v3_base_protocol_fee.sql +++ b/models/_project/balancer/protocol_fee/base/balancer_v3_base_protocol_fee.sql @@ -2,7 +2,7 @@ {{ config( - alias = 'balancer_v3_base_protocol_fee', + alias = 'v3_base_protocol_fee', materialized = 'table' ) }} diff --git a/models/_project/balancer/protocol_fee/ethereum/balancer_v3_ethereum_protocol_fee.sql b/models/_project/balancer/protocol_fee/ethereum/balancer_v3_ethereum_protocol_fee.sql index 5b1344c..ee8e5c5 100644 --- a/models/_project/balancer/protocol_fee/ethereum/balancer_v3_ethereum_protocol_fee.sql +++ b/models/_project/balancer/protocol_fee/ethereum/balancer_v3_ethereum_protocol_fee.sql @@ -2,7 +2,7 @@ {{ config( - alias = 'balancer_v3_ethereum_protocol_fee', + alias = 'v3_ethereum_protocol_fee', materialized = 'table' ) }} diff --git a/models/_project/balancer/protocol_fee/gnosis/balancer_v3_gnosis_protocol_fee.sql b/models/_project/balancer/protocol_fee/gnosis/balancer_v3_gnosis_protocol_fee.sql index cb478dc..e222c8b 100644 --- a/models/_project/balancer/protocol_fee/gnosis/balancer_v3_gnosis_protocol_fee.sql +++ b/models/_project/balancer/protocol_fee/gnosis/balancer_v3_gnosis_protocol_fee.sql @@ -2,7 +2,7 @@ {{ config( - alias = 'balancer_v3_gnosis_protocol_fee', + alias = 'v3_gnosis_protocol_fee', materialized = 'table' ) }} diff --git a/models/_project/balancer_cowswap_amm/arbitrum/balancer_cowswap_amm_arbitrum_balances.sql b/models/_project/balancer_cowswap_amm/arbitrum/balancer_cowswap_amm_arbitrum_balances.sql index 768993c..e25b1da 100644 --- a/models/_project/balancer_cowswap_amm/arbitrum/balancer_cowswap_amm_arbitrum_balances.sql +++ b/models/_project/balancer_cowswap_amm/arbitrum/balancer_cowswap_amm_arbitrum_balances.sql @@ -1,6 +1,6 @@ {{ config( - alias = 'balancer_cowswap_amm_arbitrum_balances', + alias = 'cowswap_amm_arbitrum_balances', materialized = 'table', ) }} diff --git a/models/_project/balancer_cowswap_amm/arbitrum/balancer_cowswap_amm_arbitrum_liquidity.sql b/models/_project/balancer_cowswap_amm/arbitrum/balancer_cowswap_amm_arbitrum_liquidity.sql index abe8d95..c4c1415 100644 --- a/models/_project/balancer_cowswap_amm/arbitrum/balancer_cowswap_amm_arbitrum_liquidity.sql +++ b/models/_project/balancer_cowswap_amm/arbitrum/balancer_cowswap_amm_arbitrum_liquidity.sql @@ -2,7 +2,7 @@ {{ config( - alias = 'balancer_cowswap_amm_arbitrum_liquidity', + alias = 'cowswap_amm_arbitrum_liquidity', materialized = 'table', ) }} diff --git a/models/_project/balancer_cowswap_amm/balancer_cowswap_amm_balances.sql b/models/_project/balancer_cowswap_amm/balancer_cowswap_amm_balances.sql index 66c783b..33ab47b 100644 --- a/models/_project/balancer_cowswap_amm/balancer_cowswap_amm_balances.sql +++ b/models/_project/balancer_cowswap_amm/balancer_cowswap_amm_balances.sql @@ -1,6 +1,6 @@ {{ config( - alias = 'balancer_cowswap_amm_balances', + alias = 'cowswap_amm_balances', materialized = 'view' ) }} diff --git a/models/_project/balancer_cowswap_amm/balancer_cowswap_amm_liquidity.sql b/models/_project/balancer_cowswap_amm/balancer_cowswap_amm_liquidity.sql index e9f764b..21de080 100644 --- a/models/_project/balancer_cowswap_amm/balancer_cowswap_amm_liquidity.sql +++ b/models/_project/balancer_cowswap_amm/balancer_cowswap_amm_liquidity.sql @@ -1,6 +1,6 @@ {{ config( - alias = 'balancer_cowswap_amm_liquidity', + alias = 'cowswap_amm_liquidity', materialized = 'view' ) }} diff --git a/models/_project/balancer_cowswap_amm/base/balancer_cowswap_amm_base_balances.sql b/models/_project/balancer_cowswap_amm/base/balancer_cowswap_amm_base_balances.sql index fc21cbb..6fc5d5b 100644 --- a/models/_project/balancer_cowswap_amm/base/balancer_cowswap_amm_base_balances.sql +++ b/models/_project/balancer_cowswap_amm/base/balancer_cowswap_amm_base_balances.sql @@ -1,6 +1,6 @@ {{ config( - alias = 'balancer_cowswap_amm_base_balances', + alias = 'cowswap_amm_base_balances', materialized = 'table', ) }} diff --git a/models/_project/balancer_cowswap_amm/base/balancer_cowswap_amm_base_liquidity.sql b/models/_project/balancer_cowswap_amm/base/balancer_cowswap_amm_base_liquidity.sql index b75dd2a..33e433a 100644 --- a/models/_project/balancer_cowswap_amm/base/balancer_cowswap_amm_base_liquidity.sql +++ b/models/_project/balancer_cowswap_amm/base/balancer_cowswap_amm_base_liquidity.sql @@ -2,7 +2,7 @@ {{ config( - alias = 'balancer_cowswap_amm_base_liquidity', + alias = 'cowswap_amm_base_liquidity', materialized = 'table', ) }} diff --git a/models/_project/balancer_cowswap_amm/ethereum/balancer_cowswap_amm_ethereum_balances.sql b/models/_project/balancer_cowswap_amm/ethereum/balancer_cowswap_amm_ethereum_balances.sql index 97d9025..6a36a44 100644 --- a/models/_project/balancer_cowswap_amm/ethereum/balancer_cowswap_amm_ethereum_balances.sql +++ b/models/_project/balancer_cowswap_amm/ethereum/balancer_cowswap_amm_ethereum_balances.sql @@ -1,6 +1,6 @@ {{ config( - alias = 'balancer_cowswap_amm_ethereum_balances', + alias = 'cowswap_amm_ethereum_balances', materialized = 'table', ) }} diff --git a/models/_project/balancer_cowswap_amm/ethereum/balancer_cowswap_amm_ethereum_liquidity.sql b/models/_project/balancer_cowswap_amm/ethereum/balancer_cowswap_amm_ethereum_liquidity.sql index 499abd6..c2dd34f 100644 --- a/models/_project/balancer_cowswap_amm/ethereum/balancer_cowswap_amm_ethereum_liquidity.sql +++ b/models/_project/balancer_cowswap_amm/ethereum/balancer_cowswap_amm_ethereum_liquidity.sql @@ -2,7 +2,7 @@ {{ config( - alias = 'balancer_cowswap_amm_ethereum_liquidity', + alias = 'cowswap_amm_ethereum_liquidity', materialized = 'table', ) }} diff --git a/models/_project/balancer_cowswap_amm/gnosis/balancer_cowswap_amm_gnosis_balances.sql b/models/_project/balancer_cowswap_amm/gnosis/balancer_cowswap_amm_gnosis_balances.sql index b88a1de..2422473 100644 --- a/models/_project/balancer_cowswap_amm/gnosis/balancer_cowswap_amm_gnosis_balances.sql +++ b/models/_project/balancer_cowswap_amm/gnosis/balancer_cowswap_amm_gnosis_balances.sql @@ -1,6 +1,6 @@ {{ config( - alias = 'balancer_cowswap_amm_gnosis_balances', + alias = 'cowswap_amm_gnosis_balances', materialized = 'table', ) }} diff --git a/models/_project/balancer_cowswap_amm/gnosis/balancer_cowswap_amm_gnosis_liquidity.sql b/models/_project/balancer_cowswap_amm/gnosis/balancer_cowswap_amm_gnosis_liquidity.sql index a8ae129..1e6e540 100644 --- a/models/_project/balancer_cowswap_amm/gnosis/balancer_cowswap_amm_gnosis_liquidity.sql +++ b/models/_project/balancer_cowswap_amm/gnosis/balancer_cowswap_amm_gnosis_liquidity.sql @@ -2,7 +2,7 @@ {{ config( - alias = 'balancer_cowswap_amm_gnosis_liquidity', + alias = 'cowswap_amm_gnosis_liquidity', materialized = 'table', ) }} diff --git a/models/_projects/balancer/labels/_schema.yml b/models/_projects/balancer/labels/_schema.yml index 3366fe1..de07e1b 100644 --- a/models/_projects/balancer/labels/_schema.yml +++ b/models/_projects/balancer/labels/_schema.yml @@ -433,14 +433,89 @@ models: - *model_name - *label_type + - name: labels_balancer_v3_pools_avalanche_c + meta: + blockchain: avalanche_c + sector: labels + project: balancer_v3 + contributors: balancerlabs, viniabussafi + config: + tags: ['labels', 'avalanche_c', 'balancer', 'pools'] + description: 'Balancer V3 liquidity pools created on Avalanche C.' + data_tests: + - dbt_utils.unique_combination_of_columns: + combination_of_columns: + - address + columns: + - *blockchain + - *address + - *name + - *category + - *contributor + - *source + - *created_at + - *updated_at + - *model_name + - *label_type + + - name: labels_balancer_v3_pools_hyperevm + meta: + blockchain: hyperevm + sector: labels + project: balancer_v3 + contributors: balancerlabs, viniabussafi + config: + tags: ['labels', 'hyperevm', 'balancer', 'pools'] + description: 'Balancer V3 liquidity pools created on HyperEVM.' + data_tests: + - dbt_utils.unique_combination_of_columns: + combination_of_columns: + - address + columns: + - *blockchain + - *address + - *name + - *category + - *contributor + - *source + - *created_at + - *updated_at + - *model_name + - *label_type + + - name: labels_balancer_v3_pools_monad + meta: + blockchain: monad + sector: labels + project: balancer_v3 + contributors: balancerlabs, viniabussafi + config: + tags: ['labels', 'monad', 'balancer', 'pools'] + description: 'Balancer V3 liquidity pools created on Monad.' + data_tests: + - dbt_utils.unique_combination_of_columns: + combination_of_columns: + - address + columns: + - *blockchain + - *address + - *name + - *category + - *contributor + - *source + - *created_at + - *updated_at + - *model_name + - *label_type + - name: labels_balancer_v3_pools meta: - blockchain: arbitrum, base, ethereum, gnosis, plasma + blockchain: arbitrum, avalanche_c, base, ethereum, gnosis, hyperevm, monad, plasma sector: labels project: balancer_v3 contributors: balancerlabs, viniabussafi config: - tags: ['labels', 'arbitrum', 'base', 'ethereum', 'gnosis', 'plasma', 'balancer', 'pools'] + tags: ['labels', 'arbitrum', 'avalanche_c', 'base', 'ethereum', 'gnosis', 'hyperevm', 'monad', 'plasma', 'balancer', 'pools'] description: 'Balancer V3 liquidity pools created across blockchains.' columns: - *blockchain diff --git a/models/_projects/balancer/labels/arbitrum/labels_balancer_v2_pools_arbitrum.sql b/models/_projects/balancer/labels/arbitrum/labels_balancer_v2_pools_arbitrum.sql index 0df9784..9f4bf84 100644 --- a/models/_projects/balancer/labels/arbitrum/labels_balancer_v2_pools_arbitrum.sql +++ b/models/_projects/balancer/labels/arbitrum/labels_balancer_v2_pools_arbitrum.sql @@ -1,5 +1,5 @@ {{config( - alias = 'balancer_v2_pools_arbitrum' + alias = 'v2_pools_arbitrum' , post_hook='{{ hide_spells() }}' )}} diff --git a/models/_projects/balancer/labels/arbitrum/labels_balancer_v3_pools_arbitrum.sql b/models/_projects/balancer/labels/arbitrum/labels_balancer_v3_pools_arbitrum.sql index 11a2176..41401a6 100644 --- a/models/_projects/balancer/labels/arbitrum/labels_balancer_v3_pools_arbitrum.sql +++ b/models/_projects/balancer/labels/arbitrum/labels_balancer_v3_pools_arbitrum.sql @@ -1,5 +1,5 @@ {{config( - alias = 'balancer_v3_pools_arbitrum' + alias = 'v3_pools_arbitrum' , post_hook='{{ hide_spells() }}' )}} diff --git a/models/_projects/balancer/labels/avalanche_c/labels_balancer_v2_pools_avalanche_c.sql b/models/_projects/balancer/labels/avalanche_c/labels_balancer_v2_pools_avalanche_c.sql index 15e92e1..c566557 100644 --- a/models/_projects/balancer/labels/avalanche_c/labels_balancer_v2_pools_avalanche_c.sql +++ b/models/_projects/balancer/labels/avalanche_c/labels_balancer_v2_pools_avalanche_c.sql @@ -1,5 +1,5 @@ {{config( - alias = 'balancer_v2_pools_avalanche_c' + alias = 'v2_pools_avalanche_c' , post_hook='{{ hide_spells() }}' )}} diff --git a/models/_projects/balancer/labels/avalanche_c/labels_balancer_v3_pools_avalanche_c.sql b/models/_projects/balancer/labels/avalanche_c/labels_balancer_v3_pools_avalanche_c.sql new file mode 100644 index 0000000..f048277 --- /dev/null +++ b/models/_projects/balancer/labels/avalanche_c/labels_balancer_v3_pools_avalanche_c.sql @@ -0,0 +1,136 @@ +{{config( + alias = 'labels_v3_pools_avalanche_c' + , materialized = 'view' + , post_hook='{{ hide_spells() }}' +)}} + +WITH token_data AS ( + SELECT + pool, + ARRAY_AGG(FROM_HEX(json_extract_scalar(token, '$.token')) ORDER BY token_index) AS tokens + FROM ( + SELECT + pool, + tokenConfig, + SEQUENCE(1, CARDINALITY(tokenConfig)) AS token_index_array + FROM {{ source('balancer_v3_avalanche_c', 'Vault_evt_PoolRegistered') }} + ) AS pool_data + CROSS JOIN UNNEST(tokenConfig, token_index_array) AS t(token, token_index) + GROUP BY 1 +), + +pools AS ( + SELECT + pool_id, + zip.tokens AS token_address, + zip.weights / POWER(10, 18) AS normalized_weight, + symbol, + pool_type + FROM ( + SELECT + c.pool AS pool_id, + t.tokens, + w.weights, + cc.symbol, + 'weighted' AS pool_type + FROM token_data c + INNER JOIN {{ source('balancer_v3_avalanche_c', 'WeightedPoolFactory_call_create') }} cc + ON c.pool = cc.output_pool + CROSS JOIN UNNEST(c.tokens) WITH ORDINALITY t(tokens, pos) + CROSS JOIN UNNEST(cc.normalizedWeights) WITH ORDINALITY w(weights, pos) + WHERE t.pos = w.pos + + UNION ALL + + SELECT + c.pool AS pool_id, + t.tokens, + 0 AS weights, + cc.symbol, + 'reclamm' AS pool_type + FROM token_data c + INNER JOIN {{ source('balancer_v3_avalanche_c', 'ReclammPoolFactory_call_create') }} cc + ON c.pool = cc.output_pool + CROSS JOIN UNNEST(c.tokens) AS t(tokens) + + UNION ALL + + SELECT + c.pool AS pool_id, + t.tokens, + 0 AS weights, + cc.symbol, + 'stable' AS pool_type + FROM token_data c + INNER JOIN {{ source('balancer_v3_avalanche_c', 'StablePoolFactory_call_create') }} cc + ON c.pool = cc.output_pool + CROSS JOIN UNNEST(c.tokens) AS t(tokens) + + UNION ALL + + SELECT + c.pool AS pool_id, + t.tokens, + 0 AS weights, + cc.symbol, + 'stable' AS pool_type + FROM token_data c + INNER JOIN {{ source('balancer_v3_avalanche_c', 'StableSurgePoolFactory_call_create') }} cc + ON c.pool = cc.output_pool + CROSS JOIN UNNEST(c.tokens) AS t(tokens) + + UNION ALL + + SELECT + c.pool AS pool_id, + t.tokens, + 0 AS weights, + cc.symbol, + 'LBP' AS pool_type + FROM token_data c + INNER JOIN {{ source('balancer_v3_avalanche_c', 'LBPoolFactory_call_create') }} cc + ON c.pool = cc.output_pool + CROSS JOIN UNNEST(c.tokens) AS t(tokens) + ) zip +), + +settings AS ( + SELECT + pool_id, + COALESCE(t.symbol, '?') AS token_symbol, + normalized_weight, + p.symbol AS pool_symbol, + p.pool_type + FROM pools p + LEFT JOIN {{ source('tokens', 'erc20') }} t + ON p.token_address = t.contract_address + AND t.blockchain = 'avalanche_c' +) + +SELECT + 'avalanche_c' AS blockchain, + bytearray_substring(pool_id, 1, 20) AS address, + CASE + WHEN pool_type IN ('stable', 'LBP', 'ECLP') THEN lower(pool_symbol) + ELSE lower(concat(array_join(array_agg(token_symbol ORDER BY token_symbol), '/'), ' ', array_join(array_agg(cast(norm_weight AS varchar) ORDER BY token_symbol), '/'))) + END AS name, + pool_type, + 'balancer_v3_pool' AS category, + 'balancerlabs' AS contributor, + 'query' AS source, + TIMESTAMP '2024-12-01 00:00' AS created_at, + now() AS updated_at, + 'balancer_v3_pools_avalanche_c' AS model_name, + 'identifier' AS label_type +FROM ( + SELECT + s1.pool_id, + token_symbol, + pool_symbol, + CAST(100 * normalized_weight AS integer) AS norm_weight, + pool_type + FROM settings s1 + GROUP BY s1.pool_id, token_symbol, pool_symbol, normalized_weight, pool_type +) s +GROUP BY pool_id, pool_symbol, pool_type +ORDER BY 1 diff --git a/models/_projects/balancer/labels/base/labels_balancer_v2_pools_base.sql b/models/_projects/balancer/labels/base/labels_balancer_v2_pools_base.sql index 571ed65..7c36ba4 100644 --- a/models/_projects/balancer/labels/base/labels_balancer_v2_pools_base.sql +++ b/models/_projects/balancer/labels/base/labels_balancer_v2_pools_base.sql @@ -1,5 +1,5 @@ {{config( - alias = 'balancer_v2_pools_base' + alias = 'v2_pools_base' , post_hook='{{ hide_spells() }}' )}} diff --git a/models/_projects/balancer/labels/base/labels_balancer_v3_pools_base.sql b/models/_projects/balancer/labels/base/labels_balancer_v3_pools_base.sql index 04441f6..852667c 100644 --- a/models/_projects/balancer/labels/base/labels_balancer_v3_pools_base.sql +++ b/models/_projects/balancer/labels/base/labels_balancer_v3_pools_base.sql @@ -1,5 +1,5 @@ {{config( - alias = 'balancer_v3_pools_base' + alias = 'v3_pools_base' , post_hook='{{ hide_spells() }}' )}} diff --git a/models/_projects/balancer/labels/ethereum/labels_balancer_v1_pools_ethereum.sql b/models/_projects/balancer/labels/ethereum/labels_balancer_v1_pools_ethereum.sql index 7ff1c1c..9b7ebaf 100644 --- a/models/_projects/balancer/labels/ethereum/labels_balancer_v1_pools_ethereum.sql +++ b/models/_projects/balancer/labels/ethereum/labels_balancer_v1_pools_ethereum.sql @@ -1,5 +1,5 @@ {{config( - alias = 'balancer_v1_pools_ethereum', + alias = 'v1_pools_ethereum', materialized = 'incremental', incremental_strategy = 'merge', unique_key = ['address'] diff --git a/models/_projects/balancer/labels/ethereum/labels_balancer_v2_pools_ethereum.sql b/models/_projects/balancer/labels/ethereum/labels_balancer_v2_pools_ethereum.sql index 1d00619..38458da 100644 --- a/models/_projects/balancer/labels/ethereum/labels_balancer_v2_pools_ethereum.sql +++ b/models/_projects/balancer/labels/ethereum/labels_balancer_v2_pools_ethereum.sql @@ -1,5 +1,5 @@ {{config( - alias = 'balancer_v2_pools_ethereum' + alias = 'v2_pools_ethereum' , post_hook='{{ hide_spells() }}' )}} diff --git a/models/_projects/balancer/labels/ethereum/labels_balancer_v3_pools_ethereum.sql b/models/_projects/balancer/labels/ethereum/labels_balancer_v3_pools_ethereum.sql index 203c0ef..7341696 100644 --- a/models/_projects/balancer/labels/ethereum/labels_balancer_v3_pools_ethereum.sql +++ b/models/_projects/balancer/labels/ethereum/labels_balancer_v3_pools_ethereum.sql @@ -1,5 +1,5 @@ {{config( - alias = 'balancer_v3_pools_ethereum' + alias = 'v3_pools_ethereum' , post_hook='{{ hide_spells() }}' )}} diff --git a/models/_projects/balancer/labels/gnosis/labels_balancer_v2_pools_gnosis.sql b/models/_projects/balancer/labels/gnosis/labels_balancer_v2_pools_gnosis.sql index 977a40d..cc2ad54 100644 --- a/models/_projects/balancer/labels/gnosis/labels_balancer_v2_pools_gnosis.sql +++ b/models/_projects/balancer/labels/gnosis/labels_balancer_v2_pools_gnosis.sql @@ -1,5 +1,5 @@ {{config( - alias = 'balancer_v2_pools_gnosis' + alias = 'v2_pools_gnosis' , post_hook='{{ hide_spells() }}' )}} diff --git a/models/_projects/balancer/labels/gnosis/labels_balancer_v3_pools_gnosis.sql b/models/_projects/balancer/labels/gnosis/labels_balancer_v3_pools_gnosis.sql index 20f76e9..69a6321 100644 --- a/models/_projects/balancer/labels/gnosis/labels_balancer_v3_pools_gnosis.sql +++ b/models/_projects/balancer/labels/gnosis/labels_balancer_v3_pools_gnosis.sql @@ -1,5 +1,5 @@ {{config( - alias = 'balancer_v3_pools_gnosis' + alias = 'v3_pools_gnosis' , post_hook='{{ hide_spells() }}' )}} diff --git a/models/_projects/balancer/labels/hyperevm/labels_balancer_v3_pools_hyperevm.sql b/models/_projects/balancer/labels/hyperevm/labels_balancer_v3_pools_hyperevm.sql new file mode 100644 index 0000000..233076f --- /dev/null +++ b/models/_projects/balancer/labels/hyperevm/labels_balancer_v3_pools_hyperevm.sql @@ -0,0 +1,136 @@ +{{config( + alias = 'labels_v3_pools_hyperevm' + , materialized = 'view' + , post_hook='{{ hide_spells() }}' +)}} + +WITH token_data AS ( + SELECT + pool, + ARRAY_AGG(FROM_HEX(json_extract_scalar(token, '$.token')) ORDER BY token_index) AS tokens + FROM ( + SELECT + pool, + tokenConfig, + SEQUENCE(1, CARDINALITY(tokenConfig)) AS token_index_array + FROM {{ source('balancer_v3_hyperevm', 'Vault_evt_PoolRegistered') }} + ) AS pool_data + CROSS JOIN UNNEST(tokenConfig, token_index_array) AS t(token, token_index) + GROUP BY 1 +), + +pools AS ( + SELECT + pool_id, + zip.tokens AS token_address, + zip.weights / POWER(10, 18) AS normalized_weight, + symbol, + pool_type + FROM ( + SELECT + c.pool AS pool_id, + t.tokens, + w.weights, + cc.symbol, + 'weighted' AS pool_type + FROM token_data c + INNER JOIN {{ source('balancer_v3_hyperevm', 'WeightedPoolFactory_call_create') }} cc + ON c.pool = cc.output_pool + CROSS JOIN UNNEST(c.tokens) WITH ORDINALITY t(tokens, pos) + CROSS JOIN UNNEST(cc.normalizedWeights) WITH ORDINALITY w(weights, pos) + WHERE t.pos = w.pos + + UNION ALL + + SELECT + c.pool AS pool_id, + t.tokens, + 0 AS weights, + cc.symbol, + 'stable' AS pool_type + FROM token_data c + INNER JOIN {{ source('balancer_v3_hyperevm', 'StablePoolFactory_call_create') }} cc + ON c.pool = cc.output_pool + CROSS JOIN UNNEST(c.tokens) AS t(tokens) + + UNION ALL + + SELECT + c.pool AS pool_id, + t.tokens, + 0 AS weights, + cc.symbol, + 'stable' AS pool_type + FROM token_data c + INNER JOIN {{ source('balancer_v3_hyperevm', 'StableSurgePoolFactory_call_create') }} cc + ON c.pool = cc.output_pool + CROSS JOIN UNNEST(c.tokens) AS t(tokens) + + UNION ALL + + SELECT + c.pool AS pool_id, + t.tokens, + 0 AS weights, + cc.symbol, + 'LBP' AS pool_type + FROM token_data c + INNER JOIN {{ source('balancer_v3_hyperevm', 'LBPoolFactory_call_create') }} cc + ON c.pool = cc.output_pool + CROSS JOIN UNNEST(c.tokens) AS t(tokens) + + UNION ALL + + SELECT + c.pool AS pool_id, + t.tokens AS token_address, + 0 AS normalized_weight, + cc.symbol, + 'ECLP' AS pool_type + FROM token_data c + INNER JOIN {{ source('balancer_v3_hyperevm', 'GyroECLPPoolFactory_call_create') }} cc + ON c.pool = cc.output_pool + CROSS JOIN UNNEST(c.tokens) AS t(tokens) + ) zip +), + +settings AS ( + SELECT + pool_id, + COALESCE(t.symbol, '?') AS token_symbol, + normalized_weight, + p.symbol AS pool_symbol, + p.pool_type + FROM pools p + LEFT JOIN {{ source('tokens', 'erc20') }} t + ON p.token_address = t.contract_address + AND t.blockchain = 'hyperevm' +) + +SELECT + 'hyperevm' AS blockchain, + bytearray_substring(pool_id, 1, 20) AS address, + CASE + WHEN pool_type IN ('stable', 'LBP', 'ECLP') THEN lower(pool_symbol) + ELSE lower(concat(array_join(array_agg(token_symbol ORDER BY token_symbol), '/'), ' ', array_join(array_agg(cast(norm_weight AS varchar) ORDER BY token_symbol), '/'))) + END AS name, + pool_type, + 'balancer_v3_pool' AS category, + 'balancerlabs' AS contributor, + 'query' AS source, + TIMESTAMP '2024-12-01 00:00' AS created_at, + now() AS updated_at, + 'balancer_v3_pools_hyperevm' AS model_name, + 'identifier' AS label_type +FROM ( + SELECT + s1.pool_id, + token_symbol, + pool_symbol, + CAST(100 * normalized_weight AS integer) AS norm_weight, + pool_type + FROM settings s1 + GROUP BY s1.pool_id, token_symbol, pool_symbol, normalized_weight, pool_type +) s +GROUP BY pool_id, pool_symbol, pool_type +ORDER BY 1 diff --git a/models/_projects/balancer/labels/labels_balancer_v1_pools.sql b/models/_projects/balancer/labels/labels_balancer_v1_pools.sql index 271e9e0..81156e2 100644 --- a/models/_projects/balancer/labels/labels_balancer_v1_pools.sql +++ b/models/_projects/balancer/labels/labels_balancer_v1_pools.sql @@ -1,5 +1,5 @@ {{config( - alias = 'labels_balancer_v1_pools' + alias = 'labels_v1_pools' , post_hook='{{ hide_spells() }}' ) }} diff --git a/models/_projects/balancer/labels/labels_balancer_v2_pools.sql b/models/_projects/balancer/labels/labels_balancer_v2_pools.sql index 39ed23a..07870c4 100644 --- a/models/_projects/balancer/labels/labels_balancer_v2_pools.sql +++ b/models/_projects/balancer/labels/labels_balancer_v2_pools.sql @@ -1,5 +1,5 @@ {{config( - alias = 'balancer_v2_pools' + alias = 'v2_pools' , post_hook='{{ hide_spells() }}' ) }} diff --git a/models/_projects/balancer/labels/labels_balancer_v3_pools.sql b/models/_projects/balancer/labels/labels_balancer_v3_pools.sql index b4da0c9..b9ec420 100644 --- a/models/_projects/balancer/labels/labels_balancer_v3_pools.sql +++ b/models/_projects/balancer/labels/labels_balancer_v3_pools.sql @@ -1,5 +1,5 @@ {{config( - alias = 'balancer_v3_pools' + alias = 'v3_pools' , post_hook='{{ hide_spells() }}' ) }} @@ -13,3 +13,9 @@ UNION SELECT * FROM {{ ref('labels_balancer_v3_pools_base') }} UNION SELECT * FROM {{ ref('labels_balancer_v3_pools_plasma') }} +UNION +SELECT * FROM {{ ref('labels_balancer_v3_pools_avalanche_c') }} +UNION +SELECT * FROM {{ ref('labels_balancer_v3_pools_hyperevm') }} +UNION +SELECT * FROM {{ ref('labels_balancer_v3_pools_monad') }} diff --git a/models/_projects/balancer/labels/monad/labels_balancer_v3_pools_monad.sql b/models/_projects/balancer/labels/monad/labels_balancer_v3_pools_monad.sql new file mode 100644 index 0000000..a82332a --- /dev/null +++ b/models/_projects/balancer/labels/monad/labels_balancer_v3_pools_monad.sql @@ -0,0 +1,136 @@ +{{config( + alias = 'labels_v3_pools_monad' + , materialized = 'view' + , post_hook='{{ hide_spells() }}' +)}} + +WITH token_data AS ( + SELECT + pool, + ARRAY_AGG(FROM_HEX(json_extract_scalar(token, '$.token')) ORDER BY token_index) AS tokens + FROM ( + SELECT + pool, + tokenConfig, + SEQUENCE(1, CARDINALITY(tokenConfig)) AS token_index_array + FROM {{ source('balancer_v3_monad', 'Vault_evt_PoolRegistered') }} + ) AS pool_data + CROSS JOIN UNNEST(tokenConfig, token_index_array) AS t(token, token_index) + GROUP BY 1 +), + +pools AS ( + SELECT + pool_id, + zip.tokens AS token_address, + zip.weights / POWER(10, 18) AS normalized_weight, + symbol, + pool_type + FROM ( + SELECT + c.pool AS pool_id, + t.tokens, + w.weights, + cc.symbol, + 'weighted' AS pool_type + FROM token_data c + INNER JOIN {{ source('balancer_v3_monad', 'WeightedPoolFactory_call_create') }} cc + ON c.pool = cc.output_pool + CROSS JOIN UNNEST(c.tokens) WITH ORDINALITY t(tokens, pos) + CROSS JOIN UNNEST(cc.normalizedWeights) WITH ORDINALITY w(weights, pos) + WHERE t.pos = w.pos + + UNION ALL + + SELECT + c.pool AS pool_id, + t.tokens, + 0 AS weights, + cc.symbol, + 'stable' AS pool_type + FROM token_data c + INNER JOIN {{ source('balancer_v3_monad', 'StablePoolFactory_call_create') }} cc + ON c.pool = cc.output_pool + CROSS JOIN UNNEST(c.tokens) AS t(tokens) + + UNION ALL + + SELECT + c.pool AS pool_id, + t.tokens, + 0 AS weights, + cc.symbol, + 'stable' AS pool_type + FROM token_data c + INNER JOIN {{ source('balancer_v3_monad', 'StableSurgePoolFactory_call_create') }} cc + ON c.pool = cc.output_pool + CROSS JOIN UNNEST(c.tokens) AS t(tokens) + + UNION ALL + + SELECT + c.pool AS pool_id, + t.tokens, + 0 AS weights, + CAST(NULL AS varchar) AS symbol, + 'LBP' AS pool_type + FROM token_data c + INNER JOIN {{ source('balancer_v3_monad', 'LBPoolFactory_call_create') }} cc + ON c.pool = cc.output_pool + CROSS JOIN UNNEST(c.tokens) AS t(tokens) + + UNION ALL + + SELECT + c.pool AS pool_id, + t.tokens AS token_address, + 0 AS normalized_weight, + cc.symbol, + 'ECLP' AS pool_type + FROM token_data c + INNER JOIN {{ source('balancer_v3_monad', 'GyroECLPPoolFactory_call_create') }} cc + ON c.pool = cc.output_pool + CROSS JOIN UNNEST(c.tokens) AS t(tokens) + ) zip +), + +settings AS ( + SELECT + pool_id, + COALESCE(t.symbol, '?') AS token_symbol, + normalized_weight, + p.symbol AS pool_symbol, + p.pool_type + FROM pools p + LEFT JOIN {{ source('tokens', 'erc20') }} t + ON p.token_address = t.contract_address + AND t.blockchain = 'monad' +) + +SELECT + 'monad' AS blockchain, + bytearray_substring(pool_id, 1, 20) AS address, + CASE + WHEN pool_type IN ('stable', 'LBP', 'ECLP') THEN lower(pool_symbol) + ELSE lower(concat(array_join(array_agg(token_symbol ORDER BY token_symbol), '/'), ' ', array_join(array_agg(cast(norm_weight AS varchar) ORDER BY token_symbol), '/'))) + END AS name, + pool_type, + 'balancer_v3_pool' AS category, + 'balancerlabs' AS contributor, + 'query' AS source, + TIMESTAMP '2024-12-01 00:00' AS created_at, + now() AS updated_at, + 'balancer_v3_pools_monad' AS model_name, + 'identifier' AS label_type +FROM ( + SELECT + s1.pool_id, + token_symbol, + pool_symbol, + CAST(100 * normalized_weight AS integer) AS norm_weight, + pool_type + FROM settings s1 + GROUP BY s1.pool_id, token_symbol, pool_symbol, normalized_weight, pool_type +) s +GROUP BY pool_id, pool_symbol, pool_type +ORDER BY 1 diff --git a/models/_projects/balancer/labels/optimism/labels_balancer_v2_pools_optimism.sql b/models/_projects/balancer/labels/optimism/labels_balancer_v2_pools_optimism.sql index 5f548ac..65a0952 100644 --- a/models/_projects/balancer/labels/optimism/labels_balancer_v2_pools_optimism.sql +++ b/models/_projects/balancer/labels/optimism/labels_balancer_v2_pools_optimism.sql @@ -1,5 +1,5 @@ {{config( - alias = 'balancer_v2_pools_optimism' + alias = 'v2_pools_optimism' , post_hook='{{ hide_spells() }}' )}} diff --git a/models/_projects/balancer/labels/plasma/labels_balancer_v3_pools_plasma.sql b/models/_projects/balancer/labels/plasma/labels_balancer_v3_pools_plasma.sql index 4013ce1..19ce1f1 100644 --- a/models/_projects/balancer/labels/plasma/labels_balancer_v3_pools_plasma.sql +++ b/models/_projects/balancer/labels/plasma/labels_balancer_v3_pools_plasma.sql @@ -1,5 +1,5 @@ {{config( - alias = 'balancer_v3_pools_plasma' + alias = 'v3_pools_plasma' , post_hook='{{ hide_spells() }}' )}} diff --git a/models/_projects/balancer/labels/polygon/labels_balancer_v2_pools_polygon.sql b/models/_projects/balancer/labels/polygon/labels_balancer_v2_pools_polygon.sql index 57f97dd..e035a95 100644 --- a/models/_projects/balancer/labels/polygon/labels_balancer_v2_pools_polygon.sql +++ b/models/_projects/balancer/labels/polygon/labels_balancer_v2_pools_polygon.sql @@ -1,5 +1,5 @@ {{config( - alias = 'balancer_v2_pools_polygon' + alias = 'v2_pools_polygon' , post_hook='{{ hide_spells() }}' )}} diff --git a/models/_projects/balancer/labels/zkevm/labels_balancer_v2_pools_zkevm.sql b/models/_projects/balancer/labels/zkevm/labels_balancer_v2_pools_zkevm.sql index fc078bc..c9c7897 100644 --- a/models/_projects/balancer/labels/zkevm/labels_balancer_v2_pools_zkevm.sql +++ b/models/_projects/balancer/labels/zkevm/labels_balancer_v2_pools_zkevm.sql @@ -1,5 +1,5 @@ {{config( - alias = 'balancer_v2_pools_zkevm' + alias = 'v2_pools_zkevm' , post_hook='{{ hide_spells() }}' )}} diff --git a/sources/balancer/avalanche_c/balancer_avalanche_c_sources.yml b/sources/balancer/avalanche_c/balancer_avalanche_c_sources.yml index 2c92bd4..2abaf22 100644 --- a/sources/balancer/avalanche_c/balancer_avalanche_c_sources.yml +++ b/sources/balancer/avalanche_c/balancer_avalanche_c_sources.yml @@ -144,3 +144,21 @@ sources: - *tokens - name: assetManager description: 'Address of the contract which managed the asset from the vault' + + - name: balancer_v3_avalanche_c + description: > + Decoded tables related to Balancer V3, an automated portfolio manager and trading platform, on Avalanche. + tables: + - name: Vault_evt_PoolRegistered + + - name: WeightedPoolFactory_call_create + + - name: StablePoolFactory_call_create + + - name: StableSurgePoolFactory_call_create + + - name: LBPoolFactory_call_create + + - name: Vault_evt_SwapFeePercentageChanged + + - name: ReclammPoolFactory_call_create diff --git a/sources/balancer/hyperevm/balancer_hyperevm_sources.yml b/sources/balancer/hyperevm/balancer_hyperevm_sources.yml new file mode 100644 index 0000000..d3a0f9c --- /dev/null +++ b/sources/balancer/hyperevm/balancer_hyperevm_sources.yml @@ -0,0 +1,20 @@ +version: 2 + +sources: + - name: balancer_v3_hyperevm + description: > + Decoded tables related to Balancer V3, an automated portfolio manager and trading platform, on HyperEVM. + tables: + - name: Vault_evt_PoolRegistered + + - name: WeightedPoolFactory_call_create + + - name: StablePoolFactory_call_create + + - name: StableSurgePoolFactory_call_create + + - name: LBPoolFactory_call_create + + - name: GyroECLPPoolFactory_call_create + + - name: Vault_evt_SwapFeePercentageChanged diff --git a/sources/balancer/monad/balancer_monad_sources.yml b/sources/balancer/monad/balancer_monad_sources.yml new file mode 100644 index 0000000..8ce1be6 --- /dev/null +++ b/sources/balancer/monad/balancer_monad_sources.yml @@ -0,0 +1,20 @@ +version: 2 + +sources: + - name: balancer_v3_monad + description: > + Decoded tables related to Balancer V3, an automated portfolio manager and trading platform, on Monad. + tables: + - name: Vault_evt_PoolRegistered + + - name: WeightedPoolFactory_call_create + + - name: StablePoolFactory_call_create + + - name: StableSurgePoolFactory_call_create + + - name: LBPoolFactory_call_create + + - name: GyroECLPPoolFactory_call_create + + - name: Vault_evt_SwapFeePercentageChanged diff --git a/sources/balancer/sonic/balancer_sonic_sources.yml b/sources/balancer/sonic/balancer_sonic_sources.yml new file mode 100644 index 0000000..0a89e81 --- /dev/null +++ b/sources/balancer/sonic/balancer_sonic_sources.yml @@ -0,0 +1,12 @@ +version: 2 + +sources: + - name: beethoven_x_v3_sonic + description: > + Decoded tables related to Beethoven X V3 on Sonic for ERC4626 wrapper token mapping and pricing. + tables: + - name: Vault_evt_LiquidityAddedToBuffer + + - name: Vault_evt_Wrap + + - name: Vault_evt_Unwrap diff --git a/sources/balancer_liquidity_extra_sources.yml b/sources/balancer_liquidity_extra_sources.yml index 6a16c17..143182a 100644 --- a/sources/balancer_liquidity_extra_sources.yml +++ b/sources/balancer_liquidity_extra_sources.yml @@ -1512,6 +1512,28 @@ sources: - name: value description: Amount of ERC20 tokens transferred, in the token's native decimal representation (raw value) +- name: erc20_sonic + tables: + - name: evt_Transfer + columns: + - name: contract_address + description: Address of the ERC20 token contract that emitted this event + - name: evt_tx_hash + description: Hash of the transaction containing this event + - name: evt_index + description: Index position of this event within the transaction + - name: evt_block_time + description: Timestamp of the block containing this event + - name: evt_block_number + description: The block number containing this event + - name: from + description: Address of the account that initiated and signed this transaction + - name: to + description: Address of the recipient account or contract; null for contract + creation transactions + - name: value + description: Amount of ERC20 tokens transferred, in the token's native decimal + representation (raw value) - name: gyroscope tables: - name: gyro_tokens From b36d907d986f875aae7d638345fa4b55b65eb163 Mon Sep 17 00:00:00 2001 From: gustavobftorres Date: Thu, 19 Mar 2026 15:58:32 -0300 Subject: [PATCH 3/3] clearing middle-term files --- docs/balancer_v3_spell_gap_mapping.md | 18 ------------------ 1 file changed, 18 deletions(-) delete mode 100644 docs/balancer_v3_spell_gap_mapping.md diff --git a/docs/balancer_v3_spell_gap_mapping.md b/docs/balancer_v3_spell_gap_mapping.md deleted file mode 100644 index 1596350..0000000 --- a/docs/balancer_v3_spell_gap_mapping.md +++ /dev/null @@ -1,18 +0,0 @@ -# Balancer V3 Spell Gap Mapping (Wave 1) - -## Source to Target -- Hourly source: `/Users/gustavotorres/Desktop/Projects/balancer/spellbook/dbt_subprojects/hourly_spellbook/models/_project/balancer` -- Dex source: `/Users/gustavotorres/Desktop/Projects/balancer/spellbook/dbt_subprojects/dex/models/_projects/balancer` -- Hourly target: `/Users/gustavotorres/Desktop/Projects/balancer/dune-dbt/models/_project/balancer` -- Dex target: `/Users/gustavotorres/Desktop/Projects/balancer/dune-dbt/models/_projects/balancer` - -## Implemented in Wave 1 -- Shared macros: `balancer_lbps_macro`, `balancer_pool_token_supply_changes_macro`, `balancer_pool_token_supply_changes_daily_agg_macro`, `balancer_protocol_fee_macro` -- BPT V3 supply changes: `arbitrum`, `base`, `ethereum`, `gnosis` + global V3-only aggregators -- ERC4626 V3 mapping/prices: `arbitrum`, `base`, `ethereum`, `gnosis` + global V3-only aggregators -- LBP V3: `arbitrum`, `base`, `ethereum`, `gnosis` + global aggregator -- Protocol fee V3: `arbitrum`, `base`, `ethereum`, `gnosis` + global V3-only aggregator - -## Deferred -- Dex V3 Balancer models (`pools_fees`, `trades`) until dex foundation is imported in this repo. -- New-chain backlog (`hyperevm`, `monad`, `sonic`, `avalanche_c v3`) remains out of Wave 1.