本文介绍了Solidity中事件(Event)机制。事件是智能合约与外部世界通信的重要接口,用于记录链上状态变化并通知外部应用。通过定义事件和使用emit触发事件,可以在链上生成日志,链下应用可以监听这些日志以获取合约状态更新。文章还强调了事件在降低Gas成本、记录完整交易历史以及作为只写数据库方面的应用。
emit
本文详细介绍了Solidity中的布尔类型,包括其定义、使用、逻辑运算符(与、或、非)、短路求值特性、比较运算符以及在条件语句中的应用。此外,还探讨了布尔类型在权限控制、状态管理、功能开关和白名单/黑名单等实际应用场景,并提供了布尔值存储的Gas优化建议和练习。
本文介绍了以太坊智能合约如何接收以太币(ETH)。合约需要明确声明可以接收 ETH,通过定义 receive 函数或 fallback 函数来实现。receive 函数专门用于接收 ETH,而 fallback 函数在没有匹配到调用函数时被调用。此外,payable 修饰符用于指定函数可以接收 ETH。理解这些机制对于编写安全的智能合约至关重要,可避免 ETH 永久锁定在合约中。
本文详细介绍了Solidity中映射(mapping)的定义、特性和限制,并区分了映射与数组的适用场景,同时阐述了如何通过辅助数据结构实现可迭代映射。映射作为智能合约中常用的数据结构,适合存储账户余额和权限管理等键值对数据。
本文介绍了Solidity中处理错误的机制,EVM在遇到错误时会回退整个交易。合约中通过require、assert、revert抛出异常,使用try/catch捕获外部调用异常。推荐使用自定义错误,这能够节约gas,并提供更好的错误信息。理解并正确使用这些机制是编写安全智能合约的基础。
函数修改器用于改变函数行为,常用于在函数执行前检查条件。修改器通过modifier关键字定义,使用_占位符表示被修饰函数体的执行位置。修改器可以包含参数,并且支持嵌套使用、继承和重写。函数修改器常用于权限控制、输入条件检查和重入攻击防护等场景,提高代码的简洁性和可读性。
modifier
_
本文详细介绍了Solidity中库的概念、特点和使用方式。库通过组合实现代码复用,分为内嵌库和链接库两种。内嵌库代码嵌入合约,链接库则独立部署,合约通过委托调用。using for 语法糖可以简化库函数调用,扩展类型功能。库是Solidity实现代码复用的重要机制,提高合约的模块化和可维护性。
using for
2008年10月31日,一个化名为中本聪(SatoshiNakamoto)的神秘人物在密码学邮件列表中发布了《比特币:一种点对点的电子现金系统》白皮书。这份仅有9页的文件,为去中心化数字货币的发展开启了一个全新纪元。为了让更多中文读者能够准确理解这份具有历史意义的文献,在白皮书发布16周年之际,
比特币:一种点对点的电子现金系统
Unichain 旨在解决以太坊 rollup 扩展策略中的流动性碎片化和跨链交互效率低下等问题,致力于成为 DeFi 流动性的家园和跨 rollup 访问 DeFi 的最佳场所