StakersDistribution

Staking contracts will update this contract with staker token stake amount.

This contract will be able to mint GDAO. 2M GDAO that will be allocated between staking contracts each month pro-rate based on $ value staked. Each staker will receive his share pro rata per staking contract he participates in.

Events

ReputationEarned

Emitted when the staker claims the reputation.

event ReputationEarned(
    address staker,
    address[] stakingContracts,
    uint256 reputation
);

getChainBlocksPerMonth

The function returns amount of blocks in month.

function getChainBlocksPerMonth() public pure override returns (uint256);

setMonthlyReputationDistribution

The function updates the monthly reputation distribution.

Can only be called by the Avatar.

function setMonthlyReputationDistribution(uint256 newMonthlyReputationDistribution) external;

userStaked

The staking contract can call this function to increase user current contribution.

function userStaked(address _staker, uint256 _value) external;

userWithdraw

The staking contract can call this to decrease user current contribution.

function userWithdraw(address _staker, uint256 _value) external;

claimReputation

The function mints reputation to user according to his share in the different staking contracts.

function claimReputation(address _staker, address[] calldata _stakingContracts) external;

getUserPendingRewards

The function gets user reputation rewards accrued in GoodStaking contracts.

Returns: reputation rewards pending amount for user.

function getUserPendingRewards(address[] memory _contracts, address _user) public view returns (uint256);

getUserMintedAndPending

The staking contract can call this to decrease user current contribution.

Returns: a tuple of two items: (minted, pending) in GDAO tokens in wei.

function getUserMintedAndPending(address[] memory _contracts, address _user) public view returns (uint256, uint256);

Last updated