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

在山东省建设监理协会网站手机网站是怎么制作的

在山东省建设监理协会网站,手机网站是怎么制作的,怎么做不占CPU的网站,世界顶尖名表瑞士网站不要中国手表网站Solidity 小白教程#xff1a;21. 调用其他合约 调用已部署合约 开发者写智能合约来调用其他合约#xff0c;这让以太坊网络上的程序可以复用#xff0c;从而建立繁荣的生态。很多web3项目依赖于调用其他合约#xff0c;比如收益农场#xff08;yield farming#xff0…Solidity 小白教程21. 调用其他合约 调用已部署合约 开发者写智能合约来调用其他合约这让以太坊网络上的程序可以复用从而建立繁荣的生态。很多web3项目依赖于调用其他合约比如收益农场yield farming。这一讲我们介绍如何在已知合约代码或接口和地址情况下调用目标合约的函数。 目标合约 我们先写一个简单的合约OtherContract来调用。 contract OtherContract {uint256 private _x 0; // 状态变量_x// 收到eth的事件记录amount和gasevent Log(uint amount, uint gas);// 返回合约ETH余额function getBalance() view public returns(uint) {return address(this).balance;}// 可以调整状态变量_x的函数并且可以往合约转ETH (payable)function setX(uint256 x) external payable{_x x;// 如果转入ETH则释放Log事件if(msg.value 0){emit Log(msg.value, gasleft());}}// 读取_xfunction getX() external view returns(uint x){x _x;} }这个合约包含一个状态变量**_x**一个事件Log在收到ETH时触发三个函数 getBalance(): 返回合约ETH余额。setX(): external payable函数可以设置**_x的值并向合约发送ETH**。getX(): 读取**_x**的值。 调用OtherContract合约 我们可以利用合约的地址和合约代码或接口来创建合约的引用_Name(_Address)其中**_Name是合约名_Address是合约地址。然后用合约的引用来调用它的函数_Name(_Address).f()其中f()是要调用的函数。 下面我们介绍 4 个调用合约的例子在 remix 中编译合约后分别部署OtherContract和CallContract** 1. 传入合约地址 我们可以在函数里传入目标合约地址生成目标合约的引用然后调用目标函数。以调用OtherContract合约的setX函数为例我们在新合约中写一个callSetX函数传入已部署好的OtherContract合约地址**_Address和setX的参数x** function callSetX(address _Address, uint256 x) external{OtherContract(_Address).setX(x);}复制OtherContract合约的地址填入callSetX函数的参数中成功调用后调用OtherContract合约中的getX验证x变为 123 2. 传入合约变量 我们可以直接在函数里传入合约的引用只需要把上面参数的address类型改为目标合约名比如OtherContract。下面例子实现了调用目标合约的getX()函数。 注意该函数参数OtherContract _Address底层类型仍然是address生成的ABI中、调用callGetX时传入的参数都是address类型 function callGetX(OtherContract _Address) external view returns(uint x){x _Address.getX();}复制OtherContract合约的地址填入callGetX函数的参数中调用后成功获取x的值 3. 创建合约变量 我们可以创建合约变量然后通过它来调用目标函数。下面例子我们给变量oc存储了OtherContract合约的引用 function callGetX2(address _Address) external view returns(uint x){OtherContract oc OtherContract(_Address);x oc.getX();}复制OtherContract合约的地址填入callGetX2函数的参数中调用后成功获取x的值 4. 调用合约并发送ETH 如果目标合约的函数是payable的那么我们可以通过调用它来给合约转账_Name(_Address).f{value: _Value}()其中**_Name是合约名_Address是合约地址f是目标函数名_Value是要转的ETH数额以wei为单位。 OtherContract合约的setX函数是payable的在下面这个例子中我们通过调用setX**来往目标合约转账。 function setXTransferETH(address otherContract, uint256 x) payable external{OtherContract(otherContract).setX{value: msg.value}(x);}复制OtherContract合约的地址填入setXTransferETH函数的参数中并转入 10ETH 转账后我们可以通过Log事件和getBalance()函数观察目标合约ETH余额的变化。 总结 这一讲我们介绍了如何通过目标合约代码或接口和地址来创建合约的引用从而调用目标合约的函数。
http://www.zqtcl.cn/news/33490/

相关文章:

  • 免费网站ppt模板下载成熟短视频源码大全
  • 高端平面设计作品网站深圳市住建局网站官网
  • 做网站要实名认证吗dedecms做的网站_网站中的图片总是被同一ip恶意点击
  • 织梦网站源码网上注册公司价格
  • 购物网站排名前十企业邮箱怎么找
  • 自适应单页网站模板温州市网站制作多少钱
  • 有个可以做图片的网站珠海网络营销外包收费情况
  • 网站建设与优化及覆盖率方案品牌seo公司
  • 中山市 做网站浙江 外贸网站建设
  • 什么是网站结构优化233建筑网校
  • 科技公司的网站建设费入什么科目腾讯云部署wordpress
  • 不改变网站怎么做关键词优化北京网站设计制作网站
  • 免费家政网站建设张家界建设网站制作
  • 山东德铭工程建设公司网站wordpress用户前端发布
  • 福千欣隆网站建设公司怎么样手机下载视频网站模板下载
  • 网站标题应怎设置如何推广短视频
  • 网站建设公司全国排行广告设计的工作内容
  • 电脑网站 发展移动端北京建设工程交易网站官网
  • 大中小网站的区分网站备案被拒
  • 代做网站关键词ip138查询域名查询
  • 网站里怎样做点击量查询深圳燃气公司排名
  • 做网站好还是app好网站免费下载安装大全手机版
  • 网站设计建设公司需要什么资质全国企业信用信息公示系统查询入口
  • 万云网络网站seo行业岗位有哪些
  • 做外贸没网站可以吗wordpress搞笑主题
  • rails开发的网站开发南宁网站制作公
  • php网站开发技术 pdf网页设计尺寸的分辨率
  • 蓝海国际版网站建设系统网站制作服务合同
  • 上海网站建设不好网站上传大马后怎么做
  • 中国空间站和国际空间站对比免费企业网站源码