以下是ERC20标准中的主要接口及其含义: 1.name(): 返回代币的名称。2.symbol(): 返回代币的符号,通常是代币名称的缩写。 openzeppelin/contracts/token/ERC20/ERC20.sol"; contract MyToken is ERC20 { constructor(uint256 initialSupply 库中的ERC20合约,继承了它的功能。 自定义ERC20合约 要自己实现ERC20相关的接口,需要遵循ERC20标准,并使用Solidity编写智能合约。 以下是一个简单的ERC20代币示例合约,使用Solidity编写,实现了ERC20标准中的主要接口: // SPDX-License-Identifier: MIT pragma solidity ^0.8.25
怎样安全的处理 ERC20 转账 // 不正确的版本 import "https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master /contracts/token/ERC20/IERC20.sol"; function interactWithToken(uint256 sendAmount) { // some code 这就是为什么 OpenZeppelin 的 ERC20 (代码[6])实现中这样做,也是我建议这样做的原因。 而对于返回值的做法,是有争议的。 你可以像下面这样用它: import "https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20 SafeERC20.sol"; import "https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20
这里不深究发行token的对与错,这里我们讲下ERC20。 大家都来发token,那么这么多的token没有一个统一的标准,不好在以太坊平台进行通用的转让呀,为了便于token的流通,于是出现了一个token的标准叫做ERC20,简单点说,ERC20规定了token 具体的方法和事件名请看 ERC-20标准说明 Application Binary Interface(ABI) 这篇文章其实是讲ERC20攻击的,要想攻击ERC20,我们首先要知道怎么去跟以太坊虚拟机进行交互 ERC20 Short Address Attack 就是在这个函数补全上面出现的。 ERC20 Short Address Attack 我们先看一个简单的token合约,用来转账。 这个就是ERC20 Short Address Attack。 怎么利用? 攻击者构建一个最后一个字节为0的地址A。
ERC20 Token Solidity 0.4.23 5.2.1. 官方规定 Method 方法 所有的ERC20代币都是按照下面这些方法来定义的。下面我们讲解一下每个方法的作用。 5.2.2.1. name function name() view public returns (string name) 返回string类型的ERC20代币的名字,例如:Netkiller Reader Coin 5.2.2.2. symbol function symbol() view public returns (string symbol) 返回string类型的ERC20代币的符号,也就是代币的简称
但是可能不少人还不知道如何发送 ETH 以外的 ERC20 Token,或者说不知道怎么发送钱包里面没有显示出来的 token。 以下截图的 parity 版本为 v1.9.1: 找到 VIU 的 ERC20 地址 0x519475b31653e46d20cd09f9fdcf3b12bdacb4f5。 确认 参考: transfer ERC20 tokens from Parity
ERC20 代币合约 pragma solidity ^ 0.4 .16; interface tokenRecipient { function receiveApproval(address _from
看这篇文章需要对以太坊,代币,ERC20,智能合约等编程开发概念有基本了解。 什么是ERC20 可以把ERC20简单理解成以太坊上的代币协议,所有基于以太坊开发的代币合约都遵守这个协议。 说白了,你要是想在以太坊上发行代币融资,必须要遵守ERC20标准。 ERC20的标准接口是这样的: contract ERC20 { function name() constant returns (string name) function ; event Approval(address indexed _owner, address indexed _spender, uint _value); } name 返回ERC20 基于ERC20编写的一个代币合约 pragma solidity ^0.4.16; contract Token{ uint256 public totalSupply; function
基于ERC20协议的智能合约demo 初次接触加密货币圈的人可能会有些困扰。 在本文中,考虑诸如代币标准、ERC20、ERC721 等术语。 三、了解 ERC 代币标准 3.1 ERC20:可替代的/同质化代币标准 ERC20 于 2015 年首次实施,利用该代币标准,开发者可为基于以太坊的应用程序或协议创建可替代的/同质化代币。 什么? 在这一点上,以 UNI 或 LINK 这样的加密资产为例,即基于以太坊的协议 Uniswap或Chainlink的 ERC20 代币。 3.3 ERC1155:多重代币标准 ERC20 和 ERC721 标准的问题在于,它们仅允许一个智能合约支持单一类型的可替代/同质化或不可替代的/非同质化代币。 如果采用 ERC20 和 ERC721 标准,那么创建每一种新的资产类型时他们都必须要编写新的智能合约作为支持。
合约介绍 2.1 什么是ERC20标准 ERC20 通证标准(ERC20 Token Standard)是通过以太坊创建通证时的一种规范。 按照 ERC20 的规范可以编写一个智能合约,创建“可互换通证”。它并非强制要求,但遵循这个标准,所创建的通证可以与众多交易所、钱包等进行交互,它现在已被行业普遍接受。 详见:https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md 2.2 ERC20接口 contract ERC20 { function $ cargo contract new erc20 Created contract erc20 $ tree erc20/ erc20/ ├── Cargo.toml └── lib.rs /erc20/target/metadata.json 4.4 上传WASM ? ? ? 4.5 部署合约 ? ? ? 5 ERC20合约执行 5.1 执行合约 ? ?
可能出现错误:ERROR: error building wasm module, confirm target wasm32-unknown-unknown is installed 继续安装
合约介绍 2.1 什么是ERC20标准 ERC20 通证标准(ERC20 Token Standard)是通过以太坊创建通证时的一种规范。 按照 ERC20 的规范可以编写一个智能合约,创建“可互换通证”。它并非强制要求,但遵循这个标准,所创建的通证可以与众多交易所、钱包等进行交互,它现在已被行业普遍接受。 ERC20定义了一些标准的接口函数:balanceOf 、 totalSupply 、transfer 、transferFrom 、approve和allowance 。 [image.png] 详见:https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md 2.2 ERC20接口 contract ERC20 $ cargo contract new erc20 Created contract erc20 $ tree erc20/ erc20/ ├── Cargo.toml └── lib.rs 3.2
目前绝大多数代币都基于 ERC20 标准。ERC20 后来变成了以太坊改进提案 20(EIP-20),但是大部分仍然使用它最初的名字,ERC20。 ERC20 是一个同质化代币标准,意思是不同的 ERC20 代币是可互换的并且不具有独特属性。 ERC20 需要的函数和事件 一个 ERC20 的代币合约必须至少提供下面这些函数和事件: totalSupply: 返回当前代币总量,可以是一个固定值或者变量。 ERC20 接口是用 Solidity 定义的。 ERC20 workflow ERC20 实现 虽然大约 30 行 Solidity 代码就可以实现一个 ERC20 代币,但大部分的实现都是更复杂的。这是为了解决潜在的漏洞。
标准规定了哪些内容 ERC20 是各个代币的标准接口。ERC20 代币仅仅是以太坊代币的子集。 为了充分兼容 ERC20,开发者需要将一组特定的函数(接口)集成到他们的智能合约中,以便在高层面能够执行以下操作: 获得代币总供应量 获得账户余额 转让代币 批准花费代币 ERC20 让以太坊区块链上的其他智能合约和去中心化应用之间无缝交互 一些具有部分但非所有ERC20标准功能的代币被认为是部分 ERC20兼容,这还要视其具体缺失的功能而定,但总体是它们仍然很容易与外部交互。 ERC20 标准 ERC20 标准定义了一个兼容协议, 需要实现的函数. 具体如下. 因为,从现实情况来看,不管用何种方式,从ERC20转换到ERC223是不可能的,同样的,所有ERC20令牌都需要在ERC223标准下重新部署。这也意味着任何交易平台的上市都需要更新他们的信息和地址。
中国广东省深圳市龙华新区民治街道溪山美地 518131 +86 13113668890 <netkiller@msn.com>
ERC20规范ERC20约定了一个代币合约需要实现的接口:// 接口标准contract ERC20 {function totalSupply() constant returns (uint totalSupply public constant symbol = "4FC";uint8 public constant decimals = 18; // token的精度, 大部分都是18}上面的代码是一个标准的ERC20 允许用户可花费的代币数;事件函数说明这里两个Event是重点, 事件,可以被前端js代码捕获到并进行相应的处理:event Transfer() Token的转账事件event Approval() 允许事件ERC20
什么是以太坊ERC20和ERC721 首先,ERC是什么? ERC是由Etherum开发人员为益泰坊社区编写的。 那么ERC20和ERC721代表什么,它们之间有什么区别 先简单介绍一下什么是ERC-20和ERC-721。 1、ERC-20 ERC-20是最广为人知的标准。 在这个例子中,我们可以看到ERC20令牌和ERC721令牌之间的两个区别: 1.ERC-20标准的令牌没有价值区分,可以互换;ERC-721标准中的令牌不可互换,每个令牌都有唯一的标识。
然后我们会在remix这款智能合约在线IDE上的完成ERC20智能合约的开发、编译、部署、调试。 我们看到我们创建的账号已经成功接入remix,接下来,我们便可以进行ERC20合约的开发和部署了。 3 合约开发&部署 3.1 智能合约编写 我们要编写两个合约,其中SafeMath.sol是一个算数运算防溢出的安全库,xyc.sol是一个ERC20智能合约。 智能合约编译成功,接下来我们就将已经开发完成的Solidity ERC20智能合约部署到Substrate链上。 4 合约功能测试 通过remix完成对ERC20合约的功能测试。 4.1 查看发行量&余额 ? 可见所有发行代币都归属于合约部署方地址。
本文将以一个简单的 ERC20 合约为例,介绍如何使用Foundry进行合约的编写。 安装依赖编写 ERC20 合约,我们需要借助 OpenZeppelin,使用下面的命令安装依赖: $ forge install OpenZeppelin/openzeppelin-contracts sol";import "@openzeppelin/contracts/access/Ownable.sol";/** * @title MyToken * @dev 一个基于OpenZeppelin的ERC20 代币合约示例,继承了ERC20标准和Ownable权限管理 */contract MyToken is ERC20, Ownable { /** * @dev constructor, initializes token * @param symbol of the token */ constructor(string memory name, string memory symbol) ERC20
在Substrate链上跑Solidity ERC20智能合约 jasonruan 2020.07.18 1 前言 本实践案例中,我们首先会搭建和启动一条substrate链,再通过MetaMask这款著名的以太坊钱包浏览器插件 然后我们会在remix这款智能合约在线IDE上的完成ERC20智能合约的开发、编译、部署、调试。 ] 2.3 remix接入MetaMask 使用Injected Web3建立与MetaMask账号的连接 [image.png] 我们看到我们创建的账号已经成功接入remix,接下来,我们便可以进行ERC20 3 合约开发&部署 3.1 智能合约编写 我们要编写两个合约,其中SafeMath.sol是一个算数运算防溢出的安全库,xyc.sol是一个ERC20智能合约。 = address(0), "ERC20 ERROR: transfer from zero address"); require(value <= _balances[msg.sender
在解释ERC20、ERC721之前,需理出一个概念,就是同质化代币(Fungible Token, FT)和非同质化代币(Non-Fungible Token)。