windowdog 2 weeks ago
parent
commit
1edcbbe365
24 changed files with 1213 additions and 247 deletions
  1. 42 9
      src/code/base_2002_3001_get_dalao_ori_pnl_gmgn_playwright_firefox.py
  2. 77 0
      src/library/analysis_token/001_merge_top20_holders_add.py
  3. 138 0
      src/library/analysis_token/002_get_special_add_hold_info_from_alltransfercsv.py
  4. 69 0
      src/library/analysis_token/002_merge_get_special_add_hold_info_from_manydunecsv.py
  5. 109 0
      src/library/analysis_token/003_merge_holders_get_excel_kuangjia.py
  6. 90 0
      src/library/analysis_token/004_special_add_holders_excel_final.py
  7. 89 0
      src/library/analysis_token/005_merge_swap_transfer_row.py
  8. 81 0
      src/library/analysis_token/006_get_specail_time_total_info.py
  9. 77 0
      src/library/analysis_token/3DRnsQ5GA2XKk8WJ3yB46KbcRWGtA3E6cgFaqzJWpump/001_merge_top20_holders_add.py
  10. BIN
      src/library/analysis_token/3DRnsQ5GA2XKk8WJ3yB46KbcRWGtA3E6cgFaqzJWpump/001_top20_holders.xlsx
  11. 51 0
      src/library/analysis_token/3DRnsQ5GA2XKk8WJ3yB46KbcRWGtA3E6cgFaqzJWpump/dune_holders_xx_00_0316日0200.csv
  12. 51 0
      src/library/analysis_token/3DRnsQ5GA2XKk8WJ3yB46KbcRWGtA3E6cgFaqzJWpump/dune_holders_xx_00_0317日0000.csv
  13. 34 0
      src/library/analysis_token/3DRnsQ5GA2XKk8WJ3yB46KbcRWGtA3E6cgFaqzJWpump/exclude_add.csv
  14. 34 0
      src/library/analysis_token/exclude_add.csv
  15. 120 33
      src/library/analysis_token/new_token/df_gmgn_pump_total.csv
  16. BIN
      src/library/analysis_token/new_token/df_gmgn_pump_total.xlsx
  17. BIN
      src/library/analysis_token/new_token/df_gmgn_pump_total_1741761385.xlsx
  18. BIN
      src/library/analysis_token/new_token/df_gmgn_pump_total_1741821711.xlsx
  19. BIN
      src/library/analysis_token/new_token/df_gmgn_pump_total_temp.xlsx
  20. 51 0
      src/library/analysis_token/new_token/dune_holders_xx_00_0316日0200.csv
  21. 51 0
      src/library/analysis_token/new_token/dune_holders_xx_00_0317日0000.csv
  22. 14 4
      src/library/analysis_token/new_token/handle_gmgn_pump_total.py
  23. 34 0
      src/library/analysis_token/new_token/handle_total_xlsx_and_temp_total_xlsx.py
  24. 1 201
      src/librarydata/dalao_ori_pnl_gmgn/ori_gmgn_pnl_6P4aHkv7oTbwMK6P57sVsejE52jNFeEvYhQMEBpNNN1U.csv

+ 42 - 9
src/code/base_2002_3001_get_dalao_ori_pnl_gmgn_playwright_firefox.py

@@ -9,7 +9,21 @@ import datetime
 import asyncio
 import pathlib
 import shutil
+import inspect
+
+def custom_print(*args, **kwargs):
+    # 获取当前调用的行号
+    frame = inspect.currentframe().f_back
+    line_no = frame.f_lineno
+    # 获取文件名
+    # filename = frame.f_code.co_filename
+    
+    # 打印行号和文件名
+    print(f"[{line_no}]", *args, **kwargs)
 
+# 示例用法
+custom_print("Hello, world!")
+ 
 from base_class import BaseVariableFunction
 from base_class import *
 baseclass = BaseVariableFunction(__file__)
@@ -23,8 +37,17 @@ old_print = print
  
 
 def timestamped_print(*args, **kwargs):
+
+    frame = inspect.currentframe().f_back
+    line_no = frame.f_lineno
+    # 获取文件名
+    # filename = frame.f_code.co_filename
+    
+    # 打印行号和文件名
+    # print(f"[{line_no}]", *args, **kwargs)
+    
     old_print(datetime.datetime.utcnow().replace(
-        microsecond=0), *args, **kwargs)
+        microsecond=0),f"[:{line_no}]", *args, **kwargs)
 
 
 print = timestamped_print
