From 9ae5446f063600689c26c75e4134591beab1698f Mon Sep 17 00:00:00 2001 From: San Yong <22216004+SanYongxie@users.noreply.github.com> Date: Fri, 16 May 2025 17:46:33 +0100 Subject: [PATCH] update cctp seed and v2 evm logic --- data/silver_bridge__cctp_chain_id_seed.csv | 3 +- .../silver_bridge__cctp_depositforburn.sql | 45 ++++------ .../silver_bridge__cctp_v2_depositforburn.sql | 82 ++++++------------- 3 files changed, 44 insertions(+), 86 deletions(-) diff --git a/data/silver_bridge__cctp_chain_id_seed.csv b/data/silver_bridge__cctp_chain_id_seed.csv index 41122c0..9105cfd 100644 --- a/data/silver_bridge__cctp_chain_id_seed.csv +++ b/data/silver_bridge__cctp_chain_id_seed.csv @@ -10,4 +10,5 @@ polygon pos,7 sui,8 aptos,9 unichain,10 -linea,11 \ No newline at end of file +linea,11 +sonic,13 \ No newline at end of file diff --git a/models/silver/defi/bridge/cctp/silver_bridge__cctp_depositforburn.sql b/models/silver/defi/bridge/cctp/silver_bridge__cctp_depositforburn.sql index 41de8f2..dcd2add 100644 --- a/models/silver/defi/bridge/cctp/silver_bridge__cctp_depositforburn.sql +++ b/models/silver/defi/bridge/cctp/silver_bridge__cctp_depositforburn.sql @@ -24,52 +24,37 @@ WITH base_evt AS ( TRY_TO_NUMBER(utils.udf_hex_to_int(segmented_data [0] :: STRING)) AS burn_amount, TRY_TO_NUMBER(utils.udf_hex_to_int(segmented_data [2] :: STRING)) AS destination_domain, CASE - WHEN destination_domain IN ( - 0, - 1, - 2, - 3, - 6, - 7, - 10 - ) THEN CONCAT('0x', SUBSTR(segmented_data [1] :: STRING, 25, 40)) -- evm WHEN destination_domain = 5 THEN utils.udf_hex_to_base58(CONCAT('0x', segmented_data [1] :: STRING)) -- solana + WHEN LEFT( + segmented_data [1] :: STRING, + 24 + ) = '000000000000000000000000' THEN CONCAT('0x', SUBSTR(segmented_data [1] :: STRING, 25, 40)) -- evm ELSE CONCAT( '0x', segmented_data [1] :: STRING - ) -- other non-evm chains + ) -- non-evm chains END AS mint_recipient, CASE - WHEN destination_domain IN ( - 0, - 1, - 2, - 3, - 6, - 7, - 10 - ) THEN CONCAT('0x', SUBSTR(segmented_data [3] :: STRING, 25, 40)) -- evm WHEN destination_domain = 5 THEN utils.udf_hex_to_base58(CONCAT('0x', segmented_data [3] :: STRING)) -- solana + WHEN LEFT( + segmented_data [3] :: STRING, + 24 + ) = '000000000000000000000000' THEN CONCAT('0x', SUBSTR(segmented_data [3] :: STRING, 25, 40)) -- evm ELSE CONCAT( '0x', segmented_data [3] :: STRING - ) -- other non-evm chains + ) -- non-evm chains END AS destinationTokenMessenger, CASE - WHEN destination_domain IN ( - 0, - 1, - 2, - 3, - 6, - 7, - 10 - ) THEN CONCAT('0x', SUBSTR(segmented_data [4] :: STRING, 25, 40)) -- evm WHEN destination_domain = 5 THEN utils.udf_hex_to_base58(CONCAT('0x', segmented_data [4] :: STRING)) -- solana + WHEN LEFT( + segmented_data [4] :: STRING, + 24 + ) = '000000000000000000000000' THEN CONCAT('0x', SUBSTR(segmented_data [4] :: STRING, 25, 40)) -- evm ELSE CONCAT( '0x', segmented_data [4] :: STRING - ) -- other non-evm chains + ) -- non-evm chains END AS destination_caller, CONCAT( tx_hash, diff --git a/models/silver/defi/bridge/cctp/silver_bridge__cctp_v2_depositforburn.sql b/models/silver/defi/bridge/cctp/silver_bridge__cctp_v2_depositforburn.sql index 81fe8fa..f54dfbf 100644 --- a/models/silver/defi/bridge/cctp/silver_bridge__cctp_v2_depositforburn.sql +++ b/models/silver/defi/bridge/cctp/silver_bridge__cctp_v2_depositforburn.sql @@ -33,83 +33,55 @@ WITH base_evt AS ( decoded_log :destinationDomain :: STRING ) AS destination_domain, CASE - WHEN destination_domain IN ( - 0, - 1, - 2, - 3, - 6, - 7, - 10 - ) THEN CONCAT( + WHEN destination_domain = 5 THEN utils.udf_hex_to_base58( + decoded_log :mintRecipient :: STRING + ) -- solana + WHEN LEFT( + decoded_log :mintRecipient :: STRING, + 26 + ) = '0x000000000000000000000000' THEN CONCAT( '0x', SUBSTR( decoded_log :mintRecipient :: STRING, - 25, + 27, 40 ) ) -- evm - WHEN destination_domain = 5 THEN utils.udf_hex_to_base58(CONCAT('0x', decoded_log :mintRecipient :: STRING)) -- solana - ELSE CONCAT( - '0x', - decoded_log :mintRecipient :: STRING - ) -- other non-evm chains + ELSE decoded_log :mintRecipient :: STRING -- non-evm chains END AS mint_recipient, CASE - WHEN destination_domain IN ( - 0, - 1, - 2, - 3, - 6, - 7, - 10 - ) THEN CONCAT( + WHEN destination_domain = 5 THEN utils.udf_hex_to_base58( + decoded_log :destinationTokenMessenger :: STRING + ) -- solana + WHEN LEFT( + decoded_log :destinationTokenMessenger :: STRING, + 26 + ) = '0x000000000000000000000000' THEN CONCAT( '0x', SUBSTR( decoded_log :destinationTokenMessenger :: STRING, - 25, + 27, 40 ) ) -- evm - WHEN destination_domain = 5 THEN utils.udf_hex_to_base58( - CONCAT( - '0x', - decoded_log :destinationTokenMessenger :: STRING - ) - ) -- solana - ELSE CONCAT( - '0x', - decoded_log :destinationTokenMessenger :: STRING - ) -- other non-evm chains + ELSE decoded_log :destinationTokenMessenger :: STRING -- non-evm chains END AS destination_token_messenger, CASE - WHEN destination_domain IN ( - 0, - 1, - 2, - 3, - 6, - 7, - 10 - ) THEN CONCAT( + WHEN destination_domain = 5 THEN utils.udf_hex_to_base58( + decoded_log :destinationCaller :: STRING + ) -- solana + WHEN LEFT( + decoded_log :destinationCaller :: STRING, + 26 + ) = '0x000000000000000000000000' THEN CONCAT( '0x', SUBSTR( decoded_log :destinationCaller :: STRING, - 25, + 27, 40 ) ) -- evm - WHEN destination_domain = 5 THEN utils.udf_hex_to_base58( - CONCAT( - '0x', - decoded_log :destinationCaller :: STRING - ) - ) -- solana - ELSE CONCAT( - '0x', - decoded_log :destinationCaller :: STRING - ) -- other non-evm chains + ELSE decoded_log :destinationCaller :: STRING -- non-evm chains END AS destination_caller, modified_timestamp, CONCAT(