Skip to content

Commit

Permalink
chore: add new chainswap deployer to spellbook (#6909)
Browse files Browse the repository at this point in the history
* chore: add new chainswap deployer to spellbook

* chore: add new deployer on ethereum

* fix: aggreagte fee deposits by tx

* fix: aggregate fee deposits by tx for all chains

* chore: add new deployer to all chains

* test: change uniqueness test to also include multi-fee trades

* fix: also handle USDT fees

* fix: handle usdt payments

* fix: fallback to native wrapped token if no fee is detected
  • Loading branch information
whalehunting authored Dec 3, 2024
1 parent aafa1e7 commit 70c36a9
Show file tree
Hide file tree
Showing 8 changed files with 84 additions and 29 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
incremental_predicates=[
incremental_predicate('DBT_INTERNAL_DEST.block_time')
],
unique_key=['blockchain', 'tx_hash', 'evt_index'],
unique_key=['blockchain', 'tx_hash', 'evt_index', 'fee_token_address'],
)
}}

Expand All @@ -22,6 +22,7 @@
{% set deployer_5 = '0xb7b953e81612c57256ff0aebd62b6a2f0546f7da' %}
{% set deployer_6 = '0xb252f0ab7bdf1be4d5bbf607eb5c220b2d902a2c' %}
{% set deployer_7 = '0xa24e8cE77D4A7Ce869DA3730e6560BfB66553F94' %}
{% set deployer_8 = '0xc8378819fbB95130c34D62f520167F745B13C305' %}
{% set weth_contract_address = '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1' %}
{% set usdc_contract_address = '0xaf88d065e77c8cC2239327C5EDb3A432268e5831' %}
{% set fee_recipient_1 = '0x415EEc63c95e944D544b3088bc682B759edB8548' %}
Expand All @@ -40,6 +41,7 @@ with
or "from" = {{ deployer_5 }}
or "from" = {{ deployer_6 }}
or "from" = {{ deployer_7 }}
or "from" = {{ deployer_8 }}
)
and block_time >= timestamp '{{project_start_date}}'
),
Expand Down Expand Up @@ -102,7 +104,11 @@ with
(to = {{ fee_recipient_1 }} or to = {{ fee_recipient_2 }})
and block_time >= timestamp '{{project_start_date}}'
and value > 0

),
aggregated_fee_deposits as (
select evt_tx_hash, sum(fee_token_amount) as fee_token_amount, fee_token_address
from fee_deposits
group by evt_tx_hash, fee_token_address
)
select distinct
block_time,
Expand All @@ -122,7 +128,7 @@ select distinct
fee_token_amount / power(10, decimals) * price as fee_usd,
fee_token_amount / power(10, decimals) as fee_token_amount,
symbol as fee_token_symbol,
cast(fee_token_address as varchar) as fee_token_address,
coalesce(fee_token_address, {{weth_contract_address}}) as fee_token_address,
-- Dex
project,
version,
Expand All @@ -137,8 +143,7 @@ from bot_trades
join
highest_event_index_for_each_trade
on bot_trades.tx_hash = highest_event_index_for_each_trade.tx_hash
/* Left Outer Join to support 0 fee trades */
left join fee_deposits on bot_trades.tx_hash = fee_deposits.evt_tx_hash
left join aggregated_fee_deposits as fee_deposits on bot_trades.tx_hash = fee_deposits.evt_tx_hash
left join
{{ source('prices', 'usd') }}
on (
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
incremental_predicates=[
incremental_predicate('DBT_INTERNAL_DEST.block_time')
],
unique_key=['blockchain', 'tx_hash', 'evt_index'],
unique_key=['blockchain', 'tx_hash', 'evt_index', 'fee_token_address'],
)
}}

