From f0bb9a7d84f049ee89c95cb32026a122d2055c3d Mon Sep 17 00:00:00 2001 From: mattromano Date: Thu, 22 Jan 2026 09:24:44 -0800 Subject: [PATCH 01/11] reduce join, add pool_id --- ...x__complete_dex_liquidity_pool_actions.sql | 86 ++++++++++++++----- ...lver_dex__complete_dex_liquidity_pools.sql | 57 +++++++----- 2 files changed, 101 insertions(+), 42 deletions(-) diff --git a/models/curated_package/defi/dex/silver/silver_dex__complete_dex_liquidity_pool_actions.sql b/models/curated_package/defi/dex/silver/silver_dex__complete_dex_liquidity_pool_actions.sql index e0206556..b98d7a55 100644 --- a/models/curated_package/defi/dex/silver/silver_dex__complete_dex_liquidity_pool_actions.sql +++ b/models/curated_package/defi/dex/silver/silver_dex__complete_dex_liquidity_pool_actions.sql @@ -13,27 +13,7 @@ tags = ['silver_dex','defi','dex','curated','heal','complete','lp_actions'] ) }} -WITH contracts AS ( - - SELECT - address AS contract_address, - symbol AS token_symbol, - decimals AS token_decimals, - modified_timestamp AS _inserted_timestamp - FROM - {{ ref('core__dim_contracts') }} - UNION ALL - SELECT - '0x0000000000000000000000000000000000000000' AS contract_address, - '{{ vars.GLOBAL_NATIVE_ASSET_SYMBOL }}' AS token_symbol, - decimals AS token_decimals, - modified_timestamp AS _inserted_timestamp - FROM - {{ ref('core__dim_contracts') }} - WHERE - address = '{{ vars.GLOBAL_WRAPPED_NATIVE_ASSET_ADDRESS }}' -), -prices AS ( +WITH prices AS ( SELECT token_address, price, @@ -65,6 +45,7 @@ poolcreated_evt_v3 AS ( sender, receiver, pool_address, + '0x' AS pool_id, token0, token1, NULL AS token2, @@ -111,6 +92,7 @@ paircreated_evt_v2 AS ( sender, receiver, pool_address, + '0x' AS pool_id, token0, token1, NULL AS token2, @@ -157,6 +139,7 @@ aerodrome AS ( sender, receiver, pool_address, + '0x' AS pool_id, token0, token1, NULL AS token2, @@ -203,6 +186,7 @@ pharaoh_v1 AS ( sender, receiver, pool_address, + '0x' AS pool_id, token0, token1, NULL AS token2, @@ -249,6 +233,7 @@ kyberswap_v1_dynamic AS ( sender, receiver, pool_address, + '0x' AS pool_id, token0, token1, NULL AS token2, @@ -295,6 +280,7 @@ kyberswap_v2_elastic AS ( sender, receiver, pool_address, + '0x' AS pool_id, token0, token1, NULL AS token2, @@ -341,6 +327,7 @@ dodo_v1 AS ( sender, receiver, pool_address, + '0x' AS pool_id, token0, token1, NULL AS token2, @@ -387,6 +374,7 @@ pancakeswap_v3 AS ( sender, receiver, pool_address, + '0x' AS pool_id, token0, token1, NULL AS token2, @@ -433,6 +421,7 @@ camelot_v2 AS ( sender, receiver, pool_address, + '0x' AS pool_id, token0, token1, NULL AS token2, @@ -479,6 +468,7 @@ quickswap_v2 AS ( sender, receiver, pool_address, + '0x' AS pool_id, token0, token1, NULL AS token2, @@ -526,6 +516,7 @@ quickswap_v4 AS ( sender, receiver, pool_address, + '0x' AS pool_id, token0, token1, NULL AS token2, @@ -573,6 +564,7 @@ dackie AS ( sender, receiver, pool_address, + '0x' AS pool_id, token0, token1, NULL AS token2, @@ -619,6 +611,7 @@ superchain_slipstream AS ( sender, receiver, pool_address, + '0x' AS pool_id, token0, token1, NULL AS token2, @@ -665,6 +658,7 @@ sushiswap AS ( sender, receiver, pool_address, + '0x' AS pool_id, token0, token1, NULL AS token2, @@ -711,6 +705,7 @@ trader_joe_v2 AS ( sender, receiver, pool_address, + '0x' AS pool_id, token0, token1, NULL AS token2, @@ -757,6 +752,7 @@ zyberswap_v2 AS ( sender, receiver, pool_address, + '0x' AS pool_id, token0, token1, NULL AS token2, @@ -803,6 +799,7 @@ uniswap_v1 AS ( sender, receiver, pool_address, + '0x' AS pool_id, token0, token1, NULL AS token2, @@ -849,6 +846,7 @@ velodrome_v1 AS ( sender, receiver, pool_address, + '0x' AS pool_id, token0, token1, NULL AS token2, @@ -895,6 +893,7 @@ velodrome_v2 AS ( sender, receiver, pool_address, + '0x' AS pool_id, token0, token1, NULL AS token2, @@ -941,6 +940,7 @@ balancer AS ( sender, receiver, pool_address, + '0x' AS pool_id, token0, token1, token2, @@ -987,6 +987,7 @@ curve AS ( sender, receiver, pool_address, + '0x' AS pool_id, token0, token1, token2, @@ -1033,6 +1034,7 @@ fluid_v1 AS ( sender, receiver, pool_address, + '0x' AS pool_id, token0, token1, NULL AS token2, @@ -1179,6 +1181,41 @@ all_pools AS ( FROM fluid_v1 ), +token_addresses AS ( + SELECT DISTINCT token_address + FROM all_pools + UNPIVOT (token_address FOR token_position IN (token0, token1, token2, token3, token4, token5, token6, token7)) + WHERE token_address IS NOT NULL +{% if is_incremental() and var('HEAL_MODEL') %} + UNION + SELECT DISTINCT value::STRING AS token_address + FROM {{ this }}, + LATERAL FLATTEN(input => tokens) + WHERE value IS NOT NULL +{% endif %} +), +contracts AS ( + SELECT + address AS contract_address, + symbol AS token_symbol, + decimals AS token_decimals, + modified_timestamp AS _inserted_timestamp + FROM + {{ ref('core__dim_contracts') }} + WHERE + address IN (SELECT token_address FROM token_addresses) + UNION ALL + SELECT + '0x0000000000000000000000000000000000000000' AS contract_address, + '{{ vars.GLOBAL_NATIVE_ASSET_SYMBOL }}' AS token_symbol, + decimals AS token_decimals, + modified_timestamp AS _inserted_timestamp + FROM + {{ ref('core__dim_contracts') }} + WHERE + address = '{{ vars.GLOBAL_WRAPPED_NATIVE_ASSET_ADDRESS }}' + AND '0x0000000000000000000000000000000000000000' IN (SELECT token_address FROM token_addresses) +), complete_lps AS ( SELECT A.block_number, @@ -1190,6 +1227,7 @@ complete_lps AS ( sender, receiver, A.pool_address, + A.pool_id, lp.pool_name, A.token0, A.token1, @@ -1306,6 +1344,7 @@ complete_lps AS ( LEFT JOIN {{ ref('silver_dex__complete_dex_liquidity_pools') }} lp ON lp.pool_address = A.pool_address + AND lp.pool_id = A.pool_id LEFT JOIN contracts c0 ON c0.contract_address = A.token0 LEFT JOIN contracts c1 @@ -1386,6 +1425,7 @@ heal_model AS ( sender, receiver, t0.pool_address, + t0.pool_id, lp.pool_name AS pool_name_heal, t0.tokens, OBJECT_CONSTRUCT_KEEP_NULL( @@ -1539,6 +1579,7 @@ heal_model AS ( LEFT JOIN {{ ref('silver_dex__complete_dex_liquidity_pools') }} lp ON lp.pool_address = t0.pool_address + AND lp.pool_id = t0.pool_id LEFT JOIN contracts c0 ON c0.contract_address = t0.tokens :token0 LEFT JOIN contracts c1 @@ -2043,6 +2084,7 @@ heal_model AS ( sender, receiver, pool_address, + pool_id, pool_name, OBJECT_CONSTRUCT_KEEP_NULL( 'token0', @@ -2193,6 +2235,7 @@ SELECT sender, receiver, pool_address, + pool_id, pool_name_heal AS pool_name, tokens, symbols_heal AS symbols, @@ -2221,6 +2264,7 @@ SELECT sender, receiver, pool_address, + pool_id, pool_name, tokens, symbols, diff --git a/models/curated_package/defi/dex/silver/silver_dex__complete_dex_liquidity_pools.sql b/models/curated_package/defi/dex/silver/silver_dex__complete_dex_liquidity_pools.sql index 9beb6220..341525a4 100644 --- a/models/curated_package/defi/dex/silver/silver_dex__complete_dex_liquidity_pools.sql +++ b/models/curated_package/defi/dex/silver/silver_dex__complete_dex_liquidity_pools.sql @@ -13,27 +13,7 @@ tags = ['silver_dex','defi','dex','curated','heal','complete','lp'] ) }} -WITH contracts AS ( - - SELECT - address AS contract_address, - symbol AS token_symbol, - decimals AS token_decimals, - modified_timestamp AS _inserted_timestamp - FROM - {{ ref('core__dim_contracts') }} - UNION ALL - SELECT - '0x0000000000000000000000000000000000000000' AS contract_address, - '{{ vars.GLOBAL_NATIVE_ASSET_SYMBOL }}' AS token_symbol, - decimals AS token_decimals, - modified_timestamp AS _inserted_timestamp - FROM - {{ ref('core__dim_contracts') }} - WHERE - address = '{{ vars.GLOBAL_WRAPPED_NATIVE_ASSET_ADDRESS }}' -), -balancer AS ( +WITH balancer AS ( SELECT block_number, block_timestamp, @@ -1360,6 +1340,41 @@ all_pools AS ( FROM fluid_v1 ), +token_addresses AS ( + SELECT DISTINCT token_address + FROM all_pools + UNPIVOT (token_address FOR token_position IN (token0, token1, token2, token3, token4, token5, token6, token7)) + WHERE token_address IS NOT NULL +{% if is_incremental() and var('HEAL_MODEL') %} + UNION + SELECT DISTINCT token_address + FROM {{ this }} + UNPIVOT (token_address FOR token_position IN (token0, token1, token2, token3, token4, token5, token6, token7)) + WHERE token_address IS NOT NULL +{% endif %} +), +contracts AS ( + SELECT + address AS contract_address, + symbol AS token_symbol, + decimals AS token_decimals, + modified_timestamp AS _inserted_timestamp + FROM + {{ ref('core__dim_contracts') }} + WHERE + address IN (SELECT token_address FROM token_addresses) + UNION ALL + SELECT + '0x0000000000000000000000000000000000000000' AS contract_address, + '{{ vars.GLOBAL_NATIVE_ASSET_SYMBOL }}' AS token_symbol, + decimals AS token_decimals, + modified_timestamp AS _inserted_timestamp + FROM + {{ ref('core__dim_contracts') }} + WHERE + address = '{{ vars.GLOBAL_WRAPPED_NATIVE_ASSET_ADDRESS }}' + AND '0x0000000000000000000000000000000000000000' IN (SELECT token_address FROM token_addresses) +), complete_lps AS ( SELECT block_number, From 2a4be97ac46b0fae80c8252ca17cbf791a6832e5 Mon Sep 17 00:00:00 2001 From: mattromano Date: Thu, 22 Jan 2026 10:00:33 -0800 Subject: [PATCH 02/11] drop pool_id column add, () around or in busrode stargate model --- .../silver/stargate/silver_bridge__stargate_v2_busrode.sql | 2 ++ .../silver/silver_dex__complete_dex_liquidity_pool_actions.sql | 3 --- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/models/curated_package/defi/bridge/silver/stargate/silver_bridge__stargate_v2_busrode.sql b/models/curated_package/defi/bridge/silver/stargate/silver_bridge__stargate_v2_busrode.sql index 27a7cce4..a6d7032e 100644 --- a/models/curated_package/defi/bridge/silver/stargate/silver_bridge__stargate_v2_busrode.sql +++ b/models/curated_package/defi/bridge/silver/stargate/silver_bridge__stargate_v2_busrode.sql @@ -45,6 +45,7 @@ logs AS ( FROM {{ ref('core__fact_event_logs') }} WHERE + ( ( contract_address IN ( SELECT @@ -55,6 +56,7 @@ logs AS ( AND topic_0 = '0x15955c5a4cc61b8fbb05301bce47fd31c0e6f935e1ab97fdac9b134c887bb074' --busRode ) OR topic_0 = '0x85496b760a4b7f8d66384b9df21b381f5d1b1e79f229a47aaf4c232edc2fe59a' --OFTSent + ) {% if is_incremental() %} AND modified_timestamp >= ( diff --git a/models/curated_package/defi/dex/silver/silver_dex__complete_dex_liquidity_pool_actions.sql b/models/curated_package/defi/dex/silver/silver_dex__complete_dex_liquidity_pool_actions.sql index b98d7a55..c87c6cc1 100644 --- a/models/curated_package/defi/dex/silver/silver_dex__complete_dex_liquidity_pool_actions.sql +++ b/models/curated_package/defi/dex/silver/silver_dex__complete_dex_liquidity_pool_actions.sql @@ -2084,7 +2084,6 @@ heal_model AS ( sender, receiver, pool_address, - pool_id, pool_name, OBJECT_CONSTRUCT_KEEP_NULL( 'token0', @@ -2235,7 +2234,6 @@ SELECT sender, receiver, pool_address, - pool_id, pool_name_heal AS pool_name, tokens, symbols_heal AS symbols, @@ -2264,7 +2262,6 @@ SELECT sender, receiver, pool_address, - pool_id, pool_name, tokens, symbols, From 91f407fd7b01e63edd0de27192569e4881d9d759 Mon Sep 17 00:00:00 2001 From: mattromano Date: Thu, 22 Jan 2026 10:21:17 -0800 Subject: [PATCH 03/11] add backstop for stat model --- .../stats/silver/silver_stats__core_metrics_hourly.sql | 1 + 1 file changed, 1 insertion(+) diff --git a/models/curated_package/stats/silver/silver_stats__core_metrics_hourly.sql b/models/curated_package/stats/silver/silver_stats__core_metrics_hourly.sql index 59754312..7b3897d2 100644 --- a/models/curated_package/stats/silver/silver_stats__core_metrics_hourly.sql +++ b/models/curated_package/stats/silver/silver_stats__core_metrics_hourly.sql @@ -81,6 +81,7 @@ AND DATE_TRUNC( 'hour', block_timestamp ) >= '{{ min_block_timestamp_hour }}' +AND block_timestamp >= DATEADD(week, -1, SYSDATE()) {% endif %} GROUP BY 1 \ No newline at end of file From 22fa87e82b931b55a6d9774eac97f30f308a398d Mon Sep 17 00:00:00 2001 From: mattromano Date: Thu, 22 Jan 2026 10:39:02 -0800 Subject: [PATCH 04/11] update lookback to fsc syntax --- .../stats/silver/silver_stats__core_metrics_hourly.sql | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/models/curated_package/stats/silver/silver_stats__core_metrics_hourly.sql b/models/curated_package/stats/silver/silver_stats__core_metrics_hourly.sql index 7b3897d2..b2416777 100644 --- a/models/curated_package/stats/silver/silver_stats__core_metrics_hourly.sql +++ b/models/curated_package/stats/silver/silver_stats__core_metrics_hourly.sql @@ -1,3 +1,6 @@ +{# Get variables #} +{% set vars = return_vars() %} + {# Log configuration details #} {{ log_model_details() }} @@ -81,7 +84,7 @@ AND DATE_TRUNC( 'hour', block_timestamp ) >= '{{ min_block_timestamp_hour }}' -AND block_timestamp >= DATEADD(week, -1, SYSDATE()) +AND block_timestamp >= SYSDATE() - INTERVAL '{{ vars.CURATED_LOOKBACK_DAYS }}' {% endif %} GROUP BY 1 \ No newline at end of file From 19e1365945ad27cda2eb2f7b223422dc47981a15 Mon Sep 17 00:00:00 2001 From: mattromano Date: Thu, 22 Jan 2026 10:40:49 -0800 Subject: [PATCH 05/11] date --- .../stats/silver/silver_stats__core_metrics_hourly.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/models/curated_package/stats/silver/silver_stats__core_metrics_hourly.sql b/models/curated_package/stats/silver/silver_stats__core_metrics_hourly.sql index b2416777..eb03bb76 100644 --- a/models/curated_package/stats/silver/silver_stats__core_metrics_hourly.sql +++ b/models/curated_package/stats/silver/silver_stats__core_metrics_hourly.sql @@ -84,7 +84,7 @@ AND DATE_TRUNC( 'hour', block_timestamp ) >= '{{ min_block_timestamp_hour }}' -AND block_timestamp >= SYSDATE() - INTERVAL '{{ vars.CURATED_LOOKBACK_DAYS }}' +AND block_timestamp::DATE >= SYSDATE() - INTERVAL '{{ vars.CURATED_LOOKBACK_DAYS }}' {% endif %} GROUP BY 1 \ No newline at end of file From 7b89d673fad63217d71059dc4aa0706c10210758 Mon Sep 17 00:00:00 2001 From: mattromano Date: Mon, 26 Jan 2026 08:22:16 -0800 Subject: [PATCH 06/11] add heal fix --- .../silver_dex__complete_dex_liquidity_pool_actions.sql | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/models/curated_package/defi/dex/silver/silver_dex__complete_dex_liquidity_pool_actions.sql b/models/curated_package/defi/dex/silver/silver_dex__complete_dex_liquidity_pool_actions.sql index c87c6cc1..cb0dc565 100644 --- a/models/curated_package/defi/dex/silver/silver_dex__complete_dex_liquidity_pool_actions.sql +++ b/models/curated_package/defi/dex/silver/silver_dex__complete_dex_liquidity_pool_actions.sql @@ -1425,7 +1425,7 @@ heal_model AS ( sender, receiver, t0.pool_address, - t0.pool_id, + '0x' AS pool_id, lp.pool_name AS pool_name_heal, t0.tokens, OBJECT_CONSTRUCT_KEEP_NULL( @@ -1579,7 +1579,7 @@ heal_model AS ( LEFT JOIN {{ ref('silver_dex__complete_dex_liquidity_pools') }} lp ON lp.pool_address = t0.pool_address - AND lp.pool_id = t0.pool_id + AND lp.pool_id = '0x' LEFT JOIN contracts c0 ON c0.contract_address = t0.tokens :token0 LEFT JOIN contracts c1 From ac2a936d79692b6811bbda142e6816084e2e5b66 Mon Sep 17 00:00:00 2001 From: mattromano Date: Mon, 26 Jan 2026 08:31:09 -0800 Subject: [PATCH 07/11] Prepare release v4.44.9 --- .claude/settings.local.json | 21 +++++++++++++++++++++ .gitignore | 1 + 2 files changed, 22 insertions(+) create mode 100644 .claude/settings.local.json diff --git a/.claude/settings.local.json b/.claude/settings.local.json new file mode 100644 index 00000000..e9104bdc --- /dev/null +++ b/.claude/settings.local.json @@ -0,0 +1,21 @@ +{ + "permissions": { + "allow": [ + "WebFetch(domain:gateway.prod.nado.xyz)", + "WebFetch(domain:archive.prod.nado.xyz)", + "WebFetch(domain:docs.nado.xyz)", + "WebFetch(domain:nado.xyz)", + "Bash(git show:*)", + "Bash(snow sql:*)", + "Bash(gh repo list:*)", + "Skill(superpowers:systematic-debugging)", + "WebSearch", + "WebFetch(domain:basescan.org)", + "Skill(superpowers:executing-plans)", + "Bash(dbt parse:*)", + "Bash(dbt ls:*)", + "Bash(dbt compile:*)", + "Skill(validating-dbt-models-via-snowflake)" + ] + } +} diff --git a/.gitignore b/.gitignore index 55121052..6c301ac7 100644 --- a/.gitignore +++ b/.gitignore @@ -17,3 +17,4 @@ logs/ .env dbt-env/ package-lock.yml +dbt_internal_packages/ From ebdfdac8145e974618bbeab9628185a5f0aa4d6d Mon Sep 17 00:00:00 2001 From: Matt Romano <42412983+mattromano@users.noreply.github.com> Date: Mon, 26 Jan 2026 08:36:27 -0800 Subject: [PATCH 08/11] Delete .claude/settings.local.json --- .claude/settings.local.json | 21 --------------------- 1 file changed, 21 deletions(-) delete mode 100644 .claude/settings.local.json diff --git a/.claude/settings.local.json b/.claude/settings.local.json deleted file mode 100644 index e9104bdc..00000000 --- a/.claude/settings.local.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "permissions": { - "allow": [ - "WebFetch(domain:gateway.prod.nado.xyz)", - "WebFetch(domain:archive.prod.nado.xyz)", - "WebFetch(domain:docs.nado.xyz)", - "WebFetch(domain:nado.xyz)", - "Bash(git show:*)", - "Bash(snow sql:*)", - "Bash(gh repo list:*)", - "Skill(superpowers:systematic-debugging)", - "WebSearch", - "WebFetch(domain:basescan.org)", - "Skill(superpowers:executing-plans)", - "Bash(dbt parse:*)", - "Bash(dbt ls:*)", - "Bash(dbt compile:*)", - "Skill(validating-dbt-models-via-snowflake)" - ] - } -} From 8b5adc7c08cb6a75f7c4fc0961dadaaf53903694 Mon Sep 17 00:00:00 2001 From: Matt Romano <42412983+mattromano@users.noreply.github.com> Date: Mon, 26 Jan 2026 08:36:41 -0800 Subject: [PATCH 09/11] Delete .gitignore --- .gitignore | 20 -------------------- 1 file changed, 20 deletions(-) delete mode 100644 .gitignore diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 6c301ac7..00000000 --- a/.gitignore +++ /dev/null @@ -1,20 +0,0 @@ - -target/ -dbt_modules/ -# newer versions of dbt use this directory instead of dbt_modules for test dependencies -dbt_packages/ -logs/ - -.venv/ -.python-version - -# Visual Studio Code files -*/.vscode -*.code-workspace -.history/ -**/.DS_Store -.vscode/ -.env -dbt-env/ -package-lock.yml -dbt_internal_packages/ From 9dc563c9df2937b64b555531f6c9da60d668e0a9 Mon Sep 17 00:00:00 2001 From: mattromano Date: Mon, 26 Jan 2026 08:39:32 -0800 Subject: [PATCH 10/11] re-add gitignore --- .gitignore | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..55121052 --- /dev/null +++ b/.gitignore @@ -0,0 +1,19 @@ + +target/ +dbt_modules/ +# newer versions of dbt use this directory instead of dbt_modules for test dependencies +dbt_packages/ +logs/ + +.venv/ +.python-version + +# Visual Studio Code files +*/.vscode +*.code-workspace +.history/ +**/.DS_Store +.vscode/ +.env +dbt-env/ +package-lock.yml From 723c7894948e9c80e9678eb360a4b8295645fac2 Mon Sep 17 00:00:00 2001 From: Austin Date: Mon, 26 Jan 2026 12:33:18 -0500 Subject: [PATCH 11/11] uni v4 --- macros/global/variables/project_vars/optimism_vars.sql | 3 +++ 1 file changed, 3 insertions(+) diff --git a/macros/global/variables/project_vars/optimism_vars.sql b/macros/global/variables/project_vars/optimism_vars.sql index 530d835a..63fb3523 100644 --- a/macros/global/variables/project_vars/optimism_vars.sql +++ b/macros/global/variables/project_vars/optimism_vars.sql @@ -30,6 +30,9 @@ }, 'v3': { 'uni_v3_pool_created': '0x1f98431c8ad98523631ae4a59f267346ea31f984' + }, + 'v4': { + 'factory': '0x9a13f98cb987694c9f086b1f5eb990eea8264ec3' } }, 'sushiswap': {