上次讲了如何创建钱包并加密/解密私钥,有了批量钱包之后查询余额肯定也是需要批量来处理的,今天就来分享一下简单实现批量查询余额的功能。
首先需要导入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玩转」联系作者