本文介绍了Cairo 2.3 版本引入的组件功能,并结合 Starknet Foundry 框架,通过 Ownable、ERC20 和 Mintable 三个组件的实例,详细讲解了组件的创建、组合、状态管理、ABI 定义、事件处理和测试方法。同时还深入探讨了 sncast 工具的使用,包括合约声明、部署、虚荣地址挖掘和 multicall 功能的实践应用。
本文介绍了在Solidity中进行Gas优化的数学方法,通过多项式逼近复杂的数学公式。文章详细讨论了泰勒展开、多项式插值、切比雪夫点、Equioscilation theorem和Remez算法等方法,以及有理逼近和Barycentric rational插值。同时,强调了高精度计算库gmpy2在提高计算精度中的作用,并为后续在智能合约中的应用做了铺垫。
本文深入探讨了StarkNet Cairo中Sierra(安全中间表示层)的设计原理、动机和具体实现,解释了Sierra如何通过线性类型系统、快照、gas管理等机制来保证合约执行的安全性,避免运行中断。并通过分析Cairo代码编译后的Sierra字节码,揭示了Cairo语法在Sierra层的具体体现,例如可变引用、快照、解引用以及Box指针的使用。
本文介绍了 Cairo 1 中可升级合约的实现方式,以及 StarkNet 的跨链机制。通过 Cairo 1 的哈希地址存储和可更改的 Class 逻辑代码,可以实现简单的可升级合约。同时,详细分析了 L1 和 L2 之间的跨链通信原理,并在此基础上构建了一个原生支持跨链的 ERC20 代币合约,包括 L2 上的资产转移到 L1 以及 L1 上的资产转移到 L2 的功能。
本文介绍了使用 Cairo 1 v2 版本进行 ERC20 代币智能合约的编程、测试和部署的全流程。文章对比了 Cairo 和 Solidity 的区别,详细讲解了 Cairo 1 的合约语法、环境安装、项目初始化、合约编写和测试,并给出了合约部署的详细步骤,包括使用 starkli 工具进行账户部署、合约声明和合约部署等。
本文深入探讨了以太坊域名服务(ENS)的底层技术原理和实现方式,从ENS的域名解析流程、注册机制,到ENS Name Wrapper的复杂权限管理,进行了详细的分析。文章不仅解释了ENS如何将人类可读的域名转换为机器可读的地址,还解析了ENS Name Wrapper中Fuse机制的工作原理及其对域名状态的影响。
TxRouter是一个使用Huff语言实现的多方资产发送和聚合工具,解决了ERC20代币转账gas消耗问题,包括一对多和多对一的资产转移。通过calldata压缩、参数复用和谨慎的内存使用等方式节省gas,并与Multisender相比,具有更低的gas消耗和更多功能。
本文介绍了EVM专用语言Huff,它是一种面向底层的语言,类似于汇编语言。文章通过使用Huff实现高效的数学模块,详细讲解了EVM的基础架构、栈、内存和存储等关键概念,并提供了可溢出加法、不可溢出加法、乘法、前导零计数、log2算法和开方算法的具体实现。同时,本文还讲解了如何处理数组数据类型,并给出了使用Huff实现数组求和的示例。
本文介绍了在 Foundry 架构中常用的高级测试方法,包括 Fuzz Testing, Invariant Testing 和 Formal Verification,并以 WETH 合约为例,展示了这些测试方法的使用,以及如何通过 Handler 合约和 Actor Management 模式来提高测试的有效性和覆盖率,最后还讨论了 Solidity 的形式化证明,希望能帮助读者进一步提高智能合约的测试水平。
本文介绍了如何配置 Sublime Text 以使其更适合程序员的需求。主要包括配置字体为“霞鹜文楷等宽”以更好地支持中文和英文代码,配置 Sublime Merge 以支持 Git 操作,以及推荐了一些常用的插件,如 A File Icon、BracketHighlighter 和 MarkdownEditing。