Expand All @@ -19,6 +19,7 @@
{% set deployer_2 = '0x415EEc63c95e944D544b3088bc682B759edB8548' %}
{% set deployer_3 = '0xc1cc1a300Dcfe5359eBe37f2007A77d1F91533ba' %}
{% set deployer_4 = '0xa24e8cE77D4A7Ce869DA3730e6560BfB66553F94' %}
{% set deployer_5 = '0xc8378819fbB95130c34D62f520167F745B13C305' %}
{% set wavax_contract_address = '0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7' %}
{% set usdc_contract_address = '0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E' %}
{% set fee_recipient_1 = '0x415EEc63c95e944D544b3088bc682B759edB8548' %}
Expand All @@ -34,6 +35,7 @@ with
or "from" = {{ deployer_2 }}
or "from" = {{ deployer_3 }}
or "from" = {{ deployer_4 }}
or "from" = {{ deployer_5 }}
)
and block_time >= timestamp '{{project_start_date}}'
),
Expand Down Expand Up @@ -104,6 +106,11 @@ with
{% else %}
and block_time >= timestamp '{{project_start_date}}'
{% endif %}
),
aggregated_fee_deposits as (
select evt_tx_hash, sum(fee_token_amount) as fee_token_amount, fee_token_address
from fee_deposits
group by evt_tx_hash, fee_token_address
)
select distinct
block_time,
Expand All @@ -123,7 +130,7 @@ select distinct
fee_token_amount / power(10, decimals) * price as fee_usd,
fee_token_amount / power(10, decimals) as fee_token_amount,
symbol as fee_token_symbol,
cast(fee_token_address as varchar) as fee_token_address,
cast(coalesce(fee_token_address, {{wavax_contract_address}}) as varchar) as fee_token_address,
-- Dex
project,
version,
Expand All @@ -138,8 +145,7 @@ from bot_trades
join
highest_event_index_for_each_trade
on bot_trades.tx_hash = highest_event_index_for_each_trade.tx_hash
/* Left Outer Join to support 0 fee trades */
left join fee_deposits on bot_trades.tx_hash = fee_deposits.evt_tx_hash
left join aggregated_fee_deposits as fee_deposits on bot_trades.tx_hash = fee_deposits.evt_tx_hash
left join
{{ source('prices', 'usd') }}
on (
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
incremental_predicates=[
incremental_predicate('DBT_INTERNAL_DEST.block_time')
],
unique_key=['blockchain', 'tx_hash', 'evt_index'],
unique_key=['blockchain', 'tx_hash', 'evt_index', 'fee_token_address'],
)
}}

Expand All @@ -21,6 +21,7 @@
{% set deployer_4 = '0x3A510C5a32bCb381c53704AED9c02b0c70041F7A' %}
{% set deployer_5 = '0xb252f0ab7bdf1be4d5bbf607eb5c220b2d902a2c' %}
{% set deployer_6 = '0xa24e8cE77D4A7Ce869DA3730e6560BfB66553F94' %}
{% set deployer_7 = "0xc8378819fbB95130c34D62f520167F745B13C305" %}
{% set weth_contract_address = '0x4200000000000000000000000000000000000006' %}
{% set usdc_contract_address = '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913' %}
{% set fee_recipient_1 = '0x415EEc63c95e944D544b3088bc682B759edB8548' %}
Expand All @@ -38,6 +39,7 @@ with
or "from" = {{ deployer_4 }}
or "from" = {{ deployer_5 }}
or "from" = {{ deployer_6 }}
or "from" = {{ deployer_7 }}
)
and block_time >= timestamp '{{project_start_date}}'
),
Expand Down Expand Up @@ -108,6 +110,11 @@ with
{% else %}
and block_time >= timestamp '{{project_start_date}}'
{% endif %}
),
aggregated_fee_deposits as (
select evt_tx_hash, sum(fee_token_amount) as fee_token_amount, fee_token_address
from fee_deposits
group by evt_tx_hash, fee_token_address
)
select distinct
block_time,
Expand All @@ -127,7 +134,7 @@ select distinct
fee_token_amount / power(10, decimals) * price as fee_usd,
fee_token_amount / power(10, decimals) as fee_token_amount,
symbol as fee_token_symbol,
cast(fee_token_address as varchar) as fee_token_address,
coalesce(fee_token_address, {{weth_contract_address}}) as fee_token_address,
-- Dex
project,
version,
Expand All @@ -142,8 +149,7 @@ from bot_trades
join
highest_event_index_for_each_trade
on bot_trades.tx_hash = highest_event_index_for_each_trade.tx_hash
/* Left Outer Join to support 0 fee trades */
left join fee_deposits on bot_trades.tx_hash = fee_deposits.evt_tx_hash
left join aggregated_fee_deposits as fee_deposits on bot_trades.tx_hash = fee_deposits.evt_tx_hash
left join
{{ source('prices', 'usd') }}
on (
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
incremental_predicates=[
incremental_predicate('DBT_INTERNAL_DEST.block_time')
],
unique_key=['blockchain', 'tx_hash', 'evt_index'],
unique_key=['blockchain', 'tx_hash', 'evt_index', 'fee_token_address'],
)
}}

