near-models/models/silver/atlas/supply/silver__atlas_supply_lockup_receipts.sql

63 lines
1.6 KiB
MySQL
Raw Normal View History

{{ config(
materialized = "incremental",
cluster_by = ["receipt_object_id"],
unique_key = "atlas_supply_lockup_receipts_id",
merge_exclude_columns = ["inserted_timestamp"],
incremental_strategy = "merge",
tags = ['atlas']
) }}
WITH receipts AS (
SELECT
2025-03-11 18:47:59 +00:00
receipt_id AS receipt_object_id,
2024-02-07 19:08:37 +00:00
tx_hash,
block_timestamp,
2025-03-11 18:47:59 +00:00
receipt_json AS receipt_actions,
2024-02-07 19:08:37 +00:00
receiver_id,
2025-03-11 18:47:59 +00:00
predecessor_id,
outcome_json :outcome :status :: VARIANT AS status_value,
outcome_json :outcome :logs :: ARRAY AS logs,
_partition_by_block_number
FROM
2025-03-11 18:47:59 +00:00
{{ ref('silver__receipts_final') }}
{% if var("MANUAL_FIX") %}
2025-03-11 18:47:59 +00:00
WHERE
{{ partition_load_manual('no_buffer') }}
{% else %}
2025-03-11 18:47:59 +00:00
WHERE modified_timestamp >= (
SELECT
MAX(modified_timestamp)
FROM
{{ this }}
)
{% endif %}
),
FINAL AS (
SELECT
receipt_object_id,
tx_hash,
block_timestamp,
2025-03-11 18:47:59 +00:00
predecessor_id,
receiver_id,
receipt_actions AS actions,
object_keys(
status_value
) [0] :: STRING AS status,
logs,
2025-03-11 18:47:59 +00:00
_partition_by_block_number
FROM
receipts
WHERE
receiver_id LIKE '%.lockup.near'
AND status != 'Failure'
)
SELECT
2024-02-07 19:08:37 +00:00
*,
{{ dbt_utils.generate_surrogate_key(['receipt_object_id']) }} AS atlas_supply_lockup_receipts_id,
SYSDATE() AS inserted_timestamp,
SYSDATE() AS modified_timestamp,
'{{ invocation_id }}' AS _invocation_id
FROM
FINAL