使用web3.py 查看eth余额、转账、获取block、获取transaction

首先安装 web3 API

pip install web3


正文开始

导入module

from web3 import Web3, HTTPProvider

首先获取web3实例,这里使用HTTP方式连接自己的私链

node_url = 'http://127.0.0.1:8545'

web3_client = Web3(HTTPProvider(node_url))

准备工作完成,接下来进行具体操作

1.getTransaction()

trade_hash = '0x........'    #你的txid

web3_client.eth.getTransaction(trade_hash)

2.getBlock()

blockNumber = 10    #你的blockNumber

web3_client.eth.getBlock(blockNumber)

3.查看账户余额 getBalance()

注意:和下一步一样,这个方法中要用到地址。而web3.py 中所有用到地址的地方,不能直接传入地址,需要用toChecksumAddress()转一下

address = '0x....................'    #你的eth地址

checksum_address = Web3.toChecksumAddress(address)

balance = web3_client.eth.getBalance(checksum_address)

4.在两个地址之间发起转账 sendTransaction()

转账是需要用到from_address的私钥的,在转账以前,需要unlockAccount(), 我们这里用 personal.sendTransaction(),理由是,在sendTransaction方法调用时,from账户并未在节点中全局解锁 (仅在该调用内解锁),更加安全,也因为这个原因,from账户不能用于其他RPC调用。

同样的,这个方法里的from_address 和 to_address 也要用上面的 toChecksumAddress() 转一下

from_address = '0x................'    #你的 from_address

to_address='0x.................'    #你的 to_address

private_secret = '0x............'    # from_address 的私钥,在 python 脚本中使用 web3 转账时,这里有泄露密钥的危险,在生产环境中注意配置抽离

import math

value = 0.123 * math.pow(10,18)    #单位是 wei, 1 ETH = 10^18 wei

web3_client.geth.personal.sendTransaction({

                "from":Web3.toChecksumAddress(from_address),

                "to":Web3.toChecksumAddress(to_address),

                "value":int(value)

                },private_secret)

你可能感兴趣的:(使用web3.py 查看eth余额、转账、获取block、获取transaction)