Expand All @@ -18,6 +18,7 @@
{% set deployer_1 = '0x1d32cFeFd97de9D740714A31b2E8C7bc34825442' %}
{% set deployer_2 = '0x3A510C5a32bCb381c53704AED9c02b0c70041F7A' %}
{% set deployer_3 = '0xa24e8cE77D4A7Ce869DA3730e6560BfB66553F94' %}
{% set deployer_4 = '0xc8378819fbB95130c34D62f520167F745B13C305' %}
{% set wbnb_contract_address = '0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c' %}
{% set usdc_contract_address = '0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d' %}
{% set fee_recipient_1 = '0x415EEc63c95e944D544b3088bc682B759edB8548' %}
Expand All @@ -32,6 +33,7 @@ with
"from" = {{ deployer_1 }}
or "from" = {{ deployer_2 }}
or "from" = {{ deployer_3 }}
or "from" = {{ deployer_4 }}

)
and block_time >= timestamp '{{project_start_date}}'
Expand Down Expand Up @@ -103,6 +105,11 @@ with
{% else %}
and block_time >= timestamp '{{project_start_date}}'
{% endif %}
),
aggregated_fee_deposits as (
select evt_tx_hash, sum(fee_token_amount) as fee_token_amount, fee_token_address
from fee_deposits
group by evt_tx_hash, fee_token_address
)
select distinct
block_time,
Expand All @@ -122,7 +129,7 @@ select distinct
fee_token_amount / power(10, decimals) * price as fee_usd,
fee_token_amount / power(10, decimals) as fee_token_amount,
symbol as fee_token_symbol,
cast(fee_token_address as varchar) as fee_token_address,
coalesce(fee_token_address, {{wbnb_contract_address}}) as fee_token_address,
-- Dex
project,
version,
Expand All @@ -138,7 +145,7 @@ join
highest_event_index_for_each_trade
on bot_trades.tx_hash = highest_event_index_for_each_trade.tx_hash
/* Left Outer Join to support 0 fee trades */
left join fee_deposits on bot_trades.tx_hash = fee_deposits.evt_tx_hash
left join aggregated_fee_deposits as fee_deposits on bot_trades.tx_hash = fee_deposits.evt_tx_hash
left join
{{ source('prices', 'usd') }}
on (
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,7 @@ models:
- blockchain
- tx_hash
- evt_index
- fee_token_address
columns:
- *blockchain
- *block_time
Expand Down Expand Up @@ -142,6 +143,7 @@ models:
- blockchain
- tx_hash
- evt_index
- fee_token_address
columns:
- *blockchain
- *block_time
Expand Down Expand Up @@ -184,6 +186,7 @@ models:
- blockchain
- tx_hash
- evt_index
- fee_token_address
columns:
- *blockchain
- *block_time
Expand Down Expand Up @@ -226,6 +229,7 @@ models:
- blockchain
- tx_hash
- evt_index
- fee_token_address
columns:
- *blockchain
- *block_time
Expand Down Expand Up @@ -268,6 +272,7 @@ models:
- blockchain
- tx_hash
- evt_index
- fee_token_address
columns:
- *blockchain
- *block_time
Expand Down Expand Up @@ -310,6 +315,7 @@ models:
- blockchain
- tx_hash
- evt_index
- fee_token_address
columns:
- *blockchain
- *block_time
Expand Down Expand Up @@ -352,6 +358,7 @@ models:
- blockchain
- tx_hash
- evt_index
- fee_token_address

columns:
- *blockchain
Expand All @@ -377,4 +384,4 @@ models:
- *user
- *tx_hash
- *evt_index
- *is_last_trade_in_transaction
- *is_last_trade_in_transaction
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
incremental_predicates=[
incremental_predicate("DBT_INTERNAL_DEST.block_time")
],
unique_key=["blockchain", "tx_hash", "evt_index"],
unique_key=['blockchain', 'tx_hash', 'evt_index', 'fee_token_address'],
)
}}

