当前位置: 首页 > news >正文

天津行业网站建设网站开发时的闭包写法

天津行业网站建设,网站开发时的闭包写法,做网站需要撑握哪些技术,极简办公ppt模板下载【从0学习Solidity】41. WETH 博主简介:不写代码没饭吃,一名全栈领域的创作者,专注于研究互联网产品的解决方案和技术。熟悉云原生、微服务架构,分享一些项目实战经验以及前沿技术的见解。关注我们的主页,探索全栈开发…

【从0学习Solidity】41. WETH

在这里插入图片描述

  • 博主简介:不写代码没饭吃,一名全栈领域的创作者,专注于研究互联网产品的解决方案和技术。熟悉云原生、微服务架构,分享一些项目实战经验以及前沿技术的见解。
  • 关注我们的主页,探索全栈开发,期待与您一起在移动开发的世界中,不断进步和创造!
  • 本文收录于 不写代码没饭吃 的学习汇报系列,大家有兴趣的可以看一看。
  • 欢迎访问我们的微信公众号:不写代码没饭吃,获取更多精彩内容、实用技巧、行业资讯等。您关注的是我们前进的动力!

这一讲,我们将学习WETH–带包装的ETH

什么是WETH

41-1.gif

WETH (Wrapped ETH)是ETH的带包装版本。我们常见的WETHWBTCWBNB,都是带包装的原生代币。那么我们为什么要包装它们?

在2015年,ERC20标准出现,该代币标准旨在为以太坊上的代币制定一套标准化的规则,从而简化了新代币的发布,并使区块链上的所有代币相互可比。不幸的是,以太币本身并不符合ERC20标准。WETH的开发是为了提高区块链之间的互操作性 ,并使ETH可用于去中心化应用程序(dApps)。它就像是给原生代币穿了一件智能合约做的衣服:穿上衣服的时候,就变成了WETH,符合ERC20同质化代币标准,可以跨链,可以用于dApp;脱下衣服,它可1:1兑换ETH

WETH合约

目前在用的主网WETH合约写于2015年,非常老,那时候solidity是0.4版本。我们用0.8版本重新写一个WETH

WETH符合ERC20标准,它比普通的ERC20多了两个功能:

  1. 存款:包装,用户将ETH存入WETH合约,并获得等量的WETH

  2. 取款:拆包装,用户销毁WETH,并获得等量的ETH

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;import "@openzeppelin/contracts/token/ERC20/ERC20.sol";contract WETH is ERC20{// 事件:存款和取款event  Deposit(address indexed dst, uint wad);event  Withdrawal(address indexed src, uint wad);// 构造函数,初始化ERC20的名字和代号constructor() ERC20("WETH", "WETH"){}// 回调函数,当用户往WETH合约转ETH时,会触发deposit()函数fallback() external payable {deposit();}// 回调函数,当用户往WETH合约转ETH时,会触发deposit()函数receive() external payable {deposit();}// 存款函数,当用户存入ETH时,给他铸造等量的WETHfunction deposit() public payable {_mint(msg.sender, msg.value);emit Deposit(msg.sender, msg.value);}// 提款函数,用户销毁WETH,取回等量的ETHfunction withdraw(uint amount) public {require(balanceOf(msg.sender) >= amount);_burn(msg.sender, amount);payable(msg.sender).transfer(amount);emit Withdrawal(msg.sender, amount);}
}

继承

WETH符合ERC20代币标准,因此WETH合约继承了ERC20合约。

事件

WETH合约共有2个事件:

  1. Deposit:存款事件,在存款的时候释放。
  2. Withdraw:取款事件,在取款的时候释放。

函数

除了ERC20标准的函数外,WETH合约有5个函数:

  • 构造函数:初始化WETH的名字和代号。
  • 回调函数:fallback()receive(),当用户往WETH合约转ETH的时候,会自动触发deposit()存款函数,获得等量的WETH
  • deposit():存款函数,当用户存入ETH时,给他铸造等量的WETH
  • withdraw():取款函数,让用户销毁WETH,并归还等量的ETH

Remix演示

1. 部署WETH合约

41-2.jpg

2. 调用deposit,存入1 ETH,并查看WETH余额

41-3.jpg

此时WETH余额为1 WETH

41-4.jpg

3. 直接向WETH合约转入1 ETH,并查看WETH余额

41-5.jpg

此时WETH余额为2 WETH

41-6.jpg

4. 调用withdraw,取出1.5 ETH,并查看WETH余额

41-7.jpg

此时WETH余额为0.5 WETH

41-8.jpg

总结

这一讲,我们介绍了WETH并实现了WETH合约。它就像是给原生ETH穿了一件智能合约做的衣服:穿上衣服的时候,就变成了WETH,符合ERC20同质化代币标准,可以跨链,可以用于dApp;脱下衣服,它可以1:1兑换ETH

在这里插入图片描述

如果这份博客对大家有帮助,希望各位给作者一个免费的点赞👍作为鼓励,并评论收藏一下⭐,谢谢大家!!!
制作不易,如果大家有什么疑问或给作者的意见,欢迎评论区留言。

http://www.yayakq.cn/news/891275/

相关文章:

  • 网站建设案例如何wordpress采集新浪博客
  • 网站类型分类有哪些构站网
  • 怎样是做网站照片视频制作软件app
  • 网站上二维码怎么做的淘宝店铺怎么装修
  • 北京专业网站建设公司哪家好企业通过门户网站做营销推广
  • 哪里可以学做网站网页设计总结5000字
  • 贵州做网站找谁直接推广和间接推广区别
  • 云建站哪家好wordpress完全开源吗
  • 口碑好网站建设资源网站建设技术服务协议
  • 模板网站修改购物网站建设行情
  • 外面网站怎么做的wordpress如何加联盟广告位
  • 自由策划企业网站管理系统破解版爱网站网站查询
  • wordpress小图标网站wordpress 媒体 路径
  • 北京优化网站外包公司抄袭网站怎么办
  • 网站建设预期目标余杭区建设局网站
  • 长沙网站公司长春网站建设5219
  • 请网站建设的人多少钱python做音乐网站
  • 网站制作常用代码广州网页设计多少钱
  • 2345电视剧网站免费网络营销的定义是什么?
  • 网站建设 岗位职责网建什么意思
  • 网站 开发 备案代理哈尔滨建设工程
  • 广州网站推广联盟wordpress去掉购物车
  • 网站开发的理解潍坊专业空心活塞杆
  • 制作的网站图片不显示wordpress前台无法访问
  • 做酒店管理网站的作用商标起名生成器
  • 北京电子商务app网站建设大兴电商代运营
  • 邳州网站网站建设需要服务器么
  • 房产中介网站建设技巧wordpress模板制作兼职
  • 电子商务网站建设属性app推广是什么意思
  • 网站建设设计官网在网站里怎么做图片超链接