Let’s say I have a multi-asset minter contract, before a certain condition hits, I don’t want the assets to be transferable, to other users or contracts. I would still want the asset to be minted and burned. What are my options?
You can use predicates and scripts for that. You can specify that condition in the predicate and it will release funds only if the condition is met. However, in this scenario, predicates will store the funds and not the user.
It becomes a UX issue for users IMO, might as well not have the assets minted, and have a claim option, again not great from a user perspective. Some context:
Currently working on a launchpad that issues tokens over a bonding curve, once the bonding curve is completed I want to migrate the liquidity to a DEX. The issue happens if someone goes ahead and makes a skewed pool on the DEX before the bonding curve is completed, forcing an un-optimal migration. If I can block transfers to the DEX address before bonding curve is completed that would be great. Having a standard transfers() function is limiting.