From 2edf3fce4381b4277d2d127a04212dd8b8d90e80 Mon Sep 17 00:00:00 2001 From: gregoriustanleyy Date: Mon, 26 May 2025 18:02:39 +0700 Subject: [PATCH] defuse integration --- .../labels/silver__ft_contract_metadata.sql | 58 +++++++++++++++---- 1 file changed, 46 insertions(+), 12 deletions(-) diff --git a/models/silver/labels/silver__ft_contract_metadata.sql b/models/silver/labels/silver__ft_contract_metadata.sql index 2a0c6d1..74489fa 100644 --- a/models/silver/labels/silver__ft_contract_metadata.sql +++ b/models/silver/labels/silver__ft_contract_metadata.sql @@ -1,5 +1,6 @@ -- depends on: {{ ref('bronze__nearblocks_ft_metadata')}} -- depends on: {{ ref('bronze__omni_metadata')}} +-- depends on: {{ ref('silver__defuse_tokens_metadata')}} {{ config( materialized = 'incremental', @@ -49,6 +50,26 @@ omni AS ( contract_address FROM {{ ref('silver__omni_metadata')}} + + {% if is_incremental() %} + WHERE + inserted_timestamp >= ( + SELECT + MAX(modified_timestamp) + FROM + {{ this }} + ) + {% endif %} +), +defuse AS ( + SELECT + defuse_asset_identifier AS defuse_address, + near_token_id AS contract_address, + asset_name AS symbol, + decimals + FROM + {{ ref('silver__defuse_tokens_metadata')}} + {% if is_incremental() %} WHERE inserted_timestamp >= ( @@ -62,12 +83,12 @@ omni AS ( final AS ( -- Omni SELECT - o.omni_address::STRING AS omni_address, - o.contract_address::STRING AS contract_address, - n.decimals::INT AS decimals, - n.name::STRING AS name, - n.symbol::STRING AS symbol, - 'omni'::STRING AS source + o.omni_address :: STRING AS omni_address, + o.contract_address :: STRING AS contract_address, + n.decimals :: INT AS decimals, + n.name :: STRING AS name, + n.symbol :: STRING AS symbol, + 'omni' AS source FROM omni o LEFT JOIN nearblocks_metadata n @@ -77,15 +98,28 @@ final AS ( -- Nearblocks SELECT - NULL::STRING AS omni_address, - n.contract_address::STRING AS contract_address, - n.decimals::INT AS decimals, - n.name::STRING AS name, - n.symbol::STRING AS symbol, - 'nearblocks'::STRING AS source + NULL :: STRING AS omni_address, + n.contract_address :: STRING AS contract_address, + n.decimals :: INT AS decimals, + n.name :: STRING AS name, + n.symbol :: STRING AS symbol, + 'nearblocks' AS source FROM nearblocks_metadata n WHERE n.contract_address NOT IN (SELECT contract_address FROM omni) + + UNION ALL + + -- Defuse + SELECT + d.defuse_address :: STRING AS omni_address, + d.contract_address :: STRING AS contract_address, + d.decimals :: INT AS decimals, + NULL :: STRING AS name, + d.symbol :: STRING AS symbol, + 'defuse' AS source + FROM + defuse d ) SELECT contract_address,