-
Notifications
You must be signed in to change notification settings - Fork 152
Description
Is your feature request related to a problem?
Currently the canBuyFromSTO check is implemented in the general transfer manager and not the STO contracts. Every transfer will check if a STO module is attached and if the tokens are from address zero (being minted). If both these are true the contract checks if the investor is allowed to receive the tokens based on the investors canBuyFromSTO status in a global whitelist. Once STO's are complete this is an inefficient use of gas and also does not allow concurrent STO's to run with different restrictions applied to different investors e.g. A US investor can buy from Reg D 506(c) but cannot buy from a Reg S offering. Setting this investor as allowed to buy from STO's in the global whitelist would allow them to invest in the Reg S offering. setting restrictions at the STO contract level would allow the required restrictions for concurrent offerings.
Describe the solution you'd like
Implement the canBuyFromSTO whitelisting and checks at the STO contract instead of the global whitelist and remove it from the general transfer manager.
Describe alternatives you've considered
None
Possible Implementation
Similar to what is done for the current isAccredited check in usdTieredSTO
Additional context
None
(Side note: Are there also cases where the investors accredited status should be managed at the general transfer manager level or in another transfer module instead of just the STO contract? Such as restricting certain secondary trades to only be between accredited investors?)