Percentage Transfer Manager
Introduced in
2.0.0
Contract name
PercentageTransferManager.sol
Type
Transfer Manager Module
Compatible Protocol Version
^3.0.0
How it works
This contract is a transfer manager for limiting the percentage of token supply that a single address can hold.
DISCLAIMER
Under certain conditions, the limit could be bypassed if a large token holder does the following:
Redeems a huge portion of their tokens. It will cause the total supply to drop which can result in some other token holders having a percentage of tokens higher than the intended limit.
Key functionalities (as defined in the Smart Contract)
Initialization
Configure
This function is used to initialize the variables on the entire contract
Transfer Restrictions
This function is used to verify the transfer transaction and prevent a given account to end up with more tokens than it is allowed to. It also works by checking if an address is on the whitelist, then allowing that address to hold more than maxHolderPercentage
of the tokens.
ChangeHolderPercentage
This function sets the maximum percentage that an individual investor / token holder can hold.
ModifyWhitelist
This function allows the issuers to add or remove investor addresses from a whitelist. If an address is on the whitelist, it is allowed to hold more than maxHolderPercentage
of the tokens.
ModifyWhitelistMulti
This function allows issuers to add or remove investor addresses from their STO whitelist.
SetAllowPrimaryIssuance
This function allows the issuer to set whether or not they want to consider a primary issuance of transfers. The PercentageTM has a flag the allows for bypassing the restriction on “primary issuance” as we can’t differentiate whether minting is coming from and STO or Issuer (issue function directly), this flag will also allow bypassing the restriction when the issuer is minting tokens.
Last updated
Was this helpful?