问题描述
我的智能合约收到自定义令牌时出现问题:
uint256 private privatePrice = 20;
uint256 public totalCollected;
uint256 public prevIoUsCollected = 0;
uint256 public walletLimit = 4*10**(18);
uint256 public softCap = 5*10**(18);
uint256 public hardCap;
uint256 public txCount;
bool public privateOpen;
uint256 private txCollected;
mapping(address => presaleWallet) inPresale;
struct presaleWallet {
bool isWhiteListed;
uint256 amount;
uint256 txCount;
uint256 tokenAmount;
uint256 newAmount;
bool tgeCollect;
uint256 numOfCollectTX;
uint256 nextCollect;
}
IERC20 private immutable _depositToken = IERC20(0xeD24FC36d5Ee211Ea25A80239Fb8C4Cfd80f12Ee);
function privateRound() public payable {
require(privateOpen == true,"PrivateRound: Private Round is Closed");
txCollected = depositToken().balanceOf(address(this)) - prevIoUsCollected;
prevIoUsCollected = depositToken().balanceOf(address(this));
require(txCollected > 0,"PrivateRound: You sent 0 BUSD");
require(inPresale[msg.sender].amount + txCollected <= walletLimit,"PrivateRound: Wallet limit has been reached");
totalCollected += txCollected;
txCount ++;
inPresale[msg.sender].isWhiteListed = true;
inPresale[msg.sender].amount += txCollected;
inPresale[msg.sender].txCount ++;
inPresale[msg.sender].tokenAmount += (txCollected*10**2)/privatePrice;
emit DepositSuccesful(msg.sender,txCollected,inPresale[msg.sender].amount);
}
我编写了一个函数来显示 sc 地址的令牌余额,它做得很好,但是由于某种原因,当令牌发送到这个函数时,映射不起作用,其他任何东西也没有,比如 txCount++。此外,它甚至不运行 require 语句(如果 privateRound 为假,它不会停止)。
知道代码可能有什么问题以及为什么它没有按预期运行吗?
非常感谢!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)