orbiter and synapse

This commit is contained in:
drethereum 2024-12-11 11:40:31 -07:00
parent 91177eb2d5
commit f5b1975d24
5 changed files with 325 additions and 196 deletions

View File

@ -0,0 +1,58 @@
name,chainid,identificationcode
ethereum,1,9001
arbitrum,42161,9002
zksync_lite,zksync,9003
starknet,SN_MAIN,9004
polygon,137,9006
optimism,10,9007
immutable_x,immutableX,9008
loopring,loopring,9009
metis,1088,9010
zkspace,ZKSpace,9012
zksynce_era,324,9014
bsc,56,9015
arbitrum_nova,42170,9016
polygon_zkevm,1101,9017
scroll,534352,9019
taiko,167000,9020
base,8453,9021
linea,59144,9023
mantle,5000,9024
opbnb,204,9025
x_layer,196,9027
zora,7777777,9030
manta,169,9031
kroma,255,9036
zkfair,42766,9038
blast,81457,9040
zetachain,7000,9041
b2_network,223,9046
mode,34443,9047
zklink_nova,810180,9048
solana,SOLANA_MAIN,9051
morph,2818,9052
proof_of_play_apex,70700,9053
merlin,4200,9054
bevm,11501,9055
ton,TON,9056
bob,60808,9057
core_blockchain,1116,9058
bitlayer,200901,9059
bouncebit,6001,9064
eclipse,ECLIPSE_MAIN,9065
optopia,62050,9066
cyber,7560,9067
mint,185,9068
alienx,10241024,9069
zircuit,48900,9069
fraxtal,252,9069
fuse,122,9069
bomechain,9736,9069
gravity,1625,9069
tron,728126428,9079
matchain,698,9084
lisk,1135,9086
redstone,690,9087
kaia,8217,9089
fuel,FUEL_MAIN,9094
worldchain,480,9095
1 name chainid identificationcode
2 ethereum 1 9001
3 arbitrum 42161 9002
4 zksync_lite zksync 9003
5 starknet SN_MAIN 9004
6 polygon 137 9006
7 optimism 10 9007
8 immutable_x immutableX 9008
9 loopring loopring 9009
10 metis 1088 9010
11 zkspace ZKSpace 9012
12 zksynce_era 324 9014
13 bsc 56 9015
14 arbitrum_nova 42170 9016
15 polygon_zkevm 1101 9017
16 scroll 534352 9019
17 taiko 167000 9020
18 base 8453 9021
19 linea 59144 9023
20 mantle 5000 9024
21 opbnb 204 9025
22 x_layer 196 9027
23 zora 7777777 9030
24 manta 169 9031
25 kroma 255 9036
26 zkfair 42766 9038
27 blast 81457 9040
28 zetachain 7000 9041
29 b2_network 223 9046
30 mode 34443 9047
31 zklink_nova 810180 9048
32 solana SOLANA_MAIN 9051
33 morph 2818 9052
34 proof_of_play_apex 70700 9053
35 merlin 4200 9054
36 bevm 11501 9055
37 ton TON 9056
38 bob 60808 9057
39 core_blockchain 1116 9058
40 bitlayer 200901 9059
41 bouncebit 6001 9064
42 eclipse ECLIPSE_MAIN 9065
43 optopia 62050 9066
44 cyber 7560 9067
45 mint 185 9068
46 alienx 10241024 9069
47 zircuit 48900 9069
48 fraxtal 252 9069
49 fuse 122 9069
50 bomechain 9736 9069
51 gravity 1625 9069
52 tron 728126428 9079
53 matchain 698 9084
54 lisk 1135 9086
55 redstone 690 9087
56 kaia 8217 9089
57 fuel FUEL_MAIN 9094
58 worldchain 480 9095

View File

