Skip to content

Commit

Permalink
Feature/ccip v1.2.0 (duneanalytics#5652)
Browse files Browse the repository at this point in the history
* updated ccip v1.2

* update bas gas fee

* fix l2 gas price

* change to AVG for usd daily

* change to AVG for usd daily

* rerun to test

* update log networks

* test new requests daily

* test new requests daily

* add caller to requests

* add caller_address

* update daily txs

* add new admin feed address

* add in extra incremental filter

* update chainlink send requested

* date_month to date_start
  • Loading branch information
AnonJon authored Mar 22, 2024
1 parent 8ebe735 commit f1a50fd
Show file tree
Hide file tree
Showing 84 changed files with 2,313 additions and 592 deletions.
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
{{
config(
tags = ['prod_exclude'],
alias='ccip_fulfilled_transactions',
materialized='incremental',
file_format='delta',
incremental_strategy='merge',
unique_key=['tx_hash', 'trace_address', 'node_address']
unique_key=['tx_hash', 'tx_index', 'caller_address']
)
}}

Expand All @@ -14,26 +13,52 @@
WITH
ccip_fulfilled_transactions AS (
SELECT
ccip_send_traces.tx_hash as tx_hash,
ccip_send_traces.block_time as block_time,
cast(date_trunc('day', ccip_send_traces.block_time) as date) as date_start,
ccip_send_traces."from" as "node_address",
ccip_send_traces.trace_address as trace_address
ccip_send_logs_v1.tx_hash as tx_hash,
ccip_send_logs_v1.block_time as block_time,
cast(date_trunc('day', ccip_send_logs_v1.block_time) as date) as date_start,
ccip_send_logs_v1.tx_from as caller_address,
ccip_send_logs_v1.tx_index as tx_index
FROM
{{ ref('chainlink_arbitrum_ccip_send_traces') }} ccip_send_traces
{{ ref('chainlink_arbitrum_ccip_send_requested_logs_v1') }} ccip_send_logs_v1
LEFT JOIN {{ source('arbitrum', 'transactions') }} tx ON
ccip_send_logs_v1.tx_hash = tx.hash
{% if is_incremental() %}
AND tx.block_time >= date_trunc('day', now() - interval '{{incremental_interval}}' day)
{% endif %}
WHERE
ccip_send_traces.tx_success = true
tx.success = true
{% if is_incremental() %}
AND ccip_send_traces.block_time >= date_trunc('day', now() - interval '{{incremental_interval}}' day)
AND ccip_send_logs_v1.block_time >= date_trunc('day', now() - interval '{{incremental_interval}}' day)
{% endif %}

UNION

SELECT
ccip_send_logs_v1_2.tx_hash as tx_hash,
ccip_send_logs_v1_2.block_time as block_time,
cast(date_trunc('day', ccip_send_logs_v1_2.block_time) as date) as date_start,
ccip_send_logs_v1_2.tx_from as caller_address,
ccip_send_logs_v1_2.tx_index as tx_index
FROM
{{ ref('chainlink_arbitrum_ccip_send_requested_logs_v1_2') }} ccip_send_logs_v1_2
LEFT JOIN {{ source('arbitrum', 'transactions') }} tx ON
ccip_send_logs_v1_2.tx_hash = tx.hash
{% if is_incremental() %}
AND tx.block_time >= date_trunc('day', now() - interval '{{incremental_interval}}' day)
{% endif %}
WHERE
tx.success = true
{% if is_incremental() %}
AND ccip_send_logs_v1_2.block_time >= date_trunc('day', now() - interval '{{incremental_interval}}' day)
{% endif %}

)
SELECT
'arbitrum' as blockchain,
block_time,
date_start,
node_address,
caller_address,
tx_hash,
trace_address
tx_index
FROM
ccip_fulfilled_transactions
31 changes: 31 additions & 0 deletions models/chainlink/arbitrum/chainlink_arbitrum_ccip_onramp_meta.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
{{
config(
alias='ccip_onramp_meta',
materialized = 'view'
)
}}


SELECT
blockchain,
onramp AS onramp,
cast(chain_selector AS UINT256) AS chain_selector,
"version"
FROM (VALUES
('ethereum', 0x98dd9E9b8AE458225119Ab5B8c947A9d1cd0B648, '5009297550715157269', 'v1.0.0')
,('ethereum', 0x6264f5c5bc1c0201159a5bcd6486d9c6c2f75439, '5009297550715157269', 'v1.0.0') -- found through traces (old)
, ('optimism', 0x0000000000000000000000000000000000000000, '3734403246176062136', 'v1.0.0')
, ('avalanche_c', 0x0000000000000000000000000000000000000000, '6433500567565415381', 'v1.0.0')
, ('polygon', 0x0000000000000000000000000000000000000000, '4051577828743386545', 'v1.0.0')
, ('polygon', 0x9409b222c96ae8377db6a4b6645350f7dc94e9ef, '4051577828743386545', 'v1.0.0') -- found through traces (old)
, ('base', 0x590791aA846eC4D2Aa2B8697Edeb6158F6054839, '15971525489660198786', 'v1.0.0')
, ('bnb', 0x0000000000000000000000000000000000000000, '11344663589394136015', 'v1.0.0')
, ('ethereum', 0xCe11020D56e5FDbfE46D9FC3021641FfbBB5AdEE, '5009297550715157269', 'v1.2.0')
, ('optimism', 0xC09b72E8128620C40D89649019d995Cc79f030C3, '3734403246176062136', 'v1.2.0')
, ('avalanche_c', 0x05B723f3db92430FbE4395fD03E40Cc7e9D17988, '6433500567565415381', 'v1.2.0')
, ('polygon', 0x122F05F49e90508F089eE8D0d868d1a4f3E5a809, '4051577828743386545', 'v1.2.0')
, ('base', 0x77b60F85b25fD501E3ddED6C1fe7bF565C08A22A, '15971525489660198786', 'v1.2.0')
, ('bnb', 0x79f3ABeCe5A3AFFf32D47F4CFe45e7b65c9a2D91, '11344663589394136015', 'v1.2.0')
, ('wemix', 0x66a0046ac9FA104eB38B04cfF391CcD0122E6FbC, '5142893604156789321', 'v1.2.0')
)
AS a (blockchain, onramp, chain_selector, "version")
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
{{
config(

alias='ccip_request_daily',
partition_by=['date_month'],
materialized='incremental',
Expand Down Expand Up @@ -78,4 +77,4 @@ SELECT
FROM
ccip_request_daily
ORDER BY
"date_start"
"date_start"
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
{{
config(
tags = ['prod_exclude'],
alias='ccip_reverted_transactions',
materialized='incremental',
file_format='delta',
incremental_strategy='merge',
unique_key=['tx_hash', 'trace_address', 'node_address']
unique_key=['tx_hash', 'tx_index', 'caller_address']
)
}}

Expand All @@ -14,25 +13,52 @@
WITH
ccip_reverted_transactions AS (
SELECT
tx.tx_hash as tx_hash,
tx.block_time as block_time,
cast(date_trunc('day', tx.block_time) as date) as date_start,
tx."from" as "node_address",
tx.trace_address as trace_address
ccip_send_logs_v1.tx_hash as tx_hash,
ccip_send_logs_v1.block_time as block_time,
cast(date_trunc('day', ccip_send_logs_v1.block_time) as date) as date_start,
ccip_send_logs_v1.tx_from as caller_address,
ccip_send_logs_v1.tx_index as tx_index
FROM
{{ ref('chainlink_arbitrum_ccip_send_traces') }} tx
{{ ref('chainlink_arbitrum_ccip_send_requested_logs_v1') }} ccip_send_logs_v1
LEFT JOIN {{ source('arbitrum', 'transactions') }} tx ON
ccip_send_logs_v1.tx_hash = tx.hash
{% if is_incremental() %}
AND tx.block_time >= date_trunc('day', now() - interval '{{incremental_interval}}' day)
{% endif %}
WHERE
tx.tx_success = false
tx.success = false
{% if is_incremental() %}
AND ccip_send_logs_v1.block_time >= date_trunc('day', now() - interval '{{incremental_interval}}' day)
{% endif %}

UNION

SELECT
ccip_send_logs_v1_2.tx_hash as tx_hash,
ccip_send_logs_v1_2.block_time as block_time,
cast(date_trunc('day', ccip_send_logs_v1_2.block_time) as date) as date_start,
ccip_send_logs_v1_2.tx_from as caller_address,
ccip_send_logs_v1_2.tx_index as tx_index
FROM
{{ ref('chainlink_arbitrum_ccip_send_requested_logs_v1_2') }} ccip_send_logs_v1_2
LEFT JOIN {{ source('arbitrum', 'transactions') }} tx ON
ccip_send_logs_v1_2.tx_hash = tx.hash
{% if is_incremental() %}
AND tx.block_time >= date_trunc('day', now() - interval '{{incremental_interval}}' day)
{% endif %}
AND tx.block_time >= date_trunc('day', now() - interval '{{incremental_interval}}' day)
{% endif %}
WHERE
tx.success = false
{% if is_incremental() %}
AND ccip_send_logs_v1_2.block_time >= date_trunc('day', now() - interval '{{incremental_interval}}' day)
{% endif %}

)
SELECT
'arbitrum' as blockchain,
block_time,
date_start,
node_address,
caller_address,
tx_hash,
trace_address
tx_index
FROM
ccip_reverted_transactions
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ WITH
{% endif %}
GROUP BY 1, 5
)

SELECT
'arbitrum' as blockchain,
date_start,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,46 +6,45 @@
)
}}

