Solidity

驗證 NFT ERC-721 代幣所有權的最佳實踐

  • November 9, 2021

我正在開發一個智能合約 (SC) 和一個前端 Dapp,將用於銷售一些 NFT ERC-721 代幣。當使用者/地址購買其中一個 NFT 代幣時,該代幣將由 SC 為他的利益鑄造,而我的 Dapp 將在本地數據庫中註冊所述購買。考慮到使用者以後可能會在不通過我的前端 Dapp 的情況下出售他的代幣,將在 SC 中找到的特定使用者的代幣所有權與我的本地數據庫同步的最佳實踐是什麼?每次使用者訪問網站並希望顯示他在前端 Dapp 中擁有的代幣時,我是否應該查詢 SC?這不會花太長時間嗎?只有當使用者試圖出售他的代幣之一以驗證他是否是合法所有者時,我才應該查詢 SC?

謝謝你。Ĵ

這是一個安全檢查。實際上你沒有辦法在不消耗gas的情況下快速檢查使用者的餘額。因此,在 SC 中發送、消費或交換代幣之前,您應該進行邏輯安全檢查。只需在使用使用者餘額之前放置一個斷言,要求,恢復,如果由於餘額不足而失敗,則更新使用者餘額。在 DApp 內部,您可以快速查看使用者餘額,而無需消耗 gas。

答案很簡單,通過 dapp 的 api 放置令牌 URI,然後每次鑄幣成功時將令牌 id 保存在數據庫中。如果有人通過 bscscan 或 ethscan 或任何區塊瀏覽器公開鑄幣,它將無效且無法使用。就像禁止的過程。

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