Metamask

有沒有辦法通過電子郵件進行列入白名單的 NFT 鑄幣廠?

  • June 13, 2022

我正在嘗試通過電子郵件啟動 NFT。我有一個準備部署的基本 NFT 智能合約。我還有一個連接了元遮罩的反應應用程序和一個供最終使用者鑄造 NFT 的按鈕。我的 NFT 和反應鑄幣網站基於此程式碼https://github.com/angkushsahu/Robopunks

我有一個列入白名單的人的名單,但我只有他們的電子郵件地址。我怎樣才能做到只有我通過電子郵件發送邀請的人才能鑄造 NFT?有人有我可以參考的教程或程式碼庫嗎?

我會使用預先簽署的 ERC-191 風格的交易https://eips.ethereum.org/EIPS/eip-191

鑄幣時,使用者可以將他們的電子郵件輸入到您散列的表單中(以便擁有固定長度的訪問控制),然後將該散列與 v、r 和 s 值一起傳遞給鑄幣呼叫。

讓我分解一下,以便更好地解釋:

  1. 創建一個腳本,對白名單中的電子郵件地址進行雜湊處理。
  2. 在另一個腳本中使用雜湊值,生成 v、r 和 s 值並將它們映射到 JSON 格式的每個雜湊值:
{
 "EMAIL_HASH":{
   "STRUCTURE_ID":{
     "r": R_VALUE,
     "s": S_VALUE,
     "v": V_VALUE
   }
 },
 "SECOND_EMAIL_HASH":{
   "STRUCTURE_ID":{
     "r": R_VALUE,
     "s": S_VALUE,
     "v": V_VALUE
   }
 },
 .
 .
 .
}
  1. 發出邀請人們造幣廠的電子郵件。
  2. 表單應該接受他們的電子郵件,對其進行散列,將散列與 json 匹配並將值傳遞給 mint 函式。
  3. mint 函式應該使用ecrecover來驗證值是否正確。
  4. 如果您不想允許無限鑄幣,請記住設置訪問控制,僅允許每封雜湊電子郵件提出一項聲明。

當我第一次使用這種方法時,這篇 Medium 文章是一個很好的參考:https ://betterprogramming.pub/handling-nft-presale-allow-lists-off-chain-47a3eb466e44

你有幾個選擇。沒有判斷力。

  1. 您可以使用帶有一次性程式碼的特殊網站。將一個程式碼郵寄給每個電子郵件客戶。那可以直接造幣。
  2. 您可以使用帶有一次性程式碼的特殊網站。將一個程式碼郵寄給每個電子郵件客戶。這將使用鏈上鑄幣通行證為鑄幣做準備。
  3. 部署你的智能合約,但不要宣布它。然後郵寄您的電子郵件列表並要求他們購買,但在特定時間之前不要告訴任何人。

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