mirror of
https://github.com/FlipsideCrypto/base-models.git
synced 2026-02-06 17:26:42 +00:00
add stargate
This commit is contained in:
parent
f216a67fa0
commit
4baaeb528a
94
data/silver_bridge__layerzero_bridge_seed.csv
Normal file
94
data/silver_bridge__layerzero_bridge_seed.csv
Normal file
@ -0,0 +1,94 @@
|
||||
chain,eid
|
||||
Ape,30312
|
||||
Arbitrum,30110
|
||||
Arbitrum Nova,30175
|
||||
Astar,30210
|
||||
Astar zkEVM,30257
|
||||
Avalanche,30106
|
||||
Base,30184
|
||||
Bevm,30317
|
||||
Binance Smart Chain,30102
|
||||
Bitlayer,30314
|
||||
Blast,30243
|
||||
Bob,30279
|
||||
Canto,30159
|
||||
Celo,30125
|
||||
Codex,30323
|
||||
Conflux eSpace,30212
|
||||
Core Blockchain,30153
|
||||
Cyber,30283
|
||||
DOS Chain,30149
|
||||
DeFi Kingdoms,30115
|
||||
Degen,30267
|
||||
Dexalot Subnet,30118
|
||||
Dm2verse,30315
|
||||
EBI,30282
|
||||
Edu,30328
|
||||
Ethereum,30101
|
||||
Etherlink,30292
|
||||
Fantom,30112
|
||||
Flare,30295
|
||||
Fraxtal,30255
|
||||
Fuse,30138
|
||||
Gnosis,30145
|
||||
Gravity,30294
|
||||
Harmony,30116
|
||||
Hedera,30316
|
||||
Hemi,30329
|
||||
Homeverse,30265
|
||||
Horizen EON,30215
|
||||
Hubble,30182
|
||||
Iota,30284
|
||||
Japan Open Chain,30285
|
||||
Kaia,30150
|
||||
Kava,30177
|
||||
Lightlink,30309
|
||||
Linea,30183
|
||||
Lisk,30321
|
||||
Loot,30197
|
||||
Lyra,30311
|
||||
Manta,30217
|
||||
Mantle,30181
|
||||
Masa,30263
|
||||
Meritcircle,30198
|
||||
Merlin,30266
|
||||
Meter,30176
|
||||
Metis,30151
|
||||
Mode,30260
|
||||
Moonbeam,30126
|
||||
Moonriver,30167
|
||||
Morph,30322
|
||||
Near Aurora,30211
|
||||
OKXChain,30155
|
||||
Optimism,30111
|
||||
Orderly,30213
|
||||
Peaq,30302
|
||||
Polygon,30109
|
||||
Polygon zkEVM,30158
|
||||
Rari Chain,30235
|
||||
Reya,30313
|
||||
Sanko,30278
|
||||
Scroll,30214
|
||||
Sei,30280
|
||||
Shimmer,30230
|
||||
Skale,30273
|
||||
Solana,30168
|
||||
Superposition,30327
|
||||
Taiko,30290
|
||||
TelosEVM,30199
|
||||
Tenet,30173
|
||||
Tiltyard,30238
|
||||
Tron,30420
|
||||
Viction,30196
|
||||
Worldchain,30319
|
||||
X Layer,30274
|
||||
XChain,30291
|
||||
XPLA,30216
|
||||
Xai,30236
|
||||
Zircuit,30303
|
||||
Zora,30195
|
||||
inEVM,30234
|
||||
opBNB,30202
|
||||
re.al,30237
|
||||
zkLink,30301
|
||||
zkSync Era,30165
|
||||
|
@ -5,72 +5,102 @@
|
||||
tags = ['silver_bridge','defi','bridge','curated']
|
||||
) }}
|
||||
|
||||
SELECT
|
||||
block_timestamp,
|
||||
tx_hash,
|
||||
event_index,
|
||||
SUBSTR(
|
||||
decoded_log :encodedPayload :: STRING,
|
||||
3
|
||||
) AS payload,
|
||||
SUBSTR(
|
||||
WITH raw AS (
|
||||
|
||||
SELECT
|
||||
block_timestamp,
|
||||
tx_hash,
|
||||
event_index,
|
||||
SUBSTR(
|
||||
decoded_log :encodedPayload :: STRING,
|
||||
3
|
||||
) AS payload,
|
||||
SUBSTR(
|
||||
payload,
|
||||
1,
|
||||
2
|
||||
) AS TYPE,
|
||||
SUBSTR(
|
||||
payload,
|
||||
3,
|
||||
16
|
||||
) AS nonce,
|
||||
utils.udf_hex_to_int(SUBSTR(payload, 19, 8)) AS src_chain_id,
|
||||
'0x' || SUBSTR(SUBSTR(payload, 27, 64), 25) AS sender_contract_address,
|
||||
-- token messaging for stargate in arbitrum
|
||||
utils.udf_hex_to_int(SUBSTR(payload, 91, 8)) AS dst_chain_id,
|
||||
'0x' || SUBSTR(SUBSTR(payload, 99, 64), 25) AS receiver_contract_address,
|
||||
SUBSTR(
|
||||
payload,
|
||||
163,
|
||||
64
|
||||
) AS guid,
|
||||
SUBSTR(
|
||||
payload,
|
||||
227,
|
||||
2
|
||||
) AS message_type {# SUBSTR(
|
||||
payload,
|
||||
1,
|
||||
2
|
||||
) AS TYPE,
|
||||
SUBSTR(
|
||||
payload,
|
||||
3,
|
||||
16
|
||||
) AS nonce,
|
||||
utils.udf_hex_to_int(SUBSTR(payload, 19, 8)) AS source_chain_hex,
|
||||
'0x' || SUBSTR(SUBSTR(payload, 27, 64), 25) AS sender_ca,
|
||||
-- token messaging for stargate in arbitrum
|
||||
utils.udf_hex_to_int(SUBSTR(payload, 91, 8)) AS dst_chain_hex,
|
||||
'0x' || SUBSTR(SUBSTR(payload, 99, 64), 25) AS receiver_ca,
|
||||
SUBSTR(
|
||||
payload,
|
||||
163,
|
||||
64
|
||||
) AS guid,
|
||||
SUBSTR(
|
||||
payload,
|
||||
227,
|
||||
2
|
||||
) AS message_type {# SUBSTR(
|
||||
payload,
|
||||
229,
|
||||
4
|
||||
229,
|
||||
4
|
||||
) AS message_type_2,
|
||||
'0x' || SUBSTR(SUBSTR(payload, 233, 64), 25) AS dst_chain_receiver #}
|
||||
FROM
|
||||
{{ ref('core__ez_decoded_event_logs') }}
|
||||
WHERE
|
||||
1 = 1 --tx_hash = '0xd726c07902df1c68f23b911a2c5c3d2e241ebc5da155b22253f3b3ebc2e3eb1c'
|
||||
AND block_timestamp :: DATE >= '2024-01-01'
|
||||
block_timestamp :: DATE >= '2024-01-01'
|
||||
AND event_name = 'PacketSent'
|
||||
AND contract_address = LOWER('0x1a44076050125825900e736c501f859c50fE728c') -- layerzero endpoint v2
|
||||
)
|
||||
SELECT
|
||||
block_timestamp,
|
||||
tx_hash,
|
||||
event_index,
|
||||
payload,
|
||||
TYPE,
|
||||
nonce,
|
||||
src_chain_id,
|
||||
LOWER(
|
||||
c1.chain
|
||||
) AS src_chain,
|
||||
sender_contract_address,
|
||||
-- token messaging for stargate in arbitrum
|
||||
dst_chain_id,
|
||||
LOWER(
|
||||
c2.chain
|
||||
) AS dst_chain,
|
||||
receiver_contract_address,
|
||||
guid,
|
||||
message_type
|
||||
FROM
|
||||
raw
|
||||
LEFT JOIN {{ ref('silver_bridge__layerzero_bridge_seed') }}
|
||||
c1
|
||||
ON src_chain_id = c1.eid
|
||||
LEFT JOIN {{ ref('silver_bridge__layerzero_bridge_seed') }}
|
||||
c2
|
||||
ON dst_chain_id = c2.eid
|
||||
/*
|
||||
|
||||
bus rode
|
||||
https://basescan.org/tx/0x10bebb3d970a50ca3dcb91c57559915c8c79490b17f023823ec92dbb463572c3#eventlog
|
||||
|
||||
bus driven
|
||||
https://basescan.org/tx/0x1b19373f9153a3271880a404b62a2eb961e06d3b18ac9fe6e4dd86032bc63d12#eventlog
|
||||
|
||||
passenger follows this format:
|
||||
000D – asset id
|
||||
000000000000000000000000CADC222B22BDB30147BB8FB9726AA9E00A01441C – receiver
|
||||
000000000001EFE9 – amountSD
|
||||
00 –nativeDrop
|
||||
|
||||
|
||||
uint16 assetId;
|
||||
bytes32 receiver;
|
||||
uint64 amountSD;
|
||||
bool nativeDrop;
|
||||
|
||||
|
||||
assetIDs from stargate
|
||||
|
||||
*/
|
||||
|
||||
bus rode
|
||||
https://basescan.org/tx/0x10bebb3d970a50ca3dcb91c57559915c8c79490b17f023823ec92dbb463572c3#eventlog
|
||||
|
||||
bus driven
|
||||
https://basescan.org/tx/0x1b19373f9153a3271880a404b62a2eb961e06d3b18ac9fe6e4dd86032bc63d12#eventlog
|
||||
|
||||
passenger follows this format:
|
||||
000D – asset id
|
||||
000000000000000000000000CADC222B22BDB30147BB8FB9726AA9E00A01441C – receiver
|
||||
000000000001EFE9 – amountSD
|
||||
00 –nativeDrop
|
||||
|
||||
|
||||
uint16 assetId;
|
||||
bytes32 receiver;
|
||||
uint64 amountSD;
|
||||
bool nativeDrop;
|
||||
|
||||
|
||||
assetIDs from stargate
|
||||
|
||||
*/
|
||||
|
||||
@ -1,134 +0,0 @@
|
||||
-- oft tokens
|
||||
{{ config(
|
||||
materialized = 'incremental',
|
||||
incremental_strategy = 'delete+insert',
|
||||
unique_key = "block_number",
|
||||
tags = ['silver_bridge','defi','bridge','curated']
|
||||
) }}
|
||||
|
||||
WITH base_contracts AS (
|
||||
|
||||
SELECT
|
||||
tx_hash,
|
||||
block_number,
|
||||
block_timestamp,
|
||||
from_address,
|
||||
to_address AS contract_address,
|
||||
concat_ws(
|
||||
'-',
|
||||
block_number,
|
||||
tx_position,
|
||||
CONCAT(
|
||||
TYPE,
|
||||
'_',
|
||||
trace_address
|
||||
)
|
||||
) AS _call_id,
|
||||
modified_timestamp AS _inserted_timestamp
|
||||
FROM
|
||||
{{ ref('core__fact_traces') }}
|
||||
WHERE
|
||||
from_address = '0xaf5191b0de278c7286d6c7cc6ab6bb8a73ba2cd6' --Factory
|
||||
AND TYPE ILIKE 'create%'
|
||||
AND tx_succeeded
|
||||
|
||||
{% if is_incremental() %}
|
||||
AND _inserted_timestamp >= (
|
||||
SELECT
|
||||
MAX(_inserted_timestamp) - INTERVAL '12 hours'
|
||||
FROM
|
||||
{{ this }}
|
||||
)
|
||||
AND to_address NOT IN (
|
||||
SELECT
|
||||
DISTINCT pool_address
|
||||
FROM
|
||||
{{ this }}
|
||||
)
|
||||
{% endif %}
|
||||
),
|
||||
function_sigs AS (
|
||||
SELECT
|
||||
'0xfc0c546a' AS function_sig,
|
||||
'token' AS function_name
|
||||
),
|
||||
inputs AS (
|
||||
SELECT
|
||||
contract_address,
|
||||
block_number,
|
||||
function_sig,
|
||||
function_name,
|
||||
0 AS function_input,
|
||||
CONCAT(
|
||||
function_sig,
|
||||
LPAD(
|
||||
function_input,
|
||||
64,
|
||||
0
|
||||
)
|
||||
) AS DATA
|
||||
FROM
|
||||
base_contracts
|
||||
JOIN function_sigs
|
||||
ON 1 = 1
|
||||
),
|
||||
contract_reads AS (
|
||||
SELECT
|
||||
contract_address,
|
||||
block_number,
|
||||
function_sig,
|
||||
function_name,
|
||||
function_input,
|
||||
DATA,
|
||||
utils.udf_json_rpc_call(
|
||||
'eth_call',
|
||||
[{ 'to': contract_address, 'from': null, 'data': data }, utils.udf_int_to_hex(block_number) ]
|
||||
) AS rpc_request,
|
||||
live.udf_api(
|
||||
'POST',
|
||||
CONCAT(
|
||||
'{service}',
|
||||
'/',
|
||||
'{Authentication}'
|
||||
),{},
|
||||
rpc_request,
|
||||
'Vault/prod/base/quicknode/mainnet'
|
||||
) AS read_output,
|
||||
SYSDATE() AS _inserted_timestamp
|
||||
FROM
|
||||
inputs
|
||||
),
|
||||
reads_flat AS (
|
||||
SELECT
|
||||
read_output,
|
||||
read_output :data :id :: STRING AS read_id,
|
||||
read_output :data :result :: STRING AS read_result,
|
||||
SPLIT(
|
||||
read_id,
|
||||
'-'
|
||||
) AS read_id_object,
|
||||
function_sig,
|
||||
function_name,
|
||||
function_input,
|
||||
DATA,
|
||||
contract_address,
|
||||
block_number,
|
||||
_inserted_timestamp
|
||||
FROM
|
||||
contract_reads
|
||||
)
|
||||
SELECT
|
||||
read_output,
|
||||
read_id,
|
||||
read_result,
|
||||
read_id_object,
|
||||
function_sig,
|
||||
function_name,
|
||||
function_input,
|
||||
DATA,
|
||||
block_number,
|
||||
contract_address AS pool_address,
|
||||
CONCAT('0x', SUBSTR(read_result, 27, 40)) AS token_address,
|
||||
_inserted_timestamp
|
||||
FROM
|
||||
reads_flat
|
||||
@ -1,39 +0,0 @@
|
||||
{{ config(
|
||||
materialized = 'incremental',
|
||||
incremental_strategy = 'delete+insert',
|
||||
unique_key = "contract_address",
|
||||
tags = ['silver_bridge','defi','bridge','curated']
|
||||
) }}
|
||||
|
||||
WITH base_contracts AS (
|
||||
|
||||
SELECT
|
||||
contract_address
|
||||
FROM
|
||||
{{ ref('core__fact_event_logs') }}
|
||||
WHERE
|
||||
block_timestamp :: DATE >= '2024-05-01'
|
||||
AND topic_0 = '0x85496b760a4b7f8d66384b9df21b381f5d1b1e79f229a47aaf4c232edc2fe59a' -- OFTsent
|
||||
qualify ROW_NUMBER() over (
|
||||
PARTITION BY contract_address
|
||||
ORDER BY
|
||||
block_timestamp DESC
|
||||
) = 1
|
||||
)
|
||||
SELECT
|
||||
b.contract_address,
|
||||
p.token_address,
|
||||
p.decimals,
|
||||
p.shared_decimals,
|
||||
p.endpoint,
|
||||
p.owner,
|
||||
p.token_name,
|
||||
p.token_symbol
|
||||
FROM
|
||||
base_contracts b
|
||||
INNER JOIN {{ ref('silver_bridge__stargate_pools') }}
|
||||
p
|
||||
ON b.contract_address = p.pool_address
|
||||
WHERE
|
||||
p.token_address IS NOT NULL
|
||||
AND p.decimals IS NOT NULL
|
||||
@ -1,93 +0,0 @@
|
||||
{{ config(
|
||||
materialized = 'incremental',
|
||||
incremental_strategy = 'delete+insert',
|
||||
unique_key = "block_number",
|
||||
tags = ['silver_bridge','defi','bridge','curated']
|
||||
) }}
|
||||
|
||||
WITH base_contracts AS (
|
||||
|
||||
SELECT
|
||||
block_number,
|
||||
block_timestamp,
|
||||
tx_hash,
|
||||
to_address AS contract_address,
|
||||
POSITION(
|
||||
'00000000000000000000000000000000000000000000000000000000000000e0',
|
||||
input,
|
||||
LENGTH(input) - 703
|
||||
) AS argument_start,
|
||||
-- starting position of arguments
|
||||
SUBSTR(input, argument_start, LENGTH(input) - argument_start + 1) AS arguments,
|
||||
regexp_SUBSTR_all(SUBSTR(arguments, 0, len(arguments)), '.{64}') AS segmented_arguments,
|
||||
ARRAY_SIZE(segmented_arguments) AS data_size,
|
||||
CONCAT(
|
||||
'0x',
|
||||
SUBSTR(
|
||||
segmented_arguments [2] :: STRING,
|
||||
25,
|
||||
40
|
||||
)
|
||||
) AS token_address,
|
||||
utils.udf_hex_to_int(
|
||||
segmented_arguments [data_size-8] :: STRING
|
||||
) AS decimals,
|
||||
utils.udf_hex_to_int(
|
||||
segmented_arguments [data_size-7] :: STRING
|
||||
) AS shared_decimals,
|
||||
CONCAT(
|
||||
'0x',
|
||||
SUBSTR(
|
||||
segmented_arguments [data_size-6] :: STRING,
|
||||
25,
|
||||
40
|
||||
)
|
||||
) AS endpoint,
|
||||
CONCAT(
|
||||
'0x',
|
||||
SUBSTR(
|
||||
segmented_arguments [data_size-5] :: STRING,
|
||||
25,
|
||||
40
|
||||
)
|
||||
) AS owner,
|
||||
utils.udf_hex_to_string(
|
||||
segmented_arguments [data_size-3] :: STRING
|
||||
) AS token_name,
|
||||
utils.udf_hex_to_string(
|
||||
segmented_arguments [data_size-1] :: STRING
|
||||
) AS token_symbol,
|
||||
modified_timestamp AS _inserted_timestamp
|
||||
FROM
|
||||
{{ ref('core__fact_traces') }}
|
||||
WHERE
|
||||
origin_function_signature = '0x61014060' -- AND tx_hash = '0xa672d5f37dff923fe58c11e56b87539af6fe5a0e901e594f2065dd50f1f93e86' --from_address = '0x1d7c6783328c145393e84fb47a7f7c548f5ee28d'
|
||||
AND block_timestamp :: DATE >= '2024-05-01'
|
||||
AND trace_succeeded
|
||||
AND TYPE ILIKE '%create%'
|
||||
|
||||
{% if is_incremental() %}
|
||||
AND _inserted_timestamp >= (
|
||||
SELECT
|
||||
MAX(_inserted_timestamp) - INTERVAL '12 hours'
|
||||
FROM
|
||||
{{ this }}
|
||||
)
|
||||
AND _inserted_timestamp >= SYSDATE() - INTERVAL '7 day'
|
||||
{% endif %}
|
||||
)
|
||||
SELECT
|
||||
block_number,
|
||||
block_timestamp,
|
||||
tx_hash,
|
||||
contract_address AS pool_address,
|
||||
token_address,
|
||||
decimals,
|
||||
shared_decimals,
|
||||
endpoint,
|
||||
owner,
|
||||
token_name,
|
||||
token_symbol,
|
||||
_inserted_timestamp
|
||||
FROM
|
||||
base_contracts
|
||||
@ -14,11 +14,12 @@ WITH decoded_logs AS (
|
||||
contract_address,
|
||||
event_name,
|
||||
decoded_log,
|
||||
tx_hash
|
||||
tx_hash,
|
||||
origin_from_address
|
||||
FROM
|
||||
{{ ref('core__ez_decoded_event_logs') }}
|
||||
WHERE
|
||||
block_timestamp :: DATE >= '2024-01-01'
|
||||
block_timestamp :: DATE >= '2025-03-01'
|
||||
AND (
|
||||
(
|
||||
event_name = 'PacketSent'
|
||||
@ -32,8 +33,10 @@ WITH decoded_logs AS (
|
||||
),
|
||||
layerzero AS (
|
||||
SELECT
|
||||
block_number,
|
||||
block_timestamp,
|
||||
tx_hash,
|
||||
contract_address,
|
||||
event_index,
|
||||
SUBSTR(
|
||||
decoded_log :encodedPayload :: STRING,
|
||||
@ -74,6 +77,7 @@ FROM
|
||||
WHERE
|
||||
event_name = 'PacketSent'
|
||||
AND contract_address = LOWER('0x1a44076050125825900e736c501f859c50fE728c') -- layerzero endpoint v2
|
||||
AND sender_ca = '0x5634c4a5fed09819e3c46d86a965dd9447d86e47' -- stargate token messaging. Ensures adapter sends
|
||||
),
|
||||
bus_driven_raw AS (
|
||||
SELECT
|
||||
@ -93,7 +97,8 @@ bus_driven_raw AS (
|
||||
ORDER BY
|
||||
event_index ASC
|
||||
) AS rn,
|
||||
start_ticket_id + num_passengers - 1 AS end_ticket_id
|
||||
start_ticket_id + num_passengers - 1 AS end_ticket_id,
|
||||
origin_from_address
|
||||
FROM
|
||||
decoded_logs
|
||||
WHERE
|
||||
@ -114,10 +119,12 @@ bus_driven AS (
|
||||
asset_id,
|
||||
dst_receiver_address,
|
||||
amount_transferred,
|
||||
guid
|
||||
r.guid,
|
||||
origin_from_address
|
||||
FROM
|
||||
bus_driven r
|
||||
INNER JOIN {{ ref('silver_bridge__stargate_v2_bus') }}
|
||||
bus_driven_raw r
|
||||
INNER JOIN {{ ref('silver_bridge__stargate_v2_busrode') }}
|
||||
-- join with busRode
|
||||
b
|
||||
ON r.dst_id = b.dst_id
|
||||
AND b.ticket_id >= start_ticket_id
|
||||
@ -125,17 +132,19 @@ bus_driven AS (
|
||||
),
|
||||
final_bus_driven AS (
|
||||
SELECT
|
||||
block_timestamp,
|
||||
tx_hash,
|
||||
b.block_timestamp,
|
||||
b.tx_hash,
|
||||
guid,
|
||||
event_index,
|
||||
contract_address,
|
||||
b.event_index,
|
||||
b.contract_address,
|
||||
dst_id,
|
||||
start_ticket_id,
|
||||
num_passengers,
|
||||
end_ticket_id,
|
||||
ticket_id,
|
||||
asset_id,
|
||||
asset AS asset_symbol,
|
||||
-- from the list
|
||||
dst_receiver_address,
|
||||
amount_transferred,
|
||||
payload,
|
||||
@ -146,12 +155,17 @@ final_bus_driven AS (
|
||||
dst_chain_hex,
|
||||
receiver_ca,
|
||||
message_type,
|
||||
message_type
|
||||
origin_from_address
|
||||
FROM
|
||||
bus_driven b
|
||||
LEFT JOIN layerzero l
|
||||
ON b.tx_hash = l.tx_hash
|
||||
AND b.guid = l.guid
|
||||
INNER JOIN layerzero l USING (
|
||||
tx_hash,
|
||||
guid
|
||||
)
|
||||
LEFT JOIN {{ ref('silver_bridge__stargate_asset_id') }}
|
||||
s
|
||||
ON asset_id = s.id
|
||||
AND s.chain = 'Base'
|
||||
),
|
||||
oft_raw AS (
|
||||
SELECT
|
||||
@ -164,7 +178,6 @@ oft_raw AS (
|
||||
topic_1,
|
||||
topic_2,
|
||||
topic_3,
|
||||
contract_address,
|
||||
contract_address AS stargate_adapter_address,
|
||||
DATA,
|
||||
regexp_substr_all(SUBSTR(DATA, 3), '.{64}') AS part,
|
||||
@ -186,16 +199,17 @@ oft_raw AS (
|
||||
FROM
|
||||
{{ ref('core__fact_event_logs') }}
|
||||
WHERE
|
||||
block_timestamp :: DATE >= '2024-01-01'
|
||||
block_timestamp :: DATE >= '2025-03-01'
|
||||
AND topic_0 = '0x85496b760a4b7f8d66384b9df21b381f5d1b1e79f229a47aaf4c232edc2fe59a' --OFTSent
|
||||
),
|
||||
final_oft AS (
|
||||
SELECT
|
||||
block_number,
|
||||
block_timestamp,
|
||||
l.block_number,
|
||||
l.block_timestamp,
|
||||
tx_hash,
|
||||
l.event_index,
|
||||
contract_address,
|
||||
l.contract_address,
|
||||
stargate_adapter_address,
|
||||
guid,
|
||||
from_address,
|
||||
-- src sender
|
||||
@ -218,9 +232,10 @@ final_oft AS (
|
||||
'0x' || SUBSTR(SUBSTR(payload, 233, 64), 25) AS dst_chain_receiver
|
||||
FROM
|
||||
oft_raw o
|
||||
INNER JOIN layerzero l
|
||||
ON o.tx_hash = l.tx_hash
|
||||
AND o.guid = l.guid
|
||||
INNER JOIN layerzero l USING (
|
||||
tx_hash,
|
||||
guid
|
||||
)
|
||||
)
|
||||
SELECT
|
||||
block_timestamp,
|
||||
@ -235,6 +250,7 @@ SELECT
|
||||
--end_ticket_id,
|
||||
--ticket_id,
|
||||
asset_id,
|
||||
origin_from_address AS from_address,
|
||||
dst_receiver_address,
|
||||
amount_transferred,
|
||||
payload,
|
||||
@ -245,18 +261,23 @@ SELECT
|
||||
dst_chain_hex,
|
||||
receiver_ca,
|
||||
message_type,
|
||||
message_type
|
||||
'bus' AS bridge_type
|
||||
FROM
|
||||
final_bus_driven
|
||||
UNION ALL
|
||||
SELECT
|
||||
block_timestamp,
|
||||
tx_hash,
|
||||
l.event_index,
|
||||
contract_address,
|
||||
guid,
|
||||
event_index,
|
||||
stargate_adapter_address,
|
||||
-- adapter address, the CA of the adapter
|
||||
dst_id,
|
||||
stargate_adapter_address AS asset_id,
|
||||
-- this supposed to be asset id
|
||||
from_address,
|
||||
-- src sender
|
||||
dst_id,
|
||||
dst_chain_receiver AS dst_receiver_address,
|
||||
amount_sent,
|
||||
payload,
|
||||
TYPE,
|
||||
@ -267,11 +288,6 @@ SELECT
|
||||
dst_chain_hex,
|
||||
receiver_ca,
|
||||
message_type,
|
||||
SUBSTR(
|
||||
payload,
|
||||
229,
|
||||
4
|
||||
) AS message_type_2,
|
||||
'0x' || SUBSTR(SUBSTR(payload, 233, 64), 25) AS dst_chain_receiver
|
||||
'oft' AS bridge_type
|
||||
FROM
|
||||
final_oft
|
||||
|
||||
@ -0,0 +1,13 @@
|
||||
{{ config(
|
||||
materialized = 'incremental',
|
||||
incremental_strategy = 'delete+insert',
|
||||
unique_key = "contract_address",
|
||||
tags = ['silver_bridge','defi','bridge','curated']
|
||||
) }}
|
||||
-- busdriven + oftsent
|
||||
WITH busdriven AS (
|
||||
|
||||
SELECT
|
||||
FROM
|
||||
{{ ref('silver_bridge__stargate_v2_busdriven') }}
|
||||
)
|
||||
@ -0,0 +1,112 @@
|
||||
{{ config(
|
||||
materialized = 'incremental',
|
||||
incremental_strategy = 'delete+insert',
|
||||
unique_key = "contract_address",
|
||||
tags = ['silver_bridge','defi','bridge','curated']
|
||||
) }}
|
||||
|
||||
WITH bus_driven_raw AS (
|
||||
|
||||
SELECT
|
||||
block_number,
|
||||
block_timestamp,
|
||||
tx_hash,
|
||||
event_index,
|
||||
contract_address,
|
||||
decoded_log :dstEid :: INT AS dst_id,
|
||||
SUBSTR(
|
||||
decoded_log :guid :: STRING,
|
||||
3
|
||||
) AS guid,
|
||||
decoded_log :numPassengers :: INT AS num_passengers,
|
||||
decoded_log :startTicketId :: INT AS start_ticket_id,
|
||||
ROW_NUMBER() over (
|
||||
PARTITION BY tx_hash
|
||||
ORDER BY
|
||||
event_index ASC
|
||||
) AS rn,
|
||||
start_ticket_id + num_passengers - 1 AS end_ticket_id
|
||||
FROM
|
||||
{{ ref('core__ez_decoded_event_logs') }}
|
||||
WHERE
|
||||
contract_address = '0x5634c4a5fed09819e3c46d86a965dd9447d86e47'
|
||||
AND event_name = 'BusDriven'
|
||||
AND block_timestamp :: DATE >= '2024-01-01'
|
||||
),
|
||||
bus_driven AS (
|
||||
SELECT
|
||||
r.block_number,
|
||||
r.block_timestamp,
|
||||
r.tx_hash,
|
||||
r.event_index,
|
||||
contract_address,
|
||||
r.dst_id,
|
||||
start_ticket_id,
|
||||
num_passengers,
|
||||
end_ticket_id,
|
||||
b.ticket_id,
|
||||
asset_id,
|
||||
asset_name,
|
||||
from_address,
|
||||
dst_receiver_address,
|
||||
amount_transferred,
|
||||
r.guid
|
||||
FROM
|
||||
bus_driven_raw r
|
||||
INNER JOIN {{ ref('silver_bridge__stargate_v2_busrode') }}
|
||||
-- join with busRode
|
||||
b
|
||||
ON r.dst_id = b.dst_id
|
||||
AND b.ticket_id >= start_ticket_id
|
||||
AND b.ticket_id <= end_ticket_id
|
||||
),
|
||||
layerzero AS (
|
||||
SELECT
|
||||
tx_hash,
|
||||
guid,
|
||||
payload,
|
||||
TYPE,
|
||||
nonce,
|
||||
src_chain_id,
|
||||
src_chain,
|
||||
sender_contract_address,
|
||||
dst_chain_id,
|
||||
dst_chain,
|
||||
receiver_contract_address,
|
||||
message_type
|
||||
FROM
|
||||
{{ ref('silver_bridge__layerzero_v2_packet') }}
|
||||
)
|
||||
SELECT
|
||||
b.block_number,
|
||||
b.block_timestamp,
|
||||
b.tx_hash,
|
||||
guid,
|
||||
b.event_index,
|
||||
b.contract_address,
|
||||
dst_id,
|
||||
start_ticket_id,
|
||||
num_passengers,
|
||||
end_ticket_id,
|
||||
ticket_id,
|
||||
asset_id,
|
||||
asset_name,
|
||||
from_address,
|
||||
dst_receiver_address,
|
||||
amount_transferred,
|
||||
payload,
|
||||
TYPE,
|
||||
nonce,
|
||||
src_chain_id,
|
||||
src_chain,
|
||||
sender_contract_address,
|
||||
dst_chain_id,
|
||||
dst_chain,
|
||||
receiver_contract_address,
|
||||
message_type
|
||||
FROM
|
||||
bus_driven b
|
||||
INNER JOIN layerzero l USING (
|
||||
tx_hash,
|
||||
guid
|
||||
)
|
||||
@ -51,7 +51,6 @@ oft_sent AS (
|
||||
topic_2,
|
||||
27
|
||||
) AS from_address,
|
||||
-- src sender
|
||||
utils.udf_hex_to_int(
|
||||
part [0] :: STRING
|
||||
) AS dst_id,
|
||||
@ -114,12 +113,12 @@ SELECT
|
||||
stargate_adapter_address,
|
||||
guid,
|
||||
from_address,
|
||||
-- might need to use the origin from address as sender instead. because this address is the address taht sent to the token messaging contract
|
||||
dst_id,
|
||||
amount_sent,
|
||||
bus_dst_id,
|
||||
ticket_id,
|
||||
asset_id,
|
||||
A.asset AS asset_name,
|
||||
dst_receiver_address,
|
||||
amount_transferred,
|
||||
is_native_drop
|
||||
@ -132,3 +131,6 @@ FROM
|
||||
o.oft_sent_index < b.next_bus_rode_index
|
||||
OR b.next_bus_rode_index IS NULL
|
||||
)
|
||||
LEFT JOIN {{ ref('silver_bridge__stargate_asset_id') }} A
|
||||
ON asset_id = id
|
||||
AND A.chain = 'Base'
|
||||
@ -0,0 +1,96 @@
|
||||
-- oft tokens
|
||||
{{ config(
|
||||
materialized = 'incremental',
|
||||
incremental_strategy = 'delete+insert',
|
||||
unique_key = "block_number",
|
||||
tags = ['silver_bridge','defi','bridge','curated']
|
||||
) }}
|
||||
|
||||
WITH layerzero AS (
|
||||
|
||||
SELECT
|
||||
tx_hash,
|
||||
payload,
|
||||
TYPE,
|
||||
nonce,
|
||||
src_chain_id,
|
||||
src_chain,
|
||||
sender_contract_address,
|
||||
dst_chain_id,
|
||||
dst_chain,
|
||||
receiver_contract_address,
|
||||
guid,
|
||||
message_type,
|
||||
SUBSTR(
|
||||
payload,
|
||||
229,
|
||||
4
|
||||
) AS message_type_2,
|
||||
'0x' || SUBSTR(SUBSTR(payload, 233, 64), 25) AS to_address
|
||||
FROM
|
||||
{{ ref('silver_bridge__layerzero_v2_packet') }}
|
||||
WHERE
|
||||
sender_contract_address = LOWER('0x5634c4a5fed09819e3c46d86a965dd9447d86e47') -- token messaging arbitrum
|
||||
),
|
||||
oft_raw AS (
|
||||
SELECT
|
||||
block_number,
|
||||
block_timestamp,
|
||||
tx_hash,
|
||||
event_index,
|
||||
topic_0,
|
||||
topic_1,
|
||||
topic_2,
|
||||
topic_3,
|
||||
contract_address AS stargate_oft_address,
|
||||
DATA,
|
||||
regexp_substr_all(SUBSTR(DATA, 3), '.{64}') AS part,
|
||||
SUBSTR(
|
||||
topic_1,
|
||||
3
|
||||
) AS guid,
|
||||
'0x' || SUBSTR(
|
||||
topic_2,
|
||||
27
|
||||
) AS from_address,
|
||||
utils.udf_hex_to_int(
|
||||
part [0] :: STRING
|
||||
) AS dst_chain_id_oft,
|
||||
utils.udf_hex_to_int(
|
||||
part [1] :: STRING
|
||||
) AS amount_sent
|
||||
FROM
|
||||
{{ ref('core__fact_event_logs') }}
|
||||
WHERE
|
||||
block_timestamp :: DATE >= '2024-01-01'
|
||||
AND topic_0 = '0x85496b760a4b7f8d66384b9df21b381f5d1b1e79f229a47aaf4c232edc2fe59a' --OFTSent
|
||||
)
|
||||
SELECT
|
||||
block_number,
|
||||
block_timestamp,
|
||||
tx_hash,
|
||||
guid,
|
||||
event_index,
|
||||
stargate_oft_address,
|
||||
-- need a reads model to read the token func (0xfc0c546a)
|
||||
from_address,
|
||||
to_address,
|
||||
src_chain_id,
|
||||
src_chain,
|
||||
dst_chain_id,
|
||||
dst_chain,
|
||||
dst_chain_id_oft,
|
||||
amount_sent,
|
||||
payload,
|
||||
TYPE,
|
||||
nonce,
|
||||
sender_contract_address,
|
||||
receiver_contract_address,
|
||||
message_type,
|
||||
message_type_2
|
||||
FROM
|
||||
oft_raw o
|
||||
INNER JOIN layerzero l USING (
|
||||
tx_hash,
|
||||
guid
|
||||
)
|
||||
Loading…
Reference in New Issue
Block a user