Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions dbt_subprojects/dex/models/dex_info.sql
Original file line number Diff line number Diff line change
Expand Up @@ -238,4 +238,5 @@ FROM (VALUES
, ('somnex', 'SomneX', 'Direct', 'SomneX')
, ('machinex', 'Machine X', 'Direct', 'machinexdotxyz')
, ('cldex', 'CLDEX', 'Direct', 'KaiaChain')
, ('treasure_magicswap', 'Treasure Magicswap', 'Direct', 'N/A')
) AS temp_table (project, name, marketplace_type, x_username)
21 changes: 20 additions & 1 deletion dbt_subprojects/dex/models/trades/arbitrum/_schema.yml
Original file line number Diff line number Diff line change
Expand Up @@ -960,4 +960,23 @@ models:
- dbt_utils.unique_combination_of_columns:
combination_of_columns:
- tx_hash
- evt_index
- evt_index

- name: treasure_magicswap_arbitrum_base_trades
meta:
blockchain: arbitrum
sector: dex
project: treasure_magicswap
contributors: principatel
config:
tags: ["arbitrum", "dex", "trades", "treasure_magicswap"]
description: "treasure_magicswap arbitrum base trades"
data_tests:
- dbt_utils.unique_combination_of_columns:
combination_of_columns:
- tx_hash
- evt_index
- check_dex_base_trades_seed:
seed_file: ref('treasure_magicswap_arbitrum_base_trades_seed')
filter:
version: 1
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@
, ref('gammaswap_arbitrum_base_trades')
, ref('native_arbitrum_base_trades')
, ref('eulerswap_arbitrum_base_trades')
, ref('treasure_magicswap_arbitrum_base_trades')
] %}

