[
  {
    "inputs":[
      {
        "internalType":"contract ICrystalToken",
        "name":"_govToken",
        "type":"address"
      },
      {
        "internalType":"address",
        "name":"_devaddr",
        "type":"address"
      },
      {
        "internalType":"address",
        "name":"_liquidityaddr",
        "type":"address"
      },
      {
        "internalType":"address",
        "name":"_comfundaddr",
        "type":"address"
      },
      {
        "internalType":"address",
        "name":"_founderaddr",
        "type":"address"
      },
      {
        "internalType":"uint256",
        "name":"_rewardPerSecond",
        "type":"uint256"
      },
      {
        "internalType":"uint256",
        "name":"_startTimestamp",
        "type":"uint256"
      },
      {
        "internalType":"uint256",
        "name":"_halvingAfterTimestamp",
        "type":"uint256"
      },
      {
        "internalType":"uint256[]",
        "name":"_rewardMultiplier",
        "type":"uint256[]"
      },
      {
        "internalType":"uint256[]",
        "name":"_timeDeltaStartStage",
        "type":"uint256[]"
      },
      {
        "internalType":"uint256[]",
        "name":"_timeDeltaEndStage",
        "type":"uint256[]"
      },
      {
        "internalType":"uint256[]",
        "name":"_userFeeStage",
        "type":"uint256[]"
      },
      {
        "internalType":"uint256[]",
        "name":"_devFeeStage",
        "type":"uint256[]"
      }
    ],
    "stateMutability":"nonpayable",
    "type":"constructor"
  },
  {
    "anonymous":false,
    "inputs":[
      {
        "indexed":true,
        "internalType":"address",
        "name":"user",
        "type":"address"
      },
      {
        "indexed":true,
        "internalType":"uint256",
        "name":"pid",
        "type":"uint256"
      },
      {
        "indexed":false,
        "internalType":"uint256",
        "name":"amount",
        "type":"uint256"
      }
    ],
    "name":"Deposit",
    "type":"event"
  },
  {
    "anonymous":false,
    "inputs":[
      {
        "indexed":true,
        "internalType":"address",
        "name":"user",
        "type":"address"
      },
      {
        "indexed":true,
        "internalType":"uint256",
        "name":"pid",
        "type":"uint256"
      },
      {
        "indexed":false,
        "internalType":"uint256",
        "name":"amount",
        "type":"uint256"
      }
    ],
    "name":"EmergencyWithdraw",
    "type":"event"
  },
  {
    "anonymous":false,
    "inputs":[
      {
        "indexed":true,
        "internalType":"address",
        "name":"previousOwner",
        "type":"address"
      },
      {
        "indexed":true,
        "internalType":"address",
        "name":"newOwner",
        "type":"address"
      }
    ],
    "name":"OwnershipTransferred",
    "type":"event"
  },
  {
    "anonymous":false,
    "inputs":[
      {
        "indexed":true,
        "internalType":"address",
        "name":"user",
        "type":"address"
      },
      {
        "indexed":true,
        "internalType":"uint256",
        "name":"pid",
        "type":"uint256"
      },
      {
        "indexed":false,
        "internalType":"uint256",
        "name":"amount",
        "type":"uint256"
      },
      {
        "indexed":false,
        "internalType":"uint256",
        "name":"lockAmount",
        "type":"uint256"
      }
    ],
    "name":"SendGovernanceTokenReward",
    "type":"event"
  },
  {
    "anonymous":false,
    "inputs":[
      {
        "indexed":true,
        "internalType":"address",
        "name":"user",
        "type":"address"
      },
      {
        "indexed":true,
        "internalType":"uint256",
        "name":"pid",
        "type":"uint256"
      },
      {
        "indexed":false,
        "internalType":"uint256",
        "name":"amount",
        "type":"uint256"
      }
    ],
    "name":"Withdraw",
    "type":"event"
  },
  {
    "inputs":[

    ],
    "name":"FINISH_BONUS_AT_TIMESTAMP",
    "outputs":[
      {
        "internalType":"uint256",
        "name":"",
        "type":"uint256"
      }
    ],
    "stateMutability":"view",
    "type":"function"
  },
  {
    "inputs":[
      {
        "internalType":"uint256",
        "name":"",
        "type":"uint256"
      }
    ],
    "name":"HALVING_AT_TIMESTAMP",
    "outputs":[
      {
        "internalType":"uint256",
        "name":"",
        "type":"uint256"
      }
    ],
    "stateMutability":"view",
    "type":"function"
  },
  {
    "inputs":[

    ],
    "name":"PERCENT_FOR_COM",
    "outputs":[
      {
        "internalType":"uint256",
        "name":"",
        "type":"uint256"
      }
    ],
    "stateMutability":"view",
    "type":"function"
  },
  {
    "inputs":[

    ],
    "name":"PERCENT_FOR_DEV",
    "outputs":[
      {
        "internalType":"uint256",
        "name":"",
        "type":"uint256"
      }
    ],
    "stateMutability":"view",
    "type":"function"
  },
  {
    "inputs":[

    ],
    "name":"PERCENT_FOR_FOUNDERS",
    "outputs":[
      {
        "internalType":"uint256",
        "name":"",
        "type":"uint256"
      }
    ],
    "stateMutability":"view",
    "type":"function"
  },
  {
    "inputs":[

    ],
    "name":"PERCENT_FOR_LP",
    "outputs":[
      {
        "internalType":"uint256",
        "name":"",
        "type":"uint256"
      }
    ],
    "stateMutability":"view",
    "type":"function"
  },
  {
    "inputs":[
      {
        "internalType":"uint256",
        "name":"",
        "type":"uint256"
      }
    ],
    "name":"PERCENT_LOCK_BONUS_REWARD",
    "outputs":[
      {
        "internalType":"uint256",
        "name":"",
        "type":"uint256"
      }
    ],
    "stateMutability":"view",
    "type":"function"
  },
  {
    "inputs":[
      {
        "internalType":"uint256",
        "name":"",
        "type":"uint256"
      }
    ],
    "name":"REWARD_MULTIPLIER",
    "outputs":[
      {
        "internalType":"uint256",
        "name":"",
        "type":"uint256"
      }
    ],
    "stateMutability":"view",
    "type":"function"
  },
  {
    "inputs":[

    ],
    "name":"REWARD_PER_SECOND",
    "outputs":[
      {
        "internalType":"uint256",
        "name":"",
        "type":"uint256"
      }
    ],
    "stateMutability":"view",
    "type":"function"
  },
  {
    "inputs":[

    ],
    "name":"START_TIMESTAMP",
    "outputs":[
      {
        "internalType":"uint256",
        "name":"",
        "type":"uint256"
      }
    ],
    "stateMutability":"view",
    "type":"function"
  },
  {
    "inputs":[
      {
        "internalType":"uint256",
        "name":"_allocPoint",
        "type":"uint256"
      },
      {
        "internalType":"contract IERC20",
        "name":"_lpToken",
        "type":"address"
      },
      {
        "internalType":"bool",
        "name":"_withUpdate",
        "type":"bool"
      }
    ],
    "name":"add",
    "outputs":[

    ],
    "stateMutability":"nonpayable",
    "type":"function"
  },
  {
    "inputs":[
      {
        "internalType":"address",
        "name":"_toAdd",
        "type":"address"
      }
    ],
    "name":"addAuthorized",
    "outputs":[

    ],
    "stateMutability":"nonpayable",
    "type":"function"
  },
  {
    "inputs":[
      {
        "internalType":"address",
        "name":"",
        "type":"address"
      }
    ],
    "name":"authorized",
    "outputs":[
      {
        "internalType":"bool",
        "name":"",
        "type":"bool"
      }
    ],
    "stateMutability":"view",
    "type":"function"
  },
  {
    "inputs":[
      {
        "internalType":"uint256",
        "name":"_newFinish",
        "type":"uint256"
      }
    ],
    "name":"bonusFinishUpdate",
    "outputs":[

    ],
    "stateMutability":"nonpayable",
    "type":"function"
  },
  {
    "inputs":[
      {
        "internalType":"uint256",
        "name":"_pid",
        "type":"uint256"
      }
    ],
    "name":"claimReward",
    "outputs":[

    ],
    "stateMutability":"nonpayable",
    "type":"function"
  },
  {
    "inputs":[
      {
        "internalType":"uint256[]",
        "name":"_pids",
        "type":"uint256[]"
      }
    ],
    "name":"claimRewards",
    "outputs":[

    ],
    "stateMutability":"nonpayable",
    "type":"function"
  },
  {
    "inputs":[
      {
        "internalType":"address",
        "name":"_newCom",
        "type":"address"
      }
    ],
    "name":"comUpdate",
    "outputs":[

    ],
    "stateMutability":"nonpayable",
    "type":"function"
  },
  {
    "inputs":[

    ],
    "name":"comfundaddr",
    "outputs":[
      {
        "internalType":"address",
        "name":"",
        "type":"address"
      }
    ],
    "stateMutability":"view",
    "type":"function"
  },
  {
    "inputs":[
      {
        "internalType":"uint256",
        "name":"_pid",
        "type":"uint256"
      },
      {
        "internalType":"uint256",
        "name":"_amount",
        "type":"uint256"
      }
    ],
    "name":"deposit",
    "outputs":[

    ],
    "stateMutability":"nonpayable",
    "type":"function"
  },
  {
    "inputs":[
      {
        "internalType":"address",
        "name":"_devaddr",
        "type":"address"
      }
    ],
    "name":"dev",
    "outputs":[

    ],
    "stateMutability":"nonpayable",
    "type":"function"
  },
  {
    "inputs":[
      {
        "internalType":"uint256",
        "name":"",
        "type":"uint256"
      }
    ],
    "name":"devFeeStage",
    "outputs":[
      {
        "internalType":"uint256",
        "name":"",
        "type":"uint256"
      }
    ],
    "stateMutability":"view",
    "type":"function"
  },
  {
    "inputs":[

    ],
    "name":"devaddr",
    "outputs":[
      {
        "internalType":"address",
        "name":"",
        "type":"address"
      }
    ],
    "stateMutability":"view",
    "type":"function"
  },
  {
    "inputs":[
      {
        "internalType":"uint256",
        "name":"_pid",
        "type":"uint256"
      }
    ],
    "name":"emergencyWithdraw",
    "outputs":[

    ],
    "stateMutability":"nonpayable",
    "type":"function"
  },
  {
    "inputs":[
      {
        "internalType":"address",
        "name":"_newFounder",
        "type":"address"
      }
    ],
    "name":"founderUpdate",
    "outputs":[

    ],
    "stateMutability":"nonpayable",
    "type":"function"
  },
  {
    "inputs":[

    ],
    "name":"founderaddr",
    "outputs":[
      {
        "internalType":"address",
        "name":"",
        "type":"address"
      }
    ],
    "stateMutability":"view",
    "type":"function"
  },
  {
    "inputs":[
      {
        "internalType":"uint256",
        "name":"_from",
        "type":"uint256"
      },
      {
        "internalType":"uint256",
        "name":"_to",
        "type":"uint256"
      }
    ],
    "name":"getLockPercentage",
    "outputs":[
      {
        "internalType":"uint256",
        "name":"",
        "type":"uint256"
      }
    ],
    "stateMutability":"view",
    "type":"function"
  },
  {
    "inputs":[
      {
        "internalType":"uint256",
        "name":"_from",
        "type":"uint256"
      },
      {
        "internalType":"uint256",
        "name":"_to",
        "type":"uint256"
      }
    ],
    "name":"getMultiplier",
    "outputs":[
      {
        "internalType":"uint256",
        "name":"",
        "type":"uint256"
      }
    ],
    "stateMutability":"view",
    "type":"function"
  },
  {
    "inputs":[
      {
        "internalType":"uint256",
        "name":"pid1",
        "type":"uint256"
      }
    ],
    "name":"getNewRewardPerSecond",
    "outputs":[
      {
        "internalType":"uint256",
        "name":"",
        "type":"uint256"
      }
    ],
    "stateMutability":"view",
    "type":"function"
  },
  {
    "inputs":[
      {
        "internalType":"uint256",
        "name":"_from",
        "type":"uint256"
      },
      {
        "internalType":"uint256",
        "name":"_to",
        "type":"uint256"
      },
      {
        "internalType":"uint256",
        "name":"_allocPoint",
        "type":"uint256"
      }
    ],
    "name":"getPoolReward",
    "outputs":[
      {
        "internalType":"uint256",
        "name":"forDev",
        "type":"uint256"
      },
      {
        "internalType":"uint256",
        "name":"forFarmer",
        "type":"uint256"
      },
      {
        "internalType":"uint256",
        "name":"forLP",
        "type":"uint256"
      },
      {
        "internalType":"uint256",
        "name":"forCom",
        "type":"uint256"
      },
      {
        "internalType":"uint256",
        "name":"forFounders",
        "type":"uint256"
      }
    ],
    "stateMutability":"view",
    "type":"function"
  },
  {
    "inputs":[

    ],
    "name":"govToken",
    "outputs":[
      {
        "internalType":"contract ICrystalToken",
        "name":"",
        "type":"address"
      }
    ],
    "stateMutability":"view",
    "type":"function"
  },
  {
    "inputs":[
      {
        "internalType":"uint256[]",
        "name":"_newHalving",
        "type":"uint256[]"
      }
    ],
    "name":"halvingUpdate",
    "outputs":[

    ],
    "stateMutability":"nonpayable",
    "type":"function"
  },
  {
    "inputs":[

    ],
    "name":"liquidityaddr",
    "outputs":[
      {
        "internalType":"address",
        "name":"",
        "type":"address"
      }
    ],
    "stateMutability":"view",
    "type":"function"
  },
  {
    "inputs":[
      {
        "internalType":"uint256[]",
        "name":"_newlock",
        "type":"uint256[]"
      }
    ],
    "name":"lockUpdate",
    "outputs":[

    ],
    "stateMutability":"nonpayable",
    "type":"function"
  },
  {
    "inputs":[
      {
        "internalType":"uint256",
        "name":"_newcomlock",
        "type":"uint256"
      }
    ],
    "name":"lockcomUpdate",
    "outputs":[

    ],
    "stateMutability":"nonpayable",
    "type":"function"
  },
  {
    "inputs":[
      {
        "internalType":"uint256",
        "name":"_newdevlock",
        "type":"uint256"
      }
    ],
    "name":"lockdevUpdate",
    "outputs":[

    ],
    "stateMutability":"nonpayable",
    "type":"function"
  },
  {
    "inputs":[
      {
        "internalType":"uint256",
        "name":"_newfounderlock",
        "type":"uint256"
      }
    ],
    "name":"lockfounderUpdate",
    "outputs":[

    ],
    "stateMutability":"nonpayable",
    "type":"function"
  },
  {
    "inputs":[
      {
        "internalType":"uint256",
        "name":"_newlplock",
        "type":"uint256"
      }
    ],
    "name":"locklpUpdate",
    "outputs":[

    ],
    "stateMutability":"nonpayable",
    "type":"function"
  },
  {
    "inputs":[
      {
        "internalType":"address",
        "name":"_newLP",
        "type":"address"
      }
    ],
    "name":"lpUpdate",
    "outputs":[

    ],
    "stateMutability":"nonpayable",
    "type":"function"
  },
  {
    "inputs":[

    ],
    "name":"massUpdatePools",
    "outputs":[

    ],
    "stateMutability":"nonpayable",
    "type":"function"
  },
  {
    "inputs":[

    ],
    "name":"owner",
    "outputs":[
      {
        "internalType":"address",
        "name":"",
        "type":"address"
      }
    ],
    "stateMutability":"view",
    "type":"function"
  },
  {
    "inputs":[
      {
        "internalType":"uint256",
        "name":"_pid",
        "type":"uint256"
      },
      {
        "internalType":"address",
        "name":"_user",
        "type":"address"
      }
    ],
    "name":"pendingReward",
    "outputs":[
      {
        "internalType":"uint256",
        "name":"",
        "type":"uint256"
      }
    ],
    "stateMutability":"view",
    "type":"function"
  },
  {
    "inputs":[
      {
        "internalType":"contract IERC20",
        "name":"",
        "type":"address"
      }
    ],
    "name":"poolExistence",
    "outputs":[
      {
        "internalType":"bool",
        "name":"",
        "type":"bool"
      }
    ],
    "stateMutability":"view",
    "type":"function"
  },
  {
    "inputs":[
      {
        "internalType":"address",
        "name":"",
        "type":"address"
      }
    ],
    "name":"poolId1",
    "outputs":[
      {
        "internalType":"uint256",
        "name":"",
        "type":"uint256"
      }
    ],
    "stateMutability":"view",
    "type":"function"
  },
  {
    "inputs":[
      {
        "internalType":"uint256",
        "name":"",
        "type":"uint256"
      }
    ],
    "name":"poolInfo",
    "outputs":[
      {
        "internalType":"contract IERC20",
        "name":"lpToken",
        "type":"address"
      },
      {
        "internalType":"uint256",
        "name":"allocPoint",
        "type":"uint256"
      },
      {
        "internalType":"uint256",
        "name":"lastRewardTimestamp",
        "type":"uint256"
      },
      {
        "internalType":"uint256",
        "name":"accGovTokenPerShare",
        "type":"uint256"
      }
    ],
    "stateMutability":"view",
    "type":"function"
  },
  {
    "inputs":[

    ],
    "name":"poolLength",
    "outputs":[
      {
        "internalType":"uint256",
        "name":"",
        "type":"uint256"
      }
    ],
    "stateMutability":"view",
    "type":"function"
  },
  {
    "inputs":[
      {
        "internalType":"address",
        "name":"_newOwner",
        "type":"address"
      }
    ],
    "name":"reclaimTokenOwnership",
    "outputs":[

    ],
    "stateMutability":"nonpayable",
    "type":"function"
  },
  {
    "inputs":[
      {
        "internalType":"address",
        "name":"_toRemove",
        "type":"address"
      }
    ],
    "name":"removeAuthorized",
    "outputs":[

    ],
    "stateMutability":"nonpayable",
    "type":"function"
  },
  {
    "inputs":[

    ],
    "name":"renounceOwnership",
    "outputs":[

    ],
    "stateMutability":"nonpayable",
    "type":"function"
  },
  {
    "inputs":[
      {
        "internalType":"uint256[]",
        "name":"_newMulReward",
        "type":"uint256[]"
      }
    ],
    "name":"rewardMulUpdate",
    "outputs":[

    ],
    "stateMutability":"nonpayable",
    "type":"function"
  },
  {
    "inputs":[
      {
        "internalType":"uint256",
        "name":"_newReward",
        "type":"uint256"
      }
    ],
    "name":"rewardUpdate",
    "outputs":[

    ],
    "stateMutability":"nonpayable",
    "type":"function"
  },
  {
    "inputs":[
      {
        "internalType":"uint256",
        "name":"_pid",
        "type":"uint256"
      },
      {
        "internalType":"uint256",
        "name":"_allocPoint",
        "type":"uint256"
      },
      {
        "internalType":"bool",
        "name":"_withUpdate",
        "type":"bool"
      }
    ],
    "name":"set",
    "outputs":[

    ],
    "stateMutability":"nonpayable",
    "type":"function"
  },
  {
    "inputs":[
      {
        "internalType":"uint256[]",
        "name":"_devFees",
        "type":"uint256[]"
      }
    ],
    "name":"setDevFeeStage",
    "outputs":[

    ],
    "stateMutability":"nonpayable",
    "type":"function"
  },
  {
    "inputs":[
      {
        "internalType":"uint256[]",
        "name":"_timeEnds",
        "type":"uint256[]"
      }
    ],
    "name":"setStageEnds",
    "outputs":[

    ],
    "stateMutability":"nonpayable",
    "type":"function"
  },
  {
    "inputs":[
      {
        "internalType":"uint256[]",
        "name":"_timeStarts",
        "type":"uint256[]"
      }
    ],
    "name":"setStageStarts",
    "outputs":[

    ],
    "stateMutability":"nonpayable",
    "type":"function"
  },
  {
    "inputs":[
      {
        "internalType":"uint256[]",
        "name":"_userFees",
        "type":"uint256[]"
      }
    ],
    "name":"setUserFeeStage",
    "outputs":[

    ],
    "stateMutability":"nonpayable",
    "type":"function"
  },
  {
    "inputs":[
      {
        "internalType":"uint256",
        "name":"_newstarttimestamp",
        "type":"uint256"
      }
    ],
    "name":"startTimestampUpdate",
    "outputs":[

    ],
    "stateMutability":"nonpayable",
    "type":"function"
  },
  {
    "inputs":[
      {
        "internalType":"uint256",
        "name":"",
        "type":"uint256"
      }
    ],
    "name":"timeDeltaEndStage",
    "outputs":[
      {
        "internalType":"uint256",
        "name":"",
        "type":"uint256"
      }
    ],
    "stateMutability":"view",
    "type":"function"
  },
  {
    "inputs":[
      {
        "internalType":"uint256",
        "name":"",
        "type":"uint256"
      }
    ],
    "name":"timeDeltaStartStage",
    "outputs":[
      {
        "internalType":"uint256",
        "name":"",
        "type":"uint256"
      }
    ],
    "stateMutability":"view",
    "type":"function"
  },
  {
    "inputs":[

    ],
    "name":"totalAllocPoint",
    "outputs":[
      {
        "internalType":"uint256",
        "name":"",
        "type":"uint256"
      }
    ],
    "stateMutability":"view",
    "type":"function"
  },
  {
    "inputs":[
      {
        "internalType":"address",
        "name":"newOwner",
        "type":"address"
      }
    ],
    "name":"transferOwnership",
    "outputs":[

    ],
    "stateMutability":"nonpayable",
    "type":"function"
  },
  {
    "inputs":[
      {
        "internalType":"uint256",
        "name":"_pid",
        "type":"uint256"
      }
    ],
    "name":"updatePool",
    "outputs":[

    ],
    "stateMutability":"nonpayable",
    "type":"function"
  },
  {
    "inputs":[

    ],
    "name":"usdOracle",
    "outputs":[
      {
        "internalType":"address",
        "name":"",
        "type":"address"
      }
    ],
    "stateMutability":"view",
    "type":"function"
  },
  {
    "inputs":[
      {
        "internalType":"uint256",
        "name":"_pid",
        "type":"uint256"
      }
    ],
    "name":"userDelta",
    "outputs":[
      {
        "internalType":"uint256",
        "name":"",
        "type":"uint256"
      }
    ],
    "stateMutability":"view",
    "type":"function"
  },
  {
    "inputs":[
      {
        "internalType":"uint256",
        "name":"",
        "type":"uint256"
      }
    ],
    "name":"userFeeStage",
    "outputs":[
      {
        "internalType":"uint256",
        "name":"",
        "type":"uint256"
      }
    ],
    "stateMutability":"view",
    "type":"function"
  },
  {
    "inputs":[
      {
        "internalType":"uint256",
        "name":"",
        "type":"uint256"
      },
      {
        "internalType":"address",
        "name":"",
        "type":"address"
      }
    ],
    "name":"userInfo",
    "outputs":[
      {
        "internalType":"uint256",
        "name":"amount",
        "type":"uint256"
      },
      {
        "internalType":"uint256",
        "name":"rewardDebt",
        "type":"uint256"
      },
      {
        "internalType":"uint256",
        "name":"rewardDebtAtTimestamp",
        "type":"uint256"
      },
      {
        "internalType":"uint256",
        "name":"lastWithdrawTimestamp",
        "type":"uint256"
      },
      {
        "internalType":"uint256",
        "name":"firstDepositTimestamp",
        "type":"uint256"
      },
      {
        "internalType":"uint256",
        "name":"timeDelta",
        "type":"uint256"
      },
      {
        "internalType":"uint256",
        "name":"lastDepositTimestamp",
        "type":"uint256"
      }
    ],
    "stateMutability":"view",
    "type":"function"
  },
  {
    "inputs":[
      {
        "internalType":"uint256",
        "name":"_pid",
        "type":"uint256"
      },
      {
        "internalType":"uint256",
        "name":"_amount",
        "type":"uint256"
      }
    ],
    "name":"withdraw",
    "outputs":[

    ],
    "stateMutability":"nonpayable",
    "type":"function"
  }
]
