使用Python完成EVM链余额查询和交易发送
前面我们讲过了通过web3库创建钱包,其实web3库还有很多功能,今天就给大家讲一下使用web3库查询账号余额,以及发送交易。

准备工作
查询目前主要是主网的token,比如polygon上面的matic,bsc的bnb钱包需要有余额,可以使用测试链和测试币(比如,goerli测试网和goerliETH,本教程使用的是gitshock测试链和代币GTFX)
代码实现
1.导入依赖库
from web3 import Web3, HTTPProvider
from web3.gas_strategies.rpc import rpc_gas_price_strategy
2.创建web3连接
# 创建web3连接
def creatWeb3(rpc):
web3 = Web3(HTTPProvider(rpc))
# 查看区块高度
blockNumber = web3.eth.blockNumber
print("当前区块高度:", blockNumber)
return web3
3.查询余额
# 查看余额
def checkBlance(web3, addr, type):
blance = web3.fromWei(web3.eth.get_balance(addr), "ether")
print(f"账户 {addr} 的{type}余额是: {blance} ")
return blance
4.发送交易
def transerTo(web3, addrFrom, key, addrTo, num, type, chainId):
account_from = {
"private_key": key,
"address": addrFrom,
}
print(
f'准备从账户 {addrFrom} 转账{num}个{type} 到账户{addrTo}'
)
# 查询当前价格
print("查询当前gas是:", web3.eth.generate_gas_price())
# 设置gas价格
web3.eth.set_gas_price_strategy(rpc_gas_price_strategy)
# 创建交易签名
tx_create = web3.eth.account.sign_transaction(
{
"nonce": web3.eth.get_transaction_count(addrFrom),
"gasPrice": web3.eth.generate_gas_price(),
"gas": 21000,
"to": addrTo,
"chainId": chainId,
"value": web3.toWei(num, "ether"), # 转账数量
},
key,
)
# 发送和等待
tx_hash = web3.eth.send_raw_transaction(tx_create.rawTransaction)
tx_receipt = web3.eth.wait_for_transaction_receipt(tx_hash)
print(f"交易成功!hash: {tx_receipt.transactionHash.hex()}")
5.调用
if __name__ == '__main__':
address_from = "0xf0f9c45fd3b733d274448a161A2942B12F606420" #发款地址
address_to = "0xe0252BC89C76Bdc4c9d09f96F10901DED7E542ef" #收款地址
rpc = "https://rpc-testnet.gitshock.com/cartenz" #RPC
key = 'xxx' #钱包私钥
num = '1' #转账数量
type = 'GTFX' #代币符号
chainId = 212 #链ID
web3 = creatWeb3(rpc)
# 查看转账前余额
print('转账前余额~~~~')
checkBlance(web3,address_from,type)
checkBlance(web3, address_to,type)
# #发送交易
transerTo(web3, address_from, key, address_to, num,type,chainId)
# 查看转账后余额
print('转账后余额~~~~')
checkBlance(web3, address_from, type)
checkBlance(web3, address_to, type)
执行结果:

交易查看:
0xe4eb6a32e5bfd7f1589e222558a07188f007768be107642b30d0f7b1baf3ad92
非常不凑巧,gitshock项目的测试网浏览器(https://scan.gitshock.com/)挂掉了,没有上截图。
以上就是使用web3库,完成了余额查询和发送交易操作,还有其他功能比如签名等等,后面还将给大家带来合约交互的教程
如果有其他问题可以通过公众号「python玩转」联系作者
世界上最坚固的材质 石墨烯凭啥能成材料之王(坚固材料)
石墨烯的硬度高是因为密度比较高。地球上已知最坚固的材料是啥?当然是石墨烯,这是未来各个行业的材料之王。那石墨烯是啥东西?石墨烯其实跟碳和钻石是一样的,都是碳原子的同素异形体,碳原子它的排列方式不同,其实莫西可以认为就是石墨,入门常见的那个铅笔,这种碳材料非常的柔软,可以输血。碳原子组成我要新鲜事2023-05-16 00:13:170000窑洞为什么冬暖夏凉 (墙壁厚而坚硬很不容易传热)
窑洞,这是中国西北黄土高原上古老的居住形式,千百年来一直被人们所采用。有趣的是,窑洞不仅在冬天能提供温暖,夏天还能保持凉爽。这种神奇的温控效果引发了人们的好奇心,它能在四季保持如此宜人的温度,是因为屋顶厚、墙壁坚硬、圆拱形的设计。一、窑洞为什么冬暖夏凉1.厚厚的屋顶我要新鲜事2024-01-15 20:42:320000小寨天坑的形成原因揭秘 小寨天坑是怎么形成的
解答:小寨天坑极有可能是因为地下水的不断冲刷之下,形成巨大空洞,最终不堪重负下陷形成巨大的凹陷,这是一种特别的喀斯特漏斗地貌。小寨天坑是什么天坑实际上就是喀斯特漏斗地貌的特别称呼,同时也可以更好解释地球第四纪演变历史。而位于重庆市奉节县境内的小寨天坑更是世界上最大的天坑,所以一直以来都广受关注。我要新鲜事2023-05-10 13:36:340000bg之光什么意思 bg之光具体含义是什么
所谓的bg之光,其实指的是一些演员和异性搭配CP,给人感觉是没有违和感的,也让人感觉相当甜蜜。总结起来,bg之光就是指的是,这一类在男女爱情剧当中,和异性演员有着强烈cp感的人。Bg之光是什么意思Bg之光不是所有演员都可以这样称呼的,一些演员和演绎对手戏的演员没有什么cp感,甚至于就不像是恋人,就不能说是cp之光了,这一类可以说是有些失败的。可以称得上是cp之光的,一遍是和对手演员有着比我要新鲜事2023-05-13 07:48:430000天王星自转周期是多少天,15.6小时(公转周期30685日)
大家都知道,在太阳系的八大行星中,不仅地球会自转、公转,其它的行星也会。自冥王星降级后,天王星、海王星的关注度逐渐提高,接下来通过解答天王星自转周期是多少天,我们一起去了解一下天王星。天王星自转周期是多少天我要新鲜事2023-05-11 11:40:120000