1Hive / payroll-app

Aragon app that allows an organization to define streaming salaries and deferred compensation options

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Vesting configuration for equity assets

lkngtn opened this issue · comments

When someone opts to receive tokens or reputation instead of a cash payment, they are generally making a bet on the future value of those tokens or reputation. For the organization they are being diluted in exchange for avoiding an immediate cash payment.

In cases where tokens are liquid or even redeemable (eg via redemptions app) this option becomes extremely favorable for the person making the choice as opposed to the organization making the offer. In order to make the dynamic more interesting for the an organization, we should enable the organization to impose vesting restrictions that prevent the tokens/reputation from being sold or redeemed for some period of time after the grant.

After discussion elsewhere it was determined that vesting parameters will be specified org wide, not for individuals.

It should also be noted that the number of vestings possible for an individual are limited by the gas limit due to a for loop in the TokenManager that determines a users balance here: https://github.com/aragon/aragon-apps/blob/0a471a27bd202e8a5ee59fb37d39488bef6634b1/apps/token-manager/contracts/TokenManager.sol#L391

This means that a max number of vestings for users will need to be specified, that when reached will prevent a user, that specifies some amount of their pay in the equity token, from calling payday() and redeeming their pay. To enable payday() again, for this account, will require the org to disable the vesting functionality (for everyone).

Closed by #26