diff --git a/dbt_subprojects/dex/models/trades/dex_evm_trades.sql b/dbt_subprojects/dex/models/trades/dex_evm_trades.sql new file mode 100644 index 00000000000..88030a646d2 --- /dev/null +++ b/dbt_subprojects/dex/models/trades/dex_evm_trades.sql @@ -0,0 +1,10 @@ +{{ config( + schema = 'dex_evm' + , alias = 'trades' + , materialized = 'view' + ) +}} + +SELECT * +FROM {{ ref('dex_trades') }} + diff --git a/dbt_subprojects/dex/models/trades/dex_multichain_trades.sql b/dbt_subprojects/dex/models/trades/dex_multichain_trades.sql new file mode 100644 index 00000000000..eae813bd51c --- /dev/null +++ b/dbt_subprojects/dex/models/trades/dex_multichain_trades.sql @@ -0,0 +1,86 @@ +{{ config( + schema = 'dex_multichain' + , alias = 'trades' + , materialized = 'view' + ) +}} + +WITH + +evm_trades AS ( + SELECT + blockchain, + block_time AS timestamp, + block_date AS date, + block_number, --not very chain agnostic + CONCAT('0x', LOWER(TO_HEX(tx_hash))) AS tx_id, + CONCAT('0x', LOWER(TO_HEX(taker))) AS trader_id, + CONCAT('0x', LOWER(TO_HEX(tx_from))) AS tx_signer, + project, + CONCAT('0x', LOWER(TO_HEX(project_contract_address))) AS pool_id, + token_pair, + token_bought_symbol, + token_sold_symbol, + token_bought_amount, + token_sold_amount, + token_bought_amount_raw, + token_sold_amount_raw, + amount_usd, + CONCAT('0x', LOWER(TO_HEX(token_bought_address))) AS token_bought_id, + CONCAT('0x', LOWER(TO_HEX(token_sold_address))) AS token_sold_id + FROM {{ ref('dex_evm_trades') }} +), + +solana_trades AS ( + SELECT + 'solana' AS blockchain, + block_time AS timestamp, + block_date AS date, + block_slot AS block_number, + tx_id, + trader_id, + trader_id AS tx_signer, + project, + project_program_id AS pool_id, + token_pair, + token_bought_symbol, + token_sold_symbol, + token_bought_amount, + token_sold_amount, + token_bought_amount_raw, + token_sold_amount_raw, + amount_usd, + token_bought_mint_address AS token_bought_id, + token_sold_mint_address AS token_sold_id + FROM {{ source('dex_solana', 'trades') }} +), + +sui_trades AS ( + SELECT + 'sui' AS blockchain, + block_time AS timestamp, + block_date AS date, + CAST(checkpoint AS BIGINT) AS block_number, + transaction_digest AS tx_id, + CONCAT('0x', LOWER(TO_HEX(sender))) AS trader_id, + CONCAT('0x', LOWER(TO_HEX(sender))) AS tx_signer, + project, + pool_id, + token_pair, + token_bought_symbol, + token_sold_symbol, + CAST(token_bought_amount AS DOUBLE) AS token_bought_amount, + CAST(token_sold_amount AS DOUBLE) AS token_sold_amount, + CAST(token_bought_amount_raw AS DOUBLE) AS token_bought_amount_raw, + CAST(token_sold_amount_raw AS DOUBLE) AS token_sold_amount_raw, + CAST(amount_usd AS DOUBLE) AS amount_usd, + token_bought_address AS token_bought_id, + token_sold_address AS token_sold_id + FROM {{ source('dex_sui', 'trades') }} +) + +SELECT * FROM evm_trades +UNION ALL +SELECT * FROM solana_trades +UNION ALL +SELECT * FROM sui_trades; diff --git a/sources/_subprojects_outputs/daily_spellbook/_sources.yml b/sources/_subprojects_outputs/daily_spellbook/_sources.yml index fd5d2439f36..56a3083991f 100644 --- a/sources/_subprojects_outputs/daily_spellbook/_sources.yml +++ b/sources/_subprojects_outputs/daily_spellbook/_sources.yml @@ -51,6 +51,10 @@ sources: - name: pools_metrics_daily - name: trades + - name: dex_sui + tables: + - name: trades + - name: utils tables: - name: days_table