本教程详细介绍了如何使用Next.js和Wagmi.sh构建一个Web3 Dapp,允许用户通过连接到加密货币钱包来转移资金和铸造NFT。教程包括从设置开发环境到实现转账和NFT铸造的完整步骤。
本文详细介绍了以太坊预编译合约的九种类型及其应用场景,包括椭圆曲线数字签名恢复、哈希方法、内存复制和椭圆曲线数学运算等,并提供了如何使用Solidity调用这些预编译合约的示例代码。
文章介绍了突变测试的概念,即通过故意在代码中引入错误来检查测试套件的质量。文章详细举例说明了突变测试的应用,包括如何在Solidity代码中实施,并介绍了自动突变测试工具及其可能的结果。此外,还讨论了突变测试的重要性和局限性,并推荐了一些相关的学习资源。
本文详细介绍了以太坊中的staticcall操作,解释了其与常规call的区别,及其在防止状态变更中的应用。同时,文章也讨论了staticcall的安全性问题,如拒绝服务攻击和重入攻击,并提供了代码示例来说明其使用方法。
文章介绍了如何通过创建子合约来测试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的示例。