使用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-12 15:06:430000中国发生了换头手术,最后结果怎么样?(医学发展)
人类的换头实验已经宣告失败现在生意最好的地方肯定是医院,要知道人类现在不管是有什么病,有什么灾,都要去医院看一看,这也是人们想要让自己长寿的一个表现,随着人类医学的逐渐进步,人类的手术也开始变得五花八门,有的手术可以直接改造人类,例如说飞秒手术就可以让近视眼变得好起来。还有就是心脏搭桥手术可以强行让心脏变得稍微健康一些,那么大家听说过换头手术吗?我要新鲜事2023-05-15 00:18:440001磁星vs脉冲星的区别是什么 磁星和脉冲星是什么样的存在
中子星是整个宇宙中非常恐怖的一种星体,中子星所爆发的能量足以毁灭整个地球,但是脉冲星和磁星同样是中子星的衍生物。这两种身体能够释放出巨大的能量,甚至这两种星体释放的能量比普通的中子星还要强大,严重时可以摧毁整个太阳系。一、磁星和脉冲星的区别是什么我要新鲜事2023-05-12 17:52:270001为啥现在白头发的年轻人越来越多 这是怎么造成的(年少白发)
年少白发和自身的生活习惯有关。你身边有这样的朋友吗?他才20出头,就有了我们常说的半头白发。在我们过去的认知中,白发一直是老年人的标准,但当白发出现在年轻人身上时,这不是一种趋势,而是一个令人苦恼的问题。那么原因是什么?头发变白应该不是问题,因为一盒染发剂很便宜,即使你去沙龙。遗传因素我要新鲜事2023-05-15 20:05:540001吴三桂后人今何在?只靠简单一招得以保存
导语:了解明末清初历史应该对吴三桂比较熟悉,不管是冲冠一怒为红颜还是三藩之乱,这些都让吴三桂变得特别起来。但是有一个问题,吴三桂死后,他的后人都是用什么样的办法存活下来的呢?探秘志小编带大家了解。吴三桂后人今何在我要新鲜事2023-05-08 15:17:210001