I'm gona create new version from my f***d of ERC20 token(the problem where in somewhere else not in the ERC20 implementation), I already know how to burn the old Tokens and send out the new one if the user request it.
But it will be much better to doing it once right after the Contract init.
I get that I can use the mapping to get the addresses,
contract OLD_CONTRACT {
mapping (address => mapping (uint => uint)) public balances;
But then how I can use these addresses in some loop to transfer the exact number of my new Tokens to every address. Most importantly how I can do it in some efficient way?