调整状态数据写入时机, 已防止cross function reentrancy
This commit is contained in:
parent
ad8a60a8d0
commit
45e36f8e0e
@ -113,6 +113,7 @@ contract NFTClaimStage2WL is ReentrancyGuard, AccessControl {
|
|||||||
require(_whitelist1[to] + _whitelist2[to] >= _mintedCount + nftCount, "NFTClaimer: not in whitelist or exceed limit");
|
require(_whitelist1[to] + _whitelist2[to] >= _mintedCount + nftCount, "NFTClaimer: not in whitelist or exceed limit");
|
||||||
}
|
}
|
||||||
uint256 _tokenAmount = mintConfig.mintPrice * nftCount;
|
uint256 _tokenAmount = mintConfig.mintPrice * nftCount;
|
||||||
|
totalCount += nftCount;
|
||||||
IERC20(mintConfig.currency).safeTransferFrom(to, mintConfig.feeToAddress, _tokenAmount);
|
IERC20(mintConfig.currency).safeTransferFrom(to, mintConfig.feeToAddress, _tokenAmount);
|
||||||
uint256[] memory ids = new uint256[](nftCount);
|
uint256[] memory ids = new uint256[](nftCount);
|
||||||
for (uint256 i = 0; i < nftCount; ++i) {
|
for (uint256 i = 0; i < nftCount; ++i) {
|
||||||
@ -121,7 +122,6 @@ contract NFTClaimStage2WL is ReentrancyGuard, AccessControl {
|
|||||||
IClaimAbleNFT(nftAddress).safeMint(to, _nftId);
|
IClaimAbleNFT(nftAddress).safeMint(to, _nftId);
|
||||||
_mintedRecords[to].add(_nftId);
|
_mintedRecords[to].add(_nftId);
|
||||||
}
|
}
|
||||||
totalCount += nftCount;
|
|
||||||
// add list
|
// add list
|
||||||
emit NFTClaimed(nftAddress, to, ids);
|
emit NFTClaimed(nftAddress, to, ids);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user