From 40f72cfff562397f656c3ff849887d90ec8ff1c2 Mon Sep 17 00:00:00 2001 From: JulesCrown Date: Tue, 12 Mar 2024 10:36:31 +0100 Subject: [PATCH] wip --- .gitignore | 4 +++- onchain/lib/forge-std | 1 - onchain/lib/openzeppelin-contracts | 1 - onchain/lib/solmate | 1 - onchain/lib/uni-v3-lib | 1 - onchain/lib/v3-core | 1 - onchain/lib/v3-periphery | 1 - onchain/remappings.txt | 3 +-- onchain/src/LiquidityManager.sol | 7 ++++--- onchain/src/lib/FixedPoint128.sol | 8 ++++++++ onchain/src/lib/FixedPoint96.sol | 10 ++++++++++ onchain/src/lib/PositionKey.sol | 13 +++++++++++++ 12 files changed, 39 insertions(+), 12 deletions(-) delete mode 160000 onchain/lib/forge-std delete mode 160000 onchain/lib/openzeppelin-contracts delete mode 160000 onchain/lib/solmate delete mode 160000 onchain/lib/uni-v3-lib delete mode 160000 onchain/lib/v3-core delete mode 160000 onchain/lib/v3-periphery create mode 100644 onchain/src/lib/FixedPoint128.sol create mode 100644 onchain/src/lib/FixedPoint96.sol create mode 100644 onchain/src/lib/PositionKey.sol diff --git a/.gitignore b/.gitignore index bfd9fe6..68788a6 100644 --- a/.gitignore +++ b/.gitignore @@ -14,4 +14,6 @@ docs/ .env .secret .infura -.DS_Store \ No newline at end of file +.DS_Store + +/onchain/lib/ \ No newline at end of file diff --git a/onchain/lib/forge-std b/onchain/lib/forge-std deleted file mode 160000 index b6a506d..0000000 --- a/onchain/lib/forge-std +++ /dev/null @@ -1 +0,0 @@ -Subproject commit b6a506db2262cad5ff982a87789ee6d1558ec861 diff --git a/onchain/lib/openzeppelin-contracts b/onchain/lib/openzeppelin-contracts deleted file mode 160000 index dbb6104..0000000 --- a/onchain/lib/openzeppelin-contracts +++ /dev/null @@ -1 +0,0 @@ -Subproject commit dbb6104ce834628e473d2173bbc9d47f81a9eec3 diff --git a/onchain/lib/solmate b/onchain/lib/solmate deleted file mode 160000 index c892309..0000000 --- a/onchain/lib/solmate +++ /dev/null @@ -1 +0,0 @@ -Subproject commit c892309933b25c03d32b1b0d674df7ae292ba925 diff --git a/onchain/lib/uni-v3-lib b/onchain/lib/uni-v3-lib deleted file mode 160000 index 1e2e1b3..0000000 --- a/onchain/lib/uni-v3-lib +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 1e2e1b35c1720518dec222e3f531fb82375c0881 diff --git a/onchain/lib/v3-core b/onchain/lib/v3-core deleted file mode 160000 index e3589b1..0000000 --- a/onchain/lib/v3-core +++ /dev/null @@ -1 +0,0 @@ -Subproject commit e3589b192d0be27e100cd0daaf6c97204fdb1899 diff --git a/onchain/lib/v3-periphery b/onchain/lib/v3-periphery deleted file mode 160000 index 80f26c8..0000000 --- a/onchain/lib/v3-periphery +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 80f26c86c57b8a5e4b913f42844d4c8bd274d058 diff --git a/onchain/remappings.txt b/onchain/remappings.txt index af07f81..5c00446 100644 --- a/onchain/remappings.txt +++ b/onchain/remappings.txt @@ -1,4 +1,3 @@ @openzeppelin/=lib/openzeppelin-contracts/contracts/ -@uniswap/v3-core/=lib/v3-core/ -@uniswap/v3-periphery/=lib/v3-periphery/ +@uniswap-v3-core/=lib/v3-core/ @aperture/uni-v3-lib/=lib/uni-v3-lib/src/ diff --git a/onchain/src/LiquidityManager.sol b/onchain/src/LiquidityManager.sol index e6a370b..8a73e1d 100644 --- a/onchain/src/LiquidityManager.sol +++ b/onchain/src/LiquidityManager.sol @@ -1,13 +1,14 @@ // SPDX-License-Identifier: GPL-3.0-or-later pragma solidity ^0.8.20; +import './lib/PositionKey.sol'; +import './lib/FixedPoint128.sol'; +import './lib/FixedPoint96.sol'; +import '@uniswap-v3-core/contracts/interfaces/IUniswapV3Pool.sol'; import '@aperture/uni-v3-lib/TickMath.sol'; import '@aperture/uni-v3-lib/LiquidityAmounts.sol'; import '@aperture/uni-v3-lib/PoolAddress.sol'; import '@aperture/uni-v3-lib/CallbackValidation.sol'; -import '@uniswap/v3-periphery/contracts/libraries/PositionKey.sol'; -import '@uniswap/v3-core/contracts/libraries/FixedPoint128.sol'; -import '@uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol'; import '@openzeppelin/contracts/token/ERC20/IERC20.sol'; /** diff --git a/onchain/src/lib/FixedPoint128.sol b/onchain/src/lib/FixedPoint128.sol new file mode 100644 index 0000000..6d6948b --- /dev/null +++ b/onchain/src/lib/FixedPoint128.sol @@ -0,0 +1,8 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +pragma solidity >=0.4.0; + +/// @title FixedPoint128 +/// @notice A library for handling binary fixed point numbers, see https://en.wikipedia.org/wiki/Q_(number_format) +library FixedPoint128 { + uint256 internal constant Q128 = 0x100000000000000000000000000000000; +} diff --git a/onchain/src/lib/FixedPoint96.sol b/onchain/src/lib/FixedPoint96.sol new file mode 100644 index 0000000..63b42c2 --- /dev/null +++ b/onchain/src/lib/FixedPoint96.sol @@ -0,0 +1,10 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +pragma solidity >=0.4.0; + +/// @title FixedPoint96 +/// @notice A library for handling binary fixed point numbers, see https://en.wikipedia.org/wiki/Q_(number_format) +/// @dev Used in SqrtPriceMath.sol +library FixedPoint96 { + uint8 internal constant RESOLUTION = 96; + uint256 internal constant Q96 = 0x1000000000000000000000000; +} diff --git a/onchain/src/lib/PositionKey.sol b/onchain/src/lib/PositionKey.sol new file mode 100644 index 0000000..a60fc18 --- /dev/null +++ b/onchain/src/lib/PositionKey.sol @@ -0,0 +1,13 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +pragma solidity >=0.5.0; + +library PositionKey { + /// @dev Returns the key of the position in the core library + function compute( + address owner, + int24 tickLower, + int24 tickUpper + ) internal pure returns (bytes32) { + return keccak256(abi.encodePacked(owner, tickLower, tickUpper)); + } +}