blast-models/models/silver/core/silver__confirmed_blocks.sql
drethereum e46327a3e9
AN-5796/sl2-upgrade-blast (#102)
* initial model updates

* bronze and sources

* integration test

* revert integration
2025-03-12 16:34:06 -06:00

57 lines
1.3 KiB
SQL

-- depends_on: {{ ref('bronze__confirm_blocks') }}
{{ config(
materialized = 'incremental',
incremental_strategy = 'delete+insert',
unique_key = "block_number",
cluster_by = "round(block_number,-3)",
tags = ['non_realtime']
) }}
WITH base AS (
SELECT
COALESCE(
VALUE :BLOCK_NUMBER :: INT,
metadata :request :"data" :id :: INT,
PARSE_JSON(
metadata :request :"data"
) :id :: INT
) AS block_number,
DATA :result :hash :: STRING AS block_hash,
DATA :result :transactions txs,
_inserted_timestamp
FROM
{% if is_incremental() %}
{{ ref('bronze__confirm_blocks') }}
WHERE
_inserted_timestamp >= (
SELECT
IFNULL(
MAX(
_inserted_timestamp
),
'1970-01-01' :: TIMESTAMP
) _inserted_timestamp
FROM
{{ this }}
)
{% else %}
{{ ref('bronze__confirm_blocks_fr') }}
{% endif %}
qualify(ROW_NUMBER() over (PARTITION BY block_number
ORDER BY
_inserted_timestamp DESC)) = 1
)
SELECT
block_number,
block_hash,
VALUE :: STRING AS tx_hash,
_inserted_timestamp
FROM
base,
LATERAL FLATTEN (
input => txs
)