本节课将用最简单的语言、最少的废话来帮助同学们用最短的时间学习hardhat,全网独家!
Create2库本质就是对EVM opcode CREATE2进行的一个封装,可以让开发者在非内联汇编环境下直接使用该opcode。 CREATE2是一种可提前计算合约部署地址的合约部署opcode。而传统的合约部署是通过opcode CREATE完成的。
Multicall库提供了一个multicall(bytes[] calldata data)
方法,通过该方法可以由调用者在一笔交易中自由组合调用本合约的各个可外部调用的方法。
Context库是合约开发中最常见的库,同时也是最让人迷惑的库。合约代码里面只将msg.sender和msg.data封装成了函数,感觉多此一举。实际上,本库不提供任何context环境切换的细节功能,而是需要目标合约中重写这两个函数起到了可编辑msg.sender和msg.data的目的。
Starknet 改进语法全解读
从foundry工程化的角度详细解读Openzeppelin中的Timers库及对应测试。
从foundry工程化的角度详细解读Openzeppelin中的Strings库及对应测试。
从foundry工程化的角度详细解读Openzeppelin中的Counters库及对应测试。
从foundry工程化的角度详细解读Openzeppelin中的Base64库及对应测试。
从foundry工程化的角度详细解读Openzeppelin中的Arrays库及对应测试。
给 Solidity 开发者的 Cairo 编程指南
从foundry工程化的角度详细解读Openzeppelin中的StorageSlot库及对应测试。
Remix v0.34.0 更新重点:Etherscan 验证代码更好用, 还支持代理合约验证、全新的 Solidity 分析器, 适配 WalletConnect v2.0
从foundry工程化的角度详细解读Openzeppelin中的Address库及对应测试。
一段Solidity汇编代码逻辑整理
felt252felt252是Cairo中基础类型,代表一个存储槽,未指定变量类型的字面量默认类型都是felt252。felt252可以
基本用法usedebug::PrintTrait;constONE_HOUR_IN_SECONDS:felt252=360
变量是编程语言中最基本的元素。基本使用创建一个变量usedebug::PrintTrait;fnmain(){l
单文件Cairo程序入口与大多数编程语言类似,单文件的Cairo程序入口是main函数。
本文使用create2创建合约、预测合约地址