From 6def7d7e46dc77797e60a9476ad9460360de7367 Mon Sep 17 00:00:00 2001 From: alexshchur Date: Fri, 2 May 2025 15:21:57 +0300 Subject: [PATCH 01/60] feat: draft: start adjusting delta v2 master template for dex integration --- .../_project/paraswap/delta/v2/master.sql | 51 +++++++++++++++---- 1 file changed, 41 insertions(+), 10 deletions(-) diff --git a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/master.sql b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/master.sql index dfe25019bf8..1d9a3ca3338 100644 --- a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/master.sql +++ b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/master.sql @@ -1,14 +1,45 @@ {% macro delta_v2_master(blockchain) %} with {{ delta_v2_swap_settle(blockchain) }}, - {{ delta_v2_swap_settle_batch(blockchain) }} -select - date_trunc('month', call_block_time) AS block_month, - * -from delta_v2_swapSettle - union all -select - date_trunc('month', call_block_time) AS block_month, - * -from delta_v2_swapSettleBatch + {{ delta_v2_swap_settle_batch(blockchain) }}, + delta_v2_master as ( + select + date_trunc('month', call_block_time) AS block_month, + * + from delta_v2_swapSettle + union all + select + date_trunc('month', call_block_time) AS block_month, + * + from delta_v2_swapSettleBatch + ) + select + +-- SELECT + blockchain, + 'velora_delta' as project, + 'v2' as version, + block_month, + block_date, + block_time, + token_bought_symbol, + token_sold_symbol, + token_pair, + token_bought_amount, + token_sold_amount, + token_bought_amount_raw, + token_sold_amount_raw, + amount_usd, + token_bought_address, + token_sold_address, + taker, + maker, + project_contract_address, + tx_hash, + tx_from, + tx_to, + trace_address, + evt_index +-- FROM {{ dex_model }} + from delta_v2_master {% endmacro %} \ No newline at end of file From cf91b6413dfef3d8f3aa7c6a75186a2ad092804d Mon Sep 17 00:00:00 2001 From: alexshchur Date: Fri, 2 May 2025 15:29:38 +0300 Subject: [PATCH 02/60] feat: draft: add couple timestamp columns --- .../dex/macros/models/_project/paraswap/delta/v2/master.sql | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/master.sql b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/master.sql index 1d9a3ca3338..4ea2ea276e5 100644 --- a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/master.sql +++ b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/master.sql @@ -20,10 +20,8 @@ with 'velora_delta' as project, 'v2' as version, block_month, - block_date, - block_time, - token_bought_symbol, - token_sold_symbol, + DATE_TRUNC('day', call_block_time) as block_date, + call_block_time as block_time, token_pair, token_bought_amount, token_sold_amount, From 6587c0e581040f8f96b818a999df469d9566fbc4 Mon Sep 17 00:00:00 2001 From: alexshchur Date: Mon, 5 May 2025 07:36:41 +0300 Subject: [PATCH 03/60] feat: delta v2 - more columns to conform DEX trades shape --- .../_project/paraswap/delta/v2/master.sql | 53 ++++++++++++------- 1 file changed, 34 insertions(+), 19 deletions(-) diff --git a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/master.sql b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/master.sql index 4ea2ea276e5..7db0dcdd417 100644 --- a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/master.sql +++ b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/master.sql @@ -16,28 +16,43 @@ with select -- SELECT - blockchain, + delta_v2_master.blockchain, 'velora_delta' as project, 'v2' as version, block_month, DATE_TRUNC('day', call_block_time) as block_date, - call_block_time as block_time, - token_pair, - token_bought_amount, - token_sold_amount, - token_bought_amount_raw, - token_sold_amount_raw, - amount_usd, - token_bought_address, - token_sold_address, - taker, - maker, - project_contract_address, - tx_hash, - tx_from, - tx_to, - trace_address, - evt_index + call_block_time as block_time, + CASE + WHEN lower(t_dest_token.symbol) > lower(t_src_token.symbol) + THEN concat(t_src_token.symbol, '-', t_dest_token.symbol) + ELSE concat(t_dest_token.symbol, '-', t_src_token.symbol) + END as token_pair + -- token_bought_amount, + -- token_sold_amount, + -- token_bought_amount_raw, + -- token_sold_amount_raw, + -- amount_usd, + -- token_bought_address, + -- token_sold_address, + -- taker, + -- maker, + -- project_contract_address, + -- tx_hash, + -- tx_from, + -- tx_to, + -- trace_address, + -- evt_index -- FROM {{ dex_model }} - from delta_v2_master + from delta_v2_master + LEFT JOIN + {{ source('tokens', 'erc20') }} t_src_token + ON t_src_token.blockchain = '{{blockchain}}' + AND t_src_token.contract_address = src_token + LEFT JOIN + {{ source('tokens', 'erc20') }} t_dest_token + ON t_dest_token.blockchain = '{{blockchain}}' + AND t_dest_token.contract_address = dest_token + + order by block_time desc + limit 1 {% endmacro %} \ No newline at end of file From c14db1d9097a54fbf483adc621a24cd486656b0e Mon Sep 17 00:00:00 2001 From: alexshchur Date: Mon, 5 May 2025 07:56:39 +0300 Subject: [PATCH 04/60] feat: delta: add token_bought_amount, token_sold_amount --- .../dex/macros/models/_project/paraswap/delta/v2/master.sql | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/master.sql b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/master.sql index 7db0dcdd417..8a5d3ce1749 100644 --- a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/master.sql +++ b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/master.sql @@ -26,9 +26,9 @@ with WHEN lower(t_dest_token.symbol) > lower(t_src_token.symbol) THEN concat(t_src_token.symbol, '-', t_dest_token.symbol) ELSE concat(t_dest_token.symbol, '-', t_src_token.symbol) - END as token_pair - -- token_bought_amount, - -- token_sold_amount, + END as token_pair, + dest_amount / power(10, t_dest_token.decimals) as token_bought_amount, + src_amount / power(10, t_src_token.decimals) as token_sold_amount -- token_bought_amount_raw, -- token_sold_amount_raw, -- amount_usd, From 9956fa46d5108be02133c1da0fb2fa092491e748 Mon Sep 17 00:00:00 2001 From: alexshchur Date: Mon, 5 May 2025 08:01:07 +0300 Subject: [PATCH 05/60] feat: delta: more columns: token_bought_amount_raw, token_sold_amount_raw, amount_usd, token_bought_address, token_sold_address --- .../models/_project/paraswap/delta/v2/master.sql | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/master.sql b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/master.sql index 8a5d3ce1749..ac9b44c9b6d 100644 --- a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/master.sql +++ b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/master.sql @@ -7,11 +7,13 @@ with date_trunc('month', call_block_time) AS block_month, * from delta_v2_swapSettle + limit 1 union all select date_trunc('month', call_block_time) AS block_month, * from delta_v2_swapSettleBatch + limit 1 ) select @@ -28,12 +30,12 @@ with ELSE concat(t_dest_token.symbol, '-', t_src_token.symbol) END as token_pair, dest_amount / power(10, t_dest_token.decimals) as token_bought_amount, - src_amount / power(10, t_src_token.decimals) as token_sold_amount - -- token_bought_amount_raw, - -- token_sold_amount_raw, - -- amount_usd, - -- token_bought_address, - -- token_sold_address, + src_amount / power(10, t_src_token.decimals) as token_sold_amount, + dest_amount as token_bought_amount_raw, + src_amount as token_sold_amount_raw, + COALESCE(dest_token_order_usd, src_token_order_usd) as amount_usd, + dest_token as token_bought_address, + src_token as token_sold_address -- taker, -- maker, -- project_contract_address, From bcffd794509b24a050f08c3c4fefa0066d60f849 Mon Sep 17 00:00:00 2001 From: alexshchur Date: Mon, 5 May 2025 08:27:42 +0300 Subject: [PATCH 06/60] feat: delta: add more columns: taker, maker, project_contract_address, tx_hash, tx_from --- .../_project/paraswap/delta/v2/master.sql | 17 +++++++++-------- .../paraswap/delta/v2/methods/swap_settle.sql | 6 +++++- .../delta/v2/methods/swap_settle_batch.sql | 6 ++++-- 3 files changed, 18 insertions(+), 11 deletions(-) diff --git a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/master.sql b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/master.sql index ac9b44c9b6d..0df9c5d12f1 100644 --- a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/master.sql +++ b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/master.sql @@ -3,11 +3,11 @@ with {{ delta_v2_swap_settle(blockchain) }}, {{ delta_v2_swap_settle_batch(blockchain) }}, delta_v2_master as ( - select + (select date_trunc('month', call_block_time) AS block_month, * from delta_v2_swapSettle - limit 1 + limit 1) union all select date_trunc('month', call_block_time) AS block_month, @@ -35,12 +35,13 @@ with src_amount as token_sold_amount_raw, COALESCE(dest_token_order_usd, src_token_order_usd) as amount_usd, dest_token as token_bought_address, - src_token as token_sold_address - -- taker, - -- maker, - -- project_contract_address, - -- tx_hash, - -- tx_from, + src_token as token_sold_address, + owner as taker, + CAST(NULL AS VARBINARY) AS maker, -- TODO: consider `executor as maker`, + delta_v2_master.contract_address as project_contract_address, + call_tx_hash as tx_hash, + call_tx_from as tx_from, + call_tx_to as tx_to -- tx_to, -- trace_address, -- evt_index diff --git a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle.sql b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle.sql index 907f15eba6f..e19210dfa36 100644 --- a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle.sql +++ b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle.sql @@ -5,7 +5,9 @@ v2_swap_settle_withParsedOrderData AS ( call_trace_address, call_block_time, call_block_number, - call_tx_hash, + call_tx_hash, + call_tx_from, + call_tx_to, orderWithSig, executor, executorData, @@ -89,6 +91,8 @@ SELECT call_block_number, call_block_time, call_tx_hash, + call_tx_from, + call_tx_to, executorFeeAmount as fee_amount, -- orderWithSig as order_with_sig, executor, diff --git a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle_batch.sql b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle_batch.sql index fc1e149555b..5145a2327a0 100644 --- a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle_batch.sql +++ b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle_batch.sql @@ -9,8 +9,8 @@ delta_v2_swap_settle_batch_ExpandedOrders as ( contract_address, -- varbinary -- call_success, -- boolean call_tx_hash, -- varbinary - -- call_tx_from, -- varbinary - -- call_tx_to, -- varbinary + call_tx_from, -- varbinary + call_tx_to, -- varbinary call_trace_address, -- array(bigint) call_block_time, -- timestamp call_block_number, -- bigint @@ -149,6 +149,8 @@ SELECT call_block_number, call_block_time, call_tx_hash, + call_tx_from, + call_tx_to, executorFeeAmount as fee_amount, -- orderWithSig as order_with_sig, executor, From cf67b16048fac395e99329aab254d5cb62ec8290 Mon Sep 17 00:00:00 2001 From: alexshchur Date: Mon, 5 May 2025 08:53:54 +0300 Subject: [PATCH 07/60] fix: delta unique key --- .../macros/models/_project/paraswap/delta/v2/master.sql | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/master.sql b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/master.sql index 0df9c5d12f1..f57c0cc5287 100644 --- a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/master.sql +++ b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/master.sql @@ -41,10 +41,10 @@ with delta_v2_master.contract_address as project_contract_address, call_tx_hash as tx_hash, call_tx_from as tx_from, - call_tx_to as tx_to - -- tx_to, - -- trace_address, - -- evt_index + call_tx_to as tx_to, + call_trace_address as trace_address, -- TODO: add order_index? is the intent to constitute a key? + NULL as evt_index, -- TODO: add where applicable + order_index -- FROM {{ dex_model }} from delta_v2_master LEFT JOIN From bd3eb81fd4f52a77e37b41a4fa6fc79a68a19728 Mon Sep 17 00:00:00 2001 From: alexshchur Date: Mon, 5 May 2025 09:05:53 +0300 Subject: [PATCH 08/60] fix: Column type is unknown: evt_index --- .../models/_project/paraswap/delta/v2/methods/swap_settle.sql | 1 + .../_project/paraswap/delta/v2/methods/swap_settle_batch.sql | 2 ++ 2 files changed, 3 insertions(+) diff --git a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle.sql b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle.sql index e19210dfa36..4dc2c867ff3 100644 --- a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle.sql +++ b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle.sql @@ -93,6 +93,7 @@ SELECT call_tx_hash, call_tx_from, call_tx_to, + NULL as evt_index, -- TODO executorFeeAmount as fee_amount, -- orderWithSig as order_with_sig, executor, diff --git a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle_batch.sql b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle_batch.sql index 5145a2327a0..c4367a477a2 100644 --- a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle_batch.sql +++ b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle_batch.sql @@ -75,6 +75,7 @@ from events.returnAmount, events.protocolFee, events.partnerFee, + events.evt_index, orders.* FROM delta_v2_swap_settle_batch_parsed_orders orders --- NB: sourcing from calls and joining events, not the opposite, because some methods emit different events (*fill* -> OrderSettled / OrderPartiallyFilled). Sorting them by evt_index would make them match orders sorted by their index in array + call_trace_address -> source of truth bettr be calls @@ -151,6 +152,7 @@ SELECT call_tx_hash, call_tx_from, call_tx_to, + evt_index, executorFeeAmount as fee_amount, -- orderWithSig as order_with_sig, executor, From 409457f8a49c2b287e5827f5eb61b205588ceb53 Mon Sep 17 00:00:00 2001 From: alexshchur Date: Mon, 5 May 2025 09:17:32 +0300 Subject: [PATCH 09/60] fix: add evt_index to `paraswap_delta_v2_ethereum_trades` --- .../dex/models/_projects/paraswap/ethereum/_schema.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/dbt_subprojects/dex/models/_projects/paraswap/ethereum/_schema.yml b/dbt_subprojects/dex/models/_projects/paraswap/ethereum/_schema.yml index 64d8508d6ce..7b20f43c491 100644 --- a/dbt_subprojects/dex/models/_projects/paraswap/ethereum/_schema.yml +++ b/dbt_subprojects/dex/models/_projects/paraswap/ethereum/_schema.yml @@ -310,6 +310,8 @@ models: columns: - name: method description: "Call Method" + - name: evt_index + description: "Event Index (if applicable)" - name: order_index description: "Index of the Order in Batch (0 if single order swap)" - name: call_trace_address From 155c48d9572889b4d3f94a137e63d6cba3e8a8f7 Mon Sep 17 00:00:00 2001 From: alexshchur Date: Mon, 5 May 2025 09:24:42 +0300 Subject: [PATCH 10/60] fix: tmp: explicitly cast NULL to define evt_index column type --- .../models/_project/paraswap/delta/v2/methods/swap_settle.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle.sql b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle.sql index 4dc2c867ff3..e45085a981f 100644 --- a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle.sql +++ b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle.sql @@ -93,7 +93,7 @@ SELECT call_tx_hash, call_tx_from, call_tx_to, - NULL as evt_index, -- TODO + cast(NULL as bigint) as evt_index, -- TODO executorFeeAmount as fee_amount, -- orderWithSig as order_with_sig, executor, From 453ba07d00ab70ab934275cf889bf3608f2bcca5 Mon Sep 17 00:00:00 2001 From: alexshchur Date: Mon, 5 May 2025 09:31:12 +0300 Subject: [PATCH 11/60] fix: prop drill evt_index instead of override --- .../dex/macros/models/_project/paraswap/delta/v2/master.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/master.sql b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/master.sql index f57c0cc5287..5052c803782 100644 --- a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/master.sql +++ b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/master.sql @@ -43,7 +43,7 @@ with call_tx_from as tx_from, call_tx_to as tx_to, call_trace_address as trace_address, -- TODO: add order_index? is the intent to constitute a key? - NULL as evt_index, -- TODO: add where applicable + evt_index, order_index -- FROM {{ dex_model }} from delta_v2_master From f1674c1cc60427d52370197a2d5925d7586be86a Mon Sep 17 00:00:00 2001 From: alexshchur Date: Mon, 5 May 2025 09:38:46 +0300 Subject: [PATCH 12/60] fix: Column 'method' cannot be resolved --- .../dex/macros/models/_project/paraswap/delta/v2/master.sql | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/master.sql b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/master.sql index 5052c803782..4eb6be5df88 100644 --- a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/master.sql +++ b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/master.sql @@ -44,7 +44,8 @@ with call_tx_to as tx_to, call_trace_address as trace_address, -- TODO: add order_index? is the intent to constitute a key? evt_index, - order_index + order_index, + method -- FROM {{ dex_model }} from delta_v2_master LEFT JOIN From 6807e8c8b340e4c4f90f5b5bbb6b6bb0a4ac57cc Mon Sep 17 00:00:00 2001 From: alexshchur Date: Mon, 5 May 2025 09:59:56 +0300 Subject: [PATCH 13/60] fix: attempt: "Column 'call_tx_hash' cannot be resolved" and more fileds alike --- .../models/_projects/paraswap/ethereum/_schema.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/dbt_subprojects/dex/models/_projects/paraswap/ethereum/_schema.yml b/dbt_subprojects/dex/models/_projects/paraswap/ethereum/_schema.yml index 7b20f43c491..749594f2df6 100644 --- a/dbt_subprojects/dex/models/_projects/paraswap/ethereum/_schema.yml +++ b/dbt_subprojects/dex/models/_projects/paraswap/ethereum/_schema.yml @@ -304,8 +304,8 @@ models: - dbt_utils.unique_combination_of_columns: combination_of_columns: - method - - call_tx_hash - - call_trace_address + - tx_hash + - trace_address - order_index columns: - name: method @@ -314,13 +314,13 @@ models: description: "Event Index (if applicable)" - name: order_index description: "Index of the Order in Batch (0 if single order swap)" - - name: call_trace_address + - name: trace_address description: "Call Trace Address" - - name: call_block_number + - name: block_number description: "Call Block Number" - - name: call_block_time + - name: block_time description: "Call Block Time" - - name: call_tx_hash + - name: tx_hash description: "Call Transaction Hash" - name: fee_amount description: "Fee Amount" From ecdf294eb69aab12b2e6f5a341230196e0598555 Mon Sep 17 00:00:00 2001 From: alexshchur Date: Mon, 5 May 2025 10:08:47 +0300 Subject: [PATCH 14/60] fix: "Column 'call_tx_hash' cannot be resolved" and more fileds alike / in the model paraswap_delta_v2_ethereum_trades --- .../paraswap/ethereum/paraswap_delta_v2_ethereum_trades.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dbt_subprojects/dex/models/_projects/paraswap/ethereum/paraswap_delta_v2_ethereum_trades.sql b/dbt_subprojects/dex/models/_projects/paraswap/ethereum/paraswap_delta_v2_ethereum_trades.sql index 382550918ef..b8c6841e6fe 100644 --- a/dbt_subprojects/dex/models/_projects/paraswap/ethereum/paraswap_delta_v2_ethereum_trades.sql +++ b/dbt_subprojects/dex/models/_projects/paraswap/ethereum/paraswap_delta_v2_ethereum_trades.sql @@ -7,7 +7,7 @@ file_format = 'delta', incremental_strategy = 'merge', incremental_predicates = [incremental_predicate('DBT_INTERNAL_DEST.call_block_time')], - unique_key = ['method', 'call_tx_hash', 'call_trace_address', 'order_index'], + unique_key = ['method', 'tx_hash', 'trace_address', 'order_index'], post_hook='{{ expose_spells(blockchains = \'["ethereum"]\', spell_type = "project", spell_name = "paraswap_delta_v2", From fa62d577be9f5e915ab0c15619116e1e4a7685c6 Mon Sep 17 00:00:00 2001 From: alexshchur Date: Mon, 5 May 2025 10:10:27 +0300 Subject: [PATCH 15/60] fix: fix: "Column 'call_tx_hash' cannot be resolved" / now on Base and Optimism + incremental field --- .../_projects/paraswap/base/paraswap_delta_v2_base_trades.sql | 4 ++-- .../paraswap/ethereum/paraswap_delta_v2_ethereum_trades.sql | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/dbt_subprojects/dex/models/_projects/paraswap/base/paraswap_delta_v2_base_trades.sql b/dbt_subprojects/dex/models/_projects/paraswap/base/paraswap_delta_v2_base_trades.sql index 9f2f6d93e4c..f535f615cef 100644 --- a/dbt_subprojects/dex/models/_projects/paraswap/base/paraswap_delta_v2_base_trades.sql +++ b/dbt_subprojects/dex/models/_projects/paraswap/base/paraswap_delta_v2_base_trades.sql @@ -6,8 +6,8 @@ materialized = 'incremental', file_format = 'delta', incremental_strategy = 'merge', - incremental_predicates = [incremental_predicate('DBT_INTERNAL_DEST.call_block_time')], - unique_key = ['method', 'call_tx_hash', 'call_trace_address', 'order_index'], + incremental_predicates = [incremental_predicate('DBT_INTERNAL_DEST.block_time')], + unique_key = ['method', 'tx_hash', 'trace_address', 'order_index'], post_hook='{{ expose_spells(blockchains = \'["base"]\', spell_type = "project", spell_name = "paraswap_delta_v2", diff --git a/dbt_subprojects/dex/models/_projects/paraswap/ethereum/paraswap_delta_v2_ethereum_trades.sql b/dbt_subprojects/dex/models/_projects/paraswap/ethereum/paraswap_delta_v2_ethereum_trades.sql index b8c6841e6fe..87f0bf72fdc 100644 --- a/dbt_subprojects/dex/models/_projects/paraswap/ethereum/paraswap_delta_v2_ethereum_trades.sql +++ b/dbt_subprojects/dex/models/_projects/paraswap/ethereum/paraswap_delta_v2_ethereum_trades.sql @@ -6,7 +6,7 @@ materialized = 'incremental', file_format = 'delta', incremental_strategy = 'merge', - incremental_predicates = [incremental_predicate('DBT_INTERNAL_DEST.call_block_time')], + incremental_predicates = [incremental_predicate('DBT_INTERNAL_DEST.block_time')], unique_key = ['method', 'tx_hash', 'trace_address', 'order_index'], post_hook='{{ expose_spells(blockchains = \'["ethereum"]\', spell_type = "project", From de596c1fff9245bc39dbf6f29e1b0b3445bfc9af Mon Sep 17 00:00:00 2001 From: alexshchur Date: Mon, 5 May 2025 10:17:49 +0300 Subject: [PATCH 16/60] fix: delta v2: base schema (Column 'call_tx_hash' cannot be resolved) --- .../dex/models/_projects/paraswap/base/_schema.yml | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/dbt_subprojects/dex/models/_projects/paraswap/base/_schema.yml b/dbt_subprojects/dex/models/_projects/paraswap/base/_schema.yml index 45ad121e125..763dfdd9f72 100644 --- a/dbt_subprojects/dex/models/_projects/paraswap/base/_schema.yml +++ b/dbt_subprojects/dex/models/_projects/paraswap/base/_schema.yml @@ -252,21 +252,23 @@ models: - dbt_utils.unique_combination_of_columns: combination_of_columns: - method - - call_tx_hash - - call_trace_address + - tx_hash + - trace_address - order_index columns: - name: method description: "Call Method" + - name: evt_index + description: "Event Index (if applicable)" - name: order_index description: "Index of the Order in Batch (0 if single order swap)" - - name: call_trace_address + - name: trace_address description: "Call Trace Address" - - name: call_block_number + - name: block_number description: "Call Block Number" - - name: call_block_time + - name: block_time description: "Call Block Time" - - name: call_tx_hash + - name: tx_hash description: "Call Transaction Hash" - name: fee_amount description: "Fee Amount" From 0779aa37281b16637267da461c8fbfc6d2d3605b Mon Sep 17 00:00:00 2001 From: alexshchur Date: Mon, 5 May 2025 10:23:21 +0300 Subject: [PATCH 17/60] feat: delta v2: connect to ethereum paraswap's dex trades --- .../_projects/paraswap/ethereum/paraswap_ethereum_trades.sql | 1 + 1 file changed, 1 insertion(+) diff --git a/dbt_subprojects/dex/models/_projects/paraswap/ethereum/paraswap_ethereum_trades.sql b/dbt_subprojects/dex/models/_projects/paraswap/ethereum/paraswap_ethereum_trades.sql index 916ebcf88cc..5b014db8c76 100644 --- a/dbt_subprojects/dex/models/_projects/paraswap/ethereum/paraswap_ethereum_trades.sql +++ b/dbt_subprojects/dex/models/_projects/paraswap/ethereum/paraswap_ethereum_trades.sql @@ -9,6 +9,7 @@ ref('paraswap_v4_ethereum_trades') ,ref('paraswap_v5_ethereum_trades') ,ref('paraswap_v6_ethereum_trades') + ,ref('paraswap_delta_v2_ethereum_trades') ] %} From 0dbb48ce67933985847b732097e3a24164227f5c Mon Sep 17 00:00:00 2001 From: alexshchur Date: Mon, 5 May 2025 11:07:34 +0300 Subject: [PATCH 18/60] fix: Column 'token_bought_symbol' cannot be resolved, by adding token_bought_symbol, token_sold_symbol --- .../dex/macros/models/_project/paraswap/delta/v2/master.sql | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/master.sql b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/master.sql index 4eb6be5df88..64b39ee1c6f 100644 --- a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/master.sql +++ b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/master.sql @@ -23,7 +23,9 @@ with 'v2' as version, block_month, DATE_TRUNC('day', call_block_time) as block_date, - call_block_time as block_time, + call_block_time as block_time, + t_dest_token.symbol as token_bought_symbol, + t_src_token.symbol as token_sold_symbol, CASE WHEN lower(t_dest_token.symbol) > lower(t_src_token.symbol) THEN concat(t_src_token.symbol, '-', t_dest_token.symbol) From 662fa5ff8d71889d3839447732866f98f8327eae Mon Sep 17 00:00:00 2001 From: alexshchur Date: Mon, 5 May 2025 11:27:04 +0300 Subject: [PATCH 19/60] feat: add delta v2 to Base --- .../dex/models/_projects/paraswap/base/paraswap_base_trades.sql | 1 + 1 file changed, 1 insertion(+) diff --git a/dbt_subprojects/dex/models/_projects/paraswap/base/paraswap_base_trades.sql b/dbt_subprojects/dex/models/_projects/paraswap/base/paraswap_base_trades.sql index 2fcca862908..e7822f7b300 100644 --- a/dbt_subprojects/dex/models/_projects/paraswap/base/paraswap_base_trades.sql +++ b/dbt_subprojects/dex/models/_projects/paraswap/base/paraswap_base_trades.sql @@ -8,6 +8,7 @@ {% set paraswap_models = [ ref('paraswap_v5_base_trades') ,ref('paraswap_v6_base_trades') +,ref('paraswap_delta_v2_base_trades') ] %} From 394fe84bd075a39787b6cade399b6ee35af061aa Mon Sep 17 00:00:00 2001 From: alexshchur Date: Mon, 5 May 2025 11:29:05 +0300 Subject: [PATCH 20/60] undraft: remove dev code and better formatting --- .../_project/paraswap/delta/v2/master.sql | 25 +++++++++---------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/master.sql b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/master.sql index 64b39ee1c6f..d8c8bbd4597 100644 --- a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/master.sql +++ b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/master.sql @@ -3,17 +3,19 @@ with {{ delta_v2_swap_settle(blockchain) }}, {{ delta_v2_swap_settle_batch(blockchain) }}, delta_v2_master as ( - (select - date_trunc('month', call_block_time) AS block_month, - * - from delta_v2_swapSettle - limit 1) + ( + select + date_trunc('month', call_block_time) AS block_month, + * + from delta_v2_swapSettle + ) union all - select - date_trunc('month', call_block_time) AS block_month, - * - from delta_v2_swapSettleBatch - limit 1 + ( + select + date_trunc('month', call_block_time) AS block_month, + * + from delta_v2_swapSettleBatch + ) ) select @@ -58,7 +60,4 @@ with {{ source('tokens', 'erc20') }} t_dest_token ON t_dest_token.blockchain = '{{blockchain}}' AND t_dest_token.contract_address = dest_token - - order by block_time desc - limit 1 {% endmacro %} \ No newline at end of file From 2bc62c0071a2ae4ac2098477fe2b30a225682c64 Mon Sep 17 00:00:00 2001 From: alexshchur Date: Mon, 5 May 2025 11:29:52 +0300 Subject: [PATCH 21/60] chore: cleanup --- .../dex/macros/models/_project/paraswap/delta/v2/master.sql | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/master.sql b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/master.sql index d8c8bbd4597..094ded65564 100644 --- a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/master.sql +++ b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/master.sql @@ -18,8 +18,6 @@ with ) ) select - --- SELECT delta_v2_master.blockchain, 'velora_delta' as project, 'v2' as version, @@ -46,11 +44,10 @@ with call_tx_hash as tx_hash, call_tx_from as tx_from, call_tx_to as tx_to, - call_trace_address as trace_address, -- TODO: add order_index? is the intent to constitute a key? + call_trace_address as trace_address, evt_index, order_index, method --- FROM {{ dex_model }} from delta_v2_master LEFT JOIN {{ source('tokens', 'erc20') }} t_src_token From a38d2a8e35bb7d6a553996546eacb1b31a8f832a Mon Sep 17 00:00:00 2001 From: alexshchur Date: Tue, 6 May 2025 08:15:26 +0300 Subject: [PATCH 22/60] feat: delta v2 on optimism --- .../_projects/paraswap/optimism/_schema.yml | 59 +++++++++++++++++++ .../paraswap_delta_v2_optimism_trades.sql | 18 ++++++ .../optimism/paraswap_optimism_sources.yml | 8 +++ 3 files changed, 85 insertions(+) create mode 100644 dbt_subprojects/dex/models/_projects/paraswap/optimism/paraswap_delta_v2_optimism_trades.sql diff --git a/dbt_subprojects/dex/models/_projects/paraswap/optimism/_schema.yml b/dbt_subprojects/dex/models/_projects/paraswap/optimism/_schema.yml index 911c37db218..0271b066dce 100644 --- a/dbt_subprojects/dex/models/_projects/paraswap/optimism/_schema.yml +++ b/dbt_subprojects/dex/models/_projects/paraswap/optimism/_schema.yml @@ -245,3 +245,62 @@ models: - name: isTakeSurplus description: "Is take surplus" + + - name: paraswap_delta_v2_optimism_trades + description: "Paraswap Delta V2 trades" + data_tests: + - dbt_utils.unique_combination_of_columns: + combination_of_columns: + - method + - tx_hash + - trace_address + - order_index + columns: + - name: method + description: "Call Method" + - name: evt_index + description: "Event Index (if applicable)" + - name: order_index + description: "Index of the Order in Batch (0 if single order swap)" + - name: trace_address + description: "Call Trace Address" + - name: block_number + description: "Call Block Number" + - name: block_time + description: "Call Block Time" + - name: tx_hash + description: "Call Transaction Hash" + - name: fee_amount + description: "Fee Amount" + - name: calldata_to_execute + description: "Calldata to Execute" + - name: signature + description: "Signature" + - name: order_owner + description: "Order Owner" + - name: src_token + description: "Source Token" + - name: dest_token + description: "Destination Token" + - name: src_amount + description: "Source Amount" + - name: dest_amount + description: "Destination Amount" + - name: src_token_for_joining + description: "Source Token for Joining" + - name: dest_token_for_joining + description: "Destination Token for Joining" + - name: fee_token + description: "Fee Token" + - name: src_token_price_usd + description: "Source Token Price (USD)" + - name: dest_token_price_usd + description: "Destination Token Price (USD)" + - name: gas_fee_usd + description: "Gas Fee (USD)" + - name: src_token_order_usd + description: "Source Token Order Value (USD)" + - name: dest_token_order_usd + description: "Destination Token Order Value (USD)" + - name: contract_address + description: "Contract Address" \ No newline at end of file diff --git a/dbt_subprojects/dex/models/_projects/paraswap/optimism/paraswap_delta_v2_optimism_trades.sql b/dbt_subprojects/dex/models/_projects/paraswap/optimism/paraswap_delta_v2_optimism_trades.sql new file mode 100644 index 00000000000..84654baed60 --- /dev/null +++ b/dbt_subprojects/dex/models/_projects/paraswap/optimism/paraswap_delta_v2_optimism_trades.sql @@ -0,0 +1,18 @@ +{{ config( + schema = 'paraswap_delta_v2_optimism', + alias = 'trades', + + partition_by = ['block_month'], + materialized = 'incremental', + file_format = 'delta', + incremental_strategy = 'merge', + incremental_predicates = [incremental_predicate('DBT_INTERNAL_DEST.block_time')], + unique_key = ['method', 'tx_hash', 'trace_address', 'order_index'], + post_hook='{{ expose_spells(blockchains = \'["optimism"]\', + spell_type = "project", + spell_name = "paraswap_delta_v2", + contributors = \'["eptighte"]\') }}' + ) +}} + +{{ delta_v2_master('optimism') }} \ No newline at end of file diff --git a/sources/paraswap/optimism/paraswap_optimism_sources.yml b/sources/paraswap/optimism/paraswap_optimism_sources.yml index 081c92c8745..5498d4b96bf 100644 --- a/sources/paraswap/optimism/paraswap_optimism_sources.yml +++ b/sources/paraswap/optimism/paraswap_optimism_sources.yml @@ -36,3 +36,11 @@ sources: loaded_at_field: call_block_time - name: AugustusV6_2_call_swapExactAmountInOutOnMakerPSM loaded_at_field: call_block_time + + - name: paraswapdelta_optimism + description: > + Delta V2 calls and events tables + tables: + - name: ParaswapDeltav2_call_swapSettle + - name: ParaswapDeltav2_call_swapSettleBatch + - name: ParaswapDeltav2_evt_OrderSettled \ No newline at end of file From e059469840c6f2b45a56c9bf36e9ddf0abfd14c7 Mon Sep 17 00:00:00 2001 From: alexshchur Date: Tue, 6 May 2025 08:29:05 +0300 Subject: [PATCH 23/60] fix: add optimism "to_wrapped_native_token" macro --- dbt_subprojects/dex/macros/to_wrapped_native_token.sql | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/dbt_subprojects/dex/macros/to_wrapped_native_token.sql b/dbt_subprojects/dex/macros/to_wrapped_native_token.sql index 5f63700e15c..9eaa7f1e5de 100644 --- a/dbt_subprojects/dex/macros/to_wrapped_native_token.sql +++ b/dbt_subprojects/dex/macros/to_wrapped_native_token.sql @@ -11,6 +11,11 @@ CASE END AS {{to_column_name}} {% elif blockchain == 'base' %} +CASE + WHEN {{from_column_name}} = 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee THEN 0x4200000000000000000000000000000000000006 + ELSE {{from_column_name}} + END AS {{to_column_name}} +{% elif blockchain == 'optimism' %} CASE WHEN {{from_column_name}} = 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee THEN 0x4200000000000000000000000000000000000006 ELSE {{from_column_name}} From 10ae670622e905641f69da2c268f2a6d25d5a47d Mon Sep 17 00:00:00 2001 From: alexshchur Date: Tue, 6 May 2025 08:53:38 +0300 Subject: [PATCH 24/60] chore; extract `map_internal_to_dex` for reusing for Delta v1 --- .../paraswap/delta/map_internal_to_dex.sql | 42 +++++++++++++++++++ .../_project/paraswap/delta/v2/master.sql | 41 +----------------- 2 files changed, 43 insertions(+), 40 deletions(-) create mode 100644 dbt_subprojects/dex/macros/models/_project/paraswap/delta/map_internal_to_dex.sql diff --git a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/map_internal_to_dex.sql b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/map_internal_to_dex.sql new file mode 100644 index 00000000000..93f20488732 --- /dev/null +++ b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/map_internal_to_dex.sql @@ -0,0 +1,42 @@ +{% macro map_internal_to_dex(blockchain, version, from_alias) %} +select + {{from_alias}}.blockchain, + 'velora_delta' as project, + '{{version}}' as version, + block_month, + DATE_TRUNC('day', call_block_time) as block_date, + call_block_time as block_time, + t_dest_token.symbol as token_bought_symbol, + t_src_token.symbol as token_sold_symbol, + CASE + WHEN lower(t_dest_token.symbol) > lower(t_src_token.symbol) + THEN concat(t_src_token.symbol, '-', t_dest_token.symbol) + ELSE concat(t_dest_token.symbol, '-', t_src_token.symbol) + END as token_pair, + dest_amount / power(10, t_dest_token.decimals) as token_bought_amount, + src_amount / power(10, t_src_token.decimals) as token_sold_amount, + dest_amount as token_bought_amount_raw, + src_amount as token_sold_amount_raw, + COALESCE(dest_token_order_usd, src_token_order_usd) as amount_usd, + dest_token as token_bought_address, + src_token as token_sold_address, + owner as taker, + CAST(NULL AS VARBINARY) AS maker, -- TODO: consider `executor as maker`, + {{from_alias}}.contract_address as project_contract_address, + call_tx_hash as tx_hash, + call_tx_from as tx_from, + call_tx_to as tx_to, + call_trace_address as trace_address, + evt_index, + order_index, + method + from {{from_alias}} + LEFT JOIN + {{ source('tokens', 'erc20') }} t_src_token + ON t_src_token.blockchain = '{{blockchain}}' + AND t_src_token.contract_address = src_token + LEFT JOIN + {{ source('tokens', 'erc20') }} t_dest_token + ON t_dest_token.blockchain = '{{blockchain}}' + AND t_dest_token.contract_address = dest_token +{% endmacro %} \ No newline at end of file diff --git a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/master.sql b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/master.sql index 094ded65564..1910ead9c81 100644 --- a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/master.sql +++ b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/master.sql @@ -17,44 +17,5 @@ with from delta_v2_swapSettleBatch ) ) - select - delta_v2_master.blockchain, - 'velora_delta' as project, - 'v2' as version, - block_month, - DATE_TRUNC('day', call_block_time) as block_date, - call_block_time as block_time, - t_dest_token.symbol as token_bought_symbol, - t_src_token.symbol as token_sold_symbol, - CASE - WHEN lower(t_dest_token.symbol) > lower(t_src_token.symbol) - THEN concat(t_src_token.symbol, '-', t_dest_token.symbol) - ELSE concat(t_dest_token.symbol, '-', t_src_token.symbol) - END as token_pair, - dest_amount / power(10, t_dest_token.decimals) as token_bought_amount, - src_amount / power(10, t_src_token.decimals) as token_sold_amount, - dest_amount as token_bought_amount_raw, - src_amount as token_sold_amount_raw, - COALESCE(dest_token_order_usd, src_token_order_usd) as amount_usd, - dest_token as token_bought_address, - src_token as token_sold_address, - owner as taker, - CAST(NULL AS VARBINARY) AS maker, -- TODO: consider `executor as maker`, - delta_v2_master.contract_address as project_contract_address, - call_tx_hash as tx_hash, - call_tx_from as tx_from, - call_tx_to as tx_to, - call_trace_address as trace_address, - evt_index, - order_index, - method - from delta_v2_master - LEFT JOIN - {{ source('tokens', 'erc20') }} t_src_token - ON t_src_token.blockchain = '{{blockchain}}' - AND t_src_token.contract_address = src_token - LEFT JOIN - {{ source('tokens', 'erc20') }} t_dest_token - ON t_dest_token.blockchain = '{{blockchain}}' - AND t_dest_token.contract_address = dest_token + {{ map_internal_to_dex(blockchain, 'v2', 'delta_v2_master') }} {% endmacro %} \ No newline at end of file From 40d4bb3eb3b8dc9e2c08e7416fdc1dc73f4e6189 Mon Sep 17 00:00:00 2001 From: alexshchur Date: Tue, 6 May 2025 09:13:11 +0300 Subject: [PATCH 25/60] chore: move delta_v1_settleSwap into method-specific macro to uniform with v2 setup --- .../paraswap/delta/v1/settle_swap.sql | 30 +++++++++++++++++++ .../paraswap_delta_v1_ethereum_trades.sql | 30 +------------------ 2 files changed, 31 insertions(+), 29 deletions(-) diff --git a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v1/settle_swap.sql b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v1/settle_swap.sql index 690034ff8c8..682344cad55 100644 --- a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v1/settle_swap.sql +++ b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v1/settle_swap.sql @@ -81,5 +81,35 @@ LEFT JOIN {{ source('prices', 'usd') }} s {% endif %} AND s.contract_address = w.src_token_for_joining AND s.minute = DATE_TRUNC('minute', w.call_block_time) +), delta_v1_settleSwap as ( +select + 'delta_v1_settle_swap_model' as method, + 0 as order_index, + call_trace_address, + call_block_number, + call_block_time, + date_trunc('month', call_block_time) AS block_month, + call_tx_hash, + -- parsed_order_data, + feeAmount as fee_amount, + -- orderWithSig as order_with_sig, + calldataToExecute as calldata_to_execute, + -- "order", + signature, + order_owner, + src_token, + dest_token, + src_amount, + dest_amount, + src_token_for_joining, + dest_token_for_joining, + fee_token, + src_token_price_usd, + dest_token_price_usd, + gas_fee_usd, + src_token_order_usd, + dest_token_order_usd, + contract_address + from delta_v1_settle_swap_model ) {% endmacro %} \ No newline at end of file diff --git a/dbt_subprojects/dex/models/_projects/paraswap/ethereum/paraswap_delta_v1_ethereum_trades.sql b/dbt_subprojects/dex/models/_projects/paraswap/ethereum/paraswap_delta_v1_ethereum_trades.sql index 12041527a7a..be7885d6d2f 100644 --- a/dbt_subprojects/dex/models/_projects/paraswap/ethereum/paraswap_delta_v1_ethereum_trades.sql +++ b/dbt_subprojects/dex/models/_projects/paraswap/ethereum/paraswap_delta_v1_ethereum_trades.sql @@ -22,35 +22,7 @@ with {{ delta_settle_swap('ethereum') }} ,{{ delta_safe_settle_batch_swap('ethereum') }} -select - 'delta_v1_settle_swap_model' as method, - 0 as order_index, - call_trace_address, - call_block_number, - call_block_time, - date_trunc('month', call_block_time) AS block_month, - call_tx_hash, - -- parsed_order_data, - feeAmount as fee_amount, - -- orderWithSig as order_with_sig, - calldataToExecute as calldata_to_execute, - -- "order", - signature, - order_owner, - src_token, - dest_token, - src_amount, - dest_amount, - src_token_for_joining, - dest_token_for_joining, - fee_token, - src_token_price_usd, - dest_token_price_usd, - gas_fee_usd, - src_token_order_usd, - dest_token_order_usd, - contract_address - from delta_v1_settle_swap_model +select * from delta_v1_settleSwap union all select 'delta_v1_safe_settle_batch_swap_model' as method, From 45e09ddab6a741f9b1e8bb33138df3215e2eec6c Mon Sep 17 00:00:00 2001 From: alexshchur Date: Tue, 6 May 2025 09:21:42 +0300 Subject: [PATCH 26/60] chore: now move delta_v1_safeSettleBatch into method-specific macro to uniform v2 setup --- .../delta/v1/safe_settle_batch_swap.sql | 30 +++++++++++++++++++ .../paraswap_delta_v1_ethereum_trades.sql | 30 +------------------ 2 files changed, 31 insertions(+), 29 deletions(-) diff --git a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v1/safe_settle_batch_swap.sql b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v1/safe_settle_batch_swap.sql index dbdec62f9b1..32550ffe8d9 100644 --- a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v1/safe_settle_batch_swap.sql +++ b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v1/safe_settle_batch_swap.sql @@ -84,5 +84,35 @@ LEFT JOIN {{ source('prices', 'usd') }} s AND s.minute = DATE_TRUNC('minute', w.call_block_time) ORDER BY CARDINALITY(w.output_successfulOrders) +), delta_v1_safeSettleBatch as ( + SELECT + 'delta_v1_safe_settle_batch_swap_model' as method, + order_index, + call_trace_address, + call_block_number, + call_block_time, + date_trunc('month', call_block_time) AS block_month, + call_tx_hash, + -- parsed_order_data, + feeAmount as fee_amount, + -- orderWithSig as order_with_sig, + calldataToExecute as calldata_to_execute, + -- "order", + signature, + order_owner, + src_token, + dest_token, + src_amount, + dest_amount, + src_token_for_joining, + dest_token_for_joining, + fee_token, + src_token_price_usd, + dest_token_price_usd, + gas_fee_usd, + src_token_order_usd, + dest_token_order_usd, + contract_address + from delta_v1_safe_settle_batch_swap_model ) {% endmacro %} \ No newline at end of file diff --git a/dbt_subprojects/dex/models/_projects/paraswap/ethereum/paraswap_delta_v1_ethereum_trades.sql b/dbt_subprojects/dex/models/_projects/paraswap/ethereum/paraswap_delta_v1_ethereum_trades.sql index be7885d6d2f..093bbafb779 100644 --- a/dbt_subprojects/dex/models/_projects/paraswap/ethereum/paraswap_delta_v1_ethereum_trades.sql +++ b/dbt_subprojects/dex/models/_projects/paraswap/ethereum/paraswap_delta_v1_ethereum_trades.sql @@ -24,32 +24,4 @@ with ,{{ delta_safe_settle_batch_swap('ethereum') }} select * from delta_v1_settleSwap union all -select - 'delta_v1_safe_settle_batch_swap_model' as method, - order_index, - call_trace_address, - call_block_number, - call_block_time, - date_trunc('month', call_block_time) AS block_month, - call_tx_hash, - -- parsed_order_data, - feeAmount as fee_amount, - -- orderWithSig as order_with_sig, - calldataToExecute as calldata_to_execute, - -- "order", - signature, - order_owner, - src_token, - dest_token, - src_amount, - dest_amount, - src_token_for_joining, - dest_token_for_joining, - fee_token, - src_token_price_usd, - dest_token_price_usd, - gas_fee_usd, - src_token_order_usd, - dest_token_order_usd, - contract_address -from delta_v1_safe_settle_batch_swap_model \ No newline at end of file +select * from delta_v1_safeSettleBatch \ No newline at end of file From 3108012a309081a4df6486712f838ca0f72b9733 Mon Sep 17 00:00:00 2001 From: alexshchur Date: Tue, 6 May 2025 09:27:04 +0300 Subject: [PATCH 27/60] chore: cleanup delta v2 master macro --- .../paraswap/delta/map_internal_to_dex.sql | 2 +- .../models/_project/paraswap/delta/v2/master.sql | 14 ++------------ 2 files changed, 3 insertions(+), 13 deletions(-) diff --git a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/map_internal_to_dex.sql b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/map_internal_to_dex.sql index 93f20488732..5546875ddeb 100644 --- a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/map_internal_to_dex.sql +++ b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/map_internal_to_dex.sql @@ -3,7 +3,7 @@ select {{from_alias}}.blockchain, 'velora_delta' as project, '{{version}}' as version, - block_month, + date_trunc('month', call_block_time) AS block_month, DATE_TRUNC('day', call_block_time) as block_date, call_block_time as block_time, t_dest_token.symbol as token_bought_symbol, diff --git a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/master.sql b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/master.sql index 1910ead9c81..d5d1a8873bd 100644 --- a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/master.sql +++ b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/master.sql @@ -3,19 +3,9 @@ with {{ delta_v2_swap_settle(blockchain) }}, {{ delta_v2_swap_settle_batch(blockchain) }}, delta_v2_master as ( - ( - select - date_trunc('month', call_block_time) AS block_month, - * - from delta_v2_swapSettle - ) + (select * from delta_v2_swapSettle) union all - ( - select - date_trunc('month', call_block_time) AS block_month, - * - from delta_v2_swapSettleBatch - ) + (select * from delta_v2_swapSettleBatch) ) {{ map_internal_to_dex(blockchain, 'v2', 'delta_v2_master') }} {% endmacro %} \ No newline at end of file From 2b373a246f9b76c144b1b38de8ba6468472d0e27 Mon Sep 17 00:00:00 2001 From: alexshchur Date: Tue, 6 May 2025 10:00:09 +0300 Subject: [PATCH 28/60] feat: confirm delta v1 to dex models structure and connect it to paraswap dex models --- .../_project/paraswap/delta/v1/master.sql | 11 +++++++++++ .../delta/v1/safe_settle_batch_swap.sql | 17 +++++++++++------ .../_project/paraswap/delta/v1/settle_swap.sql | 15 ++++++++++----- .../paraswap_delta_v1_ethereum_trades.sql | 7 +------ .../ethereum/paraswap_ethereum_trades.sql | 1 + 5 files changed, 34 insertions(+), 17 deletions(-) create mode 100644 dbt_subprojects/dex/macros/models/_project/paraswap/delta/v1/master.sql diff --git a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v1/master.sql b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v1/master.sql new file mode 100644 index 00000000000..07ccc37fd8d --- /dev/null +++ b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v1/master.sql @@ -0,0 +1,11 @@ +{% macro delta_v1_master(blockchain) %} +with + {{ delta_settle_swap(blockchain) }}, + {{ delta_safe_settle_batch_swap(blockchain) }}, + delta_v1_master as ( + (select * from delta_v1_settleSwap) + union all + (select * from delta_v1_safeSettleBatch) + ) + {{ map_internal_to_dex(blockchain, 'v1', 'delta_v1_master') }} +{% endmacro %} \ No newline at end of file diff --git a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v1/safe_settle_batch_swap.sql b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v1/safe_settle_batch_swap.sql index 32550ffe8d9..e9f2436ba9f 100644 --- a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v1/safe_settle_batch_swap.sql +++ b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v1/safe_settle_batch_swap.sql @@ -4,7 +4,9 @@ safe_settle_batch_swap_ExpandedOrders AS ( call_trace_address, call_block_time, call_block_number, - call_tx_hash, + call_tx_hash, + call_tx_from, -- varbinary + call_tx_to, -- varbinary output_successfulOrders, JSON_EXTRACT(data, '$.ordersData') AS parsed_orders, contract_address @@ -37,11 +39,11 @@ safe_settle_batch_swap_ExpandedOrders AS ( FROM safe_settle_batch_swap_parsedOrdersWithSig ), safe_settle_batch_swap_parsedOrders AS ( SELECT - from_hex(JSON_EXTRACT_SCALAR(JSON_PARSE(TRY_CAST("order" AS VARCHAR)), '$.owner')) AS "order_owner", + from_hex(JSON_EXTRACT_SCALAR(JSON_PARSE(TRY_CAST("order" AS VARCHAR)), '$.owner')) AS "owner", FROM_HEX(JSON_EXTRACT_SCALAR(JSON_PARSE(TRY_CAST("order" AS VARCHAR)), '$.srcToken')) AS "src_token", FROM_HEX(JSON_EXTRACT_SCALAR(JSON_PARSE(TRY_CAST("order" AS VARCHAR)), '$.destToken')) AS "dest_token", - JSON_EXTRACT_SCALAR(JSON_PARSE(TRY_CAST("order" AS VARCHAR)), '$.srcAmount') AS "src_amount", - JSON_EXTRACT_SCALAR(JSON_PARSE(TRY_CAST("order" AS VARCHAR)), '$.destAmount') AS "dest_amount", + cast(JSON_EXTRACT_SCALAR(JSON_PARSE(TRY_CAST("order" AS VARCHAR)), '$.srcAmount') as uint256) AS "src_amount", + cast(JSON_EXTRACT_SCALAR(JSON_PARSE(TRY_CAST("order" AS VARCHAR)), '$.destAmount') as uint256) AS "dest_amount", * FROM safe_settle_batch_swap_unparsedOrders ), safe_settle_batch_swap_wrapped_native AS ( @@ -86,20 +88,23 @@ ORDER BY CARDINALITY(w.output_successfulOrders) ), delta_v1_safeSettleBatch as ( SELECT + '{{blockchain}}' as blockchain, 'delta_v1_safe_settle_batch_swap_model' as method, order_index, call_trace_address, call_block_number, call_block_time, - date_trunc('month', call_block_time) AS block_month, call_tx_hash, + call_tx_from, -- varbinary + call_tx_to, -- varbinary + cast(NULL as bigint) as evt_index, -- no events in delta v1 -- parsed_order_data, feeAmount as fee_amount, -- orderWithSig as order_with_sig, calldataToExecute as calldata_to_execute, -- "order", signature, - order_owner, + owner, src_token, dest_token, src_amount, diff --git a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v1/settle_swap.sql b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v1/settle_swap.sql index 682344cad55..a240e868b9d 100644 --- a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v1/settle_swap.sql +++ b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v1/settle_swap.sql @@ -5,6 +5,8 @@ settle_swap_withParsedOrderData AS ( call_block_time, call_block_number, call_tx_hash, + call_tx_from, -- varbinary + call_tx_to, -- varbinary JSON_EXTRACT(data, '$.orderData') AS parsed_order_data, contract_address FROM {{ source("paraswapdelta_"+ blockchain, "ParaswapDeltav1_call_settleSwap") }} @@ -31,11 +33,11 @@ settle_swap_unparsedOrders AS ( ), settle_swap_parsedOrders AS ( SELECT - from_hex(JSON_EXTRACT_SCALAR(JSON_PARSE(TRY_CAST("order" AS VARCHAR)), '$.owner')) AS "order_owner", + from_hex(JSON_EXTRACT_SCALAR(JSON_PARSE(TRY_CAST("order" AS VARCHAR)), '$.owner')) AS "owner", FROM_HEX(JSON_EXTRACT_SCALAR(JSON_PARSE(TRY_CAST("order" AS VARCHAR)), '$.srcToken')) AS "src_token", FROM_HEX(JSON_EXTRACT_SCALAR(JSON_PARSE(TRY_CAST("order" AS VARCHAR)), '$.destToken')) AS "dest_token", - JSON_EXTRACT_SCALAR(JSON_PARSE(TRY_CAST("order" AS VARCHAR)), '$.srcAmount') AS "src_amount", - JSON_EXTRACT_SCALAR(JSON_PARSE(TRY_CAST("order" AS VARCHAR)), '$.destAmount') AS "dest_amount", + cast(JSON_EXTRACT_SCALAR(JSON_PARSE(TRY_CAST("order" AS VARCHAR)), '$.srcAmount') as uint256) AS "src_amount", + cast(JSON_EXTRACT_SCALAR(JSON_PARSE(TRY_CAST("order" AS VARCHAR)), '$.destAmount') as uint256) AS "dest_amount", JSON_EXTRACT_SCALAR(JSON_PARSE(TRY_CAST("order" AS VARCHAR)), '$.permit') AS "permit", * FROM settle_swap_unparsedOrders @@ -83,20 +85,23 @@ LEFT JOIN {{ source('prices', 'usd') }} s AND s.minute = DATE_TRUNC('minute', w.call_block_time) ), delta_v1_settleSwap as ( select + '{{blockchain}}' as blockchain, 'delta_v1_settle_swap_model' as method, 0 as order_index, call_trace_address, call_block_number, call_block_time, - date_trunc('month', call_block_time) AS block_month, call_tx_hash, + call_tx_from, -- varbinary + call_tx_to, -- varbinary + cast(NULL as bigint) as evt_index, -- no events in delta v1 -- parsed_order_data, feeAmount as fee_amount, -- orderWithSig as order_with_sig, calldataToExecute as calldata_to_execute, -- "order", signature, - order_owner, + owner, src_token, dest_token, src_amount, diff --git a/dbt_subprojects/dex/models/_projects/paraswap/ethereum/paraswap_delta_v1_ethereum_trades.sql b/dbt_subprojects/dex/models/_projects/paraswap/ethereum/paraswap_delta_v1_ethereum_trades.sql index 093bbafb779..5a8f885457f 100644 --- a/dbt_subprojects/dex/models/_projects/paraswap/ethereum/paraswap_delta_v1_ethereum_trades.sql +++ b/dbt_subprojects/dex/models/_projects/paraswap/ethereum/paraswap_delta_v1_ethereum_trades.sql @@ -19,9 +19,4 @@ {% set project_start_date = '2024-05-01' %} -with -{{ delta_settle_swap('ethereum') }} -,{{ delta_safe_settle_batch_swap('ethereum') }} -select * from delta_v1_settleSwap -union all -select * from delta_v1_safeSettleBatch \ No newline at end of file +{{ delta_v1_master('ethereum') }} \ No newline at end of file diff --git a/dbt_subprojects/dex/models/_projects/paraswap/ethereum/paraswap_ethereum_trades.sql b/dbt_subprojects/dex/models/_projects/paraswap/ethereum/paraswap_ethereum_trades.sql index 5b014db8c76..be730bf6ab9 100644 --- a/dbt_subprojects/dex/models/_projects/paraswap/ethereum/paraswap_ethereum_trades.sql +++ b/dbt_subprojects/dex/models/_projects/paraswap/ethereum/paraswap_ethereum_trades.sql @@ -10,6 +10,7 @@ ,ref('paraswap_v5_ethereum_trades') ,ref('paraswap_v6_ethereum_trades') ,ref('paraswap_delta_v2_ethereum_trades') + ,ref('paraswap_delta_v1_ethereum_trades') ] %} From bff64cb4472ad324b14b8c2bb1363431aa2731c6 Mon Sep 17 00:00:00 2001 From: alexshchur Date: Tue, 6 May 2025 10:15:47 +0300 Subject: [PATCH 29/60] fix: delta v1: unique key schema and config --- .../models/_projects/paraswap/ethereum/_schema.yml | 12 ++++++------ .../ethereum/paraswap_delta_v1_ethereum_trades.sql | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/dbt_subprojects/dex/models/_projects/paraswap/ethereum/_schema.yml b/dbt_subprojects/dex/models/_projects/paraswap/ethereum/_schema.yml index 749594f2df6..74f117e1a16 100644 --- a/dbt_subprojects/dex/models/_projects/paraswap/ethereum/_schema.yml +++ b/dbt_subprojects/dex/models/_projects/paraswap/ethereum/_schema.yml @@ -363,21 +363,21 @@ models: - dbt_utils.unique_combination_of_columns: combination_of_columns: - method - - call_tx_hash - - call_trace_address + - tx_hash + - trace_address - order_index columns: - name: method description: "Call Method" - name: order_index description: "Index of the Order in Batch (0 if single order swap)" - - name: call_trace_address + - name: trace_address description: "Call Trace Address" - - name: call_block_number + - name: block_number description: "Call Block Number" - - name: call_block_time + - name: block_time description: "Call Block Time" - - name: call_tx_hash + - name: tx_hash description: "Call Transaction Hash" - name: fee_amount description: "Fee Amount" diff --git a/dbt_subprojects/dex/models/_projects/paraswap/ethereum/paraswap_delta_v1_ethereum_trades.sql b/dbt_subprojects/dex/models/_projects/paraswap/ethereum/paraswap_delta_v1_ethereum_trades.sql index 5a8f885457f..95496c68534 100644 --- a/dbt_subprojects/dex/models/_projects/paraswap/ethereum/paraswap_delta_v1_ethereum_trades.sql +++ b/dbt_subprojects/dex/models/_projects/paraswap/ethereum/paraswap_delta_v1_ethereum_trades.sql @@ -8,8 +8,8 @@ materialized = 'incremental', file_format = 'delta', incremental_strategy = 'merge', - incremental_predicates = [incremental_predicate('DBT_INTERNAL_DEST.call_block_time')], - unique_key = ['method', 'call_tx_hash', 'call_trace_address', 'order_index'], + incremental_predicates = [incremental_predicate('DBT_INTERNAL_DEST.block_time')], + unique_key = ['method', 'tx_hash', 'trace_address', 'order_index'], post_hook='{{ expose_spells(blockchains = \'["ethereum"]\', spell_type = "project", spell_name = "paraswap_delta_v1", From 7e97e69f047f8adc97718daa9651832805fa0df2 Mon Sep 17 00:00:00 2001 From: alexshchur Date: Wed, 7 May 2025 14:05:15 +0300 Subject: [PATCH 30/60] feat: delta v2: add partner address --- .../paraswap/delta/map_internal_to_dex.sql | 10 +++++++++- .../paraswap/delta/v2/methods/swap_settle.sql | 15 +++++++++------ .../delta/v2/methods/swap_settle_batch.sql | 17 +++++++++++------ 3 files changed, 29 insertions(+), 13 deletions(-) diff --git a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/map_internal_to_dex.sql b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/map_internal_to_dex.sql index 5546875ddeb..2019f3c5976 100644 --- a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/map_internal_to_dex.sql +++ b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/map_internal_to_dex.sql @@ -29,7 +29,15 @@ select call_trace_address as trace_address, evt_index, order_index, - method + method, + from_hex(regexp_replace( + try_cast( + TRY_CAST( + BITWISE_RIGHT_SHIFT(partnerAndFee, 96) AS VARBINARY + ) as VARCHAR + ), + '0x(00){12}' + )) AS partnerAddress from {{from_alias}} LEFT JOIN {{ source('tokens', 'erc20') }} t_src_token diff --git a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle.sql b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle.sql index e45085a981f..8043023805a 100644 --- a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle.sql +++ b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle.sql @@ -1,5 +1,7 @@ {% macro delta_v2_swap_settle(blockchain) %} -- since this call always is a whole-order-at-once fulfillment, can source it from method calls and no need to join with events as all data is in the call +-- {% set method_start_date = '2024-10-01' %} +{% set method_start_date = '2025-05-01' %} v2_swap_settle_withParsedOrderData AS ( SELECT call_trace_address, @@ -42,7 +44,7 @@ v2_swap_settle_parsedOrders AS ( cast(JSON_EXTRACT_SCALAR("order", '$.expectedDestAmount') as uint256) as expectedDestAmount, JSON_EXTRACT_SCALAR("order", '$.deadline') as deadline, JSON_EXTRACT_SCALAR("order", '$.nonce') as nonce, - JSON_EXTRACT_SCALAR("order", '$.partnerAndFee') as partnerAndFee, + cast(JSON_EXTRACT_SCALAR("order", '$.partnerAndFee') as uint256) as partnerAndFee, JSON_EXTRACT_SCALAR("order", '$.permit') as permit, {{executor_fee_amount()}}, * @@ -66,16 +68,16 @@ select w.* FROM v2_swap_settle_with_wrapped_native w LEFT JOIN {{ source('prices', 'usd') }} d - ON d.blockchain = '{{blockchain}}' - AND d.minute > TIMESTAMP '2024-06-01' + ON d.minute > TIMESTAMP '{{method_start_date}}' + AND d.blockchain = '{{blockchain}}' {% if is_incremental() %} AND {{ incremental_predicate('d.minute') }} {% endif %} AND d.contract_address = w.dest_token_for_joining AND d.minute = DATE_TRUNC('minute', w.call_block_time) LEFT JOIN {{ source('prices', 'usd') }} s - ON s.blockchain = '{{blockchain}}' - AND s.minute > TIMESTAMP '2024-06-01' + ON s.minute > TIMESTAMP '{{method_start_date}}' + AND s.blockchain = '{{blockchain}}' {% if is_incremental() %} AND {{ incremental_predicate('s.minute') }} {% endif %} @@ -113,7 +115,8 @@ SELECT gas_fee_usd, src_token_order_usd, dest_token_order_usd, - contract_address + contract_address, + partnerAndFee FROM delta_v2_swapSettle_master ) {% endmacro %} \ No newline at end of file diff --git a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle_batch.sql b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle_batch.sql index c4367a477a2..745f1176ce6 100644 --- a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle_batch.sql +++ b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle_batch.sql @@ -1,4 +1,8 @@ {% macro delta_v2_swap_settle_batch(blockchain) %} + +-- {% set method_start_date = '2024-10-01' %} +{% set method_start_date = '2025-05-01' %} + delta_v2_swap_settle_batch_ExpandedOrders as ( select ROW_NUMBER() OVER (ORDER BY call_block_time, call_tx_hash, call_trace_address, order_index) AS rn, @@ -62,7 +66,7 @@ delta_v2_swap_settle_batch_parsed_orders as ( cast(JSON_EXTRACT_SCALAR("order", '$.expectedDestAmount') as uint256) as expectedDestAmount, JSON_EXTRACT_SCALAR("order", '$.deadline') as deadline, JSON_EXTRACT_SCALAR("order", '$.nonce') as nonce, - JSON_EXTRACT_SCALAR("order", '$.partnerAndFee') as partnerAndFee, + cast(JSON_EXTRACT_SCALAR("order", '$.partnerAndFee') as uint256) as partnerAndFee, JSON_EXTRACT_SCALAR("order", '$.permit') as permit, {{executor_fee_amount()}}, * @@ -105,16 +109,16 @@ select from delta_v2_swap_settle_batch_withWrapped w LEFT JOIN {{ source('prices', 'usd') }} d - ON d.blockchain = '{{blockchain}}' - AND d.minute > TIMESTAMP '2024-06-01' + ON d.minute > TIMESTAMP '{{method_start_date}}' + AND d.blockchain = '{{blockchain}}' {% if is_incremental() %} AND {{ incremental_predicate('d.minute') }} {% endif %} AND d.contract_address = w.dest_token_for_joining AND d.minute = DATE_TRUNC('minute', w.call_block_time) LEFT JOIN {{ source('prices', 'usd') }} s - ON s.blockchain = '{{blockchain}}' - AND s.minute > TIMESTAMP '2024-06-01' + ON s.minute > TIMESTAMP '{{method_start_date}}' + AND s.blockchain = '{{blockchain}}' {% if is_incremental() %} AND {{ incremental_predicate('s.minute') }} {% endif %} @@ -172,7 +176,8 @@ SELECT gas_fee_usd, src_token_order_usd, dest_token_order_usd, - contract_address + contract_address, + partnerAndFee FROM delta_v2_swapSettleBatch_master ) {% endmacro %} \ No newline at end of file From 29d6fb0c9708f2d9e84ee2cb19353260cfc0e89d Mon Sep 17 00:00:00 2001 From: alexshchur Date: Fri, 9 May 2025 08:11:55 +0300 Subject: [PATCH 31/60] feat: computed_order_hash to more reliably join calls and events. Only pre-bridge format so far --- .../paraswap/delta/map_internal_to_dex.sql | 3 +- .../paraswap/delta/v2/compute_order_hash.sql | 67 +++++++++++++++++++ .../paraswap/delta/v2/methods/swap_settle.sql | 45 +++++++++++-- .../delta/v2/methods/swap_settle_batch.sql | 24 ++++--- 4 files changed, 124 insertions(+), 15 deletions(-) create mode 100644 dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/compute_order_hash.sql diff --git a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/map_internal_to_dex.sql b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/map_internal_to_dex.sql index 2019f3c5976..b2aad77478c 100644 --- a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/map_internal_to_dex.sql +++ b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/map_internal_to_dex.sql @@ -37,7 +37,8 @@ select ) as VARCHAR ), '0x(00){12}' - )) AS partnerAddress + )) AS partnerAddress, + computed_order_hash from {{from_alias}} LEFT JOIN {{ source('tokens', 'erc20') }} t_src_token diff --git a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/compute_order_hash.sql b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/compute_order_hash.sql new file mode 100644 index 00000000000..261c9f4ea00 --- /dev/null +++ b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/compute_order_hash.sql @@ -0,0 +1,67 @@ +{% macro compute_order_hash(blockchain) %} + +{% set network_to_chain_id = { + 'ethereum': 1, + 'optimism': 10, + 'base': 8453, +} %} + +-- SELECT + keccak( + concat( + X'1901', + + -- domain separator + keccak( + concat( + keccak(to_utf8('EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)')), + keccak(to_utf8('Portikus')), + keccak(to_utf8('2.0.0')), + lpad(cast(cast({{ network_to_chain_id[blockchain]}} AS uint256) AS varbinary), 32, X'00'), + lpad(from_hex('0000000000bbf5c5fd284e657f01bd000933c96d'), 32, X'00') + ) + ), + + -- struct hash + keccak( + concat( + keccak(to_utf8('Order(address owner,address beneficiary,address srcToken,address destToken,uint256 srcAmount,uint256 destAmount,uint256 expectedDestAmount,uint256 deadline,uint256 nonce,uint256 partnerAndFee,bytes permit)')), + -- lpad(from_hex('12924049e2d21664e35387c69429c98e9891a820'), 32, X'00'), -- owner + lpad(owner, 32, X'00'), + -- lpad(from_hex('12924049e2d21664e35387c69429c98e9891a820'), 32, X'00'), -- beneficiary + lpad(beneficiary, 32, X'00'), -- beneficiary + -- lpad(from_hex('04c154b66cb340f3ae24111cc767e0184ed00cc6'), 32, X'00'), -- srcToken + lpad(srcToken, 32, X'00'), -- srcToken + -- lpad(from_hex('eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee'), 32, X'00'), -- destToken + lpad(destToken, 32, X'00'), -- destToken + -- lpad(cast(cast('1202939820354578' AS uint256) AS varbinary), 32, X'00'), -- srcAmount + lpad(cast(srcAmount AS varbinary), 32, X'00'), -- srcAmount + -- lpad(cast(cast('868930905657826' AS uint256) AS varbinary), 32, X'00'), -- destAmount + lpad(cast(destAmount AS varbinary), 32, X'00'), -- destAmount + -- lpad(cast(cast('873297392620931' AS uint256) AS varbinary), 32, X'00'), -- expectedDestAmount + lpad(cast(expectedDestAmount AS varbinary), 32, X'00'), -- expectedDestAmount + -- lpad(cast(cast('1740790593' AS uint256) AS varbinary), 32, X'00'), -- deadline + lpad(cast(deadline AS varbinary), 32, X'00'), -- deadline + -- lpad(cast(cast('1740787014424' AS uint256) AS varbinary), 32, X'00'), -- nonce + lpad(cast(nonce AS varbinary), 32, X'00'), -- nonce + -- lpad(cast(cast('90631063861114836560958097440945986548822432573276877133894239693005947666432' AS uint256) AS varbinary), 32, X'00'), -- partnerAndFee + lpad(cast(partnerAndFee AS varbinary), 32, X'00'), -- partnerAndFee + -- permit: + -- lpad( + -- keccak(from_hex( + -- '00000000000000000000000012924049e2d21664e35387c69429c98e9891a8200000000000000000000000000000000000bbf5c5fd284e657f01bd000933c96d0000000000000000000000000000000000000000000000000004461140adac120000000000000000000000000000000000000000000000000000000067c641b2000000000000000000000000000000000000000000000000000000000000001bae25978476dcaf13eb21c5140c058bc49fd4d087f0f0d23b1ccede8f9288bb33450886d34539305ede3448c44206e89074d91afcdc8e07cabbe23cf45c67dd7c' + -- )), + -- 32, X'00' + -- ) + lpad( + keccak(permit), + 32, X'00' + ) + ) + ) + ) + ) + -- ) AS eip712_final_hash + + +{% endmacro %} \ No newline at end of file diff --git a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle.sql b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle.sql index 8043023805a..700e7425fa8 100644 --- a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle.sql +++ b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle.sql @@ -1,7 +1,32 @@ {% macro delta_v2_swap_settle(blockchain) %} -- since this call always is a whole-order-at-once fulfillment, can source it from method calls and no need to join with events as all data is in the call -- {% set method_start_date = '2024-10-01' %} -{% set method_start_date = '2025-05-01' %} +{% set method_start_date = '2025-05-07' %} + +-- order_hash_computed + + + +-- ParaswapDeltav2_evt_OrderSettled +-- contract_address varbinary +-- evt_tx_hash varbinary +-- evt_tx_from varbinary +-- evt_tx_to varbinary +-- evt_index bigint +-- evt_block_time timestamp +-- evt_block_number bigint +-- owner varbinary +-- beneficiary varbinary +-- orderHash varbinary +-- srcToken varbinary +-- destToken varbinary +-- srcAmount uint256 +-- destAmount uint256 +-- returnAmount uint256 -- TODO: add this field to the model +-- protocolFee uint256 -- TODO: add this field to the model +-- partnerFee uint256 -- TODO: add this field to the model + + v2_swap_settle_withParsedOrderData AS ( SELECT call_trace_address, @@ -15,7 +40,8 @@ v2_swap_settle_withParsedOrderData AS ( executorData, contract_address FROM {{ source("paraswapdelta_"+ blockchain, "ParaswapDeltav2_call_swapSettle") }} - where call_success = true + WHERE call_block_time > TIMESTAMP '{{method_start_date}}' + AND call_success = true {% if is_incremental() %} AND {{ incremental_predicate('call_block_time') }} {% endif %} @@ -45,7 +71,7 @@ v2_swap_settle_parsedOrders AS ( JSON_EXTRACT_SCALAR("order", '$.deadline') as deadline, JSON_EXTRACT_SCALAR("order", '$.nonce') as nonce, cast(JSON_EXTRACT_SCALAR("order", '$.partnerAndFee') as uint256) as partnerAndFee, - JSON_EXTRACT_SCALAR("order", '$.permit') as permit, + cast(JSON_EXTRACT_SCALAR("order", '$.permit') as varbinary) as permit, {{executor_fee_amount()}}, * FROM v2_swap_settle_unparsedOrders @@ -56,7 +82,13 @@ v2_swap_settle_with_wrapped_native AS ( {{to_wrapped_native_token(blockchain, 'srcToken', 'src_token_for_joining')}}, * FROM v2_swap_settle_parsedOrders -), delta_v2_swapSettle_master as ( +), v2_swap_settle_with_wrapped_native_with_orderhash as ( + select + *, + {{ compute_order_hash(blockchain) }} as computed_order_hash + from v2_swap_settle_with_wrapped_native +), +delta_v2_swapSettle_master as ( select 'swapSettle' as method, COALESCE(CAST(s.price AS DECIMAL(38,18)), 0) AS src_token_price_usd, @@ -66,7 +98,7 @@ select d.price * w.destAmount / POWER(10, d.decimals) AS dest_token_order_usd, w.destToken AS fee_token, w.* - FROM v2_swap_settle_with_wrapped_native w + FROM v2_swap_settle_with_wrapped_native_with_orderhash w LEFT JOIN {{ source('prices', 'usd') }} d ON d.minute > TIMESTAMP '{{method_start_date}}' AND d.blockchain = '{{blockchain}}' @@ -116,7 +148,8 @@ SELECT src_token_order_usd, dest_token_order_usd, contract_address, - partnerAndFee + partnerAndFee, + computed_order_hash FROM delta_v2_swapSettle_master ) {% endmacro %} \ No newline at end of file diff --git a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle_batch.sql b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle_batch.sql index 745f1176ce6..364f24484d8 100644 --- a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle_batch.sql +++ b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle_batch.sql @@ -1,7 +1,7 @@ {% macro delta_v2_swap_settle_batch(blockchain) %} -- {% set method_start_date = '2024-10-01' %} -{% set method_start_date = '2025-05-01' %} +{% set method_start_date = '2025-05-07' %} delta_v2_swap_settle_batch_ExpandedOrders as ( select @@ -30,8 +30,8 @@ delta_v2_swap_settle_batch_ExpandedOrders as ( -- also NB: edge case: a multi-tx call, where some other method emits event with similar signature --> not valid as it won't end up in the table SEQUENCE(1, CARDINALITY(ordersWithSigs) ) ) AS t (order_index) - WHERE - call_success = true + WHERE call_block_time > TIMESTAMP '{{method_start_date}}' + AND call_success = true {% if is_incremental() %} AND {{ incremental_predicate('call_block_time') }} {% endif %} @@ -67,12 +67,19 @@ delta_v2_swap_settle_batch_parsed_orders as ( JSON_EXTRACT_SCALAR("order", '$.deadline') as deadline, JSON_EXTRACT_SCALAR("order", '$.nonce') as nonce, cast(JSON_EXTRACT_SCALAR("order", '$.partnerAndFee') as uint256) as partnerAndFee, - JSON_EXTRACT_SCALAR("order", '$.permit') as permit, + cast(JSON_EXTRACT_SCALAR("order", '$.permit') as varbinary) as permit, {{executor_fee_amount()}}, * from delta_v2_swap_settle_batch_ExpandedOrders -), delta_v2_swap_settle_batch_withWrapped as ( +), +delta_v2_swap_settle_batch_parsed_orders_with_orderhash as ( + select + *, + {{ compute_order_hash(blockchain) }} as computed_order_hash + from delta_v2_swap_settle_batch_parsed_orders +), +delta_v2_swap_settle_batch_withWrapped as ( SELECT {{to_wrapped_native_token(blockchain, 'orders.destToken', 'dest_token_for_joining')}}, {{to_wrapped_native_token(blockchain, 'orders.srcToken', 'src_token_for_joining')}}, @@ -81,7 +88,7 @@ from events.partnerFee, events.evt_index, orders.* - FROM delta_v2_swap_settle_batch_parsed_orders orders + FROM delta_v2_swap_settle_batch_parsed_orders_with_orderhash orders --- NB: sourcing from calls and joining events, not the opposite, because some methods emit different events (*fill* -> OrderSettled / OrderPartiallyFilled). Sorting them by evt_index would make them match orders sorted by their index in array + call_trace_address -> source of truth bettr be calls LEFT JOIN delta_v2_swap_settle_batch_OrderSettledEvents events ON orders.rn = events.rn @@ -146,7 +153,7 @@ from delta_v2_swap_settle_batch_withWrapped w -- partnerFee uint256 -- TODO: add this field to the model ), delta_v2_swapSettleBatch as ( SELECT - -- NB: columns mapping must match accross all the methods, since they're uninoned into one in master macro + -- NB: columns mapping must match accross all the methods, since they're unioned into one in master macro '{{blockchain}}' as blockchain, method, order_index, @@ -177,7 +184,8 @@ SELECT src_token_order_usd, dest_token_order_usd, contract_address, - partnerAndFee + partnerAndFee, + computed_order_hash FROM delta_v2_swapSettleBatch_master ) {% endmacro %} \ No newline at end of file From 2b1c1fa5440c7b407a46e41de1f6d4a6e23b2d01 Mon Sep 17 00:00:00 2001 From: alexshchur Date: Fri, 9 May 2025 08:32:43 +0300 Subject: [PATCH 32/60] chore: make v1 delta folder strucutre consistent with v2 --- .../paraswap/delta/v1/{ => methods}/safe_settle_batch_swap.sql | 0 .../_project/paraswap/delta/v1/{ => methods}/settle_swap.sql | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename dbt_subprojects/dex/macros/models/_project/paraswap/delta/v1/{ => methods}/safe_settle_batch_swap.sql (100%) rename dbt_subprojects/dex/macros/models/_project/paraswap/delta/v1/{ => methods}/settle_swap.sql (100%) diff --git a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v1/safe_settle_batch_swap.sql b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v1/methods/safe_settle_batch_swap.sql similarity index 100% rename from dbt_subprojects/dex/macros/models/_project/paraswap/delta/v1/safe_settle_batch_swap.sql rename to dbt_subprojects/dex/macros/models/_project/paraswap/delta/v1/methods/safe_settle_batch_swap.sql diff --git a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v1/settle_swap.sql b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v1/methods/settle_swap.sql similarity index 100% rename from dbt_subprojects/dex/macros/models/_project/paraswap/delta/v1/settle_swap.sql rename to dbt_subprojects/dex/macros/models/_project/paraswap/delta/v1/methods/settle_swap.sql From 7a9abcd0a76794ca3e20f4e96e27a99d5bcfdb7d Mon Sep 17 00:00:00 2001 From: alexshchur Date: Fri, 9 May 2025 08:40:32 +0300 Subject: [PATCH 33/60] fix: add dummy fields to delta v1 methods to conform to v2 --- .../paraswap/delta/v1/methods/safe_settle_batch_swap.sql | 4 +++- .../models/_project/paraswap/delta/v1/methods/settle_swap.sql | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v1/methods/safe_settle_batch_swap.sql b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v1/methods/safe_settle_batch_swap.sql index e9f2436ba9f..0b571d19ad9 100644 --- a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v1/methods/safe_settle_batch_swap.sql +++ b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v1/methods/safe_settle_batch_swap.sql @@ -117,7 +117,9 @@ ORDER BY gas_fee_usd, src_token_order_usd, dest_token_order_usd, - contract_address + contract_address, + cast(0 as uint256) as partnerAndFee, -- v1 didn't have partnerAndFee + 0x00 as computed_order_hash -- TODO from delta_v1_safe_settle_batch_swap_model ) {% endmacro %} \ No newline at end of file diff --git a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v1/methods/settle_swap.sql b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v1/methods/settle_swap.sql index a240e868b9d..494abed2656 100644 --- a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v1/methods/settle_swap.sql +++ b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v1/methods/settle_swap.sql @@ -114,7 +114,9 @@ select gas_fee_usd, src_token_order_usd, dest_token_order_usd, - contract_address + contract_address, + cast(0 as uint256) as partnerAndFee, -- v1 didn't have partnerAndFee + 0x00 as computed_order_hash -- TODO from delta_v1_settle_swap_model ) {% endmacro %} \ No newline at end of file From 0ce3dbd2a38075dcc432bd9e0d6eae5340476e86 Mon Sep 17 00:00:00 2001 From: alexshchur Date: Sun, 11 May 2025 20:48:45 +0300 Subject: [PATCH 34/60] chore: swap_settle_batch simplify --- .../delta/v2/methods/swap_settle_batch.sql | 91 +++++++------------ 1 file changed, 31 insertions(+), 60 deletions(-) diff --git a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle_batch.sql b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle_batch.sql index 364f24484d8..fc4a64d75c0 100644 --- a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle_batch.sql +++ b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle_batch.sql @@ -5,55 +5,32 @@ delta_v2_swap_settle_batch_ExpandedOrders as ( select - ROW_NUMBER() OVER (ORDER BY call_block_time, call_tx_hash, call_trace_address, order_index) AS rn, - * from - ( - SELECT - order_index, - contract_address, -- varbinary - -- call_success, -- boolean - call_tx_hash, -- varbinary - call_tx_from, -- varbinary - call_tx_to, -- varbinary - call_trace_address, -- array(bigint) - call_block_time, -- timestamp - call_block_number, -- bigint - -- ordersWithSigs[order_index] as extractedOrderWithSig, - JSON_EXTRACT_SCALAR(ordersWithSigs[order_index], '$.order') as "order", -- returns json - JSON_EXTRACT_SCALAR(ordersWithSigs[order_index], '$.signature') as signature, - executor, - executorData[order_index] as executorData - FROM {{ source("paraswapdelta_"+ blockchain, "ParaswapDeltav2_call_swapSettleBatch") }} - CROSS JOIN UNNEST ( - -- SQL array indices start at 1 - -- also NB: if one order fails -- whole batch fails - -- also NB: edge case: a multi-tx call, where some other method emits event with similar signature --> not valid as it won't end up in the table - SEQUENCE(1, CARDINALITY(ordersWithSigs) ) - ) AS t (order_index) - WHERE call_block_time > TIMESTAMP '{{method_start_date}}' - AND call_success = true - {% if is_incremental() %} - AND {{ incremental_predicate('call_block_time') }} - {% endif %} - ) -), -delta_v2_swap_settle_batch_OrderSettledEvents as ( - SELECT - -- TODO: need a sample tx to make sure this ordering and then joining by the order down below is correct - ROW_NUMBER() OVER (ORDER BY evt_block_time, evt_tx_hash, evt_index) AS rn, - * - FROM - - ( - SELECT * FROM {{ source("paraswapdelta_"+ blockchain, "ParaswapDeltav2_evt_OrderSettled") }} - -- important conditional - since OrderSettled is emitted by multilple methods - -- this filtering still not 100% fix -- as theoretically multiple methods can be combined in on call - -- consider case when settleSwap and settleBatchSwap are combined in one call - WHERE evt_tx_hash in (select call_tx_hash from delta_v2_swap_settle_batch_ExpandedOrders) + order_index, + contract_address, -- varbinary + -- call_success, -- boolean + call_tx_hash, -- varbinary + call_tx_from, -- varbinary + call_tx_to, -- varbinary + call_trace_address, -- array(bigint) + call_block_time, -- timestamp + call_block_number, -- bigint + -- ordersWithSigs[order_index] as extractedOrderWithSig, + JSON_EXTRACT_SCALAR(ordersWithSigs[order_index], '$.order') as "order", -- returns json + JSON_EXTRACT_SCALAR(ordersWithSigs[order_index], '$.signature') as signature, + executor, + executorData[order_index] as executorData + FROM {{ source("paraswapdelta_"+ blockchain, "ParaswapDeltav2_call_swapSettleBatch") }} + CROSS JOIN UNNEST ( + -- SQL array indices start at 1 + -- also NB: if one order fails -- whole batch fails + -- also NB: edge case: a multi-tx call, where some other method emits event with similar signature --> not valid as it won't end up in the table + SEQUENCE(1, CARDINALITY(ordersWithSigs) ) + ) AS t (order_index) + WHERE call_block_time > TIMESTAMP '{{method_start_date}}' + AND call_success = true {% if is_incremental() %} - AND {{ incremental_predicate('evt_block_time') }} - {% endif %} - ) + AND {{ incremental_predicate('call_block_time') }} + {% endif %} ), delta_v2_swap_settle_batch_parsed_orders as ( select @@ -90,18 +67,12 @@ delta_v2_swap_settle_batch_withWrapped as ( orders.* FROM delta_v2_swap_settle_batch_parsed_orders_with_orderhash orders --- NB: sourcing from calls and joining events, not the opposite, because some methods emit different events (*fill* -> OrderSettled / OrderPartiallyFilled). Sorting them by evt_index would make them match orders sorted by their index in array + call_trace_address -> source of truth bettr be calls - LEFT JOIN delta_v2_swap_settle_batch_OrderSettledEvents events - ON orders.rn = events.rn + LEFT JOIN {{ source("paraswapdelta_"+ blockchain, "ParaswapDeltav2_evt_OrderSettled") }} events + ON + evt_block_time = call_block_time + -- suffices for fill-all-at-once methods (unlike partials, because with partials there's an edge case when you can mismatch still, although very unlikely to happen in real life) + AND computed_order_hash = events.orderHash AND orders.call_tx_hash = events.evt_tx_hash - -- TODO: compute hash and join by orderHash instead -- that would be sufficiently strict for fill-all-at-once methods (unlike partials, because with partials there's an edge case when you can mismatch still, although very unlikely to happen in real life) - -- but for "full-single-fulfillment" methods, -- this template will work - -- https://paraswap.slack.com/archives/C073CNPHUS2/p1736331626761619?thread_ts=1736325828.398779&cid=C073CNPHUS2 - AND orders.owner = events.owner - AND orders.beneficiary = events.beneficiary - AND orders.srcToken = events.srcToken - AND orders.destToken = events.destToken - AND orders.srcAmount = events.srcAmount - AND orders.destAmount = events.destAmount ), delta_v2_swapSettleBatch_master as ( select @@ -185,7 +156,7 @@ SELECT dest_token_order_usd, contract_address, partnerAndFee, - computed_order_hash + computed_order_hash FROM delta_v2_swapSettleBatch_master ) {% endmacro %} \ No newline at end of file From fca3400f3ccf4cb9fde7052cadeb48112b2d56e9 Mon Sep 17 00:00:00 2001 From: alexshchur Date: Mon, 12 May 2025 07:53:28 +0300 Subject: [PATCH 35/60] draft: join events to swapSetlle too, display evt_order_hash. Todo - account for bridge --- .../paraswap/delta/v2/methods/swap_settle.sql | 24 +++++++++++++++---- .../delta/v2/methods/swap_settle_batch.sql | 17 ++++++++----- 2 files changed, 31 insertions(+), 10 deletions(-) diff --git a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle.sql b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle.sql index 700e7425fa8..83939761114 100644 --- a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle.sql +++ b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle.sql @@ -1,7 +1,7 @@ {% macro delta_v2_swap_settle(blockchain) %} -- since this call always is a whole-order-at-once fulfillment, can source it from method calls and no need to join with events as all data is in the call -- {% set method_start_date = '2024-10-01' %} -{% set method_start_date = '2025-05-07' %} +{% set method_start_date = '2025-05-10' %} -- order_hash_computed @@ -97,7 +97,12 @@ select s.price * w.srcAmount / POWER(10, s.decimals) AS src_token_order_usd, d.price * w.destAmount / POWER(10, d.decimals) AS dest_token_order_usd, w.destToken AS fee_token, - w.* + w.*, + events.evt_index, + events.returnAmount as evt_return_amount, + events.protocolFee as evt_protocol_fee, + events.partnerFee as evt_partner_fee, + events.orderHash as evt_order_hash FROM v2_swap_settle_with_wrapped_native_with_orderhash w LEFT JOIN {{ source('prices', 'usd') }} d ON d.minute > TIMESTAMP '{{method_start_date}}' @@ -115,6 +120,13 @@ select {% endif %} AND s.contract_address = w.src_token_for_joining AND s.minute = DATE_TRUNC('minute', w.call_block_time) + + LEFT JOIN {{ source("paraswapdelta_"+ blockchain, "ParaswapDeltav2_evt_OrderSettled") }} events + ON + evt_block_time = call_block_time + -- suffices for fill-all-at-once methods (unlike partials, because with partials there's an edge case when you can mismatch still, although very unlikely to happen in real life) + AND computed_order_hash = events.orderHash + AND call_tx_hash = events.evt_tx_hash ), delta_v2_swapSettle as ( SELECT -- NB: columns mapping must match accross all the methods, since they're uninoned into one in master macro @@ -127,7 +139,7 @@ SELECT call_tx_hash, call_tx_from, call_tx_to, - cast(NULL as bigint) as evt_index, -- TODO + evt_index, executorFeeAmount as fee_amount, -- orderWithSig as order_with_sig, executor, @@ -149,7 +161,11 @@ SELECT dest_token_order_usd, contract_address, partnerAndFee, - computed_order_hash + computed_order_hash, + evt_order_hash, + evt_return_amount, + evt_protocol_fee, + evt_partner_fee FROM delta_v2_swapSettle_master ) {% endmacro %} \ No newline at end of file diff --git a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle_batch.sql b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle_batch.sql index fc4a64d75c0..66325adee31 100644 --- a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle_batch.sql +++ b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle_batch.sql @@ -1,7 +1,7 @@ {% macro delta_v2_swap_settle_batch(blockchain) %} -- {% set method_start_date = '2024-10-01' %} -{% set method_start_date = '2025-05-07' %} +{% set method_start_date = '2025-05-10' %} delta_v2_swap_settle_batch_ExpandedOrders as ( select @@ -59,11 +59,12 @@ delta_v2_swap_settle_batch_parsed_orders_with_orderhash as ( delta_v2_swap_settle_batch_withWrapped as ( SELECT {{to_wrapped_native_token(blockchain, 'orders.destToken', 'dest_token_for_joining')}}, - {{to_wrapped_native_token(blockchain, 'orders.srcToken', 'src_token_for_joining')}}, - events.returnAmount, - events.protocolFee, - events.partnerFee, + {{to_wrapped_native_token(blockchain, 'orders.srcToken', 'src_token_for_joining')}}, events.evt_index, + events.orderHash as evt_order_hash, + events.returnAmount as evt_return_amount, + events.protocolFee as evt_protocol_fee, + events.partnerFee as evt_partner_fee, orders.* FROM delta_v2_swap_settle_batch_parsed_orders_with_orderhash orders --- NB: sourcing from calls and joining events, not the opposite, because some methods emit different events (*fill* -> OrderSettled / OrderPartiallyFilled). Sorting them by evt_index would make them match orders sorted by their index in array + call_trace_address -> source of truth bettr be calls @@ -156,7 +157,11 @@ SELECT dest_token_order_usd, contract_address, partnerAndFee, - computed_order_hash + computed_order_hash, + evt_order_hash, + evt_return_amount, + evt_protocol_fee, + evt_partner_fee FROM delta_v2_swapSettleBatch_master ) {% endmacro %} \ No newline at end of file From 512da7d4badbb53431810f188ee8a69d39255835 Mon Sep 17 00:00:00 2001 From: alexshchur Date: Mon, 12 May 2025 07:54:02 +0300 Subject: [PATCH 36/60] draft: add evt_order_hash --- .../models/_project/paraswap/delta/map_internal_to_dex.sql | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/map_internal_to_dex.sql b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/map_internal_to_dex.sql index b2aad77478c..8a199aec030 100644 --- a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/map_internal_to_dex.sql +++ b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/map_internal_to_dex.sql @@ -38,7 +38,8 @@ select ), '0x(00){12}' )) AS partnerAddress, - computed_order_hash + computed_order_hash, + evt_order_hash from {{from_alias}} LEFT JOIN {{ source('tokens', 'erc20') }} t_src_token From 58fc2becc5ab6a83be86d2024faefe33fbee8c3c Mon Sep 17 00:00:00 2001 From: alexshchur Date: Mon, 12 May 2025 10:10:24 +0300 Subject: [PATCH 37/60] fix: introduce compute_order_hash_with_bridge macro and properly encode nonce and deadline for it to work --- .../v2/compute_order_hash_with_bridge.sql | 76 +++++++++++++++++++ .../paraswap/delta/v2/methods/swap_settle.sql | 8 +- .../delta/v2/methods/swap_settle_batch.sql | 8 +- 3 files changed, 84 insertions(+), 8 deletions(-) create mode 100644 dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/compute_order_hash_with_bridge.sql diff --git a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/compute_order_hash_with_bridge.sql b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/compute_order_hash_with_bridge.sql new file mode 100644 index 00000000000..f41dc6857c8 --- /dev/null +++ b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/compute_order_hash_with_bridge.sql @@ -0,0 +1,76 @@ +{% macro compute_order_hash_with_bridge(blockchain) %} + +{% set network_to_chain_id = { + 'ethereum': 1, + 'optimism': 10, + 'base': 8453, +} %} + +-- SELECT + keccak( + concat( + X'1901', + + -- domain separator + keccak( + concat( + keccak(to_utf8('EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)')), + keccak(to_utf8('Portikus')), + keccak(to_utf8('2.0.0')), + lpad(cast(cast({{ network_to_chain_id[blockchain]}} AS uint256) AS varbinary), 32, X'00'), + lpad(from_hex('0000000000bbf5c5fd284e657f01bd000933c96d'), 32, X'00') + ) + ), + + -- Order struct hash + keccak( + concat( + keccak(to_utf8( + 'Order(address owner,address beneficiary,address srcToken,address destToken,uint256 srcAmount,uint256 destAmount,uint256 expectedDestAmount,uint256 deadline,uint256 nonce,uint256 partnerAndFee,bytes permit,Bridge bridge)Bridge(uint256 maxRelayerFee,uint256 destinationChainId,address outputToken,address multiCallHandler)' + )), + + -- lpad(from_hex('6d383975c64eebe1251e50c3ab0e53537342bde9'), 32, X'00'), -- owner + lpad(owner, 32, X'00'), + -- lpad(from_hex('6d383975c64eebe1251e50c3ab0e53537342bde9'), 32, X'00'), -- beneficiary + lpad(beneficiary, 32, X'00'), -- beneficiary + -- lpad(from_hex('f469fbd2abcd6b9de8e169d128226c0fc90a012e'), 32, X'00'), -- srcToken + lpad(srcToken, 32, X'00'), -- srcToken + -- lpad(from_hex('eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee'), 32, X'00'), -- destToken + lpad(destToken, 32, X'00'), -- destToken + -- lpad(cast(cast('422561' as uint256) AS varbinary), 32, X'00'), + lpad(cast(srcAmount AS varbinary), 32, X'00'), -- srcAmount + -- lpad(cast(cast('168106215780811752' as uint256) AS varbinary), 32, X'00'), + lpad(cast(destAmount AS varbinary), 32, X'00'), -- destAmount + -- lpad(cast(cast('168950970633981661' as uint256) AS varbinary), 32, X'00'), + lpad(cast(expectedDestAmount AS varbinary), 32, X'00'), -- expectedDestAmount + -- lpad(cast(cast('1747024424' as uint256) AS varbinary), 32, X'00'), + lpad(cast(deadline AS varbinary), 32, X'00'), -- deadline + -- lpad(cast(cast('1747020844040' as uint256) AS varbinary), 32, X'00'), + lpad(cast(nonce AS varbinary), 32, X'00'), -- nonce + -- lpad(cast(cast('90631063861114836560958097440945986548822432573276877133894239693005947666447' as uint256) AS varbinary), 32, X'00'), + lpad(cast(partnerAndFee AS varbinary), 32, X'00'), -- partnerAndFee + + -- Permit (empty: 0x, not 0x00) + lpad(keccak(from_hex('')), 32, X'00'), + -- lpad( + -- keccak(permit), + -- 32, X'00' + -- ), + -- Bridge struct hash (inlined) + keccak( + concat( + keccak(to_utf8('Bridge(uint256 maxRelayerFee,uint256 destinationChainId,address outputToken,address multiCallHandler)')), + lpad(cast(cast(0 as uint256) AS varbinary), 32, X'00'), + lpad(cast(cast(0 as uint256) AS varbinary), 32, X'00'), + lpad(from_hex('0000000000000000000000000000000000000000'), 32, X'00'), + lpad(from_hex('0000000000000000000000000000000000000000'), 32, X'00') + ) + ) + ) + ) + ) + ) + -- ) AS eip712_body_hash; + + +{% endmacro %} \ No newline at end of file diff --git a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle.sql b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle.sql index 83939761114..ea6119f93c0 100644 --- a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle.sql +++ b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle.sql @@ -68,10 +68,10 @@ v2_swap_settle_parsedOrders AS ( cast(JSON_EXTRACT_SCALAR("order", '$.srcAmount') as uint256) as srcAmount, cast(JSON_EXTRACT_SCALAR("order", '$.destAmount') as uint256) as destAmount, cast(JSON_EXTRACT_SCALAR("order", '$.expectedDestAmount') as uint256) as expectedDestAmount, - JSON_EXTRACT_SCALAR("order", '$.deadline') as deadline, - JSON_EXTRACT_SCALAR("order", '$.nonce') as nonce, + cast(JSON_EXTRACT_SCALAR("order", '$.deadline') as uint256) as deadline, + cast(JSON_EXTRACT_SCALAR("order", '$.nonce') as uint256) as nonce, cast(JSON_EXTRACT_SCALAR("order", '$.partnerAndFee') as uint256) as partnerAndFee, - cast(JSON_EXTRACT_SCALAR("order", '$.permit') as varbinary) as permit, + from_hex(JSON_EXTRACT_SCALAR("order", '$.permit')) as permit, {{executor_fee_amount()}}, * FROM v2_swap_settle_unparsedOrders @@ -85,7 +85,7 @@ v2_swap_settle_with_wrapped_native AS ( ), v2_swap_settle_with_wrapped_native_with_orderhash as ( select *, - {{ compute_order_hash(blockchain) }} as computed_order_hash + {{ compute_order_hash_with_bridge(blockchain) }} as computed_order_hash from v2_swap_settle_with_wrapped_native ), delta_v2_swapSettle_master as ( diff --git a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle_batch.sql b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle_batch.sql index 66325adee31..dc10c545b33 100644 --- a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle_batch.sql +++ b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle_batch.sql @@ -41,10 +41,10 @@ delta_v2_swap_settle_batch_parsed_orders as ( cast(JSON_EXTRACT_SCALAR("order", '$.srcAmount') as uint256) as srcAmount, cast(JSON_EXTRACT_SCALAR("order", '$.destAmount') as uint256) as destAmount, cast(JSON_EXTRACT_SCALAR("order", '$.expectedDestAmount') as uint256) as expectedDestAmount, - JSON_EXTRACT_SCALAR("order", '$.deadline') as deadline, - JSON_EXTRACT_SCALAR("order", '$.nonce') as nonce, + cast(JSON_EXTRACT_SCALAR("order", '$.deadline') as uint256) as deadline, + cast(JSON_EXTRACT_SCALAR("order", '$.nonce') as uint256) as nonce, cast(JSON_EXTRACT_SCALAR("order", '$.partnerAndFee') as uint256) as partnerAndFee, - cast(JSON_EXTRACT_SCALAR("order", '$.permit') as varbinary) as permit, + from_hex(JSON_EXTRACT_SCALAR("order", '$.permit')) as permit, {{executor_fee_amount()}}, * from @@ -53,7 +53,7 @@ from delta_v2_swap_settle_batch_parsed_orders_with_orderhash as ( select *, - {{ compute_order_hash(blockchain) }} as computed_order_hash + {{ compute_order_hash_with_bridge(blockchain) }} as computed_order_hash from delta_v2_swap_settle_batch_parsed_orders ), delta_v2_swap_settle_batch_withWrapped as ( From 93bb2fe5e8d8aba3632276fa780149fd564d7b23 Mon Sep 17 00:00:00 2001 From: alexshchur Date: Mon, 12 May 2025 10:15:47 +0300 Subject: [PATCH 38/60] fix: dynamic permit --- .../delta/v2/compute_order_hash_with_bridge.sql | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/compute_order_hash_with_bridge.sql b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/compute_order_hash_with_bridge.sql index f41dc6857c8..56d997bf1a8 100644 --- a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/compute_order_hash_with_bridge.sql +++ b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/compute_order_hash_with_bridge.sql @@ -51,11 +51,11 @@ lpad(cast(partnerAndFee AS varbinary), 32, X'00'), -- partnerAndFee -- Permit (empty: 0x, not 0x00) - lpad(keccak(from_hex('')), 32, X'00'), - -- lpad( - -- keccak(permit), - -- 32, X'00' - -- ), + -- lpad(keccak(from_hex('')), 32, X'00'), + lpad( + keccak(permit), + 32, X'00' + ), -- Bridge struct hash (inlined) keccak( concat( From fab441fac61fc10bb243ba1dd393671affb46d58 Mon Sep 17 00:00:00 2001 From: alexshchur Date: Mon, 12 May 2025 10:32:03 +0300 Subject: [PATCH 39/60] fix: dynamically compute order hash with bridge --- .../paraswap/delta/map_internal_to_dex.sql | 8 +++++++- .../delta/v2/compute_order_hash_with_bridge.sql | 8 ++++---- .../paraswap/delta/v2/methods/swap_settle.sql | 14 +++++++++++++- 3 files changed, 24 insertions(+), 6 deletions(-) diff --git a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/map_internal_to_dex.sql b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/map_internal_to_dex.sql index 8a199aec030..610100bc05d 100644 --- a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/map_internal_to_dex.sql +++ b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/map_internal_to_dex.sql @@ -39,7 +39,13 @@ select '0x(00){12}' )) AS partnerAddress, computed_order_hash, - evt_order_hash + evt_order_hash, + bridgeMultiCallHandler, + bridgeOutputToken, + bridgeMaxRelayerFee, + bridgeDestinationChainId, + bridge, + "order" from {{from_alias}} LEFT JOIN {{ source('tokens', 'erc20') }} t_src_token diff --git a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/compute_order_hash_with_bridge.sql b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/compute_order_hash_with_bridge.sql index 56d997bf1a8..f0507f5f8e6 100644 --- a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/compute_order_hash_with_bridge.sql +++ b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/compute_order_hash_with_bridge.sql @@ -60,10 +60,10 @@ keccak( concat( keccak(to_utf8('Bridge(uint256 maxRelayerFee,uint256 destinationChainId,address outputToken,address multiCallHandler)')), - lpad(cast(cast(0 as uint256) AS varbinary), 32, X'00'), - lpad(cast(cast(0 as uint256) AS varbinary), 32, X'00'), - lpad(from_hex('0000000000000000000000000000000000000000'), 32, X'00'), - lpad(from_hex('0000000000000000000000000000000000000000'), 32, X'00') + lpad(cast(cast(bridgeMaxRelayerFee as uint256) AS varbinary), 32, X'00'), + lpad(cast(cast(bridgeDestinationChainId as uint256) AS varbinary), 32, X'00'), + lpad(bridgeOutputToken, 32, X'00'), + lpad(bridgeMultiCallHandler, 32, X'00') ) ) ) diff --git a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle.sql b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle.sql index ea6119f93c0..1ba981cb704 100644 --- a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle.sql +++ b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle.sql @@ -61,6 +61,7 @@ v2_swap_settle_unparsedOrders AS ( ), v2_swap_settle_parsedOrders AS ( SELECT + JSON_EXTRACT_SCALAR(JSON_PARSE(TRY_CAST("order" AS VARCHAR)), '$.bridge') AS "bridge", from_hex(JSON_EXTRACT_SCALAR("order", '$.owner')) as owner, from_hex(JSON_EXTRACT_SCALAR("order", '$.beneficiary')) as beneficiary, from_hex(JSON_EXTRACT_SCALAR("order", '$.srcToken')) as srcToken, @@ -78,6 +79,10 @@ v2_swap_settle_parsedOrders AS ( ), v2_swap_settle_with_wrapped_native AS ( SELECT + from_hex(JSON_EXTRACT_SCALAR("bridge", '$.multiCallHandler')) as bridgeMultiCallHandler, + from_hex(JSON_EXTRACT_SCALAR("bridge", '$.outputToken')) as bridgeOutputToken, + cast(JSON_EXTRACT_SCALAR("bridge", '$.maxRelayerFee') as uint256) as bridgeMaxRelayerFee, + cast(JSON_EXTRACT_SCALAR("bridge", '$.destinationChainId') as uint256) as bridgeDestinationChainId, {{to_wrapped_native_token(blockchain, 'destToken', 'dest_token_for_joining')}}, {{to_wrapped_native_token(blockchain, 'srcToken', 'src_token_for_joining')}}, * @@ -165,7 +170,14 @@ SELECT evt_order_hash, evt_return_amount, evt_protocol_fee, - evt_partner_fee + evt_partner_fee, + bridgeMultiCallHandler, + bridgeOutputToken, + bridgeMaxRelayerFee, + bridgeDestinationChainId, + bridge, + "order" + FROM delta_v2_swapSettle_master ) {% endmacro %} \ No newline at end of file From 60d5be9ebec91d41137de4b82d827c653ca2c1b0 Mon Sep 17 00:00:00 2001 From: alexshchur Date: Mon, 12 May 2025 10:40:32 +0300 Subject: [PATCH 40/60] fix: swapSettle - conditionally copmute order hash w. bridge / no bridge --- .../_project/paraswap/delta/v2/methods/swap_settle.sql | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle.sql b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle.sql index 1ba981cb704..2625edccc8c 100644 --- a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle.sql +++ b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle.sql @@ -90,7 +90,11 @@ v2_swap_settle_with_wrapped_native AS ( ), v2_swap_settle_with_wrapped_native_with_orderhash as ( select *, - {{ compute_order_hash_with_bridge(blockchain) }} as computed_order_hash + CASE WHEN bridge IS NULL THEN + {{ compute_order_hash(blockchain) }} + ELSE + {{ compute_order_hash_with_bridge(blockchain) }} + END as computed_order_hash from v2_swap_settle_with_wrapped_native ), delta_v2_swapSettle_master as ( From bd19ed52bb3df6dcfd8541879590a3f198bcff58 Mon Sep 17 00:00:00 2001 From: alexshchur Date: Mon, 12 May 2025 10:42:03 +0300 Subject: [PATCH 41/60] undraft --- .../models/_project/paraswap/delta/v2/methods/swap_settle.sql | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle.sql b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle.sql index 2625edccc8c..aaefa6680a0 100644 --- a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle.sql +++ b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle.sql @@ -1,8 +1,6 @@ {% macro delta_v2_swap_settle(blockchain) %} -- since this call always is a whole-order-at-once fulfillment, can source it from method calls and no need to join with events as all data is in the call --- {% set method_start_date = '2024-10-01' %} -{% set method_start_date = '2025-05-10' %} - +{% set method_start_date = '2024-10-01' %} -- order_hash_computed From 44304273640e9e903d300614eca344f7012fc4f1 Mon Sep 17 00:00:00 2001 From: alexshchur Date: Mon, 12 May 2025 11:04:19 +0300 Subject: [PATCH 42/60] fix: swapSettleBatch: conditional orderHash computation w. bridge / no bridge --- .../delta/v2/methods/swap_settle_batch.sql | 43 ++++++++++++++----- 1 file changed, 32 insertions(+), 11 deletions(-) diff --git a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle_batch.sql b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle_batch.sql index dc10c545b33..6f7a5526988 100644 --- a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle_batch.sql +++ b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle_batch.sql @@ -1,7 +1,6 @@ {% macro delta_v2_swap_settle_batch(blockchain) %} --- {% set method_start_date = '2024-10-01' %} -{% set method_start_date = '2025-05-10' %} +{% set method_start_date = '2024-10-01' %} delta_v2_swap_settle_batch_ExpandedOrders as ( select @@ -34,6 +33,7 @@ delta_v2_swap_settle_batch_ExpandedOrders as ( ), delta_v2_swap_settle_batch_parsed_orders as ( select + JSON_EXTRACT_SCALAR(JSON_PARSE(TRY_CAST("order" AS VARCHAR)), '$.bridge') AS "bridge", from_hex(JSON_EXTRACT_SCALAR("order", '$.owner')) as owner, from_hex(JSON_EXTRACT_SCALAR("order", '$.beneficiary')) as beneficiary, from_hex(JSON_EXTRACT_SCALAR("order", '$.srcToken')) as srcToken, @@ -53,28 +53,43 @@ from delta_v2_swap_settle_batch_parsed_orders_with_orderhash as ( select *, - {{ compute_order_hash_with_bridge(blockchain) }} as computed_order_hash + from_hex(JSON_EXTRACT_SCALAR("bridge", '$.multiCallHandler')) as bridgeMultiCallHandler, + from_hex(JSON_EXTRACT_SCALAR("bridge", '$.outputToken')) as bridgeOutputToken, + cast(JSON_EXTRACT_SCALAR("bridge", '$.maxRelayerFee') as uint256) as bridgeMaxRelayerFee, + cast(JSON_EXTRACT_SCALAR("bridge", '$.destinationChainId') as uint256) as bridgeDestinationChainId from delta_v2_swap_settle_batch_parsed_orders ), delta_v2_swap_settle_batch_withWrapped as ( SELECT + CASE WHEN bridge IS NULL THEN + {{ compute_order_hash(blockchain) }} + ELSE + {{ compute_order_hash_with_bridge(blockchain) }} + END as computed_order_hash, {{to_wrapped_native_token(blockchain, 'orders.destToken', 'dest_token_for_joining')}}, - {{to_wrapped_native_token(blockchain, 'orders.srcToken', 'src_token_for_joining')}}, + {{to_wrapped_native_token(blockchain, 'orders.srcToken', 'src_token_for_joining')}}, + orders.* + FROM delta_v2_swap_settle_batch_parsed_orders_with_orderhash orders +), +delta_v2_swap_settle_batch_withEvents as ( + select events.evt_index, events.orderHash as evt_order_hash, events.returnAmount as evt_return_amount, events.protocolFee as evt_protocol_fee, events.partnerFee as evt_partner_fee, - orders.* - FROM delta_v2_swap_settle_batch_parsed_orders_with_orderhash orders - --- NB: sourcing from calls and joining events, not the opposite, because some methods emit different events (*fill* -> OrderSettled / OrderPartiallyFilled). Sorting them by evt_index would make them match orders sorted by their index in array + call_trace_address -> source of truth bettr be calls + withWrapped.* + from delta_v2_swap_settle_batch_withWrapped withWrapped + --- NB: sourcing from calls and joining events, not the opposite, because some methods emit different events (*fill* -> OrderSettled / OrderPartiallyFilled). Sorting them by evt_index would make them match orders sorted by their index in array + call_trace_address -> source of truth bettr be calls LEFT JOIN {{ source("paraswapdelta_"+ blockchain, "ParaswapDeltav2_evt_OrderSettled") }} events ON evt_block_time = call_block_time -- suffices for fill-all-at-once methods (unlike partials, because with partials there's an edge case when you can mismatch still, although very unlikely to happen in real life) AND computed_order_hash = events.orderHash - AND orders.call_tx_hash = events.evt_tx_hash -), delta_v2_swapSettleBatch_master as ( + AND call_tx_hash = events.evt_tx_hash + +), + delta_v2_swapSettleBatch_master as ( select 'swapSettleBatch' as method, @@ -85,7 +100,7 @@ select d.price * w.destAmount / POWER(10, d.decimals) AS dest_token_order_usd, w.destToken AS fee_token, w.* -from delta_v2_swap_settle_batch_withWrapped w +from delta_v2_swap_settle_batch_withEvents w LEFT JOIN {{ source('prices', 'usd') }} d ON d.minute > TIMESTAMP '{{method_start_date}}' @@ -161,7 +176,13 @@ SELECT evt_order_hash, evt_return_amount, evt_protocol_fee, - evt_partner_fee + evt_partner_fee, + bridgeMultiCallHandler, + bridgeOutputToken, + bridgeMaxRelayerFee, + bridgeDestinationChainId, + bridge, + "order" FROM delta_v2_swapSettleBatch_master ) {% endmacro %} \ No newline at end of file From 41b1e2de78078e6ac008cca5cb0f78879b2fd7e1 Mon Sep 17 00:00:00 2001 From: alexshchur Date: Fri, 16 May 2025 09:09:47 +0300 Subject: [PATCH 43/60] feat: delta v2: gas with fallback (actually paid native token price) --- .../paraswap/delta/map_internal_to_dex.sql | 16 +++++-- .../paraswap/delta/v2/executor_fee_amount.sql | 3 +- .../delta/v2/executor_fee_amount_usd.sql | 7 ++- .../paraswap/delta/v2/methods/swap_settle.sql | 35 ++++++++++++--- .../delta/v2/methods/swap_settle_batch.sql | 44 ++++++++++++++----- 5 files changed, 82 insertions(+), 23 deletions(-) diff --git a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/map_internal_to_dex.sql b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/map_internal_to_dex.sql index 610100bc05d..8e05daaad75 100644 --- a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/map_internal_to_dex.sql +++ b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/map_internal_to_dex.sql @@ -1,6 +1,6 @@ {% macro map_internal_to_dex(blockchain, version, from_alias) %} select - {{from_alias}}.blockchain, + src.blockchain, 'velora_delta' as project, '{{version}}' as version, date_trunc('month', call_block_time) AS block_month, @@ -22,7 +22,7 @@ select src_token as token_sold_address, owner as taker, CAST(NULL AS VARBINARY) AS maker, -- TODO: consider `executor as maker`, - {{from_alias}}.contract_address as project_contract_address, + src.contract_address as project_contract_address, call_tx_hash as tx_hash, call_tx_from as tx_from, call_tx_to as tx_to, @@ -45,8 +45,16 @@ select bridgeMaxRelayerFee, bridgeDestinationChainId, bridge, - "order" - from {{from_alias}} + "order", + "owner", + ordersCount, + call_block_number as block_number, + raw_tx_gas_used, + raw_tx_gas_price, + src.gas_fee_usd, + wnt_price_usd, + executor + from {{from_alias}} src LEFT JOIN {{ source('tokens', 'erc20') }} t_src_token ON t_src_token.blockchain = '{{blockchain}}' diff --git a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/executor_fee_amount.sql b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/executor_fee_amount.sql index 67a808b6a63..a79dc5349c6 100644 --- a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/executor_fee_amount.sql +++ b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/executor_fee_amount.sql @@ -16,7 +16,8 @@ -- } CASE WHEN executor = 0x6bb000067005450704003100632eb93ea00c0000 THEN varbinary_to_uint256(varbinary_substring(executorData, 161, 32)) - -- WHEN executor = 0x0500b5050c40e06ed700005dd7cb0ef0b0d0a000 THEN "TODO: join augustus executor contract call and return the output" + -- WHEN executor = 0x10100dcac00088044067a00d520a0f7900000770 THEN "TODO: join augustus executor contract call and return the output" + -- 0x0500b5050c40e06ed700005dd7cb0ef0b0d0a000 - staging one ELSE 0 END as "executorFeeAmount" {% endmacro %} \ No newline at end of file diff --git a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/executor_fee_amount_usd.sql b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/executor_fee_amount_usd.sql index 496ca09b5ad..53b7a9fbb59 100644 --- a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/executor_fee_amount_usd.sql +++ b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/executor_fee_amount_usd.sql @@ -1,8 +1,13 @@ {% macro gas_fee_usd() %} + +case WHEN w.executorFeeAmount > 0 then COALESCE( d.price * w.executorFeeAmount / POWER(10, d.decimals), -- compute directly (dest token is gas fee compensation if it's augustus axecutor) s.price * w.srcAmount / POWER(10, s.decimals) * CAST (w.executorFeeAmount AS DECIMAL) / (CAST (w.destAmount AS DECIMAL)), -- compute pro-rata based on src token if it's augustus executor -- TODO: also add 3rd party executor fee compensation -- based on spent native token, divided by amount of orders if multiple 0 - ) AS gas_fee_usd + ) + else wnt_usd.price * raw_tx_gas_used * raw_tx_gas_price / POWER(10, wnt_usd.decimals) -- COALESCE(CAST(s.price AS DECIMAL(38,18)), 0) + END + AS gas_fee_usd {% endmacro %} \ No newline at end of file diff --git a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle.sql b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle.sql index aaefa6680a0..2861dc8731d 100644 --- a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle.sql +++ b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle.sql @@ -1,6 +1,6 @@ {% macro delta_v2_swap_settle(blockchain) %} -- since this call always is a whole-order-at-once fulfillment, can source it from method calls and no need to join with events as all data is in the call -{% set method_start_date = '2024-10-01' %} +{% set method_start_date = '2025-04-01' %} -- order_hash_computed @@ -36,9 +36,14 @@ v2_swap_settle_withParsedOrderData AS ( orderWithSig, executor, executorData, - contract_address - FROM {{ source("paraswapdelta_"+ blockchain, "ParaswapDeltav2_call_swapSettle") }} - WHERE call_block_time > TIMESTAMP '{{method_start_date}}' + contract_address, + raw_txs.gas_used as raw_tx_gas_used, + raw_txs.gas_price as raw_tx_gas_price + FROM {{ source("paraswapdelta_"+ blockchain, "ParaswapDeltav2_call_swapSettle") }} ss + left join {{blockchain}}.transactions raw_txs + on block_time > TIMESTAMP '{{method_start_date}}' + AND raw_txs.hash = ss.call_tx_hash + WHERE call_block_time > TIMESTAMP '{{method_start_date}}' AND call_success = true {% if is_incremental() %} AND {{ incremental_predicate('call_block_time') }} @@ -103,6 +108,8 @@ select {{ gas_fee_usd() }}, s.price * w.srcAmount / POWER(10, s.decimals) AS src_token_order_usd, d.price * w.destAmount / POWER(10, d.decimals) AS dest_token_order_usd, + wrapped_native_token_address, + COALESCE(CAST(wnt_usd.price AS DECIMAL(38,18)), 0) AS wnt_price_usd, w.destToken AS fee_token, w.*, events.evt_index, @@ -111,6 +118,15 @@ select events.partnerFee as evt_partner_fee, events.orderHash as evt_order_hash FROM v2_swap_settle_with_wrapped_native_with_orderhash w + left join {{ source('evms','info') }} evm_info on evm_info.blockchain='{{blockchain}}' + LEFT JOIN {{ source('prices', 'usd') }} wnt_usd + ON wnt_usd.minute > TIMESTAMP '{{method_start_date}}' + AND wnt_usd.blockchain = '{{blockchain}}' + {% if is_incremental() %} + AND {{ incremental_predicate('wnt_usd.minute') }} + {% endif %} + AND wnt_usd.contract_address = evm_info.wrapped_native_token_address + AND wnt_usd.minute = DATE_TRUNC('minute', w.call_block_time) LEFT JOIN {{ source('prices', 'usd') }} d ON d.minute > TIMESTAMP '{{method_start_date}}' AND d.blockchain = '{{blockchain}}' @@ -147,7 +163,7 @@ SELECT call_tx_from, call_tx_to, evt_index, - executorFeeAmount as fee_amount, + executorFeeAmount as executor_fee_amount, -- orderWithSig as order_with_sig, executor, executorData as calldata_to_execute, @@ -163,7 +179,11 @@ SELECT fee_token, src_token_price_usd, dest_token_price_usd, - gas_fee_usd, + gas_fee_usd, + raw_tx_gas_used, + raw_tx_gas_price, + wnt_price_usd, + 1 as ordersCount, src_token_order_usd, dest_token_order_usd, contract_address, @@ -178,7 +198,8 @@ SELECT bridgeMaxRelayerFee, bridgeDestinationChainId, bridge, - "order" + "order", + wrapped_native_token_address FROM delta_v2_swapSettle_master ) diff --git a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle_batch.sql b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle_batch.sql index 6f7a5526988..041ee4d4e26 100644 --- a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle_batch.sql +++ b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle_batch.sql @@ -1,6 +1,6 @@ {% macro delta_v2_swap_settle_batch(blockchain) %} -{% set method_start_date = '2024-10-01' %} +{% set method_start_date = '2025-04-01' %} delta_v2_swap_settle_batch_ExpandedOrders as ( select @@ -16,20 +16,27 @@ delta_v2_swap_settle_batch_ExpandedOrders as ( -- ordersWithSigs[order_index] as extractedOrderWithSig, JSON_EXTRACT_SCALAR(ordersWithSigs[order_index], '$.order') as "order", -- returns json JSON_EXTRACT_SCALAR(ordersWithSigs[order_index], '$.signature') as signature, + 1 as ordersCount, -- TODO executor, - executorData[order_index] as executorData - FROM {{ source("paraswapdelta_"+ blockchain, "ParaswapDeltav2_call_swapSettleBatch") }} + executorData[order_index] as executorData, + raw_txs.gas_used as raw_tx_gas_used, + raw_txs.gas_price as raw_tx_gas_price + FROM {{ source("paraswapdelta_"+ blockchain, "ParaswapDeltav2_call_swapSettleBatch") }} ssb + left join {{blockchain}}.transactions raw_txs + on block_time > TIMESTAMP '{{method_start_date}}' + AND raw_txs.hash = ssb.call_tx_hash CROSS JOIN UNNEST ( -- SQL array indices start at 1 -- also NB: if one order fails -- whole batch fails -- also NB: edge case: a multi-tx call, where some other method emits event with similar signature --> not valid as it won't end up in the table SEQUENCE(1, CARDINALITY(ordersWithSigs) ) - ) AS t (order_index) + ) AS t (order_index) WHERE call_block_time > TIMESTAMP '{{method_start_date}}' AND call_success = true {% if is_incremental() %} AND {{ incremental_predicate('call_block_time') }} {% endif %} + ), delta_v2_swap_settle_batch_parsed_orders as ( select @@ -93,12 +100,15 @@ delta_v2_swap_settle_batch_withEvents as ( select 'swapSettleBatch' as method, + -- COALESCE(CAST(s.price AS DECIMAL(38,18)), 0) AS src_token_price_usd, - COALESCE(CAST(d.price AS DECIMAL(38,18)), 0) AS dest_token_price_usd, - {{ gas_fee_usd() }}, + COALESCE(CAST(d.price AS DECIMAL(38,18)), 0) AS dest_token_price_usd, s.price * w.srcAmount / POWER(10, s.decimals) AS src_token_order_usd, d.price * w.destAmount / POWER(10, d.decimals) AS dest_token_order_usd, w.destToken AS fee_token, + wrapped_native_token_address, + COALESCE(CAST(wnt_usd.price AS DECIMAL(38,18)), 0) AS wnt_price_usd, + {{ gas_fee_usd() }}, w.* from delta_v2_swap_settle_batch_withEvents w @@ -110,6 +120,15 @@ from delta_v2_swap_settle_batch_withEvents w {% endif %} AND d.contract_address = w.dest_token_for_joining AND d.minute = DATE_TRUNC('minute', w.call_block_time) + left join {{ source('evms','info') }} evm_info on evm_info.blockchain='{{blockchain}}' + LEFT JOIN {{ source('prices', 'usd') }} wnt_usd + ON wnt_usd.minute > TIMESTAMP '{{method_start_date}}' + AND wnt_usd.blockchain = '{{blockchain}}' + {% if is_incremental() %} + AND {{ incremental_predicate('wnt_usd.minute') }} + {% endif %} + AND wnt_usd.contract_address = evm_info.wrapped_native_token_address + AND wnt_usd.minute = DATE_TRUNC('minute', w.call_block_time) LEFT JOIN {{ source('prices', 'usd') }} s ON s.minute > TIMESTAMP '{{method_start_date}}' AND s.blockchain = '{{blockchain}}' @@ -141,7 +160,7 @@ from delta_v2_swap_settle_batch_withEvents w ), delta_v2_swapSettleBatch as ( SELECT -- NB: columns mapping must match accross all the methods, since they're unioned into one in master macro - '{{blockchain}}' as blockchain, + '{{blockchain}}' as blockchain, method, order_index, call_trace_address, @@ -151,7 +170,7 @@ SELECT call_tx_from, call_tx_to, evt_index, - executorFeeAmount as fee_amount, + executorFeeAmount as executor_fee_amount, -- orderWithSig as order_with_sig, executor, executorData as calldata_to_execute, @@ -167,7 +186,11 @@ SELECT fee_token, src_token_price_usd, dest_token_price_usd, - gas_fee_usd, + gas_fee_usd, + raw_tx_gas_used, + raw_tx_gas_price, + wnt_price_usd, + ordersCount, src_token_order_usd, dest_token_order_usd, contract_address, @@ -182,7 +205,8 @@ SELECT bridgeMaxRelayerFee, bridgeDestinationChainId, bridge, - "order" + "order", + wrapped_native_token_address FROM delta_v2_swapSettleBatch_master ) {% endmacro %} \ No newline at end of file From 4eee1316e9c839e961e8cd58f2dbb0d58534c493 Mon Sep 17 00:00:00 2001 From: jeff-dude <102681548+jeff-dude@users.noreply.github.com> Date: Thu, 31 Jul 2025 14:34:40 -0400 Subject: [PATCH 44/60] CUR2-66 init hide spell macro to remove from data explorer, hide balances tables (#8586) * add hide_spells macro, rename file for trino properties * apply hide spell macro to arbitrum * hide all balances models --- ...spells.sql => config_trino_properties.sql} | 34 ++++++++++++++----- .../arbitrum/tokens_arbitrum_balances.sql | 6 +--- .../tokens_arbitrum_balances_daily.sql | 6 +--- .../tokens_avalanche_c_balances.sql | 6 +--- .../tokens_avalanche_c_balances_daily.sql | 6 +--- .../base/tokens_base_balances.sql | 6 +--- .../base/tokens_base_balances_daily.sql | 6 +--- .../bitcoin/balances_bitcoin_satoshi_day.sql | 5 +-- .../balances_bitcoin_satoshi_latest_day.sql | 5 +-- .../bnb/tokens_bnb_balances.sql | 6 +--- .../ethereum/tokens_ethereum_balances.sql | 6 +--- .../tokens_ethereum_balances_daily.sql | 6 +--- .../kaia/tokens_kaia_balances.sql | 6 +--- .../kaia/tokens_kaia_balances_daily.sql | 6 +--- .../linea/tokens_linea_balances.sql | 6 +--- .../linea/tokens_linea_balances_daily.sql | 6 +--- .../optimism/tokens_optimism_balances.sql | 6 +--- .../tokens_optimism_balances_daily.sql | 6 +--- .../polygon/tokens_polygon_balances.sql | 6 +--- .../polygon/tokens_polygon_balances_daily.sql | 6 +--- .../scroll/tokens_scroll_balances.sql | 6 +--- .../scroll/tokens_scroll_balances_daily.sql | 6 +--- .../worldchain/tokens_worldchain_balances.sql | 6 +--- .../tokens_worldchain_balances_daily.sql | 6 +--- 24 files changed, 49 insertions(+), 121 deletions(-) rename dbt_macros/dune/{expose_spells.sql => config_trino_properties.sql} (70%) diff --git a/dbt_macros/dune/expose_spells.sql b/dbt_macros/dune/config_trino_properties.sql similarity index 70% rename from dbt_macros/dune/expose_spells.sql rename to dbt_macros/dune/config_trino_properties.sql index 7420e9403fd..1b8592496a5 100644 --- a/dbt_macros/dune/expose_spells.sql +++ b/dbt_macros/dune/config_trino_properties.sql @@ -1,3 +1,12 @@ +{%- macro trino_properties(properties) -%} + map_from_entries(ARRAY[ + {%- for key, value in properties.items() %} + ROW('{{ key }}', '{{ value }}') + {%- if not loop.last -%},{%- endif -%} + {%- endfor %} + ]) +{%- endmacro -%} + {% macro expose_spells(blockchains, spell_type, spell_name, contributors) %} {%- set validated_contributors = tojson(fromjson(contributors | as_text)) -%} {%- if ("%s" % validated_contributors) == "null" -%} @@ -24,11 +33,20 @@ {%- endif -%} {%- endmacro -%} -{%- macro trino_properties(properties) -%} - map_from_entries(ARRAY[ - {%- for key, value in properties.items() %} - ROW('{{ key }}', '{{ value }}') - {%- if not loop.last -%},{%- endif -%} - {%- endfor %} - ]) -{%- endmacro -%} +{% macro hide_spells() %} + {%- if target.name == 'prod' -%} + {%- set properties = { + 'dune.public': 'false', + 'dune.data_explorer.category': 'abstraction', + 'dune.vacuum': '{"enabled":true}' + } -%} + {%- if model.config.materialized == "view" -%} + CALL {{ model.database }}._internal.alter_view_properties('{{ model.schema }}', '{{ model.alias }}', + {{ trino_properties(properties) }} + ) + {%- else -%} + ALTER TABLE {{ this }} + SET PROPERTIES extra_properties = {{ trino_properties(properties) }} + {%- endif -%} + {%- endif -%} +{%- endmacro -%} \ No newline at end of file diff --git a/dbt_subprojects/tokens/models/transfers_and_balances/arbitrum/tokens_arbitrum_balances.sql b/dbt_subprojects/tokens/models/transfers_and_balances/arbitrum/tokens_arbitrum_balances.sql index d6becb3d289..c3393519d74 100644 --- a/dbt_subprojects/tokens/models/transfers_and_balances/arbitrum/tokens_arbitrum_balances.sql +++ b/dbt_subprojects/tokens/models/transfers_and_balances/arbitrum/tokens_arbitrum_balances.sql @@ -2,11 +2,7 @@ schema = 'tokens_arbitrum', alias = 'balances', materialized = 'view', - post_hook = '{{ expose_spells( - blockchains = \'["arbitrum"]\', - spell_type = "sector", - spell_name = "balances", - contributors = \'["aalan3"]\') }}' + post_hook = '{{ hide_spells() }}' ) }} diff --git a/dbt_subprojects/tokens/models/transfers_and_balances/arbitrum/tokens_arbitrum_balances_daily.sql b/dbt_subprojects/tokens/models/transfers_and_balances/arbitrum/tokens_arbitrum_balances_daily.sql index a0171f63ef9..9a994f93cc5 100644 --- a/dbt_subprojects/tokens/models/transfers_and_balances/arbitrum/tokens_arbitrum_balances_daily.sql +++ b/dbt_subprojects/tokens/models/transfers_and_balances/arbitrum/tokens_arbitrum_balances_daily.sql @@ -2,11 +2,7 @@ schema = 'tokens_arbitrum', alias = 'balances_daily', materialized = 'view', - post_hook = '{{ expose_spells( - blockchains = \'["arbitrum"]\', - spell_type = "sector", - spell_name = "balances", - contributors = \'["0xRob"]\') }}' + post_hook = '{{ hide_spells() }}' ) }} diff --git a/dbt_subprojects/tokens/models/transfers_and_balances/avalanche_c/tokens_avalanche_c_balances.sql b/dbt_subprojects/tokens/models/transfers_and_balances/avalanche_c/tokens_avalanche_c_balances.sql index 4b81b675faf..9129b19905d 100644 --- a/dbt_subprojects/tokens/models/transfers_and_balances/avalanche_c/tokens_avalanche_c_balances.sql +++ b/dbt_subprojects/tokens/models/transfers_and_balances/avalanche_c/tokens_avalanche_c_balances.sql @@ -2,11 +2,7 @@ schema = 'tokens_avalanche_c', alias = 'balances', materialized = 'view', - post_hook = '{{ expose_spells( - blockchains = \'["avalanche_c"]\', - spell_type = "sector", - spell_name = "balances", - contributors = \'["aalan3"]\') }}' + post_hook = '{{ hide_spells() }}' ) }} diff --git a/dbt_subprojects/tokens/models/transfers_and_balances/avalanche_c/tokens_avalanche_c_balances_daily.sql b/dbt_subprojects/tokens/models/transfers_and_balances/avalanche_c/tokens_avalanche_c_balances_daily.sql index 5568b2beaa4..ab3aae499a1 100644 --- a/dbt_subprojects/tokens/models/transfers_and_balances/avalanche_c/tokens_avalanche_c_balances_daily.sql +++ b/dbt_subprojects/tokens/models/transfers_and_balances/avalanche_c/tokens_avalanche_c_balances_daily.sql @@ -2,11 +2,7 @@ schema = 'tokens_avalanche_c', alias = 'balances_daily', materialized = 'view', - post_hook = '{{ expose_spells( - blockchains = \'["avalanche_c"]\', - spell_type = "sector", - spell_name = "balances", - contributors = \'["0xRob"]\') }}' + post_hook = '{{ hide_spells() }}' ) }} diff --git a/dbt_subprojects/tokens/models/transfers_and_balances/base/tokens_base_balances.sql b/dbt_subprojects/tokens/models/transfers_and_balances/base/tokens_base_balances.sql index e26ba41c5b4..0580f9a249f 100644 --- a/dbt_subprojects/tokens/models/transfers_and_balances/base/tokens_base_balances.sql +++ b/dbt_subprojects/tokens/models/transfers_and_balances/base/tokens_base_balances.sql @@ -2,11 +2,7 @@ schema = 'tokens_base', alias = 'balances', materialized = 'view', - post_hook = '{{ expose_spells( - blockchains = \'["base"]\', - spell_type = "sector", - spell_name = "balances", - contributors = \'["aalan3"]\') }}' + post_hook = '{{ hide_spells() }}' ) }} diff --git a/dbt_subprojects/tokens/models/transfers_and_balances/base/tokens_base_balances_daily.sql b/dbt_subprojects/tokens/models/transfers_and_balances/base/tokens_base_balances_daily.sql index 3b66eaa17d1..18276ccb4fe 100644 --- a/dbt_subprojects/tokens/models/transfers_and_balances/base/tokens_base_balances_daily.sql +++ b/dbt_subprojects/tokens/models/transfers_and_balances/base/tokens_base_balances_daily.sql @@ -2,11 +2,7 @@ schema = 'tokens_base', alias = 'balances_daily', materialized = 'view', - post_hook = '{{ expose_spells( - blockchains = \'["base"]\', - spell_type = "sector", - spell_name = "balances", - contributors = \'["0xRob"]\') }}' + post_hook = '{{ hide_spells() }}' ) }} diff --git a/dbt_subprojects/tokens/models/transfers_and_balances/bitcoin/balances_bitcoin_satoshi_day.sql b/dbt_subprojects/tokens/models/transfers_and_balances/bitcoin/balances_bitcoin_satoshi_day.sql index c24ac2a15c7..69e504157bb 100644 --- a/dbt_subprojects/tokens/models/transfers_and_balances/bitcoin/balances_bitcoin_satoshi_day.sql +++ b/dbt_subprojects/tokens/models/transfers_and_balances/bitcoin/balances_bitcoin_satoshi_day.sql @@ -3,10 +3,7 @@ alias = 'satoshi_day', partition_by = ['day'], - post_hook='{{ expose_spells(\'["bitcoin"]\', - "sector", - "balances", - \'["longnhbkhn"]\') }}' + post_hook='{{ hide_spells() }}' ) }} diff --git a/dbt_subprojects/tokens/models/transfers_and_balances/bitcoin/balances_bitcoin_satoshi_latest_day.sql b/dbt_subprojects/tokens/models/transfers_and_balances/bitcoin/balances_bitcoin_satoshi_latest_day.sql index 02d4b313002..f43bb4aeb63 100644 --- a/dbt_subprojects/tokens/models/transfers_and_balances/bitcoin/balances_bitcoin_satoshi_latest_day.sql +++ b/dbt_subprojects/tokens/models/transfers_and_balances/bitcoin/balances_bitcoin_satoshi_latest_day.sql @@ -3,10 +3,7 @@ alias = 'satoshi_latest_day', materialized='view', - post_hook='{{ expose_spells(\'["bitcoin"]\', - "sector", - "balances", - \'["gandalf"]\') }}' + post_hook='{{ hide_spells() }}' ) }} diff --git a/dbt_subprojects/tokens/models/transfers_and_balances/bnb/tokens_bnb_balances.sql b/dbt_subprojects/tokens/models/transfers_and_balances/bnb/tokens_bnb_balances.sql index 9016b5a430f..7eba1d35ea7 100644 --- a/dbt_subprojects/tokens/models/transfers_and_balances/bnb/tokens_bnb_balances.sql +++ b/dbt_subprojects/tokens/models/transfers_and_balances/bnb/tokens_bnb_balances.sql @@ -2,11 +2,7 @@ schema = 'tokens_bnb', alias = 'balances', materialized = 'view', - post_hook = '{{ expose_spells( - blockchains = \'["bnb"]\', - spell_type = "sector", - spell_name = "balances", - contributors = \'["aalan3"]\') }}' + post_hook = '{{ hide_spells() }}' ) }} diff --git a/dbt_subprojects/tokens/models/transfers_and_balances/ethereum/tokens_ethereum_balances.sql b/dbt_subprojects/tokens/models/transfers_and_balances/ethereum/tokens_ethereum_balances.sql index 8b2f5b05427..cdd8ec510b3 100644 --- a/dbt_subprojects/tokens/models/transfers_and_balances/ethereum/tokens_ethereum_balances.sql +++ b/dbt_subprojects/tokens/models/transfers_and_balances/ethereum/tokens_ethereum_balances.sql @@ -2,11 +2,7 @@ schema = 'tokens_ethereum', alias = 'balances', materialized = 'view', - post_hook = '{{ expose_spells( - blockchains = \'["ethereum"]\', - spell_type = "sector", - spell_name = "balances", - contributors = \'["aalan3"]\') }}' + post_hook = '{{ hide_spells() }}' ) }} diff --git a/dbt_subprojects/tokens/models/transfers_and_balances/ethereum/tokens_ethereum_balances_daily.sql b/dbt_subprojects/tokens/models/transfers_and_balances/ethereum/tokens_ethereum_balances_daily.sql index b40c2ab306f..c158bb6ace8 100644 --- a/dbt_subprojects/tokens/models/transfers_and_balances/ethereum/tokens_ethereum_balances_daily.sql +++ b/dbt_subprojects/tokens/models/transfers_and_balances/ethereum/tokens_ethereum_balances_daily.sql @@ -2,11 +2,7 @@ schema = 'tokens_ethereum', alias = 'balances_daily', materialized = 'view', - post_hook = '{{ expose_spells( - blockchains = \'["ethereum"]\', - spell_type = "sector", - spell_name = "balances", - contributors = \'["0xRob"]\') }}' + post_hook = '{{ hide_spells() }}' ) }} diff --git a/dbt_subprojects/tokens/models/transfers_and_balances/kaia/tokens_kaia_balances.sql b/dbt_subprojects/tokens/models/transfers_and_balances/kaia/tokens_kaia_balances.sql index f272f899bf5..ae0e917b6a2 100644 --- a/dbt_subprojects/tokens/models/transfers_and_balances/kaia/tokens_kaia_balances.sql +++ b/dbt_subprojects/tokens/models/transfers_and_balances/kaia/tokens_kaia_balances.sql @@ -2,11 +2,7 @@ schema = 'tokens_kaia', alias = 'balances', materialized = 'view', - post_hook = '{{ expose_spells( - blockchains = \'["kaia"]\', - spell_type = "sector", - spell_name = "balances", - contributors = \'["aalan3"]\') }}' + post_hook = '{{ hide_spells() }}' ) }} diff --git a/dbt_subprojects/tokens/models/transfers_and_balances/kaia/tokens_kaia_balances_daily.sql b/dbt_subprojects/tokens/models/transfers_and_balances/kaia/tokens_kaia_balances_daily.sql index 4d75e57f504..26d3cec3712 100644 --- a/dbt_subprojects/tokens/models/transfers_and_balances/kaia/tokens_kaia_balances_daily.sql +++ b/dbt_subprojects/tokens/models/transfers_and_balances/kaia/tokens_kaia_balances_daily.sql @@ -2,11 +2,7 @@ schema = 'tokens_kaia', alias = 'balances_daily', materialized = 'view', - post_hook = '{{ expose_spells( - blockchains = \'["kaia"]\', - spell_type = "sector", - spell_name = "balances", - contributors = \'["0xRob"]\') }}' + post_hook = '{{ hide_spells() }}' ) }} diff --git a/dbt_subprojects/tokens/models/transfers_and_balances/linea/tokens_linea_balances.sql b/dbt_subprojects/tokens/models/transfers_and_balances/linea/tokens_linea_balances.sql index 21276af0455..1e7440dbc76 100644 --- a/dbt_subprojects/tokens/models/transfers_and_balances/linea/tokens_linea_balances.sql +++ b/dbt_subprojects/tokens/models/transfers_and_balances/linea/tokens_linea_balances.sql @@ -2,11 +2,7 @@ schema = 'tokens_linea', alias = 'balances', materialized = 'view', - post_hook = '{{ expose_spells( - blockchains = \'["linea"]\', - spell_type = "sector", - spell_name = "balances", - contributors = \'["aalan3"]\') }}' + post_hook = '{{ hide_spells() }}' ) }} diff --git a/dbt_subprojects/tokens/models/transfers_and_balances/linea/tokens_linea_balances_daily.sql b/dbt_subprojects/tokens/models/transfers_and_balances/linea/tokens_linea_balances_daily.sql index 33f32d8802b..cdac4effc5e 100644 --- a/dbt_subprojects/tokens/models/transfers_and_balances/linea/tokens_linea_balances_daily.sql +++ b/dbt_subprojects/tokens/models/transfers_and_balances/linea/tokens_linea_balances_daily.sql @@ -2,11 +2,7 @@ schema = 'tokens_linea', alias = 'balances_daily', materialized = 'view', - post_hook = '{{ expose_spells( - blockchains = \'["linea"]\', - spell_type = "sector", - spell_name = "balances", - contributors = \'["0xRob"]\') }}' + post_hook = '{{ hide_spells() }}' ) }} diff --git a/dbt_subprojects/tokens/models/transfers_and_balances/optimism/tokens_optimism_balances.sql b/dbt_subprojects/tokens/models/transfers_and_balances/optimism/tokens_optimism_balances.sql index 38818defdc0..266a43d031b 100644 --- a/dbt_subprojects/tokens/models/transfers_and_balances/optimism/tokens_optimism_balances.sql +++ b/dbt_subprojects/tokens/models/transfers_and_balances/optimism/tokens_optimism_balances.sql @@ -2,11 +2,7 @@ schema = 'tokens_optimism', alias = 'balances', materialized = 'view', - post_hook = '{{ expose_spells( - blockchains = \'["optimism"]\', - spell_type = "sector", - spell_name = "balances", - contributors = \'["aalan3"]\') }}' + post_hook = '{{ hide_spells() }}' ) }} diff --git a/dbt_subprojects/tokens/models/transfers_and_balances/optimism/tokens_optimism_balances_daily.sql b/dbt_subprojects/tokens/models/transfers_and_balances/optimism/tokens_optimism_balances_daily.sql index fde7c997840..3bb3362dfb0 100644 --- a/dbt_subprojects/tokens/models/transfers_and_balances/optimism/tokens_optimism_balances_daily.sql +++ b/dbt_subprojects/tokens/models/transfers_and_balances/optimism/tokens_optimism_balances_daily.sql @@ -2,11 +2,7 @@ schema = 'tokens_optimism', alias = 'balances_daily', materialized = 'view', - post_hook = '{{ expose_spells( - blockchains = \'["optimism"]\', - spell_type = "sector", - spell_name = "balances", - contributors = \'["0xRob"]\') }}' + post_hook = '{{ hide_spells() }}' ) }} diff --git a/dbt_subprojects/tokens/models/transfers_and_balances/polygon/tokens_polygon_balances.sql b/dbt_subprojects/tokens/models/transfers_and_balances/polygon/tokens_polygon_balances.sql index 6783852122a..ca0caaa8c58 100644 --- a/dbt_subprojects/tokens/models/transfers_and_balances/polygon/tokens_polygon_balances.sql +++ b/dbt_subprojects/tokens/models/transfers_and_balances/polygon/tokens_polygon_balances.sql @@ -2,11 +2,7 @@ schema = 'tokens_polygon', alias = 'balances', materialized = 'view', - post_hook = '{{ expose_spells( - blockchains = \'["polygon"]\', - spell_type = "sector", - spell_name = "balances", - contributors = \'["aalan3"]\') }}' + post_hook = '{{ hide_spells() }}' ) }} diff --git a/dbt_subprojects/tokens/models/transfers_and_balances/polygon/tokens_polygon_balances_daily.sql b/dbt_subprojects/tokens/models/transfers_and_balances/polygon/tokens_polygon_balances_daily.sql index a6c35a796f0..af3b5897741 100644 --- a/dbt_subprojects/tokens/models/transfers_and_balances/polygon/tokens_polygon_balances_daily.sql +++ b/dbt_subprojects/tokens/models/transfers_and_balances/polygon/tokens_polygon_balances_daily.sql @@ -2,11 +2,7 @@ schema = 'tokens_polygon', alias = 'balances_daily', materialized = 'view', - post_hook = '{{ expose_spells( - blockchains = \'["polygon"]\', - spell_type = "sector", - spell_name = "balances", - contributors = \'["0xRob"]\') }}' + post_hook = '{{ hide_spells() }}' ) }} diff --git a/dbt_subprojects/tokens/models/transfers_and_balances/scroll/tokens_scroll_balances.sql b/dbt_subprojects/tokens/models/transfers_and_balances/scroll/tokens_scroll_balances.sql index 3fa61f14926..9e33f40abda 100644 --- a/dbt_subprojects/tokens/models/transfers_and_balances/scroll/tokens_scroll_balances.sql +++ b/dbt_subprojects/tokens/models/transfers_and_balances/scroll/tokens_scroll_balances.sql @@ -2,11 +2,7 @@ schema = 'tokens_scroll', alias = 'balances', materialized = 'view', - post_hook = '{{ expose_spells( - blockchains = \'["scroll"]\', - spell_type = "sector", - spell_name = "balances", - contributors = \'["aalan3"]\') }}' + post_hook = '{{ hide_spells() }}' ) }} diff --git a/dbt_subprojects/tokens/models/transfers_and_balances/scroll/tokens_scroll_balances_daily.sql b/dbt_subprojects/tokens/models/transfers_and_balances/scroll/tokens_scroll_balances_daily.sql index 27843664ea8..40674a32cb1 100644 --- a/dbt_subprojects/tokens/models/transfers_and_balances/scroll/tokens_scroll_balances_daily.sql +++ b/dbt_subprojects/tokens/models/transfers_and_balances/scroll/tokens_scroll_balances_daily.sql @@ -2,11 +2,7 @@ schema = 'tokens_scroll', alias = 'balances_daily', materialized = 'view', - post_hook = '{{ expose_spells( - blockchains = \'["scroll"]\', - spell_type = "sector", - spell_name = "balances", - contributors = \'["0xRob"]\') }}' + post_hook = '{{ hide_spells() }}' ) }} diff --git a/dbt_subprojects/tokens/models/transfers_and_balances/worldchain/tokens_worldchain_balances.sql b/dbt_subprojects/tokens/models/transfers_and_balances/worldchain/tokens_worldchain_balances.sql index 16355b0f978..66714f04b1f 100644 --- a/dbt_subprojects/tokens/models/transfers_and_balances/worldchain/tokens_worldchain_balances.sql +++ b/dbt_subprojects/tokens/models/transfers_and_balances/worldchain/tokens_worldchain_balances.sql @@ -2,11 +2,7 @@ schema = 'tokens_worldchain', alias = 'balances', materialized = 'view', - post_hook = '{{ expose_spells( - blockchains = \'["worldchain"]\', - spell_type = "sector", - spell_name = "balances", - contributors = \'["aalan3"]\') }}' + post_hook = '{{ hide_spells() }}' ) }} diff --git a/dbt_subprojects/tokens/models/transfers_and_balances/worldchain/tokens_worldchain_balances_daily.sql b/dbt_subprojects/tokens/models/transfers_and_balances/worldchain/tokens_worldchain_balances_daily.sql index 63b4b4665fb..91d32490d41 100644 --- a/dbt_subprojects/tokens/models/transfers_and_balances/worldchain/tokens_worldchain_balances_daily.sql +++ b/dbt_subprojects/tokens/models/transfers_and_balances/worldchain/tokens_worldchain_balances_daily.sql @@ -2,11 +2,7 @@ schema = 'tokens_worldchain', alias = 'balances_daily', materialized = 'view', - post_hook = '{{ expose_spells( - blockchains = \'["worldchain"]\', - spell_type = "sector", - spell_name = "balances", - contributors = \'["0xRob"]\') }}' + post_hook = '{{ hide_spells() }}' ) }} From c2d1b41e2bf03f72edb1fe2bca0bfbbf683bc6dd Mon Sep 17 00:00:00 2001 From: Alexey Shchur Date: Sun, 3 Aug 2025 20:14:56 +0300 Subject: [PATCH 45/60] fix: map_internal_to_dex macro (rely on from alias) --- .../models/_project/paraswap/delta/map_internal_to_dex.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/map_internal_to_dex.sql b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/map_internal_to_dex.sql index 1131ed0e5e1..b9db6f471e7 100644 --- a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/map_internal_to_dex.sql +++ b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/map_internal_to_dex.sql @@ -55,7 +55,7 @@ select call_block_number as block_number, raw_tx_gas_used, raw_tx_gas_price, - src.gas_fee_usd, + {{from_alias}}.gas_fee_usd, wnt_price_usd, executor from {{from_alias}} From 505669a90d34cb528e40b6e4964875ebe4d94d31 Mon Sep 17 00:00:00 2001 From: Alexey Shchur Date: Sun, 3 Aug 2025 21:23:31 +0300 Subject: [PATCH 46/60] fix: grab txs data from sources, not directly --- .../models/_project/paraswap/delta/v2/methods/swap_settle.sql | 2 +- .../_project/paraswap/delta/v2/methods/swap_settle_batch.sql | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle.sql b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle.sql index 2861dc8731d..c59b761bf90 100644 --- a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle.sql +++ b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle.sql @@ -40,7 +40,7 @@ v2_swap_settle_withParsedOrderData AS ( raw_txs.gas_used as raw_tx_gas_used, raw_txs.gas_price as raw_tx_gas_price FROM {{ source("paraswapdelta_"+ blockchain, "ParaswapDeltav2_call_swapSettle") }} ss - left join {{blockchain}}.transactions raw_txs + left join {{source(blockchain, "transactions")}} raw_txs on block_time > TIMESTAMP '{{method_start_date}}' AND raw_txs.hash = ss.call_tx_hash WHERE call_block_time > TIMESTAMP '{{method_start_date}}' diff --git a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle_batch.sql b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle_batch.sql index 041ee4d4e26..e9ac3d593e8 100644 --- a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle_batch.sql +++ b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle_batch.sql @@ -22,7 +22,7 @@ delta_v2_swap_settle_batch_ExpandedOrders as ( raw_txs.gas_used as raw_tx_gas_used, raw_txs.gas_price as raw_tx_gas_price FROM {{ source("paraswapdelta_"+ blockchain, "ParaswapDeltav2_call_swapSettleBatch") }} ssb - left join {{blockchain}}.transactions raw_txs + left join {{source(blockchain, "transactions")}} raw_txs on block_time > TIMESTAMP '{{method_start_date}}' AND raw_txs.hash = ssb.call_tx_hash CROSS JOIN UNNEST ( From b5d1fa3a2203ee33f547dbe5cb949f0ecdd49c4b Mon Sep 17 00:00:00 2001 From: Alexey Shchur Date: Sun, 3 Aug 2025 21:37:00 +0300 Subject: [PATCH 47/60] fix: delta v1 model evt_order_hash cannot be resolved --- .../models/_project/paraswap/delta/map_internal_to_dex.sql | 2 ++ 1 file changed, 2 insertions(+) diff --git a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/map_internal_to_dex.sql b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/map_internal_to_dex.sql index b9db6f471e7..b3e19178831 100644 --- a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/map_internal_to_dex.sql +++ b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/map_internal_to_dex.sql @@ -43,7 +43,9 @@ select '0x(00){12}' )) AS partnerAddress, computed_order_hash, + {% if version == 'v2' %} evt_order_hash, + {% endif %} bridgeMultiCallHandler, bridgeOutputToken, bridgeMaxRelayerFee, From 3b37ecbb95cbacd0ce6f2b39f6e0973363b6bfe6 Mon Sep 17 00:00:00 2001 From: Alexey Shchur Date: Sun, 3 Aug 2025 21:46:50 +0300 Subject: [PATCH 48/60] fix: restirct delta-v2-specific columns in the template --- .../models/_project/paraswap/delta/map_internal_to_dex.sql | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/map_internal_to_dex.sql b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/map_internal_to_dex.sql index b3e19178831..7e200bcf515 100644 --- a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/map_internal_to_dex.sql +++ b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/map_internal_to_dex.sql @@ -44,13 +44,13 @@ select )) AS partnerAddress, computed_order_hash, {% if version == 'v2' %} - evt_order_hash, - {% endif %} + evt_order_hash, bridgeMultiCallHandler, bridgeOutputToken, bridgeMaxRelayerFee, bridgeDestinationChainId, bridge, + {% endif %} "order", "owner", ordersCount, From 5226357a397dcf219cf847ddd2de7e2d80597c06 Mon Sep 17 00:00:00 2001 From: Alexey Shchur Date: Sun, 3 Aug 2025 21:58:05 +0300 Subject: [PATCH 49/60] fix: slit delta v1 and v2 belongings --- .../paraswap/delta/map_internal_to_dex.sql | 40 +++++++++---------- .../v1/methods/safe_settle_batch_swap.sql | 4 +- .../paraswap/delta/v1/methods/settle_swap.sql | 4 +- 3 files changed, 22 insertions(+), 26 deletions(-) diff --git a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/map_internal_to_dex.sql b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/map_internal_to_dex.sql index 7e200bcf515..a7f3b51d38f 100644 --- a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/map_internal_to_dex.sql +++ b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/map_internal_to_dex.sql @@ -33,33 +33,33 @@ select case when CARDINALITY(call_trace_address) > 0 then call_trace_address else ARRAY[-1] end as trace_address, COALESCE(evt_index, 0) as evt_index, -- TMP: after joining envents in swapSettle can remove it order_index, - method, - from_hex(regexp_replace( + method + {% if version == 'v2' %} + ,from_hex(regexp_replace( try_cast( TRY_CAST( BITWISE_RIGHT_SHIFT(partnerAndFee, 96) AS VARBINARY ) as VARCHAR ), '0x(00){12}' - )) AS partnerAddress, - computed_order_hash, - {% if version == 'v2' %} - evt_order_hash, - bridgeMultiCallHandler, - bridgeOutputToken, - bridgeMaxRelayerFee, - bridgeDestinationChainId, - bridge, + )) AS partnerAddress + ,computed_order_hash + ,evt_order_hash + ,bridgeMultiCallHandler + ,bridgeOutputToken + ,bridgeMaxRelayerFee + ,bridgeDestinationChainId + ,bridge + ,"order" + ,"owner" + ,ordersCount + ,call_block_number as block_number + ,raw_tx_gas_used + ,raw_tx_gas_price + ,{{from_alias}}.gas_fee_usd + ,wnt_price_usd + ,executor {% endif %} - "order", - "owner", - ordersCount, - call_block_number as block_number, - raw_tx_gas_used, - raw_tx_gas_price, - {{from_alias}}.gas_fee_usd, - wnt_price_usd, - executor from {{from_alias}} LEFT JOIN {{ source('tokens', 'erc20') }} t_src_token diff --git a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v1/methods/safe_settle_batch_swap.sql b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v1/methods/safe_settle_batch_swap.sql index 0b571d19ad9..e9f2436ba9f 100644 --- a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v1/methods/safe_settle_batch_swap.sql +++ b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v1/methods/safe_settle_batch_swap.sql @@ -117,9 +117,7 @@ ORDER BY gas_fee_usd, src_token_order_usd, dest_token_order_usd, - contract_address, - cast(0 as uint256) as partnerAndFee, -- v1 didn't have partnerAndFee - 0x00 as computed_order_hash -- TODO + contract_address from delta_v1_safe_settle_batch_swap_model ) {% endmacro %} \ No newline at end of file diff --git a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v1/methods/settle_swap.sql b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v1/methods/settle_swap.sql index 494abed2656..a240e868b9d 100644 --- a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v1/methods/settle_swap.sql +++ b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v1/methods/settle_swap.sql @@ -114,9 +114,7 @@ select gas_fee_usd, src_token_order_usd, dest_token_order_usd, - contract_address, - cast(0 as uint256) as partnerAndFee, -- v1 didn't have partnerAndFee - 0x00 as computed_order_hash -- TODO + contract_address from delta_v1_settle_swap_model ) {% endmacro %} \ No newline at end of file From 9cdb83bb3d7e18d19980dfee43ac7a95c896b49f Mon Sep 17 00:00:00 2001 From: Alexey Shchur Date: Sun, 3 Aug 2025 22:30:53 +0300 Subject: [PATCH 50/60] fix: wrapped native token --- .../models/_project/paraswap/delta/map_internal_to_dex.sql | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/map_internal_to_dex.sql b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/map_internal_to_dex.sql index a7f3b51d38f..3eed7e0cae3 100644 --- a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/map_internal_to_dex.sql +++ b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/map_internal_to_dex.sql @@ -64,9 +64,9 @@ select LEFT JOIN {{ source('tokens', 'erc20') }} t_src_token ON t_src_token.blockchain = '{{blockchain}}' - AND t_src_token.contract_address = src_token + AND t_src_token.contract_address = src_token_for_joining LEFT JOIN {{ source('tokens', 'erc20') }} t_dest_token ON t_dest_token.blockchain = '{{blockchain}}' - AND t_dest_token.contract_address = dest_token + AND t_dest_token.contract_address = dest_token_for_joining {% endmacro %} From f13b482c78d709483ea0be155b1cde1c543be370 Mon Sep 17 00:00:00 2001 From: Alexey Shchur Date: Sun, 3 Aug 2025 22:49:29 +0300 Subject: [PATCH 51/60] fix: return base trades v6 augustus --- .../dex/models/_projects/paraswap/base/paraswap_base_trades.sql | 1 + 1 file changed, 1 insertion(+) diff --git a/dbt_subprojects/dex/models/_projects/paraswap/base/paraswap_base_trades.sql b/dbt_subprojects/dex/models/_projects/paraswap/base/paraswap_base_trades.sql index c22dcd64d01..05a0ad40c1e 100644 --- a/dbt_subprojects/dex/models/_projects/paraswap/base/paraswap_base_trades.sql +++ b/dbt_subprojects/dex/models/_projects/paraswap/base/paraswap_base_trades.sql @@ -8,6 +8,7 @@ {% set paraswap_models = [ ref('paraswap_v5_base_trades') ,ref('paraswap_delta_v2_base_trades') +,ref('paraswap_v6_base_trades') ] %} --exclude trouble model: ,ref('paraswap_v6_base_trades') From 611cdbc7958e412740a7f6dd0cb2823503e0e9c4 Mon Sep 17 00:00:00 2001 From: Alexey Shchur Date: Mon, 4 Aug 2025 07:33:44 +0300 Subject: [PATCH 52/60] delta v2: gas_fee_usd annotations fix --- .../delta/v2/executor_fee_amount_usd.sql | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/executor_fee_amount_usd.sql b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/executor_fee_amount_usd.sql index 335cdd25868..71b610a9f20 100644 --- a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/executor_fee_amount_usd.sql +++ b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/executor_fee_amount_usd.sql @@ -1,13 +1,13 @@ {% macro gas_fee_usd() %} - -case WHEN w.executorFeeAmount > 0 then - COALESCE( - d.price * w.executorFeeAmount / POWER(10, d.decimals), -- compute directly (dest token is gas fee compensation if it's augustus axecutor) - s.price * w.srcAmount / POWER(10, s.decimals) * CAST (w.executorFeeAmount AS DECIMAL) / (CAST (w.destAmount AS DECIMAL)), -- compute pro-rata based on src token if it's augustus executor - -- TODO: also add 3rd party executor fee compensation -- based on spent native token, divided by amount of orders if multiple - 0 - ) - else wnt_usd.price * raw_tx_gas_used * raw_tx_gas_price / POWER(10, wnt_usd.decimals) -- COALESCE(CAST(s.price AS DECIMAL(38,18)), 0) - END - AS gas_fee_usd + case + WHEN w.executorFeeAmount > 0 + then + COALESCE( + d.price * w.executorFeeAmount / POWER(10, d.decimals), -- compute directly (dest token is gas fee compensation if it's augustus axecutor) + s.price * w.srcAmount / POWER(10, s.decimals) * CAST (w.executorFeeAmount AS DECIMAL) / (CAST (w.destAmount AS DECIMAL)), -- compute pro-rata based on src token if it's augustus executor + ) + else + -- if can't parse executorFeeAmount - fall back to spent native token, divided by amount of orders if multiple + wnt_usd.price * raw_tx_gas_used * raw_tx_gas_price / POWER(10, wnt_usd.decimals) + END AS gas_fee_usd {% endmacro %} From f06dde2c6deff0e50e692eace06bc4dd3cea14f2 Mon Sep 17 00:00:00 2001 From: Alexey Shchur Date: Mon, 4 Aug 2025 07:40:43 +0300 Subject: [PATCH 53/60] fix: add returnAmount, protocolFee and partnerFee to the delta v2 model --- .../models/_project/paraswap/delta/map_internal_to_dex.sql | 3 +++ .../_project/paraswap/delta/v2/methods/swap_settle.sql | 6 +++--- .../paraswap/delta/v2/methods/swap_settle_batch.sql | 6 +++--- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/map_internal_to_dex.sql b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/map_internal_to_dex.sql index 3eed7e0cae3..4d79dfefa46 100644 --- a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/map_internal_to_dex.sql +++ b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/map_internal_to_dex.sql @@ -59,6 +59,9 @@ select ,{{from_alias}}.gas_fee_usd ,wnt_price_usd ,executor + ,returnAmount -- uint256 + ,protocolFee -- uint256 + ,partnerFee -- uint256 {% endif %} from {{from_alias}} LEFT JOIN diff --git a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle.sql b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle.sql index c59b761bf90..348f9c407d8 100644 --- a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle.sql +++ b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle.sql @@ -20,9 +20,9 @@ -- destToken varbinary -- srcAmount uint256 -- destAmount uint256 --- returnAmount uint256 -- TODO: add this field to the model --- protocolFee uint256 -- TODO: add this field to the model --- partnerFee uint256 -- TODO: add this field to the model +-- returnAmount uint256 +-- protocolFee uint256 +-- partnerFee uint256 v2_swap_settle_withParsedOrderData AS ( diff --git a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle_batch.sql b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle_batch.sql index e9ac3d593e8..5283c121605 100644 --- a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle_batch.sql +++ b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle_batch.sql @@ -154,9 +154,9 @@ from delta_v2_swap_settle_batch_withEvents w -- destToken varbinary -- srcAmount uint256 -- destAmount uint256 --- returnAmount uint256 -- TODO: add this field to the model --- protocolFee uint256 -- TODO: add this field to the model --- partnerFee uint256 -- TODO: add this field to the model +-- returnAmount uint256 +-- protocolFee uint256 +-- partnerFee uint256 ), delta_v2_swapSettleBatch as ( SELECT -- NB: columns mapping must match accross all the methods, since they're unioned into one in master macro From 446746d8212eb75baee0cf58ffb56f825c11dd21 Mon Sep 17 00:00:00 2001 From: Alexey Shchur Date: Mon, 4 Aug 2025 07:43:51 +0300 Subject: [PATCH 54/60] fix: syntax / redundant comma --- .../_project/paraswap/delta/v2/executor_fee_amount_usd.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/executor_fee_amount_usd.sql b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/executor_fee_amount_usd.sql index 71b610a9f20..0cb9048c4cc 100644 --- a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/executor_fee_amount_usd.sql +++ b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/executor_fee_amount_usd.sql @@ -4,7 +4,7 @@ then COALESCE( d.price * w.executorFeeAmount / POWER(10, d.decimals), -- compute directly (dest token is gas fee compensation if it's augustus axecutor) - s.price * w.srcAmount / POWER(10, s.decimals) * CAST (w.executorFeeAmount AS DECIMAL) / (CAST (w.destAmount AS DECIMAL)), -- compute pro-rata based on src token if it's augustus executor + s.price * w.srcAmount / POWER(10, s.decimals) * CAST (w.executorFeeAmount AS DECIMAL) / (CAST (w.destAmount AS DECIMAL)) -- compute pro-rata based on src token if it's augustus executor ) else -- if can't parse executorFeeAmount - fall back to spent native token, divided by amount of orders if multiple From 7c077355b71d357c13efb80fb67d583f62189089 Mon Sep 17 00:00:00 2001 From: Alexey Shchur Date: Mon, 4 Aug 2025 08:01:18 +0300 Subject: [PATCH 55/60] fix: some columns names --- .../models/_project/paraswap/delta/map_internal_to_dex.sql | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/map_internal_to_dex.sql b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/map_internal_to_dex.sql index 4d79dfefa46..962cc8b4e2d 100644 --- a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/map_internal_to_dex.sql +++ b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/map_internal_to_dex.sql @@ -59,9 +59,9 @@ select ,{{from_alias}}.gas_fee_usd ,wnt_price_usd ,executor - ,returnAmount -- uint256 - ,protocolFee -- uint256 - ,partnerFee -- uint256 + ,evt_return_amount -- uint256 + ,evt_protocol_fee -- uint256 + ,evt_partner_fee -- uint256 {% endif %} from {{from_alias}} LEFT JOIN From fc9a501c984eb134a0907ca5a943ceadfdf0b08a Mon Sep 17 00:00:00 2001 From: Alexey Shchur Date: Mon, 4 Aug 2025 08:22:36 +0300 Subject: [PATCH 56/60] fix: delta v2 dates --- .../models/_project/paraswap/delta/v2/methods/swap_settle.sql | 2 +- .../_project/paraswap/delta/v2/methods/swap_settle_batch.sql | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle.sql b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle.sql index 348f9c407d8..a7212153f45 100644 --- a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle.sql +++ b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle.sql @@ -1,6 +1,6 @@ {% macro delta_v2_swap_settle(blockchain) %} -- since this call always is a whole-order-at-once fulfillment, can source it from method calls and no need to join with events as all data is in the call -{% set method_start_date = '2025-04-01' %} +{% set method_start_date = '2024-11-04' %} -- order_hash_computed diff --git a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle_batch.sql b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle_batch.sql index 5283c121605..09913f25951 100644 --- a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle_batch.sql +++ b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle_batch.sql @@ -1,6 +1,6 @@ {% macro delta_v2_swap_settle_batch(blockchain) %} -{% set method_start_date = '2025-04-01' %} +{% set method_start_date = '2024-11-04' %} delta_v2_swap_settle_batch_ExpandedOrders as ( select From 28077af8f6f06a2b86fac9c377289b86ba56ebc6 Mon Sep 17 00:00:00 2001 From: Alexey Shchur Date: Mon, 4 Aug 2025 08:23:02 +0300 Subject: [PATCH 57/60] fix: ordersCount for delta v2 batched --- .../_project/paraswap/delta/v2/methods/swap_settle_batch.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle_batch.sql b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle_batch.sql index 09913f25951..91c5771da86 100644 --- a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle_batch.sql +++ b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle_batch.sql @@ -16,7 +16,7 @@ delta_v2_swap_settle_batch_ExpandedOrders as ( -- ordersWithSigs[order_index] as extractedOrderWithSig, JSON_EXTRACT_SCALAR(ordersWithSigs[order_index], '$.order') as "order", -- returns json JSON_EXTRACT_SCALAR(ordersWithSigs[order_index], '$.signature') as signature, - 1 as ordersCount, -- TODO + CARDINALITY(ordersWithSigs) as ordersCount, executor, executorData[order_index] as executorData, raw_txs.gas_used as raw_tx_gas_used, From 09d596161ba5f9af6a72c917dcfec7ff8099b146 Mon Sep 17 00:00:00 2001 From: Alexey Shchur Date: Mon, 4 Aug 2025 08:27:00 +0300 Subject: [PATCH 58/60] revert back model that was considered troublesom --- .../dex/models/_projects/paraswap/base/paraswap_base_trades.sql | 1 - 1 file changed, 1 deletion(-) diff --git a/dbt_subprojects/dex/models/_projects/paraswap/base/paraswap_base_trades.sql b/dbt_subprojects/dex/models/_projects/paraswap/base/paraswap_base_trades.sql index 05a0ad40c1e..c22dcd64d01 100644 --- a/dbt_subprojects/dex/models/_projects/paraswap/base/paraswap_base_trades.sql +++ b/dbt_subprojects/dex/models/_projects/paraswap/base/paraswap_base_trades.sql @@ -8,7 +8,6 @@ {% set paraswap_models = [ ref('paraswap_v5_base_trades') ,ref('paraswap_delta_v2_base_trades') -,ref('paraswap_v6_base_trades') ] %} --exclude trouble model: ,ref('paraswap_v6_base_trades') From 79aa89a041932c197f07d83c0c23333c275609bd Mon Sep 17 00:00:00 2001 From: Alexey Shchur Date: Mon, 4 Aug 2025 08:41:10 +0300 Subject: [PATCH 59/60] fix: delta v2: when relying on native token spent as gas fee for batched, divide by ordersCount --- .../_project/paraswap/delta/v2/executor_fee_amount_usd.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/executor_fee_amount_usd.sql b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/executor_fee_amount_usd.sql index 0cb9048c4cc..a6d6bcbc279 100644 --- a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/executor_fee_amount_usd.sql +++ b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/executor_fee_amount_usd.sql @@ -8,6 +8,6 @@ ) else -- if can't parse executorFeeAmount - fall back to spent native token, divided by amount of orders if multiple - wnt_usd.price * raw_tx_gas_used * raw_tx_gas_price / POWER(10, wnt_usd.decimals) + wnt_usd.price * raw_tx_gas_used * raw_tx_gas_price / POWER(10, wnt_usd.decimals) / ordersCount END AS gas_fee_usd {% endmacro %} From 9aa15f9cced16f4d280bf08f42915bcd62acb54b Mon Sep 17 00:00:00 2001 From: Alexey Shchur Date: Mon, 4 Aug 2025 08:51:29 +0300 Subject: [PATCH 60/60] fix: Column 'orderscount' cannot be resolved --- .../_project/paraswap/delta/v2/methods/swap_settle.sql | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle.sql b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle.sql index a7212153f45..85372e3de98 100644 --- a/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle.sql +++ b/dbt_subprojects/dex/macros/models/_project/paraswap/delta/v2/methods/swap_settle.sql @@ -38,7 +38,8 @@ v2_swap_settle_withParsedOrderData AS ( executorData, contract_address, raw_txs.gas_used as raw_tx_gas_used, - raw_txs.gas_price as raw_tx_gas_price + raw_txs.gas_price as raw_tx_gas_price, + 1 as ordersCount FROM {{ source("paraswapdelta_"+ blockchain, "ParaswapDeltav2_call_swapSettle") }} ss left join {{source(blockchain, "transactions")}} raw_txs on block_time > TIMESTAMP '{{method_start_date}}' @@ -183,7 +184,7 @@ SELECT raw_tx_gas_used, raw_tx_gas_price, wnt_price_usd, - 1 as ordersCount, + ordersCount, src_token_order_usd, dest_token_order_usd, contract_address,