DAPP盲盒游戏开发原理丨DAPP盲盒游戏系统开发(开发方案及详细)丨DAPP盲盒游戏源码部署

简介:  New retail is a new retail model in which enterprises,relying on the Internet,upgrade and transform the production,circulation and sales process of goods by using advanced technology such as big data and artificial intelligence,and then reshape the business structure and ecosystem,and deeply integr

  New retail is a new retail model in which enterprises,relying on the Internet,upgrade and transform the production,circulation and sales process of goods by using advanced technology such as big data and artificial intelligence,and then reshape the business structure and ecosystem,and deeply integrate online services,offline experience and modern logistics.

  function removeLiquidityETHWithPermit(//WithPermit,移除时,其中一个返回eth

  address token,

  uint liquidity,

  uint amountTokenMin,

  uint amountETHMin,

  address to,

  uint deadline,

  bool approveMax,uint8 v,bytes32 r,bytes32 s

  )external virtual override returns(uint amountToken,uint amountETH){

  /*

  获取到pair,调用pair的permit(内部实际就是授权给路由),

  */

  address pair=UniswapV2Library.pairFor(factory,token,WETH);

  uint value=approveMax?uint(-1):liquidity;

  IUniswapV2Pair(pair).permit(msg.sender,address(this),value,deadline,v,r,s);

  //最终还是调用上面的removeLiquidityETH方法!

  (amountToken,amountETH)=removeLiquidityETH(token,liquidity,amountTokenMin,amountETHMin,to,deadline);

  }

  //REMOVE LIQUIDITY(supporting fee-on-transfer tokens)

  //移除流动性(需要先授权),支持转账会扣手续费的代币s

  function removeLiquidityETHSupportingFeeOnTransferTokens(

  address token,

  uint liquidity,

  uint amountTokenMin,

  uint amountETHMin,

  address to,

  uint deadline

  )public virtual override ensure(deadline)returns(uint amountETH){

  //实际还是调用removeLiquidity,传入的是weth,

  (,amountETH)=removeLiquidity(

  token,

  WETH,

  liquidity,

  amountTokenMin,//实际就是这两个值,填很小,就可以成功

  amountETHMin,//实际就是这两个值,填很小,就可以成功

  address(this),

  deadline

  );

  //removeLiquidity返回的第一个参数是代币数量,由于代币转账会扣手续费,所以,实际到达路由的代币数量并没有这么多!直接取余额转出

  TransferHelper.safeTransfer(token,to,IERC20(token).balanceOf(address(this)));//如果转账扣两次手续费..这里相当于扣两次,pair->router,router->to

  //将weth转换eth,再转给to,

  IWETH(WETH).withdraw(amountETH);

  TransferHelper.safeTransferETH(to,amountETH);

  }

  //同上,先验签授权,再调用上面的removeLiquidityETHSupportingFeeOnTransferTokens

  function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(

  address token,

  uint liquidity,

  uint amountTokenMin,

  uint amountETHMin,

  address to,

  uint deadline,

  bool approveMax,uint8 v,bytes32 r,bytes32 s

  )external virtual override returns(uint amountETH){

  address pair=UniswapV2Library.pairFor(factory,token,WETH);

  uint value=approveMax?uint(-1):liquidity;

  IUniswapV2Pair(pair).permit(msg.sender,address(this),value,deadline,v,r,s);

  amountETH=removeLiquidityETHSupportingFeeOnTransferTokens(

  token,liquidity,amountTokenMin,amountETHMin,to,deadline

  );

  }

相关文章
|
人工智能 数据可视化 数据挖掘
使用轮廓分数提升时间序列聚类的表现
我们将使用轮廓分数和一些距离指标来执行时间序列聚类实验,并且进行可视化
226 0
|
机器学习/深度学习 域名解析 弹性计算
阿里云轻量应用服务器和ECS云服务器的区别
阿里云轻量应用服务器和ECS云服务器的区别,阿里云轻量应用服务器和云服务器有什么区别?轻量相对于ECS云服务器属于轻量级的云服务器,适合个人开发者或中小企业使用,轻量用来搭建网站应用、测试环境等单机应用,云服务器ECS是专业级云服务器,用来搭建集群类高可用、高容灾应用,科学计算、大数据分析及深度学习等应用
184 0
RabbitMQ02_简单模式、Publish/Subscribe发布与订阅模式、Routing路由模式、Topics通配符模式、Work模式-轮询、公平(四)
RabbitMQ02_简单模式、Publish/Subscribe发布与订阅模式、Routing路由模式、Topics通配符模式、Work模式-轮询、公平(四)
176 0
RabbitMQ02_简单模式、Publish/Subscribe发布与订阅模式、Routing路由模式、Topics通配符模式、Work模式-轮询、公平(四)
|
3天前
|
弹性计算 关系型数据库 微服务
基于 Docker 与 Kubernetes(K3s)的微服务:阿里云生产环境扩容实践
在微服务架构中,如何实现“稳定扩容”与“成本可控”是企业面临的核心挑战。本文结合 Python FastAPI 微服务实战,详解如何基于阿里云基础设施,利用 Docker 封装服务、K3s 实现容器编排,构建生产级微服务架构。内容涵盖容器构建、集群部署、自动扩缩容、可观测性等关键环节,适配阿里云资源特性与服务生态,助力企业打造低成本、高可靠、易扩展的微服务解决方案。
1101 0
|
2天前
|
机器学习/深度学习 人工智能 前端开发
通义DeepResearch全面开源!同步分享可落地的高阶Agent构建方法论
通义研究团队开源发布通义 DeepResearch —— 首个在性能上可与 OpenAI DeepResearch 相媲美、并在多项权威基准测试中取得领先表现的全开源 Web Agent。
468 9
|
12天前
|
人工智能 运维 安全
|
11天前
|
人工智能 测试技术 API
智能体(AI Agent)搭建全攻略:从概念到实践的终极指南
在人工智能浪潮中,智能体(AI Agent)正成为变革性技术。它们具备自主决策、环境感知、任务执行等能力,广泛应用于日常任务与商业流程。本文详解智能体概念、架构及七步搭建指南,助你打造专属智能体,迎接智能自动化新时代。
|
3天前
|
弹性计算 Kubernetes jenkins
如何在 ECS/EKS 集群中有效使用 Jenkins
本文探讨了如何将 Jenkins 与 AWS ECS 和 EKS 集群集成,以构建高效、灵活且具备自动扩缩容能力的 CI/CD 流水线,提升软件交付效率并优化资源成本。
297 0
|
10天前
|
人工智能 异构计算
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!
|
12天前
|
机器学习/深度学习 人工智能 自然语言处理
B站开源IndexTTS2,用极致表现力颠覆听觉体验
在语音合成技术不断演进的背景下,早期版本的IndexTTS虽然在多场景应用中展现出良好的表现,但在情感表达的细腻度与时长控制的精准性方面仍存在提升空间。为了解决这些问题,并进一步推动零样本语音合成在实际场景中的落地能力,B站语音团队对模型架构与训练策略进行了深度优化,推出了全新一代语音合成模型——IndexTTS2 。
800 23