将以太坊封装为 ERC20 TOKEN

很多 DAPP 都是在处理 ERC20接口的 token, 其实很容易将以太坊封装为 ERC20,这样就可以统一处理,
至少我目前在做的雷电网络就是这么处理的.

主要内容复制在网络
https://programtheblockchain.com/posts/2018/05/26/wrapping-ether-in-an-erc20-token/

直接上代码,核心部分是

pragma solidity ^0.4.24;import "baseerc20token.sol";contract EtherToken is BaseERC20Token {constructor(string _name, string _symbol)BaseERC20Token(0, 18, _name, _symbol) public{}function buy() public payable {balanceOf[msg.sender] += msg.value;totalSupply += msg.value;emit Transfer(address(0), msg.sender, msg.value);}function sell(uint256 amount) public {require(balanceOf[msg.sender] >= amount, "Insufficient balance.");balanceOf[msg.sender] -= amount;totalSupply -= amount;msg.sender.transfer(amount);emit Transfer(msg.sender, address(0), amount);}
}

它提供了以太坊和 ERC20互换的接口,换成 ERC20以后就很简单了.
实际上baseerc20token.sol只是一个非常标准的 ERC20实现

pragma solidity ^0.4.23;contract BaseERC20Token {mapping (address => uint256) public balanceOf;string public name;string public symbol;uint8 public decimals;uint256 public totalSupply;event Transfer(address indexed from, address indexed to, uint256 value);constructor (uint256 _totalSupply,uint8 _decimals,string _name,string _symbol)public{name = _name;symbol = _symbol;decimals = _decimals;totalSupply = _totalSupply;balanceOf[msg.sender] = _totalSupply;emit Transfer(address(0), msg.sender, _totalSupply);}function transfer(address to, uint256 value) public returns (bool success) {require(balanceOf[msg.sender] >= value);balanceOf[msg.sender] -= value;balanceOf[to] += value;emit Transfer(msg.sender, to, value);return true;}event Approval(address indexed owner, address indexed spender, uint256 value);mapping(address => mapping(address => uint256)) public allowance;function approve(address spender, uint256 value)publicreturns (bool success){allowance[msg.sender][spender] = value;emit Approval(msg.sender, spender, value);return true;}function transferFrom(address from, address to, uint256 value)publicreturns (bool success){require(value <= balanceOf[from]);require(value <= allowance[from][msg.sender]);balanceOf[from] -= value;balanceOf[to] += value;allowance[from][msg.sender] -= value;emit Transfer(from, to, value);return true;}
}

这样简单部署,就可以在雷电网络中将以太坊当做普通的 ERC20 TOKEN进行处理了.

转载于:https://www.cnblogs.com/baizx/p/9174862.html

将以太坊封装为 ERC20相关推荐

  1. 以太坊开发入门-ERC20合约

    在上一章节中完成了一个非常简单的合约,本节中将按照ERC20协议完成一个合约, 本章部分源代码参考于网络开源代码,详细了解:openzeppelin-contracts/contracts/token ...

  2. 来自ETH源码,手动生成以太坊钱包,ERC20标准钱包

    先从node官网下载node安装包 传送门: node官网 nodejs.org 安装完成后用node自带的npm(node package manger)下载两个依赖: 椭圆加密算法包,keccak ...

  3. 以太坊代币空投合约的实现

    2019独角兽企业重金招聘Python工程师标准>>> 本文将介绍如何在以太坊智能合约中实现代币的空投.区块链以太坊世界中所谓空投(airdrop),就是免费给你的区块链地址(公钥) ...

  4. 如何在以太坊上发行自己的代币

    简单代币开发 代币(Token): 代币单纯从其名字上理解的话,就是一种可以替代通用货币起到交换媒介作用的东西,可以是商场积分,可以是游戏币,也可以是筹码.但是在区块链中,就不完全是那么回事了,区块链 ...

  5. 以太坊五岁了,它现在还好吗?

    作者:Consensys 翻译:Quiana 据说,重大突破通常遵循以下七个步骤: 1.首先,没人听说过. 2.他们听说过你,但认为你疯了. 3.然后他们开始了解你的产品,但认为它没有机会. 4.然后 ...

  6. 当Google大数据遇上以太坊数据集,这会是一个区块链+大数据的成功案例吗?

    作者 | Allen Day.Evgeny Medvedev 编译 | 王柯凝.kou 就像熟知"互联网+"一样,你肯定或多或少也了解"区块链+"这个名词,甚至 ...

  7. 以太坊转账参数java_【ETH钱包开发04】web3j转账ERC-20 Token

    在上一篇文章中讲解了ETH转账,这一篇讲一下ERC-20 Token转账. [ETH钱包开发03]web3j转账ETH ERC-20 Token转账的2种方式 1.直接用web3j的API 2.jav ...

  8. 在以太坊开发自己的ERC-20代币及如何ICO

    今天我将向你展示如何在以太坊区块链上开发你自己的加密货币并将其出售!我将向你展示如何使用以太坊智能合约逐步创建自己的ERC-20代币和众筹销售,如何测试智能合约,如何将智能合约部署到以太坊区块链,以及 ...

  9. 以太坊代币标准: ERC20、ERC223的介绍与比较

    代币(Token)是区块链中定义价值的方式,用于标定金融或数字资产.在以太坊上,代币使用相同的标准,这样代币之间的兑换和DAPP支持就会变得容易. 什么是ERC20标准 ERC-20 标准是在2015 ...

最新文章

  1. 神经网络中的批量归一化Batch Normalization(BN)原理总结
  2. 原生php使用foreach,如何使用php中foreach()
  3. python简单代码演示效果-10分钟教你用python 30行代码搞定简单手写识别!
  4. 如何在文字上划横线_如何设计一张618促销海报?
  5. 算法训练营12-动态规划
  6. CString 类型和引用
  7. 理想汽车4月交付5539辆 累计交付51715辆
  8. linux的java安装目录
  9. 少走弯路,给3~5年java程序员的唯一一条建议
  10. 视频云web播放器样式和组件自定义
  11. USB写保护的一些工具记录
  12. 秃头真的是程序员的标配吗
  13. Benzoic acid,4-(((diphenylamino)carbonyl)oxy)-3-nitro,2-硝基-4-羧基苯基-N,N-氨基甲酸二苯酯,2-Ncdc
  14. 把代码写烂点,你在公司就不可代替了?
  15. 过来人如何学STM32呢??
  16. 【Endnote】在论文中插入参考文献,并将插入参考文献的序号格式改为[1] [2] [3] 或1,2,3
  17. 利用python实现身份证号验证系统
  18. seo黑帽劫持用的php,黑帽seo技术:include asp php流量劫持
  19. 文件安全类产品深度剖析
  20. 初学 Sliding Window 之个人笔记

热门文章

  1. C++ 异常,标准异常类,自定义异常类,throw,try,catch语句
  2. 【2019牛客暑期多校训练营(第八场)- G】Gemstones(栈,模拟)
  3. 【POJ - 2553】The Bottom of a Graph(tarjan强连通分量缩点,模板题)
  4. 【CodeForces - 298C】Parity Game (思维,有坑)
  5. 4.2)深度卷积网络:实例研究
  6. android 没有指令,android – 运行时没有命令输出:’am start -n
  7. java mac 转换 整形_JAVA的整型与字符串相互转换
  8. php 判断radio选中哪个,jquery如何判断单选按钮radio是否选中
  9. redis——持久化
  10. NLP复习资料(3)-六~七章:马尔科夫模型与条件随机场、词法分析与词性标注