如何解决Solidity 智能合约:收到自定义令牌后功能未完全运行
我的智能合约收到自定义令牌时出现问题:
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 举报,一经查实,本站将立刻删除。