@ -1,102 +0,0 @@
{{ config(
materialized = 'incremental',
incremental_strategy = 'delete+insert',
unique_key = "block_number",
cluster_by = ['block_timestamp::DATE'],
tags = ['curated','reorg']
) }}
with bridge_router as (
-- for bridge tx utilizing router
select
block_number,
block_timestamp,
origin_from_address,
origin_to_address,
origin_function_signature,
tx_hash,
contract_address,
event_index,
origin_to_address as to_address,
origin_from_address as from_address,
origin_from_address as depositor,
TRY_TO_NUMBER(right(utils.udf_hex_to_int(data :: STRING), 4)) as destinationChainId,
TRY_TO_NUMBER(utils.udf_hex_to_int(data :: STRING)*pow(10,-18)) as value,
origin_from_address as receipient,
concat('0x', substr(topics[1]::STRING, 27, 40)) as bridge_address,
CASE
WHEN tx_status = 'success' THEN TRUE
ELSE FALSE
END AS tx_succeeded,
CONCAT(
tx_hash,
'-',
event_index
) AS _log_id,
modified_timestamp
from {{ ref('core__fact_event_logs') }}
where
1=1
--and bridge_address in ('0xe4edb277e41dc89ab076a1f049f4a3efa700bce8', '0xee73323912a4e3772b74ed0ca1595a152b0ef282') -- orbiter bridge
and topics[0]::STRING ='0x69ca02dd4edd7bf0a4abb9ed3b7af3f14778db5d61921c7dc7cd545266326de2'
and contract_address='0x13e46b2a3f8512ed4682a8fb8b560589fe3c2172'
AND tx_succeeded
{% if is_incremental() %}
AND modified_timestamp >= (
SELECT
MAX(modified_timestamp) - INTERVAL '12 hours'
FROM
{{ this }}
)
AND modified_timestamp >= SYSDATE() - INTERVAL '7 day'
{% endif %}
),
{# bridge_native as (
-- for direct native eth transfers
select
block_number,
block_timestamp,
tx_hash,
to_address,
from_address,
from_address as depositor,
right(value_precise_raw, 4) as destinationChainId,
value,
from_address as receipient,
to_address as bridge_address,
CASE
WHEN status = 'SUCCESS' THEN TRUE
ELSE FALSE
END AS tx_succeeded,
modified_timestamp
from {{ ref('core__fact_transactions') }}
where to_address in ('0xe4edb277e41dc89ab076a1f049f4a3efa700bce8','0x80c67432656d59144ceff962e8faf8926599bcf8')
and tx_succeeded
{% if is_incremental() %}
AND modified_timestamp >= (
SELECT
MAX(modified_timestamp) - INTERVAL '12 hours'
FROM
{{ this }}
)
AND modified_timestamp >= SYSDATE() - INTERVAL '7 day'
{% endif %}
),
bridge_combine as (
select * from bridge_native
union all
select * from bridge_router
)
select
*,
'orbiter finance' as platform,
'0x4300000000000000000000000000000000000004' as token_address, -- hardcoded weth contract address
value as token_amount -- native eth
from
bridge_combine #}

View File

