Skip to content

gslixiying/web3

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 

Repository files navigation

web3

web3 Web3 通常指的是与以太坊(Ethereum)等区块链网络进行交互的技术和工具集。使用 Web3,开发者可以编写智能合约、与去中心化应用(DApps)进行交互,以及执行各种其他区块链相关的操作。

在 Python 中,最常用的 Web3 库是 web3.py。以下是一个简单的介绍,展示如何使用 web3.py 与以太坊网络进行交互:

  1. 安装 web3.py 首先,你需要安装 web3.py。你可以使用 pip 来安装:

bash pip install web3 2. 连接到以太坊网络 你可以连接到以太坊的主网、测试网或其他任何兼容的区块链网络。以下是一个连接到 Infura 的以太坊主网的示例:

python from web3 import Web3

Infura 提供的以太坊主网节点 URL

infura_url = 'https://mainnet.infura.io/v3/YOUR_INFURA_PROJECT_ID'

初始化 Web3,连接到 Infura 节点

w3 = Web3(Web3.HTTPProvider(infura_url))

检查连接是否成功

print(w3.isConnected()) 请确保将 YOUR_INFURA_PROJECT_ID 替换为你在 Infura 上创建的项目 ID。

  1. 查询区块链信息 你可以使用 Web3 来查询区块链的各种信息,如区块高度、交易等。

python

获取最新的区块高度

block_number = w3.eth.blockNumber
print(f"Latest block number: {block_number}")

获取特定区块的信息

block = w3.eth.getBlock(block_number)
print(block) 4. 与智能合约交互 如果你有一个智能合约的 ABI(应用二进制接口)和地址,你可以使用 Web3 来与它进行交互。

python

假设你有一个智能合约的 ABI 和地址

contract_abi = [...] # ABI 的 JSON 格式
contract_address = '0x...' # 智能合约的地址

加载智能合约

MyContract = w3.eth.contract(abi=contract_abi, address=contract_address)

调用合约的函数(注意:这取决于你的合约具体实现了哪些函数)

result = MyContract.functions.myFunction().call()
print(result) 5. 发送交易 你还可以使用 Web3 来发送以太币或其他 ERC-20 代币的交易,以及部署和调用智能合约的函数。这通常涉及到创建一个交易对象,签名该交易(如果你有私钥的话),然后将其发送到网络。

请注意,发送交易通常需要支付一定的 gas 费用,这取决于交易的复杂性和当前网络的拥堵情况。确保你有一个以太坊钱包,并为其充值足够的以太币以支付 gas 费用。

以上只是 web3.py 的基本介绍。要深入了解其所有功能和用法,建议查阅官方文档和教程。

Releases

No releases published

Packages

No packages published