Nft
如何創建每個代幣固定美元價格的 Erc721 合約(例如,1 nft 應始終花費 200 美元,無論乙太幣價格如何)
我正在創建一個 Erc721a 合約,我想將我的代幣價格設置為 200 美元,為此我使用了 chanlink 的聚合器 v3 介面,它返回美元價值,但我應該如何使用它呢?如果有任何範常式式碼或任何具有相同功能的智能合約,請分享!謝謝。
例如,你可以這樣寫
function getLatestPrice() public view returns (int) { ( /*uint80 roundID*/, int price, /*uint startedAt*/, /*uint timeStamp*/, /*uint80 answeredInRound*/ ) = priceFeed.latestRoundData(); return price; } function mint() public payable returns(uint256 tokenId) { int oneEthInUsd = getLatestPrice(); // 1 ETH in terms of USD // If 1 ETH = 3274,72773030 USD // 1 ETH : 3274,72773030 USD = X ETH : 200 USD // X = 1 * 200 / 3274,72773030 int twoHundredUsdInEth = 200 ether / oneEthInUsd; require(msg.value >= uint(twoHundredUsdInEth), "The Price is 200 USD"); // the rest of your minting function logic }
考慮使用 $ DAI or $ USDC 用於鑄幣支付,而不是來自 oracle 的價格饋送。