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

四川省城乡住房与建设厅网站首页phpstudy

四川省城乡住房与建设厅网站首页,phpstudy,品牌建设部门职责,安徽智能网站建设制作1.ERC20 什么叫做代币#xff1f; 代币可以在以太坊中表示任何东西#xff1a; 在线平台中的信誉积分游戏中一个角色的技能彩票卷金融资产类似于公司股份的资产像美元一样的法定货币一盎司黄金及更多... 以太坊的这种强大特点必须以强有力的标准来处理#xff0c;对吗 代币可以在以太坊中表示任何东西 在线平台中的信誉积分游戏中一个角色的技能彩票卷金融资产类似于公司股份的资产像美元一样的法定货币一盎司黄金及更多... 以太坊的这种强大特点必须以强有力的标准来处理对吗 这正是 ERC-20 发挥其作用的地方 此标准允许开发者构建可与其他产品和服务互相操作的代币应用程序。 什么是 ERC-20 ERC-20 提出了一个同质化代币的标准换句话说它们具有一种属性使得每个代币都与另一个代币在类型和价值上完全相同。 例如一个 ERC-20 代币就像以太币一样意味着一个代币会并永远会与其他代币一样。 ERC-20以太坊意见征求 20由 Fabian Vogelsteller 提出于 2015 年 11 月。这是一个能实现智能合约中代币的应用程序接口标准。 ERC-20 的功能示例包括 将代币从一个帐户转到另一个帐户获取帐户的当前代币余额获取网络上可用代币的总供应量批准一个帐户中一定的代币金额由第三方帐户使用 如果智能合约实施了下列方法和事件它可以被称为 ERC-20 代币合约一旦部署将负责跟踪以太坊上创建的代币。 上面是官方的说法, 代币嘛,比如游戏我们用金钱充值,经过一定换算,人民币对应的换算游戏的货币。这些游戏货币就是代币。 当然,只是打个比方代币更多还是区块链所属的概念。 当然简单的来讲: ERC20是以太坊定义的一个合约接口规范符合该规范的合约被称为以太坊代币。 1.这是以太坊官方给的ERC20接口合约标准: 方法 function name() public view returns (string) function symbol() public view returns (string) function decimals() public view returns (uint8) function totalSupply() public view returns (uint256) function balanceOf(address _owner) public view returns (uint256 balance) function transfer(address _to, uint256 _value) public returns (bool success) function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) function approve(address _spender, uint256 _value) public returns (bool success) function allowance(address _owner, address _spender) public view returns (uint256 remaining)事件 event Transfer(address indexed _from, address indexed _to, uint256 _value);event Approval(address indexed _owner, address indexed _spender, uint256 _value); 我们就围绕ERC20自己写个代币合约。 顺便在代码注释出讲解相应功能。 2.自己写一个ERC20合约实现 1.ERC20 pragma solidity ^0.4.25;interface ERC20 {// 返回代币名称function name()public view returns (string memory); // 返回代币符号function symbol()public view returns (string memory);// 返回代币小数点后位数function decimals()public view returns (uint8);// 总代币数量function totalSupply()public view returns (uint256);// 返回 _owner 地址拥有的代币数量。function balanceOf(address _owner)public view returns (uint256 balance);// 将 value 数量的代币发送给 to 地址返回布尔值告知是否执行成功。触发 Transfer 事件。function transfer(address _to, uint256 _value)public returns (bool success);// 将 value 数量的代币从 from 地址发送到 to 地址返回布尔值告知是否执行成功。触发 Transfer 事件。function transferFrom(address _from, address _to, uint256 _value)public returns (bool success);// 授权 spender 可以花费 value 数量的代币返回布尔值告知是否执行成功。触发 Approval 事件。function approve(address _spender, uint256 _value)public returns (bool success);// 返回授权花费者 spender 通过 transferFrom 代表所有者花费的剩余代币数量。// 默认情况下为零。当 approve 和 transferFrom 被调用时值将改变。function allowance(address _owner, address _spender)public view returns (uint256 remaining);event Transfer(address indexed _from, address indexed _to, uint256 _value);event Approval(address indexed _owner, address indexed _spender, uint256 _value);} 2. Jzm20 pragma solidity ^0.4.25;import ./ERC20.sol;contract Jzm20 is ERC20 {///Filed///uint256 private _totalSupply;string private _symbol;// 地址余额mapping(address uint256) private _balances;// 授权地址余额mapping(address mapping(address uint256)) private _allowances;///Function///constructor (string symbol_) public {_symbol symbol_;}function name() public view returns (string memory) {return Jzm20;} function symbol() public view returns (string memory){return _symbol;}function decimals() public view returns (uint8){return 18;}function totalSupply() public view returns (uint256){return _totalSupply;}function balanceOf(address _owner) public view returns (uint256 balance){balance _balances[_owner];}// 给指定owner地址创建value数量代币function mint(address _owner,uint256 _value) public {require(_owner ! address(0),Jzm20: owner address is not empty);_balances[_owner] _value;_totalSupply _sum(_totalSupply,_value);emit Transfer(address(0),_owner,_value);}function transfer(address _to, uint256 _value) public returns (bool success){address owner msg.sender;_transfer(owner,_to,_value);success true;}// 这个是给spender权限者使用的function transferFrom(address _from, address _to, uint256 _value) public returns (bool success){address spender msg.sender;uint256 approveBalance allowance(_from,spender);require(approveBalance _value,Jzm20:approve balance is Insufficient balance transfer);_transfer(_from,_to,_value);success true;}function approve(address _spender, uint256 _value) public returns (bool success){address owner msg.sender;require(_balances[owner] _value,Jzm20:owner balance is not enough to value memory!);_allowances[msg.sender][_spender] _sum( _allowances[msg.sender][_spender],_value);emit Approval(owner,_spender,_value);success true;} function allowance(address _owner, address _spender) public view returns (uint256 remaining){remaining _allowances[_owner][_spender];}function _sum(uint256 a,uint256 b) private pure returns(uint256) {uint256 c a b;require(c a c b,Jm20:An arithmetic overflow has occurred);return c;}function _sub(uint256 a,uint256 b) private pure returns(uint256) {uint256 c a - b;require(c a,Jm20:An arithmetic overflow Under has occurred);return c;}function _transfer( address _from, address _to, uint256 _value) private {require(_balances[_from] _value,Jm20:owner balance is Insufficient balance transfer);require(_to ! address(0),Jm20:to can not be empty address!);_balances[_to] _sum(_balances[_to],_value); _balances[_from] - _sub(_balances[_from],_value);emit Transfer(_from,_to,_value);} }
http://www.hkea.cn/news/14334363/