@ -0,0 +1,183 @@
{{ config(
materialized = 'incremental',
incremental_strategy = 'delete+insert',
unique_key = "block_number",
cluster_by = ['block_timestamp::DATE'],
tags = ['curated','reorg']
) }}
WITH bridge_router AS (
-- for bridge tx utilizing router
SELECT
block_number,
block_timestamp,
origin_from_address,
origin_to_address,
origin_function_signature,
tx_hash,
contract_address,
event_index,
'bridgeRequest' AS event_name,
origin_to_address AS to_address,
origin_from_address AS from_address,
origin_from_address AS depositor,
TRY_TO_NUMBER(RIGHT(utils.udf_hex_to_int(DATA :: STRING), 4)) AS destinationChainId,
TRY_TO_NUMBER(utils.udf_hex_to_int(DATA :: STRING) * pow(10, -18)) AS amount,
origin_from_address AS receipient,
CONCAT('0x', SUBSTR(topics [1] :: STRING, 27, 40)) AS bridge_address,
CASE
WHEN tx_status = 'success' THEN TRUE
ELSE FALSE
END AS tx_succeeded,
CONCAT(
tx_hash,
'-',
event_index
) AS _log_id,
modified_timestamp
FROM
{{ ref('core__fact_event_logs') }}
WHERE
topics [0] :: STRING = '0x69ca02dd4edd7bf0a4abb9ed3b7af3f14778db5d61921c7dc7cd545266326de2'
AND contract_address = '0x13e46b2a3f8512ed4682a8fb8b560589fe3c2172'
AND bridge_address IN (
'0xe4edb277e41dc89ab076a1f049f4a3efa700bce8',
'0xee73323912a4e3772b74ed0ca1595a152b0ef282'
) -- orbiter bridge
AND tx_succeeded
{% if is_incremental() %}
AND modified_timestamp >= (
SELECT
MAX(modified_timestamp) - INTERVAL '12 hours'
FROM
{{ this }}
)
AND modified_timestamp >= SYSDATE() - INTERVAL '7 day'
{% endif %}
),
bridge_native AS (
-- for direct native eth transfers
SELECT
et.block_number,
et.block_timestamp,
et.tx_hash,
tx.from_address AS origin_from_address,
tx.to_address AS origin_to_address,
tx.origin_function_signature,
et.to_address,
et.from_address,
et.from_address AS depositor,
TRY_TO_NUMBER(
RIGHT(
amount_precise_raw,
4
)
) AS destinationChainId,
amount,
et.from_address AS receipient,
et.to_address AS bridge_address,
native_transfers_id,
et.modified_timestamp
FROM
{{ ref('silver__native_transfers') }}
et
INNER JOIN {{ ref('silver__transactions') }}
tx
ON et.block_number = tx.block_number
AND et.tx_hash = tx.tx_hash
WHERE
et.to_address IN (
'0xe4edb277e41dc89ab076a1f049f4a3efa700bce8',
'0xee73323912a4e3772b74ed0ca1595a152b0ef282',
'0x80c67432656d59144ceff962e8faf8926599bcf8'
)
{% if is_incremental() %}
AND et.modified_timestamp >= (
SELECT
MAX(modified_timestamp) - INTERVAL '12 hours'
FROM
{{ this }}
)
AND et.modified_timestamp >= SYSDATE() - INTERVAL '7 day'
{% endif %}
),
bridge_combined AS (
SELECT
block_number,
block_timestamp,
origin_from_address,
origin_to_address,
origin_function_signature,
tx_hash,
contract_address,
event_index,
event_name,
to_address,
from_address,
depositor,
destinationChainId AS orbiter_chain_id,
amount,
receipient,
bridge_address,
tx_succeeded,
_log_id AS _id,
modified_timestamp
FROM
bridge_router
UNION ALL
SELECT
block_number,
block_timestamp,
origin_from_address,
origin_to_address,
origin_function_signature,
tx_hash,
contract_address,
NULL AS event_index,
NULL AS event_name,
to_address,
from_address,
depositor,
destinationChainId AS orbiter_chain_id,
amount,
receipient,
bridge_address,
TRUE AS tx_succeeded,
native_transfers_id AS _id,
modified_timestamp
FROM
bridge_native
)
SELECT
block_number,
block_timestamp,
origin_from_address,
origin_to_address,
origin_function_signature,
tx_hash,
contract_address,
event_index,
event_name,
to_address,
from_address,
depositor,
orbiter_chain_id,
s.chainid AS destination_chain_id,
s.name AS destination_chain,
amount,
receipient,
receipient AS destination_chain_receiver,
bridge_address,
'orbiter finance' AS platform,
'0x4300000000000000000000000000000000000004' AS token_address,
--weth contract address
tx_succeeded,
_id,
modified_timestamp
FROM
bridge_combined b
LEFT JOIN {{ ref('silver_bridge__orbiter_bridge_seed') }} s
ON b.orbiter_chain_id :: STRING = s.identificationcode :: STRING

View File

@ -1,6 +1,6 @@
version: 2
models:
- name: silver_bridge__synapse_tokenredeem
- name: silver_bridge__orbiter_bridgerequest
tests:
- dbt_utils.unique_combination_of_columns:
combination_of_columns:

View File

