diff --git a/dbt_subprojects/dex/models/_projects/kyberswap/_schema.yml b/dbt_subprojects/dex/models/_projects/kyberswap/_schema.yml index 5ce28e6d5d3..d4573a1b203 100644 --- a/dbt_subprojects/dex/models/_projects/kyberswap/_schema.yml +++ b/dbt_subprojects/dex/models/_projects/kyberswap/_schema.yml @@ -3,12 +3,12 @@ version: 2 models: - name: kyberswap_aggregator_trades meta: - blockchain: avalanche_c, optimism, ethereum, arbitrum, bnb, polygon, base + blockchain: arbitrum, avalanche_c, base, berachain, bnb, ethereum, linea, mantle, optimism, polygon, ronin, sonic, unichain sector: dex_aggregator project: kyberswap - contributors: nhd98z, Henrystats + contributors: nhd98z, Henrystats, phu_ngo config: - tags: ['arbitrum', 'avalanche_c', 'optimism', 'ethereum', 'bnb', 'polygon', 'dex', 'aggregator', 'trades', 'kyberswap', 'nhd98z'] + tags: ['arbitrum', 'avalanche_c', 'base', 'berachain', 'bnb', 'ethereum', 'linea', 'mantle', 'optimism', 'polygon', 'ronin', 'sonic', 'unichain', 'dex', 'aggregator', 'trades', 'kyberswap', 'nhd98z', 'Henrystats', 'phu_ngo'] description: > Kyberswap Aggregator. This table will load dex_aggregator trades downstream. columns: diff --git a/dbt_subprojects/dex/models/_projects/kyberswap/arbitrum/kyberswap_aggregator_arbitrum_trades.sql b/dbt_subprojects/dex/models/_projects/kyberswap/arbitrum/kyberswap_aggregator_arbitrum_trades.sql index 4dc8783144f..b128df1f382 100644 --- a/dbt_subprojects/dex/models/_projects/kyberswap/arbitrum/kyberswap_aggregator_arbitrum_trades.sql +++ b/dbt_subprojects/dex/models/_projects/kyberswap/arbitrum/kyberswap_aggregator_arbitrum_trades.sql @@ -37,8 +37,8 @@ WITH meta_router AS FROM {{ source('kyber_arbitrum', 'MetaAggregationRouterV2_evt_Swapped') }} WHERE - dstToken not in (0x7d3eedb40fbecd9fba383504e066fdf67382a835 --bug with MTK token - ,0x2C29c2Bbdcb8c5de36FA3dBe0e7797B5396B0E61) --bug with MyToken token + dstToken not in (0x7d3eedb40fbecd9fba383504e066fdf67382a835 -- bug with MTK token + ,0x2C29c2Bbdcb8c5de36FA3dBe0e7797B5396B0E61) -- bug with MyToken token {% if is_incremental() %} AND {{incremental_predicate('evt_block_time')}} {% endif %} diff --git a/dbt_subprojects/dex/models/_projects/kyberswap/avalanche_c/kyberswap_aggregator_avalanche_c_trades.sql b/dbt_subprojects/dex/models/_projects/kyberswap/avalanche_c/kyberswap_aggregator_avalanche_c_trades.sql index 38adc10d380..ae8e716a117 100644 --- a/dbt_subprojects/dex/models/_projects/kyberswap/avalanche_c/kyberswap_aggregator_avalanche_c_trades.sql +++ b/dbt_subprojects/dex/models/_projects/kyberswap/avalanche_c/kyberswap_aggregator_avalanche_c_trades.sql @@ -44,7 +44,7 @@ WITH meta_router AS {% endif %} ) SELECT - 'avalanche_c' AS blockchain + 'avalanche_c' AS blockchain ,project AS project ,meta_router.version AS version ,CAST(date_trunc('day', meta_router.block_time) AS DATE) AS block_date diff --git a/dbt_subprojects/dex/models/_projects/kyberswap/base/kyberswap_aggregator_base_trades.sql b/dbt_subprojects/dex/models/_projects/kyberswap/base/kyberswap_aggregator_base_trades.sql index de0c4484d1a..97b749090f9 100644 --- a/dbt_subprojects/dex/models/_projects/kyberswap/base/kyberswap_aggregator_base_trades.sql +++ b/dbt_subprojects/dex/models/_projects/kyberswap/base/kyberswap_aggregator_base_trades.sql @@ -39,7 +39,7 @@ WITH meta_router AS {% endif %} ) SELECT - 'base' AS blockchain + 'base' AS blockchain ,project AS project ,meta_router.version AS version ,CAST(date_trunc('day', meta_router.block_time) AS DATE) AS block_date diff --git a/dbt_subprojects/dex/models/_projects/kyberswap/berachain/_schema.yml b/dbt_subprojects/dex/models/_projects/kyberswap/berachain/_schema.yml new file mode 100644 index 00000000000..9a8573da3ab --- /dev/null +++ b/dbt_subprojects/dex/models/_projects/kyberswap/berachain/_schema.yml @@ -0,0 +1,52 @@ +version: 2 + +models: + - name: kyberswap_aggregator_berachain_trades + meta: + blockchain: berachain + sector: dex_aggregator + project: kyberswap + contributors: nhd98z, phu_ngo + config: + tags: ['berachain', 'kyberswap', 'aggregator', 'trades', 'dex'] + description: > + Kyberswap Aggregator on berachain. + data_tests: + - dbt_utils.unique_combination_of_columns: + combination_of_columns: + - block_date + - blockchain + - project + - version + - tx_hash + - evt_index + - trace_address + - check_dex_aggregator_seed: + blockchain: berachain + project: kyberswap + version: meta_2 + columns: + - name: blockchain + - name: project + - name: version + - name: block_date + - name: block_month + - name: block_time + - name: token_bought_symbol + - name: token_sold_symbol + - name: token_pair + - name: token_bought_amount + - name: token_sold_amount + - name: token_bought_amount_raw + - name: token_sold_amount_raw + - name: amount_usd + - name: token_bought_address + - name: token_sold_address + - name: taker + - name: maker + - name: project_contract_address + - name: tx_hash + - name: tx_from + - name: tx_to + - name: evt_index + - name: trace_address diff --git a/dbt_subprojects/dex/models/_projects/kyberswap/berachain/kyberswap_aggregator_berachain_trades.sql b/dbt_subprojects/dex/models/_projects/kyberswap/berachain/kyberswap_aggregator_berachain_trades.sql new file mode 100644 index 00000000000..1e2381fefdc --- /dev/null +++ b/dbt_subprojects/dex/models/_projects/kyberswap/berachain/kyberswap_aggregator_berachain_trades.sql @@ -0,0 +1,116 @@ +{{ config +( + + schema = 'kyberswap_aggregator_berachain', + alias = 'trades', + partition_by = ['block_month'], + materialized = 'incremental', + file_format = 'delta', + incremental_strategy = 'merge', + unique_key = ['block_date', 'blockchain', 'project', 'version', 'tx_hash', 'evt_index', 'trace_address'], + post_hook='{{ expose_spells(\'["berachain"]\', + "project", + "kyberswap", + \'["nhd98z", "phu_ngo"]\') }}' +) +}} + +{% set project_start_date = '2025-02-09' %} + +WITH meta_router AS +( + SELECT + evt_block_time AS block_time + ,'kyberswap' AS project + ,'meta_2' AS version + ,sender AS taker + ,dstReceiver AS maker + ,returnAmount AS token_bought_amount_raw + ,spentAmount AS token_sold_amount_raw + ,CAST(NULL AS DOUBLE) AS amount_usd + ,dstToken AS token_bought_address + ,srcToken AS token_sold_address + ,contract_address AS project_contract_address + ,evt_tx_hash AS tx_hash + ,evt_index AS evt_index + ,ARRAY[-1] AS trace_address + FROM + {{ source('kyber_berachain', 'MetaAggregationRouterV2_evt_Swapped') }} + {% if is_incremental() %} + WHERE {{incremental_predicate('evt_block_time')}} + {% endif %} +) +SELECT + 'berachain' AS blockchain + ,project AS project + ,meta_router.version AS version + ,CAST(date_trunc('day', meta_router.block_time) AS DATE) AS block_date + ,CAST(date_trunc('month', meta_router.block_time) AS DATE) AS block_month + ,meta_router.block_time AS block_time + ,erc20a.symbol AS token_bought_symbol + ,erc20b.symbol AS token_sold_symbol + ,CASE + WHEN lower(erc20a.symbol) > lower(erc20b.symbol) + THEN concat(erc20b.symbol, '-', erc20a.symbol) + ELSE concat(erc20a.symbol, '-', erc20b.symbol) + END AS token_pair + ,meta_router.token_bought_amount_raw / power(10, erc20a.decimals) AS token_bought_amount + ,meta_router.token_sold_amount_raw / power(10, erc20b.decimals) AS token_sold_amount + ,CAST(meta_router.token_bought_amount_raw AS UINT256) AS token_bought_amount_raw + ,CAST(meta_router.token_sold_amount_raw AS UINT256) AS token_sold_amount_raw + ,COALESCE( + meta_router.amount_usd + ,(meta_router.token_bought_amount_raw / power(10, (CASE meta_router.token_bought_address WHEN 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee THEN 18 ELSE p_bought.decimals END))) * (CASE meta_router.token_bought_address WHEN 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee THEN p_bera.price ELSE p_bought.price END) + ,(meta_router.token_sold_amount_raw / power(10, (CASE meta_router.token_sold_address WHEN 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee THEN 18 ELSE p_sold.decimals END))) * (CASE meta_router.token_sold_address WHEN 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee THEN p_bera.price ELSE p_sold.price END) + ) AS amount_usd + ,meta_router.token_bought_address AS token_bought_address + ,meta_router.token_sold_address AS token_sold_address + ,COALESCE(meta_router.taker, tx."from") AS taker + ,meta_router.maker AS maker + ,meta_router.project_contract_address AS project_contract_address + ,meta_router.tx_hash AS tx_hash + ,tx."from" AS tx_from + ,tx."to" AS tx_to + ,meta_router.evt_index AS evt_index + ,meta_router.trace_address AS trace_address +FROM meta_router +INNER JOIN {{ source('berachain', 'transactions')}} tx + ON meta_router.tx_hash = tx.hash + {% if is_incremental() %} + AND {{incremental_predicate('tx.block_time')}} + {% else %} + AND tx.block_time >= TIMESTAMP '{{ project_start_date }}' + {% endif %} +LEFT JOIN {{ source('tokens', 'erc20') }} erc20a + ON erc20a.contract_address = meta_router.token_bought_address + AND erc20a.blockchain = 'berachain' +LEFT JOIN {{ source('tokens', 'erc20') }} erc20b + ON erc20b.contract_address = meta_router.token_sold_address + AND erc20b.blockchain = 'berachain' +LEFT JOIN {{ source('prices', 'usd') }} p_bought + ON p_bought.minute = date_trunc('minute', meta_router.block_time) + AND p_bought.contract_address = meta_router.token_bought_address + AND p_bought.blockchain = 'berachain' + {% if is_incremental() %} + AND {{incremental_predicate('p_bought.minute')}} + {% else %} + AND p_bought.minute >= TIMESTAMP '{{ project_start_date }}' + {% endif %} +LEFT JOIN {{ source('prices', 'usd') }} p_sold + ON p_sold.minute = date_trunc('minute', meta_router.block_time) + AND p_sold.contract_address = meta_router.token_sold_address + AND p_sold.blockchain = 'berachain' + {% if is_incremental() %} + AND {{incremental_predicate('p_sold.minute')}} + {% else %} + AND p_sold.minute >= TIMESTAMP '{{ project_start_date }}' + {% endif %} +LEFT JOIN {{ source('prices', 'usd') }} p_bera + ON p_bera.minute = date_trunc('minute', meta_router.block_time) + AND p_bera.blockchain IS NULL + AND p_bera.symbol = 'BERA' + {% if is_incremental() %} + AND {{incremental_predicate('p_bera.minute')}} + {% else %} + AND p_bera.minute >= TIMESTAMP '{{ project_start_date }}' + {% endif %} diff --git a/dbt_subprojects/dex/models/_projects/kyberswap/bnb/kyberswap_aggregator_bnb_trades.sql b/dbt_subprojects/dex/models/_projects/kyberswap/bnb/kyberswap_aggregator_bnb_trades.sql index 8e51340b839..ac61d7c219d 100644 --- a/dbt_subprojects/dex/models/_projects/kyberswap/bnb/kyberswap_aggregator_bnb_trades.sql +++ b/dbt_subprojects/dex/models/_projects/kyberswap/bnb/kyberswap_aggregator_bnb_trades.sql @@ -41,7 +41,7 @@ WITH meta_router AS {% endif %} ) SELECT - 'bnb' AS blockchain + 'bnb' AS blockchain ,project AS project ,meta_router.version AS version ,CAST(date_trunc('day', meta_router.block_time) AS DATE) AS block_date diff --git a/dbt_subprojects/dex/models/_projects/kyberswap/kyberswap_aggregator_trades.sql b/dbt_subprojects/dex/models/_projects/kyberswap/kyberswap_aggregator_trades.sql index 9ba490c359b..c7c73a09a99 100644 --- a/dbt_subprojects/dex/models/_projects/kyberswap/kyberswap_aggregator_trades.sql +++ b/dbt_subprojects/dex/models/_projects/kyberswap/kyberswap_aggregator_trades.sql @@ -4,21 +4,27 @@ schema = 'kyberswap_aggregator', alias = 'trades', incremental_predicates = [incremental_predicate('DBT_INTERNAL_DEST.block_time')], - post_hook='{{ expose_spells(\'["arbitrum", "base"]\', + post_hook='{{ expose_spells(\'["arbitrum", "avalanche_c", "base", "berachain", "bnb", "ethereum", "linea", "mantle", "optimism", "polygon", "ronin", "sonic", "unichain"]\', "project", "kyberswap", - \'["nhd98z", "Henrystats"]\') }}' + \'["nhd98z", "Henrystats", "phu_ngo"]\') }}' ) }} {% set models = [ ref('kyberswap_aggregator_arbitrum_trades') ,ref('kyberswap_aggregator_avalanche_c_trades') + ,ref('kyberswap_aggregator_base_trades') + ,ref('kyberswap_aggregator_berachain_trades') + ,ref('kyberswap_aggregator_bnb_trades') ,ref('kyberswap_aggregator_ethereum_trades') + ,ref('kyberswap_aggregator_linea_trades') + ,ref('kyberswap_aggregator_mantle_trades') ,ref('kyberswap_aggregator_optimism_trades') - ,ref('kyberswap_aggregator_bnb_trades') ,ref('kyberswap_aggregator_polygon_trades') - ,ref('kyberswap_aggregator_base_trades') + ,ref('kyberswap_aggregator_ronin_trades') + ,ref('kyberswap_aggregator_sonic_trades') + ,ref('kyberswap_aggregator_unichain_trades') ] %} diff --git a/dbt_subprojects/dex/models/_projects/kyberswap/linea/_schema.yml b/dbt_subprojects/dex/models/_projects/kyberswap/linea/_schema.yml new file mode 100644 index 00000000000..1a1726740ae --- /dev/null +++ b/dbt_subprojects/dex/models/_projects/kyberswap/linea/_schema.yml @@ -0,0 +1,52 @@ +version: 2 + +models: + - name: kyberswap_aggregator_linea_trades + meta: + blockchain: linea + sector: dex_aggregator + project: kyberswap + contributors: nhd98z, phu_ngo + config: + tags: ['linea', 'kyberswap', 'aggregator', 'trades', 'dex'] + description: > + Kyberswap Aggregator on linea. + data_tests: + - dbt_utils.unique_combination_of_columns: + combination_of_columns: + - block_date + - blockchain + - project + - version + - tx_hash + - evt_index + - trace_address + - check_dex_aggregator_seed: + blockchain: linea + project: kyberswap + version: meta_2 + columns: + - name: blockchain + - name: project + - name: version + - name: block_date + - name: block_month + - name: block_time + - name: token_bought_symbol + - name: token_sold_symbol + - name: token_pair + - name: token_bought_amount + - name: token_sold_amount + - name: token_bought_amount_raw + - name: token_sold_amount_raw + - name: amount_usd + - name: token_bought_address + - name: token_sold_address + - name: taker + - name: maker + - name: project_contract_address + - name: tx_hash + - name: tx_from + - name: tx_to + - name: evt_index + - name: trace_address diff --git a/dbt_subprojects/dex/models/_projects/kyberswap/linea/kyberswap_aggregator_linea_trades.sql b/dbt_subprojects/dex/models/_projects/kyberswap/linea/kyberswap_aggregator_linea_trades.sql new file mode 100644 index 00000000000..96d2e688eea --- /dev/null +++ b/dbt_subprojects/dex/models/_projects/kyberswap/linea/kyberswap_aggregator_linea_trades.sql @@ -0,0 +1,116 @@ +{{ config +( + + schema = 'kyberswap_aggregator_linea', + alias = 'trades', + partition_by = ['block_month'], + materialized = 'incremental', + file_format = 'delta', + incremental_strategy = 'merge', + unique_key = ['block_date', 'blockchain', 'project', 'version', 'tx_hash', 'evt_index', 'trace_address'], + post_hook='{{ expose_spells(\'["linea"]\', + "project", + "kyberswap", + \'["nhd98z", "phu_ngo"]\') }}' +) +}} + +{% set project_start_date = '2023-07-17' %} + +WITH meta_router AS +( + SELECT + evt_block_time AS block_time + ,'kyberswap' AS project + ,'meta_2' AS version + ,sender AS taker + ,dstReceiver AS maker + ,returnAmount AS token_bought_amount_raw + ,spentAmount AS token_sold_amount_raw + ,CAST(NULL AS DOUBLE) AS amount_usd + ,dstToken AS token_bought_address + ,srcToken AS token_sold_address + ,contract_address AS project_contract_address + ,evt_tx_hash AS tx_hash + ,evt_index AS evt_index + ,ARRAY[-1] AS trace_address + FROM + {{ source('kyber_linea', 'MetaAggregationRouterV2_evt_Swapped') }} + {% if is_incremental() %} + WHERE {{incremental_predicate('evt_block_time')}} + {% endif %} +) +SELECT + 'linea' AS blockchain + ,project AS project + ,meta_router.version AS version + ,CAST(date_trunc('day', meta_router.block_time) AS DATE) AS block_date + ,CAST(date_trunc('month', meta_router.block_time) AS DATE) AS block_month + ,meta_router.block_time AS block_time + ,erc20a.symbol AS token_bought_symbol + ,erc20b.symbol AS token_sold_symbol + ,CASE + WHEN lower(erc20a.symbol) > lower(erc20b.symbol) + THEN concat(erc20b.symbol, '-', erc20a.symbol) + ELSE concat(erc20a.symbol, '-', erc20b.symbol) + END AS token_pair + ,meta_router.token_bought_amount_raw / power(10, erc20a.decimals) AS token_bought_amount + ,meta_router.token_sold_amount_raw / power(10, erc20b.decimals) AS token_sold_amount + ,CAST(meta_router.token_bought_amount_raw AS UINT256) AS token_bought_amount_raw + ,CAST(meta_router.token_sold_amount_raw AS UINT256) AS token_sold_amount_raw + ,COALESCE( + meta_router.amount_usd + ,(meta_router.token_bought_amount_raw / power(10, (CASE meta_router.token_bought_address WHEN 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee THEN 18 ELSE p_bought.decimals END))) * (CASE meta_router.token_bought_address WHEN 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee THEN p_eth.price ELSE p_bought.price END) + ,(meta_router.token_sold_amount_raw / power(10, (CASE meta_router.token_sold_address WHEN 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee THEN 18 ELSE p_sold.decimals END))) * (CASE meta_router.token_sold_address WHEN 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee THEN p_eth.price ELSE p_sold.price END) + ) AS amount_usd + ,meta_router.token_bought_address AS token_bought_address + ,meta_router.token_sold_address AS token_sold_address + ,COALESCE(meta_router.taker, tx."from") AS taker + ,meta_router.maker AS maker + ,meta_router.project_contract_address AS project_contract_address + ,meta_router.tx_hash AS tx_hash + ,tx."from" AS tx_from + ,tx."to" AS tx_to + ,meta_router.evt_index AS evt_index + ,meta_router.trace_address AS trace_address +FROM meta_router +INNER JOIN {{ source('linea', 'transactions')}} tx + ON meta_router.tx_hash = tx.hash + {% if is_incremental() %} + AND {{incremental_predicate('tx.block_time')}} + {% else %} + AND tx.block_time >= TIMESTAMP '{{ project_start_date }}' + {% endif %} +LEFT JOIN {{ source('tokens', 'erc20') }} erc20a + ON erc20a.contract_address = meta_router.token_bought_address + AND erc20a.blockchain = 'linea' +LEFT JOIN {{ source('tokens', 'erc20') }} erc20b + ON erc20b.contract_address = meta_router.token_sold_address + AND erc20b.blockchain = 'linea' +LEFT JOIN {{ source('prices', 'usd') }} p_bought + ON p_bought.minute = date_trunc('minute', meta_router.block_time) + AND p_bought.contract_address = meta_router.token_bought_address + AND p_bought.blockchain = 'linea' + {% if is_incremental() %} + AND {{incremental_predicate('p_bought.minute')}} + {% else %} + AND p_bought.minute >= TIMESTAMP '{{ project_start_date }}' + {% endif %} +LEFT JOIN {{ source('prices', 'usd') }} p_sold + ON p_sold.minute = date_trunc('minute', meta_router.block_time) + AND p_sold.contract_address = meta_router.token_sold_address + AND p_sold.blockchain = 'linea' + {% if is_incremental() %} + AND {{incremental_predicate('p_sold.minute')}} + {% else %} + AND p_sold.minute >= TIMESTAMP '{{ project_start_date }}' + {% endif %} +LEFT JOIN {{ source('prices', 'usd') }} p_eth + ON p_eth.minute = date_trunc('minute', meta_router.block_time) + AND p_eth.blockchain IS NULL + AND p_eth.symbol = 'ETH' + {% if is_incremental() %} + AND {{incremental_predicate('p_eth.minute')}} + {% else %} + AND p_eth.minute >= TIMESTAMP '{{ project_start_date }}' + {% endif %} diff --git a/dbt_subprojects/dex/models/_projects/kyberswap/mantle/_schema.yml b/dbt_subprojects/dex/models/_projects/kyberswap/mantle/_schema.yml new file mode 100644 index 00000000000..2225fa72d6b --- /dev/null +++ b/dbt_subprojects/dex/models/_projects/kyberswap/mantle/_schema.yml @@ -0,0 +1,52 @@ +version: 2 + +models: + - name: kyberswap_aggregator_mantle_trades + meta: + blockchain: mantle + sector: dex_aggregator + project: kyberswap + contributors: nhd98z, phu_ngo + config: + tags: ['mantle', 'kyberswap', 'aggregator', 'trades', 'dex'] + description: > + Kyberswap Aggregator on mantle. + data_tests: + - dbt_utils.unique_combination_of_columns: + combination_of_columns: + - block_date + - blockchain + - project + - version + - tx_hash + - evt_index + - trace_address + - check_dex_aggregator_seed: + blockchain: mantle + project: kyberswap + version: meta_2 + columns: + - name: blockchain + - name: project + - name: version + - name: block_date + - name: block_month + - name: block_time + - name: token_bought_symbol + - name: token_sold_symbol + - name: token_pair + - name: token_bought_amount + - name: token_sold_amount + - name: token_bought_amount_raw + - name: token_sold_amount_raw + - name: amount_usd + - name: token_bought_address + - name: token_sold_address + - name: taker + - name: maker + - name: project_contract_address + - name: tx_hash + - name: tx_from + - name: tx_to + - name: evt_index + - name: trace_address diff --git a/dbt_subprojects/dex/models/_projects/kyberswap/mantle/kyberswap_aggregator_mantle_trades.sql b/dbt_subprojects/dex/models/_projects/kyberswap/mantle/kyberswap_aggregator_mantle_trades.sql new file mode 100644 index 00000000000..bb47d7715d1 --- /dev/null +++ b/dbt_subprojects/dex/models/_projects/kyberswap/mantle/kyberswap_aggregator_mantle_trades.sql @@ -0,0 +1,116 @@ +{{ config +( + + schema = 'kyberswap_aggregator_mantle', + alias = 'trades', + partition_by = ['block_month'], + materialized = 'incremental', + file_format = 'delta', + incremental_strategy = 'merge', + unique_key = ['block_date', 'blockchain', 'project', 'version', 'tx_hash', 'evt_index', 'trace_address'], + post_hook='{{ expose_spells(\'["mantle"]\', + "project", + "kyberswap", + \'["nhd98z", "phu_ngo"]\') }}' +) +}} + +{% set project_start_date = '2024-03-17' %} + +WITH meta_router AS +( + SELECT + evt_block_time AS block_time + ,'kyberswap' AS project + ,'meta_2' AS version + ,sender AS taker + ,dstReceiver AS maker + ,returnAmount AS token_bought_amount_raw + ,spentAmount AS token_sold_amount_raw + ,CAST(NULL AS DOUBLE) AS amount_usd + ,dstToken AS token_bought_address + ,srcToken AS token_sold_address + ,contract_address AS project_contract_address + ,evt_tx_hash AS tx_hash + ,evt_index AS evt_index + ,ARRAY[-1] AS trace_address + FROM + {{ source('kyber_mantle', 'MetaAggregationRouterV2_evt_Swapped') }} + {% if is_incremental() %} + WHERE {{incremental_predicate('evt_block_time')}} + {% endif %} +) +SELECT + 'mantle' AS blockchain + ,project AS project + ,meta_router.version AS version + ,CAST(date_trunc('day', meta_router.block_time) AS DATE) AS block_date + ,CAST(date_trunc('month', meta_router.block_time) AS DATE) AS block_month + ,meta_router.block_time AS block_time + ,erc20a.symbol AS token_bought_symbol + ,erc20b.symbol AS token_sold_symbol + ,CASE + WHEN lower(erc20a.symbol) > lower(erc20b.symbol) + THEN concat(erc20b.symbol, '-', erc20a.symbol) + ELSE concat(erc20a.symbol, '-', erc20b.symbol) + END AS token_pair + ,meta_router.token_bought_amount_raw / power(10, erc20a.decimals) AS token_bought_amount + ,meta_router.token_sold_amount_raw / power(10, erc20b.decimals) AS token_sold_amount + ,CAST(meta_router.token_bought_amount_raw AS UINT256) AS token_bought_amount_raw + ,CAST(meta_router.token_sold_amount_raw AS UINT256) AS token_sold_amount_raw + ,COALESCE( + meta_router.amount_usd + ,(meta_router.token_bought_amount_raw / power(10, (CASE meta_router.token_bought_address WHEN 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee THEN 18 ELSE p_bought.decimals END))) * (CASE meta_router.token_bought_address WHEN 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee THEN p_mnt.price ELSE p_bought.price END) + ,(meta_router.token_sold_amount_raw / power(10, (CASE meta_router.token_sold_address WHEN 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee THEN 18 ELSE p_sold.decimals END))) * (CASE meta_router.token_sold_address WHEN 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee THEN p_mnt.price ELSE p_sold.price END) + ) AS amount_usd + ,meta_router.token_bought_address AS token_bought_address + ,meta_router.token_sold_address AS token_sold_address + ,COALESCE(meta_router.taker, tx."from") AS taker + ,meta_router.maker AS maker + ,meta_router.project_contract_address AS project_contract_address + ,meta_router.tx_hash AS tx_hash + ,tx."from" AS tx_from + ,tx."to" AS tx_to + ,meta_router.evt_index AS evt_index + ,meta_router.trace_address AS trace_address +FROM meta_router +INNER JOIN {{ source('mantle', 'transactions')}} tx + ON meta_router.tx_hash = tx.hash + {% if is_incremental() %} + AND {{incremental_predicate('tx.block_time')}} + {% else %} + AND tx.block_time >= TIMESTAMP '{{ project_start_date }}' + {% endif %} +LEFT JOIN {{ source('tokens', 'erc20') }} erc20a + ON erc20a.contract_address = meta_router.token_bought_address + AND erc20a.blockchain = 'mantle' +LEFT JOIN {{ source('tokens', 'erc20') }} erc20b + ON erc20b.contract_address = meta_router.token_sold_address + AND erc20b.blockchain = 'mantle' +LEFT JOIN {{ source('prices', 'usd') }} p_bought + ON p_bought.minute = date_trunc('minute', meta_router.block_time) + AND p_bought.contract_address = meta_router.token_bought_address + AND p_bought.blockchain = 'mantle' + {% if is_incremental() %} + AND {{incremental_predicate('p_bought.minute')}} + {% else %} + AND p_bought.minute >= TIMESTAMP '{{ project_start_date }}' + {% endif %} +LEFT JOIN {{ source('prices', 'usd') }} p_sold + ON p_sold.minute = date_trunc('minute', meta_router.block_time) + AND p_sold.contract_address = meta_router.token_sold_address + AND p_sold.blockchain = 'mantle' + {% if is_incremental() %} + AND {{incremental_predicate('p_sold.minute')}} + {% else %} + AND p_sold.minute >= TIMESTAMP '{{ project_start_date }}' + {% endif %} +LEFT JOIN {{ source('prices', 'usd') }} p_mnt + ON p_mnt.minute = date_trunc('minute', meta_router.block_time) + AND p_mnt.blockchain IS NULL + AND p_mnt.symbol = 'MNT' + {% if is_incremental() %} + AND {{incremental_predicate('p_mnt.minute')}} + {% else %} + AND p_mnt.minute >= TIMESTAMP '{{ project_start_date }}' + {% endif %} diff --git a/dbt_subprojects/dex/models/_projects/kyberswap/polygon/kyberswap_aggregator_polygon_trades.sql b/dbt_subprojects/dex/models/_projects/kyberswap/polygon/kyberswap_aggregator_polygon_trades.sql index 4ead57bc519..6489423d99c 100644 --- a/dbt_subprojects/dex/models/_projects/kyberswap/polygon/kyberswap_aggregator_polygon_trades.sql +++ b/dbt_subprojects/dex/models/_projects/kyberswap/polygon/kyberswap_aggregator_polygon_trades.sql @@ -37,13 +37,13 @@ WITH meta_router AS FROM {{ source('kyber_polygon', 'MetaAggregationRouterV2_evt_Swapped') }} WHERE - dstToken != 0xd848db988b477efe60ee2ff99f9898990c6fb0cd --bug with MTK token + dstToken != 0xd848db988b477efe60ee2ff99f9898990c6fb0cd -- bug with MTK token {% if is_incremental() %} AND {{incremental_predicate('evt_block_time')}} {% endif %} ) SELECT - 'polygon' AS blockchain + 'polygon' AS blockchain ,project AS project ,meta_router.version AS version ,CAST(date_trunc('day', meta_router.block_time) AS DATE) AS block_date diff --git a/dbt_subprojects/dex/models/_projects/kyberswap/ronin/_schema.yml b/dbt_subprojects/dex/models/_projects/kyberswap/ronin/_schema.yml new file mode 100644 index 00000000000..bab464b0c97 --- /dev/null +++ b/dbt_subprojects/dex/models/_projects/kyberswap/ronin/_schema.yml @@ -0,0 +1,52 @@ +version: 2 + +models: + - name: kyberswap_aggregator_ronin_trades + meta: + blockchain: ronin + sector: dex_aggregator + project: kyberswap + contributors: nhd98z, phu_ngo + config: + tags: ['ronin', 'kyberswap', 'aggregator', 'trades', 'dex'] + description: > + Kyberswap Aggregator on ronin. + data_tests: + - dbt_utils.unique_combination_of_columns: + combination_of_columns: + - block_date + - blockchain + - project + - version + - tx_hash + - evt_index + - trace_address + - check_dex_aggregator_seed: + blockchain: ronin + project: kyberswap + version: meta_2 + columns: + - name: blockchain + - name: project + - name: version + - name: block_date + - name: block_month + - name: block_time + - name: token_bought_symbol + - name: token_sold_symbol + - name: token_pair + - name: token_bought_amount + - name: token_sold_amount + - name: token_bought_amount_raw + - name: token_sold_amount_raw + - name: amount_usd + - name: token_bought_address + - name: token_sold_address + - name: taker + - name: maker + - name: project_contract_address + - name: tx_hash + - name: tx_from + - name: tx_to + - name: evt_index + - name: trace_address diff --git a/dbt_subprojects/dex/models/_projects/kyberswap/ronin/kyberswap_aggregator_ronin_trades.sql b/dbt_subprojects/dex/models/_projects/kyberswap/ronin/kyberswap_aggregator_ronin_trades.sql new file mode 100644 index 00000000000..c6e24adb339 --- /dev/null +++ b/dbt_subprojects/dex/models/_projects/kyberswap/ronin/kyberswap_aggregator_ronin_trades.sql @@ -0,0 +1,116 @@ +{{ config +( + + schema = 'kyberswap_aggregator_ronin', + alias = 'trades', + partition_by = ['block_month'], + materialized = 'incremental', + file_format = 'delta', + incremental_strategy = 'merge', + unique_key = ['block_date', 'blockchain', 'project', 'version', 'tx_hash', 'evt_index', 'trace_address'], + post_hook='{{ expose_spells(\'["ronin"]\', + "project", + "kyberswap", + \'["nhd98z", "phu_ngo"]\') }}' +) +}} + +{% set project_start_date = '2025-03-17' %} + +WITH meta_router AS +( + SELECT + evt_block_time AS block_time + ,'kyberswap' AS project + ,'meta_2' AS version + ,sender AS taker + ,dstReceiver AS maker + ,returnAmount AS token_bought_amount_raw + ,spentAmount AS token_sold_amount_raw + ,CAST(NULL AS DOUBLE) AS amount_usd + ,dstToken AS token_bought_address + ,srcToken AS token_sold_address + ,contract_address AS project_contract_address + ,evt_tx_hash AS tx_hash + ,evt_index AS evt_index + ,ARRAY[-1] AS trace_address + FROM + {{ source('kyber_ronin', 'MetaAggregationRouterV2_evt_Swapped') }} + {% if is_incremental() %} + WHERE {{incremental_predicate('evt_block_time')}} + {% endif %} +) +SELECT + 'ronin' AS blockchain + ,project AS project + ,meta_router.version AS version + ,CAST(date_trunc('day', meta_router.block_time) AS DATE) AS block_date + ,CAST(date_trunc('month', meta_router.block_time) AS DATE) AS block_month + ,meta_router.block_time AS block_time + ,erc20a.symbol AS token_bought_symbol + ,erc20b.symbol AS token_sold_symbol + ,CASE + WHEN lower(erc20a.symbol) > lower(erc20b.symbol) + THEN concat(erc20b.symbol, '-', erc20a.symbol) + ELSE concat(erc20a.symbol, '-', erc20b.symbol) + END AS token_pair + ,meta_router.token_bought_amount_raw / power(10, erc20a.decimals) AS token_bought_amount + ,meta_router.token_sold_amount_raw / power(10, erc20b.decimals) AS token_sold_amount + ,CAST(meta_router.token_bought_amount_raw AS UINT256) AS token_bought_amount_raw + ,CAST(meta_router.token_sold_amount_raw AS UINT256) AS token_sold_amount_raw + ,COALESCE( + meta_router.amount_usd + ,(meta_router.token_bought_amount_raw / power(10, (CASE meta_router.token_bought_address WHEN 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee THEN 18 ELSE p_bought.decimals END))) * (CASE meta_router.token_bought_address WHEN 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee THEN p_ron.price ELSE p_bought.price END) + ,(meta_router.token_sold_amount_raw / power(10, (CASE meta_router.token_sold_address WHEN 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee THEN 18 ELSE p_sold.decimals END))) * (CASE meta_router.token_sold_address WHEN 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee THEN p_ron.price ELSE p_sold.price END) + ) AS amount_usd + ,meta_router.token_bought_address AS token_bought_address + ,meta_router.token_sold_address AS token_sold_address + ,COALESCE(meta_router.taker, tx."from") AS taker + ,meta_router.maker AS maker + ,meta_router.project_contract_address AS project_contract_address + ,meta_router.tx_hash AS tx_hash + ,tx."from" AS tx_from + ,tx."to" AS tx_to + ,meta_router.evt_index AS evt_index + ,meta_router.trace_address AS trace_address +FROM meta_router +INNER JOIN {{ source('ronin', 'transactions')}} tx + ON meta_router.tx_hash = tx.hash + {% if is_incremental() %} + AND {{incremental_predicate('tx.block_time')}} + {% else %} + AND tx.block_time >= TIMESTAMP '{{ project_start_date }}' + {% endif %} +LEFT JOIN {{ source('tokens', 'erc20') }} erc20a + ON erc20a.contract_address = meta_router.token_bought_address + AND erc20a.blockchain = 'ronin' +LEFT JOIN {{ source('tokens', 'erc20') }} erc20b + ON erc20b.contract_address = meta_router.token_sold_address + AND erc20b.blockchain = 'ronin' +LEFT JOIN {{ source('prices', 'usd') }} p_bought + ON p_bought.minute = date_trunc('minute', meta_router.block_time) + AND p_bought.contract_address = meta_router.token_bought_address + AND p_bought.blockchain = 'ronin' + {% if is_incremental() %} + AND {{incremental_predicate('p_bought.minute')}} + {% else %} + AND p_bought.minute >= TIMESTAMP '{{ project_start_date }}' + {% endif %} +LEFT JOIN {{ source('prices', 'usd') }} p_sold + ON p_sold.minute = date_trunc('minute', meta_router.block_time) + AND p_sold.contract_address = meta_router.token_sold_address + AND p_sold.blockchain = 'ronin' + {% if is_incremental() %} + AND {{incremental_predicate('p_sold.minute')}} + {% else %} + AND p_sold.minute >= TIMESTAMP '{{ project_start_date }}' + {% endif %} +LEFT JOIN {{ source('prices', 'usd') }} p_ron + ON p_ron.minute = date_trunc('minute', meta_router.block_time) + AND p_ron.blockchain IS NULL + AND p_ron.symbol = 'RON' + {% if is_incremental() %} + AND {{incremental_predicate('p_ron.minute')}} + {% else %} + AND p_ron.minute >= TIMESTAMP '{{ project_start_date }}' + {% endif %} diff --git a/dbt_subprojects/dex/models/_projects/kyberswap/sonic/_schema.yml b/dbt_subprojects/dex/models/_projects/kyberswap/sonic/_schema.yml new file mode 100644 index 00000000000..ad8a39cc57c --- /dev/null +++ b/dbt_subprojects/dex/models/_projects/kyberswap/sonic/_schema.yml @@ -0,0 +1,52 @@ +version: 2 + +models: + - name: kyberswap_aggregator_sonic_trades + meta: + blockchain: sonic + sector: dex_aggregator + project: kyberswap + contributors: nhd98z, phu_ngo + config: + tags: ['sonic', 'kyberswap', 'aggregator', 'trades', 'dex'] + description: > + Kyberswap Aggregator on sonic. + data_tests: + - dbt_utils.unique_combination_of_columns: + combination_of_columns: + - block_date + - blockchain + - project + - version + - tx_hash + - evt_index + - trace_address + - check_dex_aggregator_seed: + blockchain: sonic + project: kyberswap + version: meta_2 + columns: + - name: blockchain + - name: project + - name: version + - name: block_date + - name: block_month + - name: block_time + - name: token_bought_symbol + - name: token_sold_symbol + - name: token_pair + - name: token_bought_amount + - name: token_sold_amount + - name: token_bought_amount_raw + - name: token_sold_amount_raw + - name: amount_usd + - name: token_bought_address + - name: token_sold_address + - name: taker + - name: maker + - name: project_contract_address + - name: tx_hash + - name: tx_from + - name: tx_to + - name: evt_index + - name: trace_address diff --git a/dbt_subprojects/dex/models/_projects/kyberswap/sonic/kyberswap_aggregator_sonic_trades.sql b/dbt_subprojects/dex/models/_projects/kyberswap/sonic/kyberswap_aggregator_sonic_trades.sql new file mode 100644 index 00000000000..396ee122b25 --- /dev/null +++ b/dbt_subprojects/dex/models/_projects/kyberswap/sonic/kyberswap_aggregator_sonic_trades.sql @@ -0,0 +1,116 @@ +{{ config +( + + schema = 'kyberswap_aggregator_sonic', + alias = 'trades', + partition_by = ['block_month'], + materialized = 'incremental', + file_format = 'delta', + incremental_strategy = 'merge', + unique_key = ['block_date', 'blockchain', 'project', 'version', 'tx_hash', 'evt_index', 'trace_address'], + post_hook='{{ expose_spells(\'["sonic"]\', + "project", + "kyberswap", + \'["nhd98z", "phu_ngo"]\') }}' +) +}} + +{% set project_start_date = '2024-12-17' %} + +WITH meta_router AS +( + SELECT + evt_block_time AS block_time + ,'kyberswap' AS project + ,'meta_2' AS version + ,sender AS taker + ,dstReceiver AS maker + ,returnAmount AS token_bought_amount_raw + ,spentAmount AS token_sold_amount_raw + ,CAST(NULL AS DOUBLE) AS amount_usd + ,dstToken AS token_bought_address + ,srcToken AS token_sold_address + ,contract_address AS project_contract_address + ,evt_tx_hash AS tx_hash + ,evt_index AS evt_index + ,ARRAY[-1] AS trace_address + FROM + {{ source('kyber_sonic', 'MetaAggregationRouterV2_evt_Swapped') }} + {% if is_incremental() %} + WHERE {{incremental_predicate('evt_block_time')}} + {% endif %} +) +SELECT + 'sonic' AS blockchain + ,project AS project + ,meta_router.version AS version + ,CAST(date_trunc('day', meta_router.block_time) AS DATE) AS block_date + ,CAST(date_trunc('month', meta_router.block_time) AS DATE) AS block_month + ,meta_router.block_time AS block_time + ,erc20a.symbol AS token_bought_symbol + ,erc20b.symbol AS token_sold_symbol + ,CASE + WHEN lower(erc20a.symbol) > lower(erc20b.symbol) + THEN concat(erc20b.symbol, '-', erc20a.symbol) + ELSE concat(erc20a.symbol, '-', erc20b.symbol) + END AS token_pair + ,meta_router.token_bought_amount_raw / power(10, erc20a.decimals) AS token_bought_amount + ,meta_router.token_sold_amount_raw / power(10, erc20b.decimals) AS token_sold_amount + ,CAST(meta_router.token_bought_amount_raw AS UINT256) AS token_bought_amount_raw + ,CAST(meta_router.token_sold_amount_raw AS UINT256) AS token_sold_amount_raw + ,COALESCE( + meta_router.amount_usd + ,(meta_router.token_bought_amount_raw / power(10, (CASE meta_router.token_bought_address WHEN 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee THEN 18 ELSE p_bought.decimals END))) * (CASE meta_router.token_bought_address WHEN 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee THEN p_s.price ELSE p_bought.price END) + ,(meta_router.token_sold_amount_raw / power(10, (CASE meta_router.token_sold_address WHEN 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee THEN 18 ELSE p_sold.decimals END))) * (CASE meta_router.token_sold_address WHEN 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee THEN p_s.price ELSE p_sold.price END) + ) AS amount_usd + ,meta_router.token_bought_address AS token_bought_address + ,meta_router.token_sold_address AS token_sold_address + ,COALESCE(meta_router.taker, tx."from") AS taker + ,meta_router.maker AS maker + ,meta_router.project_contract_address AS project_contract_address + ,meta_router.tx_hash AS tx_hash + ,tx."from" AS tx_from + ,tx."to" AS tx_to + ,meta_router.evt_index AS evt_index + ,meta_router.trace_address AS trace_address +FROM meta_router +INNER JOIN {{ source('sonic', 'transactions')}} tx + ON meta_router.tx_hash = tx.hash + {% if is_incremental() %} + AND {{incremental_predicate('tx.block_time')}} + {% else %} + AND tx.block_time >= TIMESTAMP '{{ project_start_date }}' + {% endif %} +LEFT JOIN {{ source('tokens', 'erc20') }} erc20a + ON erc20a.contract_address = meta_router.token_bought_address + AND erc20a.blockchain = 'sonic' +LEFT JOIN {{ source('tokens', 'erc20') }} erc20b + ON erc20b.contract_address = meta_router.token_sold_address + AND erc20b.blockchain = 'sonic' +LEFT JOIN {{ source('prices', 'usd') }} p_bought + ON p_bought.minute = date_trunc('minute', meta_router.block_time) + AND p_bought.contract_address = meta_router.token_bought_address + AND p_bought.blockchain = 'sonic' + {% if is_incremental() %} + AND {{incremental_predicate('p_bought.minute')}} + {% else %} + AND p_bought.minute >= TIMESTAMP '{{ project_start_date }}' + {% endif %} +LEFT JOIN {{ source('prices', 'usd') }} p_sold + ON p_sold.minute = date_trunc('minute', meta_router.block_time) + AND p_sold.contract_address = meta_router.token_sold_address + AND p_sold.blockchain = 'sonic' + {% if is_incremental() %} + AND {{incremental_predicate('p_sold.minute')}} + {% else %} + AND p_sold.minute >= TIMESTAMP '{{ project_start_date }}' + {% endif %} +LEFT JOIN {{ source('prices', 'usd') }} p_s + ON p_s.minute = date_trunc('minute', meta_router.block_time) + AND p_s.blockchain IS NULL + AND p_s.symbol = 'S' + {% if is_incremental() %} + AND {{incremental_predicate('p_s.minute')}} + {% else %} + AND p_s.minute >= TIMESTAMP '{{ project_start_date }}' + {% endif %} diff --git a/dbt_subprojects/dex/models/_projects/kyberswap/unichain/_schema.yml b/dbt_subprojects/dex/models/_projects/kyberswap/unichain/_schema.yml new file mode 100644 index 00000000000..4554ff54ee4 --- /dev/null +++ b/dbt_subprojects/dex/models/_projects/kyberswap/unichain/_schema.yml @@ -0,0 +1,52 @@ +version: 2 + +models: + - name: kyberswap_aggregator_unichain_trades + meta: + blockchain: unichain + sector: dex_aggregator + project: kyberswap + contributors: nhd98z, phu_ngo + config: + tags: ['unichain', 'kyberswap', 'aggregator', 'trades', 'dex'] + description: > + Kyberswap Aggregator on unichain. + data_tests: + - dbt_utils.unique_combination_of_columns: + combination_of_columns: + - block_date + - blockchain + - project + - version + - tx_hash + - evt_index + - trace_address + - check_dex_aggregator_seed: + blockchain: unichain + project: kyberswap + version: meta_2 + columns: + - name: blockchain + - name: project + - name: version + - name: block_date + - name: block_month + - name: block_time + - name: token_bought_symbol + - name: token_sold_symbol + - name: token_pair + - name: token_bought_amount + - name: token_sold_amount + - name: token_bought_amount_raw + - name: token_sold_amount_raw + - name: amount_usd + - name: token_bought_address + - name: token_sold_address + - name: taker + - name: maker + - name: project_contract_address + - name: tx_hash + - name: tx_from + - name: tx_to + - name: evt_index + - name: trace_address diff --git a/dbt_subprojects/dex/models/_projects/kyberswap/unichain/kyberswap_aggregator_unichain_trades.sql b/dbt_subprojects/dex/models/_projects/kyberswap/unichain/kyberswap_aggregator_unichain_trades.sql new file mode 100644 index 00000000000..e856748f5d5 --- /dev/null +++ b/dbt_subprojects/dex/models/_projects/kyberswap/unichain/kyberswap_aggregator_unichain_trades.sql @@ -0,0 +1,116 @@ +{{ config +( + + schema = 'kyberswap_aggregator_unichain', + alias = 'trades', + partition_by = ['block_month'], + materialized = 'incremental', + file_format = 'delta', + incremental_strategy = 'merge', + unique_key = ['block_date', 'blockchain', 'project', 'version', 'tx_hash', 'evt_index', 'trace_address'], + post_hook='{{ expose_spells(\'["unichain"]\', + "project", + "kyberswap", + \'["nhd98z", "phu_ngo"]\') }}' +) +}} + +{% set project_start_date = '2025-04-16' %} + +WITH meta_router AS +( + SELECT + evt_block_time AS block_time + ,'kyberswap' AS project + ,'meta_2' AS version + ,sender AS taker + ,dstReceiver AS maker + ,returnAmount AS token_bought_amount_raw + ,spentAmount AS token_sold_amount_raw + ,CAST(NULL AS DOUBLE) AS amount_usd + ,dstToken AS token_bought_address + ,srcToken AS token_sold_address + ,contract_address AS project_contract_address + ,evt_tx_hash AS tx_hash + ,evt_index AS evt_index + ,ARRAY[-1] AS trace_address + FROM + {{ source('kyber_unichain', 'MetaAggregationRouterV2_evt_Swapped') }} + {% if is_incremental() %} + WHERE {{incremental_predicate('evt_block_time')}} + {% endif %} +) +SELECT + 'unichain' AS blockchain + ,project AS project + ,meta_router.version AS version + ,CAST(date_trunc('day', meta_router.block_time) AS DATE) AS block_date + ,CAST(date_trunc('month', meta_router.block_time) AS DATE) AS block_month + ,meta_router.block_time AS block_time + ,erc20a.symbol AS token_bought_symbol + ,erc20b.symbol AS token_sold_symbol + ,CASE + WHEN lower(erc20a.symbol) > lower(erc20b.symbol) + THEN concat(erc20b.symbol, '-', erc20a.symbol) + ELSE concat(erc20a.symbol, '-', erc20b.symbol) + END AS token_pair + ,meta_router.token_bought_amount_raw / power(10, erc20a.decimals) AS token_bought_amount + ,meta_router.token_sold_amount_raw / power(10, erc20b.decimals) AS token_sold_amount + ,CAST(meta_router.token_bought_amount_raw AS UINT256) AS token_bought_amount_raw + ,CAST(meta_router.token_sold_amount_raw AS UINT256) AS token_sold_amount_raw + ,COALESCE( + meta_router.amount_usd + ,(meta_router.token_bought_amount_raw / power(10, (CASE meta_router.token_bought_address WHEN 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee THEN 18 ELSE p_bought.decimals END))) * (CASE meta_router.token_bought_address WHEN 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee THEN p_eth.price ELSE p_bought.price END) + ,(meta_router.token_sold_amount_raw / power(10, (CASE meta_router.token_sold_address WHEN 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee THEN 18 ELSE p_sold.decimals END))) * (CASE meta_router.token_sold_address WHEN 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee THEN p_eth.price ELSE p_sold.price END) + ) AS amount_usd + ,meta_router.token_bought_address AS token_bought_address + ,meta_router.token_sold_address AS token_sold_address + ,COALESCE(meta_router.taker, tx."from") AS taker + ,meta_router.maker AS maker + ,meta_router.project_contract_address AS project_contract_address + ,meta_router.tx_hash AS tx_hash + ,tx."from" AS tx_from + ,tx."to" AS tx_to + ,meta_router.evt_index AS evt_index + ,meta_router.trace_address AS trace_address +FROM meta_router +INNER JOIN {{ source('unichain', 'transactions')}} tx + ON meta_router.tx_hash = tx.hash + {% if is_incremental() %} + AND {{incremental_predicate('tx.block_time')}} + {% else %} + AND tx.block_time >= TIMESTAMP '{{ project_start_date }}' + {% endif %} +LEFT JOIN {{ source('tokens', 'erc20') }} erc20a + ON erc20a.contract_address = meta_router.token_bought_address + AND erc20a.blockchain = 'unichain' +LEFT JOIN {{ source('tokens', 'erc20') }} erc20b + ON erc20b.contract_address = meta_router.token_sold_address + AND erc20b.blockchain = 'unichain' +LEFT JOIN {{ source('prices', 'usd') }} p_bought + ON p_bought.minute = date_trunc('minute', meta_router.block_time) + AND p_bought.contract_address = meta_router.token_bought_address + AND p_bought.blockchain = 'unichain' + {% if is_incremental() %} + AND {{incremental_predicate('p_bought.minute')}} + {% else %} + AND p_bought.minute >= TIMESTAMP '{{ project_start_date }}' + {% endif %} +LEFT JOIN {{ source('prices', 'usd') }} p_sold + ON p_sold.minute = date_trunc('minute', meta_router.block_time) + AND p_sold.contract_address = meta_router.token_sold_address + AND p_sold.blockchain = 'unichain' + {% if is_incremental() %} + AND {{incremental_predicate('p_sold.minute')}} + {% else %} + AND p_sold.minute >= TIMESTAMP '{{ project_start_date }}' + {% endif %} +LEFT JOIN {{ source('prices', 'usd') }} p_eth + ON p_eth.minute = date_trunc('minute', meta_router.block_time) + AND p_eth.blockchain IS NULL + AND p_eth.symbol = 'ETH' + {% if is_incremental() %} + AND {{incremental_predicate('p_eth.minute')}} + {% else %} + AND p_eth.minute >= TIMESTAMP '{{ project_start_date }}' + {% endif %} diff --git a/sources/kyberswap/berachain/kyberswap_berachain_sources.yml b/sources/kyberswap/berachain/kyberswap_berachain_sources.yml new file mode 100644 index 00000000000..5d032d809cf --- /dev/null +++ b/sources/kyberswap/berachain/kyberswap_berachain_sources.yml @@ -0,0 +1,7 @@ +version: 2 + +sources: + - name: kyber_berachain + description: "Berachain decoded tables related to Kyberswap contract" + tables: + - name: MetaAggregationRouterV2_evt_Swapped diff --git a/sources/kyberswap/linea/kyberswap_linea_sources.yml b/sources/kyberswap/linea/kyberswap_linea_sources.yml new file mode 100644 index 00000000000..ece1d691da7 --- /dev/null +++ b/sources/kyberswap/linea/kyberswap_linea_sources.yml @@ -0,0 +1,7 @@ +version: 2 + +sources: + - name: kyber_linea + description: "Linea decoded tables related to Kyberswap contract" + tables: + - name: MetaAggregationRouterV2_evt_Swapped diff --git a/sources/kyberswap/mantle/kyberswap_mantle_sources.yml b/sources/kyberswap/mantle/kyberswap_mantle_sources.yml new file mode 100644 index 00000000000..5fa6e8acc5d --- /dev/null +++ b/sources/kyberswap/mantle/kyberswap_mantle_sources.yml @@ -0,0 +1,7 @@ +version: 2 + +sources: + - name: kyber_mantle + description: "Mantle decoded tables related to Kyberswap contract" + tables: + - name: MetaAggregationRouterV2_evt_Swapped diff --git a/sources/kyberswap/ronin/kyberswap_ronin_sources.yml b/sources/kyberswap/ronin/kyberswap_ronin_sources.yml new file mode 100644 index 00000000000..d41463ad05c --- /dev/null +++ b/sources/kyberswap/ronin/kyberswap_ronin_sources.yml @@ -0,0 +1,7 @@ +version: 2 + +sources: + - name: kyber_ronin + description: "Ronin decoded tables related to Kyberswap contract" + tables: + - name: MetaAggregationRouterV2_evt_Swapped diff --git a/sources/kyberswap/sonic/kyberswap_sonic_sources.yml b/sources/kyberswap/sonic/kyberswap_sonic_sources.yml new file mode 100644 index 00000000000..b36e9a6db11 --- /dev/null +++ b/sources/kyberswap/sonic/kyberswap_sonic_sources.yml @@ -0,0 +1,7 @@ +version: 2 + +sources: + - name: kyber_sonic + description: "Sonic decoded tables related to Kyberswap contract" + tables: + - name: MetaAggregationRouterV2_evt_Swapped diff --git a/sources/kyberswap/unichain/kyberswap_unichain_sources.yml b/sources/kyberswap/unichain/kyberswap_unichain_sources.yml new file mode 100644 index 00000000000..e17fd9aaa73 --- /dev/null +++ b/sources/kyberswap/unichain/kyberswap_unichain_sources.yml @@ -0,0 +1,7 @@ +version: 2 + +sources: + - name: kyber_unichain + description: "Unichain decoded tables related to Kyberswap contract" + tables: + - name: MetaAggregationRouterV2_evt_Swapped