本文介绍了 Solidity 中的访问修饰符,包括 public、private、internal 和 external。通过简单的示例,深入分析了每种修饰符如何控制对合约函数和状态变量的访问,从而确保去中心化应用(DApps)的安全性与完整性。
这篇文章详细介绍了以太坊的预编译合约,包括其创建过程、在Solidity语言中的应用及其通过内联汇编的调用方式,并讨论了使用这些合约时的安全考虑。
这篇文章详细介绍了如何创建一个ERC20代币,包括代币的基本构造、余额管理、铸造与转移功能的实现,以及如何使用允许机制进行代币转移。文章还引入了小数的概念,并提出了一个清理建议以简化代币转移代码,使其更加整洁。整体内容适合希望深入了解ERC20标准的读者。
Solidity 教程系列第11篇 - Solidity 视图函数、虚函数讲解。 Solidity 系列完整的文章列表请查看分类-Solidity。
本文介绍了 Pool Library 的定义和结构,主要涉及到对 Uniswap v4 方池的实现和逻辑细节的描述,包括结构体定义(如 TickInfo 和 State)、流动性变更和交易的函数(如 modifyLiquidity 和 swap),以及如何处理 tick 的更新与手续费增长的计算。
该文章深入介绍了 Uniswap v4 中 Hooks 地址的设计与实现,详细阐述了各类权限标志的使用及其对应的 Solidity 函数。它具有清晰的结构,涵盖了权限解析、地址生成及函数调用等多个方面,为区块链开发者提供了实用的参考。
本文详细介绍了Uniswap V4 用户头寸相关的状态管理,包括用于存储流动性及手续费增长的 State 结构体,获取头寸信息的 get 函数,计算位置键的 calculatePositionKey 函数,以及更新头寸信息的 update 函数。
State
get
calculatePositionKey
update
你是否知道大端小端的概念,其定义了是高位数据先保存还是地位数据先保存,EVM 是用 大端格式存储数据,我们知道 EVM 使用 32 字节的字来处理数据,当数据不足 32 个字节时,如何填充数据呢?bytes 有哪些操作详见本文。
本文详细介绍了Solidity语言的基本数据类型,包括无符号整数(uint256),布尔值(bool)和地址(address)。通过代码示例展示了如何声明和返回这些类型,并强调每种类型的特殊性和注意事项。文章结构清晰,适合对Solidity初学者进行引导。
本文对 ZKsync VM 中的几个预编译函数进行了审计,涵盖了椭圆曲线点加法、标量乘法、配对和模幂运算的系统合约。文章详细讨论了审计范围、系统概述、安全模型、发现的问题及改进建议,并强调了对这些预编译的实施和文档质量的改善需求。
智能合约中使用更安全的随机数(代码实战篇)
Uniswap V4 BalanceDelta 是一种自定义类型,用于同时表示两个代币的余额变化,分别用高低位的方式存储。同时提供了运算符重载和相关方法,以便于进行加减法和比较操作。此外,BalanceDeltaLibrary 提供了获取各个代币数量的方法,方便使用。
Uniswap V4 CurrencyDelta Library 是一种优化的闪电记账工具,通过 transient storage 记录代币余额变化,从而节省 gas 消耗。文章详细介绍了如何计算存储 slot 地址、获取余额变化和应用余额变更的 Solidity 函数,实现了高效的代币管理。
该文章对Fireblocks的可升级tokens进行了审计,主要围绕ERC721F合同中的访问控制实现及其漏洞进行了讨论。审计发现了一些高、中、低严重性的安全问题,并提供了相应的修复建议和代码改进的方向,强调了合同的可升级性及其实现中的功能特点。
本文介绍了Recon工具的使用,该工具能自动化生成Solidity项目的无变体测试。作者通过示例展示了如何使用Recon创建Uniswap V3的测试套件,并验证特性以检测智能合约中的潜在漏洞。文章详细阐述了项目设置过程、各个合约的功能以及如何运行模糊测试。整体上,该文本为开发人员和审计人员提供了很好的工具使用指南。