WITH combined_logs AS (
SELECT
ccip_logs_v1.blockchain,
ccip_logs_v1.block_time,
ccip_logs_v1.fee_token_amount / 1e18 AS fee_token_amount,
token_addresses.token_symbol AS token,
ccip_logs_v1.fee_token,
ccip_logs_v1.destination_selector,
ccip_logs_v1.destination_blockchain,
ccip_logs_v1.tx_hash
FROM
{{ ref('chainlink_arbitrum_ccip_send_requested_logs_v1') }} ccip_logs_v1
LEFT JOIN {{ ref('chainlink_arbitrum_ccip_token_meta') }} token_addresses ON token_addresses.token_contract = ccip_logs_v1.fee_token

UNION ALL

SELECT
ccip_logs_v1_2.blockchain,
ccip_logs_v1_2.block_time,
ccip_logs_v1_2.fee_token_amount / 1e18 AS fee_token_amount,
token_addresses.token_symbol AS token,
ccip_logs_v1_2.fee_token,
ccip_logs_v1_2.destination_selector,
ccip_logs_v1_2.destination_blockchain,
ccip_logs_v1_2.tx_hash
FROM
{{ ref('chainlink_arbitrum_ccip_send_requested_logs_v1_2') }} ccip_logs_v1_2
LEFT JOIN {{ ref('chainlink_arbitrum_ccip_token_meta') }} token_addresses ON token_addresses.token_contract = ccip_logs_v1_2.fee_token
)

