NFT合约解析(4)——Counters.sol

  • 一丶配置需求:
    • 1.环境需求:WeBASE-Front
    • 2.合约语言:Solidity >=0.6.0 <0.8.0
  • 二丶Counters.sol
  • 三丶解析合约
  • 四丶上一篇:NFT合约解析(3)——SafeMath.sol
  • 五丶下一篇:未完待续
  • 六丶参考相关文章

一丶配置需求:

1.环境需求:WeBASE-Front

2.合约语言:Solidity >=0.6.0 <0.8.0

二丶Counters.sol


pragma solidity >=0.6.0 <0.8.0;import "./SafeMath.sol";library Counters {using SafeMath for uint256;struct Counter {uint256 _value; }function current(Counter storage counter) internal view returns (uint256) {return counter._value;}function increment(Counter storage counter) internal {counter._value += 1;}function decrement(Counter storage counter) internal {counter._value = counter._value.sub(1);}
}

三丶解析合约

pragma solidity >=0.6.0 <0.8.0;    //1
import "./SafeMath.sol";       //2
library Counters {               //3using SafeMath for uint256;  //4struct Counter {             //5uint256 _value;          //6}                            //7
  • 第1行:申明版本
  • 第2行:导入SafeMath.sol合约
  • 第3行:创建库合约Counters
  • 第4行:将SafeMath的所有库函数引用到Counters库合约的uint256类型
  • 第5-7行:创建Counter结构体,申明一个uint256类型的状态变量_value
    function current(Counter storage counter) internal view returns (uint256) { //1return counter._value;                                                    //2}                                                                            //3function increment(Counter storage counter) internal {                       //4counter._value += 1;                                                   //5}                                                                            //6function decrement(Counter storage counter) internal {                       //7counter._value = counter._value.sub(1);                                 //8}                                                                            //9
  • 第1行:创建方法:current;参数:storage类型的结构体counter;internal:内置函数,view:不改变状态变量;returns (uint256): 返回值类型:uint256
  • 第2-3行:返回counter._value值
  • 第4行:创建方法:increment;参数:storage类型的结构体counter;internal:内置函数
  • 第5-6行:counter._value的值加1
  • 第7行:创建方法decrement;参数:storage类型的结构体counter;internal:内置函数
  • 第8-9行:counter._value.sub(1):调用SafeMath的sub函数,counter._value作第一参数,1作第二参数;其结果当前counter._value接受

四丶上一篇:NFT合约解析(3)——SafeMath.sol

NFT合约解析(3)——SafeMath.sol

五丶下一篇:未完待续

六丶参考相关文章

solidity笔记(1)——第一篇
solidity笔记(2)——第二篇
solidity笔记(3)——abstract用法
solidity笔记(4)——冻结和交易属性
solidity笔记(5)——event用法
solidity笔记(6)——modifier用法
solidity笔记(7)——存储区域memory storage stack
solidity笔记(8)——pure用法
solidity笔记(9)——library用法
solidity笔记(10)——using for用法
solidity笔记(11)——struct用法

NFT合约解析(4)——Counters.sol——2021.5.19相关推荐

  1. NFT合约解析(3)——SafeMath.sol——2021.5.17

    NFT合约解析(3)--SafeMath.sol 一丶配置需求: 1.环境需求:WeBASE-Front 2.合约语言:Solidity >=0.6.0 <0.8.0 二丶SafeMath ...

  2. NFT合约解析(2)——Ownable.sol——2021.5.10

    NFT合约解析(2)--Ownable.sol 一丶配置需求: 1.环境需求:WeBASE-Front 2.合约语言:Solidity 0.6.10 二丶Ownable.sol合约 三丶解析合约 (1 ...

  3. 以太坊加密猫Crypto Kitty合约解析

    以太坊加密猫Crypto Kitty合约源码深度解析 1. 加密猫核心合约概述 Crypto Kitty 核心业务合约总共有四个:KittyAdmin.KittyContract.KittyFacto ...

  4. NFT合约分析:ERC721A

    概述 读者可前往我的博客获得更好的阅读体验. 本文主要介绍标准NFT实现的一个变体,即ERC721A合约实现的相关细节.ERC721A是由著名NFT系列Azuki提出,该系列NFT是著名的蓝筹NFT. ...

  5. NFT合约 从入门到精通

    在<区块链杀手级应用落地畅想(上)>中我们提到,2021年被称为NFT"元年".在短时间内,NFT已不再局限于加密世界的投机价值,其释放的潜力吸引了越来越多的国际品牌, ...

  6. ERC721:全生命周期精析,妈妈再也不用担心我不会玩NFT合约啦

    ERC721:全生命周期精析,妈妈再也不用担心我不会玩NFT合约啦 由于篇幅有限,本博客将围绕ERC721核心展开介绍,文章内容尽量做到通俗易懂,但其中不可避免地可能涉及一些新手不友好的概念,您可以查 ...

  7. 2021年1-9月墨天轮最受欢迎的20篇技术文章

    自墨天轮社区成立以来,众多的的数据库相关从业者们在此相聚,大家技术专业.热爱分享.乐于交流,将自己日常的工作经验.技术雷区.学习笔记分享于此. 这些来自数据库系统架构.中间件.性能优化.交付等等不同岗 ...

  8. 2021.3.19两场面试总结

    2021.3.19两场面试总结 第一场:10:30 java实习生 第二场 14:00 java实习生 第一场:10:30 java实习生 ①简单的自己介绍 ②根据所做项目提问语言.框架.前端.后端等 ...

  9. 职教平台粉笔科技递交港股IPO招股书:2021年1-9月营收26.3亿

    2月28日晚间消息,职业教育平台粉笔科技向香港联交所递交IPO招股书,正式启动上市计划,中金.花旗.美银证券为联席保荐人. 招股书显示,粉笔科技主营业务为成人职业教育服务,在线培训.线下培训以及教材. ...

最新文章

  1. 4-1 图像特效介绍
  2. Java 中一个中文所占字节
  3. 控制台发送get命令_.NET Core使用命令行参数库构建控制台应用程序
  4. mysql中主从复制配置文件_MySQL主从复制 配置文件实例
  5. websocket 业务提醒 .net_7年.NET 面试 Java 的尴尬历程
  6. 面试经常被问到这 4 大开源框架,必须得好好研究一下了!
  7. 将自己的dcm数据制作成LUNA16数据集提供数据样式之代码整理
  8. fastadmin出现token验证错误!_gitee 拥有3.7k星星的极速后台框架—FastAdmin了解一下...
  9. NLP︱高级词向量表达(二)——FastText(简述、学习笔记)
  10. 比较 Cache 和虚拟存储器,说明它们的相似点和不同。
  11. 程序员必须要熟知的英文单词--更新中
  12. 85-94年河南农村娃们的童年记忆,追忆童年旧时光
  13. 蓝牙音箱延迟测试软件,首发漫步者Lolli Pods使用感受及延迟测试
  14. 深度清理C盘之非常有用
  15. java的无极分类,ThinkPHP菜单无极分类实例讲解
  16. 1024分论坛:人工智能创新应用的优化实践和多产业落地
  17. Vue-组件嵌套之——父组件向子组件传值
  18. linux系统32和64的区别,32位和64位的Linux系统区别
  19. 数字集成电路设计系列学习总结
  20. 零基础超简单的Docker入门教程 So Easy

热门文章

  1. 快排的优化(简直神乎其神了!!!)
  2. 高级服务框架(黑马)
  3. MyBatis HelloWorld
  4. php查询信息 wordpress插件,请求PHP大神协助修改一个WordPress插件
  5. 大数据初级笔记一:大数据入门介绍
  6. Casual Leave of Absence
  7. 西部数据移动硬盘My Passport Ultra 不支持在mac写入操作
  8. Android自定义相机不存储照片,转换成Bitmap上传
  9. 【SolidWorks相关】无法装入SolidWorks.DLL文件:GdtAnalysisSupport.dll 及 提示方程式语法格式不正确
  10. 17. Letter Combinations of a Phone Number (Medium)——电话号码的字母组合