提醒:因为软件开发行业无明确禁止法规, 该企业仅提供软件开发外包定制服务,项目需取得国家许可,严禁非法用途。 违法举报

dapp元宇宙链游【详情】技术实现及源代码实现方式

2024-05-03 10:48 120.197.40.153 1次
发布企业
广州杰肯狸网络科技有限公司商铺
认证
资质核验:
已通过营业执照认证
入驻顺企:
2
主体名称:
广州杰肯狸网络科技有限公司
组织机构代码:
91440106MA9YBAQX7C
报价
请来电询价
所在地
广州天河区中山大道
联系电话
18125913365
手机
19927739756
联系人
何经理  请说明来自顺企网,优惠更多
请卖家联系我
18125913365

产品详细介绍

什么是dApp和Web3应用?

  

  如果不提及dApp,关于Web3的讨论就不会完整。dApp或去【系统-176搭建-0206可电可微-5616】中心化应用程序是Web3革命的支柱。术语“Web3应用程序”、“Web3应用程序”、“去中心化应用程序”、“dApps”或“Web3dApps”在很大程度上都是同义词。它们都指作为Web3一部分的分散的、通常基于***的应用程序。

  

  那么,什么是Web3应用程序?许多dApp或Web3应用程序的一个组成部分是所谓的“智能合约”。有***技术经验的人可能熟悉智能合约的概念。智能合约本质上是自动执行的软件协议,是在以太坊***等***上运行的代码片段。这些会自动“运行”,或在满足一组相关条款时执行。这些“合约”可以自动验证和执行不同方之间的交易。

  

  内部函数(仅供合约内部调用)

  

  _swapSupportingFeeOnTransferTokens

  

  代码速浏览

  

  function _swapSupportingFeeOnTransferTokens(address[]memorypath,address _to)internal virtual{

  

  for(uint i;i<path.length-1;i++){ DAPP链游**176应用0206详细5616

  

  (address input,address output)=(path,path[i+1]);

  

  (address token0,)=UniswapV2Library.sortTokens(input,output);

  

  IUniswapV2Pairpair=IUniswapV2Pair(UniswapV2Library.pairFor(factory,input,output));

  

  uint amountInput;

  

  uint amountOutput;

  

  {

  

  (uint reserve0,uint reserve1,)=pair.getReserves();

  

  (uint reserveInput,uintreserveOutput)=input==token0?(reserve0,reserve1):(reserve1,reserve0);

  

  amountInput=IERC20(input).balanceOf(address(pair)).sub(reserveInput);

  

  amountOutput=UniswapV2Library.getAmountOut(amountInput,reserveInput,reserveOutput);

  

  }

  

  (uint amount0Out,uintamount1Out)=input==token0?(uint(0),amountOutput):(amountOutput,uint(0));

  

  addressto=i<path.length-2?UniswapV2Library.pairFor(factory,output,path[i+2]):_to;

  

  pair.swap(amount0Out,amount1Out,to,new bytes(0));

  

  参数分析

  

  函数swapETHForExactTokens的入参有2个,出参有0个,对应的解释如下:

  

  function _swapSupportingFeeOnTransferTokens(DAPP链游**威:wwqqyy420

  

  address[]memory path,//交易路径列表

  

  address _to//交易获得的token发送到的地址

  

  )internal virtual{

  

  函数_swapSupportingFeeOnTransferTokens相比函数_swap为了支持path中有交易后可变数量的代币,不需要输入amounts,但需要额外做一些操作。

  

  实现分析

  

  ……

  

  {

  

  //循环交易路径列表

  

  for(uint i;i<path.length-1;i++){

  

  //从path中取出input和output

  

  

  //从input和output中算出谁是token0

  

  

  //获得input,output的流动池

  

  

  uint amountInput;

  

  uint amountOutput;

  

  {

  

  //获取流动池库存reserve0,reserve1

  

  

  //如果input==token0,那么(reserveInput,reserveOutput)就是(reserve0,reserve1);则

  

  

  //amountInput等于流动池余额减去reserveInput

  

  

  //获取amountOutput

  

  

  }

  

  //如果input==token0,那么amount0Out就是0,amount1Out就是amountOut;则

  

  

  //如果这是*后的一笔交易,那么to地址就是_to,否则to地址是下一笔交易的流动池地址

  

  

  //执行input和output的交易

  

  

  

  

  可以看到,因为没有amounts,需要使用流动池余额减去库存来计算amountInput。

  

  外部函数(仅供合约外部调用)

  

  swapExactTokensForTokensSupportingFeeOnTransferTokens

  

  代码速浏览

  

  functionswapExactTokensForTokensSupportingFeeOnTransferTokens(

  

  uint amountIn,

  

  uint amountOutMin,

  

  address[]calldata path,

  

  address to,

  

  uint deadline

  

  )external virtual override ensure(deadline){

  

  TransferHelper.safeTransferFrom(

  

  path[0],msg.sender,UniswapV2Library.pairFor(factory,path[0],path[1]),amountIn

  

  );

  

  uint balanceBefore=IERC20(path[path.length-1]).balanceOf(to);

  

  _swapSupportingFeeOnTransferTokens(path,to);

  

  require(

  

  IERC20(path[path.length-1]).balanceOf(to).sub(balanceBefore)>=amountOutMin,

  

  'UniswapV2Router:INSUFFICIENT_OUTPUT_AMOUNT'

  

  参数分析

  

  函数swapExactTokensForTokensSupportingFeeOnTransferTokens的入参有5个,出参有0个,对应的解释如下:

  

  

  uint amountIn,//交易支付代币数量

  

  uint amountOutMin,//交易获得代币*小值

  

  address[]calldata path,//交易路径列表

  

  address to,//交易获得的token发送到的地址

  

  uint deadline//过期时间

  

  )external virtual override ensure(deadline){

  

  函数swapExactTokensForTokensSupportingFeeOnTransferTokens相比函数swapExactTokensForTokens,少了amounts,因为交易后可变数量的代币不能做amounts的预测。

  

  实现分析

  

  ……

  

  //检查交易是否过期

  

  ensure(deadline)

  

  {

  

  //将amountIn数量的path[0]代币从用户账户中转移到path[0],path[1]的流动池

  

  TransferHelper.safeTransferFrom(

  

  

  );

  

  //记录to地址path[path.length-1]代币的余额

  

  

  //按path列表执行交易集合

  

  _swapSupportingFeeOnTransferTokens(path,to);

  

  //如果to地址获得的代币数量小于amountOutMin,交易失败

  

  require(

  

  

  

  );

  

  }

  

  该函数适用于支付确定数量的代币,获得不定数量的代币,且在path路径列表中有交易后数量可变的代币。


所属分类:中国商务服务网 / APP开发
关于广州杰肯狸网络科技有限公司商铺首页 | 更多产品 | 联系方式 | 黄页介绍
成立日期2022年03月04日
法定代表人廖斌
注册资本100
经营范围动漫游戏开发;计算机系统服务;新材料技术研发;能量回收系统研发;物联网技术研发;广告设计、代理;广告制作;日用品销售;日用百货销售;信息技术咨询服务;互联网销售(除销售需要许可的商品);国内贸易代理;轨道交通通信信号系统开发;人工智能双创服务平台;互联网安全服务;互联网数据服务;物联网应用服务;远程健康管理服务;数字文化创意内容应用服务;区块技术相关软件和服务;5G通信技术服务;网络技术服务;生物质能资源数据库信息系统平台;技术服务、技术开发、技术咨询、技术交流、技术转让、技术推广;人工智能公共服务平台技术咨询服务;人工智能公共数据平台;人工智能基础资源与技术平台;大数据服务;人工智能基础软件开发;人工智能应用软件开发;智能水务系统开发;网络与信息安全软件开发;人工智能理论与算法软件开发;智能机器人的研发;软件外包服务;数字文化创意软件开发;集成电路设计;信息系统集成服务;智能控制系统集成;人工智能通用应用系统;人工智能行业应用系统集成服务;物联网技术服务;信息系统运行维护服务;数据处理和存储支持服务;数据处理服务;软件开发;;
公司简介杰肯狸科技自成立起始终致力于在高新软件技术开发与研究和服务,现拥有着业内顶尖的技术开发团队以及卓越的服务品质、专业安全的技术服务实力,融合深度行业分析、创意策划实施、丰富业内资源等多项优势,依托经验丰富的专业人才、更精准、更快速的读懂您的需求,专业团队,欢迎随时上门考察,联系电话18125913365。 ...
公司新闻
顺企网 | 公司 | 黄页 | 产品 | 采购 | 资讯 | 免费注册 轻松建站
免责声明:本站信息由企业自行发布,本站完全免费,交易请核实资质,谨防诈骗,如有侵权请联系我们   法律声明  联系顺企网
© 11467.com 顺企网 版权所有
ICP备案: 粤B2-20160116 / 粤ICP备12079258号 / 粤公网安备 44030702000007号 / 互联网药品信息许可证:(粤)—经营性—2023—0112