我正在学习创建 NFT markertplace (openZeppelin-ERC721) 并被困在柜台上。我徘徊在执行下面的代码时会发生什么。
pragma solidity ^0.8.0;
library Counters {
struct Counter { uint256 _value; }
function current(Counter storage counter) internal view returns (uint256) {
return counter._value;
}
function increment(Counter storage counter) internal {
unchecked { counter._value += 1; }
}
function decrement(Counter storage counter) internal {
uint256 value = counter._value;
require(value > 0, "Counter: decrement overflow");
unchecked { counter._value = value - 1; }
}
function reset(Counter storage counter) internal {
counter._value = 0;
}
}
假设 A 和 B 都试图创建 NFT,并且计数器应该增加并为他们的 NFT 提供 ID。但是,如果他们都尝试同时创建 NFT 怎么办,我的意思是当然有很多机会发生这种情况。是否会丢弃其他 NFT,获得一个新 ID,如果是,会不会比预期花费更长的时间?那么GAS费用呢???
很多问题我希望你明白我想说什么!