@ -40,9 +40,15 @@ WITH base_evt AS (
AND topic_0 IN (
'0x91f25e9be0134ec851830e0e76dc71e06f9dade75a9b84e9524071dbbc319425',
-- TokenRedeemAndSwap
'0x79c15604b92ef54d3f61f0c40caab8857927ca3d5092367163b4562c1699eb5f',
-- TokenDepositAndSwap
'0x9a7024cde1920aa50cdde09ca396229e8c4d530d5cfdc6233590def70a94408c',
-- TokenRedeemAndRemove
'0xdc5bad4651c5fbe9977a696aadc65996c468cde1448dd468ec0d83bf61c4b57c' -- TokenRedeem
'0xdc5bad4651c5fbe9977a696aadc65996c468cde1448dd468ec0d83bf61c4b57c',
-- TokenRedeem
'0xda5273705dbef4bf1b902a131c2eac086b7e1476a8ab0cb4da08af1fe1bd8e3b',
-- TokenDeposit
'0x8e57e8c5fea426159af69d47eda6c5052c7605c9f70967cf749d4aa55b70b499' -- TokenRedeemV2 (terra specific)
)
AND tx_succeeded
@ -66,32 +72,21 @@ redeem_swap AS (
tx_hash,
contract_address,
event_index,
'TokenRedeemAndSwap' AS event_name,
topic_1 AS to_address,
CASE
WHEN topic_0 = '0x91f25e9be0134ec851830e0e76dc71e06f9dade75a9b84e9524071dbbc319425' THEN 'TokenRedeemAndSwap'
WHEN topic_0 = '0x79c15604b92ef54d3f61f0c40caab8857927ca3d5092367163b4562c1699eb5f' THEN 'TokenDepositAndSwap'
END AS event_name,
CONCAT('0x', SUBSTR(topics [1] :: STRING, 27, 40)) AS to_address,
segmented_data,
utils.udf_hex_to_int(
segmented_data [0] :: STRING
) AS chainId,
CONCAT('0x', SUBSTR(segmented_data [1], 25, 40)) AS token,
TRY_TO_NUMBER(
utils.udf_hex_to_int(
segmented_data [2] :: STRING
)
) AS amount,
utils.udf_hex_to_int(
segmented_data [3]
) AS tokenIndexFrom,
TRY_TO_NUMBER(utils.udf_hex_to_int(segmented_data [0] :: STRING)) AS chainId,
CONCAT('0x', SUBSTR(segmented_data [1] :: STRING, 25, 40)) AS token,
TRY_TO_NUMBER(utils.udf_hex_to_int(segmented_data [2] :: STRING)) AS amount,
TRY_TO_NUMBER(utils.udf_hex_to_int(segmented_data [3] :: STRING)) AS tokenIndexFrom,
-- source chain token index
utils.udf_hex_to_int(
segmented_data [4]
) AS tokenIndexTo,
TRY_TO_NUMBER(utils.udf_hex_to_int(segmented_data [4] :: STRING)) AS tokenIndexTo,
-- dst chain token index
utils.udf_hex_to_int(
segmented_data [5]
) AS minDy,
utils.udf_hex_to_int(
segmented_data [6]
) AS deadline,
TRY_TO_NUMBER(utils.udf_hex_to_int(segmented_data [5] :: STRING)) AS minDy,
TRY_TO_NUMBER(utils.udf_hex_to_int(segmented_data [6] :: STRING)) AS deadline,
-- timestamp
tx_succeeded,
_log_id,
@ -99,7 +94,11 @@ redeem_swap AS (
FROM
base_evt
WHERE
topic_0 = '0x91f25e9be0134ec851830e0e76dc71e06f9dade75a9b84e9524071dbbc319425' -- TokenRedeemAndSwap
topic_0 IN (
'0x91f25e9be0134ec851830e0e76dc71e06f9dade75a9b84e9524071dbbc319425',
-- TokenRedeemAndSwap
'0x79c15604b92ef54d3f61f0c40caab8857927ca3d5092367163b4562c1699eb5f' -- TokenDepositAndSwap
)
),
redeem_remove AS (
SELECT
@ -112,27 +111,15 @@ redeem_remove AS (
contract_address,
event_index,
'TokenRedeemAndRemove' AS event_name,
topic_1 AS to_address,
CONCAT('0x', SUBSTR(topics [1] :: STRING, 27, 40)) AS to_address,
segmented_data,
utils.udf_hex_to_int(
segmented_data [0] :: STRING
) AS chainId,
CONCAT('0x', SUBSTR(segmented_data [1], 25, 40)) AS token,
TRY_TO_NUMBER(
utils.udf_hex_to_int(
segmented_data [2] :: STRING
)
) AS amount,
utils.udf_hex_to_int(
segmented_data [3]
) AS swapTokenIndex,
TRY_TO_NUMBER(utils.udf_hex_to_int(segmented_data [0] :: STRING)) AS chainId,
CONCAT('0x', SUBSTR(segmented_data [1] :: STRING, 25, 40)) AS token,
TRY_TO_NUMBER(utils.udf_hex_to_int(segmented_data [2] :: STRING)) AS amount,
TRY_TO_NUMBER(utils.udf_hex_to_int(segmented_data [3] :: STRING)) AS swapTokenIndex,
-- dst chain token index
utils.udf_hex_to_int(
segmented_data [4]
) AS swapMinAmount,
utils.udf_hex_to_int(
segmented_data [5]
) AS swapDeadline,
TRY_TO_NUMBER(utils.udf_hex_to_int(segmented_data [4] :: STRING)) AS swapMinAmount,
TRY_TO_NUMBER(utils.udf_hex_to_int(segmented_data [5] :: STRING)) AS swapDeadline,
-- timestamp
tx_succeeded,
_log_id,
@ -152,109 +139,112 @@ redeem_only AS (
tx_hash,
contract_address,
event_index,
'TokenRedeem' AS event_name,
topic_1 AS to_address,
CASE
WHEN topic_0 = '0xdc5bad4651c5fbe9977a696aadc65996c468cde1448dd468ec0d83bf61c4b57c' THEN 'TokenRedeem'
WHEN topic_0 = '0xda5273705dbef4bf1b902a131c2eac086b7e1476a8ab0cb4da08af1fe1bd8e3b' THEN 'TokenDeposit'
WHEN topic_0 = '0x8e57e8c5fea426159af69d47eda6c5052c7605c9f70967cf749d4aa55b70b499' THEN 'TokenRedeemV2'
END AS event_name,
CONCAT('0x', SUBSTR(topics [1] :: STRING, 27, 40)) AS to_address,
segmented_data,
utils.udf_hex_to_int(
segmented_data [0] :: STRING
) AS chainId,
CONCAT('0x', SUBSTR(segmented_data [1], 25, 40)) AS token,
TRY_TO_NUMBER(
utils.udf_hex_to_int(
segmented_data [2] :: STRING
)
) AS amount,
TRY_TO_NUMBER(utils.udf_hex_to_int(segmented_data [0] :: STRING)) AS chainId,
CONCAT('0x', SUBSTR(segmented_data [1] :: STRING, 25, 40)) AS token,
TRY_TO_NUMBER(utils.udf_hex_to_int(segmented_data [2] :: STRING)) AS amount,
tx_succeeded,
_log_id,
modified_timestamp
FROM
base_evt
WHERE
topic_0 = '0xdc5bad4651c5fbe9977a696aadc65996c468cde1448dd468ec0d83bf61c4b57c' -- TokenRedeem
topic_0 IN (
'0xdc5bad4651c5fbe9977a696aadc65996c468cde1448dd468ec0d83bf61c4b57c',
-- TokenRedeem
'0xda5273705dbef4bf1b902a131c2eac086b7e1476a8ab0cb4da08af1fe1bd8e3b',
-- TokenDeposit
'0x8e57e8c5fea426159af69d47eda6c5052c7605c9f70967cf749d4aa55b70b499' -- TokenRedeemV2 (terra specific)
)
),
all_evts AS (
SELECT
block_number,
block_timestamp,
origin_function_signature,
origin_from_address,
origin_to_address,
origin_function_signature,
tx_hash,
contract_address,
event_index,
event_name,
event_removed,
tx_status,
contract_address AS bridge_address,
to_address,
segmented_data,
chainId,
token,
amount,
origin_from_address AS sender,
to_address AS receiver,
receiver AS destination_chain_receiver,
chainId AS destination_chain_id,
token AS token_address,
tx_succeeded,
_log_id,
modified_timestamp
FROM
redeem_swap
UNION ALL
SELECT
block_number,
block_timestamp,
origin_function_signature,
origin_from_address,
origin_to_address,
origin_function_signature,
tx_hash,
contract_address,
event_index,
event_name,
event_removed,
tx_status,
contract_address AS bridge_address,
to_address,
segmented_data,
chainId,
token,
amount,
origin_from_address AS sender,
to_address AS receiver,
receiver AS destination_chain_receiver,
chainId AS destination_chain_id,
token AS token_address,
tx_succeeded,
_log_id,
modified_timestamp
FROM
redeem_remove
UNION ALL
SELECT
block_number,
block_timestamp,
origin_function_signature,
origin_from_address,
origin_to_address,
origin_function_signature,
tx_hash,
contract_address,
event_index,
event_name,
event_removed,
tx_status,
contract_address AS bridge_address,
to_address,
segmented_data,
chainId,
token,
amount,
origin_from_address AS sender,
to_address AS receiver,
receiver AS destination_chain_receiver,
chainId AS destination_chain_id,
token AS token_address,
tx_succeeded,
_log_id,
modified_timestamp
FROM
redeem_only
)
SELECT
block_number,
block_timestamp,
origin_function_signature,
origin_from_address,
origin_to_address,
origin_function_signature,
tx_hash,
event_index,
event_name,
event_removed,
tx_status,
bridge_address,
'synapse' AS platform,
contract_address AS bridge_address,
origin_from_address AS sender,
to_address AS receiver,
receiver AS destination_chain_receiver,
chainId AS destination_chain_id,
token AS token_address,
amount,
sender,
receiver,
destination_chain_receiver,
destination_chain_id,
token_address,
tx_succeeded,
'synapse' AS platform,
_log_id,
modified_timestamp
FROM