Initializable库用于开发可升级合约或代理合约背后的逻辑合约。由于代理合约无法执行constructor函数,通常是将该函数逻辑放到一个external函数中(称为initialize函数)。本库可确保initializer函数全局只能被调用一次。
constructor
在手把手教你实现BigBank文章中,我们实现了一个稍微复杂点的存款、取款业务。但是聪明的你可能发现了,我们的BigBank虽然名字中带有big,但是有一个明显的缺点:它只能存入和取出ETH原生代币,面对广大的符合ERC20标准的Token却无能为力。
在Remix中将BaseERC20合约部署到Sepolia并编写和部署TokenBank合约对代币进行存取操作
在Solidity中,引用类型(如structs、arrays和mappings)需要明确标注其存储位置。存储位置决定了数据的生命周期和可访问性。以下分了3种真实场景来介绍。
写一个0转账攻击合约
Web3学习之GAS机制与手续费详解GAS机制GAS机制是一个比较重要的一个东西,因为我们在传统的开发里面就没有这个东西。GAS是一个特有的EVM的一个计价方式。因为在程序里面有一个问题叫图灵死机的问题。就是你没有办法证明一个程序,它是可以终止。我们在写代码的时候,例如我们写了一个赋
在手把手教你实现Bank智能合约这篇文章中,我们认真拆解了需求,罗列了相关的知识点,已经实现了基于权限控制的存款和取款逻辑。这篇文章,我们会提升难度,不仅仅要实现功能,还要思考怎么合理的去设计一个合约。
分析以太坊虚拟机各语言设计
在前面的系列文章中,我们已经学习了solidity的一些基础概念和知识,单纯的知识点学习起来比较枯燥,这一节我们会通过一个简单的示例来将这些知识整合起来。我们期望实现一个名为Bank的合约。
在本文中,我们将讨论通过 WebSockets 使用实时加密数据以及提供类似服务的头部 WebSockets API
在本文中,我们将介绍一些最佳的欺诈和风险监控工具。
ERC1967Proxy库实现了一个基于ERC1967标准的代理合约。通过改变存储于ERC1967标准规定的_IMPLEMENTATION_SLOT号slot中的代理合约地址,代理合约便实现了合约逻辑可升级的功能。
ERC1967Upgrade库实现了基于ERC1967标准(代理合约的slot分布)的slots读写函数,并在对应slot更新时emit出标准中相应的event。对于各种可升级合约和代理合约的实现而言,本库的作用举足轻重。
EVM(以太坊虚拟机)的堆栈指令是智能合约操作的基础,使用这些指令可以对堆栈中的数据进行各种操作。
使用Solidity有一段时间,同步沉淀下来一些好用的工具以及Solidity合约的常用技巧分享,这些知识都是价值X亿,希望对大家有帮助
在以太坊上进行交易和执行智能合约时,Gas费用是一个重要的考虑因素。Gas费用不仅影响用户的成本,也影响区块链的效率和吞吐量。以下是一些常见的以太坊Gas优化方法:1.优化智能合约代码a.减少存储操作存储(Storage)操作是最昂贵的操作之一。尽量减少对状态变量的写操作。使用map
警惕科学家钓鱼合约
本文提供了对智能合约暂停功能设计的一种改进方案
ERC-1363 标准在 ERC-20 标准上的补充,可以在转账的时候触发 Hook 的调用。
在Solidity中,view和pure是用于修饰函数的两个关键字,它们表明了函数对区块链状态的修改程度
扫一扫 - 使用登链小程序
59 篇文章,299 学分
35 篇文章,244 学分
108 篇文章,224 学分
21 篇文章,196 学分
9 篇文章,163 学分