在ERC721 OpenZeppelin合同中,铸造过程如下:
- 获取当前令牌ID
_tokenIds.current()
_safeMint
当前令牌ID- 一段时间过去了,矿工拿起交易并将其建立到链中
假设我们在代币100上。如果两个人同时尝试铸币,他们两个的tokenIds.current((不是都是100吗?然后_safeMint
将使用相同的令牌ID运行,而其中一个会失败?
很明显,我所概述的场景并没有发生——数百人试图在同一时间毫无问题地创建项目。我想我错过了一些关于tokenIds.current((如何工作的东西。
如果两个人同时尝试铸币,他们两个的tokenIds.current((不是都是100吗
块中的所有事务都是串行执行的,而不是并行执行的。第一个得到ID100,第二个得到ID101。