Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -100,3 +100,15 @@ models:
columns:
- *id
- *blockchain
- name: bridges_agglayer_chain_indexes
meta:
blockchain: ethereum
sector: bridges
project: agglayer
contributors: [ 'hildobby']
config:
tags: [ 'bridges', 'chain_indexes' ]
description: "Agglayer's blockchains indexes"
columns:
- *id
- *blockchain
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{{ config(
schema = 'bridges',
alias = 'agglayer_chain_indexes',
materialized = 'view',
)
}}

-- source: https://build.agglayer.dev/chains

SELECT id, blockchain
FROM (VALUES
(0, 'ethereum')
, (20, 'katana')
, (16, 'pentagon_games')
, (10, 'silicon_network')
, (3, 'xlayer')
, (8, 'wirex_pay')
, (13, 'ternoa')
, (22, 'forknet')
, (37, 'bokuto')
, (35, 'lumia')
) AS x (id, blockchain)
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
, 'bridges_' + blockchain + '_beamer_v2_deposits'
, 'bridges_' + blockchain + '_polygon_native_v1_deposits'
, 'bridges_' + blockchain + '_nitro_v1_deposits'
, 'bridges_' + blockchain + '_agglayer_v1_deposits'
] %}

SELECT *
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
, 'bridges_' + blockchain + '_sui_native_v1_withdrawals'
, 'bridges_' + blockchain + '_synapse_rfq_withdrawals'
, 'bridges_' + blockchain + '_polygon_native_v1_withdrawals'
, 'bridges_' + blockchain + '_agglayer_v1_withdrawals'
] %}

SELECT *
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -322,3 +322,21 @@ models:
config:
tags: [ 'nitro', 'bridges', 'flows' , 'deposits' ]
description: "Nitro's v1 bridge deposits events on Ethereum"
- name: bridges_ethereum_agglayer_v1_deposits
meta:
blockchain: ethereum
sector: bridges
project: agglayer
contributors: [ 'hildobby']
config:
tags: [ 'agglayer', 'bridges', 'flows' , 'deposits' ]
description: "Agglayer's shared bridge deposits events on Ethereum"
- name: bridges_ethereum_agglayer_v1_withdrawals
meta:
blockchain: ethereum
sector: bridges
project: agglayer
contributors: [ 'hildobby']
config:
tags: [ 'agglayer', 'bridges', 'flows' , 'withdrawals' ]
description: "Agglayer's shared bridge withdrawals events on Ethereum"
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
{% set blockchain = 'ethereum' %}

{{ config(
schema = 'bridges_' + blockchain,
alias = 'agglayer_v1_deposits',
materialized = 'view',
)
}}

WITH bridge_events AS (
SELECT d.destinationNetwork AS withdrawal_chain_id
, evt_block_date AS block_date
, evt_block_time AS block_time
, evt_block_number AS block_number
, amount AS deposit_amount_raw
, CASE WHEN originAddress = 0x0000000000000000000000000000000000000000 THEN evt_tx_from ELSE originAddress END AS sender
, destinationAddress AS recipient
, CASE WHEN metadata=0x THEN 0x0000000000000000000000000000000000000000 ELSE NULL END AS deposit_token_address
, CASE WHEN metadata=0x THEN 'native' ELSE 'erc20' END AS deposit_token_standard
, evt_tx_from AS tx_from
, evt_tx_hash AS tx_hash
, evt_index
, contract_address
, CAST(depositCount AS varchar) AS bridge_transfer_id
FROM {{ source('polygon_zkevm_ethereum', 'polygonzkevmbridge_evt_bridgeevent') }} d
WHERE amount > 0
)

, results AS (
SELECT '{{blockchain}}' AS deposit_chain
, be.withdrawal_chain_id
, i.blockchain AS withdrawal_chain
, 'Agglayer' AS bridge_name
, '1' AS bridge_version
, be.block_date
, be.block_time
, be.block_number
, be.deposit_amount_raw
, COALESCE(t."from", be.sender) AS sender
, be.recipient
, COALESCE(t.contract_address, be.deposit_token_address) AS deposit_token_address
, be.deposit_token_standard
, be.tx_from
, be.tx_hash
, be.evt_index
, be.contract_address
, be.bridge_transfer_id
, ROW_NUMBER() OVER (PARTITION BY be.tx_hash, be.evt_index ORDER BY be.evt_index) AS duplicate_index
FROM bridge_events be
LEFT JOIN {{ source('tokens_ethereum', 'transfers') }} t ON t.block_number=be.block_number
AND t.tx_hash=be.tx_hash
AND t.to=be.contract_address
AND t.amount_raw=be.deposit_amount_raw
AND t.token_standard='erc20'
LEFT JOIN {{ ref('bridges_agglayer_chain_indexes') }} i ON i.id=be.withdrawal_chain_id
)

SELECT deposit_chain
, withdrawal_chain_id
, withdrawal_chain
, bridge_name
, bridge_version
, block_date
, block_time
, block_number
, deposit_amount_raw
, sender
, recipient
, deposit_token_address
, deposit_token_standard
, tx_from
, tx_hash
, evt_index
, contract_address
, bridge_transfer_id
FROM results
WHERE duplicate_index = 1
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
{% set blockchain = 'ethereum' %}

{{ config(
schema = 'bridges_' + blockchain,
alias = 'agglayer_v1_withdrawals',
materialized = 'view',
)
}}


WITH bridge_events AS (
SELECT d.originNetwork AS deposit_chain_id
, evt_block_date AS block_date
, evt_block_time AS block_time
, evt_block_number AS block_number
, amount AS withdrawal_amount_raw
, originAddress AS sender
, destinationAddress AS recipient
, evt_tx_from AS tx_from
, evt_tx_hash AS tx_hash
, evt_index
, contract_address
, CAST(index AS varchar) AS bridge_transfer_id
FROM {{ source('polygon_zkevm_ethereum', 'polygonzkevmbridge_evt_claimevent') }} d
WHERE amount > 0
LIMIT 1000
)

SELECT i.blockchain AS deposit_chain
, be.deposit_chain_id
, '{{blockchain}}' AS withdrawal_chain
, 'Agglayer' AS bridge_name
, '1' AS bridge_version
, be.block_date
, be.block_time
, be.block_number
, be.withdrawal_amount_raw
, COALESCE(t."from", be.sender) AS sender
, be.recipient
, COALESCE(t.contract_address, 0x0000000000000000000000000000000000000000) AS withdrawal_token_address
, CASE WHEN t.contract_address IS NOT NULL THEN 'erc20' ELSE 'native' END AS withdrawal_token_standard
, be.tx_from
, be.tx_hash
, be.evt_index
, be.contract_address
, be.bridge_transfer_id
FROM bridge_events be
LEFT JOIN {{ source('tokens_ethereum', 'transfers') }} t ON t.block_number=be.block_number
AND t.tx_hash=be.tx_hash
AND t."from"=be.contract_address
AND t.amount_raw=be.withdrawal_amount_raw
AND t.token_standard='erc20'
AND t.block_time > NOW() - interval '4' day
LEFT JOIN {{ ref('bridges_agglayer_chain_indexes') }} i ON i.id=be.deposit_chain_id
8 changes: 8 additions & 0 deletions sources/_sector/bridges/agglayer/_sources.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
version: 2

sources:
- name: polygon_zkevm_ethereum
description: "Agglayer's unified bridge events on Ethereum"
tables:
- name: polygonzkevmbridge_evt_bridgeevent
- name: polygonzkevmbridge_evt_claimevent