区块链本质上是一种去中心化的分布式数据库。其通过加密技术,首先将数据进行加密,再按照时间的顺序进行叠加,生成永久的不可逆向修改的记录,然后再把这些数据的节点进行分散,就形成了一套分布式的账本系统。
区块链技术的核心是一个由许多互相链接的区块组成的分布式数据库。每个区块都包含着一定量的交易数据,以及一份对之前区块的指向性记录,形成了一条不可逆的、可追溯的交易记录链。由于这个链是由全网上每个节点同步的,所以任何一个节点的变化都会反映在全网的账本中。
区块链技术的主要特点是去中心化、透明、安全和不可篡改。由于区块链数据的共识机制是通过全网上的节点共同达成的,而且所有节点上的数据都是相同的,所以这种技术比传统的中心化数据库更加安全和可靠。同时,由于区块链数据是公开透明的,每个人都可以查看交易记录,这也保证了数据的公正性和透明度。
在 NonfungiblePositionManager
中回调函数的实现如下:
/// @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); // 根据传入的参数,使用 transferFrom 代用户向 Pool 中支付 token if (amount0Owed > 0) pay(decoded.poolKey.token0, decoded.payer, msg.sender, amount0Owed); if (amount1Owed > 0) pay(decoded.poolKey.token1, decoded.payer, msg.sender, amount1Owed); }