SELECT
MAX(ccip_traces.blockchain) AS blockchain,
MAX(ccip_traces.block_time) AS evt_block_time,
MAX(reward_evt_transfer.value / 1e18) AS fee_amount,
MAX(token_addresses.token_symbol) AS token,
MAX(ccip_traces.chain_selector) as destination_chain_selector,
MAX(ccip_traces.destination) as destination_blockchain
MAX(blockchain) AS blockchain,
MAX(block_time) AS evt_block_time,
SUM(fee_token_amount) AS fee_token_amount,
MAX(token) AS token,
MAX(fee_token) AS fee_token,
MAX(destination_selector) AS destination_selector,
MAX(destination_blockchain) AS destination_blockchain
FROM
{{ ref('chainlink_arbitrum_ccip_send_traces') }} ccip_traces
LEFT JOIN {{ source('erc20_arbitrum', 'evt_Transfer') }} reward_evt_transfer ON reward_evt_transfer.evt_tx_hash = ccip_traces.tx_hash
LEFT JOIN {{ ref('chainlink_arbitrum_ccip_token_meta') }} token_addresses ON token_addresses.token_contract = reward_evt_transfer.contract_address
LEFT JOIN {{ ref('chainlink_arbitrum_ccip_tokens_locked_logs') }} tokens_locked ON tokens_locked.tx_hash = ccip_traces.tx_hash
WHERE
(
(
ccip_traces.value > 0
AND reward_evt_transfer.contract_address IN (
SELECT
token_contract
FROM
{{ ref('chainlink_arbitrum_ccip_token_meta') }}
WHERE
token_symbol = 'WETH'
)
)
OR (
ccip_traces.value <= 0
AND reward_evt_transfer.contract_address IN (
SELECT
token_contract
FROM
{{ ref('chainlink_arbitrum_ccip_token_meta') }}
WHERE
token_symbol != 'WETH'
)
)
)
AND (
tokens_locked.tx_hash IS NULL
OR tokens_locked.total_tokens != reward_evt_transfer.value
)
combined_logs
GROUP BY
ccip_traces.tx_hash
tx_hash
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ SELECT
'arbitrum' as blockchain,
cast(date_trunc('day', evt_block_time) AS date) AS date_start,
MAX(cast(date_trunc('month', evt_block_time) AS date)) AS date_month,
SUM(ccip_send_requested.fee_amount) as fee_amount,
SUM(ccip_send_requested.fee_token_amount) as fee_amount,
ccip_send_requested.token as token,
ccip_send_requested.destination_blockchain AS destination_blockchain,
COUNT(ccip_send_requested.destination_blockchain) AS count
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
{{
config(

alias='ccip_send_requested_logs_v1',
materialized='view'
)
}}

