Revenue By Token ID

[7]:
"""
Update Parameters Here
"""
COLLECTION_NAME = "8_BIT_UNIVERSE"
CONTRACT = "0xaAe71BBbaA359BE0d81D5CBc9B1E88A8b7c58a94"
[8]:
"""
@author: mdigi14
"""
from typing import Any, Dict, List, Optional

import pandas as pd

from honestnft_utils import config
from honestnft_utils import constants
from honestnft_utils import opensea

"""
Helper Functions
"""


def get_all_sales(token_id: Optional[int] = None) -> List[Dict[str, Any]]:
    data = opensea.get_opensea_events(
        contract_address=CONTRACT, event_type="successful", token_id=token_id
    )
    return data
[9]:
"""
Generate Dataset
"""

events = get_all_sales()
df = pd.json_normalize(events)

# Keep only the columns we want
df = df[
    [
        "asset.token_id",
        "total_price",
        "transaction.timestamp",
    ]
]
df["total_price"] = df["total_price"].apply(lambda x: float(x) / constants.ETHER_UNITS)

# Rename columns
df.columns = [
    "token_id",
    "price",
    "date_sold",
]

# drop NA values
df.dropna(subset=["token_id"], inplace=True)

# keep first sale of a token only
df = df.sort_values(by=["date_sold", "token_id"]).drop_duplicates(
    subset=["token_id"], keep="first"
)

df.to_csv(
    f"{config.FIRST_FLIP_REVENUE_FOLDER}/{COLLECTION_NAME}_first_sale_revenue.csv",
    index=False,
)