问题描述
事情是这样的: 我有一个旧的 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
}
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)