查询BSC钱包地址USDT余额
drake
Posted on November 30, 2024
import logging
import asyncio
from web3 import Web3
from web3.middleware import ExtraDataToPOAMiddleware
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s')
logger = logging.getLogger('Balance Search')
async def balance_search(wallet_address):
"""
查询地址余额
比如:wallet_address = '0xa2D097f902A128aDDA4261989778A6894E1C2468'
交互频率限制:10K/5min. https://docs.bnbchain.org/docs/rpc
"""
# https://bsc-dataseed3.binance.org/ https://bsc-dataseed.bnbchain.org https://bsc-dataseed.binance.org/
bsc_url = 'https://bsc-dataseed.bnbchain.org'
web3 = Web3(Web3.HTTPProvider(bsc_url))
web3.middleware_onion.inject(ExtraDataToPOAMiddleware, layer=0)
checksum_address = Web3.to_checksum_address(wallet_address)
# USDT contract address on BSC
usdt_contract_address = '0x55d398326f99059ff775485246999027b3197955'
# ABI for the balanceOf function
usdt_abi = [{"constant":True,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":False,"stateMutability":"view","type":"function"}]
usdt_contract_address_checksum = Web3.to_checksum_address(usdt_contract_address)
usdt_contract = web3.eth.contract(address=usdt_contract_address_checksum, abi=usdt_abi)
# Get the balance of the wallet address
balance = usdt_contract.functions.balanceOf(checksum_address).call()
# Convert the balance from wei to USDT
# <class 'decimal.Decimal'>
balance_usdt = web3.from_wei(balance, 'ether')
# Print the balance
logger.info(f"Wallet {wallet_address} balance: {balance_usdt} USDT")
return balance_usdt
💖 💪 🙅 🚩
drake
Posted on November 30, 2024
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.
Related
privacy Caught in the Crunch My Journey from Snacks to 2 Million Exposed Users Privacy
November 30, 2024