🍁 金秋送福,大奖转不停!Gate 广场第 1️⃣ 3️⃣ 期秋季成长值抽奖大狂欢开启!
总奖池超 $15,000+,iPhone 17 Pro Max、Gate 精美周边、大额合约体验券等你来抽!
立即抽奖 👉 https://www.gate.com/activities/pointprize/?now_period=13&refUid=13129053
💡 如何攒成长值,解锁更多抽奖机会?
1️⃣ 进入【广场】,点头像旁标识进入【社区中心】
2️⃣ 完成发帖、评论、点赞、社群发言等日常任务,成长值拿不停
100% 必中,手气再差也不亏,手气爆棚就能抱走大奖,赶紧试试手气!
详情: https://www.gate.com/announcements/article/47381
#成长值抽奖赢iPhone17和精美周边# #BONK# #BTC# #ETH# #GT#
ERC-20代币深入解析
前言
以太坊作为一个去中心化应用程序(DApp)的开源平台,于2014年由Vitalik Buterin创立。Buterin建立这条全新区块链的动机,很大程度上是因为比特币协议缺乏足够的灵活性。
自问世以来,以太坊区块链吸引了众多开发者、企业和创业者,催生了一个新兴产业,让用户能够部署智能合约和分散式应用程序。
本文将深入探讨ERC-20标准,这是一个创建代币的关键框架。尽管仅适用于以太坊网络,但它启发了其他区块链标准的诞生,如Gate链的GEP-2。
ERC-20标准解析
在以太坊生态中,ERC代表"以太坊注释请求"(Ethereum Request for Comments)。这些技术文档概述了以太坊的编程规范。需要注意的是,ERC不同于以太坊改进提案(EIP),后者类似于比特币的BIP,主要涉及协议本身的改进建议。ERC的目标是在应用程序与合约之间建立便于互操作的协议。
ERC-20由Vitalik Buterin和Fabian Vogelsteller于2015年共同制定,为基于以太坊的代币提供了一种相对简单的标准格式。遵循这一规范,开发者无需重新设计,可以直接在现有行业基础上进行构建。
一旦创建了新的ERC-20代币,它们就能与支持ERC-20标准的各种服务和软件(如软体钱包、硬体钱包和交易平台等)自动实现互操作。
值得一提的是,ERC-20标准现已演变为EIP(特别是EIP-20)。尽管距离最初广为流传的提案已经过去多年,而且此后又经过了几年的发展,"ERC-20"这个名称仍然被广泛使用。
以太坊代币概览
与ETH(以太坊的原生加密货币)不同,ERC-20代币并不直接存储在账户中,而是仅存在于合约内部,如同一个独立的数据库。它定义了代币的规则(如名称、符号、可分割性),并维护了一个映射用户余额的以太坊地址列表。
要转移代币,用户需要向智能合约发送交易,要求合约将部分余额重新分配。举例来说,如果Alice想给Bob发送5,000个Gate学院代币(GateAcademyTokens),她会在相应的智能合约中调用函数来执行这一指令。
她的调用指令包含在一笔看似普通的以太坊交易中,该交易向代币合约支付了0个ETH。这个调用包含在交易的其他栏位中,指明了Alice的意图——在这个例子中,她希望将代币转给Bob。
即使不发送以太币,Alice仍需支付一定的费用,以确保交易被纳入区块。如果没有ETH,她应该在转移代币前先储值一些ETH。
以下是Etherscan上的一个实际案例:某用户调用了一个BUSD合约。可以看到代币已经转移,并支付了手续费,尽管价值栏显示发送了0个ETH。
接下来,我们将深入探讨典型ERC-20合约的结构。
ERC-20代币的创建过程
根据ERC-20标准,您的合约必须实现六个必要函数:totalSupply、balanceOf、transfer、transferFrom、approve和allowance。此外,还可以定义一些可选函数,如name、symbol和decimal。这些函数的名称基本上能反映其功能,不过即使不太理解也不用担心,我们会在后续内容中逐一解释。
以下是使用以太坊专用的Solidity语言呈现的函数。
totalSupply函数解析