Vesting

This contract gives a possibility to create vesting schedules and distribute ASX tokens between users using the linear distribution during release period.

Write methods description

createVestingSchedule()

Creates new vesting schedules in a batch by an owner.

Parameters:

NameTypeDescription

_accounts

address[]

An array of addresses of users for whom new vesting schedules should be created.

_amounts

uint256[]

An array of vesting schedules distribution amounts.

_lockPeriods

uint32[]

An array of lock period durations (in seconds) that should take place before distribution will start.

_releasePeriods

uint32[]

An array of periods (in seconds) during which ASX tokens will be distributed after the lock period.

release()

Releases ASX tokens for a specified vesting schedule IDs in a batch.

Parameters:

NameTypeDescription

_vsids

uint256[]

An array of vesting schedule IDs.

_recipients

address[]

An array of recipients of unlocked ASX tokens.

renounceOwnership()

Leaves the contract without owner. It will not be possible to call the owner's functions anymore. Can only be called by the current owner. The method does not take any parameters. Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.

transferOwnership()

Transfers ownership of the contract to the new owner. Can only be called by the current owner.

Parameters:

NameTypeDescription

_newOwner

address

An account that will become the new owner.

withdraw()

Withdraws unused ASX tokens or othe tokens (including ETH) by an owner.

Parameters:

NameTypeDescription

_token

address

A token to withdraw. If equal to zero address - withdraws ETH.

_amount

uint256

An amount of tokens for withdraw.

_recipient

address

A recipient of withdrawn tokens.

Read methods description

getReleasableAmount()

Returns releasable amount for a vesting schedule by provided ID. If no vesting schedule exists with provided ID, returns zero.

Parameters:

NameTypeDescription

_vsid

uint256

An ID of a vesting schedule.

Return:

NameTypeDescription

_amount

uint256

A releasable amount for a specified vesting schedule.

getToken()

Returns the ASX token address.

Return:

NameTypeDescription

_token

address

The ASX token address.

getTotalDistributionAmount()

Returns total distribution amount for all vesting schedules.

Return:

NameTypeDescription

_amount

uint256

Total distribution amount for all vesting schedules.

getTotalReleasedAmount()

Returns total released amount for all vesting schedules.

Return:

NameTypeDescription

_amount

uint256

Total released amount for all vesting schedules.

getVestingSchedule()

Returns a vesting schedule by its ID. If no vesting schedule exists with provided ID, returns an empty vesting schedule.

Parameters:

NameTypeDescription

_vsid

uint256

An ID of a vesting schedule.

Return:

NameTypeDescription

_vestingSchedule

VestingSchedule

A vesting schedule structure.

getVestingSchedulesCount()

Returns total vesting schedules count.

Return:

NameTypeDescription

_count

uint256

Total vesting schedules count.

getWithdrawableAmount()

Returns an amount available for withdrawal (unused ASX tokens amount) by an owner.

Return:

NameTypeDescription

_amount

uint256

A withdrawable amount.

owner()

Gets an owner address that was granted exclusive access to specific functions with the modifier onlyOwner.

Return:

NameTypeDescription

_owner

address

An owner address.

Last updated