上次讲了如何创建钱包并加密/解密私钥,有了批量钱包之后查询余额肯定也是需要批量来处理的,今天就来分享一下简单实现批量查询余额的功能。
首先需要导入web3相关库
from web3 import Web3, HTTPProvider
然后定义一个读取钱包文件的方法
def read_file(path):
with open(path, 'r', encoding='utf-8') as f:
data = f.readlines()
return data
再定义一个查询余额的方法:
def check_balance(path,chain, type):
rpcs = {
"ETH": "https://cloudflare-eth.com",
"BSC": "https://bsc-dataseed1.binance.org:443",
"Polygon": "https://polygon.llamarpc.com"
}#内置常用的以太,BSC,马蹄链的RPC
if chain == 'ETH':
chain = rpcs['ETH']
elif chain == 'BSC':
chain = rpcs['BSC']
elif chain == 'Polygon':
chain = rpcs['Polygon']
else:
chain = chain
for i in read_file(path):
address = i.strip().split(',')[1]
web3 = Web3(HTTPProvider(chain))
balance = web3.fromWei(web3.eth.get_balance(address), "ether")
print(f"账户 {address} 在【{type}】链的{type}余额是: {balance} ")
最后main函数
if __name__ == '__main__':
path = r'/Users/richardyu/Documents/Wallets.csv'#修改为你的钱包文件地址(要带名称和后缀)
check_balance(path, 'ETH', 'ETH')#两个输入内容的类型分别是RPC和token类型
执行结果:
说明:
钱包文件沿用了上个文章里面保存的格式,即:序号,地址,私钥
如果查询的是ETH,BSC,Polygon三个链的资产,则第一个参数就输入ETH或者BSC或者Polygon,如果是其他比如Arbi链,则需要输入支持Arbi链的RPC;第二个参数则为Token名称,比如BNB,ETH,MATIC等
ETH链查询示例:
check_balance(path, 'ETH', 'ETH')
BSC链查询示例:
check_balance(path, 'BSC', 'BNB')
Arbi链查询示例:
check_balance(path, 'https://arb1.arbitrum.io/rpc', 'ARB')
RPC查询:
前往:Chainlist 点击添加到小狐狸钱包
小狐狸钱包页面显示的网络URL即为RPC
如果有其他问题可以通过公众号「python玩转」联系作者
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。