SELECT
'arbitrum' as blockchain,
block_hash,
contract_address,
data,
topic0,
topic1,
topic2,
topic3,
tx_hash,
block_number,
block_time,
index,
tx_index,
tx_from,
bytearray_to_uint256(bytearray_substring(data, 97, 32)) as fee_token_amount,
bytearray_to_uint256(bytearray_substring(data, 33, 32)) as origin_selector,
varbinary_ltrim(bytearray_substring(data, 353, 32)) as fee_token,
onramp_meta.chain_selector as destination_selector,
onramp_meta.blockchain as destination_blockchain
FROM
{{ source('arbitrum', 'logs') }} logs
left join {{ref('chainlink_arbitrum_ccip_onramp_meta')}} onramp_meta on onramp_meta.onramp = contract_address
WHERE
topic0 = 0xaffc45517195d6499808c643bd4a7b0ffeedf95bea5852840d7bfcf63f59e821 -- CCIPSendRequested v1.0.0
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
{{
config(

alias='ccip_send_requested_logs_v1_2',
materialized='view'
)
}}

SELECT
'arbitrum' as blockchain,
block_hash,
contract_address,
data,
topic0,
topic1,
topic2,
topic3,
tx_hash,
block_number,
block_time,
index,
tx_index,
tx_from,
bytearray_to_uint256(bytearray_substring(data, 289, 32)) as fee_token_amount,
bytearray_to_uint256(bytearray_substring(data, 33, 32)) as origin_selector,
varbinary_ltrim(bytearray_substring(data, 257, 32)) as fee_token,
onramp_meta.chain_selector as destination_selector,
onramp_meta.blockchain as destination_blockchain
FROM
{{ source('arbitrum', 'logs') }} logs
left join {{ref('chainlink_arbitrum_ccip_onramp_meta')}} onramp_meta on onramp_meta.onramp = contract_address
WHERE
topic0 = 0xd0c3c799bf9e2639de44391e7f524d229b2b55f5b1ea94b2bf7da42f7243dddd -- CCIPSendRequested v1.2.0
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ SELECT admin_address, operator_name FROM (VALUES
(0xB8C6E43f37E04A2411562a13c1C48B3ad5975cf4, '{{inotel}}'),
(0x4564A9c6061f6f1F2Eadb954B1b3C241D2DC984e, '{{linkforest}}'),
(0x797de2909991C66C66D8e730C8385bbab8D18eA6, '{{linkpool}}'),
(0xDF812B91D8bf6DF698BFD1D8047839479Ba63420, '{{linkpool}}'),
(0x14f94049397C3F1807c45B6f854Cb5F36bC4393B, '{{linkriver}}'),
(0x4dc81f63CB356c1420D4620414f366794072A3a8, '{{matrixedlink}}'),
(0x0921E157b690c4F89F7C2a210cFd8bF3964F6776, '{{northwestnodes}}'),
Expand Down
Loading

0 comments on commit f1a50fd

Please sign in to comment.