[ { "inputs": [ { "internalType": "contract IDragonswapV2Factory", "name": "_factory", "type": "address" }, { "internalType": "contract INonfungiblePositionManager", "name": "_nonfungiblePositionManager", "type": "address" }, { "internalType": "uint256", "name": "_maxIncentiveStartLeadTime", "type": "uint256" }, { "internalType": "uint256", "name": "_maxIncentiveDuration", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "oldOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "DepositTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "contract IERC20Minimal", "name": "rewardToken", "type": "address" }, { "indexed": true, "internalType": "contract IDragonswapV2Pool", "name": "pool", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "startTime", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "endTime", "type": "uint256" }, { "indexed": false, "internalType": "address", "name": "refundee", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "reward", "type": "uint256" } ], "name": "IncentiveCreated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "incentiveId", "type": "bytes32" }, { "indexed": false, "internalType": "uint256", "name": "refund", "type": "uint256" } ], "name": "IncentiveEnded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "reward", "type": "uint256" } ], "name": "RewardClaimed", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "indexed": true, "internalType": "bytes32", "name": "incentiveId", "type": "bytes32" }, { "indexed": false, "internalType": "uint128", "name": "liquidity", "type": "uint128" } ], "name": "TokenStaked", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "indexed": true, "internalType": "bytes32", "name": "incentiveId", "type": "bytes32" } ], "name": "TokenUnstaked", "type": "event" }, { "inputs": [ { "internalType": "contract IERC20Minimal", "name": "rewardToken", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amountRequested", "type": "uint256" } ], "name": "claimReward", "outputs": [ { "internalType": "uint256", "name": "reward", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "contract IERC20Minimal", "name": "rewardToken", "type": "address" }, { "internalType": "contract IDragonswapV2Pool", "name": "pool", "type": "address" }, { "internalType": "uint256", "name": "startTime", "type": "uint256" }, { "internalType": "uint256", "name": "endTime", "type": "uint256" }, { "internalType": "address", "name": "refundee", "type": "address" } ], "internalType": "struct IDragonswapV2Staker.IncentiveKey", "name": "key", "type": "tuple" }, { "internalType": "uint256", "name": "reward", "type": "uint256" } ], "name": "createIncentive", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "deposits", "outputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "uint48", "name": "numberOfStakes", "type": "uint48" }, { "internalType": "int24", "name": "tickLower", "type": "int24" }, { "internalType": "int24", "name": "tickUpper", "type": "int24" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "contract IERC20Minimal", "name": "rewardToken", "type": "address" }, { "internalType": "contract IDragonswapV2Pool", "name": "pool", "type": "address" }, { "internalType": "uint256", "name": "startTime", "type": "uint256" }, { "internalType": "uint256", "name": "endTime", "type": "uint256" }, { "internalType": "address", "name": "refundee", "type": "address" } ], "internalType": "struct IDragonswapV2Staker.IncentiveKey", "name": "key", "type": "tuple" } ], "name": "endIncentive", "outputs": [ { "internalType": "uint256", "name": "refund", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "factory", "outputs": [ { "internalType": "contract IDragonswapV2Factory", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "contract IERC20Minimal", "name": "rewardToken", "type": "address" }, { "internalType": "contract IDragonswapV2Pool", "name": "pool", "type": "address" }, { "internalType": "uint256", "name": "startTime", "type": "uint256" }, { "internalType": "uint256", "name": "endTime", "type": "uint256" }, { "internalType": "address", "name": "refundee", "type": "address" } ], "internalType": "struct IDragonswapV2Staker.IncentiveKey", "name": "key", "type": "tuple" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getRewardInfo", "outputs": [ { "internalType": "uint256", "name": "reward", "type": "uint256" }, { "internalType": "uint160", "name": "secondsInsideX128", "type": "uint160" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "name": "incentives", "outputs": [ { "internalType": "uint256", "name": "totalRewardUnclaimed", "type": "uint256" }, { "internalType": "uint160", "name": "totalSecondsClaimedX128", "type": "uint160" }, { "internalType": "uint96", "name": "numberOfStakes", "type": "uint96" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxIncentiveDuration", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxIncentiveStartLeadTime", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes[]", "name": "data", "type": "bytes[]" } ], "name": "multicall", "outputs": [ { "internalType": "bytes[]", "name": "results", "type": "bytes[]" } ], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "nonfungiblePositionManager", "outputs": [ { "internalType": "contract INonfungiblePositionManager", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "onERC721Received", "outputs": [ { "internalType": "bytes4", "name": "", "type": "bytes4" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "contract IERC20Minimal", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" } ], "name": "rewards", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "contract IERC20Minimal", "name": "rewardToken", "type": "address" }, { "internalType": "contract IDragonswapV2Pool", "name": "pool", "type": "address" }, { "internalType": "uint256", "name": "startTime", "type": "uint256" }, { "internalType": "uint256", "name": "endTime", "type": "uint256" }, { "internalType": "address", "name": "refundee", "type": "address" } ], "internalType": "struct IDragonswapV2Staker.IncentiveKey", "name": "key", "type": "tuple" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "stakeToken", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "bytes32", "name": "incentiveId", "type": "bytes32" } ], "name": "stakes", "outputs": [ { "internalType": "uint160", "name": "secondsPerLiquidityInsideInitialX128", "type": "uint160" }, { "internalType": "uint128", "name": "liquidity", "type": "uint128" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "address", "name": "to", "type": "address" } ], "name": "transferDeposit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "contract IERC20Minimal", "name": "rewardToken", "type": "address" }, { "internalType": "contract IDragonswapV2Pool", "name": "pool", "type": "address" }, { "internalType": "uint256", "name": "startTime", "type": "uint256" }, { "internalType": "uint256", "name": "endTime", "type": "uint256" }, { "internalType": "address", "name": "refundee", "type": "address" } ], "internalType": "struct IDragonswapV2Staker.IncentiveKey", "name": "key", "type": "tuple" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "unstakeToken", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "withdrawToken", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]