教程网

您现在的位置是: 首页 > 项目

ERC

ERC
一.ERC-20 token合约是什么?ERC-20是基于以太坊区块链上设计和使用的token合约。只要遵循一系列规则,就可以共享、交换其他新的token,或者转移到加密钱包中。以太坊区块链创建

一.ERC-20 token合约是什么?

ERC-20是基于以太坊区块链上设计和使用的token合约。只要遵循一系列规则,就可以共享、交换其他新的token,或者转移到加密钱包中。以太坊区块链创建了这些规则,其中包括三条可选规则和六条强制性规则。可选择的◆Token Nam◆Symbol◆Decimal 强制性的◆totalSupply◆balanceOf◆transfer◆transferFrom◆approve◆allowance

还不明白?没事,我们从最基础的开始

二、首先,以太坊是什么?

以太坊是一个分布式的计算机软件,具有两个基本功能,一是可以记录储存数据并计算的区块链,二是可以产生智能合约的虚拟机。由于这两个功能,以太坊能够支持去中心化应用程序(DAPP),这些DAPP都是搭建在以太坊区块链上,搭载其基础技术。 作为回报,以太坊向开发者收取一定的费用,而这只能用以太坊平台的数字货币。根据不同的用途,DAPP可能会搭建ERC-20 token来以作为货币、公司的股份、会员制中的积分,甚至是所有权的证明。就像一定量的黄金或房子的地契。

三、哪些智能合约在适合?

使用ERC-20 token搭建的智能合约方便智能合约代币的交易,并在帐户中记录代币的余额。智能合约是用Solidity语言编写的,是基于IFTTT逻辑的。可以把这想象成一台自动售货机。

四、智能合约创建代币后会会发生什么?

这就是ERC-20引入的地方了。在创建了代币之后,它可以被交易、花费或给予他人。ERC-20是以太坊网络上所有代币使用的通用语言,它允许一个代币与另一个代币进行交易。想象一下搭建一个加密DU Chang,就像在现实里一样,为了简单起见,我们希望我们的玩家使用我们的筹码。所以,一位玩家用他们的代币来混去我们的代币,然后走向扑克桌。

五、让我们来看看我们的“加密赌场”中ERC-20的每一条规则。

它们对于开发者来说非常重要。让我们从可选规则开始:Token Name: Blu Chip(名称)Symbol: BLU(代币名称)Decimal: 2*(精确到小数点后两位)我们希望我们的代币是可分割的,这样最小的DU注是0.01 Blu。我们可以将代币从0.到1BLU之间划分或者将小数点后尾数直接提高到18.从而得到0.00000000000001 BLU,这是最低可能的划分,灵活的划分可以让我们使用更简单。

六、现在是强制性规则了:什么是[totalSupply]?

totalSupply是创建的ERC-20代币的总量。我们的du chang 首先需要的是总共有多少BLU代币在流通。假设我们的扑克桌总共有10个BLU和十个玩家。

七、那什么[transfer]呢?

transfer允许将一定数量的代币从总发行量转移到用户帐户。在游戏开始之前,玩家必须从经销商那里获取到他们的BLU。每个玩家得到一个BLU。

八、这个功能[balanceOf]是做什么的呢?

当执行[BalanceOf]函数时,它将返回给定地址获取其帐户中的代币数量。在我们的扑克游戏的第一手,5名玩家看了看他们的牌,决定不玩。剩下的5人都决定赌5个BLU。使用[BalanceOf],我们看到五个玩家每个拥有1个BLU,5个有5个BLU。

九、如何从其他用户获得ERC-20代币?

[TransferFrom]是允许用户向另一个用户转移代币的函数。好消息!你赢得了第一名,从其他球员那里得到了2.5BLU。但是为了从他们那里拿到它,你就需要[TransferFrom]。没有这个,怎么能阻止别人偷你的BLU?

十、有什么办法可以制造假代币吗?

完全不可能,因为[approve]可以根据总发行量来检查交易量。它能确保没有丢失或额外的代币。保证我们的扑克游戏的完整性,是通过确保没有人带来额外的Blu到桌子。因此,[approve]通过检查Blu的总数10来允许交换。

十一、我能谎称我有比我实际更多的代币吗?

不可能在交易发生之前,通过[ABRANY]函数可以检查用户帐户的余额,如果没有足够的代币,将取消交易。我们不能损坏在我们的“加密DU Chang”的信用,所以我们需要确保每个球员有足够的Blu作为他们的DU 注。如果他们只有1个BLU,那么他们就不能赌2个BLU的。

十二、ERC-20的好处是什么?

