fabric学习笔记9
20201303张奕博 2023.1.20
Python Web3 与智能合约的交互
开发合约,或者开源合约,都会有一份该合约的ABI JSON文件
ABI文件包括了智能合约的输入与输出格式(其中name对应合约function的名字)
假如我们现在要对POAP合约交互,则需要一下
-
POAP合约地址:0x22C1f6050E56d2876009903609a2cC3fEf83B415
-
POAP合约主网的HTTPProvider
-
POAP合约的API:abi.json文件
from web3 import Web3
import web3
CONTRACT = '0x22C1f6050E56d2876009903609a2cC3fEf83B415' # 合约地址
HTTPProvider = "https://dai.poa.network" # 主网HttpProvider
打开abi json文件
with open('contracts/contract_abi.json', 'r') as contract_abi:
abi = json.load(contract_abi)
提供HTTPProvider,链上互动的接口
w3 = Web3(Web3.HTTPProvider(HTTPProvider))
检查HTTPProvider
print(w3.isConnected())
HttpProvider可使用情况下输出为【True】
继续
连接合约
contract = w3.eth.contract(address=CONTRACT, abi=abi)
使用合约功能
ACC = '0xAdA556CcC02cc968579FF5294D52DC0eBf5eE328' # 个人钱包地址我随便找的
balance = contract.functions.balanceOf(acc).call() # 查询个人钱包地址的余额
print(balance)
输出为【2】