From 5adf45253d93b70a8b169189d1717578df91e725 Mon Sep 17 00:00:00 2001 From: marcus-snx Date: Fri, 23 Aug 2024 13:39:21 +0300 Subject: [PATCH 1/6] Lint models --- transformers/synthetix/.sqlfluff | 2 +- transformers/synthetix/.sqlfluffignore | 1 + ...re_account_delegation_arbitrum_mainnet.sql | 70 +++-- .../core/fct_core_apr_arbitrum_mainnet.sql | 247 ++++++++------- .../fct_core_apr_rewards_arbitrum_mainnet.sql | 119 +++---- ...t_core_market_updated_arbitrum_mainnet.sql | 49 +-- ..._core_pool_collateral_arbitrum_mainnet.sql | 70 +++-- ..._core_pool_delegation_arbitrum_mainnet.sql | 47 +-- .../core/fct_core_pools_arbitrum_mainnet.sql | 24 +- .../core/fct_pool_debt_arbitrum_mainnet.sql | 6 +- .../fct_pool_issuance_arbitrum_mainnet.sql | 46 +-- ..._pool_issuance_hourly_arbitrum_mainnet.sql | 139 +++++---- .../fct_pool_pnl_hourly_arbitrum_mainnet.sql | 238 +++++++------- ...ool_pnl_hourly_reward_arbitrum_mainnet.sql | 76 ++--- .../fct_pool_rewards_arbitrum_mainnet.sql | 38 +-- ...t_pool_rewards_hourly_arbitrum_mainnet.sql | 15 +- ..._rewards_token_hourly_arbitrum_mainnet.sql | 139 +++++---- .../prices/fct_prices_arbitrum_mainnet.sql | 36 ++- .../fct_prices_hourly_arbitrum_mainnet.sql | 95 +++--- .../fct_spot_atomics_arbitrum_mainnet.sql | 88 +++--- .../fct_spot_markets_arbitrum_mainnet.sql | 24 +- .../fct_spot_wrapper_arbitrum_mainnet.sql | 76 ++--- .../fct_synth_supply_arbitrum_mainnet.sql | 85 ++--- ...re_account_delegation_arbitrum_sepolia.sql | 70 +++-- .../core/fct_core_apr_arbitrum_sepolia.sql | 247 ++++++++------- .../fct_core_apr_rewards_arbitrum_sepolia.sql | 119 +++---- ...t_core_market_updated_arbitrum_sepolia.sql | 49 +-- ..._core_pool_collateral_arbitrum_sepolia.sql | 70 +++-- ..._core_pool_delegation_arbitrum_sepolia.sql | 47 +-- .../core/fct_core_pools_arbitrum_sepolia.sql | 24 +- .../core/fct_pool_debt_arbitrum_sepolia.sql | 6 +- .../fct_pool_issuance_arbitrum_sepolia.sql | 46 +-- ..._pool_issuance_hourly_arbitrum_sepolia.sql | 139 +++++---- .../fct_pool_pnl_hourly_arbitrum_sepolia.sql | 238 +++++++------- ...ool_pnl_hourly_reward_arbitrum_sepolia.sql | 76 ++--- .../fct_pool_rewards_arbitrum_sepolia.sql | 38 +-- ...t_pool_rewards_hourly_arbitrum_sepolia.sql | 15 +- ..._rewards_token_hourly_arbitrum_sepolia.sql | 139 +++++---- .../prices/fct_prices_arbitrum_sepolia.sql | 36 ++- .../fct_prices_hourly_arbitrum_sepolia.sql | 95 +++--- .../fct_spot_atomics_arbitrum_sepolia.sql | 88 +++--- .../fct_spot_markets_arbitrum_sepolia.sql | 24 +- .../fct_spot_wrapper_arbitrum_sepolia.sql | 76 ++--- .../fct_synth_supply_arbitrum_sepolia.sql | 85 ++--- .../buyback/fct_buyback_base_mainnet.sql | 12 +- .../fct_buyback_daily_base_mainnet.sql | 27 +- .../fct_buyback_hourly_base_mainnet.sql | 27 +- ...t_core_account_delegation_base_mainnet.sql | 70 +++-- .../core/fct_core_apr_base_mainnet.sql | 247 ++++++++------- .../fct_core_apr_rewards_base_mainnet.sql | 119 +++---- .../fct_core_market_updated_base_mainnet.sql | 49 +-- .../fct_core_pool_collateral_base_mainnet.sql | 70 +++-- .../fct_core_pool_delegation_base_mainnet.sql | 47 +-- .../core/fct_core_pools_base_mainnet.sql | 24 +- ...fct_core_vault_collateral_base_mainnet.sql | 4 +- .../core/fct_pool_debt_base_mainnet.sql | 6 +- .../core/fct_pool_issuance_base_mainnet.sql | 46 +-- .../fct_pool_issuance_hourly_base_mainnet.sql | 139 +++++---- .../core/fct_pool_pnl_hourly_base_mainnet.sql | 238 +++++++------- ...ct_pool_pnl_hourly_reward_base_mainnet.sql | 76 ++--- .../core/fct_pool_rewards_base_mainnet.sql | 38 +-- .../fct_pool_rewards_hourly_base_mainnet.sql | 15 +- ...pool_rewards_token_hourly_base_mainnet.sql | 139 +++++---- .../perp/fct_perp_accounts_base_mainnet.sql | 26 +- ..._perp_collateral_modified_base_mainnet.sql | 6 +- ...fct_perp_interest_charged_base_mainnet.sql | 6 +- .../fct_perp_liq_account_base_mainnet.sql | 109 +++---- .../fct_perp_liq_position_base_mainnet.sql | 38 +-- .../fct_perp_market_history_base_mainnet.sql | 98 +++--- .../perp/fct_perp_markets_base_mainnet.sql | 26 +- .../perp/fct_perp_orders_base_mainnet.sql | 30 +- .../perp/fct_perp_pnl_base_mainnet.sql | 17 +- ...rp_previous_order_expired_base_mainnet.sql | 8 +- .../perp/fct_perp_trades_base_mainnet.sql | 75 ++--- ..._perp_account_stats_daily_base_mainnet.sql | 77 ++--- ...perp_account_stats_hourly_base_mainnet.sql | 211 ++++++------- ...t_perp_keeper_stats_daily_base_mainnet.sql | 79 ++--- ..._perp_keeper_stats_hourly_base_mainnet.sql | 80 ++--- ...t_perp_market_stats_daily_base_mainnet.sql | 44 +-- ..._perp_market_stats_hourly_base_mainnet.sql | 291 +++++++++--------- .../fct_perp_stats_daily_base_mainnet.sql | 40 +-- .../fct_perp_stats_hourly_base_mainnet.sql | 162 +++++----- ...perp_tracking_stats_daily_base_mainnet.sql | 164 +++++----- ...erp_tracking_stats_hourly_base_mainnet.sql | 164 +++++----- .../prices/fct_prices_base_mainnet.sql | 58 ++-- .../prices/fct_prices_hourly_base_mainnet.sql | 95 +++--- .../spot/fct_spot_atomics_base_mainnet.sql | 88 +++--- .../spot/fct_spot_markets_base_mainnet.sql | 24 +- .../spot/fct_spot_wrapper_base_mainnet.sql | 76 ++--- .../spot/fct_synth_supply_base_mainnet.sql | 85 ++--- .../buyback/fct_buyback_base_sepolia.sql | 12 +- .../fct_buyback_daily_base_sepolia.sql | 27 +- .../fct_buyback_hourly_base_sepolia.sql | 27 +- ...t_core_account_delegation_base_sepolia.sql | 70 +++-- .../core/fct_core_apr_base_sepolia.sql | 247 ++++++++------- .../fct_core_apr_rewards_base_sepolia.sql | 119 +++---- .../fct_core_market_updated_base_sepolia.sql | 49 +-- .../fct_core_pool_collateral_base_sepolia.sql | 70 +++-- .../fct_core_pool_delegation_base_sepolia.sql | 47 +-- .../core/fct_core_pools_base_sepolia.sql | 24 +- .../core/fct_pool_debt_base_sepolia.sql | 6 +- .../core/fct_pool_issuance_base_sepolia.sql | 46 +-- .../fct_pool_issuance_hourly_base_sepolia.sql | 139 +++++---- .../core/fct_pool_pnl_hourly_base_sepolia.sql | 238 +++++++------- ...ct_pool_pnl_hourly_reward_base_sepolia.sql | 76 ++--- .../core/fct_pool_rewards_base_sepolia.sql | 38 +-- .../fct_pool_rewards_hourly_base_sepolia.sql | 15 +- ...pool_rewards_token_hourly_base_sepolia.sql | 139 +++++---- .../perp/fct_perp_accounts_base_sepolia.sql | 26 +- ..._perp_collateral_modified_base_sepolia.sql | 6 +- ...fct_perp_interest_charged_base_sepolia.sql | 6 +- .../fct_perp_liq_account_base_sepolia.sql | 109 +++---- .../fct_perp_liq_position_base_sepolia.sql | 38 +-- .../fct_perp_market_history_base_sepolia.sql | 98 +++--- .../perp/fct_perp_markets_base_sepolia.sql | 26 +- .../perp/fct_perp_orders_base_sepolia.sql | 30 +- .../perp/fct_perp_pnl_base_sepolia.sql | 17 +- ...rp_previous_order_expired_base_sepolia.sql | 8 +- .../perp/fct_perp_trades_base_sepolia.sql | 75 ++--- ..._perp_account_stats_daily_base_sepolia.sql | 77 ++--- ...perp_account_stats_hourly_base_sepolia.sql | 211 ++++++------- ...t_perp_keeper_stats_daily_base_sepolia.sql | 79 ++--- ..._perp_keeper_stats_hourly_base_sepolia.sql | 80 ++--- ...t_perp_market_stats_daily_base_sepolia.sql | 44 +-- ..._perp_market_stats_hourly_base_sepolia.sql | 291 +++++++++--------- .../fct_perp_stats_daily_base_sepolia.sql | 40 +-- .../fct_perp_stats_hourly_base_sepolia.sql | 162 +++++----- ...perp_tracking_stats_daily_base_sepolia.sql | 164 +++++----- ...erp_tracking_stats_hourly_base_sepolia.sql | 164 +++++----- .../prices/fct_prices_base_sepolia.sql | 58 ++-- .../prices/fct_prices_hourly_base_sepolia.sql | 95 +++--- .../spot/fct_spot_atomics_base_sepolia.sql | 88 +++--- .../spot/fct_spot_markets_base_sepolia.sql | 24 +- .../spot/fct_spot_wrapper_base_sepolia.sql | 76 ++--- .../spot/fct_synth_supply_base_sepolia.sql | 85 ++--- ...ct_core_account_delegation_eth_mainnet.sql | 70 +++-- .../mainnet/core/fct_core_apr_eth_mainnet.sql | 249 ++++++++------- .../core/fct_core_apr_rewards_eth_mainnet.sql | 119 +++---- .../fct_core_market_updated_eth_mainnet.sql | 49 +-- .../core/fct_core_migration_eth_mainnet.sql | 11 +- .../fct_core_migration_hourly_eth_mainnet.sql | 99 +++--- .../fct_core_pool_collateral_eth_mainnet.sql | 70 +++-- .../fct_core_pool_delegation_eth_mainnet.sql | 47 +-- .../core/fct_core_pools_eth_mainnet.sql | 24 +- .../core/fct_pool_debt_eth_mainnet.sql | 6 +- .../core/fct_pool_issuance_eth_mainnet.sql | 46 +-- .../fct_pool_issuance_hourly_eth_mainnet.sql | 139 +++++---- .../core/fct_pool_pnl_hourly_eth_mainnet.sql | 238 +++++++------- ...fct_pool_pnl_hourly_reward_eth_mainnet.sql | 76 ++--- .../core/fct_pool_rewards_eth_mainnet.sql | 38 +-- .../fct_pool_rewards_hourly_eth_mainnet.sql | 15 +- ..._pool_rewards_token_hourly_eth_mainnet.sql | 139 +++++---- .../mainnet/prices/fct_prices_eth_mainnet.sql | 36 ++- .../prices/fct_prices_hourly_eth_mainnet.sql | 95 +++--- .../fct_v2_actions_optimism_mainnet.sql | 27 +- .../fct_v2_funding_optimism_mainnet.sql | 51 +-- .../fct_v2_liquidations_optimism_mainnet.sql | 128 ++++---- .../fct_v2_market_stats_optimism_mainnet.sql | 157 +++++----- .../fct_v2_open_interest_optimism_mainnet.sql | 205 ++++++------ ...fct_v2_trade_tracking_optimism_mainnet.sql | 67 ++-- .../fct_v2_trades_optimism_mainnet.sql | 73 +++-- .../fct_v2_transfers_optimism_mainnet.sql | 24 +- ...t_v2_integrator_daily_optimism_mainnet.sql | 165 +++++----- ..._v2_integrator_hourly_optimism_mainnet.sql | 165 +++++----- .../fct_v2_market_daily_optimism_mainnet.sql | 244 ++++++++------- .../fct_v2_market_hourly_optimism_mainnet.sql | 244 ++++++++------- .../fct_v2_stats_daily_optimism_mainnet.sql | 60 ++-- .../fct_v2_stats_hourly_optimism_mainnet.sql | 60 ++-- .../mainnet/blocks_arbitrum_mainnet.sql | 50 +-- .../core_market_updated_arbitrum_mainnet.sql | 52 ++-- .../sepolia/blocks_arbitrum_sepolia.sql | 50 +-- .../core_market_updated_arbitrum_sepolia.sql | 52 ++-- .../raw/base/mainnet/blocks_base_mainnet.sql | 51 +-- .../buyback_processed_base_mainnet.sql | 15 +- .../core/core_market_updated_base_mainnet.sql | 84 ++--- .../perp/perp_market_updated_base_mainnet.sql | 26 +- .../perp_order_committed_base_mainnet.sql | 26 +- .../raw/base/sepolia/blocks_base_sepolia.sql | 51 +-- .../buyback_processed_base_sepolia.sql | 6 +- .../core/core_market_updated_base_sepolia.sql | 84 ++--- .../perp/perp_market_updated_base_sepolia.sql | 26 +- .../perp_order_committed_base_sepolia.sql | 26 +- .../raw/eth/mainnet/blocks_eth_mainnet.sql | 50 +-- .../core/core_market_updated_eth_mainnet.sql | 52 ++-- .../core_vault_collateral_eth_mainnet.sql | 39 +-- .../core/core_vault_debt_eth_mainnet.sql | 33 +- ...layed_order_submitted_optimism_mainnet.sql | 28 +- ...rp_funding_recomputed_optimism_mainnet.sql | 29 +- ...rp_margin_transferred_optimism_mainnet.sql | 30 +- ...p_position_liquidated_optimism_mainnet.sql | 90 +++--- ...erp_position_modified_optimism_mainnet.sql | 110 +++---- 191 files changed, 7874 insertions(+), 7015 deletions(-) diff --git a/transformers/synthetix/.sqlfluff b/transformers/synthetix/.sqlfluff index 375911329..303fe2dbb 100644 --- a/transformers/synthetix/.sqlfluff +++ b/transformers/synthetix/.sqlfluff @@ -34,4 +34,4 @@ capitalisation_policy = lower capitalisation_policy = lower [sqlfluff:rules:ambiguous.column_references] # Number in group by -group_by_and_order_by_style = implicit +group_by_and_order_by_style = explicit diff --git a/transformers/synthetix/.sqlfluffignore b/transformers/synthetix/.sqlfluffignore index 32713bc15..43441a8c5 100644 --- a/transformers/synthetix/.sqlfluffignore +++ b/transformers/synthetix/.sqlfluffignore @@ -1,4 +1,5 @@ target/ dbt_modules/ +dbt_packages/ macros/ templates/ diff --git a/transformers/synthetix/models/marts/arbitrum/mainnet/core/fct_core_account_delegation_arbitrum_mainnet.sql b/transformers/synthetix/models/marts/arbitrum/mainnet/core/fct_core_account_delegation_arbitrum_mainnet.sql index fcb55fa43..e2e745448 100644 --- a/transformers/synthetix/models/marts/arbitrum/mainnet/core/fct_core_account_delegation_arbitrum_mainnet.sql +++ b/transformers/synthetix/models/marts/arbitrum/mainnet/core/fct_core_account_delegation_arbitrum_mainnet.sql @@ -1,54 +1,60 @@ -WITH delegation_changes AS ( - SELECT +with delegation_changes as ( + select block_timestamp, account_id, pool_id, collateral_type, - {{ convert_wei('amount') }} - LAG({{ convert_wei('amount') }}, 1, 0) over ( - PARTITION BY account_id, - pool_id, - collateral_type - ORDER BY + {{ convert_wei('amount') }} + - LAG({{ convert_wei('amount') }}, 1, 0) over ( + partition by + account_id, + pool_id, + collateral_type + order by block_timestamp - ) AS change_in_amount - FROM + ) as change_in_amount + from {{ ref('core_delegation_updated_arbitrum_mainnet') }} ), -cumulative_delegation AS ( - SELECT + +cumulative_delegation as ( + select block_timestamp, account_id, pool_id, collateral_type, SUM(change_in_amount) over ( - PARTITION BY pool_id, - account_id, - collateral_type - ORDER BY + partition by + pool_id, + account_id, + collateral_type + order by block_timestamp - ) AS cumulative_amount_delegated, + ) as cumulative_amount_delegated, ROW_NUMBER() over ( - PARTITION BY pool_id, - account_id, - collateral_type - ORDER BY - block_timestamp DESC - ) AS rn - FROM + partition by + pool_id, + account_id, + collateral_type + order by + block_timestamp desc + ) as rn + from delegation_changes ) -SELECT - block_timestamp AS ts, - CAST( - account_id AS text - ) AS account_id, + +select + block_timestamp, pool_id, collateral_type, - cumulative_amount_delegated AS amount_delegated -FROM + cumulative_amount_delegated as amount_delegated, + CAST( + account_id as text + ) as account_id +from cumulative_delegation -WHERE +where rn = 1 -ORDER BY +order by block_timestamp, collateral_type diff --git a/transformers/synthetix/models/marts/arbitrum/mainnet/core/fct_core_apr_arbitrum_mainnet.sql b/transformers/synthetix/models/marts/arbitrum/mainnet/core/fct_core_apr_arbitrum_mainnet.sql index 5e0017cdf..b442bdcd1 100644 --- a/transformers/synthetix/models/marts/arbitrum/mainnet/core/fct_core_apr_arbitrum_mainnet.sql +++ b/transformers/synthetix/models/marts/arbitrum/mainnet/core/fct_core_apr_arbitrum_mainnet.sql @@ -4,8 +4,8 @@ ) }} -WITH pnl_hourly AS ( - SELECT +with pnl_hourly as ( + select ts, pool_id, collateral_type, @@ -23,160 +23,185 @@ WITH pnl_hourly AS ( 0 ) ) over ( - PARTITION BY pool_id, - collateral_type - ORDER BY + partition by + pool_id, + collateral_type + order by ts - ) AS cumulative_issuance, + ) as cumulative_issuance, SUM( hourly_pnl ) over ( - PARTITION BY pool_id, - collateral_type - ORDER BY + partition by + pool_id, + collateral_type + order by ts - ) AS cumulative_pnl - FROM + ) as cumulative_pnl + from {{ ref('fct_pool_pnl_hourly_arbitrum_mainnet') }} ), -avg_returns AS ( - SELECT + +avg_returns as ( + select ts, pool_id, collateral_type, AVG( hourly_pnl_pct ) over ( - PARTITION BY pool_id, - collateral_type - ORDER BY - ts RANGE BETWEEN INTERVAL '24 HOURS' preceding - AND CURRENT ROW - ) AS avg_24h_pnl_pct, + partition by + pool_id, + collateral_type + order by + ts + range between interval '24 HOURS' preceding + and current row + ) as avg_24h_pnl_pct, AVG( hourly_pnl_pct ) over ( - PARTITION BY pool_id, - collateral_type - ORDER BY - ts RANGE BETWEEN INTERVAL '7 DAYS' preceding - AND CURRENT ROW - ) AS avg_7d_pnl_pct, + partition by + pool_id, + collateral_type + order by + ts + range between interval '7 DAYS' preceding + and current row + ) as avg_7d_pnl_pct, AVG( hourly_pnl_pct ) over ( - PARTITION BY pool_id, - collateral_type - ORDER BY - ts RANGE BETWEEN INTERVAL '28 DAYS' preceding - AND CURRENT ROW - ) AS avg_28d_pnl_pct, + partition by + pool_id, + collateral_type + order by + ts + range between interval '28 DAYS' preceding + and current row + ) as avg_28d_pnl_pct, AVG( hourly_rewards_pct ) over ( - PARTITION BY pool_id, - collateral_type - ORDER BY - ts RANGE BETWEEN INTERVAL '24 HOURS' preceding - AND CURRENT ROW - ) AS avg_24h_rewards_pct, + partition by + pool_id, + collateral_type + order by + ts + range between interval '24 HOURS' preceding + and current row + ) as avg_24h_rewards_pct, AVG( hourly_rewards_pct ) over ( - PARTITION BY pool_id, - collateral_type - ORDER BY - ts RANGE BETWEEN INTERVAL '7 DAYS' preceding - AND CURRENT ROW - ) AS avg_7d_rewards_pct, + partition by + pool_id, + collateral_type + order by + ts + range between interval '7 DAYS' preceding + and current row + ) as avg_7d_rewards_pct, AVG( hourly_rewards_pct ) over ( - PARTITION BY pool_id, - collateral_type - ORDER BY - ts RANGE BETWEEN INTERVAL '28 DAYS' preceding - AND CURRENT ROW - ) AS avg_28d_rewards_pct, + partition by + pool_id, + collateral_type + order by + ts + range between interval '28 DAYS' preceding + and current row + ) as avg_28d_rewards_pct, AVG( hourly_total_pct ) over ( - PARTITION BY pool_id, - collateral_type - ORDER BY - ts RANGE BETWEEN INTERVAL '24 HOURS' preceding - AND CURRENT ROW - ) AS avg_24h_total_pct, + partition by + pool_id, + collateral_type + order by + ts + range between interval '24 HOURS' preceding + and current row + ) as avg_24h_total_pct, AVG( hourly_total_pct ) over ( - PARTITION BY pool_id, - collateral_type - ORDER BY - ts RANGE BETWEEN INTERVAL '7 DAYS' preceding - AND CURRENT ROW - ) AS avg_7d_total_pct, + partition by + pool_id, + collateral_type + order by + ts + range between interval '7 DAYS' preceding + and current row + ) as avg_7d_total_pct, AVG( hourly_total_pct ) over ( - PARTITION BY pool_id, - collateral_type - ORDER BY - ts RANGE BETWEEN INTERVAL '28 DAYS' preceding - AND CURRENT ROW - ) AS avg_28d_total_pct - FROM + partition by + pool_id, + collateral_type + order by + ts + range between interval '28 DAYS' preceding + and current row + ) as avg_28d_total_pct + from pnl_hourly ), -apr_calculations AS ( - SELECT - pnl_hourly.ts AS ts, - pnl_hourly.pool_id AS pool_id, - pnl_hourly.collateral_type AS collateral_type, - pnl_hourly.collateral_value AS collateral_value, - pnl_hourly.debt AS debt, - pnl_hourly.hourly_pnl AS hourly_pnl, - pnl_hourly.cumulative_pnl AS cumulative_pnl, - pnl_hourly.hourly_issuance AS hourly_issuance, - pnl_hourly.cumulative_issuance AS cumulative_issuance, - pnl_hourly.rewards_usd AS rewards_usd, - pnl_hourly.hourly_pnl_pct AS hourly_pnl_pct, - pnl_hourly.hourly_rewards_pct AS hourly_rewards_pct, + +apr_calculations as ( + select + pnl_hourly.ts, + pnl_hourly.pool_id, + pnl_hourly.collateral_type, + pnl_hourly.collateral_value, + pnl_hourly.debt, + pnl_hourly.hourly_pnl, + pnl_hourly.cumulative_pnl, + pnl_hourly.hourly_issuance, + pnl_hourly.cumulative_issuance, + pnl_hourly.rewards_usd, + pnl_hourly.hourly_pnl_pct, + pnl_hourly.hourly_rewards_pct, -- total pnls - avg_returns.avg_24h_total_pct * 24 * 365 AS apr_24h, - avg_returns.avg_7d_total_pct * 24 * 365 AS apr_7d, - avg_returns.avg_28d_total_pct * 24 * 365 AS apr_28d, + avg_returns.avg_24h_total_pct * 24 * 365 as apr_24h, + avg_returns.avg_7d_total_pct * 24 * 365 as apr_7d, + avg_returns.avg_28d_total_pct * 24 * 365 as apr_28d, -- pool pnls - avg_returns.avg_24h_pnl_pct * 24 * 365 AS apr_24h_pnl, - avg_returns.avg_7d_pnl_pct * 24 * 365 AS apr_7d_pnl, - avg_returns.avg_28d_pnl_pct * 24 * 365 AS apr_28d_pnl, + avg_returns.avg_24h_pnl_pct * 24 * 365 as apr_24h_pnl, + avg_returns.avg_7d_pnl_pct * 24 * 365 as apr_7d_pnl, + avg_returns.avg_28d_pnl_pct * 24 * 365 as apr_28d_pnl, -- rewards pnls - avg_returns.avg_24h_rewards_pct * 24 * 365 AS apr_24h_rewards, - avg_returns.avg_7d_rewards_pct * 24 * 365 AS apr_7d_rewards, - avg_returns.avg_28d_rewards_pct * 24 * 365 AS apr_28d_rewards - FROM + avg_returns.avg_24h_rewards_pct * 24 * 365 as apr_24h_rewards, + avg_returns.avg_7d_rewards_pct * 24 * 365 as apr_7d_rewards, + avg_returns.avg_28d_rewards_pct * 24 * 365 as apr_28d_rewards + from pnl_hourly - JOIN avg_returns - ON pnl_hourly.ts = avg_returns.ts - AND pnl_hourly.pool_id = avg_returns.pool_id - AND pnl_hourly.collateral_type = avg_returns.collateral_type + inner join avg_returns + on + pnl_hourly.ts = avg_returns.ts + and pnl_hourly.pool_id = avg_returns.pool_id + and pnl_hourly.collateral_type = avg_returns.collateral_type ), -apy_calculations AS ( - SELECT + +apy_calculations as ( + select *, - (power(1 + apr_24h / 8760, 8760) - 1) AS apy_24h, - (power(1 + apr_7d / 8760, 8760) - 1) AS apy_7d, - (power(1 + apr_28d / 8760, 8760) - 1) AS apy_28d, - (power(1 + apr_24h_pnl / 8760, 8760) - 1) AS apy_24h_pnl, - (power(1 + apr_7d_pnl / 8760, 8760) - 1) AS apy_7d_pnl, - (power(1 + apr_28d_pnl / 8760, 8760) - 1) AS apy_28d_pnl, - (power(1 + apr_24h_rewards / 8760, 8760) - 1) AS apy_24h_rewards, - (power(1 + apr_7d_rewards / 8760, 8760) - 1) AS apy_7d_rewards, - (power(1 + apr_28d_rewards / 8760, 8760) - 1) AS apy_28d_rewards - FROM + (POWER(1 + apr_24h / 8760, 8760) - 1) as apy_24h, + (POWER(1 + apr_7d / 8760, 8760) - 1) as apy_7d, + (POWER(1 + apr_28d / 8760, 8760) - 1) as apy_28d, + (POWER(1 + apr_24h_pnl / 8760, 8760) - 1) as apy_24h_pnl, + (POWER(1 + apr_7d_pnl / 8760, 8760) - 1) as apy_7d_pnl, + (POWER(1 + apr_28d_pnl / 8760, 8760) - 1) as apy_28d_pnl, + (POWER(1 + apr_24h_rewards / 8760, 8760) - 1) as apy_24h_rewards, + (POWER(1 + apr_7d_rewards / 8760, 8760) - 1) as apy_7d_rewards, + (POWER(1 + apr_28d_rewards / 8760, 8760) - 1) as apy_28d_rewards + from apr_calculations ) -SELECT + +select ts, pool_id, collateral_type, @@ -207,7 +232,7 @@ SELECT apy_7d_rewards, apr_28d_rewards, apy_28d_rewards -FROM +from apy_calculations -ORDER BY +order by ts diff --git a/transformers/synthetix/models/marts/arbitrum/mainnet/core/fct_core_apr_rewards_arbitrum_mainnet.sql b/transformers/synthetix/models/marts/arbitrum/mainnet/core/fct_core_apr_rewards_arbitrum_mainnet.sql index b888f4854..bbb72fc58 100644 --- a/transformers/synthetix/models/marts/arbitrum/mainnet/core/fct_core_apr_rewards_arbitrum_mainnet.sql +++ b/transformers/synthetix/models/marts/arbitrum/mainnet/core/fct_core_apr_rewards_arbitrum_mainnet.sql @@ -4,8 +4,8 @@ ) }} -WITH pnl_hourly AS ( - SELECT +with pnl_hourly as ( + select ts, pool_id, collateral_type, @@ -13,11 +13,12 @@ WITH pnl_hourly AS ( collateral_value, rewards_usd, hourly_rewards_pct - FROM + from {{ ref('fct_pool_pnl_hourly_reward_arbitrum_mainnet') }} ), -avg_returns AS ( - SELECT + +avg_returns as ( + select ts, pool_id, collateral_type, @@ -25,66 +26,76 @@ avg_returns AS ( AVG( hourly_rewards_pct ) over ( - PARTITION BY pool_id, - collateral_type, - reward_token - ORDER BY - ts RANGE BETWEEN INTERVAL '24 HOURS' preceding - AND CURRENT ROW - ) AS avg_24h_rewards_pct, + partition by + pool_id, + collateral_type, + reward_token + order by + ts + range between interval '24 HOURS' preceding + and current row + ) as avg_24h_rewards_pct, AVG( hourly_rewards_pct ) over ( - PARTITION BY pool_id, - collateral_type, - reward_token - ORDER BY - ts RANGE BETWEEN INTERVAL '7 DAYS' preceding - AND CURRENT ROW - ) AS avg_7d_rewards_pct, + partition by + pool_id, + collateral_type, + reward_token + order by + ts + range between interval '7 DAYS' preceding + and current row + ) as avg_7d_rewards_pct, AVG( hourly_rewards_pct ) over ( - PARTITION BY pool_id, - collateral_type, - reward_token - ORDER BY - ts RANGE BETWEEN INTERVAL '28 DAYS' preceding - AND CURRENT ROW - ) AS avg_28d_rewards_pct - FROM + partition by + pool_id, + collateral_type, + reward_token + order by + ts + range between interval '28 DAYS' preceding + and current row + ) as avg_28d_rewards_pct + from pnl_hourly ), -apr_calculations AS ( - SELECT - pnl_hourly.ts AS ts, - pnl_hourly.pool_id AS pool_id, - pnl_hourly.collateral_type AS collateral_type, - pnl_hourly.reward_token AS reward_token, - pnl_hourly.collateral_value AS collateral_value, - pnl_hourly.rewards_usd AS rewards_usd, - pnl_hourly.hourly_rewards_pct AS hourly_rewards_pct, - avg_returns.avg_24h_rewards_pct * 24 * 365 AS apr_24h_rewards, - avg_returns.avg_7d_rewards_pct * 24 * 365 AS apr_7d_rewards, - avg_returns.avg_28d_rewards_pct * 24 * 365 AS apr_28d_rewards - FROM + +apr_calculations as ( + select + pnl_hourly.ts, + pnl_hourly.pool_id, + pnl_hourly.collateral_type, + pnl_hourly.reward_token, + pnl_hourly.collateral_value, + pnl_hourly.rewards_usd, + pnl_hourly.hourly_rewards_pct, + avg_returns.avg_24h_rewards_pct * 24 * 365 as apr_24h_rewards, + avg_returns.avg_7d_rewards_pct * 24 * 365 as apr_7d_rewards, + avg_returns.avg_28d_rewards_pct * 24 * 365 as apr_28d_rewards + from pnl_hourly - JOIN avg_returns - ON pnl_hourly.ts = avg_returns.ts - AND pnl_hourly.pool_id = avg_returns.pool_id - AND pnl_hourly.collateral_type = avg_returns.collateral_type - AND pnl_hourly.reward_token = avg_returns.reward_token + inner join avg_returns + on + pnl_hourly.ts = avg_returns.ts + and pnl_hourly.pool_id = avg_returns.pool_id + and pnl_hourly.collateral_type = avg_returns.collateral_type + and pnl_hourly.reward_token = avg_returns.reward_token ), -apy_calculations AS ( - SELECT + +apy_calculations as ( + select *, - (power(1 + apr_24h_rewards / 8760, 8760) - 1) AS apy_24h_rewards, - (power(1 + apr_7d_rewards / 8760, 8760) - 1) AS apy_7d_rewards, - (power(1 + apr_28d_rewards / 8760, 8760) - 1) AS apy_28d_rewards - FROM + (POWER(1 + apr_24h_rewards / 8760, 8760) - 1) as apy_24h_rewards, + (POWER(1 + apr_7d_rewards / 8760, 8760) - 1) as apy_7d_rewards, + (POWER(1 + apr_28d_rewards / 8760, 8760) - 1) as apy_28d_rewards + from apr_calculations ) -SELECT + +select ts, pool_id, collateral_type, @@ -98,7 +109,7 @@ SELECT apy_7d_rewards, apr_28d_rewards, apy_28d_rewards -FROM +from apy_calculations -ORDER BY +order by ts diff --git a/transformers/synthetix/models/marts/arbitrum/mainnet/core/fct_core_market_updated_arbitrum_mainnet.sql b/transformers/synthetix/models/marts/arbitrum/mainnet/core/fct_core_market_updated_arbitrum_mainnet.sql index 128091c1c..b3bca73e2 100644 --- a/transformers/synthetix/models/marts/arbitrum/mainnet/core/fct_core_market_updated_arbitrum_mainnet.sql +++ b/transformers/synthetix/models/marts/arbitrum/mainnet/core/fct_core_market_updated_arbitrum_mainnet.sql @@ -1,29 +1,30 @@ -WITH market_updated AS ( - SELECT +with market_updated as ( + select + id, + block_timestamp, + block_number, + transaction_hash, + contract, + event_name, + market_id, + net_issuance, + sender, + collateral_type, + credit_capacity, + token_amount + from + {{ ref('core_market_updated_arbitrum_mainnet') }} +) + +select id, - block_timestamp, - block_number, + block_timestamp as ts, transaction_hash, - contract, event_name, market_id, - net_issuance, - sender, collateral_type, - credit_capacity, - token_amount - FROM - {{ ref('core_market_updated_arbitrum_mainnet') }} -) -SELECT - id, - block_timestamp AS ts, - transaction_hash, - event_name, - market_id, - collateral_type, - {{ convert_wei("credit_capacity") }} AS credit_capacity, - {{ convert_wei("net_issuance") }} AS net_issuance, - {{ convert_wei("token_amount") }} AS token_amount -FROM - market_updated + {{ convert_wei("credit_capacity") }} as credit_capacity, + {{ convert_wei("net_issuance") }} as net_issuance, + {{ convert_wei("token_amount") }} as token_amount +from + market_updated diff --git a/transformers/synthetix/models/marts/arbitrum/mainnet/core/fct_core_pool_collateral_arbitrum_mainnet.sql b/transformers/synthetix/models/marts/arbitrum/mainnet/core/fct_core_pool_collateral_arbitrum_mainnet.sql index 1c8f8db34..1ce4576ae 100644 --- a/transformers/synthetix/models/marts/arbitrum/mainnet/core/fct_core_pool_collateral_arbitrum_mainnet.sql +++ b/transformers/synthetix/models/marts/arbitrum/mainnet/core/fct_core_pool_collateral_arbitrum_mainnet.sql @@ -1,35 +1,39 @@ -WITH events AS ( - SELECT - block_timestamp, - {{ convert_wei('token_amount') }} AS token_amount, - collateral_type - FROM - {{ ref('core_deposited_arbitrum_mainnet') }} - UNION ALL - SELECT - block_timestamp,- {{ convert_wei('token_amount') }} AS token_amount, - collateral_type - FROM - {{ ref('core_withdrawn_arbitrum_mainnet') }} +with events as ( + select + block_timestamp, + {{ convert_wei('token_amount') }} as token_amount, + collateral_type + from + {{ ref('core_deposited_arbitrum_mainnet') }} + union all + select + block_timestamp, + -{{ convert_wei('token_amount') }} as token_amount, + collateral_type + from + {{ ref('core_withdrawn_arbitrum_mainnet') }} ), -ranked_events AS ( - SELECT - *, - SUM(token_amount) over ( - PARTITION BY collateral_type - ORDER BY - block_timestamp rows BETWEEN unbounded preceding - AND CURRENT ROW - ) AS amount_deposited - FROM - events + +ranked_events as ( + select + *, + SUM(token_amount) over ( + partition by collateral_type + order by + block_timestamp + rows between unbounded preceding + and current row + ) as amount_deposited + from + events ) -SELECT - block_timestamp AS ts, - collateral_type, - amount_deposited -FROM - ranked_events -ORDER BY - block_timestamp, - collateral_type + +select + block_timestamp as ts, + collateral_type, + amount_deposited +from + ranked_events +order by + block_timestamp, + collateral_type diff --git a/transformers/synthetix/models/marts/arbitrum/mainnet/core/fct_core_pool_delegation_arbitrum_mainnet.sql b/transformers/synthetix/models/marts/arbitrum/mainnet/core/fct_core_pool_delegation_arbitrum_mainnet.sql index 559551d55..e2385a41c 100644 --- a/transformers/synthetix/models/marts/arbitrum/mainnet/core/fct_core_pool_delegation_arbitrum_mainnet.sql +++ b/transformers/synthetix/models/marts/arbitrum/mainnet/core/fct_core_pool_delegation_arbitrum_mainnet.sql @@ -1,40 +1,45 @@ -WITH delegation_changes AS ( - SELECT +with delegation_changes as ( + select block_timestamp, account_id, pool_id, collateral_type, - {{ convert_wei('amount') }} - LAG({{ convert_wei('amount') }}, 1, 0) over ( - PARTITION BY account_id, - pool_id, - collateral_type - ORDER BY + {{ convert_wei('amount') }} + - LAG({{ convert_wei('amount') }}, 1, 0) over ( + partition by + account_id, + pool_id, + collateral_type + order by block_timestamp - ) AS change_in_amount - FROM + ) as change_in_amount + from {{ ref('core_delegation_updated_arbitrum_mainnet') }} ), -cumulative_delegation AS ( - SELECT + +cumulative_delegation as ( + select block_timestamp, pool_id, collateral_type, SUM(change_in_amount) over ( - PARTITION BY pool_id, - collateral_type - ORDER BY + partition by + pool_id, + collateral_type + order by block_timestamp - ) AS cumulative_amount_delegated - FROM + ) as cumulative_amount_delegated + from delegation_changes ) -SELECT - block_timestamp AS ts, + +select + block_timestamp as ts, pool_id, collateral_type, - cumulative_amount_delegated AS amount_delegated -FROM + cumulative_amount_delegated as amount_delegated +from cumulative_delegation -ORDER BY +order by block_timestamp, collateral_type diff --git a/transformers/synthetix/models/marts/arbitrum/mainnet/core/fct_core_pools_arbitrum_mainnet.sql b/transformers/synthetix/models/marts/arbitrum/mainnet/core/fct_core_pools_arbitrum_mainnet.sql index 75f0cf221..be6c70709 100644 --- a/transformers/synthetix/models/marts/arbitrum/mainnet/core/fct_core_pools_arbitrum_mainnet.sql +++ b/transformers/synthetix/models/marts/arbitrum/mainnet/core/fct_core_pools_arbitrum_mainnet.sql @@ -1,13 +1,13 @@ -WITH base AS ( - SELECT - pool_id AS id, - block_timestamp AS created_ts, - block_number, - owner - FROM - {{ ref('core_pool_created_arbitrum_mainnet') }} +with base as ( + select + pool_id as id, + block_timestamp as created_ts, + block_number, + owner + from + {{ ref('core_pool_created_arbitrum_mainnet') }} ) -SELECT - * -FROM - base + +select * +from + base diff --git a/transformers/synthetix/models/marts/arbitrum/mainnet/core/fct_pool_debt_arbitrum_mainnet.sql b/transformers/synthetix/models/marts/arbitrum/mainnet/core/fct_pool_debt_arbitrum_mainnet.sql index 349495e9c..e480c58d3 100644 --- a/transformers/synthetix/models/marts/arbitrum/mainnet/core/fct_pool_debt_arbitrum_mainnet.sql +++ b/transformers/synthetix/models/marts/arbitrum/mainnet/core/fct_pool_debt_arbitrum_mainnet.sql @@ -1,10 +1,10 @@ -SELECT +select ts, block_number, pool_id, collateral_type, debt -FROM +from {{ ref('core_vault_debt_arbitrum_mainnet') }} -ORDER BY +order by ts diff --git a/transformers/synthetix/models/marts/arbitrum/mainnet/core/fct_pool_issuance_arbitrum_mainnet.sql b/transformers/synthetix/models/marts/arbitrum/mainnet/core/fct_pool_issuance_arbitrum_mainnet.sql index 5e8afaae7..c41ca72eb 100644 --- a/transformers/synthetix/models/marts/arbitrum/mainnet/core/fct_pool_issuance_arbitrum_mainnet.sql +++ b/transformers/synthetix/models/marts/arbitrum/mainnet/core/fct_pool_issuance_arbitrum_mainnet.sql @@ -1,39 +1,39 @@ -WITH burns AS ( - SELECT - block_timestamp AS ts, +with burns as ( + select + block_timestamp as ts, block_number, transaction_hash, pool_id, collateral_type, account_id, - -1 * {{ convert_wei('amount') }} AS amount - FROM + -1 * {{ convert_wei('amount') }} as amount + from {{ ref('core_usd_burned_arbitrum_mainnet') }} - ORDER BY - block_timestamp DESC + order by + block_timestamp desc ), -mints AS ( - SELECT - block_timestamp AS ts, + +mints as ( + select + block_timestamp as ts, block_number, transaction_hash, pool_id, collateral_type, account_id, - {{ convert_wei('amount') }} AS amount - FROM + {{ convert_wei('amount') }} as amount + from {{ ref('core_usd_minted_arbitrum_mainnet') }} - ORDER BY - block_timestamp DESC + order by + block_timestamp desc ) -SELECT - * -FROM + +select * +from burns -UNION ALL -SELECT - * -FROM +union all +select * +from mints -ORDER BY - ts DESC +order by + ts desc diff --git a/transformers/synthetix/models/marts/arbitrum/mainnet/core/fct_pool_issuance_hourly_arbitrum_mainnet.sql b/transformers/synthetix/models/marts/arbitrum/mainnet/core/fct_pool_issuance_hourly_arbitrum_mainnet.sql index cf428fcc9..82c38c74c 100644 --- a/transformers/synthetix/models/marts/arbitrum/mainnet/core/fct_pool_issuance_hourly_arbitrum_mainnet.sql +++ b/transformers/synthetix/models/marts/arbitrum/mainnet/core/fct_pool_issuance_hourly_arbitrum_mainnet.sql @@ -1,110 +1,119 @@ -WITH dim AS ( - SELECT - generate_series(DATE_TRUNC('hour', MIN(t.ts)), DATE_TRUNC('hour', MAX(t.ts)), '1 hour' :: INTERVAL) AS ts, +with dim as ( + select m.pool_id, - m.collateral_type - FROM + m.collateral_type, + generate_series( + date_trunc('hour', min(t.ts)), + date_trunc('hour', max(t.ts)), + '1 hour'::INTERVAL + ) as ts + from ( - SELECT - ts - FROM - {{ ref('fct_pool_issuance_arbitrum_mainnet') }} - ) AS t - CROSS JOIN ( - SELECT - DISTINCT pool_id, - collateral_type - FROM + select ts + from {{ ref('fct_pool_issuance_arbitrum_mainnet') }} - ) AS m - GROUP BY + ) as t + cross join ( + select distinct + pool_id, + collateral_type + from + {{ ref('fct_pool_issuance_arbitrum_mainnet') }} + ) as m + group by m.pool_id, m.collateral_type ), -max_debt_block AS ( - SELECT - DATE_TRUNC( - 'hour', - ts - ) AS HOUR, + +max_debt_block as ( + select pool_id, collateral_type, - MAX(block_number) AS max_block_number - FROM + date_trunc( + 'hour', + ts + ) as hour, + max(block_number) as max_block_number + from {{ ref('fct_pool_debt_arbitrum_mainnet') }} - GROUP BY - DATE_TRUNC( + group by + date_trunc( 'hour', ts ), pool_id, collateral_type ), -filt_issuance AS ( - SELECT - CASE - WHEN i.block_number <= d.max_block_number - OR d.max_block_number IS NULL THEN i.ts - ELSE i.ts + INTERVAL '1 hour' - END AS ts, + +filt_issuance as ( + select i.pool_id, i.collateral_type, - i.amount - FROM + i.amount, + case + when + i.block_number <= d.max_block_number + or d.max_block_number is null then i.ts + else i.ts + INTERVAL '1 hour' + end as ts + from {{ ref('fct_pool_issuance_arbitrum_mainnet') }} - i - LEFT JOIN max_debt_block d - ON DATE_TRUNC( + as i + left join max_debt_block as d + on date_trunc( 'hour', i.ts ) = d.hour - AND i.pool_id = d.pool_id - AND LOWER( + and i.pool_id = d.pool_id + and lower( i.collateral_type - ) = LOWER( + ) = lower( d.collateral_type ) - WHERE + where i.block_number <= ( - SELECT - MAX( + select + max( max_block_number ) - FROM + from max_debt_block ) ), -issuance AS ( - SELECT - DATE_TRUNC( + +issuance as ( + select + date_trunc( 'hour', ts - ) AS ts, + ) as ts, pool_id, collateral_type, - SUM(amount) AS hourly_issuance - FROM + sum(amount) as hourly_issuance + from filt_issuance - GROUP BY + group by 1, 2, 3 ) -SELECT + +select dim.ts, dim.pool_id, dim.collateral_type, - COALESCE( + coalesce( i.hourly_issuance, 0 - ) AS hourly_issuance -FROM + ) as hourly_issuance +from dim - LEFT JOIN issuance i - ON dim.pool_id = i.pool_id - AND LOWER( - dim.collateral_type - ) = LOWER( - i.collateral_type - ) - AND dim.ts = i.ts +left join issuance as i + on + dim.pool_id = i.pool_id + and lower( + dim.collateral_type + ) = lower( + i.collateral_type + ) + and dim.ts = i.ts diff --git a/transformers/synthetix/models/marts/arbitrum/mainnet/core/fct_pool_pnl_hourly_arbitrum_mainnet.sql b/transformers/synthetix/models/marts/arbitrum/mainnet/core/fct_pool_pnl_hourly_arbitrum_mainnet.sql index cec20fcbd..f1692cac5 100644 --- a/transformers/synthetix/models/marts/arbitrum/mainnet/core/fct_pool_pnl_hourly_arbitrum_mainnet.sql +++ b/transformers/synthetix/models/marts/arbitrum/mainnet/core/fct_pool_pnl_hourly_arbitrum_mainnet.sql @@ -3,78 +3,91 @@ unique_key = ['ts', 'pool_id', 'collateral_type'], ) }} -WITH dim AS ( - SELECT - generate_series(DATE_TRUNC('hour', MIN(t.ts)), DATE_TRUNC('hour', MAX(t.ts)), '1 hour' :: INTERVAL) AS ts, +with dim as ( + select p.pool_id, - p.collateral_type - FROM + p.collateral_type, + generate_series( + date_trunc('hour', min(t.ts)), + date_trunc('hour', max(t.ts)), + '1 hour'::INTERVAL + ) as ts + from ( - SELECT - ts - FROM + select ts + from {{ ref('fct_pool_debt_arbitrum_mainnet') }} - ) AS t - CROSS JOIN ( - SELECT - DISTINCT pool_id, - collateral_type - FROM - {{ ref('fct_pool_debt_arbitrum_mainnet') }} - ) AS p -GROUP BY - p.pool_id, - p.collateral_type + ) as t + cross join ( + select distinct + pool_id, + collateral_type + from + {{ ref('fct_pool_debt_arbitrum_mainnet') }} + ) as p + group by + p.pool_id, + p.collateral_type ), -issuance AS ( - SELECT + +issuance as ( + select ts, pool_id, collateral_type, hourly_issuance - FROM + from {{ ref('fct_pool_issuance_hourly_arbitrum_mainnet') }} ), -debt AS ( - SELECT - DISTINCT DATE_TRUNC( - 'hour', - ts - ) AS ts, + +debt as ( + select distinct pool_id, collateral_type, - LAST_VALUE(debt) over (PARTITION BY DATE_TRUNC('hour', ts), pool_id, collateral_type - ORDER BY - ts rows BETWEEN unbounded preceding - AND unbounded following) AS debt - FROM - {{ ref('fct_pool_debt_arbitrum_mainnet') }} -), -collateral AS ( - SELECT - DISTINCT DATE_TRUNC( + date_trunc( 'hour', ts - ) AS ts, + ) as ts, + last_value(debt) over ( + partition by date_trunc('hour', ts), pool_id, collateral_type + order by + ts + rows between unbounded preceding + and unbounded following + ) as debt + from + {{ ref('fct_pool_debt_arbitrum_mainnet') }} +), + +collateral as ( + select distinct pool_id, collateral_type, - LAST_VALUE(collateral_value) over (PARTITION BY DATE_TRUNC('hour', ts), pool_id, collateral_type - ORDER BY - ts rows BETWEEN unbounded preceding - AND unbounded following) AS collateral_value - FROM + date_trunc( + 'hour', + ts + ) as ts, + last_value(collateral_value) over ( + partition by date_trunc('hour', ts), pool_id, collateral_type + order by + ts + rows between unbounded preceding + and unbounded following + ) as collateral_value + from {{ ref('core_vault_collateral_arbitrum_mainnet') }} - WHERE + where pool_id = 1 ), -ffill AS ( - SELECT + +ffill as ( + select dim.ts, dim.pool_id, dim.collateral_type, coalesce( last(debt) over ( - partition by dim.collateral_type, dim.pool_id + partition by dim.collateral_type, dim.pool_id order by dim.ts rows between unbounded preceding and current row ), @@ -82,96 +95,113 @@ ffill AS ( ) as debt, coalesce( last(collateral_value) over ( - partition by dim.collateral_type, dim.pool_id + partition by dim.collateral_type, dim.pool_id order by dim.ts - rows between unbounded preceding and current row + rows between unbounded preceding and current row ), 0 ) as collateral_value - FROM + from dim - LEFT JOIN debt - ON dim.ts = debt.ts - AND dim.pool_id = debt.pool_id - AND dim.collateral_type = debt.collateral_type - LEFT JOIN collateral - ON dim.ts = collateral.ts - AND dim.pool_id = collateral.pool_id - AND dim.collateral_type = collateral.collateral_type + left join debt + on + dim.ts = debt.ts + and dim.pool_id = debt.pool_id + and dim.collateral_type = debt.collateral_type + left join collateral + on + dim.ts = collateral.ts + and dim.pool_id = collateral.pool_id + and dim.collateral_type = collateral.collateral_type ), -hourly_pnl AS ( - SELECT + +hourly_pnl as ( + select ts, pool_id, collateral_type, collateral_value, debt, - COALESCE(LAG(debt) over (PARTITION BY pool_id, collateral_type - ORDER BY - ts) - debt, 0) AS hourly_pnl - FROM + coalesce(lag(debt) over ( + partition by pool_id, collateral_type + order by + ts + ) - debt, 0) as hourly_pnl + from ffill ), -hourly_rewards AS ( - SELECT + +hourly_rewards as ( + select ts, pool_id, collateral_type, rewards_usd - FROM + from {{ ref('fct_pool_rewards_hourly_arbitrum_mainnet') }} ), -hourly_returns AS ( - SELECT + +hourly_returns as ( + select pnl.ts, pnl.pool_id, pnl.collateral_type, pnl.collateral_value, pnl.debt, - COALESCE( + coalesce( iss.hourly_issuance, 0 - ) hourly_issuance, - pnl.hourly_pnl + COALESCE( + ) as hourly_issuance, + pnl.hourly_pnl + coalesce( iss.hourly_issuance, 0 - ) AS hourly_pnl, - COALESCE( + ) as hourly_pnl, + coalesce( rewards.rewards_usd, 0 - ) AS rewards_usd, - CASE - WHEN pnl.collateral_value = 0 THEN 0 - ELSE COALESCE( + ) as rewards_usd, + case + when pnl.collateral_value = 0 then 0 + else coalesce( rewards.rewards_usd, 0 ) / pnl.collateral_value - END AS hourly_rewards_pct, - CASE - WHEN pnl.collateral_value = 0 THEN 0 - ELSE (COALESCE(iss.hourly_issuance, 0) + pnl.hourly_pnl) / pnl.collateral_value - END AS hourly_pnl_pct, - CASE - WHEN pnl.collateral_value = 0 THEN 0 - ELSE (COALESCE(rewards.rewards_usd, 0) + pnl.hourly_pnl + COALESCE(iss.hourly_issuance, 0)) / pnl.collateral_value - END AS hourly_total_pct - FROM - hourly_pnl pnl - LEFT JOIN hourly_rewards rewards - ON pnl.ts = rewards.ts - AND pnl.pool_id = rewards.pool_id - AND pnl.collateral_type = rewards.collateral_type - LEFT JOIN issuance iss - ON pnl.ts = iss.ts - AND pnl.pool_id = iss.pool_id - AND LOWER( - pnl.collateral_type - ) = LOWER( - iss.collateral_type - ) + end as hourly_rewards_pct, + case + when pnl.collateral_value = 0 then 0 + else + (coalesce(iss.hourly_issuance, 0) + pnl.hourly_pnl) + / pnl.collateral_value + end as hourly_pnl_pct, + case + when pnl.collateral_value = 0 then 0 + else + ( + coalesce(rewards.rewards_usd, 0) + + pnl.hourly_pnl + + coalesce(iss.hourly_issuance, 0) + ) + / pnl.collateral_value + end as hourly_total_pct + from + hourly_pnl as pnl + left join hourly_rewards as rewards + on + pnl.ts = rewards.ts + and pnl.pool_id = rewards.pool_id + and pnl.collateral_type = rewards.collateral_type + left join issuance as iss + on + pnl.ts = iss.ts + and pnl.pool_id = iss.pool_id + and lower( + pnl.collateral_type + ) = lower( + iss.collateral_type + ) ) -SELECT +select ts, pool_id, collateral_type, @@ -183,5 +213,5 @@ SELECT hourly_pnl_pct, hourly_rewards_pct, hourly_total_pct -FROM +from hourly_returns diff --git a/transformers/synthetix/models/marts/arbitrum/mainnet/core/fct_pool_pnl_hourly_reward_arbitrum_mainnet.sql b/transformers/synthetix/models/marts/arbitrum/mainnet/core/fct_pool_pnl_hourly_reward_arbitrum_mainnet.sql index 6c5c30ec2..9fc13d963 100644 --- a/transformers/synthetix/models/marts/arbitrum/mainnet/core/fct_pool_pnl_hourly_reward_arbitrum_mainnet.sql +++ b/transformers/synthetix/models/marts/arbitrum/mainnet/core/fct_pool_pnl_hourly_reward_arbitrum_mainnet.sql @@ -3,79 +3,85 @@ unique_key = ['ts', 'pool_id', 'collateral_type', 'reward_token'], ) }} -WITH dim AS ( +with dim as ( - SELECT - generate_series(DATE_TRUNC('hour', MIN(t.ts)), DATE_TRUNC('hour', MAX(t.ts)), '1 hour' :: INTERVAL) AS ts, + select t.pool_id, t.collateral_type, t.collateral_value, - p.token_symbol AS reward_token - FROM + p.token_symbol as reward_token, + generate_series( + date_trunc('hour', min(t.ts)), + date_trunc('hour', max(t.ts)), + '1 hour'::INTERVAL + ) as ts + from ( - SELECT + select ts, collateral_type, pool_id, collateral_value - FROM + from {{ ref('fct_pool_pnl_hourly_arbitrum_mainnet') }} group by ts, collateral_type, pool_id, collateral_value - ) AS t - CROSS JOIN ( - SELECT - DISTINCT token_symbol - FROM - {{ ref('fct_pool_rewards_token_hourly_arbitrum_mainnet') }} - ) AS p - GROUP BY + ) as t + cross join ( + select distinct token_symbol + from + {{ ref('fct_pool_rewards_token_hourly_arbitrum_mainnet') }} + ) as p + group by t.pool_id, t.collateral_type, t.collateral_value, p.token_symbol ), -reward_hourly_token AS ( - SELECT + +reward_hourly_token as ( + select ts, pool_id, collateral_type, - token_symbol AS reward_token, - SUM( + token_symbol as reward_token, + sum( rewards_usd - ) AS rewards_usd - FROM + ) as rewards_usd + from {{ ref('fct_pool_rewards_token_hourly_arbitrum_mainnet') }} - GROUP BY + group by ts, pool_id, collateral_type, token_symbol ) -SELECT + +select dim.ts, dim.pool_id, dim.collateral_type, dim.collateral_value, dim.reward_token, - COALESCE( + coalesce( reward_hourly_token.rewards_usd, 0 - ) AS rewards_usd, - CASE - WHEN dim.collateral_value = 0 THEN 0 - ELSE COALESCE( + ) as rewards_usd, + case + when dim.collateral_value = 0 then 0 + else coalesce( reward_hourly_token.rewards_usd, 0 ) / dim.collateral_value - END AS hourly_rewards_pct -FROM + end as hourly_rewards_pct +from dim - LEFT JOIN reward_hourly_token - ON dim.ts = reward_hourly_token.ts - AND dim.pool_id = reward_hourly_token.pool_id - AND dim.collateral_type = reward_hourly_token.collateral_type - and dim.reward_token = reward_hourly_token.reward_token +left join reward_hourly_token + on + dim.ts = reward_hourly_token.ts + and dim.pool_id = reward_hourly_token.pool_id + and dim.collateral_type = reward_hourly_token.collateral_type + and dim.reward_token = reward_hourly_token.reward_token diff --git a/transformers/synthetix/models/marts/arbitrum/mainnet/core/fct_pool_rewards_arbitrum_mainnet.sql b/transformers/synthetix/models/marts/arbitrum/mainnet/core/fct_pool_rewards_arbitrum_mainnet.sql index 8544e01ec..e75403586 100644 --- a/transformers/synthetix/models/marts/arbitrum/mainnet/core/fct_pool_rewards_arbitrum_mainnet.sql +++ b/transformers/synthetix/models/marts/arbitrum/mainnet/core/fct_pool_rewards_arbitrum_mainnet.sql @@ -1,25 +1,27 @@ -WITH rewards_distributed AS ( - SELECT - block_timestamp AS ts, +with rewards_distributed as ( + select + block_timestamp as ts, CAST( - pool_id AS INTEGER - ) AS pool_id, + pool_id as INTEGER + ) as pool_id, collateral_type, distributor, - {{ convert_wei('amount') }} AS amount, - TO_TIMESTAMP("start") AS ts_start, + {{ convert_wei('amount') }} as amount, + TO_TIMESTAMP("start") as ts_start, "duration" - FROM + from {{ ref('core_rewards_distributed_arbitrum_mainnet') }} ), -distributors AS ( - SELECT - CAST(distributor_address AS TEXT) AS distributor_address, - CAST(token_symbol AS TEXT) AS token_symbol - FROM + +distributors as ( + select + CAST(distributor_address as TEXT) as distributor_address, + CAST(token_symbol as TEXT) as token_symbol + from {{ ref('arbitrum_mainnet_reward_distributors') }} ) -SELECT + +select rd.ts, rd.pool_id, rd.collateral_type, @@ -28,8 +30,8 @@ SELECT rd.amount, rd.ts_start, rd.duration -FROM - rewards_distributed rd - join distributors on rd.distributor = distributors.distributor_address -ORDER BY +from + rewards_distributed as rd +inner join distributors on rd.distributor = distributors.distributor_address +order by ts diff --git a/transformers/synthetix/models/marts/arbitrum/mainnet/core/fct_pool_rewards_hourly_arbitrum_mainnet.sql b/transformers/synthetix/models/marts/arbitrum/mainnet/core/fct_pool_rewards_hourly_arbitrum_mainnet.sql index 625070cfb..bbf7ede73 100644 --- a/transformers/synthetix/models/marts/arbitrum/mainnet/core/fct_pool_rewards_hourly_arbitrum_mainnet.sql +++ b/transformers/synthetix/models/marts/arbitrum/mainnet/core/fct_pool_rewards_hourly_arbitrum_mainnet.sql @@ -1,20 +1,21 @@ -WITH token_hourly AS ( - SELECT +with token_hourly as ( + select ts, pool_id, collateral_type, rewards_usd - FROM + from {{ ref('fct_pool_rewards_token_hourly_arbitrum_mainnet') }} ) -SELECT + +select ts, pool_id, collateral_type, - SUM(rewards_usd) AS rewards_usd -FROM + SUM(rewards_usd) as rewards_usd +from token_hourly -GROUP BY +group by ts, pool_id, collateral_type diff --git a/transformers/synthetix/models/marts/arbitrum/mainnet/core/fct_pool_rewards_token_hourly_arbitrum_mainnet.sql b/transformers/synthetix/models/marts/arbitrum/mainnet/core/fct_pool_rewards_token_hourly_arbitrum_mainnet.sql index 1c1164de7..b0a69354c 100644 --- a/transformers/synthetix/models/marts/arbitrum/mainnet/core/fct_pool_rewards_token_hourly_arbitrum_mainnet.sql +++ b/transformers/synthetix/models/marts/arbitrum/mainnet/core/fct_pool_rewards_token_hourly_arbitrum_mainnet.sql @@ -1,28 +1,32 @@ -WITH dim AS ( - SELECT - generate_series(DATE_TRUNC('hour', MIN(t.ts)), DATE_TRUNC('hour', MAX(t.ts)), '1 hour' :: INTERVAL) AS ts, +with dim as ( + select m.pool_id, - m.collateral_type - FROM + m.collateral_type, + generate_series( + date_trunc('hour', min(t.ts)), + date_trunc('hour', max(t.ts)), + '1 hour'::INTERVAL + ) as ts + from ( - SELECT - ts - FROM - {{ ref('fct_pool_debt_arbitrum_mainnet') }} - ) AS t - CROSS JOIN ( - SELECT - DISTINCT pool_id, - collateral_type - FROM + select ts + from {{ ref('fct_pool_debt_arbitrum_mainnet') }} - ) AS m - GROUP BY + ) as t + cross join ( + select distinct + pool_id, + collateral_type + from + {{ ref('fct_pool_debt_arbitrum_mainnet') }} + ) as m + group by m.pool_id, m.collateral_type ), -rewards_distributed AS ( - SELECT + +rewards_distributed as ( + select ts, pool_id, collateral_type, @@ -31,11 +35,12 @@ rewards_distributed AS ( amount, ts_start, "duration" - FROM + from {{ ref('fct_pool_rewards_arbitrum_mainnet') }} ), -hourly_distributions AS ( - SELECT + +hourly_distributions as ( + select dim.ts, dim.pool_id, dim.collateral_type, @@ -44,28 +49,31 @@ hourly_distributions AS ( r.amount, r.ts_start, r."duration", - ROW_NUMBER() over ( - PARTITION BY dim.ts, - dim.pool_id, - dim.collateral_type, - r.distributor - ORDER BY - r.ts_start DESC - ) AS distributor_index - FROM + row_number() over ( + partition by + dim.ts, + dim.pool_id, + dim.collateral_type, + r.distributor + order by + r.ts_start desc + ) as distributor_index + from dim - LEFT JOIN rewards_distributed r - ON dim.pool_id = r.pool_id - AND LOWER( - dim.collateral_type - ) = LOWER( - r.collateral_type - ) - AND dim.ts + '1 hour' :: INTERVAL >= r.ts_start - AND dim.ts < r.ts_start + r."duration" * '1 second' :: INTERVAL + left join rewards_distributed as r + on + dim.pool_id = r.pool_id + and lower( + dim.collateral_type + ) = lower( + r.collateral_type + ) + and dim.ts + '1 hour'::INTERVAL >= r.ts_start + and dim.ts < r.ts_start + r."duration" * '1 second'::INTERVAL ), -hourly_rewards AS ( - SELECT + +hourly_rewards as ( + select d.ts, d.pool_id, d.collateral_type, @@ -75,39 +83,42 @@ hourly_rewards AS ( -- get the hourly amount distributed d.amount / ( d."duration" / 3600 - ) AS hourly_amount, + ) as hourly_amount, -- get the amount of time distributed this hour -- use the smaller of those two intervals -- convert the interval to a number of hours -- multiply the result by the hourly amount to get the amount distributed this hour ( - EXTRACT( + extract( epoch - FROM - LEAST( - d."duration" / 3600 * '1 hour' :: INTERVAL, - d.ts + '1 hour' :: INTERVAL - GREATEST( - d.ts, - d.ts_start - ) + from + least( + d."duration" / 3600 * '1 hour'::INTERVAL, + d.ts + '1 hour'::INTERVAL - greatest( + d.ts, + d.ts_start ) + ) ) / 3600 ) * d.amount / ( d."duration" / 3600 - ) AS amount_distributed - FROM - hourly_distributions AS d - LEFT JOIN {{ ref('fct_prices_hourly_arbitrum_mainnet') }} - p - ON d.ts = p.ts - AND d.token_symbol = p.market_symbol - WHERE + ) as amount_distributed + from + hourly_distributions as d + left join + {{ ref('fct_prices_hourly_arbitrum_mainnet') }} + as p + on + d.ts = p.ts + and d.token_symbol = p.market_symbol + where d.distributor_index = 1 ) -SELECT + +select *, - amount_distributed * price AS rewards_usd -FROM + amount_distributed * price as rewards_usd +from hourly_rewards -WHERE - amount_distributed IS NOT NULL +where + amount_distributed is not null diff --git a/transformers/synthetix/models/marts/arbitrum/mainnet/prices/fct_prices_arbitrum_mainnet.sql b/transformers/synthetix/models/marts/arbitrum/mainnet/prices/fct_prices_arbitrum_mainnet.sql index 3d33e7fb0..495394d8e 100644 --- a/transformers/synthetix/models/marts/arbitrum/mainnet/prices/fct_prices_arbitrum_mainnet.sql +++ b/transformers/synthetix/models/marts/arbitrum/mainnet/prices/fct_prices_arbitrum_mainnet.sql @@ -1,33 +1,35 @@ -WITH all_prices AS ( - SELECT +with all_prices as ( + select ts, - collateral_type AS market_address, - NULL AS market_symbol, - collateral_value / amount AS price - FROM + collateral_type as market_address, + null as market_symbol, + collateral_value / amount as price + from {{ ref('core_vault_collateral_arbitrum_mainnet') }} - WHERE + where collateral_value > 0 ), -tokens AS ( - SELECT + +tokens as ( + select token_address, token_symbol - FROM + from {{ ref('arbitrum_mainnet_tokens') }} ) -SELECT + +select p.ts, p.market_address, + p.price, COALESCE( t.token_symbol, p.market_symbol - ) AS market_symbol, - p.price -FROM - all_prices p - LEFT JOIN tokens t - ON LOWER( + ) as market_symbol +from + all_prices as p +left join tokens as t + on LOWER( p.market_address ) = LOWER( t.token_address diff --git a/transformers/synthetix/models/marts/arbitrum/mainnet/prices/fct_prices_hourly_arbitrum_mainnet.sql b/transformers/synthetix/models/marts/arbitrum/mainnet/prices/fct_prices_hourly_arbitrum_mainnet.sql index ae44e1a1d..2f1c338ac 100644 --- a/transformers/synthetix/models/marts/arbitrum/mainnet/prices/fct_prices_hourly_arbitrum_mainnet.sql +++ b/transformers/synthetix/models/marts/arbitrum/mainnet/prices/fct_prices_hourly_arbitrum_mainnet.sql @@ -1,63 +1,72 @@ -WITH prices AS ( - SELECT - DISTINCT DATE_TRUNC( +with prices as ( + select distinct + market_symbol, + DATE_TRUNC( 'hour', ts - ) AS ts, - market_symbol, - LAST_VALUE(price) over (PARTITION BY DATE_TRUNC('hour', ts), market_symbol - ORDER BY - ts rows BETWEEN unbounded preceding - AND unbounded following) AS price - FROM + ) as ts, + LAST_VALUE(price) over ( + partition by DATE_TRUNC('hour', ts), market_symbol + order by + ts + rows between unbounded preceding + and unbounded following + ) as price + from {{ ref('fct_prices_arbitrum_mainnet') }} ), -dim AS ( - SELECT - generate_series(DATE_TRUNC('hour', MIN(t.ts)), DATE_TRUNC('hour', MAX(t.ts)), '1 hour' :: INTERVAL) AS ts, - m.market_symbol - FROM + +dim as ( + select + m.market_symbol, + GENERATE_SERIES( + DATE_TRUNC('hour', MIN(t.ts)), + DATE_TRUNC('hour', MAX(t.ts)), + '1 hour'::INTERVAL + ) as ts + from ( - SELECT - ts - FROM - prices - ) AS t - CROSS JOIN ( - SELECT - DISTINCT market_symbol - FROM + select ts + from prices - ) AS m - GROUP BY + ) as t + cross join ( + select distinct market_symbol + from + prices + ) as m + group by m.market_symbol ), -ffill AS ( - SELECT + +ffill as ( + select dim.ts, dim.market_symbol, - last(prices.price) over ( - partition by dim.market_symbol - order by dim.ts + LAST(prices.price) over ( + partition by dim.market_symbol + order by dim.ts rows between unbounded preceding and current row ) as price - FROM + from dim - LEFT JOIN prices - ON dim.ts = prices.ts - AND dim.market_symbol = prices.market_symbol + left join prices + on + dim.ts = prices.ts + and dim.market_symbol = prices.market_symbol ), -hourly_prices AS ( - SELECT + +hourly_prices as ( + select ts, market_symbol, price - FROM + from ffill ) -SELECT - * -FROM + +select * +from hourly_prices -WHERE - price IS NOT NULL +where + price is not null diff --git a/transformers/synthetix/models/marts/arbitrum/mainnet/spot/fct_spot_atomics_arbitrum_mainnet.sql b/transformers/synthetix/models/marts/arbitrum/mainnet/spot/fct_spot_atomics_arbitrum_mainnet.sql index cc9430ebc..eac22565c 100644 --- a/transformers/synthetix/models/marts/arbitrum/mainnet/spot/fct_spot_atomics_arbitrum_mainnet.sql +++ b/transformers/synthetix/models/marts/arbitrum/mainnet/spot/fct_spot_atomics_arbitrum_mainnet.sql @@ -1,51 +1,53 @@ -WITH bought AS ( - SELECT +with bought as ( + select + id, + block_timestamp as ts, + block_number, + transaction_hash as tx_hash, + synth_market_id, + {{ convert_wei('price') }} as price, + {{ convert_wei('synth_returned') }} as amount, + referrer + from + {{ ref('spot_synth_bought_arbitrum_mainnet') }} +), + +sold as ( + select + id, + block_timestamp as ts, + block_number, + transaction_hash as tx_hash, + synth_market_id, + {{ convert_wei('price') }} as price, + -1 * {{ convert_wei('amount_returned') }} as amount, + referrer + from + {{ ref('spot_synth_sold_arbitrum_mainnet') }} +) + +select id, - block_timestamp AS ts, + ts, block_number, - transaction_hash AS tx_hash, + tx_hash, synth_market_id, - {{ convert_wei('price') }} AS price, - {{ convert_wei('synth_returned') }} AS amount, + price, + amount, referrer - FROM - {{ ref('spot_synth_bought_arbitrum_mainnet') }} -), -sold AS ( - SELECT +from + bought +union all +select id, - block_timestamp AS ts, + ts, block_number, - transaction_hash AS tx_hash, + tx_hash, synth_market_id, - {{ convert_wei('price') }} AS price, - -1 * {{ convert_wei('amount_returned') }} AS amount, + price, + amount, referrer - FROM - {{ ref('spot_synth_sold_arbitrum_mainnet') }} -) -SELECT - id, - ts, - block_number, - tx_hash, - synth_market_id, - price, - amount, - referrer -FROM - bought -UNION ALL -SELECT - id, - ts, - block_number, - tx_hash, - synth_market_id, - price, - amount, - referrer -FROM - sold -ORDER BY - ts +from + sold +order by + ts diff --git a/transformers/synthetix/models/marts/arbitrum/mainnet/spot/fct_spot_markets_arbitrum_mainnet.sql b/transformers/synthetix/models/marts/arbitrum/mainnet/spot/fct_spot_markets_arbitrum_mainnet.sql index bcc5d221b..e87c8b577 100644 --- a/transformers/synthetix/models/marts/arbitrum/mainnet/spot/fct_spot_markets_arbitrum_mainnet.sql +++ b/transformers/synthetix/models/marts/arbitrum/mainnet/spot/fct_spot_markets_arbitrum_mainnet.sql @@ -1,13 +1,13 @@ -WITH base AS ( - SELECT - synth_market_id AS id, - block_timestamp AS created_ts, - block_number, - synth_token_address AS token_address - FROM - {{ ref('spot_synth_registered_arbitrum_mainnet') }} +with base as ( + select + synth_market_id as id, + block_timestamp as created_ts, + block_number, + synth_token_address as token_address + from + {{ ref('spot_synth_registered_arbitrum_mainnet') }} ) -SELECT - * -FROM - base + +select * +from + base diff --git a/transformers/synthetix/models/marts/arbitrum/mainnet/spot/fct_spot_wrapper_arbitrum_mainnet.sql b/transformers/synthetix/models/marts/arbitrum/mainnet/spot/fct_spot_wrapper_arbitrum_mainnet.sql index f58b667be..84942d33f 100644 --- a/transformers/synthetix/models/marts/arbitrum/mainnet/spot/fct_spot_wrapper_arbitrum_mainnet.sql +++ b/transformers/synthetix/models/marts/arbitrum/mainnet/spot/fct_spot_wrapper_arbitrum_mainnet.sql @@ -1,43 +1,45 @@ -WITH wraps AS ( - SELECT +with wraps as ( + select + id, + block_timestamp as ts, + block_number, + transaction_hash as tx_hash, + synth_market_id, + {{ convert_wei('amount_wrapped') }} as amount_wrapped + from + {{ ref('spot_synth_wrapped_arbitrum_mainnet') }} +), + +unwraps as ( + select + id, + block_timestamp as ts, + block_number, + transaction_hash as tx_hash, + synth_market_id, + -1 * {{ convert_wei('amount_unwrapped') }} as amount_wrapped + from + {{ ref('spot_synth_unwrapped_arbitrum_mainnet') }} +) + +select id, - block_timestamp AS ts, + ts, block_number, - transaction_hash AS tx_hash, + tx_hash, synth_market_id, - {{ convert_wei('amount_wrapped') }} AS amount_wrapped - FROM - {{ ref('spot_synth_wrapped_arbitrum_mainnet') }} -), -unwraps AS ( - SELECT + amount_wrapped +from + wraps +union all +select id, - block_timestamp AS ts, + ts, block_number, - transaction_hash AS tx_hash, + tx_hash, synth_market_id, - -1 * {{ convert_wei('amount_unwrapped') }} AS amount_wrapped - FROM - {{ ref('spot_synth_unwrapped_arbitrum_mainnet') }} -) -SELECT - id, - ts, - block_number, - tx_hash, - synth_market_id, - amount_wrapped -FROM - wraps -UNION ALL -SELECT - id, - ts, - block_number, - tx_hash, - synth_market_id, - amount_wrapped -FROM - unwraps -ORDER BY - ts + amount_wrapped +from + unwraps +order by + ts diff --git a/transformers/synthetix/models/marts/arbitrum/mainnet/spot/fct_synth_supply_arbitrum_mainnet.sql b/transformers/synthetix/models/marts/arbitrum/mainnet/spot/fct_synth_supply_arbitrum_mainnet.sql index 257699d9d..9608558b5 100644 --- a/transformers/synthetix/models/marts/arbitrum/mainnet/spot/fct_synth_supply_arbitrum_mainnet.sql +++ b/transformers/synthetix/models/marts/arbitrum/mainnet/spot/fct_synth_supply_arbitrum_mainnet.sql @@ -1,71 +1,72 @@ -WITH wrapper AS ( - SELECT +with wrapper as ( + select ts, block_number, synth_market_id, - amount_wrapped AS change_amount - FROM + amount_wrapped as change_amount + from {{ ref('fct_spot_wrapper_arbitrum_mainnet') }} ), -atomics AS ( - SELECT + +atomics as ( + select ts, block_number, synth_market_id, - amount AS change_amount - FROM + amount as change_amount + from {{ ref('fct_spot_atomics_arbitrum_mainnet') }} - UNION ALL - SELECT + union all + select ts, block_number, - 0 AS synth_market_id, - amount * price * -1 AS change_amount - FROM + 0 as synth_market_id, + amount * price * -1 as change_amount + from {{ ref('fct_spot_atomics_arbitrum_mainnet') }} ), -usd_changes AS ( - SELECT - block_timestamp AS ts, + +usd_changes as ( + select + block_timestamp as ts, block_number, - 0 AS synth_market_id, - {{ convert_wei("amount") }} AS change_amount - FROM + 0 as synth_market_id, + {{ convert_wei("amount") }} as change_amount + from {{ ref('core_usd_minted_arbitrum_mainnet') }} - UNION ALL - SELECT - block_timestamp AS ts, + union all + select + block_timestamp as ts, block_number, - 0 AS synth_market_id, - -1 * {{ convert_wei("amount") }} AS change_amount - FROM + 0 as synth_market_id, + -1 * {{ convert_wei("amount") }} as change_amount + from {{ ref('core_usd_burned_arbitrum_mainnet') }} ), -all_changes AS ( - SELECT - * - FROM + +all_changes as ( + select * + from wrapper - UNION ALL - SELECT - * - FROM + union all + select * + from atomics - UNION ALL - SELECT - * - FROM + union all + select * + from usd_changes ) -SELECT + +select ts, block_number, synth_market_id, SUM(change_amount) over ( - PARTITION BY synth_market_id - ORDER BY + partition by synth_market_id + order by ts, block_number - ) AS supply -FROM + ) as supply +from all_changes diff --git a/transformers/synthetix/models/marts/arbitrum/sepolia/core/fct_core_account_delegation_arbitrum_sepolia.sql b/transformers/synthetix/models/marts/arbitrum/sepolia/core/fct_core_account_delegation_arbitrum_sepolia.sql index 7a9385cc2..450aa3c09 100644 --- a/transformers/synthetix/models/marts/arbitrum/sepolia/core/fct_core_account_delegation_arbitrum_sepolia.sql +++ b/transformers/synthetix/models/marts/arbitrum/sepolia/core/fct_core_account_delegation_arbitrum_sepolia.sql @@ -1,54 +1,60 @@ -WITH delegation_changes AS ( - SELECT +with delegation_changes as ( + select block_timestamp, account_id, pool_id, collateral_type, - {{ convert_wei('amount') }} - LAG({{ convert_wei('amount') }}, 1, 0) over ( - PARTITION BY account_id, - pool_id, - collateral_type - ORDER BY + {{ convert_wei('amount') }} + - LAG({{ convert_wei('amount') }}, 1, 0) over ( + partition by + account_id, + pool_id, + collateral_type + order by block_timestamp - ) AS change_in_amount - FROM + ) as change_in_amount + from {{ ref('core_delegation_updated_arbitrum_sepolia') }} ), -cumulative_delegation AS ( - SELECT + +cumulative_delegation as ( + select block_timestamp, account_id, pool_id, collateral_type, SUM(change_in_amount) over ( - PARTITION BY pool_id, - account_id, - collateral_type - ORDER BY + partition by + pool_id, + account_id, + collateral_type + order by block_timestamp - ) AS cumulative_amount_delegated, + ) as cumulative_amount_delegated, ROW_NUMBER() over ( - PARTITION BY pool_id, - account_id, - collateral_type - ORDER BY - block_timestamp DESC - ) AS rn - FROM + partition by + pool_id, + account_id, + collateral_type + order by + block_timestamp desc + ) as rn + from delegation_changes ) -SELECT - block_timestamp AS ts, - CAST( - account_id AS text - ) AS account_id, + +select + block_timestamp as ts, pool_id, collateral_type, - cumulative_amount_delegated AS amount_delegated -FROM + cumulative_amount_delegated as amount_delegated, + CAST( + account_id as text + ) as account_id +from cumulative_delegation -WHERE +where rn = 1 -ORDER BY +order by block_timestamp, collateral_type diff --git a/transformers/synthetix/models/marts/arbitrum/sepolia/core/fct_core_apr_arbitrum_sepolia.sql b/transformers/synthetix/models/marts/arbitrum/sepolia/core/fct_core_apr_arbitrum_sepolia.sql index 6603686f6..4b8c42a16 100644 --- a/transformers/synthetix/models/marts/arbitrum/sepolia/core/fct_core_apr_arbitrum_sepolia.sql +++ b/transformers/synthetix/models/marts/arbitrum/sepolia/core/fct_core_apr_arbitrum_sepolia.sql @@ -4,8 +4,8 @@ ) }} -WITH pnl_hourly AS ( - SELECT +with pnl_hourly as ( + select ts, pool_id, collateral_type, @@ -23,160 +23,185 @@ WITH pnl_hourly AS ( 0 ) ) over ( - PARTITION BY pool_id, - collateral_type - ORDER BY + partition by + pool_id, + collateral_type + order by ts - ) AS cumulative_issuance, + ) as cumulative_issuance, SUM( hourly_pnl ) over ( - PARTITION BY pool_id, - collateral_type - ORDER BY + partition by + pool_id, + collateral_type + order by ts - ) AS cumulative_pnl - FROM + ) as cumulative_pnl + from {{ ref('fct_pool_pnl_hourly_arbitrum_sepolia') }} ), -avg_returns AS ( - SELECT + +avg_returns as ( + select ts, pool_id, collateral_type, AVG( hourly_pnl_pct ) over ( - PARTITION BY pool_id, - collateral_type - ORDER BY - ts RANGE BETWEEN INTERVAL '24 HOURS' preceding - AND CURRENT ROW - ) AS avg_24h_pnl_pct, + partition by + pool_id, + collateral_type + order by + ts + range between interval '24 HOURS' preceding + and current row + ) as avg_24h_pnl_pct, AVG( hourly_pnl_pct ) over ( - PARTITION BY pool_id, - collateral_type - ORDER BY - ts RANGE BETWEEN INTERVAL '7 DAYS' preceding - AND CURRENT ROW - ) AS avg_7d_pnl_pct, + partition by + pool_id, + collateral_type + order by + ts + range between interval '7 DAYS' preceding + and current row + ) as avg_7d_pnl_pct, AVG( hourly_pnl_pct ) over ( - PARTITION BY pool_id, - collateral_type - ORDER BY - ts RANGE BETWEEN INTERVAL '28 DAYS' preceding - AND CURRENT ROW - ) AS avg_28d_pnl_pct, + partition by + pool_id, + collateral_type + order by + ts + range between interval '28 DAYS' preceding + and current row + ) as avg_28d_pnl_pct, AVG( hourly_rewards_pct ) over ( - PARTITION BY pool_id, - collateral_type - ORDER BY - ts RANGE BETWEEN INTERVAL '24 HOURS' preceding - AND CURRENT ROW - ) AS avg_24h_rewards_pct, + partition by + pool_id, + collateral_type + order by + ts + range between interval '24 HOURS' preceding + and current row + ) as avg_24h_rewards_pct, AVG( hourly_rewards_pct ) over ( - PARTITION BY pool_id, - collateral_type - ORDER BY - ts RANGE BETWEEN INTERVAL '7 DAYS' preceding - AND CURRENT ROW - ) AS avg_7d_rewards_pct, + partition by + pool_id, + collateral_type + order by + ts + range between interval '7 DAYS' preceding + and current row + ) as avg_7d_rewards_pct, AVG( hourly_rewards_pct ) over ( - PARTITION BY pool_id, - collateral_type - ORDER BY - ts RANGE BETWEEN INTERVAL '28 DAYS' preceding - AND CURRENT ROW - ) AS avg_28d_rewards_pct, + partition by + pool_id, + collateral_type + order by + ts + range between interval '28 DAYS' preceding + and current row + ) as avg_28d_rewards_pct, AVG( hourly_total_pct ) over ( - PARTITION BY pool_id, - collateral_type - ORDER BY - ts RANGE BETWEEN INTERVAL '24 HOURS' preceding - AND CURRENT ROW - ) AS avg_24h_total_pct, + partition by + pool_id, + collateral_type + order by + ts + range between interval '24 HOURS' preceding + and current row + ) as avg_24h_total_pct, AVG( hourly_total_pct ) over ( - PARTITION BY pool_id, - collateral_type - ORDER BY - ts RANGE BETWEEN INTERVAL '7 DAYS' preceding - AND CURRENT ROW - ) AS avg_7d_total_pct, + partition by + pool_id, + collateral_type + order by + ts + range between interval '7 DAYS' preceding + and current row + ) as avg_7d_total_pct, AVG( hourly_total_pct ) over ( - PARTITION BY pool_id, - collateral_type - ORDER BY - ts RANGE BETWEEN INTERVAL '28 DAYS' preceding - AND CURRENT ROW - ) AS avg_28d_total_pct - FROM + partition by + pool_id, + collateral_type + order by + ts + range between interval '28 DAYS' preceding + and current row + ) as avg_28d_total_pct + from pnl_hourly ), -apr_calculations AS ( - SELECT - pnl_hourly.ts AS ts, - pnl_hourly.pool_id AS pool_id, - pnl_hourly.collateral_type AS collateral_type, - pnl_hourly.collateral_value AS collateral_value, - pnl_hourly.debt AS debt, - pnl_hourly.hourly_pnl AS hourly_pnl, - pnl_hourly.cumulative_pnl AS cumulative_pnl, - pnl_hourly.hourly_issuance AS hourly_issuance, - pnl_hourly.cumulative_issuance AS cumulative_issuance, - pnl_hourly.rewards_usd AS rewards_usd, - pnl_hourly.hourly_pnl_pct AS hourly_pnl_pct, - pnl_hourly.hourly_rewards_pct AS hourly_rewards_pct, + +apr_calculations as ( + select + pnl_hourly.ts, + pnl_hourly.pool_id, + pnl_hourly.collateral_type, + pnl_hourly.collateral_value, + pnl_hourly.debt, + pnl_hourly.hourly_pnl, + pnl_hourly.cumulative_pnl, + pnl_hourly.hourly_issuance, + pnl_hourly.cumulative_issuance, + pnl_hourly.rewards_usd, + pnl_hourly.hourly_pnl_pct, + pnl_hourly.hourly_rewards_pct, -- total pnls - avg_returns.avg_24h_total_pct * 24 * 365 AS apr_24h, - avg_returns.avg_7d_total_pct * 24 * 365 AS apr_7d, - avg_returns.avg_28d_total_pct * 24 * 365 AS apr_28d, + avg_returns.avg_24h_total_pct * 24 * 365 as apr_24h, + avg_returns.avg_7d_total_pct * 24 * 365 as apr_7d, + avg_returns.avg_28d_total_pct * 24 * 365 as apr_28d, -- pool pnls - avg_returns.avg_24h_pnl_pct * 24 * 365 AS apr_24h_pnl, - avg_returns.avg_7d_pnl_pct * 24 * 365 AS apr_7d_pnl, - avg_returns.avg_28d_pnl_pct * 24 * 365 AS apr_28d_pnl, + avg_returns.avg_24h_pnl_pct * 24 * 365 as apr_24h_pnl, + avg_returns.avg_7d_pnl_pct * 24 * 365 as apr_7d_pnl, + avg_returns.avg_28d_pnl_pct * 24 * 365 as apr_28d_pnl, -- rewards pnls - avg_returns.avg_24h_rewards_pct * 24 * 365 AS apr_24h_rewards, - avg_returns.avg_7d_rewards_pct * 24 * 365 AS apr_7d_rewards, - avg_returns.avg_28d_rewards_pct * 24 * 365 AS apr_28d_rewards - FROM + avg_returns.avg_24h_rewards_pct * 24 * 365 as apr_24h_rewards, + avg_returns.avg_7d_rewards_pct * 24 * 365 as apr_7d_rewards, + avg_returns.avg_28d_rewards_pct * 24 * 365 as apr_28d_rewards + from pnl_hourly - JOIN avg_returns - ON pnl_hourly.ts = avg_returns.ts - AND pnl_hourly.pool_id = avg_returns.pool_id - AND pnl_hourly.collateral_type = avg_returns.collateral_type + inner join avg_returns + on + pnl_hourly.ts = avg_returns.ts + and pnl_hourly.pool_id = avg_returns.pool_id + and pnl_hourly.collateral_type = avg_returns.collateral_type ), -apy_calculations AS ( - SELECT + +apy_calculations as ( + select *, - (power(1 + apr_24h / 8760, 8760) - 1) AS apy_24h, - (power(1 + apr_7d / 8760, 8760) - 1) AS apy_7d, - (power(1 + apr_28d / 8760, 8760) - 1) AS apy_28d, - (power(1 + apr_24h_pnl / 8760, 8760) - 1) AS apy_24h_pnl, - (power(1 + apr_7d_pnl / 8760, 8760) - 1) AS apy_7d_pnl, - (power(1 + apr_28d_pnl / 8760, 8760) - 1) AS apy_28d_pnl, - (power(1 + apr_24h_rewards / 8760, 8760) - 1) AS apy_24h_rewards, - (power(1 + apr_7d_rewards / 8760, 8760) - 1) AS apy_7d_rewards, - (power(1 + apr_28d_rewards / 8760, 8760) - 1) AS apy_28d_rewards - FROM + (POWER(1 + apr_24h / 8760, 8760) - 1) as apy_24h, + (POWER(1 + apr_7d / 8760, 8760) - 1) as apy_7d, + (POWER(1 + apr_28d / 8760, 8760) - 1) as apy_28d, + (POWER(1 + apr_24h_pnl / 8760, 8760) - 1) as apy_24h_pnl, + (POWER(1 + apr_7d_pnl / 8760, 8760) - 1) as apy_7d_pnl, + (POWER(1 + apr_28d_pnl / 8760, 8760) - 1) as apy_28d_pnl, + (POWER(1 + apr_24h_rewards / 8760, 8760) - 1) as apy_24h_rewards, + (POWER(1 + apr_7d_rewards / 8760, 8760) - 1) as apy_7d_rewards, + (POWER(1 + apr_28d_rewards / 8760, 8760) - 1) as apy_28d_rewards + from apr_calculations ) -SELECT + +select ts, pool_id, collateral_type, @@ -207,7 +232,7 @@ SELECT apy_7d_rewards, apr_28d_rewards, apy_28d_rewards -FROM +from apy_calculations -ORDER BY +order by ts diff --git a/transformers/synthetix/models/marts/arbitrum/sepolia/core/fct_core_apr_rewards_arbitrum_sepolia.sql b/transformers/synthetix/models/marts/arbitrum/sepolia/core/fct_core_apr_rewards_arbitrum_sepolia.sql index 4dc2888e9..4ba9c72db 100644 --- a/transformers/synthetix/models/marts/arbitrum/sepolia/core/fct_core_apr_rewards_arbitrum_sepolia.sql +++ b/transformers/synthetix/models/marts/arbitrum/sepolia/core/fct_core_apr_rewards_arbitrum_sepolia.sql @@ -4,8 +4,8 @@ ) }} -WITH pnl_hourly AS ( - SELECT +with pnl_hourly as ( + select ts, pool_id, collateral_type, @@ -13,11 +13,12 @@ WITH pnl_hourly AS ( collateral_value, rewards_usd, hourly_rewards_pct - FROM + from {{ ref('fct_pool_pnl_hourly_reward_arbitrum_sepolia') }} ), -avg_returns AS ( - SELECT + +avg_returns as ( + select ts, pool_id, collateral_type, @@ -25,66 +26,76 @@ avg_returns AS ( AVG( hourly_rewards_pct ) over ( - PARTITION BY pool_id, - collateral_type, - reward_token - ORDER BY - ts RANGE BETWEEN INTERVAL '24 HOURS' preceding - AND CURRENT ROW - ) AS avg_24h_rewards_pct, + partition by + pool_id, + collateral_type, + reward_token + order by + ts + range between interval '24 HOURS' preceding + and current row + ) as avg_24h_rewards_pct, AVG( hourly_rewards_pct ) over ( - PARTITION BY pool_id, - collateral_type, - reward_token - ORDER BY - ts RANGE BETWEEN INTERVAL '7 DAYS' preceding - AND CURRENT ROW - ) AS avg_7d_rewards_pct, + partition by + pool_id, + collateral_type, + reward_token + order by + ts + range between interval '7 DAYS' preceding + and current row + ) as avg_7d_rewards_pct, AVG( hourly_rewards_pct ) over ( - PARTITION BY pool_id, - collateral_type, - reward_token - ORDER BY - ts RANGE BETWEEN INTERVAL '28 DAYS' preceding - AND CURRENT ROW - ) AS avg_28d_rewards_pct - FROM + partition by + pool_id, + collateral_type, + reward_token + order by + ts + range between interval '28 DAYS' preceding + and current row + ) as avg_28d_rewards_pct + from pnl_hourly ), -apr_calculations AS ( - SELECT - pnl_hourly.ts AS ts, - pnl_hourly.pool_id AS pool_id, - pnl_hourly.collateral_type AS collateral_type, - pnl_hourly.reward_token AS reward_token, - pnl_hourly.collateral_value AS collateral_value, - pnl_hourly.rewards_usd AS rewards_usd, - pnl_hourly.hourly_rewards_pct AS hourly_rewards_pct, - avg_returns.avg_24h_rewards_pct * 24 * 365 AS apr_24h_rewards, - avg_returns.avg_7d_rewards_pct * 24 * 365 AS apr_7d_rewards, - avg_returns.avg_28d_rewards_pct * 24 * 365 AS apr_28d_rewards - FROM + +apr_calculations as ( + select + pnl_hourly.ts, + pnl_hourly.pool_id, + pnl_hourly.collateral_type, + pnl_hourly.reward_token, + pnl_hourly.collateral_value, + pnl_hourly.rewards_usd, + pnl_hourly.hourly_rewards_pct, + avg_returns.avg_24h_rewards_pct * 24 * 365 as apr_24h_rewards, + avg_returns.avg_7d_rewards_pct * 24 * 365 as apr_7d_rewards, + avg_returns.avg_28d_rewards_pct * 24 * 365 as apr_28d_rewards + from pnl_hourly - JOIN avg_returns - ON pnl_hourly.ts = avg_returns.ts - AND pnl_hourly.pool_id = avg_returns.pool_id - AND pnl_hourly.collateral_type = avg_returns.collateral_type - AND pnl_hourly.reward_token = avg_returns.reward_token + inner join avg_returns + on + pnl_hourly.ts = avg_returns.ts + and pnl_hourly.pool_id = avg_returns.pool_id + and pnl_hourly.collateral_type = avg_returns.collateral_type + and pnl_hourly.reward_token = avg_returns.reward_token ), -apy_calculations AS ( - SELECT + +apy_calculations as ( + select *, - (power(1 + apr_24h_rewards / 8760, 8760) - 1) AS apy_24h_rewards, - (power(1 + apr_7d_rewards / 8760, 8760) - 1) AS apy_7d_rewards, - (power(1 + apr_28d_rewards / 8760, 8760) - 1) AS apy_28d_rewards - FROM + (POWER(1 + apr_24h_rewards / 8760, 8760) - 1) as apy_24h_rewards, + (POWER(1 + apr_7d_rewards / 8760, 8760) - 1) as apy_7d_rewards, + (POWER(1 + apr_28d_rewards / 8760, 8760) - 1) as apy_28d_rewards + from apr_calculations ) -SELECT + +select ts, pool_id, collateral_type, @@ -98,7 +109,7 @@ SELECT apy_7d_rewards, apr_28d_rewards, apy_28d_rewards -FROM +from apy_calculations -ORDER BY +order by ts diff --git a/transformers/synthetix/models/marts/arbitrum/sepolia/core/fct_core_market_updated_arbitrum_sepolia.sql b/transformers/synthetix/models/marts/arbitrum/sepolia/core/fct_core_market_updated_arbitrum_sepolia.sql index 46f0364cd..c8adac6f3 100644 --- a/transformers/synthetix/models/marts/arbitrum/sepolia/core/fct_core_market_updated_arbitrum_sepolia.sql +++ b/transformers/synthetix/models/marts/arbitrum/sepolia/core/fct_core_market_updated_arbitrum_sepolia.sql @@ -1,29 +1,30 @@ -WITH market_updated AS ( - SELECT +with market_updated as ( + select + id, + block_timestamp, + block_number, + transaction_hash, + contract, + event_name, + market_id, + net_issuance, + sender, + collateral_type, + credit_capacity, + token_amount + from + {{ ref('core_market_updated_arbitrum_sepolia') }} +) + +select id, - block_timestamp, - block_number, + block_timestamp as ts, transaction_hash, - contract, event_name, market_id, - net_issuance, - sender, collateral_type, - credit_capacity, - token_amount - FROM - {{ ref('core_market_updated_arbitrum_sepolia') }} -) -SELECT - id, - block_timestamp AS ts, - transaction_hash, - event_name, - market_id, - collateral_type, - {{ convert_wei("credit_capacity") }} AS credit_capacity, - {{ convert_wei("net_issuance") }} AS net_issuance, - {{ convert_wei("token_amount") }} AS token_amount -FROM - market_updated + {{ convert_wei("credit_capacity") }} as credit_capacity, + {{ convert_wei("net_issuance") }} as net_issuance, + {{ convert_wei("token_amount") }} as token_amount +from + market_updated diff --git a/transformers/synthetix/models/marts/arbitrum/sepolia/core/fct_core_pool_collateral_arbitrum_sepolia.sql b/transformers/synthetix/models/marts/arbitrum/sepolia/core/fct_core_pool_collateral_arbitrum_sepolia.sql index fe1b8b7d3..7b3794777 100644 --- a/transformers/synthetix/models/marts/arbitrum/sepolia/core/fct_core_pool_collateral_arbitrum_sepolia.sql +++ b/transformers/synthetix/models/marts/arbitrum/sepolia/core/fct_core_pool_collateral_arbitrum_sepolia.sql @@ -1,35 +1,39 @@ -WITH events AS ( - SELECT - block_timestamp, - {{ convert_wei('token_amount') }} AS token_amount, - collateral_type - FROM - {{ ref('core_deposited_arbitrum_sepolia') }} - UNION ALL - SELECT - block_timestamp,- {{ convert_wei('token_amount') }} AS token_amount, - collateral_type - FROM - {{ ref('core_withdrawn_arbitrum_sepolia') }} +with events as ( + select + block_timestamp, + {{ convert_wei('token_amount') }} as token_amount, + collateral_type + from + {{ ref('core_deposited_arbitrum_sepolia') }} + union all + select + block_timestamp, + -{{ convert_wei('token_amount') }} as token_amount, + collateral_type + from + {{ ref('core_withdrawn_arbitrum_sepolia') }} ), -ranked_events AS ( - SELECT - *, - SUM(token_amount) over ( - PARTITION BY collateral_type - ORDER BY - block_timestamp rows BETWEEN unbounded preceding - AND CURRENT ROW - ) AS amount_deposited - FROM - events + +ranked_events as ( + select + *, + SUM(token_amount) over ( + partition by collateral_type + order by + block_timestamp + rows between unbounded preceding + and current row + ) as amount_deposited + from + events ) -SELECT - block_timestamp AS ts, - collateral_type, - amount_deposited -FROM - ranked_events -ORDER BY - block_timestamp, - collateral_type + +select + block_timestamp as ts, + collateral_type, + amount_deposited +from + ranked_events +order by + block_timestamp, + collateral_type diff --git a/transformers/synthetix/models/marts/arbitrum/sepolia/core/fct_core_pool_delegation_arbitrum_sepolia.sql b/transformers/synthetix/models/marts/arbitrum/sepolia/core/fct_core_pool_delegation_arbitrum_sepolia.sql index b1a70ea8e..f1ad401f2 100644 --- a/transformers/synthetix/models/marts/arbitrum/sepolia/core/fct_core_pool_delegation_arbitrum_sepolia.sql +++ b/transformers/synthetix/models/marts/arbitrum/sepolia/core/fct_core_pool_delegation_arbitrum_sepolia.sql @@ -1,40 +1,45 @@ -WITH delegation_changes AS ( - SELECT +with delegation_changes as ( + select block_timestamp, account_id, pool_id, collateral_type, - {{ convert_wei('amount') }} - LAG({{ convert_wei('amount') }}, 1, 0) over ( - PARTITION BY account_id, - pool_id, - collateral_type - ORDER BY + {{ convert_wei('amount') }} + - LAG({{ convert_wei('amount') }}, 1, 0) over ( + partition by + account_id, + pool_id, + collateral_type + order by block_timestamp - ) AS change_in_amount - FROM + ) as change_in_amount + from {{ ref('core_delegation_updated_arbitrum_sepolia') }} ), -cumulative_delegation AS ( - SELECT + +cumulative_delegation as ( + select block_timestamp, pool_id, collateral_type, SUM(change_in_amount) over ( - PARTITION BY pool_id, - collateral_type - ORDER BY + partition by + pool_id, + collateral_type + order by block_timestamp - ) AS cumulative_amount_delegated - FROM + ) as cumulative_amount_delegated + from delegation_changes ) -SELECT - block_timestamp AS ts, + +select + block_timestamp as ts, pool_id, collateral_type, - cumulative_amount_delegated AS amount_delegated -FROM + cumulative_amount_delegated as amount_delegated +from cumulative_delegation -ORDER BY +order by block_timestamp, collateral_type diff --git a/transformers/synthetix/models/marts/arbitrum/sepolia/core/fct_core_pools_arbitrum_sepolia.sql b/transformers/synthetix/models/marts/arbitrum/sepolia/core/fct_core_pools_arbitrum_sepolia.sql index 2f4f4d468..26012eefd 100644 --- a/transformers/synthetix/models/marts/arbitrum/sepolia/core/fct_core_pools_arbitrum_sepolia.sql +++ b/transformers/synthetix/models/marts/arbitrum/sepolia/core/fct_core_pools_arbitrum_sepolia.sql @@ -1,13 +1,13 @@ -WITH base AS ( - SELECT - pool_id AS id, - block_timestamp AS created_ts, - block_number, - owner - FROM - {{ ref('core_pool_created_arbitrum_sepolia') }} +with base as ( + select + pool_id as id, + block_timestamp as created_ts, + block_number, + owner + from + {{ ref('core_pool_created_arbitrum_sepolia') }} ) -SELECT - * -FROM - base + +select * +from + base diff --git a/transformers/synthetix/models/marts/arbitrum/sepolia/core/fct_pool_debt_arbitrum_sepolia.sql b/transformers/synthetix/models/marts/arbitrum/sepolia/core/fct_pool_debt_arbitrum_sepolia.sql index e89ad43f3..5443db99e 100644 --- a/transformers/synthetix/models/marts/arbitrum/sepolia/core/fct_pool_debt_arbitrum_sepolia.sql +++ b/transformers/synthetix/models/marts/arbitrum/sepolia/core/fct_pool_debt_arbitrum_sepolia.sql @@ -1,10 +1,10 @@ -SELECT +select ts, block_number, pool_id, collateral_type, debt -FROM +from {{ ref('core_vault_debt_arbitrum_sepolia') }} -ORDER BY +order by ts diff --git a/transformers/synthetix/models/marts/arbitrum/sepolia/core/fct_pool_issuance_arbitrum_sepolia.sql b/transformers/synthetix/models/marts/arbitrum/sepolia/core/fct_pool_issuance_arbitrum_sepolia.sql index b32cdcf55..069a93d05 100644 --- a/transformers/synthetix/models/marts/arbitrum/sepolia/core/fct_pool_issuance_arbitrum_sepolia.sql +++ b/transformers/synthetix/models/marts/arbitrum/sepolia/core/fct_pool_issuance_arbitrum_sepolia.sql @@ -1,39 +1,39 @@ -WITH burns AS ( - SELECT - block_timestamp AS ts, +with burns as ( + select + block_timestamp as ts, block_number, transaction_hash, pool_id, collateral_type, account_id, - -1 * {{ convert_wei('amount') }} AS amount - FROM + -1 * {{ convert_wei('amount') }} as amount + from {{ ref('core_usd_burned_arbitrum_sepolia') }} - ORDER BY - block_timestamp DESC + order by + block_timestamp desc ), -mints AS ( - SELECT - block_timestamp AS ts, + +mints as ( + select + block_timestamp as ts, block_number, transaction_hash, pool_id, collateral_type, account_id, - {{ convert_wei('amount') }} AS amount - FROM + {{ convert_wei('amount') }} as amount + from {{ ref('core_usd_minted_arbitrum_sepolia') }} - ORDER BY - block_timestamp DESC + order by + block_timestamp desc ) -SELECT - * -FROM + +select * +from burns -UNION ALL -SELECT - * -FROM +union all +select * +from mints -ORDER BY - ts DESC +order by + ts desc diff --git a/transformers/synthetix/models/marts/arbitrum/sepolia/core/fct_pool_issuance_hourly_arbitrum_sepolia.sql b/transformers/synthetix/models/marts/arbitrum/sepolia/core/fct_pool_issuance_hourly_arbitrum_sepolia.sql index 99c109d83..d2768038f 100644 --- a/transformers/synthetix/models/marts/arbitrum/sepolia/core/fct_pool_issuance_hourly_arbitrum_sepolia.sql +++ b/transformers/synthetix/models/marts/arbitrum/sepolia/core/fct_pool_issuance_hourly_arbitrum_sepolia.sql @@ -1,110 +1,119 @@ -WITH dim AS ( - SELECT - generate_series(DATE_TRUNC('hour', MIN(t.ts)), DATE_TRUNC('hour', MAX(t.ts)), '1 hour' :: INTERVAL) AS ts, +with dim as ( + select m.pool_id, - m.collateral_type - FROM + m.collateral_type, + generate_series( + date_trunc('hour', min(t.ts)), + date_trunc('hour', max(t.ts)), + '1 hour'::INTERVAL + ) as ts + from ( - SELECT - ts - FROM - {{ ref('fct_pool_issuance_arbitrum_sepolia') }} - ) AS t - CROSS JOIN ( - SELECT - DISTINCT pool_id, - collateral_type - FROM + select ts + from {{ ref('fct_pool_issuance_arbitrum_sepolia') }} - ) AS m - GROUP BY + ) as t + cross join ( + select distinct + pool_id, + collateral_type + from + {{ ref('fct_pool_issuance_arbitrum_sepolia') }} + ) as m + group by m.pool_id, m.collateral_type ), -max_debt_block AS ( - SELECT - DATE_TRUNC( - 'hour', - ts - ) AS HOUR, + +max_debt_block as ( + select pool_id, collateral_type, - MAX(block_number) AS max_block_number - FROM + date_trunc( + 'hour', + ts + ) as hour, + max(block_number) as max_block_number + from {{ ref('fct_pool_debt_arbitrum_sepolia') }} - GROUP BY - DATE_TRUNC( + group by + date_trunc( 'hour', ts ), pool_id, collateral_type ), -filt_issuance AS ( - SELECT - CASE - WHEN i.block_number <= d.max_block_number - OR d.max_block_number IS NULL THEN i.ts - ELSE i.ts + INTERVAL '1 hour' - END AS ts, + +filt_issuance as ( + select i.pool_id, i.collateral_type, - i.amount - FROM + i.amount, + case + when + i.block_number <= d.max_block_number + or d.max_block_number is null then i.ts + else i.ts + INTERVAL '1 hour' + end as ts + from {{ ref('fct_pool_issuance_arbitrum_sepolia') }} - i - LEFT JOIN max_debt_block d - ON DATE_TRUNC( + as i + left join max_debt_block as d + on date_trunc( 'hour', i.ts ) = d.hour - AND i.pool_id = d.pool_id - AND LOWER( + and i.pool_id = d.pool_id + and lower( i.collateral_type - ) = LOWER( + ) = lower( d.collateral_type ) - WHERE + where i.block_number <= ( - SELECT - MAX( + select + max( max_block_number ) - FROM + from max_debt_block ) ), -issuance AS ( - SELECT - DATE_TRUNC( + +issuance as ( + select + date_trunc( 'hour', ts - ) AS ts, + ) as ts, pool_id, collateral_type, - SUM(amount) AS hourly_issuance - FROM + sum(amount) as hourly_issuance + from filt_issuance - GROUP BY + group by 1, 2, 3 ) -SELECT + +select dim.ts, dim.pool_id, dim.collateral_type, - COALESCE( + coalesce( i.hourly_issuance, 0 - ) AS hourly_issuance -FROM + ) as hourly_issuance +from dim - LEFT JOIN issuance i - ON dim.pool_id = i.pool_id - AND LOWER( - dim.collateral_type - ) = LOWER( - i.collateral_type - ) - AND dim.ts = i.ts +left join issuance as i + on + dim.pool_id = i.pool_id + and lower( + dim.collateral_type + ) = lower( + i.collateral_type + ) + and dim.ts = i.ts diff --git a/transformers/synthetix/models/marts/arbitrum/sepolia/core/fct_pool_pnl_hourly_arbitrum_sepolia.sql b/transformers/synthetix/models/marts/arbitrum/sepolia/core/fct_pool_pnl_hourly_arbitrum_sepolia.sql index fc375e2ef..e525169eb 100644 --- a/transformers/synthetix/models/marts/arbitrum/sepolia/core/fct_pool_pnl_hourly_arbitrum_sepolia.sql +++ b/transformers/synthetix/models/marts/arbitrum/sepolia/core/fct_pool_pnl_hourly_arbitrum_sepolia.sql @@ -3,78 +3,91 @@ unique_key = ['ts', 'pool_id', 'collateral_type'], ) }} -WITH dim AS ( - SELECT - generate_series(DATE_TRUNC('hour', MIN(t.ts)), DATE_TRUNC('hour', MAX(t.ts)), '1 hour' :: INTERVAL) AS ts, +with dim as ( + select p.pool_id, - p.collateral_type - FROM + p.collateral_type, + generate_series( + date_trunc('hour', min(t.ts)), + date_trunc('hour', max(t.ts)), + '1 hour'::INTERVAL + ) as ts + from ( - SELECT - ts - FROM + select ts + from {{ ref('fct_pool_debt_arbitrum_sepolia') }} - ) AS t - CROSS JOIN ( - SELECT - DISTINCT pool_id, - collateral_type - FROM - {{ ref('fct_pool_debt_arbitrum_sepolia') }} - ) AS p -GROUP BY - p.pool_id, - p.collateral_type + ) as t + cross join ( + select distinct + pool_id, + collateral_type + from + {{ ref('fct_pool_debt_arbitrum_sepolia') }} + ) as p + group by + p.pool_id, + p.collateral_type ), -issuance AS ( - SELECT + +issuance as ( + select ts, pool_id, collateral_type, hourly_issuance - FROM + from {{ ref('fct_pool_issuance_hourly_arbitrum_sepolia') }} ), -debt AS ( - SELECT - DISTINCT DATE_TRUNC( - 'hour', - ts - ) AS ts, + +debt as ( + select distinct pool_id, collateral_type, - LAST_VALUE(debt) over (PARTITION BY DATE_TRUNC('hour', ts), pool_id, collateral_type - ORDER BY - ts rows BETWEEN unbounded preceding - AND unbounded following) AS debt - FROM - {{ ref('fct_pool_debt_arbitrum_sepolia') }} -), -collateral AS ( - SELECT - DISTINCT DATE_TRUNC( + date_trunc( 'hour', ts - ) AS ts, + ) as ts, + last_value(debt) over ( + partition by date_trunc('hour', ts), pool_id, collateral_type + order by + ts + rows between unbounded preceding + and unbounded following + ) as debt + from + {{ ref('fct_pool_debt_arbitrum_sepolia') }} +), + +collateral as ( + select distinct pool_id, collateral_type, - LAST_VALUE(collateral_value) over (PARTITION BY DATE_TRUNC('hour', ts), pool_id, collateral_type - ORDER BY - ts rows BETWEEN unbounded preceding - AND unbounded following) AS collateral_value - FROM + date_trunc( + 'hour', + ts + ) as ts, + last_value(collateral_value) over ( + partition by date_trunc('hour', ts), pool_id, collateral_type + order by + ts + rows between unbounded preceding + and unbounded following + ) as collateral_value + from {{ ref('core_vault_collateral_arbitrum_sepolia') }} - WHERE + where pool_id = 1 ), -ffill AS ( - SELECT + +ffill as ( + select dim.ts, dim.pool_id, dim.collateral_type, coalesce( last(debt) over ( - partition by dim.collateral_type, dim.pool_id + partition by dim.collateral_type, dim.pool_id order by dim.ts rows between unbounded preceding and current row ), @@ -82,96 +95,113 @@ ffill AS ( ) as debt, coalesce( last(collateral_value) over ( - partition by dim.collateral_type, dim.pool_id + partition by dim.collateral_type, dim.pool_id order by dim.ts - rows between unbounded preceding and current row + rows between unbounded preceding and current row ), 0 ) as collateral_value - FROM + from dim - LEFT JOIN debt - ON dim.ts = debt.ts - AND dim.pool_id = debt.pool_id - AND dim.collateral_type = debt.collateral_type - LEFT JOIN collateral - ON dim.ts = collateral.ts - AND dim.pool_id = collateral.pool_id - AND dim.collateral_type = collateral.collateral_type + left join debt + on + dim.ts = debt.ts + and dim.pool_id = debt.pool_id + and dim.collateral_type = debt.collateral_type + left join collateral + on + dim.ts = collateral.ts + and dim.pool_id = collateral.pool_id + and dim.collateral_type = collateral.collateral_type ), -hourly_pnl AS ( - SELECT + +hourly_pnl as ( + select ts, pool_id, collateral_type, collateral_value, debt, - COALESCE(LAG(debt) over (PARTITION BY pool_id, collateral_type - ORDER BY - ts) - debt, 0) AS hourly_pnl - FROM + coalesce(lag(debt) over ( + partition by pool_id, collateral_type + order by + ts + ) - debt, 0) as hourly_pnl + from ffill ), -hourly_rewards AS ( - SELECT + +hourly_rewards as ( + select ts, pool_id, collateral_type, rewards_usd - FROM + from {{ ref('fct_pool_rewards_hourly_arbitrum_sepolia') }} ), -hourly_returns AS ( - SELECT + +hourly_returns as ( + select pnl.ts, pnl.pool_id, pnl.collateral_type, pnl.collateral_value, pnl.debt, - COALESCE( + coalesce( iss.hourly_issuance, 0 - ) hourly_issuance, - pnl.hourly_pnl + COALESCE( + ) as hourly_issuance, + pnl.hourly_pnl + coalesce( iss.hourly_issuance, 0 - ) AS hourly_pnl, - COALESCE( + ) as hourly_pnl, + coalesce( rewards.rewards_usd, 0 - ) AS rewards_usd, - CASE - WHEN pnl.collateral_value = 0 THEN 0 - ELSE COALESCE( + ) as rewards_usd, + case + when pnl.collateral_value = 0 then 0 + else coalesce( rewards.rewards_usd, 0 ) / pnl.collateral_value - END AS hourly_rewards_pct, - CASE - WHEN pnl.collateral_value = 0 THEN 0 - ELSE (COALESCE(iss.hourly_issuance, 0) + pnl.hourly_pnl) / pnl.collateral_value - END AS hourly_pnl_pct, - CASE - WHEN pnl.collateral_value = 0 THEN 0 - ELSE (COALESCE(rewards.rewards_usd, 0) + pnl.hourly_pnl + COALESCE(iss.hourly_issuance, 0)) / pnl.collateral_value - END AS hourly_total_pct - FROM - hourly_pnl pnl - LEFT JOIN hourly_rewards rewards - ON pnl.ts = rewards.ts - AND pnl.pool_id = rewards.pool_id - AND pnl.collateral_type = rewards.collateral_type - LEFT JOIN issuance iss - ON pnl.ts = iss.ts - AND pnl.pool_id = iss.pool_id - AND LOWER( - pnl.collateral_type - ) = LOWER( - iss.collateral_type - ) + end as hourly_rewards_pct, + case + when pnl.collateral_value = 0 then 0 + else + (coalesce(iss.hourly_issuance, 0) + pnl.hourly_pnl) + / pnl.collateral_value + end as hourly_pnl_pct, + case + when pnl.collateral_value = 0 then 0 + else + ( + coalesce(rewards.rewards_usd, 0) + + pnl.hourly_pnl + + coalesce(iss.hourly_issuance, 0) + ) + / pnl.collateral_value + end as hourly_total_pct + from + hourly_pnl as pnl + left join hourly_rewards as rewards + on + pnl.ts = rewards.ts + and pnl.pool_id = rewards.pool_id + and pnl.collateral_type = rewards.collateral_type + left join issuance as iss + on + pnl.ts = iss.ts + and pnl.pool_id = iss.pool_id + and lower( + pnl.collateral_type + ) = lower( + iss.collateral_type + ) ) -SELECT +select ts, pool_id, collateral_type, @@ -183,5 +213,5 @@ SELECT hourly_pnl_pct, hourly_rewards_pct, hourly_total_pct -FROM +from hourly_returns diff --git a/transformers/synthetix/models/marts/arbitrum/sepolia/core/fct_pool_pnl_hourly_reward_arbitrum_sepolia.sql b/transformers/synthetix/models/marts/arbitrum/sepolia/core/fct_pool_pnl_hourly_reward_arbitrum_sepolia.sql index d76a1671d..5ae3a8a61 100644 --- a/transformers/synthetix/models/marts/arbitrum/sepolia/core/fct_pool_pnl_hourly_reward_arbitrum_sepolia.sql +++ b/transformers/synthetix/models/marts/arbitrum/sepolia/core/fct_pool_pnl_hourly_reward_arbitrum_sepolia.sql @@ -3,79 +3,85 @@ unique_key = ['ts', 'pool_id', 'collateral_type', 'reward_token'], ) }} -WITH dim AS ( +with dim as ( - SELECT - generate_series(DATE_TRUNC('hour', MIN(t.ts)), DATE_TRUNC('hour', MAX(t.ts)), '1 hour' :: INTERVAL) AS ts, + select t.pool_id, t.collateral_type, t.collateral_value, - p.token_symbol AS reward_token - FROM + p.token_symbol as reward_token, + generate_series( + date_trunc('hour', min(t.ts)), + date_trunc('hour', max(t.ts)), + '1 hour'::INTERVAL + ) as ts + from ( - SELECT + select ts, collateral_type, pool_id, collateral_value - FROM + from {{ ref('fct_pool_pnl_hourly_arbitrum_sepolia') }} group by ts, collateral_type, pool_id, collateral_value - ) AS t - CROSS JOIN ( - SELECT - DISTINCT token_symbol - FROM - {{ ref('fct_pool_rewards_token_hourly_arbitrum_sepolia') }} - ) AS p - GROUP BY + ) as t + cross join ( + select distinct token_symbol + from + {{ ref('fct_pool_rewards_token_hourly_arbitrum_sepolia') }} + ) as p + group by t.pool_id, t.collateral_type, t.collateral_value, p.token_symbol ), -reward_hourly_token AS ( - SELECT + +reward_hourly_token as ( + select ts, pool_id, collateral_type, - token_symbol AS reward_token, - SUM( + token_symbol as reward_token, + sum( rewards_usd - ) AS rewards_usd - FROM + ) as rewards_usd + from {{ ref('fct_pool_rewards_token_hourly_arbitrum_sepolia') }} - GROUP BY + group by ts, pool_id, collateral_type, token_symbol ) -SELECT + +select dim.ts, dim.pool_id, dim.collateral_type, dim.collateral_value, dim.reward_token, - COALESCE( + coalesce( reward_hourly_token.rewards_usd, 0 - ) AS rewards_usd, - CASE - WHEN dim.collateral_value = 0 THEN 0 - ELSE COALESCE( + ) as rewards_usd, + case + when dim.collateral_value = 0 then 0 + else coalesce( reward_hourly_token.rewards_usd, 0 ) / dim.collateral_value - END AS hourly_rewards_pct -FROM + end as hourly_rewards_pct +from dim - LEFT JOIN reward_hourly_token - ON dim.ts = reward_hourly_token.ts - AND dim.pool_id = reward_hourly_token.pool_id - AND dim.collateral_type = reward_hourly_token.collateral_type - and dim.reward_token = reward_hourly_token.reward_token +left join reward_hourly_token + on + dim.ts = reward_hourly_token.ts + and dim.pool_id = reward_hourly_token.pool_id + and dim.collateral_type = reward_hourly_token.collateral_type + and dim.reward_token = reward_hourly_token.reward_token diff --git a/transformers/synthetix/models/marts/arbitrum/sepolia/core/fct_pool_rewards_arbitrum_sepolia.sql b/transformers/synthetix/models/marts/arbitrum/sepolia/core/fct_pool_rewards_arbitrum_sepolia.sql index b991a86cc..64df6fe3f 100644 --- a/transformers/synthetix/models/marts/arbitrum/sepolia/core/fct_pool_rewards_arbitrum_sepolia.sql +++ b/transformers/synthetix/models/marts/arbitrum/sepolia/core/fct_pool_rewards_arbitrum_sepolia.sql @@ -1,25 +1,27 @@ -WITH rewards_distributed AS ( - SELECT - block_timestamp AS ts, +with rewards_distributed as ( + select + block_timestamp as ts, CAST( - pool_id AS INTEGER - ) AS pool_id, + pool_id as INTEGER + ) as pool_id, collateral_type, distributor, - {{ convert_wei('amount') }} AS amount, - TO_TIMESTAMP("start") AS ts_start, + {{ convert_wei('amount') }} as amount, + TO_TIMESTAMP("start") as ts_start, "duration" - FROM + from {{ ref('core_rewards_distributed_arbitrum_sepolia') }} ), -distributors AS ( - SELECT - CAST(distributor_address AS TEXT) AS distributor_address, - CAST(token_symbol AS TEXT) AS token_symbol - FROM + +distributors as ( + select + CAST(distributor_address as TEXT) as distributor_address, + CAST(token_symbol as TEXT) as token_symbol + from {{ ref('arbitrum_sepolia_reward_distributors') }} ) -SELECT + +select rd.ts, rd.pool_id, rd.collateral_type, @@ -28,8 +30,8 @@ SELECT rd.amount, rd.ts_start, rd.duration -FROM - rewards_distributed rd - join distributors on rd.distributor = distributors.distributor_address -ORDER BY +from + rewards_distributed as rd +inner join distributors on rd.distributor = distributors.distributor_address +order by ts diff --git a/transformers/synthetix/models/marts/arbitrum/sepolia/core/fct_pool_rewards_hourly_arbitrum_sepolia.sql b/transformers/synthetix/models/marts/arbitrum/sepolia/core/fct_pool_rewards_hourly_arbitrum_sepolia.sql index 719564fd3..5fb900f38 100644 --- a/transformers/synthetix/models/marts/arbitrum/sepolia/core/fct_pool_rewards_hourly_arbitrum_sepolia.sql +++ b/transformers/synthetix/models/marts/arbitrum/sepolia/core/fct_pool_rewards_hourly_arbitrum_sepolia.sql @@ -1,20 +1,21 @@ -WITH token_hourly AS ( - SELECT +with token_hourly as ( + select ts, pool_id, collateral_type, rewards_usd - FROM + from {{ ref('fct_pool_rewards_token_hourly_arbitrum_sepolia') }} ) -SELECT + +select ts, pool_id, collateral_type, - SUM(rewards_usd) AS rewards_usd -FROM + SUM(rewards_usd) as rewards_usd +from token_hourly -GROUP BY +group by ts, pool_id, collateral_type diff --git a/transformers/synthetix/models/marts/arbitrum/sepolia/core/fct_pool_rewards_token_hourly_arbitrum_sepolia.sql b/transformers/synthetix/models/marts/arbitrum/sepolia/core/fct_pool_rewards_token_hourly_arbitrum_sepolia.sql index 1e9634e5e..7d3e45ae7 100644 --- a/transformers/synthetix/models/marts/arbitrum/sepolia/core/fct_pool_rewards_token_hourly_arbitrum_sepolia.sql +++ b/transformers/synthetix/models/marts/arbitrum/sepolia/core/fct_pool_rewards_token_hourly_arbitrum_sepolia.sql @@ -1,28 +1,32 @@ -WITH dim AS ( - SELECT - generate_series(DATE_TRUNC('hour', MIN(t.ts)), DATE_TRUNC('hour', MAX(t.ts)), '1 hour' :: INTERVAL) AS ts, +with dim as ( + select m.pool_id, - m.collateral_type - FROM + m.collateral_type, + generate_series( + date_trunc('hour', min(t.ts)), + date_trunc('hour', max(t.ts)), + '1 hour'::INTERVAL + ) as ts + from ( - SELECT - ts - FROM - {{ ref('fct_pool_debt_arbitrum_sepolia') }} - ) AS t - CROSS JOIN ( - SELECT - DISTINCT pool_id, - collateral_type - FROM + select ts + from {{ ref('fct_pool_debt_arbitrum_sepolia') }} - ) AS m - GROUP BY + ) as t + cross join ( + select distinct + pool_id, + collateral_type + from + {{ ref('fct_pool_debt_arbitrum_sepolia') }} + ) as m + group by m.pool_id, m.collateral_type ), -rewards_distributed AS ( - SELECT + +rewards_distributed as ( + select ts, pool_id, collateral_type, @@ -31,11 +35,12 @@ rewards_distributed AS ( amount, ts_start, "duration" - FROM + from {{ ref('fct_pool_rewards_arbitrum_sepolia') }} ), -hourly_distributions AS ( - SELECT + +hourly_distributions as ( + select dim.ts, dim.pool_id, dim.collateral_type, @@ -44,28 +49,31 @@ hourly_distributions AS ( r.amount, r.ts_start, r."duration", - ROW_NUMBER() over ( - PARTITION BY dim.ts, - dim.pool_id, - dim.collateral_type, - r.distributor - ORDER BY - r.ts_start DESC - ) AS distributor_index - FROM + row_number() over ( + partition by + dim.ts, + dim.pool_id, + dim.collateral_type, + r.distributor + order by + r.ts_start desc + ) as distributor_index + from dim - LEFT JOIN rewards_distributed r - ON dim.pool_id = r.pool_id - AND LOWER( - dim.collateral_type - ) = LOWER( - r.collateral_type - ) - AND dim.ts + '1 hour' :: INTERVAL >= r.ts_start - AND dim.ts < r.ts_start + r."duration" * '1 second' :: INTERVAL + left join rewards_distributed as r + on + dim.pool_id = r.pool_id + and lower( + dim.collateral_type + ) = lower( + r.collateral_type + ) + and dim.ts + '1 hour'::INTERVAL >= r.ts_start + and dim.ts < r.ts_start + r."duration" * '1 second'::INTERVAL ), -hourly_rewards AS ( - SELECT + +hourly_rewards as ( + select d.ts, d.pool_id, d.collateral_type, @@ -75,39 +83,42 @@ hourly_rewards AS ( -- get the hourly amount distributed d.amount / ( d."duration" / 3600 - ) AS hourly_amount, + ) as hourly_amount, -- get the amount of time distributed this hour -- use the smaller of those two intervals -- convert the interval to a number of hours -- multiply the result by the hourly amount to get the amount distributed this hour ( - EXTRACT( + extract( epoch - FROM - LEAST( - d."duration" / 3600 * '1 hour' :: INTERVAL, - d.ts + '1 hour' :: INTERVAL - GREATEST( - d.ts, - d.ts_start - ) + from + least( + d."duration" / 3600 * '1 hour'::INTERVAL, + d.ts + '1 hour'::INTERVAL - greatest( + d.ts, + d.ts_start ) + ) ) / 3600 ) * d.amount / ( d."duration" / 3600 - ) AS amount_distributed - FROM - hourly_distributions AS d - LEFT JOIN {{ ref('fct_prices_hourly_arbitrum_sepolia') }} - p - ON d.ts = p.ts - AND d.token_symbol = p.market_symbol - WHERE + ) as amount_distributed + from + hourly_distributions as d + left join + {{ ref('fct_prices_hourly_arbitrum_sepolia') }} + as p + on + d.ts = p.ts + and d.token_symbol = p.market_symbol + where d.distributor_index = 1 ) -SELECT + +select *, - amount_distributed * price AS rewards_usd -FROM + amount_distributed * price as rewards_usd +from hourly_rewards -WHERE - amount_distributed IS NOT NULL +where + amount_distributed is not null diff --git a/transformers/synthetix/models/marts/arbitrum/sepolia/prices/fct_prices_arbitrum_sepolia.sql b/transformers/synthetix/models/marts/arbitrum/sepolia/prices/fct_prices_arbitrum_sepolia.sql index 32fc13dcf..da8d2cf80 100644 --- a/transformers/synthetix/models/marts/arbitrum/sepolia/prices/fct_prices_arbitrum_sepolia.sql +++ b/transformers/synthetix/models/marts/arbitrum/sepolia/prices/fct_prices_arbitrum_sepolia.sql @@ -1,33 +1,35 @@ -WITH all_prices AS ( - SELECT +with all_prices as ( + select ts, - collateral_type AS market_address, - NULL AS market_symbol, - collateral_value / amount AS price - FROM + collateral_type as market_address, + null as market_symbol, + collateral_value / amount as price + from {{ ref('core_vault_collateral_arbitrum_sepolia') }} - WHERE + where collateral_value > 0 ), -tokens AS ( - SELECT + +tokens as ( + select token_address, token_symbol - FROM + from {{ ref('arbitrum_sepolia_tokens') }} ) -SELECT + +select p.ts, p.market_address, + p.price, COALESCE( t.token_symbol, p.market_symbol - ) AS market_symbol, - p.price -FROM - all_prices p - LEFT JOIN tokens t - ON LOWER( + ) as market_symbol +from + all_prices as p +left join tokens as t + on LOWER( p.market_address ) = LOWER( t.token_address diff --git a/transformers/synthetix/models/marts/arbitrum/sepolia/prices/fct_prices_hourly_arbitrum_sepolia.sql b/transformers/synthetix/models/marts/arbitrum/sepolia/prices/fct_prices_hourly_arbitrum_sepolia.sql index c2317a5e1..c7e7404f4 100644 --- a/transformers/synthetix/models/marts/arbitrum/sepolia/prices/fct_prices_hourly_arbitrum_sepolia.sql +++ b/transformers/synthetix/models/marts/arbitrum/sepolia/prices/fct_prices_hourly_arbitrum_sepolia.sql @@ -1,63 +1,72 @@ -WITH prices AS ( - SELECT - DISTINCT DATE_TRUNC( +with prices as ( + select distinct + market_symbol, + DATE_TRUNC( 'hour', ts - ) AS ts, - market_symbol, - LAST_VALUE(price) over (PARTITION BY DATE_TRUNC('hour', ts), market_symbol - ORDER BY - ts rows BETWEEN unbounded preceding - AND unbounded following) AS price - FROM + ) as ts, + LAST_VALUE(price) over ( + partition by DATE_TRUNC('hour', ts), market_symbol + order by + ts + rows between unbounded preceding + and unbounded following + ) as price + from {{ ref('fct_prices_arbitrum_sepolia') }} ), -dim AS ( - SELECT - generate_series(DATE_TRUNC('hour', MIN(t.ts)), DATE_TRUNC('hour', MAX(t.ts)), '1 hour' :: INTERVAL) AS ts, - m.market_symbol - FROM + +dim as ( + select + m.market_symbol, + GENERATE_SERIES( + DATE_TRUNC('hour', MIN(t.ts)), + DATE_TRUNC('hour', MAX(t.ts)), + '1 hour'::INTERVAL + ) as ts + from ( - SELECT - ts - FROM - prices - ) AS t - CROSS JOIN ( - SELECT - DISTINCT market_symbol - FROM + select ts + from prices - ) AS m - GROUP BY + ) as t + cross join ( + select distinct market_symbol + from + prices + ) as m + group by m.market_symbol ), -ffill AS ( - SELECT + +ffill as ( + select dim.ts, dim.market_symbol, - last(prices.price) over ( - partition by dim.market_symbol - order by dim.ts + LAST(prices.price) over ( + partition by dim.market_symbol + order by dim.ts rows between unbounded preceding and current row ) as price - FROM + from dim - LEFT JOIN prices - ON dim.ts = prices.ts - AND dim.market_symbol = prices.market_symbol + left join prices + on + dim.ts = prices.ts + and dim.market_symbol = prices.market_symbol ), -hourly_prices AS ( - SELECT + +hourly_prices as ( + select ts, market_symbol, price - FROM + from ffill ) -SELECT - * -FROM + +select * +from hourly_prices -WHERE - price IS NOT NULL +where + price is not null diff --git a/transformers/synthetix/models/marts/arbitrum/sepolia/spot/fct_spot_atomics_arbitrum_sepolia.sql b/transformers/synthetix/models/marts/arbitrum/sepolia/spot/fct_spot_atomics_arbitrum_sepolia.sql index 82a1c1308..38702f784 100644 --- a/transformers/synthetix/models/marts/arbitrum/sepolia/spot/fct_spot_atomics_arbitrum_sepolia.sql +++ b/transformers/synthetix/models/marts/arbitrum/sepolia/spot/fct_spot_atomics_arbitrum_sepolia.sql @@ -1,51 +1,53 @@ -WITH bought AS ( - SELECT +with bought as ( + select + id, + block_timestamp as ts, + block_number, + transaction_hash as tx_hash, + synth_market_id, + {{ convert_wei('price') }} as price, + {{ convert_wei('synth_returned') }} as amount, + referrer + from + {{ ref('spot_synth_bought_arbitrum_sepolia') }} +), + +sold as ( + select + id, + block_timestamp as ts, + block_number, + transaction_hash as tx_hash, + synth_market_id, + {{ convert_wei('price') }} as price, + -1 * {{ convert_wei('amount_returned') }} as amount, + referrer + from + {{ ref('spot_synth_sold_arbitrum_sepolia') }} +) + +select id, - block_timestamp AS ts, + ts, block_number, - transaction_hash AS tx_hash, + tx_hash, synth_market_id, - {{ convert_wei('price') }} AS price, - {{ convert_wei('synth_returned') }} AS amount, + price, + amount, referrer - FROM - {{ ref('spot_synth_bought_arbitrum_sepolia') }} -), -sold AS ( - SELECT +from + bought +union all +select id, - block_timestamp AS ts, + ts, block_number, - transaction_hash AS tx_hash, + tx_hash, synth_market_id, - {{ convert_wei('price') }} AS price, - -1 * {{ convert_wei('amount_returned') }} AS amount, + price, + amount, referrer - FROM - {{ ref('spot_synth_sold_arbitrum_sepolia') }} -) -SELECT - id, - ts, - block_number, - tx_hash, - synth_market_id, - price, - amount, - referrer -FROM - bought -UNION ALL -SELECT - id, - ts, - block_number, - tx_hash, - synth_market_id, - price, - amount, - referrer -FROM - sold -ORDER BY - ts +from + sold +order by + ts diff --git a/transformers/synthetix/models/marts/arbitrum/sepolia/spot/fct_spot_markets_arbitrum_sepolia.sql b/transformers/synthetix/models/marts/arbitrum/sepolia/spot/fct_spot_markets_arbitrum_sepolia.sql index 734479955..c69a6afec 100644 --- a/transformers/synthetix/models/marts/arbitrum/sepolia/spot/fct_spot_markets_arbitrum_sepolia.sql +++ b/transformers/synthetix/models/marts/arbitrum/sepolia/spot/fct_spot_markets_arbitrum_sepolia.sql @@ -1,13 +1,13 @@ -WITH base AS ( - SELECT - synth_market_id AS id, - block_timestamp AS created_ts, - block_number, - synth_token_address AS token_address - FROM - {{ ref('spot_synth_registered_arbitrum_sepolia') }} +with base as ( + select + synth_market_id as id, + block_timestamp as created_ts, + block_number, + synth_token_address as token_address + from + {{ ref('spot_synth_registered_arbitrum_sepolia') }} ) -SELECT - * -FROM - base + +select * +from + base diff --git a/transformers/synthetix/models/marts/arbitrum/sepolia/spot/fct_spot_wrapper_arbitrum_sepolia.sql b/transformers/synthetix/models/marts/arbitrum/sepolia/spot/fct_spot_wrapper_arbitrum_sepolia.sql index 52699b4e6..b5612350c 100644 --- a/transformers/synthetix/models/marts/arbitrum/sepolia/spot/fct_spot_wrapper_arbitrum_sepolia.sql +++ b/transformers/synthetix/models/marts/arbitrum/sepolia/spot/fct_spot_wrapper_arbitrum_sepolia.sql @@ -1,43 +1,45 @@ -WITH wraps AS ( - SELECT +with wraps as ( + select + id, + block_timestamp as ts, + block_number, + transaction_hash as tx_hash, + synth_market_id, + {{ convert_wei('amount_wrapped') }} as amount_wrapped + from + {{ ref('spot_synth_wrapped_arbitrum_sepolia') }} +), + +unwraps as ( + select + id, + block_timestamp as ts, + block_number, + transaction_hash as tx_hash, + synth_market_id, + -1 * {{ convert_wei('amount_unwrapped') }} as amount_wrapped + from + {{ ref('spot_synth_unwrapped_arbitrum_sepolia') }} +) + +select id, - block_timestamp AS ts, + ts, block_number, - transaction_hash AS tx_hash, + tx_hash, synth_market_id, - {{ convert_wei('amount_wrapped') }} AS amount_wrapped - FROM - {{ ref('spot_synth_wrapped_arbitrum_sepolia') }} -), -unwraps AS ( - SELECT + amount_wrapped +from + wraps +union all +select id, - block_timestamp AS ts, + ts, block_number, - transaction_hash AS tx_hash, + tx_hash, synth_market_id, - -1 * {{ convert_wei('amount_unwrapped') }} AS amount_wrapped - FROM - {{ ref('spot_synth_unwrapped_arbitrum_sepolia') }} -) -SELECT - id, - ts, - block_number, - tx_hash, - synth_market_id, - amount_wrapped -FROM - wraps -UNION ALL -SELECT - id, - ts, - block_number, - tx_hash, - synth_market_id, - amount_wrapped -FROM - unwraps -ORDER BY - ts + amount_wrapped +from + unwraps +order by + ts diff --git a/transformers/synthetix/models/marts/arbitrum/sepolia/spot/fct_synth_supply_arbitrum_sepolia.sql b/transformers/synthetix/models/marts/arbitrum/sepolia/spot/fct_synth_supply_arbitrum_sepolia.sql index d64c7a6b8..7c0d89d52 100644 --- a/transformers/synthetix/models/marts/arbitrum/sepolia/spot/fct_synth_supply_arbitrum_sepolia.sql +++ b/transformers/synthetix/models/marts/arbitrum/sepolia/spot/fct_synth_supply_arbitrum_sepolia.sql @@ -1,71 +1,72 @@ -WITH wrapper AS ( - SELECT +with wrapper as ( + select ts, block_number, synth_market_id, - amount_wrapped AS change_amount - FROM + amount_wrapped as change_amount + from {{ ref('fct_spot_wrapper_arbitrum_sepolia') }} ), -atomics AS ( - SELECT + +atomics as ( + select ts, block_number, synth_market_id, - amount AS change_amount - FROM + amount as change_amount + from {{ ref('fct_spot_atomics_arbitrum_sepolia') }} - UNION ALL - SELECT + union all + select ts, block_number, - 0 AS synth_market_id, - amount * price * -1 AS change_amount - FROM + 0 as synth_market_id, + amount * price * -1 as change_amount + from {{ ref('fct_spot_atomics_arbitrum_sepolia') }} ), -usd_changes AS ( - SELECT - block_timestamp AS ts, + +usd_changes as ( + select + block_timestamp as ts, block_number, - 0 AS synth_market_id, - {{ convert_wei("amount") }} AS change_amount - FROM + 0 as synth_market_id, + {{ convert_wei("amount") }} as change_amount + from {{ ref('core_usd_minted_arbitrum_sepolia') }} - UNION ALL - SELECT - block_timestamp AS ts, + union all + select + block_timestamp as ts, block_number, - 0 AS synth_market_id, - -1 * {{ convert_wei("amount") }} AS change_amount - FROM + 0 as synth_market_id, + -1 * {{ convert_wei("amount") }} as change_amount + from {{ ref('core_usd_burned_arbitrum_sepolia') }} ), -all_changes AS ( - SELECT - * - FROM + +all_changes as ( + select * + from wrapper - UNION ALL - SELECT - * - FROM + union all + select * + from atomics - UNION ALL - SELECT - * - FROM + union all + select * + from usd_changes ) -SELECT + +select ts, block_number, synth_market_id, SUM(change_amount) over ( - PARTITION BY synth_market_id - ORDER BY + partition by synth_market_id + order by ts, block_number - ) AS supply -FROM + ) as supply +from all_changes diff --git a/transformers/synthetix/models/marts/base/mainnet/buyback/fct_buyback_base_mainnet.sql b/transformers/synthetix/models/marts/base/mainnet/buyback/fct_buyback_base_mainnet.sql index 2bbb390bc..f7b1faba7 100644 --- a/transformers/synthetix/models/marts/base/mainnet/buyback/fct_buyback_base_mainnet.sql +++ b/transformers/synthetix/models/marts/base/mainnet/buyback/fct_buyback_base_mainnet.sql @@ -1,9 +1,9 @@ -SELECT +select id, - block_timestamp AS ts, + block_timestamp as ts, buyer, - {{ convert_wei('snx') }} AS snx, - {{ convert_wei('usd') }} AS usd, - ({{ convert_wei('usd') }}) / ({{ convert_wei('snx') }}) AS snx_price -FROM + {{ convert_wei('snx') }} as snx, + {{ convert_wei('usd') }} as usd, + ({{ convert_wei('usd') }}) / ({{ convert_wei('snx') }}) as snx_price +from {{ ref('buyback_processed_base_mainnet') }} diff --git a/transformers/synthetix/models/marts/base/mainnet/buyback/fct_buyback_daily_base_mainnet.sql b/transformers/synthetix/models/marts/base/mainnet/buyback/fct_buyback_daily_base_mainnet.sql index 7f892ee6a..ed21b6664 100644 --- a/transformers/synthetix/models/marts/base/mainnet/buyback/fct_buyback_daily_base_mainnet.sql +++ b/transformers/synthetix/models/marts/base/mainnet/buyback/fct_buyback_daily_base_mainnet.sql @@ -1,27 +1,28 @@ -WITH agg AS ( - SELECT +with agg as ( + select DATE_TRUNC( 'day', ts - ) AS ts, - SUM(snx) AS snx_amount, - SUM(usd) AS usd_amount - FROM + ) as ts, + SUM(snx) as snx_amount, + SUM(usd) as usd_amount + from {{ ref('fct_buyback_base_mainnet') }} - GROUP BY + group by 1 ) -- add cumulative amounts -SELECT + +select ts, snx_amount, usd_amount, SUM(snx_amount) over ( - ORDER BY + order by ts - ) AS cumulative_snx_amount, + ) as cumulative_snx_amount, SUM(usd_amount) over ( - ORDER BY + order by ts - ) AS cumulative_usd_amount -FROM + ) as cumulative_usd_amount +from agg diff --git a/transformers/synthetix/models/marts/base/mainnet/buyback/fct_buyback_hourly_base_mainnet.sql b/transformers/synthetix/models/marts/base/mainnet/buyback/fct_buyback_hourly_base_mainnet.sql index 8ee5eade6..d50e7e7db 100644 --- a/transformers/synthetix/models/marts/base/mainnet/buyback/fct_buyback_hourly_base_mainnet.sql +++ b/transformers/synthetix/models/marts/base/mainnet/buyback/fct_buyback_hourly_base_mainnet.sql @@ -1,27 +1,28 @@ -WITH agg AS ( - SELECT +with agg as ( + select DATE_TRUNC( 'hour', ts - ) AS ts, - SUM(snx) AS snx_amount, - SUM(usd) AS usd_amount - FROM + ) as ts, + SUM(snx) as snx_amount, + SUM(usd) as usd_amount + from {{ ref('fct_buyback_base_mainnet') }} - GROUP BY + group by 1 ) -- add cumulative amounts -SELECT + +select ts, snx_amount, usd_amount, SUM(snx_amount) over ( - ORDER BY + order by ts - ) AS cumulative_snx_amount, + ) as cumulative_snx_amount, SUM(usd_amount) over ( - ORDER BY + order by ts - ) AS cumulative_usd_amount -FROM + ) as cumulative_usd_amount +from agg diff --git a/transformers/synthetix/models/marts/base/mainnet/core/fct_core_account_delegation_base_mainnet.sql b/transformers/synthetix/models/marts/base/mainnet/core/fct_core_account_delegation_base_mainnet.sql index 1bcc74d05..5f70a1721 100644 --- a/transformers/synthetix/models/marts/base/mainnet/core/fct_core_account_delegation_base_mainnet.sql +++ b/transformers/synthetix/models/marts/base/mainnet/core/fct_core_account_delegation_base_mainnet.sql @@ -1,54 +1,60 @@ -WITH delegation_changes AS ( - SELECT +with delegation_changes as ( + select block_timestamp, account_id, pool_id, collateral_type, - {{ convert_wei('amount') }} - LAG({{ convert_wei('amount') }}, 1, 0) over ( - PARTITION BY account_id, - pool_id, - collateral_type - ORDER BY + {{ convert_wei('amount') }} + - LAG({{ convert_wei('amount') }}, 1, 0) over ( + partition by + account_id, + pool_id, + collateral_type + order by block_timestamp - ) AS change_in_amount - FROM + ) as change_in_amount + from {{ ref('core_delegation_updated_base_mainnet') }} ), -cumulative_delegation AS ( - SELECT + +cumulative_delegation as ( + select block_timestamp, account_id, pool_id, collateral_type, SUM(change_in_amount) over ( - PARTITION BY pool_id, - account_id, - collateral_type - ORDER BY + partition by + pool_id, + account_id, + collateral_type + order by block_timestamp - ) AS cumulative_amount_delegated, + ) as cumulative_amount_delegated, ROW_NUMBER() over ( - PARTITION BY pool_id, - account_id, - collateral_type - ORDER BY - block_timestamp DESC - ) AS rn - FROM + partition by + pool_id, + account_id, + collateral_type + order by + block_timestamp desc + ) as rn + from delegation_changes ) -SELECT - block_timestamp AS ts, - CAST( - account_id AS text - ) AS account_id, + +select + block_timestamp as ts, pool_id, collateral_type, - cumulative_amount_delegated AS amount_delegated -FROM + cumulative_amount_delegated as amount_delegated, + CAST( + account_id as text + ) as account_id +from cumulative_delegation -WHERE +where rn = 1 -ORDER BY +order by block_timestamp, collateral_type diff --git a/transformers/synthetix/models/marts/base/mainnet/core/fct_core_apr_base_mainnet.sql b/transformers/synthetix/models/marts/base/mainnet/core/fct_core_apr_base_mainnet.sql index 25dd7f73f..9c29b6dd8 100644 --- a/transformers/synthetix/models/marts/base/mainnet/core/fct_core_apr_base_mainnet.sql +++ b/transformers/synthetix/models/marts/base/mainnet/core/fct_core_apr_base_mainnet.sql @@ -4,8 +4,8 @@ ) }} -WITH pnl_hourly AS ( - SELECT +with pnl_hourly as ( + select ts, pool_id, collateral_type, @@ -23,160 +23,185 @@ WITH pnl_hourly AS ( 0 ) ) over ( - PARTITION BY pool_id, - collateral_type - ORDER BY + partition by + pool_id, + collateral_type + order by ts - ) AS cumulative_issuance, + ) as cumulative_issuance, SUM( hourly_pnl ) over ( - PARTITION BY pool_id, - collateral_type - ORDER BY + partition by + pool_id, + collateral_type + order by ts - ) AS cumulative_pnl - FROM + ) as cumulative_pnl + from {{ ref('fct_pool_pnl_hourly_base_mainnet') }} ), -avg_returns AS ( - SELECT + +avg_returns as ( + select ts, pool_id, collateral_type, AVG( hourly_pnl_pct ) over ( - PARTITION BY pool_id, - collateral_type - ORDER BY - ts RANGE BETWEEN INTERVAL '24 HOURS' preceding - AND CURRENT ROW - ) AS avg_24h_pnl_pct, + partition by + pool_id, + collateral_type + order by + ts + range between interval '24 HOURS' preceding + and current row + ) as avg_24h_pnl_pct, AVG( hourly_pnl_pct ) over ( - PARTITION BY pool_id, - collateral_type - ORDER BY - ts RANGE BETWEEN INTERVAL '7 DAYS' preceding - AND CURRENT ROW - ) AS avg_7d_pnl_pct, + partition by + pool_id, + collateral_type + order by + ts + range between interval '7 DAYS' preceding + and current row + ) as avg_7d_pnl_pct, AVG( hourly_pnl_pct ) over ( - PARTITION BY pool_id, - collateral_type - ORDER BY - ts RANGE BETWEEN INTERVAL '28 DAYS' preceding - AND CURRENT ROW - ) AS avg_28d_pnl_pct, + partition by + pool_id, + collateral_type + order by + ts + range between interval '28 DAYS' preceding + and current row + ) as avg_28d_pnl_pct, AVG( hourly_rewards_pct ) over ( - PARTITION BY pool_id, - collateral_type - ORDER BY - ts RANGE BETWEEN INTERVAL '24 HOURS' preceding - AND CURRENT ROW - ) AS avg_24h_rewards_pct, + partition by + pool_id, + collateral_type + order by + ts + range between interval '24 HOURS' preceding + and current row + ) as avg_24h_rewards_pct, AVG( hourly_rewards_pct ) over ( - PARTITION BY pool_id, - collateral_type - ORDER BY - ts RANGE BETWEEN INTERVAL '7 DAYS' preceding - AND CURRENT ROW - ) AS avg_7d_rewards_pct, + partition by + pool_id, + collateral_type + order by + ts + range between interval '7 DAYS' preceding + and current row + ) as avg_7d_rewards_pct, AVG( hourly_rewards_pct ) over ( - PARTITION BY pool_id, - collateral_type - ORDER BY - ts RANGE BETWEEN INTERVAL '28 DAYS' preceding - AND CURRENT ROW - ) AS avg_28d_rewards_pct, + partition by + pool_id, + collateral_type + order by + ts + range between interval '28 DAYS' preceding + and current row + ) as avg_28d_rewards_pct, AVG( hourly_total_pct ) over ( - PARTITION BY pool_id, - collateral_type - ORDER BY - ts RANGE BETWEEN INTERVAL '24 HOURS' preceding - AND CURRENT ROW - ) AS avg_24h_total_pct, + partition by + pool_id, + collateral_type + order by + ts + range between interval '24 HOURS' preceding + and current row + ) as avg_24h_total_pct, AVG( hourly_total_pct ) over ( - PARTITION BY pool_id, - collateral_type - ORDER BY - ts RANGE BETWEEN INTERVAL '7 DAYS' preceding - AND CURRENT ROW - ) AS avg_7d_total_pct, + partition by + pool_id, + collateral_type + order by + ts + range between interval '7 DAYS' preceding + and current row + ) as avg_7d_total_pct, AVG( hourly_total_pct ) over ( - PARTITION BY pool_id, - collateral_type - ORDER BY - ts RANGE BETWEEN INTERVAL '28 DAYS' preceding - AND CURRENT ROW - ) AS avg_28d_total_pct - FROM + partition by + pool_id, + collateral_type + order by + ts + range between interval '28 DAYS' preceding + and current row + ) as avg_28d_total_pct + from pnl_hourly ), -apr_calculations AS ( - SELECT - pnl_hourly.ts AS ts, - pnl_hourly.pool_id AS pool_id, - pnl_hourly.collateral_type AS collateral_type, - pnl_hourly.collateral_value AS collateral_value, - pnl_hourly.debt AS debt, - pnl_hourly.hourly_pnl AS hourly_pnl, - pnl_hourly.cumulative_pnl AS cumulative_pnl, - pnl_hourly.hourly_issuance AS hourly_issuance, - pnl_hourly.cumulative_issuance AS cumulative_issuance, - pnl_hourly.rewards_usd AS rewards_usd, - pnl_hourly.hourly_pnl_pct AS hourly_pnl_pct, - pnl_hourly.hourly_rewards_pct AS hourly_rewards_pct, + +apr_calculations as ( + select + pnl_hourly.ts, + pnl_hourly.pool_id, + pnl_hourly.collateral_type, + pnl_hourly.collateral_value, + pnl_hourly.debt, + pnl_hourly.hourly_pnl, + pnl_hourly.cumulative_pnl, + pnl_hourly.hourly_issuance, + pnl_hourly.cumulative_issuance, + pnl_hourly.rewards_usd, + pnl_hourly.hourly_pnl_pct, + pnl_hourly.hourly_rewards_pct, -- total pnls - avg_returns.avg_24h_total_pct * 24 * 365 AS apr_24h, - avg_returns.avg_7d_total_pct * 24 * 365 AS apr_7d, - avg_returns.avg_28d_total_pct * 24 * 365 AS apr_28d, + avg_returns.avg_24h_total_pct * 24 * 365 as apr_24h, + avg_returns.avg_7d_total_pct * 24 * 365 as apr_7d, + avg_returns.avg_28d_total_pct * 24 * 365 as apr_28d, -- pool pnls - avg_returns.avg_24h_pnl_pct * 24 * 365 AS apr_24h_pnl, - avg_returns.avg_7d_pnl_pct * 24 * 365 AS apr_7d_pnl, - avg_returns.avg_28d_pnl_pct * 24 * 365 AS apr_28d_pnl, + avg_returns.avg_24h_pnl_pct * 24 * 365 as apr_24h_pnl, + avg_returns.avg_7d_pnl_pct * 24 * 365 as apr_7d_pnl, + avg_returns.avg_28d_pnl_pct * 24 * 365 as apr_28d_pnl, -- rewards pnls - avg_returns.avg_24h_rewards_pct * 24 * 365 AS apr_24h_rewards, - avg_returns.avg_7d_rewards_pct * 24 * 365 AS apr_7d_rewards, - avg_returns.avg_28d_rewards_pct * 24 * 365 AS apr_28d_rewards - FROM + avg_returns.avg_24h_rewards_pct * 24 * 365 as apr_24h_rewards, + avg_returns.avg_7d_rewards_pct * 24 * 365 as apr_7d_rewards, + avg_returns.avg_28d_rewards_pct * 24 * 365 as apr_28d_rewards + from pnl_hourly - JOIN avg_returns - ON pnl_hourly.ts = avg_returns.ts - AND pnl_hourly.pool_id = avg_returns.pool_id - AND pnl_hourly.collateral_type = avg_returns.collateral_type + inner join avg_returns + on + pnl_hourly.ts = avg_returns.ts + and pnl_hourly.pool_id = avg_returns.pool_id + and pnl_hourly.collateral_type = avg_returns.collateral_type ), -apy_calculations AS ( - SELECT + +apy_calculations as ( + select *, - (power(1 + apr_24h / 8760, 8760) - 1) AS apy_24h, - (power(1 + apr_7d / 8760, 8760) - 1) AS apy_7d, - (power(1 + apr_28d / 8760, 8760) - 1) AS apy_28d, - (power(1 + apr_24h_pnl / 8760, 8760) - 1) AS apy_24h_pnl, - (power(1 + apr_7d_pnl / 8760, 8760) - 1) AS apy_7d_pnl, - (power(1 + apr_28d_pnl / 8760, 8760) - 1) AS apy_28d_pnl, - (power(1 + apr_24h_rewards / 8760, 8760) - 1) AS apy_24h_rewards, - (power(1 + apr_7d_rewards / 8760, 8760) - 1) AS apy_7d_rewards, - (power(1 + apr_28d_rewards / 8760, 8760) - 1) AS apy_28d_rewards - FROM + (POWER(1 + apr_24h / 8760, 8760) - 1) as apy_24h, + (POWER(1 + apr_7d / 8760, 8760) - 1) as apy_7d, + (POWER(1 + apr_28d / 8760, 8760) - 1) as apy_28d, + (POWER(1 + apr_24h_pnl / 8760, 8760) - 1) as apy_24h_pnl, + (POWER(1 + apr_7d_pnl / 8760, 8760) - 1) as apy_7d_pnl, + (POWER(1 + apr_28d_pnl / 8760, 8760) - 1) as apy_28d_pnl, + (POWER(1 + apr_24h_rewards / 8760, 8760) - 1) as apy_24h_rewards, + (POWER(1 + apr_7d_rewards / 8760, 8760) - 1) as apy_7d_rewards, + (POWER(1 + apr_28d_rewards / 8760, 8760) - 1) as apy_28d_rewards + from apr_calculations ) -SELECT + +select ts, pool_id, collateral_type, @@ -207,7 +232,7 @@ SELECT apy_7d_rewards, apr_28d_rewards, apy_28d_rewards -FROM +from apy_calculations -ORDER BY +order by ts diff --git a/transformers/synthetix/models/marts/base/mainnet/core/fct_core_apr_rewards_base_mainnet.sql b/transformers/synthetix/models/marts/base/mainnet/core/fct_core_apr_rewards_base_mainnet.sql index 66189c886..c6f75d61a 100644 --- a/transformers/synthetix/models/marts/base/mainnet/core/fct_core_apr_rewards_base_mainnet.sql +++ b/transformers/synthetix/models/marts/base/mainnet/core/fct_core_apr_rewards_base_mainnet.sql @@ -4,8 +4,8 @@ ) }} -WITH pnl_hourly AS ( - SELECT +with pnl_hourly as ( + select ts, pool_id, collateral_type, @@ -13,11 +13,12 @@ WITH pnl_hourly AS ( collateral_value, rewards_usd, hourly_rewards_pct - FROM + from {{ ref('fct_pool_pnl_hourly_reward_base_mainnet') }} ), -avg_returns AS ( - SELECT + +avg_returns as ( + select ts, pool_id, collateral_type, @@ -25,66 +26,76 @@ avg_returns AS ( AVG( hourly_rewards_pct ) over ( - PARTITION BY pool_id, - collateral_type, - reward_token - ORDER BY - ts RANGE BETWEEN INTERVAL '24 HOURS' preceding - AND CURRENT ROW - ) AS avg_24h_rewards_pct, + partition by + pool_id, + collateral_type, + reward_token + order by + ts + range between interval '24 HOURS' preceding + and current row + ) as avg_24h_rewards_pct, AVG( hourly_rewards_pct ) over ( - PARTITION BY pool_id, - collateral_type, - reward_token - ORDER BY - ts RANGE BETWEEN INTERVAL '7 DAYS' preceding - AND CURRENT ROW - ) AS avg_7d_rewards_pct, + partition by + pool_id, + collateral_type, + reward_token + order by + ts + range between interval '7 DAYS' preceding + and current row + ) as avg_7d_rewards_pct, AVG( hourly_rewards_pct ) over ( - PARTITION BY pool_id, - collateral_type, - reward_token - ORDER BY - ts RANGE BETWEEN INTERVAL '28 DAYS' preceding - AND CURRENT ROW - ) AS avg_28d_rewards_pct - FROM + partition by + pool_id, + collateral_type, + reward_token + order by + ts + range between interval '28 DAYS' preceding + and current row + ) as avg_28d_rewards_pct + from pnl_hourly ), -apr_calculations AS ( - SELECT - pnl_hourly.ts AS ts, - pnl_hourly.pool_id AS pool_id, - pnl_hourly.collateral_type AS collateral_type, - pnl_hourly.reward_token AS reward_token, - pnl_hourly.collateral_value AS collateral_value, - pnl_hourly.rewards_usd AS rewards_usd, - pnl_hourly.hourly_rewards_pct AS hourly_rewards_pct, - avg_returns.avg_24h_rewards_pct * 24 * 365 AS apr_24h_rewards, - avg_returns.avg_7d_rewards_pct * 24 * 365 AS apr_7d_rewards, - avg_returns.avg_28d_rewards_pct * 24 * 365 AS apr_28d_rewards - FROM + +apr_calculations as ( + select + pnl_hourly.ts, + pnl_hourly.pool_id, + pnl_hourly.collateral_type, + pnl_hourly.reward_token, + pnl_hourly.collateral_value, + pnl_hourly.rewards_usd, + pnl_hourly.hourly_rewards_pct, + avg_returns.avg_24h_rewards_pct * 24 * 365 as apr_24h_rewards, + avg_returns.avg_7d_rewards_pct * 24 * 365 as apr_7d_rewards, + avg_returns.avg_28d_rewards_pct * 24 * 365 as apr_28d_rewards + from pnl_hourly - JOIN avg_returns - ON pnl_hourly.ts = avg_returns.ts - AND pnl_hourly.pool_id = avg_returns.pool_id - AND pnl_hourly.collateral_type = avg_returns.collateral_type - AND pnl_hourly.reward_token = avg_returns.reward_token + inner join avg_returns + on + pnl_hourly.ts = avg_returns.ts + and pnl_hourly.pool_id = avg_returns.pool_id + and pnl_hourly.collateral_type = avg_returns.collateral_type + and pnl_hourly.reward_token = avg_returns.reward_token ), -apy_calculations AS ( - SELECT + +apy_calculations as ( + select *, - (power(1 + apr_24h_rewards / 8760, 8760) - 1) AS apy_24h_rewards, - (power(1 + apr_7d_rewards / 8760, 8760) - 1) AS apy_7d_rewards, - (power(1 + apr_28d_rewards / 8760, 8760) - 1) AS apy_28d_rewards - FROM + (POWER(1 + apr_24h_rewards / 8760, 8760) - 1) as apy_24h_rewards, + (POWER(1 + apr_7d_rewards / 8760, 8760) - 1) as apy_7d_rewards, + (POWER(1 + apr_28d_rewards / 8760, 8760) - 1) as apy_28d_rewards + from apr_calculations ) -SELECT + +select ts, pool_id, collateral_type, @@ -98,7 +109,7 @@ SELECT apy_7d_rewards, apr_28d_rewards, apy_28d_rewards -FROM +from apy_calculations -ORDER BY +order by ts diff --git a/transformers/synthetix/models/marts/base/mainnet/core/fct_core_market_updated_base_mainnet.sql b/transformers/synthetix/models/marts/base/mainnet/core/fct_core_market_updated_base_mainnet.sql index f9c39d61e..427f654a1 100644 --- a/transformers/synthetix/models/marts/base/mainnet/core/fct_core_market_updated_base_mainnet.sql +++ b/transformers/synthetix/models/marts/base/mainnet/core/fct_core_market_updated_base_mainnet.sql @@ -1,29 +1,30 @@ -WITH market_updated AS ( - SELECT +with market_updated as ( + select + id, + block_timestamp, + block_number, + transaction_hash, + contract, + event_name, + market_id, + net_issuance, + sender, + collateral_type, + credit_capacity, + token_amount + from + {{ ref('core_market_updated_base_mainnet') }} +) + +select id, - block_timestamp, - block_number, + block_timestamp as ts, transaction_hash, - contract, event_name, market_id, - net_issuance, - sender, collateral_type, - credit_capacity, - token_amount - FROM - {{ ref('core_market_updated_base_mainnet') }} -) -SELECT - id, - block_timestamp AS ts, - transaction_hash, - event_name, - market_id, - collateral_type, - {{ convert_wei("credit_capacity") }} AS credit_capacity, - {{ convert_wei("net_issuance") }} AS net_issuance, - {{ convert_wei("token_amount") }} AS token_amount -FROM - market_updated + {{ convert_wei("credit_capacity") }} as credit_capacity, + {{ convert_wei("net_issuance") }} as net_issuance, + {{ convert_wei("token_amount") }} as token_amount +from + market_updated diff --git a/transformers/synthetix/models/marts/base/mainnet/core/fct_core_pool_collateral_base_mainnet.sql b/transformers/synthetix/models/marts/base/mainnet/core/fct_core_pool_collateral_base_mainnet.sql index 40fb0527f..d5c8969eb 100644 --- a/transformers/synthetix/models/marts/base/mainnet/core/fct_core_pool_collateral_base_mainnet.sql +++ b/transformers/synthetix/models/marts/base/mainnet/core/fct_core_pool_collateral_base_mainnet.sql @@ -1,35 +1,39 @@ -WITH events AS ( - SELECT - block_timestamp, - {{ convert_wei('token_amount') }} AS token_amount, - collateral_type - FROM - {{ ref('core_deposited_base_mainnet') }} - UNION ALL - SELECT - block_timestamp,- {{ convert_wei('token_amount') }} AS token_amount, - collateral_type - FROM - {{ ref('core_withdrawn_base_mainnet') }} +with events as ( + select + block_timestamp, + {{ convert_wei('token_amount') }} as token_amount, + collateral_type + from + {{ ref('core_deposited_base_mainnet') }} + union all + select + block_timestamp, + -{{ convert_wei('token_amount') }} as token_amount, + collateral_type + from + {{ ref('core_withdrawn_base_mainnet') }} ), -ranked_events AS ( - SELECT - *, - SUM(token_amount) over ( - PARTITION BY collateral_type - ORDER BY - block_timestamp rows BETWEEN unbounded preceding - AND CURRENT ROW - ) AS amount_deposited - FROM - events + +ranked_events as ( + select + *, + SUM(token_amount) over ( + partition by collateral_type + order by + block_timestamp + rows between unbounded preceding + and current row + ) as amount_deposited + from + events ) -SELECT - block_timestamp AS ts, - collateral_type, - amount_deposited -FROM - ranked_events -ORDER BY - block_timestamp, - collateral_type + +select + block_timestamp as ts, + collateral_type, + amount_deposited +from + ranked_events +order by + block_timestamp, + collateral_type diff --git a/transformers/synthetix/models/marts/base/mainnet/core/fct_core_pool_delegation_base_mainnet.sql b/transformers/synthetix/models/marts/base/mainnet/core/fct_core_pool_delegation_base_mainnet.sql index ecb5d342e..cfdb81d82 100644 --- a/transformers/synthetix/models/marts/base/mainnet/core/fct_core_pool_delegation_base_mainnet.sql +++ b/transformers/synthetix/models/marts/base/mainnet/core/fct_core_pool_delegation_base_mainnet.sql @@ -1,40 +1,45 @@ -WITH delegation_changes AS ( - SELECT +with delegation_changes as ( + select block_timestamp, account_id, pool_id, collateral_type, - {{ convert_wei('amount') }} - LAG({{ convert_wei('amount') }}, 1, 0) over ( - PARTITION BY account_id, - pool_id, - collateral_type - ORDER BY + {{ convert_wei('amount') }} + - LAG({{ convert_wei('amount') }}, 1, 0) over ( + partition by + account_id, + pool_id, + collateral_type + order by block_timestamp - ) AS change_in_amount - FROM + ) as change_in_amount + from {{ ref('core_delegation_updated_base_mainnet') }} ), -cumulative_delegation AS ( - SELECT + +cumulative_delegation as ( + select block_timestamp, pool_id, collateral_type, SUM(change_in_amount) over ( - PARTITION BY pool_id, - collateral_type - ORDER BY + partition by + pool_id, + collateral_type + order by block_timestamp - ) AS cumulative_amount_delegated - FROM + ) as cumulative_amount_delegated + from delegation_changes ) -SELECT - block_timestamp AS ts, + +select + block_timestamp as ts, pool_id, collateral_type, - cumulative_amount_delegated AS amount_delegated -FROM + cumulative_amount_delegated as amount_delegated +from cumulative_delegation -ORDER BY +order by block_timestamp, collateral_type diff --git a/transformers/synthetix/models/marts/base/mainnet/core/fct_core_pools_base_mainnet.sql b/transformers/synthetix/models/marts/base/mainnet/core/fct_core_pools_base_mainnet.sql index 13f8d4e6d..2fd9e5eca 100644 --- a/transformers/synthetix/models/marts/base/mainnet/core/fct_core_pools_base_mainnet.sql +++ b/transformers/synthetix/models/marts/base/mainnet/core/fct_core_pools_base_mainnet.sql @@ -1,13 +1,13 @@ -WITH base AS ( - SELECT - pool_id AS id, - block_timestamp AS created_ts, - block_number, - owner - FROM - {{ ref('core_pool_created_base_mainnet') }} +with base as ( + select + pool_id as id, + block_timestamp as created_ts, + block_number, + owner + from + {{ ref('core_pool_created_base_mainnet') }} ) -SELECT - * -FROM - base + +select * +from + base diff --git a/transformers/synthetix/models/marts/base/mainnet/core/fct_core_vault_collateral_base_mainnet.sql b/transformers/synthetix/models/marts/base/mainnet/core/fct_core_vault_collateral_base_mainnet.sql index f87a7ec3d..f7b3efd49 100644 --- a/transformers/synthetix/models/marts/base/mainnet/core/fct_core_vault_collateral_base_mainnet.sql +++ b/transformers/synthetix/models/marts/base/mainnet/core/fct_core_vault_collateral_base_mainnet.sql @@ -1,4 +1,4 @@ -SELECT +select ts, block_number, contract_address, @@ -6,5 +6,5 @@ SELECT collateral_type, amount, collateral_value -FROM +from {{ ref("core_vault_collateral_base_mainnet") }} diff --git a/transformers/synthetix/models/marts/base/mainnet/core/fct_pool_debt_base_mainnet.sql b/transformers/synthetix/models/marts/base/mainnet/core/fct_pool_debt_base_mainnet.sql index 9f6f63819..c65a22fba 100644 --- a/transformers/synthetix/models/marts/base/mainnet/core/fct_pool_debt_base_mainnet.sql +++ b/transformers/synthetix/models/marts/base/mainnet/core/fct_pool_debt_base_mainnet.sql @@ -1,10 +1,10 @@ -SELECT +select ts, block_number, pool_id, collateral_type, debt -FROM +from {{ ref('core_vault_debt_base_mainnet') }} -ORDER BY +order by ts diff --git a/transformers/synthetix/models/marts/base/mainnet/core/fct_pool_issuance_base_mainnet.sql b/transformers/synthetix/models/marts/base/mainnet/core/fct_pool_issuance_base_mainnet.sql index cd21382e8..c0ca3ed0d 100644 --- a/transformers/synthetix/models/marts/base/mainnet/core/fct_pool_issuance_base_mainnet.sql +++ b/transformers/synthetix/models/marts/base/mainnet/core/fct_pool_issuance_base_mainnet.sql @@ -1,39 +1,39 @@ -WITH burns AS ( - SELECT - block_timestamp AS ts, +with burns as ( + select + block_timestamp as ts, block_number, transaction_hash, pool_id, collateral_type, account_id, - -1 * {{ convert_wei('amount') }} AS amount - FROM + -1 * {{ convert_wei('amount') }} as amount + from {{ ref('core_usd_burned_base_mainnet') }} - ORDER BY - block_timestamp DESC + order by + block_timestamp desc ), -mints AS ( - SELECT - block_timestamp AS ts, + +mints as ( + select + block_timestamp as ts, block_number, transaction_hash, pool_id, collateral_type, account_id, - {{ convert_wei('amount') }} AS amount - FROM + {{ convert_wei('amount') }} as amount + from {{ ref('core_usd_minted_base_mainnet') }} - ORDER BY - block_timestamp DESC + order by + block_timestamp desc ) -SELECT - * -FROM + +select * +from burns -UNION ALL -SELECT - * -FROM +union all +select * +from mints -ORDER BY - ts DESC +order by + ts desc diff --git a/transformers/synthetix/models/marts/base/mainnet/core/fct_pool_issuance_hourly_base_mainnet.sql b/transformers/synthetix/models/marts/base/mainnet/core/fct_pool_issuance_hourly_base_mainnet.sql index d90044314..fdf731b8b 100644 --- a/transformers/synthetix/models/marts/base/mainnet/core/fct_pool_issuance_hourly_base_mainnet.sql +++ b/transformers/synthetix/models/marts/base/mainnet/core/fct_pool_issuance_hourly_base_mainnet.sql @@ -1,110 +1,119 @@ -WITH dim AS ( - SELECT - generate_series(DATE_TRUNC('hour', MIN(t.ts)), DATE_TRUNC('hour', MAX(t.ts)), '1 hour' :: INTERVAL) AS ts, +with dim as ( + select m.pool_id, - m.collateral_type - FROM + m.collateral_type, + generate_series( + date_trunc('hour', min(t.ts)), + date_trunc('hour', max(t.ts)), + '1 hour'::INTERVAL + ) as ts + from ( - SELECT - ts - FROM - {{ ref('fct_pool_issuance_base_mainnet') }} - ) AS t - CROSS JOIN ( - SELECT - DISTINCT pool_id, - collateral_type - FROM + select ts + from {{ ref('fct_pool_issuance_base_mainnet') }} - ) AS m - GROUP BY + ) as t + cross join ( + select distinct + pool_id, + collateral_type + from + {{ ref('fct_pool_issuance_base_mainnet') }} + ) as m + group by m.pool_id, m.collateral_type ), -max_debt_block AS ( - SELECT - DATE_TRUNC( - 'hour', - ts - ) AS HOUR, + +max_debt_block as ( + select pool_id, collateral_type, - MAX(block_number) AS max_block_number - FROM + date_trunc( + 'hour', + ts + ) as hour, + max(block_number) as max_block_number + from {{ ref('fct_pool_debt_base_mainnet') }} - GROUP BY - DATE_TRUNC( + group by + date_trunc( 'hour', ts ), pool_id, collateral_type ), -filt_issuance AS ( - SELECT - CASE - WHEN i.block_number <= d.max_block_number - OR d.max_block_number IS NULL THEN i.ts - ELSE i.ts + INTERVAL '1 hour' - END AS ts, + +filt_issuance as ( + select i.pool_id, i.collateral_type, - i.amount - FROM + i.amount, + case + when + i.block_number <= d.max_block_number + or d.max_block_number is null then i.ts + else i.ts + INTERVAL '1 hour' + end as ts + from {{ ref('fct_pool_issuance_base_mainnet') }} - i - LEFT JOIN max_debt_block d - ON DATE_TRUNC( + as i + left join max_debt_block as d + on date_trunc( 'hour', i.ts ) = d.hour - AND i.pool_id = d.pool_id - AND LOWER( + and i.pool_id = d.pool_id + and lower( i.collateral_type - ) = LOWER( + ) = lower( d.collateral_type ) - WHERE + where i.block_number <= ( - SELECT - MAX( + select + max( max_block_number ) - FROM + from max_debt_block ) ), -issuance AS ( - SELECT - DATE_TRUNC( + +issuance as ( + select + date_trunc( 'hour', ts - ) AS ts, + ) as ts, pool_id, collateral_type, - SUM(amount) AS hourly_issuance - FROM + sum(amount) as hourly_issuance + from filt_issuance - GROUP BY + group by 1, 2, 3 ) -SELECT + +select dim.ts, dim.pool_id, dim.collateral_type, - COALESCE( + coalesce( i.hourly_issuance, 0 - ) AS hourly_issuance -FROM + ) as hourly_issuance +from dim - LEFT JOIN issuance i - ON dim.pool_id = i.pool_id - AND LOWER( - dim.collateral_type - ) = LOWER( - i.collateral_type - ) - AND dim.ts = i.ts +left join issuance as i + on + dim.pool_id = i.pool_id + and lower( + dim.collateral_type + ) = lower( + i.collateral_type + ) + and dim.ts = i.ts diff --git a/transformers/synthetix/models/marts/base/mainnet/core/fct_pool_pnl_hourly_base_mainnet.sql b/transformers/synthetix/models/marts/base/mainnet/core/fct_pool_pnl_hourly_base_mainnet.sql index 37df53c97..fb89729b6 100644 --- a/transformers/synthetix/models/marts/base/mainnet/core/fct_pool_pnl_hourly_base_mainnet.sql +++ b/transformers/synthetix/models/marts/base/mainnet/core/fct_pool_pnl_hourly_base_mainnet.sql @@ -3,78 +3,91 @@ unique_key = ['ts', 'pool_id', 'collateral_type'], ) }} -WITH dim AS ( - SELECT - generate_series(DATE_TRUNC('hour', MIN(t.ts)), DATE_TRUNC('hour', MAX(t.ts)), '1 hour' :: INTERVAL) AS ts, +with dim as ( + select p.pool_id, - p.collateral_type - FROM + p.collateral_type, + generate_series( + date_trunc('hour', min(t.ts)), + date_trunc('hour', max(t.ts)), + '1 hour'::INTERVAL + ) as ts + from ( - SELECT - ts - FROM + select ts + from {{ ref('fct_pool_debt_base_mainnet') }} - ) AS t - CROSS JOIN ( - SELECT - DISTINCT pool_id, - collateral_type - FROM - {{ ref('fct_pool_debt_base_mainnet') }} - ) AS p -GROUP BY - p.pool_id, - p.collateral_type + ) as t + cross join ( + select distinct + pool_id, + collateral_type + from + {{ ref('fct_pool_debt_base_mainnet') }} + ) as p + group by + p.pool_id, + p.collateral_type ), -issuance AS ( - SELECT + +issuance as ( + select ts, pool_id, collateral_type, hourly_issuance - FROM + from {{ ref('fct_pool_issuance_hourly_base_mainnet') }} ), -debt AS ( - SELECT - DISTINCT DATE_TRUNC( - 'hour', - ts - ) AS ts, + +debt as ( + select distinct pool_id, collateral_type, - LAST_VALUE(debt) over (PARTITION BY DATE_TRUNC('hour', ts), pool_id, collateral_type - ORDER BY - ts rows BETWEEN unbounded preceding - AND unbounded following) AS debt - FROM - {{ ref('fct_pool_debt_base_mainnet') }} -), -collateral AS ( - SELECT - DISTINCT DATE_TRUNC( + date_trunc( 'hour', ts - ) AS ts, + ) as ts, + last_value(debt) over ( + partition by date_trunc('hour', ts), pool_id, collateral_type + order by + ts + rows between unbounded preceding + and unbounded following + ) as debt + from + {{ ref('fct_pool_debt_base_mainnet') }} +), + +collateral as ( + select distinct pool_id, collateral_type, - LAST_VALUE(collateral_value) over (PARTITION BY DATE_TRUNC('hour', ts), pool_id, collateral_type - ORDER BY - ts rows BETWEEN unbounded preceding - AND unbounded following) AS collateral_value - FROM + date_trunc( + 'hour', + ts + ) as ts, + last_value(collateral_value) over ( + partition by date_trunc('hour', ts), pool_id, collateral_type + order by + ts + rows between unbounded preceding + and unbounded following + ) as collateral_value + from {{ ref('core_vault_collateral_base_mainnet') }} - WHERE + where pool_id = 1 ), -ffill AS ( - SELECT + +ffill as ( + select dim.ts, dim.pool_id, dim.collateral_type, coalesce( last(debt) over ( - partition by dim.collateral_type, dim.pool_id + partition by dim.collateral_type, dim.pool_id order by dim.ts rows between unbounded preceding and current row ), @@ -82,96 +95,113 @@ ffill AS ( ) as debt, coalesce( last(collateral_value) over ( - partition by dim.collateral_type, dim.pool_id + partition by dim.collateral_type, dim.pool_id order by dim.ts - rows between unbounded preceding and current row + rows between unbounded preceding and current row ), 0 ) as collateral_value - FROM + from dim - LEFT JOIN debt - ON dim.ts = debt.ts - AND dim.pool_id = debt.pool_id - AND dim.collateral_type = debt.collateral_type - LEFT JOIN collateral - ON dim.ts = collateral.ts - AND dim.pool_id = collateral.pool_id - AND dim.collateral_type = collateral.collateral_type + left join debt + on + dim.ts = debt.ts + and dim.pool_id = debt.pool_id + and dim.collateral_type = debt.collateral_type + left join collateral + on + dim.ts = collateral.ts + and dim.pool_id = collateral.pool_id + and dim.collateral_type = collateral.collateral_type ), -hourly_pnl AS ( - SELECT + +hourly_pnl as ( + select ts, pool_id, collateral_type, collateral_value, debt, - COALESCE(LAG(debt) over (PARTITION BY pool_id, collateral_type - ORDER BY - ts) - debt, 0) AS hourly_pnl - FROM + coalesce(lag(debt) over ( + partition by pool_id, collateral_type + order by + ts + ) - debt, 0) as hourly_pnl + from ffill ), -hourly_rewards AS ( - SELECT + +hourly_rewards as ( + select ts, pool_id, collateral_type, rewards_usd - FROM + from {{ ref('fct_pool_rewards_hourly_base_mainnet') }} ), -hourly_returns AS ( - SELECT + +hourly_returns as ( + select pnl.ts, pnl.pool_id, pnl.collateral_type, pnl.collateral_value, pnl.debt, - COALESCE( + coalesce( iss.hourly_issuance, 0 - ) hourly_issuance, - pnl.hourly_pnl + COALESCE( + ) as hourly_issuance, + pnl.hourly_pnl + coalesce( iss.hourly_issuance, 0 - ) AS hourly_pnl, - COALESCE( + ) as hourly_pnl, + coalesce( rewards.rewards_usd, 0 - ) AS rewards_usd, - CASE - WHEN pnl.collateral_value = 0 THEN 0 - ELSE COALESCE( + ) as rewards_usd, + case + when pnl.collateral_value = 0 then 0 + else coalesce( rewards.rewards_usd, 0 ) / pnl.collateral_value - END AS hourly_rewards_pct, - CASE - WHEN pnl.collateral_value = 0 THEN 0 - ELSE (COALESCE(iss.hourly_issuance, 0) + pnl.hourly_pnl) / pnl.collateral_value - END AS hourly_pnl_pct, - CASE - WHEN pnl.collateral_value = 0 THEN 0 - ELSE (COALESCE(rewards.rewards_usd, 0) + pnl.hourly_pnl + COALESCE(iss.hourly_issuance, 0)) / pnl.collateral_value - END AS hourly_total_pct - FROM - hourly_pnl pnl - LEFT JOIN hourly_rewards rewards - ON pnl.ts = rewards.ts - AND pnl.pool_id = rewards.pool_id - AND pnl.collateral_type = rewards.collateral_type - LEFT JOIN issuance iss - ON pnl.ts = iss.ts - AND pnl.pool_id = iss.pool_id - AND LOWER( - pnl.collateral_type - ) = LOWER( - iss.collateral_type - ) + end as hourly_rewards_pct, + case + when pnl.collateral_value = 0 then 0 + else + (coalesce(iss.hourly_issuance, 0) + pnl.hourly_pnl) + / pnl.collateral_value + end as hourly_pnl_pct, + case + when pnl.collateral_value = 0 then 0 + else + ( + coalesce(rewards.rewards_usd, 0) + + pnl.hourly_pnl + + coalesce(iss.hourly_issuance, 0) + ) + / pnl.collateral_value + end as hourly_total_pct + from + hourly_pnl as pnl + left join hourly_rewards as rewards + on + pnl.ts = rewards.ts + and pnl.pool_id = rewards.pool_id + and pnl.collateral_type = rewards.collateral_type + left join issuance as iss + on + pnl.ts = iss.ts + and pnl.pool_id = iss.pool_id + and lower( + pnl.collateral_type + ) = lower( + iss.collateral_type + ) ) -SELECT +select ts, pool_id, collateral_type, @@ -183,5 +213,5 @@ SELECT hourly_pnl_pct, hourly_rewards_pct, hourly_total_pct -FROM +from hourly_returns diff --git a/transformers/synthetix/models/marts/base/mainnet/core/fct_pool_pnl_hourly_reward_base_mainnet.sql b/transformers/synthetix/models/marts/base/mainnet/core/fct_pool_pnl_hourly_reward_base_mainnet.sql index 0207c9350..e6974a689 100644 --- a/transformers/synthetix/models/marts/base/mainnet/core/fct_pool_pnl_hourly_reward_base_mainnet.sql +++ b/transformers/synthetix/models/marts/base/mainnet/core/fct_pool_pnl_hourly_reward_base_mainnet.sql @@ -3,79 +3,85 @@ unique_key = ['ts', 'pool_id', 'collateral_type', 'reward_token'], ) }} -WITH dim AS ( +with dim as ( - SELECT - generate_series(DATE_TRUNC('hour', MIN(t.ts)), DATE_TRUNC('hour', MAX(t.ts)), '1 hour' :: INTERVAL) AS ts, + select t.pool_id, t.collateral_type, t.collateral_value, - p.token_symbol AS reward_token - FROM + p.token_symbol as reward_token, + generate_series( + date_trunc('hour', min(t.ts)), + date_trunc('hour', max(t.ts)), + '1 hour'::INTERVAL + ) as ts + from ( - SELECT + select ts, collateral_type, pool_id, collateral_value - FROM + from {{ ref('fct_pool_pnl_hourly_base_mainnet') }} group by ts, collateral_type, pool_id, collateral_value - ) AS t - CROSS JOIN ( - SELECT - DISTINCT token_symbol - FROM - {{ ref('fct_pool_rewards_token_hourly_base_mainnet') }} - ) AS p - GROUP BY + ) as t + cross join ( + select distinct token_symbol + from + {{ ref('fct_pool_rewards_token_hourly_base_mainnet') }} + ) as p + group by t.pool_id, t.collateral_type, t.collateral_value, p.token_symbol ), -reward_hourly_token AS ( - SELECT + +reward_hourly_token as ( + select ts, pool_id, collateral_type, - token_symbol AS reward_token, - SUM( + token_symbol as reward_token, + sum( rewards_usd - ) AS rewards_usd - FROM + ) as rewards_usd + from {{ ref('fct_pool_rewards_token_hourly_base_mainnet') }} - GROUP BY + group by ts, pool_id, collateral_type, token_symbol ) -SELECT + +select dim.ts, dim.pool_id, dim.collateral_type, dim.collateral_value, dim.reward_token, - COALESCE( + coalesce( reward_hourly_token.rewards_usd, 0 - ) AS rewards_usd, - CASE - WHEN dim.collateral_value = 0 THEN 0 - ELSE COALESCE( + ) as rewards_usd, + case + when dim.collateral_value = 0 then 0 + else coalesce( reward_hourly_token.rewards_usd, 0 ) / dim.collateral_value - END AS hourly_rewards_pct -FROM + end as hourly_rewards_pct +from dim - LEFT JOIN reward_hourly_token - ON dim.ts = reward_hourly_token.ts - AND dim.pool_id = reward_hourly_token.pool_id - AND dim.collateral_type = reward_hourly_token.collateral_type - and dim.reward_token = reward_hourly_token.reward_token +left join reward_hourly_token + on + dim.ts = reward_hourly_token.ts + and dim.pool_id = reward_hourly_token.pool_id + and dim.collateral_type = reward_hourly_token.collateral_type + and dim.reward_token = reward_hourly_token.reward_token diff --git a/transformers/synthetix/models/marts/base/mainnet/core/fct_pool_rewards_base_mainnet.sql b/transformers/synthetix/models/marts/base/mainnet/core/fct_pool_rewards_base_mainnet.sql index 31351ba73..c69a1b136 100644 --- a/transformers/synthetix/models/marts/base/mainnet/core/fct_pool_rewards_base_mainnet.sql +++ b/transformers/synthetix/models/marts/base/mainnet/core/fct_pool_rewards_base_mainnet.sql @@ -1,25 +1,27 @@ -WITH rewards_distributed AS ( - SELECT - block_timestamp AS ts, +with rewards_distributed as ( + select + block_timestamp as ts, CAST( - pool_id AS INTEGER - ) AS pool_id, + pool_id as INTEGER + ) as pool_id, collateral_type, distributor, - {{ convert_wei('amount') }} AS amount, - TO_TIMESTAMP("start") AS ts_start, + {{ convert_wei('amount') }} as amount, + TO_TIMESTAMP("start") as ts_start, "duration" - FROM + from {{ ref('core_rewards_distributed_base_mainnet') }} ), -distributors AS ( - SELECT - CAST(distributor_address AS TEXT) AS distributor_address, - CAST(token_symbol AS TEXT) AS token_symbol - FROM + +distributors as ( + select + CAST(distributor_address as TEXT) as distributor_address, + CAST(token_symbol as TEXT) as token_symbol + from {{ ref('base_mainnet_reward_distributors') }} ) -SELECT + +select rd.ts, rd.pool_id, rd.collateral_type, @@ -28,8 +30,8 @@ SELECT rd.amount, rd.ts_start, rd.duration -FROM - rewards_distributed rd - join distributors on rd.distributor = distributors.distributor_address -ORDER BY +from + rewards_distributed as rd +inner join distributors on rd.distributor = distributors.distributor_address +order by ts diff --git a/transformers/synthetix/models/marts/base/mainnet/core/fct_pool_rewards_hourly_base_mainnet.sql b/transformers/synthetix/models/marts/base/mainnet/core/fct_pool_rewards_hourly_base_mainnet.sql index 3bab8e226..c3f43e5a4 100644 --- a/transformers/synthetix/models/marts/base/mainnet/core/fct_pool_rewards_hourly_base_mainnet.sql +++ b/transformers/synthetix/models/marts/base/mainnet/core/fct_pool_rewards_hourly_base_mainnet.sql @@ -1,20 +1,21 @@ -WITH token_hourly AS ( - SELECT +with token_hourly as ( + select ts, pool_id, collateral_type, rewards_usd - FROM + from {{ ref('fct_pool_rewards_token_hourly_base_mainnet') }} ) -SELECT + +select ts, pool_id, collateral_type, - SUM(rewards_usd) AS rewards_usd -FROM + SUM(rewards_usd) as rewards_usd +from token_hourly -GROUP BY +group by ts, pool_id, collateral_type diff --git a/transformers/synthetix/models/marts/base/mainnet/core/fct_pool_rewards_token_hourly_base_mainnet.sql b/transformers/synthetix/models/marts/base/mainnet/core/fct_pool_rewards_token_hourly_base_mainnet.sql index d789ccf84..d55769f1d 100644 --- a/transformers/synthetix/models/marts/base/mainnet/core/fct_pool_rewards_token_hourly_base_mainnet.sql +++ b/transformers/synthetix/models/marts/base/mainnet/core/fct_pool_rewards_token_hourly_base_mainnet.sql @@ -1,28 +1,32 @@ -WITH dim AS ( - SELECT - generate_series(DATE_TRUNC('hour', MIN(t.ts)), DATE_TRUNC('hour', MAX(t.ts)), '1 hour' :: INTERVAL) AS ts, +with dim as ( + select m.pool_id, - m.collateral_type - FROM + m.collateral_type, + generate_series( + date_trunc('hour', min(t.ts)), + date_trunc('hour', max(t.ts)), + '1 hour'::INTERVAL + ) as ts + from ( - SELECT - ts - FROM - {{ ref('fct_pool_debt_base_mainnet') }} - ) AS t - CROSS JOIN ( - SELECT - DISTINCT pool_id, - collateral_type - FROM + select ts + from {{ ref('fct_pool_debt_base_mainnet') }} - ) AS m - GROUP BY + ) as t + cross join ( + select distinct + pool_id, + collateral_type + from + {{ ref('fct_pool_debt_base_mainnet') }} + ) as m + group by m.pool_id, m.collateral_type ), -rewards_distributed AS ( - SELECT + +rewards_distributed as ( + select ts, pool_id, collateral_type, @@ -31,11 +35,12 @@ rewards_distributed AS ( amount, ts_start, "duration" - FROM + from {{ ref('fct_pool_rewards_base_mainnet') }} ), -hourly_distributions AS ( - SELECT + +hourly_distributions as ( + select dim.ts, dim.pool_id, dim.collateral_type, @@ -44,28 +49,31 @@ hourly_distributions AS ( r.amount, r.ts_start, r."duration", - ROW_NUMBER() over ( - PARTITION BY dim.ts, - dim.pool_id, - dim.collateral_type, - r.distributor - ORDER BY - r.ts_start DESC - ) AS distributor_index - FROM + row_number() over ( + partition by + dim.ts, + dim.pool_id, + dim.collateral_type, + r.distributor + order by + r.ts_start desc + ) as distributor_index + from dim - LEFT JOIN rewards_distributed r - ON dim.pool_id = r.pool_id - AND LOWER( - dim.collateral_type - ) = LOWER( - r.collateral_type - ) - AND dim.ts + '1 hour' :: INTERVAL >= r.ts_start - AND dim.ts < r.ts_start + r."duration" * '1 second' :: INTERVAL + left join rewards_distributed as r + on + dim.pool_id = r.pool_id + and lower( + dim.collateral_type + ) = lower( + r.collateral_type + ) + and dim.ts + '1 hour'::INTERVAL >= r.ts_start + and dim.ts < r.ts_start + r."duration" * '1 second'::INTERVAL ), -hourly_rewards AS ( - SELECT + +hourly_rewards as ( + select d.ts, d.pool_id, d.collateral_type, @@ -75,39 +83,42 @@ hourly_rewards AS ( -- get the hourly amount distributed d.amount / ( d."duration" / 3600 - ) AS hourly_amount, + ) as hourly_amount, -- get the amount of time distributed this hour -- use the smaller of those two intervals -- convert the interval to a number of hours -- multiply the result by the hourly amount to get the amount distributed this hour ( - EXTRACT( + extract( epoch - FROM - LEAST( - d."duration" / 3600 * '1 hour' :: INTERVAL, - d.ts + '1 hour' :: INTERVAL - GREATEST( - d.ts, - d.ts_start - ) + from + least( + d."duration" / 3600 * '1 hour'::INTERVAL, + d.ts + '1 hour'::INTERVAL - greatest( + d.ts, + d.ts_start ) + ) ) / 3600 ) * d.amount / ( d."duration" / 3600 - ) AS amount_distributed - FROM - hourly_distributions AS d - LEFT JOIN {{ ref('fct_prices_hourly_base_mainnet') }} - p - ON d.ts = p.ts - AND d.token_symbol = p.market_symbol - WHERE + ) as amount_distributed + from + hourly_distributions as d + left join + {{ ref('fct_prices_hourly_base_mainnet') }} + as p + on + d.ts = p.ts + and d.token_symbol = p.market_symbol + where d.distributor_index = 1 ) -SELECT + +select *, - amount_distributed * price AS rewards_usd -FROM + amount_distributed * price as rewards_usd +from hourly_rewards -WHERE - amount_distributed IS NOT NULL +where + amount_distributed is not null diff --git a/transformers/synthetix/models/marts/base/mainnet/perp/fct_perp_accounts_base_mainnet.sql b/transformers/synthetix/models/marts/base/mainnet/perp/fct_perp_accounts_base_mainnet.sql index eeb9bb84b..7352fc301 100644 --- a/transformers/synthetix/models/marts/base/mainnet/perp/fct_perp_accounts_base_mainnet.sql +++ b/transformers/synthetix/models/marts/base/mainnet/perp/fct_perp_accounts_base_mainnet.sql @@ -1,14 +1,14 @@ -WITH base AS ( - SELECT - CAST( - account_id AS VARCHAR - ) AS id, - block_timestamp AS created_ts, - "owner" - FROM - {{ ref('perp_account_created_base_mainnet') }} +with base as ( + select + block_timestamp as created_ts, + "owner", + CAST( + account_id as VARCHAR + ) as id + from + {{ ref('perp_account_created_base_mainnet') }} ) -SELECT - * -FROM - base + +select * +from + base diff --git a/transformers/synthetix/models/marts/base/mainnet/perp/fct_perp_collateral_modified_base_mainnet.sql b/transformers/synthetix/models/marts/base/mainnet/perp/fct_perp_collateral_modified_base_mainnet.sql index 8f355c701..056b4c9a8 100644 --- a/transformers/synthetix/models/marts/base/mainnet/perp/fct_perp_collateral_modified_base_mainnet.sql +++ b/transformers/synthetix/models/marts/base/mainnet/perp/fct_perp_collateral_modified_base_mainnet.sql @@ -1,4 +1,4 @@ -SELECT +select id, block_timestamp, account_id, @@ -8,6 +8,6 @@ SELECT event_name, synth_market_id, sender, - {{ convert_wei("amount_delta") }} AS amount_delta -FROM + {{ convert_wei("amount_delta") }} as amount_delta +from {{ ref("perp_collateral_modified_base_mainnet") }} diff --git a/transformers/synthetix/models/marts/base/mainnet/perp/fct_perp_interest_charged_base_mainnet.sql b/transformers/synthetix/models/marts/base/mainnet/perp/fct_perp_interest_charged_base_mainnet.sql index e7d11f3d5..bd657a06c 100644 --- a/transformers/synthetix/models/marts/base/mainnet/perp/fct_perp_interest_charged_base_mainnet.sql +++ b/transformers/synthetix/models/marts/base/mainnet/perp/fct_perp_interest_charged_base_mainnet.sql @@ -1,4 +1,4 @@ -SELECT +select id, block_timestamp, block_number, @@ -6,6 +6,6 @@ SELECT contract, event_name, account_id, - {{ convert_wei("interest") }} AS interest -FROM + {{ convert_wei("interest") }} as interest +from {{ ref("perp_interest_charged_base_mainnet") }} diff --git a/transformers/synthetix/models/marts/base/mainnet/perp/fct_perp_liq_account_base_mainnet.sql b/transformers/synthetix/models/marts/base/mainnet/perp/fct_perp_liq_account_base_mainnet.sql index bbd12ba55..73d292e6a 100644 --- a/transformers/synthetix/models/marts/base/mainnet/perp/fct_perp_liq_account_base_mainnet.sql +++ b/transformers/synthetix/models/marts/base/mainnet/perp/fct_perp_liq_account_base_mainnet.sql @@ -1,54 +1,59 @@ -WITH liquidation_events AS ( - SELECT - account_id, - reward, - block_timestamp, - full_liquidation, - SUM( - CASE - WHEN full_liquidation THEN 1 - ELSE 0 - END - ) over ( - PARTITION BY account_id - ORDER BY - block_timestamp rows BETWEEN unbounded preceding - AND CURRENT ROW - ) AS liquidation_id - FROM - {{ ref('perp_account_liquidation_attempt_base_mainnet') }} +with liquidation_events as ( + select + account_id, + reward, + block_timestamp, + full_liquidation, + SUM( + case + when full_liquidation then 1 + else 0 + end + ) over ( + partition by account_id + order by + block_timestamp + rows between unbounded preceding + and current row + ) as liquidation_id + from + {{ ref('perp_account_liquidation_attempt_base_mainnet') }} ), -cumulative_rewards AS ( - SELECT - CAST( - le.account_id AS text - ) AS account_id, - le.block_timestamp, - le.reward, - le.full_liquidation, - le.liquidation_id, - SUM({{ convert_wei('reward') }}) over ( - PARTITION BY le.account_id, - le.liquidation_id - ORDER BY - le.block_timestamp - ) AS cumulative_reward, - ROW_NUMBER() over ( - PARTITION BY le.account_id, - le.liquidation_id - ORDER BY - le.block_timestamp DESC - ) AS rn - FROM - liquidation_events le - ORDER BY - block_timestamp + +cumulative_rewards as ( + select + le.block_timestamp, + le.reward, + le.full_liquidation, + le.liquidation_id, + CAST( + le.account_id as text + ) as account_id, + SUM({{ convert_wei('reward') }}) over ( + partition by + le.account_id, + le.liquidation_id + order by + le.block_timestamp + ) as cumulative_reward, + ROW_NUMBER() over ( + partition by + le.account_id, + le.liquidation_id + order by + le.block_timestamp desc + ) as rn + from + liquidation_events as le + order by + block_timestamp ) -SELECT - account_id, - block_timestamp AS ts, - cumulative_reward AS total_reward -FROM - cumulative_rewards -WHERE - rn = 1 + +select + account_id, + block_timestamp as ts, + cumulative_reward as total_reward +from + cumulative_rewards +where + rn = 1 diff --git a/transformers/synthetix/models/marts/base/mainnet/perp/fct_perp_liq_position_base_mainnet.sql b/transformers/synthetix/models/marts/base/mainnet/perp/fct_perp_liq_position_base_mainnet.sql index a506c37f2..8c52ca42d 100644 --- a/transformers/synthetix/models/marts/base/mainnet/perp/fct_perp_liq_position_base_mainnet.sql +++ b/transformers/synthetix/models/marts/base/mainnet/perp/fct_perp_liq_position_base_mainnet.sql @@ -1,36 +1,38 @@ -WITH liquidations AS ( - SELECT +with liquidations as ( + select id, - block_timestamp AS ts, + block_timestamp as ts, block_number, transaction_hash, account_id, market_id, - {{ convert_wei('amount_liquidated') }} AS amount_liquidated, - {{ convert_wei('current_position_size') }} AS position_size - FROM + {{ convert_wei('amount_liquidated') }} as amount_liquidated, + {{ convert_wei('current_position_size') }} as position_size + from {{ ref('perp_position_liquidated_base_mainnet') }} ), -markets AS ( - SELECT + +markets as ( + select id, market_symbol - FROM + from {{ ref('fct_perp_markets_base_mainnet') }} ) -SELECT + +select l.id, l.ts, l.block_number, l.transaction_hash, - CAST( - l.account_id AS text - ) AS account_id, l.market_id, m.market_symbol, l.amount_liquidated, - l.position_size -FROM - liquidations l - LEFT JOIN markets m - ON l.market_id = m.id + l.position_size, + CAST( + l.account_id as text + ) as account_id +from + liquidations as l +left join markets as m + on l.market_id = m.id diff --git a/transformers/synthetix/models/marts/base/mainnet/perp/fct_perp_market_history_base_mainnet.sql b/transformers/synthetix/models/marts/base/mainnet/perp/fct_perp_market_history_base_mainnet.sql index a33e74df1..14a4f131d 100644 --- a/transformers/synthetix/models/marts/base/mainnet/perp/fct_perp_market_history_base_mainnet.sql +++ b/transformers/synthetix/models/marts/base/mainnet/perp/fct_perp_market_history_base_mainnet.sql @@ -1,48 +1,52 @@ -WITH base AS ( - SELECT - mu.id, - mu.block_timestamp AS ts, - mu.block_number, - mu.transaction_hash, - m.id AS market_id, - m.market_symbol, - {{ convert_wei('price') }} AS price, - {{ convert_wei('skew') }} AS skew, - {{ convert_wei('size') }} AS SIZE, - {{ convert_wei('size_delta') }} AS size_delta, - {{ convert_wei('current_funding_rate') }} AS funding_rate, - {{ convert_wei('current_funding_velocity') }} AS funding_velocity, - {{ convert_wei('interest_rate') }} AS interest_rate, - {{ convert_wei('current_funding_rate') }} * 365.25 AS funding_rate_apr, - {{ convert_wei('current_funding_rate') }} * 365.25 + {{ convert_wei('interest_rate') }} AS long_rate_apr, - {{ convert_wei('current_funding_rate') }} * -1 * 365.25 + {{ convert_wei('interest_rate') }} AS short_rate_apr - FROM - {{ ref('perp_market_updated_base_mainnet') }} - mu - LEFT JOIN {{ ref('fct_perp_markets_base_mainnet') }} - m - ON mu.market_id = m.id +with base as ( + select + mu.id, + mu.block_timestamp as ts, + mu.block_number, + mu.transaction_hash, + m.id as market_id, + m.market_symbol, + {{ convert_wei('price') }} as price, + {{ convert_wei('skew') }} as skew, + {{ convert_wei('size') }} as size, + {{ convert_wei('size_delta') }} as size_delta, + {{ convert_wei('current_funding_rate') }} as funding_rate, + {{ convert_wei('current_funding_velocity') }} as funding_velocity, + {{ convert_wei('interest_rate') }} as interest_rate, + {{ convert_wei('current_funding_rate') }} * 365.25 as funding_rate_apr, + {{ convert_wei('current_funding_rate') }} * 365.25 + + {{ convert_wei('interest_rate') }} as long_rate_apr, + {{ convert_wei('current_funding_rate') }} * -1 * 365.25 + + {{ convert_wei('interest_rate') }} as short_rate_apr + from + {{ ref('perp_market_updated_base_mainnet') }} + as mu + left join + {{ ref('fct_perp_markets_base_mainnet') }} + as m + on mu.market_id = m.id ) -SELECT - *, - SIZE * price AS size_usd, - ( - SIZE + skew - ) * price / 2 AS long_oi, - ( - SIZE - skew - ) * price / 2 AS short_oi, - CASE - WHEN SIZE * price = 0 THEN NULL - ELSE ((SIZE + skew) * price / 2) / ( - SIZE * price - ) - END AS long_oi_pct, - CASE - WHEN SIZE * price = 0 THEN NULL - ELSE ((SIZE - skew) * price / 2) / ( - SIZE * price - ) - END AS short_oi_pct -FROM - base + +select + *, + size * price as size_usd, + ( + size + skew + ) * price / 2 as long_oi, + ( + size - skew + ) * price / 2 as short_oi, + case + when size * price = 0 then null + else ((size + skew) * price / 2) / ( + size * price + ) + end as long_oi_pct, + case + when size * price = 0 then null + else ((size - skew) * price / 2) / ( + size * price + ) + end as short_oi_pct +from + base diff --git a/transformers/synthetix/models/marts/base/mainnet/perp/fct_perp_markets_base_mainnet.sql b/transformers/synthetix/models/marts/base/mainnet/perp/fct_perp_markets_base_mainnet.sql index fdab342ce..6f4a2ac20 100644 --- a/transformers/synthetix/models/marts/base/mainnet/perp/fct_perp_markets_base_mainnet.sql +++ b/transformers/synthetix/models/marts/base/mainnet/perp/fct_perp_markets_base_mainnet.sql @@ -1,14 +1,14 @@ -WITH base AS ( - SELECT - perps_market_id AS id, - block_timestamp AS created_ts, - block_number, - market_symbol, - market_name - FROM - {{ ref('perp_market_created_base_mainnet') }} +with base as ( + select + perps_market_id as id, + block_timestamp as created_ts, + block_number, + market_symbol, + market_name + from + {{ ref('perp_market_created_base_mainnet') }} ) -SELECT - * -FROM - base + +select * +from + base diff --git a/transformers/synthetix/models/marts/base/mainnet/perp/fct_perp_orders_base_mainnet.sql b/transformers/synthetix/models/marts/base/mainnet/perp/fct_perp_orders_base_mainnet.sql index 062e040fe..2296dfe24 100644 --- a/transformers/synthetix/models/marts/base/mainnet/perp/fct_perp_orders_base_mainnet.sql +++ b/transformers/synthetix/models/marts/base/mainnet/perp/fct_perp_orders_base_mainnet.sql @@ -1,29 +1,29 @@ -WITH base AS ( - SELECT +with base as ( + select oc.id, - oc.block_timestamp AS ts, + oc.block_timestamp as ts, oc.block_number, oc.transaction_hash, oc.contract, oc.market_id, markets.market_symbol, CAST( - oc.account_id AS text - ) AS account_id, + oc.account_id as text + ) as account_id, oc.order_type, - {{ convert_wei('oc.size_delta') }} AS SIZE, - {{ convert_wei('oc.acceptable_price') }} AS acceptable_price, + {{ convert_wei('oc.size_delta') }} as size, + {{ convert_wei('oc.acceptable_price') }} as acceptable_price, oc.settlement_time, oc.expiration_time, - {{ convert_hex('oc.tracking_code') }} AS tracking_code, + {{ convert_hex('oc.tracking_code') }} as tracking_code, oc.sender - FROM + from {{ ref('perp_order_committed_base_mainnet') }} - oc - LEFT JOIN {{ ref('fct_perp_markets_base_mainnet') }} AS markets - ON oc.market_id = markets.id + as oc + left join {{ ref('fct_perp_markets_base_mainnet') }} as markets + on oc.market_id = markets.id ) -SELECT - * -FROM + +select * +from base diff --git a/transformers/synthetix/models/marts/base/mainnet/perp/fct_perp_pnl_base_mainnet.sql b/transformers/synthetix/models/marts/base/mainnet/perp/fct_perp_pnl_base_mainnet.sql index d2a3a4792..5dfd81acf 100644 --- a/transformers/synthetix/models/marts/base/mainnet/perp/fct_perp_pnl_base_mainnet.sql +++ b/transformers/synthetix/models/marts/base/mainnet/perp/fct_perp_pnl_base_mainnet.sql @@ -1,17 +1,18 @@ {# DEPRECATED: deprecate this table in dashboards and remove #} -WITH debt AS ( - SELECT +with debt as ( + select ts, - 2 AS market_id, - debt * -1 AS market_pnl - FROM + 2 as market_id, + debt * -1 as market_pnl + from {{ ref('core_vault_debt_base_mainnet') }} ) -SELECT + +select ts, market_id, market_pnl -FROM +from debt -ORDER BY +order by ts diff --git a/transformers/synthetix/models/marts/base/mainnet/perp/fct_perp_previous_order_expired_base_mainnet.sql b/transformers/synthetix/models/marts/base/mainnet/perp/fct_perp_previous_order_expired_base_mainnet.sql index da63108c5..fd48910d1 100644 --- a/transformers/synthetix/models/marts/base/mainnet/perp/fct_perp_previous_order_expired_base_mainnet.sql +++ b/transformers/synthetix/models/marts/base/mainnet/perp/fct_perp_previous_order_expired_base_mainnet.sql @@ -1,4 +1,4 @@ -SELECT +select id, block_timestamp, block_number, @@ -9,7 +9,7 @@ SELECT account_id, commitment_time, tracking_code, - {{ convert_wei("acceptable_price") }} AS acceptable_price, - {{ convert_wei("size_delta") }} AS size_delta -FROM + {{ convert_wei("acceptable_price") }} as acceptable_price, + {{ convert_wei("size_delta") }} as size_delta +from {{ ref("perp_previous_order_expired_base_mainnet") }} diff --git a/transformers/synthetix/models/marts/base/mainnet/perp/fct_perp_trades_base_mainnet.sql b/transformers/synthetix/models/marts/base/mainnet/perp/fct_perp_trades_base_mainnet.sql index 715a4b8f8..d80ff112b 100644 --- a/transformers/synthetix/models/marts/base/mainnet/perp/fct_perp_trades_base_mainnet.sql +++ b/transformers/synthetix/models/marts/base/mainnet/perp/fct_perp_trades_base_mainnet.sql @@ -1,38 +1,39 @@ -WITH base AS ( - SELECT - pos.id, - pos.block_timestamp AS ts, - pos.block_number, - pos.transaction_hash, - pos.contract, - pos.market_id, - markets.market_symbol, - CAST( - pos.account_id AS text - ) AS account_id, - {{ convert_wei('fill_price') }} AS fill_price, - {{ convert_wei('pnl') }} AS pnl, - {{ convert_wei('accrued_funding') }} AS accrued_funding, - {{ convert_wei('size_delta') }} AS trade_size, - {{ convert_wei('new_size') }} AS position_size, - {{ convert_wei('total_fees') }} AS total_fees, - {{ convert_wei('referral_fees') }} AS referral_fees, - {{ convert_wei('collected_fees') }} AS collected_fees, - {{ convert_wei('settlement_reward') }} AS settlement_reward, - {{ convert_hex('tracking_code') }} AS tracking_code, - pos.settler - FROM - {{ ref('perp_order_settled_base_mainnet') }} AS pos - LEFT JOIN {{ ref('fct_perp_markets_base_mainnet') }} AS markets - ON pos.market_id = markets.id +with base as ( + select + pos.id, + pos.block_timestamp as ts, + pos.block_number, + pos.transaction_hash, + pos.contract, + pos.market_id, + markets.market_symbol, + CAST( + pos.account_id as text + ) as account_id, + {{ convert_wei('fill_price') }} as fill_price, + {{ convert_wei('pnl') }} as pnl, + {{ convert_wei('accrued_funding') }} as accrued_funding, + {{ convert_wei('size_delta') }} as trade_size, + {{ convert_wei('new_size') }} as position_size, + {{ convert_wei('total_fees') }} as total_fees, + {{ convert_wei('referral_fees') }} as referral_fees, + {{ convert_wei('collected_fees') }} as collected_fees, + {{ convert_wei('settlement_reward') }} as settlement_reward, + {{ convert_hex('tracking_code') }} as tracking_code, + pos.settler + from + {{ ref('perp_order_settled_base_mainnet') }} as pos + left join {{ ref('fct_perp_markets_base_mainnet') }} as markets + on pos.market_id = markets.id ) -SELECT - *, - ABS( - fill_price * trade_size - ) AS notional_trade_size, - fill_price * position_size AS notional_position_size, - total_fees - referral_fees - collected_fees - settlement_reward AS lp_fees, - total_fees - settlement_reward AS exchange_fees -FROM - base + +select + *, + ABS( + fill_price * trade_size + ) as notional_trade_size, + fill_price * position_size as notional_position_size, + total_fees - referral_fees - collected_fees - settlement_reward as lp_fees, + total_fees - settlement_reward as exchange_fees +from + base diff --git a/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_account_stats_daily_base_mainnet.sql b/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_account_stats_daily_base_mainnet.sql index e65883c10..381ffe04f 100644 --- a/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_account_stats_daily_base_mainnet.sql +++ b/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_account_stats_daily_base_mainnet.sql @@ -1,39 +1,42 @@ -WITH daily AS ( - SELECT - DATE_TRUNC( - 'day', - ts - ) AS ts, - account_id, - SUM(fees) AS fees, - SUM(volume) AS volume, - SUM(amount_liquidated) AS amount_liquidated, - SUM(liquidations) AS liquidations - FROM - {{ ref('fct_perp_account_stats_hourly_base_mainnet') }} - GROUP BY - 1, - 2 +with daily as ( + select + DATE_TRUNC( + 'day', + ts + ) as ts, + account_id, + SUM(fees) as fees, + SUM(volume) as volume, + SUM(amount_liquidated) as amount_liquidated, + SUM(liquidations) as liquidations + from + {{ ref('fct_perp_account_stats_hourly_base_mainnet') }} + group by + 1, + 2 ), -stats AS ( - SELECT - daily.*, - SUM(fees) over ( - PARTITION BY account_id - ORDER BY - ts RANGE BETWEEN unbounded preceding - AND CURRENT ROW - ) AS cumulative_fees, - SUM(volume) over ( - PARTITION BY account_id - ORDER BY - ts RANGE BETWEEN unbounded preceding - AND CURRENT ROW - ) AS cumulative_volume - FROM - daily + +stats as ( + select + daily.*, + SUM(fees) over ( + partition by account_id + order by + ts + range between unbounded preceding + and current row + ) as cumulative_fees, + SUM(volume) over ( + partition by account_id + order by + ts + range between unbounded preceding + and current row + ) as cumulative_volume + from + daily ) -SELECT - * -FROM - stats + +select * +from + stats diff --git a/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_account_stats_hourly_base_mainnet.sql b/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_account_stats_hourly_base_mainnet.sql index de54b9d69..840d3006f 100644 --- a/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_account_stats_hourly_base_mainnet.sql +++ b/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_account_stats_hourly_base_mainnet.sql @@ -1,108 +1,113 @@ -WITH trades AS ( - SELECT - ts, - account_id, - total_fees, - notional_trade_size, - 1 AS trades, - SUM( - total_fees - ) over ( - PARTITION BY account_id - ORDER BY - ts - ) AS cumulative_fees, - SUM( - notional_trade_size - ) over ( - PARTITION BY account_id - ORDER BY - ts - ) AS cumulative_volume - FROM - {{ ref('fct_perp_trades_base_mainnet') }} +with trades as ( + select + ts, + account_id, + total_fees, + notional_trade_size, + 1 as trades, + SUM( + total_fees + ) over ( + partition by account_id + order by + ts + ) as cumulative_fees, + SUM( + notional_trade_size + ) over ( + partition by account_id + order by + ts + ) as cumulative_volume + from + {{ ref('fct_perp_trades_base_mainnet') }} ), -liq AS ( - SELECT - ts, - account_id, - amount_liquidated, - 1 AS liquidations - FROM - {{ ref('fct_perp_liq_position_base_mainnet') }} + +liq as ( + select + ts, + account_id, + amount_liquidated, + 1 as liquidations + from + {{ ref('fct_perp_liq_position_base_mainnet') }} ), -inc_trades AS ( - SELECT - DATE_TRUNC( - 'hour', - ts - ) AS ts, - account_id, - SUM(trades) AS trades, - SUM(total_fees) AS fees, - SUM(notional_trade_size) AS volume, - MAX(cumulative_fees) AS cumulative_fees, - MAX(cumulative_volume) AS cumulative_volume - FROM - trades - GROUP BY - 1, - 2 + +inc_trades as ( + select + DATE_TRUNC( + 'hour', + ts + ) as ts, + account_id, + SUM(trades) as trades, + SUM(total_fees) as fees, + SUM(notional_trade_size) as volume, + MAX(cumulative_fees) as cumulative_fees, + MAX(cumulative_volume) as cumulative_volume + from + trades + group by + 1, + 2 ), -inc_liq AS ( - SELECT - DATE_TRUNC( - 'hour', - ts - ) AS ts, - account_id, - SUM(amount_liquidated) AS amount_liquidated, - SUM(liquidations) AS liquidations - FROM - liq - GROUP BY - 1, - 2 + +inc_liq as ( + select + DATE_TRUNC( + 'hour', + ts + ) as ts, + account_id, + SUM(amount_liquidated) as amount_liquidated, + SUM(liquidations) as liquidations + from + liq + group by + 1, + 2 ), -inc AS ( - SELECT - h.ts, - h.account_id, - COALESCE( - h.trades, - 0 - ) AS trades, - COALESCE( - h.fees, - 0 - ) AS fees, - COALESCE( - h.volume, - 0 - ) AS volume, - COALESCE( - l.amount_liquidated, - 0 - ) AS amount_liquidated, - COALESCE( - l.liquidations, - 0 - ) AS liquidations, - COALESCE( - h.cumulative_fees, - 0 - ) AS cumulative_fees, - COALESCE( - h.cumulative_volume, - 0 - ) AS cumulative_volume - FROM - inc_trades h - LEFT JOIN inc_liq l - ON h.ts = l.ts - AND h.account_id = l.account_id + +inc as ( + select + h.ts, + h.account_id, + COALESCE( + h.trades, + 0 + ) as trades, + COALESCE( + h.fees, + 0 + ) as fees, + COALESCE( + h.volume, + 0 + ) as volume, + COALESCE( + l.amount_liquidated, + 0 + ) as amount_liquidated, + COALESCE( + l.liquidations, + 0 + ) as liquidations, + COALESCE( + h.cumulative_fees, + 0 + ) as cumulative_fees, + COALESCE( + h.cumulative_volume, + 0 + ) as cumulative_volume + from + inc_trades as h + left join inc_liq as l + on + h.ts = l.ts + and h.account_id = l.account_id ) -SELECT - * -FROM - inc + +select * +from + inc diff --git a/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_keeper_stats_daily_base_mainnet.sql b/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_keeper_stats_daily_base_mainnet.sql index 24ad26d9f..4405cd597 100644 --- a/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_keeper_stats_daily_base_mainnet.sql +++ b/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_keeper_stats_daily_base_mainnet.sql @@ -1,40 +1,43 @@ -WITH hourly AS ( - SELECT - DATE_TRUNC( - 'day', - ts - ) AS ts, - keeper, - settlement_rewards, - amount_settled, - trades - FROM - {{ ref('fct_perp_keeper_stats_hourly_base_mainnet') }} +with hourly as ( + select + keeper, + settlement_rewards, + amount_settled, + trades, + DATE_TRUNC( + 'day', + ts + ) as ts + from + {{ ref('fct_perp_keeper_stats_hourly_base_mainnet') }} ), -total AS ( - SELECT - ts, - SUM(trades) AS trades_total, - SUM(settlement_rewards) AS settlement_reward_total, - SUM(amount_settled) AS amount_settled_total - FROM - hourly - GROUP BY - 1 + +total as ( + select + ts, + SUM(trades) as trades_total, + SUM(settlement_rewards) as settlement_reward_total, + SUM(amount_settled) as amount_settled_total + from + hourly + group by + 1 ) -SELECT - hourly.ts, - keeper, - SUM(trades) AS trades, - SUM(settlement_rewards) AS settlement_rewards, - SUM(amount_settled) AS amount_settled, - SUM(trades) / MAX(trades_total) AS trades_pct, - SUM(settlement_rewards) / MAX(settlement_reward_total) AS settlement_rewards_pct, - SUM(amount_settled) / MAX(amount_settled_total) AS amount_settled_pct -FROM - hourly - JOIN total - ON hourly.ts = total.ts -GROUP BY - 1, - 2 + +select + hourly.ts, + keeper, + SUM(trades) as trades, + SUM(settlement_rewards) as settlement_rewards, + SUM(amount_settled) as amount_settled, + SUM(trades) / MAX(trades_total) as trades_pct, + SUM(settlement_rewards) + / MAX(settlement_reward_total) as settlement_rewards_pct, + SUM(amount_settled) / MAX(amount_settled_total) as amount_settled_pct +from + hourly +inner join total + on hourly.ts = total.ts +group by + 1, + 2 diff --git a/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_keeper_stats_hourly_base_mainnet.sql b/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_keeper_stats_hourly_base_mainnet.sql index 0b1883b24..e557cca43 100644 --- a/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_keeper_stats_hourly_base_mainnet.sql +++ b/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_keeper_stats_hourly_base_mainnet.sql @@ -1,40 +1,44 @@ -WITH trades AS ( - SELECT - DATE_TRUNC( - 'hour', - ts - ) AS ts, - settler, - settlement_reward, - notional_trade_size, - 1 AS trades - FROM - {{ ref('fct_perp_trades_base_mainnet') }} +with trades as ( + select + settler, + settlement_reward, + notional_trade_size, + 1 as trades, + DATE_TRUNC( + 'hour', + ts + ) as ts + from + {{ ref('fct_perp_trades_base_mainnet') }} ), -total AS ( - SELECT - ts, - SUM(trades) AS trades_total, - SUM(settlement_reward) AS settlement_reward_total, - SUM(notional_trade_size) AS notional_trade_size_total - FROM - trades - GROUP BY - 1 + +total as ( + select + ts, + SUM(trades) as trades_total, + SUM(settlement_reward) as settlement_reward_total, + SUM(notional_trade_size) as notional_trade_size_total + from + trades + group by + 1 ) -SELECT - trades.ts, - settler AS keeper, - SUM(trades) AS trades, - SUM(settlement_reward) AS settlement_rewards, - SUM(notional_trade_size) AS amount_settled, - SUM(trades) / MAX(trades_total) AS trades_pct, - SUM(settlement_reward) / MAX(settlement_reward_total) AS settlement_rewards_pct, - SUM(notional_trade_size) / MAX(notional_trade_size_total) AS amount_settled_pct -FROM - trades - JOIN total - ON trades.ts = total.ts -GROUP BY - 1, - 2 + +select + trades.ts, + settler as keeper, + SUM(trades) as trades, + SUM(settlement_reward) as settlement_rewards, + SUM(notional_trade_size) as amount_settled, + SUM(trades) / MAX(trades_total) as trades_pct, + SUM(settlement_reward) + / MAX(settlement_reward_total) as settlement_rewards_pct, + SUM(notional_trade_size) + / MAX(notional_trade_size_total) as amount_settled_pct +from + trades +inner join total + on trades.ts = total.ts +group by + 1, + 2 diff --git a/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_market_stats_daily_base_mainnet.sql b/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_market_stats_daily_base_mainnet.sql index 217949bd6..fcc58d34b 100644 --- a/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_market_stats_daily_base_mainnet.sql +++ b/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_market_stats_daily_base_mainnet.sql @@ -1,22 +1,22 @@ -SELECT - DATE_TRUNC( - 'day', - ts - ) AS ts, - market_symbol, - SUM(trades) AS trades, - SUM(exchange_fees) AS exchange_fees, - SUM(referral_fees) AS referral_fees, - SUM(collected_fees) AS collected_fees, - SUM(volume) AS volume, - SUM(amount_liquidated) AS amount_liquidated, - SUM(liquidations) AS liquidations, - MAX(cumulative_exchange_fees) AS cumulative_exchange_fees, - MAX(cumulative_referral_fees) AS cumulative_referral_fees, - MAX(cumulative_collected_fees) AS cumulative_collected_fees, - MAX(cumulative_volume) AS cumulative_volume -FROM - {{ ref('fct_perp_market_stats_hourly_base_mainnet') }} -GROUP BY - 1, - 2 +select + DATE_TRUNC( + 'day', + ts + ) as ts, + market_symbol, + SUM(trades) as trades, + SUM(exchange_fees) as exchange_fees, + SUM(referral_fees) as referral_fees, + SUM(collected_fees) as collected_fees, + SUM(volume) as volume, + SUM(amount_liquidated) as amount_liquidated, + SUM(liquidations) as liquidations, + MAX(cumulative_exchange_fees) as cumulative_exchange_fees, + MAX(cumulative_referral_fees) as cumulative_referral_fees, + MAX(cumulative_collected_fees) as cumulative_collected_fees, + MAX(cumulative_volume) as cumulative_volume +from + {{ ref('fct_perp_market_stats_hourly_base_mainnet') }} +group by + 1, + 2 diff --git a/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_market_stats_hourly_base_mainnet.sql b/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_market_stats_hourly_base_mainnet.sql index d42815c87..00deb06f5 100644 --- a/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_market_stats_hourly_base_mainnet.sql +++ b/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_market_stats_hourly_base_mainnet.sql @@ -1,147 +1,156 @@ -WITH trades AS ( - SELECT - ts, - market_symbol, - exchange_fees, - referral_fees, - collected_fees, - notional_trade_size, - 1 AS trades - FROM - {{ ref('fct_perp_trades_base_mainnet') }} +with trades as ( + select + ts, + market_symbol, + exchange_fees, + referral_fees, + collected_fees, + notional_trade_size, + 1 as trades + from + {{ ref('fct_perp_trades_base_mainnet') }} ), -liq AS ( - SELECT - ts, - market_symbol, - amount_liquidated, - 1 AS liquidations - FROM - {{ ref('fct_perp_liq_position_base_mainnet') }} + +liq as ( + select + ts, + market_symbol, + amount_liquidated, + 1 as liquidations + from + {{ ref('fct_perp_liq_position_base_mainnet') }} ), -inc_trades AS ( - SELECT - DATE_TRUNC( - 'hour', - ts - ) AS ts, - market_symbol, - SUM(trades) AS trades, - SUM(exchange_fees) AS exchange_fees, - SUM(referral_fees) AS referral_fees, - SUM(collected_fees) AS collected_fees, - SUM(notional_trade_size) AS volume - FROM - trades - GROUP BY - 1, - 2 + +inc_trades as ( + select + DATE_TRUNC( + 'hour', + ts + ) as ts, + market_symbol, + SUM(trades) as trades, + SUM(exchange_fees) as exchange_fees, + SUM(referral_fees) as referral_fees, + SUM(collected_fees) as collected_fees, + SUM(notional_trade_size) as volume + from + trades + group by + 1, + 2 ), -inc_liq AS ( - SELECT - DATE_TRUNC( - 'hour', - ts - ) AS ts, - market_symbol, - SUM(amount_liquidated) AS amount_liquidated, - SUM(liquidations) AS liquidations - FROM - liq - GROUP BY - 1, - 2 + +inc_liq as ( + select + DATE_TRUNC( + 'hour', + ts + ) as ts, + market_symbol, + SUM(amount_liquidated) as amount_liquidated, + SUM(liquidations) as liquidations + from + liq + group by + 1, + 2 ), -dim AS ( - SELECT - generate_series(DATE_TRUNC('hour', MIN(t.ts)), DATE_TRUNC('hour', MAX(t.ts)), '1 hour' :: INTERVAL) AS ts, - m.market_symbol - FROM - ( - SELECT - ts - FROM - trades - ) AS t - CROSS JOIN ( - SELECT - DISTINCT market_symbol - FROM - trades - ) AS m - GROUP BY - m.market_symbol + +dim as ( + select + m.market_symbol, + GENERATE_SERIES( + DATE_TRUNC('hour', MIN(t.ts)), + DATE_TRUNC('hour', MAX(t.ts)), + '1 hour'::INTERVAL + ) as ts + from + ( + select ts + from + trades + ) as t + cross join ( + select distinct market_symbol + from + trades + ) as m + group by + m.market_symbol ), -inc AS ( - SELECT - dim.ts, - dim.market_symbol, - COALESCE( - h.trades, - 0 - ) AS trades, - COALESCE( - h.exchange_fees, - 0 - ) AS exchange_fees, - COALESCE( - h.referral_fees, - 0 - ) AS referral_fees, - COALESCE( - h.collected_fees, - 0 - ) AS collected_fees, - COALESCE( - h.volume, - 0 - ) AS volume, - COALESCE( - l.amount_liquidated, - 0 - ) AS amount_liquidated, - COALESCE( - l.liquidations, - 0 - ) AS liquidations, - SUM( - h.exchange_fees - ) over ( - PARTITION BY dim.market_symbol - ORDER BY - dim.ts - ) AS cumulative_exchange_fees, - SUM( - h.referral_fees - ) over ( - PARTITION BY dim.market_symbol - ORDER BY - dim.ts - ) AS cumulative_referral_fees, - SUM( - h.collected_fees - ) over ( - PARTITION BY dim.market_symbol - ORDER BY - dim.ts - ) AS cumulative_collected_fees, - SUM( - h.volume - ) over ( - PARTITION BY dim.market_symbol - ORDER BY - dim.ts - ) AS cumulative_volume - FROM - dim - LEFT JOIN inc_trades h - ON dim.ts = h.ts - AND dim.market_symbol = h.market_symbol - LEFT JOIN inc_liq l - ON dim.ts = l.ts - AND dim.market_symbol = l.market_symbol + +inc as ( + select + dim.ts, + dim.market_symbol, + COALESCE( + h.trades, + 0 + ) as trades, + COALESCE( + h.exchange_fees, + 0 + ) as exchange_fees, + COALESCE( + h.referral_fees, + 0 + ) as referral_fees, + COALESCE( + h.collected_fees, + 0 + ) as collected_fees, + COALESCE( + h.volume, + 0 + ) as volume, + COALESCE( + l.amount_liquidated, + 0 + ) as amount_liquidated, + COALESCE( + l.liquidations, + 0 + ) as liquidations, + SUM( + h.exchange_fees + ) over ( + partition by dim.market_symbol + order by + dim.ts + ) as cumulative_exchange_fees, + SUM( + h.referral_fees + ) over ( + partition by dim.market_symbol + order by + dim.ts + ) as cumulative_referral_fees, + SUM( + h.collected_fees + ) over ( + partition by dim.market_symbol + order by + dim.ts + ) as cumulative_collected_fees, + SUM( + h.volume + ) over ( + partition by dim.market_symbol + order by + dim.ts + ) as cumulative_volume + from + dim + left join inc_trades as h + on + dim.ts = h.ts + and dim.market_symbol = h.market_symbol + left join inc_liq as l + on + dim.ts = l.ts + and dim.market_symbol = l.market_symbol ) -SELECT - * -FROM - inc + +select * +from + inc diff --git a/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_stats_daily_base_mainnet.sql b/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_stats_daily_base_mainnet.sql index a00e081c5..11023282c 100644 --- a/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_stats_daily_base_mainnet.sql +++ b/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_stats_daily_base_mainnet.sql @@ -1,20 +1,20 @@ -SELECT - DATE_TRUNC( - 'day', - ts - ) AS ts, - SUM(trades) AS trades, - SUM(exchange_fees) AS exchange_fees, - SUM(referral_fees) AS referral_fees, - SUM(collected_fees) AS collected_fees, - SUM(volume) AS volume, - SUM(liquidation_rewards) AS liquidation_rewards, - SUM(liquidated_accounts) AS liquidated_accounts, - MAX(cumulative_exchange_fees) AS cumulative_exchange_fees, - MAX(cumulative_referral_fees) AS cumulative_referral_fees, - MAX(cumulative_collected_fees) AS cumulative_collected_fees, - MAX(cumulative_volume) AS cumulative_volume -FROM - {{ ref('fct_perp_stats_hourly_base_mainnet') }} -GROUP BY - 1 +select + DATE_TRUNC( + 'day', + ts + ) as ts, + SUM(trades) as trades, + SUM(exchange_fees) as exchange_fees, + SUM(referral_fees) as referral_fees, + SUM(collected_fees) as collected_fees, + SUM(volume) as volume, + SUM(liquidation_rewards) as liquidation_rewards, + SUM(liquidated_accounts) as liquidated_accounts, + MAX(cumulative_exchange_fees) as cumulative_exchange_fees, + MAX(cumulative_referral_fees) as cumulative_referral_fees, + MAX(cumulative_collected_fees) as cumulative_collected_fees, + MAX(cumulative_volume) as cumulative_volume +from + {{ ref('fct_perp_stats_hourly_base_mainnet') }} +group by + 1 diff --git a/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_stats_hourly_base_mainnet.sql b/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_stats_hourly_base_mainnet.sql index 10dbd219f..a73df59bc 100644 --- a/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_stats_hourly_base_mainnet.sql +++ b/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_stats_hourly_base_mainnet.sql @@ -1,84 +1,88 @@ -WITH inc_market AS ( - SELECT - ts, - market_symbol, - trades, - exchange_fees, - referral_fees, - collected_fees, - volume, - liquidations, - cumulative_exchange_fees, - cumulative_referral_fees, - cumulative_collected_fees, - cumulative_volume - FROM - {{ ref('fct_perp_market_stats_hourly_base_mainnet') }} +with inc_market as ( + select + ts, + market_symbol, + trades, + exchange_fees, + referral_fees, + collected_fees, + volume, + liquidations, + cumulative_exchange_fees, + cumulative_referral_fees, + cumulative_collected_fees, + cumulative_volume + from + {{ ref('fct_perp_market_stats_hourly_base_mainnet') }} ), -liq AS ( - SELECT - ts, - total_reward, - 1 AS liquidated_accounts - FROM - {{ ref('fct_perp_liq_account_base_mainnet') }} + +liq as ( + select + ts, + total_reward, + 1 as liquidated_accounts + from + {{ ref('fct_perp_liq_account_base_mainnet') }} ), -inc_liq AS ( - SELECT - DATE_TRUNC( - 'hour', - ts - ) AS ts, - SUM(total_reward) AS liquidation_rewards, - SUM(liquidated_accounts) AS liquidated_accounts - FROM - liq - GROUP BY - 1 + +inc_liq as ( + select + DATE_TRUNC( + 'hour', + ts + ) as ts, + SUM(total_reward) as liquidation_rewards, + SUM(liquidated_accounts) as liquidated_accounts + from + liq + group by + 1 ), -inc_trade AS ( - SELECT - ts, - SUM(trades) AS trades, - SUM(exchange_fees) AS exchange_fees, - SUM(referral_fees) AS referral_fees, - SUM(collected_fees) AS collected_fees, - SUM(volume) AS volume, - SUM(cumulative_exchange_fees) AS cumulative_exchange_fees, - SUM(cumulative_referral_fees) AS cumulative_referral_fees, - SUM(cumulative_collected_fees) AS cumulative_collected_fees, - SUM(cumulative_volume) AS cumulative_volume - FROM - inc_market - GROUP BY - 1 + +inc_trade as ( + select + ts, + SUM(trades) as trades, + SUM(exchange_fees) as exchange_fees, + SUM(referral_fees) as referral_fees, + SUM(collected_fees) as collected_fees, + SUM(volume) as volume, + SUM(cumulative_exchange_fees) as cumulative_exchange_fees, + SUM(cumulative_referral_fees) as cumulative_referral_fees, + SUM(cumulative_collected_fees) as cumulative_collected_fees, + SUM(cumulative_volume) as cumulative_volume + from + inc_market + group by + 1 ), -inc AS ( - SELECT - h.ts, - h.trades, - h.exchange_fees, - h.referral_fees, - h.collected_fees, - h.volume, - COALESCE( - l.liquidation_rewards, - 0 - ) AS liquidation_rewards, - COALESCE( - l.liquidated_accounts, - 0 - ) AS liquidated_accounts, - h.cumulative_exchange_fees, - h.cumulative_referral_fees, - h.cumulative_collected_fees, - h.cumulative_volume - FROM - inc_trade h - LEFT JOIN inc_liq l - ON h.ts = l.ts + +inc as ( + select + h.ts, + h.trades, + h.exchange_fees, + h.referral_fees, + h.collected_fees, + h.volume, + h.cumulative_exchange_fees, + h.cumulative_referral_fees, + h.cumulative_collected_fees, + h.cumulative_volume, + COALESCE( + l.liquidation_rewards, + 0 + ) as liquidation_rewards, + COALESCE( + l.liquidated_accounts, + 0 + ) as liquidated_accounts + from + inc_trade as h + left join inc_liq as l + on h.ts = l.ts ) -SELECT - * -FROM - inc + +select * +from + inc diff --git a/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_tracking_stats_daily_base_mainnet.sql b/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_tracking_stats_daily_base_mainnet.sql index 8d03d43c4..0513e0610 100644 --- a/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_tracking_stats_daily_base_mainnet.sql +++ b/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_tracking_stats_daily_base_mainnet.sql @@ -1,83 +1,87 @@ -WITH trades AS ( - SELECT - DATE_TRUNC( - 'day', - ts - ) AS ts, - tracking_code, - SUM(exchange_fees) AS exchange_fees, - SUM(referral_fees) AS referral_fees, - SUM(collected_fees) AS collected_fees, - SUM(volume) AS volume, - SUM(trades) AS trades - FROM - {{ ref('fct_perp_tracking_stats_hourly_base_mainnet') }} - GROUP BY - 1, - 2 +with trades as ( + select + DATE_TRUNC( + 'day', + ts + ) as ts, + tracking_code, + SUM(exchange_fees) as exchange_fees, + SUM(referral_fees) as referral_fees, + SUM(collected_fees) as collected_fees, + SUM(volume) as volume, + SUM(trades) as trades + from + {{ ref('fct_perp_tracking_stats_hourly_base_mainnet') }} + group by + 1, + 2 ), -accounts AS ( - SELECT - DATE_TRUNC( - 'day', - ts - ) AS ts, - tracking_code, - COUNT( - DISTINCT account_id - ) AS accounts - FROM - {{ ref('fct_perp_trades_base_mainnet') }} - GROUP BY - 1, - 2 + +accounts as ( + select + DATE_TRUNC( + 'day', + ts + ) as ts, + tracking_code, + COUNT( + distinct account_id + ) as accounts + from + {{ ref('fct_perp_trades_base_mainnet') }} + group by + 1, + 2 ), -total AS ( - SELECT - ts, - SUM(exchange_fees) AS exchange_fees_total, - SUM(referral_fees) AS referral_fees_total, - SUM(collected_fees) AS collected_fees_total, - SUM(volume) AS volume_total, - SUM(trades) AS trades_total - FROM - trades - GROUP BY - 1 + +total as ( + select + ts, + SUM(exchange_fees) as exchange_fees_total, + SUM(referral_fees) as referral_fees_total, + SUM(collected_fees) as collected_fees_total, + SUM(volume) as volume_total, + SUM(trades) as trades_total + from + trades + group by + 1 ) -SELECT - trades.ts, - trades.tracking_code, - trades.exchange_fees, - trades.referral_fees, - trades.collected_fees, - trades.volume, - trades.trades, - accounts.accounts, - CASE - WHEN total.exchange_fees_total = 0 THEN 0 - ELSE trades.exchange_fees / total.exchange_fees_total - END AS exchange_fees_share, - CASE - WHEN total.referral_fees_total = 0 THEN 0 - ELSE trades.referral_fees / total.referral_fees_total - END AS referral_fees_share, - CASE - WHEN total.collected_fees_total = 0 THEN 0 - ELSE trades.collected_fees / total.collected_fees_total - END AS collected_fees_share, - CASE - WHEN total.volume_total = 0 THEN 0 - ELSE trades.volume / total.volume_total - END AS volume_share, - CASE - WHEN total.trades_total = 0 THEN 0 - ELSE trades.trades / total.trades_total - END AS trades_share -FROM - trades - JOIN accounts - ON trades.ts = accounts.ts - AND trades.tracking_code = accounts.tracking_code - JOIN total - ON trades.ts = total.ts + +select + trades.ts, + trades.tracking_code, + trades.exchange_fees, + trades.referral_fees, + trades.collected_fees, + trades.volume, + trades.trades, + accounts.accounts, + case + when total.exchange_fees_total = 0 then 0 + else trades.exchange_fees / total.exchange_fees_total + end as exchange_fees_share, + case + when total.referral_fees_total = 0 then 0 + else trades.referral_fees / total.referral_fees_total + end as referral_fees_share, + case + when total.collected_fees_total = 0 then 0 + else trades.collected_fees / total.collected_fees_total + end as collected_fees_share, + case + when total.volume_total = 0 then 0 + else trades.volume / total.volume_total + end as volume_share, + case + when total.trades_total = 0 then 0 + else trades.trades / total.trades_total + end as trades_share +from + trades +inner join accounts + on + trades.ts = accounts.ts + and trades.tracking_code = accounts.tracking_code +inner join total + on trades.ts = total.ts diff --git a/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_tracking_stats_hourly_base_mainnet.sql b/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_tracking_stats_hourly_base_mainnet.sql index 0f485c965..7a4f547ff 100644 --- a/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_tracking_stats_hourly_base_mainnet.sql +++ b/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_tracking_stats_hourly_base_mainnet.sql @@ -1,83 +1,87 @@ -WITH trades AS ( - SELECT - DATE_TRUNC( - 'hour', - ts - ) AS ts, - tracking_code, - SUM(exchange_fees) AS exchange_fees, - SUM(referral_fees) AS referral_fees, - SUM(collected_fees) AS collected_fees, - SUM(notional_trade_size) AS volume, - SUM(1) AS trades - FROM - {{ ref('fct_perp_trades_base_mainnet') }} - GROUP BY - 1, - 2 +with trades as ( + select + DATE_TRUNC( + 'hour', + ts + ) as ts, + tracking_code, + SUM(exchange_fees) as exchange_fees, + SUM(referral_fees) as referral_fees, + SUM(collected_fees) as collected_fees, + SUM(notional_trade_size) as volume, + SUM(1) as trades + from + {{ ref('fct_perp_trades_base_mainnet') }} + group by + 1, + 2 ), -accounts AS ( - SELECT - DATE_TRUNC( - 'hour', - ts - ) AS ts, - tracking_code, - COUNT( - DISTINCT account_id - ) AS accounts - FROM - {{ ref('fct_perp_trades_base_mainnet') }} - GROUP BY - 1, - 2 + +accounts as ( + select + DATE_TRUNC( + 'hour', + ts + ) as ts, + tracking_code, + COUNT( + distinct account_id + ) as accounts + from + {{ ref('fct_perp_trades_base_mainnet') }} + group by + 1, + 2 ), -total AS ( - SELECT - ts, - SUM(trades) AS trades_total, - SUM(exchange_fees) AS exchange_fees_total, - SUM(referral_fees) AS referral_fees_total, - SUM(collected_fees) AS collected_fees_total, - SUM(volume) AS volume_total - FROM - trades - GROUP BY - 1 + +total as ( + select + ts, + SUM(trades) as trades_total, + SUM(exchange_fees) as exchange_fees_total, + SUM(referral_fees) as referral_fees_total, + SUM(collected_fees) as collected_fees_total, + SUM(volume) as volume_total + from + trades + group by + 1 ) -SELECT - trades.ts, - trades.tracking_code, - trades.exchange_fees, - trades.referral_fees, - trades.collected_fees, - trades.volume, - trades.trades, - accounts.accounts, - CASE - WHEN total.exchange_fees_total = 0 THEN 0 - ELSE trades.exchange_fees / total.exchange_fees_total - END AS exchange_fees_share, - CASE - WHEN total.referral_fees_total = 0 THEN 0 - ELSE trades.referral_fees / total.referral_fees_total - END AS referral_fees_share, - CASE - WHEN total.collected_fees_total = 0 THEN 0 - ELSE trades.collected_fees / total.collected_fees_total - END AS collected_fees_share, - CASE - WHEN total.volume_total = 0 THEN 0 - ELSE trades.volume / total.volume_total - END AS volume_share, - CASE - WHEN total.trades_total = 0 THEN 0 - ELSE trades.trades / total.trades_total - END AS trades_share -FROM - trades - JOIN accounts - ON trades.ts = accounts.ts - AND trades.tracking_code = accounts.tracking_code - JOIN total - ON trades.ts = total.ts + +select + trades.ts, + trades.tracking_code, + trades.exchange_fees, + trades.referral_fees, + trades.collected_fees, + trades.volume, + trades.trades, + accounts.accounts, + case + when total.exchange_fees_total = 0 then 0 + else trades.exchange_fees / total.exchange_fees_total + end as exchange_fees_share, + case + when total.referral_fees_total = 0 then 0 + else trades.referral_fees / total.referral_fees_total + end as referral_fees_share, + case + when total.collected_fees_total = 0 then 0 + else trades.collected_fees / total.collected_fees_total + end as collected_fees_share, + case + when total.volume_total = 0 then 0 + else trades.volume / total.volume_total + end as volume_share, + case + when total.trades_total = 0 then 0 + else trades.trades / total.trades_total + end as trades_share +from + trades +inner join accounts + on + trades.ts = accounts.ts + and trades.tracking_code = accounts.tracking_code +inner join total + on trades.ts = total.ts diff --git a/transformers/synthetix/models/marts/base/mainnet/prices/fct_prices_base_mainnet.sql b/transformers/synthetix/models/marts/base/mainnet/prices/fct_prices_base_mainnet.sql index 062c4adb4..fad396adc 100644 --- a/transformers/synthetix/models/marts/base/mainnet/prices/fct_prices_base_mainnet.sql +++ b/transformers/synthetix/models/marts/base/mainnet/prices/fct_prices_base_mainnet.sql @@ -1,51 +1,53 @@ -WITH all_prices AS ( - SELECT +with all_prices as ( + select ts, - NULL AS market_address, + null as market_address, market_symbol, price - FROM + from {{ ref('fct_perp_market_history_base_mainnet') }} - UNION ALL - SELECT + union all + select ts, - NULL AS market_address, - 'SNX' AS market_symbol, - snx_price AS price - FROM + null as market_address, + 'SNX' as market_symbol, + snx_price as price + from {{ ref('fct_buyback_base_mainnet') }} - WHERE + where snx_price > 0 - UNION ALL - SELECT + union all + select ts, - collateral_type AS market_address, - NULL AS market_symbol, - collateral_value / amount AS price - FROM + collateral_type as market_address, + null as market_symbol, + collateral_value / amount as price + from {{ ref('core_vault_collateral_base_mainnet') }} - WHERE + where collateral_value > 0 ), -tokens AS ( - SELECT + +tokens as ( + select token_address, token_symbol - FROM + from {{ ref('base_mainnet_tokens') }} ) -SELECT + +select p.ts, p.market_address, + p.price, COALESCE( t.token_symbol, p.market_symbol - ) AS market_symbol, - p.price -FROM - all_prices p - LEFT JOIN tokens t - ON LOWER( + ) as market_symbol +from + all_prices as p +left join tokens as t + on LOWER( p.market_address ) = LOWER( t.token_address diff --git a/transformers/synthetix/models/marts/base/mainnet/prices/fct_prices_hourly_base_mainnet.sql b/transformers/synthetix/models/marts/base/mainnet/prices/fct_prices_hourly_base_mainnet.sql index d54e7c38d..65829fe0f 100644 --- a/transformers/synthetix/models/marts/base/mainnet/prices/fct_prices_hourly_base_mainnet.sql +++ b/transformers/synthetix/models/marts/base/mainnet/prices/fct_prices_hourly_base_mainnet.sql @@ -1,63 +1,72 @@ -WITH prices AS ( - SELECT - DISTINCT DATE_TRUNC( +with prices as ( + select distinct + market_symbol, + DATE_TRUNC( 'hour', ts - ) AS ts, - market_symbol, - LAST_VALUE(price) over (PARTITION BY DATE_TRUNC('hour', ts), market_symbol - ORDER BY - ts rows BETWEEN unbounded preceding - AND unbounded following) AS price - FROM + ) as ts, + LAST_VALUE(price) over ( + partition by DATE_TRUNC('hour', ts), market_symbol + order by + ts + rows between unbounded preceding + and unbounded following + ) as price + from {{ ref('fct_prices_base_mainnet') }} ), -dim AS ( - SELECT - generate_series(DATE_TRUNC('hour', MIN(t.ts)), DATE_TRUNC('hour', MAX(t.ts)), '1 hour' :: INTERVAL) AS ts, - m.market_symbol - FROM + +dim as ( + select + m.market_symbol, + GENERATE_SERIES( + DATE_TRUNC('hour', MIN(t.ts)), + DATE_TRUNC('hour', MAX(t.ts)), + '1 hour'::INTERVAL + ) as ts + from ( - SELECT - ts - FROM - prices - ) AS t - CROSS JOIN ( - SELECT - DISTINCT market_symbol - FROM + select ts + from prices - ) AS m - GROUP BY + ) as t + cross join ( + select distinct market_symbol + from + prices + ) as m + group by m.market_symbol ), -ffill AS ( - SELECT + +ffill as ( + select dim.ts, dim.market_symbol, - last(prices.price) over ( - partition by dim.market_symbol - order by dim.ts + LAST(prices.price) over ( + partition by dim.market_symbol + order by dim.ts rows between unbounded preceding and current row ) as price - FROM + from dim - LEFT JOIN prices - ON dim.ts = prices.ts - AND dim.market_symbol = prices.market_symbol + left join prices + on + dim.ts = prices.ts + and dim.market_symbol = prices.market_symbol ), -hourly_prices AS ( - SELECT + +hourly_prices as ( + select ts, market_symbol, price - FROM + from ffill ) -SELECT - * -FROM + +select * +from hourly_prices -WHERE - price IS NOT NULL +where + price is not null diff --git a/transformers/synthetix/models/marts/base/mainnet/spot/fct_spot_atomics_base_mainnet.sql b/transformers/synthetix/models/marts/base/mainnet/spot/fct_spot_atomics_base_mainnet.sql index 7e5d2399c..de4095e16 100644 --- a/transformers/synthetix/models/marts/base/mainnet/spot/fct_spot_atomics_base_mainnet.sql +++ b/transformers/synthetix/models/marts/base/mainnet/spot/fct_spot_atomics_base_mainnet.sql @@ -1,51 +1,53 @@ -WITH bought AS ( - SELECT +with bought as ( + select + id, + block_timestamp as ts, + block_number, + transaction_hash as tx_hash, + synth_market_id, + {{ convert_wei('price') }} as price, + {{ convert_wei('synth_returned') }} as amount, + referrer + from + {{ ref('spot_synth_bought_base_mainnet') }} +), + +sold as ( + select + id, + block_timestamp as ts, + block_number, + transaction_hash as tx_hash, + synth_market_id, + {{ convert_wei('price') }} as price, + -1 * {{ convert_wei('amount_returned') }} as amount, + referrer + from + {{ ref('spot_synth_sold_base_mainnet') }} +) + +select id, - block_timestamp AS ts, + ts, block_number, - transaction_hash AS tx_hash, + tx_hash, synth_market_id, - {{ convert_wei('price') }} AS price, - {{ convert_wei('synth_returned') }} AS amount, + price, + amount, referrer - FROM - {{ ref('spot_synth_bought_base_mainnet') }} -), -sold AS ( - SELECT +from + bought +union all +select id, - block_timestamp AS ts, + ts, block_number, - transaction_hash AS tx_hash, + tx_hash, synth_market_id, - {{ convert_wei('price') }} AS price, - -1 * {{ convert_wei('amount_returned') }} AS amount, + price, + amount, referrer - FROM - {{ ref('spot_synth_sold_base_mainnet') }} -) -SELECT - id, - ts, - block_number, - tx_hash, - synth_market_id, - price, - amount, - referrer -FROM - bought -UNION ALL -SELECT - id, - ts, - block_number, - tx_hash, - synth_market_id, - price, - amount, - referrer -FROM - sold -ORDER BY - ts +from + sold +order by + ts diff --git a/transformers/synthetix/models/marts/base/mainnet/spot/fct_spot_markets_base_mainnet.sql b/transformers/synthetix/models/marts/base/mainnet/spot/fct_spot_markets_base_mainnet.sql index 51eb8584c..39fef3ab9 100644 --- a/transformers/synthetix/models/marts/base/mainnet/spot/fct_spot_markets_base_mainnet.sql +++ b/transformers/synthetix/models/marts/base/mainnet/spot/fct_spot_markets_base_mainnet.sql @@ -1,13 +1,13 @@ -WITH base AS ( - SELECT - synth_market_id AS id, - block_timestamp AS created_ts, - block_number, - synth_token_address AS token_address - FROM - {{ ref('spot_synth_registered_base_mainnet') }} +with base as ( + select + synth_market_id as id, + block_timestamp as created_ts, + block_number, + synth_token_address as token_address + from + {{ ref('spot_synth_registered_base_mainnet') }} ) -SELECT - * -FROM - base + +select * +from + base diff --git a/transformers/synthetix/models/marts/base/mainnet/spot/fct_spot_wrapper_base_mainnet.sql b/transformers/synthetix/models/marts/base/mainnet/spot/fct_spot_wrapper_base_mainnet.sql index 92e2ec6e4..74ac5e97b 100644 --- a/transformers/synthetix/models/marts/base/mainnet/spot/fct_spot_wrapper_base_mainnet.sql +++ b/transformers/synthetix/models/marts/base/mainnet/spot/fct_spot_wrapper_base_mainnet.sql @@ -1,43 +1,45 @@ -WITH wraps AS ( - SELECT +with wraps as ( + select + id, + block_timestamp as ts, + block_number, + transaction_hash as tx_hash, + synth_market_id, + {{ convert_wei('amount_wrapped') }} as amount_wrapped + from + {{ ref('spot_synth_wrapped_base_mainnet') }} +), + +unwraps as ( + select + id, + block_timestamp as ts, + block_number, + transaction_hash as tx_hash, + synth_market_id, + -1 * {{ convert_wei('amount_unwrapped') }} as amount_wrapped + from + {{ ref('spot_synth_unwrapped_base_mainnet') }} +) + +select id, - block_timestamp AS ts, + ts, block_number, - transaction_hash AS tx_hash, + tx_hash, synth_market_id, - {{ convert_wei('amount_wrapped') }} AS amount_wrapped - FROM - {{ ref('spot_synth_wrapped_base_mainnet') }} -), -unwraps AS ( - SELECT + amount_wrapped +from + wraps +union all +select id, - block_timestamp AS ts, + ts, block_number, - transaction_hash AS tx_hash, + tx_hash, synth_market_id, - -1 * {{ convert_wei('amount_unwrapped') }} AS amount_wrapped - FROM - {{ ref('spot_synth_unwrapped_base_mainnet') }} -) -SELECT - id, - ts, - block_number, - tx_hash, - synth_market_id, - amount_wrapped -FROM - wraps -UNION ALL -SELECT - id, - ts, - block_number, - tx_hash, - synth_market_id, - amount_wrapped -FROM - unwraps -ORDER BY - ts + amount_wrapped +from + unwraps +order by + ts diff --git a/transformers/synthetix/models/marts/base/mainnet/spot/fct_synth_supply_base_mainnet.sql b/transformers/synthetix/models/marts/base/mainnet/spot/fct_synth_supply_base_mainnet.sql index cae2d53a2..4ef4e8f93 100644 --- a/transformers/synthetix/models/marts/base/mainnet/spot/fct_synth_supply_base_mainnet.sql +++ b/transformers/synthetix/models/marts/base/mainnet/spot/fct_synth_supply_base_mainnet.sql @@ -1,71 +1,72 @@ -WITH wrapper AS ( - SELECT +with wrapper as ( + select ts, block_number, synth_market_id, - amount_wrapped AS change_amount - FROM + amount_wrapped as change_amount + from {{ ref('fct_spot_wrapper_base_mainnet') }} ), -atomics AS ( - SELECT + +atomics as ( + select ts, block_number, synth_market_id, - amount AS change_amount - FROM + amount as change_amount + from {{ ref('fct_spot_atomics_base_mainnet') }} - UNION ALL - SELECT + union all + select ts, block_number, - 0 AS synth_market_id, - amount * price * -1 AS change_amount - FROM + 0 as synth_market_id, + amount * price * -1 as change_amount + from {{ ref('fct_spot_atomics_base_mainnet') }} ), -usd_changes AS ( - SELECT - block_timestamp AS ts, + +usd_changes as ( + select + block_timestamp as ts, block_number, - 0 AS synth_market_id, - {{ convert_wei("amount") }} AS change_amount - FROM + 0 as synth_market_id, + {{ convert_wei("amount") }} as change_amount + from {{ ref('core_usd_minted_base_mainnet') }} - UNION ALL - SELECT - block_timestamp AS ts, + union all + select + block_timestamp as ts, block_number, - 0 AS synth_market_id, - -1 * {{ convert_wei("amount") }} AS change_amount - FROM + 0 as synth_market_id, + -1 * {{ convert_wei("amount") }} as change_amount + from {{ ref('core_usd_burned_base_mainnet') }} ), -all_changes AS ( - SELECT - * - FROM + +all_changes as ( + select * + from wrapper - UNION ALL - SELECT - * - FROM + union all + select * + from atomics - UNION ALL - SELECT - * - FROM + union all + select * + from usd_changes ) -SELECT + +select ts, block_number, synth_market_id, SUM(change_amount) over ( - PARTITION BY synth_market_id - ORDER BY + partition by synth_market_id + order by ts, block_number - ) AS supply -FROM + ) as supply +from all_changes diff --git a/transformers/synthetix/models/marts/base/sepolia/buyback/fct_buyback_base_sepolia.sql b/transformers/synthetix/models/marts/base/sepolia/buyback/fct_buyback_base_sepolia.sql index 8c6a0b243..f6b25a01d 100644 --- a/transformers/synthetix/models/marts/base/sepolia/buyback/fct_buyback_base_sepolia.sql +++ b/transformers/synthetix/models/marts/base/sepolia/buyback/fct_buyback_base_sepolia.sql @@ -1,9 +1,9 @@ -SELECT +select id, - block_timestamp AS ts, + block_timestamp as ts, buyer, - {{ convert_wei('snx') }} AS snx, - {{ convert_wei('usd') }} AS usd, - ({{ convert_wei('usd') }}) / ({{ convert_wei('snx') }}) AS snx_price -FROM + {{ convert_wei('snx') }} as snx, + {{ convert_wei('usd') }} as usd, + ({{ convert_wei('usd') }}) / ({{ convert_wei('snx') }}) as snx_price +from {{ ref('buyback_processed_base_sepolia') }} diff --git a/transformers/synthetix/models/marts/base/sepolia/buyback/fct_buyback_daily_base_sepolia.sql b/transformers/synthetix/models/marts/base/sepolia/buyback/fct_buyback_daily_base_sepolia.sql index 0447fe98d..611b12ef0 100644 --- a/transformers/synthetix/models/marts/base/sepolia/buyback/fct_buyback_daily_base_sepolia.sql +++ b/transformers/synthetix/models/marts/base/sepolia/buyback/fct_buyback_daily_base_sepolia.sql @@ -1,27 +1,28 @@ -WITH agg AS ( - SELECT +with agg as ( + select DATE_TRUNC( 'day', ts - ) AS ts, - SUM(snx) AS snx_amount, - SUM(usd) AS usd_amount - FROM + ) as ts, + SUM(snx) as snx_amount, + SUM(usd) as usd_amount + from {{ ref('fct_buyback_base_sepolia') }} - GROUP BY + group by 1 ) -- add cumulative amounts -SELECT + +select ts, snx_amount, usd_amount, SUM(snx_amount) over ( - ORDER BY + order by ts - ) AS cumulative_snx_amount, + ) as cumulative_snx_amount, SUM(usd_amount) over ( - ORDER BY + order by ts - ) AS cumulative_usd_amount -FROM + ) as cumulative_usd_amount +from agg diff --git a/transformers/synthetix/models/marts/base/sepolia/buyback/fct_buyback_hourly_base_sepolia.sql b/transformers/synthetix/models/marts/base/sepolia/buyback/fct_buyback_hourly_base_sepolia.sql index 567a3f87f..87050f0d4 100644 --- a/transformers/synthetix/models/marts/base/sepolia/buyback/fct_buyback_hourly_base_sepolia.sql +++ b/transformers/synthetix/models/marts/base/sepolia/buyback/fct_buyback_hourly_base_sepolia.sql @@ -1,27 +1,28 @@ -WITH agg AS ( - SELECT +with agg as ( + select DATE_TRUNC( 'hour', ts - ) AS ts, - SUM(snx) AS snx_amount, - SUM(usd) AS usd_amount - FROM + ) as ts, + SUM(snx) as snx_amount, + SUM(usd) as usd_amount + from {{ ref('fct_buyback_base_sepolia') }} - GROUP BY + group by 1 ) -- add cumulative amounts -SELECT + +select ts, snx_amount, usd_amount, SUM(snx_amount) over ( - ORDER BY + order by ts - ) AS cumulative_snx_amount, + ) as cumulative_snx_amount, SUM(usd_amount) over ( - ORDER BY + order by ts - ) AS cumulative_usd_amount -FROM + ) as cumulative_usd_amount +from agg diff --git a/transformers/synthetix/models/marts/base/sepolia/core/fct_core_account_delegation_base_sepolia.sql b/transformers/synthetix/models/marts/base/sepolia/core/fct_core_account_delegation_base_sepolia.sql index 921124ffc..deb41bbc9 100644 --- a/transformers/synthetix/models/marts/base/sepolia/core/fct_core_account_delegation_base_sepolia.sql +++ b/transformers/synthetix/models/marts/base/sepolia/core/fct_core_account_delegation_base_sepolia.sql @@ -1,54 +1,60 @@ -WITH delegation_changes AS ( - SELECT +with delegation_changes as ( + select block_timestamp, account_id, pool_id, collateral_type, - {{ convert_wei('amount') }} - LAG({{ convert_wei('amount') }}, 1, 0) over ( - PARTITION BY account_id, - pool_id, - collateral_type - ORDER BY + {{ convert_wei('amount') }} + - LAG({{ convert_wei('amount') }}, 1, 0) over ( + partition by + account_id, + pool_id, + collateral_type + order by block_timestamp - ) AS change_in_amount - FROM + ) as change_in_amount + from {{ ref('core_delegation_updated_base_sepolia') }} ), -cumulative_delegation AS ( - SELECT + +cumulative_delegation as ( + select block_timestamp, account_id, pool_id, collateral_type, SUM(change_in_amount) over ( - PARTITION BY pool_id, - account_id, - collateral_type - ORDER BY + partition by + pool_id, + account_id, + collateral_type + order by block_timestamp - ) AS cumulative_amount_delegated, + ) as cumulative_amount_delegated, ROW_NUMBER() over ( - PARTITION BY pool_id, - account_id, - collateral_type - ORDER BY - block_timestamp DESC - ) AS rn - FROM + partition by + pool_id, + account_id, + collateral_type + order by + block_timestamp desc + ) as rn + from delegation_changes ) -SELECT - block_timestamp AS ts, - CAST( - account_id AS text - ) AS account_id, + +select + block_timestamp as ts, pool_id, collateral_type, - cumulative_amount_delegated AS amount_delegated -FROM + cumulative_amount_delegated as amount_delegated, + CAST( + account_id as text + ) as account_id +from cumulative_delegation -WHERE +where rn = 1 -ORDER BY +order by block_timestamp, collateral_type diff --git a/transformers/synthetix/models/marts/base/sepolia/core/fct_core_apr_base_sepolia.sql b/transformers/synthetix/models/marts/base/sepolia/core/fct_core_apr_base_sepolia.sql index 3ca657cdb..bcc1c71bc 100644 --- a/transformers/synthetix/models/marts/base/sepolia/core/fct_core_apr_base_sepolia.sql +++ b/transformers/synthetix/models/marts/base/sepolia/core/fct_core_apr_base_sepolia.sql @@ -4,8 +4,8 @@ ) }} -WITH pnl_hourly AS ( - SELECT +with pnl_hourly as ( + select ts, pool_id, collateral_type, @@ -23,160 +23,185 @@ WITH pnl_hourly AS ( 0 ) ) over ( - PARTITION BY pool_id, - collateral_type - ORDER BY + partition by + pool_id, + collateral_type + order by ts - ) AS cumulative_issuance, + ) as cumulative_issuance, SUM( hourly_pnl ) over ( - PARTITION BY pool_id, - collateral_type - ORDER BY + partition by + pool_id, + collateral_type + order by ts - ) AS cumulative_pnl - FROM + ) as cumulative_pnl + from {{ ref('fct_pool_pnl_hourly_base_sepolia') }} ), -avg_returns AS ( - SELECT + +avg_returns as ( + select ts, pool_id, collateral_type, AVG( hourly_pnl_pct ) over ( - PARTITION BY pool_id, - collateral_type - ORDER BY - ts RANGE BETWEEN INTERVAL '24 HOURS' preceding - AND CURRENT ROW - ) AS avg_24h_pnl_pct, + partition by + pool_id, + collateral_type + order by + ts + range between interval '24 HOURS' preceding + and current row + ) as avg_24h_pnl_pct, AVG( hourly_pnl_pct ) over ( - PARTITION BY pool_id, - collateral_type - ORDER BY - ts RANGE BETWEEN INTERVAL '7 DAYS' preceding - AND CURRENT ROW - ) AS avg_7d_pnl_pct, + partition by + pool_id, + collateral_type + order by + ts + range between interval '7 DAYS' preceding + and current row + ) as avg_7d_pnl_pct, AVG( hourly_pnl_pct ) over ( - PARTITION BY pool_id, - collateral_type - ORDER BY - ts RANGE BETWEEN INTERVAL '28 DAYS' preceding - AND CURRENT ROW - ) AS avg_28d_pnl_pct, + partition by + pool_id, + collateral_type + order by + ts + range between interval '28 DAYS' preceding + and current row + ) as avg_28d_pnl_pct, AVG( hourly_rewards_pct ) over ( - PARTITION BY pool_id, - collateral_type - ORDER BY - ts RANGE BETWEEN INTERVAL '24 HOURS' preceding - AND CURRENT ROW - ) AS avg_24h_rewards_pct, + partition by + pool_id, + collateral_type + order by + ts + range between interval '24 HOURS' preceding + and current row + ) as avg_24h_rewards_pct, AVG( hourly_rewards_pct ) over ( - PARTITION BY pool_id, - collateral_type - ORDER BY - ts RANGE BETWEEN INTERVAL '7 DAYS' preceding - AND CURRENT ROW - ) AS avg_7d_rewards_pct, + partition by + pool_id, + collateral_type + order by + ts + range between interval '7 DAYS' preceding + and current row + ) as avg_7d_rewards_pct, AVG( hourly_rewards_pct ) over ( - PARTITION BY pool_id, - collateral_type - ORDER BY - ts RANGE BETWEEN INTERVAL '28 DAYS' preceding - AND CURRENT ROW - ) AS avg_28d_rewards_pct, + partition by + pool_id, + collateral_type + order by + ts + range between interval '28 DAYS' preceding + and current row + ) as avg_28d_rewards_pct, AVG( hourly_total_pct ) over ( - PARTITION BY pool_id, - collateral_type - ORDER BY - ts RANGE BETWEEN INTERVAL '24 HOURS' preceding - AND CURRENT ROW - ) AS avg_24h_total_pct, + partition by + pool_id, + collateral_type + order by + ts + range between interval '24 HOURS' preceding + and current row + ) as avg_24h_total_pct, AVG( hourly_total_pct ) over ( - PARTITION BY pool_id, - collateral_type - ORDER BY - ts RANGE BETWEEN INTERVAL '7 DAYS' preceding - AND CURRENT ROW - ) AS avg_7d_total_pct, + partition by + pool_id, + collateral_type + order by + ts + range between interval '7 DAYS' preceding + and current row + ) as avg_7d_total_pct, AVG( hourly_total_pct ) over ( - PARTITION BY pool_id, - collateral_type - ORDER BY - ts RANGE BETWEEN INTERVAL '28 DAYS' preceding - AND CURRENT ROW - ) AS avg_28d_total_pct - FROM + partition by + pool_id, + collateral_type + order by + ts + range between interval '28 DAYS' preceding + and current row + ) as avg_28d_total_pct + from pnl_hourly ), -apr_calculations AS ( - SELECT - pnl_hourly.ts AS ts, - pnl_hourly.pool_id AS pool_id, - pnl_hourly.collateral_type AS collateral_type, - pnl_hourly.collateral_value AS collateral_value, - pnl_hourly.debt AS debt, - pnl_hourly.hourly_pnl AS hourly_pnl, - pnl_hourly.cumulative_pnl AS cumulative_pnl, - pnl_hourly.hourly_issuance AS hourly_issuance, - pnl_hourly.cumulative_issuance AS cumulative_issuance, - pnl_hourly.rewards_usd AS rewards_usd, - pnl_hourly.hourly_pnl_pct AS hourly_pnl_pct, - pnl_hourly.hourly_rewards_pct AS hourly_rewards_pct, + +apr_calculations as ( + select + pnl_hourly.ts, + pnl_hourly.pool_id, + pnl_hourly.collateral_type, + pnl_hourly.collateral_value, + pnl_hourly.debt, + pnl_hourly.hourly_pnl, + pnl_hourly.cumulative_pnl, + pnl_hourly.hourly_issuance, + pnl_hourly.cumulative_issuance, + pnl_hourly.rewards_usd, + pnl_hourly.hourly_pnl_pct, + pnl_hourly.hourly_rewards_pct, -- total pnls - avg_returns.avg_24h_total_pct * 24 * 365 AS apr_24h, - avg_returns.avg_7d_total_pct * 24 * 365 AS apr_7d, - avg_returns.avg_28d_total_pct * 24 * 365 AS apr_28d, + avg_returns.avg_24h_total_pct * 24 * 365 as apr_24h, + avg_returns.avg_7d_total_pct * 24 * 365 as apr_7d, + avg_returns.avg_28d_total_pct * 24 * 365 as apr_28d, -- pool pnls - avg_returns.avg_24h_pnl_pct * 24 * 365 AS apr_24h_pnl, - avg_returns.avg_7d_pnl_pct * 24 * 365 AS apr_7d_pnl, - avg_returns.avg_28d_pnl_pct * 24 * 365 AS apr_28d_pnl, + avg_returns.avg_24h_pnl_pct * 24 * 365 as apr_24h_pnl, + avg_returns.avg_7d_pnl_pct * 24 * 365 as apr_7d_pnl, + avg_returns.avg_28d_pnl_pct * 24 * 365 as apr_28d_pnl, -- rewards pnls - avg_returns.avg_24h_rewards_pct * 24 * 365 AS apr_24h_rewards, - avg_returns.avg_7d_rewards_pct * 24 * 365 AS apr_7d_rewards, - avg_returns.avg_28d_rewards_pct * 24 * 365 AS apr_28d_rewards - FROM + avg_returns.avg_24h_rewards_pct * 24 * 365 as apr_24h_rewards, + avg_returns.avg_7d_rewards_pct * 24 * 365 as apr_7d_rewards, + avg_returns.avg_28d_rewards_pct * 24 * 365 as apr_28d_rewards + from pnl_hourly - JOIN avg_returns - ON pnl_hourly.ts = avg_returns.ts - AND pnl_hourly.pool_id = avg_returns.pool_id - AND pnl_hourly.collateral_type = avg_returns.collateral_type + inner join avg_returns + on + pnl_hourly.ts = avg_returns.ts + and pnl_hourly.pool_id = avg_returns.pool_id + and pnl_hourly.collateral_type = avg_returns.collateral_type ), -apy_calculations AS ( - SELECT + +apy_calculations as ( + select *, - (power(1 + apr_24h / 8760, 8760) - 1) AS apy_24h, - (power(1 + apr_7d / 8760, 8760) - 1) AS apy_7d, - (power(1 + apr_28d / 8760, 8760) - 1) AS apy_28d, - (power(1 + apr_24h_pnl / 8760, 8760) - 1) AS apy_24h_pnl, - (power(1 + apr_7d_pnl / 8760, 8760) - 1) AS apy_7d_pnl, - (power(1 + apr_28d_pnl / 8760, 8760) - 1) AS apy_28d_pnl, - (power(1 + apr_24h_rewards / 8760, 8760) - 1) AS apy_24h_rewards, - (power(1 + apr_7d_rewards / 8760, 8760) - 1) AS apy_7d_rewards, - (power(1 + apr_28d_rewards / 8760, 8760) - 1) AS apy_28d_rewards - FROM + (POWER(1 + apr_24h / 8760, 8760) - 1) as apy_24h, + (POWER(1 + apr_7d / 8760, 8760) - 1) as apy_7d, + (POWER(1 + apr_28d / 8760, 8760) - 1) as apy_28d, + (POWER(1 + apr_24h_pnl / 8760, 8760) - 1) as apy_24h_pnl, + (POWER(1 + apr_7d_pnl / 8760, 8760) - 1) as apy_7d_pnl, + (POWER(1 + apr_28d_pnl / 8760, 8760) - 1) as apy_28d_pnl, + (POWER(1 + apr_24h_rewards / 8760, 8760) - 1) as apy_24h_rewards, + (POWER(1 + apr_7d_rewards / 8760, 8760) - 1) as apy_7d_rewards, + (POWER(1 + apr_28d_rewards / 8760, 8760) - 1) as apy_28d_rewards + from apr_calculations ) -SELECT + +select ts, pool_id, collateral_type, @@ -207,7 +232,7 @@ SELECT apy_7d_rewards, apr_28d_rewards, apy_28d_rewards -FROM +from apy_calculations -ORDER BY +order by ts diff --git a/transformers/synthetix/models/marts/base/sepolia/core/fct_core_apr_rewards_base_sepolia.sql b/transformers/synthetix/models/marts/base/sepolia/core/fct_core_apr_rewards_base_sepolia.sql index 85660d5d6..29a50d2a0 100644 --- a/transformers/synthetix/models/marts/base/sepolia/core/fct_core_apr_rewards_base_sepolia.sql +++ b/transformers/synthetix/models/marts/base/sepolia/core/fct_core_apr_rewards_base_sepolia.sql @@ -4,8 +4,8 @@ ) }} -WITH pnl_hourly AS ( - SELECT +with pnl_hourly as ( + select ts, pool_id, collateral_type, @@ -13,11 +13,12 @@ WITH pnl_hourly AS ( collateral_value, rewards_usd, hourly_rewards_pct - FROM + from {{ ref('fct_pool_pnl_hourly_reward_base_sepolia') }} ), -avg_returns AS ( - SELECT + +avg_returns as ( + select ts, pool_id, collateral_type, @@ -25,66 +26,76 @@ avg_returns AS ( AVG( hourly_rewards_pct ) over ( - PARTITION BY pool_id, - collateral_type, - reward_token - ORDER BY - ts RANGE BETWEEN INTERVAL '24 HOURS' preceding - AND CURRENT ROW - ) AS avg_24h_rewards_pct, + partition by + pool_id, + collateral_type, + reward_token + order by + ts + range between interval '24 HOURS' preceding + and current row + ) as avg_24h_rewards_pct, AVG( hourly_rewards_pct ) over ( - PARTITION BY pool_id, - collateral_type, - reward_token - ORDER BY - ts RANGE BETWEEN INTERVAL '7 DAYS' preceding - AND CURRENT ROW - ) AS avg_7d_rewards_pct, + partition by + pool_id, + collateral_type, + reward_token + order by + ts + range between interval '7 DAYS' preceding + and current row + ) as avg_7d_rewards_pct, AVG( hourly_rewards_pct ) over ( - PARTITION BY pool_id, - collateral_type, - reward_token - ORDER BY - ts RANGE BETWEEN INTERVAL '28 DAYS' preceding - AND CURRENT ROW - ) AS avg_28d_rewards_pct - FROM + partition by + pool_id, + collateral_type, + reward_token + order by + ts + range between interval '28 DAYS' preceding + and current row + ) as avg_28d_rewards_pct + from pnl_hourly ), -apr_calculations AS ( - SELECT - pnl_hourly.ts AS ts, - pnl_hourly.pool_id AS pool_id, - pnl_hourly.collateral_type AS collateral_type, - pnl_hourly.reward_token AS reward_token, - pnl_hourly.collateral_value AS collateral_value, - pnl_hourly.rewards_usd AS rewards_usd, - pnl_hourly.hourly_rewards_pct AS hourly_rewards_pct, - avg_returns.avg_24h_rewards_pct * 24 * 365 AS apr_24h_rewards, - avg_returns.avg_7d_rewards_pct * 24 * 365 AS apr_7d_rewards, - avg_returns.avg_28d_rewards_pct * 24 * 365 AS apr_28d_rewards - FROM + +apr_calculations as ( + select + pnl_hourly.ts, + pnl_hourly.pool_id, + pnl_hourly.collateral_type, + pnl_hourly.reward_token, + pnl_hourly.collateral_value, + pnl_hourly.rewards_usd, + pnl_hourly.hourly_rewards_pct, + avg_returns.avg_24h_rewards_pct * 24 * 365 as apr_24h_rewards, + avg_returns.avg_7d_rewards_pct * 24 * 365 as apr_7d_rewards, + avg_returns.avg_28d_rewards_pct * 24 * 365 as apr_28d_rewards + from pnl_hourly - JOIN avg_returns - ON pnl_hourly.ts = avg_returns.ts - AND pnl_hourly.pool_id = avg_returns.pool_id - AND pnl_hourly.collateral_type = avg_returns.collateral_type - AND pnl_hourly.reward_token = avg_returns.reward_token + inner join avg_returns + on + pnl_hourly.ts = avg_returns.ts + and pnl_hourly.pool_id = avg_returns.pool_id + and pnl_hourly.collateral_type = avg_returns.collateral_type + and pnl_hourly.reward_token = avg_returns.reward_token ), -apy_calculations AS ( - SELECT + +apy_calculations as ( + select *, - (power(1 + apr_24h_rewards / 8760, 8760) - 1) AS apy_24h_rewards, - (power(1 + apr_7d_rewards / 8760, 8760) - 1) AS apy_7d_rewards, - (power(1 + apr_28d_rewards / 8760, 8760) - 1) AS apy_28d_rewards - FROM + (POWER(1 + apr_24h_rewards / 8760, 8760) - 1) as apy_24h_rewards, + (POWER(1 + apr_7d_rewards / 8760, 8760) - 1) as apy_7d_rewards, + (POWER(1 + apr_28d_rewards / 8760, 8760) - 1) as apy_28d_rewards + from apr_calculations ) -SELECT + +select ts, pool_id, collateral_type, @@ -98,7 +109,7 @@ SELECT apy_7d_rewards, apr_28d_rewards, apy_28d_rewards -FROM +from apy_calculations -ORDER BY +order by ts diff --git a/transformers/synthetix/models/marts/base/sepolia/core/fct_core_market_updated_base_sepolia.sql b/transformers/synthetix/models/marts/base/sepolia/core/fct_core_market_updated_base_sepolia.sql index f22a5042e..af8fce145 100644 --- a/transformers/synthetix/models/marts/base/sepolia/core/fct_core_market_updated_base_sepolia.sql +++ b/transformers/synthetix/models/marts/base/sepolia/core/fct_core_market_updated_base_sepolia.sql @@ -1,29 +1,30 @@ -WITH market_updated AS ( - SELECT +with market_updated as ( + select + id, + block_timestamp, + block_number, + transaction_hash, + contract, + event_name, + market_id, + net_issuance, + sender, + collateral_type, + credit_capacity, + token_amount + from + {{ ref('core_market_updated_base_sepolia') }} +) + +select id, - block_timestamp, - block_number, + block_timestamp as ts, transaction_hash, - contract, event_name, market_id, - net_issuance, - sender, collateral_type, - credit_capacity, - token_amount - FROM - {{ ref('core_market_updated_base_sepolia') }} -) -SELECT - id, - block_timestamp AS ts, - transaction_hash, - event_name, - market_id, - collateral_type, - {{ convert_wei("credit_capacity") }} AS credit_capacity, - {{ convert_wei("net_issuance") }} AS net_issuance, - {{ convert_wei("token_amount") }} AS token_amount -FROM - market_updated + {{ convert_wei("credit_capacity") }} as credit_capacity, + {{ convert_wei("net_issuance") }} as net_issuance, + {{ convert_wei("token_amount") }} as token_amount +from + market_updated diff --git a/transformers/synthetix/models/marts/base/sepolia/core/fct_core_pool_collateral_base_sepolia.sql b/transformers/synthetix/models/marts/base/sepolia/core/fct_core_pool_collateral_base_sepolia.sql index ac91b9c24..63b1e74b7 100644 --- a/transformers/synthetix/models/marts/base/sepolia/core/fct_core_pool_collateral_base_sepolia.sql +++ b/transformers/synthetix/models/marts/base/sepolia/core/fct_core_pool_collateral_base_sepolia.sql @@ -1,35 +1,39 @@ -WITH events AS ( - SELECT - block_timestamp, - {{ convert_wei('token_amount') }} AS token_amount, - collateral_type - FROM - {{ ref('core_deposited_base_sepolia') }} - UNION ALL - SELECT - block_timestamp,- {{ convert_wei('token_amount') }} AS token_amount, - collateral_type - FROM - {{ ref('core_withdrawn_base_sepolia') }} +with events as ( + select + block_timestamp, + {{ convert_wei('token_amount') }} as token_amount, + collateral_type + from + {{ ref('core_deposited_base_sepolia') }} + union all + select + block_timestamp, + -{{ convert_wei('token_amount') }} as token_amount, + collateral_type + from + {{ ref('core_withdrawn_base_sepolia') }} ), -ranked_events AS ( - SELECT - *, - SUM(token_amount) over ( - PARTITION BY collateral_type - ORDER BY - block_timestamp rows BETWEEN unbounded preceding - AND CURRENT ROW - ) AS amount_deposited - FROM - events + +ranked_events as ( + select + *, + SUM(token_amount) over ( + partition by collateral_type + order by + block_timestamp + rows between unbounded preceding + and current row + ) as amount_deposited + from + events ) -SELECT - block_timestamp AS ts, - collateral_type, - amount_deposited -FROM - ranked_events -ORDER BY - block_timestamp, - collateral_type + +select + block_timestamp as ts, + collateral_type, + amount_deposited +from + ranked_events +order by + block_timestamp, + collateral_type diff --git a/transformers/synthetix/models/marts/base/sepolia/core/fct_core_pool_delegation_base_sepolia.sql b/transformers/synthetix/models/marts/base/sepolia/core/fct_core_pool_delegation_base_sepolia.sql index e985db5d2..f2d043530 100644 --- a/transformers/synthetix/models/marts/base/sepolia/core/fct_core_pool_delegation_base_sepolia.sql +++ b/transformers/synthetix/models/marts/base/sepolia/core/fct_core_pool_delegation_base_sepolia.sql @@ -1,40 +1,45 @@ -WITH delegation_changes AS ( - SELECT +with delegation_changes as ( + select block_timestamp, account_id, pool_id, collateral_type, - {{ convert_wei('amount') }} - LAG({{ convert_wei('amount') }}, 1, 0) over ( - PARTITION BY account_id, - pool_id, - collateral_type - ORDER BY + {{ convert_wei('amount') }} + - LAG({{ convert_wei('amount') }}, 1, 0) over ( + partition by + account_id, + pool_id, + collateral_type + order by block_timestamp - ) AS change_in_amount - FROM + ) as change_in_amount + from {{ ref('core_delegation_updated_base_sepolia') }} ), -cumulative_delegation AS ( - SELECT + +cumulative_delegation as ( + select block_timestamp, pool_id, collateral_type, SUM(change_in_amount) over ( - PARTITION BY pool_id, - collateral_type - ORDER BY + partition by + pool_id, + collateral_type + order by block_timestamp - ) AS cumulative_amount_delegated - FROM + ) as cumulative_amount_delegated + from delegation_changes ) -SELECT - block_timestamp AS ts, + +select + block_timestamp as ts, pool_id, collateral_type, - cumulative_amount_delegated AS amount_delegated -FROM + cumulative_amount_delegated as amount_delegated +from cumulative_delegation -ORDER BY +order by block_timestamp, collateral_type diff --git a/transformers/synthetix/models/marts/base/sepolia/core/fct_core_pools_base_sepolia.sql b/transformers/synthetix/models/marts/base/sepolia/core/fct_core_pools_base_sepolia.sql index 066267d6e..2449cee4f 100644 --- a/transformers/synthetix/models/marts/base/sepolia/core/fct_core_pools_base_sepolia.sql +++ b/transformers/synthetix/models/marts/base/sepolia/core/fct_core_pools_base_sepolia.sql @@ -1,13 +1,13 @@ -WITH base AS ( - SELECT - pool_id AS id, - block_timestamp AS created_ts, - block_number, - owner - FROM - {{ ref('core_pool_created_base_sepolia') }} +with base as ( + select + pool_id as id, + block_timestamp as created_ts, + block_number, + owner + from + {{ ref('core_pool_created_base_sepolia') }} ) -SELECT - * -FROM - base + +select * +from + base diff --git a/transformers/synthetix/models/marts/base/sepolia/core/fct_pool_debt_base_sepolia.sql b/transformers/synthetix/models/marts/base/sepolia/core/fct_pool_debt_base_sepolia.sql index 5325d5a0e..b135eb9d6 100644 --- a/transformers/synthetix/models/marts/base/sepolia/core/fct_pool_debt_base_sepolia.sql +++ b/transformers/synthetix/models/marts/base/sepolia/core/fct_pool_debt_base_sepolia.sql @@ -1,10 +1,10 @@ -SELECT +select ts, block_number, pool_id, collateral_type, debt -FROM +from {{ ref('core_vault_debt_base_sepolia') }} -ORDER BY +order by ts diff --git a/transformers/synthetix/models/marts/base/sepolia/core/fct_pool_issuance_base_sepolia.sql b/transformers/synthetix/models/marts/base/sepolia/core/fct_pool_issuance_base_sepolia.sql index a1daa3ee2..5bb384446 100644 --- a/transformers/synthetix/models/marts/base/sepolia/core/fct_pool_issuance_base_sepolia.sql +++ b/transformers/synthetix/models/marts/base/sepolia/core/fct_pool_issuance_base_sepolia.sql @@ -1,39 +1,39 @@ -WITH burns AS ( - SELECT - block_timestamp AS ts, +with burns as ( + select + block_timestamp as ts, block_number, transaction_hash, pool_id, collateral_type, account_id, - -1 * {{ convert_wei('amount') }} AS amount - FROM + -1 * {{ convert_wei('amount') }} as amount + from {{ ref('core_usd_burned_base_sepolia') }} - ORDER BY - block_timestamp DESC + order by + block_timestamp desc ), -mints AS ( - SELECT - block_timestamp AS ts, + +mints as ( + select + block_timestamp as ts, block_number, transaction_hash, pool_id, collateral_type, account_id, - {{ convert_wei('amount') }} AS amount - FROM + {{ convert_wei('amount') }} as amount + from {{ ref('core_usd_minted_base_sepolia') }} - ORDER BY - block_timestamp DESC + order by + block_timestamp desc ) -SELECT - * -FROM + +select * +from burns -UNION ALL -SELECT - * -FROM +union all +select * +from mints -ORDER BY - ts DESC +order by + ts desc diff --git a/transformers/synthetix/models/marts/base/sepolia/core/fct_pool_issuance_hourly_base_sepolia.sql b/transformers/synthetix/models/marts/base/sepolia/core/fct_pool_issuance_hourly_base_sepolia.sql index c2122edb0..686fe61ec 100644 --- a/transformers/synthetix/models/marts/base/sepolia/core/fct_pool_issuance_hourly_base_sepolia.sql +++ b/transformers/synthetix/models/marts/base/sepolia/core/fct_pool_issuance_hourly_base_sepolia.sql @@ -1,110 +1,119 @@ -WITH dim AS ( - SELECT - generate_series(DATE_TRUNC('hour', MIN(t.ts)), DATE_TRUNC('hour', MAX(t.ts)), '1 hour' :: INTERVAL) AS ts, +with dim as ( + select m.pool_id, - m.collateral_type - FROM + m.collateral_type, + generate_series( + date_trunc('hour', min(t.ts)), + date_trunc('hour', max(t.ts)), + '1 hour'::INTERVAL + ) as ts + from ( - SELECT - ts - FROM - {{ ref('fct_pool_issuance_base_sepolia') }} - ) AS t - CROSS JOIN ( - SELECT - DISTINCT pool_id, - collateral_type - FROM + select ts + from {{ ref('fct_pool_issuance_base_sepolia') }} - ) AS m - GROUP BY + ) as t + cross join ( + select distinct + pool_id, + collateral_type + from + {{ ref('fct_pool_issuance_base_sepolia') }} + ) as m + group by m.pool_id, m.collateral_type ), -max_debt_block AS ( - SELECT - DATE_TRUNC( - 'hour', - ts - ) AS HOUR, + +max_debt_block as ( + select pool_id, collateral_type, - MAX(block_number) AS max_block_number - FROM + date_trunc( + 'hour', + ts + ) as hour, + max(block_number) as max_block_number + from {{ ref('fct_pool_debt_base_sepolia') }} - GROUP BY - DATE_TRUNC( + group by + date_trunc( 'hour', ts ), pool_id, collateral_type ), -filt_issuance AS ( - SELECT - CASE - WHEN i.block_number <= d.max_block_number - OR d.max_block_number IS NULL THEN i.ts - ELSE i.ts + INTERVAL '1 hour' - END AS ts, + +filt_issuance as ( + select i.pool_id, i.collateral_type, - i.amount - FROM + i.amount, + case + when + i.block_number <= d.max_block_number + or d.max_block_number is null then i.ts + else i.ts + INTERVAL '1 hour' + end as ts + from {{ ref('fct_pool_issuance_base_sepolia') }} - i - LEFT JOIN max_debt_block d - ON DATE_TRUNC( + as i + left join max_debt_block as d + on date_trunc( 'hour', i.ts ) = d.hour - AND i.pool_id = d.pool_id - AND LOWER( + and i.pool_id = d.pool_id + and lower( i.collateral_type - ) = LOWER( + ) = lower( d.collateral_type ) - WHERE + where i.block_number <= ( - SELECT - MAX( + select + max( max_block_number ) - FROM + from max_debt_block ) ), -issuance AS ( - SELECT - DATE_TRUNC( + +issuance as ( + select + date_trunc( 'hour', ts - ) AS ts, + ) as ts, pool_id, collateral_type, - SUM(amount) AS hourly_issuance - FROM + sum(amount) as hourly_issuance + from filt_issuance - GROUP BY + group by 1, 2, 3 ) -SELECT + +select dim.ts, dim.pool_id, dim.collateral_type, - COALESCE( + coalesce( i.hourly_issuance, 0 - ) AS hourly_issuance -FROM + ) as hourly_issuance +from dim - LEFT JOIN issuance i - ON dim.pool_id = i.pool_id - AND LOWER( - dim.collateral_type - ) = LOWER( - i.collateral_type - ) - AND dim.ts = i.ts +left join issuance as i + on + dim.pool_id = i.pool_id + and lower( + dim.collateral_type + ) = lower( + i.collateral_type + ) + and dim.ts = i.ts diff --git a/transformers/synthetix/models/marts/base/sepolia/core/fct_pool_pnl_hourly_base_sepolia.sql b/transformers/synthetix/models/marts/base/sepolia/core/fct_pool_pnl_hourly_base_sepolia.sql index 4d9599510..2ac1198b5 100644 --- a/transformers/synthetix/models/marts/base/sepolia/core/fct_pool_pnl_hourly_base_sepolia.sql +++ b/transformers/synthetix/models/marts/base/sepolia/core/fct_pool_pnl_hourly_base_sepolia.sql @@ -3,78 +3,91 @@ unique_key = ['ts', 'pool_id', 'collateral_type'], ) }} -WITH dim AS ( - SELECT - generate_series(DATE_TRUNC('hour', MIN(t.ts)), DATE_TRUNC('hour', MAX(t.ts)), '1 hour' :: INTERVAL) AS ts, +with dim as ( + select p.pool_id, - p.collateral_type - FROM + p.collateral_type, + generate_series( + date_trunc('hour', min(t.ts)), + date_trunc('hour', max(t.ts)), + '1 hour'::INTERVAL + ) as ts + from ( - SELECT - ts - FROM + select ts + from {{ ref('fct_pool_debt_base_sepolia') }} - ) AS t - CROSS JOIN ( - SELECT - DISTINCT pool_id, - collateral_type - FROM - {{ ref('fct_pool_debt_base_sepolia') }} - ) AS p -GROUP BY - p.pool_id, - p.collateral_type + ) as t + cross join ( + select distinct + pool_id, + collateral_type + from + {{ ref('fct_pool_debt_base_sepolia') }} + ) as p + group by + p.pool_id, + p.collateral_type ), -issuance AS ( - SELECT + +issuance as ( + select ts, pool_id, collateral_type, hourly_issuance - FROM + from {{ ref('fct_pool_issuance_hourly_base_sepolia') }} ), -debt AS ( - SELECT - DISTINCT DATE_TRUNC( - 'hour', - ts - ) AS ts, + +debt as ( + select distinct pool_id, collateral_type, - LAST_VALUE(debt) over (PARTITION BY DATE_TRUNC('hour', ts), pool_id, collateral_type - ORDER BY - ts rows BETWEEN unbounded preceding - AND unbounded following) AS debt - FROM - {{ ref('fct_pool_debt_base_sepolia') }} -), -collateral AS ( - SELECT - DISTINCT DATE_TRUNC( + date_trunc( 'hour', ts - ) AS ts, + ) as ts, + last_value(debt) over ( + partition by date_trunc('hour', ts), pool_id, collateral_type + order by + ts + rows between unbounded preceding + and unbounded following + ) as debt + from + {{ ref('fct_pool_debt_base_sepolia') }} +), + +collateral as ( + select distinct pool_id, collateral_type, - LAST_VALUE(collateral_value) over (PARTITION BY DATE_TRUNC('hour', ts), pool_id, collateral_type - ORDER BY - ts rows BETWEEN unbounded preceding - AND unbounded following) AS collateral_value - FROM + date_trunc( + 'hour', + ts + ) as ts, + last_value(collateral_value) over ( + partition by date_trunc('hour', ts), pool_id, collateral_type + order by + ts + rows between unbounded preceding + and unbounded following + ) as collateral_value + from {{ ref('core_vault_collateral_base_sepolia') }} - WHERE + where pool_id = 1 ), -ffill AS ( - SELECT + +ffill as ( + select dim.ts, dim.pool_id, dim.collateral_type, coalesce( last(debt) over ( - partition by dim.collateral_type, dim.pool_id + partition by dim.collateral_type, dim.pool_id order by dim.ts rows between unbounded preceding and current row ), @@ -82,96 +95,113 @@ ffill AS ( ) as debt, coalesce( last(collateral_value) over ( - partition by dim.collateral_type, dim.pool_id + partition by dim.collateral_type, dim.pool_id order by dim.ts - rows between unbounded preceding and current row + rows between unbounded preceding and current row ), 0 ) as collateral_value - FROM + from dim - LEFT JOIN debt - ON dim.ts = debt.ts - AND dim.pool_id = debt.pool_id - AND dim.collateral_type = debt.collateral_type - LEFT JOIN collateral - ON dim.ts = collateral.ts - AND dim.pool_id = collateral.pool_id - AND dim.collateral_type = collateral.collateral_type + left join debt + on + dim.ts = debt.ts + and dim.pool_id = debt.pool_id + and dim.collateral_type = debt.collateral_type + left join collateral + on + dim.ts = collateral.ts + and dim.pool_id = collateral.pool_id + and dim.collateral_type = collateral.collateral_type ), -hourly_pnl AS ( - SELECT + +hourly_pnl as ( + select ts, pool_id, collateral_type, collateral_value, debt, - COALESCE(LAG(debt) over (PARTITION BY pool_id, collateral_type - ORDER BY - ts) - debt, 0) AS hourly_pnl - FROM + coalesce(lag(debt) over ( + partition by pool_id, collateral_type + order by + ts + ) - debt, 0) as hourly_pnl + from ffill ), -hourly_rewards AS ( - SELECT + +hourly_rewards as ( + select ts, pool_id, collateral_type, rewards_usd - FROM + from {{ ref('fct_pool_rewards_hourly_base_sepolia') }} ), -hourly_returns AS ( - SELECT + +hourly_returns as ( + select pnl.ts, pnl.pool_id, pnl.collateral_type, pnl.collateral_value, pnl.debt, - COALESCE( + coalesce( iss.hourly_issuance, 0 - ) hourly_issuance, - pnl.hourly_pnl + COALESCE( + ) as hourly_issuance, + pnl.hourly_pnl + coalesce( iss.hourly_issuance, 0 - ) AS hourly_pnl, - COALESCE( + ) as hourly_pnl, + coalesce( rewards.rewards_usd, 0 - ) AS rewards_usd, - CASE - WHEN pnl.collateral_value = 0 THEN 0 - ELSE COALESCE( + ) as rewards_usd, + case + when pnl.collateral_value = 0 then 0 + else coalesce( rewards.rewards_usd, 0 ) / pnl.collateral_value - END AS hourly_rewards_pct, - CASE - WHEN pnl.collateral_value = 0 THEN 0 - ELSE (COALESCE(iss.hourly_issuance, 0) + pnl.hourly_pnl) / pnl.collateral_value - END AS hourly_pnl_pct, - CASE - WHEN pnl.collateral_value = 0 THEN 0 - ELSE (COALESCE(rewards.rewards_usd, 0) + pnl.hourly_pnl + COALESCE(iss.hourly_issuance, 0)) / pnl.collateral_value - END AS hourly_total_pct - FROM - hourly_pnl pnl - LEFT JOIN hourly_rewards rewards - ON pnl.ts = rewards.ts - AND pnl.pool_id = rewards.pool_id - AND pnl.collateral_type = rewards.collateral_type - LEFT JOIN issuance iss - ON pnl.ts = iss.ts - AND pnl.pool_id = iss.pool_id - AND LOWER( - pnl.collateral_type - ) = LOWER( - iss.collateral_type - ) + end as hourly_rewards_pct, + case + when pnl.collateral_value = 0 then 0 + else + (coalesce(iss.hourly_issuance, 0) + pnl.hourly_pnl) + / pnl.collateral_value + end as hourly_pnl_pct, + case + when pnl.collateral_value = 0 then 0 + else + ( + coalesce(rewards.rewards_usd, 0) + + pnl.hourly_pnl + + coalesce(iss.hourly_issuance, 0) + ) + / pnl.collateral_value + end as hourly_total_pct + from + hourly_pnl as pnl + left join hourly_rewards as rewards + on + pnl.ts = rewards.ts + and pnl.pool_id = rewards.pool_id + and pnl.collateral_type = rewards.collateral_type + left join issuance as iss + on + pnl.ts = iss.ts + and pnl.pool_id = iss.pool_id + and lower( + pnl.collateral_type + ) = lower( + iss.collateral_type + ) ) -SELECT +select ts, pool_id, collateral_type, @@ -183,5 +213,5 @@ SELECT hourly_pnl_pct, hourly_rewards_pct, hourly_total_pct -FROM +from hourly_returns diff --git a/transformers/synthetix/models/marts/base/sepolia/core/fct_pool_pnl_hourly_reward_base_sepolia.sql b/transformers/synthetix/models/marts/base/sepolia/core/fct_pool_pnl_hourly_reward_base_sepolia.sql index 4b0564118..f90bddf76 100644 --- a/transformers/synthetix/models/marts/base/sepolia/core/fct_pool_pnl_hourly_reward_base_sepolia.sql +++ b/transformers/synthetix/models/marts/base/sepolia/core/fct_pool_pnl_hourly_reward_base_sepolia.sql @@ -3,79 +3,85 @@ unique_key = ['ts', 'pool_id', 'collateral_type', 'reward_token'], ) }} -WITH dim AS ( +with dim as ( - SELECT - generate_series(DATE_TRUNC('hour', MIN(t.ts)), DATE_TRUNC('hour', MAX(t.ts)), '1 hour' :: INTERVAL) AS ts, + select t.pool_id, t.collateral_type, t.collateral_value, - p.token_symbol AS reward_token - FROM + p.token_symbol as reward_token, + generate_series( + date_trunc('hour', min(t.ts)), + date_trunc('hour', max(t.ts)), + '1 hour'::INTERVAL + ) as ts + from ( - SELECT + select ts, collateral_type, pool_id, collateral_value - FROM + from {{ ref('fct_pool_pnl_hourly_base_sepolia') }} group by ts, collateral_type, pool_id, collateral_value - ) AS t - CROSS JOIN ( - SELECT - DISTINCT token_symbol - FROM - {{ ref('fct_pool_rewards_token_hourly_base_sepolia') }} - ) AS p - GROUP BY + ) as t + cross join ( + select distinct token_symbol + from + {{ ref('fct_pool_rewards_token_hourly_base_sepolia') }} + ) as p + group by t.pool_id, t.collateral_type, t.collateral_value, p.token_symbol ), -reward_hourly_token AS ( - SELECT + +reward_hourly_token as ( + select ts, pool_id, collateral_type, - token_symbol AS reward_token, - SUM( + token_symbol as reward_token, + sum( rewards_usd - ) AS rewards_usd - FROM + ) as rewards_usd + from {{ ref('fct_pool_rewards_token_hourly_base_sepolia') }} - GROUP BY + group by ts, pool_id, collateral_type, token_symbol ) -SELECT + +select dim.ts, dim.pool_id, dim.collateral_type, dim.collateral_value, dim.reward_token, - COALESCE( + coalesce( reward_hourly_token.rewards_usd, 0 - ) AS rewards_usd, - CASE - WHEN dim.collateral_value = 0 THEN 0 - ELSE COALESCE( + ) as rewards_usd, + case + when dim.collateral_value = 0 then 0 + else coalesce( reward_hourly_token.rewards_usd, 0 ) / dim.collateral_value - END AS hourly_rewards_pct -FROM + end as hourly_rewards_pct +from dim - LEFT JOIN reward_hourly_token - ON dim.ts = reward_hourly_token.ts - AND dim.pool_id = reward_hourly_token.pool_id - AND dim.collateral_type = reward_hourly_token.collateral_type - and dim.reward_token = reward_hourly_token.reward_token +left join reward_hourly_token + on + dim.ts = reward_hourly_token.ts + and dim.pool_id = reward_hourly_token.pool_id + and dim.collateral_type = reward_hourly_token.collateral_type + and dim.reward_token = reward_hourly_token.reward_token diff --git a/transformers/synthetix/models/marts/base/sepolia/core/fct_pool_rewards_base_sepolia.sql b/transformers/synthetix/models/marts/base/sepolia/core/fct_pool_rewards_base_sepolia.sql index d526a7217..aff30cec5 100644 --- a/transformers/synthetix/models/marts/base/sepolia/core/fct_pool_rewards_base_sepolia.sql +++ b/transformers/synthetix/models/marts/base/sepolia/core/fct_pool_rewards_base_sepolia.sql @@ -1,25 +1,27 @@ -WITH rewards_distributed AS ( - SELECT - block_timestamp AS ts, +with rewards_distributed as ( + select + block_timestamp as ts, CAST( - pool_id AS INTEGER - ) AS pool_id, + pool_id as INTEGER + ) as pool_id, collateral_type, distributor, - {{ convert_wei('amount') }} AS amount, - TO_TIMESTAMP("start") AS ts_start, + {{ convert_wei('amount') }} as amount, + TO_TIMESTAMP("start") as ts_start, "duration" - FROM + from {{ ref('core_rewards_distributed_base_sepolia') }} ), -distributors AS ( - SELECT - CAST(distributor_address AS TEXT) AS distributor_address, - CAST(token_symbol AS TEXT) AS token_symbol - FROM + +distributors as ( + select + CAST(distributor_address as TEXT) as distributor_address, + CAST(token_symbol as TEXT) as token_symbol + from {{ ref('base_sepolia_reward_distributors') }} ) -SELECT + +select rd.ts, rd.pool_id, rd.collateral_type, @@ -28,8 +30,8 @@ SELECT rd.amount, rd.ts_start, rd.duration -FROM - rewards_distributed rd - join distributors on rd.distributor = distributors.distributor_address -ORDER BY +from + rewards_distributed as rd +inner join distributors on rd.distributor = distributors.distributor_address +order by ts diff --git a/transformers/synthetix/models/marts/base/sepolia/core/fct_pool_rewards_hourly_base_sepolia.sql b/transformers/synthetix/models/marts/base/sepolia/core/fct_pool_rewards_hourly_base_sepolia.sql index 544bf9363..dc265a0fc 100644 --- a/transformers/synthetix/models/marts/base/sepolia/core/fct_pool_rewards_hourly_base_sepolia.sql +++ b/transformers/synthetix/models/marts/base/sepolia/core/fct_pool_rewards_hourly_base_sepolia.sql @@ -1,20 +1,21 @@ -WITH token_hourly AS ( - SELECT +with token_hourly as ( + select ts, pool_id, collateral_type, rewards_usd - FROM + from {{ ref('fct_pool_rewards_token_hourly_base_sepolia') }} ) -SELECT + +select ts, pool_id, collateral_type, - SUM(rewards_usd) AS rewards_usd -FROM + SUM(rewards_usd) as rewards_usd +from token_hourly -GROUP BY +group by ts, pool_id, collateral_type diff --git a/transformers/synthetix/models/marts/base/sepolia/core/fct_pool_rewards_token_hourly_base_sepolia.sql b/transformers/synthetix/models/marts/base/sepolia/core/fct_pool_rewards_token_hourly_base_sepolia.sql index e4ecaecf2..ff583426f 100644 --- a/transformers/synthetix/models/marts/base/sepolia/core/fct_pool_rewards_token_hourly_base_sepolia.sql +++ b/transformers/synthetix/models/marts/base/sepolia/core/fct_pool_rewards_token_hourly_base_sepolia.sql @@ -1,28 +1,32 @@ -WITH dim AS ( - SELECT - generate_series(DATE_TRUNC('hour', MIN(t.ts)), DATE_TRUNC('hour', MAX(t.ts)), '1 hour' :: INTERVAL) AS ts, +with dim as ( + select m.pool_id, - m.collateral_type - FROM + m.collateral_type, + generate_series( + date_trunc('hour', min(t.ts)), + date_trunc('hour', max(t.ts)), + '1 hour'::INTERVAL + ) as ts + from ( - SELECT - ts - FROM - {{ ref('fct_pool_debt_base_sepolia') }} - ) AS t - CROSS JOIN ( - SELECT - DISTINCT pool_id, - collateral_type - FROM + select ts + from {{ ref('fct_pool_debt_base_sepolia') }} - ) AS m - GROUP BY + ) as t + cross join ( + select distinct + pool_id, + collateral_type + from + {{ ref('fct_pool_debt_base_sepolia') }} + ) as m + group by m.pool_id, m.collateral_type ), -rewards_distributed AS ( - SELECT + +rewards_distributed as ( + select ts, pool_id, collateral_type, @@ -31,11 +35,12 @@ rewards_distributed AS ( amount, ts_start, "duration" - FROM + from {{ ref('fct_pool_rewards_base_sepolia') }} ), -hourly_distributions AS ( - SELECT + +hourly_distributions as ( + select dim.ts, dim.pool_id, dim.collateral_type, @@ -44,28 +49,31 @@ hourly_distributions AS ( r.amount, r.ts_start, r."duration", - ROW_NUMBER() over ( - PARTITION BY dim.ts, - dim.pool_id, - dim.collateral_type, - r.distributor - ORDER BY - r.ts_start DESC - ) AS distributor_index - FROM + row_number() over ( + partition by + dim.ts, + dim.pool_id, + dim.collateral_type, + r.distributor + order by + r.ts_start desc + ) as distributor_index + from dim - LEFT JOIN rewards_distributed r - ON dim.pool_id = r.pool_id - AND LOWER( - dim.collateral_type - ) = LOWER( - r.collateral_type - ) - AND dim.ts + '1 hour' :: INTERVAL >= r.ts_start - AND dim.ts < r.ts_start + r."duration" * '1 second' :: INTERVAL + left join rewards_distributed as r + on + dim.pool_id = r.pool_id + and lower( + dim.collateral_type + ) = lower( + r.collateral_type + ) + and dim.ts + '1 hour'::INTERVAL >= r.ts_start + and dim.ts < r.ts_start + r."duration" * '1 second'::INTERVAL ), -hourly_rewards AS ( - SELECT + +hourly_rewards as ( + select d.ts, d.pool_id, d.collateral_type, @@ -75,39 +83,42 @@ hourly_rewards AS ( -- get the hourly amount distributed d.amount / ( d."duration" / 3600 - ) AS hourly_amount, + ) as hourly_amount, -- get the amount of time distributed this hour -- use the smaller of those two intervals -- convert the interval to a number of hours -- multiply the result by the hourly amount to get the amount distributed this hour ( - EXTRACT( + extract( epoch - FROM - LEAST( - d."duration" / 3600 * '1 hour' :: INTERVAL, - d.ts + '1 hour' :: INTERVAL - GREATEST( - d.ts, - d.ts_start - ) + from + least( + d."duration" / 3600 * '1 hour'::INTERVAL, + d.ts + '1 hour'::INTERVAL - greatest( + d.ts, + d.ts_start ) + ) ) / 3600 ) * d.amount / ( d."duration" / 3600 - ) AS amount_distributed - FROM - hourly_distributions AS d - LEFT JOIN {{ ref('fct_prices_hourly_base_sepolia') }} - p - ON d.ts = p.ts - AND d.token_symbol = p.market_symbol - WHERE + ) as amount_distributed + from + hourly_distributions as d + left join + {{ ref('fct_prices_hourly_base_sepolia') }} + as p + on + d.ts = p.ts + and d.token_symbol = p.market_symbol + where d.distributor_index = 1 ) -SELECT + +select *, - amount_distributed * price AS rewards_usd -FROM + amount_distributed * price as rewards_usd +from hourly_rewards -WHERE - amount_distributed IS NOT NULL +where + amount_distributed is not null diff --git a/transformers/synthetix/models/marts/base/sepolia/perp/fct_perp_accounts_base_sepolia.sql b/transformers/synthetix/models/marts/base/sepolia/perp/fct_perp_accounts_base_sepolia.sql index 60c6b62c9..d12ffd920 100644 --- a/transformers/synthetix/models/marts/base/sepolia/perp/fct_perp_accounts_base_sepolia.sql +++ b/transformers/synthetix/models/marts/base/sepolia/perp/fct_perp_accounts_base_sepolia.sql @@ -1,14 +1,14 @@ -WITH base AS ( - SELECT - CAST( - account_id AS VARCHAR - ) AS id, - block_timestamp AS created_ts, - "owner" - FROM - {{ ref('perp_account_created_base_sepolia') }} +with base as ( + select + block_timestamp as created_ts, + "owner", + CAST( + account_id as VARCHAR + ) as id + from + {{ ref('perp_account_created_base_sepolia') }} ) -SELECT - * -FROM - base + +select * +from + base diff --git a/transformers/synthetix/models/marts/base/sepolia/perp/fct_perp_collateral_modified_base_sepolia.sql b/transformers/synthetix/models/marts/base/sepolia/perp/fct_perp_collateral_modified_base_sepolia.sql index 1c05876f1..807167d16 100644 --- a/transformers/synthetix/models/marts/base/sepolia/perp/fct_perp_collateral_modified_base_sepolia.sql +++ b/transformers/synthetix/models/marts/base/sepolia/perp/fct_perp_collateral_modified_base_sepolia.sql @@ -1,4 +1,4 @@ -SELECT +select id, block_timestamp, account_id, @@ -8,6 +8,6 @@ SELECT event_name, synth_market_id, sender, - {{ convert_wei("amount_delta") }} AS amount_delta -FROM + {{ convert_wei("amount_delta") }} as amount_delta +from {{ ref("perp_collateral_modified_base_sepolia") }} diff --git a/transformers/synthetix/models/marts/base/sepolia/perp/fct_perp_interest_charged_base_sepolia.sql b/transformers/synthetix/models/marts/base/sepolia/perp/fct_perp_interest_charged_base_sepolia.sql index adf61ea5e..17557bc22 100644 --- a/transformers/synthetix/models/marts/base/sepolia/perp/fct_perp_interest_charged_base_sepolia.sql +++ b/transformers/synthetix/models/marts/base/sepolia/perp/fct_perp_interest_charged_base_sepolia.sql @@ -1,4 +1,4 @@ -SELECT +select id, block_timestamp, block_number, @@ -6,6 +6,6 @@ SELECT contract, event_name, account_id, - {{ convert_wei("interest") }} AS interest -FROM + {{ convert_wei("interest") }} as interest +from {{ ref("perp_interest_charged_base_sepolia") }} diff --git a/transformers/synthetix/models/marts/base/sepolia/perp/fct_perp_liq_account_base_sepolia.sql b/transformers/synthetix/models/marts/base/sepolia/perp/fct_perp_liq_account_base_sepolia.sql index b36e8f11b..3d81a910e 100644 --- a/transformers/synthetix/models/marts/base/sepolia/perp/fct_perp_liq_account_base_sepolia.sql +++ b/transformers/synthetix/models/marts/base/sepolia/perp/fct_perp_liq_account_base_sepolia.sql @@ -1,54 +1,59 @@ -WITH liquidation_events AS ( - SELECT - account_id, - reward, - block_timestamp, - full_liquidation, - SUM( - CASE - WHEN full_liquidation THEN 1 - ELSE 0 - END - ) over ( - PARTITION BY account_id - ORDER BY - block_timestamp rows BETWEEN unbounded preceding - AND CURRENT ROW - ) AS liquidation_id - FROM - {{ ref('perp_account_liquidation_attempt_base_sepolia') }} +with liquidation_events as ( + select + account_id, + reward, + block_timestamp, + full_liquidation, + SUM( + case + when full_liquidation then 1 + else 0 + end + ) over ( + partition by account_id + order by + block_timestamp + rows between unbounded preceding + and current row + ) as liquidation_id + from + {{ ref('perp_account_liquidation_attempt_base_sepolia') }} ), -cumulative_rewards AS ( - SELECT - CAST( - le.account_id AS text - ) AS account_id, - le.block_timestamp, - le.reward, - le.full_liquidation, - le.liquidation_id, - SUM({{ convert_wei('reward') }}) over ( - PARTITION BY le.account_id, - le.liquidation_id - ORDER BY - le.block_timestamp - ) AS cumulative_reward, - ROW_NUMBER() over ( - PARTITION BY le.account_id, - le.liquidation_id - ORDER BY - le.block_timestamp DESC - ) AS rn - FROM - liquidation_events le - ORDER BY - block_timestamp + +cumulative_rewards as ( + select + le.block_timestamp, + le.reward, + le.full_liquidation, + le.liquidation_id, + CAST( + le.account_id as text + ) as account_id, + SUM({{ convert_wei('reward') }}) over ( + partition by + le.account_id, + le.liquidation_id + order by + le.block_timestamp + ) as cumulative_reward, + ROW_NUMBER() over ( + partition by + le.account_id, + le.liquidation_id + order by + le.block_timestamp desc + ) as rn + from + liquidation_events as le + order by + block_timestamp ) -SELECT - account_id, - block_timestamp AS ts, - cumulative_reward AS total_reward -FROM - cumulative_rewards -WHERE - rn = 1 + +select + account_id, + block_timestamp as ts, + cumulative_reward as total_reward +from + cumulative_rewards +where + rn = 1 diff --git a/transformers/synthetix/models/marts/base/sepolia/perp/fct_perp_liq_position_base_sepolia.sql b/transformers/synthetix/models/marts/base/sepolia/perp/fct_perp_liq_position_base_sepolia.sql index 9c43a20eb..ed491f066 100644 --- a/transformers/synthetix/models/marts/base/sepolia/perp/fct_perp_liq_position_base_sepolia.sql +++ b/transformers/synthetix/models/marts/base/sepolia/perp/fct_perp_liq_position_base_sepolia.sql @@ -1,36 +1,38 @@ -WITH liquidations AS ( - SELECT +with liquidations as ( + select id, - block_timestamp AS ts, + block_timestamp as ts, block_number, transaction_hash, account_id, market_id, - {{ convert_wei('amount_liquidated') }} AS amount_liquidated, - {{ convert_wei('current_position_size') }} AS position_size - FROM + {{ convert_wei('amount_liquidated') }} as amount_liquidated, + {{ convert_wei('current_position_size') }} as position_size + from {{ ref('perp_position_liquidated_base_sepolia') }} ), -markets AS ( - SELECT + +markets as ( + select id, market_symbol - FROM + from {{ ref('fct_perp_markets_base_sepolia') }} ) -SELECT + +select l.id, l.ts, l.block_number, l.transaction_hash, - CAST( - l.account_id AS text - ) AS account_id, l.market_id, m.market_symbol, l.amount_liquidated, - l.position_size -FROM - liquidations l - LEFT JOIN markets m - ON l.market_id = m.id + l.position_size, + CAST( + l.account_id as text + ) as account_id +from + liquidations as l +left join markets as m + on l.market_id = m.id diff --git a/transformers/synthetix/models/marts/base/sepolia/perp/fct_perp_market_history_base_sepolia.sql b/transformers/synthetix/models/marts/base/sepolia/perp/fct_perp_market_history_base_sepolia.sql index c02d70735..75e97b5ad 100644 --- a/transformers/synthetix/models/marts/base/sepolia/perp/fct_perp_market_history_base_sepolia.sql +++ b/transformers/synthetix/models/marts/base/sepolia/perp/fct_perp_market_history_base_sepolia.sql @@ -1,48 +1,52 @@ -WITH base AS ( - SELECT - mu.id, - mu.block_timestamp AS ts, - mu.block_number, - mu.transaction_hash, - m.id AS market_id, - m.market_symbol, - {{ convert_wei('price') }} AS price, - {{ convert_wei('skew') }} AS skew, - {{ convert_wei('size') }} AS SIZE, - {{ convert_wei('size_delta') }} AS size_delta, - {{ convert_wei('current_funding_rate') }} AS funding_rate, - {{ convert_wei('current_funding_velocity') }} AS funding_velocity, - {{ convert_wei('interest_rate') }} AS interest_rate, - {{ convert_wei('current_funding_rate') }} * 365.25 AS funding_rate_apr, - {{ convert_wei('current_funding_rate') }} * 365.25 + {{ convert_wei('interest_rate') }} AS long_rate_apr, - {{ convert_wei('current_funding_rate') }} * -1 * 365.25 + {{ convert_wei('interest_rate') }} AS short_rate_apr - FROM - {{ ref('perp_market_updated_base_sepolia') }} - mu - LEFT JOIN {{ ref('fct_perp_markets_base_sepolia') }} - m - ON mu.market_id = m.id +with base as ( + select + mu.id, + mu.block_timestamp as ts, + mu.block_number, + mu.transaction_hash, + m.id as market_id, + m.market_symbol, + {{ convert_wei('price') }} as price, + {{ convert_wei('skew') }} as skew, + {{ convert_wei('size') }} as size, + {{ convert_wei('size_delta') }} as size_delta, + {{ convert_wei('current_funding_rate') }} as funding_rate, + {{ convert_wei('current_funding_velocity') }} as funding_velocity, + {{ convert_wei('interest_rate') }} as interest_rate, + {{ convert_wei('current_funding_rate') }} * 365.25 as funding_rate_apr, + {{ convert_wei('current_funding_rate') }} * 365.25 + + {{ convert_wei('interest_rate') }} as long_rate_apr, + {{ convert_wei('current_funding_rate') }} * -1 * 365.25 + + {{ convert_wei('interest_rate') }} as short_rate_apr + from + {{ ref('perp_market_updated_base_sepolia') }} + as mu + left join + {{ ref('fct_perp_markets_base_sepolia') }} + as m + on mu.market_id = m.id ) -SELECT - *, - SIZE * price AS size_usd, - ( - SIZE + skew - ) * price / 2 AS long_oi, - ( - SIZE - skew - ) * price / 2 AS short_oi, - CASE - WHEN SIZE * price = 0 THEN NULL - ELSE ((SIZE + skew) * price / 2) / ( - SIZE * price - ) - END AS long_oi_pct, - CASE - WHEN SIZE * price = 0 THEN NULL - ELSE ((SIZE - skew) * price / 2) / ( - SIZE * price - ) - END AS short_oi_pct -FROM - base + +select + *, + size * price as size_usd, + ( + size + skew + ) * price / 2 as long_oi, + ( + size - skew + ) * price / 2 as short_oi, + case + when size * price = 0 then null + else ((size + skew) * price / 2) / ( + size * price + ) + end as long_oi_pct, + case + when size * price = 0 then null + else ((size - skew) * price / 2) / ( + size * price + ) + end as short_oi_pct +from + base diff --git a/transformers/synthetix/models/marts/base/sepolia/perp/fct_perp_markets_base_sepolia.sql b/transformers/synthetix/models/marts/base/sepolia/perp/fct_perp_markets_base_sepolia.sql index 2bd21cc60..a6d8f5f57 100644 --- a/transformers/synthetix/models/marts/base/sepolia/perp/fct_perp_markets_base_sepolia.sql +++ b/transformers/synthetix/models/marts/base/sepolia/perp/fct_perp_markets_base_sepolia.sql @@ -1,14 +1,14 @@ -WITH base AS ( - SELECT - perps_market_id AS id, - block_timestamp AS created_ts, - block_number, - market_symbol, - market_name - FROM - {{ ref('perp_market_created_base_sepolia') }} +with base as ( + select + perps_market_id as id, + block_timestamp as created_ts, + block_number, + market_symbol, + market_name + from + {{ ref('perp_market_created_base_sepolia') }} ) -SELECT - * -FROM - base + +select * +from + base diff --git a/transformers/synthetix/models/marts/base/sepolia/perp/fct_perp_orders_base_sepolia.sql b/transformers/synthetix/models/marts/base/sepolia/perp/fct_perp_orders_base_sepolia.sql index e73a7fdbf..fb8ca9a8f 100644 --- a/transformers/synthetix/models/marts/base/sepolia/perp/fct_perp_orders_base_sepolia.sql +++ b/transformers/synthetix/models/marts/base/sepolia/perp/fct_perp_orders_base_sepolia.sql @@ -1,29 +1,29 @@ -WITH base AS ( - SELECT +with base as ( + select oc.id, - oc.block_timestamp AS ts, + oc.block_timestamp as ts, oc.block_number, oc.transaction_hash, oc.contract, oc.market_id, markets.market_symbol, CAST( - oc.account_id AS text - ) AS account_id, + oc.account_id as text + ) as account_id, oc.order_type, - {{ convert_wei('oc.size_delta') }} AS SIZE, - {{ convert_wei('oc.acceptable_price') }} AS acceptable_price, + {{ convert_wei('oc.size_delta') }} as size, + {{ convert_wei('oc.acceptable_price') }} as acceptable_price, oc.settlement_time, oc.expiration_time, - {{ convert_hex('oc.tracking_code') }} AS tracking_code, + {{ convert_hex('oc.tracking_code') }} as tracking_code, oc.sender - FROM + from {{ ref('perp_order_committed_base_sepolia') }} - oc - LEFT JOIN {{ ref('fct_perp_markets_base_sepolia') }} AS markets - ON oc.market_id = markets.id + as oc + left join {{ ref('fct_perp_markets_base_sepolia') }} as markets + on oc.market_id = markets.id ) -SELECT - * -FROM + +select * +from base diff --git a/transformers/synthetix/models/marts/base/sepolia/perp/fct_perp_pnl_base_sepolia.sql b/transformers/synthetix/models/marts/base/sepolia/perp/fct_perp_pnl_base_sepolia.sql index 198a3ed71..9ced20e38 100644 --- a/transformers/synthetix/models/marts/base/sepolia/perp/fct_perp_pnl_base_sepolia.sql +++ b/transformers/synthetix/models/marts/base/sepolia/perp/fct_perp_pnl_base_sepolia.sql @@ -1,17 +1,18 @@ {# DEPRECATED: deprecate this table in dashboards and remove #} -WITH debt AS ( - SELECT +with debt as ( + select ts, - 2 AS market_id, - debt * -1 AS market_pnl - FROM + 2 as market_id, + debt * -1 as market_pnl + from {{ ref('core_vault_debt_base_sepolia') }} ) -SELECT + +select ts, market_id, market_pnl -FROM +from debt -ORDER BY +order by ts diff --git a/transformers/synthetix/models/marts/base/sepolia/perp/fct_perp_previous_order_expired_base_sepolia.sql b/transformers/synthetix/models/marts/base/sepolia/perp/fct_perp_previous_order_expired_base_sepolia.sql index 6a628d8d7..94fc76d29 100644 --- a/transformers/synthetix/models/marts/base/sepolia/perp/fct_perp_previous_order_expired_base_sepolia.sql +++ b/transformers/synthetix/models/marts/base/sepolia/perp/fct_perp_previous_order_expired_base_sepolia.sql @@ -1,4 +1,4 @@ -SELECT +select id, block_timestamp, block_number, @@ -9,7 +9,7 @@ SELECT account_id, commitment_time, tracking_code, - {{ convert_wei("acceptable_price") }} AS acceptable_price, - {{ convert_wei("size_delta") }} AS size_delta -FROM + {{ convert_wei("acceptable_price") }} as acceptable_price, + {{ convert_wei("size_delta") }} as size_delta +from {{ ref("perp_previous_order_expired_base_sepolia") }} diff --git a/transformers/synthetix/models/marts/base/sepolia/perp/fct_perp_trades_base_sepolia.sql b/transformers/synthetix/models/marts/base/sepolia/perp/fct_perp_trades_base_sepolia.sql index e0f5bf8fd..2ab97bf11 100644 --- a/transformers/synthetix/models/marts/base/sepolia/perp/fct_perp_trades_base_sepolia.sql +++ b/transformers/synthetix/models/marts/base/sepolia/perp/fct_perp_trades_base_sepolia.sql @@ -1,38 +1,39 @@ -WITH base AS ( - SELECT - pos.id, - pos.block_timestamp AS ts, - pos.block_number, - pos.transaction_hash, - pos.contract, - pos.market_id, - markets.market_symbol, - CAST( - pos.account_id AS text - ) AS account_id, - {{ convert_wei('fill_price') }} AS fill_price, - {{ convert_wei('pnl') }} AS pnl, - {{ convert_wei('accrued_funding') }} AS accrued_funding, - {{ convert_wei('size_delta') }} AS trade_size, - {{ convert_wei('new_size') }} AS position_size, - {{ convert_wei('total_fees') }} AS total_fees, - {{ convert_wei('referral_fees') }} AS referral_fees, - {{ convert_wei('collected_fees') }} AS collected_fees, - {{ convert_wei('settlement_reward') }} AS settlement_reward, - {{ convert_hex('tracking_code') }} AS tracking_code, - pos.settler - FROM - {{ ref('perp_order_settled_base_sepolia') }} AS pos - LEFT JOIN {{ ref('fct_perp_markets_base_sepolia') }} AS markets - ON pos.market_id = markets.id +with base as ( + select + pos.id, + pos.block_timestamp as ts, + pos.block_number, + pos.transaction_hash, + pos.contract, + pos.market_id, + markets.market_symbol, + CAST( + pos.account_id as text + ) as account_id, + {{ convert_wei('fill_price') }} as fill_price, + {{ convert_wei('pnl') }} as pnl, + {{ convert_wei('accrued_funding') }} as accrued_funding, + {{ convert_wei('size_delta') }} as trade_size, + {{ convert_wei('new_size') }} as position_size, + {{ convert_wei('total_fees') }} as total_fees, + {{ convert_wei('referral_fees') }} as referral_fees, + {{ convert_wei('collected_fees') }} as collected_fees, + {{ convert_wei('settlement_reward') }} as settlement_reward, + {{ convert_hex('tracking_code') }} as tracking_code, + pos.settler + from + {{ ref('perp_order_settled_base_sepolia') }} as pos + left join {{ ref('fct_perp_markets_base_sepolia') }} as markets + on pos.market_id = markets.id ) -SELECT - *, - ABS( - fill_price * trade_size - ) AS notional_trade_size, - fill_price * position_size AS notional_position_size, - total_fees - referral_fees - collected_fees - settlement_reward AS lp_fees, - total_fees - settlement_reward AS exchange_fees -FROM - base + +select + *, + ABS( + fill_price * trade_size + ) as notional_trade_size, + fill_price * position_size as notional_position_size, + total_fees - referral_fees - collected_fees - settlement_reward as lp_fees, + total_fees - settlement_reward as exchange_fees +from + base diff --git a/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_account_stats_daily_base_sepolia.sql b/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_account_stats_daily_base_sepolia.sql index 645248a82..c8e862b74 100644 --- a/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_account_stats_daily_base_sepolia.sql +++ b/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_account_stats_daily_base_sepolia.sql @@ -1,39 +1,42 @@ -WITH daily AS ( - SELECT - DATE_TRUNC( - 'day', - ts - ) AS ts, - account_id, - SUM(fees) AS fees, - SUM(volume) AS volume, - SUM(amount_liquidated) AS amount_liquidated, - SUM(liquidations) AS liquidations - FROM - {{ ref('fct_perp_account_stats_hourly_base_sepolia') }} - GROUP BY - 1, - 2 +with daily as ( + select + DATE_TRUNC( + 'day', + ts + ) as ts, + account_id, + SUM(fees) as fees, + SUM(volume) as volume, + SUM(amount_liquidated) as amount_liquidated, + SUM(liquidations) as liquidations + from + {{ ref('fct_perp_account_stats_hourly_base_sepolia') }} + group by + 1, + 2 ), -stats AS ( - SELECT - daily.*, - SUM(fees) over ( - PARTITION BY account_id - ORDER BY - ts RANGE BETWEEN unbounded preceding - AND CURRENT ROW - ) AS cumulative_fees, - SUM(volume) over ( - PARTITION BY account_id - ORDER BY - ts RANGE BETWEEN unbounded preceding - AND CURRENT ROW - ) AS cumulative_volume - FROM - daily + +stats as ( + select + daily.*, + SUM(fees) over ( + partition by account_id + order by + ts + range between unbounded preceding + and current row + ) as cumulative_fees, + SUM(volume) over ( + partition by account_id + order by + ts + range between unbounded preceding + and current row + ) as cumulative_volume + from + daily ) -SELECT - * -FROM - stats + +select * +from + stats diff --git a/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_account_stats_hourly_base_sepolia.sql b/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_account_stats_hourly_base_sepolia.sql index f3aea0d01..b557db393 100644 --- a/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_account_stats_hourly_base_sepolia.sql +++ b/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_account_stats_hourly_base_sepolia.sql @@ -1,108 +1,113 @@ -WITH trades AS ( - SELECT - ts, - account_id, - total_fees, - notional_trade_size, - 1 AS trades, - SUM( - total_fees - ) over ( - PARTITION BY account_id - ORDER BY - ts - ) AS cumulative_fees, - SUM( - notional_trade_size - ) over ( - PARTITION BY account_id - ORDER BY - ts - ) AS cumulative_volume - FROM - {{ ref('fct_perp_trades_base_sepolia') }} +with trades as ( + select + ts, + account_id, + total_fees, + notional_trade_size, + 1 as trades, + SUM( + total_fees + ) over ( + partition by account_id + order by + ts + ) as cumulative_fees, + SUM( + notional_trade_size + ) over ( + partition by account_id + order by + ts + ) as cumulative_volume + from + {{ ref('fct_perp_trades_base_sepolia') }} ), -liq AS ( - SELECT - ts, - account_id, - amount_liquidated, - 1 AS liquidations - FROM - {{ ref('fct_perp_liq_position_base_sepolia') }} + +liq as ( + select + ts, + account_id, + amount_liquidated, + 1 as liquidations + from + {{ ref('fct_perp_liq_position_base_sepolia') }} ), -inc_trades AS ( - SELECT - DATE_TRUNC( - 'hour', - ts - ) AS ts, - account_id, - SUM(trades) AS trades, - SUM(total_fees) AS fees, - SUM(notional_trade_size) AS volume, - MAX(cumulative_fees) AS cumulative_fees, - MAX(cumulative_volume) AS cumulative_volume - FROM - trades - GROUP BY - 1, - 2 + +inc_trades as ( + select + DATE_TRUNC( + 'hour', + ts + ) as ts, + account_id, + SUM(trades) as trades, + SUM(total_fees) as fees, + SUM(notional_trade_size) as volume, + MAX(cumulative_fees) as cumulative_fees, + MAX(cumulative_volume) as cumulative_volume + from + trades + group by + 1, + 2 ), -inc_liq AS ( - SELECT - DATE_TRUNC( - 'hour', - ts - ) AS ts, - account_id, - SUM(amount_liquidated) AS amount_liquidated, - SUM(liquidations) AS liquidations - FROM - liq - GROUP BY - 1, - 2 + +inc_liq as ( + select + DATE_TRUNC( + 'hour', + ts + ) as ts, + account_id, + SUM(amount_liquidated) as amount_liquidated, + SUM(liquidations) as liquidations + from + liq + group by + 1, + 2 ), -inc AS ( - SELECT - h.ts, - h.account_id, - COALESCE( - h.trades, - 0 - ) AS trades, - COALESCE( - h.fees, - 0 - ) AS fees, - COALESCE( - h.volume, - 0 - ) AS volume, - COALESCE( - l.amount_liquidated, - 0 - ) AS amount_liquidated, - COALESCE( - l.liquidations, - 0 - ) AS liquidations, - COALESCE( - h.cumulative_fees, - 0 - ) AS cumulative_fees, - COALESCE( - h.cumulative_volume, - 0 - ) AS cumulative_volume - FROM - inc_trades h - LEFT JOIN inc_liq l - ON h.ts = l.ts - AND h.account_id = l.account_id + +inc as ( + select + h.ts, + h.account_id, + COALESCE( + h.trades, + 0 + ) as trades, + COALESCE( + h.fees, + 0 + ) as fees, + COALESCE( + h.volume, + 0 + ) as volume, + COALESCE( + l.amount_liquidated, + 0 + ) as amount_liquidated, + COALESCE( + l.liquidations, + 0 + ) as liquidations, + COALESCE( + h.cumulative_fees, + 0 + ) as cumulative_fees, + COALESCE( + h.cumulative_volume, + 0 + ) as cumulative_volume + from + inc_trades as h + left join inc_liq as l + on + h.ts = l.ts + and h.account_id = l.account_id ) -SELECT - * -FROM - inc + +select * +from + inc diff --git a/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_keeper_stats_daily_base_sepolia.sql b/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_keeper_stats_daily_base_sepolia.sql index d9208cb67..65639ff21 100644 --- a/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_keeper_stats_daily_base_sepolia.sql +++ b/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_keeper_stats_daily_base_sepolia.sql @@ -1,40 +1,43 @@ -WITH hourly AS ( - SELECT - DATE_TRUNC( - 'day', - ts - ) AS ts, - keeper, - settlement_rewards, - amount_settled, - trades - FROM - {{ ref('fct_perp_keeper_stats_hourly_base_sepolia') }} +with hourly as ( + select + keeper, + settlement_rewards, + amount_settled, + trades, + DATE_TRUNC( + 'day', + ts + ) as ts + from + {{ ref('fct_perp_keeper_stats_hourly_base_sepolia') }} ), -total AS ( - SELECT - ts, - SUM(trades) AS trades_total, - SUM(settlement_rewards) AS settlement_reward_total, - SUM(amount_settled) AS amount_settled_total - FROM - hourly - GROUP BY - 1 + +total as ( + select + ts, + SUM(trades) as trades_total, + SUM(settlement_rewards) as settlement_reward_total, + SUM(amount_settled) as amount_settled_total + from + hourly + group by + 1 ) -SELECT - hourly.ts, - keeper, - SUM(trades) AS trades, - SUM(settlement_rewards) AS settlement_rewards, - SUM(amount_settled) AS amount_settled, - SUM(trades) / MAX(trades_total) AS trades_pct, - SUM(settlement_rewards) / MAX(settlement_reward_total) AS settlement_rewards_pct, - SUM(amount_settled) / MAX(amount_settled_total) AS amount_settled_pct -FROM - hourly - JOIN total - ON hourly.ts = total.ts -GROUP BY - 1, - 2 + +select + hourly.ts, + keeper, + SUM(trades) as trades, + SUM(settlement_rewards) as settlement_rewards, + SUM(amount_settled) as amount_settled, + SUM(trades) / MAX(trades_total) as trades_pct, + SUM(settlement_rewards) + / MAX(settlement_reward_total) as settlement_rewards_pct, + SUM(amount_settled) / MAX(amount_settled_total) as amount_settled_pct +from + hourly +inner join total + on hourly.ts = total.ts +group by + 1, + 2 diff --git a/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_keeper_stats_hourly_base_sepolia.sql b/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_keeper_stats_hourly_base_sepolia.sql index e3850949a..5cac59d33 100644 --- a/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_keeper_stats_hourly_base_sepolia.sql +++ b/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_keeper_stats_hourly_base_sepolia.sql @@ -1,40 +1,44 @@ -WITH trades AS ( - SELECT - DATE_TRUNC( - 'hour', - ts - ) AS ts, - settler, - settlement_reward, - notional_trade_size, - 1 AS trades - FROM - {{ ref('fct_perp_trades_base_sepolia') }} +with trades as ( + select + settler, + settlement_reward, + notional_trade_size, + 1 as trades, + DATE_TRUNC( + 'hour', + ts + ) as ts + from + {{ ref('fct_perp_trades_base_sepolia') }} ), -total AS ( - SELECT - ts, - SUM(trades) AS trades_total, - SUM(settlement_reward) AS settlement_reward_total, - SUM(notional_trade_size) AS notional_trade_size_total - FROM - trades - GROUP BY - 1 + +total as ( + select + ts, + SUM(trades) as trades_total, + SUM(settlement_reward) as settlement_reward_total, + SUM(notional_trade_size) as notional_trade_size_total + from + trades + group by + 1 ) -SELECT - trades.ts, - settler AS keeper, - SUM(trades) AS trades, - SUM(settlement_reward) AS settlement_rewards, - SUM(notional_trade_size) AS amount_settled, - SUM(trades) / MAX(trades_total) AS trades_pct, - SUM(settlement_reward) / MAX(settlement_reward_total) AS settlement_rewards_pct, - SUM(notional_trade_size) / MAX(notional_trade_size_total) AS amount_settled_pct -FROM - trades - JOIN total - ON trades.ts = total.ts -GROUP BY - 1, - 2 + +select + trades.ts, + settler as keeper, + SUM(trades) as trades, + SUM(settlement_reward) as settlement_rewards, + SUM(notional_trade_size) as amount_settled, + SUM(trades) / MAX(trades_total) as trades_pct, + SUM(settlement_reward) + / MAX(settlement_reward_total) as settlement_rewards_pct, + SUM(notional_trade_size) + / MAX(notional_trade_size_total) as amount_settled_pct +from + trades +inner join total + on trades.ts = total.ts +group by + 1, + 2 diff --git a/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_market_stats_daily_base_sepolia.sql b/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_market_stats_daily_base_sepolia.sql index 82af5d1c0..04a843e11 100644 --- a/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_market_stats_daily_base_sepolia.sql +++ b/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_market_stats_daily_base_sepolia.sql @@ -1,22 +1,22 @@ -SELECT - DATE_TRUNC( - 'day', - ts - ) AS ts, - market_symbol, - SUM(trades) AS trades, - SUM(exchange_fees) AS exchange_fees, - SUM(referral_fees) AS referral_fees, - SUM(collected_fees) AS collected_fees, - SUM(volume) AS volume, - SUM(amount_liquidated) AS amount_liquidated, - SUM(liquidations) AS liquidations, - MAX(cumulative_exchange_fees) AS cumulative_exchange_fees, - MAX(cumulative_referral_fees) AS cumulative_referral_fees, - MAX(cumulative_collected_fees) AS cumulative_collected_fees, - MAX(cumulative_volume) AS cumulative_volume -FROM - {{ ref('fct_perp_market_stats_hourly_base_sepolia') }} -GROUP BY - 1, - 2 +select + DATE_TRUNC( + 'day', + ts + ) as ts, + market_symbol, + SUM(trades) as trades, + SUM(exchange_fees) as exchange_fees, + SUM(referral_fees) as referral_fees, + SUM(collected_fees) as collected_fees, + SUM(volume) as volume, + SUM(amount_liquidated) as amount_liquidated, + SUM(liquidations) as liquidations, + MAX(cumulative_exchange_fees) as cumulative_exchange_fees, + MAX(cumulative_referral_fees) as cumulative_referral_fees, + MAX(cumulative_collected_fees) as cumulative_collected_fees, + MAX(cumulative_volume) as cumulative_volume +from + {{ ref('fct_perp_market_stats_hourly_base_sepolia') }} +group by + 1, + 2 diff --git a/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_market_stats_hourly_base_sepolia.sql b/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_market_stats_hourly_base_sepolia.sql index bfe014d91..5fe417125 100644 --- a/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_market_stats_hourly_base_sepolia.sql +++ b/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_market_stats_hourly_base_sepolia.sql @@ -1,147 +1,156 @@ -WITH trades AS ( - SELECT - ts, - market_symbol, - exchange_fees, - referral_fees, - collected_fees, - notional_trade_size, - 1 AS trades - FROM - {{ ref('fct_perp_trades_base_sepolia') }} +with trades as ( + select + ts, + market_symbol, + exchange_fees, + referral_fees, + collected_fees, + notional_trade_size, + 1 as trades + from + {{ ref('fct_perp_trades_base_sepolia') }} ), -liq AS ( - SELECT - ts, - market_symbol, - amount_liquidated, - 1 AS liquidations - FROM - {{ ref('fct_perp_liq_position_base_sepolia') }} + +liq as ( + select + ts, + market_symbol, + amount_liquidated, + 1 as liquidations + from + {{ ref('fct_perp_liq_position_base_sepolia') }} ), -inc_trades AS ( - SELECT - DATE_TRUNC( - 'hour', - ts - ) AS ts, - market_symbol, - SUM(trades) AS trades, - SUM(exchange_fees) AS exchange_fees, - SUM(referral_fees) AS referral_fees, - SUM(collected_fees) AS collected_fees, - SUM(notional_trade_size) AS volume - FROM - trades - GROUP BY - 1, - 2 + +inc_trades as ( + select + DATE_TRUNC( + 'hour', + ts + ) as ts, + market_symbol, + SUM(trades) as trades, + SUM(exchange_fees) as exchange_fees, + SUM(referral_fees) as referral_fees, + SUM(collected_fees) as collected_fees, + SUM(notional_trade_size) as volume + from + trades + group by + 1, + 2 ), -inc_liq AS ( - SELECT - DATE_TRUNC( - 'hour', - ts - ) AS ts, - market_symbol, - SUM(amount_liquidated) AS amount_liquidated, - SUM(liquidations) AS liquidations - FROM - liq - GROUP BY - 1, - 2 + +inc_liq as ( + select + DATE_TRUNC( + 'hour', + ts + ) as ts, + market_symbol, + SUM(amount_liquidated) as amount_liquidated, + SUM(liquidations) as liquidations + from + liq + group by + 1, + 2 ), -dim AS ( - SELECT - generate_series(DATE_TRUNC('hour', MIN(t.ts)), DATE_TRUNC('hour', MAX(t.ts)), '1 hour' :: INTERVAL) AS ts, - m.market_symbol - FROM - ( - SELECT - ts - FROM - trades - ) AS t - CROSS JOIN ( - SELECT - DISTINCT market_symbol - FROM - trades - ) AS m - GROUP BY - m.market_symbol + +dim as ( + select + m.market_symbol, + GENERATE_SERIES( + DATE_TRUNC('hour', MIN(t.ts)), + DATE_TRUNC('hour', MAX(t.ts)), + '1 hour'::INTERVAL + ) as ts + from + ( + select ts + from + trades + ) as t + cross join ( + select distinct market_symbol + from + trades + ) as m + group by + m.market_symbol ), -inc AS ( - SELECT - dim.ts, - dim.market_symbol, - COALESCE( - h.trades, - 0 - ) AS trades, - COALESCE( - h.exchange_fees, - 0 - ) AS exchange_fees, - COALESCE( - h.referral_fees, - 0 - ) AS referral_fees, - COALESCE( - h.collected_fees, - 0 - ) AS collected_fees, - COALESCE( - h.volume, - 0 - ) AS volume, - COALESCE( - l.amount_liquidated, - 0 - ) AS amount_liquidated, - COALESCE( - l.liquidations, - 0 - ) AS liquidations, - SUM( - h.exchange_fees - ) over ( - PARTITION BY dim.market_symbol - ORDER BY - dim.ts - ) AS cumulative_exchange_fees, - SUM( - h.referral_fees - ) over ( - PARTITION BY dim.market_symbol - ORDER BY - dim.ts - ) AS cumulative_referral_fees, - SUM( - h.collected_fees - ) over ( - PARTITION BY dim.market_symbol - ORDER BY - dim.ts - ) AS cumulative_collected_fees, - SUM( - h.volume - ) over ( - PARTITION BY dim.market_symbol - ORDER BY - dim.ts - ) AS cumulative_volume - FROM - dim - LEFT JOIN inc_trades h - ON dim.ts = h.ts - AND dim.market_symbol = h.market_symbol - LEFT JOIN inc_liq l - ON dim.ts = l.ts - AND dim.market_symbol = l.market_symbol + +inc as ( + select + dim.ts, + dim.market_symbol, + COALESCE( + h.trades, + 0 + ) as trades, + COALESCE( + h.exchange_fees, + 0 + ) as exchange_fees, + COALESCE( + h.referral_fees, + 0 + ) as referral_fees, + COALESCE( + h.collected_fees, + 0 + ) as collected_fees, + COALESCE( + h.volume, + 0 + ) as volume, + COALESCE( + l.amount_liquidated, + 0 + ) as amount_liquidated, + COALESCE( + l.liquidations, + 0 + ) as liquidations, + SUM( + h.exchange_fees + ) over ( + partition by dim.market_symbol + order by + dim.ts + ) as cumulative_exchange_fees, + SUM( + h.referral_fees + ) over ( + partition by dim.market_symbol + order by + dim.ts + ) as cumulative_referral_fees, + SUM( + h.collected_fees + ) over ( + partition by dim.market_symbol + order by + dim.ts + ) as cumulative_collected_fees, + SUM( + h.volume + ) over ( + partition by dim.market_symbol + order by + dim.ts + ) as cumulative_volume + from + dim + left join inc_trades as h + on + dim.ts = h.ts + and dim.market_symbol = h.market_symbol + left join inc_liq as l + on + dim.ts = l.ts + and dim.market_symbol = l.market_symbol ) -SELECT - * -FROM - inc + +select * +from + inc diff --git a/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_stats_daily_base_sepolia.sql b/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_stats_daily_base_sepolia.sql index 72c72c4de..53bba3463 100644 --- a/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_stats_daily_base_sepolia.sql +++ b/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_stats_daily_base_sepolia.sql @@ -1,20 +1,20 @@ -SELECT - DATE_TRUNC( - 'day', - ts - ) AS ts, - SUM(trades) AS trades, - SUM(exchange_fees) AS exchange_fees, - SUM(referral_fees) AS referral_fees, - SUM(collected_fees) AS collected_fees, - SUM(volume) AS volume, - SUM(liquidation_rewards) AS liquidation_rewards, - SUM(liquidated_accounts) AS liquidated_accounts, - MAX(cumulative_exchange_fees) AS cumulative_exchange_fees, - MAX(cumulative_referral_fees) AS cumulative_referral_fees, - MAX(cumulative_collected_fees) AS cumulative_collected_fees, - MAX(cumulative_volume) AS cumulative_volume -FROM - {{ ref('fct_perp_stats_hourly_base_sepolia') }} -GROUP BY - 1 +select + DATE_TRUNC( + 'day', + ts + ) as ts, + SUM(trades) as trades, + SUM(exchange_fees) as exchange_fees, + SUM(referral_fees) as referral_fees, + SUM(collected_fees) as collected_fees, + SUM(volume) as volume, + SUM(liquidation_rewards) as liquidation_rewards, + SUM(liquidated_accounts) as liquidated_accounts, + MAX(cumulative_exchange_fees) as cumulative_exchange_fees, + MAX(cumulative_referral_fees) as cumulative_referral_fees, + MAX(cumulative_collected_fees) as cumulative_collected_fees, + MAX(cumulative_volume) as cumulative_volume +from + {{ ref('fct_perp_stats_hourly_base_sepolia') }} +group by + 1 diff --git a/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_stats_hourly_base_sepolia.sql b/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_stats_hourly_base_sepolia.sql index ce1f90748..08823ab36 100644 --- a/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_stats_hourly_base_sepolia.sql +++ b/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_stats_hourly_base_sepolia.sql @@ -1,84 +1,88 @@ -WITH inc_market AS ( - SELECT - ts, - market_symbol, - trades, - exchange_fees, - referral_fees, - collected_fees, - volume, - liquidations, - cumulative_exchange_fees, - cumulative_referral_fees, - cumulative_collected_fees, - cumulative_volume - FROM - {{ ref('fct_perp_market_stats_hourly_base_sepolia') }} +with inc_market as ( + select + ts, + market_symbol, + trades, + exchange_fees, + referral_fees, + collected_fees, + volume, + liquidations, + cumulative_exchange_fees, + cumulative_referral_fees, + cumulative_collected_fees, + cumulative_volume + from + {{ ref('fct_perp_market_stats_hourly_base_sepolia') }} ), -liq AS ( - SELECT - ts, - total_reward, - 1 AS liquidated_accounts - FROM - {{ ref('fct_perp_liq_account_base_sepolia') }} + +liq as ( + select + ts, + total_reward, + 1 as liquidated_accounts + from + {{ ref('fct_perp_liq_account_base_sepolia') }} ), -inc_liq AS ( - SELECT - DATE_TRUNC( - 'hour', - ts - ) AS ts, - SUM(total_reward) AS liquidation_rewards, - SUM(liquidated_accounts) AS liquidated_accounts - FROM - liq - GROUP BY - 1 + +inc_liq as ( + select + DATE_TRUNC( + 'hour', + ts + ) as ts, + SUM(total_reward) as liquidation_rewards, + SUM(liquidated_accounts) as liquidated_accounts + from + liq + group by + 1 ), -inc_trade AS ( - SELECT - ts, - SUM(trades) AS trades, - SUM(exchange_fees) AS exchange_fees, - SUM(referral_fees) AS referral_fees, - SUM(collected_fees) AS collected_fees, - SUM(volume) AS volume, - SUM(cumulative_exchange_fees) AS cumulative_exchange_fees, - SUM(cumulative_referral_fees) AS cumulative_referral_fees, - SUM(cumulative_collected_fees) AS cumulative_collected_fees, - SUM(cumulative_volume) AS cumulative_volume - FROM - inc_market - GROUP BY - 1 + +inc_trade as ( + select + ts, + SUM(trades) as trades, + SUM(exchange_fees) as exchange_fees, + SUM(referral_fees) as referral_fees, + SUM(collected_fees) as collected_fees, + SUM(volume) as volume, + SUM(cumulative_exchange_fees) as cumulative_exchange_fees, + SUM(cumulative_referral_fees) as cumulative_referral_fees, + SUM(cumulative_collected_fees) as cumulative_collected_fees, + SUM(cumulative_volume) as cumulative_volume + from + inc_market + group by + 1 ), -inc AS ( - SELECT - h.ts, - h.trades, - h.exchange_fees, - h.referral_fees, - h.collected_fees, - h.volume, - COALESCE( - l.liquidation_rewards, - 0 - ) AS liquidation_rewards, - COALESCE( - l.liquidated_accounts, - 0 - ) AS liquidated_accounts, - h.cumulative_exchange_fees, - h.cumulative_referral_fees, - h.cumulative_collected_fees, - h.cumulative_volume - FROM - inc_trade h - LEFT JOIN inc_liq l - ON h.ts = l.ts + +inc as ( + select + h.ts, + h.trades, + h.exchange_fees, + h.referral_fees, + h.collected_fees, + h.volume, + h.cumulative_exchange_fees, + h.cumulative_referral_fees, + h.cumulative_collected_fees, + h.cumulative_volume, + COALESCE( + l.liquidation_rewards, + 0 + ) as liquidation_rewards, + COALESCE( + l.liquidated_accounts, + 0 + ) as liquidated_accounts + from + inc_trade as h + left join inc_liq as l + on h.ts = l.ts ) -SELECT - * -FROM - inc + +select * +from + inc diff --git a/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_tracking_stats_daily_base_sepolia.sql b/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_tracking_stats_daily_base_sepolia.sql index 3339d684a..faa3a30fd 100644 --- a/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_tracking_stats_daily_base_sepolia.sql +++ b/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_tracking_stats_daily_base_sepolia.sql @@ -1,83 +1,87 @@ -WITH trades AS ( - SELECT - DATE_TRUNC( - 'day', - ts - ) AS ts, - tracking_code, - SUM(exchange_fees) AS exchange_fees, - SUM(referral_fees) AS referral_fees, - SUM(collected_fees) AS collected_fees, - SUM(volume) AS volume, - SUM(trades) AS trades - FROM - {{ ref('fct_perp_tracking_stats_hourly_base_sepolia') }} - GROUP BY - 1, - 2 +with trades as ( + select + DATE_TRUNC( + 'day', + ts + ) as ts, + tracking_code, + SUM(exchange_fees) as exchange_fees, + SUM(referral_fees) as referral_fees, + SUM(collected_fees) as collected_fees, + SUM(volume) as volume, + SUM(trades) as trades + from + {{ ref('fct_perp_tracking_stats_hourly_base_sepolia') }} + group by + 1, + 2 ), -accounts AS ( - SELECT - DATE_TRUNC( - 'day', - ts - ) AS ts, - tracking_code, - COUNT( - DISTINCT account_id - ) AS accounts - FROM - {{ ref('fct_perp_trades_base_sepolia') }} - GROUP BY - 1, - 2 + +accounts as ( + select + DATE_TRUNC( + 'day', + ts + ) as ts, + tracking_code, + COUNT( + distinct account_id + ) as accounts + from + {{ ref('fct_perp_trades_base_sepolia') }} + group by + 1, + 2 ), -total AS ( - SELECT - ts, - SUM(exchange_fees) AS exchange_fees_total, - SUM(referral_fees) AS referral_fees_total, - SUM(collected_fees) AS collected_fees_total, - SUM(volume) AS volume_total, - SUM(trades) AS trades_total - FROM - trades - GROUP BY - 1 + +total as ( + select + ts, + SUM(exchange_fees) as exchange_fees_total, + SUM(referral_fees) as referral_fees_total, + SUM(collected_fees) as collected_fees_total, + SUM(volume) as volume_total, + SUM(trades) as trades_total + from + trades + group by + 1 ) -SELECT - trades.ts, - trades.tracking_code, - trades.exchange_fees, - trades.referral_fees, - trades.collected_fees, - trades.volume, - trades.trades, - accounts.accounts, - CASE - WHEN total.exchange_fees_total = 0 THEN 0 - ELSE trades.exchange_fees / total.exchange_fees_total - END AS exchange_fees_share, - CASE - WHEN total.referral_fees_total = 0 THEN 0 - ELSE trades.referral_fees / total.referral_fees_total - END AS referral_fees_share, - CASE - WHEN total.collected_fees_total = 0 THEN 0 - ELSE trades.collected_fees / total.collected_fees_total - END AS collected_fees_share, - CASE - WHEN total.volume_total = 0 THEN 0 - ELSE trades.volume / total.volume_total - END AS volume_share, - CASE - WHEN total.trades_total = 0 THEN 0 - ELSE trades.trades / total.trades_total - END AS trades_share -FROM - trades - JOIN accounts - ON trades.ts = accounts.ts - AND trades.tracking_code = accounts.tracking_code - JOIN total - ON trades.ts = total.ts + +select + trades.ts, + trades.tracking_code, + trades.exchange_fees, + trades.referral_fees, + trades.collected_fees, + trades.volume, + trades.trades, + accounts.accounts, + case + when total.exchange_fees_total = 0 then 0 + else trades.exchange_fees / total.exchange_fees_total + end as exchange_fees_share, + case + when total.referral_fees_total = 0 then 0 + else trades.referral_fees / total.referral_fees_total + end as referral_fees_share, + case + when total.collected_fees_total = 0 then 0 + else trades.collected_fees / total.collected_fees_total + end as collected_fees_share, + case + when total.volume_total = 0 then 0 + else trades.volume / total.volume_total + end as volume_share, + case + when total.trades_total = 0 then 0 + else trades.trades / total.trades_total + end as trades_share +from + trades +inner join accounts + on + trades.ts = accounts.ts + and trades.tracking_code = accounts.tracking_code +inner join total + on trades.ts = total.ts diff --git a/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_tracking_stats_hourly_base_sepolia.sql b/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_tracking_stats_hourly_base_sepolia.sql index 482633cbc..66cf14472 100644 --- a/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_tracking_stats_hourly_base_sepolia.sql +++ b/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_tracking_stats_hourly_base_sepolia.sql @@ -1,83 +1,87 @@ -WITH trades AS ( - SELECT - DATE_TRUNC( - 'hour', - ts - ) AS ts, - tracking_code, - SUM(exchange_fees) AS exchange_fees, - SUM(referral_fees) AS referral_fees, - SUM(collected_fees) AS collected_fees, - SUM(notional_trade_size) AS volume, - SUM(1) AS trades - FROM - {{ ref('fct_perp_trades_base_sepolia') }} - GROUP BY - 1, - 2 +with trades as ( + select + DATE_TRUNC( + 'hour', + ts + ) as ts, + tracking_code, + SUM(exchange_fees) as exchange_fees, + SUM(referral_fees) as referral_fees, + SUM(collected_fees) as collected_fees, + SUM(notional_trade_size) as volume, + SUM(1) as trades + from + {{ ref('fct_perp_trades_base_sepolia') }} + group by + 1, + 2 ), -accounts AS ( - SELECT - DATE_TRUNC( - 'hour', - ts - ) AS ts, - tracking_code, - COUNT( - DISTINCT account_id - ) AS accounts - FROM - {{ ref('fct_perp_trades_base_sepolia') }} - GROUP BY - 1, - 2 + +accounts as ( + select + DATE_TRUNC( + 'hour', + ts + ) as ts, + tracking_code, + COUNT( + distinct account_id + ) as accounts + from + {{ ref('fct_perp_trades_base_sepolia') }} + group by + 1, + 2 ), -total AS ( - SELECT - ts, - SUM(trades) AS trades_total, - SUM(exchange_fees) AS exchange_fees_total, - SUM(referral_fees) AS referral_fees_total, - SUM(collected_fees) AS collected_fees_total, - SUM(volume) AS volume_total - FROM - trades - GROUP BY - 1 + +total as ( + select + ts, + SUM(trades) as trades_total, + SUM(exchange_fees) as exchange_fees_total, + SUM(referral_fees) as referral_fees_total, + SUM(collected_fees) as collected_fees_total, + SUM(volume) as volume_total + from + trades + group by + 1 ) -SELECT - trades.ts, - trades.tracking_code, - trades.exchange_fees, - trades.referral_fees, - trades.collected_fees, - trades.volume, - trades.trades, - accounts.accounts, - CASE - WHEN total.exchange_fees_total = 0 THEN 0 - ELSE trades.exchange_fees / total.exchange_fees_total - END AS exchange_fees_share, - CASE - WHEN total.referral_fees_total = 0 THEN 0 - ELSE trades.referral_fees / total.referral_fees_total - END AS referral_fees_share, - CASE - WHEN total.collected_fees_total = 0 THEN 0 - ELSE trades.collected_fees / total.collected_fees_total - END AS collected_fees_share, - CASE - WHEN total.volume_total = 0 THEN 0 - ELSE trades.volume / total.volume_total - END AS volume_share, - CASE - WHEN total.trades_total = 0 THEN 0 - ELSE trades.trades / total.trades_total - END AS trades_share -FROM - trades - JOIN accounts - ON trades.ts = accounts.ts - AND trades.tracking_code = accounts.tracking_code - JOIN total - ON trades.ts = total.ts + +select + trades.ts, + trades.tracking_code, + trades.exchange_fees, + trades.referral_fees, + trades.collected_fees, + trades.volume, + trades.trades, + accounts.accounts, + case + when total.exchange_fees_total = 0 then 0 + else trades.exchange_fees / total.exchange_fees_total + end as exchange_fees_share, + case + when total.referral_fees_total = 0 then 0 + else trades.referral_fees / total.referral_fees_total + end as referral_fees_share, + case + when total.collected_fees_total = 0 then 0 + else trades.collected_fees / total.collected_fees_total + end as collected_fees_share, + case + when total.volume_total = 0 then 0 + else trades.volume / total.volume_total + end as volume_share, + case + when total.trades_total = 0 then 0 + else trades.trades / total.trades_total + end as trades_share +from + trades +inner join accounts + on + trades.ts = accounts.ts + and trades.tracking_code = accounts.tracking_code +inner join total + on trades.ts = total.ts diff --git a/transformers/synthetix/models/marts/base/sepolia/prices/fct_prices_base_sepolia.sql b/transformers/synthetix/models/marts/base/sepolia/prices/fct_prices_base_sepolia.sql index d53e04192..b9906beea 100644 --- a/transformers/synthetix/models/marts/base/sepolia/prices/fct_prices_base_sepolia.sql +++ b/transformers/synthetix/models/marts/base/sepolia/prices/fct_prices_base_sepolia.sql @@ -1,51 +1,53 @@ -WITH all_prices AS ( - SELECT +with all_prices as ( + select ts, - NULL AS market_address, + null as market_address, market_symbol, price - FROM + from {{ ref('fct_perp_market_history_base_sepolia') }} - UNION ALL - SELECT + union all + select ts, - NULL AS market_address, - 'SNX' AS market_symbol, - snx_price AS price - FROM + null as market_address, + 'SNX' as market_symbol, + snx_price as price + from {{ ref('fct_buyback_base_sepolia') }} - WHERE + where snx_price > 0 - UNION ALL - SELECT + union all + select ts, - collateral_type AS market_address, - NULL AS market_symbol, - collateral_value / amount AS price - FROM + collateral_type as market_address, + null as market_symbol, + collateral_value / amount as price + from {{ ref('core_vault_collateral_base_sepolia') }} - WHERE + where collateral_value > 0 ), -tokens AS ( - SELECT + +tokens as ( + select token_address, token_symbol - FROM + from {{ ref('base_sepolia_tokens') }} ) -SELECT + +select p.ts, p.market_address, + p.price, COALESCE( t.token_symbol, p.market_symbol - ) AS market_symbol, - p.price -FROM - all_prices p - LEFT JOIN tokens t - ON LOWER( + ) as market_symbol +from + all_prices as p +left join tokens as t + on LOWER( p.market_address ) = LOWER( t.token_address diff --git a/transformers/synthetix/models/marts/base/sepolia/prices/fct_prices_hourly_base_sepolia.sql b/transformers/synthetix/models/marts/base/sepolia/prices/fct_prices_hourly_base_sepolia.sql index ebff16845..1e2971060 100644 --- a/transformers/synthetix/models/marts/base/sepolia/prices/fct_prices_hourly_base_sepolia.sql +++ b/transformers/synthetix/models/marts/base/sepolia/prices/fct_prices_hourly_base_sepolia.sql @@ -1,63 +1,72 @@ -WITH prices AS ( - SELECT - DISTINCT DATE_TRUNC( +with prices as ( + select distinct + market_symbol, + DATE_TRUNC( 'hour', ts - ) AS ts, - market_symbol, - LAST_VALUE(price) over (PARTITION BY DATE_TRUNC('hour', ts), market_symbol - ORDER BY - ts rows BETWEEN unbounded preceding - AND unbounded following) AS price - FROM + ) as ts, + LAST_VALUE(price) over ( + partition by DATE_TRUNC('hour', ts), market_symbol + order by + ts + rows between unbounded preceding + and unbounded following + ) as price + from {{ ref('fct_prices_base_sepolia') }} ), -dim AS ( - SELECT - generate_series(DATE_TRUNC('hour', MIN(t.ts)), DATE_TRUNC('hour', MAX(t.ts)), '1 hour' :: INTERVAL) AS ts, - m.market_symbol - FROM + +dim as ( + select + m.market_symbol, + GENERATE_SERIES( + DATE_TRUNC('hour', MIN(t.ts)), + DATE_TRUNC('hour', MAX(t.ts)), + '1 hour'::INTERVAL + ) as ts + from ( - SELECT - ts - FROM - prices - ) AS t - CROSS JOIN ( - SELECT - DISTINCT market_symbol - FROM + select ts + from prices - ) AS m - GROUP BY + ) as t + cross join ( + select distinct market_symbol + from + prices + ) as m + group by m.market_symbol ), -ffill AS ( - SELECT + +ffill as ( + select dim.ts, dim.market_symbol, - last(prices.price) over ( - partition by dim.market_symbol - order by dim.ts + LAST(prices.price) over ( + partition by dim.market_symbol + order by dim.ts rows between unbounded preceding and current row ) as price - FROM + from dim - LEFT JOIN prices - ON dim.ts = prices.ts - AND dim.market_symbol = prices.market_symbol + left join prices + on + dim.ts = prices.ts + and dim.market_symbol = prices.market_symbol ), -hourly_prices AS ( - SELECT + +hourly_prices as ( + select ts, market_symbol, price - FROM + from ffill ) -SELECT - * -FROM + +select * +from hourly_prices -WHERE - price IS NOT NULL +where + price is not null diff --git a/transformers/synthetix/models/marts/base/sepolia/spot/fct_spot_atomics_base_sepolia.sql b/transformers/synthetix/models/marts/base/sepolia/spot/fct_spot_atomics_base_sepolia.sql index eab6827d0..699a6450e 100644 --- a/transformers/synthetix/models/marts/base/sepolia/spot/fct_spot_atomics_base_sepolia.sql +++ b/transformers/synthetix/models/marts/base/sepolia/spot/fct_spot_atomics_base_sepolia.sql @@ -1,51 +1,53 @@ -WITH bought AS ( - SELECT +with bought as ( + select + id, + block_timestamp as ts, + block_number, + transaction_hash as tx_hash, + synth_market_id, + {{ convert_wei('price') }} as price, + {{ convert_wei('synth_returned') }} as amount, + referrer + from + {{ ref('spot_synth_bought_base_sepolia') }} +), + +sold as ( + select + id, + block_timestamp as ts, + block_number, + transaction_hash as tx_hash, + synth_market_id, + {{ convert_wei('price') }} as price, + -1 * {{ convert_wei('amount_returned') }} as amount, + referrer + from + {{ ref('spot_synth_sold_base_sepolia') }} +) + +select id, - block_timestamp AS ts, + ts, block_number, - transaction_hash AS tx_hash, + tx_hash, synth_market_id, - {{ convert_wei('price') }} AS price, - {{ convert_wei('synth_returned') }} AS amount, + price, + amount, referrer - FROM - {{ ref('spot_synth_bought_base_sepolia') }} -), -sold AS ( - SELECT +from + bought +union all +select id, - block_timestamp AS ts, + ts, block_number, - transaction_hash AS tx_hash, + tx_hash, synth_market_id, - {{ convert_wei('price') }} AS price, - -1 * {{ convert_wei('amount_returned') }} AS amount, + price, + amount, referrer - FROM - {{ ref('spot_synth_sold_base_sepolia') }} -) -SELECT - id, - ts, - block_number, - tx_hash, - synth_market_id, - price, - amount, - referrer -FROM - bought -UNION ALL -SELECT - id, - ts, - block_number, - tx_hash, - synth_market_id, - price, - amount, - referrer -FROM - sold -ORDER BY - ts +from + sold +order by + ts diff --git a/transformers/synthetix/models/marts/base/sepolia/spot/fct_spot_markets_base_sepolia.sql b/transformers/synthetix/models/marts/base/sepolia/spot/fct_spot_markets_base_sepolia.sql index dd2896b08..30baec15d 100644 --- a/transformers/synthetix/models/marts/base/sepolia/spot/fct_spot_markets_base_sepolia.sql +++ b/transformers/synthetix/models/marts/base/sepolia/spot/fct_spot_markets_base_sepolia.sql @@ -1,13 +1,13 @@ -WITH base AS ( - SELECT - synth_market_id AS id, - block_timestamp AS created_ts, - block_number, - synth_token_address AS token_address - FROM - {{ ref('spot_synth_registered_base_sepolia') }} +with base as ( + select + synth_market_id as id, + block_timestamp as created_ts, + block_number, + synth_token_address as token_address + from + {{ ref('spot_synth_registered_base_sepolia') }} ) -SELECT - * -FROM - base + +select * +from + base diff --git a/transformers/synthetix/models/marts/base/sepolia/spot/fct_spot_wrapper_base_sepolia.sql b/transformers/synthetix/models/marts/base/sepolia/spot/fct_spot_wrapper_base_sepolia.sql index ccb13fbed..63117e07d 100644 --- a/transformers/synthetix/models/marts/base/sepolia/spot/fct_spot_wrapper_base_sepolia.sql +++ b/transformers/synthetix/models/marts/base/sepolia/spot/fct_spot_wrapper_base_sepolia.sql @@ -1,43 +1,45 @@ -WITH wraps AS ( - SELECT +with wraps as ( + select + id, + block_timestamp as ts, + block_number, + transaction_hash as tx_hash, + synth_market_id, + {{ convert_wei('amount_wrapped') }} as amount_wrapped + from + {{ ref('spot_synth_wrapped_base_sepolia') }} +), + +unwraps as ( + select + id, + block_timestamp as ts, + block_number, + transaction_hash as tx_hash, + synth_market_id, + -1 * {{ convert_wei('amount_unwrapped') }} as amount_wrapped + from + {{ ref('spot_synth_unwrapped_base_sepolia') }} +) + +select id, - block_timestamp AS ts, + ts, block_number, - transaction_hash AS tx_hash, + tx_hash, synth_market_id, - {{ convert_wei('amount_wrapped') }} AS amount_wrapped - FROM - {{ ref('spot_synth_wrapped_base_sepolia') }} -), -unwraps AS ( - SELECT + amount_wrapped +from + wraps +union all +select id, - block_timestamp AS ts, + ts, block_number, - transaction_hash AS tx_hash, + tx_hash, synth_market_id, - -1 * {{ convert_wei('amount_unwrapped') }} AS amount_wrapped - FROM - {{ ref('spot_synth_unwrapped_base_sepolia') }} -) -SELECT - id, - ts, - block_number, - tx_hash, - synth_market_id, - amount_wrapped -FROM - wraps -UNION ALL -SELECT - id, - ts, - block_number, - tx_hash, - synth_market_id, - amount_wrapped -FROM - unwraps -ORDER BY - ts + amount_wrapped +from + unwraps +order by + ts diff --git a/transformers/synthetix/models/marts/base/sepolia/spot/fct_synth_supply_base_sepolia.sql b/transformers/synthetix/models/marts/base/sepolia/spot/fct_synth_supply_base_sepolia.sql index 567173439..1d14be596 100644 --- a/transformers/synthetix/models/marts/base/sepolia/spot/fct_synth_supply_base_sepolia.sql +++ b/transformers/synthetix/models/marts/base/sepolia/spot/fct_synth_supply_base_sepolia.sql @@ -1,71 +1,72 @@ -WITH wrapper AS ( - SELECT +with wrapper as ( + select ts, block_number, synth_market_id, - amount_wrapped AS change_amount - FROM + amount_wrapped as change_amount + from {{ ref('fct_spot_wrapper_base_sepolia') }} ), -atomics AS ( - SELECT + +atomics as ( + select ts, block_number, synth_market_id, - amount AS change_amount - FROM + amount as change_amount + from {{ ref('fct_spot_atomics_base_sepolia') }} - UNION ALL - SELECT + union all + select ts, block_number, - 0 AS synth_market_id, - amount * price * -1 AS change_amount - FROM + 0 as synth_market_id, + amount * price * -1 as change_amount + from {{ ref('fct_spot_atomics_base_sepolia') }} ), -usd_changes AS ( - SELECT - block_timestamp AS ts, + +usd_changes as ( + select + block_timestamp as ts, block_number, - 0 AS synth_market_id, - {{ convert_wei("amount") }} AS change_amount - FROM + 0 as synth_market_id, + {{ convert_wei("amount") }} as change_amount + from {{ ref('core_usd_minted_base_sepolia') }} - UNION ALL - SELECT - block_timestamp AS ts, + union all + select + block_timestamp as ts, block_number, - 0 AS synth_market_id, - -1 * {{ convert_wei("amount") }} AS change_amount - FROM + 0 as synth_market_id, + -1 * {{ convert_wei("amount") }} as change_amount + from {{ ref('core_usd_burned_base_sepolia') }} ), -all_changes AS ( - SELECT - * - FROM + +all_changes as ( + select * + from wrapper - UNION ALL - SELECT - * - FROM + union all + select * + from atomics - UNION ALL - SELECT - * - FROM + union all + select * + from usd_changes ) -SELECT + +select ts, block_number, synth_market_id, SUM(change_amount) over ( - PARTITION BY synth_market_id - ORDER BY + partition by synth_market_id + order by ts, block_number - ) AS supply -FROM + ) as supply +from all_changes diff --git a/transformers/synthetix/models/marts/eth/mainnet/core/fct_core_account_delegation_eth_mainnet.sql b/transformers/synthetix/models/marts/eth/mainnet/core/fct_core_account_delegation_eth_mainnet.sql index ba2f5339f..b98805255 100644 --- a/transformers/synthetix/models/marts/eth/mainnet/core/fct_core_account_delegation_eth_mainnet.sql +++ b/transformers/synthetix/models/marts/eth/mainnet/core/fct_core_account_delegation_eth_mainnet.sql @@ -1,54 +1,60 @@ -WITH delegation_changes AS ( - SELECT +with delegation_changes as ( + select block_timestamp, account_id, pool_id, collateral_type, - {{ convert_wei('amount') }} - LAG({{ convert_wei('amount') }}, 1, 0) over ( - PARTITION BY account_id, - pool_id, - collateral_type - ORDER BY + {{ convert_wei('amount') }} + - LAG({{ convert_wei('amount') }}, 1, 0) over ( + partition by + account_id, + pool_id, + collateral_type + order by block_timestamp - ) AS change_in_amount - FROM + ) as change_in_amount + from {{ ref('core_delegation_updated_eth_mainnet') }} ), -cumulative_delegation AS ( - SELECT + +cumulative_delegation as ( + select block_timestamp, account_id, pool_id, collateral_type, SUM(change_in_amount) over ( - PARTITION BY pool_id, - account_id, - collateral_type - ORDER BY + partition by + pool_id, + account_id, + collateral_type + order by block_timestamp - ) AS cumulative_amount_delegated, + ) as cumulative_amount_delegated, ROW_NUMBER() over ( - PARTITION BY pool_id, - account_id, - collateral_type - ORDER BY - block_timestamp DESC - ) AS rn - FROM + partition by + pool_id, + account_id, + collateral_type + order by + block_timestamp desc + ) as rn + from delegation_changes ) -SELECT - block_timestamp AS ts, - CAST( - account_id AS text - ) AS account_id, + +select + block_timestamp as ts, pool_id, collateral_type, - cumulative_amount_delegated AS amount_delegated -FROM + cumulative_amount_delegated as amount_delegated, + CAST( + account_id as text + ) as account_id +from cumulative_delegation -WHERE +where rn = 1 -ORDER BY +order by block_timestamp, collateral_type diff --git a/transformers/synthetix/models/marts/eth/mainnet/core/fct_core_apr_eth_mainnet.sql b/transformers/synthetix/models/marts/eth/mainnet/core/fct_core_apr_eth_mainnet.sql index 97a54f27d..511ed3910 100644 --- a/transformers/synthetix/models/marts/eth/mainnet/core/fct_core_apr_eth_mainnet.sql +++ b/transformers/synthetix/models/marts/eth/mainnet/core/fct_core_apr_eth_mainnet.sql @@ -4,8 +4,8 @@ ) }} -WITH pnl_hourly AS ( - SELECT +with pnl_hourly as ( + select ts, pool_id, collateral_type, @@ -24,161 +24,186 @@ WITH pnl_hourly AS ( 0 ) ) over ( - PARTITION BY pool_id, - collateral_type - ORDER BY + partition by + pool_id, + collateral_type + order by ts - ) AS cumulative_issuance, + ) as cumulative_issuance, SUM( hourly_pnl ) over ( - PARTITION BY pool_id, - collateral_type - ORDER BY + partition by + pool_id, + collateral_type + order by ts - ) AS cumulative_pnl - FROM + ) as cumulative_pnl + from {{ ref('fct_pool_pnl_hourly_eth_mainnet') }} ), -avg_returns AS ( - SELECT + +avg_returns as ( + select ts, pool_id, collateral_type, AVG( hourly_pnl_pct ) over ( - PARTITION BY pool_id, - collateral_type - ORDER BY - ts RANGE BETWEEN INTERVAL '24 HOURS' preceding - AND CURRENT ROW - ) AS avg_24h_pnl_pct, + partition by + pool_id, + collateral_type + order by + ts + range between interval '24 HOURS' preceding + and current row + ) as avg_24h_pnl_pct, AVG( hourly_pnl_pct ) over ( - PARTITION BY pool_id, - collateral_type - ORDER BY - ts RANGE BETWEEN INTERVAL '7 DAYS' preceding - AND CURRENT ROW - ) AS avg_7d_pnl_pct, + partition by + pool_id, + collateral_type + order by + ts + range between interval '7 DAYS' preceding + and current row + ) as avg_7d_pnl_pct, AVG( hourly_pnl_pct ) over ( - PARTITION BY pool_id, - collateral_type - ORDER BY - ts RANGE BETWEEN INTERVAL '28 DAYS' preceding - AND CURRENT ROW - ) AS avg_28d_pnl_pct, + partition by + pool_id, + collateral_type + order by + ts + range between interval '28 DAYS' preceding + and current row + ) as avg_28d_pnl_pct, AVG( hourly_rewards_pct ) over ( - PARTITION BY pool_id, - collateral_type - ORDER BY - ts RANGE BETWEEN INTERVAL '24 HOURS' preceding - AND CURRENT ROW - ) AS avg_24h_rewards_pct, + partition by + pool_id, + collateral_type + order by + ts + range between interval '24 HOURS' preceding + and current row + ) as avg_24h_rewards_pct, AVG( hourly_rewards_pct ) over ( - PARTITION BY pool_id, - collateral_type - ORDER BY - ts RANGE BETWEEN INTERVAL '7 DAYS' preceding - AND CURRENT ROW - ) AS avg_7d_rewards_pct, + partition by + pool_id, + collateral_type + order by + ts + range between interval '7 DAYS' preceding + and current row + ) as avg_7d_rewards_pct, AVG( hourly_rewards_pct ) over ( - PARTITION BY pool_id, - collateral_type - ORDER BY - ts RANGE BETWEEN INTERVAL '28 DAYS' preceding - AND CURRENT ROW - ) AS avg_28d_rewards_pct, + partition by + pool_id, + collateral_type + order by + ts + range between interval '28 DAYS' preceding + and current row + ) as avg_28d_rewards_pct, AVG( hourly_total_pct ) over ( - PARTITION BY pool_id, - collateral_type - ORDER BY - ts RANGE BETWEEN INTERVAL '24 HOURS' preceding - AND CURRENT ROW - ) AS avg_24h_total_pct, + partition by + pool_id, + collateral_type + order by + ts + range between interval '24 HOURS' preceding + and current row + ) as avg_24h_total_pct, AVG( hourly_total_pct ) over ( - PARTITION BY pool_id, - collateral_type - ORDER BY - ts RANGE BETWEEN INTERVAL '7 DAYS' preceding - AND CURRENT ROW - ) AS avg_7d_total_pct, + partition by + pool_id, + collateral_type + order by + ts + range between interval '7 DAYS' preceding + and current row + ) as avg_7d_total_pct, AVG( hourly_total_pct ) over ( - PARTITION BY pool_id, - collateral_type - ORDER BY - ts RANGE BETWEEN INTERVAL '28 DAYS' preceding - AND CURRENT ROW - ) AS avg_28d_total_pct - FROM + partition by + pool_id, + collateral_type + order by + ts + range between interval '28 DAYS' preceding + and current row + ) as avg_28d_total_pct + from pnl_hourly ), -apr_calculations AS ( - SELECT - pnl_hourly.ts AS ts, - pnl_hourly.pool_id AS pool_id, - pnl_hourly.collateral_type AS collateral_type, - pnl_hourly.collateral_value AS collateral_value, - pnl_hourly.debt AS debt, - pnl_hourly.hourly_pnl AS hourly_pnl, - pnl_hourly.cumulative_pnl AS cumulative_pnl, - pnl_hourly.hourly_issuance AS hourly_issuance, - pnl_hourly.hourly_debt_migrated AS hourly_debt_migrated, - pnl_hourly.cumulative_issuance AS cumulative_issuance, - pnl_hourly.rewards_usd AS rewards_usd, - pnl_hourly.hourly_pnl_pct AS hourly_pnl_pct, - pnl_hourly.hourly_rewards_pct AS hourly_rewards_pct, + +apr_calculations as ( + select + pnl_hourly.ts, + pnl_hourly.pool_id, + pnl_hourly.collateral_type, + pnl_hourly.collateral_value, + pnl_hourly.debt, + pnl_hourly.hourly_pnl, + pnl_hourly.cumulative_pnl, + pnl_hourly.hourly_issuance, + pnl_hourly.hourly_debt_migrated, + pnl_hourly.cumulative_issuance, + pnl_hourly.rewards_usd, + pnl_hourly.hourly_pnl_pct, + pnl_hourly.hourly_rewards_pct, -- total pnls - avg_returns.avg_24h_total_pct * 24 * 365 AS apr_24h, - avg_returns.avg_7d_total_pct * 24 * 365 AS apr_7d, - avg_returns.avg_28d_total_pct * 24 * 365 AS apr_28d, + avg_returns.avg_24h_total_pct * 24 * 365 as apr_24h, + avg_returns.avg_7d_total_pct * 24 * 365 as apr_7d, + avg_returns.avg_28d_total_pct * 24 * 365 as apr_28d, -- pool pnls - avg_returns.avg_24h_pnl_pct * 24 * 365 AS apr_24h_pnl, - avg_returns.avg_7d_pnl_pct * 24 * 365 AS apr_7d_pnl, - avg_returns.avg_28d_pnl_pct * 24 * 365 AS apr_28d_pnl, + avg_returns.avg_24h_pnl_pct * 24 * 365 as apr_24h_pnl, + avg_returns.avg_7d_pnl_pct * 24 * 365 as apr_7d_pnl, + avg_returns.avg_28d_pnl_pct * 24 * 365 as apr_28d_pnl, -- rewards pnls - avg_returns.avg_24h_rewards_pct * 24 * 365 AS apr_24h_rewards, - avg_returns.avg_7d_rewards_pct * 24 * 365 AS apr_7d_rewards, - avg_returns.avg_28d_rewards_pct * 24 * 365 AS apr_28d_rewards - FROM + avg_returns.avg_24h_rewards_pct * 24 * 365 as apr_24h_rewards, + avg_returns.avg_7d_rewards_pct * 24 * 365 as apr_7d_rewards, + avg_returns.avg_28d_rewards_pct * 24 * 365 as apr_28d_rewards + from pnl_hourly - JOIN avg_returns - ON pnl_hourly.ts = avg_returns.ts - AND pnl_hourly.pool_id = avg_returns.pool_id - AND pnl_hourly.collateral_type = avg_returns.collateral_type + inner join avg_returns + on + pnl_hourly.ts = avg_returns.ts + and pnl_hourly.pool_id = avg_returns.pool_id + and pnl_hourly.collateral_type = avg_returns.collateral_type ), -apy_calculations AS ( - SELECT + +apy_calculations as ( + select *, - (power(1 + apr_24h / 8760, 8760) - 1) AS apy_24h, - (power(1 + apr_7d / 8760, 8760) - 1) AS apy_7d, - (power(1 + apr_28d / 8760, 8760) - 1) AS apy_28d, - (power(1 + apr_24h_pnl / 8760, 8760) - 1) AS apy_24h_pnl, - (power(1 + apr_7d_pnl / 8760, 8760) - 1) AS apy_7d_pnl, - (power(1 + apr_28d_pnl / 8760, 8760) - 1) AS apy_28d_pnl, - (power(1 + apr_24h_rewards / 8760, 8760) - 1) AS apy_24h_rewards, - (power(1 + apr_7d_rewards / 8760, 8760) - 1) AS apy_7d_rewards, - (power(1 + apr_28d_rewards / 8760, 8760) - 1) AS apy_28d_rewards - FROM + (POWER(1 + apr_24h / 8760, 8760) - 1) as apy_24h, + (POWER(1 + apr_7d / 8760, 8760) - 1) as apy_7d, + (POWER(1 + apr_28d / 8760, 8760) - 1) as apy_28d, + (POWER(1 + apr_24h_pnl / 8760, 8760) - 1) as apy_24h_pnl, + (POWER(1 + apr_7d_pnl / 8760, 8760) - 1) as apy_7d_pnl, + (POWER(1 + apr_28d_pnl / 8760, 8760) - 1) as apy_28d_pnl, + (POWER(1 + apr_24h_rewards / 8760, 8760) - 1) as apy_24h_rewards, + (POWER(1 + apr_7d_rewards / 8760, 8760) - 1) as apy_7d_rewards, + (POWER(1 + apr_28d_rewards / 8760, 8760) - 1) as apy_28d_rewards + from apr_calculations ) -SELECT + +select ts, pool_id, collateral_type, @@ -210,7 +235,7 @@ SELECT apy_7d_rewards, apr_28d_rewards, apy_28d_rewards -FROM +from apy_calculations -ORDER BY +order by ts diff --git a/transformers/synthetix/models/marts/eth/mainnet/core/fct_core_apr_rewards_eth_mainnet.sql b/transformers/synthetix/models/marts/eth/mainnet/core/fct_core_apr_rewards_eth_mainnet.sql index 2ea513351..b41ef2f82 100644 --- a/transformers/synthetix/models/marts/eth/mainnet/core/fct_core_apr_rewards_eth_mainnet.sql +++ b/transformers/synthetix/models/marts/eth/mainnet/core/fct_core_apr_rewards_eth_mainnet.sql @@ -4,8 +4,8 @@ ) }} -WITH pnl_hourly AS ( - SELECT +with pnl_hourly as ( + select ts, pool_id, collateral_type, @@ -13,11 +13,12 @@ WITH pnl_hourly AS ( collateral_value, rewards_usd, hourly_rewards_pct - FROM + from {{ ref('fct_pool_pnl_hourly_reward_eth_mainnet') }} ), -avg_returns AS ( - SELECT + +avg_returns as ( + select ts, pool_id, collateral_type, @@ -25,66 +26,76 @@ avg_returns AS ( AVG( hourly_rewards_pct ) over ( - PARTITION BY pool_id, - collateral_type, - reward_token - ORDER BY - ts RANGE BETWEEN INTERVAL '24 HOURS' preceding - AND CURRENT ROW - ) AS avg_24h_rewards_pct, + partition by + pool_id, + collateral_type, + reward_token + order by + ts + range between interval '24 HOURS' preceding + and current row + ) as avg_24h_rewards_pct, AVG( hourly_rewards_pct ) over ( - PARTITION BY pool_id, - collateral_type, - reward_token - ORDER BY - ts RANGE BETWEEN INTERVAL '7 DAYS' preceding - AND CURRENT ROW - ) AS avg_7d_rewards_pct, + partition by + pool_id, + collateral_type, + reward_token + order by + ts + range between interval '7 DAYS' preceding + and current row + ) as avg_7d_rewards_pct, AVG( hourly_rewards_pct ) over ( - PARTITION BY pool_id, - collateral_type, - reward_token - ORDER BY - ts RANGE BETWEEN INTERVAL '28 DAYS' preceding - AND CURRENT ROW - ) AS avg_28d_rewards_pct - FROM + partition by + pool_id, + collateral_type, + reward_token + order by + ts + range between interval '28 DAYS' preceding + and current row + ) as avg_28d_rewards_pct + from pnl_hourly ), -apr_calculations AS ( - SELECT - pnl_hourly.ts AS ts, - pnl_hourly.pool_id AS pool_id, - pnl_hourly.collateral_type AS collateral_type, - pnl_hourly.reward_token AS reward_token, - pnl_hourly.collateral_value AS collateral_value, - pnl_hourly.rewards_usd AS rewards_usd, - pnl_hourly.hourly_rewards_pct AS hourly_rewards_pct, - avg_returns.avg_24h_rewards_pct * 24 * 365 AS apr_24h_rewards, - avg_returns.avg_7d_rewards_pct * 24 * 365 AS apr_7d_rewards, - avg_returns.avg_28d_rewards_pct * 24 * 365 AS apr_28d_rewards - FROM + +apr_calculations as ( + select + pnl_hourly.ts, + pnl_hourly.pool_id, + pnl_hourly.collateral_type, + pnl_hourly.reward_token, + pnl_hourly.collateral_value, + pnl_hourly.rewards_usd, + pnl_hourly.hourly_rewards_pct, + avg_returns.avg_24h_rewards_pct * 24 * 365 as apr_24h_rewards, + avg_returns.avg_7d_rewards_pct * 24 * 365 as apr_7d_rewards, + avg_returns.avg_28d_rewards_pct * 24 * 365 as apr_28d_rewards + from pnl_hourly - JOIN avg_returns - ON pnl_hourly.ts = avg_returns.ts - AND pnl_hourly.pool_id = avg_returns.pool_id - AND pnl_hourly.collateral_type = avg_returns.collateral_type - AND pnl_hourly.reward_token = avg_returns.reward_token + inner join avg_returns + on + pnl_hourly.ts = avg_returns.ts + and pnl_hourly.pool_id = avg_returns.pool_id + and pnl_hourly.collateral_type = avg_returns.collateral_type + and pnl_hourly.reward_token = avg_returns.reward_token ), -apy_calculations AS ( - SELECT + +apy_calculations as ( + select *, - (power(1 + apr_24h_rewards / 8760, 8760) - 1) AS apy_24h_rewards, - (power(1 + apr_7d_rewards / 8760, 8760) - 1) AS apy_7d_rewards, - (power(1 + apr_28d_rewards / 8760, 8760) - 1) AS apy_28d_rewards - FROM + (POWER(1 + apr_24h_rewards / 8760, 8760) - 1) as apy_24h_rewards, + (POWER(1 + apr_7d_rewards / 8760, 8760) - 1) as apy_7d_rewards, + (POWER(1 + apr_28d_rewards / 8760, 8760) - 1) as apy_28d_rewards + from apr_calculations ) -SELECT + +select ts, pool_id, collateral_type, @@ -98,7 +109,7 @@ SELECT apy_7d_rewards, apr_28d_rewards, apy_28d_rewards -FROM +from apy_calculations -ORDER BY +order by ts diff --git a/transformers/synthetix/models/marts/eth/mainnet/core/fct_core_market_updated_eth_mainnet.sql b/transformers/synthetix/models/marts/eth/mainnet/core/fct_core_market_updated_eth_mainnet.sql index 2fc837a55..ad7e4dbcc 100644 --- a/transformers/synthetix/models/marts/eth/mainnet/core/fct_core_market_updated_eth_mainnet.sql +++ b/transformers/synthetix/models/marts/eth/mainnet/core/fct_core_market_updated_eth_mainnet.sql @@ -1,29 +1,30 @@ -WITH market_updated AS ( - SELECT +with market_updated as ( + select + id, + block_timestamp, + block_number, + transaction_hash, + contract, + event_name, + market_id, + net_issuance, + sender, + collateral_type, + credit_capacity, + token_amount + from + {{ ref('core_market_updated_eth_mainnet') }} +) + +select id, - block_timestamp, - block_number, + block_timestamp as ts, transaction_hash, - contract, event_name, market_id, - net_issuance, - sender, collateral_type, - credit_capacity, - token_amount - FROM - {{ ref('core_market_updated_eth_mainnet') }} -) -SELECT - id, - block_timestamp AS ts, - transaction_hash, - event_name, - market_id, - collateral_type, - {{ convert_wei("credit_capacity") }} AS credit_capacity, - {{ convert_wei("net_issuance") }} AS net_issuance, - {{ convert_wei("token_amount") }} AS token_amount -FROM - market_updated + {{ convert_wei("credit_capacity") }} as credit_capacity, + {{ convert_wei("net_issuance") }} as net_issuance, + {{ convert_wei("token_amount") }} as token_amount +from + market_updated diff --git a/transformers/synthetix/models/marts/eth/mainnet/core/fct_core_migration_eth_mainnet.sql b/transformers/synthetix/models/marts/eth/mainnet/core/fct_core_migration_eth_mainnet.sql index eb7b8a4d5..67d8008be 100644 --- a/transformers/synthetix/models/marts/eth/mainnet/core/fct_core_migration_eth_mainnet.sql +++ b/transformers/synthetix/models/marts/eth/mainnet/core/fct_core_migration_eth_mainnet.sql @@ -1,13 +1,14 @@ -SELECT - block_timestamp AS ts, +select + block_timestamp as ts, block_number, transaction_hash, 1 as pool_id, -- Spartan Council pool - '0xC011a73ee8576Fb46F5E1c5751cA3B9Fe0af2a6F' as collateral_type, -- SNX collateral + -- SNX collateral + '0xC011a73ee8576Fb46F5E1c5751cA3B9Fe0af2a6F' as collateral_type, staker, account_id, {{ convert_wei('collateral_amount') }} as collateral_amount, {{ convert_wei('debt_amount') }} as debt_amount -FROM +from {{ ref('core_account_migrated_eth_mainnet') }} -ORDER BY block_timestamp \ No newline at end of file +order by block_timestamp diff --git a/transformers/synthetix/models/marts/eth/mainnet/core/fct_core_migration_hourly_eth_mainnet.sql b/transformers/synthetix/models/marts/eth/mainnet/core/fct_core_migration_hourly_eth_mainnet.sql index 207804554..0b4b874c7 100644 --- a/transformers/synthetix/models/marts/eth/mainnet/core/fct_core_migration_hourly_eth_mainnet.sql +++ b/transformers/synthetix/models/marts/eth/mainnet/core/fct_core_migration_hourly_eth_mainnet.sql @@ -1,76 +1,83 @@ -WITH dim AS ( - SELECT - generate_series(DATE_TRUNC('hour', MIN(t.ts)), DATE_TRUNC('hour', MAX(t.ts)), '1 hour' :: INTERVAL) AS ts, +with dim as ( + select m.pool_id, - m.collateral_type - FROM + m.collateral_type, + generate_series( + date_trunc('hour', min(t.ts)), + date_trunc('hour', max(t.ts)), + '1 hour'::INTERVAL + ) as ts + from ( - SELECT - ts - FROM - {{ ref('fct_pool_debt_eth_mainnet') }} - ) AS t - CROSS JOIN ( - SELECT - DISTINCT pool_id, - collateral_type - FROM + select ts + from {{ ref('fct_pool_debt_eth_mainnet') }} - ) AS m - GROUP BY + ) as t + cross join ( + select distinct + pool_id, + collateral_type + from + {{ ref('fct_pool_debt_eth_mainnet') }} + ) as m + group by m.pool_id, m.collateral_type ), -max_debt_block AS ( - SELECT - DATE_TRUNC( - 'hour', - ts - ) AS HOUR, + +max_debt_block as ( + select pool_id, collateral_type, - MAX(block_number) AS max_block_number - FROM + date_trunc( + 'hour', + ts + ) as hour, + max(block_number) as max_block_number + from {{ ref('fct_pool_debt_eth_mainnet') }} - GROUP BY - DATE_TRUNC( + group by + date_trunc( 'hour', ts ), pool_id, collateral_type ), -migration AS ( - SELECT - DATE_TRUNC( + +migration as ( + select + date_trunc( 'hour', ts - ) AS ts, + ) as ts, pool_id, collateral_type, - SUM(debt_amount) AS hourly_debt_migrated - FROM + sum(debt_amount) as hourly_debt_migrated + from {{ ref('fct_core_migration_eth_mainnet') }} - GROUP BY + group by 1, 2, 3 ) -SELECT + +select dim.ts, dim.pool_id, dim.collateral_type, - COALESCE( + coalesce( m.hourly_debt_migrated, 0 - ) AS hourly_debt_migrated -FROM + ) as hourly_debt_migrated +from dim - LEFT JOIN migration m - ON dim.pool_id = m.pool_id - AND LOWER( - dim.collateral_type - ) = LOWER( - m.collateral_type - ) - AND dim.ts = m.ts +left join migration as m + on + dim.pool_id = m.pool_id + and lower( + dim.collateral_type + ) = lower( + m.collateral_type + ) + and dim.ts = m.ts diff --git a/transformers/synthetix/models/marts/eth/mainnet/core/fct_core_pool_collateral_eth_mainnet.sql b/transformers/synthetix/models/marts/eth/mainnet/core/fct_core_pool_collateral_eth_mainnet.sql index 126cae5de..6e6611eb7 100644 --- a/transformers/synthetix/models/marts/eth/mainnet/core/fct_core_pool_collateral_eth_mainnet.sql +++ b/transformers/synthetix/models/marts/eth/mainnet/core/fct_core_pool_collateral_eth_mainnet.sql @@ -1,35 +1,39 @@ -WITH events AS ( - SELECT - block_timestamp, - {{ convert_wei('token_amount') }} AS token_amount, - collateral_type - FROM - {{ ref('core_deposited_eth_mainnet') }} - UNION ALL - SELECT - block_timestamp,- {{ convert_wei('token_amount') }} AS token_amount, - collateral_type - FROM - {{ ref('core_withdrawn_eth_mainnet') }} +with events as ( + select + block_timestamp, + {{ convert_wei('token_amount') }} as token_amount, + collateral_type + from + {{ ref('core_deposited_eth_mainnet') }} + union all + select + block_timestamp, + -{{ convert_wei('token_amount') }} as token_amount, + collateral_type + from + {{ ref('core_withdrawn_eth_mainnet') }} ), -ranked_events AS ( - SELECT - *, - SUM(token_amount) over ( - PARTITION BY collateral_type - ORDER BY - block_timestamp rows BETWEEN unbounded preceding - AND CURRENT ROW - ) AS amount_deposited - FROM - events + +ranked_events as ( + select + *, + SUM(token_amount) over ( + partition by collateral_type + order by + block_timestamp + rows between unbounded preceding + and current row + ) as amount_deposited + from + events ) -SELECT - block_timestamp AS ts, - collateral_type, - amount_deposited -FROM - ranked_events -ORDER BY - block_timestamp, - collateral_type + +select + block_timestamp as ts, + collateral_type, + amount_deposited +from + ranked_events +order by + block_timestamp, + collateral_type diff --git a/transformers/synthetix/models/marts/eth/mainnet/core/fct_core_pool_delegation_eth_mainnet.sql b/transformers/synthetix/models/marts/eth/mainnet/core/fct_core_pool_delegation_eth_mainnet.sql index 8bfdc7533..e615a3376 100644 --- a/transformers/synthetix/models/marts/eth/mainnet/core/fct_core_pool_delegation_eth_mainnet.sql +++ b/transformers/synthetix/models/marts/eth/mainnet/core/fct_core_pool_delegation_eth_mainnet.sql @@ -1,40 +1,45 @@ -WITH delegation_changes AS ( - SELECT +with delegation_changes as ( + select block_timestamp, account_id, pool_id, collateral_type, - {{ convert_wei('amount') }} - LAG({{ convert_wei('amount') }}, 1, 0) over ( - PARTITION BY account_id, - pool_id, - collateral_type - ORDER BY + {{ convert_wei('amount') }} + - LAG({{ convert_wei('amount') }}, 1, 0) over ( + partition by + account_id, + pool_id, + collateral_type + order by block_timestamp - ) AS change_in_amount - FROM + ) as change_in_amount + from {{ ref('core_delegation_updated_eth_mainnet') }} ), -cumulative_delegation AS ( - SELECT + +cumulative_delegation as ( + select block_timestamp, pool_id, collateral_type, SUM(change_in_amount) over ( - PARTITION BY pool_id, - collateral_type - ORDER BY + partition by + pool_id, + collateral_type + order by block_timestamp - ) AS cumulative_amount_delegated - FROM + ) as cumulative_amount_delegated + from delegation_changes ) -SELECT - block_timestamp AS ts, + +select + block_timestamp as ts, pool_id, collateral_type, - cumulative_amount_delegated AS amount_delegated -FROM + cumulative_amount_delegated as amount_delegated +from cumulative_delegation -ORDER BY +order by block_timestamp, collateral_type diff --git a/transformers/synthetix/models/marts/eth/mainnet/core/fct_core_pools_eth_mainnet.sql b/transformers/synthetix/models/marts/eth/mainnet/core/fct_core_pools_eth_mainnet.sql index 61eea8ae6..782e703fc 100644 --- a/transformers/synthetix/models/marts/eth/mainnet/core/fct_core_pools_eth_mainnet.sql +++ b/transformers/synthetix/models/marts/eth/mainnet/core/fct_core_pools_eth_mainnet.sql @@ -1,13 +1,13 @@ -WITH base AS ( - SELECT - pool_id AS id, - block_timestamp AS created_ts, - block_number, - owner - FROM - {{ ref('core_pool_created_eth_mainnet') }} +with base as ( + select + pool_id as id, + block_timestamp as created_ts, + block_number, + owner + from + {{ ref('core_pool_created_eth_mainnet') }} ) -SELECT - * -FROM - base + +select * +from + base diff --git a/transformers/synthetix/models/marts/eth/mainnet/core/fct_pool_debt_eth_mainnet.sql b/transformers/synthetix/models/marts/eth/mainnet/core/fct_pool_debt_eth_mainnet.sql index 57ead2841..39e48ea9c 100644 --- a/transformers/synthetix/models/marts/eth/mainnet/core/fct_pool_debt_eth_mainnet.sql +++ b/transformers/synthetix/models/marts/eth/mainnet/core/fct_pool_debt_eth_mainnet.sql @@ -1,10 +1,10 @@ -SELECT +select ts, block_number, pool_id, collateral_type, debt -FROM +from {{ ref('core_vault_debt_eth_mainnet') }} -ORDER BY +order by ts diff --git a/transformers/synthetix/models/marts/eth/mainnet/core/fct_pool_issuance_eth_mainnet.sql b/transformers/synthetix/models/marts/eth/mainnet/core/fct_pool_issuance_eth_mainnet.sql index 044cbf17c..63caebcb6 100644 --- a/transformers/synthetix/models/marts/eth/mainnet/core/fct_pool_issuance_eth_mainnet.sql +++ b/transformers/synthetix/models/marts/eth/mainnet/core/fct_pool_issuance_eth_mainnet.sql @@ -1,39 +1,39 @@ -WITH burns AS ( - SELECT - block_timestamp AS ts, +with burns as ( + select + block_timestamp as ts, block_number, transaction_hash, pool_id, collateral_type, account_id, - -1 * {{ convert_wei('amount') }} AS amount - FROM + -1 * {{ convert_wei('amount') }} as amount + from {{ ref('core_usd_burned_eth_mainnet') }} - ORDER BY - block_timestamp DESC + order by + block_timestamp desc ), -mints AS ( - SELECT - block_timestamp AS ts, + +mints as ( + select + block_timestamp as ts, block_number, transaction_hash, pool_id, collateral_type, account_id, - {{ convert_wei('amount') }} AS amount - FROM + {{ convert_wei('amount') }} as amount + from {{ ref('core_usd_minted_eth_mainnet') }} - ORDER BY - block_timestamp DESC + order by + block_timestamp desc ) -SELECT - * -FROM + +select * +from burns -UNION ALL -SELECT - * -FROM +union all +select * +from mints -ORDER BY - ts DESC +order by + ts desc diff --git a/transformers/synthetix/models/marts/eth/mainnet/core/fct_pool_issuance_hourly_eth_mainnet.sql b/transformers/synthetix/models/marts/eth/mainnet/core/fct_pool_issuance_hourly_eth_mainnet.sql index a828f59f8..f69d53b54 100644 --- a/transformers/synthetix/models/marts/eth/mainnet/core/fct_pool_issuance_hourly_eth_mainnet.sql +++ b/transformers/synthetix/models/marts/eth/mainnet/core/fct_pool_issuance_hourly_eth_mainnet.sql @@ -1,110 +1,119 @@ -WITH dim AS ( - SELECT - generate_series(DATE_TRUNC('hour', MIN(t.ts)), DATE_TRUNC('hour', MAX(t.ts)), '1 hour' :: INTERVAL) AS ts, +with dim as ( + select m.pool_id, - m.collateral_type - FROM + m.collateral_type, + generate_series( + date_trunc('hour', min(t.ts)), + date_trunc('hour', max(t.ts)), + '1 hour'::INTERVAL + ) as ts + from ( - SELECT - ts - FROM - {{ ref('fct_pool_issuance_eth_mainnet') }} - ) AS t - CROSS JOIN ( - SELECT - DISTINCT pool_id, - collateral_type - FROM + select ts + from {{ ref('fct_pool_issuance_eth_mainnet') }} - ) AS m - GROUP BY + ) as t + cross join ( + select distinct + pool_id, + collateral_type + from + {{ ref('fct_pool_issuance_eth_mainnet') }} + ) as m + group by m.pool_id, m.collateral_type ), -max_debt_block AS ( - SELECT - DATE_TRUNC( - 'hour', - ts - ) AS HOUR, + +max_debt_block as ( + select pool_id, collateral_type, - MAX(block_number) AS max_block_number - FROM + date_trunc( + 'hour', + ts + ) as hour, + max(block_number) as max_block_number + from {{ ref('fct_pool_debt_eth_mainnet') }} - GROUP BY - DATE_TRUNC( + group by + date_trunc( 'hour', ts ), pool_id, collateral_type ), -filt_issuance AS ( - SELECT - CASE - WHEN i.block_number <= d.max_block_number - OR d.max_block_number IS NULL THEN i.ts - ELSE i.ts + INTERVAL '1 hour' - END AS ts, + +filt_issuance as ( + select i.pool_id, i.collateral_type, - i.amount - FROM + i.amount, + case + when + i.block_number <= d.max_block_number + or d.max_block_number is null then i.ts + else i.ts + INTERVAL '1 hour' + end as ts + from {{ ref('fct_pool_issuance_eth_mainnet') }} - i - LEFT JOIN max_debt_block d - ON DATE_TRUNC( + as i + left join max_debt_block as d + on date_trunc( 'hour', i.ts ) = d.hour - AND i.pool_id = d.pool_id - AND LOWER( + and i.pool_id = d.pool_id + and lower( i.collateral_type - ) = LOWER( + ) = lower( d.collateral_type ) - WHERE + where i.block_number <= ( - SELECT - MAX( + select + max( max_block_number ) - FROM + from max_debt_block ) ), -issuance AS ( - SELECT - DATE_TRUNC( + +issuance as ( + select + date_trunc( 'hour', ts - ) AS ts, + ) as ts, pool_id, collateral_type, - SUM(amount) AS hourly_issuance - FROM + sum(amount) as hourly_issuance + from filt_issuance - GROUP BY + group by 1, 2, 3 ) -SELECT + +select dim.ts, dim.pool_id, dim.collateral_type, - COALESCE( + coalesce( i.hourly_issuance, 0 - ) AS hourly_issuance -FROM + ) as hourly_issuance +from dim - LEFT JOIN issuance i - ON dim.pool_id = i.pool_id - AND LOWER( - dim.collateral_type - ) = LOWER( - i.collateral_type - ) - AND dim.ts = i.ts +left join issuance as i + on + dim.pool_id = i.pool_id + and lower( + dim.collateral_type + ) = lower( + i.collateral_type + ) + and dim.ts = i.ts diff --git a/transformers/synthetix/models/marts/eth/mainnet/core/fct_pool_pnl_hourly_eth_mainnet.sql b/transformers/synthetix/models/marts/eth/mainnet/core/fct_pool_pnl_hourly_eth_mainnet.sql index 9edd06947..0d6026c8d 100644 --- a/transformers/synthetix/models/marts/eth/mainnet/core/fct_pool_pnl_hourly_eth_mainnet.sql +++ b/transformers/synthetix/models/marts/eth/mainnet/core/fct_pool_pnl_hourly_eth_mainnet.sql @@ -3,78 +3,91 @@ unique_key = ['ts', 'pool_id', 'collateral_type'], ) }} -WITH dim AS ( - SELECT - generate_series(DATE_TRUNC('hour', MIN(t.ts)), DATE_TRUNC('hour', MAX(t.ts)), '1 hour' :: INTERVAL) AS ts, +with dim as ( + select p.pool_id, - p.collateral_type - FROM + p.collateral_type, + generate_series( + date_trunc('hour', min(t.ts)), + date_trunc('hour', max(t.ts)), + '1 hour'::INTERVAL + ) as ts + from ( - SELECT - ts - FROM + select ts + from {{ ref('fct_pool_debt_eth_mainnet') }} - ) AS t - CROSS JOIN ( - SELECT - DISTINCT pool_id, - collateral_type - FROM - {{ ref('fct_pool_debt_eth_mainnet') }} - ) AS p -GROUP BY - p.pool_id, - p.collateral_type + ) as t + cross join ( + select distinct + pool_id, + collateral_type + from + {{ ref('fct_pool_debt_eth_mainnet') }} + ) as p + group by + p.pool_id, + p.collateral_type ), -issuance AS ( - SELECT + +issuance as ( + select ts, pool_id, collateral_type, hourly_issuance - FROM + from {{ ref('fct_pool_issuance_hourly_eth_mainnet') }} ), -debt AS ( - SELECT - DISTINCT DATE_TRUNC( - 'hour', - ts - ) AS ts, + +debt as ( + select distinct pool_id, collateral_type, - LAST_VALUE(debt) over (PARTITION BY DATE_TRUNC('hour', ts), pool_id, collateral_type - ORDER BY - ts rows BETWEEN unbounded preceding - AND unbounded following) AS debt - FROM - {{ ref('fct_pool_debt_eth_mainnet') }} -), -collateral AS ( - SELECT - DISTINCT DATE_TRUNC( + date_trunc( 'hour', ts - ) AS ts, + ) as ts, + last_value(debt) over ( + partition by date_trunc('hour', ts), pool_id, collateral_type + order by + ts + rows between unbounded preceding + and unbounded following + ) as debt + from + {{ ref('fct_pool_debt_eth_mainnet') }} +), + +collateral as ( + select distinct pool_id, collateral_type, - LAST_VALUE(collateral_value) over (PARTITION BY DATE_TRUNC('hour', ts), pool_id, collateral_type - ORDER BY - ts rows BETWEEN unbounded preceding - AND unbounded following) AS collateral_value - FROM + date_trunc( + 'hour', + ts + ) as ts, + last_value(collateral_value) over ( + partition by date_trunc('hour', ts), pool_id, collateral_type + order by + ts + rows between unbounded preceding + and unbounded following + ) as collateral_value + from {{ ref('core_vault_collateral_eth_mainnet') }} - WHERE + where pool_id = 1 ), -ffill AS ( - SELECT + +ffill as ( + select dim.ts, dim.pool_id, dim.collateral_type, coalesce( last(debt) over ( - partition by dim.collateral_type, dim.pool_id + partition by dim.collateral_type, dim.pool_id order by dim.ts rows between unbounded preceding and current row ), @@ -82,96 +95,113 @@ ffill AS ( ) as debt, coalesce( last(collateral_value) over ( - partition by dim.collateral_type, dim.pool_id + partition by dim.collateral_type, dim.pool_id order by dim.ts - rows between unbounded preceding and current row + rows between unbounded preceding and current row ), 0 ) as collateral_value - FROM + from dim - LEFT JOIN debt - ON dim.ts = debt.ts - AND dim.pool_id = debt.pool_id - AND dim.collateral_type = debt.collateral_type - LEFT JOIN collateral - ON dim.ts = collateral.ts - AND dim.pool_id = collateral.pool_id - AND dim.collateral_type = collateral.collateral_type + left join debt + on + dim.ts = debt.ts + and dim.pool_id = debt.pool_id + and dim.collateral_type = debt.collateral_type + left join collateral + on + dim.ts = collateral.ts + and dim.pool_id = collateral.pool_id + and dim.collateral_type = collateral.collateral_type ), -hourly_pnl AS ( - SELECT + +hourly_pnl as ( + select ts, pool_id, collateral_type, collateral_value, debt, - COALESCE(LAG(debt) over (PARTITION BY pool_id, collateral_type - ORDER BY - ts) - debt, 0) AS hourly_pnl - FROM + coalesce(lag(debt) over ( + partition by pool_id, collateral_type + order by + ts + ) - debt, 0) as hourly_pnl + from ffill ), -hourly_rewards AS ( - SELECT + +hourly_rewards as ( + select ts, pool_id, collateral_type, rewards_usd - FROM + from {{ ref('fct_pool_rewards_hourly_eth_mainnet') }} ), -hourly_returns AS ( - SELECT + +hourly_returns as ( + select pnl.ts, pnl.pool_id, pnl.collateral_type, pnl.collateral_value, pnl.debt, - COALESCE( + coalesce( iss.hourly_issuance, 0 - ) hourly_issuance, - pnl.hourly_pnl + COALESCE( + ) as hourly_issuance, + pnl.hourly_pnl + coalesce( iss.hourly_issuance, 0 - ) AS hourly_pnl, - COALESCE( + ) as hourly_pnl, + coalesce( rewards.rewards_usd, 0 - ) AS rewards_usd, - CASE - WHEN pnl.collateral_value = 0 THEN 0 - ELSE COALESCE( + ) as rewards_usd, + case + when pnl.collateral_value = 0 then 0 + else coalesce( rewards.rewards_usd, 0 ) / pnl.collateral_value - END AS hourly_rewards_pct, - CASE - WHEN pnl.collateral_value = 0 THEN 0 - ELSE (COALESCE(iss.hourly_issuance, 0) + pnl.hourly_pnl) / pnl.collateral_value - END AS hourly_pnl_pct, - CASE - WHEN pnl.collateral_value = 0 THEN 0 - ELSE (COALESCE(rewards.rewards_usd, 0) + pnl.hourly_pnl + COALESCE(iss.hourly_issuance, 0)) / pnl.collateral_value - END AS hourly_total_pct - FROM - hourly_pnl pnl - LEFT JOIN hourly_rewards rewards - ON pnl.ts = rewards.ts - AND pnl.pool_id = rewards.pool_id - AND pnl.collateral_type = rewards.collateral_type - LEFT JOIN issuance iss - ON pnl.ts = iss.ts - AND pnl.pool_id = iss.pool_id - AND LOWER( - pnl.collateral_type - ) = LOWER( - iss.collateral_type - ) + end as hourly_rewards_pct, + case + when pnl.collateral_value = 0 then 0 + else + (coalesce(iss.hourly_issuance, 0) + pnl.hourly_pnl) + / pnl.collateral_value + end as hourly_pnl_pct, + case + when pnl.collateral_value = 0 then 0 + else + ( + coalesce(rewards.rewards_usd, 0) + + pnl.hourly_pnl + + coalesce(iss.hourly_issuance, 0) + ) + / pnl.collateral_value + end as hourly_total_pct + from + hourly_pnl as pnl + left join hourly_rewards as rewards + on + pnl.ts = rewards.ts + and pnl.pool_id = rewards.pool_id + and pnl.collateral_type = rewards.collateral_type + left join issuance as iss + on + pnl.ts = iss.ts + and pnl.pool_id = iss.pool_id + and lower( + pnl.collateral_type + ) = lower( + iss.collateral_type + ) ) -SELECT +select ts, pool_id, collateral_type, @@ -183,5 +213,5 @@ SELECT hourly_pnl_pct, hourly_rewards_pct, hourly_total_pct -FROM +from hourly_returns diff --git a/transformers/synthetix/models/marts/eth/mainnet/core/fct_pool_pnl_hourly_reward_eth_mainnet.sql b/transformers/synthetix/models/marts/eth/mainnet/core/fct_pool_pnl_hourly_reward_eth_mainnet.sql index 5095691bf..292cee73e 100644 --- a/transformers/synthetix/models/marts/eth/mainnet/core/fct_pool_pnl_hourly_reward_eth_mainnet.sql +++ b/transformers/synthetix/models/marts/eth/mainnet/core/fct_pool_pnl_hourly_reward_eth_mainnet.sql @@ -3,79 +3,85 @@ unique_key = ['ts', 'pool_id', 'collateral_type', 'reward_token'], ) }} -WITH dim AS ( +with dim as ( - SELECT - generate_series(DATE_TRUNC('hour', MIN(t.ts)), DATE_TRUNC('hour', MAX(t.ts)), '1 hour' :: INTERVAL) AS ts, + select t.pool_id, t.collateral_type, t.collateral_value, - p.token_symbol AS reward_token - FROM + p.token_symbol as reward_token, + generate_series( + date_trunc('hour', min(t.ts)), + date_trunc('hour', max(t.ts)), + '1 hour'::INTERVAL + ) as ts + from ( - SELECT + select ts, collateral_type, pool_id, collateral_value - FROM + from {{ ref('fct_pool_pnl_hourly_eth_mainnet') }} group by ts, collateral_type, pool_id, collateral_value - ) AS t - CROSS JOIN ( - SELECT - DISTINCT token_symbol - FROM - {{ ref('fct_pool_rewards_token_hourly_eth_mainnet') }} - ) AS p - GROUP BY + ) as t + cross join ( + select distinct token_symbol + from + {{ ref('fct_pool_rewards_token_hourly_eth_mainnet') }} + ) as p + group by t.pool_id, t.collateral_type, t.collateral_value, p.token_symbol ), -reward_hourly_token AS ( - SELECT + +reward_hourly_token as ( + select ts, pool_id, collateral_type, - token_symbol AS reward_token, - SUM( + token_symbol as reward_token, + sum( rewards_usd - ) AS rewards_usd - FROM + ) as rewards_usd + from {{ ref('fct_pool_rewards_token_hourly_eth_mainnet') }} - GROUP BY + group by ts, pool_id, collateral_type, token_symbol ) -SELECT + +select dim.ts, dim.pool_id, dim.collateral_type, dim.collateral_value, dim.reward_token, - COALESCE( + coalesce( reward_hourly_token.rewards_usd, 0 - ) AS rewards_usd, - CASE - WHEN dim.collateral_value = 0 THEN 0 - ELSE COALESCE( + ) as rewards_usd, + case + when dim.collateral_value = 0 then 0 + else coalesce( reward_hourly_token.rewards_usd, 0 ) / dim.collateral_value - END AS hourly_rewards_pct -FROM + end as hourly_rewards_pct +from dim - LEFT JOIN reward_hourly_token - ON dim.ts = reward_hourly_token.ts - AND dim.pool_id = reward_hourly_token.pool_id - AND dim.collateral_type = reward_hourly_token.collateral_type - and dim.reward_token = reward_hourly_token.reward_token +left join reward_hourly_token + on + dim.ts = reward_hourly_token.ts + and dim.pool_id = reward_hourly_token.pool_id + and dim.collateral_type = reward_hourly_token.collateral_type + and dim.reward_token = reward_hourly_token.reward_token diff --git a/transformers/synthetix/models/marts/eth/mainnet/core/fct_pool_rewards_eth_mainnet.sql b/transformers/synthetix/models/marts/eth/mainnet/core/fct_pool_rewards_eth_mainnet.sql index 7066698b5..833db8340 100644 --- a/transformers/synthetix/models/marts/eth/mainnet/core/fct_pool_rewards_eth_mainnet.sql +++ b/transformers/synthetix/models/marts/eth/mainnet/core/fct_pool_rewards_eth_mainnet.sql @@ -1,25 +1,27 @@ -WITH rewards_distributed AS ( - SELECT - block_timestamp AS ts, +with rewards_distributed as ( + select + block_timestamp as ts, CAST( - pool_id AS INTEGER - ) AS pool_id, + pool_id as INTEGER + ) as pool_id, collateral_type, distributor, - {{ convert_wei('amount') }} AS amount, - TO_TIMESTAMP("start") AS ts_start, + {{ convert_wei('amount') }} as amount, + TO_TIMESTAMP("start") as ts_start, "duration" - FROM + from {{ ref('core_rewards_distributed_eth_mainnet') }} ), -distributors AS ( - SELECT - CAST(distributor_address AS TEXT) AS distributor_address, - CAST(token_symbol AS TEXT) AS token_symbol - FROM + +distributors as ( + select + CAST(distributor_address as TEXT) as distributor_address, + CAST(token_symbol as TEXT) as token_symbol + from {{ ref('eth_mainnet_reward_distributors') }} ) -SELECT + +select rd.ts, rd.pool_id, rd.collateral_type, @@ -28,8 +30,8 @@ SELECT rd.amount, rd.ts_start, rd.duration -FROM - rewards_distributed rd - join distributors on rd.distributor = distributors.distributor_address -ORDER BY +from + rewards_distributed as rd +inner join distributors on rd.distributor = distributors.distributor_address +order by ts diff --git a/transformers/synthetix/models/marts/eth/mainnet/core/fct_pool_rewards_hourly_eth_mainnet.sql b/transformers/synthetix/models/marts/eth/mainnet/core/fct_pool_rewards_hourly_eth_mainnet.sql index 21b5cb625..457af8ad4 100644 --- a/transformers/synthetix/models/marts/eth/mainnet/core/fct_pool_rewards_hourly_eth_mainnet.sql +++ b/transformers/synthetix/models/marts/eth/mainnet/core/fct_pool_rewards_hourly_eth_mainnet.sql @@ -1,20 +1,21 @@ -WITH token_hourly AS ( - SELECT +with token_hourly as ( + select ts, pool_id, collateral_type, rewards_usd - FROM + from {{ ref('fct_pool_rewards_token_hourly_eth_mainnet') }} ) -SELECT + +select ts, pool_id, collateral_type, - SUM(rewards_usd) AS rewards_usd -FROM + SUM(rewards_usd) as rewards_usd +from token_hourly -GROUP BY +group by ts, pool_id, collateral_type diff --git a/transformers/synthetix/models/marts/eth/mainnet/core/fct_pool_rewards_token_hourly_eth_mainnet.sql b/transformers/synthetix/models/marts/eth/mainnet/core/fct_pool_rewards_token_hourly_eth_mainnet.sql index ba3575f75..465a7809c 100644 --- a/transformers/synthetix/models/marts/eth/mainnet/core/fct_pool_rewards_token_hourly_eth_mainnet.sql +++ b/transformers/synthetix/models/marts/eth/mainnet/core/fct_pool_rewards_token_hourly_eth_mainnet.sql @@ -1,28 +1,32 @@ -WITH dim AS ( - SELECT - generate_series(DATE_TRUNC('hour', MIN(t.ts)), DATE_TRUNC('hour', MAX(t.ts)), '1 hour' :: INTERVAL) AS ts, +with dim as ( + select m.pool_id, - m.collateral_type - FROM + m.collateral_type, + generate_series( + date_trunc('hour', min(t.ts)), + date_trunc('hour', max(t.ts)), + '1 hour'::INTERVAL + ) as ts + from ( - SELECT - ts - FROM - {{ ref('fct_pool_debt_eth_mainnet') }} - ) AS t - CROSS JOIN ( - SELECT - DISTINCT pool_id, - collateral_type - FROM + select ts + from {{ ref('fct_pool_debt_eth_mainnet') }} - ) AS m - GROUP BY + ) as t + cross join ( + select distinct + pool_id, + collateral_type + from + {{ ref('fct_pool_debt_eth_mainnet') }} + ) as m + group by m.pool_id, m.collateral_type ), -rewards_distributed AS ( - SELECT + +rewards_distributed as ( + select ts, pool_id, collateral_type, @@ -31,11 +35,12 @@ rewards_distributed AS ( amount, ts_start, "duration" - FROM + from {{ ref('fct_pool_rewards_eth_mainnet') }} ), -hourly_distributions AS ( - SELECT + +hourly_distributions as ( + select dim.ts, dim.pool_id, dim.collateral_type, @@ -44,28 +49,31 @@ hourly_distributions AS ( r.amount, r.ts_start, r."duration", - ROW_NUMBER() over ( - PARTITION BY dim.ts, - dim.pool_id, - dim.collateral_type, - r.distributor - ORDER BY - r.ts_start DESC - ) AS distributor_index - FROM + row_number() over ( + partition by + dim.ts, + dim.pool_id, + dim.collateral_type, + r.distributor + order by + r.ts_start desc + ) as distributor_index + from dim - LEFT JOIN rewards_distributed r - ON dim.pool_id = r.pool_id - AND LOWER( - dim.collateral_type - ) = LOWER( - r.collateral_type - ) - AND dim.ts + '1 hour' :: INTERVAL >= r.ts_start - AND dim.ts < r.ts_start + r."duration" * '1 second' :: INTERVAL + left join rewards_distributed as r + on + dim.pool_id = r.pool_id + and lower( + dim.collateral_type + ) = lower( + r.collateral_type + ) + and dim.ts + '1 hour'::INTERVAL >= r.ts_start + and dim.ts < r.ts_start + r."duration" * '1 second'::INTERVAL ), -hourly_rewards AS ( - SELECT + +hourly_rewards as ( + select d.ts, d.pool_id, d.collateral_type, @@ -75,39 +83,42 @@ hourly_rewards AS ( -- get the hourly amount distributed d.amount / ( d."duration" / 3600 - ) AS hourly_amount, + ) as hourly_amount, -- get the amount of time distributed this hour -- use the smaller of those two intervals -- convert the interval to a number of hours -- multiply the result by the hourly amount to get the amount distributed this hour ( - EXTRACT( + extract( epoch - FROM - LEAST( - d."duration" / 3600 * '1 hour' :: INTERVAL, - d.ts + '1 hour' :: INTERVAL - GREATEST( - d.ts, - d.ts_start - ) + from + least( + d."duration" / 3600 * '1 hour'::INTERVAL, + d.ts + '1 hour'::INTERVAL - greatest( + d.ts, + d.ts_start ) + ) ) / 3600 ) * d.amount / ( d."duration" / 3600 - ) AS amount_distributed - FROM - hourly_distributions AS d - LEFT JOIN {{ ref('fct_prices_hourly_eth_mainnet') }} - p - ON d.ts = p.ts - AND d.token_symbol = p.market_symbol - WHERE + ) as amount_distributed + from + hourly_distributions as d + left join + {{ ref('fct_prices_hourly_eth_mainnet') }} + as p + on + d.ts = p.ts + and d.token_symbol = p.market_symbol + where d.distributor_index = 1 ) -SELECT + +select *, - amount_distributed * price AS rewards_usd -FROM + amount_distributed * price as rewards_usd +from hourly_rewards -WHERE - amount_distributed IS NOT NULL +where + amount_distributed is not null diff --git a/transformers/synthetix/models/marts/eth/mainnet/prices/fct_prices_eth_mainnet.sql b/transformers/synthetix/models/marts/eth/mainnet/prices/fct_prices_eth_mainnet.sql index bb8e252f7..dde4236c7 100644 --- a/transformers/synthetix/models/marts/eth/mainnet/prices/fct_prices_eth_mainnet.sql +++ b/transformers/synthetix/models/marts/eth/mainnet/prices/fct_prices_eth_mainnet.sql @@ -1,33 +1,35 @@ -WITH all_prices AS ( - SELECT +with all_prices as ( + select ts, - collateral_type AS market_address, - NULL AS market_symbol, - collateral_value / amount AS price - FROM + collateral_type as market_address, + null as market_symbol, + collateral_value / amount as price + from {{ ref('core_vault_collateral_eth_mainnet') }} - WHERE + where collateral_value > 0 ), -tokens AS ( - SELECT + +tokens as ( + select token_address, token_symbol - FROM + from {{ ref('eth_mainnet_tokens') }} ) -SELECT + +select p.ts, p.market_address, + p.price, COALESCE( t.token_symbol, p.market_symbol - ) AS market_symbol, - p.price -FROM - all_prices p - LEFT JOIN tokens t - ON LOWER( + ) as market_symbol +from + all_prices as p +left join tokens as t + on LOWER( p.market_address ) = LOWER( t.token_address diff --git a/transformers/synthetix/models/marts/eth/mainnet/prices/fct_prices_hourly_eth_mainnet.sql b/transformers/synthetix/models/marts/eth/mainnet/prices/fct_prices_hourly_eth_mainnet.sql index b141da93e..6e447a9fb 100644 --- a/transformers/synthetix/models/marts/eth/mainnet/prices/fct_prices_hourly_eth_mainnet.sql +++ b/transformers/synthetix/models/marts/eth/mainnet/prices/fct_prices_hourly_eth_mainnet.sql @@ -1,63 +1,72 @@ -WITH prices AS ( - SELECT - DISTINCT DATE_TRUNC( +with prices as ( + select distinct + market_symbol, + DATE_TRUNC( 'hour', ts - ) AS ts, - market_symbol, - LAST_VALUE(price) over (PARTITION BY DATE_TRUNC('hour', ts), market_symbol - ORDER BY - ts rows BETWEEN unbounded preceding - AND unbounded following) AS price - FROM + ) as ts, + LAST_VALUE(price) over ( + partition by DATE_TRUNC('hour', ts), market_symbol + order by + ts + rows between unbounded preceding + and unbounded following + ) as price + from {{ ref('fct_prices_eth_mainnet') }} ), -dim AS ( - SELECT - generate_series(DATE_TRUNC('hour', MIN(t.ts)), DATE_TRUNC('hour', MAX(t.ts)), '1 hour' :: INTERVAL) AS ts, - m.market_symbol - FROM + +dim as ( + select + m.market_symbol, + GENERATE_SERIES( + DATE_TRUNC('hour', MIN(t.ts)), + DATE_TRUNC('hour', MAX(t.ts)), + '1 hour'::INTERVAL + ) as ts + from ( - SELECT - ts - FROM - prices - ) AS t - CROSS JOIN ( - SELECT - DISTINCT market_symbol - FROM + select ts + from prices - ) AS m - GROUP BY + ) as t + cross join ( + select distinct market_symbol + from + prices + ) as m + group by m.market_symbol ), -ffill AS ( - SELECT + +ffill as ( + select dim.ts, dim.market_symbol, - last(prices.price) over ( - partition by dim.market_symbol - order by dim.ts + LAST(prices.price) over ( + partition by dim.market_symbol + order by dim.ts rows between unbounded preceding and current row ) as price - FROM + from dim - LEFT JOIN prices - ON dim.ts = prices.ts - AND dim.market_symbol = prices.market_symbol + left join prices + on + dim.ts = prices.ts + and dim.market_symbol = prices.market_symbol ), -hourly_prices AS ( - SELECT + +hourly_prices as ( + select ts, market_symbol, price - FROM + from ffill ) -SELECT - * -FROM + +select * +from hourly_prices -WHERE - price IS NOT NULL +where + price is not null diff --git a/transformers/synthetix/models/marts/optimism/mainnet/fct_v2_actions_optimism_mainnet.sql b/transformers/synthetix/models/marts/optimism/mainnet/fct_v2_actions_optimism_mainnet.sql index e2d05c35a..e37d1d493 100644 --- a/transformers/synthetix/models/marts/optimism/mainnet/fct_v2_actions_optimism_mainnet.sql +++ b/transformers/synthetix/models/marts/optimism/mainnet/fct_v2_actions_optimism_mainnet.sql @@ -1,16 +1,15 @@ -WITH combined_base AS ( - SELECT - * - FROM +with combined_base as ( + select * + from {{ ref('fct_v2_trades_optimism_mainnet') }} - UNION ALL - SELECT - * - FROM + union all + select * + from {{ ref('fct_v2_liquidations_optimism_mainnet') }} ), -all_base AS ( - SELECT + +all_base as ( + select id, ts, block_number, @@ -26,10 +25,10 @@ all_base AS ( fee, order_type, tracking_code - FROM + from combined_base ) -SELECT - * -FROM + +select * +from all_base diff --git a/transformers/synthetix/models/marts/optimism/mainnet/fct_v2_funding_optimism_mainnet.sql b/transformers/synthetix/models/marts/optimism/mainnet/fct_v2_funding_optimism_mainnet.sql index ad5deb952..a93d23238 100644 --- a/transformers/synthetix/models/marts/optimism/mainnet/fct_v2_funding_optimism_mainnet.sql +++ b/transformers/synthetix/models/marts/optimism/mainnet/fct_v2_funding_optimism_mainnet.sql @@ -4,42 +4,43 @@ post_hook = [ "create index if not exists idx_block_number on {{ this }} (block_number)", "create index if not exists idx_market on {{ this }} (market)"] ) }} -WITH funding AS ( +with funding as ( - SELECT + select block_number, market, - {{ convert_wei('funding_rate') }} AS funding_rate - FROM + {{ convert_wei('funding_rate') }} as funding_rate + from ( - SELECT + select block_number, market, funding_rate, ROW_NUMBER() over ( - PARTITION BY block_number, - market - ORDER BY - id DESC - ) AS rn - FROM + partition by + block_number, + market + order by + id desc + ) as rn + from {{ ref( 'v2_perp_funding_recomputed_optimism_mainnet' ) }} -{% if is_incremental() %} -WHERE - block_number > ( - SELECT - COALESCE(MAX(block_number), 0) - FROM - {{ this }}) - {% endif %} - ) AS subquery -WHERE - rn = 1 + {% if is_incremental() %} + where + block_number > ( + select COALESCE(MAX(block_number), 0) + from + {{ this }} + ) + {% endif %} + ) as subquery + where + rn = 1 ) -SELECT - * -FROM + +select * +from funding diff --git a/transformers/synthetix/models/marts/optimism/mainnet/fct_v2_liquidations_optimism_mainnet.sql b/transformers/synthetix/models/marts/optimism/mainnet/fct_v2_liquidations_optimism_mainnet.sql index 5b7be418b..c19d048b5 100644 --- a/transformers/synthetix/models/marts/optimism/mainnet/fct_v2_liquidations_optimism_mainnet.sql +++ b/transformers/synthetix/models/marts/optimism/mainnet/fct_v2_liquidations_optimism_mainnet.sql @@ -3,9 +3,9 @@ unique_key = 'id', ) }} -WITH liq_trades AS ( +with liq_trades as ( - SELECT + select id, block_timestamp, block_number, @@ -15,79 +15,85 @@ WITH liq_trades AS ( market, margin, trade_size, - COALESCE(LAG("size", 1) over (PARTITION BY market, account - ORDER BY - id), 0) AS last_size, "size", skew, - fee - FROM + fee, + COALESCE(LAG("size", 1) over ( + partition by market, account + order by + id + ), 0) as last_size + from {{ ref('v2_perp_position_modified_optimism_mainnet') }} ), -liq_events AS ( - SELECT + +liq_events as ( + select block_number, account, market, transaction_hash, total_fee - FROM + from {{ ref('v2_perp_position_liquidated_optimism_mainnet') }} -{% if is_incremental() %} -WHERE - block_number > ( - SELECT - COALESCE(MAX(block_number), 0) - FROM - {{ this }}) - {% endif %} - ), - liq_base AS ( - SELECT - lt.id, - lt.block_timestamp, - lt.block_number, - lt.transaction_hash, - lt.last_price, - lt.account, - lt.market, - lt.margin, - -1 * lt.last_size AS trade_size, - lt.last_size, - lt.size, - lt.skew, - lt.fee + le.total_fee AS fee, - 'liquidation' AS order_type, - NULL AS tracking_code - FROM - liq_trades lt - JOIN liq_events le - ON lt.block_number = le.block_number - AND lt.account = le.account - AND lt.market = le.market - AND lt.transaction_hash = le.transaction_hash - WHERE - lt.margin = 0 - AND lt.trade_size = 0 - AND lt.size = 0 - AND lt.last_size != 0 - ) -SELECT + {% if is_incremental() %} + where + block_number > ( + select COALESCE(MAX(block_number), 0) + from + {{ this }} + ) + {% endif %} +), + +liq_base as ( + select + lt.id, + lt.block_timestamp, + lt.block_number, + lt.transaction_hash, + lt.last_price, + lt.account, + lt.market, + lt.margin, + lt.last_size, + lt.size, + lt.skew, + 'liquidation' as order_type, + null as tracking_code, + -1 * lt.last_size as trade_size, + lt.fee + le.total_fee as fee + from + liq_trades as lt + inner join liq_events as le + on + lt.block_number = le.block_number + and lt.account = le.account + and lt.market = le.market + and lt.transaction_hash = le.transaction_hash + where + lt.margin = 0 + and lt.trade_size = 0 + and lt.size = 0 + and lt.last_size != 0 +) + +select id, - block_timestamp AS ts, + block_timestamp as ts, block_number, transaction_hash, - {{ convert_wei('last_price') }} AS price, + {{ convert_wei('last_price') }} as price, account, market, - {{ convert_wei('margin') }} AS margin, - {{ convert_wei('trade_size') }} AS trade_size, - {{ convert_wei('size') }} AS "size", - {{ convert_wei('last_size') }} AS last_size, - {{ convert_wei('skew') }} AS skew, - {{ convert_wei('fee') }} AS fee, - 'liquidation' AS order_type, - NULL AS tracking_code -FROM + {{ convert_wei('margin') }} as margin, + {{ convert_wei('trade_size') }} as trade_size, + {{ convert_wei('size') }} as "size", + {{ convert_wei('last_size') }} as last_size, + {{ convert_wei('skew') }} as skew, + {{ convert_wei('fee') }} as fee, + 'liquidation' as order_type, + null as tracking_code +from liq_base diff --git a/transformers/synthetix/models/marts/optimism/mainnet/fct_v2_market_stats_optimism_mainnet.sql b/transformers/synthetix/models/marts/optimism/mainnet/fct_v2_market_stats_optimism_mainnet.sql index 13d86f168..64f9bfc81 100644 --- a/transformers/synthetix/models/marts/optimism/mainnet/fct_v2_market_stats_optimism_mainnet.sql +++ b/transformers/synthetix/models/marts/optimism/mainnet/fct_v2_market_stats_optimism_mainnet.sql @@ -4,60 +4,61 @@ post_hook = [ "create index if not exists idx_id on {{ this }} (id)", "create index if not exists idx_ts on {{ this }} (ts)", "create index if not exists idx_market on {{ this }} (market)"] ) }} -WITH trades AS ( +with trades as ( - SELECT + select id, ts, block_number, market, - fee AS exchange_fees, - 0 AS liquidation_fees, - price * ABS(trade_size) AS volume, - 0 AS amount_liquidated, - 1 AS trades, - 0 AS liquidations, - tracking_code - FROM + fee as exchange_fees, + 0 as liquidation_fees, + 0 as amount_liquidated, + 1 as trades, + 0 as liquidations, + tracking_code, + price * ABS(trade_size) as volume + from {{ ref( 'fct_v2_actions_optimism_mainnet' ) }} - WHERE + where order_type = 'trade' ), -liquidations AS ( - SELECT + +liquidations as ( + select id, ts, block_number, market, - 0 AS exchange_fees, - fee AS liquidation_fees, - 0 AS volume, - price * ABS(trade_size) AS amount_liquidated, - 0 AS trades, - 1 AS liquidations, - tracking_code - FROM + 0 as exchange_fees, + fee as liquidation_fees, + 0 as volume, + 0 as trades, + 1 as liquidations, + tracking_code, + price * ABS(trade_size) as amount_liquidated + from {{ ref( 'fct_v2_actions_optimism_mainnet' ) }} - WHERE + where order_type = 'liquidation' ), -actions AS ( - SELECT - * - FROM + +actions as ( + select * + from trades - UNION ALL - SELECT - * - FROM + union all + select * + from liquidations ), -oi AS ( - SELECT + +oi as ( + select id, ts, market, @@ -70,23 +71,23 @@ oi AS ( long_oi_usd, short_oi_usd, total_oi_usd - FROM + from {{ ref( 'fct_v2_open_interest_optimism_mainnet' ) }} -{% if is_incremental() %} -WHERE - id > ( - SELECT - MAX(id) - FROM - {{ this }} - ) -{% endif %} + {% if is_incremental() %} + where + id > ( + select MAX(id) + from + {{ this }} + ) + {% endif %} ), -market_stats AS ( - SELECT + +market_stats as ( + select actions.ts, actions.id, actions.market, @@ -111,64 +112,64 @@ market_stats AS ( SUM( actions.exchange_fees ) over ( - PARTITION BY actions.market - ORDER BY + partition by actions.market + order by actions.id - ) AS cumulative_exchange_fees, + ) as cumulative_exchange_fees, SUM( actions.liquidation_fees ) over ( - PARTITION BY actions.market - ORDER BY + partition by actions.market + order by actions.id - ) AS cumulative_liquidation_fees, + ) as cumulative_liquidation_fees, SUM( actions.volume ) over ( - PARTITION BY actions.market - ORDER BY + partition by actions.market + order by actions.id - ) AS cumulative_volume, + ) as cumulative_volume, SUM( actions.amount_liquidated ) over ( - PARTITION BY actions.market - ORDER BY + partition by actions.market + order by actions.id - ) AS cumulative_amount_liquidated, + ) as cumulative_amount_liquidated, SUM( actions.trades ) over ( - PARTITION BY actions.market - ORDER BY + partition by actions.market + order by actions.id - ) AS cumulative_trades, + ) as cumulative_trades, SUM( actions.liquidations ) over ( - PARTITION BY actions.market - ORDER BY + partition by actions.market + order by actions.id - ) AS cumulative_liquidations - FROM + ) as cumulative_liquidations + from actions - LEFT JOIN oi - ON actions.id = oi.id - LEFT JOIN {{ ref('fct_v2_funding_optimism_mainnet') }} AS funding - ON actions.block_number = funding.block_number - AND actions.market = funding.market + left join oi + on actions.id = oi.id + left join {{ ref('fct_v2_funding_optimism_mainnet') }} as funding + on + actions.block_number = funding.block_number + and actions.market = funding.market ) -SELECT - * -FROM + +select * +from market_stats {% if is_incremental() %} -WHERE - id > ( - SELECT - MAX(id) - FROM - {{ this }} - ) + where + id > ( + select MAX(id) + from + {{ this }} + ) {% endif %} diff --git a/transformers/synthetix/models/marts/optimism/mainnet/fct_v2_open_interest_optimism_mainnet.sql b/transformers/synthetix/models/marts/optimism/mainnet/fct_v2_open_interest_optimism_mainnet.sql index c374af4a5..cf4c3c61f 100644 --- a/transformers/synthetix/models/marts/optimism/mainnet/fct_v2_open_interest_optimism_mainnet.sql +++ b/transformers/synthetix/models/marts/optimism/mainnet/fct_v2_open_interest_optimism_mainnet.sql @@ -1,5 +1,5 @@ -WITH oi_base AS ( - SELECT +with oi_base as ( + select id, ts, market, @@ -7,116 +7,143 @@ WITH oi_base AS ( trade_size, price, skew, - CASE - WHEN last_size > 0 -- long cross - AND "size" < 0 THEN -1 * last_size - WHEN last_size < 0 --short cross - AND "size" > 0 THEN "size" - WHEN "size" > 0 -- long increase - AND "size" > last_size THEN ( - "size" - last_size - ) - WHEN "size" >= 0 -- long decrease - AND "size" < last_size THEN ( - "size" - last_size - ) - ELSE 0 - END AS long_oi_change, - CASE - WHEN last_size > 0 -- long cross - AND "size" < 0 THEN "size" * -1 - WHEN last_size < 0 --short cross - AND "size" > 0 THEN last_size - WHEN "size" < 0 -- short increase - AND "size" < last_size THEN ( - last_size - "size" - ) - WHEN "size" <= 0 -- short decrease - AND "size" > last_size THEN ( - last_size - "size" - ) - ELSE 0 - END AS short_oi_change, - -- get the cumulative sum - SUM( - CASE - WHEN last_size > 0 -- long cross - AND "size" < 0 THEN -1 * last_size - WHEN last_size < 0 --short cross - AND "size" > 0 THEN "size" - WHEN "size" > 0 -- long increase - AND "size" > last_size THEN ( + case + when + last_size > 0 -- long cross + and "size" < 0 then -1 * last_size + when + last_size < 0 --short cross + and "size" > 0 then "size" + when + "size" > 0 -- long increase + and "size" > last_size + then ( "size" - last_size ) - WHEN "size" >= 0 -- long decrease - AND "size" < last_size THEN ( + when + "size" >= 0 -- long decrease + and "size" < last_size + then ( "size" - last_size ) - ELSE 0 - END - ) over ( - PARTITION BY market - ORDER BY - id - ) AS long_oi, - SUM( - CASE - WHEN last_size > 0 -- long cross - AND "size" < 0 THEN "size" * -1 - WHEN last_size < 0 --short cross - AND "size" > 0 THEN last_size - WHEN "size" < 0 -- short increase - AND "size" < last_size THEN ( + else 0 + end as long_oi_change, + case + when + last_size > 0 -- long cross + and "size" < 0 then "size" * -1 + when + last_size < 0 --short cross + and "size" > 0 then last_size + when + "size" < 0 -- short increase + and "size" < last_size + then ( last_size - "size" ) - WHEN "size" <= 0 -- short decrease - AND "size" > last_size THEN ( + when + "size" <= 0 -- short decrease + and "size" > last_size + then ( last_size - "size" ) - ELSE 0 - END + else 0 + end as short_oi_change, + -- get the cumulative sum + SUM( + case + when + last_size > 0 -- long cross + and "size" < 0 then -1 * last_size + when + last_size < 0 --short cross + and "size" > 0 then "size" + when + "size" > 0 -- long increase + and "size" > last_size + then ( + "size" - last_size + ) + when + "size" >= 0 -- long decrease + and "size" < last_size + then ( + "size" - last_size + ) + else 0 + end ) over ( - PARTITION BY market - ORDER BY + partition by market + order by id - ) AS short_oi - FROM + ) as long_oi, + SUM( + case + when + last_size > 0 -- long cross + and "size" < 0 then "size" * -1 + when + last_size < 0 --short cross + and "size" > 0 then last_size + when + "size" < 0 -- short increase + and "size" < last_size + then ( + last_size - "size" + ) + when + "size" <= 0 -- short decrease + and "size" > last_size + then ( + last_size - "size" + ) + else 0 + end + ) over ( + partition by market + order by + id + ) as short_oi + from {{ ref('fct_v2_actions_optimism_mainnet') }} ) -SELECT + +select id, ts, market, order_type, trade_size, price, + long_oi, + short_oi, COALESCE( skew, long_oi - short_oi - ) AS skew, - long_oi, - short_oi, - CASE - WHEN ( - long_oi + short_oi - ) > 0 THEN long_oi / ( - long_oi + short_oi - ) - ELSE 0 - END AS long_oi_pct, - CASE - WHEN ( + ) as skew, + case + when ( long_oi + short_oi - ) > 0 THEN short_oi / ( + ) > 0 + then long_oi / ( + long_oi + short_oi + ) + else 0 + end as long_oi_pct, + case + when ( long_oi + short_oi - ) - ELSE 0 - END AS short_oi_pct, - long_oi + short_oi AS total_oi, - long_oi * price AS long_oi_usd, - short_oi * price AS short_oi_usd, + ) > 0 + then short_oi / ( + long_oi + short_oi + ) + else 0 + end as short_oi_pct, + long_oi + short_oi as total_oi, + long_oi * price as long_oi_usd, + short_oi * price as short_oi_usd, ( long_oi + short_oi - ) * price AS total_oi_usd -FROM + ) * price as total_oi_usd +from oi_base diff --git a/transformers/synthetix/models/marts/optimism/mainnet/fct_v2_trade_tracking_optimism_mainnet.sql b/transformers/synthetix/models/marts/optimism/mainnet/fct_v2_trade_tracking_optimism_mainnet.sql index f07115fa0..73690518c 100644 --- a/transformers/synthetix/models/marts/optimism/mainnet/fct_v2_trade_tracking_optimism_mainnet.sql +++ b/transformers/synthetix/models/marts/optimism/mainnet/fct_v2_trade_tracking_optimism_mainnet.sql @@ -4,61 +4,66 @@ post_hook = [ "create index if not exists idx_id on {{ this }} (id)"] ) }} -WITH order_submit AS ( +with order_submit as ( - SELECT + select block_timestamp, contract, account, tracking_code - FROM + from {{ ref('v2_perp_delayed_order_submitted_optimism_mainnet') }} ), -position_modified AS ( - SELECT + +position_modified as ( + select id, block_number, contract, account, block_timestamp - FROM + from {{ ref('v2_perp_position_modified_optimism_mainnet') }} - WHERE + where trade_size != 0 -{% if is_incremental() %} -AND block_number > ( - SELECT - COALESCE(MAX(block_number), 0) - FROM - {{ this }}) - {% endif %} + {% if is_incremental() %} + and block_number > ( + select COALESCE(MAX(block_number), 0) + from + {{ this }} + ) + {% endif %} ), -combined AS ( - SELECT + +combined as ( + select position_modified.id, position_modified.block_number, order_submit.tracking_code, ROW_NUMBER() over ( - PARTITION BY position_modified.contract, - position_modified.account, - position_modified.id - ORDER BY - order_submit.block_timestamp DESC - ) AS rn - FROM + partition by + position_modified.contract, + position_modified.account, + position_modified.id + order by + order_submit.block_timestamp desc + ) as rn + from position_modified - JOIN order_submit - ON position_modified.contract = order_submit.contract - AND position_modified.account = order_submit.account - AND position_modified.block_timestamp BETWEEN order_submit.block_timestamp - AND order_submit.block_timestamp + INTERVAL '5' MINUTE + inner join order_submit + on + position_modified.contract = order_submit.contract + and position_modified.account = order_submit.account + and position_modified.block_timestamp between order_submit.block_timestamp + and order_submit.block_timestamp + interval '5' minute ) -SELECT + +select id, block_number, tracking_code -FROM +from combined -WHERE +where rn = 1 diff --git a/transformers/synthetix/models/marts/optimism/mainnet/fct_v2_trades_optimism_mainnet.sql b/transformers/synthetix/models/marts/optimism/mainnet/fct_v2_trades_optimism_mainnet.sql index ad36132d7..1fa1c0c0c 100644 --- a/transformers/synthetix/models/marts/optimism/mainnet/fct_v2_trades_optimism_mainnet.sql +++ b/transformers/synthetix/models/marts/optimism/mainnet/fct_v2_trades_optimism_mainnet.sql @@ -4,9 +4,9 @@ post_hook = [ "create index if not exists idx_id on {{ this }} (id)", "create index if not exists idx_ts on {{ this }} (ts)", "create index if not exists idx_market on {{ this }} (market)"] ) }} -WITH trade_base AS ( +with trade_base as ( - SELECT + select id, block_timestamp, block_number, @@ -17,45 +17,52 @@ WITH trade_base AS ( margin, trade_size, "size", - COALESCE(LAG("size", 1) over (PARTITION BY market, account - ORDER BY - id), 0) AS last_size, skew, fee, - 'trade' AS order_type - FROM + 'trade' as order_type, + COALESCE(LAG("size", 1) over ( + partition by market, account + order by + id + ), 0) as last_size + from {{ ref('v2_perp_position_modified_optimism_mainnet') }} -{% if is_incremental() %} -WHERE - block_number > ( - SELECT - COALESCE(MAX(block_number), 0) - FROM - {{ this }}) - {% endif %} - ) -SELECT + {% if is_incremental() %} + where + block_number > ( + select COALESCE(MAX(block_number), 0) + from + {{ this }} + ) + {% endif %} +) + +select trade_base.id, - block_timestamp AS ts, + block_timestamp as ts, trade_base.block_number, transaction_hash, - {{ convert_wei('last_price') }} AS price, + {{ convert_wei('last_price') }} as price, account, market, - {{ convert_wei('margin') }} AS margin, - {{ convert_wei('trade_size') }} AS trade_size, - {{ convert_wei('size') }} AS "size", - {{ convert_wei('last_size') }} AS last_size, - {{ convert_wei('skew') }} AS skew, - {{ convert_wei('fee') }} AS fee, + {{ convert_wei('margin') }} as margin, + {{ convert_wei('trade_size') }} as trade_size, + {{ convert_wei('size') }} as "size", + {{ convert_wei('last_size') }} as last_size, + {{ convert_wei('skew') }} as skew, + {{ convert_wei('fee') }} as fee, order_type, UPPER( - COALESCE({{ convert_hex('tracking_code.tracking_code') }}, 'NO TRACKING CODE')) AS tracking_code - FROM - trade_base - LEFT JOIN {{ ref('fct_v2_trade_tracking_optimism_mainnet') }} - tracking_code - ON trade_base.id = tracking_code.id - WHERE - trade_size != 0 + COALESCE( + {{ convert_hex('tracking_code.tracking_code') }}, 'NO TRACKING CODE' + ) + ) as tracking_code +from + trade_base +left join + {{ ref('fct_v2_trade_tracking_optimism_mainnet') }} + as tracking_code + on trade_base.id = tracking_code.id +where + trade_size != 0 diff --git a/transformers/synthetix/models/marts/optimism/mainnet/fct_v2_transfers_optimism_mainnet.sql b/transformers/synthetix/models/marts/optimism/mainnet/fct_v2_transfers_optimism_mainnet.sql index 73bf88b69..3818a9cb2 100644 --- a/transformers/synthetix/models/marts/optimism/mainnet/fct_v2_transfers_optimism_mainnet.sql +++ b/transformers/synthetix/models/marts/optimism/mainnet/fct_v2_transfers_optimism_mainnet.sql @@ -1,26 +1,26 @@ -WITH events AS ( - SELECT - * - FROM +with events as ( + select * + from {{ ref('v2_perp_margin_transferred_optimism_mainnet') }} ) -SELECT + +select id, transaction_hash, - block_timestamp AS ts, + block_timestamp as ts, block_number, market, account, margin_delta, -- calculate cumulative net delta SUM(margin_delta) over ( - PARTITION BY market - ORDER BY + partition by market + order by id - ) AS net_market_transfers, + ) as net_market_transfers, SUM(margin_delta) over ( - ORDER BY + order by id - ) AS net_transfers -FROM + ) as net_transfers +from events diff --git a/transformers/synthetix/models/marts/optimism/mainnet/stats/fct_v2_integrator_daily_optimism_mainnet.sql b/transformers/synthetix/models/marts/optimism/mainnet/stats/fct_v2_integrator_daily_optimism_mainnet.sql index 1f668bb20..224a1522c 100644 --- a/transformers/synthetix/models/marts/optimism/mainnet/stats/fct_v2_integrator_daily_optimism_mainnet.sql +++ b/transformers/synthetix/models/marts/optimism/mainnet/stats/fct_v2_integrator_daily_optimism_mainnet.sql @@ -1,93 +1,104 @@ -WITH aggregated_data AS ( - SELECT +with aggregated_data as ( + select DATE_TRUNC( 'day', ts - ) AS ts, + ) as ts, tracking_code, - SUM(exchange_fees) AS exchange_fees, - SUM(volume) AS volume, - SUM(trades) AS trades - FROM + SUM(exchange_fees) as exchange_fees, + SUM(volume) as volume, + SUM(trades) as trades + from {{ ref('fct_v2_market_stats_optimism_mainnet') }} - GROUP BY + group by 1, 2 ), -date_series AS ( - SELECT + +date_series as ( + select q.ts, q2.tracking_code - FROM + from ( - SELECT - generate_series(MIN(DATE_TRUNC('day', ts)), MAX(DATE_TRUNC('day', ts)), '1 day' :: INTERVAL) AS ts - FROM + select + GENERATE_SERIES( + MIN(DATE_TRUNC('day', ts)), + MAX(DATE_TRUNC('day', ts)), + '1 day'::INTERVAL + ) as ts + from aggregated_data - ) AS q - CROSS JOIN ( - SELECT - DISTINCT tracking_code - FROM - aggregated_data - ) AS q2 + ) as q + cross join ( + select distinct tracking_code + from + aggregated_data + ) as q2 ), -traders AS ( - SELECT + +traders as ( + select ds.ts, ds.tracking_code, - COALESCE(COUNT(DISTINCT account), 0) AS traders - FROM - date_series ds - LEFT JOIN {{ ref('fct_v2_actions_optimism_mainnet') }} - ad - ON ds.ts = DATE_TRUNC( + COALESCE(COUNT(distinct account), 0) as traders + from + date_series as ds + left join + {{ ref('fct_v2_actions_optimism_mainnet') }} + as ad + on ds.ts = DATE_TRUNC( 'day', ad.ts ) - AND ds.tracking_code = ad.tracking_code - GROUP BY + and ds.tracking_code = ad.tracking_code + group by 1, 2 ), -complete_data AS ( - SELECT + +complete_data as ( + select ds.ts, ds.tracking_code, + t.traders, COALESCE( ad.exchange_fees, 0 - ) AS exchange_fees, + ) as exchange_fees, COALESCE( ad.volume, 0 - ) AS volume, + ) as volume, COALESCE( ad.trades, 0 - ) AS trades, - t.traders - FROM - date_series ds - LEFT JOIN aggregated_data ad - ON ds.ts = ad.ts - AND ds.tracking_code = ad.tracking_code - LEFT JOIN traders t - ON ds.ts = t.ts - AND ds.tracking_code = t.tracking_code + ) as trades + from + date_series as ds + left join aggregated_data as ad + on + ds.ts = ad.ts + and ds.tracking_code = ad.tracking_code + left join traders as t + on + ds.ts = t.ts + and ds.tracking_code = t.tracking_code ), -total AS ( - SELECT + +total as ( + select ts, - SUM(exchange_fees) AS exchange_fees_total, - SUM(trades) AS trades_total, - SUM(volume) AS volume_total - FROM + SUM(exchange_fees) as exchange_fees_total, + SUM(trades) as trades_total, + SUM(volume) as volume_total + from complete_data - GROUP BY + group by 1 ) -SELECT + +select complete_data.ts, tracking_code, exchange_fees, @@ -97,34 +108,34 @@ SELECT trades, trades_total, traders, - CASE - WHEN volume_total = 0 THEN 0 - ELSE complete_data.volume / volume_total - END AS volume_share, - CASE - WHEN trades_total = 0 THEN 0 - ELSE trades / trades_total - END AS trades_share, - CASE - WHEN exchange_fees_total = 0 THEN 0 - ELSE exchange_fees / exchange_fees_total - END AS exchange_fees_share, + case + when volume_total = 0 then 0 + else complete_data.volume / volume_total + end as volume_share, + case + when trades_total = 0 then 0 + else trades / trades_total + end as trades_share, + case + when exchange_fees_total = 0 then 0 + else exchange_fees / exchange_fees_total + end as exchange_fees_share, SUM(exchange_fees) over ( - PARTITION BY tracking_code - ORDER BY + partition by tracking_code + order by complete_data.ts - ) AS cumulative_exchange_fees, + ) as cumulative_exchange_fees, SUM(volume) over ( - PARTITION BY tracking_code - ORDER BY + partition by tracking_code + order by complete_data.ts - ) AS cumulative_volume, + ) as cumulative_volume, SUM(trades) over ( - PARTITION BY tracking_code - ORDER BY + partition by tracking_code + order by complete_data.ts - ) AS cumulative_trades -FROM + ) as cumulative_trades +from complete_data - JOIN total - ON complete_data.ts = total.ts +inner join total + on complete_data.ts = total.ts diff --git a/transformers/synthetix/models/marts/optimism/mainnet/stats/fct_v2_integrator_hourly_optimism_mainnet.sql b/transformers/synthetix/models/marts/optimism/mainnet/stats/fct_v2_integrator_hourly_optimism_mainnet.sql index 626a82f37..6f9c6a58a 100644 --- a/transformers/synthetix/models/marts/optimism/mainnet/stats/fct_v2_integrator_hourly_optimism_mainnet.sql +++ b/transformers/synthetix/models/marts/optimism/mainnet/stats/fct_v2_integrator_hourly_optimism_mainnet.sql @@ -1,93 +1,104 @@ -WITH aggregated_data AS ( - SELECT +with aggregated_data as ( + select DATE_TRUNC( 'hour', ts - ) AS ts, + ) as ts, tracking_code, - SUM(exchange_fees) AS exchange_fees, - SUM(volume) AS volume, - SUM(trades) AS trades - FROM + SUM(exchange_fees) as exchange_fees, + SUM(volume) as volume, + SUM(trades) as trades + from {{ ref('fct_v2_market_stats_optimism_mainnet') }} - GROUP BY + group by 1, 2 ), -date_series AS ( - SELECT + +date_series as ( + select q.ts, q2.tracking_code - FROM + from ( - SELECT - generate_series(MIN(DATE_TRUNC('hour', ts)), MAX(DATE_TRUNC('hour', ts)), '1 hour' :: INTERVAL) AS ts - FROM + select + GENERATE_SERIES( + MIN(DATE_TRUNC('hour', ts)), + MAX(DATE_TRUNC('hour', ts)), + '1 hour'::INTERVAL + ) as ts + from aggregated_data - ) AS q - CROSS JOIN ( - SELECT - DISTINCT tracking_code - FROM - aggregated_data - ) AS q2 + ) as q + cross join ( + select distinct tracking_code + from + aggregated_data + ) as q2 ), -traders AS ( - SELECT + +traders as ( + select ds.ts, ds.tracking_code, - COALESCE(COUNT(DISTINCT account), 0) AS traders - FROM - date_series ds - LEFT JOIN {{ ref('fct_v2_actions_optimism_mainnet') }} - ad - ON ds.ts = DATE_TRUNC( + COALESCE(COUNT(distinct account), 0) as traders + from + date_series as ds + left join + {{ ref('fct_v2_actions_optimism_mainnet') }} + as ad + on ds.ts = DATE_TRUNC( 'hour', ad.ts ) - AND ds.tracking_code = ad.tracking_code - GROUP BY + and ds.tracking_code = ad.tracking_code + group by 1, 2 ), -complete_data AS ( - SELECT + +complete_data as ( + select ds.ts, ds.tracking_code, + t.traders, COALESCE( ad.exchange_fees, 0 - ) AS exchange_fees, + ) as exchange_fees, COALESCE( ad.volume, 0 - ) AS volume, + ) as volume, COALESCE( ad.trades, 0 - ) AS trades, - t.traders - FROM - date_series ds - LEFT JOIN aggregated_data ad - ON ds.ts = ad.ts - AND ds.tracking_code = ad.tracking_code - LEFT JOIN traders t - ON ds.ts = t.ts - AND ds.tracking_code = t.tracking_code + ) as trades + from + date_series as ds + left join aggregated_data as ad + on + ds.ts = ad.ts + and ds.tracking_code = ad.tracking_code + left join traders as t + on + ds.ts = t.ts + and ds.tracking_code = t.tracking_code ), -total AS ( - SELECT + +total as ( + select ts, - SUM(exchange_fees) AS exchange_fees_total, - SUM(trades) AS trades_total, - SUM(volume) AS volume_total - FROM + SUM(exchange_fees) as exchange_fees_total, + SUM(trades) as trades_total, + SUM(volume) as volume_total + from complete_data - GROUP BY + group by 1 ) -SELECT + +select complete_data.ts, tracking_code, exchange_fees, @@ -97,34 +108,34 @@ SELECT trades, trades_total, traders, - CASE - WHEN volume_total = 0 THEN 0 - ELSE complete_data.volume / volume_total - END AS volume_share, - CASE - WHEN trades_total = 0 THEN 0 - ELSE trades / trades_total - END AS trades_share, - CASE - WHEN exchange_fees_total = 0 THEN 0 - ELSE exchange_fees / exchange_fees_total - END AS exchange_fees_share, + case + when volume_total = 0 then 0 + else complete_data.volume / volume_total + end as volume_share, + case + when trades_total = 0 then 0 + else trades / trades_total + end as trades_share, + case + when exchange_fees_total = 0 then 0 + else exchange_fees / exchange_fees_total + end as exchange_fees_share, SUM(exchange_fees) over ( - PARTITION BY tracking_code - ORDER BY + partition by tracking_code + order by complete_data.ts - ) AS cumulative_exchange_fees, + ) as cumulative_exchange_fees, SUM(volume) over ( - PARTITION BY tracking_code - ORDER BY + partition by tracking_code + order by complete_data.ts - ) AS cumulative_volume, + ) as cumulative_volume, SUM(trades) over ( - PARTITION BY tracking_code - ORDER BY + partition by tracking_code + order by complete_data.ts - ) AS cumulative_trades -FROM + ) as cumulative_trades +from complete_data - JOIN total - ON complete_data.ts = total.ts +inner join total + on complete_data.ts = total.ts diff --git a/transformers/synthetix/models/marts/optimism/mainnet/stats/fct_v2_market_daily_optimism_mainnet.sql b/transformers/synthetix/models/marts/optimism/mainnet/stats/fct_v2_market_daily_optimism_mainnet.sql index ef4336548..0848f9ad6 100644 --- a/transformers/synthetix/models/marts/optimism/mainnet/stats/fct_v2_market_daily_optimism_mainnet.sql +++ b/transformers/synthetix/models/marts/optimism/mainnet/stats/fct_v2_market_daily_optimism_mainnet.sql @@ -1,33 +1,34 @@ -WITH raw_data AS ( - SELECT +with raw_data as ( + select DATE_TRUNC( 'day', ts - ) AS ts, + ) as ts, market, - MAX(id) AS max_id, - SUM(exchange_fees) AS exchange_fees, - SUM(liquidation_fees) AS liquidation_fees, - SUM(volume) AS volume, - SUM(amount_liquidated) AS amount_liquidated, - SUM(trades) AS trades, - SUM(liquidations) AS liquidations - FROM + MAX(id) as max_id, + SUM(exchange_fees) as exchange_fees, + SUM(liquidation_fees) as liquidation_fees, + SUM(volume) as volume, + SUM(amount_liquidated) as amount_liquidated, + SUM(trades) as trades, + SUM(liquidations) as liquidations + from {{ ref('fct_v2_market_stats_optimism_mainnet') }} - GROUP BY + group by 1, 2 ), -aggregated_data AS ( - SELECT - A.ts, - A.market, - A.exchange_fees, - A.liquidation_fees, - A.volume, - A.amount_liquidated, - A.trades, - A.liquidations, + +aggregated_data as ( + select + a.ts, + a.market, + a.exchange_fees, + a.liquidation_fees, + a.volume, + a.amount_liquidated, + a.trades, + a.liquidations, b.long_oi_usd, b.short_oi_usd, b.total_oi_usd, @@ -37,134 +38,151 @@ aggregated_data AS ( b.cumulative_amount_liquidated, b.cumulative_trades, b.cumulative_liquidations - FROM - raw_data A - JOIN {{ ref('fct_v2_market_stats_optimism_mainnet') }} - b - ON A.max_id = b.id + from + raw_data as a + inner join + {{ ref('fct_v2_market_stats_optimism_mainnet') }} + as b + on a.max_id = b.id ), -date_series AS ( - SELECT + +date_series as ( + select q.ts, q2.market - FROM + from ( - SELECT - generate_series(MIN(DATE_TRUNC('day', ts)), MAX(DATE_TRUNC('day', ts)), '1 day' :: INTERVAL) AS ts - FROM - aggregated_data - ) AS q - CROSS JOIN ( - SELECT - DISTINCT market - FROM + select + GENERATE_SERIES( + MIN(DATE_TRUNC('day', ts)), + MAX(DATE_TRUNC('day', ts)), + '1 day'::INTERVAL + ) as ts + from aggregated_data - ) AS q2 + ) as q + cross join ( + select distinct market + from + aggregated_data + ) as q2 ), -gap_data AS ( - SELECT + +gap_data as ( + select ds.ts, ds.market, + ad.long_oi_usd, + ad.short_oi_usd, + ad.total_oi_usd, + ad.cumulative_exchange_fees, + ad.cumulative_liquidation_fees, + ad.cumulative_volume, + ad.cumulative_amount_liquidated, + ad.cumulative_trades, + ad.cumulative_liquidations, COALESCE( ad.exchange_fees, 0 - ) AS exchange_fees, + ) as exchange_fees, COALESCE( ad.liquidation_fees, 0 - ) AS liquidation_fees, + ) as liquidation_fees, COALESCE( ad.volume, 0 - ) AS volume, + ) as volume, COALESCE( ad.amount_liquidated, 0 - ) AS amount_liquidated, + ) as amount_liquidated, COALESCE( ad.trades, 0 - ) AS trades, + ) as trades, COALESCE( ad.liquidations, 0 - ) AS liquidations, - ad.long_oi_usd, - ad.short_oi_usd, - ad.total_oi_usd, - ad.cumulative_exchange_fees, - ad.cumulative_liquidation_fees, - ad.cumulative_volume, - ad.cumulative_amount_liquidated, - ad.cumulative_trades, - ad.cumulative_liquidations - FROM - date_series ds - LEFT JOIN aggregated_data ad - ON ds.ts = ad.ts - AND ds.market = ad.market + ) as liquidations + from + date_series as ds + left join aggregated_data as ad + on + ds.ts = ad.ts + and ds.market = ad.market ), -agg_data AS ( - SELECT + +agg_data as ( + select ts, market, FIRST_VALUE(long_oi_usd) over ( - PARTITION BY market, - value_partition - ORDER BY + partition by + market, + value_partition + order by ts - ) long_oi_usd, + ) as long_oi_usd, FIRST_VALUE(short_oi_usd) over ( - PARTITION BY market, - value_partition - ORDER BY + partition by + market, + value_partition + order by ts - ) short_oi_usd, + ) as short_oi_usd, FIRST_VALUE(total_oi_usd) over ( - PARTITION BY market, - value_partition - ORDER BY + partition by + market, + value_partition + order by ts - ) total_oi_usd, + ) as total_oi_usd, FIRST_VALUE(cumulative_exchange_fees) over ( - PARTITION BY market, - value_partition - ORDER BY + partition by + market, + value_partition + order by ts - ) cumulative_exchange_fees, + ) as cumulative_exchange_fees, FIRST_VALUE(cumulative_liquidation_fees) over ( - PARTITION BY market, - value_partition - ORDER BY + partition by + market, + value_partition + order by ts - ) cumulative_liquidation_fees, + ) as cumulative_liquidation_fees, FIRST_VALUE(cumulative_volume) over ( - PARTITION BY market, - value_partition - ORDER BY + partition by + market, + value_partition + order by ts - ) cumulative_volume, + ) as cumulative_volume, FIRST_VALUE(cumulative_amount_liquidated) over ( - PARTITION BY market, - value_partition - ORDER BY + partition by + market, + value_partition + order by ts - ) cumulative_amount_liquidated, + ) as cumulative_amount_liquidated, FIRST_VALUE(cumulative_trades) over ( - PARTITION BY market, - value_partition - ORDER BY + partition by + market, + value_partition + order by ts - ) cumulative_trades, + ) as cumulative_trades, FIRST_VALUE(cumulative_liquidations) over ( - PARTITION BY market, - value_partition - ORDER BY + partition by + market, + value_partition + order by ts - ) cumulative_liquidations - FROM + ) as cumulative_liquidations + from ( - SELECT + select ts, market, long_oi_usd, @@ -177,15 +195,16 @@ agg_data AS ( cumulative_trades, cumulative_liquidations, COUNT(long_oi_usd) over ( - PARTITION BY market - ORDER BY + partition by market + order by ts - ) AS value_partition - FROM + ) as value_partition + from gap_data - ) AS q + ) as q ) -SELECT + +select gap_data.ts, gap_data.market, gap_data.exchange_fees, @@ -203,9 +222,8 @@ SELECT agg_data.cumulative_amount_liquidated, agg_data.cumulative_trades, agg_data.cumulative_liquidations -FROM +from gap_data - JOIN agg_data USING ( - ts, - market - ) +inner join + agg_data + on gap_data.ts = agg_data.ts and gap_data.market = agg_data.market diff --git a/transformers/synthetix/models/marts/optimism/mainnet/stats/fct_v2_market_hourly_optimism_mainnet.sql b/transformers/synthetix/models/marts/optimism/mainnet/stats/fct_v2_market_hourly_optimism_mainnet.sql index 7f43642dc..d9719a2ab 100644 --- a/transformers/synthetix/models/marts/optimism/mainnet/stats/fct_v2_market_hourly_optimism_mainnet.sql +++ b/transformers/synthetix/models/marts/optimism/mainnet/stats/fct_v2_market_hourly_optimism_mainnet.sql @@ -1,33 +1,34 @@ -WITH raw_data AS ( - SELECT +with raw_data as ( + select DATE_TRUNC( 'hour', ts - ) AS ts, + ) as ts, market, - MAX(id) AS max_id, - SUM(exchange_fees) AS exchange_fees, - SUM(liquidation_fees) AS liquidation_fees, - SUM(volume) AS volume, - SUM(amount_liquidated) AS amount_liquidated, - SUM(trades) AS trades, - SUM(liquidations) AS liquidations - FROM + MAX(id) as max_id, + SUM(exchange_fees) as exchange_fees, + SUM(liquidation_fees) as liquidation_fees, + SUM(volume) as volume, + SUM(amount_liquidated) as amount_liquidated, + SUM(trades) as trades, + SUM(liquidations) as liquidations + from {{ ref('fct_v2_market_stats_optimism_mainnet') }} - GROUP BY + group by 1, 2 ), -aggregated_data AS ( - SELECT - A.ts, - A.market, - A.exchange_fees, - A.liquidation_fees, - A.volume, - A.amount_liquidated, - A.trades, - A.liquidations, + +aggregated_data as ( + select + a.ts, + a.market, + a.exchange_fees, + a.liquidation_fees, + a.volume, + a.amount_liquidated, + a.trades, + a.liquidations, b.long_oi_usd, b.short_oi_usd, b.total_oi_usd, @@ -37,134 +38,151 @@ aggregated_data AS ( b.cumulative_amount_liquidated, b.cumulative_trades, b.cumulative_liquidations - FROM - raw_data A - JOIN {{ ref('fct_v2_market_stats_optimism_mainnet') }} - b - ON A.max_id = b.id + from + raw_data as a + inner join + {{ ref('fct_v2_market_stats_optimism_mainnet') }} + as b + on a.max_id = b.id ), -date_series AS ( - SELECT + +date_series as ( + select q.ts, q2.market - FROM + from ( - SELECT - generate_series(MIN(DATE_TRUNC('hour', ts)), MAX(DATE_TRUNC('hour', ts)), '1 hour' :: INTERVAL) AS ts - FROM - aggregated_data - ) AS q - CROSS JOIN ( - SELECT - DISTINCT market - FROM + select + GENERATE_SERIES( + MIN(DATE_TRUNC('hour', ts)), + MAX(DATE_TRUNC('hour', ts)), + '1 hour'::INTERVAL + ) as ts + from aggregated_data - ) AS q2 + ) as q + cross join ( + select distinct market + from + aggregated_data + ) as q2 ), -gap_data AS ( - SELECT + +gap_data as ( + select ds.ts, ds.market, + ad.long_oi_usd, + ad.short_oi_usd, + ad.total_oi_usd, + ad.cumulative_exchange_fees, + ad.cumulative_liquidation_fees, + ad.cumulative_volume, + ad.cumulative_amount_liquidated, + ad.cumulative_trades, + ad.cumulative_liquidations, COALESCE( ad.exchange_fees, 0 - ) AS exchange_fees, + ) as exchange_fees, COALESCE( ad.liquidation_fees, 0 - ) AS liquidation_fees, + ) as liquidation_fees, COALESCE( ad.volume, 0 - ) AS volume, + ) as volume, COALESCE( ad.amount_liquidated, 0 - ) AS amount_liquidated, + ) as amount_liquidated, COALESCE( ad.trades, 0 - ) AS trades, + ) as trades, COALESCE( ad.liquidations, 0 - ) AS liquidations, - ad.long_oi_usd, - ad.short_oi_usd, - ad.total_oi_usd, - ad.cumulative_exchange_fees, - ad.cumulative_liquidation_fees, - ad.cumulative_volume, - ad.cumulative_amount_liquidated, - ad.cumulative_trades, - ad.cumulative_liquidations - FROM - date_series ds - LEFT JOIN aggregated_data ad - ON ds.ts = ad.ts - AND ds.market = ad.market + ) as liquidations + from + date_series as ds + left join aggregated_data as ad + on + ds.ts = ad.ts + and ds.market = ad.market ), -agg_data AS ( - SELECT + +agg_data as ( + select ts, market, FIRST_VALUE(long_oi_usd) over ( - PARTITION BY market, - value_partition - ORDER BY + partition by + market, + value_partition + order by ts - ) long_oi_usd, + ) as long_oi_usd, FIRST_VALUE(short_oi_usd) over ( - PARTITION BY market, - value_partition - ORDER BY + partition by + market, + value_partition + order by ts - ) short_oi_usd, + ) as short_oi_usd, FIRST_VALUE(total_oi_usd) over ( - PARTITION BY market, - value_partition - ORDER BY + partition by + market, + value_partition + order by ts - ) total_oi_usd, + ) as total_oi_usd, FIRST_VALUE(cumulative_exchange_fees) over ( - PARTITION BY market, - value_partition - ORDER BY + partition by + market, + value_partition + order by ts - ) cumulative_exchange_fees, + ) as cumulative_exchange_fees, FIRST_VALUE(cumulative_liquidation_fees) over ( - PARTITION BY market, - value_partition - ORDER BY + partition by + market, + value_partition + order by ts - ) cumulative_liquidation_fees, + ) as cumulative_liquidation_fees, FIRST_VALUE(cumulative_volume) over ( - PARTITION BY market, - value_partition - ORDER BY + partition by + market, + value_partition + order by ts - ) cumulative_volume, + ) as cumulative_volume, FIRST_VALUE(cumulative_amount_liquidated) over ( - PARTITION BY market, - value_partition - ORDER BY + partition by + market, + value_partition + order by ts - ) cumulative_amount_liquidated, + ) as cumulative_amount_liquidated, FIRST_VALUE(cumulative_trades) over ( - PARTITION BY market, - value_partition - ORDER BY + partition by + market, + value_partition + order by ts - ) cumulative_trades, + ) as cumulative_trades, FIRST_VALUE(cumulative_liquidations) over ( - PARTITION BY market, - value_partition - ORDER BY + partition by + market, + value_partition + order by ts - ) cumulative_liquidations - FROM + ) as cumulative_liquidations + from ( - SELECT + select ts, market, long_oi_usd, @@ -177,15 +195,16 @@ agg_data AS ( cumulative_trades, cumulative_liquidations, COUNT(long_oi_usd) over ( - PARTITION BY market - ORDER BY + partition by market + order by ts - ) AS value_partition - FROM + ) as value_partition + from gap_data - ) AS q + ) as q ) -SELECT + +select gap_data.ts, gap_data.market, gap_data.exchange_fees, @@ -203,9 +222,8 @@ SELECT agg_data.cumulative_amount_liquidated, agg_data.cumulative_trades, agg_data.cumulative_liquidations -FROM +from gap_data - JOIN agg_data USING ( - ts, - market - ) +inner join + agg_data + on gap_data.ts = agg_data.ts and gap_data.market = agg_data.market diff --git a/transformers/synthetix/models/marts/optimism/mainnet/stats/fct_v2_stats_daily_optimism_mainnet.sql b/transformers/synthetix/models/marts/optimism/mainnet/stats/fct_v2_stats_daily_optimism_mainnet.sql index f3aec008c..6346d6cd9 100644 --- a/transformers/synthetix/models/marts/optimism/mainnet/stats/fct_v2_stats_daily_optimism_mainnet.sql +++ b/transformers/synthetix/models/marts/optimism/mainnet/stats/fct_v2_stats_daily_optimism_mainnet.sql @@ -1,69 +1,69 @@ -SELECT +select ts, SUM( exchange_fees - ) AS exchange_fees, + ) as exchange_fees, SUM( liquidation_fees - ) AS liquidation_fees, + ) as liquidation_fees, SUM( volume - ) AS volume, + ) as volume, SUM( amount_liquidated - ) AS amount_liquidated, + ) as amount_liquidated, SUM( trades - ) AS trades, + ) as trades, SUM( liquidations - ) AS liquidations, + ) as liquidations, SUM( long_oi_usd - ) AS long_oi_usd, + ) as long_oi_usd, SUM( short_oi_usd - ) AS short_oi_usd, + ) as short_oi_usd, SUM( total_oi_usd - ) AS total_oi_usd, + ) as total_oi_usd, SUM( - CASE - WHEN market IN ( + case + when market in ( 'ETH', 'BTC' - ) THEN total_oi_usd - ELSE 0 - END - ) AS eth_btc_oi_usd, + ) then total_oi_usd + else 0 + end + ) as eth_btc_oi_usd, SUM( - CASE - WHEN market NOT IN ( + case + when market not in ( 'ETH', 'BTC' - ) THEN total_oi_usd - ELSE 0 - END - ) AS alt_oi_usd, + ) then total_oi_usd + else 0 + end + ) as alt_oi_usd, SUM( cumulative_exchange_fees - ) AS cumulative_exchange_fees, + ) as cumulative_exchange_fees, SUM( cumulative_liquidation_fees - ) AS cumulative_liquidation_fees, + ) as cumulative_liquidation_fees, SUM( cumulative_volume - ) AS cumulative_volume, + ) as cumulative_volume, SUM( cumulative_amount_liquidated - ) AS cumulative_amount_liquidated, + ) as cumulative_amount_liquidated, SUM( cumulative_trades - ) AS cumulative_trades, + ) as cumulative_trades, SUM( cumulative_liquidations - ) AS cumulative_liquidations -FROM + ) as cumulative_liquidations +from {{ ref('fct_v2_market_daily_optimism_mainnet') }} -GROUP BY +group by 1 diff --git a/transformers/synthetix/models/marts/optimism/mainnet/stats/fct_v2_stats_hourly_optimism_mainnet.sql b/transformers/synthetix/models/marts/optimism/mainnet/stats/fct_v2_stats_hourly_optimism_mainnet.sql index 5baf8ef60..cda5318f5 100644 --- a/transformers/synthetix/models/marts/optimism/mainnet/stats/fct_v2_stats_hourly_optimism_mainnet.sql +++ b/transformers/synthetix/models/marts/optimism/mainnet/stats/fct_v2_stats_hourly_optimism_mainnet.sql @@ -1,69 +1,69 @@ -SELECT +select ts, SUM( exchange_fees - ) AS exchange_fees, + ) as exchange_fees, SUM( liquidation_fees - ) AS liquidation_fees, + ) as liquidation_fees, SUM( volume - ) AS volume, + ) as volume, SUM( amount_liquidated - ) AS amount_liquidated, + ) as amount_liquidated, SUM( trades - ) AS trades, + ) as trades, SUM( liquidations - ) AS liquidations, + ) as liquidations, SUM( long_oi_usd - ) AS long_oi_usd, + ) as long_oi_usd, SUM( short_oi_usd - ) AS short_oi_usd, + ) as short_oi_usd, SUM( total_oi_usd - ) AS total_oi_usd, + ) as total_oi_usd, SUM( - CASE - WHEN market IN ( + case + when market in ( 'ETH', 'BTC' - ) THEN total_oi_usd - ELSE 0 - END - ) AS eth_btc_oi_usd, + ) then total_oi_usd + else 0 + end + ) as eth_btc_oi_usd, SUM( - CASE - WHEN market NOT IN ( + case + when market not in ( 'ETH', 'BTC' - ) THEN total_oi_usd - ELSE 0 - END - ) AS alt_oi_usd, + ) then total_oi_usd + else 0 + end + ) as alt_oi_usd, SUM( cumulative_exchange_fees - ) AS cumulative_exchange_fees, + ) as cumulative_exchange_fees, SUM( cumulative_liquidation_fees - ) AS cumulative_liquidation_fees, + ) as cumulative_liquidation_fees, SUM( cumulative_volume - ) AS cumulative_volume, + ) as cumulative_volume, SUM( cumulative_amount_liquidated - ) AS cumulative_amount_liquidated, + ) as cumulative_amount_liquidated, SUM( cumulative_trades - ) AS cumulative_trades, + ) as cumulative_trades, SUM( cumulative_liquidations - ) AS cumulative_liquidations -FROM + ) as cumulative_liquidations +from {{ ref('fct_v2_market_hourly_optimism_mainnet') }} -GROUP BY +group by 1 diff --git a/transformers/synthetix/models/raw/arbitrum/mainnet/blocks_arbitrum_mainnet.sql b/transformers/synthetix/models/raw/arbitrum/mainnet/blocks_arbitrum_mainnet.sql index 93110d4e0..4ad2b014f 100644 --- a/transformers/synthetix/models/raw/arbitrum/mainnet/blocks_arbitrum_mainnet.sql +++ b/transformers/synthetix/models/raw/arbitrum/mainnet/blocks_arbitrum_mainnet.sql @@ -1,44 +1,44 @@ -WITH indexer_blocks AS ( - SELECT - "timestamp" AS ts, +with indexer_blocks as ( + select + "timestamp" as ts, CAST( - "number" AS INTEGER - ) AS block_number - FROM + "number" as INTEGER + ) as block_number + from {{ source( 'raw_arbitrum_mainnet', 'block' ) }} ), -parquet_blocks AS ( - SELECT - TO_TIMESTAMP("timestamp") AS ts, + +parquet_blocks as ( + select + TO_TIMESTAMP("timestamp") as ts, CAST( - "block_number" AS INTEGER - ) AS block_number - FROM + "block_number" as INTEGER + ) as block_number + from {{ source( 'raw_arbitrum_mainnet', 'blocks_parquet' ) }} ), -combined_blocks AS ( - SELECT - * - FROM +combined_blocks as ( + select * + from indexer_blocks - UNION ALL - SELECT - * - FROM + union all + select * + from parquet_blocks ) -SELECT - DISTINCT MIN(ts) AS ts, - block_number -FROM + +select distinct + block_number, + MIN(ts) as ts +from combined_blocks -GROUP BY +group by block_number diff --git a/transformers/synthetix/models/raw/arbitrum/mainnet/core/core_market_updated_arbitrum_mainnet.sql b/transformers/synthetix/models/raw/arbitrum/mainnet/core/core_market_updated_arbitrum_mainnet.sql index 854c1741b..beac3e6d0 100644 --- a/transformers/synthetix/models/raw/arbitrum/mainnet/core/core_market_updated_arbitrum_mainnet.sql +++ b/transformers/synthetix/models/raw/arbitrum/mainnet/core/core_market_updated_arbitrum_mainnet.sql @@ -1,5 +1,5 @@ -WITH events AS ( - SELECT +with events as ( + select id, block_timestamp, block_number, @@ -13,7 +13,7 @@ WITH events AS ( collateral_type, credit_capacity, token_amount - FROM + from ( {{ get_event_data( 'arbitrum', @@ -21,9 +21,9 @@ WITH events AS ( 'core_proxy', 'market_collateral_deposited' ) }} - ) collateral_deposited - UNION ALL - SELECT + ) as collateral_deposited -- noqa: AL05 + union all + select id, block_timestamp, block_number, @@ -37,7 +37,7 @@ WITH events AS ( collateral_type, credit_capacity, token_amount - FROM + from ( {{ get_event_data( 'arbitrum', @@ -45,9 +45,9 @@ WITH events AS ( 'core_proxy', 'market_collateral_withdrawn' ) }} - ) collateral_withdrawn - UNION ALL - SELECT + ) as collateral_withdrawn -- noqa: AL05 + union all + select id, block_timestamp, block_number, @@ -57,11 +57,11 @@ WITH events AS ( market_id, net_issuance, deposited_collateral_value, - "target" AS sender, - 'USD' AS collateral_type, + target as sender, + 'USD' as collateral_type, credit_capacity, - amount AS token_amount - FROM + amount as token_amount + from ( {{ get_event_data( 'arbitrum', @@ -69,9 +69,9 @@ WITH events AS ( 'core_proxy', 'market_usd_deposited' ) }} - ) usd_deposited - UNION ALL - SELECT + ) as usd_deposited -- noqa: AL05 + union all + select id, block_timestamp, block_number, @@ -81,11 +81,11 @@ WITH events AS ( market_id, net_issuance, deposited_collateral_value, - "target" AS sender, - 'USD' AS collateral_type, + target as sender, + 'USD' as collateral_type, credit_capacity, - amount AS token_amount - FROM + amount as token_amount + from ( {{ get_event_data( 'arbitrum', @@ -93,11 +93,11 @@ WITH events AS ( 'core_proxy', 'market_usd_withdrawn' ) }} - ) usd_withdrawn + ) as usd_withdrawn -- noqa: AL05 ) -SELECT - * -FROM + +select * +from events -ORDER BY +order by block_timestamp diff --git a/transformers/synthetix/models/raw/arbitrum/sepolia/blocks_arbitrum_sepolia.sql b/transformers/synthetix/models/raw/arbitrum/sepolia/blocks_arbitrum_sepolia.sql index 5d82a2cf1..f79165ac0 100644 --- a/transformers/synthetix/models/raw/arbitrum/sepolia/blocks_arbitrum_sepolia.sql +++ b/transformers/synthetix/models/raw/arbitrum/sepolia/blocks_arbitrum_sepolia.sql @@ -1,44 +1,44 @@ -WITH indexer_blocks AS ( - SELECT - "timestamp" AS ts, +with indexer_blocks as ( + select + "timestamp" as ts, CAST( - "number" AS INTEGER - ) AS block_number - FROM + "number" as INTEGER + ) as block_number + from {{ source( 'raw_arbitrum_sepolia', 'block' ) }} ), -parquet_blocks AS ( - SELECT - TO_TIMESTAMP("timestamp") AS ts, + +parquet_blocks as ( + select + TO_TIMESTAMP("timestamp") as ts, CAST( - "block_number" AS INTEGER - ) AS block_number - FROM + "block_number" as INTEGER + ) as block_number + from {{ source( 'raw_arbitrum_sepolia', 'blocks_parquet' ) }} ), -combined_blocks AS ( - SELECT - * - FROM +combined_blocks as ( + select * + from indexer_blocks - UNION ALL - SELECT - * - FROM + union all + select * + from parquet_blocks ) -SELECT - DISTINCT MIN(ts) AS ts, - block_number -FROM + +select distinct + block_number, + MIN(ts) as ts +from combined_blocks -GROUP BY +group by block_number diff --git a/transformers/synthetix/models/raw/arbitrum/sepolia/core/core_market_updated_arbitrum_sepolia.sql b/transformers/synthetix/models/raw/arbitrum/sepolia/core/core_market_updated_arbitrum_sepolia.sql index 50031a5ab..8e317e1e9 100644 --- a/transformers/synthetix/models/raw/arbitrum/sepolia/core/core_market_updated_arbitrum_sepolia.sql +++ b/transformers/synthetix/models/raw/arbitrum/sepolia/core/core_market_updated_arbitrum_sepolia.sql @@ -1,5 +1,5 @@ -WITH events AS ( - SELECT +with events as ( + select id, block_timestamp, block_number, @@ -13,7 +13,7 @@ WITH events AS ( collateral_type, credit_capacity, token_amount - FROM + from ( {{ get_event_data( 'arbitrum', @@ -21,9 +21,9 @@ WITH events AS ( 'core_proxy', 'market_collateral_deposited' ) }} - ) collateral_deposited - UNION ALL - SELECT + ) as collateral_deposited -- noqa: AL05 + union all + select id, block_timestamp, block_number, @@ -37,7 +37,7 @@ WITH events AS ( collateral_type, credit_capacity, token_amount - FROM + from ( {{ get_event_data( 'arbitrum', @@ -45,9 +45,9 @@ WITH events AS ( 'core_proxy', 'market_collateral_withdrawn' ) }} - ) collateral_withdrawn - UNION ALL - SELECT + ) as collateral_withdrawn -- noqa: AL05 + union all + select id, block_timestamp, block_number, @@ -57,11 +57,11 @@ WITH events AS ( market_id, net_issuance, deposited_collateral_value, - "target" AS sender, - 'USD' AS collateral_type, + target as sender, + 'USD' as collateral_type, credit_capacity, - amount AS token_amount - FROM + amount as token_amount + from ( {{ get_event_data( 'arbitrum', @@ -69,9 +69,9 @@ WITH events AS ( 'core_proxy', 'market_usd_deposited' ) }} - ) usd_deposited - UNION ALL - SELECT + ) as usd_deposited -- noqa: AL05 + union all + select id, block_timestamp, block_number, @@ -81,11 +81,11 @@ WITH events AS ( market_id, net_issuance, deposited_collateral_value, - "target" AS sender, - 'USD' AS collateral_type, + target as sender, + 'USD' as collateral_type, credit_capacity, - amount AS token_amount - FROM + amount as token_amount + from ( {{ get_event_data( 'arbitrum', @@ -93,11 +93,11 @@ WITH events AS ( 'core_proxy', 'market_usd_withdrawn' ) }} - ) usd_withdrawn + ) as usd_withdrawn -- noqa: AL05 ) -SELECT - * -FROM + +select * +from events -ORDER BY +order by block_timestamp diff --git a/transformers/synthetix/models/raw/base/mainnet/blocks_base_mainnet.sql b/transformers/synthetix/models/raw/base/mainnet/blocks_base_mainnet.sql index 4e97a06a1..2f476f1ff 100644 --- a/transformers/synthetix/models/raw/base/mainnet/blocks_base_mainnet.sql +++ b/transformers/synthetix/models/raw/base/mainnet/blocks_base_mainnet.sql @@ -1,44 +1,45 @@ -WITH indexer_blocks AS ( - SELECT - "timestamp" AS ts, +with indexer_blocks as ( + select + "timestamp" as ts, CAST( - "number" AS INTEGER - ) AS block_number - FROM + "number" as INTEGER + ) as block_number + from {{ source( 'raw_base_mainnet', 'block' ) }} ), -parquet_blocks AS ( - SELECT - TO_TIMESTAMP("timestamp") AS ts, + +parquet_blocks as ( + select + TO_TIMESTAMP("timestamp") as ts, CAST( - "block_number" AS INTEGER - ) AS block_number - FROM + "block_number" as INTEGER + ) as block_number + from {{ source( 'raw_base_mainnet', 'blocks_parquet' ) }} ), -combined_blocks AS ( - SELECT - * - FROM + +combined_blocks as ( + select * + from indexer_blocks - UNION ALL + union all - SELECT - * - FROM + select * + from parquet_blocks ) -SELECT - DISTINCT MIN(ts) AS ts, - block_number -FROM + +select distinct + block_number, + MIN(ts) as ts +from combined_blocks -GROUP BY +group by block_number diff --git a/transformers/synthetix/models/raw/base/mainnet/buyback/buyback_processed_base_mainnet.sql b/transformers/synthetix/models/raw/base/mainnet/buyback/buyback_processed_base_mainnet.sql index f9883196e..90eb0cbfd 100644 --- a/transformers/synthetix/models/raw/base/mainnet/buyback/buyback_processed_base_mainnet.sql +++ b/transformers/synthetix/models/raw/base/mainnet/buyback/buyback_processed_base_mainnet.sql @@ -1,4 +1,4 @@ -WITH legacy_events AS ( +with legacy_events as ( {{ get_event_data( 'base', 'mainnet', @@ -6,7 +6,8 @@ WITH legacy_events AS ( 'buyback_processed' ) }} ), -current_events AS ( + +current_events as ( {{ get_event_data( 'base', 'mainnet', @@ -15,7 +16,7 @@ current_events AS ( ) }} ) -SELECT +select id, block_number, block_timestamp, @@ -25,10 +26,10 @@ SELECT buyer, snx, usd -FROM +from legacy_events -UNION ALL -SELECT +union all +select id, block_number, block_timestamp, @@ -38,5 +39,5 @@ SELECT buyer, snx, usd -FROM +from current_events diff --git a/transformers/synthetix/models/raw/base/mainnet/core/core_market_updated_base_mainnet.sql b/transformers/synthetix/models/raw/base/mainnet/core/core_market_updated_base_mainnet.sql index 1b3ce7d19..efb04d87b 100644 --- a/transformers/synthetix/models/raw/base/mainnet/core/core_market_updated_base_mainnet.sql +++ b/transformers/synthetix/models/raw/base/mainnet/core/core_market_updated_base_mainnet.sql @@ -1,19 +1,19 @@ -WITH events AS ( - SELECT +with events as ( + select id, block_timestamp, block_number, transaction_hash, - "contract", + contract, event_name, market_id, net_issuance, deposited_collateral_value, - "target" AS sender, - 'USD' AS collateral_type, + target as sender, + 'USD' as collateral_type, credit_capacity, - amount AS token_amount - FROM + amount as token_amount + from ( {{ get_event_data( 'base', @@ -21,23 +21,23 @@ WITH events AS ( 'core_proxy_legacy', 'market_usd_deposited' ) }} - ) legacy_usd_deposited - UNION ALL - SELECT + ) as usd_deposited -- noqa: AL05 + union all + select id, block_timestamp, block_number, transaction_hash, - "contract", + contract, event_name, market_id, net_issuance, deposited_collateral_value, - "target" AS sender, - 'USD' AS collateral_type, + target as sender, + 'USD' as collateral_type, credit_capacity, - amount AS token_amount - FROM + amount as token_amount + from ( {{ get_event_data( 'base', @@ -45,9 +45,9 @@ WITH events AS ( 'core_proxy_legacy', 'market_usd_withdrawn' ) }} - ) legacy_usd_withdrawn - UNION ALL - SELECT + ) as usd_withdrawn -- noqa: AL05 + union all + select id, block_timestamp, block_number, @@ -61,7 +61,7 @@ WITH events AS ( collateral_type, credit_capacity, token_amount - FROM + from ( {{ get_event_data( 'base', @@ -69,9 +69,9 @@ WITH events AS ( 'core_proxy', 'market_collateral_deposited' ) }} - ) collateral_deposited - UNION ALL - SELECT + ) as collateral_deposited -- noqa: AL05 + union all + select id, block_timestamp, block_number, @@ -85,7 +85,7 @@ WITH events AS ( collateral_type, credit_capacity, token_amount - FROM + from ( {{ get_event_data( 'base', @@ -93,9 +93,9 @@ WITH events AS ( 'core_proxy', 'market_collateral_withdrawn' ) }} - ) collateral_withdrawn - UNION ALL - SELECT + ) as collateral_withdrawn -- noqa: AL05 + union all + select id, block_timestamp, block_number, @@ -105,11 +105,11 @@ WITH events AS ( market_id, net_issuance, deposited_collateral_value, - "target" AS sender, - 'USD' AS collateral_type, + target as sender, + 'USD' as collateral_type, credit_capacity, - amount AS token_amount - FROM + amount as token_amount + from ( {{ get_event_data( 'base', @@ -117,9 +117,9 @@ WITH events AS ( 'core_proxy', 'market_usd_deposited' ) }} - ) usd_deposited - UNION ALL - SELECT + ) as usd_deposited -- noqa: AL05 + union all + select id, block_timestamp, block_number, @@ -129,11 +129,11 @@ WITH events AS ( market_id, net_issuance, deposited_collateral_value, - "target" AS sender, - 'USD' AS collateral_type, + target as sender, + 'USD' as collateral_type, credit_capacity, - amount AS token_amount - FROM + amount as token_amount + from ( {{ get_event_data( 'base', @@ -141,11 +141,11 @@ WITH events AS ( 'core_proxy', 'market_usd_withdrawn' ) }} - ) usd_withdrawn + ) as usd_withdrawn -- noqa: AL05 ) -SELECT - * -FROM + +select * +from events -ORDER BY +order by block_timestamp diff --git a/transformers/synthetix/models/raw/base/mainnet/perp/perp_market_updated_base_mainnet.sql b/transformers/synthetix/models/raw/base/mainnet/perp/perp_market_updated_base_mainnet.sql index 80e3d2216..520a2307d 100644 --- a/transformers/synthetix/models/raw/base/mainnet/perp/perp_market_updated_base_mainnet.sql +++ b/transformers/synthetix/models/raw/base/mainnet/perp/perp_market_updated_base_mainnet.sql @@ -1,4 +1,4 @@ -WITH legacy_events AS ( +with legacy_events as ( {{ get_event_data( 'base', 'mainnet', @@ -6,7 +6,8 @@ WITH legacy_events AS ( 'market_updated' ) }} ), -current_events AS ( + +current_events as ( {{ get_event_data( 'base', 'mainnet', @@ -14,38 +15,39 @@ current_events AS ( 'market_updated' ) }} ) -SELECT + +select id, block_number, block_timestamp, transaction_hash, - "contract", + contract, event_name, market_id, price, skew, - SIZE, + size, size_delta, current_funding_rate, current_funding_velocity, - 0 AS interest_rate -FROM + 0 as interest_rate +from legacy_events -UNION ALL -SELECT +union all +select id, block_number, block_timestamp, transaction_hash, - "contract", + contract, event_name, market_id, price, skew, - SIZE, + size, size_delta, current_funding_rate, current_funding_velocity, interest_rate -FROM +from current_events diff --git a/transformers/synthetix/models/raw/base/mainnet/perp/perp_order_committed_base_mainnet.sql b/transformers/synthetix/models/raw/base/mainnet/perp/perp_order_committed_base_mainnet.sql index 56340bf2d..32cffb40d 100644 --- a/transformers/synthetix/models/raw/base/mainnet/perp/perp_order_committed_base_mainnet.sql +++ b/transformers/synthetix/models/raw/base/mainnet/perp/perp_order_committed_base_mainnet.sql @@ -1,4 +1,4 @@ -WITH legacy_events AS ( +with legacy_events as ( {{ get_event_data( 'base', 'mainnet', @@ -6,7 +6,8 @@ WITH legacy_events AS ( 'order_committed' ) }} ), -current_events AS ( + +current_events as ( {{ get_event_data( 'base', 'mainnet', @@ -14,35 +15,36 @@ current_events AS ( 'order_committed' ) }} ) -SELECT + +select id, block_number, block_timestamp, transaction_hash, - "contract", + contract, event_name, market_id, account_id, commitment_time, expiration_time, settlement_time, - CAST( - NULL AS numeric - ) AS expected_price_time, + cast( + null as numeric + ) as expected_price_time, acceptable_price, order_type, size_delta, sender, tracking_code -FROM +from legacy_events -UNION ALL -SELECT +union all +select id, block_number, block_timestamp, transaction_hash, - "contract", + contract, event_name, market_id, account_id, @@ -55,5 +57,5 @@ SELECT size_delta, sender, tracking_code -FROM +from current_events diff --git a/transformers/synthetix/models/raw/base/sepolia/blocks_base_sepolia.sql b/transformers/synthetix/models/raw/base/sepolia/blocks_base_sepolia.sql index 759b178b8..e0341c1f8 100644 --- a/transformers/synthetix/models/raw/base/sepolia/blocks_base_sepolia.sql +++ b/transformers/synthetix/models/raw/base/sepolia/blocks_base_sepolia.sql @@ -1,44 +1,45 @@ -WITH indexer_blocks AS ( - SELECT - "timestamp" AS ts, +with indexer_blocks as ( + select + "timestamp" as ts, CAST( - "number" AS INTEGER - ) AS block_number - FROM + "number" as INTEGER + ) as block_number + from {{ source( 'raw_base_sepolia', 'block' ) }} ), -parquet_blocks AS ( - SELECT - TO_TIMESTAMP("timestamp") AS ts, + +parquet_blocks as ( + select + TO_TIMESTAMP("timestamp") as ts, CAST( - "block_number" AS INTEGER - ) AS block_number - FROM + "block_number" as INTEGER + ) as block_number + from {{ source( 'raw_base_sepolia', 'blocks_parquet' ) }} ), -combined_blocks AS ( - SELECT - * - FROM + +combined_blocks as ( + select * + from indexer_blocks - UNION ALL + union all - SELECT - * - FROM + select * + from parquet_blocks ) -SELECT - DISTINCT MIN(ts) AS ts, - block_number -FROM + +select distinct + block_number, + MIN(ts) as ts +from combined_blocks -GROUP BY +group by block_number diff --git a/transformers/synthetix/models/raw/base/sepolia/buyback/buyback_processed_base_sepolia.sql b/transformers/synthetix/models/raw/base/sepolia/buyback/buyback_processed_base_sepolia.sql index 9db429da4..8a5183a4c 100644 --- a/transformers/synthetix/models/raw/base/sepolia/buyback/buyback_processed_base_sepolia.sql +++ b/transformers/synthetix/models/raw/base/sepolia/buyback/buyback_processed_base_sepolia.sql @@ -1,4 +1,4 @@ -WITH current_events AS ( +with current_events as ( {{ get_event_data( 'base', 'sepolia', @@ -7,7 +7,7 @@ WITH current_events AS ( ) }} ) -SELECT +select id, block_number, block_timestamp, @@ -17,5 +17,5 @@ SELECT buyer, snx, usd -FROM +from current_events diff --git a/transformers/synthetix/models/raw/base/sepolia/core/core_market_updated_base_sepolia.sql b/transformers/synthetix/models/raw/base/sepolia/core/core_market_updated_base_sepolia.sql index cb1b3b8e4..1768a503d 100644 --- a/transformers/synthetix/models/raw/base/sepolia/core/core_market_updated_base_sepolia.sql +++ b/transformers/synthetix/models/raw/base/sepolia/core/core_market_updated_base_sepolia.sql @@ -1,19 +1,19 @@ -WITH events AS ( - SELECT +with events as ( + select id, block_timestamp, block_number, transaction_hash, - "contract", + contract, event_name, market_id, net_issuance, deposited_collateral_value, - "target" AS sender, - 'USD' AS collateral_type, + target as sender, + 'USD' as collateral_type, credit_capacity, - amount AS token_amount - FROM + amount as token_amount + from ( {{ get_event_data( 'base', @@ -21,23 +21,23 @@ WITH events AS ( 'core_proxy_legacy', 'market_usd_deposited' ) }} - ) legacy_usd_deposited - UNION ALL - SELECT + ) as usd_deposited -- noqa: AL05 + union all + select id, block_timestamp, block_number, transaction_hash, - "contract", + contract, event_name, market_id, net_issuance, deposited_collateral_value, - "target" AS sender, - 'USD' AS collateral_type, + target as sender, + 'USD' as collateral_type, credit_capacity, - amount AS token_amount - FROM + amount as token_amount + from ( {{ get_event_data( 'base', @@ -45,9 +45,9 @@ WITH events AS ( 'core_proxy_legacy', 'market_usd_withdrawn' ) }} - ) legacy_usd_withdrawn - UNION ALL - SELECT + ) as usd_withdrawn -- noqa: AL05 + union all + select id, block_timestamp, block_number, @@ -61,7 +61,7 @@ WITH events AS ( collateral_type, credit_capacity, token_amount - FROM + from ( {{ get_event_data( 'base', @@ -69,9 +69,9 @@ WITH events AS ( 'core_proxy', 'market_collateral_deposited' ) }} - ) collateral_deposited - UNION ALL - SELECT + ) collateral_deposited -- noqa: AL05 + union all + select id, block_timestamp, block_number, @@ -85,7 +85,7 @@ WITH events AS ( collateral_type, credit_capacity, token_amount - FROM + from ( {{ get_event_data( 'base', @@ -93,9 +93,9 @@ WITH events AS ( 'core_proxy', 'market_collateral_withdrawn' ) }} - ) collateral_withdrawn - UNION ALL - SELECT + ) as collateral_withdrawn -- noqa: AL05 + union all + select id, block_timestamp, block_number, @@ -105,11 +105,11 @@ WITH events AS ( market_id, net_issuance, deposited_collateral_value, - "target" AS sender, - 'USD' AS collateral_type, + target as sender, + 'USD' as collateral_type, credit_capacity, - amount AS token_amount - FROM + amount as token_amount + from ( {{ get_event_data( 'base', @@ -117,9 +117,9 @@ WITH events AS ( 'core_proxy', 'market_usd_deposited' ) }} - ) usd_deposited - UNION ALL - SELECT + ) as usd_deposited -- noqa: AL05 + union all + select id, block_timestamp, block_number, @@ -129,11 +129,11 @@ WITH events AS ( market_id, net_issuance, deposited_collateral_value, - "target" AS sender, - 'USD' AS collateral_type, + target as sender, + 'USD' as collateral_type, credit_capacity, - amount AS token_amount - FROM + amount as token_amount + from ( {{ get_event_data( 'base', @@ -141,11 +141,11 @@ WITH events AS ( 'core_proxy', 'market_usd_withdrawn' ) }} - ) usd_withdrawn + ) as usd_withdrawn -- noqa: AL05 ) -SELECT - * -FROM + +select * +from events -ORDER BY +order by block_timestamp diff --git a/transformers/synthetix/models/raw/base/sepolia/perp/perp_market_updated_base_sepolia.sql b/transformers/synthetix/models/raw/base/sepolia/perp/perp_market_updated_base_sepolia.sql index 45da7114d..e68158f63 100644 --- a/transformers/synthetix/models/raw/base/sepolia/perp/perp_market_updated_base_sepolia.sql +++ b/transformers/synthetix/models/raw/base/sepolia/perp/perp_market_updated_base_sepolia.sql @@ -1,4 +1,4 @@ -WITH legacy_events AS ( +with legacy_events as ( {{ get_event_data( 'base', 'sepolia', @@ -6,7 +6,8 @@ WITH legacy_events AS ( 'market_updated' ) }} ), -current_events AS ( + +current_events as ( {{ get_event_data( 'base', 'sepolia', @@ -14,38 +15,39 @@ current_events AS ( 'market_updated' ) }} ) -SELECT + +select id, block_number, block_timestamp, transaction_hash, - "contract", + contract, event_name, market_id, price, skew, - SIZE, + size, size_delta, current_funding_rate, current_funding_velocity, - 0 AS interest_rate -FROM + 0 as interest_rate +from legacy_events -UNION ALL -SELECT +union all +select id, block_number, block_timestamp, transaction_hash, - "contract", + contract, event_name, market_id, price, skew, - SIZE, + size, size_delta, current_funding_rate, current_funding_velocity, interest_rate -FROM +from current_events diff --git a/transformers/synthetix/models/raw/base/sepolia/perp/perp_order_committed_base_sepolia.sql b/transformers/synthetix/models/raw/base/sepolia/perp/perp_order_committed_base_sepolia.sql index b86a654c2..0da9c88a7 100644 --- a/transformers/synthetix/models/raw/base/sepolia/perp/perp_order_committed_base_sepolia.sql +++ b/transformers/synthetix/models/raw/base/sepolia/perp/perp_order_committed_base_sepolia.sql @@ -1,4 +1,4 @@ -WITH legacy_events AS ( +with legacy_events as ( {{ get_event_data( 'base', 'sepolia', @@ -6,7 +6,8 @@ WITH legacy_events AS ( 'order_committed' ) }} ), -current_events AS ( + +current_events as ( {{ get_event_data( 'base', 'sepolia', @@ -14,35 +15,36 @@ current_events AS ( 'order_committed' ) }} ) -SELECT + +select id, block_number, block_timestamp, transaction_hash, - "contract", + contract, event_name, market_id, account_id, commitment_time, expiration_time, settlement_time, - CAST( - NULL AS numeric - ) AS expected_price_time, + cast( + null as numeric + ) as expected_price_time, acceptable_price, order_type, size_delta, sender, tracking_code -FROM +from legacy_events -UNION ALL -SELECT +union all +select id, block_number, block_timestamp, transaction_hash, - "contract", + contract, event_name, market_id, account_id, @@ -55,5 +57,5 @@ SELECT size_delta, sender, tracking_code -FROM +from current_events diff --git a/transformers/synthetix/models/raw/eth/mainnet/blocks_eth_mainnet.sql b/transformers/synthetix/models/raw/eth/mainnet/blocks_eth_mainnet.sql index c0d9fa578..c2567bf76 100644 --- a/transformers/synthetix/models/raw/eth/mainnet/blocks_eth_mainnet.sql +++ b/transformers/synthetix/models/raw/eth/mainnet/blocks_eth_mainnet.sql @@ -1,44 +1,44 @@ -WITH indexer_blocks AS ( - SELECT - "timestamp" AS ts, +with indexer_blocks as ( + select + "timestamp" as ts, CAST( - "number" AS INTEGER - ) AS block_number - FROM + "number" as INTEGER + ) as block_number + from {{ source( 'raw_eth_mainnet', 'block' ) }} ), -parquet_blocks AS ( - SELECT - TO_TIMESTAMP("timestamp") AS ts, + +parquet_blocks as ( + select + TO_TIMESTAMP("timestamp") as ts, CAST( - "block_number" AS INTEGER - ) AS block_number - FROM + "block_number" as INTEGER + ) as block_number + from {{ source( 'raw_eth_mainnet', 'blocks_parquet' ) }} ), -combined_blocks AS ( - SELECT - * - FROM +combined_blocks as ( + select * + from indexer_blocks - UNION ALL - SELECT - * - FROM + union all + select * + from parquet_blocks ) -SELECT - DISTINCT MIN(ts) AS ts, - block_number -FROM + +select distinct + block_number, + MIN(ts) as ts +from combined_blocks -GROUP BY +group by block_number diff --git a/transformers/synthetix/models/raw/eth/mainnet/core/core_market_updated_eth_mainnet.sql b/transformers/synthetix/models/raw/eth/mainnet/core/core_market_updated_eth_mainnet.sql index fd1036feb..09dad1f05 100644 --- a/transformers/synthetix/models/raw/eth/mainnet/core/core_market_updated_eth_mainnet.sql +++ b/transformers/synthetix/models/raw/eth/mainnet/core/core_market_updated_eth_mainnet.sql @@ -1,5 +1,5 @@ -WITH events AS ( - SELECT +with events as ( + select id, block_timestamp, block_number, @@ -13,7 +13,7 @@ WITH events AS ( collateral_type, credit_capacity, token_amount - FROM + from ( {{ get_event_data( 'eth', @@ -21,9 +21,9 @@ WITH events AS ( 'core_proxy', 'market_collateral_deposited' ) }} - ) collateral_deposited - UNION ALL - SELECT + ) as collateral_deposited -- noqa: AL05 + union all + select id, block_timestamp, block_number, @@ -37,7 +37,7 @@ WITH events AS ( collateral_type, credit_capacity, token_amount - FROM + from ( {{ get_event_data( 'eth', @@ -45,9 +45,9 @@ WITH events AS ( 'core_proxy', 'market_collateral_withdrawn' ) }} - ) collateral_withdrawn - UNION ALL - SELECT + ) as collateral_withdrawn -- noqa: AL05 + union all + select id, block_timestamp, block_number, @@ -57,11 +57,11 @@ WITH events AS ( market_id, net_issuance, deposited_collateral_value, - "target" AS sender, - 'USD' AS collateral_type, + target as sender, + 'USD' as collateral_type, credit_capacity, - amount AS token_amount - FROM + amount as token_amount + from ( {{ get_event_data( 'eth', @@ -69,9 +69,9 @@ WITH events AS ( 'core_proxy', 'market_usd_deposited' ) }} - ) usd_deposited - UNION ALL - SELECT + ) as usd_deposited -- noqa: AL05 + union all + select id, block_timestamp, block_number, @@ -81,11 +81,11 @@ WITH events AS ( market_id, net_issuance, deposited_collateral_value, - "target" AS sender, - 'USD' AS collateral_type, + target as sender, + 'USD' as collateral_type, credit_capacity, - amount AS token_amount - FROM + amount as token_amount + from ( {{ get_event_data( 'eth', @@ -93,11 +93,11 @@ WITH events AS ( 'core_proxy', 'market_usd_withdrawn' ) }} - ) usd_withdrawn + ) as usd_withdrawn -- noqa: AL05 ) -SELECT - * -FROM + +select * +from events -ORDER BY +order by block_timestamp diff --git a/transformers/synthetix/models/raw/eth/mainnet/core/core_vault_collateral_eth_mainnet.sql b/transformers/synthetix/models/raw/eth/mainnet/core/core_vault_collateral_eth_mainnet.sql index b1379093d..7cb0d79f9 100644 --- a/transformers/synthetix/models/raw/eth/mainnet/core/core_vault_collateral_eth_mainnet.sql +++ b/transformers/synthetix/models/raw/eth/mainnet/core/core_vault_collateral_eth_mainnet.sql @@ -1,37 +1,38 @@ -WITH base AS ( - SELECT +with base as ( + select block_number, contract_address, chain_id, pool_id, collateral_type, CAST( - amount AS numeric - ) AS amount, + amount as numeric + ) as amount, CAST( - "value" AS numeric - ) AS collateral_value - FROM + "value" as numeric + ) as collateral_value + from {{ source( 'raw_eth_mainnet', "core_get_vault_collateral" ) }} - WHERE - amount IS NOT NULL + where + amount is not null ) -SELECT + +select blocks.ts, base.block_number, base.contract_address, CAST( - base.pool_id AS INTEGER - ) AS pool_id, + base.pool_id as integer + ) as pool_id, CAST( - base.collateral_type AS VARCHAR - ) AS collateral_type, - {{ convert_wei('base.amount') }} AS amount, - {{ convert_wei('base.collateral_value') }} AS collateral_value -FROM + base.collateral_type as varchar + ) as collateral_type, + {{ convert_wei('base.amount') }} as amount, + {{ convert_wei('base.collateral_value') }} as collateral_value +from base - JOIN {{ source('raw_eth_mainnet', 'blocks_parquet') }} AS blocks - ON base.block_number = blocks.block_number +inner join {{ source('raw_eth_mainnet', 'blocks_parquet') }} as blocks + on base.block_number = blocks.block_number diff --git a/transformers/synthetix/models/raw/eth/mainnet/core/core_vault_debt_eth_mainnet.sql b/transformers/synthetix/models/raw/eth/mainnet/core/core_vault_debt_eth_mainnet.sql index b9fd90368..8f6341c55 100644 --- a/transformers/synthetix/models/raw/eth/mainnet/core/core_vault_debt_eth_mainnet.sql +++ b/transformers/synthetix/models/raw/eth/mainnet/core/core_vault_debt_eth_mainnet.sql @@ -1,33 +1,34 @@ -WITH base AS ( - SELECT +with base as ( + select block_number, contract_address, chain_id, pool_id, collateral_type, CAST( - value_1 AS numeric - ) AS debt - FROM + value_1 as numeric + ) as debt + from {{ source( 'raw_eth_mainnet', "core_get_vault_debt" ) }} - WHERE - value_1 IS NOT NULL + where + value_1 is not null ) -SELECT + +select blocks.ts, base.block_number, base.contract_address, CAST( - base.pool_id AS INTEGER - ) AS pool_id, + base.pool_id as integer + ) as pool_id, CAST( - base.collateral_type AS VARCHAR - ) AS collateral_type, - {{ convert_wei('base.debt') }} AS debt -FROM + base.collateral_type as varchar + ) as collateral_type, + {{ convert_wei('base.debt') }} as debt +from base - JOIN {{ source('raw_eth_mainnet', 'blocks_parquet') }} AS blocks - ON base.block_number = blocks.block_number +inner join {{ source('raw_eth_mainnet', 'blocks_parquet') }} as blocks + on base.block_number = blocks.block_number diff --git a/transformers/synthetix/models/raw/optimism/mainnet/v2_perp_delayed_order_submitted_optimism_mainnet.sql b/transformers/synthetix/models/raw/optimism/mainnet/v2_perp_delayed_order_submitted_optimism_mainnet.sql index e99409756..bed0fc991 100644 --- a/transformers/synthetix/models/raw/optimism/mainnet/v2_perp_delayed_order_submitted_optimism_mainnet.sql +++ b/transformers/synthetix/models/raw/optimism/mainnet/v2_perp_delayed_order_submitted_optimism_mainnet.sql @@ -4,14 +4,14 @@ post_hook = [ "create index if not exists idx_id on {{ this }} (id)", "create index if not exists idx_block_number on {{ this }} (block_number)", "create index if not exists idx_block_timestamp on {{ this }} (block_timestamp)", "create index if not exists idx_market on {{ this }} (market)", "create index if not exists idx_contract on {{ this }} (contract)", "create index if not exists idx_account on {{ this }} (account)" ] ) }} -WITH events AS ({{ get_v2_event_data('optimism', 'mainnet', 'delayed_order_submitted') }}) -SELECT +with events as ({{ get_v2_event_data('optimism', 'mainnet', 'delayed_order_submitted') }}) +select id, transaction_hash, block_timestamp, block_number, contract, - UPPER(market) AS market, + upper(market) as market, event_name, account, commit_deposit, @@ -22,18 +22,16 @@ SELECT is_offchain, size_delta, tracking_code -FROM +from events -WHERE - -{% if is_incremental() %} -block_number > ( - SELECT - COALESCE(MAX(block_number), 0) - FROM - {{ this }}) +where + {% if is_incremental() %} + block_number > ( + select coalesce(max(block_number), 0) as b + from {{ this }} + ) {% else %} - TRUE + true {% endif %} - ORDER BY - id +order by + id diff --git a/transformers/synthetix/models/raw/optimism/mainnet/v2_perp_funding_recomputed_optimism_mainnet.sql b/transformers/synthetix/models/raw/optimism/mainnet/v2_perp_funding_recomputed_optimism_mainnet.sql index 0ce74cea8..0c0265133 100644 --- a/transformers/synthetix/models/raw/optimism/mainnet/v2_perp_funding_recomputed_optimism_mainnet.sql +++ b/transformers/synthetix/models/raw/optimism/mainnet/v2_perp_funding_recomputed_optimism_mainnet.sql @@ -4,30 +4,29 @@ post_hook = [ "create index if not exists idx_id on {{ this }} (id)", "create index if not exists idx_block_timestamp on {{ this }} (block_timestamp)", "create index if not exists idx_block_number on {{ this }} (block_number)", "create index if not exists idx_market on {{ this }} (market)" ] ) }} -WITH events AS ({{ get_v2_event_data('optimism', 'mainnet', 'funding_recomputed') }}) -SELECT +with events as ({{ get_v2_event_data('optimism', 'mainnet', 'funding_recomputed') }}) +select id, transaction_hash, block_timestamp, block_number, contract, - UPPER(market) AS market, + upper(market) as market, event_name, - INDEX, + index, funding, funding_rate -FROM +from events -WHERE +where -{% if is_incremental() %} -block_number > ( - SELECT - COALESCE(MAX(block_number), 0) - FROM - {{ this }}) + {% if is_incremental() %} + block_number > ( + select coalesce(max(block_number), 0) as b + from {{ this }} + ) {% else %} - TRUE + true {% endif %} - ORDER BY - id +order by + id diff --git a/transformers/synthetix/models/raw/optimism/mainnet/v2_perp_margin_transferred_optimism_mainnet.sql b/transformers/synthetix/models/raw/optimism/mainnet/v2_perp_margin_transferred_optimism_mainnet.sql index 651f5472b..c6e2043c5 100644 --- a/transformers/synthetix/models/raw/optimism/mainnet/v2_perp_margin_transferred_optimism_mainnet.sql +++ b/transformers/synthetix/models/raw/optimism/mainnet/v2_perp_margin_transferred_optimism_mainnet.sql @@ -4,29 +4,27 @@ post_hook = [ "create index if not exists idx_id on {{ this }} (id)", "create index if not exists idx_block_timestamp on {{ this }} (block_timestamp)", "create index if not exists idx_block_number on {{ this }} (block_number)", "create index if not exists idx_market on {{ this }} (market)" ] ) }} -WITH events AS ({{ get_v2_event_data('optimism', 'mainnet', 'margin_transferred') }}) -SELECT +with events as ({{ get_v2_event_data('optimism', 'mainnet', 'margin_transferred') }}) +select id, transaction_hash, block_timestamp, block_number, contract, - UPPER(market) AS market, + upper(market) as market, event_name, account, - {{ convert_wei('margin_delta') }} AS margin_delta -FROM + {{ convert_wei('margin_delta') }} as margin_delta +from events -WHERE - -{% if is_incremental() %} -block_number > ( - SELECT - COALESCE(MAX(block_number), 0) - FROM - {{ this }}) +where + {% if is_incremental() %} + block_number > ( + select coalesce(max(block_number), 0) as b + from {{ this }} + ) {% else %} - TRUE + true {% endif %} - ORDER BY - id +order by + id diff --git a/transformers/synthetix/models/raw/optimism/mainnet/v2_perp_position_liquidated_optimism_mainnet.sql b/transformers/synthetix/models/raw/optimism/mainnet/v2_perp_position_liquidated_optimism_mainnet.sql index c434acaa3..42b61380f 100644 --- a/transformers/synthetix/models/raw/optimism/mainnet/v2_perp_position_liquidated_optimism_mainnet.sql +++ b/transformers/synthetix/models/raw/optimism/mainnet/v2_perp_position_liquidated_optimism_mainnet.sql @@ -4,64 +4,68 @@ post_hook = [ "create index if not exists idx_id on {{ this }} (id)", "create index if not exists idx_block_timestamp on {{ this }} (block_timestamp)", "create index if not exists idx_block_number on {{ this }} (block_number)", "create index if not exists idx_market on {{ this }} (market)" ] ) }} -WITH legacy_events AS ({{ get_v2_event_data('optimism', 'mainnet', 'position_liquidated1') }}), -current_events AS ({{ get_v2_event_data('optimism', 'mainnet', 'position_liquidated0') }}) -SELECT +with legacy_events as ( + {{ get_v2_event_data('optimism', 'mainnet', 'position_liquidated1') }} +), + +current_events as ( + {{ get_v2_event_data('optimism', 'mainnet', 'position_liquidated0') }} +) + +select id, transaction_hash, block_number, block_timestamp, contract, - UPPER(market) AS market, + upper(market) as market, event_name, account, liquidator, stakers_fee, liquidator_fee, flagger_fee, - stakers_fee + liquidator_fee + flagger_fee AS total_fee, + stakers_fee + liquidator_fee + flagger_fee as total_fee, price -FROM +from current_events -WHERE - -{% if is_incremental() %} -block_number > ( - SELECT - COALESCE(MAX(block_number), 0) - FROM - {{ this }}) +where + {% if is_incremental() %} + block_number > ( + select coalesce(max(block_number), 0) as b + from {{ this }} + ) {% else %} - TRUE + true {% endif %} - UNION ALL - SELECT - id, - transaction_hash, - block_number, - block_timestamp, - contract, - UPPER(market) AS market, - event_name, - account, - liquidator, - fee AS stakers_fee, - 0 AS liquidator_fee, - 0 AS flagger_fee, - fee AS total_fee, - price - FROM - legacy_events - WHERE -{% if is_incremental() %} -block_number > ( - SELECT - COALESCE(MAX(block_number), 0) - FROM - {{ this }}) +union all + +select + id, + transaction_hash, + block_number, + block_timestamp, + contract, + upper(market) as market, + event_name, + account, + liquidator, + fee as stakers_fee, + 0 as liquidator_fee, + 0 as flagger_fee, + fee as total_fee, + price +from + legacy_events +where + {% if is_incremental() %} + block_number > ( + select coalesce(max(block_number), 0) as b + from {{ this }} + ) {% else %} - TRUE + true {% endif %} - ORDER BY - id +order by + id diff --git a/transformers/synthetix/models/raw/optimism/mainnet/v2_perp_position_modified_optimism_mainnet.sql b/transformers/synthetix/models/raw/optimism/mainnet/v2_perp_position_modified_optimism_mainnet.sql index 419ce5be0..6c954c1ff 100644 --- a/transformers/synthetix/models/raw/optimism/mainnet/v2_perp_position_modified_optimism_mainnet.sql +++ b/transformers/synthetix/models/raw/optimism/mainnet/v2_perp_position_modified_optimism_mainnet.sql @@ -4,60 +4,62 @@ post_hook = [ "create index if not exists idx_id on {{ this }} (id)", "create index if not exists idx_block_number on {{ this }} (block_number)", "create index if not exists idx_block_timestamp on {{ this }} (block_timestamp)", "create index if not exists idx_market on {{ this }} (market)", "create index if not exists idx_contract on {{ this }} (contract)", "create index if not exists idx_account on {{ this }} (account)" ] ) }} -WITH legacy_events AS ({{ get_v2_event_data('optimism', 'mainnet', 'position_modified1') }}), -current_events AS ({{ get_v2_event_data('optimism', 'mainnet', 'position_modified0') }}) -SELECT - * -FROM - ( - SELECT - id, - transaction_hash, - contract, - block_timestamp, - block_number, - UPPER(market) AS market, - event_name, - account, - funding_index, - last_price, - trade_size, - "size", - margin, - fee, - skew - FROM - current_events - UNION ALL - SELECT - id, - transaction_hash, - contract, - block_timestamp, - block_number, - UPPER(market) AS market, - event_name, - account, - funding_index, - last_price, - trade_size, - "size", - margin, - fee, - NULL AS skew - FROM - legacy_events - ) AS events -WHERE +with legacy_events as ( + {{ get_v2_event_data('optimism', 'mainnet', 'position_modified1') }} +), -{% if is_incremental() %} -block_number > ( - SELECT - COALESCE(MAX(block_number), 0) - FROM - {{ this }}) +current_events as ( + {{ get_v2_event_data('optimism', 'mainnet', 'position_modified0') }} +) + +select * +from ( + select + id, + transaction_hash, + contract, + block_timestamp, + block_number, + upper(market) as market, + event_name, + account, + funding_index, + last_price, + trade_size, + size, + margin, + fee, + skew + from + current_events + union all + select + id, + transaction_hash, + contract, + block_timestamp, + block_number, + upper(market) as market, + event_name, + account, + funding_index, + last_price, + trade_size, + size, + margin, + fee, + null as skew + from + legacy_events +) as events +where + {% if is_incremental() %} + block_number > ( + select coalesce(max(block_number), 0) as b + from {{ this }} + ) {% else %} - TRUE + true {% endif %} - ORDER BY - id +order by + id From d6ba498af686ae1af53cbacda06be79a691da33b Mon Sep 17 00:00:00 2001 From: marcus-snx Date: Fri, 23 Aug 2024 15:22:57 +0300 Subject: [PATCH 2/6] Lint models some more --- transformers/synthetix/.sqlfluff | 4 ++ ..._pool_issuance_hourly_arbitrum_mainnet.sql | 14 ++--- ...ool_pnl_hourly_reward_arbitrum_mainnet.sql | 1 - .../fct_pool_rewards_arbitrum_mainnet.sql | 2 +- ..._pool_issuance_hourly_arbitrum_sepolia.sql | 14 ++--- .../fct_buyback_daily_base_mainnet.sql | 2 +- .../fct_buyback_hourly_base_mainnet.sql | 2 +- .../fct_pool_issuance_hourly_base_mainnet.sql | 14 ++--- .../fct_perp_liq_account_base_mainnet.sql | 24 ++++----- ..._perp_account_stats_daily_base_mainnet.sql | 6 +-- ...perp_account_stats_hourly_base_mainnet.sql | 8 +-- ...t_perp_keeper_stats_daily_base_mainnet.sql | 23 ++++---- ..._perp_keeper_stats_hourly_base_mainnet.sql | 24 ++++----- ...t_perp_market_stats_daily_base_mainnet.sql | 4 +- ..._perp_market_stats_hourly_base_mainnet.sql | 8 +-- .../fct_perp_stats_daily_base_mainnet.sql | 2 +- .../fct_perp_stats_hourly_base_mainnet.sql | 4 +- ...perp_tracking_stats_daily_base_mainnet.sql | 12 ++--- ...erp_tracking_stats_hourly_base_mainnet.sql | 12 ++--- .../fct_buyback_daily_base_sepolia.sql | 2 +- .../fct_buyback_hourly_base_sepolia.sql | 2 +- .../fct_pool_issuance_hourly_base_sepolia.sql | 14 ++--- .../fct_perp_liq_account_base_sepolia.sql | 24 ++++----- ..._perp_account_stats_daily_base_sepolia.sql | 6 +-- ...perp_account_stats_hourly_base_sepolia.sql | 8 +-- ...t_perp_keeper_stats_daily_base_sepolia.sql | 23 ++++---- ..._perp_keeper_stats_hourly_base_sepolia.sql | 24 ++++----- ...t_perp_market_stats_daily_base_sepolia.sql | 4 +- ..._perp_market_stats_hourly_base_sepolia.sql | 8 +-- .../fct_perp_stats_daily_base_sepolia.sql | 2 +- .../fct_perp_stats_hourly_base_sepolia.sql | 4 +- ...perp_tracking_stats_daily_base_sepolia.sql | 12 ++--- ...erp_tracking_stats_hourly_base_sepolia.sql | 12 ++--- .../fct_core_migration_hourly_eth_mainnet.sql | 26 ++-------- .../fct_pool_issuance_hourly_eth_mainnet.sql | 14 ++--- .../fct_v2_funding_optimism_mainnet.sql | 3 +- .../fct_v2_liquidations_optimism_mainnet.sql | 3 +- .../fct_v2_market_stats_optimism_mainnet.sql | 5 +- ...fct_v2_trade_tracking_optimism_mainnet.sql | 7 ++- .../fct_v2_trades_optimism_mainnet.sql | 17 +++--- ...t_v2_integrator_daily_optimism_mainnet.sql | 52 +++++++++---------- ..._v2_integrator_hourly_optimism_mainnet.sql | 52 +++++++++---------- .../fct_v2_market_daily_optimism_mainnet.sql | 4 +- .../fct_v2_market_hourly_optimism_mainnet.sql | 4 +- .../fct_v2_stats_daily_optimism_mainnet.sql | 2 +- .../fct_v2_stats_hourly_optimism_mainnet.sql | 2 +- .../mainnet/blocks_arbitrum_mainnet.sql | 10 ++-- .../sepolia/blocks_arbitrum_sepolia.sql | 10 ++-- .../raw/base/mainnet/blocks_base_mainnet.sql | 10 ++-- .../raw/base/sepolia/blocks_base_sepolia.sql | 10 ++-- .../core/core_market_updated_base_sepolia.sql | 2 +- .../raw/eth/mainnet/blocks_eth_mainnet.sql | 11 ++-- ...layed_order_submitted_optimism_mainnet.sql | 7 ++- ...rp_funding_recomputed_optimism_mainnet.sql | 8 +-- ...rp_margin_transferred_optimism_mainnet.sql | 5 +- ...p_position_liquidated_optimism_mainnet.sql | 4 +- ...erp_position_modified_optimism_mainnet.sql | 4 +- 57 files changed, 295 insertions(+), 302 deletions(-) diff --git a/transformers/synthetix/.sqlfluff b/transformers/synthetix/.sqlfluff index 303fe2dbb..c86ca6df1 100644 --- a/transformers/synthetix/.sqlfluff +++ b/transformers/synthetix/.sqlfluff @@ -4,6 +4,7 @@ ignore = templating runaway_limit = 10 max_line_length = 80 indent_unit = space +exclude_rules = ST06, ST05 [sqlfluff:indentation] tab_space_size = 4 @@ -35,3 +36,6 @@ capitalisation_policy = lower [sqlfluff:rules:ambiguous.column_references] # Number in group by group_by_and_order_by_style = explicit + +[sqlfluff:rules:references:quoting] +prefer_quoted_keywords = True diff --git a/transformers/synthetix/models/marts/arbitrum/mainnet/core/fct_pool_issuance_hourly_arbitrum_mainnet.sql b/transformers/synthetix/models/marts/arbitrum/mainnet/core/fct_pool_issuance_hourly_arbitrum_mainnet.sql index 82c38c74c..9a16f0e64 100644 --- a/transformers/synthetix/models/marts/arbitrum/mainnet/core/fct_pool_issuance_hourly_arbitrum_mainnet.sql +++ b/transformers/synthetix/models/marts/arbitrum/mainnet/core/fct_pool_issuance_hourly_arbitrum_mainnet.sql @@ -5,7 +5,7 @@ with dim as ( generate_series( date_trunc('hour', min(t.ts)), date_trunc('hour', max(t.ts)), - '1 hour'::INTERVAL + '1 hour'::interval ) as ts from ( @@ -32,7 +32,7 @@ max_debt_block as ( date_trunc( 'hour', ts - ) as hour, + ) as "hour", max(block_number) as max_block_number from {{ ref('fct_pool_debt_arbitrum_mainnet') }} @@ -54,7 +54,7 @@ filt_issuance as ( when i.block_number <= d.max_block_number or d.max_block_number is null then i.ts - else i.ts + INTERVAL '1 hour' + else i.ts + interval '1 hour' end as ts from {{ ref('fct_pool_issuance_arbitrum_mainnet') }} @@ -75,7 +75,7 @@ filt_issuance as ( select max( max_block_number - ) + ) as b from max_debt_block ) @@ -93,9 +93,9 @@ issuance as ( from filt_issuance group by - 1, - 2, - 3 + ts, + pool_id, + collateral_type ) select diff --git a/transformers/synthetix/models/marts/arbitrum/mainnet/core/fct_pool_pnl_hourly_reward_arbitrum_mainnet.sql b/transformers/synthetix/models/marts/arbitrum/mainnet/core/fct_pool_pnl_hourly_reward_arbitrum_mainnet.sql index 9fc13d963..1d19926e7 100644 --- a/transformers/synthetix/models/marts/arbitrum/mainnet/core/fct_pool_pnl_hourly_reward_arbitrum_mainnet.sql +++ b/transformers/synthetix/models/marts/arbitrum/mainnet/core/fct_pool_pnl_hourly_reward_arbitrum_mainnet.sql @@ -4,7 +4,6 @@ ) }} with dim as ( - select t.pool_id, t.collateral_type, diff --git a/transformers/synthetix/models/marts/arbitrum/mainnet/core/fct_pool_rewards_arbitrum_mainnet.sql b/transformers/synthetix/models/marts/arbitrum/mainnet/core/fct_pool_rewards_arbitrum_mainnet.sql index e75403586..02a0278d6 100644 --- a/transformers/synthetix/models/marts/arbitrum/mainnet/core/fct_pool_rewards_arbitrum_mainnet.sql +++ b/transformers/synthetix/models/marts/arbitrum/mainnet/core/fct_pool_rewards_arbitrum_mainnet.sql @@ -34,4 +34,4 @@ from rewards_distributed as rd inner join distributors on rd.distributor = distributors.distributor_address order by - ts + rd.ts diff --git a/transformers/synthetix/models/marts/arbitrum/sepolia/core/fct_pool_issuance_hourly_arbitrum_sepolia.sql b/transformers/synthetix/models/marts/arbitrum/sepolia/core/fct_pool_issuance_hourly_arbitrum_sepolia.sql index d2768038f..1e0bd24a7 100644 --- a/transformers/synthetix/models/marts/arbitrum/sepolia/core/fct_pool_issuance_hourly_arbitrum_sepolia.sql +++ b/transformers/synthetix/models/marts/arbitrum/sepolia/core/fct_pool_issuance_hourly_arbitrum_sepolia.sql @@ -5,7 +5,7 @@ with dim as ( generate_series( date_trunc('hour', min(t.ts)), date_trunc('hour', max(t.ts)), - '1 hour'::INTERVAL + '1 hour'::interval ) as ts from ( @@ -32,7 +32,7 @@ max_debt_block as ( date_trunc( 'hour', ts - ) as hour, + ) as "hour", max(block_number) as max_block_number from {{ ref('fct_pool_debt_arbitrum_sepolia') }} @@ -54,7 +54,7 @@ filt_issuance as ( when i.block_number <= d.max_block_number or d.max_block_number is null then i.ts - else i.ts + INTERVAL '1 hour' + else i.ts + interval '1 hour' end as ts from {{ ref('fct_pool_issuance_arbitrum_sepolia') }} @@ -75,7 +75,7 @@ filt_issuance as ( select max( max_block_number - ) + ) as b from max_debt_block ) @@ -93,9 +93,9 @@ issuance as ( from filt_issuance group by - 1, - 2, - 3 + ts, + pool_id, + collateral_type ) select diff --git a/transformers/synthetix/models/marts/base/mainnet/buyback/fct_buyback_daily_base_mainnet.sql b/transformers/synthetix/models/marts/base/mainnet/buyback/fct_buyback_daily_base_mainnet.sql index ed21b6664..6349b9ed7 100644 --- a/transformers/synthetix/models/marts/base/mainnet/buyback/fct_buyback_daily_base_mainnet.sql +++ b/transformers/synthetix/models/marts/base/mainnet/buyback/fct_buyback_daily_base_mainnet.sql @@ -9,7 +9,7 @@ with agg as ( from {{ ref('fct_buyback_base_mainnet') }} group by - 1 + ts ) -- add cumulative amounts select diff --git a/transformers/synthetix/models/marts/base/mainnet/buyback/fct_buyback_hourly_base_mainnet.sql b/transformers/synthetix/models/marts/base/mainnet/buyback/fct_buyback_hourly_base_mainnet.sql index d50e7e7db..18962ac10 100644 --- a/transformers/synthetix/models/marts/base/mainnet/buyback/fct_buyback_hourly_base_mainnet.sql +++ b/transformers/synthetix/models/marts/base/mainnet/buyback/fct_buyback_hourly_base_mainnet.sql @@ -9,7 +9,7 @@ with agg as ( from {{ ref('fct_buyback_base_mainnet') }} group by - 1 + ts ) -- add cumulative amounts select diff --git a/transformers/synthetix/models/marts/base/mainnet/core/fct_pool_issuance_hourly_base_mainnet.sql b/transformers/synthetix/models/marts/base/mainnet/core/fct_pool_issuance_hourly_base_mainnet.sql index fdf731b8b..fa6d4eec5 100644 --- a/transformers/synthetix/models/marts/base/mainnet/core/fct_pool_issuance_hourly_base_mainnet.sql +++ b/transformers/synthetix/models/marts/base/mainnet/core/fct_pool_issuance_hourly_base_mainnet.sql @@ -5,7 +5,7 @@ with dim as ( generate_series( date_trunc('hour', min(t.ts)), date_trunc('hour', max(t.ts)), - '1 hour'::INTERVAL + '1 hour'::interval ) as ts from ( @@ -32,7 +32,7 @@ max_debt_block as ( date_trunc( 'hour', ts - ) as hour, + ) as "hour", max(block_number) as max_block_number from {{ ref('fct_pool_debt_base_mainnet') }} @@ -54,7 +54,7 @@ filt_issuance as ( when i.block_number <= d.max_block_number or d.max_block_number is null then i.ts - else i.ts + INTERVAL '1 hour' + else i.ts + interval '1 hour' end as ts from {{ ref('fct_pool_issuance_base_mainnet') }} @@ -75,7 +75,7 @@ filt_issuance as ( select max( max_block_number - ) + ) as b from max_debt_block ) @@ -93,9 +93,9 @@ issuance as ( from filt_issuance group by - 1, - 2, - 3 + ts, + pool_id, + collateral_type ) select diff --git a/transformers/synthetix/models/marts/base/mainnet/perp/fct_perp_liq_account_base_mainnet.sql b/transformers/synthetix/models/marts/base/mainnet/perp/fct_perp_liq_account_base_mainnet.sql index 73d292e6a..ab1fc4ec8 100644 --- a/transformers/synthetix/models/marts/base/mainnet/perp/fct_perp_liq_account_base_mainnet.sql +++ b/transformers/synthetix/models/marts/base/mainnet/perp/fct_perp_liq_account_base_mainnet.sql @@ -22,29 +22,29 @@ with liquidation_events as ( cumulative_rewards as ( select - le.block_timestamp, - le.reward, - le.full_liquidation, - le.liquidation_id, + block_timestamp, + reward, + full_liquidation, + liquidation_id, CAST( - le.account_id as text + account_id as text ) as account_id, SUM({{ convert_wei('reward') }}) over ( partition by - le.account_id, - le.liquidation_id + account_id, + liquidation_id order by - le.block_timestamp + block_timestamp ) as cumulative_reward, ROW_NUMBER() over ( partition by - le.account_id, - le.liquidation_id + account_id, + liquidation_id order by - le.block_timestamp desc + block_timestamp desc ) as rn from - liquidation_events as le + liquidation_events order by block_timestamp ) diff --git a/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_account_stats_daily_base_mainnet.sql b/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_account_stats_daily_base_mainnet.sql index 381ffe04f..ca2850eae 100644 --- a/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_account_stats_daily_base_mainnet.sql +++ b/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_account_stats_daily_base_mainnet.sql @@ -12,13 +12,13 @@ with daily as ( from {{ ref('fct_perp_account_stats_hourly_base_mainnet') }} group by - 1, - 2 + ts, + account_id ), stats as ( select - daily.*, + *, SUM(fees) over ( partition by account_id order by diff --git a/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_account_stats_hourly_base_mainnet.sql b/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_account_stats_hourly_base_mainnet.sql index 840d3006f..d26bd17ec 100644 --- a/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_account_stats_hourly_base_mainnet.sql +++ b/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_account_stats_hourly_base_mainnet.sql @@ -48,8 +48,8 @@ inc_trades as ( from trades group by - 1, - 2 + ts, + account_id ), inc_liq as ( @@ -64,8 +64,8 @@ inc_liq as ( from liq group by - 1, - 2 + ts, + account_id ), inc as ( diff --git a/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_keeper_stats_daily_base_mainnet.sql b/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_keeper_stats_daily_base_mainnet.sql index 4405cd597..9dc6faad8 100644 --- a/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_keeper_stats_daily_base_mainnet.sql +++ b/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_keeper_stats_daily_base_mainnet.sql @@ -21,23 +21,24 @@ total as ( from hourly group by - 1 + ts ) select hourly.ts, - keeper, - SUM(trades) as trades, - SUM(settlement_rewards) as settlement_rewards, - SUM(amount_settled) as amount_settled, - SUM(trades) / MAX(trades_total) as trades_pct, - SUM(settlement_rewards) - / MAX(settlement_reward_total) as settlement_rewards_pct, - SUM(amount_settled) / MAX(amount_settled_total) as amount_settled_pct + hourly.keeper, + SUM(hourly.trades) as trades, + SUM(hourly.settlement_rewards) as settlement_rewards, + SUM(hourly.amount_settled) as amount_settled, + SUM(hourly.trades) / MAX(total.trades_total) as trades_pct, + SUM(hourly.settlement_rewards) + / MAX(total.settlement_reward_total) as settlement_rewards_pct, + SUM(hourly.amount_settled) + / MAX(total.amount_settled_total) as amount_settled_pct from hourly inner join total on hourly.ts = total.ts group by - 1, - 2 + hourly.ts, + hourly.keeper diff --git a/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_keeper_stats_hourly_base_mainnet.sql b/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_keeper_stats_hourly_base_mainnet.sql index e557cca43..df614ddf0 100644 --- a/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_keeper_stats_hourly_base_mainnet.sql +++ b/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_keeper_stats_hourly_base_mainnet.sql @@ -21,24 +21,24 @@ total as ( from trades group by - 1 + ts ) select trades.ts, - settler as keeper, - SUM(trades) as trades, - SUM(settlement_reward) as settlement_rewards, - SUM(notional_trade_size) as amount_settled, - SUM(trades) / MAX(trades_total) as trades_pct, - SUM(settlement_reward) - / MAX(settlement_reward_total) as settlement_rewards_pct, - SUM(notional_trade_size) - / MAX(notional_trade_size_total) as amount_settled_pct + trades.settler as keeper, + SUM(trades.trades) as trades, + SUM(trades.settlement_reward) as settlement_rewards, + SUM(trades.notional_trade_size) as amount_settled, + SUM(trades.trades) / MAX(total.trades_total) as trades_pct, + SUM(trades.settlement_reward) + / MAX(total.settlement_reward_total) as settlement_rewards_pct, + SUM(trades.notional_trade_size) + / MAX(total.notional_trade_size_total) as amount_settled_pct from trades inner join total on trades.ts = total.ts group by - 1, - 2 + trades.ts, + trades.settler diff --git a/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_market_stats_daily_base_mainnet.sql b/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_market_stats_daily_base_mainnet.sql index fcc58d34b..599cf3d23 100644 --- a/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_market_stats_daily_base_mainnet.sql +++ b/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_market_stats_daily_base_mainnet.sql @@ -18,5 +18,5 @@ select from {{ ref('fct_perp_market_stats_hourly_base_mainnet') }} group by - 1, - 2 + ts, + market_symbol diff --git a/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_market_stats_hourly_base_mainnet.sql b/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_market_stats_hourly_base_mainnet.sql index 00deb06f5..cca2d0cd0 100644 --- a/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_market_stats_hourly_base_mainnet.sql +++ b/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_market_stats_hourly_base_mainnet.sql @@ -36,8 +36,8 @@ inc_trades as ( from trades group by - 1, - 2 + ts, + market_symbol ), inc_liq as ( @@ -52,8 +52,8 @@ inc_liq as ( from liq group by - 1, - 2 + ts, + market_symbol ), dim as ( diff --git a/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_stats_daily_base_mainnet.sql b/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_stats_daily_base_mainnet.sql index 11023282c..12e243a8d 100644 --- a/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_stats_daily_base_mainnet.sql +++ b/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_stats_daily_base_mainnet.sql @@ -17,4 +17,4 @@ select from {{ ref('fct_perp_stats_hourly_base_mainnet') }} group by - 1 + ts diff --git a/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_stats_hourly_base_mainnet.sql b/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_stats_hourly_base_mainnet.sql index a73df59bc..db6663a6f 100644 --- a/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_stats_hourly_base_mainnet.sql +++ b/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_stats_hourly_base_mainnet.sql @@ -36,7 +36,7 @@ inc_liq as ( from liq group by - 1 + ts ), inc_trade as ( @@ -54,7 +54,7 @@ inc_trade as ( from inc_market group by - 1 + ts ), inc as ( diff --git a/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_tracking_stats_daily_base_mainnet.sql b/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_tracking_stats_daily_base_mainnet.sql index 0513e0610..998178bc9 100644 --- a/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_tracking_stats_daily_base_mainnet.sql +++ b/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_tracking_stats_daily_base_mainnet.sql @@ -13,8 +13,8 @@ with trades as ( from {{ ref('fct_perp_tracking_stats_hourly_base_mainnet') }} group by - 1, - 2 + ts, + tracking_code ), accounts as ( @@ -26,12 +26,12 @@ accounts as ( tracking_code, COUNT( distinct account_id - ) as accounts + ) as "accounts" from {{ ref('fct_perp_trades_base_mainnet') }} group by - 1, - 2 + ts, + tracking_code ), total as ( @@ -45,7 +45,7 @@ total as ( from trades group by - 1 + ts ) select diff --git a/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_tracking_stats_hourly_base_mainnet.sql b/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_tracking_stats_hourly_base_mainnet.sql index 7a4f547ff..b75dc0bfa 100644 --- a/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_tracking_stats_hourly_base_mainnet.sql +++ b/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_tracking_stats_hourly_base_mainnet.sql @@ -13,8 +13,8 @@ with trades as ( from {{ ref('fct_perp_trades_base_mainnet') }} group by - 1, - 2 + ts, + tracking_code ), accounts as ( @@ -26,12 +26,12 @@ accounts as ( tracking_code, COUNT( distinct account_id - ) as accounts + ) as "accounts" from {{ ref('fct_perp_trades_base_mainnet') }} group by - 1, - 2 + ts, + tracking_code ), total as ( @@ -45,7 +45,7 @@ total as ( from trades group by - 1 + ts ) select diff --git a/transformers/synthetix/models/marts/base/sepolia/buyback/fct_buyback_daily_base_sepolia.sql b/transformers/synthetix/models/marts/base/sepolia/buyback/fct_buyback_daily_base_sepolia.sql index 611b12ef0..93f74e133 100644 --- a/transformers/synthetix/models/marts/base/sepolia/buyback/fct_buyback_daily_base_sepolia.sql +++ b/transformers/synthetix/models/marts/base/sepolia/buyback/fct_buyback_daily_base_sepolia.sql @@ -9,7 +9,7 @@ with agg as ( from {{ ref('fct_buyback_base_sepolia') }} group by - 1 + ts ) -- add cumulative amounts select diff --git a/transformers/synthetix/models/marts/base/sepolia/buyback/fct_buyback_hourly_base_sepolia.sql b/transformers/synthetix/models/marts/base/sepolia/buyback/fct_buyback_hourly_base_sepolia.sql index 87050f0d4..30f42861b 100644 --- a/transformers/synthetix/models/marts/base/sepolia/buyback/fct_buyback_hourly_base_sepolia.sql +++ b/transformers/synthetix/models/marts/base/sepolia/buyback/fct_buyback_hourly_base_sepolia.sql @@ -9,7 +9,7 @@ with agg as ( from {{ ref('fct_buyback_base_sepolia') }} group by - 1 + ts ) -- add cumulative amounts select diff --git a/transformers/synthetix/models/marts/base/sepolia/core/fct_pool_issuance_hourly_base_sepolia.sql b/transformers/synthetix/models/marts/base/sepolia/core/fct_pool_issuance_hourly_base_sepolia.sql index 686fe61ec..9b02db09e 100644 --- a/transformers/synthetix/models/marts/base/sepolia/core/fct_pool_issuance_hourly_base_sepolia.sql +++ b/transformers/synthetix/models/marts/base/sepolia/core/fct_pool_issuance_hourly_base_sepolia.sql @@ -5,7 +5,7 @@ with dim as ( generate_series( date_trunc('hour', min(t.ts)), date_trunc('hour', max(t.ts)), - '1 hour'::INTERVAL + '1 hour'::interval ) as ts from ( @@ -32,7 +32,7 @@ max_debt_block as ( date_trunc( 'hour', ts - ) as hour, + ) as "hour", max(block_number) as max_block_number from {{ ref('fct_pool_debt_base_sepolia') }} @@ -54,7 +54,7 @@ filt_issuance as ( when i.block_number <= d.max_block_number or d.max_block_number is null then i.ts - else i.ts + INTERVAL '1 hour' + else i.ts + interval '1 hour' end as ts from {{ ref('fct_pool_issuance_base_sepolia') }} @@ -75,7 +75,7 @@ filt_issuance as ( select max( max_block_number - ) + ) as b from max_debt_block ) @@ -93,9 +93,9 @@ issuance as ( from filt_issuance group by - 1, - 2, - 3 + ts, + pool_id, + collateral_type ) select diff --git a/transformers/synthetix/models/marts/base/sepolia/perp/fct_perp_liq_account_base_sepolia.sql b/transformers/synthetix/models/marts/base/sepolia/perp/fct_perp_liq_account_base_sepolia.sql index 3d81a910e..bc7b23981 100644 --- a/transformers/synthetix/models/marts/base/sepolia/perp/fct_perp_liq_account_base_sepolia.sql +++ b/transformers/synthetix/models/marts/base/sepolia/perp/fct_perp_liq_account_base_sepolia.sql @@ -22,29 +22,29 @@ with liquidation_events as ( cumulative_rewards as ( select - le.block_timestamp, - le.reward, - le.full_liquidation, - le.liquidation_id, + block_timestamp, + reward, + full_liquidation, + liquidation_id, CAST( - le.account_id as text + account_id as text ) as account_id, SUM({{ convert_wei('reward') }}) over ( partition by - le.account_id, - le.liquidation_id + account_id, + liquidation_id order by - le.block_timestamp + block_timestamp ) as cumulative_reward, ROW_NUMBER() over ( partition by - le.account_id, - le.liquidation_id + account_id, + liquidation_id order by - le.block_timestamp desc + block_timestamp desc ) as rn from - liquidation_events as le + liquidation_events order by block_timestamp ) diff --git a/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_account_stats_daily_base_sepolia.sql b/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_account_stats_daily_base_sepolia.sql index c8e862b74..9077928e6 100644 --- a/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_account_stats_daily_base_sepolia.sql +++ b/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_account_stats_daily_base_sepolia.sql @@ -12,13 +12,13 @@ with daily as ( from {{ ref('fct_perp_account_stats_hourly_base_sepolia') }} group by - 1, - 2 + ts, + account_id ), stats as ( select - daily.*, + *, SUM(fees) over ( partition by account_id order by diff --git a/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_account_stats_hourly_base_sepolia.sql b/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_account_stats_hourly_base_sepolia.sql index b557db393..3ae1cce07 100644 --- a/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_account_stats_hourly_base_sepolia.sql +++ b/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_account_stats_hourly_base_sepolia.sql @@ -48,8 +48,8 @@ inc_trades as ( from trades group by - 1, - 2 + ts, + account_id ), inc_liq as ( @@ -64,8 +64,8 @@ inc_liq as ( from liq group by - 1, - 2 + ts, + account_id ), inc as ( diff --git a/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_keeper_stats_daily_base_sepolia.sql b/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_keeper_stats_daily_base_sepolia.sql index 65639ff21..a9f4dcfe1 100644 --- a/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_keeper_stats_daily_base_sepolia.sql +++ b/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_keeper_stats_daily_base_sepolia.sql @@ -21,23 +21,24 @@ total as ( from hourly group by - 1 + ts ) select hourly.ts, - keeper, - SUM(trades) as trades, - SUM(settlement_rewards) as settlement_rewards, - SUM(amount_settled) as amount_settled, - SUM(trades) / MAX(trades_total) as trades_pct, - SUM(settlement_rewards) - / MAX(settlement_reward_total) as settlement_rewards_pct, - SUM(amount_settled) / MAX(amount_settled_total) as amount_settled_pct + hourly.keeper, + SUM(hourly.trades) as trades, + SUM(hourly.settlement_rewards) as settlement_rewards, + SUM(hourly.amount_settled) as amount_settled, + SUM(hourly.trades) / MAX(total.trades_total) as trades_pct, + SUM(hourly.settlement_rewards) + / MAX(total.settlement_reward_total) as settlement_rewards_pct, + SUM(hourly.amount_settled) + / MAX(total.amount_settled_total) as amount_settled_pct from hourly inner join total on hourly.ts = total.ts group by - 1, - 2 + hourly.ts, + hourly.keeper diff --git a/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_keeper_stats_hourly_base_sepolia.sql b/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_keeper_stats_hourly_base_sepolia.sql index 5cac59d33..dafcb25cf 100644 --- a/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_keeper_stats_hourly_base_sepolia.sql +++ b/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_keeper_stats_hourly_base_sepolia.sql @@ -21,24 +21,24 @@ total as ( from trades group by - 1 + ts ) select trades.ts, - settler as keeper, - SUM(trades) as trades, - SUM(settlement_reward) as settlement_rewards, - SUM(notional_trade_size) as amount_settled, - SUM(trades) / MAX(trades_total) as trades_pct, - SUM(settlement_reward) - / MAX(settlement_reward_total) as settlement_rewards_pct, - SUM(notional_trade_size) - / MAX(notional_trade_size_total) as amount_settled_pct + trades.settler as keeper, + SUM(trades.trades) as trades, + SUM(trades.settlement_reward) as settlement_rewards, + SUM(trades.notional_trade_size) as amount_settled, + SUM(trades.trades) / MAX(total.trades_total) as trades_pct, + SUM(trades.settlement_reward) + / MAX(total.settlement_reward_total) as settlement_rewards_pct, + SUM(trades.notional_trade_size) + / MAX(total.notional_trade_size_total) as amount_settled_pct from trades inner join total on trades.ts = total.ts group by - 1, - 2 + trades.ts, + trades.settler diff --git a/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_market_stats_daily_base_sepolia.sql b/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_market_stats_daily_base_sepolia.sql index 04a843e11..09bdc4e97 100644 --- a/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_market_stats_daily_base_sepolia.sql +++ b/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_market_stats_daily_base_sepolia.sql @@ -18,5 +18,5 @@ select from {{ ref('fct_perp_market_stats_hourly_base_sepolia') }} group by - 1, - 2 + ts, + market_symbol diff --git a/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_market_stats_hourly_base_sepolia.sql b/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_market_stats_hourly_base_sepolia.sql index 5fe417125..9b80fbf42 100644 --- a/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_market_stats_hourly_base_sepolia.sql +++ b/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_market_stats_hourly_base_sepolia.sql @@ -36,8 +36,8 @@ inc_trades as ( from trades group by - 1, - 2 + ts, + market_symbol ), inc_liq as ( @@ -52,8 +52,8 @@ inc_liq as ( from liq group by - 1, - 2 + ts, + market_symbol ), dim as ( diff --git a/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_stats_daily_base_sepolia.sql b/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_stats_daily_base_sepolia.sql index 53bba3463..f378b88c8 100644 --- a/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_stats_daily_base_sepolia.sql +++ b/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_stats_daily_base_sepolia.sql @@ -17,4 +17,4 @@ select from {{ ref('fct_perp_stats_hourly_base_sepolia') }} group by - 1 + ts diff --git a/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_stats_hourly_base_sepolia.sql b/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_stats_hourly_base_sepolia.sql index 08823ab36..85ced691e 100644 --- a/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_stats_hourly_base_sepolia.sql +++ b/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_stats_hourly_base_sepolia.sql @@ -36,7 +36,7 @@ inc_liq as ( from liq group by - 1 + ts ), inc_trade as ( @@ -54,7 +54,7 @@ inc_trade as ( from inc_market group by - 1 + ts ), inc as ( diff --git a/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_tracking_stats_daily_base_sepolia.sql b/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_tracking_stats_daily_base_sepolia.sql index faa3a30fd..9fb9d6f7b 100644 --- a/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_tracking_stats_daily_base_sepolia.sql +++ b/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_tracking_stats_daily_base_sepolia.sql @@ -13,8 +13,8 @@ with trades as ( from {{ ref('fct_perp_tracking_stats_hourly_base_sepolia') }} group by - 1, - 2 + ts, + tracking_code ), accounts as ( @@ -26,12 +26,12 @@ accounts as ( tracking_code, COUNT( distinct account_id - ) as accounts + ) as "accounts" from {{ ref('fct_perp_trades_base_sepolia') }} group by - 1, - 2 + ts, + tracking_code ), total as ( @@ -45,7 +45,7 @@ total as ( from trades group by - 1 + ts ) select diff --git a/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_tracking_stats_hourly_base_sepolia.sql b/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_tracking_stats_hourly_base_sepolia.sql index 66cf14472..8d3359dfd 100644 --- a/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_tracking_stats_hourly_base_sepolia.sql +++ b/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_tracking_stats_hourly_base_sepolia.sql @@ -13,8 +13,8 @@ with trades as ( from {{ ref('fct_perp_trades_base_sepolia') }} group by - 1, - 2 + ts, + tracking_code ), accounts as ( @@ -26,12 +26,12 @@ accounts as ( tracking_code, COUNT( distinct account_id - ) as accounts + ) as "accounts" from {{ ref('fct_perp_trades_base_sepolia') }} group by - 1, - 2 + ts, + tracking_code ), total as ( @@ -45,7 +45,7 @@ total as ( from trades group by - 1 + ts ) select diff --git a/transformers/synthetix/models/marts/eth/mainnet/core/fct_core_migration_hourly_eth_mainnet.sql b/transformers/synthetix/models/marts/eth/mainnet/core/fct_core_migration_hourly_eth_mainnet.sql index 0b4b874c7..5976638b8 100644 --- a/transformers/synthetix/models/marts/eth/mainnet/core/fct_core_migration_hourly_eth_mainnet.sql +++ b/transformers/synthetix/models/marts/eth/mainnet/core/fct_core_migration_hourly_eth_mainnet.sql @@ -25,26 +25,6 @@ with dim as ( m.collateral_type ), -max_debt_block as ( - select - pool_id, - collateral_type, - date_trunc( - 'hour', - ts - ) as hour, - max(block_number) as max_block_number - from - {{ ref('fct_pool_debt_eth_mainnet') }} - group by - date_trunc( - 'hour', - ts - ), - pool_id, - collateral_type -), - migration as ( select date_trunc( @@ -57,9 +37,9 @@ migration as ( from {{ ref('fct_core_migration_eth_mainnet') }} group by - 1, - 2, - 3 + ts, + pool_id, + collateral_type ) select diff --git a/transformers/synthetix/models/marts/eth/mainnet/core/fct_pool_issuance_hourly_eth_mainnet.sql b/transformers/synthetix/models/marts/eth/mainnet/core/fct_pool_issuance_hourly_eth_mainnet.sql index f69d53b54..2641e0f8b 100644 --- a/transformers/synthetix/models/marts/eth/mainnet/core/fct_pool_issuance_hourly_eth_mainnet.sql +++ b/transformers/synthetix/models/marts/eth/mainnet/core/fct_pool_issuance_hourly_eth_mainnet.sql @@ -5,7 +5,7 @@ with dim as ( generate_series( date_trunc('hour', min(t.ts)), date_trunc('hour', max(t.ts)), - '1 hour'::INTERVAL + '1 hour'::interval ) as ts from ( @@ -32,7 +32,7 @@ max_debt_block as ( date_trunc( 'hour', ts - ) as hour, + ) as "hour", max(block_number) as max_block_number from {{ ref('fct_pool_debt_eth_mainnet') }} @@ -54,7 +54,7 @@ filt_issuance as ( when i.block_number <= d.max_block_number or d.max_block_number is null then i.ts - else i.ts + INTERVAL '1 hour' + else i.ts + interval '1 hour' end as ts from {{ ref('fct_pool_issuance_eth_mainnet') }} @@ -75,7 +75,7 @@ filt_issuance as ( select max( max_block_number - ) + ) as b from max_debt_block ) @@ -93,9 +93,9 @@ issuance as ( from filt_issuance group by - 1, - 2, - 3 + ts, + pool_id, + collateral_type ) select diff --git a/transformers/synthetix/models/marts/optimism/mainnet/fct_v2_funding_optimism_mainnet.sql b/transformers/synthetix/models/marts/optimism/mainnet/fct_v2_funding_optimism_mainnet.sql index a93d23238..f77649021 100644 --- a/transformers/synthetix/models/marts/optimism/mainnet/fct_v2_funding_optimism_mainnet.sql +++ b/transformers/synthetix/models/marts/optimism/mainnet/fct_v2_funding_optimism_mainnet.sql @@ -5,7 +5,6 @@ ) }} with funding as ( - select block_number, market, @@ -31,7 +30,7 @@ with funding as ( {% if is_incremental() %} where block_number > ( - select COALESCE(MAX(block_number), 0) + select COALESCE(MAX(block_number), 0) as b from {{ this }} ) diff --git a/transformers/synthetix/models/marts/optimism/mainnet/fct_v2_liquidations_optimism_mainnet.sql b/transformers/synthetix/models/marts/optimism/mainnet/fct_v2_liquidations_optimism_mainnet.sql index c19d048b5..3627007cd 100644 --- a/transformers/synthetix/models/marts/optimism/mainnet/fct_v2_liquidations_optimism_mainnet.sql +++ b/transformers/synthetix/models/marts/optimism/mainnet/fct_v2_liquidations_optimism_mainnet.sql @@ -4,7 +4,6 @@ ) }} with liq_trades as ( - select id, block_timestamp, @@ -40,7 +39,7 @@ liq_events as ( {% if is_incremental() %} where block_number > ( - select COALESCE(MAX(block_number), 0) + select COALESCE(MAX(block_number), 0) as b from {{ this }} ) diff --git a/transformers/synthetix/models/marts/optimism/mainnet/fct_v2_market_stats_optimism_mainnet.sql b/transformers/synthetix/models/marts/optimism/mainnet/fct_v2_market_stats_optimism_mainnet.sql index 64f9bfc81..24acd6933 100644 --- a/transformers/synthetix/models/marts/optimism/mainnet/fct_v2_market_stats_optimism_mainnet.sql +++ b/transformers/synthetix/models/marts/optimism/mainnet/fct_v2_market_stats_optimism_mainnet.sql @@ -5,7 +5,6 @@ ) }} with trades as ( - select id, ts, @@ -79,7 +78,7 @@ oi as ( {% if is_incremental() %} where id > ( - select MAX(id) + select MAX(id) as max_id from {{ this }} ) @@ -168,7 +167,7 @@ from {% if is_incremental() %} where id > ( - select MAX(id) + select MAX(id) as max_id from {{ this }} ) diff --git a/transformers/synthetix/models/marts/optimism/mainnet/fct_v2_trade_tracking_optimism_mainnet.sql b/transformers/synthetix/models/marts/optimism/mainnet/fct_v2_trade_tracking_optimism_mainnet.sql index 73690518c..6fa9c75fa 100644 --- a/transformers/synthetix/models/marts/optimism/mainnet/fct_v2_trade_tracking_optimism_mainnet.sql +++ b/transformers/synthetix/models/marts/optimism/mainnet/fct_v2_trade_tracking_optimism_mainnet.sql @@ -29,7 +29,7 @@ position_modified as ( {% if is_incremental() %} and block_number > ( - select COALESCE(MAX(block_number), 0) + select COALESCE(MAX(block_number), 0) as b from {{ this }} ) @@ -55,7 +55,10 @@ combined as ( on position_modified.contract = order_submit.contract and position_modified.account = order_submit.account - and position_modified.block_timestamp between order_submit.block_timestamp + and + position_modified.block_timestamp + between + order_submit.block_timestamp and order_submit.block_timestamp + interval '5' minute ) diff --git a/transformers/synthetix/models/marts/optimism/mainnet/fct_v2_trades_optimism_mainnet.sql b/transformers/synthetix/models/marts/optimism/mainnet/fct_v2_trades_optimism_mainnet.sql index 1fa1c0c0c..25457fee3 100644 --- a/transformers/synthetix/models/marts/optimism/mainnet/fct_v2_trades_optimism_mainnet.sql +++ b/transformers/synthetix/models/marts/optimism/mainnet/fct_v2_trades_optimism_mainnet.sql @@ -5,7 +5,6 @@ ) }} with trade_base as ( - select id, block_timestamp, @@ -16,11 +15,11 @@ with trade_base as ( market, margin, trade_size, - "size", + size, skew, fee, 'trade' as order_type, - COALESCE(LAG("size", 1) over ( + COALESCE(LAG(size, 1) over ( partition by market, account order by id @@ -31,7 +30,7 @@ with trade_base as ( {% if is_incremental() %} where block_number > ( - select COALESCE(MAX(block_number), 0) + select COALESCE(MAX(block_number), 0) as b from {{ this }} ) @@ -40,19 +39,19 @@ with trade_base as ( select trade_base.id, - block_timestamp as ts, + trade_base.block_timestamp as ts, trade_base.block_number, - transaction_hash, + trade_base.transaction_hash, {{ convert_wei('last_price') }} as price, - account, - market, + trade_base.account, + trade_base.market, {{ convert_wei('margin') }} as margin, {{ convert_wei('trade_size') }} as trade_size, {{ convert_wei('size') }} as "size", {{ convert_wei('last_size') }} as last_size, {{ convert_wei('skew') }} as skew, {{ convert_wei('fee') }} as fee, - order_type, + trade_base.order_type, UPPER( COALESCE( {{ convert_hex('tracking_code.tracking_code') }}, 'NO TRACKING CODE' diff --git a/transformers/synthetix/models/marts/optimism/mainnet/stats/fct_v2_integrator_daily_optimism_mainnet.sql b/transformers/synthetix/models/marts/optimism/mainnet/stats/fct_v2_integrator_daily_optimism_mainnet.sql index 224a1522c..b6072b0f4 100644 --- a/transformers/synthetix/models/marts/optimism/mainnet/stats/fct_v2_integrator_daily_optimism_mainnet.sql +++ b/transformers/synthetix/models/marts/optimism/mainnet/stats/fct_v2_integrator_daily_optimism_mainnet.sql @@ -11,8 +11,8 @@ with aggregated_data as ( from {{ ref('fct_v2_market_stats_optimism_mainnet') }} group by - 1, - 2 + ts, + tracking_code ), date_series as ( @@ -41,7 +41,7 @@ traders as ( select ds.ts, ds.tracking_code, - COALESCE(COUNT(distinct account), 0) as traders + COALESCE(COUNT(distinct ad.account), 0) as traders from date_series as ds left join @@ -53,8 +53,8 @@ traders as ( ) and ds.tracking_code = ad.tracking_code group by - 1, - 2 + ds.ts, + ds.tracking_code ), complete_data as ( @@ -95,43 +95,43 @@ total as ( from complete_data group by - 1 + ts ) select complete_data.ts, - tracking_code, - exchange_fees, - exchange_fees_total, - volume, - volume_total, - trades, - trades_total, - traders, + complete_data.tracking_code, + complete_data.exchange_fees, + total.exchange_fees_total, + complete_data.volume, + total.volume_total, + complete_data.trades, + total.trades_total, + complete_data.traders, case - when volume_total = 0 then 0 - else complete_data.volume / volume_total + when total.volume_total = 0 then 0 + else complete_data.volume / total.volume_total end as volume_share, case - when trades_total = 0 then 0 - else trades / trades_total + when total.trades_total = 0 then 0 + else complete_data.trades / total.trades_total end as trades_share, case - when exchange_fees_total = 0 then 0 - else exchange_fees / exchange_fees_total + when total.exchange_fees_total = 0 then 0 + else complete_data.exchange_fees / total.exchange_fees_total end as exchange_fees_share, - SUM(exchange_fees) over ( - partition by tracking_code + SUM(complete_data.exchange_fees) over ( + partition by complete_data.tracking_code order by complete_data.ts ) as cumulative_exchange_fees, - SUM(volume) over ( - partition by tracking_code + SUM(complete_data.volume) over ( + partition by complete_data.tracking_code order by complete_data.ts ) as cumulative_volume, - SUM(trades) over ( - partition by tracking_code + SUM(complete_data.trades) over ( + partition by complete_data.tracking_code order by complete_data.ts ) as cumulative_trades diff --git a/transformers/synthetix/models/marts/optimism/mainnet/stats/fct_v2_integrator_hourly_optimism_mainnet.sql b/transformers/synthetix/models/marts/optimism/mainnet/stats/fct_v2_integrator_hourly_optimism_mainnet.sql index 6f9c6a58a..80b058c34 100644 --- a/transformers/synthetix/models/marts/optimism/mainnet/stats/fct_v2_integrator_hourly_optimism_mainnet.sql +++ b/transformers/synthetix/models/marts/optimism/mainnet/stats/fct_v2_integrator_hourly_optimism_mainnet.sql @@ -11,8 +11,8 @@ with aggregated_data as ( from {{ ref('fct_v2_market_stats_optimism_mainnet') }} group by - 1, - 2 + ts, + tracking_code ), date_series as ( @@ -41,7 +41,7 @@ traders as ( select ds.ts, ds.tracking_code, - COALESCE(COUNT(distinct account), 0) as traders + COALESCE(COUNT(distinct ad.account), 0) as traders from date_series as ds left join @@ -53,8 +53,8 @@ traders as ( ) and ds.tracking_code = ad.tracking_code group by - 1, - 2 + ds.ts, + ds.tracking_code ), complete_data as ( @@ -95,43 +95,43 @@ total as ( from complete_data group by - 1 + ts ) select complete_data.ts, - tracking_code, - exchange_fees, - exchange_fees_total, - volume, - volume_total, - trades, - trades_total, - traders, + complete_data.tracking_code, + complete_data.exchange_fees, + total.exchange_fees_total, + complete_data.volume, + total.volume_total, + complete_data.trades, + total.trades_total, + complete_data.traders, case - when volume_total = 0 then 0 - else complete_data.volume / volume_total + when total.volume_total = 0 then 0 + else complete_data.volume / total.volume_total end as volume_share, case - when trades_total = 0 then 0 - else trades / trades_total + when total.trades_total = 0 then 0 + else complete_data.trades / total.trades_total end as trades_share, case - when exchange_fees_total = 0 then 0 - else exchange_fees / exchange_fees_total + when total.exchange_fees_total = 0 then 0 + else complete_data.exchange_fees / total.exchange_fees_total end as exchange_fees_share, - SUM(exchange_fees) over ( - partition by tracking_code + SUM(complete_data.exchange_fees) over ( + partition by complete_data.tracking_code order by complete_data.ts ) as cumulative_exchange_fees, - SUM(volume) over ( - partition by tracking_code + SUM(complete_data.volume) over ( + partition by complete_data.tracking_code order by complete_data.ts ) as cumulative_volume, - SUM(trades) over ( - partition by tracking_code + SUM(complete_data.trades) over ( + partition by complete_data.tracking_code order by complete_data.ts ) as cumulative_trades diff --git a/transformers/synthetix/models/marts/optimism/mainnet/stats/fct_v2_market_daily_optimism_mainnet.sql b/transformers/synthetix/models/marts/optimism/mainnet/stats/fct_v2_market_daily_optimism_mainnet.sql index 0848f9ad6..166b9872c 100644 --- a/transformers/synthetix/models/marts/optimism/mainnet/stats/fct_v2_market_daily_optimism_mainnet.sql +++ b/transformers/synthetix/models/marts/optimism/mainnet/stats/fct_v2_market_daily_optimism_mainnet.sql @@ -15,8 +15,8 @@ with raw_data as ( from {{ ref('fct_v2_market_stats_optimism_mainnet') }} group by - 1, - 2 + ts, + market ), aggregated_data as ( diff --git a/transformers/synthetix/models/marts/optimism/mainnet/stats/fct_v2_market_hourly_optimism_mainnet.sql b/transformers/synthetix/models/marts/optimism/mainnet/stats/fct_v2_market_hourly_optimism_mainnet.sql index d9719a2ab..3652a9d7a 100644 --- a/transformers/synthetix/models/marts/optimism/mainnet/stats/fct_v2_market_hourly_optimism_mainnet.sql +++ b/transformers/synthetix/models/marts/optimism/mainnet/stats/fct_v2_market_hourly_optimism_mainnet.sql @@ -15,8 +15,8 @@ with raw_data as ( from {{ ref('fct_v2_market_stats_optimism_mainnet') }} group by - 1, - 2 + ts, + market ), aggregated_data as ( diff --git a/transformers/synthetix/models/marts/optimism/mainnet/stats/fct_v2_stats_daily_optimism_mainnet.sql b/transformers/synthetix/models/marts/optimism/mainnet/stats/fct_v2_stats_daily_optimism_mainnet.sql index 6346d6cd9..5263ce212 100644 --- a/transformers/synthetix/models/marts/optimism/mainnet/stats/fct_v2_stats_daily_optimism_mainnet.sql +++ b/transformers/synthetix/models/marts/optimism/mainnet/stats/fct_v2_stats_daily_optimism_mainnet.sql @@ -66,4 +66,4 @@ select from {{ ref('fct_v2_market_daily_optimism_mainnet') }} group by - 1 + ts diff --git a/transformers/synthetix/models/marts/optimism/mainnet/stats/fct_v2_stats_hourly_optimism_mainnet.sql b/transformers/synthetix/models/marts/optimism/mainnet/stats/fct_v2_stats_hourly_optimism_mainnet.sql index cda5318f5..2f0f6d229 100644 --- a/transformers/synthetix/models/marts/optimism/mainnet/stats/fct_v2_stats_hourly_optimism_mainnet.sql +++ b/transformers/synthetix/models/marts/optimism/mainnet/stats/fct_v2_stats_hourly_optimism_mainnet.sql @@ -66,4 +66,4 @@ select from {{ ref('fct_v2_market_hourly_optimism_mainnet') }} group by - 1 + ts diff --git a/transformers/synthetix/models/raw/arbitrum/mainnet/blocks_arbitrum_mainnet.sql b/transformers/synthetix/models/raw/arbitrum/mainnet/blocks_arbitrum_mainnet.sql index 4ad2b014f..75156f0c4 100644 --- a/transformers/synthetix/models/raw/arbitrum/mainnet/blocks_arbitrum_mainnet.sql +++ b/transformers/synthetix/models/raw/arbitrum/mainnet/blocks_arbitrum_mainnet.sql @@ -1,8 +1,8 @@ with indexer_blocks as ( select - "timestamp" as ts, + timestamp as ts, CAST( - "number" as INTEGER + number as INTEGER ) as block_number from {{ source( @@ -13,9 +13,9 @@ with indexer_blocks as ( parquet_blocks as ( select - TO_TIMESTAMP("timestamp") as ts, + TO_TIMESTAMP(timestamp) as ts, CAST( - "block_number" as INTEGER + block_number as INTEGER ) as block_number from {{ source( @@ -35,7 +35,7 @@ combined_blocks as ( parquet_blocks ) -select distinct +select block_number, MIN(ts) as ts from diff --git a/transformers/synthetix/models/raw/arbitrum/sepolia/blocks_arbitrum_sepolia.sql b/transformers/synthetix/models/raw/arbitrum/sepolia/blocks_arbitrum_sepolia.sql index f79165ac0..d350f78a1 100644 --- a/transformers/synthetix/models/raw/arbitrum/sepolia/blocks_arbitrum_sepolia.sql +++ b/transformers/synthetix/models/raw/arbitrum/sepolia/blocks_arbitrum_sepolia.sql @@ -1,8 +1,8 @@ with indexer_blocks as ( select - "timestamp" as ts, + timestamp as ts, CAST( - "number" as INTEGER + number as INTEGER ) as block_number from {{ source( @@ -13,9 +13,9 @@ with indexer_blocks as ( parquet_blocks as ( select - TO_TIMESTAMP("timestamp") as ts, + TO_TIMESTAMP(timestamp) as ts, CAST( - "block_number" as INTEGER + block_number as INTEGER ) as block_number from {{ source( @@ -35,7 +35,7 @@ combined_blocks as ( parquet_blocks ) -select distinct +select block_number, MIN(ts) as ts from diff --git a/transformers/synthetix/models/raw/base/mainnet/blocks_base_mainnet.sql b/transformers/synthetix/models/raw/base/mainnet/blocks_base_mainnet.sql index 2f476f1ff..f7866cf95 100644 --- a/transformers/synthetix/models/raw/base/mainnet/blocks_base_mainnet.sql +++ b/transformers/synthetix/models/raw/base/mainnet/blocks_base_mainnet.sql @@ -1,8 +1,8 @@ with indexer_blocks as ( select - "timestamp" as ts, + timestamp as ts, CAST( - "number" as INTEGER + number as INTEGER ) as block_number from {{ source( @@ -13,9 +13,9 @@ with indexer_blocks as ( parquet_blocks as ( select - TO_TIMESTAMP("timestamp") as ts, + TO_TIMESTAMP(timestamp) as ts, CAST( - "block_number" as INTEGER + block_number as INTEGER ) as block_number from {{ source( @@ -36,7 +36,7 @@ combined_blocks as ( parquet_blocks ) -select distinct +select block_number, MIN(ts) as ts from diff --git a/transformers/synthetix/models/raw/base/sepolia/blocks_base_sepolia.sql b/transformers/synthetix/models/raw/base/sepolia/blocks_base_sepolia.sql index e0341c1f8..dc44d6778 100644 --- a/transformers/synthetix/models/raw/base/sepolia/blocks_base_sepolia.sql +++ b/transformers/synthetix/models/raw/base/sepolia/blocks_base_sepolia.sql @@ -1,8 +1,8 @@ with indexer_blocks as ( select - "timestamp" as ts, + timestamp as ts, CAST( - "number" as INTEGER + number as INTEGER ) as block_number from {{ source( @@ -13,9 +13,9 @@ with indexer_blocks as ( parquet_blocks as ( select - TO_TIMESTAMP("timestamp") as ts, + TO_TIMESTAMP(timestamp) as ts, CAST( - "block_number" as INTEGER + block_number as INTEGER ) as block_number from {{ source( @@ -36,7 +36,7 @@ combined_blocks as ( parquet_blocks ) -select distinct +select block_number, MIN(ts) as ts from diff --git a/transformers/synthetix/models/raw/base/sepolia/core/core_market_updated_base_sepolia.sql b/transformers/synthetix/models/raw/base/sepolia/core/core_market_updated_base_sepolia.sql index 1768a503d..b2c6555c8 100644 --- a/transformers/synthetix/models/raw/base/sepolia/core/core_market_updated_base_sepolia.sql +++ b/transformers/synthetix/models/raw/base/sepolia/core/core_market_updated_base_sepolia.sql @@ -69,7 +69,7 @@ with events as ( 'core_proxy', 'market_collateral_deposited' ) }} - ) collateral_deposited -- noqa: AL05 + ) as collateral_deposited -- noqa: AL05 union all select id, diff --git a/transformers/synthetix/models/raw/eth/mainnet/blocks_eth_mainnet.sql b/transformers/synthetix/models/raw/eth/mainnet/blocks_eth_mainnet.sql index c2567bf76..4361c840a 100644 --- a/transformers/synthetix/models/raw/eth/mainnet/blocks_eth_mainnet.sql +++ b/transformers/synthetix/models/raw/eth/mainnet/blocks_eth_mainnet.sql @@ -1,8 +1,8 @@ with indexer_blocks as ( select - "timestamp" as ts, + timestamp as ts, CAST( - "number" as INTEGER + number as INTEGER ) as block_number from {{ source( @@ -13,9 +13,9 @@ with indexer_blocks as ( parquet_blocks as ( select - TO_TIMESTAMP("timestamp") as ts, + TO_TIMESTAMP(timestamp) as ts, CAST( - "block_number" as INTEGER + block_number as INTEGER ) as block_number from {{ source( @@ -30,12 +30,13 @@ combined_blocks as ( indexer_blocks union all + select * from parquet_blocks ) -select distinct +select block_number, MIN(ts) as ts from diff --git a/transformers/synthetix/models/raw/optimism/mainnet/v2_perp_delayed_order_submitted_optimism_mainnet.sql b/transformers/synthetix/models/raw/optimism/mainnet/v2_perp_delayed_order_submitted_optimism_mainnet.sql index bed0fc991..55d994093 100644 --- a/transformers/synthetix/models/raw/optimism/mainnet/v2_perp_delayed_order_submitted_optimism_mainnet.sql +++ b/transformers/synthetix/models/raw/optimism/mainnet/v2_perp_delayed_order_submitted_optimism_mainnet.sql @@ -4,8 +4,11 @@ post_hook = [ "create index if not exists idx_id on {{ this }} (id)", "create index if not exists idx_block_number on {{ this }} (block_number)", "create index if not exists idx_block_timestamp on {{ this }} (block_timestamp)", "create index if not exists idx_market on {{ this }} (market)", "create index if not exists idx_contract on {{ this }} (contract)", "create index if not exists idx_account on {{ this }} (account)" ] ) }} -with events as ({{ get_v2_event_data('optimism', 'mainnet', 'delayed_order_submitted') }}) -select +with events as ( + {{ get_v2_event_data('optimism', 'mainnet', 'delayed_order_submitted') }} -- noqa +) + +select -- noqa: ST06 id, transaction_hash, block_timestamp, diff --git a/transformers/synthetix/models/raw/optimism/mainnet/v2_perp_funding_recomputed_optimism_mainnet.sql b/transformers/synthetix/models/raw/optimism/mainnet/v2_perp_funding_recomputed_optimism_mainnet.sql index 0c0265133..b638c52ce 100644 --- a/transformers/synthetix/models/raw/optimism/mainnet/v2_perp_funding_recomputed_optimism_mainnet.sql +++ b/transformers/synthetix/models/raw/optimism/mainnet/v2_perp_funding_recomputed_optimism_mainnet.sql @@ -4,8 +4,11 @@ post_hook = [ "create index if not exists idx_id on {{ this }} (id)", "create index if not exists idx_block_timestamp on {{ this }} (block_timestamp)", "create index if not exists idx_block_number on {{ this }} (block_number)", "create index if not exists idx_market on {{ this }} (market)" ] ) }} -with events as ({{ get_v2_event_data('optimism', 'mainnet', 'funding_recomputed') }}) -select +with events as ( + {{ get_v2_event_data('optimism', 'mainnet', 'funding_recomputed') }} -- noqa +) + +select -- noqa: ST06 id, transaction_hash, block_timestamp, @@ -19,7 +22,6 @@ select from events where - {% if is_incremental() %} block_number > ( select coalesce(max(block_number), 0) as b diff --git a/transformers/synthetix/models/raw/optimism/mainnet/v2_perp_margin_transferred_optimism_mainnet.sql b/transformers/synthetix/models/raw/optimism/mainnet/v2_perp_margin_transferred_optimism_mainnet.sql index c6e2043c5..d1598fdf1 100644 --- a/transformers/synthetix/models/raw/optimism/mainnet/v2_perp_margin_transferred_optimism_mainnet.sql +++ b/transformers/synthetix/models/raw/optimism/mainnet/v2_perp_margin_transferred_optimism_mainnet.sql @@ -4,7 +4,10 @@ post_hook = [ "create index if not exists idx_id on {{ this }} (id)", "create index if not exists idx_block_timestamp on {{ this }} (block_timestamp)", "create index if not exists idx_block_number on {{ this }} (block_number)", "create index if not exists idx_market on {{ this }} (market)" ] ) }} -with events as ({{ get_v2_event_data('optimism', 'mainnet', 'margin_transferred') }}) +with events as ( + {{ get_v2_event_data('optimism', 'mainnet', 'margin_transferred') }} -- noqa +) + select id, transaction_hash, diff --git a/transformers/synthetix/models/raw/optimism/mainnet/v2_perp_position_liquidated_optimism_mainnet.sql b/transformers/synthetix/models/raw/optimism/mainnet/v2_perp_position_liquidated_optimism_mainnet.sql index 42b61380f..58c6feeef 100644 --- a/transformers/synthetix/models/raw/optimism/mainnet/v2_perp_position_liquidated_optimism_mainnet.sql +++ b/transformers/synthetix/models/raw/optimism/mainnet/v2_perp_position_liquidated_optimism_mainnet.sql @@ -5,11 +5,11 @@ ) }} with legacy_events as ( - {{ get_v2_event_data('optimism', 'mainnet', 'position_liquidated1') }} + {{ get_v2_event_data('optimism', 'mainnet', 'position_liquidated1') }} -- noqa ), current_events as ( - {{ get_v2_event_data('optimism', 'mainnet', 'position_liquidated0') }} + {{ get_v2_event_data('optimism', 'mainnet', 'position_liquidated0') }} -- noqa ) select diff --git a/transformers/synthetix/models/raw/optimism/mainnet/v2_perp_position_modified_optimism_mainnet.sql b/transformers/synthetix/models/raw/optimism/mainnet/v2_perp_position_modified_optimism_mainnet.sql index 6c954c1ff..81ae0809f 100644 --- a/transformers/synthetix/models/raw/optimism/mainnet/v2_perp_position_modified_optimism_mainnet.sql +++ b/transformers/synthetix/models/raw/optimism/mainnet/v2_perp_position_modified_optimism_mainnet.sql @@ -5,11 +5,11 @@ ) }} with legacy_events as ( - {{ get_v2_event_data('optimism', 'mainnet', 'position_modified1') }} + {{ get_v2_event_data('optimism', 'mainnet', 'position_modified1') }} -- noqa ), current_events as ( - {{ get_v2_event_data('optimism', 'mainnet', 'position_modified0') }} + {{ get_v2_event_data('optimism', 'mainnet', 'position_modified0') }} -- noqa ) select * From feaec5aa56253325c46d87dd148978a9e2e7f7e0 Mon Sep 17 00:00:00 2001 From: marcus-snx Date: Tue, 27 Aug 2024 15:19:57 +0300 Subject: [PATCH 3/6] Fix group bys --- .../fct_pool_issuance_hourly_arbitrum_mainnet.sql | 5 ++++- .../fct_pool_issuance_hourly_arbitrum_sepolia.sql | 5 ++++- .../buyback/fct_buyback_daily_base_mainnet.sql | 15 +++++++++------ .../buyback/fct_buyback_hourly_base_mainnet.sql | 15 +++++++++------ .../fct_pool_issuance_hourly_base_mainnet.sql | 5 ++++- .../fct_perp_account_stats_daily_base_mainnet.sql | 5 ++++- ...fct_perp_account_stats_hourly_base_mainnet.sql | 10 ++++++++-- .../fct_perp_market_stats_daily_base_mainnet.sql | 5 ++++- .../fct_perp_market_stats_hourly_base_mainnet.sql | 10 ++++++++-- .../fct_perp_stats_daily_base_mainnet.sql | 5 ++++- .../fct_perp_stats_hourly_base_mainnet.sql | 5 ++++- ...fct_perp_tracking_stats_daily_base_mainnet.sql | 10 ++++++++-- ...ct_perp_tracking_stats_hourly_base_mainnet.sql | 10 ++++++++-- .../buyback/fct_buyback_daily_base_sepolia.sql | 15 +++++++++------ .../buyback/fct_buyback_hourly_base_sepolia.sql | 15 +++++++++------ .../fct_pool_issuance_hourly_base_sepolia.sql | 5 ++++- .../fct_perp_account_stats_daily_base_sepolia.sql | 5 ++++- ...fct_perp_account_stats_hourly_base_sepolia.sql | 10 ++++++++-- .../fct_perp_market_stats_daily_base_sepolia.sql | 5 ++++- .../fct_perp_market_stats_hourly_base_sepolia.sql | 10 ++++++++-- .../fct_perp_stats_hourly_base_sepolia.sql | 5 ++++- ...fct_perp_tracking_stats_daily_base_sepolia.sql | 10 ++++++++-- ...ct_perp_tracking_stats_hourly_base_sepolia.sql | 10 ++++++++-- .../core/fct_pool_issuance_hourly_eth_mainnet.sql | 5 ++++- 24 files changed, 148 insertions(+), 52 deletions(-) diff --git a/transformers/synthetix/models/marts/arbitrum/mainnet/core/fct_pool_issuance_hourly_arbitrum_mainnet.sql b/transformers/synthetix/models/marts/arbitrum/mainnet/core/fct_pool_issuance_hourly_arbitrum_mainnet.sql index 9a16f0e64..2c2fce8a2 100644 --- a/transformers/synthetix/models/marts/arbitrum/mainnet/core/fct_pool_issuance_hourly_arbitrum_mainnet.sql +++ b/transformers/synthetix/models/marts/arbitrum/mainnet/core/fct_pool_issuance_hourly_arbitrum_mainnet.sql @@ -93,7 +93,10 @@ issuance as ( from filt_issuance group by - ts, + date_trunc( + 'hour', + ts + ), pool_id, collateral_type ) diff --git a/transformers/synthetix/models/marts/arbitrum/sepolia/core/fct_pool_issuance_hourly_arbitrum_sepolia.sql b/transformers/synthetix/models/marts/arbitrum/sepolia/core/fct_pool_issuance_hourly_arbitrum_sepolia.sql index 1e0bd24a7..ccf1bb550 100644 --- a/transformers/synthetix/models/marts/arbitrum/sepolia/core/fct_pool_issuance_hourly_arbitrum_sepolia.sql +++ b/transformers/synthetix/models/marts/arbitrum/sepolia/core/fct_pool_issuance_hourly_arbitrum_sepolia.sql @@ -93,7 +93,10 @@ issuance as ( from filt_issuance group by - ts, + date_trunc( + 'hour', + ts + ), pool_id, collateral_type ) diff --git a/transformers/synthetix/models/marts/base/mainnet/buyback/fct_buyback_daily_base_mainnet.sql b/transformers/synthetix/models/marts/base/mainnet/buyback/fct_buyback_daily_base_mainnet.sql index 6349b9ed7..ea8d20fd6 100644 --- a/transformers/synthetix/models/marts/base/mainnet/buyback/fct_buyback_daily_base_mainnet.sql +++ b/transformers/synthetix/models/marts/base/mainnet/buyback/fct_buyback_daily_base_mainnet.sql @@ -1,26 +1,29 @@ with agg as ( select - DATE_TRUNC( + date_trunc( 'day', ts ) as ts, - SUM(snx) as snx_amount, - SUM(usd) as usd_amount + sum(snx) as snx_amount, + sum(usd) as usd_amount from {{ ref('fct_buyback_base_mainnet') }} group by - ts + date_trunc( + 'day', + ts + ) ) -- add cumulative amounts select ts, snx_amount, usd_amount, - SUM(snx_amount) over ( + sum(snx_amount) over ( order by ts ) as cumulative_snx_amount, - SUM(usd_amount) over ( + sum(usd_amount) over ( order by ts ) as cumulative_usd_amount diff --git a/transformers/synthetix/models/marts/base/mainnet/buyback/fct_buyback_hourly_base_mainnet.sql b/transformers/synthetix/models/marts/base/mainnet/buyback/fct_buyback_hourly_base_mainnet.sql index 18962ac10..9a3b09120 100644 --- a/transformers/synthetix/models/marts/base/mainnet/buyback/fct_buyback_hourly_base_mainnet.sql +++ b/transformers/synthetix/models/marts/base/mainnet/buyback/fct_buyback_hourly_base_mainnet.sql @@ -1,26 +1,29 @@ with agg as ( select - DATE_TRUNC( + date_trunc( 'hour', ts ) as ts, - SUM(snx) as snx_amount, - SUM(usd) as usd_amount + sum(snx) as snx_amount, + sum(usd) as usd_amount from {{ ref('fct_buyback_base_mainnet') }} group by - ts + date_trunc( + 'hour', + ts + ) ) -- add cumulative amounts select ts, snx_amount, usd_amount, - SUM(snx_amount) over ( + sum(snx_amount) over ( order by ts ) as cumulative_snx_amount, - SUM(usd_amount) over ( + sum(usd_amount) over ( order by ts ) as cumulative_usd_amount diff --git a/transformers/synthetix/models/marts/base/mainnet/core/fct_pool_issuance_hourly_base_mainnet.sql b/transformers/synthetix/models/marts/base/mainnet/core/fct_pool_issuance_hourly_base_mainnet.sql index fa6d4eec5..b1d5765fd 100644 --- a/transformers/synthetix/models/marts/base/mainnet/core/fct_pool_issuance_hourly_base_mainnet.sql +++ b/transformers/synthetix/models/marts/base/mainnet/core/fct_pool_issuance_hourly_base_mainnet.sql @@ -93,7 +93,10 @@ issuance as ( from filt_issuance group by - ts, + date_trunc( + 'hour', + ts + ), pool_id, collateral_type ) diff --git a/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_account_stats_daily_base_mainnet.sql b/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_account_stats_daily_base_mainnet.sql index ca2850eae..45635d3ad 100644 --- a/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_account_stats_daily_base_mainnet.sql +++ b/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_account_stats_daily_base_mainnet.sql @@ -12,7 +12,10 @@ with daily as ( from {{ ref('fct_perp_account_stats_hourly_base_mainnet') }} group by - ts, + DATE_TRUNC( + 'day', + ts + ), account_id ), diff --git a/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_account_stats_hourly_base_mainnet.sql b/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_account_stats_hourly_base_mainnet.sql index d26bd17ec..13283a10f 100644 --- a/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_account_stats_hourly_base_mainnet.sql +++ b/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_account_stats_hourly_base_mainnet.sql @@ -48,7 +48,10 @@ inc_trades as ( from trades group by - ts, + DATE_TRUNC( + 'hour', + ts + ), account_id ), @@ -64,7 +67,10 @@ inc_liq as ( from liq group by - ts, + DATE_TRUNC( + 'hour', + ts + ), account_id ), diff --git a/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_market_stats_daily_base_mainnet.sql b/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_market_stats_daily_base_mainnet.sql index 599cf3d23..022c587ab 100644 --- a/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_market_stats_daily_base_mainnet.sql +++ b/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_market_stats_daily_base_mainnet.sql @@ -18,5 +18,8 @@ select from {{ ref('fct_perp_market_stats_hourly_base_mainnet') }} group by - ts, + DATE_TRUNC( + 'day', + ts + ), market_symbol diff --git a/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_market_stats_hourly_base_mainnet.sql b/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_market_stats_hourly_base_mainnet.sql index cca2d0cd0..90a9aae64 100644 --- a/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_market_stats_hourly_base_mainnet.sql +++ b/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_market_stats_hourly_base_mainnet.sql @@ -36,7 +36,10 @@ inc_trades as ( from trades group by - ts, + DATE_TRUNC( + 'hour', + ts + ), market_symbol ), @@ -52,7 +55,10 @@ inc_liq as ( from liq group by - ts, + DATE_TRUNC( + 'hour', + ts + ), market_symbol ), diff --git a/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_stats_daily_base_mainnet.sql b/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_stats_daily_base_mainnet.sql index 12e243a8d..5274ad8b4 100644 --- a/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_stats_daily_base_mainnet.sql +++ b/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_stats_daily_base_mainnet.sql @@ -17,4 +17,7 @@ select from {{ ref('fct_perp_stats_hourly_base_mainnet') }} group by - ts + DATE_TRUNC( + 'day', + ts + ) diff --git a/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_stats_hourly_base_mainnet.sql b/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_stats_hourly_base_mainnet.sql index db6663a6f..260b0b826 100644 --- a/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_stats_hourly_base_mainnet.sql +++ b/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_stats_hourly_base_mainnet.sql @@ -36,7 +36,10 @@ inc_liq as ( from liq group by - ts + DATE_TRUNC( + 'hour', + ts + ) ), inc_trade as ( diff --git a/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_tracking_stats_daily_base_mainnet.sql b/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_tracking_stats_daily_base_mainnet.sql index 998178bc9..44552c4b7 100644 --- a/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_tracking_stats_daily_base_mainnet.sql +++ b/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_tracking_stats_daily_base_mainnet.sql @@ -13,7 +13,10 @@ with trades as ( from {{ ref('fct_perp_tracking_stats_hourly_base_mainnet') }} group by - ts, + DATE_TRUNC( + 'day', + ts + ), tracking_code ), @@ -30,7 +33,10 @@ accounts as ( from {{ ref('fct_perp_trades_base_mainnet') }} group by - ts, + DATE_TRUNC( + 'day', + ts + ), tracking_code ), diff --git a/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_tracking_stats_hourly_base_mainnet.sql b/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_tracking_stats_hourly_base_mainnet.sql index b75dc0bfa..1c81d86a0 100644 --- a/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_tracking_stats_hourly_base_mainnet.sql +++ b/transformers/synthetix/models/marts/base/mainnet/perp_stats/fct_perp_tracking_stats_hourly_base_mainnet.sql @@ -13,7 +13,10 @@ with trades as ( from {{ ref('fct_perp_trades_base_mainnet') }} group by - ts, + DATE_TRUNC( + 'hour', + ts + ), tracking_code ), @@ -30,7 +33,10 @@ accounts as ( from {{ ref('fct_perp_trades_base_mainnet') }} group by - ts, + DATE_TRUNC( + 'hour', + ts + ), tracking_code ), diff --git a/transformers/synthetix/models/marts/base/sepolia/buyback/fct_buyback_daily_base_sepolia.sql b/transformers/synthetix/models/marts/base/sepolia/buyback/fct_buyback_daily_base_sepolia.sql index 93f74e133..a46ed6cbb 100644 --- a/transformers/synthetix/models/marts/base/sepolia/buyback/fct_buyback_daily_base_sepolia.sql +++ b/transformers/synthetix/models/marts/base/sepolia/buyback/fct_buyback_daily_base_sepolia.sql @@ -1,26 +1,29 @@ with agg as ( select - DATE_TRUNC( + date_trunc( 'day', ts ) as ts, - SUM(snx) as snx_amount, - SUM(usd) as usd_amount + sum(snx) as snx_amount, + sum(usd) as usd_amount from {{ ref('fct_buyback_base_sepolia') }} group by - ts + date_trunc( + 'day', + ts + ) ) -- add cumulative amounts select ts, snx_amount, usd_amount, - SUM(snx_amount) over ( + sum(snx_amount) over ( order by ts ) as cumulative_snx_amount, - SUM(usd_amount) over ( + sum(usd_amount) over ( order by ts ) as cumulative_usd_amount diff --git a/transformers/synthetix/models/marts/base/sepolia/buyback/fct_buyback_hourly_base_sepolia.sql b/transformers/synthetix/models/marts/base/sepolia/buyback/fct_buyback_hourly_base_sepolia.sql index 30f42861b..87b814510 100644 --- a/transformers/synthetix/models/marts/base/sepolia/buyback/fct_buyback_hourly_base_sepolia.sql +++ b/transformers/synthetix/models/marts/base/sepolia/buyback/fct_buyback_hourly_base_sepolia.sql @@ -1,26 +1,29 @@ with agg as ( select - DATE_TRUNC( + date_trunc( 'hour', ts ) as ts, - SUM(snx) as snx_amount, - SUM(usd) as usd_amount + sum(snx) as snx_amount, + sum(usd) as usd_amount from {{ ref('fct_buyback_base_sepolia') }} group by - ts + date_trunc( + 'hour', + ts + ) ) -- add cumulative amounts select ts, snx_amount, usd_amount, - SUM(snx_amount) over ( + sum(snx_amount) over ( order by ts ) as cumulative_snx_amount, - SUM(usd_amount) over ( + sum(usd_amount) over ( order by ts ) as cumulative_usd_amount diff --git a/transformers/synthetix/models/marts/base/sepolia/core/fct_pool_issuance_hourly_base_sepolia.sql b/transformers/synthetix/models/marts/base/sepolia/core/fct_pool_issuance_hourly_base_sepolia.sql index 9b02db09e..42e21da1c 100644 --- a/transformers/synthetix/models/marts/base/sepolia/core/fct_pool_issuance_hourly_base_sepolia.sql +++ b/transformers/synthetix/models/marts/base/sepolia/core/fct_pool_issuance_hourly_base_sepolia.sql @@ -93,7 +93,10 @@ issuance as ( from filt_issuance group by - ts, + date_trunc( + 'hour', + ts + ), pool_id, collateral_type ) diff --git a/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_account_stats_daily_base_sepolia.sql b/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_account_stats_daily_base_sepolia.sql index 9077928e6..89349825b 100644 --- a/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_account_stats_daily_base_sepolia.sql +++ b/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_account_stats_daily_base_sepolia.sql @@ -12,7 +12,10 @@ with daily as ( from {{ ref('fct_perp_account_stats_hourly_base_sepolia') }} group by - ts, + DATE_TRUNC( + 'day', + ts + ), account_id ), diff --git a/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_account_stats_hourly_base_sepolia.sql b/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_account_stats_hourly_base_sepolia.sql index 3ae1cce07..080dbbc58 100644 --- a/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_account_stats_hourly_base_sepolia.sql +++ b/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_account_stats_hourly_base_sepolia.sql @@ -48,7 +48,10 @@ inc_trades as ( from trades group by - ts, + DATE_TRUNC( + 'hour', + ts + ), account_id ), @@ -64,7 +67,10 @@ inc_liq as ( from liq group by - ts, + DATE_TRUNC( + 'hour', + ts + ), account_id ), diff --git a/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_market_stats_daily_base_sepolia.sql b/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_market_stats_daily_base_sepolia.sql index 09bdc4e97..5778bf3f0 100644 --- a/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_market_stats_daily_base_sepolia.sql +++ b/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_market_stats_daily_base_sepolia.sql @@ -18,5 +18,8 @@ select from {{ ref('fct_perp_market_stats_hourly_base_sepolia') }} group by - ts, + DATE_TRUNC( + 'day', + ts + ), market_symbol diff --git a/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_market_stats_hourly_base_sepolia.sql b/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_market_stats_hourly_base_sepolia.sql index 9b80fbf42..0b9e09be3 100644 --- a/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_market_stats_hourly_base_sepolia.sql +++ b/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_market_stats_hourly_base_sepolia.sql @@ -36,7 +36,10 @@ inc_trades as ( from trades group by - ts, + DATE_TRUNC( + 'hour', + ts + ), market_symbol ), @@ -52,7 +55,10 @@ inc_liq as ( from liq group by - ts, + DATE_TRUNC( + 'hour', + ts + ), market_symbol ), diff --git a/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_stats_hourly_base_sepolia.sql b/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_stats_hourly_base_sepolia.sql index 85ced691e..64e62bc56 100644 --- a/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_stats_hourly_base_sepolia.sql +++ b/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_stats_hourly_base_sepolia.sql @@ -36,7 +36,10 @@ inc_liq as ( from liq group by - ts + DATE_TRUNC( + 'hour', + ts + ) ), inc_trade as ( diff --git a/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_tracking_stats_daily_base_sepolia.sql b/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_tracking_stats_daily_base_sepolia.sql index 9fb9d6f7b..78a599e4b 100644 --- a/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_tracking_stats_daily_base_sepolia.sql +++ b/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_tracking_stats_daily_base_sepolia.sql @@ -13,7 +13,10 @@ with trades as ( from {{ ref('fct_perp_tracking_stats_hourly_base_sepolia') }} group by - ts, + DATE_TRUNC( + 'day', + ts + ), tracking_code ), @@ -30,7 +33,10 @@ accounts as ( from {{ ref('fct_perp_trades_base_sepolia') }} group by - ts, + DATE_TRUNC( + 'day', + ts + ), tracking_code ), diff --git a/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_tracking_stats_hourly_base_sepolia.sql b/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_tracking_stats_hourly_base_sepolia.sql index 8d3359dfd..c90782fe8 100644 --- a/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_tracking_stats_hourly_base_sepolia.sql +++ b/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_tracking_stats_hourly_base_sepolia.sql @@ -13,7 +13,10 @@ with trades as ( from {{ ref('fct_perp_trades_base_sepolia') }} group by - ts, + DATE_TRUNC( + 'hour', + ts + ), tracking_code ), @@ -30,7 +33,10 @@ accounts as ( from {{ ref('fct_perp_trades_base_sepolia') }} group by - ts, + DATE_TRUNC( + 'hour', + ts + ), tracking_code ), diff --git a/transformers/synthetix/models/marts/eth/mainnet/core/fct_pool_issuance_hourly_eth_mainnet.sql b/transformers/synthetix/models/marts/eth/mainnet/core/fct_pool_issuance_hourly_eth_mainnet.sql index 2641e0f8b..ea3cc753b 100644 --- a/transformers/synthetix/models/marts/eth/mainnet/core/fct_pool_issuance_hourly_eth_mainnet.sql +++ b/transformers/synthetix/models/marts/eth/mainnet/core/fct_pool_issuance_hourly_eth_mainnet.sql @@ -93,7 +93,10 @@ issuance as ( from filt_issuance group by - ts, + date_trunc( + 'hour', + ts + ), pool_id, collateral_type ) From c9cb2acdfc167ea76f660ba1d8a6811c5611ac06 Mon Sep 17 00:00:00 2001 From: marcus-snx Date: Tue, 27 Aug 2024 15:56:47 +0300 Subject: [PATCH 4/6] Fixes --- .../core/fct_core_account_delegation_arbitrum_mainnet.sql | 2 +- .../sepolia/perp_stats/fct_perp_stats_daily_base_sepolia.sql | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/transformers/synthetix/models/marts/arbitrum/mainnet/core/fct_core_account_delegation_arbitrum_mainnet.sql b/transformers/synthetix/models/marts/arbitrum/mainnet/core/fct_core_account_delegation_arbitrum_mainnet.sql index e2e745448..d92d87731 100644 --- a/transformers/synthetix/models/marts/arbitrum/mainnet/core/fct_core_account_delegation_arbitrum_mainnet.sql +++ b/transformers/synthetix/models/marts/arbitrum/mainnet/core/fct_core_account_delegation_arbitrum_mainnet.sql @@ -44,7 +44,7 @@ cumulative_delegation as ( ) select - block_timestamp, + block_timestamp as ts, pool_id, collateral_type, cumulative_amount_delegated as amount_delegated, diff --git a/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_stats_daily_base_sepolia.sql b/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_stats_daily_base_sepolia.sql index f378b88c8..65d232f58 100644 --- a/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_stats_daily_base_sepolia.sql +++ b/transformers/synthetix/models/marts/base/sepolia/perp_stats/fct_perp_stats_daily_base_sepolia.sql @@ -17,4 +17,7 @@ select from {{ ref('fct_perp_stats_hourly_base_sepolia') }} group by - ts + DATE_TRUNC( + 'day', + ts + ) From 559e47ca943539af878f29adff14dffefaa56e72 Mon Sep 17 00:00:00 2001 From: marcus-snx Date: Tue, 27 Aug 2024 16:24:27 +0300 Subject: [PATCH 5/6] Qualify joins --- .../raw/eth/mainnet/core/core_vault_collateral_eth_mainnet.sql | 2 +- .../models/raw/eth/mainnet/core/core_vault_debt_eth_mainnet.sql | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/transformers/synthetix/models/raw/eth/mainnet/core/core_vault_collateral_eth_mainnet.sql b/transformers/synthetix/models/raw/eth/mainnet/core/core_vault_collateral_eth_mainnet.sql index 5813b5a29..312854030 100644 --- a/transformers/synthetix/models/raw/eth/mainnet/core/core_vault_collateral_eth_mainnet.sql +++ b/transformers/synthetix/models/raw/eth/mainnet/core/core_vault_collateral_eth_mainnet.sql @@ -35,7 +35,7 @@ select {{ convert_wei('base.amount') }} as amount, {{ convert_wei('base.collateral_value') }} as collateral_value from base -join {{ source( +inner join {{ source( 'raw_eth_mainnet', 'blocks_parquet' ) }} as blocks diff --git a/transformers/synthetix/models/raw/eth/mainnet/core/core_vault_debt_eth_mainnet.sql b/transformers/synthetix/models/raw/eth/mainnet/core/core_vault_debt_eth_mainnet.sql index 3ee2fa7fe..60d0adb8c 100644 --- a/transformers/synthetix/models/raw/eth/mainnet/core/core_vault_debt_eth_mainnet.sql +++ b/transformers/synthetix/models/raw/eth/mainnet/core/core_vault_debt_eth_mainnet.sql @@ -31,7 +31,7 @@ select ) as collateral_type, {{ convert_wei('base.debt') }} as debt from base -join {{ source( +inner join {{ source( 'raw_eth_mainnet', 'blocks_parquet' ) }} as blocks From 1edd69663122049cdea08a28f8ac2f449d168f06 Mon Sep 17 00:00:00 2001 From: marcus-snx Date: Tue, 27 Aug 2024 22:31:09 +0300 Subject: [PATCH 6/6] Fix optimism models --- transformers/synthetix/dbt_project.yml | 4 ++-- .../mainnet/fct_v2_market_stats_optimism_mainnet.sql | 4 ++-- .../mainnet/fct_v2_trade_tracking_optimism_mainnet.sql | 1 - .../stats/fct_v2_integrator_daily_optimism_mainnet.sql | 5 ++++- .../stats/fct_v2_integrator_hourly_optimism_mainnet.sql | 5 ++++- .../mainnet/stats/fct_v2_market_daily_optimism_mainnet.sql | 5 ++++- .../mainnet/stats/fct_v2_market_hourly_optimism_mainnet.sql | 5 ++++- .../mainnet/v2_perp_position_modified_optimism_mainnet.sql | 4 ++-- 8 files changed, 22 insertions(+), 11 deletions(-) diff --git a/transformers/synthetix/dbt_project.yml b/transformers/synthetix/dbt_project.yml index d107add2f..166cfb442 100644 --- a/transformers/synthetix/dbt_project.yml +++ b/transformers/synthetix/dbt_project.yml @@ -137,7 +137,7 @@ models: +tags: "arbitrum_sepolia" +schema: raw_arbitrum_sepolia optimism: - +enabled: "{{ target.name == 'prod-op' }}" + +enabled: "{{ target.name == 'prod-op' or target.name == 'dev' }}" mainnet: +tags: "optimism_mainnet" +schema: raw_optimism_mainnet @@ -164,7 +164,7 @@ models: +tags: "arbitrum_sepolia" +schema: arbitrum_sepolia optimism: - +enabled: "{{ target.name == 'prod-op' }}" + +enabled: "{{ target.name == 'prod-op' or target.name == 'dev' }}" mainnet: +tags: "optimism_mainnet" +schema: optimism_mainnet diff --git a/transformers/synthetix/models/marts/optimism/mainnet/fct_v2_market_stats_optimism_mainnet.sql b/transformers/synthetix/models/marts/optimism/mainnet/fct_v2_market_stats_optimism_mainnet.sql index 24acd6933..d4d3f8f04 100644 --- a/transformers/synthetix/models/marts/optimism/mainnet/fct_v2_market_stats_optimism_mainnet.sql +++ b/transformers/synthetix/models/marts/optimism/mainnet/fct_v2_market_stats_optimism_mainnet.sql @@ -33,11 +33,11 @@ liquidations as ( market, 0 as exchange_fees, fee as liquidation_fees, - 0 as volume, + price * ABS(trade_size) as amount_liquidated, 0 as trades, 1 as liquidations, tracking_code, - price * ABS(trade_size) as amount_liquidated + 0 as volume from {{ ref( 'fct_v2_actions_optimism_mainnet' diff --git a/transformers/synthetix/models/marts/optimism/mainnet/fct_v2_trade_tracking_optimism_mainnet.sql b/transformers/synthetix/models/marts/optimism/mainnet/fct_v2_trade_tracking_optimism_mainnet.sql index 6fa9c75fa..938e3ed8a 100644 --- a/transformers/synthetix/models/marts/optimism/mainnet/fct_v2_trade_tracking_optimism_mainnet.sql +++ b/transformers/synthetix/models/marts/optimism/mainnet/fct_v2_trade_tracking_optimism_mainnet.sql @@ -5,7 +5,6 @@ ) }} with order_submit as ( - select block_timestamp, contract, diff --git a/transformers/synthetix/models/marts/optimism/mainnet/stats/fct_v2_integrator_daily_optimism_mainnet.sql b/transformers/synthetix/models/marts/optimism/mainnet/stats/fct_v2_integrator_daily_optimism_mainnet.sql index b6072b0f4..d908f855b 100644 --- a/transformers/synthetix/models/marts/optimism/mainnet/stats/fct_v2_integrator_daily_optimism_mainnet.sql +++ b/transformers/synthetix/models/marts/optimism/mainnet/stats/fct_v2_integrator_daily_optimism_mainnet.sql @@ -11,7 +11,10 @@ with aggregated_data as ( from {{ ref('fct_v2_market_stats_optimism_mainnet') }} group by - ts, + DATE_TRUNC( + 'day', + ts + ), tracking_code ), diff --git a/transformers/synthetix/models/marts/optimism/mainnet/stats/fct_v2_integrator_hourly_optimism_mainnet.sql b/transformers/synthetix/models/marts/optimism/mainnet/stats/fct_v2_integrator_hourly_optimism_mainnet.sql index 80b058c34..d78222cb9 100644 --- a/transformers/synthetix/models/marts/optimism/mainnet/stats/fct_v2_integrator_hourly_optimism_mainnet.sql +++ b/transformers/synthetix/models/marts/optimism/mainnet/stats/fct_v2_integrator_hourly_optimism_mainnet.sql @@ -11,7 +11,10 @@ with aggregated_data as ( from {{ ref('fct_v2_market_stats_optimism_mainnet') }} group by - ts, + DATE_TRUNC( + 'hour', + ts + ), tracking_code ), diff --git a/transformers/synthetix/models/marts/optimism/mainnet/stats/fct_v2_market_daily_optimism_mainnet.sql b/transformers/synthetix/models/marts/optimism/mainnet/stats/fct_v2_market_daily_optimism_mainnet.sql index 166b9872c..eb24e6c3d 100644 --- a/transformers/synthetix/models/marts/optimism/mainnet/stats/fct_v2_market_daily_optimism_mainnet.sql +++ b/transformers/synthetix/models/marts/optimism/mainnet/stats/fct_v2_market_daily_optimism_mainnet.sql @@ -15,7 +15,10 @@ with raw_data as ( from {{ ref('fct_v2_market_stats_optimism_mainnet') }} group by - ts, + DATE_TRUNC( + 'day', + ts + ), market ), diff --git a/transformers/synthetix/models/marts/optimism/mainnet/stats/fct_v2_market_hourly_optimism_mainnet.sql b/transformers/synthetix/models/marts/optimism/mainnet/stats/fct_v2_market_hourly_optimism_mainnet.sql index 3652a9d7a..c5899dc79 100644 --- a/transformers/synthetix/models/marts/optimism/mainnet/stats/fct_v2_market_hourly_optimism_mainnet.sql +++ b/transformers/synthetix/models/marts/optimism/mainnet/stats/fct_v2_market_hourly_optimism_mainnet.sql @@ -15,7 +15,10 @@ with raw_data as ( from {{ ref('fct_v2_market_stats_optimism_mainnet') }} group by - ts, + DATE_TRUNC( + 'hour', + ts + ), market ), diff --git a/transformers/synthetix/models/raw/optimism/mainnet/v2_perp_position_modified_optimism_mainnet.sql b/transformers/synthetix/models/raw/optimism/mainnet/v2_perp_position_modified_optimism_mainnet.sql index 81ae0809f..7bc93d955 100644 --- a/transformers/synthetix/models/raw/optimism/mainnet/v2_perp_position_modified_optimism_mainnet.sql +++ b/transformers/synthetix/models/raw/optimism/mainnet/v2_perp_position_modified_optimism_mainnet.sql @@ -26,7 +26,7 @@ from ( funding_index, last_price, trade_size, - size, + "size", margin, fee, skew @@ -45,7 +45,7 @@ from ( funding_index, last_price, trade_size, - size, + "size", margin, fee, null as skew