I am implementing a practice project on the topic of token pre-sale. Currently, I have created the project in such a way that, for example, a user who is going to participate in the token pre-sale must register on the site and As soon as users register on the site, an HD Wallet will be created on the site , user can charge wallet in the site with BNB currency and buy tokens in the pre-sale.
Of course, I have included a whitelist in the token smart contract that only users whose wallet address is in the project's whitelist can participate in the pre-sale, therefore, before purchasing, they must register a request to be added to the project's whitelist.
I wanted to know if this method I used is technically and logically correct?