智能合约大巡礼--WETH

资讯 2024-07-13 阅读:253 评论:0
WETH字面意思是"包装过的ETH"("wrapped ETH")...
美化布局示例

欧易(OKX)最新版本

【遇到注册下载问题请加文章最下面的客服微信】永久享受返佣20%手续费!

APP下载   全球官网 大陆官网

币安(Binance)最新版本

币安交易所app【遇到注册下载问题请加文章最下面的客服微信】永久享受返佣20%手续费!

APP下载   官网地址

火币HTX最新版本

火币老牌交易所【遇到注册下载问题请加文章最下面的客服微信】永久享受返佣20%手续费!

APP下载   官网地址

WETH字面意思是"包装过的ETH"("wrapped ETH")。首先,Ether(ETH)是以太坊网络(Ethereum)上的原生币种,选择建立在以太坊上的dAPP通常会部署自己的代币,比如Augur的REP和Bancor的BNT。而ERC-20是在ETH发布之后制定的一个标准,这个标准定义了代币应该如何在以太坊网络上转移,以及如保持代币在以太坊网络上的转移能够有一个一致的记录。

ERC20标准:

interface IERC20 {  function totalSupply() external view returns (uint256);  function balanceOf(address who) external view returns (uint256);  function allowance(address owner, address spender) external view returns (uint256);  function transfer(address to, uint256 value) external returns (bool);  function approve(address spender, uint256 value) external returns (bool);  function transferFrom(address from, address to, uint256 value) external returns (bool);
  event Transfer(address indexed from, address indexed to, uint256 value);
  event Approval(address indexed owner, address indexed spender, uint256 value);
}

ERC20是以太坊上最为普遍通用的代币标准,而ETH作为原生币种本身不符合ERC20标准,但一些dAPP对接的是ERC20标准代币,比如Radar Relay0x Portal。所以我们需要利用智能合约实现一种兼具ERC20标准的token形式的ETH。

我们看看实现代码:

pragma solidity ^0.4.18;

contract WETH9 {
    string public name     = "Wrapped Ether";
    string public symbol   = "WETH";
    uint8  public decimals = 18;

    event  Approval(address indexed src, address indexed guy, uint wad);
    event  Transfer(address indexed src, address indexed dst, uint wad);
    event  Deposit(address indexed dst, uint wad);
    event  Withdrawal(address indexed src, uint wad);

    mapping (address => uint)                       public  balanceOf;
    mapping (address => mapping (address => uint))  public  allowance;    function() public payable {
        deposit();
    }    function deposit() public payable {
        balanceOf[msg.sender] += msg.value;
        Deposit(msg.sender, msg.value);
    }    function withdraw(uint wad) public {        require(balanceOf[msg.sender] >= wad);
        balanceOf[msg.sender] -= wad;
        msg.sender.transfer(wad);
        Withdrawal(msg.sender, wad);
    }    function totalSupply() public view returns (uint) {        return this.balance;
    }    function approve(address guy, uint wad) public returns (bool) {
        allowance[msg.sender][guy] = wad;
        Approval(msg.sender, guy, wad);        return true;
    }    function transfer(address dst, uint wad) public returns (bool) {        return transferFrom(msg.sender, dst, wad);
    }    function transferFrom(address src, address dst, uint wad)
        public
        returns (bool)
    {        require(balanceOf[src] >= wad);        if (src != msg.sender && allowance[src][msg.sender] != uint(-1)) {            require(allowance[src][msg.sender] >= wad);
            allowance[src][msg.sender] -= wad;
        }

        balanceOf[src] -= wad;
        balanceOf[dst] += wad;

        Transfer(src, dst, wad);        return true;
    }
}

代码非常简单,实现了ERC20标准,并提供和函数完成原生ETH与WETH之间的1:1置换。

etherscan上可以看到WETH自2017年12月12号部署以来,目前合约内抵押了230万个Ether,也就是有同样数量的WETH处于流通状态。

