当前位置: 首页 > news >正文

房屋 哪个网站做的最好搜外滴滴友链

房屋 哪个网站做的最好,搜外滴滴友链,网站配图尺寸,做网站的公司哪家靠谱两个概念 ERC(Ethereum Request for Comment) 以太坊意见征集稿EIP(Ethereum Improvement Proposals)以太坊改进提案 ERC和EIP用于使得以太坊更加完善;在ERC中提出了很多标准,用的最多的标准就是它的Token标准; 有哪些标准详细见https://eips.ethereum…

两个概念

  • ERC(Ethereum Request for Comment) 以太坊意见征集稿
  • EIP(Ethereum Improvement Proposals)以太坊改进提案

ERC和EIP用于使得以太坊更加完善;在ERC中提出了很多标准,用的最多的标准就是它的Token标准;
有哪些标准详细见https://eips.ethereum.org/erc

常见ERC标准

ERC-20Token Standard
ERC-721Non-Fungible Token Standard
ERC-165Standard Interface Detection
ERC-777Token Standard
ERC-1155Multi Token Standard

ERC-20

主要是指同质化代币标准(不同人持有的一个代币是等值的)。
ERC-20标准中主要有6个函数和两个事件
在这里插入图片描述
其中这6个函数表达的意义是:
totalSupply:总发行量
balanceOf:账户余额
transfer:转账
transferFrom:针对授权进行转账
approve:授权
allowance:owner授权给spender余额
具体的详细见https://eips.ethereum.org/EIPS/eip-20

实现ERC20标准代币

想要发现ERC20标准的代币,就需要实现ERC20标准接口中的函数

先写ERC20标准接口

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;interface IERC20 {function name() external  view returns (string memory);function symbol() external view returns (string memory);function decimals() external view returns (uint8);function totalSupply() external view returns (uint256);function balanceOf(address _owner) external view returns (uint256 balance);function transfer(address _to, uint256 _value) external returns (bool success);function transferFrom(address _from, address _to, uint256 _value) external returns (bool success);function approve(address _spender, uint256 _value) external returns (bool success);function allowance(address _owner, address _spender) external view returns (uint256 remaining);//_from和_to两个参数有indexed关键字修饰,表示这些参数可以作为过滤条件来搜索事件。event Transfer(address indexed _from, address indexed _to, uint256 _value);event Approval(address indexed _owner, address indexed _spender, uint256 _value);
}

再实现ERC20标准代币

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;import "./IERC20.sol";contract ERC20 is IERC20{string ercName;string ercSymbol;uint8 ercDecimals;uint256 ercTotalSupply;mapping(address=>uint256) ercBalances;//一个人可以有多个委托人:授权者=>被授权者=>授权金额mapping (address=>mapping (address=>uint256)) ercAllowance;//合约部署者address public owner;constructor(string memory _name, string memory _symbol,uint8 _decimals){ercName=_name;ercSymbol=_symbol;ercDecimals=_decimals;owner=msg.sender;}//token名称function name() override  external  view returns (string memory){return ercName;}//token符号function symbol() override external view returns (string memory){return ercSymbol;}//token可以拆分到的精度function decimals() override external view returns (uint8){return ercDecimals;}//token发行总量function totalSupply() override external view returns (uint256){return ercTotalSupply;}//账户余额function balanceOf(address _owner) override external view returns (uint256 balance){return ercBalances[_owner];}//给某人转账function transfer(address _to, uint256 _value) override external returns (bool success){require(_value>0,"_value must >0");require(_to!=address(0),"_to is null");require(ercBalances[msg.sender]>=_value,"user's balance not enough");ercBalances[msg.sender]-=_value;ercBalances[_to]+=_value;emit Transfer(msg.sender, _to, _value);return true;}//被授权用户用我的token转账;_from: 授权者,_to:转给谁function transferFrom(address _from, address _to, uint256 _value) override external returns (bool success){require(ercBalances[_from] >= _value,"user's balance not enough");require(ercAllowance[_from][msg.sender]>=_value,"approve's balance not enough");require(_value>0,"_value must > 0");require(_to!=address(0),"_to is null");ercBalances[_from]-=_value;ercBalances[_to]+=_value;ercAllowance[_from][msg.sender]-=_value;emit Transfer(_from, _to, _value);return true;}//授权其他用户可以花费我多少tokenfunction approve(address _spender, uint256 _value) override external returns (bool success){// require(_value>0,"value must >0");//让_value可以等于0,当其为0时表示收回授权require(_spender!=address(0),"_spender can not be null");require(ercBalances[msg.sender]>=_value,"user's balance not enough");ercAllowance[msg.sender][_spender]=_value; emit Approval(msg.sender, _spender, _value);return true;}//获取授花费的余额tokenfunction allowance(address _owner, address _spender) override external view returns (uint256 remaining){return ercAllowance[_owner][_spender];}//代币发行机制function mint(address _to,uint256 _value) public{require(msg.sender==owner,"only owner can mint");require(_value>0,"_value must > 0");require(_to!=address(0),"_to is invalid"); ercBalances[_to]+=_value;ercTotalSupply+=_value;emit Transfer(address(0), _to, _value);}
}

ERC-721

主要是指非同质化代币标准(不同人持有的一个代币的价值不一样,如,艺术品)

http://www.mnyf.cn/news/49847.html

相关文章:

  • 一学一做演讲视频网站百度竞价托管费用
  • 做网站 不是计算机专业晚上看b站
  • 查域名的网站百度快速排名用什
  • 网页设计制作课程baike seotl
  • 全国互联网备案信息查询系统湖南seo网站开发
  • 网站开发合作协议合同范本seo排名优化推荐
  • 佛山做网站格搜索网站排名优化
  • 西安做搭建网站网络营销工具及其特点
  • 北京朝阳住房建设委员会网站产品推广广告
  • 灌南网站开发seo怎么刷排名
  • 三元里网站建设百度推广开户费用多少
  • 如何利用wordpress广州谷歌优化
  • 东莞市微客巴巴做网站网络优化工程师有多累
  • 网站建设期末作业网络优化工程师简历
  • 怎样吧自己做的网站发布短视频seo询盘系统
  • 网页设计与网站建设在线作业答案东莞百度搜索优化
  • wordpress如何开启多站点国际最新消息
  • 临西做网站哪里便宜长尾关键词爱站网
  • 建一个外贸网站多少钱北京网站优化公司哪家好
  • 手机网站菜单栏怎么做找网站公司制作网站
  • 公司没有备案了网站百度一下官方入口
  • 佛山网站优化美姿姿seo台州seo网站排名优化
  • 南宁网站建设q479185700惠软件开发公司排行榜
  • 商城网站建设需要多少国外搜索引擎排名百鸣
  • app开发网站排行百度如何发布信息推广
  • 建网站必备软件免费发布广告信息网
  • 做网站应该用什么配置的电脑宁波seo外包推广渠道
  • wordpress 添加rss网站seo的内容是什么
  • 网站 备份 还原中国国家人事人才培训网证书查询
  • 手机游戏网站大全天津seo网络