osmosis-models/models/silver/core/silver__asset_metadata.sql
Eric Laurello 6efbe6cf0d
Some checks failed
docs_update / run_dbt_jobs (push) Has been cancelled
docs_update / notify-failure (push) Has been cancelled
dbt_test_scheduled / run_dbt_jobs (push) Has been cancelled
dbt_run_incremental_non_core / run_dbt_jobs (push) Has been cancelled
dbt_test_scheduled / notify-failure (push) Has been cancelled
dbt_run_incremental_non_core / notify-failure (push) Has been cancelled
dbt_run_observability_monthly / run_dbt_jobs (push) Has been cancelled
dbt_run_observability_monthly / notify-failure (push) Has been cancelled
dbt_run_udf_blockchain / run_dbt_jobs (push) Has been cancelled
dbt_run_daily / run_dbt_jobs (push) Has been cancelled
dbt_run_dev_refresh / run_dbt_jobs (push) Has been cancelled
dbt_run_streamline_balances / run_dbt_jobs (push) Has been cancelled
dbt_run_incremental_core / run_dbt_jobs (push) Has been cancelled
dbt_run_observability / run_dbt_jobs (push) Has been cancelled
dbt_run_streamline_transactions_realtime / run_dbt_jobs (push) Has been cancelled
dbt_run_streamline_blocks_txcount_realtime / run_dbt_jobs (push) Has been cancelled
dbt_run_udf_blockchain / notify-failure (push) Has been cancelled
dbt_run_daily / notify-failure (push) Has been cancelled
dbt_run_streamline_balances / notify-failure (push) Has been cancelled
dbt_run_incremental_core / notify-failure (push) Has been cancelled
dbt_run_observability / notify-failure (push) Has been cancelled
dbt_run_streamline_transactions_realtime / notify-failure (push) Has been cancelled
dbt_run_streamline_blocks_txcount_realtime / notify-failure (push) Has been cancelled
sl 1.0 deprecations
2025-09-04 10:37:16 -04:00

96 lines
1.9 KiB
SQL

{{ config(
materialized = 'incremental',
unique_key = "address",
incremental_strategy = 'delete+insert',
tags = ['daily']
) }}
WITH {# base AS (
SELECT
base AS address,
NAME AS label,
symbol AS project_name,
denom_units AS raw_metadata,
'2000-01-01' :: datetime AS _inserted_timestamp
FROM
{{ source(
'bronze_streamline',
'asset_metadata_api'
) }}
GROUP BY
1,
2,
3,
4
),
#}
combo AS (
{# SELECT
address,
label,
project_name,
raw_metadata [0] :aliases [0] :: STRING AS alias,
raw_metadata [array_size(raw_metadata)-1] :exponent :: NUMBER AS DECIMAL,
raw_metadata,
COALESCE(
raw_metadata [0] :aliases [0] :: STRING,
raw_metadata [0] :denom :: STRING
) AS denom,
address AS _unique_key,
_inserted_timestamp
FROM
base
UNION ALL
#}
SELECT
COALESCE(
VALUE :denom :: STRING,
base
) AS address,
NAME AS label,
symbol AS project_name,
VALUE :aliases :: STRING AS alias,
VALUE :exponent :: INT AS DECIMAL,
denom_units AS raw_metadata,
COALESCE(
VALUE :aliases [0] :: STRING,
VALUE :denom :: STRING
) AS denom,
address AS _unique_key,
_inserted_timestamp
FROM
{{ ref('silver__github_asset_metadata') }},
LATERAL FLATTEN(
denom_units,
outer => TRUE
)
)
SELECT
'osmosis' AS blockchain,
address,
'flipside' AS creator,
'token' AS label_type,
'token_contract' AS label_subtype,
label,
project_name,
alias,
CASE
WHEN address = 'ibc/9A76CDF0CBCEF37923F32518FA15E5DC92B9F56128292BC4D63C4AEA76CBB110' THEN 18
ELSE DECIMAL
END AS DECIMAL,
raw_metadata,
denom,
_unique_key,
_inserted_timestamp,
{{ dbt_utils.generate_surrogate_key(
['_unique_key']
) }} AS asset_metadata_id,
SYSDATE() AS inserted_timestamp,
SYSDATE() AS modified_timestamp,
'{{ invocation_id }}' AS _invocation_id
FROM
combo qualify(ROW_NUMBER() over(PARTITION BY address
ORDER BY
_inserted_timestamp)) = 1