文章
视频
课程
百科图谱
集训营
更多
问答
提问
发表文章
专栏
活动
文档
工作
集市
发现
Toggle navigation
文章
问答
视频
课程
集训营
专栏
活动
工作
文档
集市
搜索
登录/注册
精选
推荐
最新
周榜
关注
RSS
全部
通识
以太坊
比特币
Solana
公链
Solidity
Web3应用
编程语言
安全
密码学
AI
存储
其他
Hardhat以太坊开发框架
本文介绍了Hardhat以太坊开发框架,包括创建和配置项目、编写智能合约、使用Solidity编写/typescript测试、使用console.log调试Solidity代码,以及部署合约和代码开源验证等步骤。Hardhat提供了更快的编译和测试,支持Solidity测试,内置调试器,并提供Hardhat Network用于本地开发,方便开发者进行以太坊智能合约的开发。
Hardhat
以太坊
智能合约
Solidity
测试
部署
DeCert.me
发布于 2025-12-14
阅读 ( 116 )
( 2 )
Foundry以太坊开发框架
Foundry是一个以Solidity为中心的以太坊开发框架,用于构建、测试、调试和部署智能合约。它提供了一整套工具链,包括forge、cast、anvil和chisel,支持快速构建和测试,并拥有强大的测试功能,如作弊码、模糊测试和主网Fork。Foundry是目前Solidity开发中使用广泛的框架。
Foundry
Solidity
智能合约
Forge
cast
anvil
DeCert.me
发布于 2025-12-14
阅读 ( 81 )
UUPS 升级模式
本文详细介绍了通用可升级代理标准(UUPS)模式,该模式将升级逻辑置于实现合约中,以优化 Gas 消耗。文章对比了UUPS与透明代理的优缺点,并通过示例代码展示了UUPS的实现原理和升级流程。同时,强调了 UUPS 的风险,并介绍了如何使用 OpenZeppelin 的 UUPSUpgradeable 及 Foundry 插件进行安全部署和升级。
UUPS
代理合约
智能合约升级
EIP-1822
OpenZeppelin
Foundry
Solidity
DeCert.me
发布于 2025-12-13
阅读 ( 82 )
以太坊智能合约存储与 Gas 优化
本文深入探讨了EVM存储机制,对比了storage、memory、calldata和transient storage等不同存储位置的Gas成本,并提供了变量打包、利用immutable和constant、删除存储变量退Gas、缓存存储变量到内存等实用优化技巧。同时讨论了mapping与array、bytes与string的选择,以及memory和calldata的优化策略,最后强调了优化的...
以太坊
智能合约
gas优化
EVM存储
Solidity
变量打包
DeCert.me
发布于 2025-12-13
阅读 ( 169 )
delegatecall委托调用
delegatecall 是一种特殊的底层调用函数,它与 call 的核心区别在于不切换执行上下文,`msg.sender` 保持为原始调用者,修改的是调用者合约的状态(使用被调用合约的代码)。delegatecall 最典型的应用场景是代理合约,通过代理模式,可以实现合约的升级而不改变合约地址。使用 delegatecall 时,调用者和被调用合约必须有相同的存储布局,否则会导致数据混乱。
delegatecall
委托调用
代理合约
上下文切换
存储布局
EVM
Solidity
DeCert.me
发布于 2025-12-13
阅读 ( 96 )
Solidity瞬时存储
本文深入介绍了Solidity 0.8.24版本引入的瞬时存储(transient)特性,这是一种新的数据存储位置,数据仅在单个交易执行期间存在,并可在同一交易的多个合约调用之间共享。瞬时存储相较于storage更节省Gas,且具有自动清理的特性,非常适合用于防重入锁等场景。文章还对比了瞬时存储与其他存储位置的差异,并提供了使用注意事项和实战示例。
瞬时存储
transient
Solidity
以太坊
智能合约
防重入锁
DeCert.me
发布于 2025-12-13
阅读 ( 146 )
以太坊代理合约与升级
代理合约作为用户与实际业务逻辑之间的中介,用于解决智能合约部署后无法更改的问题。代理合约存储数据,实现合约包含逻辑,通过`delegatecall`在代理上下文中执行实现合约的代码,升级时替换实现合约。为避免存储冲突,可使用EIP-1967标准,为避免函数选择器冲突,可使用透明代理或UUPS模式。
代理合约
合约升级
delegatecall
EIP-1967
透明代理
UUPS
Solidity
DeCert.me
发布于 2025-12-13
阅读 ( 71 )
Solidity call 底层调用
本文深入讲解了Solidity中`call`底层调用函数。`call` 主要用于调用合约函数和转移以太币,允许在运行时动态决定调用目标合约和函数,无需预先知道合约接口。文章还介绍了如何使用 `call` 进行 ETH 转账,控制 Gas 数量,以及防范重入攻击的安全模式,并对比了 `call`,`delegatecall`,`staticcall` 三种调用方式。
call
ABI编码
底层调用
合约钱包
重入攻击
Solidity
DeCert.me
发布于 2025-12-13
阅读 ( 80 )
以太坊智能合约事件日志
本文介绍了以太坊中事件日志的概念、作用和访问方法。事件日志用于记录智能合约中发生的事件,通过交易回执中的 logs 数据项访问。事件日志由主题和数据组成,主题用于索引事件,数据存储额外信息。文章还介绍了事件签名、主题值的计算以及匿名事件。
以太坊
智能合约
事件日志
主题
数据
事件签名
Solidity
DeCert.me
发布于 2025-12-13
阅读 ( 151 )
以太坊智能合约中的数字签名
本文深入探讨了以太坊智能合约中数字签名的概念、原理和应用。数字签名用于验证消息的真实性和完整性,通过私钥签名消息,并使用签名恢复地址进行验证。文章介绍了如何在Solidity中使用`ecrecover`函数以及OpenZeppelin库进行签名验证,并探讨了例如白名单铸造等实际应用场景,以及签名重放攻击等安全注意事项和调试方法。
数字签名
ECDSA
ecrecover
Solidity
OpenZeppelin
消息签名
DeCert.me
发布于 2025-12-13
阅读 ( 100 )
以太坊透明代理模式
本文深入解析了以太坊透明代理模式,该模式通过调用者身份来区分调用目标,解决了代理合约与实现合约函数选择器冲突的问题。透明代理合约本身不定义任何显式函数,所有操作均在fallback 函数中处理,根据调用者是管理员还是普通用户,分别进行升级管理或转发到实现合约执行业务逻辑。同时,利用EIP-1967标准存储槽避免存储冲突,实现了对用户透明的合约升级。
透明代理
智能合约升级
EIP-1967
函数选择器冲突
代理模式
以太坊
Solidity
DeCert.me
发布于 2025-12-13
阅读 ( 141 )
Solidity合约内部创建合约
本文深入探讨了Solidity中合约内部创建合约的两种主要方法:`create`和`create2`。`create`通过`new`关键字快速部署新合约,合约地址由创建者地址和nonce决定。`create2`则允许开发者通过salt值预先确定合约地址,适用于可升级智能合约和确定性部署等高级场景,提供了更灵活的控制。
Solidity
智能合约
CREATE
CREATE2
合约部署
确定性部署
DeCert.me
发布于 2025-12-13
阅读 ( 73 )
以太坊 staticcall 静态调用
`staticcall`是地址类型提供的只读底层调用函数,用于安全地读取其他合约的数据,验证合约接口,估算Gas消耗以及进行安全检查。它保证不会修改状态,适合用于查询操作,但需要注意返回值检查,不支持发送ETH,且需手动解码返回数据。
staticcall
静态调用
只读操作
上下文切换
gas效率
安全性
Solidity
DeCert.me
发布于 2025-12-13
阅读 ( 106 )
以太坊ABI:编码与解码
本文详细介绍了以太坊ABI(应用程序二进制接口)的概念,ABI作为人类可读信息与以太坊虚拟机执行二进制数据之间的桥梁,定义了智能合约中可交互的方法、事件和错误。文章深入讲解了ABI接口描述、函数选择器的原理和应用、以及ABI编码和解码的具体过程,并提供了实用的Solidity编码函数和在线可视化工具,帮助开发者更好地理解和应用ABI。
ABI
以太坊
智能合约
编码
解码
函数选择器
Solidity
DeCert.me
发布于 2025-12-13
阅读 ( 131 )
Remix IDE: 合约开发环境
Remix IDE是一款基于浏览器的集成开发环境,无需安装即可使用,非常适合智能合约的初学者。Remix IDE支持Solidity代码的编写、编译、部署和调试,并可连接到模拟环境和真实的区块链网络。通过Remix,开发者可以快速上手智能合约开发,并与已部署的合约进行交互。
Remix IDE
智能合约
Solidity
以太坊
部署
编译
DeCert.me
发布于 2025-12-12
阅读 ( 493 )
( 6 )
Solidity 合约长什么样?
本文深入解析了Solidity智能合约的结构与语法,包括合约的定义、编译器版本声明、构造函数、状态变量与函数的可见性(public, external, internal, private),以及常量(constant)和不可变量(immutable)的用法。同时讲解了函数定义,包括参数、返回值和状态可变性(view, pure, payable),并提供了一个实践练习。
Solidity
智能合约
状态变量
函数
可见性
构造函数
DeCert.me
发布于 2025-12-12
阅读 ( 460 )
( 2 )
快速实现一个英式拍卖(English Auction)合约
前言本项目通过OpenZeppelin标准库实现一个完整的链上英式拍卖系统,涵盖NFT铸造、竞价、结算全流程。适合希望深入理解Web3拍卖机制、智能合约安全实践以及Hardhat测试框架的开发者。技术栈:Solidity:0.8.20+(支持最新安全特性)OpenZeppelin:
英式拍卖
Open Zeppelin
智能合约开发
木西
发布于 2025-12-12
阅读 ( 195 )
( 6 )
Solidity多重继承:让你的合约像搭积木一样牛到飞起
多重继承!在区块链上写智能合约,代码复用和模块化是王道,而多重继承就像搭积木,能让你把各种功能组合得飞起!想让合约同时有代币、权限控制、暂停功能?多重继承直接搞定!多重继承的核心概念先搞清楚几个关键点:多重继承:一个合约从多个父合约继承功能,复用代码和逻辑。Solidity继承机制:使
Solidity
智能合约
以太坊
天涯学馆
发布于 2025-12-10
阅读 ( 274 )
( 14 )
实践 Uniswap V2 版本测试网部署
UniswapV2部署与测试本文将详细说明如何使用Foundry在本地和Sepolia测试网上部署UniswapV2合约。✅已验证:本文档中的所有命令已在2025-12-01成功执行并通过测试。相关测试合约在本地及Sepolia测试网均已通过测试验证。
Oasis
发布于 2025-12-02
阅读 ( 480 )
( 23 )
Solidity 数据类型
本文介绍了Solidity中的数据类型,包括值类型、引用类型和映射类型。值类型如整型、布尔型在赋值时进行拷贝;引用类型如数组、结构体通过引用共享数据,需考虑数据位置(storage、memory、calldata);映射类型是键值对存储结构。理解这些类型以及它们在不同数据位置的行为是编写高效安全智能合约的基础。
Solidity
数据类型
值类型
引用类型
映射类型
storage
DeCert.me
发布于 2025-12-01
阅读 ( 179 )
‹
1
2
3
4
5
6
7
8
...
55
56
›
发表文章
我要提问
扫一扫 - 使用登链小程序
热门文档
»
Solidity 中文文档 - 合约开发
Foundry 中文文档 - 开发框架
Hardhat 中文文档 - 开发框架
ethers.js 中文文档 - 与链交互
Viem 中文文档 - 与链交互
web3.js 中文文档 - 与链交互
Anchor 中文文档 - 开发框架
以太坊改进提案EIP翻译
以太坊域名服务(ENS)文档
Etherscan API 手册 - 查询链上数据
热门百科
»
30天文章收益榜
»
ethbook
19 篇文章,852 学分
Tiny熊
201 篇文章,499 学分
zealynx
27 篇文章,345 学分
RareSkills
282 篇文章,291 学分
pineanalytics
71 篇文章,286 学分
×
发送私信
请将文档链接发给晓娜,我们会尽快安排上架,感谢您的推荐!
发给:
内容: