Ring Protocol
Search
K
Comment on page

TimelockedDelegator

A LinearTokenTimelock for RING with the ability to sub-delegate locked tokens

Contract

Description

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.

Sub-Delegation

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.

Events

Delegate
Undelegate
delegate RING tokens from timelock
type
param
description
address indexed
_delegatee
delegatee to recieve the RING votes
uint256
_amount
amount of RING delegated
Remove RING votes from delegatee
type
param
description
address indexed
_delegatee
delegatee to remove RING votes
uint256
_amount
amount of RING undelegated

Read-Only Functions

delegateContract

function delegateContract(address delegatee)
external
view
returns (address);
Returns the contract address escrowing and delegating the RING for delegatee.

delegateAmount

function delegateAmount(address delegatee) external view returns (uint256);
Returns the amount of RING delegated in the escrow contract for delegatee

totalDelegated

function totalDelegated() external view returns (uint256);
Returns the total amount of RING delegated in proxy contracts, excluding the RING held natively in the TimelockedDelegator.

ring

function ring() external view returns (IRing);
A reference to the RING contract.

State-Changing Functions

Beneficiary-Only👑

delegate

function delegate(address delegatee, uint256 amount) external;
Delegates amount of RING from the TimelockedDelegator to delegatee by creating a proxy and transferring RING to it.
If delegatee already has delegation, the TimelockedDelegator undelegates it and increments amount before sending to the proxy.
emits Delegate and Undelegate if the delegatee already has some delegated

undelegate

function undelegate(address delegatee) external returns (uint256);
Withdraws all RING from the delegate proxy contract associated with delegatee and returns the amount received.
emits Undelegate

ABIs

timelockeddelegator.json
5KB
Code
TimelockedDelegator ABI
itimelockeddelegator.json
2KB
Code
TimelockedDelegator Interface ABI