Solidity 的try/catch 语法和常见的语言中的表现不一样,try { } 块中的代码错误是无法被catch 的,这一点要小心要非常小心。
在深入理解 Solidity 错误"的第三篇, 探索处理错误,本文将揭晓这问问题的答案:asset 错误会消耗所有 gas 吗? require 提不提供错误字符有什么样的不同?外部调用的错误如何影响当前上下文?如何处理底层调用调用产生的错误?
在运行时错误是最常遇到的情况,你知道 Error
与 Panic
的细微差别吗? 发生 Panic 错误真的会消耗所有的 gas 么,本文揭晓答案。
编写我们的第一个合约。
从第一个 Counter 智能合约看合约代码结构
理解智能合约字节码末尾的元数据
本文从通过钱包发起交易开始,解析钱包如何构建交易数据,如何设定 Gas,如何签名及序列化交易。以及当节点接收到交易后,如何验证、EVM 如何执行对应的 Solidity 字节码,如何退还 GAS 等。
值得所有开发者们仔细阅读。
0xSplits 是一个收入拆分协议,为低 Gas 实现收入拆分提供了很好的实现思路。
理解账户抽象 3 - 钱包创建
理解账户抽象第二篇,看看如何使用第三方代替自己支付。
Solidity delegatecall (委托调用)是一个低级别的函数,其强大但棘手,如果使用得当,可以帮助我们创建 可扩展
的智能合约,帮助我们修复漏洞,并为现有的智能合约增加新的功能
所有以太坊开发者都清楚以太坊世界的一条铁律:合约一旦发布就无法修改。因此,对于合约的发布基本上都采用一种慎之又慎的态度,期望在发布前可以做到尽善尽美,力争合约能正常运行一万年。可是,智者千虑必有失,合约发布百分百不出问题几乎是不可能任务。
Solidity智能合约有关安全和代码质量标准的建议
研究如何利用 Solidity 新操作码 Prevrandao 获取随机数
本篇文章将介绍 Geth 代码库,了解以太坊的 “世界状态”,以此加深对 EVM 的整体理解。