Technical
VestingTokenFactory.sol
VestingTokenFactory
Inherits: FactoryFeeManager
Authors: JA (@ubinatus) v3, Klaus Hott (@Janther) v2
The VestingTokenFactory contract can be used to create vesting contracts for any ERC20 token.
State Variables
implementation
The address that will be used as a delegate call target for VestingToken
s.
_salt
It will be used as the salt for create2
_vestingTokensByUnderlyingToken
Maps underlyingToken
s to an array of VestingToken
s.
Functions
constructor
*Creates a vesting token factory contract. Requirements:
implementationAddress
has to be a contract.feeCollectorAddress
can’t be address 0x0.transferFeePercentage
must be within minTransferFee and maxTransferFee.*
Parameters
Name | Type | Description |
---|---|---|
implementationAddress | address | Address of VestingToken contract implementation. |
feeCollectorAddress | address | Address of feeCollector . |
creationFeeValue | uint64 | Value for creationFee that will be charged when deploying VestingToken ’s. |
transferFeePercentage | uint64 | Value for transferFeePercentage that will be charged on VestingToken ’s transfers. |
claimFeeValue | uint64 | Value for claimFee that will be charged on VestingToken ’s claims. |
nextSalt
Increments the salt one step.
In the rare case that create2 fails, this function can be used to skip that particular salt.
createVestingToken
Creates new VestingToken contracts. Requirements:
underlyingTokenAddress
cannot be the zero address.timestamps
must be given in ascending order.percentages
must be given in ascending order and the last one must always be 1 eth, where 1 eth equals to 100%.
Parameters
Name | Type | Description |
---|---|---|
name | string | The token collection name. |
symbol | string | The token collection symbol. |
underlyingTokenAddress | address | The ERC20 token that will be held by this contract. |
milestonesArray | IVestingToken.Milestone[] | Array of all Milestones for this Contract’s lifetime. |
vestingTokens
Exposes the whole array that _vestingTokensByUnderlyingToken
maps.
Events
VestingTokenCreated
Parameters
Name | Type | Description |
---|---|---|
underlyingToken | address | Address of the ERC20 that will be vest into vestingToken . |
vestingToken | address | Address of the newly deployed VestingToken . |