相关文章:

  • 私人搭建服务器seo优化心得
  • 找网站建设需要问什么软件出口外贸网站
  • 怎么建设淘宝联盟的网站做vip视频网站侵权
  • 建德网站seo邢台网站建设要多少钱
  • 一键网站提交网站备案查询站长工具
  • 怎么开发销售网站专业网站推广公司
  • 非常好的资讯网站设计wordpress 电影解析
  • 怎样做免费网站卖东西美容产品网站建设多少钱
  • 那些网站专门做棋牌推广的企业网站打不开的原因
  • 昆明网页重做南昌网站排名优化报
  • 长沙网站优化方案机票网站开发知乎
  • jsp商业网站开发网站系统排名
  • 三门县住房和城乡建设规划局网站陕西网站关键词自然排名优化
  • 2021网站建设前景怎么样网站后台编辑器不能正常显示
  • 公司网站 开源钓鱼网站链接
  • 网站设立前置审批ppt模板下载后怎么导入
  • 图片做视频在线观看网站贵阳网站建设在线
  • 专业的模板建站企业杭州百度快照
  • 给公司做网站怎么样重庆公司注销的流程及需提供的材料
  • 网站建设宗旨是指最新闻头条新闻
  • 建网站如何备案建设小型网站
  • 做一网站要学些什么软件郑州网页开发的公司
  • 互联网公司注册百度搜索优化费用
  • 金融课程网站模板下载和平区网站建设
  • 搭建外文网站济南小程序开发多少钱
  • 基于网站的网络营销方法有哪些有没有咨询求助做任务的网站
  • 教如何做帐哪个网站好项目营销推广策划
  • 网页设计如何建立网站网店代理免费一件代发
  • 服装加工厂网站建设方案计划书常用网站开发工具
  • 成都网站开发企业自己做小卡用什么软件