本文将从智能合约升级的原理、多种代理模式全面讲解智能合约升级。理解合约升级的设计模式。
可变长度的数据,ABI 采用了一种指针和数据分离的方式进行编码。
掌握8种常见的合约设计模式
关于合约之间调用的指令 call、callcode、delegatecall 和 staticcall。
call
callcode
delegatecall
staticcall
在 Solidity 中关于 tx.data 有约定俗成的用法。
关于 log 的指令。
log
本章我们来看看 return(p, s) revert(p, s) keccak256(p, n) 这三条指令。
return(p, s)
revert(p, s)
keccak256(p, n)
本文详细介绍了如何使用 OpenZeppelin 库和 Hardhat 框架创建和部署可升级智能合约。通过分步指南,读者了解了合同的创建、测试、部署及升级的过程,还涉及了环境设置、合约验证和资金管理等重要步骤,对于具备一定基础的开发者来说,非常实用。
Solidity是一种高阶编程语言,用于在以太坊和许多EVM兼容区块链上编写智能合约。本文深入探讨了Solidity的背景、工作原理以及其关键特性、应用和开发工具,旨在帮助开发者掌握Solidity编程技能,并指出学习资源以支持他们的学习。
一些内存使用的注意事项。
Solidity 是如何使用内存的?
从本章开始,我们来研究内存布局。
数组与映射是如何存放在“存储槽”的?
本文为以太坊开发新手提供了一份关于如何使用Solidity编写智能合约的详细指南。文章介绍了以太坊、智能合约和Solidity的基本概念,并提供了一个简单的智能合约示例与部署步骤,适合初学者学习。该指南还强调了Ropsten测试网的使用,并提供了有关设置和使用Remix IDE的说明。
for 循环与 if 语句。
使用 OpenZeppelin Monitor 监控智能合约的链上活动
UpgradeableBeacon库是信标代理模式中的信标合约的实现,与一个或多个BeaconProxy库实例配合使用。所有到BeaconProxy的调用都会被委托到本库指向的逻辑合约上。本库的owner具有更换逻辑合约地址的权限,从而实现信标代理合约的升级功能。
BeaconProxy
这篇文章详细介绍了Solidity中的字符串处理,包括其动态大小、UTF-8编码、字符串长度的计算、字符访问及Unicode支持等核心概念。此外,还介绍了在Solidity 0.8.12版本中新增的字符串拼接功能。文章通过代码示例清晰地展示了每个概念,使读者能更好地理解和应用这些知识。
这篇文章详细介绍了Solidity中的结构体(struct)及其用法,包括如何声明、实例化和作为函数参数传递结构体。通过示例代码,作者展示了如何利用结构体提高代码的可读性和效率,并提供了一个现实生活中的用例,如购票系统,帮助开发者理解结构体的实际应用。
在以太坊上使用Solidity和Foundry结合Flashbots实现交易捆绑
扫一扫 - 使用登链小程序
382 篇文章,766 学分
117 篇文章,507 学分
113 篇文章,486 学分
67 篇文章,478 学分
229 篇文章,333 学分