Nft transfers switch (#1077)

* add

* add

* format

* clean
This commit is contained in:
Sam 2025-06-04 19:59:34 +07:00 committed by GitHub
parent aab3698eff
commit d78ff89190
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
19 changed files with 200 additions and 114 deletions

View File

@ -32,26 +32,27 @@ WITH daily_trending_list AS (
) }}
)
GROUP BY
nft_address qualify ROW_NUMBER() over (
ALL qualify ROW_NUMBER() over (
ORDER BY
sale_usd DESC
) <= 10
),
mints AS (
SELECT
nft_address,
contract_address AS nft_address,
COUNT(1) AS mint_count
FROM
{{ ref('silver__nft_mints') }}
{{ ref('nft__ez_nft_transfers') }}
WHERE
nft_address IN (
is_mint
AND nft_address IN (
SELECT
nft_address
FROM
daily_trending_list
)
GROUP BY
nft_address
ALL
HAVING
mint_count <= 50000
),

View File

@ -41,19 +41,23 @@ WHERE
),
nft_mints AS (
SELECT
nft_address,
t.contract_address AS nft_address,
COUNT(
DISTINCT tokenId
DISTINCT token_id
) AS mint_count,
1 AS start_page,
CEIL(
mint_count / 100
) AS end_page
FROM
{{ ref('silver__nft_mints') }}
INNER JOIN nft_list USING (nft_address)
{{ ref('nft__ez_nft_transfers') }}
t
INNER JOIN nft_list l
ON t.contract_address = l.nft_address
WHERE
is_mint
GROUP BY
nft_address
ALL
HAVING
mint_count <= 50000
),

View File

