在我们做去中心化应用开发时,其中有两个头疼的问题,一是想要获取去中心化的一些数据,如代币价格等,还有一个就是安全的创建随机数,这篇文章带大家了解一下这两块的实际应用。
Pausable库实现了功能函数紧急关停机制,可以继承该合约并使管理员账户来调控合约的开关。合约内有两个修饰器whenNotPaused和whenPaused,可以根据业务需求将其修饰在对应的函数上来进行开放或关停状态下的访问限制。
whenNotPaused
whenPaused
本文详细介绍了在Solidity智能合约中常见的安全漏洞,包括重入攻击、计算错误、预言机失败/操控、弱访问控制和前置运行攻击。同时提供了一些解决方案和预防措施,帮助开发者提升智能合约的安全性。
ERC20Permit库是ERC20的拓展。本库通过permit方法允许调用者携带owner的链下签名来进行token的授权。这样,ERC20 token的owner不再需要自己调用approve方法进行授权,进而实现了owner的EOA账户无eth也可完成授权操作。
这篇文章主要讲一下用hardhat框架开发好了一个solidity智能合约后,如何部署到以太坊(ETH)网络上,我会以以太坊测试网(Sepolia)来部署,和以太坊主网操作完全一样,其中会包含测试网ETH币领取,以一个ERC20代币的智能合约为例部署上线,以及上线后智能合约的验证。
Solidity 面试问题汇总
ERC20Capped库是ERC20的拓展。该库设置了ERC20发行量的上限。
从零搭建仿Kickstarter的众筹Dapp
本文探讨了在以太坊区块链上编写高效、节省Gas(gas)费用的智能合约的技巧,主要介绍了如何通过使用汇编代码来优化gas使用,包括在哈希和数学运算中使用汇编实现,以及相关的代码示例和gas使用对比。
ERC20Burnable库是ERC20的拓展。该库允许用户销毁自己和给自己授权的人名下的token。
这篇文章介绍了如何在审计过程中使用Foundry,一个用于智能合约开发的工具链,包括安装步骤和项目创建等内容。文章中详细讨论了Fuzz Testing和Invariant Testing等测试方法,并提供了实践建议。
Openzeppelin中的ERC20库只提供了mint接口,而具体的发行逻辑需要开发者在其子合约中使用_mint()自行编写。该库同样遵循了OpenZeppelin的合约设计思路:当函数因产生错误返回false时,直接revert掉。这种设计思路与ERC20的期望标准并不冲突。
_mint()
文章从比较全面介绍各种优化gas 的方法,如何优化存储、利用退款、数据类型和打包、使用事件、设计函数等。
Solidity宣布发布Solidity编译器v0.8.23
本文详细探讨了Solidity中的数组,介绍了动态数组与固定数组的区别,以及存储数组与内存数组的特点和用法。作者还分析了映射与数组的比较,以及如何声明和初始化数组。此外,文章提供了对Solidity数组的常见错误的故障排除建议,适合希望深入了解编程语言的开发者。
AccessControlEnumerable库用于管理函数的调用权限,是AccessControl库的拓展版。与AccessControl库相比,AccessControlEnumerable支持在编成员的迭代导出,这大大方便了各个角色权限的统计查询。
这一多月写了一份NFT合约,合约的代码上线至币安主网链,分别是ERC1155类型的NFT合约,质押合约,以及兑换合约。
同大多数编程语言一样,用Solidity编写的智能合约无法直接在以太坊虚拟机(EVM)上运行,必须先将其编译成字节码。
Solidity开发者应掌握的十个智能合约: ERC-20 合约,ERC-721 合约,简单拍卖合约,众筹合约,托管合约,多签钱包合约,投票合约,域名注册合约,预测市场合约,游戏合约
说在前面的话:Dao治理是个常见的需求,openzeppelin帮我们实现了这个功能。功能一点都不复杂,就是第一次接触会感觉涉及的文件有点多。没关系,多看这篇文章两次就记住了。参考第三部分的代码,就可以实现功能,为了流畅度,一些需要深究的地方,我放在了《补充》这个环节一测试环境fo
扫一扫 - 使用登链小程序
116 篇文章,450 学分
406 篇文章,424 学分
171 篇文章,332 学分
36 篇文章,280 学分
121 篇文章,276 学分