2001_getbalance_usdc.py 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. import requests
  2. from base_class import BaseVariableFunction
  3. from base_class import *
  4. baseclass = BaseVariableFunction(__file__)
  5. old_print = print
  6. def timestamped_print(*args, **kwargs):
  7. old_print(datetime.datetime.utcnow().replace(
  8. microsecond=0), *args, **kwargs)
  9. print = timestamped_print
  10. print('\n'*5)
  11. print(f"{'{:<6}'.format('ENTER')} {baseclass.scriptfilename} ----------------NOTE-----------NOTE---------------")
  12. url = "https://solana-mainnet.g.alchemy.com/v2/WLI0ohbUlvbsJVmoIvB1wTSwUA8qP5qS"
  13. getBalance_payload = {
  14. "id": 1,
  15. "jsonrpc": "2.0",
  16. "method": "getBalance",
  17. "params": []
  18. }
  19. headers = {
  20. "accept": "application/json",
  21. "content-type": "application/json"
  22. }
  23. getTokenAccountsByOwner_USDC_payload = {
  24. "id": 1,
  25. "jsonrpc": "2.0",
  26. "method": "getTokenAccountsByOwner",
  27. "params": ["" ,
  28. { "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v" },
  29. { "encoding": "jsonParsed" }
  30. ]
  31. }
  32. getTokenAccountsByOwner_USDT_payload = {
  33. "id": 1,
  34. "jsonrpc": "2.0",
  35. "method": "getTokenAccountsByOwner",
  36. "params": ["" ,
  37. { "mint": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB" },
  38. { "encoding": "jsonParsed" }
  39. ]
  40. }
  41. df = pd.read_excel( baseclass.dalao_merge_defined_path / f"ori_merge_defined.xlsx", dtype=object)
  42. df= df.astype({
  43. "eth":float,
  44. "usdc":float,
  45. "usdt":float,
  46. })
  47. df = df.drop_duplicates(subset=["dalaoaddress"])
  48. df =df.reset_index(drop=True)
  49. df_not_getbalance =df[ (df["eth"]<0.5) & ( df["usdc"]==-1 ) ]
  50. arr_str_dalaoaddress = df_not_getbalance['dalaoaddress'].tolist()
  51. for idx , str_dalaoaddress in enumerate(arr_str_dalaoaddress):
  52. print(f"str_dalaoaddress= {str_dalaoaddress}")
  53. getTokenAccountsByOwner_USDC_payload["params"][0] =str_dalaoaddress
  54. response = requests.post(url, json=getTokenAccountsByOwner_USDC_payload, headers=headers)
  55. if response.status_code != 200:
  56. continue
  57. response_data = response.json()
  58. # print(response_data)
  59. usdc_value = -1
  60. if len(response_data["result"]["value"])==0:
  61. usdc_value = 0
  62. elif len(response_data["result"]["value"])==1:
  63. usdc_value = response_data["result"]["value"][0]["account"]["data"]["parsed"]["info"]["tokenAmount"]["uiAmount"]
  64. elif len(response_data["result"]["value"])>1:
  65. usdc_value = -1
  66. df.loc[ df["dalaoaddress"] ==str_dalaoaddress , "usdc"] = usdc_value
  67. print(f"str_dalaoaddress= {str_dalaoaddress} usdc_value= {usdc_value}")
  68. if idx%5==0:
  69. df.to_excel( baseclass.dalao_merge_defined_path / f"ori_merge_defined.xlsx", index=False)
  70. df.to_excel( baseclass.dalao_merge_defined_path / f"ori_merge_defined.xlsx", index=False)
  71. df_not_getbalance = df[(df["eth"]<0.5)& ( df["usdc"] <100 )&(df["usdt"] ==-1 ) ]
  72. arr_str_dalaoaddress = df_not_getbalance['dalaoaddress'].tolist()
  73. print(f"arr_str_dalaoaddress_len= {len(arr_str_dalaoaddress)}")
  74. for idx , str_dalaoaddress in enumerate(arr_str_dalaoaddress):
  75. print(f"str_dalaoaddress= {str_dalaoaddress}")
  76. getTokenAccountsByOwner_USDT_payload["params"][0] =str_dalaoaddress
  77. response = requests.post(url, json=getTokenAccountsByOwner_USDT_payload, headers=headers)
  78. if response.status_code != 200:
  79. continue
  80. response_data = response.json()
  81. usdt_value = -1
  82. if len(response_data["result"]["value"])==0:
  83. usdt_value = 0
  84. elif len(response_data["result"]["value"])==1:
  85. usdt_value = response_data["result"]["value"][0]["account"]["data"]["parsed"]["info"]["tokenAmount"]["uiAmount"]
  86. elif len(response_data["result"]["value"])>1:
  87. usdt_value = -1
  88. df.loc[ df["dalaoaddress"] ==str_dalaoaddress , "usdt"] = usdt_value
  89. print(f"str_dalaoaddress= {str_dalaoaddress} usdt_value={usdt_value}")
  90. if idx%5==0:
  91. df.to_excel( baseclass.dalao_merge_defined_path / f"ori_merge_defined.xlsx", index=False)
  92. df.to_excel( baseclass.dalao_merge_defined_path / f"ori_merge_defined.xlsx", index=False)