基本上,它让一切变得更简单。在使用ECR-20 token之前,开发人员可以在代码中使用其他术语。一种令牌使用[totalAmount],而另一种使用[totalNumber]。交易和钱包需要建立他们的平台来适应每一个人一个代币的代码。有了通用标准后,新的代币可以交易或转移到自动创建的钱包。ERC-20也使得新代币的创建变得非常容易,这也是以太坊在2017年成为最受欢迎的ICO平台原因。

十三、ERC-20有什么问题吗?

ERC-20其实并不完美。ERC-20标准没能解决一些问题。在有些情况下,当用的不是以太坊的智能合约的时候代币可能会无意中被销毁。一个可能会计损失近300万美元。为了修复这个错误,以太坊社区目前正在开发一个新的标准。命名为ERC-223.然而,这个标准与ERC-20不兼容,因此鼓励开发人员继续使用ERC-20.直到实现了兼容性为止。2018年4月,由于批量溢出的错误,许多交易所暂停了基于以太坊的代币存储和提取。它被描述为“典型的整数溢出问题”,而且可能允许攻击“拥有大量代币”的人。有人指出,目前还没有修复这些漏洞的安全方法。

十四、足够的假设,那什么是现实世界的例子呢?

以太坊平台上的每个代币都是ERC-20 token合约。让我们看看其中的一些Eos目前是全球第五大加密货币,市值近120亿美元,它正试图建立一个能够利用区块链通信的网络。Tron(TRX)在所有加密货币中排名第十,被描述为“数字娱乐业的开放源代码协议”。它的目标是推出一个内容平台,使得不同背景的人拥有不同的生态系统。

一个“企业级公共区块链平台”VeChain(VEN)是市值第15位的加密货币,计划实施物联网(IoT)技术,为每个产品提供私钥,以便追踪它们。

ERC20基本信息

币种名称:ERC20

币种概念:智能合约

团队规模:----

上线时间:2017-11-10

所在国家:海外

官方网址:https://belance.io/

区块查询:https://etherscan.io/token/0x26d5bd2dfeda983ecd6c39899e69dae6431dffbb

白皮书:查看白皮书

项目介绍

ERC20指数是一个代币化的加密货币指数,追踪和投资20个顶级代币,每周重新分配一次,每周以 ETH的形式分红至前20名持有者的钱包,并完成ERC20指数的广告和开发。

合作伙伴

交易平台

Mercatox

具体要求

资料准备,完善的项目资料以及相关区块链媒体报道,包括但不限于以下:

官方公告:(资料的完整和准确 中会详细说明)

团队背景:

项目基本情况:

媒体报道:

收录的交易所:

代币转账调用智能合约需要的 Gas limit(默认值 60000)

Token Profile 提交:

参考模版:https://github.com/consenlabs/token-profile/pull/1636/files

对资料的要求

资料的完整和准确

你需要对提交的资料负责,务必保证所提资料真实有效。参考示例模版,完善的资料有助于 imToken 团队更了解你们的项目,加速显示进度。

为确保资料提交的真实性,请在贵方官网或其他经过认证的社交媒体渠道发布公告,并将此公告链接附于「官方公告」。推荐文案:

#imToken# #1636# 我们正在完善 XXX 在 imToken 中的代币相关资料。完成后,大家就可以在 imToken 里看到 logo,更方便地管理 XXX 了,还能看到更多代币信息。

注:1636 为 pr 序号,如 https://github.com/consenlabs/token-profile/pull/1636 的序号为 1636.这是帮助 imToken 判断 pr 真实性的关键。

#imToken #1636 标签及其展示形式可自行调整。

若未提供「官方公告」,则无法显示代币信息。

Logo 设计要求

尺寸: 120x120 像素

图片为透明背景的 PNG 格式

品牌标识水平竖直居中顶边,见下图

具体如何操作?

建议由技术人员协助完成

Fork 这个仓库到你的账户

克隆到本地,注意:不是直接克隆最原始的仓库,而是克隆你 fork 的那个仓库

gitclonegit@github.com:xxxxxxxx/token-profile.git

cdtoken-profile/

创建并且切换到用你的 token symbol 命名的分支里 举例:

gitbranchxxx-token

gitcheckoutxxx-token

在 erc20 目录里添加一个新的 json 文件,使用你的代币合约地址命名这个文件,注意合约地址需要有大小写做了 checksum举例:0xf90f1648926005A8bb3ed8ec883164De7F768743.json Checksum 转化工具

json 文件请使用 UTF-8 编码,否则 Travis-CI 会构建失败。请参照模版文件补充完整的代币资料:$template.json

代币 Logo 放到 images 目录里,图片名称也是使用 checksum 代币合约地址命名

Commit 并且 Push 提交信息到你的仓库 举例:

gitadd-A

gitcommit-m“Addxxxtoken”

gitpushoriginxxx-token

