├── .eslintignore ├── .eslintrc.js ├── .gitattributes ├── .github └── workflows │ ├── lint.yml │ └── tests.yml ├── .gitignore ├── .mocharc.json ├── .prettierignore ├── .prettierrc ├── .solcover.js ├── .solhint.json ├── .yarnrc ├── LICENSE ├── README.md ├── contracts ├── UniswapV3Staker.sol ├── interfaces │ └── IUniswapV3Staker.sol ├── libraries │ ├── IncentiveId.sol │ ├── NFTPositionInfo.sol │ ├── RewardMath.sol │ └── TransferHelperExtended.sol └── test │ ├── TestERC20.sol │ ├── TestIncentiveId.sol │ └── TestRewardMath.sol ├── docs └── Design.md ├── hardhat.config.ts ├── package.json ├── test ├── UniswapV3Staker.integration.spec.ts ├── helpers │ ├── index.ts │ └── types.ts ├── matchers │ └── beWithin.ts ├── shared │ ├── actors.ts │ ├── external │ │ ├── WETH9.json │ │ └── v3-periphery │ │ │ ├── constants.ts │ │ │ ├── ticks.ts │ │ │ └── tokenSort.ts │ ├── fixtures.ts │ ├── index.ts │ ├── linkLibraries.ts │ ├── logging.ts │ ├── provider.ts │ ├── ticks.ts │ └── time.ts ├── types.ts └── unit │ ├── Deployment.spec.ts │ ├── Deposits.spec.ts │ ├── Incentives.spec.ts │ ├── Multicall.spec.ts │ ├── RewardMath │ └── RewardMath.spec.ts │ ├── Stakes.spec.ts │ └── __snapshots__ │ ├── Deposits.spec.ts.snap │ ├── Incentives.spec.ts.snap │ ├── Multicall.spec.ts.snap │ └── Stakes.spec.ts.snap ├── tsconfig.json ├── types ├── ISwapRouter.d.ts ├── IWETH9.d.ts ├── NFTDescriptor.d.ts └── contractParams.ts └── yarn.lock /.eslintignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/v3-staker/HEAD/.eslintignore -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/v3-staker/HEAD/.eslintrc.js -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | *.sol linguist-language=Solidity -------------------------------------------------------------------------------- /.github/workflows/lint.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/v3-staker/HEAD/.github/workflows/lint.yml -------------------------------------------------------------------------------- /.github/workflows/tests.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/v3-staker/HEAD/.github/workflows/tests.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/v3-staker/HEAD/.gitignore -------------------------------------------------------------------------------- /.mocharc.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/v3-staker/HEAD/.mocharc.json -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | .github -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/v3-staker/HEAD/.prettierrc -------------------------------------------------------------------------------- /.solcover.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/v3-staker/HEAD/.solcover.js -------------------------------------------------------------------------------- /.solhint.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/v3-staker/HEAD/.solhint.json -------------------------------------------------------------------------------- /.yarnrc: -------------------------------------------------------------------------------- 1 | ignore-scripts true 2 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/v3-staker/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/v3-staker/HEAD/README.md -------------------------------------------------------------------------------- /contracts/UniswapV3Staker.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/v3-staker/HEAD/contracts/UniswapV3Staker.sol -------------------------------------------------------------------------------- /contracts/interfaces/IUniswapV3Staker.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/v3-staker/HEAD/contracts/interfaces/IUniswapV3Staker.sol -------------------------------------------------------------------------------- /contracts/libraries/IncentiveId.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/v3-staker/HEAD/contracts/libraries/IncentiveId.sol -------------------------------------------------------------------------------- /contracts/libraries/NFTPositionInfo.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/v3-staker/HEAD/contracts/libraries/NFTPositionInfo.sol -------------------------------------------------------------------------------- /contracts/libraries/RewardMath.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/v3-staker/HEAD/contracts/libraries/RewardMath.sol -------------------------------------------------------------------------------- /contracts/libraries/TransferHelperExtended.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/v3-staker/HEAD/contracts/libraries/TransferHelperExtended.sol -------------------------------------------------------------------------------- /contracts/test/TestERC20.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/v3-staker/HEAD/contracts/test/TestERC20.sol -------------------------------------------------------------------------------- /contracts/test/TestIncentiveId.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/v3-staker/HEAD/contracts/test/TestIncentiveId.sol -------------------------------------------------------------------------------- /contracts/test/TestRewardMath.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/v3-staker/HEAD/contracts/test/TestRewardMath.sol -------------------------------------------------------------------------------- /docs/Design.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/v3-staker/HEAD/docs/Design.md -------------------------------------------------------------------------------- /hardhat.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/v3-staker/HEAD/hardhat.config.ts -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/v3-staker/HEAD/package.json -------------------------------------------------------------------------------- /test/UniswapV3Staker.integration.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/v3-staker/HEAD/test/UniswapV3Staker.integration.spec.ts -------------------------------------------------------------------------------- /test/helpers/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/v3-staker/HEAD/test/helpers/index.ts -------------------------------------------------------------------------------- /test/helpers/types.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/v3-staker/HEAD/test/helpers/types.ts -------------------------------------------------------------------------------- /test/matchers/beWithin.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/v3-staker/HEAD/test/matchers/beWithin.ts -------------------------------------------------------------------------------- /test/shared/actors.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/v3-staker/HEAD/test/shared/actors.ts -------------------------------------------------------------------------------- /test/shared/external/WETH9.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/v3-staker/HEAD/test/shared/external/WETH9.json -------------------------------------------------------------------------------- /test/shared/external/v3-periphery/constants.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/v3-staker/HEAD/test/shared/external/v3-periphery/constants.ts -------------------------------------------------------------------------------- /test/shared/external/v3-periphery/ticks.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/v3-staker/HEAD/test/shared/external/v3-periphery/ticks.ts -------------------------------------------------------------------------------- /test/shared/external/v3-periphery/tokenSort.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/v3-staker/HEAD/test/shared/external/v3-periphery/tokenSort.ts -------------------------------------------------------------------------------- /test/shared/fixtures.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/v3-staker/HEAD/test/shared/fixtures.ts -------------------------------------------------------------------------------- /test/shared/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/v3-staker/HEAD/test/shared/index.ts -------------------------------------------------------------------------------- /test/shared/linkLibraries.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/v3-staker/HEAD/test/shared/linkLibraries.ts -------------------------------------------------------------------------------- /test/shared/logging.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/v3-staker/HEAD/test/shared/logging.ts -------------------------------------------------------------------------------- /test/shared/provider.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/v3-staker/HEAD/test/shared/provider.ts -------------------------------------------------------------------------------- /test/shared/ticks.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/v3-staker/HEAD/test/shared/ticks.ts -------------------------------------------------------------------------------- /test/shared/time.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/v3-staker/HEAD/test/shared/time.ts -------------------------------------------------------------------------------- /test/types.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/v3-staker/HEAD/test/types.ts -------------------------------------------------------------------------------- /test/unit/Deployment.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/v3-staker/HEAD/test/unit/Deployment.spec.ts -------------------------------------------------------------------------------- /test/unit/Deposits.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/v3-staker/HEAD/test/unit/Deposits.spec.ts -------------------------------------------------------------------------------- /test/unit/Incentives.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/v3-staker/HEAD/test/unit/Incentives.spec.ts -------------------------------------------------------------------------------- /test/unit/Multicall.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/v3-staker/HEAD/test/unit/Multicall.spec.ts -------------------------------------------------------------------------------- /test/unit/RewardMath/RewardMath.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/v3-staker/HEAD/test/unit/RewardMath/RewardMath.spec.ts -------------------------------------------------------------------------------- /test/unit/Stakes.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/v3-staker/HEAD/test/unit/Stakes.spec.ts -------------------------------------------------------------------------------- /test/unit/__snapshots__/Deposits.spec.ts.snap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/v3-staker/HEAD/test/unit/__snapshots__/Deposits.spec.ts.snap -------------------------------------------------------------------------------- /test/unit/__snapshots__/Incentives.spec.ts.snap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/v3-staker/HEAD/test/unit/__snapshots__/Incentives.spec.ts.snap -------------------------------------------------------------------------------- /test/unit/__snapshots__/Multicall.spec.ts.snap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/v3-staker/HEAD/test/unit/__snapshots__/Multicall.spec.ts.snap -------------------------------------------------------------------------------- /test/unit/__snapshots__/Stakes.spec.ts.snap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/v3-staker/HEAD/test/unit/__snapshots__/Stakes.spec.ts.snap -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/v3-staker/HEAD/tsconfig.json -------------------------------------------------------------------------------- /types/ISwapRouter.d.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/v3-staker/HEAD/types/ISwapRouter.d.ts -------------------------------------------------------------------------------- /types/IWETH9.d.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/v3-staker/HEAD/types/IWETH9.d.ts -------------------------------------------------------------------------------- /types/NFTDescriptor.d.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/v3-staker/HEAD/types/NFTDescriptor.d.ts -------------------------------------------------------------------------------- /types/contractParams.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/v3-staker/HEAD/types/contractParams.ts -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Uniswap/v3-staker/HEAD/yarn.lock --------------------------------------------------------------------------------