文章介绍了如何通过创建子合约来测试Solidity中的内部函数,并解释为什么不应将函数改为public或virtual。同时还提到了无法测试private函数的原因,并提供了相关代码示例。
本文深入探讨了Solidity中的uint256最大值的获取方式,包括使用内置类型、数学公式和一些不推荐的hack方法。作者指出,使用type(uint256).max是最干净且安全的做法,并对最大值的大小进行透彻的解释和可视化。具有明确的逻辑和结构,适合Solidity开发者阅读。
type(uint256).max
文章详细介绍了 Solidity 事件的工作原理、最佳实践以及如何在以太坊中使用事件来快速检索交易信息。还提供了多个代码示例,解释了如何监听 ERC20 转账事件以及如何过滤特定地址的事件。文章还深入讨论了事件的存储机制、索引参数的选择以及事件的燃气成本。
本文介绍了以太坊的EIP-2930访问列表交易,通过预先声明访问的合约和存储槽,可以减少跨合约调用的gas消耗。文章详细解释了EIP-2930的工作原理、gas费用的计算以及如何实现访问列表交易,并提供了代码示例和gas节省的具体案例。
EIP-150是针对以太坊区块链的协议升级,主要引入了63/64规则以防止Call Depth Attack。该规则保留了一部分父合约的gas,防止递归调用消耗所有gas。
本文介绍了如何在Foundry环境中使用OpenZeppelin安全地创建和验证ECDSA签名,提供了Verifier.sol合约和测试代码Verifier.t.sol的示例。
本文详细介绍了 Solidity 中的有符号整数及其在 EVM 层面的使用方式,重点解释了两补码(Two’s Complement)表示法及其在加减乘除等算术运算中的应用。
文章详细解释了以太坊中的 gas 成本,包括 gas 价格、以太币价格和 gas 单位之间的关系,并介绍了如何计算 gas 成本以及 gas 价格波动的原因。
本文详细介绍了MetaProxy标准,它是一种用于创建智能合约克隆的最小字节码实现,允许每个克隆附加不可变的元数据。文章还展示了如何使用MetaProxy标准创建ERC20合约,并解释了字节码的结构和如何操作元数据。
文章详细介绍了DeFi应用中的治理模式,包括提案、投票、法定人数等关键概念,并探讨了治理攻击类型及改进空间。文章还提供了一些设置治理的工具和资源。