Token Vesting
Functions Write
PayForFreeTokenLocks
function payForFreeTokenLocks(
address _token
) external payable
Permits to pay a once off fee to have free use of the lockers for the token.
Parameters:
Name | Type | Description |
---|---|---|
_token | address | The address of the token to be locked for free. |
EditZeroFeeWhitelist
function editZeroFeeWhitelist(
address _token,
bool _add
) external
Callable by UNCX_ADMINS or whitelisted contracts.
Parameters:
Name | Type | Description |
---|---|---|
_token | address | The address of the token to be added or removed from the whitelist. |
_add | bool | Indicates if the token should be added (true) or removed (false) from the whitelist. |
Lock
function lock(
address _token,
LockParams[] calldata _lock_params
) external
Creates one or multiple locks for the specified token.
Parameters:
Type | Description |
---|---|
LockParams | An object that contains: owner (address), amount (uint256), startEmission (uint256), endEmission (uint256), and condition (address). |
Withdraw
function withdraw(
uint256 _lockID,
uint256 _amount
) external
Withdraws a specified amount from a lock.
Parameters:
Name | Type | Description |
---|---|---|
_lockID | uint256 | The ID of the lock from which tokens will be withdrawn. |
_amount | uint256 | The desired amount of tokens to be withdrawn. |
Relock
function relock(uint256 _lockID, uint256 _unlock_date) external
Extends a lock with a new unlock date, if lock is Type 2 it extends the emission end date.
Parameters:
Name | Type | Description |
---|---|---|
_lockID | uint256 | The ID of the lock which needs to have its unlock date extended. |
_unlock_date | uint256 | The new unlock date. If the lock is Type 2, this extends the emission end date. |
IncrementLock
function incrementLock(
uint256 _lockID,
uint256 _amount
) external
Increases the amount of tokens per a specific lock.
Parameters:
Name | Type | Description |
---|---|---|
_lockID | uint256 | The ID of the lock which will have its token amount increased. |
_amount | uint256 | The amount of additional tokens to be added to the specified lock. |
TransferLockOwnership
function transferLockOwnership(
uint256 _lockID,
address payable _newOwner
) external
Transfers a lock to a new owner.
Parameters:
Name | Type | Description |
---|---|---|
_lockID | uint256 | The ID of the lock whose ownership will be transferred. |
_newOwner | address payable | The address of the new owner to whom the lock will be transferred. |
SplitLock
function splitLock(
uint256 _lockID,
uint256 _amount
) external
Splits a lock into two seperate locks.
Parameters:
Name | Type | Description |
---|---|---|
_lockID | uint256 | The ID of the lock which will be split. |
_amount | uint256 | The amount in tokens which will form one part of the split lock. |
Migrate
function migrate(
uint256 _lockID,
uint256 _option
) external
Migrates to the next locker version.
Parameters:
Name | Type | Description |
---|---|---|
_lockID | uint256 | The ID of the lock which will be migrated to the next locker version. |
_option | uint256 | An option for migration. The exact meaning would depend on the migration logic. |
RevokeCondition
function revokeCondition(
uint256 _lockID
) external
Revokes premature unlock conditions.
Parameters:
Name | Type | Description |
---|---|---|
_lockID | uint256 | The ID of the lock whose premature unlock condition will be revoked. |
Functions View
TestCondition
function testCondition (address condition) external view returns (bool)
Parameters:
Name | Type | Description |
---|---|---|
condition | address | The condition's address to test on the frontend UI. |
Return Values:
Type | Description |
---|---|
bool | The result of the condition tested in the frontend UI. |
GetWithdrawableShares
function getWithdrawableShares (uint256 _lockID) public view returns (uint256)
Parameters:
Name | Type | Description |
---|---|---|
_lockID | uint256 | The ID of the lock for which shares are being queried. |
Return Values:
Type | Description |
---|---|
uint256 | The withdrawable share amount from the lock. |
GetWithdrawableTokens
function getWithdrawableTokens (uint256 _lockID) external view returns (uint256)
Parameters:
Name | Type | Description |
---|---|---|
_lockID | uint256 | The ID of the lock for which tokens are being queried. |
Return Values:
Type | Description |
---|---|
uint256 | The current amount in tokens that can be withdrawn. |
ConvertSharesToTokens
function convertSharesToTokens (address _token, uint256 _shares) external view returns (uint256)
Parameters:
Name | Type | Description |
---|---|---|
_token | address | The token's address. |
_shares | uint256 | The number of shares to convert. |
Return Values:
Type | Description |
---|---|
uint256 | The equivalent amount of tokens for the provided shares. |
convertTokensToShares
function convertTokensToShares (address _token, uint256 _tokens) external view returns (uint256)
Parameters:
Name | Type | Description |
---|---|---|
_token | address | The token's address. |
_tokens | uint256 | The number of tokens to convert. |
Return Values:
Type | Description |
---|---|
uint256 | The equivalent amount of shares for the provided tokens. |
GetLock
function getLock (
uint256 _lockID
) external view returns (
uint256, address,
uint256, uint256,
uint256, uint256,
uint256, uint256,
address, address
)
Parameters:
Name | Type | Description |
---|---|---|
_lockID | uint256 | The ID of the lock being queried. |
Return Values:
GetNumLockedTokens
function getNumLockedTokens () external view returns (uint256)
Return Values:
Type | Description |
---|---|
uint256 | Number of locked tokens. |
GetTokenAtIndex
function getTokenAtIndex (uint256 _index) external view returns (address)
Parameters:
Name | Type | Description |
---|---|---|
_index | uint256 | The index of the token queried. |
Return Values:
Type | Description |
---|---|
address | Token's address at the given index. |
GetTokenLocksLength
function getTokenLocksLength (address _token) external view returns (uint256)
Parameters:
Name | Type | Description |
---|---|---|
_token | address | The token's address. |
Return Values:
Type | Description |
---|---|
uint256 | Token Lock ID at the specified index. |
GetTokenLockIDAtIndex
function getTokenLockIDAtIndex (address _token, uint256 _index) external view returns (uint256)
Parameters:
Name | Type | Description |
---|---|---|
_token | address | The token's address. |
_index | uint256 | The index of the lock queried. |
Return Values:
Type | Description |
---|---|
uint256 | Token Lock ID at the specified index. |
GetUserLockedTokensLength
function getUserLockedTokensLength (address _user) external view returns (uint256)
Parameters:
Name | Type | Description |
---|---|---|
_user | address | The user's address queried. |
Return Values:
Type | Description |
---|---|
uint256 | Number of tokens locked by the user. |
GetUserLockedTokenAtIndex
function getUserLockedTokenAtIndex (address _user, uint256 _index) external view returns (address)
Parameters:
Name | Type | Description |
---|---|---|
_user | address | The user's address queried. |
_index | uint256 | The index of the token queried. |
Return Values:
Type | Description |
---|---|
address | Token address at the specified index for the user. |
GetUserLocksForTokenLength
function getUserLocksForTokenLength (address _user, address _token) external view returns (uint256)
Parameters:
Name | Type | Description |
---|---|---|
_user | address | The user's address. |
_token | address | The token's address. |
Return Values:
Type | Description |
---|---|
uint256 | Number of locks for a token for the user. |
GetUserLockIDForTokenAtIndex
function getUserLockIDForTokenAtIndex (address _user, address _token, uint256 _index) external view returns (uint256)
Parameters:
Name | Type | Description |
---|---|---|
_user | address | The user's address. |
_token | address | The token's address. |
_index | uint256 | The index of the lock queried. |
Return Values:
Type | Description |
---|---|
uint256 | Lock ID for a token at the specified index for the user. |
GetZeroFeeTokensLength
function getZeroFeeTokensLength () external view returns (uint256)
Return Values:
Type | Description |
---|---|
uint256 | Length of no fee tokens. |
GetZeroFeeTokenAtIndex
function getZeroFeeTokensLength () external view returns (uint256)
Parameters:
Name | Type | Description |
---|---|---|
_index | uint256 | The index of the token queried. |
Return Values:
Type | Description |
---|---|
address | No fee token at the given index. |
TokenOnZeroFeeWhitelist
function tokenOnZeroFeeWhitelist (address _token) external view returns (bool)
Parameters:
Name | Type | Description |
---|---|---|
_token | address | The token's address. |
Return Values:
Type | Description |
---|---|
bool | Whether the token is on the no fee whitelist. |
GetTokenWhitelisterLength
function getTokenWhitelisterLength () external view returns (uint256)
Return Values:
Type | Description |
---|---|
uint256 | Length of token whitelisters. |
GetTokenWhitelisterAtIndex
function getTokenWhitelisterAtIndex (uint256 _index) external view returns (address)
Parameters:
Name | Type | Description |
---|---|---|
_index | uint256 | The index of the whitelister queried. |
Return Values:
Type | Description |
---|---|
address | Token whitelister at the given index. |
GetTokenWhitelisterStatus
function getTokenWhitelisterStatus (address _user) external view returns (bool)
Parameters:
Name | Type | Description |
---|---|---|
_user | address | The user's address whose status is queried. |
Return Values:
Type | Description |
---|---|
bool | Whitelister status of the specified user. |
Events
OnLock
event onLock(
uint256 lockID,
address token,
address owner,
uint256 amountInTokens,
uint256 amountInShares,
uint256 startEmission,
uint256 endEmission,
address unlockCondition
)
Parameters:
Name | Type | Description |
---|---|---|
lockID | uint256 | ID of the lock. |
token | address | Token address. |
owner | address | Address of the lock owner. |
amountInTokens | uint256 | Amount of tokens in the lock. |
amountInShares | uint256 | Amount of shares in the lock. |
startEmission | uint256 | Start time of emission. |
endEmission | uint256 | End time of emission. |
unlockCondition | address | Address of the unlock condition contract. |
OnWithdraw
event onWithdraw(
uint256 lockID,
address lpToken,
uint256 amountInTokens,
uint256 amountInShares
)
Parameters:
Name | Type | Description |
---|---|---|
lockID | uint256 | ID of the lock. |
lpToken | address | LP token address. |
amountInTokens | uint256 | Amount of tokens withdrawn. |
amountInShares | uint256 | Amount of shares withdrawn. |
OnRelock
event onRelock(
uint256 lockID,
address token,
uint256 unlockDate
)
Parameters:
Name | Type | Description |
---|---|---|
lockID | uint256 | ID of the lock. |
token | address | Token address. |
unlockDate | uint256 | New unlock date. |
OnTransferLock
event onTransferLock(
uint256 lockIDFrom,
uint256 lockIDto,
address oldOwner,
address newOwner
)
Parameters:
Name | Type | Description |
---|---|---|
lockIDFrom | uint256 | Original lock ID. |
lockIDto | uint256 | New lock ID. |
oldOwner | address | Original owner of the lock. |
newOwner | address | New owner of the lock. |
OnSplitLock
event onSplitLock(
uint256 fromLockID,
uint256 toLockID,
uint256 amountInTokens,
uint256 amountInShares
)
Parameters:
Name | Type | Description |
---|---|---|
fromLockID | uint256 | Original lock ID. |
toLockID | uint256 | New lock ID after split. |
amountInTokens | uint256 | Amount of tokens in the new lock. |
amountInShares | uint256 | Amount of shares in the new lock. |
OnMigrate
event onMigrate(
uint256 lockID,
uint256 amountInTokens
)
Parameters:
Name | Type | Description |
---|---|---|
lockID | uint256 | ID of the lock being migrated. |
amountInTokens | uint256 | Amount of tokens being migrated. |
OnConditionRevoke
event onConditionRevoke(
uint256 lockID,
address tokenAddress
)
Parameters:
Name | Type | Description |
---|---|---|
lockID | uint256 | ID of the lock. |
tokenAddress | address | Token address of the lock. |