IERC20VestableVotesUpgradeableV1
Alluvial Finance Inc.
ERC20 Vestable Votes Upgradeable Interface(v1)
This interface exposes methods to manage vestings
Methods
computeVestingReleasableAmount
Computes the releasable amount of tokens for a vesting schedule.
Parameters
_index
uint256
index of the vesting schedule
Returns
_0
uint256
amount of releasable tokens
computeVestingVestedAmount
Computes the vested amount of tokens for a vesting schedule.
Parameters
_index
uint256
index of the vesting schedule
Returns
_0
uint256
amount of vested tokens
createVestingSchedule
Creates a new vesting scheduleThere may delay between the time a user should start vesting tokens and the time the vesting schedule is actually created on the contract.Typically a user joins the Liquid Collective but some weeks pass before the user gets all legal agreements in place and signed for thetoken grant emission to happen. In this case, the vesting schedule created for the token grant would start on the join date which is in the past.
As vesting schedules can be created in the past, this means that you should be careful when creating a vesting schedule and what duration parametersyou use as this contract would allow creating a vesting schedule in the past and even a vesting schedule that has already ended.
Parameters
_start
uint64
start time of the vesting
_cliffDuration
uint32
duration to vesting cliff (in seconds)
_duration
uint32
total vesting schedule duration after which all tokens are vested (in seconds)
_periodDuration
uint32
duration of a period after which new tokens unlock (in seconds)
_lockDuration
uint32
duration during which tokens are locked (in seconds)
_revocable
bool
whether the vesting schedule is revocable or not
_amount
uint256
amount of token attributed by the vesting schedule
_beneficiary
address
address of the beneficiary of the tokens
_delegatee
address
address to delegate escrow voting power to
_ignoreGlobalUnlockSchedule
bool
whether the vesting schedule should ignore the global lock
Returns
_0
uint256
index of the created vesting schedule
delegateVestingEscrow
Delegate vesting escrowed tokens
Parameters
_index
uint256
index of the vesting schedule
_delegatee
address
address to delegate the token to
Returns
_0
bool
True on success
getVestingSchedule
Get vesting schedule
The vesting schedule structure represents a static configuration used to compute the desiredvesting details of a beneficiary at all times. The values won't change even after tokens are released.The only dynamic field of the structure is end, and is updated whenever a vesting schedule is revoked
Parameters
_index
uint256
Index of the vesting schedule
Returns
_0
VestingSchedulesV2.VestingSchedule
undefined
getVestingScheduleCount
Get count of vesting schedules
Returns
_0
uint256
count of vesting schedules
isGlobalUnlockedScheduleIgnored
Get vesting global unlock schedule activation status for a vesting schedule
Parameters
_index
uint256
Index of the vesting schedule
Returns
_0
bool
true if the vesting schedule should ignore the global unlock schedule
releaseVestingSchedule
Release vesting scheduleWhen tokens are released from the escrow, the delegated address of the escrow will see its voting power decrease.The beneficiary has to make sure its delegation parameters are set properly to be able to use/delegate the voting power of its balance.
Parameters
_index
uint256
Index of the vesting schedule to release
Returns
_0
uint256
released amount
revokeVestingSchedule
Revoke vesting schedule
Parameters
_index
uint256
Index of the vesting schedule to revoke
_end
uint64
End date for the schedule
Returns
returnedAmount
uint256
amount returned to the vesting schedule creator
vestingEscrow
Get the address of the escrow for a vesting schedule
Parameters
_index
uint256
Index of the vesting schedule
Returns
_0
address
address of the escrow
Events
CreatedVestingSchedule
A new vesting schedule has been created
Parameters
index
uint256
Vesting schedule index
creator indexed
address
Creator of the vesting schedule
beneficiary indexed
address
Vesting beneficiary address
amount
uint256
Vesting schedule amount
DelegatedVestingEscrow
Vesting escrow has been delegated
Parameters
index
uint256
Vesting schedule index
oldDelegatee indexed
address
old delegatee
newDelegatee indexed
address
new delegatee
beneficiary indexed
address
vesting schedule beneficiary
ReleasedVestingSchedule
Vesting schedule has been released
Parameters
index
uint256
Vesting schedule index
releasedAmount
uint256
Amount of tokens released to the beneficiary
RevokedVestingSchedule
Vesting schedule has been revoked
Parameters
index
uint256
Vesting schedule index
returnedAmount
uint256
Amount of tokens returned to the creator
newEnd
uint256
New end timestamp after revoke action
Errors
GlobalUnlockUnderlfow
Underflow in global unlock logic (should never happen)
InvalidRevokedVestingScheduleEnd
Attempt to revoke a vesting schedule with an invalid end parameter
InvalidVestingScheduleParameter
Invalid parameter for a vesting schedule
Parameters
msg
string
undefined
UnsufficientVestingScheduleCreatorBalance
Vesting schedule creator has unsufficient balance to create vesting schedule
VestingScheduleIsLocked
The vesting schedule is locked
VestingScheduleNotRevocable
The vesting schedule is not revocable
VestingScheduleNotRevocableInPast
Attempt to revoke a schedule in the past
ZeroReleasableAmount
No token to release
Last updated