base-models/models/silver/defi/dex/alienbase/silver_dex__alienbase_pools.sql
drethereum c9d0177f47
test/fsc-evm-v4-base (#266)
* temp changes for v4

* docs, disabled models and dummy receipts by hash models

* removed unused vars

* workflows

* sources

* removed comment for successful compile

* package

* test project vars

* revert

* clean up

* update dbt project, workflows etc.

* update tags for new naming conventions

* blank model for overflow

* makefile

* makefile updates

* misc updates for abis

* temp source and array index

* add scores job

* sources update

* refs

* package

* updates

* package

* package

---------

Co-authored-by: Austin <austin@flipsidecrypto.com>
2025-04-22 10:55:58 -06:00

62 lines
1.7 KiB
SQL

{{ config(
materialized = 'incremental',
incremental_strategy = 'delete+insert',
unique_key = 'pool_address',
tags = ['silver_dex','defi','dex','curated']
) }}
WITH pool_creation AS (
SELECT
block_number,
block_timestamp,
tx_hash,
event_index,
contract_address,
regexp_substr_all(SUBSTR(DATA, 3, len(DATA)), '.{64}') AS segmented_data,
CONCAT('0x', SUBSTR(topics [1] :: STRING, 27, 40)) AS token0,
CONCAT('0x', SUBSTR(topics [2] :: STRING, 27, 40)) AS token1,
CONCAT('0x', SUBSTR(segmented_data [0] :: STRING, 25, 40)) AS pool_address,
utils.udf_hex_to_int(
segmented_data [1] :: STRING
) :: INT AS pool_id,
CONCAT(
tx_hash :: STRING,
'-',
event_index :: STRING
) AS _log_id,
modified_timestamp AS _inserted_timestamp
FROM
{{ ref ('core__fact_event_logs') }}
WHERE
contract_address = LOWER('0x3E84D913803b02A4a7f027165E8cA42C14C0FdE7')
AND topics [0] :: STRING = '0x0d3648bd0f6ba80134a33ba9275ac585d9d315f0ad8355cddefde31afa28d0e9' --PairCreated
AND tx_succeeded
{% if is_incremental() %}
AND _inserted_timestamp >= (
SELECT
MAX(_inserted_timestamp) - INTERVAL '12 hours'
FROM
{{ this }}
)
AND _inserted_timestamp >= SYSDATE() - INTERVAL '7 day'
{% endif %}
)
SELECT
block_number,
block_timestamp,
tx_hash,
contract_address,
event_index,
token0,
token1,
pool_address,
pool_id,
_log_id,
_inserted_timestamp
FROM
pool_creation qualify(ROW_NUMBER() over (PARTITION BY pool_address
ORDER BY
_inserted_timestamp DESC)) = 1