自定义Solidity合约实现:PetToken与ERC721详解
版权申诉
5星 · 超过95%的资源 61 浏览量
更新于2024-09-13
1
收藏 55KB PDF 举报
本篇文章是关于使用Solidity语言从头编写一个简单的智能合约的教程,以实现一个名为"PetToken"的代币。该合约是在以太坊区块链上运行的,并基于两个外部库:`PetFactory.sol` 和 `ECR712.sol`。作者在GitHub仓库`https://github.com/wangjinxin613/HelloPet`中分享了代码。
标题"从头写一个solidity智能合约(三)代码实现"聚焦于以下几个关键知识点:
1. **智能合约类型与继承**:
- 合约`PetToken`继承自`PetFactory`和`ERC721`这两个合约,表明它不仅具备宠物工厂的功能,还遵循了ERC721标准,即非同质化代币(NFT)的标准。
2. **合约变量和常量**:
- `name` 和 `symbol` 分别定义了代币的名称和符号,这里为"Pet Token"和"PET"。
- `decimals` 是一个公共变量,设为0,表示PET币是不进行分割的,小数点后无位。
- `allowed` 和 `petApprovals` 是映射类型,分别用于存储地址间的转账权限和预授权转账地址信息。
3. **函数声明**:
- `balanceOf` 函数是一个公共视图函数,用于查询指定地址的余额。
- `ownerOf` 函数也是公共视图函数,返回给定tokenId对应的拥有者地址。
- 私有函数 `_transfer` 负责实际的转账操作,它更新余额并记录转移详情。
- `transfer` 函数是公开的,但只能由代币的所有者调用,确保了转账操作的权限控制。
4. **ECR712兼容性**:
- 文档提到合约需要遵守ECR712协议,这可能意味着它包含了与ERC712相关的验证逻辑,用于安全地执行智能合约中的签名和身份验证功能。
通过阅读这段代码,读者可以了解到如何在Solidity中设计一个基础的NFT代币合约,以及涉及的一些基本操作如余额查询、转账和权限管理。这个教程对于初学者理解智能合约编程和ERC721协议的实践应用非常有帮助。
2021-01-27 上传
2021-02-05 上传
2021-01-07 上传
2021-01-08 上传
点击了解资源详情
2021-05-10 上传
2021-02-05 上传
2021-02-05 上传
2021-02-05 上传
weixin_38502510
- 粉丝: 9
- 资源: 921
最新资源
- Chrome ESLint扩展:实时运行ESLint于网页脚本
- 基于 Webhook 的 redux 预处理器实现教程
- 探索国际CMS内容管理系统v1.1的新功能与应用
- 在Heroku上快速部署Directus平台的指南
- Folks Who Code官网:打造安全友好的开源环境
- React测试专用:上下文提供者组件实现指南
- RabbitMQ利用eLevelDB后端实现高效消息索引
- JavaScript双向对象引用的极简实现教程
- Bazel 0.18.1版本发布,Windows平台构建工具优化
- electron-notification-desktop:电子应用桌面通知解决方案
- 天津理工操作系统实验报告:进程与存储器管理
- 掌握webpack动态热模块替换的实现技巧
- 恶意软件ep_kaput: Etherpad插件系统破坏者
- Java实现Opus音频解码器jopus库的应用与介绍
- QString库:C语言中的高效动态字符串处理
- 微信小程序图像识别与AI功能实现源码