了解ERC20

本文假设读者至少已经熟悉以下概念:以太坊区块链,dapps,ether,智能合约 & ICO.

为了快速概括,以太坊区块链是一个基于分布式开源区块链的计算平台。这个计算平台,以太坊网络,托管着分散的应用程序(dapps),这些应用程序使用称为智能合约的代码块来执行。以太坊网络上的所有交易以及执行智能合约的计算成本均以太坊加密货币以太币支付.

这些dapp中的一些(但不是全部)(去中心化应用)需要额外的in-app货币-这些dapp引入其新货币,命名代币并通过初始代币发行(ICO)筹集资金.

以太坊区块链平台的构建方式可以鼓励各种dapp,包括需要创建,维护的dapp & 数字资产转移。可以实施这些特定于dapp的以太坊令牌,以创建具有有意义用例的dapp网络,例如 发票保理, 浏览器范围的付款, & 加密货币借记卡.

前面提到的所有想法都是当前基于以太坊的dapp令牌,遵循非常通用的令牌编程标准。实际上,所有已部署的以太坊令牌中有99%遵循此标准ERC20标准.

ERC20令牌标准代表以太坊请求评论,是一套标准的编程“规则”,所有基于以太坊的令牌都应遵循. 开发人员同意这六个功能 & 两个事件作为最小的可行令牌,以便在通过以太坊网络进行通信时规范预期的行为-通过建立此协议,以太坊开发人员能够轻松地与外部智能合约合作.

坚固性介绍

虽然最受欢迎的以太坊 客户 目前写在 Google的GO, 开发者友好的智能合约语言的选择很多。开发人员可以选择以下语言: 维珀, 竹子, & 坚固性.

在本文的其余部分,我们将重点介绍 & 演练Solidity语法.

Solidity是用于实现智能合约的高级面向合约的编程语言。对熟悉编程的人来说,Solidity语法是Javascript,Python的混搭, & C概念;它是静态类型,支持继承 & 一开始就拥有大量的库。有关Solidity的更多信息,请访问以下文档: https://solidity.readthedocs.io/en/develop/#

ERC20接口演练

我们将开始更深入地研究到底是什么 & 如何在以太坊网络中实施此标准-如前所述,我们将在Solidity语法中专门介绍该标准.

在以太坊地区,一切都开始了 & 以。。结束 合约. Solidity文档将合同定义为“代码集合(其代码 功能) & 数据(其 状态)位于以太坊区块链上的特定地址。”以太坊合约支持继承-因此合约可以是另一个合约的实例.

按照这种逻辑,严格定义为继承的抽象合约也可以通过定义新的合约来用作故障保险。 必须 为了编译而包含。这些抽象合约,也称为 接口合同.

这意味着,没有以下内容的ERC20实例的任何令牌合约都不会编译;相比之下,这意味着以太坊开发人员现在知道什么功能 & 与任何ERC20令牌进行交互时可以预期的行为.

ERC20标准是一个接口协定,其中包含总共六个可执行功能 & 两个记录事件.

津贴

允许功能允许两个地址创建重复的单向传输;钱包地址 tokenOwner & 一秒 钱包消费 被定义为将进行重复交易的两个钱包。具体来说,钱包支出者将提款 一些 来自钱包tokenOwner的金额为 一些 时间间隔–这两个都是变量,稍后会确定.

批准

对于“批准”功能,请返回我们的“允许”功能:该功能允许两个地址单向重复提取。适当命名的“批准”功能是一个简单的标准功能,它要求钱包所有者“批准”将在“津贴”的背景下代表他/她进行的交易。此功能需要两个输入,即支出者的地址 & 发送的令牌数量。输出返回一个公共布尔值,该布尔值指示提供批准还是拒绝批准.

余额

BalanceOf是一个直观的函数,它接受单个地址输入参数(地址tokenOwner) & 返回一个公共常量(单位余额)。返回的uint常数balance表示查询的地址持有的令牌数量-请记住,区块链上的交易通常是公开的,以太坊也没有什么不同.

总供应量

您可能会从名称中猜出,totalSupply函数是一个匿名构造函数,在部署到实时以太坊网络的第一刻仅运行了一次。该函数返回一个未分配的公共常量totalSupply整数(uint),充当令牌在剩余合同寿命中的总供给。通常,以两种方式之一定义此totalSupply常量:对变量进行硬编码或从来源钱包中筹集资金.

转移

转移功能是任何ERC20令牌的核心功能;它定义 & 直接实施 钱包所有者对等 令牌转移。由于钱包所有者进行此呼叫,因此仅需要两个参数:接收者地址 & 发送的令牌数量。这两个参数通常被初始化为(address to) & (uint令牌)。 Transfer返回值只是一个布尔值,用于确认接收方(“收件人”地址)是否接收到发送的令牌.

从转移

TransferFrom函数允许 智能合约 使用传递的参数执行传输 代表钱包所有者. 仔细与之前的区别 传输r功能。先前的功能允许 钱包所有者 直接将令牌发送到地址;这 从转移 允许一个 智能合约 代表钱包所有者发送代币,例如在交易所完成订单,及时释放资金或通过运气支付我们的奖金.

从转移 函数具有三个输入参数,钱包所有者的地址,接收者钱包的地址, & 发送的令牌数量。它们通常使用以下语法进行初始化:(地址从,地址到,uint令牌)。函数输出与Transfer输出完全相同:单个公共布尔值,详细说明事务的成功或失败.

概括

上面详述的六个功能是在当前所有有效的ERC20令牌中的99%中找到的六个核心功能。除了少数例外(以Golem的眼光来看),以太坊开发人员可以放心,他们在开发内部合同或在野外与外部公共合同进行交互时可以完全期望这些核心功能.

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me