with base_union as (
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
{{ config(
schema = 'treasure_magicswap_arbitrum',
alias = 'base_trades',
partition_by = ['block_month'],
materialized = 'incremental',
file_format = 'delta',
incremental_strategy = 'merge',
unique_key = ['tx_hash', 'evt_index']
) }}

WITH token0_calls AS (
SELECT contract_address AS pool_address, output_0 AS token0_address, call_block_time, call_block_number
FROM "delta_prod"."treasure_magicswap_arbitrum"."magicgflypair_call_token0"
WHERE call_success = TRUE
UNION ALL
SELECT contract_address AS pool_address, output_0 AS token0_address, call_block_time, call_block_number
FROM "delta_prod"."treasure_magicswap_arbitrum"."magicelmpair_call_token0"
WHERE call_success = TRUE
),

latest_token0 AS (
SELECT pool_address, token0_address,
ROW_NUMBER() OVER (PARTITION BY pool_address ORDER BY call_block_number DESC, call_block_time DESC) AS rn
FROM token0_calls
),

token1_calls AS (

SELECT contract_address AS pool_address, output_0 AS token1_address, call_block_time, call_block_number
FROM "delta_prod"."treasure_magicswap_arbitrum"."magicgflypair_call_token1"
WHERE call_success = TRUE
UNION ALL
SELECT contract_address AS pool_address, output_0 AS token1_address, call_block_time, call_block_number
FROM "delta_prod"."treasure_magicswap_arbitrum"."magicelmpair_call_token1"
WHERE call_success = TRUE
),

latest_token1 AS (
SELECT pool_address, token1_address,
ROW_NUMBER() OVER (PARTITION BY pool_address ORDER BY call_block_number DESC, call_block_time DESC) AS rn
FROM token1_calls
),

pool_tokens AS (
SELECT t0.pool_address, t0.token0_address, t1.token1_address
FROM latest_token0 t0
JOIN latest_token1 t1 ON t0.pool_address = t1.pool_address
WHERE t0.rn = 1 AND t1.rn = 1
),

swap_events AS (
SELECT
evt_block_number AS block_number,
TRY_CAST(evt_block_time AS TIMESTAMP(3) WITH TIME ZONE) AS block_time,
evt_tx_from AS maker,
contract_address AS pool_address,
COALESCE(amount0In, 0) AS amount0_in,
COALESCE(amount1In, 0) AS amount1_in,
COALESCE(amount0Out, 0) AS amount0_out,
COALESCE(amount1Out, 0) AS amount1_out,
sender,
to,
evt_tx_hash AS tx_hash,
evt_index AS evt_index
FROM "delta_prod"."treasure_magicswap_arbitrum"."magicgflypair_evt_swap"
{% if is_incremental() %}
WHERE {{ incremental_predicate('evt_block_time') }}
{% endif %}

UNION ALL

SELECT
evt_block_number,
TRY_CAST(evt_block_time AS TIMESTAMP(3) WITH TIME ZONE),
evt_tx_from,
contract_address,
COALESCE(amount0In, 0),
COALESCE(amount1In, 0),
COALESCE(amount0Out, 0),
COALESCE(amount1Out, 0),
sender,
to,
evt_tx_hash,
evt_index
FROM "delta_prod"."treasure_magicswap_arbitrum"."magicelmpair_evt_swap"
{% if is_incremental() %}
WHERE {{ incremental_predicate('evt_block_time') }}
{% endif %}
)

SELECT
'arbitrum' AS blockchain,
'treasure_magicswap' AS project,
'1' AS version,
TRY_CAST(DATE_TRUNC('month', se.block_time) AS DATE) AS block_month,
TRY_CAST(DATE_TRUNC('day', se.block_time) AS DATE) AS block_date,
se.block_time,
se.block_number,
CASE WHEN se.amount0_in > 0 THEN se.amount0_in ELSE se.amount1_in END AS token_sold_amount_raw,
CASE WHEN se.amount0_out > 0 THEN se.amount0_out ELSE se.amount1_out END AS token_bought_amount_raw,
CASE WHEN se.amount0_in > 0 THEN pt.token0_address ELSE pt.token1_address END AS token_sold_address,
CASE WHEN se.amount0_out > 0 THEN pt.token0_address ELSE pt.token1_address END AS token_bought_address,
se.maker,
se.to AS taker,
se.pool_address AS project_contract_address,
se.tx_hash,
se.evt_index
FROM swap_events se
JOIN pool_tokens pt ON se.pool_address = pt.pool_address
15 changes: 15 additions & 0 deletions dbt_subprojects/dex/seeds/trades/_schema.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5958,3 +5958,18 @@ seeds:
token_bought_amount_raw: uint256
token_sold_amount_raw: uint256
block_date: timestamp

- name: treasure_magicswap_arbitrum_base_trades_seed
config:
column_types:
blockchain: varchar
project: varchar
version: varchar
tx_hash: varbinary
evt_index: uint256
block_number: uint256
token_bought_address: varbinary
token_sold_address: varbinary
token_bought_amount_raw: uint256
token_sold_amount_raw: uint256
block_date: timestamp
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
blockchain,project,version,block_date,tx_hash,evt_index,token_bought_address,token_sold_address,block_number,token_bought_amount_raw,token_sold_amount_raw
arbitrum,treasure_magicswap,1,2022-09-28 00:00,0x3e74fcb27a0bdc3b134f25ea4ab459361ea18b33e2b17999bff77a6abecd8576,4,0x45d55eadf0ed5495b369e040af0717eafae3b731,0x539bde0d7dbd336b79148aa742883198bbf60342,27081066,12549883085689462278,7519999999999999574
8 changes: 8 additions & 0 deletions sources/_sector/dex/trades/arbitrum/_sources.yml
Original file line number Diff line number Diff line change
Expand Up @@ -198,3 +198,11 @@ sources:
- name: native_arbitrum
tables:
- name: NativeRFQPool_evt_RFQTrade
- name: treasure_magicswap_arbitrum
tables:
- name: magicgflypair_call_token0
- name: magicgflypair_call_token1
- name: magicgflypair_evt_swap
- name: magicelmpair_evt_swap
- name: magicelmpair_call_token1
- name: magicelmpair_call_token0