在深入理解 Solidity 错误"的第三篇, 探索处理错误,本文将揭晓这问问题的答案:asset 错误会消耗所有 gas 吗? require 提不提供错误字符有什么样的不同?外部调用的错误如何影响当前上下文?如何处理底层调用调用产生的错误?
这篇文章详细介绍了Solidity中的字符串处理,包括其动态大小、UTF-8编码、字符串长度的计算、字符访问及Unicode支持等核心概念。此外,还介绍了在Solidity 0.8.12版本中新增的字符串拼接功能。文章通过代码示例清晰地展示了每个概念,使读者能更好地理解和应用这些知识。
文章详细介绍了ERC-2535钻石模式(Diamond Pattern),这是一种代理模式,代理合约可以同时使用多个实现合约。文章深入讨论了钻石模式的实现原理、优势、以及与透明可升级代理(Transparent Upgradeable Proxy)和UUPS的区别。还介绍了钻石模式的应用场景和最佳实践,包括如何实现不可变钻石和可升级钻石,并提供了相关代码示例。
本文详细介绍了如何通过内联汇编更高效地实现 Solidity 中的回滚操作,深入探讨了 mstore 和 mstore8 操作码的使用方式,并通过示例代码展示了如何在汇编中实现无消息回滚、自定义错误回滚以及带有原因字符串的回滚。
mstore
mstore8
Solidity 的try/catch 语法和常见的语言中的表现不一样,try { } 块中的代码错误是无法被catch 的,这一点要小心要非常小心。
本文介绍了成为智能合约审计员的途径和所需技能,阐述了这一领域的潜力和灵活性,强调了相关知识和实践的重要性。作者鼓励有经验的研究者转向智能合约审计,以应对行业需求并提高自身职业价值。
本章我们来看看 return(p, s) revert(p, s) keccak256(p, n) 这三条指令。
return(p, s)
revert(p, s)
keccak256(p, n)
本教程深入探讨了Solidity和Rust在控制流、数组、映射、结构体和常量等方面的语法对比,旨在帮助掌握Solidity的开发者快速上手Rust编程。
关于 log 的指令。
log
NEST预言机采用双边报价机制生成链上价格,质押双边资产来保证价格的准确性。是完全去中心化的链上价格生成机制。
本文介绍了如何创建 Uniswap V4 的第一个Hook,包括必需的库、合约结构和安全风险等内容。通过逐步引导,读者可以了解到如何实现自定义流动性池行为以及注意事项,并给出了完整的Hook模板代码。
在 Solidity 中关于 tx.data 有约定俗成的用法。
这篇指南详细介绍了如何使用Solidity和Solang在Solana上创建和铸造SPL代币,涵盖了从基本知识到实际操作的完整过程,适合想要在Solana网络上利用其Solidity知识进行开发的程序员。内容包含了所需的工具、术语解释、创建与部署的详细步骤,并提供了代码示例和测试流程。
本文介绍了两个新兴项目Solang和Neon,它们使开发者能够使用Solidity编写智能合约并部署到Solana。文章深入探讨了Solana的基本特性、这两个工具的工作原理及其优缺点,并提供了如何开始使用它们的指南,适合对Solana生态系统有一定了解的开发者。
Cyfrin Aderyn 是一个基于 Rust 开源的智能合约静态分析工具,旨在帮助开发者和安全研究者检测 Solidity 代码中的漏洞。该工具通过快速分析抽象语法树,提供定制化探测器,并支持多种报告格式,有助于提高智能合约的安全性。