使用Python完成EVM链余额查询和交易发送-世界快播

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

准备工作

查询目前主要是主网的token,比如polygon上面的matic,bsc的bnb钱包需要有余额,可以使用测试链和测试币(比如,goerli测试网和goerliETH,本教程使用的是gitshock测试链和代币GTFX)

代码实现


(资料图)

1.导入依赖库

from web3 import Web3, HTTPProviderfrom 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玩转」联系作者

标签:

x 广告
使用Python完成EVM链余额查询和交易发送-世界快播

前面我们讲过了通过web3库创建钱包,其实web3库还有很多功能,今天就给大家讲一下使用web3库查询账号余额,

全球速递!金风科技拟在境内外发行债券及资产支持证券

金风科技(02208)公布,为满足新疆金风科技股份有限公司及其附属公司经营发展需要,公司董事会已批准在境内

今日观点!高阳台·鹊语偷传_关于高阳台·鹊语偷传简述

小伙伴们,你们好,今天小夏来聊聊一篇关于高阳台·鹊语偷传,关于高阳台·鹊语偷传简述的文章,网友们对这

2023鼎捷软件生态伙伴大会成功举办 携手共享万亿市场

4月24日,“2023鼎捷软件生态伙伴大会”在苏州拉开帷幕。本次大会以“鼎聚生态力量捷创数智未来”为主题,

崩坏星穹铁道素裳怎么配队

崩坏星穹铁道素裳怎么配队?素裳是崩坏星穹铁道里的四星输出角色,角色拥有非常好的对单输出能力,搭配好队

高水平物业管理,物业的最高水平是什么 全球即时看

那么物业费的收费标准是怎么规定的呢?物业费是物业产权人、使用人委托物业管理单位对小区内的房屋建筑及其

袁久红还是不够聪明,多说这么一句话,他的饭碗也不会丢_今亮点

袁久红还是不够聪明,多说这么一句话,他的饭碗也不会丢,小三,袁久红

德生科技拟发不超4.2亿可转债 拟10转4派1元去年募2亿

德生科技拟发不超4 2亿可转债拟10转4派1元去年募2亿---昨晚,德生科技披露《向不特定对象发行可转换公司债

屏幕时代,如何重塑孩子的自控力?

《屏幕时代,重塑孩子的自控力》——这是一个有些容易引起误解的中文标题:读者们容易将其视为一本单纯的家

诺泰生物: 诺泰生物:关于向不特定对象发行可转换公司债券的审核问询函回复及募集说明书等申请文件更新的提示性公告

诺泰生物:诺泰生物:关于向不特定对象发行可转换公司债券的审核问询函回复及募集说明书等申请文件更新的提

x 广告

Copyright ©  2015-2022 每日城市网版权所有  备案号:浙ICP备2022016517号-15   联系邮箱:5 146 761 13 @qq.com