"""
@author: mdigi14
"""
import pandas as pd
import math
from honestnft_utils import config
RARITY_PATH = f"{config.RARITY_FOLDER}/{FILE}_raritytools.csv"
MINT_PATH = f"{config.MINTING_FOLDER}/{FILE}_minting.csv"
"""
Generate Report
"""
RARITY_DB = pd.read_csv(RARITY_PATH)
RARITY_DB = RARITY_DB[RARITY_DB[TOKEN_COL].duplicated() == False]
LOWER_BOUND = 0
UPPER_BOUND = int(math.ceil(max(RARITY_DB[TOKEN_COL] / 100.0)) * 100)
MINT_DB = pd.read_csv(MINT_PATH)
MINT_DB = MINT_DB[MINT_DB["to_account"] == GRIFTER_ADDRESS]
RARE_MINT_DB = MINT_DB[MINT_DB["rank"] < TOP_N]
ALT_DB = RARITY_DB[RARITY_DB[TOKEN_COL] > LOWER_BOUND]
ALT_DB = ALT_DB[ALT_DB[TOKEN_COL] < UPPER_BOUND]
RARE_DB = ALT_DB[ALT_DB["Rank"] < TOP_N]
rare_tokens_in_range = len(RARE_DB)
tokens_minted_by_grifter = len(list(MINT_DB[TOKEN_COL]))
rare_tokens_minted_by_grifter = len(RARE_MINT_DB)
grifter_mint_share = tokens_minted_by_grifter / (UPPER_BOUND - LOWER_BOUND)
grifter_rare_mint_share = rare_tokens_minted_by_grifter / rare_tokens_in_range
print("Project: ", FILE)
print("Grifter: ", GRIFTER_ADDRESS)
print("\n")
print("Total tokens in range: ", UPPER_BOUND - LOWER_BOUND)
print("Total rares in range: ", rare_tokens_in_range)
print("\n")
print("Total tokens minted by grifter: ", tokens_minted_by_grifter)
print("Rare tokens minted by grifter: ", rare_tokens_minted_by_grifter)
print("\n")
print("Rare tokens minted by grifter (by ID): ", list(RARE_MINT_DB[TOKEN_COL]))
print("\n")
print(
"Percentage of tokens in range minted by grifter: ",
"{:.2%}".format(grifter_mint_share),
)
print(
"Percentage of rare tokens in range minted by grifter: ",
"{:.2%}".format(grifter_rare_mint_share),
)
print(
"Multiple of rare token pct vs total token pct: ",
round(grifter_rare_mint_share / grifter_mint_share),
)