医院网站建设报价,南宁网站建站推广,做视频网站如何利用用户的弱点,网站建设四个阶段的流程将以太坊封装为 ERC20 TOKEN 很多 DAPP 都是在处理 ERC20接口的 token, 其实很容易将以太坊封装为 ERC20,这样就可以统一处理, 至少我目前在做的雷电网络就是这么处理的. 主要内容复制在网络https://programtheblockchain.com/posts/2018/05/26/wrapping-ether-in-an-erc20-tok…将以太坊封装为 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