Selecting of TOP 250
Last updated
Last updated
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)