DAPP是去中心化应用的缩写,是一种基于区块炼技术的应用程序,它不依赖于中心化的服务器,而是通过区块链网络上的节点来运行和维护。DAPP的特点是具有去中心化、透明、安全、不可篡改等特点,可以实现更加公平、透明、安全的应用场景。
DApp是指分布式应用程序(Decentralized Application),是一种基于区块链技术的应用程序,运行在分布式计算网络上,具有去中心化、安全、不可篡改等特点。与传统的中心化应用程序不同,DApp不依赖于单一的服务器或组织来管理和运行,而是通过区块链技术和智能合约来实现去中心化的管理和运行。
DAPP的常见应用范围包括数字货币、去中心化交易所、去中心化金融、去中心化社交、去中心化存储、去中心化游戏等领域
function _updatePosition(
address owner,
int24 tickLower,
int24 tickUpper,
int128 liquidityDelta,
int24 tick
)private returns(Position.Info storage position){
//获取用户的Postion
position=positions.get(owner,tickLower,tickUpper);
...
//根据传入的参数修改Position对应的lower/upper tick中
//的数据,这里可以是增加流动性,也可以是移出流动性
bool flippedLower;
bool flippedUpper;
if(liquidityDelta!=0){
uint32 blockTimestamp=_blockTimestamp();
//更新lower tikc和upper tick
//fippedX变量表示是此tick的引用状态是否发生变化,即
//被引用->未被引用或
//未被引用->被引用
//后续需要根据这个变量的值来更新tick位图
flippedLower=ticks.update(
tickLower,
tick,
liquidityDelta,
_feeGrowthGlobal0X128,
_feeGrowthGlobal1X128,
false,
maxLiquidityPerTick
);
flippedUpper=ticks.update(
tickUpper,
tick,
liquidityDelta,
_feeGrowthGlobal0X128,
_feeGrowthGlobal1X128,
true,
maxLiquidityPerTick
);
//如果一个tick第一次被引用,或者移除了所有引用
//那么更新tick位图
if(flippedLower){
tickBitmap.flipTick(tickLower,tickSpacing);
secondsOutside.initialize(tickLower,tick,tickSpacing,blockTimestamp);
}
if(flippedUpper){
tickBitmap.flipTick(tickUpper,tickSpacing);
secondsOutside.initialize(tickUpper,tick,tickSpacing,blockTimestamp);
}
}
...
//更新position中的数据
position.update(liquidityDelta,feeGrowthInside0X128,feeGrowthInside1X128);
//如果移除了对tick的引用,那么清除之前记录的元数据
//这只会发生在移除流动性的操作中
if(liquidityDelta<0){
if(flippedLower){
ticks.clear(tickLower);
secondsOutside.clear(tickLower,tickSpacing);
}
if(flippedUpper){
ticks.clear(tickUpper);
secondsOutside.clear(tickUpper,tickSpacing);
}
}
}