Solidity

我可以根據 gas 價格將 NFT 分配給在同一塊中執行鑄幣功能的地址嗎?

  • December 20, 2021

想像一下,一個智能合約能夠鑄造代表自然數的 NFT:0, 1, 2, … 只需通過它們的代幣 id。

每個人都可以訪問鑄造新 NFT 的功能,並將鑄造的 NFT 歸因於交易的發送者:

function safeMint(uint256 naturalNumber) public {
   require(_exists(naturalNumber) == false, "This natural number was already minted");
   _safeMint(msg.sender(), naturalNumber);
}

例如,這意味著第一個呼叫safeMint(3)函式的人將是代表自然數的 NFT 的第一個所有者3。如果其他人再次嘗試鑄幣3,交易將被撤銷。

如果兩個地址嘗試3在兩個不同的區塊中鑄造該數字,NFT 當然將歸因於在第一個區塊中鑄造 NFT 的地址。

但是,兩個地址可能會嘗試3在同一個塊中鑄造數字。如果是這種情況,乙太坊將如何決定首先執行哪個交易,因為這將有效地定義誰將成為 NFT 的所有者。我們可以考慮先執行提議支付最高gas價格的交易嗎?

Polygon PoS 鏈上的這種邏輯會改變嗎?

這由礦工決定。礦工決定交易在一個區塊中的排序順序——甚至決定哪些交易包含在一個區塊中。

通常,礦工根據它為礦工提供的氣體獎勵量對訂單進行排序,並選擇盡可能多的區塊。

因此,本質上,支付最高gas價格的人首先得到它。但請記住,這不是規則,結果可能會有所不同。

引用自:https://ethereum.stackexchange.com/questions/116975