零基础用python开发区块链(三web3.py)

简介

web3.py 是一个 Python 库,用于与以太坊区块链进行交互。它支持以太坊的各种功能,例如查询区块、发送交易、调用智能合约、与钱包交互等。web3.py 是基于 JavaScript 库 web3.js 的 Python 版本,广泛应用于构建以太坊 DApps 和与区块链交互的脚本。

核心功能

  • 账户管理:生成钱包、管理账户、签名消息和交易。
  • 交易:发送和签署交易,查询交易状态。
  • 智能合约:部署、调用合约,监听合约事件。
  • 区块链数据:查询区块、交易、账户余额等数据。

安装 web3.py

首先,确保你已经安装了 Python 和 pip。然后安装 web3.py

pip install web3

连接到以太坊网络

web3.py 允许你连接到各种以太坊节点(如本地节点、Infura 或 Alchemy 提供的远程节点)。以下是如何连接到 Infura 节点的示例。

from web3 import Web3

# 使用 Infura 的 URL 连接到以太坊网络
infura_url = 'https://mainnet.infura.io/v3/YOUR_INFURA_PROJECT_ID'
w3 = Web3(Web3.HTTPProvider(infura_url))

# 检查是否连接成功
if w3.isConnected():
    print("Connected to Ethereum network")
else:
    print("Failed to connect")

在这里,将 YOUR_INFURA_PROJECT_ID 替换为你从 Infura 获取的项目 ID。

1. 查询账户余额

使用 web3.py 可以轻松查询以太坊地址的余额。

address = '0xYourEthereumAddress'
balance = w3.eth.get_balance(address)
# 以太坊的最小单位是 Wei,转换为 Ether
ether_balance = w3.fromWei(balance, 'ether')
print(f"Account balance: {ether_balance} ETH")

2. 发送 ETH 转账

以下是如何通过 web3.py 从一个账户向另一个账户转账 ETH 的示例。你需要提供私钥、发送方和接收方地址。

from web3 import Web3

# 连接到 Infura 节点
infura_url = 'https://mainnet.infura.io/v3/YOUR_INFURA_PROJECT_ID'
w3 = Web3(Web3.HTTPProvider(infura_url))

# 设置发送者地址和私钥
from_address = '0xYourFromAddress'
private_key = 'YourPrivateKey'
to_address = '0xRecipientAddress'

# 获取发送者地址的 nonce
nonce = w3.eth.getTransactionCount(from_address)

# 构建交易
tx = {
    'nonce': nonce,
    'to': to_add
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值