文章非常严谨讨论了各种实现的 gas 消耗,以及低效代码带来的深远影响,并给出了实现方案。
Foundry 备忘录
在本文中,将看到:1.解释这些函数解决的问题。2.讨论 Solidity 编译器如何处理新的 assert(), require() 和 revert()。3.给出一些经验法则来决定如何以及何时使用每一个。
assert()
require()
revert()
随着其自身发展,智能合约已经远非一个基础的“合约”而已了。 现在我们用智能合约创造了一整个生态!但是无论我们编码如何小心,测试如何细致,如果我们的系统变得复杂起来,就免不了更新逻辑去打补丁修bug,抵御恶意攻击或者增加必要的特性。有时,我们甚至需要升级合约去应对EVM的改变或者新发现的漏洞。
从solidity使用,到opcode原理,再到Geth实现,三个层次解读委托调用的原理与实现
使用hardhat编写和测试合约的时候,经常要配个.env文件保存私钥,有时候会一不小心把私钥提交到github仓库,导致损失。Truffle Dashboard 以提供一种简单的方法来使用您现有的 MetaMask 钱包进行部署以及您需要从命令行上下文发送的其他交易。因为 Truffle Dashboard 直接连接到 MetaMask,所以也可以将它与 Ledger 或 Trezor 等硬件钱包结合使用。
ChainIDE 是一款云端智能合约 IDE ,开发者可以在其上编写智能合约,以部署在 Ethereum、BNB Chain、Polygon、Conflux、Nervos、Dfinity、Flow、Chain33、Fisco Bcos 等不同区块链上。它可以减少用户的开发周期,节省用户的时间和精力。
这是本系列文章的第三篇,这篇文章我们就开始编写一个能铸造NFT的智能合约了。当然这不是一篇solidity的教学文章,所以不会在编码细节上做过多的介绍
以Geth代码为基础,从区块结构讲到账户状态/合约存储,最后是SSTORE和SLOAD两个操作码的具体实现
在本文中,通过 7 个任务,如何来编写可升级合约,测试以及自动、活动实施升级。 在 7 个任务中,分别介绍了可升级合约可能遇到的各种情况: 在新实现合约中添加函数、添加状态变量、修改状态变量可见性(修改函数)。
在上一篇文章中我们已经准备好了用于开发、测试和部署智能合约的以太坊私有环境,那么在开始编写合约之前,我们还需要准备开发环境。
静态分析是相对容易掌握的工具,对开发复杂的Defi应用非常有帮助。
这篇通过一个例子讲了EVM中storage和插槽的工作原理
从opcode角度讲解EVM的内存机制,包括数据结构,空闲内存指针与变量赋值等
Solidity有两种模式实现升级:透明代理与UUPS代理, 他们的实现由细微差别,本文一起来看一看。
翻译深入理解EVM系列文章,第一篇是关于函数选择器与字节码/opcode
这是一个使用MetaMask签名消息,然后在链上进行验证的实用教程。
最省GAS链上排序
彻底理解solidity里的storage:Ethereum Architecture(以太坊架构),Block Header(区块头),State Root,Ethereum Account,Storage Root,StateDB -> stateObject -> StateAccount,初始化一个新的以太坊账户,SSTORE,SLOAD
Solidty的gas优化关键点在于减少storage和内存的读写。
扫一扫 - 使用登链小程序
106 篇文章,294 学分
3 篇文章,269 学分
55 篇文章,237 学分
13 篇文章,206 学分
16 篇文章,163 学分