使用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玩转」联系作者
速度最快星体 飞行50光年 尾巴长13光年(特殊星体)
科学家发现了一颗速度极快的脉冲星,它或许是尾巴最长的天体。科学家对宇宙中天体的研究,发现一些天体的速度是非常快的,他们认为最快的是一颗名为PSRJ00026216的中子星。中子星的形成我要新鲜事2023-05-16 12:21:080000火星自转周期是多少天,24小时37分22.6秒(与地球相似)
我们都知道,八大行星在围绕太阳转动的同时也是自转,而在这些行星中,火星距离地球最近(约1.05亿公里),而且它们同属岩石行星,所以很多人好奇:火星自转周期是多少天?接下来就由小编为大家解惑。火星自转周期是多少天,1天多点我要新鲜事2023-05-11 11:30:090001宇宙有多大:宇宙没有尽头(宇宙为无限大)
关于浩瀚而且又多谜团的宇宙,其大小可以说是无限大。在整个宇宙基本上宽阔无比,没有尽头,可以说是无边无尽人类观测到的范围仅存在930多亿光年,也就是说,在宇宙之外,是否仍存在有其他的东西,对此仍然是未解之谜。宇宙中也包含着许多行星和卫星,甚至还有一些漂浮而过的星云尘埃。宇宙浩渺无限之大,谜团自然也无限之多。一、宇宙为什么永远都是黑的我要新鲜事2023-05-13 10:10:150000宇宙多种超光速现象 光速和它比 蜗牛一样慢(宇宙速度)
科学家认为宇宙中存在超光速现象,光速看起来像蜗牛一样慢。目前认为光速是宇宙中最快的速度,没想到宇宙中的超光速现象,让光速在它的面前不值一提。宇宙膨胀我要新鲜事2023-03-21 14:00:390000未来十年可能是最热的十年,科学家为什么会这么说?(气温升高)
人类需要在十年之内改地球的环境相信大家在平时听到关于全球变暖的消息的时候,应该都是已经有了一些眉目,毕竟这两年我们所经历过的太阳已经很热了,北方地区可能还稍微好一点,一旦到了南方地区还有一些热带区域的时候,炎热就会被无限的放大。并且科学家认为这还并不是气温的最高点,在未来十年的时间里可能会越来越热。地球上最热的十年我要新鲜事2023-05-15 12:35:440000