本文介绍了平方乘算法,它是一种在O(log n)时间内计算整数幂的算法,相比于朴素算法的O(n)时间复杂度更高效。文章解释了该算法的原理,包括平方指数序列和如何利用指数的二进制表示来选择正确的平方指数序列元素。此外,还探讨了如何将该算法应用于具有分数指数和固定点数的场景,并提供了Python和Solidity的实现示例,最后提到了Uniswap V3中使用平方乘算法的例子。
本文是对Across协议的Solidity合约进行的安全审计报告,重点关注了为支持Solana网络和ERC-7683订单所做的代码更改。审计发现了包括潜在的资金池耗尽漏洞、地址转换错误、重复代码、缺少单元测试等问题,并提出了修复建议。报告还包括对之前提交的PR的审查以及客户端报告的问题。
本篇会介绍常用的几种Solidity开发环境,同时会推荐一种最为合适的开发环境并且安装必要的内容。
文章详细介绍了在Solidity中判断一个地址是否为智能合约的三种方法,包括msg.sender == tx.origin、code.length和codehash,并探讨了每种方法的优缺点和适用场景。
msg.sender == tx.origin
code.length
codehash
本文详细介绍了ERC721Enumerable扩展的功能及其在现有ERC721项目中的集成方法,包括其数据结构、函数实现以及如何通过OpenZeppelin的ERC721Enumerable扩展代码将其添加到项目中。
本文深入探讨了智能合约开发的关键最佳实践,涵盖了Solidity和区块链基础知识、安全编码实践、代码优化和Gas效率、测试和审计、部署最佳实践、行业标准以及持续学习。强调了智能合约安全的重要性,并提供了技术解释和可操作的见解,旨在帮助开发者构建安全、高效且易于维护的智能合约。
本文介绍了如何使用 Solang 编译器在 Solana 上编写和部署 Solidity 智能合约,并详细讲解了如何创建一个计分板程序,包括初始化项目、编写合约、部署和测试程序。
本文介绍了模糊测试(Fuzz Testing)在智能合约中的应用,特别是在Solidity中。模糊测试通过生成随机输入来测试代码中可能被忽略的边界情况,结合不变性测试验证系统在各种情况下的预期行为。文章还探讨了有状态和无状态模糊测试、有界模型检查(BMC)以及端到端测试与模糊测试的结合,旨在提高智能合约的安全性。
本文详细介绍了 Solidity 中的有符号整数及其在 EVM 层面的使用方式,重点解释了两补码(Two’s Complement)表示法及其在加减乘除等算术运算中的应用。
本文介绍了如何使用Truffle和Hardhat进行智能合约的开发、测试和部署。文章详细讲解了Solidity语言的基础知识、开发环境的搭建、Truffle和Hardhat的使用方法,并提供了从本地开发到测试网络部署的完整流程。
本文介绍了Web3开发者技术栈,包括Web3库/dApps、智能合约、节点/Web3提供商和钱包,并通过一个实例演示了如何部署智能合约并与以太坊网络交互。
从第一个 Counter 智能合约看合约代码结构
本文深入探讨了如何在Solidity中优化Gas费用,涵盖了从存储、内存和calldata的选择,到变量打包、减少冗余存储写入、函数层面的优化、循环效率提升以及数据结构选择等多个方面。此外,还介绍了高级的Gas优化策略,如使用inline assembly和bitwise操作,旨在帮助开发者编写更高效、更经济的智能合约。
本文介绍了如何在Polygon网络上部署智能合约,包括设置QuickNode Polygon节点、配置MetaMask、获取测试MATIC、编写和部署智能合约的详细步骤。
本文介绍了如何使用Foundry进行智能合约开发,包括环境设置、合约编写、测试和部署。Foundry是一个全面的工具套件,适用于以太坊区块链上的去中心化应用开发。