Afonso_Diaz2024-03-06 09:50 PM
Updated 2024-03-06
99
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
›
⌄
with
nftSales as (
SELECT
receipts.TX_HASH,
receipts.RECEIPT_OBJECT_ID,
receipts.BLOCK_ID,
receipts.BLOCK_TIMESTAMP,
calls.receiver_id AS MARKETPLACE,
TRY_PARSE_JSON(replace(log_arr.value, 'EVENT_JSON:')):data as data,
TRY_PARSE_JSON(replace(log_arr.value, 'EVENT_JSON:')):event as event,
args:token_id AS TOKEN_ID
FROM near.core.fact_receipts AS receipts
JOIN near.core.fact_actions_events_function_call AS calls
USING (tx_hash)
JOIN lateral flatten (input => logs) log_arr
WHERE
ARRAY_SIZE(logs) > 0
AND (NOT status_value:SuccessValue IS NULL OR NOT status_value:Failure IS NULL)
AND calls.method_name = 'resolve_offer'
AND event in ('nft_sale', 'nft_transfer')
),
nftSales2 as (
SELECT
p1.TX_HASH,
p1.RECEIPT_OBJECT_ID,
p1.BLOCK_ID,
p1.BLOCK_TIMESTAMP,
CAST(COALESCE(p2.data[0]:old_owner_id, p1.data:seller_id, p1.data[0]:seller_id) AS STRING) AS SELLER_ADDRESS,
CAST(COALESCE(p2.data[0]:new_owner_id, p1.data:buyer_id, p1.data[0]:buyer_id) AS STRING) AS BUYER_ADDRESS,
p1.MARKETPLACE,
CAST((COALESCE(p1.data:price, p1.data:amount)/1e24) AS FLOAT) as PRICE,
CAST(COALESCE(p1.data[0]:nft_contract_id, p1.data:nft_contract_id) AS STRING) as NFT_CONTRACT_ID,
'Buy' AS METHOD_NAME,
p1.TOKEN_ID
FROM nftSales AS p1
QueryRunArchived: QueryRun has been archived