0

事情是这样的:我有一个旧的 bep20 一文不值,智能合约有一些问题,所以我决定创建一个新的 bep20,显然我需要旧的 bep20 的持有者来获得新的。

解决方案可能类似于交换合约,人们可以将代币 A 交换为代币 B。我尝试部署以下合约,但存在错误,人们可以无限次交换 :(

这是代码,但任何想法,任何帮助都非常感谢:

import 'ERC20.sol`;

contract NewToken{
    ERC20 public oldToken;
    address public addressToIgnore;

    function NewToken(address _oldTokenAdddress, address _addressToIgnore){
        oldTokenAddress=_oldTokenAddress;
        addressToIgnore=_addressToIgnore;
    }

    function upgradeTokens(uint amountToUpgrade){
        require(amountToUpgrade<=oldToken.balanceOf(msg.sender));
        require(amountToUpgrade<=allowance(msg.sender, this));
        require(msg.sender!=addressToIgnore);
        if(transferFrom(msg.sender, 0x0, amountToUpgrade)){
            //Mint the new tokens
        }
    }
}
4

0 回答 0