I am faced with a problem regarding the ICO and Token smart contracts (SCs). I am currently using OpenZeppelin SCs to create my token and ICO and everything is working fine. Now I would like to add a functionality that goes as follows:
Suppose after crowdsale, Account X contains 20 tokens and wants to transfer them to Account Y. Now I am using the functionality of RefundablePostDeliveryCrowdsale.sol of OpenZeppelin to make sure that tokens are released only after the crowdsale is completed and also some soft cap is reached. But after the crowdsale, there is no way to stop the transfers of token between accounts
I would like to implement a functionality that would stop the users from spending their tokens for a specific amount of time after they have received them in their wallet from crowdsale.
Ideas so far:
- After release transfer the tokens to a timelock SM which would release the tokens to the users after certain time
- Use timelock just before sending the tokens from the crowdsale itself and so users cannot withdraw the tokens
Now both of these can work but then the users have to trust the other SCs and further delay the time after which they are receiving the tokens.
I would like to lock the token transfer inside the user wallet if such thing exists.