UNCX Network
  • 🚪Introduction
  • 👀Availability and Fees
  • 🪙UNCX token
  • 📖Guides
    • For Investors
      • Liquidity Lockers
        • How can I check if the project locked liquidity?
      • Token Vesting
        • How can I check if the project locked tokens?
      • Staking
        • How to stake?
        • How to withdraw my staked tokens?
        • How to boost my stake?
    • For Projects
      • Stealth Launch
        • Creating your launch
        • Managing your launch
      • Liquidity Lockers V2
        • How to lock your LP tokens?
        • Managing your lock/Withdrawal
      • Liquidity Lockers V3
        • How to lock your LP?
        • Managing your lock/Withdrawal
      • Liquidity Lockers V4
        • How to lock your LP?
        • Managing your lock/Withdrawal
      • Solana Lockers
        • How to lock your LP?
        • Managing your lock/Withdrawal
        • Squads Multisig
      • Token Vesting
        • How to lock your tokens?
        • Managing your lock/Withdrawal
      • Staking-as-a-service
        • Creating a farm
        • Reward Pools
        • Editing a farm page
      • New Token Minter
        • Mint your token
        • Edit your token
        • Verify your token
    • For Developers
      • Subgraphs
      • Liquidity Lockers
        • Lockers V2
          • Contracts
          • Technical Reference
            • UniswapV2Locker (2.1)
            • UniswapV2Locker
          • Subgraphs
            • Endpoints
            • Queries
            • Entities
        • Lockers V3
          • Contracts
          • Technical Reference
            • Locker V3.1
            • NFT Migrator V3
          • Subgraphs
            • Endpoints
            • Queries
            • Entities
      • Token Vesting
        • Contracts
        • Technical Reference
        • Subgraphs
  • 👥Whitelisted audit/KYC partners
  • 💸UNCX Referral Program
  • 🔗UNCX Related Links
  • 🖇️UNCX API Collaborations
  • 🤖UNCX Info Bot Manual
Powered by GitBook
On this page
  • Functions Write
  • PayForFreeTokenLocks
  • EditZeroFeeWhitelist
  • Lock
  • Withdraw
  • Relock
  • IncrementLock
  • TransferLockOwnership
  • SplitLock
  • Migrate
  • RevokeCondition
  • Functions View
  • TestCondition
  • GetWithdrawableShares
  • GetWithdrawableTokens
  • ConvertSharesToTokens
  • convertTokensToShares
  • GetLock
  • GetNumLockedTokens
  • GetTokenAtIndex
  • GetTokenLocksLength
  • GetTokenLockIDAtIndex
  • GetUserLockedTokensLength
  • GetUserLockedTokenAtIndex
  • GetUserLocksForTokenLength
  • GetUserLockIDForTokenAtIndex
  • GetZeroFeeTokensLength
  • GetZeroFeeTokenAtIndex
  • TokenOnZeroFeeWhitelist
  • GetTokenWhitelisterLength
  • GetTokenWhitelisterAtIndex
  • GetTokenWhitelisterStatus
  • Events
  • OnLock
  • OnWithdraw
  • OnRelock
  • OnTransferLock
  • OnSplitLock
  • OnMigrate
  • OnConditionRevoke
  1. Guides
  2. For Developers
  3. Token Vesting

Technical Reference

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.

PreviousContractsNextSubgraphs

Last updated 1 month ago

📖