本文介绍了在 Solidity 智能合约中使用 Foundry 测试套件进行不变性测试的方法。不变性测试是一种验证代码正确性的测试方法,与单元测试和模糊测试类似。文章详细介绍了如何设置和运行不变性测试,并通过多个示例演示了如何检测和修复智能合约中的漏洞。
UUPS:通用可升级代理标准(ERC-1822)
本文指南提供了如何创建和部署自己的超额抵押稳定币的详细步骤,使用Foundry作为智能合约开发工具,结合OpenZeppelin和Chainlink。内容涵盖了合约的核心功能、抵押品管理、清算机制及相关测试,适合有基本Solidity和智能合约知识的开发者。
本文详细介绍了如何使用 OpenZeppelin 库和 Hardhat 框架创建和部署可升级智能合约。通过分步指南,读者了解了合同的创建、测试、部署及升级的过程,还涉及了环境设置、合约验证和资金管理等重要步骤,对于具备一定基础的开发者来说,非常实用。
Chisel是随Foundry提供的高级SolidityREPL(交互式命令工具)。它可用于在本地或Fork网络上快速测试Solidity片段。
文章详细介绍了ERC20快照技术,解决双花投票和重复领取空投的问题,并探讨了其实现机制和OpenZeppelin的解决方案。
本文介绍了Veridise团队在智能合约安全领域的学术研究成果,共精选五篇论文,涵盖了智能合约的安全性检查、优化及验证等多个方面。每篇论文的研究均对智能合约的设计与安全审计具有重要的指导意义,并且为Veridise开发内部工具提供了基础和灵感。
文章详细介绍了EIP-2535 Diamonds标准的概念和实现,解决了以太坊智能合约的24KB大小限制,并提供了一种组织和扩展智能合约系统的新方法。文中包含了关于如何避免智能合约存储变量冲突的详细策略,及其在ERC721代币实现中的应用实例,适合对以太坊智能合约开发有一定基础的读者。
这篇文章深入探讨了Solidity中的delegatecall方法,阐明了其工作原理、操作的安全性以及如何有效管理合约状态变量布局。
文章详细介绍了 Uniswap V2 Library 的功能和使用方法,主要包括getAmountOut()、getAmountIn()、getAmountsOut()、getAmountsIn()、getReserves() 和 quote() 等函数的工作原理和数学推导过程,并提供了相关代码和图片说明。
Solidity教程系列第二篇 - Solidity地址类型介绍. Solidity 系列完整的文章列表请查看分类-Solidity。
本文深入解析了Uniswap V2的swap函数设计,包括其逻辑、闪贷功能、安全性检查以及如何通过代码实现K值平衡。文章通过代码片段和详细的解释帮助开发者理解该函数的运行机制。
本文详细介绍了如何在智能合约中使用Chainlink VRF生成随机数。文章涵盖了Chainlink VRF的原理、请求随机数的方法,并通过构建一个自定义的抽奖智能合约进行了系统的示范。还提供了关于测试、部署合约和创建Chainlink VRF订阅的步骤,有助于开发者理解如何在其项目中实现该功能。
本文介绍了以太坊的EIP-2930访问列表交易,通过预先声明访问的合约和存储槽,可以减少跨合约调用的gas消耗。文章详细解释了EIP-2930的工作原理、gas费用的计算以及如何实现访问列表交易,并提供了代码示例和gas节省的具体案例。
文章详细介绍了Compound V3中的baseSupplyIndex和baseBorrowIndex机制,解释了它们如何跟踪借贷者的存款和借款,以及如何通过principal value和present value计算用户的余额。同时,文章还包含代码示例和图表,帮助读者更好地理解这些概念。
baseSupplyIndex
baseBorrowIndex
principal value
present value