本文介绍了Solidity中的两种复杂数据类型:结构体(Struct)和映射(Mapping)。结构体用于创建自定义数据类型,类似于面向对象编程中的类,而映射则类似于字典,用于存储键值对。文章通过代码示例详细解释了它们的用法,并结合一个账户管理的智能合约,展示了如何在实际应用中同时使用结构体和映射,最后还简单介绍了storage, memory, calldata。
本文介绍了Solidity中的结构体(struct),讲解了结构体的定义、创建,以及如何在智能合约中使用。展示了如何声明和初始化结构体的不同方法,以及如何将结构体映射。
本文介绍了Solidity中的继承概念,包括如何使用is关键字实现合约继承。文章详细讲解了virtual和override关键字在函数重写中的作用,以及internal关键字在控制函数可见性方面的应用。最后,通过OpenZeppelin的Ownable合约示例,展示了继承在实际开发中的应用,例如权限控制。
is
virtual
override
internal
本文介绍了 Hardhat v2.21.0 的发布,首个基于 Rust 实现的以太坊开发运行时 EDR,分析了此更新对性能的提升,特别是测试运行速度的显著提高。文中还探讨了构建 EDR 的原因,未来的计划,包括 Hardhat 3 的特性增强、Solidity 测试的实现以及将 EDR 转向 WebAssembly 以提高可移植性等。
“Error”指的是合约遇到无法处理的问题的情况。这可能是由于无效输入、意外状态或合约未设计处理的其他问题导致的。“Panic”指的是EVM遇到无法处理的问题的情况。
这篇文章介绍了Solidity作为以太坊智能合约编程语言的背景、优势和使用方法,详细阐述了其历史、与其他语言的相似性、在以太坊及其他兼容区块链上的应用,以及学习资源,提供了丰富的内容和实际案例,是学习Solidity的良好资料。
本文详细介绍了智能合约在以太坊及其兼容区块链中的作用,深入比较了两种主要编写智能合约的高阶编程语言:Solidity和Vyper,分别强调了它们的特性、优缺点和应用场景。同时提供了学习这两种语言的资源,为开发者选择合适的工具提供指导。
这篇文章探讨了Solidity智能合约与人工智能(如ChatGPT)的整合,强调这一结合如何提升各行业的效率。文章详细介绍了Solidity的基本概念、实际应用案例,并提供了使用ChatGPT创建和部署ERC20代币的具体步骤。整体上,该文为智能合约与AI连结的应用提供了丰富的视角和实用指南。
本文介绍了作者和合作者构建的一款高性能自动化Solidity智能合约Gas优化工具,该工具通过在源代码和中间表示层进行优化,从而有效地节省Gas。该工具提供了命令行界面和Web应用程序两种部署方式,支持结构体打包、存储变量缓存和调用数据优化等功能,旨在帮助开发者编写更高效的Solidity代码,并最大限度地降低智能合约在区块链上的执行成本。
本文介绍了以太坊智能合约中应用程序二进制接口(ABI)编码的原理和方法。ABI是定义如何与智能合约交互的规范,文章详细讲解了函数签名、静态类型和动态类型的编码方式,以及abi.encode, abi.encodeWithSignature等方法的使用,帮助读者理解智能合约与外部世界进行数据交换, 需要将函数签名和参数转换成EVM可以识别的格式。
本文详细介绍了在Solidity智能合约中常见的安全漏洞,包括重入攻击、计算错误、预言机失败/操控、弱访问控制和前置运行攻击。同时提供了一些解决方案和预防措施,帮助开发者提升智能合约的安全性。
本文探讨了在以太坊区块链上编写高效、节省Gas(gas)费用的智能合约的技巧,主要介绍了如何通过使用汇编代码来优化gas使用,包括在哈希和数学运算中使用汇编实现,以及相关的代码示例和gas使用对比。
本文介绍了如何使用Hardhat框架更改已在主网络和测试网络上部署的智能合约的字节码。作者提供了实际应用的示例代码,包括如何配置Hardhat和调用区块链函数来实现字节码更改。这对于测试和修改合约逻辑非常有用。
本文探讨了学习区块链开发的挑战,强调学习Solidity的重要性,无论是对于希望在非EVM区块链上开发的Rust程序员还是初学者。文章详细讨论了区块链与传统编程框架的不同点,并建议先熟悉区块链环境,再深化对Rust的学习,避免同时学习两种新概念。总结了学习路径和资源的选择,强调了方法论的重要性。
使用Create2工厂(0x0000000000ffe8b47b3e2130213b802212439497)创建合约并在etherscan验证