日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

将以太坊封装为 ERC20

發(fā)布時(shí)間:2023/12/18 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 将以太坊封装为 ERC20 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

將以太坊封裝為 ERC20 TOKEN

很多 DAPP 都是在處理 ERC20接口的 token, 其實(shí)很容易將以太坊封裝為 ERC20,這樣就可以統(tǒng)一處理,
至少我目前在做的雷電網(wǎng)絡(luò)就是這么處理的.

主要內(nèi)容復(fù)制在網(wǎng)絡(luò)
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以后就很簡單了.
實(shí)際上baseerc20token.sol只是一個(gè)非常標(biāo)準(zhǔn)的 ERC20實(shí)現(xiàn)

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;} }

這樣簡單部署,就可以在雷電網(wǎng)絡(luò)中將以太坊當(dāng)做普通的 ERC20 TOKEN進(jìn)行處理了.

轉(zhuǎn)載于:https://www.cnblogs.com/baizx/p/9174862.html

總結(jié)

以上是生活随笔為你收集整理的将以太坊封装为 ERC20的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。