去中心化存储技术是一种新型存储技术,它改变了传统的集中式存储技术,将数据从单一位置移到多个位置,这样就消除了存储数据的中心机构或服务器的责任,增加了安全性和数据的有效存储,确保用户的数据安全性。
DAPP是去中心化应用程序/分布式的应用程序,是底层区块链平台生态上衍生的各种分布式应用,也是区块链世界中的基础服务提供方。将应用程序分布在不同节点上,通过共识机制和区块链平台来完成任务的应用程序,它本身就是去中心化,不依赖于任何中心化服务器,促使用户交易更加安全。
智能合约dapp开发技术是一种基于区块链技术的开发技术,它可以帮助开发者快速高效地开发出功能强大、可靠性高的dapp(去中心化应用)。dapp定制开发技术则是用于为dapp开发者提供更好的定制化开发服务,帮助开发者更快捷地构建出功能强大、可靠性高的dapp。
Web3.0通过将信息交互从屏幕转移到物理空间,改变了终端用户体验,因而也有称Web3.0为“空间网络(Spatial Web)”。该“空间网络”包括空间交互层(利用智能眼镜或语音等实现实时信息交互)、数字信息层(借助传感和数字映射为每一个对象创建数字孪生)和物理层(通过感观了解和体验的世界)。
function addLiquidityETH(
address token,
uint amountTokenDesired,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline
)external virtual override payable ensure(deadline)returns(uint amountToken,uint amountETH,uint liquidity){
(amountToken,amountETH)=_addLiquidity(
token,
WETH,
amountTokenDesired,
msg.value,
amountTokenMin,
amountETHMin
);
address pair=UniswapV2Library.pairFor(factory,token,WETH);
TransferHelper.safeTransferFrom(token,msg.sender,pair,amountToken);
IWETH(WETH).deposit{value:amountETH}();
assert(IWETH(WETH).transfer(pair,amountETH));
liquidity=IUniswapV2Pair(pair).mint(to);
if(msg.value>amountETH)TransferHelper.safeTransferETH(msg.sender,msg.value-amountETH);
}
def removeLiquidity(amount:uint256,min_eth:uint256(wei),min_tokens:uint256,deadline:timestamp)->(uint256(wei),uint256):
assert(amount>0 and deadline>block.timestamp)and(min_eth>0 and min_tokens>0)
total_liquidity:uint256=self.totalSupply#获取该交易池的总流动性
assert total_liquidity>0#总流动性>0
token_reserve:uint256=self.token.balanceOf(self)#token余额
eth_amount:uint256(wei)=amount*self.balance/total_liquidity#UNI数量兑换等比例的eth
token_amount:uint256=amount*token_reserve/total_liquidity#UNI数换等比例的token数
assert eth_amount>=min_eth and token_amount>=min_tokens#兑换的数量应该大于用户最小提取期望值
self.balances[msg.sender]-=amount#减少用户的UNI余额
self.totalSupply=total_liquidity-amount#减小总流动性池的UNI余额
send(msg.sender,eth_amount)#给用户转eth,因此self.balance也会减少
assert self.token.transfer(msg.sender,token_amount)#池子给用户转ERC20
log.RemoveLiquidity(msg.sender,eth_amount,token_amount)
log.Transfer(msg.sender,ZERO_ADDRESS,amount)
return eth_amount,token_amount