This is the canonical staking contract designed for Uniswap V3.
Note that the v1.0.0 release is susceptible to a high-difficulty, never-exploited vulnerability. For this reason, please use the v1.0.2 release, deployed and verified on Etherscan:
0x1f98407aaB862CdDeF78Ed252D6f557aA5b0f00d
yarn
yarn test
# if gas snapshots need to be updated
$ UPDATE_SNAPSHOT=1 yarn test
yarn size-contracts