IGNSStaking

Interface for GNSStaking contract

Staker

struct Staker {
  uint128 stakedGns;
  uint128 debtDai;
}

RewardState

struct RewardState {
  uint128 accRewardPerGns;
  uint128 precisionDelta;
}

RewardInfo

struct RewardInfo {
  uint128 debtToken;
  uint128 __placeholder;
}

UnlockSchedule

struct UnlockSchedule {
  uint128 totalGns;
  uint128 claimedGns;
  uint128 debtDai;
  uint48 start;
  uint48 duration;
  bool revocable;
  enum IGNSStaking.UnlockType unlockType;
  uint16 __placeholder;
}

UnlockScheduleInput

struct UnlockScheduleInput {
  uint128 totalGns;
  uint48 start;
  uint48 duration;
  bool revocable;
  enum IGNSStaking.UnlockType unlockType;
}

UnlockType

enum UnlockType {
  LINEAR,
  CLIFF
}

owner

function owner() external view returns (address)

distributeReward

function distributeReward(address _rewardToken, uint256 _amountToken) external

createUnlockSchedule

function createUnlockSchedule(struct IGNSStaking.UnlockScheduleInput _schedule, address _staker) external

UnlockManagerUpdated

event UnlockManagerUpdated(address manager, bool authorized)

DaiHarvested

event DaiHarvested(address staker, uint128 amountDai)

RewardHarvested

event RewardHarvested(address staker, address token, uint128 amountToken)

RewardHarvestedFromUnlock

event RewardHarvestedFromUnlock(address staker, address token, bool isOldDai, uint256[] ids, uint128 amountToken)

RewardDistributed

event RewardDistributed(address token, uint256 amount)

GnsStaked

event GnsStaked(address staker, uint128 amountGns)

GnsUnstaked

event GnsUnstaked(address staker, uint128 amountGns)

GnsClaimed

event GnsClaimed(address staker, uint256[] ids, uint128 amountGns)

UnlockScheduled

event UnlockScheduled(address staker, uint256 index, struct IGNSStaking.UnlockSchedule schedule)

UnlockScheduleRevoked

event UnlockScheduleRevoked(address staker, uint256 index)

RewardTokenAdded

event RewardTokenAdded(address token, uint256 index, uint128 precisionDelta)