TheLaughingManParas Base 2023
    Updated 2023-08-29
    with base as (
    SELECT
    *
    FROM near.core.fact_transactions
    WHERE 1=1
    AND (tx_receiver LIKE '%paras%')
    ),

    extracts as (
    SELECT
    tx_hash, block_timestamp,
    --logs,
    replace(logs[0], '\\') as logs_pre,
    CASE WHEN logs_pre like 'EVENT_JSON:%' THEN replace( replace(split(logs_pre,'EVENT_JSON:')[1], '\:\"\{\"', '\:\{\"'), '\"}\"\}', '\"}\}') ELSE logs_pre END as logs_cleaned,
    check_json(logs_cleaned) as checks,
    TRY_PARSE_JSON(logs_cleaned) as log_json
    FROM near.core.fact_receipts
    WHERE 1=1
    AND tx_hash IN (SELECT tx_hash from base)
    AND ARRAY_SIZE(logs)>0
    ),

    types as (
    SELECT
    e.tx_hash,
    e.block_timestamp,
    tx_signer,
    tx_receiver,
    coalesce(log_json:type, log_json:event) as type,
    coalesce(coalesce(log_json:params:price, log_json:data[0]:memo:price, log_json:params:amount)/1e24, 0) as price,
    log_json:params:ft_token_id as price_token,
    coalesce(log_json:params:buyer_id, log_json:data[0]:new_owner_id, log_json:data[0]:owner_id, log_json:params:creator_id ) as actor,
    CASE WHEN type != 'nft_mint' THEN coalesce(log_json:params:old_owner, log_json:data[0]:owner_id, log_json:params:owner_id) ELSE null END as prev_actor,
    Run a query to Download Data