Afonso_Diaz2024-03-06 09:50 PM
    Updated 2024-03-06
    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