Expand All @@ -20,8 +20,11 @@
{% set deployer_3 = "0xc1cc1a300Dcfe5359eBe37f2007A77d1F91533ba" %}
{% set deployer_4 = "0x3A510C5a32bCb381c53704AED9c02b0c70041F7A" %}
{% set deployer_5 = "0xa24e8cE77D4A7Ce869DA3730e6560BfB66553F94" %}
{% set deployer_6 = "0x686c0072dF3Df7A13ef666a3b661803a48558A90" %}
{% set deployer_7 = "0xc8378819fbB95130c34D62f520167F745B13C305" %}
{% set weth_contract_address = "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2" %}
{% set usdc_contract_address = "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48" %}
{% set usdt_contract_address = "0xdac17f958d2ee523a2206206994597c13d831ec7" %}
{% set fee_recipient_1 = "0x415EEc63c95e944D544b3088bc682B759edB8548" %}
{% set fee_recipient_2 = "0xe1ff5a4c489b11e094bfbb5d23c6d4597a3a79ad" %}

Expand All @@ -36,6 +39,8 @@ with
or "from" = {{ deployer_3 }}
or "from" = {{ deployer_4 }}
or "from" = {{ deployer_5 }}
or "from" = {{ deployer_6 }}
or "from" = {{ deployer_7 }}
)
and block_time >= timestamp '{{project_start_date}}'
),
Expand Down Expand Up @@ -86,6 +91,7 @@ with
and (
contract_address = {{ weth_contract_address }}
or contract_address = {{ usdc_contract_address }}
or contract_address = {{ usdt_contract_address }}
)
{% if is_incremental() %}
and {{ incremental_predicate('evt_block_time') }}
Expand All @@ -106,6 +112,11 @@ with
{% else %}
and block_time >= timestamp '{{project_start_date}}'
{% endif %}
),
aggregated_fee_deposits as (
select evt_tx_hash, sum(fee_token_amount) as fee_token_amount, fee_token_address
from fee_deposits
group by evt_tx_hash, fee_token_address
)
select distinct
block_time,
Expand All @@ -125,7 +136,7 @@ select distinct
fee_token_amount / power(10, decimals) * price as fee_usd,
fee_token_amount / power(10, decimals) as fee_token_amount,
symbol as fee_token_symbol,
cast(fee_token_address as varchar) as fee_token_address,
coalesce(fee_token_address, {{weth_contract_address}}) as fee_token_address,
-- Dex
project,
version,
Expand All @@ -140,8 +151,7 @@ from bot_trades
join
highest_event_index_for_each_trade
on bot_trades.tx_hash = highest_event_index_for_each_trade.tx_hash
/* Left Outer Join to support 0 fee trades */
left join fee_deposits on bot_trades.tx_hash = fee_deposits.evt_tx_hash
left join aggregated_fee_deposits as fee_deposits on bot_trades.tx_hash = fee_deposits.evt_tx_hash
left join
{{ source("prices", "usd") }}
on (
Expand Down
Loading

0 comments on commit 70c36a9

Please sign in to comment.