DAPP是去中心化应用程序(Decentralized Application),它是建立在区块练技术之上的应用程序,具有去中心化、开放性、透明性、安全性等特点,DAPP可以实现各种功能,例如数字货币钱包、去中心化交易所、去中心化社交网络等。
区块链技术:Dapp使用区块链技术来将数据存储在一个由多个节点组成的公开的、去中心化的数据库上,这使得数据的存储和传输更加安全、可靠和透明。
constructor(){
int24 _tickSpacing;
(factory,token0,token1,fee,_tickSpacing)=IUniswapV3PoolDeployer(msg.sender).parameters();
tickSpacing=_tickSpacing;
maxLiquidityPerTick=Tick.tickSpacingToMaxLiquidityPerTick(_tickSpacing);
}function initialize(uint160 sqrtPriceX96)external override{
require(slot0.sqrtPriceX96==0,'AI');
int24 tick=TickMath.getTickAtSqrtRatio(sqrtPriceX96);
(uint16 cardinality,uint16 cardinalityNext)=observations.initialize(_blockTimestamp());
slot0=Slot0({
sqrtPriceX96:sqrtPriceX96,
tick:tick,
observationIndex:0,
observationCardinality:cardinality,
observationCardinalityNext:cardinalityNext,
feeProtocol:0,
unlocked:true
});
emit Initialize(sqrtPriceX96,tick);
}
struct MintCallbackData{
PoolAddress.PoolKey poolKey;
address payer;
}
///inheritdoc IUniswapV3MintCallback
function uniswapV3MintCallback(
uint256 amount0Owed,
uint256 amount1Owed,
bytes calldata data
)external override{
MintCallbackData memory decoded=abi.decode(data,(MintCallbackData));
CallbackValidation.verifyCallback(factory,decoded.poolKey);
if(amount0Owed>0)pay(decoded.poolKey.token0,decoded.payer,msg.sender,amount0Owed);
if(amount1Owed>0)pay(decoded.poolKey.token1,decoded.payer,msg.sender,amount1Owed);
}