在你的仓库页面下点击 New pull request 按钮 ,并附上项目资料、官方公告以及相关区块链媒体报道,包括但不限于以下:(官方公告;团队背景;项目基本情况;媒体报道;收录的交易所;代币转账调用智能合约需要的 Gas limit)

PR 示例:https://github.com/consenlabs/token-profile/pull/1636

我们会尽快核实你的 PR,如果 PR 没问题我们会合并到主分支下,至此你的代币资料将会出现在 imToken App 内

常见问题

如何显示价格?

imToken 目前的价格显示对接 block.cc 的 API,如需在 imToken 中显示价格,你们的代币要求被 block.cc 收录;并在 GitHub Issues 提供相关资料,提交示例模版:https://github.com/consenlabs/token-profile/issues/3565

关于重名及修改合约

在 imToken 1.0 里,如果你的项目名称和其它项目重复,我们会在后面加数字,如 TFT1、TFT2、TFT3 等;如果你希望去掉数字,我们首先声明,这是一个非常危险的操作,修改代币信息后,代币会突然消失,容易引起用户恐慌,原则是对于持币人数多的项目,我们建议项目方推荐用户下载使用 imToken 2.0.imToken 2.0 通过代币合约地址来区分代币,所以不存在代币名称重复。

其他情况,如需修改合约地址,需要项目方在社区发布修改 Symbol 公告,告知用户需要重新搜索添加。并在 GitHub 提交新的 PR,将旧合约 Symbol 增加 _OLD,如 TFT_OLD,然后提交新的代币合约和 Logo,如下图所示,并把公告链接在 PR 下留言,我们会核实情况修改。

无法通过合约搜索

通过合约地址搜索不出来的情况,请查看是否是并未有成功的转账记录,另外请在 Etherscan verify 你的合约信息,我们可以帮你手动添加。

1、摘要

通过本文学习,了解ERC定义及知名ERC协议标准,如ERC20以及ERC223、ERC621.ERC777.ERC827.ERC1410协议; ERC721以及 ERC875.ERC1155.ERC998协议,ERC 865等描述和定义。

2、ERC的定义及标准列表

ERC代表“Etuereum Request for Comment”,这是Ethereum版的意见征求稿 (RFC),RFC是由互联网工程任务组制定的一个概念。 RFC中的备忘录包含技术和组织注意事项。 对于ERC,意见征求稿中包括一些关于以太坊网络建设的技术指导。

ERC是Ethereum开发者为以太坊社区编写的。 因此,ERC的创建流程中包括开发人员。 为了创建一个以太坊平台的标准,开发人员应当提交了一个以太坊改进方案(EIP), 改进方案中包括协议规范和合约标准。 一旦EIP被委员会批准并最终确定,它就成为ERC。 EIP的完整列表可以在GITHUB网址找到。

EIP有4种状态:

草稿(Draft) - 处于打开状态,便于考察讨论;

接受(Accepted) - 即将被接受,例如将包含在下一个硬分叉中;

定稿(Final)- 在上一个硬分叉中被接受,已定稿;

延期(Deferred)- 不会马上被接受,但也许在将来的硬分叉版本会考虑。

最终确定的EIP为以太坊开发者提供了一套可实施的标准。 这使得智能合约可以遵循这些通用的接口标准来构建。

ERC-20是整个加密社区中最为人熟知的标准,在Ethereum平台之上发布的大多数通证(token)都使用它。

3、ERC20系列 – ERC20、ERC223、ERC621、ERC777、ERC827、ERC1400

3.1 ERC20标准

状态:

定稿(Final)

提交记录:

https://github.com/ethereum/EIPs/issues/20

标准说明:

https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md

推荐样例:

https://github.com/OpenZeppelin/openzeppelin-solidity/tree/master/contracts/token/ERC20

ERC-20标准中定义了以下函数接口:

totalSupply():

返回代币供给总量

balanceOf(address _owner):

返回_owner的帐户余额

transfer(address _to,uint256 _value):

并将数量为_value的代币转入地址_to并触发transfer事件

transferFrom(address _from,address _to,uint256_value):

将地址_from中的_value数量的代币转入地址_to ,并触发transfer事件

approve(address _spender,uint256 _value):

允许_spender提取限额_value的代币

allowance(address _owner,address _spender):

返回_spender可从_owner提款的代币数量上限

ERC-20于2015年提出并于2017年9月正式实施。这是代币标准化的一个很好的起点。 然而,开发者社区 已经注意到它存在一些缺陷和漏洞,此外,还有一些场景它不能很好的满足。因此陆续提出了其他的ERC标准。

3.2 ERC223

状态:

草稿(Draft)

提交记录:

https://github.com/ethereum/EIPs/issues/223

标准说明:

 1/5    1 2 3 4 5 下一页 尾页