我对与solidity相关的主题很陌生,我正在寻求公开发售nfts,我正在寻找的是在WBNB中以固定价格出售nfts,我的问题如下:我应该为nfts 和其他出售?
我的想法是:创建 nft 合约,使用名为 purchase 的公共函数,允许根据选择的 nft 类型在 WBNB 中付款,并在付款后 _mint 到 nft。
有没有更好的方法来解决这个问题?
我给你一个购买功能的摘录,其余的对于erc721合约来说是正常的
function purchaseStadium (uint8 _stadiumType) public payable {
require(!paused(), "Stadium sales not available");
require(stadiumQty[_stadiumType] > 0, "There are no such stadiums left");
require(addressPurchases[msg.sender] < maxPurchasesPerAccount, "You reached the maximum number of purchased stadiums");
if(_stadiumType == 0){
require(msg.value >= moonPrice);
payable(msg.sender).transfer(msg.value - moonPrice);
} else if(_stadiumType == 1){
require(msg.value >= marsPrice);
payable(msg.sender).transfer(msg.value - marsPrice);
} else if(_stadiumType == 2){
require(msg.value >= chaosPrice);
payable(msg.sender).transfer(msg.value - chaosPrice);
}
addressPurchases[msg.sender] += 1;
stadiumQty[_stadiumType] -= 1;
tokenId.increment();
_safeMint(msg.sender, tokenId.current());
}