@ -6,7 +6,7 @@
WITH top_nft_collection AS (
SELECT
nft_address,
contract_address AS nft_address,
SUM(price_usd) AS usd_sales
FROM
{{ ref('nft__ez_nft_sales') }}
@ -21,26 +21,30 @@ WITH top_nft_collection AS (
'0x57f1887a8bf19b14fc0df6fd9b2acc9af147ea85' -- ENS
)
GROUP BY
nft_address qualify ROW_NUMBER() over (
ALL qualify ROW_NUMBER() over (
ORDER BY
SUM(price_usd) DESC
) <= 10
),
nft_mints AS (
SELECT
nft_address,
contract_address AS nft_address,
COUNT(
DISTINCT tokenId
DISTINCT token_id
) AS mint_count,
1 AS start_page,
CEIL(
mint_count / 100
) AS end_page
FROM
{{ ref('silver__nft_mints') }}
INNER JOIN top_nft_collection USING (nft_address)
{{ ref('nft__ez_nft_transfers') }}
t
INNER JOIN top_nft_collection C
ON t.contract_address = C.nft_address
WHERE
is_mint
GROUP BY
nft_address
ALL
),
generator_table AS (
SELECT

View File

@ -119,11 +119,11 @@ loan_details AS (
note_ownership_raw AS (
SELECT
tx_hash,
tokenid AS loanid,
token_id AS loanid,
contract_address,
to_address
FROM
{{ ref('silver__nft_transfers') }}
{{ ref('nft__ez_nft_transfers') }}
WHERE
block_timestamp :: DATE >= '2021-08-30'
AND contract_address IN (
@ -134,13 +134,24 @@ note_ownership_raw AS (
'0xc3231258d6ed397dce7a52a27f816c8f41d22151',
-- borrower for v1.2
'0xe1ef2656d965ac9e3fe151312f19f3d4c5f0efa3' -- lender for v1.2
) qualify ROW_NUMBER() over (
PARTITION BY tx_hash,
loanid,
contract_address
ORDER BY
event_index DESC
) = 1
)
{% if is_incremental() %}
AND modified_timestamp >= (
SELECT
MAX(_inserted_timestamp) - INTERVAL '12 hours'
FROM
{{ this }}
)
{% endif %}
qualify ROW_NUMBER() over (
PARTITION BY tx_hash,
loanid,
contract_address
ORDER BY
event_index DESC
) = 1
),
note_ownership AS (
-- for v1.1 and v1.2 only

View File

@ -44,15 +44,14 @@ obligation_receipt_transfers AS (
l.to_address,
l.to_address AS origin_borrower_address,
l.contract_address AS obligation_receipt_address,
l.tokenid AS obligation_token_id,
l.token_id AS obligation_token_id,
o.loanid
FROM
{{ ref('silver__nft_transfers') }}
{{ ref('nft__ez_nft_transfers') }}
l
INNER JOIN {{ ref('silver_nft__nftfi_v2_obligation_receipts') }}
o USING (
tokenid
)
o
ON l.token_id = o.tokenid
WHERE
l.block_timestamp :: DATE >= '2023-11-04'
AND l.contract_address = '0xaabd3ebcc6ae1e87150c6184c038b94dc01a7708'
@ -60,7 +59,7 @@ obligation_receipt_transfers AS (
AND l.to_address != '0x0000000000000000000000000000000000000000'
{% if is_incremental() %}
AND l._inserted_timestamp >= (
AND l.modified_timestamp >= (
SELECT
MAX(_inserted_timestamp) - INTERVAL '12 hours'
FROM

View File

@ -72,22 +72,21 @@ obligation_receipt_transfers AS (
l.event_index AS transfer_event_index,
l.from_address AS origin_borrower_address,
l.contract_address AS obligation_receipt_address,
l.tokenid AS obligation_token_id,
l.token_id AS obligation_token_id,
o.loanid
FROM
{{ ref('silver__nft_transfers') }}
{{ ref('nft__ez_nft_transfers') }}
l
INNER JOIN {{ ref('silver_nft__nftfi_v2_obligation_receipts') }}
o USING (
tokenid
)
o
ON l.token_id = o.tokenid
WHERE
l.block_timestamp :: DATE >= '2023-11-04'
AND l.contract_address = '0xaabd3ebcc6ae1e87150c6184c038b94dc01a7708'
AND l.to_address != '0x0000000000000000000000000000000000000000'
{% if is_incremental() %}
AND l._inserted_timestamp >= (
AND l.modified_timestamp >= (
SELECT
MAX(_inserted_timestamp) - INTERVAL '12 hours'
FROM

View File

@ -151,21 +151,21 @@ swap_transfers AS (
from_address,
to_address,
contract_address AS nft_address,
tokenid,
_inserted_timestamp
token_id AS tokenid,
modified_timestamp AS _inserted_timestamp
FROM
{{ ref('silver__nft_transfers') }}
{{ ref('nft__ez_nft_transfers') }}
WHERE
block_timestamp :: DATE >= '2021-01-01'
{% if is_incremental() %}
AND _inserted_timestamp >= (
AND modified_timestamp >= (
SELECT
MAX(_inserted_timestamp) - INTERVAL '12 hours'
FROM
{{ this }}
)
AND _inserted_timestamp >= SYSDATE() - INTERVAL '7 day'
AND modified_timestamp >= SYSDATE() - INTERVAL '7 day'
{% endif %}
),
filtered_transfers AS (

View File

@ -260,12 +260,16 @@ post_settlement_nft_mints AS (
tx_hash,
event_index,
contract_address AS nft_address,
tokenid,
token_id AS tokenid,
to_address AS nft_to_address_logs,
_log_id,
_inserted_timestamp
CONCAT(
tx_hash :: STRING,
'-',
event_index :: STRING
) AS _log_id,
modified_timestamp AS _inserted_timestamp
FROM
{{ ref('silver__nft_transfers') }}
{{ ref('nft__ez_nft_transfers') }}
WHERE
block_timestamp :: DATE >= '2022-10-11'
AND contract_address IN (
@ -279,13 +283,13 @@ post_settlement_nft_mints AS (
AND from_address = '0x0000000000000000000000000000000000000000'
{% if is_incremental() %}
AND _inserted_timestamp >= (
AND modified_timestamp >= (
SELECT
MAX(_inserted_timestamp) - INTERVAL '12 hours'
FROM
{{ this }}
)
AND _inserted_timestamp >= SYSDATE() - INTERVAL '7 day'
AND modified_timestamp >= SYSDATE() - INTERVAL '7 day'
{% endif %}
),
all_nft_mints AS (

View File

@ -99,12 +99,16 @@ buyers_list AS (
'-',
contract_address,
'-',
tokenid
token_id
) AS tx_nft_id,
erc1155_value,
IFF(
token_standard = 'erc721',
NULL,
quantity
) AS erc1155_value,
to_address
FROM
{{ ref('silver__nft_transfers') }}
{{ ref('nft__ez_nft_transfers') }}
WHERE
block_timestamp >= '2022-10-01'
AND tx_nft_id IN (
@ -115,13 +119,13 @@ buyers_list AS (
)
{% if is_incremental() %}
AND _inserted_timestamp >= (
AND modified_timestamp >= (
SELECT
MAX(_inserted_timestamp) - INTERVAL '12 hours'
FROM
{{ this }}
)
AND _inserted_timestamp >= SYSDATE() - INTERVAL '7 day'
AND modified_timestamp >= SYSDATE() - INTERVAL '7 day'
{% endif %}
qualify ROW_NUMBER() over (

View File

@ -14,7 +14,11 @@ WITH blur_v2_tx AS (
tx_hash,
event_index,
modified_timestamp AS _inserted_timestamp,
CONCAT(tx_hash, '-', event_index) AS _log_id,
CONCAT(
tx_hash,
'-',
event_index
) AS _log_id,
event_name,
ROW_NUMBER() over (
PARTITION BY tx_hash
@ -927,9 +931,9 @@ takeAsk_nft_sale_details_raw AS (
from_address AS nft_from_address,
to_address AS nft_to_address,
contract_address AS nft_address,
tokenid
token_id AS tokenid
FROM
{{ ref('silver__nft_transfers') }}
{{ ref('nft__ez_nft_transfers') }}
WHERE
block_timestamp >= '2023-07-01'
AND (
@ -948,13 +952,13 @@ takeAsk_nft_sale_details_raw AS (
)
{% if is_incremental() %}
AND _inserted_timestamp >= (
AND modified_timestamp >= (
SELECT
MAX(_inserted_timestamp) - INTERVAL '12 hours'
FROM
{{ this }}
)
AND _inserted_timestamp >= SYSDATE() - INTERVAL '7 day'
AND modified_timestamp >= SYSDATE() - INTERVAL '7 day'
{% endif %}
qualify ROW_NUMBER() over (

View File

@ -230,9 +230,9 @@ nft_transfers AS (
from_address AS nft_from_address,
to_address AS nft_to_address,
contract_address AS nft_address,
tokenid
token_id AS tokenid
FROM
{{ ref('silver__nft_transfers') }}
{{ ref('nft__ez_nft_transfers') }}
WHERE
block_timestamp :: DATE >= '2017-06-20'
AND contract_address = '0xb47e3cd837ddf8e4c57f05d70ab865de6e193bbb'
@ -241,23 +241,25 @@ nft_transfers AS (
tx_hash
FROM
raw_traces
) qualify ROW_NUMBER() over (
PARTITION BY tx_hash,
to_address,
tokenid
ORDER BY
event_index DESC
) = 1
)
{% if is_incremental() %}
AND _inserted_timestamp >= (
AND modified_timestamp >= (
SELECT
MAX(_inserted_timestamp) - INTERVAL '12 hours'
FROM
{{ this }}
)
AND _inserted_timestamp >= SYSDATE() - INTERVAL '7 day'
AND modified_timestamp >= SYSDATE() - INTERVAL '7 day'
{% endif %}
qualify ROW_NUMBER() over (
PARTITION BY tx_hash,
to_address,
tokenid
ORDER BY
event_index DESC
) = 1
),
tx_data AS (
SELECT

View File

@ -250,8 +250,12 @@ nft_transfers AS (
tx_hash,
event_index,
contract_address,
tokenId,
erc1155_value,
token_id AS tokenId,
IFF(
token_standard = 'erc721',
NULL,
quantity
) AS erc1155_value,
CONCAT(
tx_hash,
'-',
@ -260,7 +264,7 @@ nft_transfers AS (
tokenId
) AS nft_id
FROM
{{ ref('silver__nft_transfers') }}
{{ ref('nft__ez_nft_transfers') }}
WHERE
block_timestamp :: DATE >= '2021-12-20'
AND tx_hash IN (
@ -271,13 +275,13 @@ nft_transfers AS (
)
{% if is_incremental() %}
AND _inserted_timestamp >= (
AND modified_timestamp >= (
SELECT
MAX(_inserted_timestamp) - INTERVAL '12 hours'
FROM
{{ this }}
)
AND _inserted_timestamp >= SYSDATE() - INTERVAL '7 day'
AND modified_timestamp >= SYSDATE() - INTERVAL '7 day'
{% endif %}
),
FINAL AS (

View File

@ -260,10 +260,14 @@ nft_transfers AS (
tx_hash,
event_index,
contract_address,
tokenId,
erc1155_value
token_id AS tokenId,
IFF(
token_standard = 'erc721',
NULL,
quantity
) AS erc1155_value
FROM
{{ ref('silver__nft_transfers') }}
{{ ref('nft__ez_nft_transfers') }}
WHERE
block_timestamp :: DATE >= '2023-03-01'
AND tx_hash IN (
@ -274,13 +278,13 @@ nft_transfers AS (
)
{% if is_incremental() %}
AND _inserted_timestamp >= (
AND modified_timestamp >= (
SELECT
MAX(_inserted_timestamp) - INTERVAL '12 hours'
FROM
{{ this }}
)
AND _inserted_timestamp >= SYSDATE() - INTERVAL '7 day'
AND modified_timestamp >= SYSDATE() - INTERVAL '7 day'
{% endif %}
),
final_base_tx AS (

View File

@ -524,10 +524,14 @@ swap_nft_for_eth_from_vault_nft_transfers AS (
from_address AS seller_address,
to_address AS buyer_address,
contract_address AS nft_address,
tokenid,
erc1155_value
token_id AS tokenid,
IFF(
token_standard = 'erc721',
NULL,
quantity
) AS erc1155_value
FROM
{{ ref('silver__nft_transfers') }}
{{ ref('nft__ez_nft_transfers') }}
t
INNER JOIN vaults v
ON t.to_address = v.vault_address
@ -542,13 +546,13 @@ swap_nft_for_eth_from_vault_nft_transfers AS (
AND vault_address IS NOT NULL
{% if is_incremental() %}
AND _inserted_timestamp >= (
AND modified_timestamp >= (
SELECT
MAX(_inserted_timestamp) - INTERVAL '12 hours'
FROM
{{ this }}
)
AND _inserted_timestamp >= SYSDATE() - INTERVAL '7 day'
AND modified_timestamp >= SYSDATE() - INTERVAL '7 day'
{% endif %}
),
swap_nft_for_eth_logs AS (
@ -558,7 +562,11 @@ swap_nft_for_eth_logs AS (
contract_address AS vault_address_token_minted,
'Minted' AS event_name,
'sale' AS event_type,
CONCAT(tx_hash :: STRING, '-', event_index :: STRING) AS _log_id,
CONCAT(
tx_hash :: STRING,
'-',
event_index :: STRING
) AS _log_id,
TO_TIMESTAMP_NTZ(modified_timestamp) AS _inserted_timestamp
FROM
{{ ref('core__fact_event_logs') }}
@ -729,10 +737,14 @@ nft_transfers AS (
SELECT
tx_hash,
contract_address,
tokenid,
erc1155_value
token_id AS tokenid,
IFF(
token_standard = 'erc721',
NULL,
quantity
) AS erc1155_value
FROM
{{ ref('silver__nft_transfers') }}
{{ ref('nft__ez_nft_transfers') }}
WHERE
block_timestamp >= '2021-06-01'
AND tx_hash IN (
@ -743,7 +755,7 @@ nft_transfers AS (
)
{% if is_incremental() %}
AND TO_TIMESTAMP_NTZ(_inserted_timestamp) >= (
AND modified_timestamp >= (
SELECT
MAX(_inserted_timestamp) - INTERVAL '12 hours'
FROM

View File

@ -124,7 +124,7 @@ raw_traces AS (
tx_hash,
from_address,
to_address,
VALUE AS eth_value
VALUE
FROM
{{ ref('core__fact_traces') }}
WHERE
@ -134,7 +134,7 @@ raw_traces AS (
TYPE,
trace_address
) != 'CALL_ORIGIN'
AND value > 0
AND VALUE > 0
AND TYPE = 'CALL'
{% if is_incremental() %}
@ -157,7 +157,7 @@ v1_payment_eth AS (
ROW_NUMBER() over (
PARTITION BY tx_hash
ORDER BY
value DESC
VALUE DESC
) AS price_rank,
CASE
WHEN to_address IN (
@ -165,20 +165,20 @@ v1_payment_eth AS (
address
FROM
rarible_treasury_wallets
) THEN value
) THEN VALUE
ELSE 0
END AS treasury_label,
CASE
WHEN treasury_label = 0
AND price_rank = 1 THEN value
AND price_rank = 1 THEN VALUE
ELSE 0
END AS price_label,
CASE
WHEN treasury_label = 0
AND price_rank != 1 THEN value
AND price_rank != 1 THEN VALUE
ELSE 0
END AS royalty_label,
value AS eth_value
VALUE AS eth_value
FROM
raw_traces
WHERE
@ -451,20 +451,29 @@ v1_base_combined AS (
),
raw_nft_transfers AS (
SELECT
*
block_timestamp,
tx_hash,
event_index,
contract_address,
token_id AS tokenid,
IFF(
token_standard = 'erc721',
NULL,
quantity
) AS erc1155_value
FROM
{{ ref('silver__nft_transfers') }}
{{ ref('nft__ez_nft_transfers') }}
WHERE
block_timestamp >= '2020-11-01'
{% if is_incremental() %}
AND _inserted_timestamp >= (
AND modified_timestamp >= (
SELECT
MAX(_inserted_timestamp) - INTERVAL '12 hours'
FROM
{{ this }}
)
AND _inserted_timestamp >= SYSDATE() - INTERVAL '7 day'
AND modified_timestamp >= SYSDATE() - INTERVAL '7 day'
{% endif %}
),
tx_data AS (
@ -490,7 +499,7 @@ AND modified_timestamp >= (
FROM
{{ this }}
)
AND _inserted_timestamp >= SYSDATE() - INTERVAL '7 day'
AND modified_timestamp >= SYSDATE() - INTERVAL '7 day'
{% endif %}
),
v1_base_final_tx AS (

View File

@ -606,9 +606,16 @@ match_orders_raw AS (
),
nft_transfers_old AS (
SELECT
*
block_timestamp,
tx_hash,
event_index,
contract_address,
token_id as tokenid,
iff(token_standard = 'erc721', null, quantity) as erc1155_value,
from_address,
to_address
FROM
{{ ref('silver__nft_transfers') }}
{{ ref('nft__ez_nft_transfers') }}
WHERE
block_timestamp :: DATE BETWEEN '2021-06-01'
AND '2023-02-09'

View File

@ -347,10 +347,14 @@ nft_transfers_raw AS (
from_address,
to_address,
contract_address,
tokenid,
erc1155_value
token_id AS tokenid,
IFF(
token_standard = 'erc721',
NULL,
quantity
) AS erc1155_value
FROM
{{ ref('silver__nft_transfers') }}
{{ ref('nft__ez_nft_transfers') }}
WHERE
block_timestamp :: DATE BETWEEN '2018-06-12'
AND '2022-08-02'
@ -827,7 +831,7 @@ AND modified_timestamp >= (
FROM
{{ this }}
)
AND _inserted_timestamp >= SYSDATE() - INTERVAL '7 day'
AND modified_timestamp >= SYSDATE() - INTERVAL '7 day'
{% endif %}
)
SELECT

View File

@ -137,7 +137,7 @@ nft_details AS (
contract_address AS nft_address,
token_transfer_type
FROM
{{ ref('silver__nft_transfers') }}
{{ ref('nft__ez_nft_transfers') }}
WHERE
contract_address IN (
SELECT
@ -147,13 +147,13 @@ nft_details AS (
)
{% if is_incremental() %}
AND _inserted_timestamp >= (
AND modified_timestamp >= (
SELECT
MAX(_inserted_timestamp) - INTERVAL '12 hours'
FROM
{{ this }}
)
AND _inserted_timestamp >= SYSDATE() - INTERVAL '7 day'
AND modified_timestamp >= SYSDATE() - INTERVAL '7 day'
{% endif %}
qualify ROW_NUMBER() over (

View File

@ -230,12 +230,26 @@ nft_transfers AS (
from_address AS seller_address,
to_address AS buyer_address,
contract_address AS nft_address,
tokenid,
erc1155_value
token_id AS tokenid,
IFF(
token_standard = 'erc721',
NULL,
quantity
) AS erc1155_value
FROM
{{ ref('silver__nft_transfers') }}
{{ ref('nft__ez_nft_transfers') }}
WHERE
block_timestamp :: DATE >= '2022-04-24'
{% if is_incremental() %}
AND modified_timestamp >= (
SELECT
MAX(_inserted_timestamp) - INTERVAL '12 hours'
FROM
{{ this }}
)
AND modified_timestamp >= SYSDATE() - INTERVAL '7 day'
{% endif %}
),
base_721 AS (
SELECT