Ethereum 将bet20代币交换为bep20代币,未上市且无价值

Ethereum 将bet20代币交换为bep20代币,未上市且无价值,ethereum,solidity,cryptocurrency,binance,bep20,Ethereum,Solidity,Cryptocurrency,Binance,Bep20,事情是这样的: 我有一个旧的bep20毫无价值,smartcontract有一些问题,所以我决定创建一个新的bep20,显然我需要旧bep20的持有者来获得新的 解决方案可能类似于交换合同,人们可以将令牌a交换到令牌B。我尝试部署以下合同,但存在错误,人们可以无限次交换:( 这是代码,但是任何想法,任何帮助都非常感谢,请: import 'ERC20.sol`; contract NewToken{ ERC20 public oldToken; address public a

事情是这样的: 我有一个旧的bep20毫无价值,smartcontract有一些问题,所以我决定创建一个新的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
        }
    }
}
import'ERC20.sol`;
新合同{
ERC20公共旧代币;
向公众发表演说;
函数NewToken(地址_oldtokenaddress,地址_addressToIgnore){
oldTokenAddress=\u oldTokenAddress;
addressToIgnore=\u addressToIgnore;
}
函数升级令牌(uint amountToUpgrade){
要求(数量)升级