更新以太坊代码使ETH符合ERC-20标准的计划已经在实施了。wETH只是目前阶段为满足一些使用场景,在合约层面做的实现。如果你有需要,可以直接使用WETH。



作者:糙米薏仁汤
链接:https://www.jianshu.com/p/2fed07c65e3b


美化布局示例

欧易(OKX)最新版本

【遇到注册下载问题请加文章最下面的客服微信】永久享受返佣20%手续费!

APP下载   全球官网 大陆官网

币安(Binance)最新版本

币安交易所app【遇到注册下载问题请加文章最下面的客服微信】永久享受返佣20%手续费!

APP下载   官网地址

火币HTX最新版本

火币老牌交易所【遇到注册下载问题请加文章最下面的客服微信】永久享受返佣20%手续费!

APP下载   官网地址
文字格式和图片示例

注册有任何问题请添加 微信:MVIP619 拉你进入群

弹窗与图片大小一致 文章转载注明

分享:

扫一扫在手机阅读、分享本文

发表评论
平台列表
美化布局示例

欧易(OKX)

  全球官网 大陆官网

币安(Binance)

  官网

火币(HTX)

  官网

Gate.io

  官网

Bitget

  官网

deepcoin

  官网
热门文章
  • usdt钱包开发,比特币协议 Omni 层协议 USDT

    usdt钱包开发,比特币协议 Omni 层协议 USDT
    usdt钱包开发Usdt Wallet Development 比特币协议 -> Omni 层协议 -> USDTBitcoin -> Omni Layer -> USDT USDT是基于比特币omni协议的一种代币: https://omniexplorer.info/asset/31 ID是31USDT is a token based on the Bitcomni agreement:   ˂a href="ht...
  • ?基于区块链的数字货币,下一代货币等价物

    ?基于区块链的数字货币,下一代货币等价物
    文 | 诗与星空Psalms and stars. 10月25日晚间,一则关于区块链的消息引爆了市场,虽然A股已经关门歇业,但是大洋彼岸的美股却喧嚣起来,号称使用了区块链技术的迅雷股价暴涨107%。On the evening of 25 October, a news about the block chain detonated the market. Although the A share was closed, the United States shares...
  • LikeCoin 2022 年度回顧

    LikeCoin 2022 年度回顧
    2022 即將過去,今年是風高浪急的一年,LikeCoin 社群繼續於驚濤中為實踐分散式出版而前進,感謝各位的同行。讓我們趁機回顧一下今年發生過的大小事。 2022 Towards the end of the year, this year is a year of great turmoil, and the community of ˂a href=https://like.co/"target="_blank" data-type="link" data-i...
  • 以太坊质押挖矿收益率

    以太坊质押挖矿收益率
    展开全部 52%左右。根据跟踪公司StakingRewards的数据,质押的以太坊将产生回报,预计在合并后将达到52%左右。再加上预计在升级更新后不久以太坊供应量的净减少,这应该会使该币对投资者更具吸引力。According to the tracking company StakingRewards, the pledge will yield returns that are expected to reach about 52% after the merg...
  • 一个“币”卖出6930多万美元,它是何来头

    一个“币”卖出6930多万美元,它是何来头
    这是一个新的投机性市场,有许多未知的风险——包括100%损失的风险於兴中当我们看到有人花了近百万美元在网络上的虚拟空间里买了一块地,可能会觉得不可思议。但是,比这更不可思议的是,在上个月的佳士得拍卖会上,一个不可替换代币(NFT)卖出了令人瞠目结舌的6930多万美元。这个代币所代表的便是目前人们热议的数字艺术家毕朋(Beeple)的作品《日复一日:最初的5000天(2021)》。不仅如此,不可替换代币市场正在被大张旗鼓地建构。篮球视频集锦的不可替换代币在美国职业...
标签列表