From afbbbfc7488f7c3409c8ecc21798bf9ac569d7df Mon Sep 17 00:00:00 2001 From: mattromano Date: Mon, 26 Jan 2026 17:18:14 -0800 Subject: [PATCH] add interest accrued euler model --- ...silver_lending__euler_interest_accrued.sql | 97 +++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 models/curated_package/defi/lending/silver/protocols/euler/silver_lending__euler_interest_accrued.sql diff --git a/models/curated_package/defi/lending/silver/protocols/euler/silver_lending__euler_interest_accrued.sql b/models/curated_package/defi/lending/silver/protocols/euler/silver_lending__euler_interest_accrued.sql new file mode 100644 index 00000000..2d778ba0 --- /dev/null +++ b/models/curated_package/defi/lending/silver/protocols/euler/silver_lending__euler_interest_accrued.sql @@ -0,0 +1,97 @@ +{# Get variables #} +{% set vars = return_vars() %} + +{# Log configuration details #} +{{ log_model_details() }} + +{{ config( + materialized = 'incremental', + incremental_strategy = 'delete+insert', + unique_key = "block_number", + cluster_by = ['block_timestamp::DATE'], + tags = ['silver','defi','lending','curated','euler'] +) }} + +WITH token_meta AS ( + SELECT + contract_address, + token_name, + token_symbol, + token_decimals, + underlying_address, + underlying_name, + underlying_symbol, + underlying_decimals, + protocol, + version, + dToken + FROM + {{ ref('silver_lending__euler_tokens') }} +), +base AS ( + SELECT + tx_hash, + block_number, + block_timestamp, + event_index, + origin_from_address, + origin_to_address, + origin_function_signature, + contract_address, + regexp_substr_all(SUBSTR(DATA, 3, len(DATA)), '.{64}') AS segmented_data, + CONCAT('0x', SUBSTR(topics [1] :: STRING, 27, 40)) AS account, + utils.udf_hex_to_int( + segmented_data [0] :: STRING + ) :: INTEGER AS interest_amount, + modified_timestamp, + CONCAT( + tx_hash :: STRING, + '-', + event_index :: STRING + ) AS _log_id + FROM + {{ ref('core__fact_event_logs') }} + WHERE + topics [0] :: STRING = '0x5e804d42ae3b860f881d11cb44a4bb1f2f0d5b3d081f5539a32d6f97b629d978' + AND contract_address IN ( + SELECT + DISTINCT(contract_address) + FROM + token_meta + ) + +{% if is_incremental() %} +AND modified_timestamp >= ( + SELECT + MAX(modified_timestamp) - INTERVAL '{{ vars.CURATED_LOOKBACK_HOURS }}' + FROM + {{ this }} +) +AND modified_timestamp >= SYSDATE() - INTERVAL '{{ vars.CURATED_LOOKBACK_DAYS }}' +{% endif %} +AND tx_succeeded +) +SELECT + tx_hash, + block_number, + block_timestamp, + event_index, + origin_from_address, + origin_to_address, + origin_function_signature, + d.contract_address, + t.dToken AS protocol_market, + t.underlying_address AS token_address, + interest_amount AS amount_unadj, + account, + t.protocol || '-' || t.version AS platform, + t.protocol, + t.version, + d._log_id, + d.modified_timestamp, + 'InterestAccrued' AS event_name +FROM + base d + LEFT JOIN token_meta t + ON d.contract_address = t.contract_address +QUALIFY (ROW_NUMBER() OVER (PARTITION BY d._log_id ORDER BY d.modified_timestamp DESC)) = 1