本文针对几个典型的 EVM Memory 例子进行分析,涉及到 solidity opcode,内联汇编,以及 solidity 内存安全
EVM存储结构在EVM中实际上有六个位置可以存储数据:stack,memory,calldata,storage,code(在一个特定的地址),log(触发事件)实际上深入研究的是前四个:stack,memory,calldata,storage
本文介绍了Solidity中的nodelegatecall修饰符,用于防止合约使用delegatecall来调用函数,并通过代码示例详细展示了其实现和测试方法,同时讨论了Uniswap V3使用该技术的动机。
nodelegatecall
delegatecall
使用非代理模式实现合约升级
该文章详细介绍了一个高级Solidity编程训练营,涵盖以太坊开发、Solidity编程、智能合约安全等多个高级主题,适合有经验的开发者深入学习。
Forge是一个以太坊开发框架。您可以使用它来创建Solidity项目,管理依赖关系,运行测试等等。这是一个初学者指南。我将介绍如何创建项目,管理依赖
本文记录一下UUPS代理合约无法在XLayer链上开源验证的问题。
一、理解代理模式代理模式在智能合约开发中是一种使智能合约可升级的设计模式。本质上,它允许智能合约的逻辑部分在不更改合约地址或其存储状态的情况下进行修改和升级。这种模式解决了智能合约一旦部署就不能更改的限制,为修复漏洞、添加功能或优化合约逻辑提供了可能。1.1代理模式的工作原理代理模式涉及至少
学习开发代币
智能合约状态变量的存储体现
本文介绍了如何在Solidity智能合约中使用Foundry和Hardhat进行控制台日志记录,以便在调试智能合约时查看变量值。详细解释了console.log的使用,并提供了相关示例代码,适合刚入门的Web3开发者学习。
本文详细介绍了EVM中的delegatecall操作码,解释了其工作原理、使用场景及潜在问题,并提供了多个代码示例帮助理解。
这篇文章详细介绍了如何使用Recon工具为智能合约创建不变性测试环境,涵盖了公共和非标准仓库的设置过程。文章结构清晰,提供了丰富的示例和图片,适合开发者快速上手。
本文探讨了如何通过Foundry单元测试来调试和修复Echidna/Medusa测试中的不变性问题。介绍了如何使用Foundry模板创建Counter合约,并定义基本的不变性,接着描述了如何运行Echidna和Medusa进行测试,生成相应的单元测试,最后展示了如何修复合约中的bug以维护不变性。通过这种方法,开发者能够更快速有效地定位和解决合约问题,这是在生产环境中极为重要的。
本文详细介绍了Solidity中两种调用合约的方法:通过合约接口的高级调用和使用call方法的低级调用,解释了为什么低级调用不会回滚而高级调用可能会回滚,并对比了这两种方法在调用空地址时的不同行为。
call
什么是ABI?ABI=ApplicationBinaryInterface用于定义智能合约接口的规范。它定义了智能合约的函数、事件和数据结构的编码和解码规则,以便其他应用程序可以与智能合约进行交互。简言之,就是以太坊的调用合约时的接口说明。有点类似于Web2API。
solidity汇编语言汇总
Airdrop hunting 部分题解
本文深入探讨了重入攻击在智能合约中的漏洞,介绍了重入攻击的原理、类型以及如何实施和防御它。通过构建受害者合约与攻击者合约的实例,读者能够直观理解攻击过程,同时了解历史上的攻击实例和防护措施。文章结构清晰,逻辑严谨,是学习重入攻击的重要参考资料。
2024 年如何学习 Solidity
扫一扫 - 使用登链小程序
116 篇文章,474 学分
406 篇文章,412 学分
171 篇文章,318 学分
67 篇文章,285 学分
121 篇文章,274 学分