IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 区块链 -> Python Web3 智能合约(Smart Contract)交互(例子与POAP合约交互) -> 正文阅读

[区块链]Python Web3 智能合约(Smart Contract)交互(例子与POAP合约交互)

环境Python3.8

封装包依赖

pip install --upgrade pip
pip install web3

智能合约(Smart Contract)

智能合约(Solidity代码)是Web3建设的基础,是搭建去中心化生态的奠基。智能合约允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。

contract ERC721 {
    function balanceOf(address _owner) external view returns (uint256);
    function ownerOf(uint256 _tokenId) external view returns (address);
    function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes data) external payable;
    function safeTransferFrom(address _from, address _to, uint256 _tokenId) external payable;
    function transferFrom(address _from, address _to, uint256 _tokenId) external payable;
    function approve(address _approved, uint256 _tokenId) external payable;
    function setApprovalForAll(address _operator, bool _approved) external;
    function getApproved(uint256 _tokenId) external view returns (address);
    function isApprovedForAll(address _owner, address _operator) external view returns (bool);
    function supportsInterface(bytes4 interfaceID) external view returns (bool);
    event Transfer(address indexed _from, address indexed _to, uint256 _tokenId);
    event Approval(address indexed _owner, address indexed _approved, uint256 _tokenId);
    event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved);
}

Python Web3 与智能合约的交互

开发合约,或者开源合约,都会有一份该合约的ABI JSON文件

ABI文件包括了智能合约的输入与输出格式(其中name对应合约function的名字)

假如我们现在要对POAP合约交互,则需要一下
1. POAP合约地址:0x22C1f6050E56d2876009903609a2cC3fEf83B415

2. POAP合约主网的HTTPProvider:?https://dai.poa.network (HTTPProvider是链上交互的接口)

3. 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】

  区块链 最新文章
盘点具备盈利潜力的几大加密板块,以及潜在
阅读笔记|让区块空间成为商品,打造Web3云
区块链1.0-比特币的数据结构
Team Finance被黑分析|黑客自建Token“瞒天
区块链≠绿色?波卡或成 Web3“生态环保”标
期货从入门到高深之手动交易系列D1课
以太坊基础---区块验证
进入以太坊合并的五个数字
经典同态加密算法Paillier解读 - 原理、实现
IPFS/Filecoin学习知识科普(四)
上一篇文章      下一篇文章      查看所有文章
加:2022-01-08 14:03:06  更:2022-01-08 14:04:13 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 0:34:45-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码