mirror of
https://github.com/FlipsideCrypto/fsc-utils.git
synced 2026-02-06 10:56:49 +00:00
91 lines
2.0 KiB
SQL
91 lines
2.0 KiB
SQL
{% macro decode_logs_history(
|
|
start,
|
|
stop
|
|
) %}
|
|
WITH look_back AS (
|
|
SELECT
|
|
block_number
|
|
FROM
|
|
{{ ref("_max_block_by_date") }}
|
|
qualify ROW_NUMBER() over (
|
|
ORDER BY
|
|
block_number DESC
|
|
) = 1
|
|
)
|
|
SELECT
|
|
l.block_number,
|
|
l._log_id,
|
|
A.abi AS abi,
|
|
OBJECT_CONSTRUCT(
|
|
'topics',
|
|
l.topics,
|
|
'data',
|
|
l.data,
|
|
'address',
|
|
l.contract_address
|
|
) AS DATA
|
|
FROM
|
|
{{ ref("silver__logs") }}
|
|
l
|
|
INNER JOIN {{ ref("silver__complete_event_abis") }} A
|
|
ON A.parent_contract_address = l.contract_address
|
|
AND A.event_signature = l.topics[0]:: STRING
|
|
AND l.block_number BETWEEN A.start_block
|
|
AND A.end_block
|
|
WHERE
|
|
(
|
|
l.block_number BETWEEN {{ start }}
|
|
AND {{ stop }}
|
|
)
|
|
AND l.block_number <= (
|
|
SELECT
|
|
block_number
|
|
FROM
|
|
look_back
|
|
)
|
|
AND _log_id NOT IN (
|
|
SELECT
|
|
_log_id
|
|
FROM
|
|
{{ ref("streamline__complete_decode_logs") }}
|
|
WHERE
|
|
(
|
|
block_number BETWEEN {{ start }}
|
|
AND {{ stop }}
|
|
)
|
|
AND block_number <= (
|
|
SELECT
|
|
block_number
|
|
FROM
|
|
look_back
|
|
)
|
|
)
|
|
{% endmacro %}
|
|
|
|
{% macro block_reorg(reorg_model_list, hours) %}
|
|
{% set models = reorg_model_list.split(",") %}
|
|
{% for model in models %}
|
|
{% set sql %}
|
|
DELETE FROM
|
|
{{ ref(model) }} t
|
|
WHERE
|
|
t._inserted_timestamp > DATEADD(
|
|
'hour',
|
|
-{{ hours }},
|
|
SYSDATE()
|
|
)
|
|
AND NOT EXISTS (
|
|
SELECT
|
|
1
|
|
FROM
|
|
{{ ref('silver__transactions') }}
|
|
s
|
|
WHERE s.block_number = t.block_number
|
|
AND s.tx_hash = t.tx_hash
|
|
);
|
|
{% endset %}
|
|
{% do run_query(sql) %}
|
|
{% endfor %}
|
|
{% endmacro %}
|
|
|