dapp元宇宙链游【详情】技术实现及源代码实现方式
2024-05-03 10:48 120.197.40.153 1次- 发布企业
- 广州杰肯狸网络科技有限公司商铺
- 认证
- 资质核验:已通过营业执照认证入驻顺企:第3年主体名称:广州杰肯狸网络科技有限公司组织机构代码: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路径列表中有交易后数量可变的代币。
成立日期 | 2022年03月04日 | ||
法定代表人 | 廖斌 | ||
注册资本 | 100 | ||
经营范围 | 动漫游戏开发;计算机系统服务;新材料技术研发;能量回收系统研发;物联网技术研发;广告设计、代理;广告制作;日用品销售;日用百货销售;信息技术咨询服务;互联网销售(除销售需要许可的商品);国内贸易代理;轨道交通通信信号系统开发;人工智能双创服务平台;互联网安全服务;互联网数据服务;物联网应用服务;远程健康管理服务;数字文化创意内容应用服务;区块技术相关软件和服务;5G通信技术服务;网络技术服务;生物质能资源数据库信息系统平台;技术服务、技术开发、技术咨询、技术交流、技术转让、技术推广;人工智能公共服务平台技术咨询服务;人工智能公共数据平台;人工智能基础资源与技术平台;大数据服务;人工智能基础软件开发;人工智能应用软件开发;智能水务系统开发;网络与信息安全软件开发;人工智能理论与算法软件开发;智能机器人的研发;软件外包服务;数字文化创意软件开发;集成电路设计;信息系统集成服务;智能控制系统集成;人工智能通用应用系统;人工智能行业应用系统集成服务;物联网技术服务;信息系统运行维护服务;数据处理和存储支持服务;数据处理服务;软件开发;; | ||
公司简介 | 杰肯狸科技自成立起始终致力于在高新软件技术开发与研究和服务,现拥有着业内顶尖的技术开发团队以及卓越的服务品质、专业安全的技术服务实力,融合深度行业分析、创意策划实施、丰富业内资源等多项优势,依托经验丰富的专业人才、更精准、更快速的读懂您的需求,专业团队,欢迎随时上门考察,联系电话18125913365。 ... |
- 为什么项目执行矿工费特别高!! Gas优化技术解决方案SolidityGas优化技术存储优化在Solidity中,存储优化对于管理和减... 2024-02-03
- 知识篇:怎么解决BTC上交易转账矿工费设置过低,导致交易迟迟不成交的问题比特币的手续费市场瞬息万变,可能会导致交易上链所需的手续费剧烈上升或下降,导致转... 2024-02-03
- Web3中的质押defi开发的选择Web3,作为互联网技术的新一代变革,已经迅速吸引了众多用户的关注。它不仅仅是一... 2024-02-03
- NFT代发服务开发时需要注意什么在当今数字化的时代,NFT(非同质化代币)的兴起成为了数字资产交易和保值增值的新... 2024-02-03
- 质押defi系统dapp开发流程作为广州杰肯狸网络科技有限公司的技术师,我们不仅致力于软件kaifa领域的创新和... 2024-02-03