加载中 ...

更高效的 WETH

2020-11-04 09:54 编辑:币牛牛 来源:币源

玩过 DEFI 的应该都知道,很多项目是通过 WETH 把以太币代币化[1],再接入到 ERC20 为主的 DEFI 生态中。



当前使用最广泛的 WETH 实现是WETH9[2],有兴趣的可以点击链接查看实现。



WETH9 上线至今快有 3 年了,现在社区小伙伴实现了升级版本:WETH10[3],已经部署在 Kovan 测试网 [4]



WETH10 新特性



WETH10 和 WETH9 一样实现和以太币的包裹,实现 WETH 与以太币的 1:1 互换



存款:Ether -> WETH



具体是调用deposit存入以太币(或发送到合约),可接收到 WETH:

以上实现和 WETH9 基本一致,WETH10 还可以为指定的账号存款,调用 depositTo :

WETH10 还实现了存款加调用 depositToAndCall,通过depositToAndCall可以把资金存入合约,并立即调用合约自定义的实现onTokenTransfer,以往使用 WETH9 可能需要多笔交易才能完成的工作现在只需要一笔交易完成。

depositToAndCall 实现如下:

function depositToAndCall(address to, bytes calldata data) external payable returns (bool success) {
require(to != address(this), "!recipient");
_balanceOf[to] += msg.value;
emit Transfer(address(0), to, msg.value);

ERC677Receiver(to).onTokenTransfer(msg.sender, msg.value, data);
return true;
}

depositToAndCall 的第 2 个参数 data 是传递给目标函数的参数。目标函数的调用使用 ERC677 标准[5]。

取款 WETH -> Ether

取款通过调用 withdraw 来完成,withdraw 方法如下:

关键词:比特币新闻 币牛牛

转载自比特币新闻网(www.btc268.com),提供比特币行情走势分析与数字货币投资炒币最新消息。

原文标题:更高效的 WETH

原文地址:http://www.btc268.com/news/btc/25229.html

本文来源:币源编辑:币牛牛

本文仅代表作者个人观点,与本网站立场无关。

本网站转载信息目的在于传递更多信息。请读者仅作参考,投资有风险,入市须谨慎!

'); })();