OpenZeppelin是一个广泛使用的、开源的智能合约库,专门为以太坊等EVM兼容链提供安全、可复用的合约组件。它是构建去中心化应用(DApp)和协议时的“黄金标准”不论你是初学者还是Web3开发老,OpenZeppelin都是一个非常不错的选择整体架构OpenZeppelin
Web3新速度:Monad与BuyEarthDApp重塑虚拟世界Web3时代,速度决定未来!Monad作为一款高性能的以太坊兼容L1区块链,以每秒10,000+的交易处理速度(TPS)突破传统区块链瓶颈,为去中心化应用(DApp)开辟了新天地。BuyEarthDApp是这一技术的生动实践,让用
Solidity的存储结构简介以太坊智能合约有三种数据存储位置
本文总结了Solidity智能合约开发中常见的五个陷阱,包括存储、内存和calldata的区别,重入攻击,默认public的可见性,使用tx.origin进行授权的风险,以及无限循环/高Gas成本问题。针对每个问题,文章都给出了具体的代码示例和修复方案,旨在帮助开发者构建更安全、更智能的智能合约。
CREATE2是以太坊的一条EVM指令,用于部署智能合约。与传统的CREATE指令不同,CREATE2允许通过计算得到合约地址,而不是依赖发送方的nonce。这种方式使得合约地址在部署之前就可以被预测,方便一些高级用例,例如「工厂模式」和「合约钱包的预部署地址」。
本文介绍了Circom中定义Rank 1约束系统(R1CS)的基本语法,包括模板参数的使用、循环和变量的声明与应用、以及如何在满足特定条件时生成约束。此外,还强调了在Circom中约束必须是静态的,不能依赖于信号动态改变,但变量可以作为常量参与R1CS运算,并解释了if语句在Circom中的使用限制,着重介绍了 variables 的使用方法,以及 signals 的使用限制。
if
玩转Web3:用Viem库实现以太坊合约部署与交互想一窥Web3开发的奥秘?以太坊智能合约是通往区块链世界的大门,而Viem库让你轻松迈出第一步!本文通过一个TypeScript脚本,带你从连接本地以太坊测试网到部署合约、实现交互,全程手把手实战。不管你是Web3新手还是想探
Ethers.js实战:带你掌握Web3区块链开发Web3时代已来,区块链开发成为技术圈的热门技能。如何快速上手与以太坊交互?Ethers.js作为一款轻量又强大的工具,能帮你轻松搞定查询、交易和智能合约部署。本文通过一个实战脚本,带你一步步掌握Web3区块链开发的核心技能,无论你是
Web3新星:Monad打造NFT全解Web3浪潮席卷而来,高性能区块链成为开发者的新宠。作为Web3生态的新星,Monad以10,000TPS的超高吞吐量、500毫秒的区块速度和1秒交易确认,重新定义了区块链的可能性。本文将带你走进Monad的世界,通过打造Mo
Monad、MegaETH 和 Pharos 之间的竞争本质上没有绝对的领先者,留给开发者更多的权衡在于性能、去中心化还是专业化的优先级
干掉jito的,不会是下一个jito!
本文深入探讨了Solidity智能合约中的REVERT机制,解释了其功能和处理方法,包括require、revert、assert和try/catch的用法。通过实例代码,阐释了这些机制如何确保合约执行的完整性与安全性,并讨论了EVM在处理revert时的响应和行为。文章意在帮助开发者有效调试合约和减少错误风险。
前言本文主要介绍以太坊ERC20、ERC721、RC1155三种代币标准相关介绍以及特点;ERC20代币标准概念:同质化代币标准(等值)核心方法:name():代币名称symbol():代币简写decimals():代币可以分割到的小数位数totalSupply():代
Slang v1是一套为以太坊开发者提供的Solidity代码分析和工具的模块化编译器API。它能够支持80多种版本的Solidity,并提供高效的错误容忍解析器和符号追踪分析,旨在简化开发工具的构建。Slang的独特之处在于,它不仅是编译器,而是为开发者工具打造的API,极大提高了Soliditiy工具的开发效率。
本文介绍了Solidity智能合约中memory关键字的重要性,它用于在函数中处理结构体和字符串,可以避免不必要的gas消耗和编译错误。文章解释了storage和memory的区别,以及如何在函数中使用memory来优化gas费用。
这篇文章通过一个实际案例研究了如何通过重构优化 Solidity 代码来实现气体节省,展示了在一个杠杆收益农场协议 Yieldoor 中,通过改进核心函数 Leverager::liquidatePosition 实现了 15.43% 的气体节约。作者详细描述了测量Gas成本的方法和重构过程,包括减少冗余存储读取、使用结构体缓存、以及启用优化器以提高代码效率。
Leverager::liquidatePosition
在Solidity(以太坊智能合约编程语言)中,常量(constant)、状态变量(statevariable)和不可改变量(immutable)是三种不同的变量类型,它们在定义、存储、使用和修改方面有显著区别。
本文深入探讨了以太坊虚拟机(EVM)的数据存取机制,阐明了不同数据位置(如stack、memory、storage、calldata和transient storage)的性质与用途,及其与Solidity编程的相关性。文章不仅解释了Solidity中常见错误的原因,还提供了丰富的代码示例和图示,帮助开发者理解EVM内部工作原理。
本文深入探讨了Solidity智能合约中的重入攻击,详细解释了重入攻击的机制、类型及防护策略,并提供了真实案例如DAO黑客事件和Curve Finance攻击的分析,强调了安全审计的重要性。
Solidity 0.8.29 发布
扫一扫 - 使用登链小程序
482 篇文章,571 学分
183 篇文章,482 学分
409 篇文章,378 学分
44 篇文章,357 学分
58 篇文章,331 学分