Selecting of TOP 250
The initial window of the Terminal section in the program includes list of 250 Solana tokens according to market cap. The data which is collected:
Project (full name + ticker)
CA (with copy option)
Market cap
Current price
Price change (24h)
Volume
Circulating supply (+ percent how much of total supply it is)
Total supply
ATH
ATL
Rank according to market cap

def display_project_info(self, selected_project):
if hasattr(self, 'project_info_frame'):
self.project_info_frame.destroy()
self.project_info_frame = customtkinter.CTkFrame(self.main_content_frame)
self.project_info_frame.grid(row=3, column=0, padx=20, pady=20, sticky="nsew")
self.project_info_frame.grid_columnconfigure(0, weight=1)
coin_id = selected_project['id']
coin_data = self.coin_data_cache.get(coin_id, {})
contract_address = selected_project.get('contract_address', 'N/A')
market_cap = selected_project.get('market_cap', 'N/A')
current_price = selected_project.get('current_price', 'N/A')
price_change_percentage_24h = selected_project.get('price_change_percentage_24h', 'N/A')
total_volume = selected_project.get('total_volume', 'N/A')
circulating_supply = selected_project.get('circulating_supply', 'N/A')
total_supply = selected_project.get('total_supply', 'N/A')
ath = selected_project.get('ath', 'N/A')
atl = selected_project.get('atl', 'N/A')
market_cap_rank = selected_project.get('market_cap_rank', 'N/A')
supply_percentage = (circulating_supply / total_supply * 100) if isinstance(circulating_supply, (int, float)) and isinstance(total_supply, (int, float)) and total_supply != 0 else 0
info_frame = customtkinter.CTkFrame(self.project_info_frame, fg_color="transparent")
info_frame.grid(row=0, column=0, padx=20, pady=10, sticky="nsew")
info_frame.grid_columnconfigure(0, weight=1)
info_frame.grid_columnconfigure(1, weight=2)
labels = [
("Project:", f"{selected_project.get('name', 'N/A')} ({selected_project.get('symbol', 'N/A').upper()})"),
("Contract Address:", contract_address),
("Market Cap:", f"${format_number(market_cap)}" if isinstance(market_cap, (int, float)) else "N/A"),
("Current Price:", f"${format_number(current_price, 2)}" if isinstance(current_price, (int, float)) else "N/A"),
("24h Change:", f"{format_number(price_change_percentage_24h)}%" if isinstance(price_change_percentage_24h, (int, float)) else "N/A"),
("Total Volume:", f"${format_number(total_volume)}" if isinstance(total_volume, (int, float)) else "N/A"),
("Circulating Supply:", f"{format_number(circulating_supply)} ({format_number(supply_percentage)}% of Total Supply)" if isinstance(circulating_supply, (int, float)) else "N/A"),
("Total Supply:", f"{format_number(total_supply)}" if isinstance(total_supply, (int, float)) else "N/A"),
("ATH:", f"${format_number(ath, 2)}" if isinstance(ath, (int, float)) else "N/A"),
("ATL:", f"${format_number(atl, 2)}" if isinstance(atl, (int, float)) else "N/A"),
("Market Cap Rank:", market_cap_rank if isinstance(market_cap_rank, int) else "N/A")
]
for idx, (label_text, value_text) in enumerate(labels):
label = customtkinter.CTkLabel(info_frame, text=label_text, anchor="w", font=customtkinter.CTkFont(weight="bold"))
label.grid(row=idx, column=0, padx=5, pady=2, sticky="w")
value = customtkinter.CTkLabel(info_frame, text=value_text, anchor="w")
value.grid(row=idx, column=1, padx=5, pady=2, sticky="w")
if label_text == "Contract Address:":
copy_button = customtkinter.CTkButton(info_frame, text="Copy", width=60, command=lambda ca=contract_address: self.copy_to_clipboard(ca))
copy_button.grid(row=idx, column=2, padx=5, pady=2, sticky="w")
buttons_frame = customtkinter.CTkFrame(self.project_info_frame)
buttons_frame.grid(row=1, column=0, padx=20, pady=10, sticky="w")
coingecko_button = customtkinter.CTkButton(buttons_frame, text="Show on CoinGecko", command=lambda: self.open_coingecko(coin_id))
coingecko_button.grid(row=0, column=0, padx=10, pady=10)
if contract_address != 'N/A':
swap_button = customtkinter.CTkButton(buttons_frame, text="Swap via Jupiter", command=lambda: self.open_jupiter(contract_address))
swap_button.grid(row=0, column=1, padx=10, pady=10)
audit_button = customtkinter.CTkButton(buttons_frame, text="Audit via GoPlus", command=lambda: self.open_goplus_audit(contract_address))
audit_button.grid(row=0, column=2, padx=10, pady=10)
Last updated