@@ -86,11 +109,12 @@ async def do_some_thing(playwright, cur_arr_str_dalaoaddress, cur_arr_str_dalaoU
 
 
     # browser =  playwright.chromium.launch(headless=True)
-    # context = await playwright.chromium.launch_persistent_context(user_data_dir=USER_DIR_PATH, accept_downloads=True, headless=False)
-    context = await playwright.firefox.launch_persistent_context(user_data_dir=USER_DIR_PATH , headless=False)
+    context = await playwright.chromium.launch_persistent_context(user_data_dir=USER_DIR_PATH, accept_downloads=True, headless=False)
+    # context = await playwright.firefox.launch_persistent_context(user_data_dir=USER_DIR_PATH , headless=False)
     # context = await playwright.chromium.launch_persistent_context(user_data_dir=USER_DIR_PATH , headless=False)
     # context = browser.new_context()
     context.set_default_timeout(28000)
+    await asyncio.sleep(17)
     # context = await browser.new_context()
     arr_page = [None]*dalao_len
     
@@ -137,20 +161,27 @@ async def handle_one_page( idx_page,context, arr_page, str_dalaoaddress , str_da
         page =  arr_page[idx_page]
         sleep_time = random.randint(10,20)
         sleep_time=sleep_time/10
+        await asyncio.sleep(5)
 
         await asyncio.sleep(sleep_time)
         
         table = page.locator('div[aria-labelledby="tabs-leftTabs--tab-0"]')
         thead_ = table.locator( 'thead')    
         arr_th =   await thead_.locator('th').all() 
-        th_balance = arr_th[4]  
+        print('arr_th=',arr_th)
+        await asyncio.sleep(115)
+
+        # th_balance = arr_th[4]  
+        
         text_th_balance =await th_balance.text_content()
+        print('text_th_balance=',text_th_balance)
         
         if "USD" in text_th_balance:
             div_sol = th_balance.locator('div:nth-child(2)')
             text_div_sol =await div_sol.text_content()
             print(f"text_div_sol= {text_div_sol}")
             await  div_sol.click()
+        await asyncio.sleep(15)
  
  
         prev_page_height = await page.evaluate(
@@ -193,6 +224,7 @@ async def handle_one_page( idx_page,context, arr_page, str_dalaoaddress , str_da
 
     except Exception as e:
         print("handle_one_page error",e)
+        raise
     if page is not None:
         print(f"str_dalaoaddress= {str_dalaoaddress} close")
         await page.close()
@@ -441,10 +473,11 @@ for str_dalaoaddress in temp_arr_dalaoaddress:
 
     
 
-# arr_str_dalaoaddress = [
-#     "6P4aHkv7oTbwMK6P57sVsejE52jNFeEvYhQMEBpNNN1U",
-#     "JD38n7ynKYcgPpF7k1BhXEeREu1KqptU93fVGy3S624k"
-# ]
+arr_str_dalaoaddress = [
+    "6P4aHkv7oTbwMK6P57sVsejE52jNFeEvYhQMEBpNNN1U",
+    "JD38n7ynKYcgPpF7k1BhXEeREu1KqptU93fVGy3S624k",
+    "3oY1k7u6Gw49QMatX3cgmcMdpxqeY9MnCGAazEQANnPt"
+]
 arr_str_dalaoUrl = [
 f"https://gmgn.ai/sol/address/{str_dalaoaddress}" for str_dalaoaddress in arr_str_dalaoaddress]
 
@@ -456,7 +489,7 @@ set_str_dalaoaddress = set(arr_str_dalaoaddress)
  
 
 dalao_len = 1
-USER_DIR_PATH =  baseclass.browsercookie_path   
+USER_DIR_PATH =  baseclass.browsercookie_path 
 baseclass.makedirpath(USER_DIR_PATH)
 asyncio.run(main())
 

+ 77 - 0
src/library/analysis_token/001_merge_top20_holders_add.py

@@ -0,0 +1,77 @@
+
+# 将不同时间的holders 的top55 地址全部合并到一个excel中
+import pandas as pd
+import sys
+import os
+ 
+
+arr_file = []
+merged_df = None
+
+def map_exclude_df(df1,ex_df):
+  
+    
+    ex_df.rename(columns={'ex_add': 'holder_owner', 'info': 'domains_owned'}, inplace=True)
+
+    # 使用merge创建一个临时DataFrame,只包含匹配的行
+    temp_df = df1[['holder_owner']].merge(ex_df, on='holder_owner', how='left')
+    
+    # 更新df1的'b1'列
+    df1.set_index('holder_owner', inplace=True)
+    temp_df.set_index('holder_owner', inplace=True)
+    df1.update(temp_df)
+
+    # 重置索引
+    df1.reset_index(inplace=True)
+
+    return df1
+
+def merge_df_fun():
+ 
+    
+    global arr_file , merged_df , domains_df,token_add
+    for index, file in enumerate(arr_file):
+               
+        cur_df =   pd.read_csv(file ,dtype=object)
+        cur_df=cur_df.dropna(subset=['holder_owner'])
+
+        cur_df =cur_df.astype({
+            "amount_M":float,
+        })
+
+
+        cur_df=cur_df.sort_values(by=['amount_M'],ascending = False)
+        cur_df =cur_df.head(22)
+        cur_df=cur_df[['holder_owner','domains_owned']]
+
+
+        if index==0 :
+            merged_df = cur_df
+            continue
+        merged_df = pd.concat([merged_df, cur_df])
+  
+    
+    merged_df =merged_df.drop_duplicates(subset=['holder_owner'])
+
+    ex_df = pd.read_csv('exclude_add.csv',dtype=object)
+    merged_df=map_exclude_df(merged_df ,ex_df)
+
+    
+    merged_df.to_excel('001_top20_holders.xlsx', index=False)
+
+ 
+    
+
+if __name__ == "__main__":
+ 
+ 
+    arr_file = os.listdir(os.getcwd())
+  
+    arr_file = [file for file in arr_file if "dune_holders_xx" in file and file.endswith(".csv")]
+ 
+    arr_file.sort()
+    print("read file: ",arr_file)
+    
+    merge_df_fun()
+ 
+    

+ 138 - 0
src/library/analysis_token/002_get_special_add_hold_info_from_alltransfercsv.py

@@ -0,0 +1,138 @@
+
+# 将special add 在不同时间持仓的csv合并为一个excel
+import pandas as pd
+import sys
+import pytz
+
+arr_file = []
+merged_df = None
+ 
+file_transfer_row = ''
+arr_all_holders=[]
+def makeurl( url,url_show):
+    return '=HYPERLINK("{}","{}")'.format(url,  url_show)
+
+def utc_2_shanghaidate(df , utc_time_col ):
+# 将字符串转换为UTC时间的datetime对象
+    df[utc_time_col] = pd.to_datetime(df[utc_time_col], utc=True)
+    # 定义UTC+8时区
+    utc_plus_8 = pytz.timezone('Asia/Shanghai')
+    # 转换为UTC+8时间
+    # df['shanghai_date'] = df['shanghai_date'].dt.tz_convert(utc_plus_8)
+    # # 提取时间字符串
+    # df['shanghai_date'] = df['shanghai_date'].dt.strftime('%Y-%m-%d %H:%M')
+    df[utc_time_col] = df[utc_time_col].dt.tz_convert(utc_plus_8)
+    # 提取时间字符串
+    df[utc_time_col] = df[utc_time_col].dt.strftime('%Y-%m-%d %H:%M')
+    return df
+import re
+
+def get_daterange_df(df, str_end_datetime = ''):
+    # str_end_datetime = '2025-01-16 02:00:00'
+
+    str_end =  re.split(r'[- :]', str_end_datetime)
+    str_end =  str_end[1]+str_end[2]+ '日'+ str_end[3]+str_end[4]
+    str_daterange =  '00_' + str_end
+    df_holder =  df[    
+      (df['block_time']<=pd.Timestamp(str_end_datetime))
+    
+    ].reset_index(drop=True)
+
+    # 创建两个DataFrame,一个用于'from'列,另一个用于'to'列
+    df_from = df_holder[[ 'token_transfer' ,'from_owner']].copy()
+    df_from.rename(columns={'from_owner': 'holder_owner' , 'token_transfer':'token_M'}, inplace=True)
+    df_from['token_M'] = -df_from['token_M'] /1e6/1e6
+
+    df_to = df_holder[[  	'token_transfer' ,'to_owner']].copy()
+    df_to.rename(columns={'to_owner': 'holder_owner','token_transfer':'token_M'}, inplace=True)
+    df_to['token_M'] = df_to['token_M']/1e6/1e6
+
+    # 合并两个DataFrame
+    df_holder = pd.concat([df_from, df_to], ignore_index=True)
+    df_holder = df_holder.groupby('holder_owner')['token_M'].sum().reset_index()
+    df_holder['token_M'] = df_holder['token_M'].round(2)
+    df_holder.rename(columns={'token_M': f'AM_{str_daterange}'}, inplace=True)
+ 
+    return df_holder  
+    
+  
+def fun():
+    global file_transfer_row , merged_df ,  token_add , df_all_holders
+    arr_date_range =[]
+    arr_col_pct=[]
+    df = pd.read_csv(file_transfer_row)
+    df = df.drop_duplicates().reset_index(drop=True)
+    df = utc_2_shanghaidate(df,utc_time_col='block_time')
+
+    df['block_time'] = pd.to_datetime(df['block_time']  )
+    merged_df = df_all_holders[['holder_owner']]
+    
+
+    df_daterange  = get_daterange_df(df, str_end_datetime = '2025-01-08 22:00:00')
+    df_daterange = df_daterange[df_daterange['holder_owner'].isin(arr_all_holders)].reset_index(drop=True)
+    merged_df = pd.merge(merged_df, df_daterange, on='holder_owner', how='outer')        
+    df_daterange  = get_daterange_df(df, str_end_datetime = '2025-01-09 01:00:00')
+    df_daterange = df_daterange[df_daterange['holder_owner'].isin(arr_all_holders)].reset_index(drop=True)
+    merged_df = pd.merge(merged_df, df_daterange, on='holder_owner', how='outer')
+
+    df_daterange  = get_daterange_df(df, str_end_datetime = '2025-01-09 04:00:00')
+    df_daterange = df_daterange[df_daterange['holder_owner'].isin(arr_all_holders)].reset_index(drop=True)
+    merged_df = pd.merge(merged_df, df_daterange, on='holder_owner', how='outer')
+
+    df_daterange  = get_daterange_df(df, str_end_datetime = '2025-01-09 07:00:00')
+    df_daterange = df_daterange[df_daterange['holder_owner'].isin(arr_all_holders)].reset_index(drop=True)
+    
+    merged_df = pd.merge(merged_df, df_daterange, on='holder_owner', how='outer')
+
+    df_daterange  = get_daterange_df(df, str_end_datetime = '2025-01-10 10:00:00')
+    df_daterange = df_daterange[df_daterange['holder_owner'].isin(arr_all_holders)].reset_index(drop=True)
+    merged_df = pd.merge(merged_df, df_daterange, on='holder_owner', how='outer')
+
+    df_daterange  = get_daterange_df(df, str_end_datetime = '2025-01-10 21:30:00')
+    df_daterange = df_daterange[df_daterange['holder_owner'].isin(arr_all_holders)].reset_index(drop=True)
+    merged_df = pd.merge(merged_df, df_daterange, on='holder_owner', how='outer')
+
+    df_daterange  = get_daterange_df(df, str_end_datetime = '2025-01-11 02:30:00')
+    df_daterange = df_daterange[df_daterange['holder_owner'].isin(arr_all_holders)].reset_index(drop=True)
+    merged_df = pd.merge(merged_df, df_daterange, on='holder_owner', how='outer')
+
+    df_daterange  = get_daterange_df(df, str_end_datetime = '2025-01-16 01:00:00')
+    df_daterange = df_daterange[df_daterange['holder_owner'].isin(arr_all_holders)].reset_index(drop=True)
+    merged_df = pd.merge(merged_df, df_daterange, on='holder_owner', how='outer')
+
+
+
+   
+    merged_df = pd.merge(merged_df, df_all_holders, on='holder_owner', how='left')
+
+ 
+    merged_df["gmgn"] = merged_df.apply(lambda ser: makeurl(
+    f"https://gmgn.ai/sol/token/{token_add}?tab=activity&maker={ser['holder_owner']}" , "gmgn" ), axis=1)
+
+    merged_df["defined"] = merged_df.apply(lambda ser: makeurl(
+     f"https://www.defined.fi/sol/{token_add}?maker={ser['holder_owner']}" , "defined" ), axis=1)
+    
+  
+    merged_df.to_excel('002_merge_special_add_hold_info.xlsx' ,index=False)
+
+import os
+ 
+ 
+token_add = '5puhwnyz2Tv8jSmmBD5DSqCwFVXwwPGZacymM7DQpump'
+arr_file = os.listdir(os.getcwd())
+
+arr_file = [file for file in arr_file if "dune_speadd_all_transfer_row" in file and file.endswith(".csv")]
+file_transfer_row = arr_file[0]
+
+df_all_holders = pd.read_excel('001_all_holders.xlsx')
+df_all_holders=df_all_holders.dropna(subset=['holder_owner'])
+# df_all_holders = df_all_holders[df_all_holders['domains_owned'].isna()]
+# df_all_holders=df_all_holders[['holder_owner']]
+
+arr_all_holders  = df_all_holders['holder_owner'].tolist()
+ 
+
+print("read file: ",file_transfer_row)
+fun()
+
+

+ 69 - 0
src/library/analysis_token/002_merge_get_special_add_hold_info_from_manydunecsv.py

@@ -0,0 +1,69 @@
+
+# 将special add 在不同时间持仓的csv合并为一个excel
+import pandas as pd
+import sys
+
+
+arr_file = []
+merged_df = None
+domains_df= None
+
+
+def makeurl( url,url_show):
+    return '=HYPERLINK("{}","{}")'.format(url,  url_show)
+
+def merge_df_fun():
+    arr_date_range =[]
+    arr_col_pct=[]
+    
+    global arr_file , merged_df , domains_df,token_add
+    for index, file in enumerate(arr_file):
+        date_range = file.replace(".csv","").split("_")
+        date_range = date_range[-2]+"_"+date_range[-1]
+
+        cur_df =   pd.read_csv(file ,dtype=object)
+        cur_df=cur_df.dropna(subset=['holder_owner'])
+
+        cur_domains_df = cur_df[['holder_owner' , 'domains_owned']]
+        domains_df = pd.concat([domains_df, cur_domains_df  ]).dropna().drop_duplicates(subset=['holder_owner'])
+         
+        cur_df=cur_df[['holder_owner','amount_M']]
+        cur_df =cur_df.astype({
+            "amount_M":float,
+        })
+
+        cur_df.rename(columns={'amount_M': f'AM_{date_range}'}, inplace=True)
+        arr_date_range.append(f'{date_range}')
+        arr_col_pct.append(f'AM_{date_range}')
+        if index==0 :
+            merged_df = cur_df
+            continue
+        merged_df = pd.merge(merged_df, cur_df, on='holder_owner', how='outer')
+  
+    
+    # merged_df=merged_df.fillna(-1)
+    merged_df = pd.merge(merged_df, domains_df, on='holder_owner', how='left')
+
+    merged_df["gmgn"] = merged_df.apply(lambda ser: makeurl(
+    f"https://gmgn.ai/sol/token/{token_add}?tab=activity&maker={ser['holder_owner']}" , "gmgn" ), axis=1)
+
+    merged_df["defined"] = merged_df.apply(lambda ser: makeurl(
+     f"https://www.defined.fi/sol/{token_add}?maker={ser['holder_owner']}" , "defined" ), axis=1)
+    
+  
+    merged_df.to_excel('002_merge_special_add_hold_info.xlsx' ,index=False)
+
+ 
+if __name__ == "__main__":
+ 
+    if len(sys.argv)<3:
+        print("args queshao ")
+        sys.exit(1)
+    token_add = sys.argv[1]
+    arr_file =sys.argv[2:]
+    arr_file = [file for file in arr_file if "dune_holders_speadd" in file and file.endswith(".csv")]
+ 
+    arr_file.sort()
+    print("read file: ",arr_file)
+    merge_df_fun()
+ 

+ 109 - 0
src/library/analysis_token/003_merge_holders_get_excel_kuangjia.py

@@ -0,0 +1,109 @@
+
+#  # 将不同时间的holders 合并为一个excel 并且一个时间一个sheet  \
+# 目的在于提供一个excel表的框架, 之后所欲sheet的内容要被 special add 的hold info替换掉
+import pandas as pd
+import sys
+import os
+import datetime
+import pytz
+
+arr_file = []
+merged_df = None
+domains_df = None
+token_add = ""
+arr_date_range =[]
+arr_df = []
+token_add = '5puhwnyz2Tv8jSmmBD5DSqCwFVXwwPGZacymM7DQpump'
+def get_nowdate():
+
+    timestamp = datetime.datetime.now().timestamp()
+    # print(timestamp)
+    dt = datetime.datetime.fromtimestamp(timestamp)
+    tz = pytz.timezone('Asia/Shanghai')
+    normal_time_str = dt.astimezone(tz).strftime('%Y-%m-%d %H:%M:%S')
+    time_str = dt.astimezone(tz).strftime('%m%d%H%M')
+    return time_str
+
+
+
+def merge_df_fun():
+    global arr_date_range ,arr_df
+    
+    arr_col_pct=[]
+    
+    global arr_file , merged_df , domains_df,token_add
+    for index, file in enumerate(arr_file):
+        date_range = file.replace(".csv","").split("_")
+        date_range = date_range[-2]+"_"+date_range[-1]
+
+        cur_df =   pd.read_csv(file ,dtype=object)
+        cur_df=cur_df.dropna(subset=['holder_owner'])
+
+        cur_domains_df = cur_df[['holder_owner' , 'domains_owned']]
+        domains_df = pd.concat([domains_df, cur_domains_df  ]).dropna().drop_duplicates(subset=['holder_owner'])
+         
+        cur_df=cur_df[['holder_owner','amount_M']]
+        cur_df =cur_df.astype({
+            "amount_M":float,
+        })
+        cur_df = cur_df.round(2)
+        cur_df.rename(columns={'amount_M': f'AM_{date_range}'}, inplace=True)
+        arr_date_range.append(f'{date_range}')
+        arr_col_pct.append(f'AM_{date_range}')
+        if index==0 :
+            merged_df = cur_df
+            continue
+        merged_df = pd.merge(merged_df, cur_df, on='holder_owner', how='outer')
+  
+    
+   
+    merged_df = pd.merge(merged_df, domains_df, on='holder_owner', how='left')
+
+    merged_df["gmgn"] = merged_df.apply(lambda ser: makeurl(
+    f"https://gmgn.ai/sol/token/{token_add}?tab=activity&maker={ser['holder_owner']}" , "gmgn" ), axis=1)
+
+    merged_df["defined"] = merged_df.apply(lambda ser: makeurl(
+     f"https://www.defined.fi/sol/{token_add}?maker={ser['holder_owner']}" , "defined" ), axis=1)
+    
+    
+    arr_df.append(merged_df)
+    
+    for col_pct in arr_col_pct:
+        cur_df=merged_df.sort_values(by=[col_pct],ascending = False)
+        cur_df =cur_df.head(55)
+        arr_df.append(cur_df)
+
+  
+def save_to_excel(out_excel):
+    global arr_date_range ,arr_df
+    with pd.ExcelWriter(out_excel) as writer:
+        for idx ,cur_df in enumerate(arr_df):
+            if idx==0:
+                cur_df.to_excel(writer, sheet_name='Sheet1', index=False)
+            else:
+                cur_df.to_excel(writer, sheet_name=f'{arr_date_range[idx-1]}', index=False)  
+    return
+
+
+def makeurl( url,url_show):
+    return '=HYPERLINK("{}","{}")'.format(url,  url_show)
+
+if __name__ == "__main__":
+ 
+    # if len(sys.argv)<2:
+    #     print("args queshao ")
+    #     sys.exit(1)
+    
+    arr_file = os.listdir(os.getcwd())
+
+    arr_file = [file for file in arr_file if "dune_holders_xx" in file and file.endswith(".csv")]
+
+ 
+    arr_file.sort()
+    print("read file: ",arr_file)
+    merge_df_fun()
+    time_str = get_nowdate()
+    out_excel =f'003_merge_holders_excel_kuangjia_{time_str}.xlsx'
+    save_to_excel(out_excel)
+ 
+    

+ 90 - 0
src/library/analysis_token/004_special_add_holders_excel_final.py

@@ -0,0 +1,90 @@
+
+# 将不同时间的add 的hold信息合并在一起 分析他们的变化 找出庄家地址/分析庄家变化 
+import pandas as pd
+import sys
+
+import datetime
+import pytz
+from openpyxl.styles import *
+# from openpyxl.styles.colors import RED, GREEN
+arr_file = []
+merged_df = None
+ 
+token_add = ""
+
+
+def makeurl( url,url_show):
+    return '=HYPERLINK("{}","{}")'.format(url,  url_show)
+
+
+
+
+def get_nowdate():
+
+    timestamp = datetime.datetime.now().timestamp()
+    # print(timestamp)
+    dt = datetime.datetime.fromtimestamp(timestamp)
+    tz = pytz.timezone('Asia/Shanghai')
+    normal_time_str = dt.astimezone(tz).strftime('%Y-%m-%d %H:%M:%S')
+    time_str = dt.astimezone(tz).strftime('%m%d%H%M')
+    return time_str
+
+ 
+ 
+arr_df = []
+arr_sheet_names =[]
+merged_hodlers_excel_kuangjia_file = ""
+merged_special_add_hold_info_file=""
+token_add = '5puhwnyz2Tv8jSmmBD5DSqCwFVXwwPGZacymM7DQpump'
+def merge_swap_df_fun_02():
+    global arr_sheet_names
+    global merged_hodlers_excel_kuangjia_file , merged_special_add_hold_info_file
+    global arr_df
+    merged_hodlers_excel = pd.ExcelFile(merged_hodlers_excel_kuangjia_file)
+    arr_sheet_names = list(merged_hodlers_excel.sheet_names)
+    arr_sheet_names.pop(0)
+
+    merged_df= pd.read_excel(merged_special_add_hold_info_file,engine='openpyxl')
+    merged_df["gmgn"] = merged_df.apply(lambda ser: makeurl(
+    f"https://gmgn.ai/sol/token/{token_add}?tab=activity&maker={ser['holder_owner']}" , "gmgn" ), axis=1)
+    merged_df["defined"] = merged_df.apply(lambda ser: makeurl(
+     f"https://www.defined.fi/sol/{token_add}?maker={ser['holder_owner']}" , "defined" ), axis=1)
+    
+  
+    
+    arr_df.append(merged_df)
+    
+    for sheet_name in arr_sheet_names:
+        holder_df = merged_hodlers_excel.parse(sheet_name=sheet_name)
+
+        cur_df = merged_df[  merged_df['holder_owner'].isin(holder_df['holder_owner'])].reset_index(drop=True)
+        cur_df = cur_df.set_index('holder_owner').reindex(holder_df['holder_owner']).reset_index()
+
+        arr_df.append(cur_df)   
+
+
+def save_to_excel(out_excel):
+    global    arr_df ,arr_sheet_names
+    with pd.ExcelWriter(out_excel) as writer:
+        for idx ,cur_df in enumerate(arr_df):
+            sheet_name = ''
+
+            if idx==0:
+                sheet_name = 'Sheet1'
+            else:
+                sheet_name = arr_sheet_names[idx-1]
+            cur_df.to_excel(writer, sheet_name=sheet_name, index=False)
+
+
+def makeurl( url,url_show):
+    return '=HYPERLINK("{}","{}")'.format(url,  url_show)
+
+if __name__ == "__main__":
+  
+    merged_hodlers_excel_kuangjia_file = '003_merge_holders_excel_kuangjia.xlsx'
+    merged_special_add_hold_info_file = '002_merge_special_add_hold_info.xlsx'
+    time_str = get_nowdate()
+    out_excel =f'004_special_add_holders_excel_final_{time_str}.xlsx'
+    
+    merge_swap_df_fun_02()
+    save_to_excel(out_excel)

+ 89 - 0
src/library/analysis_token/005_merge_swap_transfer_row.py

@@ -0,0 +1,89 @@
+# 将dune 上 special的add 的swap和transfer合并在一起
+import pandas as pd
+import sys
+
+import datetime
+import pytz
+
+def makeurl( url,url_show):
+    return '=HYPERLINK("{}","{}")'.format(url,  url_show)
+def get_nowdate():
+
+    timestamp = datetime.datetime.now().timestamp()
+    # print(timestamp)
+    dt = datetime.datetime.fromtimestamp(timestamp)
+    tz = pytz.timezone('Asia/Shanghai')
+    normal_time_str = dt.astimezone(tz).strftime('%Y-%m-%d %H:%M:%S')
+    time_str = dt.astimezone(tz).strftime('%m%d%H%M')
+    return time_str
+
+
+def utc_2_shanghaidate(df , utc_time_col ):
+# 将字符串转换为UTC时间的datetime对象
+    df[utc_time_col] = pd.to_datetime(df[utc_time_col], utc=True)
+    # 定义UTC+8时区
+    utc_plus_8 = pytz.timezone('Asia/Shanghai')
+    # 转换为UTC+8时间
+    # df['shanghai_date'] = df['shanghai_date'].dt.tz_convert(utc_plus_8)
+    # # 提取时间字符串
+    # df['shanghai_date'] = df['shanghai_date'].dt.strftime('%Y-%m-%d %H:%M')
+    df[utc_time_col] = df[utc_time_col].dt.tz_convert(utc_plus_8)
+    # 提取时间字符串
+    df[utc_time_col] = df[utc_time_col].dt.strftime('%Y-%m-%d %H:%M')
+    return df
+
+swap_row_file = ''
+transfer_row_file = ''
+def main():
+    df_swap_row = pd.read_csv(swap_row_file,dtype=object)
+    df_swap_row=df_swap_row.astype({'token_swap_M':float ,
+                                    'eth_swap_amount':float ,
+                                    'block_slot':float,
+                                    'pri':float})
+
+    df_transfer_row = pd.read_csv(transfer_row_file,dtype=object)
+    df_transfer_row = df_transfer_row.astype({'token_transfer_M':float , 'block_slot':float})
+
+
+    df_swap_row.rename(columns={'token_swap_M': 'token_M' }, inplace=True)
+    
+    
+    df_swap_row = utc_2_shanghaidate(df=df_swap_row, utc_time_col='block_time')
+    
+    df_transfer_row = utc_2_shanghaidate(df=df_transfer_row, utc_time_col='block_time')
+
+
+    # 创建两个DataFrame,一个用于'from'列,另一个用于'to'列
+    df_from = df_transfer_row[[ 'tx_id',	'block_time',	'block_slot',	'token_transfer_M' ,'from_owner']].copy()
+    df_from.rename(columns={'from_owner': 'trader_id' , 'token_transfer_M':'token_M'}, inplace=True)
+    df_from['token_M'] = -df_from['token_M']
+
+    df_to = df_transfer_row[[ 'tx_id',	'block_time',	'block_slot',	'token_transfer_M' ,'to_owner']].copy()
+    df_to.rename(columns={'to_owner': 'trader_id','token_transfer_M':'token_M'}, inplace=True)
+    df_to['token_M'] = df_to['token_M']
+
+    # 合并两个DataFrame
+    df_transfer_row = pd.concat([df_from, df_to], ignore_index=True)
+    df_transfer_row['action_type'] = 't'
+    df_transfer_row['token_M'] = df_transfer_row['token_M'].round(4)
+
+    merged_df =  pd.concat([ df_swap_row , df_transfer_row], ignore_index=True)
+    merged_df = merged_df.sort_values(by=['trader_id' , 'block_slot'],ascending=True)
+    
+
+    merged_df["oklink"] = merged_df.apply(lambda ser: makeurl(
+     f"https://www.oklink.com/zh-hans/sol/tx/{ser['tx_id']}" , "oklink" ), axis=1)
+
+    merged_df["scan"] = merged_df.apply(lambda ser: makeurl(
+     f"https://solscan.io/tx/{ser['tx_id']}" , "scan" ), axis=1)
+    
+    merged_df.to_excel(  f'005_merge_swap_transfer_row_{get_nowdate()}.xlsx'  ,index=False)
+    
+    return
+
+
+if __name__ == "__main__":
+   
+    swap_row_file = 'dune_get_tokenswap_row_special_add.csv'
+    transfer_row_file = 'dune_transfer_00_0116日0200.csv'
+    main()

+ 81 - 0
src/library/analysis_token/006_get_specail_time_total_info.py

@@ -0,0 +1,81 @@
+# 将dune 上 special的add 的swap和transfer合并在一起
+import pandas as pd
+import sys
+import re
+import datetime
+import pytz
+
+def makeurl( url,url_show):
+    return '=HYPERLINK("{}","{}")'.format(url,  url_show)
+def get_nowdate():
+
+    timestamp = datetime.datetime.now().timestamp()
+    # print(timestamp)
+    dt = datetime.datetime.fromtimestamp(timestamp)
+    tz = pytz.timezone('Asia/Shanghai')
+    normal_time_str = dt.astimezone(tz).strftime('%Y-%m-%d %H:%M:%S')
+    time_str = dt.astimezone(tz).strftime('%m%d%H%M')
+    return time_str
+def utc_2_shanghaidate(df , utc_time_col ):
+# 将字符串转换为UTC时间的datetime对象
+    df[utc_time_col] = pd.to_datetime(df[utc_time_col], utc=True)
+    # 定义UTC+8时区
+    utc_plus_8 = pytz.timezone('Asia/Shanghai')
+    # 转换为UTC+8时间
+    # df['shanghai_date'] = df['shanghai_date'].dt.tz_convert(utc_plus_8)
+    # # 提取时间字符串
+    # df['shanghai_date'] = df['shanghai_date'].dt.strftime('%Y-%m-%d %H:%M')
+    df[utc_time_col] = df[utc_time_col].dt.tz_convert(utc_plus_8)
+    # 提取时间字符串
+    df[utc_time_col] = df[utc_time_col].dt.strftime('%Y-%m-%d %H:%M')
+    return df
+ 
+
+
+def main():
+    global file_merge_swap_transfer_row
+    df_swap_row = pd.read_excel(file_merge_swap_transfer_row )
+    df_swap_row= df_swap_row[df_swap_row['trader_id'].isin(arr_trader)].reset_index(drop=True)
+    df_swap_row['block_time'] = pd.to_datetime(df_swap_row['block_time'])
+    
+    
+    df_swap_row =df_swap_row[
+ (   df_swap_row['block_time']>pd.Timestamp(start_datetime) )
+    & (df_swap_row['block_time']<=pd.Timestamp(end_datetime))    
+    ].reset_index(drop=True)
+
+    df_swap_row["oklink"] = df_swap_row.apply(lambda ser: makeurl(
+     f"https://www.oklink.com/zh-hans/sol/tx/{ser['tx_id']}" , "oklink" ), axis=1)
+
+    df_swap_row["scan"] = df_swap_row.apply(lambda ser: makeurl(
+     f"https://solscan.io/tx/{ser['tx_id']}" , "scan" ), axis=1)
+    
+    
+    df_swap_row.to_excel(  f'006_merge_swap_transfer_total_info_{str_start}-{str_end}.xlsx'  ,index=False)
+    
+ 
+    return
+
+start_datetime =   '2025-01-09 01:00:00'
+end_datetime = '2025-01-16 02:00:00'
+ 
+str_start =  re.split(r'[- :]', start_datetime)
+str_start =  str_start[1]+str_start[2]+ '日'+ str_start[3]+str_start[4]
+
+str_end =  re.split(r'[- :]', end_datetime)
+str_end =  str_end[1]+str_end[2]+ '日'+ str_end[3]+str_end[4]
+
+df_all_holders = pd.read_excel('001_all_holders.xlsx')
+df_all_holders=df_all_holders.dropna(subset=['holder_owner'])
+
+arr_trader = [
+ 
+]
+arr_trader  = df_all_holders['holder_owner'].tolist()
+
+file_merge_swap_transfer_row  =  '005_merge_swap_transfer_row.xlsx'
+
+
+
+ 
+main()

+ 77 - 0
src/library/analysis_token/3DRnsQ5GA2XKk8WJ3yB46KbcRWGtA3E6cgFaqzJWpump/001_merge_top20_holders_add.py

@@ -0,0 +1,77 @@
+
+# 获取每一个时间段的top20 持仓,汇总到一个excel表格中
+import pandas as pd
+import sys
+import os
+ 
+
+arr_file = []
+merged_df = None
+
+def map_exclude_df(df1,ex_df):
+  
+    
+    ex_df.rename(columns={'ex_add': 'holder_owner', 'info': 'domains_owned'}, inplace=True)
+
+    # 使用merge创建一个临时DataFrame,只包含匹配的行
+    temp_df = df1[['holder_owner']].merge(ex_df, on='holder_owner', how='left')
+    
+    # 更新df1的'b1'列
+    df1.set_index('holder_owner', inplace=True)
+    temp_df.set_index('holder_owner', inplace=True)
+    df1.update(temp_df)
+
+    # 重置索引
+    df1.reset_index(inplace=True)
+
+    return df1
+
+def merge_df_fun():
+ 
+    
+    global arr_file , merged_df , domains_df,token_add
+    for index, file in enumerate(arr_file):
+               
+        cur_df =   pd.read_csv(file ,dtype=object)
+        cur_df=cur_df.dropna(subset=['holder_owner'])
+
+        cur_df =cur_df.astype({
+            "amount_M":float,
+        })
+
+
+        cur_df=cur_df.sort_values(by=['amount_M'],ascending = False)
+        cur_df =cur_df.head(22)
+        cur_df=cur_df[['holder_owner','domains_owned']]
+
+
+        if index==0 :
+            merged_df = cur_df
+            continue
+        merged_df = pd.concat([merged_df, cur_df])
+  
+    
+    merged_df =merged_df.drop_duplicates(subset=['holder_owner'])
+
+    ex_df = pd.read_csv('exclude_add.csv',dtype=object)
+    merged_df=map_exclude_df(merged_df ,ex_df)
+
+    
+    merged_df.to_excel('001_top20_holders.xlsx', index=False)
+
+ 
+    
+
+if __name__ == "__main__":
+ 
+ 
+    arr_file = os.listdir(os.getcwd())
+  
+    arr_file = [file for file in arr_file if "dune_holders_xx" in file and file.endswith(".csv")]
+ 
+    arr_file.sort()
+    print("read file: ",arr_file)
+    
+    merge_df_fun()
+ 
+    

BIN
src/library/analysis_token/3DRnsQ5GA2XKk8WJ3yB46KbcRWGtA3E6cgFaqzJWpump/001_top20_holders.xlsx


+ 51 - 0
src/library/analysis_token/3DRnsQ5GA2XKk8WJ3yB46KbcRWGtA3E6cgFaqzJWpump/dune_holders_xx_00_0316日0200.csv

@@ -0,0 +1,51 @@
+holder_owner,domains_owned,amount_M,pct_supply
+5Q544fKrFoe6tsEbD7S8EmxGTJYAKtTVhAW5Q5pge4j1,usedsaga.sol,232.65,23.27
+5ENKzVezTxEYtZzF1W4mM1s3LjU6b2oBw8af2827ULKb,,29.99,3
+5FSt9LxycNWfdXFmhuDbYonoGcnBJDjZYvqC3ZuA9RGc,,26.3,2.63
+UKCC5vtp2U5281ZSaSqafDbb9aFcrj84BKsf6p5Aqxm,,25.05,2.51
+SGd7pJkt1heW4pTWLBHVtMoqaN1Anvvbb5wp5Juktrb,,24.78,2.48
+81XZEmB4eYXqdXktnZRVDaiyFbp6hATgygjK98QSbtXq,,24.43,2.44
+2oViQCbm1JWWwvvKeq2zsAns1cT48WDTk77aS7ZAPnjJ,,23.19,2.32
+EW5o2Nr2oHdr8YbWfdAFkcpxT2bqvi2jdDpaTepvoQNa,,22.26,2.23
+EWpftEEZJ7AJyGJprctqc131qQtpjWkoJahM1D9xdTiH,,21.8,2.18
+CJT24gYwv6Sadbj6jUb6ESnm6jYYZdBEzZoeH84C35tq,,20.77,2.08
+6frSrTT9aarJuBWKE36uBQJDh3VcSHWeP7Hdhar9ap7g,,17.76,1.78
+ALNngQwBnooVP41YWGM6yJZSLHTQ3eVZMaAKc9yigWTj,,16.41,1.64
+CMGdz9VBDDmc5uoZFxux4Jv1gYxoUW1Xdu8NxfijCTxJ,,15.82,1.58
+HUzZ1MrEUXrdPJoAnn5B8uTcshwyyXxFW1EqY2dvcVhe,,15.82,1.58
+5BkT4TNnJE7Zq2s3DmGExGSjL7JpJBnxa6atsjARbkxS,,15.79,1.58
+ArHmZWQxH3j29X7nw6xzeFnLrYdywnEKz3oE2zpwXHtd,,15.51,1.55
+9wYuJBuoBiNDxk97ZmCqdaBjB3gZ1iFnEBU2Jme3phpV,,14.9,1.49
+H9kHjTaJqVrrSuZGwJWgQnjyhVmGANpqsA6eoqbbZrTk,,14.86,1.49
+2swb9pJ9Ak5TLBsfsBcr5QVCStM5vNZAcyhRY9uZTSi5,,13.31,1.33
+DZm7P5hZBLFKzFqy4JzQaxUnWRkrr3AwDMa2kCrGr4Nc,,13.3,1.33
+71CvcuAphXjiDDdGYJe3iiBajgtm62H9F8bo1kNoLWPP,fist.sol,13.05,1.31
+J3ctoNuCEGXD63rf84GfgkXYczt7F6uycpVczzK57MfH,,12.38,1.24
+AAPurShNpJL5cXdaSTiW4HtPY6qVuHuypNFhoCf5oRYK,,11.96,1.2
+CEVzt13CUkFZyFbu9YBZq53qnVUrrJECUGYD2T4mJ5jU,b1gdaddy.sol,10.48,1.05
+J5cb5yHYaexf6UZHqvjg6Syh6FkrQRXudxKjUtmXdCEa,,10.25,1.02
+FKvc9tkFjaCxGHFf9KTQ9obAnkv2utAbuHw55j31vQvW,,9.95,0.99
+Fx4LBRfBAa1rfLgJtizoC9MqVZzDhhXPVqoJfSDHtNkw,,9.83,0.98
+9UrAn9DCzewahQxnqQGGYKMTuQSCjDshFwTnj4y7PaVj,,9.69,0.97
+DvptarhVU1qhfv538TB8uHiSkBgmjsyJZYVnWorcQDzH,,9.38,0.94
+3TjNpxBR2GfGMJJvBkRocEY8gaDY7CFq2PTX7hFRM3wm,,9.1,0.91
+8DJv8nUnxfWMKLNpLpH6QjhCd3tNotNRX6LZ8xGfw7pK,,8.95,0.89
+D3TRbn1Yi3RyoDF4iwmNCjS4DyaejdTeSqwUqrV3ELN3,,8.33,0.83
+2j2sBWG2eoSMzoADa4jM8rkS8kPjR9jU1Hs69KvneQYr,,8.28,0.83
+2C28BHPgxHbDfZ4XnzzXJBUt4AfjB2Dwx1Y9aUGVpwza,,7.65,0.77
+34Cj6nvpBmSHF23uG472f6PVXTT1ukxKvQZDDtmLMRaW,,7.62,0.76
+AK85DAtg3sCi7stAKS6Mxt4MFR66jw93jFk5HiJomj1V,,7.54,0.75
+DoddkNrQT6jEkfDoHGjfEKCYjGCZhqmdoFaaUVLiitC6,,6.9,0.69
+6WH6JpRyPo76iPUFaupz41y26ejadCFS3Wpddku36XGw,,6.75,0.68
+BNnN2MqfWLvgThYBsv6v8JQaYZXYKYahC5YCy27Ct1cX,,6.71,0.67
+2XyQF5q5EWdaGCH8ZfLjiVpvbpLXz8D78T9MzUpNEGBL,,6.67,0.67
+3oc5RoZWaW2DPu3jp4gWpi8cVf1azXrCbyrFqcfckXmi,,6.28,0.63
+Gw99ezhrimhChNkkpQ7uQPohgZZwzZXcUfXw5oJ2wcaV,,5.93,0.59
+GToZkeBFekct9TuH9vXetVRG7F7HAif92aMtmJ8vXk9A,,5.81,0.58
+HQNAz1WazeywXTtvGJjmpjQ6GNXVs8pMprWAAyqoMiFj,,5.37,0.54
+3GzBLpxTWWTPWwBYQ8Jgrz5XLUCg9aY6HiB3GEBUBAv6,,5.35,0.53
+DMryAaWZCT2nbRA7AbVTVFtvtmWDEJYgkWi4wFbXNbKj,,5.03,0.5
+GxEpa8w8rGT4BbtkWtSHkUdxtTwkm4uqXa16LV3LRu1a,,4.85,0.49
+9PVBMYGwR9Duy6iABhTKcMyiqmbxZdWoHrmmKNgw7FD9,,4.81,0.48
+5yrZEA7KxXvrrZvfGYvNqo2gBLq3co1wzCMPJz5mdsSf,,4.46,0.45
+J3HgVtWNTAH84ZRHW1iVYjhUJtSSF8d68Emj7meyJ6iX,,4.2,0.42

+ 51 - 0
src/library/analysis_token/3DRnsQ5GA2XKk8WJ3yB46KbcRWGtA3E6cgFaqzJWpump/dune_holders_xx_00_0317日0000.csv

@@ -0,0 +1,51 @@
+holder_owner,domains_owned,amount_M,pct_supply
+5Q544fKrFoe6tsEbD7S8EmxGTJYAKtTVhAW5Q5pge4j1,usedsaga.sol,87.76,8.78
+J3ctoNuCEGXD63rf84GfgkXYczt7F6uycpVczzK57MfH,,27.29,2.73
+64U9MukooWV5ziNXx2PCmZNmktBzQoKXnKsDBLvgCQ5g,rawdogging.sol,24.49,2.45
+81XZEmB4eYXqdXktnZRVDaiyFbp6hATgygjK98QSbtXq,,23.7,2.37
+UKCC5vtp2U5281ZSaSqafDbb9aFcrj84BKsf6p5Aqxm,,23.22,2.32
+2oViQCbm1JWWwvvKeq2zsAns1cT48WDTk77aS7ZAPnjJ,,23.19,2.32
+5FSt9LxycNWfdXFmhuDbYonoGcnBJDjZYvqC3ZuA9RGc,,22.61,2.26
+EW5o2Nr2oHdr8YbWfdAFkcpxT2bqvi2jdDpaTepvoQNa,,22.26,2.23
+EWpftEEZJ7AJyGJprctqc131qQtpjWkoJahM1D9xdTiH,,21.8,2.18
+SGd7pJkt1heW4pTWLBHVtMoqaN1Anvvbb5wp5Juktrb,,21.48,2.15
+215nhcAHjQQGgwpQSJQ7zR26etbjjtVdW74NLzwEgQjP,globalist.sol,21.02,2.1
+HUzZ1MrEUXrdPJoAnn5B8uTcshwyyXxFW1EqY2dvcVhe,,20.33,2.03
+CJT24gYwv6Sadbj6jUb6ESnm6jYYZdBEzZoeH84C35tq,,18.91,1.89
+5RANC5iQzzeLFcr1D42Pih4ksUMfa7KXMoCkzoRhujuP,,18.74,1.87
+5ENKzVezTxEYtZzF1W4mM1s3LjU6b2oBw8af2827ULKb,,17.41,1.74
+9wYuJBuoBiNDxk97ZmCqdaBjB3gZ1iFnEBU2Jme3phpV,,16.27,1.63
+8jzB2HEK322ntFCfzUwajUt9hjYA25L9F8LangTcPfMY,,15,1.5
+5sEVaCVRRyfWPhw54c4z3h59ZvJ9tL5xK2tYfT4gQnDZ,,14.3,1.43
+A2U5owsnFK2jzgBguZCDqXsPzra7ufpYG5N6CFCeQrk6,,13.64,1.36
+DZm7P5hZBLFKzFqy4JzQaxUnWRkrr3AwDMa2kCrGr4Nc,,13.3,1.33
+6frSrTT9aarJuBWKE36uBQJDh3VcSHWeP7Hdhar9ap7g,,11.1,1.11
+2swb9pJ9Ak5TLBsfsBcr5QVCStM5vNZAcyhRY9uZTSi5,,11.07,1.11
+FKvc9tkFjaCxGHFf9KTQ9obAnkv2utAbuHw55j31vQvW,,10.53,1.05
+CEVzt13CUkFZyFbu9YBZq53qnVUrrJECUGYD2T4mJ5jU,b1gdaddy.sol,10.48,1.05
+7oAJ7pSiDZ5Rc2Rki2Pa2TKC3P5X7zhF1zvMsGXT37E2,,10.14,1.01
+UdkxMCjJGnXEzMDhTyqCPard2h3eAbpaekrJC5DJLBx,,10,1
+9UrAn9DCzewahQxnqQGGYKMTuQSCjDshFwTnj4y7PaVj,,9.69,0.97
+EL74tvDoX9MFNkEDgcw79hSVwFDnvJhDeE3gZtxEP2Ke,,9.54,0.95
+BncWEKf8S1ej2jVAArDsGjaSs2MU2mtcRoYLQi1X3ita,,8.27,0.83
+J6wqmLDeHz882yak5tTrtXAUddS54Q8cHREPkBCVYMJd,,8.19,0.82
+5V5Gd8eAAocDoNjE86PgzPhzXviLCpRGwWyhbo99dXy6,,8.04,0.8
+3TjNpxBR2GfGMJJvBkRocEY8gaDY7CFq2PTX7hFRM3wm,,7.7,0.77
+2C28BHPgxHbDfZ4XnzzXJBUt4AfjB2Dwx1Y9aUGVpwza,,7.65,0.77
+EAR5NmhWHGeyJSQS2MpHiZ5BdC3mVX6uvrCdrXNqihwJ,,7.42,0.74
+5qNSu6hdVsxKogqj2q6uXwo2u7WSuBs3tw9Do1typuVP,,7.29,0.73
+DMryAaWZCT2nbRA7AbVTVFtvtmWDEJYgkWi4wFbXNbKj,,7.23,0.72
+5bbSSAJ7VkzWPiQKFYL1xbWnSWp6sbTCYjxaFi3mLrZX,,7.09,0.71
+AgRdSy5ZsN6VmPZT4NT3mEA5sZE4toYf75NjcejSrRV4,,6.99,0.7
+3xdY8KPNtcLsCRh6pNk1ef6ECqREu4nos47Hq5MWXAmv,,6.99,0.7
+GnXsEeB9sAtQ7AaUJdF2aBU6tXkoQFYHd515RKqg7q31,,6.84,0.68
+Dx98xMscVpnTMcSovwy6US5gnqb2Hc1FKX6FffpHMSM9,,6.7,0.67
+CvBbHAZTV2uNwMApwcWdohmeP6SXL7QnYVNZQSiDrPjS,,6.67,0.67
+FhVmiRqu6pzYtm3a75bcBYMhFaVzeKW78ckibRswqzxJ,,6.39,0.64
+5BkT4TNnJE7Zq2s3DmGExGSjL7JpJBnxa6atsjARbkxS,,6.3,0.63
+95ECtXUSrL1qzmPahWwmyNdde19ZCYpJuAimAGv7nuTy,,6.19,0.62
+BYNkFdPCi5RUrJxEV6BWjQs71TjYWGZQ6hjgioc1mAVN,,6.02,0.6
+B9cednRWg5wkjq4a5R7h1sAnTsfHzWXLrNKDexvmVJEN,,5.86,0.59
+49dsEoHQgqe5QLBLcixP9yZkZ3PuCKZxskMbJQAyGVHB,,5.47,0.55
+hdJHGEA1cEuk2KtBhCeffyDEMPRFHuLakBEvy68JGbu,,5.39,0.54
+FwBbcc4a9XsJhdqA7bgsM1b2U2HUwoHJnJWHzP6YLmRm,,5.28,0.53

+ 34 - 0
src/library/analysis_token/3DRnsQ5GA2XKk8WJ3yB46KbcRWGtA3E6cgFaqzJWpump/exclude_add.csv

@@ -0,0 +1,34 @@
+ex_add,info
+5Q544fKrFoe6tsEbD7S8EmxGTJYAKtTVhAW5Q5pge4j1,Raydium Authority V4
+BQ72nSv9f3PRyRKCBnHLVrerrv37CYTHm5h3s9VSGQDV,Jupiter Aggregator Authority 1
+2MFoS3MPtvyQ4Wh4M9pdfPjz6UhVoNbFbGJAskCPCj3h,Jupiter Aggregator Authority 2
+HU23r7UoZbqTUuh3vA7emAGztFtqwTeVips789vqxxBw,Jupiter Aggregator Authority 3
+3CgvbiM3op4vjrrjH2zcrQUwsqh5veNVRjFCB9N6sRoD,Jupiter Aggregator Authority 4
+6LXutJvKUw8Q5ue2gCgKHQdAN4suWW8awzFVC6XCguFx,Jupiter Aggregator Authority 5
+CapuXNQoDviLvU1PxFiizLgPNQCxrsag1uMeyk6zLVps,Jupiter Aggregator Authority 6
+GGztQqQ6pCPaJQnNpXBgELr5cs3WwDakRbh1iEMzjgSJ,Jupiter Aggregator Authority 7
+9nnLbotNTcUhvbrsA6Mdkx45Sm82G35zo28AqUvjExn8,Jupiter Aggregator Authority 8
+3LoAYHuSd7Gh8d7RTFnhvYtiTiefdZ5ByamU42vkzd76,Jupiter Aggregator Authority 9
+DSN3j1ykL3obAVNv7ZX49VsFCPe4LqzxHnmtLiPwY6xg,Jupiter Aggregator Authority 10
+69yhtoJR4JYPPABZcSNkzuqbaFbwHsCkja1sP1Q2aVT5,Jupiter Aggregator Authority 11
+6U91aKa8pmMxkJwBCfPTmUEfZi6dHe7DcFq2ALvB2tbB,Jupiter Aggregator Authority 12
+7iWnBRRhBCiNXXPhqiGzvvBkKrvFSWqqmxRyu9VyYBxE,Jupiter Aggregator Authority 13
+4xDsmeTWPNjgSVSS1VTfzFq3iHZhp77ffPkAmkZkdu71,Jupiter Aggregator Authority 14
+GP8StUXNYSZjPikyRsvkTbvRV1GBxMErb59cpeCJnDf1,Jupiter Aggregator Authority 15
+HFqp6ErWHY6Uzhj8rFyjYuDya2mXUpYEk8VW75K9PSiY,Jupiter Aggregator Authority 16
+45ruCyfdRkWpRNGEqWzjCiXRHkZs8WXCLQ67Pnpye7Hp,Jupiter Partner Referral Fee Vault
+ZG98FUCjb8mJ824Gbs6RsgVmr1FhXb2oNiJHa2dwmPd,CxvksNjwhdHDLr3qbCXNKVdeYACW8cs93vFqLqtgyFE5s fee account
+DGT9TPRGQwpJeMvDdZJDEaVRZa2ZMXtp16pGZgAgBoLx,pump Bonding Curve
+GE5PnwZTgWw1YqVGno2QPWqie6aLjswNeGFhiF1nDg3k,Raydium 8008-USDC Market
+25mYnjJ2MXHZH6NvTTdA63JvjgRVcuiaj6MRiEQNs1Dq,ZG98FUCjb8mJ824Gbs6RsgVmr1FhXb2oNiJHa2dwmPd
+14qLxu9XDQtc2pgnxX2SSdWPpnuVrEqccgwmATH1khcY,Raydium SOL-8008 Market
+5YET3YapxD6to6rqPqTWB3R9pSbURy6yduuUtoZkzoPX,Jupiter ApePro Keeper
+F5sw1r94VXmUGwesPrcY3TvwSrfVAZmRaWwMtD1tr3Yf,Meteora 8008-SOL Market   
+j1oAbxxiDUWvoHxEDhWE7THLjEkDQW2cSHYn2vttxTF,jupiter limit order taker account
+4KaVawPKmG1RZCv698XD9YzRsJcFPXrEoYnZbdZmfFFq,okx相关
+j1oeQoPeuEDmjvyMwBmCWexzCQup77kbKKxV59CnYbd,jupiter limit order taker account
+6KFVj2czLwNQeE4yBgFau6LHUS72vqgP11Sv1JUNxghz,fee account
+53owRWHqDocPYVtVxAQJSTE7rY6QWyWfDNAnWg5VpF9z,Pump.fun (JIANKUI) Bonding Curve
+H3oWNGDfr5pSPDM3eDYpLiT7WsUiUF8ee8WmepovDAGt,Meteora (JIANKUI-WSOL) Market
+BgYAdyHRjkQ4qaPMyt2SL53MNgfDFF6hiYy7tzwfDrtW,Raydium (WSOL-JIANKUI) Market
+8AcbTJPF2dyvabhjY8oz89SQWZArBeZzLHXnYWYWUzue,Meteora (JIANKUI-WSOL) Market

+ 34 - 0
src/library/analysis_token/exclude_add.csv

@@ -0,0 +1,34 @@
+ex_add,info
+5Q544fKrFoe6tsEbD7S8EmxGTJYAKtTVhAW5Q5pge4j1,Raydium Authority V4
+BQ72nSv9f3PRyRKCBnHLVrerrv37CYTHm5h3s9VSGQDV,Jupiter Aggregator Authority 1
+2MFoS3MPtvyQ4Wh4M9pdfPjz6UhVoNbFbGJAskCPCj3h,Jupiter Aggregator Authority 2
+HU23r7UoZbqTUuh3vA7emAGztFtqwTeVips789vqxxBw,Jupiter Aggregator Authority 3
+3CgvbiM3op4vjrrjH2zcrQUwsqh5veNVRjFCB9N6sRoD,Jupiter Aggregator Authority 4
+6LXutJvKUw8Q5ue2gCgKHQdAN4suWW8awzFVC6XCguFx,Jupiter Aggregator Authority 5
+CapuXNQoDviLvU1PxFiizLgPNQCxrsag1uMeyk6zLVps,Jupiter Aggregator Authority 6
+GGztQqQ6pCPaJQnNpXBgELr5cs3WwDakRbh1iEMzjgSJ,Jupiter Aggregator Authority 7
+9nnLbotNTcUhvbrsA6Mdkx45Sm82G35zo28AqUvjExn8,Jupiter Aggregator Authority 8
+3LoAYHuSd7Gh8d7RTFnhvYtiTiefdZ5ByamU42vkzd76,Jupiter Aggregator Authority 9
+DSN3j1ykL3obAVNv7ZX49VsFCPe4LqzxHnmtLiPwY6xg,Jupiter Aggregator Authority 10
+69yhtoJR4JYPPABZcSNkzuqbaFbwHsCkja1sP1Q2aVT5,Jupiter Aggregator Authority 11
+6U91aKa8pmMxkJwBCfPTmUEfZi6dHe7DcFq2ALvB2tbB,Jupiter Aggregator Authority 12
+7iWnBRRhBCiNXXPhqiGzvvBkKrvFSWqqmxRyu9VyYBxE,Jupiter Aggregator Authority 13
+4xDsmeTWPNjgSVSS1VTfzFq3iHZhp77ffPkAmkZkdu71,Jupiter Aggregator Authority 14
+GP8StUXNYSZjPikyRsvkTbvRV1GBxMErb59cpeCJnDf1,Jupiter Aggregator Authority 15
+HFqp6ErWHY6Uzhj8rFyjYuDya2mXUpYEk8VW75K9PSiY,Jupiter Aggregator Authority 16
+45ruCyfdRkWpRNGEqWzjCiXRHkZs8WXCLQ67Pnpye7Hp,Jupiter Partner Referral Fee Vault
+ZG98FUCjb8mJ824Gbs6RsgVmr1FhXb2oNiJHa2dwmPd,CxvksNjwhdHDLr3qbCXNKVdeYACW8cs93vFqLqtgyFE5s fee account
+DGT9TPRGQwpJeMvDdZJDEaVRZa2ZMXtp16pGZgAgBoLx,pump Bonding Curve
+GE5PnwZTgWw1YqVGno2QPWqie6aLjswNeGFhiF1nDg3k,Raydium 8008-USDC Market
+25mYnjJ2MXHZH6NvTTdA63JvjgRVcuiaj6MRiEQNs1Dq,ZG98FUCjb8mJ824Gbs6RsgVmr1FhXb2oNiJHa2dwmPd
+14qLxu9XDQtc2pgnxX2SSdWPpnuVrEqccgwmATH1khcY,Raydium SOL-8008 Market
+5YET3YapxD6to6rqPqTWB3R9pSbURy6yduuUtoZkzoPX,Jupiter ApePro Keeper
+F5sw1r94VXmUGwesPrcY3TvwSrfVAZmRaWwMtD1tr3Yf,Meteora 8008-SOL Market   
+j1oAbxxiDUWvoHxEDhWE7THLjEkDQW2cSHYn2vttxTF,jupiter limit order taker account
+4KaVawPKmG1RZCv698XD9YzRsJcFPXrEoYnZbdZmfFFq,okx相关
+j1oeQoPeuEDmjvyMwBmCWexzCQup77kbKKxV59CnYbd,jupiter limit order taker account
+6KFVj2czLwNQeE4yBgFau6LHUS72vqgP11Sv1JUNxghz,fee account
+53owRWHqDocPYVtVxAQJSTE7rY6QWyWfDNAnWg5VpF9z,Pump.fun (JIANKUI) Bonding Curve
+H3oWNGDfr5pSPDM3eDYpLiT7WsUiUF8ee8WmepovDAGt,Meteora (JIANKUI-WSOL) Market
+BgYAdyHRjkQ4qaPMyt2SL53MNgfDFF6hiYy7tzwfDrtW,Raydium (WSOL-JIANKUI) Market
+8AcbTJPF2dyvabhjY8oz89SQWZArBeZzLHXnYWYWUzue,Meteora (JIANKUI-WSOL) Market

+ 120 - 33
src/library/analysis_token/new_token/df_gmgn_pump_total.csv

@@ -1,33 +1,120 @@
-token_url,token_name,age,mc,holders
-https://gmgn.ai/sol/token/AhKYGqswDTFJNsaPZxjeGQpaHDZM1KAkxzZ6DMAAZWmN,CALYRA,20,$380.7K,4.2K
-https://gmgn.ai/sol/token/CRyUdBon9op2c4xS3pMi6b455wcjkjtT7aCGP7v4pump,NOODLE,23,$59.6K,1K
-https://gmgn.ai/sol/token/DxbKELvNuiidedNAHcv6pPAeCNuyERcnJPtec7Cppump,BYEBIT,23,$76.1K,977
-https://gmgn.ai/sol/token/CFbMqKdXygDXQbXVC7stKy4tz1gnV35U6hYBsZZHpump,mom,21,$78.9K,1.7K
-https://gmgn.ai/sol/token/Eb35ThBH1PwPP8Qjbj2LS6idazFHi5bi9rApVzZupump,PMG,8,$74.9K,1K
-https://gmgn.ai/sol/token/CKisiKP7G9ZbmyrJF3aSJYAifxMCJ8JPRL8eBrc4pump,HOW,11,$63.1K,1.2K
-https://gmgn.ai/sol/token/JZpvHhx6TTQh1MBftAYu6atvAf75PtfgXKDZNb4pump,MHC,12,$74.8K,1.1K
-https://gmgn.ai/sol/token/6ufBF4NisS4pryYS2hgker8mhA6SerMKGZxsQs8wpump,SWASTI,17,$121.8K,1.4K
-https://gmgn.ai/sol/token/8aZsnrNMZRtuHKaxrnBrs65YLsMgfxcmF4w3jNxxpump,TEPE,9,$149.9K,1.4K
-https://gmgn.ai/sol/token/4fAA65KaxCv6wnwVYpNCrYfup3pDc8ieMTA2N2VQpump,LAZARUS,11,$110.5K,8.3K
-https://gmgn.ai/sol/token/3VbKb2Kit9c384xhFCCDxJ5CbWU9EYjVJYvzaKPBpump,BALLS,18,$64.8K,1.1K
-https://gmgn.ai/sol/token/AWzSUHhUVS3EQYj572ygwcygKYS5svWjMNwSqGjZpump,KIP,19,$54.6K,1.9K
-https://gmgn.ai/sol/token/459DtsvPyTVWWMHJN4Mab1XJMuo5wVo55WU1tEe4pump,BASIN,14,$53K,1.6K
-https://gmgn.ai/sol/token/AUTLpFV5sKfbQAkHrYgtXLYVBWxGXKtsn978MtqYpump,SCARFACE,16,$64.4K,1.3K
-https://gmgn.ai/sol/token/63ib7Kij5Dh8aRLSbFsMKkKQCLKjxXaVJYvCtmHMpump,Dogefather,8,$293.7K,7.1K
-https://gmgn.ai/sol/token/FrkF4GNdqKZLuzWXTk1imqMJRGK9uxCRE3PaBKZbpump,DRIP,19,$397.6K,2K
-https://gmgn.ai/sol/token/FTnCU6Q77beNH5bpgnQGtWmGxxJ1xzX3rsmkjBNTpump,Bitcoin2,19,$56.9K,1.1K
-https://gmgn.ai/sol/token/ZkMEpzJkMNMq6TsRAc8XfavHEbPEZwXWLZeJoxqpump,FAFO,19,$81.9K,1.1K
-https://gmgn.ai/sol/token/G36dYPnfDaYTNsEX7XJnUa6i15Nyn9apMzj2skkppump,EOG,9,$55K,378
-https://gmgn.ai/sol/token/5EFNnrTPuhP5i4LZ6ndT5znjE25aY3Cg1RYNRowofzoz,LYNAI,18,$63.2K,477
-https://gmgn.ai/sol/token/3WXu8TskGXSJzhSM61hxbbFqAT9g7FbDuhifCEwRfhRN,BOTU,15,$56.1K,795
-https://gmgn.ai/sol/token/H4CLEjjF1J18nxLK5JEzTugfcGkF27rpdx47tFqpump,GALO,15,$447.1K,1.3K
-https://gmgn.ai/sol/token/4x7CgjR959MgZWN4wUTc7R2FSjNWoK7cuy2m4MHxpump,BRIGHTICS,11,$232.4K,1.3K
-https://gmgn.ai/sol/token/8Fza2Fi3gqR44vTSjC3RYfTgbRndCEgrsU21FBjYpump,Poope,8,$229.2K,2.5K
-https://gmgn.ai/sol/token/8PBAr6feFTw2eGsnieCuJh8HtgvhBVfxkVZgsR9apump,fek,19,$127.5K,2.6K
-https://gmgn.ai/sol/token/BiKer71s8oPUFMyKV752meGCETiKsLHmEfVubufkpump,genmoji,12,$129.9K,1.6K
-https://gmgn.ai/sol/token/BT1fXs5QH82ZrHpRoLHAkJ6ghxU6rvF2hx63VjTEpump,FAFO,22,$66.6K,344
-https://gmgn.ai/sol/token/3saeqKqWNAsSEC3RzJ8ZzXZar1NHiXibGpU8Unh9pump,Flight8,10,$88.4K,404
-https://gmgn.ai/sol/token/8dnN2F9EQp4JyhyotLXSxfPRQFheNWqdAYCfEnApump,PFAMM,11,$60.9K,1.5K
-https://gmgn.ai/sol/token/7yehf7AFU6eBK19hNjHBrFei9EVf8YLyktxEHABapump,OBA,13,$64.7K,1.1K
-https://gmgn.ai/sol/token/HTzvfFEFiHNCtZviYZRtF5Qf6SDwJJHbMDLo8F1upump,TIKTOK,14,$51.2K,706
-https://gmgn.ai/sol/token/kdUoDLZcPbQHGicCt5rco2RDDmbDNQ1Q6qVoxnKpump,TXRP,8,$54K,221
+token_url,token_name,age,mc,holders,save_timestamp
+https://gmgn.ai/sol/token/ERXtc7dBXRBwkWRxqC6f8bn9Wm2EzhkzQCMokutcpump,ANUS,8h,$56.6K,411,1741759864995
+https://gmgn.ai/sol/token/5SuiPfCHBRt5hq5oGpKY27m93ttFufiDW6oGCSoBpump,ETH,6h,$75.6K,268,1741766356320
+https://gmgn.ai/sol/token/QFp94pu1bbUq3o2Qz1PhH8SmZVtRQ9Y2LSxeadYpump,Cocoro,19h,$430.2K,3.5K,1741777178841
+https://gmgn.ai/sol/token/9sic1xNak3e3e1tZqjxnv8FAv2zKpujY6J1MqB84pump,NRA,1d,$50K,420,1741777178841
+https://gmgn.ai/sol/token/9m3nh7YDoF1WSYpNxCjKVU8D1MrXsWRic4HqRaTdcTYB,EIC,9h,$410.4K,1.9K,1741780786948
+https://gmgn.ai/sol/token/4pDf13BTTTmaWgCj99yX3zTbwKzqLD98D7d1QGespump,Tired,14h,$54.9K,358,1741780786948
+https://gmgn.ai/sol/token/7HDrQfWp7gpyWPbnJKYmKAqsAkevZAQayB5wF6zppump,mellow,1d,$117.8K,780,1741780786948
+https://gmgn.ai/sol/token/9gyfbPVwwZx4y1hotNSLcqXCQNpNqqz6ZRvo8yTLpump,YZY,9h,$462.3K,2.5K,1741784394861
+https://gmgn.ai/sol/token/4taJ4B67sp5Tbe5CaizkVVubS39xqaMRA4TCLYZNpump,Capy,18h,$147.5K,1.7K,1741784394861
+https://gmgn.ai/sol/token/LYNhXGVfSuq4swhD9GWD6JFc9eQGub7E4L78P2Jpump,PWESIDENT,11h,$243.3K,1.8K,1741784394861
+https://gmgn.ai/sol/token/Emvh6DahDz2FNqPpPTwVwDwgtzFQkcefeJHeScePpump,GRIMBUS,8h,$176.1K,1K,1741784394861
+https://gmgn.ai/sol/token/HrLmQRKPVd8tCWKzgBgQ681ukPQhxJqM1jmF7fENpump,ASSPAY,1d,$411.5K,1.8K,1741784394861
+https://gmgn.ai/sol/token/9PtcqGC5PDL7QhHPP3eKJb9AmNsbJomKXyKNUBNKpump,Spwing,10h,$128.2K,1.4K,1741784394861
+https://gmgn.ai/sol/token/4yTLZkHtPsuWCdGZy9658RL7YeYqncfnYvtqbmQMpump,Jussy,20h,$113.4K,1K,1741784394861
+https://gmgn.ai/sol/token/6eA1y82s5yikisLHangQW9FmcTVkfYXRRLHwwqYQpump,REAL,6h,$72.8K,853,1741784394861
+https://gmgn.ai/sol/token/DQqMx8M8udyGGJXoQoarJGsawD7adDLAfzjGjCmFpump,POKEMON,12h,$219.4K,16.9K,1741784394861
+https://gmgn.ai/sol/token/HkH7mJK8vYHbbr1mFwiUA94rmKDE8Q5NvQQyxQNnpump,flow,11h,$59.2K,752,1741784394861
+https://gmgn.ai/sol/token/AR2SmDfEbV838SXgDitHmBEdYUTxGCBs8GubSCWfpump,wetard,1d,$51.1K,3.1K,1741784394861
+https://gmgn.ai/sol/token/8Azht4Gmh2ZeHBZDx8p9yfZNzHRe5q2jtvdTpzpapump,meemeecoin,18h,$74.5K,775,1741784394861
+https://gmgn.ai/sol/token/HEV8JPybpUrVTPWm6CvgYinMUxXdVgd3ULqw37DJpump,Tired,18h,$63.1K,582,1741784394861
+https://gmgn.ai/sol/token/8RYnHxcGEYpGRsTtZw3QHTxbq7keDyU2vvb52DXbpump,Aetherion,6h,$266.9K,6.4K,1741784394861
+https://gmgn.ai/sol/token/5SuiPfCHBRt5hq5oGpKY27m93ttFufiDW6oGCSoBpump,ETH,6h,$75.6K,268,1741766356320
+https://gmgn.ai/sol/token/9sic1xNak3e3e1tZqjxnv8FAv2zKpujY6J1MqB84pump,NRA,1d,$50K,420,1741777178841
+https://gmgn.ai/sol/token/9m3nh7YDoF1WSYpNxCjKVU8D1MrXsWRic4HqRaTdcTYB,EIC,9h,$410.4K,1.9K,1741780786948
+https://gmgn.ai/sol/token/7HDrQfWp7gpyWPbnJKYmKAqsAkevZAQayB5wF6zppump,mellow,1d,$117.8K,780,1741780786948
+https://gmgn.ai/sol/token/Emvh6DahDz2FNqPpPTwVwDwgtzFQkcefeJHeScePpump,GRIMBUS,9h,$69.7K,991,1741788002889
+https://gmgn.ai/sol/token/4pDf13BTTTmaWgCj99yX3zTbwKzqLD98D7d1QGespump,Tired,18h,$50.6K,341,1741795219115
+https://gmgn.ai/sol/token/AR2SmDfEbV838SXgDitHmBEdYUTxGCBs8GubSCWfpump,wetard,1d,$63.1K,3.1K,1741795219115
+https://gmgn.ai/sol/token/8Azht4Gmh2ZeHBZDx8p9yfZNzHRe5q2jtvdTpzpapump,meemeecoin,21h,$67.9K,755,1741795219115
+https://gmgn.ai/sol/token/ERXtc7dBXRBwkWRxqC6f8bn9Wm2EzhkzQCMokutcpump,ANUS,18h,$64.2K,392,1741798826941
+https://gmgn.ai/sol/token/8RYnHxcGEYpGRsTtZw3QHTxbq7keDyU2vvb52DXbpump,Aetherion,10h,$223.8K,6.4K,1741798826941
+https://gmgn.ai/sol/token/HEV8JPybpUrVTPWm6CvgYinMUxXdVgd3ULqw37DJpump,Tired,23h,$60.9K,576,1741802434453
+https://gmgn.ai/sol/token/9PtcqGC5PDL7QhHPP3eKJb9AmNsbJomKXyKNUBNKpump,Spwing,19h,$57.1K,1.9K,1741816864486
+https://gmgn.ai/sol/token/HrLmQRKPVd8tCWKzgBgQ681ukPQhxJqM1jmF7fENpump,ASSPAY,1d,$396K,1.9K,1741816864486
+https://gmgn.ai/sol/token/CkaeAWQ4Z6kzNGZrKh8T9WzDTWb3SfpE95SpA2zgpump,WTFAI,10h,$54.4K,605,1741824081422
+https://gmgn.ai/sol/token/f99WsKNYoH6pK5suhGmNwNT1jkgSnSGcQz73y8b55sF,eit,6h,$54.1K,405,1741824081422
+https://gmgn.ai/sol/token/4taJ4B67sp5Tbe5CaizkVVubS39xqaMRA4TCLYZNpump,Capy,1d,$52.2K,1.2K,1741824081422
+https://gmgn.ai/sol/token/9gyfbPVwwZx4y1hotNSLcqXCQNpNqqz6ZRvo8yTLpump,YZY,21h,$210.7K,2.5K,1741827690190
+https://gmgn.ai/sol/token/2Ufj3cieAbm8hcq1QrSZbKjrBPhjB94te61PceCKpump,WIWIWI,7h,$53.5K,765,1741827690190
+https://gmgn.ai/sol/token/BiXTzQxWxywMeXqDQcj92wASvRDrQvVe98wKzA7jpump,GIGAMAS,17h,$67.8K,438,1741831298621
+https://gmgn.ai/sol/token/4QYaccriCgnrb3rxpibqv5vj7Wba669YBqvNEVeJpump,Tesler,9h,$388.5K,2.1K,1741831298621
+https://gmgn.ai/sol/token/6irC3s3wi3Y69D1uD2yC2W1HyR8C97fxW5qGy5dLpump,VACE,13h,$52.6K,1.2K,1741834907334
+https://gmgn.ai/sol/token/HkH7mJK8vYHbbr1mFwiUA94rmKDE8Q5NvQQyxQNnpump,flow,1d,$437.4K,1.9K,1741838515531
+https://gmgn.ai/sol/token/5kY6KBqWL7mdH2dVC7QAgQdtqhN4faL9v9Dv77wPpump,PIPOTAM,10h,$73.9K,1.6K,1741838515531
+https://gmgn.ai/sol/token/HNbfBb1MSySAHA2E7Jd12RCa3Jbb48GQQeXCYbHNysbp,Gemma3,17h,$58.8K,1.6K,1741838515531
+https://gmgn.ai/sol/token/Hf9XGGv66gi3uS56bf1hLaYTS6SfKxi4j6xkEbwTpump,ACCORDS,1d,$60.1K,760,1741838515531
+https://gmgn.ai/sol/token/QFp94pu1bbUq3o2Qz1PhH8SmZVtRQ9Y2LSxeadYpump,Cocoro,1d,$261.1K,3.7K,1741842123643
+https://gmgn.ai/sol/token/2dJHK6esMpziGb8eToE2jXjkvpZi7NiePACkqBHQpump,SWOCKS,9h,$186.8K,1.6K,1741842123643
+https://gmgn.ai/sol/token/2yFiCwdLiUfxq9PcNXQvu16QdgBFniCJP8P8gEXNpump,REBA,1d,$141.6K,2.9K,1741842123643
+https://gmgn.ai/sol/token/97zeziFm8v4RVe7S6sZmAB9Amf6DuuXU9E4irgGspump,kuro,6h,$109.1K,1.7K,1741842123643
+https://gmgn.ai/sol/token/6J7Kt8w2bui3fBtk8bmsnvJfj49Z2VDpphoFaG4Xpump,GOONERS,10h,$118.7K,1.3K,1741842123643
+https://gmgn.ai/sol/token/E1ox78bkxCpxvc18QFHKrHSnomnPw9mu4JLXow2spump,ASKRO,22h,$73.3K,3.6K,1741842123643
+https://gmgn.ai/sol/token/DcxQ5Yntb373axSfsGZwKsduLV9CMzGoyPyKGkH3pump,netpulse,8h,$90.5K,657,1741842123643
+https://gmgn.ai/sol/token/4qHV8NP9X6E2Ey2XL8cobf5STBeNvssvAPYVnr7xpump,BOXDEMON,13h,$73.1K,714,1741842123643
+https://gmgn.ai/sol/token/HN95B6jYX1Ptd6jQdLtTJFpX8vJNvkU5HbrNdYFqpump,YEAI,8h,$348.2K,1.6K,1741842123643
+https://gmgn.ai/sol/token/LYNhXGVfSuq4swhD9GWD6JFc9eQGub7E4L78P2Jpump,PWESIDENT,1d,$188.8K,2.5K,1741842123643
+https://gmgn.ai/sol/token/VjMa3mzfBgCyKRTQHg8pSuZRKCvKF8zMqVXQMU3pump,BST,10h,$119.9K,576,1741842123643
+https://gmgn.ai/sol/token/DQqMx8M8udyGGJXoQoarJGsawD7adDLAfzjGjCmFpump,POKEMON,1d,$76.9K,15.8K,1741842123643
+https://gmgn.ai/sol/token/6eA1y82s5yikisLHangQW9FmcTVkfYXRRLHwwqYQpump,REAL,22h,$160.8K,1.2K,1741842123643
+https://gmgn.ai/sol/token/9LTnCiXxqZm29PpeQpzAAHadgWiPBkxESJqUKPSvpump,dih,1d,$53K,864,1741842123643
+https://gmgn.ai/sol/token/BycZfe5RcXvq7MeeKNfvWva1AGKcjyRDbseY9JUbpump,chance,1d,$266.7K,2K,1741842123643
+https://gmgn.ai/sol/token/4yTLZkHtPsuWCdGZy9658RL7YeYqncfnYvtqbmQMpump,Jussy,1d,$98.5K,980,1741842123643
+https://gmgn.ai/sol/token/BQX1cjcRHXmrqNtoFWwmE5bZj7RPneTmqXB979b2pump,Italianrot,13h,$124.7K,513,1741842123643
+https://gmgn.ai/sol/token/8DuLY2nRU5WPnZMEpxJHnPjnFuYJ6zEQJhbCB81vpump,IMPEACH,1d,$54.4K,1.2K,1742018906925
+https://gmgn.ai/sol/token/8eq6uKMYtJ2npJC2YGj2LCZ5xKZFX3TuB2LTXB9Epump,Nostalgia,8h,$54.9K,429,1742029729405
+https://gmgn.ai/sol/token/88ECcnziS1xnvG9mgvMrj6mnn7AFETxUN5YbcqGppump,MUBARAK,1d,$51K,1.1K,1742029729405
+https://gmgn.ai/sol/token/7gBdeknSku1j3KCoJx8mgvAekfsP3BJgYrfz6RDtpump,sidewif,6h,$140.3K,1.3K,1742036944213
+https://gmgn.ai/sol/token/KiJ6Yf3ehuGrGo1rEBnGpR5H6DXGmy7oEyXKXgypump,MOLOCH,1d,$50.8K,1.1K,1742036944213
+https://gmgn.ai/sol/token/6sWUaxkSCkmE4bQPcREk2NQSuhzQAYvSczS2AmT1pump,qozx,1d,$61K,301,1742036944213
+https://gmgn.ai/sol/token/BRq2ZRrcwtdnQFfwK39JW4z8xRCkBuyxUHftz4M5pump,GARFIELD,19h,$75.7K,2.9K,1742040551651
+https://gmgn.ai/sol/token/1327jtDk2xxUYiXkVZ6ZjzymDbi9GVW6Jso3v1rGpump,MEW,1d,$86.3K,2.3K,1742040551651
+https://gmgn.ai/sol/token/BnF2SQ7ENY8REnEHZ8dx5Mxuourg54MqqqyahjC5pump,Pwengu,10h,$62.3K,1K,1742040551651
+https://gmgn.ai/sol/token/Ey4tXRVTiLtjZJE33T96KYxJ8TDdVyV7uDn6FuDCpump,youup,1d,$66.9K,320,1742040551651
+https://gmgn.ai/sol/token/AEGQaNfHsDJXNmnGq7k23u96bGLunSVhRagzVj5tpump,Pwump,19h,$51K,1.5K,1742047766402
+https://gmgn.ai/sol/token/3yDbqoDqRvN4HkaZmXsvmK5MbLgu2FKwakWsHa5Qpump,CARNEY,1d,$82.1K,1K,1742047766402
+https://gmgn.ai/sol/token/AhJ2u3o7CK4sPk9WQ2rr8FwG1xSTBMMqkjXZbeqapump,Jellybean,1d,$56.5K,2.1K,1742054981308
+https://gmgn.ai/sol/token/HpWufCkRtxYK1bZhTnowMBnjDo4rpTX8Hf9N7XhUpump,Oakley,7h,$53.6K,1.3K,1742058588929
+https://gmgn.ai/sol/token/hV7MQkCpjvuTTnPJXPhPXzvmtMxk8A8ct1KPiRMpump,circle,22h,$58.1K,1.4K,1742058588929
+https://gmgn.ai/sol/token/FkE3v2TjafPxcx8Sv4MkDpRvhEWmfL1gaBxiQTixpump,PISS,1d,$104.6K,1.4K,1742062196382
+https://gmgn.ai/sol/token/MqPTP8wUV23ii6wB51b8skpeqvNx6Lgnbu5ho5Spump,MAD,1d,$56.2K,602,1742062196382
+https://gmgn.ai/sol/token/DVyhHvXF9eNShDX2oJG9pyGoJycjxWpAuVLkSjHjpump,VanKey,1d,$54.4K,330,1742062196382
+https://gmgn.ai/sol/token/2MrNy2TdJBDvgYuTTEzD6b6LdFJLsyv7SB5izfcHpump,Biscuit,23h,$55.7K,591,1742065803957
+https://gmgn.ai/sol/token/2whk1mdgozfgh8v5G2KS22UVdE8NS3JiaGcXz6Pepump,TheLion,1d,$341.1K,570,1742065803957
+https://gmgn.ai/sol/token/2xq6CNmBdfCXxg91qN5ZFjbKozupCKJ3rKkfN8VBpump,uncovr,1d,$75.9K,714,1742069411534
+https://gmgn.ai/sol/token/7dHcVtkwTW8DbXUn4YUiXpb1U1gj3hUJuwWN5KFepump,KOD,15h,$54.5K,599,1742073019069
+https://gmgn.ai/sol/token/9SQrzAfRwhL5sniWNd259RWvKL2y16AWGzbnp1jHpump,WHITE,23h,$55.8K,446,1742073019069
+https://gmgn.ai/sol/token/Dran9LVAR21M2VcPhFbmNdHBjrG8JjE7VeSsB7fmpump,RTT,11h,$50.3K,600,1742076626731
+https://gmgn.ai/sol/token/GBe6NW24f1yzPxEKTxYBsr8npNnFi9mkBpbJyf6ppump,Orange,23h,$55.6K,27.4K,1742083842017
+https://gmgn.ai/sol/token/9pViBf84zD4ncn8Mj8rtdtojnRkxBpibPEjbaGW6pump,TRUMPSONS,1d,$74.6K,2.8K,1742083842017
+https://gmgn.ai/sol/token/6P6w8c2yCfHrwPrrit4fnmGbRVdTpjVSB56Fby6Fpump,nowwhat,23h,$57.6K,614,1742083842017
+https://gmgn.ai/sol/token/zNdwFDNMLHdhAiJSmi9wzYeew5gb33EkTyhVAPXpump,Audrey,1d,$51K,378,1742087449686
+https://gmgn.ai/sol/token/9YnfbEaXPaPmoXnKZFmNH8hzcLyjbRf56MQP7oqGpump,GOLD,1d,$223.3K,5.2K,1742091057182
+https://gmgn.ai/sol/token/HjzW3cWKctHxiVow1aco4zcDcyVhW85BS8VpjKY6pump,OIL,1d,$57.2K,3.8K,1742091057182
+https://gmgn.ai/sol/token/GssbxQ17KGAqasQokQU2d5dLtSBQw4G6XH8kH1bCQ97o,CAT,1d,$52.8K,1.4K,1742091057182
+https://gmgn.ai/sol/token/AcTsyQdLDsi5sYG4s9bbwmyD1dArjodDjRkdzjVppump,TOOT,10h,$50.9K,1.5K,1742094664623
+https://gmgn.ai/sol/token/FvxNDJFB7QPG8TNdd47CqjhFcKEHF6GA2bNoC2byJmZT,DOPEY,7h,$71.7K,933,1742098272336
+https://gmgn.ai/sol/token/EMQymgVq2XPqUxhzVgc1EyTsAYMdFChdVQtXbW6npump,Gmye,15h,$61.8K,1.8K,1742098272336
+https://gmgn.ai/sol/token/BaczN6fbHVyiWcQYsC3zirMazkRGLrgtoSSRCJSrpump,FUCKSAMMY,1d,$167.8K,311,1742098272336
+https://gmgn.ai/sol/token/3LMLQE54RDvpJ7G1tBtjAoSxqxUJmora7qPcKaM3pump,SS,6h,$270.2K,2K,1742101879908
+https://gmgn.ai/sol/token/AkfgYS26wK9xBmh9gtAGZ2umtVecJYa4co5NayqWpump,HoodGold,6h,$332K,3.7K,1742101879908
+https://gmgn.ai/sol/token/9d1HfhQztyZszDCFS5p2zX6FzNkAPQogvuR3oerXpump,Swasticoin,9h,$376.8K,3K,1742101879908
+https://gmgn.ai/sol/token/JDzjYnkw8dR5x4T5JpMoVaq6DTa1Qmm7j2Fio29opump,CHIP,7h,$64.3K,1K,1742101879908
+https://gmgn.ai/sol/token/9vgQtnYPzNCXMKoMFnVQvYnobqewEnu1dgUgmARcpump,NIGGACHILL,23h,$284.3K,1.7K,1742101879908
+https://gmgn.ai/sol/token/6pjLsfSPYyxbH6hsuX8KsHTJDm2ErbfUd8PCpoyMpump,STONE,1d,$255K,2.4K,1742101879908
+https://gmgn.ai/sol/token/8okk9j6vJdYg3Ev5eMUwDYzCNMaVGAUbTTJHWnN1pump,Manus,18h,$140.4K,1.9K,1742101879908
+https://gmgn.ai/sol/token/3rtBxzCmBKGwJRufpdCcmpnPsVi8LD1MdRc2wouwpump,HAILHITLER,14h,$126.8K,1.4K,1742101879908
+https://gmgn.ai/sol/token/EdUf9iTRTUAGpXbvurjKcir2SbYcpfNdtTcD9zxPpump,PXN,1d,$95.7K,538,1742101879908
+https://gmgn.ai/sol/token/AdwCEWQGzt3vuFMEPMf97AJMiq1eYL2sR7gk2x42pump,LENS,12h,$216.7K,783,1742101879908
+https://gmgn.ai/sol/token/jLkPtLCKP6hrRxftWvtycTNX22ijbAqmayUuiZ9pump,YAYDOLF,9h,$96.2K,621,1742101879908
+https://gmgn.ai/sol/token/3DRnsQ5GA2XKk8WJ3yB46KbcRWGtA3E6cgFaqzJWpump,JIANKUI,1d,$166.4K,344,1742101879908
+https://gmgn.ai/sol/token/ESjuJW4cAhTaVT3YZ9s9qdP3zoPZNNmrvdNTmsCUTKkX,BRETT,1d,$178.4K,1.7K,1742101879908
+https://gmgn.ai/sol/token/5zjPi7LPZS11tJkqogGvNLspfwmDUH8zRonzH63rvzvN,ORLY,17h,$89.4K,1.3K,1742101879908
+https://gmgn.ai/sol/token/F7eZ6cHCGTVF7mLkd9E3dHAAk6FsnWzFnjaMY8Dkpump,Boink,6h,$54.7K,335,1742101879908
+https://gmgn.ai/sol/token/4cpKvqmx7cXNLufqcpA5F7qQTxB9k5B67g4veBQfpump,LeBron,1d,$89K,1K,1742101879908
+https://gmgn.ai/sol/token/81yfB4vjq6UbF8dvx1KUdjArKLsdgcvFXTuHvVuvpump,AIWA,12h,$147.8K,1K,1742101879908
+https://gmgn.ai/sol/token/BzBHziaQZqSBKd8DXqrNgsDNd75i7CB5hH1rsQRxpump,FB,1d,$67.3K,526,1742101879908
+https://gmgn.ai/sol/token/8ALys5XoYkakHc3F1nAxNDZyrY9x5Sp3LLB6zSmgpump,EztrelaAI,1d,$84.2K,933,1742101879908
+https://gmgn.ai/sol/token/G1buVCHDmDu38PtvLZNRZpRsPrHZE11y8WGmwSX3pump,fitpic,1d,$153.5K,408,1742101879908
+https://gmgn.ai/sol/token/PRn3ji8wBVZVoyoBkSAjGt3goyjtyZbYCTETd5opump,George,1d,$65.5K,889,1742101879908

BIN
src/library/analysis_token/new_token/df_gmgn_pump_total.xlsx


BIN
src/library/analysis_token/new_token/df_gmgn_pump_total_1741761385.xlsx


BIN
src/library/analysis_token/new_token/df_gmgn_pump_total_1741821711.xlsx


BIN
src/library/analysis_token/new_token/df_gmgn_pump_total_temp.xlsx


+ 51 - 0
src/library/analysis_token/new_token/dune_holders_xx_00_0316日0200.csv

@@ -0,0 +1,51 @@
+holder_owner,domains_owned,amount_M,pct_supply
+5Q544fKrFoe6tsEbD7S8EmxGTJYAKtTVhAW5Q5pge4j1,usedsaga.sol,232.65,23.27
+5ENKzVezTxEYtZzF1W4mM1s3LjU6b2oBw8af2827ULKb,,29.99,3
+5FSt9LxycNWfdXFmhuDbYonoGcnBJDjZYvqC3ZuA9RGc,,26.3,2.63
+UKCC5vtp2U5281ZSaSqafDbb9aFcrj84BKsf6p5Aqxm,,25.05,2.51
+SGd7pJkt1heW4pTWLBHVtMoqaN1Anvvbb5wp5Juktrb,,24.78,2.48
+81XZEmB4eYXqdXktnZRVDaiyFbp6hATgygjK98QSbtXq,,24.43,2.44
+2oViQCbm1JWWwvvKeq2zsAns1cT48WDTk77aS7ZAPnjJ,,23.19,2.32
+EW5o2Nr2oHdr8YbWfdAFkcpxT2bqvi2jdDpaTepvoQNa,,22.26,2.23
+EWpftEEZJ7AJyGJprctqc131qQtpjWkoJahM1D9xdTiH,,21.8,2.18
+CJT24gYwv6Sadbj6jUb6ESnm6jYYZdBEzZoeH84C35tq,,20.77,2.08
+6frSrTT9aarJuBWKE36uBQJDh3VcSHWeP7Hdhar9ap7g,,17.76,1.78
+ALNngQwBnooVP41YWGM6yJZSLHTQ3eVZMaAKc9yigWTj,,16.41,1.64
+CMGdz9VBDDmc5uoZFxux4Jv1gYxoUW1Xdu8NxfijCTxJ,,15.82,1.58
+HUzZ1MrEUXrdPJoAnn5B8uTcshwyyXxFW1EqY2dvcVhe,,15.82,1.58
+5BkT4TNnJE7Zq2s3DmGExGSjL7JpJBnxa6atsjARbkxS,,15.79,1.58
+ArHmZWQxH3j29X7nw6xzeFnLrYdywnEKz3oE2zpwXHtd,,15.51,1.55
+9wYuJBuoBiNDxk97ZmCqdaBjB3gZ1iFnEBU2Jme3phpV,,14.9,1.49
+H9kHjTaJqVrrSuZGwJWgQnjyhVmGANpqsA6eoqbbZrTk,,14.86,1.49
+2swb9pJ9Ak5TLBsfsBcr5QVCStM5vNZAcyhRY9uZTSi5,,13.31,1.33
+DZm7P5hZBLFKzFqy4JzQaxUnWRkrr3AwDMa2kCrGr4Nc,,13.3,1.33
+71CvcuAphXjiDDdGYJe3iiBajgtm62H9F8bo1kNoLWPP,fist.sol,13.05,1.31
+J3ctoNuCEGXD63rf84GfgkXYczt7F6uycpVczzK57MfH,,12.38,1.24
+AAPurShNpJL5cXdaSTiW4HtPY6qVuHuypNFhoCf5oRYK,,11.96,1.2
+CEVzt13CUkFZyFbu9YBZq53qnVUrrJECUGYD2T4mJ5jU,b1gdaddy.sol,10.48,1.05
+J5cb5yHYaexf6UZHqvjg6Syh6FkrQRXudxKjUtmXdCEa,,10.25,1.02
+FKvc9tkFjaCxGHFf9KTQ9obAnkv2utAbuHw55j31vQvW,,9.95,0.99
+Fx4LBRfBAa1rfLgJtizoC9MqVZzDhhXPVqoJfSDHtNkw,,9.83,0.98
+9UrAn9DCzewahQxnqQGGYKMTuQSCjDshFwTnj4y7PaVj,,9.69,0.97
+DvptarhVU1qhfv538TB8uHiSkBgmjsyJZYVnWorcQDzH,,9.38,0.94
+3TjNpxBR2GfGMJJvBkRocEY8gaDY7CFq2PTX7hFRM3wm,,9.1,0.91
+8DJv8nUnxfWMKLNpLpH6QjhCd3tNotNRX6LZ8xGfw7pK,,8.95,0.89
+D3TRbn1Yi3RyoDF4iwmNCjS4DyaejdTeSqwUqrV3ELN3,,8.33,0.83
+2j2sBWG2eoSMzoADa4jM8rkS8kPjR9jU1Hs69KvneQYr,,8.28,0.83
+2C28BHPgxHbDfZ4XnzzXJBUt4AfjB2Dwx1Y9aUGVpwza,,7.65,0.77
+34Cj6nvpBmSHF23uG472f6PVXTT1ukxKvQZDDtmLMRaW,,7.62,0.76
+AK85DAtg3sCi7stAKS6Mxt4MFR66jw93jFk5HiJomj1V,,7.54,0.75
+DoddkNrQT6jEkfDoHGjfEKCYjGCZhqmdoFaaUVLiitC6,,6.9,0.69
+6WH6JpRyPo76iPUFaupz41y26ejadCFS3Wpddku36XGw,,6.75,0.68
+BNnN2MqfWLvgThYBsv6v8JQaYZXYKYahC5YCy27Ct1cX,,6.71,0.67
+2XyQF5q5EWdaGCH8ZfLjiVpvbpLXz8D78T9MzUpNEGBL,,6.67,0.67
+3oc5RoZWaW2DPu3jp4gWpi8cVf1azXrCbyrFqcfckXmi,,6.28,0.63
+Gw99ezhrimhChNkkpQ7uQPohgZZwzZXcUfXw5oJ2wcaV,,5.93,0.59
+GToZkeBFekct9TuH9vXetVRG7F7HAif92aMtmJ8vXk9A,,5.81,0.58
+HQNAz1WazeywXTtvGJjmpjQ6GNXVs8pMprWAAyqoMiFj,,5.37,0.54
+3GzBLpxTWWTPWwBYQ8Jgrz5XLUCg9aY6HiB3GEBUBAv6,,5.35,0.53
+DMryAaWZCT2nbRA7AbVTVFtvtmWDEJYgkWi4wFbXNbKj,,5.03,0.5
+GxEpa8w8rGT4BbtkWtSHkUdxtTwkm4uqXa16LV3LRu1a,,4.85,0.49
+9PVBMYGwR9Duy6iABhTKcMyiqmbxZdWoHrmmKNgw7FD9,,4.81,0.48
+5yrZEA7KxXvrrZvfGYvNqo2gBLq3co1wzCMPJz5mdsSf,,4.46,0.45
+J3HgVtWNTAH84ZRHW1iVYjhUJtSSF8d68Emj7meyJ6iX,,4.2,0.42

+ 51 - 0
src/library/analysis_token/new_token/dune_holders_xx_00_0317日0000.csv

@@ -0,0 +1,51 @@
+holder_owner,domains_owned,amount_M,pct_supply
+5Q544fKrFoe6tsEbD7S8EmxGTJYAKtTVhAW5Q5pge4j1,usedsaga.sol,87.76,8.78
+J3ctoNuCEGXD63rf84GfgkXYczt7F6uycpVczzK57MfH,,27.29,2.73
+64U9MukooWV5ziNXx2PCmZNmktBzQoKXnKsDBLvgCQ5g,rawdogging.sol,24.49,2.45
+81XZEmB4eYXqdXktnZRVDaiyFbp6hATgygjK98QSbtXq,,23.7,2.37
+UKCC5vtp2U5281ZSaSqafDbb9aFcrj84BKsf6p5Aqxm,,23.22,2.32
+2oViQCbm1JWWwvvKeq2zsAns1cT48WDTk77aS7ZAPnjJ,,23.19,2.32
+5FSt9LxycNWfdXFmhuDbYonoGcnBJDjZYvqC3ZuA9RGc,,22.61,2.26
+EW5o2Nr2oHdr8YbWfdAFkcpxT2bqvi2jdDpaTepvoQNa,,22.26,2.23
+EWpftEEZJ7AJyGJprctqc131qQtpjWkoJahM1D9xdTiH,,21.8,2.18
+SGd7pJkt1heW4pTWLBHVtMoqaN1Anvvbb5wp5Juktrb,,21.48,2.15
+215nhcAHjQQGgwpQSJQ7zR26etbjjtVdW74NLzwEgQjP,globalist.sol,21.02,2.1
+HUzZ1MrEUXrdPJoAnn5B8uTcshwyyXxFW1EqY2dvcVhe,,20.33,2.03
+CJT24gYwv6Sadbj6jUb6ESnm6jYYZdBEzZoeH84C35tq,,18.91,1.89
+5RANC5iQzzeLFcr1D42Pih4ksUMfa7KXMoCkzoRhujuP,,18.74,1.87
+5ENKzVezTxEYtZzF1W4mM1s3LjU6b2oBw8af2827ULKb,,17.41,1.74
+9wYuJBuoBiNDxk97ZmCqdaBjB3gZ1iFnEBU2Jme3phpV,,16.27,1.63
+8jzB2HEK322ntFCfzUwajUt9hjYA25L9F8LangTcPfMY,,15,1.5
+5sEVaCVRRyfWPhw54c4z3h59ZvJ9tL5xK2tYfT4gQnDZ,,14.3,1.43
+A2U5owsnFK2jzgBguZCDqXsPzra7ufpYG5N6CFCeQrk6,,13.64,1.36
+DZm7P5hZBLFKzFqy4JzQaxUnWRkrr3AwDMa2kCrGr4Nc,,13.3,1.33
+6frSrTT9aarJuBWKE36uBQJDh3VcSHWeP7Hdhar9ap7g,,11.1,1.11
+2swb9pJ9Ak5TLBsfsBcr5QVCStM5vNZAcyhRY9uZTSi5,,11.07,1.11
+FKvc9tkFjaCxGHFf9KTQ9obAnkv2utAbuHw55j31vQvW,,10.53,1.05
+CEVzt13CUkFZyFbu9YBZq53qnVUrrJECUGYD2T4mJ5jU,b1gdaddy.sol,10.48,1.05
+7oAJ7pSiDZ5Rc2Rki2Pa2TKC3P5X7zhF1zvMsGXT37E2,,10.14,1.01
+UdkxMCjJGnXEzMDhTyqCPard2h3eAbpaekrJC5DJLBx,,10,1
+9UrAn9DCzewahQxnqQGGYKMTuQSCjDshFwTnj4y7PaVj,,9.69,0.97
+EL74tvDoX9MFNkEDgcw79hSVwFDnvJhDeE3gZtxEP2Ke,,9.54,0.95
+BncWEKf8S1ej2jVAArDsGjaSs2MU2mtcRoYLQi1X3ita,,8.27,0.83
+J6wqmLDeHz882yak5tTrtXAUddS54Q8cHREPkBCVYMJd,,8.19,0.82
+5V5Gd8eAAocDoNjE86PgzPhzXviLCpRGwWyhbo99dXy6,,8.04,0.8
+3TjNpxBR2GfGMJJvBkRocEY8gaDY7CFq2PTX7hFRM3wm,,7.7,0.77
+2C28BHPgxHbDfZ4XnzzXJBUt4AfjB2Dwx1Y9aUGVpwza,,7.65,0.77
+EAR5NmhWHGeyJSQS2MpHiZ5BdC3mVX6uvrCdrXNqihwJ,,7.42,0.74
+5qNSu6hdVsxKogqj2q6uXwo2u7WSuBs3tw9Do1typuVP,,7.29,0.73
+DMryAaWZCT2nbRA7AbVTVFtvtmWDEJYgkWi4wFbXNbKj,,7.23,0.72
+5bbSSAJ7VkzWPiQKFYL1xbWnSWp6sbTCYjxaFi3mLrZX,,7.09,0.71
+AgRdSy5ZsN6VmPZT4NT3mEA5sZE4toYf75NjcejSrRV4,,6.99,0.7
+3xdY8KPNtcLsCRh6pNk1ef6ECqREu4nos47Hq5MWXAmv,,6.99,0.7
+GnXsEeB9sAtQ7AaUJdF2aBU6tXkoQFYHd515RKqg7q31,,6.84,0.68
+Dx98xMscVpnTMcSovwy6US5gnqb2Hc1FKX6FffpHMSM9,,6.7,0.67
+CvBbHAZTV2uNwMApwcWdohmeP6SXL7QnYVNZQSiDrPjS,,6.67,0.67
+FhVmiRqu6pzYtm3a75bcBYMhFaVzeKW78ckibRswqzxJ,,6.39,0.64
+5BkT4TNnJE7Zq2s3DmGExGSjL7JpJBnxa6atsjARbkxS,,6.3,0.63
+95ECtXUSrL1qzmPahWwmyNdde19ZCYpJuAimAGv7nuTy,,6.19,0.62
+BYNkFdPCi5RUrJxEV6BWjQs71TjYWGZQ6hjgioc1mAVN,,6.02,0.6
+B9cednRWg5wkjq4a5R7h1sAnTsfHzWXLrNKDexvmVJEN,,5.86,0.59
+49dsEoHQgqe5QLBLcixP9yZkZ3PuCKZxskMbJQAyGVHB,,5.47,0.55
+hdJHGEA1cEuk2KtBhCeffyDEMPRFHuLakBEvy68JGbu,,5.39,0.54
+FwBbcc4a9XsJhdqA7bgsM1b2U2HUwoHJnJWHzP6YLmRm,,5.28,0.53

+ 14 - 4
src/library/analysis_token/new_token/handle_gmgn_pump_total.py

@@ -7,7 +7,15 @@ def handle_df_gmgn_pump_total():
     df = pd.read_csv("./df_gmgn_pump_total.csv")
     # token_url,token_name,age,mc,holders
     
+    df['datetime'] = pd.to_datetime(df['save_timestamp'],unit='ms' )
+    df=df.sort_values(by=['datetime','token_url'],ascending=[True,True])
+    df = df.drop_duplicates(subset=['token_url'],keep='first')
+    
+    df['datetime'] =df['datetime'].dt.tz_localize('UTC').dt.tz_convert('Asia/Shanghai').dt.strftime('%Y-%m-%d %H:%M:%S')
+    
+    
     df['token_add'] = df['token_url'].str.split('/').str[-1]
+    
  
  
     df["gmgn"] = df.apply(lambda ser: makeurl(
@@ -15,9 +23,11 @@ def handle_df_gmgn_pump_total():
 
     df["defined"] = df.apply(lambda ser: makeurl(
      f"https://www.defined.fi/sol/{ser['token_add']}" , "defined" ), axis=1)
+    df["isnormal"] = None
+    df["hassec"] = None
+    df["beizhu"] = None
     df.to_excel(f"df_gmgn_pump_total_{int(time.time())}.xlsx",index=False)
-    
- 
-    
-    
+
+
+
 handle_df_gmgn_pump_total()

+ 34 - 0
src/library/analysis_token/new_token/handle_total_xlsx_and_temp_total_xlsx.py

@@ -0,0 +1,34 @@
+import pandas as pd
+import time
+def makeurl(url,url_show):
+    return '=HYPERLINK("{}","{}")'.format(url,  url_show)
+
+
+def handle_df():
+    df = pd.read_excel("./df_gmgn_pump_total.xlsx")
+    df_temp = pd.read_excel("./df_gmgn_pump_total_temp.xlsx")
+    df_temp = df_temp[~df_temp['token_url'].isin(df['token_url'])].reset_index(drop=True)
+    df = pd.concat([df,df_temp])
+      
+    # df['datetime'] = pd.to_datetime(df['save_timestamp'],unit='ms' )
+
+    df=df.sort_values(by=['datetime','token_url'],ascending=[True,True])
+    df = df.drop_duplicates(subset=['token_url'],keep='first')
+    
+    # df['datetime'] =df['datetime'].dt.tz_localize('UTC').dt.tz_convert('Asia/Shanghai').dt.strftime('%Y-%m-%d %H:%M:%S')
+    
+    # df['token_add'] = df['token_url'].str.split('/').str[-1]
+    
+ 
+    df["gmgn"] = df.apply(lambda ser: makeurl(
+    f"https://gmgn.ai/sol/token/{ser['token_add']}" , "gmgn" ), axis=1)
+
+    df["defined"] = df.apply(lambda ser: makeurl(
+     f"https://www.defined.fi/sol/{ser['token_add']}" , "defined" ), axis=1)
+    # df["isnormal"] = None
+    # df["beizhu"] = None
+    df.to_excel(f"df_gmgn_pump_total_aa.xlsx",index=False)
+
+
+
+handle_df()

+ 1 - 201
src/librarydata/dalao_ori_pnl_gmgn/ori_gmgn_pnl_6P4aHkv7oTbwMK6P57sVsejE52jNFeEvYhQMEBpNNN1U.csv

@@ -1,201 +1 @@
-tokenaddress,tokenname,last_active,profit_eth,profit_percent,buy_eth,sell_eth,30d_txns_buy,30d_txns_sell
-GUGmG7qWG4KDCZimpBKi1Ej6xo4ko46V4Fnw6RhKpump,iuji,0d,10.84,1.8,6,3.47,2,1
-51hx5pWVzAEMXyuxjGzRENT5BQ1mEjQHNmGSsGSWpump,END,0d,0.378,0.19,2,2.38,1,1
-D1jatjJCYJerLedEFqXytCJfequ8LjfYXAW9ztTXpump,Lain:AI,0d,0.479,-1,2.21,2.68,1,1
-CxRBg5BSRujbu1WEcHQrwHHWytVo62jdxzWqtDj5pump,$cryptoids,0d,0.26,0.13,2,2.26,1,1
-HVra3PkboWAsykg1MEqEzPEhqsyNPZPs63xdAaFcpump,dcapump,0d,-0.306,-1,3,2.69,1,1
-H2zb37x5nyW1yeCzVn2RecQFCdt8JK9ZioxqSNsFpump,REN,0d,-1.27,-0.42,3,1.72,1,1
-CZGP1EJUjPRSf3sB8MqoEbUrADHxG3ad6s7iAC7d1ao5,AI,0d,4.76,1.59,3,7.76,1,3
-82jE2mJaHvkUruxzkkyiVFSs2qWeHengLv6Qmycmpump,I-405,0d,1.32,0.66,1.99,3.31,1,1
-2iyzYLvv6vgpESHPR1Ti5r4fCKjzLaHwDLpbApnDpump,AUTISM,0d,0.302,0.08,4,4.3,2,2
-dFVMDELpHeSL4CfCmNiuGS6XRyxSAgP7AwW266Lpump,cog/acc,0d,85.07,8.74,9.73,94.8,1,13
-7gFGAkQDNpMnptAwLZdNJwEh6DRhH8Fdm9H3hMcvpump,KOTH,0d,5.81,1.16,5,10.82,1,3
-EWy1HPEUq4Lgm6H4pQ8augEuJ7WRwJgENZMTAUzrpump,MEME,0d,2.69,0.41,6.61,9.3,1,2
-vyPu3cip3jEDPqkigX92LcLdwyaFxmbg7UJmSVipump,Novus,0d,-0.341,-0.17,2.01,1.67,1,1
-6kCwv5wNBgacrkeefRJBZFhxoTCPQ7kNnfXyfpWBpump,aiDOG,0d,-0.134,-0.07,2,1.87,1,1
-4W3drcti747BAj92VVuChTeoLoFPjvBVUVbteAYHpump,GENOME,0d,-0.38,-1,2.01,1.63,1,1
-8YyjnnGYNXvKLZs5FaiC3h7KbwpHSeKj1VkaFFXqpump,DATA,0d,5.38,1.78,3.02,8.4,1,3
-FX7RsVm1y59Cr166Eb4VteRzAdTY9idPWtcN15j4pump,AICAT,0d,-0.522,-0.26,2.01,1.49,1,1
-4FdDj9SUb1xtwBuMbAaKQ4VDXYSfqaLvRG29GMK5pump,Mew,0d,7.96,-1,3.02,10.98,1,4
-4FxtVVjQSkwKghNXnGBxx3iSoN3XQcsZ4fmjAbLPpump,fleebr,0d,9.79,0.68,14.41,24.2,3,5
-82gVNTGp9YD2ske2rLQ1v6AKFbayADUh34cm83WWpump,LEILAN,0d,-1.19,-1,2,0.804,1,1
-BBvYriCrgPbKHx7azGuYrf8JKr2ZewgE6iu6dCufpump,TCOS,0d,-0.07,-1,1.97,1.9,1,1
-GFZvoQbGQwuRB4hUQ4dLTruG7HujExy3bvn7trPtaqgb,Novus,0d,0.027,0.01,2,2.02,1,1
-2P5HzgSWzAdUUZX7rhEsCXT19cQyBsMEheHBaxdNWWRC,REVCOMP,0d,-1.62,-0.81,2,0.376,1,1
-DUpQfQAKHtzrN3jE45mDLtus4bC6UaWz5W58FFa8pump,TRENCH,0d,0.424,-1,2.95,3.37,1,1
-BSqMUYb6ePwKsby85zrXaDa4SNf6AgZ9YfA2c4mZpump,LOOK,0d,2.67,0.09,29.47,32.13,3,3
-2zMwbiC42okCdMuAjdXvwyW3bgyiYuGZVyySZ2hGpump,eigenro,0d,0.167,-1,2.95,3.12,1,1
-PD11M8MB8qQUAiWzyEK4JwfS8rt7Set6av6a5JYpump,AICRYNODE,0d,1.05,0.02,52.24,53.29,9,7
-BdYqxVbfofR5SrwwDdMhf6P7oGWQnbydFjY3ySpppump,AG,0d,-1.71,-0.17,9.74,8.03,1,1
-F63Uk3oLMMAvJdQNNXCkqFgMqADpHbahxfeFcq3gpump,HUG,0d,-0.32,-0.05,6.5,6.17,1,2
-HWAi5rH9x66ieEZMvzzrW6eJD7HTm62pBqnxutNJpump,cthulu,0d,0.703,0.36,1.97,2.67,1,1
-46SJKxbS5BWFBdGWx9fyNHTXQih9eiUPjsS6FHjqpump,unknown_46SJ,0d,0.285,0.07,3.93,4.22,2,1
-GTkSfBVSHVX5rsczm39i6Txu8oXgawQC8ieETc5Wpump,FROKO,0d,-2.23,-1,3.25,1.02,1,1
-32mcpisCLCYmmppxGshAHwrokkNJnBZzsPE3bDHJpump,supercycle,0d,0.193,-1,1.92,2.12,1,1
-9GpthvTPDpN19HeyvExoyazRhtq3agtg2nbcS7Topump,bing,0d,0.497,0.05,9.81,10.31,1,1
-HZmAP8Nq31nAnHqnBNfe3Z6o2PoSM5svFMmtuZ4Xpump,42069,0d,-0.632,-1,2.19,1.56,1,1
-2SyBwpMjzP9WP7NUAPGUajiLwXCFxY1KiCzfb3kSpump,Claudius,0d,5.12,1.74,2.94,8.06,1,1
-6iRCDy5NiXunR66r3k2wzonNUuJWbket1vPCsC5Wpump,I-405cat,0d,-5.14,-0.74,6.91,1.77,3,2
-8QLTsTnPN4XxTP4ZU7osE4j5XpTmJWRDNQmjLzncpump,BURZEN,0d,5.15,0.55,9.41,14.56,2,4
-8Y4p6DWMnZToNiyiLrbLU4K3XpLX5TM93VAvmokdpump,CLAUDIUS,0d,1.61,0.55,2.94,4.55,1,2
-BNWNrboyWJrHEKL9LWBDhJxNrdeKSYuGpv3mqzp9pump,fim_sufix,0d,-2.59,-0.92,2.82,0.231,1,1
-GpLF6vGzZvn2ZPdVxP7m1LTuAndbiKrpAbnFNVSEpump,MEMECORE,0d,1.11,0.56,1.96,3.07,1,1
-3oJ9GCKTzHBLU2hP3i5BJ4dgATqRgNhL3PyRwrEspump,Reich,0d,-0.529,-1,1.96,1.43,1,1
-YE1VK3cXnKnYg4ypHHfi1pvUx68mBjqhYm5DQQxpump,SLUT,0d,-0.458,-1,1.96,1.5,1,1
-9Za5hA1XFyGBNbGNEJH7v411AXaW19WMhKaAvamUgT7T,Elysium,0d,-1.35,-0.05,29.51,9.6,3,1
-XsmpTXU5zXmwmj6251PdYG2hz3jSX5VQKyhr2Dnpump,RUG,0d,0.741,-1,1.96,2.7,1,1
-jVoo9ekQtqsVjG5Xibz9rfBfb1oBdJMLwhPoxhkpump,PIXEL,0d,0.479,-1,1.96,2.44,1,1
-EwDw33fuey7WLu1hF8kJiybccDhhgD1uugUZbaRKpump,a/sol,0d,1.02,0.35,2.94,3.96,1,1
-DGYeYBr4Dmfa3zFD52MemFfvQUrgh8a6vaPRzU3xpump,neoltitude,0d,-2.09,-0.53,3.93,1.84,2,2
-HzhhfexEbj3dnVr55mBhiq4Zzh7kSQdDWdjxrMX3pump,EACC,0d,-1.88,-0.06,29.55,27.67,2,2
-DCrPFBDZBVdVaiu98Jr9woaPRT5BUqZwSNr9Chdgpump,bees,0d,20.26,1.87,10.84,31.1,4,8
-DQ8C36Zbjqk1q2E89thZa8mJXbP3DnMP45Mu87J7pump,donut,0d,30.33,4.31,7.03,37.36,3,11
-6xV8jdoRVN8UaUn6rLHBzHqXePJxewVLawp83JAbpump,GAI,0d,0.671,-1,2.95,3.62,1,1
-Bgfq8A5FE9pqBxqLo9uE5cp2e3qWdswegHPWzb3ypump,kat,0d,11.98,1.85,6.47,18.45,1,3
-DEPWCSuXekPnr11yYaRzJVGgFHKuoLpxRstDvkFqpump,bCAT,0d,6.77,-1,6.25,13.02,1,3
-BTvDHTdUB8oYky7B3qigty1icoWMQhKtD1Gp6B9ypump,EACC,0d,0.286,-1,1.95,2.23,1,1
-BnyK5ccegzrpEcv9UH5GPF8fZwV865m33pGi2Uk7cXQ7,moment,0d,-22.36,-0.38,58.97,36.61,5,3
-DscQBRRZx6YQEX2puhgzfv2ohR1VqYwBg1PFKsqzpump,LISA,0d,-2.76,-0.94,2.95,0.191,1,1
-CK6T4pS3Ab9SJt8pPUNF5vGDKVfDrCR8pNd2o8K5pump,wow,0d,-0.949,-1,1.96,1.01,1,1
-4e4pi2xRnNqVvNfLUcLCbXNiFfgNQuBCedUeJgE4pump,TONG,0d,0.572,0.19,2.95,0,1,0
-HTYdC5YeGTZ88NA9h1WKzzamoXDcjRGxsjaeq4qjpump,DOTS,0d,-1.27,-0.43,2.95,1.68,1,1
-aUcgFSGvLJL6PYp678wsokDF7geWXLKEf7pQBk9pump,BACKROOMS,0d,3.12,1.53,2.04,5.16,1,2
-BGa9RyRutfEPBQkxQJaMsYXAqUwmbFtvmiiZVMkCpump,TCA,0d,-1.52,-0.77,1.98,0.46,1,1
-HKkCs86LbHpqpjzywXcNcSgAfsaktK2utsz3HuAznCTX,JIHAD,0d,-0.925,-0.31,2.96,2.03,1,1
-34wCzxajqVZk7kNoTSbdyZYMoVH6CsBDtWc7FGcVpump,holywhore,0d,0.393,-1,1.98,2.37,1,1
-9NSJ5qhm62AYcWqVjr8qZVF7SSa7NMwqswKm2a6Qpump,GROK,0d,17.9,9.15,1.96,19.86,1,7
-HxBgMk4MR1puZEjrh1dW7JomUhTUUSBFELNoL2Pypump,titor,0d,9.16,1.43,6.43,15.59,1,4
-3hHrKC1WdNxBs36KG2FbztSnJe7WCqjYMgrbJmWqdQ5o,HOMESTUCK,0d,-0.037,-1,1.96,1.92,1,1
-AHNTwm9usurZTAYJgdDqkiXYmQPK6eixnNi8jbtXpump,NOELLE,0d,-1.39,-1,2.91,1.52,1,1
-9mPsw7vUwnaVicrv1o4hYoUgvVRpx4qaHGF58zWCpump,SETNTIENT,0d,-1.14,-0.39,2.96,1.82,1,1
-D6MqvJGMRyWuwQTmbVAgLuvsSMPc9tiiiqs22HLjYwG9,COG,0d,0.353,-1,3.16,3.51,1,1
-7APhmafYzPZMLEVFvKtwUGYRrQRH2LpncdfLXPtYpump,SETNTIENT,0d,0.056,-1,1.96,2.02,1,1
-EAJwKJz2zPqvHdvfFfQ8o2Fa57G82UuZ9ZTnkMYPpump,SM,0d,0.247,0.09,2.82,3.06,1,1
-GuRgiJr1Q1WrVq5NuVbDPWJuU8TrwzjsptpnECTUW9rQ,gamble,0d,0.357,-1,1.97,2.32,1,1
-2Fsz8o4tbXXbGZ34uH1xFY6mJmYfW4ze812xRdPSpump,Jarvis,0d,0.281,-1,1.97,2.25,1,1
-39qibQxVzemuZTEvjSB7NePhw9WyyHdQCqP8xmBMpump,MemesAI,0d,-3.72,-0.19,19.39,9.06,2,2
-H2VaaRU9xWiXUwLpNWbSUWZqUryrHnnixxYA9X4xMihS,DFIPE,0d,0,-1,0,0,0,0
-9qriMjPPAJTMCtfQnz7Mo9BsV2jAWTr2ff7yc3JWpump,unknown_9qri,0d,229.92,9.4,24.46,254.38,3,38
-2e4JVEPfPbpQoj5W5jjsfjmRMX6seZyA41HkDouKpump,AITHEISM,0d,0.503,0.17,2.92,3.42,1,1
-BX8afmzkwstuqHwBnu87yRgkW84enjj42YGsx4rKpump,Alexa,0d,-2.22,-0.46,4.8,2.59,2,1
-ryEoV2iKy7HeUmm79iob8hL4ppw1bQz3hYAtjJCC3Kg,AI,0d,0.347,0.18,1.94,2.29,1,1
-Af4yAi7mHwbEAQUFmkphTYnCrRZMx3SUhyY8MCRppump,WATERMARK,0d,-1.81,-0.76,2.39,0.573,1,1
-EuHHTN8THoqrexNKYdPR1aZf48hZ44mS1p7UBB6vpump,Homestick,0d,2.16,-1,6.8,8.96,1,1
-EHrqe5bf4Su5Pi7Aj6uqUxHKyToC3s2BtbXekLWvpump,Numochan,0d,-2.65,-0.46,5.82,3.02,3,2
-6432h2xuDKcb5TNHED2JT3UXrqhrgoWceBE1DaWTpump,unknown_6432,0d,-1.16,-1,1.85,0.691,1,1
-6Vc8rDfuKimpsjNmvNYEJkYnrtQkLHYvanKw8xdBpump,Mirage,0d,-1.33,-0.44,2.99,1.66,1,1
-GbWoi9XD9edXVfFKZMfWjWzVHs2uDQrdSeBcBPNypump,FUCKBOT,0d,-1.22,-1,1.94,0.72,1,1
-5SzBM9nmVfJ3tW35PUQLnzT4Htu58gtBsM2KQ7rapump,HarvardGF,0d,-0.087,-1,1.94,1.85,1,1
-8Mc7fy5gTB4acA1xi1MhqDGbbTgX3KqMx4iVEbXf6yC5,SOLAI,0d,-0.123,-1,1.97,1.85,1,1
-38We91Q27uZ1gJccRLt74eeAk9W5Z8e4vWLcZHWMpump,GORM,0d,15.49,2.65,5.85,11.15,3,2
-HrAUzCXtok5tbDyczeZ2wbCvEDTaYkcUamHgU2Rrpump,tikkun,0d,0.023,-1,2.09,2.11,1,1
-AtUKiJoYCTkq38zJknPThHR92iCnqSQkpqrhLyhGpump,ENDER,0d,-2.15,-0.74,2.91,0.76,1,1
-G6ZCBc3oZQF2VJ3PU7qjLjNeoKJCN5XZMp9KVKPHpump,ETM,0d,-0.23,-1,1.94,1.71,1,1
-E9Ni6eJLE1nFfqYi5bFzRHAB4NgmEqtdii45BkW1pump,ALMO,0d,-0.861,-0.44,1.95,1.09,1,1
-BEAuYMm5DKQJNYhNezEGgPunqc2rvHTc8NGAu2Xipump,PAN,0d,0.236,-1,1.95,2.18,1,1
-B8yqhNx4gGi4vHyTLVi2WbwsvRtsnCU5JYthReXhpump,llms,0d,0.586,-1,3.01,3.59,1,2
-9wtFqbMCFDLwgEboVs3WJhVG2VgwdFBo3osqtqgXpump,TEAPOT,0d,-0.518,-0.27,1.94,1.43,1,1
-7HSiceXdTvqsvZiXUqbZs6LLK9xaPmhqHMDKBrKdpump,GOD,0d,0.004,0.0,1.95,1.95,1,1
-8cv6NL3KsP8zKZNbQRmtq7bCXeGXuGjfUxFUUbNWpRH4,GOD,1d,-1.12,-1,2.92,1.8,1,1
-F1LsFFgfQdsypzJGt4ecSZ75pBermu7KMxFvRbxjpump,WOTF,1d,0.291,-1,1.95,2.24,1,1
-EHHAKzPZJhQy4fc7CTaJPFsetPgKnC6JNCdv6pqsQ7Ma,21e8,1d,5.01,1.03,4.86,9.87,2,4
-AJW3MAoaoG1k2wGQFGeDiF66p1VmFMDTWuVGJJeDpump,unknown_AJW3,1d,1.68,0.96,1.75,3.43,1,2
-GCkgnJ4rfauRomni43MprzRmUAYW6oVKBCuL1SzWpump,RAPED,1d,7.15,0.54,13.19,20.34,4,6
-3wCPeYYwPP7gegkxjritt5AURXmk9byeC56dHZFPRqTd,unknown_3wCP,1d,1.39,0.72,1.93,3.32,1,1
-Dt9kgVLxQn5KquzetVhuWhWkr4kQ1ffoKjZMmwiXpump,Words,1d,-0.214,-0.11,1.94,1.73,1,1
-9Dc92RuWyvMV2hZ4FYEnUe1RSTEaqbKiteHmfqCVS13D,toaster,1d,-0.525,-0.14,1.94,3.13,1,2
-BGaumRqjesfv7jHecTG4cZJNJKt4eJGpTPeFqt3rpump,Gapeape,1d,-0.091,-0.05,1.94,1.85,1,1
-DzrPGjMWTeRjk1CC8gGcqLKFChLKr9ZtAj4WUcTzymW5,YEET,1d,0,-1,0,0,0,0
-3959ft3A1TnevWJ4b3CQDNghFrU9bPb7eJbHyueEo6cC,yeet,1d,0,-1,0,0,0,0
-F48Bsp1UqfAY6nG57agqvwi7hPV64vZ5AUvNc8xS5PJ,consensus,1d,0,0.0,0,2.73,0,1
-9QD2oEzrMAnXkBkruNSKFnHzvPJ4bWkyrtVEwcyfpump,thebes,1d,0.983,0.07,14.22,14.99,4,5
-CGsLbZCpKsQqokRFTfuDxZnkD1eWTcbNB75R1fDnpump,utra,1d,-0.616,-1,2.92,2.31,1,1
-B4KtrpPmjvyY2v1XjSoo5ZLWgHq9MCZjPbtHxqoKpump,chizz,1d,-2.2,-1,7.31,5.1,3,3
-Ga2DPKbBacNFZvL8yFYAKnVxAnB38yFymVKKyu4Lpump,chizz,1d,-0.09,-1,1.95,1.86,1,1
-raPyJ39rPY6YuXg8dzypheiEoDNrvRxnvKUPtpcXJBb,AI,1d,-1.38,-1,2.92,1.54,1,1
-AgHg9Q1s9aUhU7YNMH7c5pvCghFVSFcnCEJ4ePKjrDZg,Thebes,1d,4.3,0.67,6.42,10.72,1,3
-EYM9RgX3S7QqdzUVXK2UuVsy4SH81FX8FHCYqQe1pump,VICTIM,1d,12.86,4.18,3.07,15.94,1,5
-GuhJSFQf7RxyNKpXcivNphPZH8HaXAbDBYaeLooKpump,SWARM,1d,-0.058,-1,2.73,2.67,1,1
-CJbpwzMm6ktXULChRqEQQWVRuYbUrfhtVgsj2BB4pump,Mango,1d,-0.378,-0.19,1.94,1.57,1,1
-5K6wPPcCmofZbzs5Zosb6kGuRL1oibiPy77ocaUmpump,#TOT,1d,-0.352,-1,1.94,1.59,1,1
-EL8tDCUCCkcYpfMQKVghcc8yWSRHJFtnRYBtfJjgpump,LLMtheism,1d,-1.71,-0.27,6.42,4.71,1,1
-FhdFGZzg2cH6fJcLYgKCQ57Ny782zAbkgnGgz89Tpump,0x440x46,1d,-0.539,-0.18,2.92,2.38,1,1
-A1vcmHKqQpacVk6xeEyzfqqPPR1R8fpexEmvKKfzpump,unknown_A1vc,1d,-1.89,-1,3.06,1.16,1,1
-Awif5iQnv1J2x6RHJrh3cNyaH2ghu47DsJfRgFwSpump,Orb,1d,-0.325,-0.11,2.93,2.61,1,1
-3JtfvzFVzkPh1we7DPDGW5xPsrPB5nX5dbAVgTeVpump,$some,1d,-0.421,-0.14,2.92,2.5,1,1
-BQdYEzw4WVxDW56PbbFwVpobBFZ1uVXcPtTBrhfXpump,titer,1d,-1.12,-1,5.99,4.87,2,2
-5JL8WzPwArwSSYvAp3fcXk7yNzPuG4X41xTC2dB3pump,ps,1d,0.667,0.39,1.72,2.39,1,1
-GMNDxoWKwjvYvRzznkVjd9KaJ6UAX48JwJmXvcNypump,numogram,1d,0.723,0.25,2.92,3.65,1,1
-H7zMWPuQNj1URNvzSpbxKG5Yo3iH9fD8QnyX1GyUpump,PYRAMID,1d,-1.07,-1,3.02,1.94,1,1
-E2B5V2LgB2Y8unN85LKZyPfV68KmG5hkVdoLP6RTpump,RED,1d,-0.347,-0.18,1.95,1.6,1,1
-FKFSSSk6mPQQCSt4S71m5temXzE8K2sLby7WKWsypump,Orb,1d,-1.76,-0.6,2.92,1.16,1,1
-2jfmsGtcBpF4qQxztyBqhZmrtTf8tCNv7o98kwwSpump,LLMtheism,1d,-0.991,-0.34,2.92,1.93,1,1
-5cFAEfYRqGUrXQ8RsnwYQvHi3JS7jxYn73wopq1Xpump,JESUS,1d,-0.223,-1,1.94,1.72,1,1
-GUkAbPWCZFAdN1fE34tU6r7hSqWHBxYY761KN3BZpump,Eliezer,1d,0.221,-1,1.7,1.92,1,1
-BscPkzEMYvBVMEscjKznb5Zs6yxs5o1gRADxNFiVpump,Tilly,1d,0.3,-1,2.92,3.22,1,1
-9WeaK79iNvbtivCaw9RfuKwopPL3we2t8rK6ZaSapump,burrito,1d,-1.66,-1,2.36,0.706,1,1
-DRUrxrxmFvDhDKc2a1Pivp8uSv1zFxmvDk3WNbG4pump,sixpencil,1d,0.378,-1,1.96,2.34,1,1
-BpRcSgB44bVDqXP8PC2ooDTMtCyCvKmh5s7mtt8Lpump,U+3000,1d,-0.76,-1,1.96,1.2,1,1
-HdNhnm1SWRjWasAWKHvnnc37EwVBMfaeX4YJxR8Bpump,FARTNANNY,1d,-0.652,-1,1.96,1.31,1,1
-GK3CNto9FrYWVPgf1s7hNRomEZN3i92gLHD4gJ6Hpump,CULT,1d,0.227,-1,1.6,1.82,1,1
-86jRzWPU4sy5evpQ2Mmk86UuPS4wcopik6NZMHSqpump,[invalid],1d,1.6,0.54,2.95,4.55,1,2
-uoKeFHf4XVPhjGabVVCaa6bxSMFzJCfkMHEEzcLpump,tall,1d,-2.14,-1,4,1.85,2,1
-5wUoNHQCZjATGb5RRm1sCrhuaDXCGAN81Q3Yjferpump,mindfk,1d,13.79,-1,4.89,18.68,1,4
-J5LJ1XoeqfR81YgsidXKTXMV1a6F1Ux9cKBLN5Uipump,mindfk,1d,-0.188,-1,2.98,2.79,1,1
-8GRcLi4k6YbFAZn54HPELTdoVXdeTu1BXPmJqbgdpump,wow,1d,-1.56,-1,3.07,1.5,1,1
-DbLX7qixm3MtruPNuQEnVYu8QFDoxMDu3wx19GCLpump,word,1d,0.005,0.0,2.93,2.94,1,1
-7ndLEE3YXJqSNzxK7coGSxYvNbqdY2b7Zqri3XuGDLuP,unknown_7ndL,1d,-0.552,-0.09,6.03,5.48,2,2
-Z19ibmkwxW2tWPX7F3EBA8HhuwCkRzSWfNXrN5Ppump,unknown_Z19i,1d,0.801,0.22,3.68,4.48,2,3
-5bMiFxQUwqex6d4QEQB5LJfEK8B3fV1DVr7PADnupump,NORVID,1d,-0.449,-0.15,2.94,2.49,1,1
-9axpDa1N4Nq7PTeVVPaXjiDCSdJc5TjszA3nSuqapump,cvlt,1d,5.42,0.71,7.59,13,4,4
-6ssPmoowAdCemH6RbCLr5q238gkr5XAZkw4NpguLpump,CHICKEN,1d,-1.02,-1,1.97,0.952,1,1
-4s1KtPPQzyzSDNpPDAZ6kwRRbveqGggU1YeYnS4CHoir,unknown_4s1K,1d,0.743,0.36,2.04,2.78,1,1
-6L9X3nT1QugACUKVvYWU4JSQwuFz8trwUpgjEQczpump,PHIL,1d,-1.15,-1,2.02,0.871,1,1
-FdwrS2euZXsyeQfCAcnv2ViaauvcKV6U3tXZ62hGuGTU,SHL0MS,1d,-1.11,-0.38,2.94,1.83,1,1
-B78DSFahHE7vj82JRjK69zNWsBvuKe8fWP7n6mF7pump,SHL0MS,1d,-0.347,-0.12,2.94,2.59,1,1
-FCGDDio5DuhujHcRQCDbXHnrcSA4pUGg2haNt7S2pump,AirheadFun,1d,0.87,0.3,2.93,3.8,1,1
-3vW9c7k9WUpyctXysxQqhnKPUy6LKLXCamqEyA9sVh4N,unknown_3vW9,1d,-0.298,-1,4.81,4.51,1,1
-J5tXLKfpQtGwtpkUfgghmtvfMbcAairCXR8KuDhipump,BabyChad,1d,40.36,8.29,4.87,45.23,1,12
-AJNk4EU8GqfangKSR8N71f6JsnQFF7YbFZ4ieetGpump,DRY,1d,-2.22,-1,2.79,0.565,1,1
-5sFJqJrSg852TZVEcmdcPcxxQf7vozRnk29VDDBipump,BALLBALL,1d,3.49,-1,1.95,5.43,1,2
-HznZWAodP9VvMfazEhj9sRgRy2DLg3CgkTbNhQxwpump,BALLBALL,1d,-1.38,-1,2.28,0.901,1,1
-AWJndzjV3X1XFoooo5d5Wp2yoQNCK4JdzsyP5baRpump,Llama3.1,1d,-1.02,-1,1.95,0.933,1,1
-7iexSsJLjDvFnbbRF6G64pk8C5cKNTrsJj26QcSvpump,PEMDAS,1d,-0.467,-1,1.47,1,1,1
-E3pU9piMVEubx3YH4msN826cpaKdAga9zjTQc2dxpump,CHARLIE,1d,-0.064,-0.03,1.95,1.88,1,1
-6MCG6QNB2Bp2KRqsstYo8GxcjcGeb2DC3DS7kXX9pump,lulo,1d,-0.383,-0.1,3.88,3.5,2,3
-9QW8eANMoSoyzLx65p7Uzi3VZK3mvGaUAufAW7Nspump,DTR,1d,0.331,0.17,1.94,2.27,1,1
-974h6gyb8rFJcu1Yhm3ujdmHfhLB98dBKXiGCFSJpump,ARCHIE,1d,-0.412,-0.21,1.94,1.53,1,1
-8dyNLpSBgb41q3f1YiENecb6PCoVDMjVZdtb91WKpump,pupper,1d,-0.822,-0.42,1.94,1.12,1,1
-Ft2DavuS1ctcUV3cBJWB1BvD6v1zjjXMJD16VRBEpump,cat,1d,8.04,0.67,11.96,20,4,8
-CekE2jcGFDMGtYXhAikas1nfWeYuSP1FgHepuh1epump,$BORG,1d,-0.203,-0.07,2.9,2.7,1,1
-D57CP6MA7G5idNmxAuigU6W8uPeiGvDVuuwh4z2ypump,LOOM,1d,2.6,0.92,2.82,5.42,1,3
-AdGb7JCR4Lh6oiep2w7Z9AmosVM9y2Wgo5Ac5ZWVJxTV,unknown_AdGb,1d,-0.357,-1,1.91,1.56,1,1
-ETZDTrZp1tWSTPHf22cyUXiv5xGzXuBFEwJAsE8ypump,xcog,1d,31.67,1.77,17.89,49.55,5,17
-6piGvKMipsG6QEJeH3PCpZQb41eXukgA6T6SbMaLewjG,Milo,1d,0.221,-1,1.69,1.91,1,1
-Dd1K743wDuB71T3M4uKXc8a29VsZjnoofKVhTt9Apump,Miledy,1d,1.13,-1,1.95,3.07,1,2
-5ymzsgQjiaa4bXEPgrVTgNJJWyHUw3En3i9Jppb4pump,blake,1d,0.549,0.06,9.11,9.66,3,3
-2XZxicDfGH65vXJy4dYSq3F2hegfiqT8im6qMnSWpump,DARAM,1d,-1.37,-1,6.22,4.84,2,2
-Day6DgKkrb9xtuRkmMK17SB18kmRi3V6oGau8zu4pump,tacit,1d,-0.415,-0.21,1.93,1.52,1,1
-H33XaAyCkPejrG43tB2FnfBu4x6DEjcBZnW9ziFKpump,unknown_H33X,1d,-4.24,-0.88,4.8,0.558,2,1
-HEEKCNgaRA3voEY4tyWwuvd1ucXzVty5i9TBVzLcpump,SINNED,1d,2.84,-1,2.91,5.75,1,1
-5QTHofKRbWFbrt9xE1Npcz3oknWh7y2QDm2hA3eJpump,Greg,1d,1.27,-1,1.93,3.2,1,1
-EJMNLsLodt9ytfE5E8oKksdgnkDdU8gGYCKFpSUMpump,FUCKAI,1d,1.37,0.63,2.17,3.54,1,2
-Ec9g56F4hjPbC2wyPvngP4PgmgXcuLFivZzunXRypump,drklng,1d,5.04,1.04,4.84,9.88,2,4
-7mujzfQoK1ci7TEvYwZZznEZ6EXwQX9a2AwtGDExpump,Repligate,1d,-0.293,-0.1,2.89,2.6,1,1
-CvtcGD5QCPZEXeGN2D2wRLgDwEhgtbZThzE65wabpump,I-405,1d,0.691,-1,2.17,2.86,1,1
-81hNFKinCbcqq9gwGQ6Jhx3J7cemV5cUeeamonj1pump,iAmTheEdge,2d,-1.36,-0.7,1.94,0.576,1,1
-DpqGdwmxiu9vV9hZhTbNzozCpGpYjp3mTVFKFRdtpump,L-405,2d,7.32,1.08,6.77,14.08,3,5
-EEVTDF8vJr27gRwa83B2GfroPLfygjxiaDwjfMG9pump,i-405,2d,0.676,0.23,2.9,3.58,1,2
-HwyidtZCdYAW1EsihMwxFLtMJkVWn3EdJcBGXnM1pump,Decay,2d,1.75,0.9,1.93,3.68,1,1
-CJvntLDFY1bQCcc2Y8u5BwcqZJuHfcLs3cFnizp4pump,FERAL,2d,-0.031,-0.02,1.94,1.91,1,1
-9NxRqJWLKTvVaevx5eZne8QyRutVDohF1vAR4sywpump,Effective,2d,0.53,0.07,7.69,8.22,2,2
-FtT12uZ4z7wqQarYNMxtWRTKRsxHYhim8YSWas1qpump,LCAT,2d,0.148,-1,2.16,2.31,1,1
-9i8ZQ27mNWxjn4XUB8VphV44i1GPKjcKJzmydCL2pump,dum,2d,0.07,-1,1.93,2,1,1
-6GSRzmd1vrZ9jujUhE6TkkGVtNc435HGbWmtkr4ypump,unknown_6GSR,2d,0.315,-1,1.72,2.04,1,1
-4994XJ88RjBS5SKv7qSe4fM3qtPRYzqYBQLe4NRDpump,sma,2d,1.08,0.55,1.95,3.03,1,1
-3JXq16mWyo1uboEK9QCGcjjgCB3DXKWWcF1yySC7pump,$ANDY70B$,2d,-5.24,-0.54,9.63,4.39,2,1
-4QbcQEy4NaiGoxYK1j1g6iLyhEeW4ck2eejJiG2Apump,MAGE,2d,0.113,0.04,2.88,2.99,1,1
-CMUCfKRZeMvv2qkwwNDcub96PFHVYnpikYr8JzZLpump,BEYBLADE,2d,0.231,0.12,1.92,2.15,1,1
-5przkG1fkkGFbp2yj1Sjc99YrBqKwDTojCRcuosdpump,Metaspace,2d,0.163,0.09,1.92,2.08,1,1
-tSMsTnsrBXa3wccudDTJZZHp9pmk8N7WLsZBiNbpump,unknown_tSMs,2d,0.078,-1,2.15,2.23,1,1
-7R1WyjQD5LJEB2KQXyn6FwPtuSUNmCP9RomtZfTTpump,MAGE,2d,-0.125,-1,1.92,1.8,1,1
+tokenaddress,tokenname,last_active,profit_eth,profit_percent,buy_eth,sell_eth,30d_txns_buy,30d_txns_sell,is_warning