A LinearTokenTimelock for RING with the ability to sub-delegate locked tokens
A RING token timelock which allows subdelegation. Managed by the Ring Core Team to distribute vested RING and voting rights to team members and investors.
The contract receives RING tokens that vest linearly over a 4 year schedule to a beneficiary.
During the elected timelock period, any RING in the timelock can be sub-delegated to any address. The TimelockedDelegator creates a proxy delegate contract which escrows the RING and sub-delegates. It can then withdraw voting rights at any time.
The beneficiary decides where to delegate and undelegate. All RING held in the timelock that is not sub-delegated is delegated to the beneficiary.
delegate RING tokens from timelock
Remove RING votes from delegatee
function delegateContract(address delegatee)
Returns the contract address escrowing and delegating the RING for
function delegateAmount(address delegatee) external view returns (uint256);
Returns the amount of RING delegated in the escrow contract for
function totalDelegated() external view returns (uint256);
Returns the total amount of RING delegated in proxy contracts, excluding the RING held natively in the TimelockedDelegator.
function ring() external view returns (IRing);
function delegate(address delegatee, uint256 amount) external;
amountof RING from the TimelockedDelegator to
delegateeby creating a proxy and transferring RING to it.
delegateealready has delegation, the TimelockedDelegator undelegates it and increments
amountbefore sending to the proxy.
delegateealready has some delegated
function undelegate(address delegatee) external returns (uint256);
Withdraws all RING from the delegate proxy contract associated with
delegateeand returns the amount received.
TimelockedDelegator Interface ABI