本文档介绍了OpenZeppelin Contracts库中的Math模块,该模块提供了一系列与数学相关的实用工具,包括SafeMath、SignedSafeMath和Math库,用于执行安全算术运算,避免溢出和除零等错误。SafeMath库实现了无溢出的加减乘除模运算,SignedSafeMath库实现了有符号整数的安全算术运算,Math库则提供了一些标准数学实用函数,如最大值、最小值和平均值。
本文介绍了一种新的代币发行机制,即可变速率GDA(VRGDA),通过调整价格来控制代币的发行速度,使其接近自定义的时间表。当销售进度超前于时间表时提高价格,而当销售进度落后于时间表时降低价格,是对GDA机制的推广。文中给出了机制的概述和Solidity实现,以及几个示例时间表。
本文是Huff技术深入探讨系列的第二部分,对比了Huff、Solidity和Yul的特性及gas消耗,并完成了ERC20合约的实现,包括approve、allowance和transferFrom宏。此外,文章还介绍了使用Foundry进行测试和部署的工作流程,并通过架构图展示了合约的结构组成。
Halmos v0.3.0 发布,这是一个用于 EVM 智能合约的符号测试工具,通过符号执行来帮助发现错误和验证合约行为。此版本主要增加了对状态不变性测试的支持,并添加了覆盖率报告、性能改进、更好的求解器支持等功能。Halmos 现在可以查找以 invariant_ 前缀开头的测试,并自动探索目标合约的状态,断言所有不变性条件,并报告任何失败。
invariant_
本文讨论了在Solidity智能合约中优化Gas消耗的方法,尤其是如何使用uint256代替布尔值,以减少不必要的SLOAD操作,进而节省Gas成本。文章通过示例展示了优化前后的Gas消耗差异,并提及相关工具与资源以帮助读者进一步了解气体优化策略。
Solx 是一个用于以太坊智能合约的新型优化编译器,它基于 LLVM 构建,可以提高运行时 Gas 效率,并减少手动优化的需求。文章介绍了 Solx 的优势,使用方法,以及未来发展方向,并鼓励开发者试用并提供反馈。
Solang 是一个为 Solana 设计的 Solidity 编译器,旨在帮助以太坊开发者更容易地迁移到 Solana 平台。它允许使用 Solidity 语言开发智能合约,从而降低学习曲线,减少开发时间。文章详细介绍了编译器的工作原理、Solang 的优势、对 Solana 程序的影响以及如何入手使用 Solang。
本文介绍了以太坊智能合约的基本概念、工作原理及部署方法,详细说明了如何使用 Remix IDE 编写、编译和部署智能合约,并提供了一个简单的示例代码。
Solidity 中一些实践中经常遇到的问题
文章详细介绍了智能合约ABI(应用二进制接口)的概念、组成元素及其在以太坊虚拟机(EVM)中的应用,还提供了生成ABI的步骤和代码示例。
Zama发布了fhEVM Coprocessor,这是一种允许开发者在任何EVM链上构建保密智能合约的工具,无需更改底层协议。它通过符号执行和阈值解密技术,实现了在加密数据上运行智能合约,同时保证了高性能和可扩展性,并提供了使用Solidity进行开发的简易性。
Zama 发布了 fhEVM v0.4 版本,引入了新的加密类型(ebool、euint4、euint64、eaddress)和异步解密API,通过 oracle 实现解密请求和回调,提升性能和效率。同时发布了fhEVM标准合约库 fhevm-contracts,包含ERC20和DAO等基础合约,简化开发流程。
Zama 团队发布了 fhEVM v0.5 版本,该版本引入了诸多增强功能,旨在提高在应用中处理加密数据的安全性和效率,包括打包输入机制、增强的访问控制列表 (ACL) 以及更新的解密和重新加密过程。Solidity API 迎来稳定和最终版本,该版本将与未来版本以及各种链兼容。
本文介绍了如何使用 Chainlink CCIP 将数据从一个链发送到另一个链。具体来说,展示了如何使用 Foundry 设置项目,编写一个 Solidity 函数,该函数可以将简单的字符串“hello world”从源链发送到目标链,并解释了关键的 CCIP 概念和函数,例如 ccipSend 和 EVM2AnyMessage 结构体。
ccipSend
EVM2AnyMessage
给 Solidity 开发者的 Cairo 编程指南