Metamask
有沒有辦法通過電子郵件進行列入白名單的 NFT 鑄幣廠?
我正在嘗試通過電子郵件啟動 NFT。我有一個準備部署的基本 NFT 智能合約。我還有一個連接了元遮罩的反應應用程序和一個供最終使用者鑄造 NFT 的按鈕。我的 NFT 和反應鑄幣網站基於此程式碼https://github.com/angkushsahu/Robopunks。
我有一個列入白名單的人的名單,但我只有他們的電子郵件地址。我怎樣才能做到只有我通過電子郵件發送邀請的人才能鑄造 NFT?有人有我可以參考的教程或程式碼庫嗎?
我會使用預先簽署的 ERC-191 風格的交易https://eips.ethereum.org/EIPS/eip-191。
鑄幣時,使用者可以將他們的電子郵件輸入到您散列的表單中(以便擁有固定長度的訪問控制),然後將該散列與 v、r 和 s 值一起傳遞給鑄幣呼叫。
讓我分解一下,以便更好地解釋:
- 創建一個腳本,對白名單中的電子郵件地址進行雜湊處理。
- 在另一個腳本中使用雜湊值,生成 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 } }, . . . }
- 發出邀請人們造幣廠的電子郵件。
- 表單應該接受他們的電子郵件,對其進行散列,將散列與 json 匹配並將值傳遞給 mint 函式。
- mint 函式應該使用
ecrecover
來驗證值是否正確。- 如果您不想允許無限鑄幣,請記住設置訪問控制,僅允許每封雜湊電子郵件提出一項聲明。
當我第一次使用這種方法時,這篇 Medium 文章是一個很好的參考:https ://betterprogramming.pub/handling-nft-presale-allow-lists-off-chain-47a3eb466e44
你有幾個選擇。沒有判斷力。
- 您可以使用帶有一次性程式碼的特殊網站。將一個程式碼郵寄給每個電子郵件客戶。那可以直接造幣。
- 您可以使用帶有一次性程式碼的特殊網站。將一個程式碼郵寄給每個電子郵件客戶。這將使用鏈上鑄幣通行證為鑄幣做準備。
- 部署你的智能合約,但不要宣布它。然後郵寄您的電子郵件列表並要求他們購買,但在特定時間之前不要告訴任何人。