iT邦幫忙

2022 iThome 鐵人賽

DAY 24
0
Web 3

NFT、區塊鏈、比特幣,這些到底是什麼?? 讓我們從頭認識這些酷東西吧! 發出屬於自己的NFT!系列 第 24

[Day 24] 建造鐵人賽專屬NFT!(一)開發環境Remix與OpenZeppelin使用, 新手懶人輕鬆上手!

  • 分享至 

  • xImage
  •  

上篇回顧

昨天我們透過NFT平台OpenSea整合的服務,直接發行了一個NFT。不過由於這樣發送NFT自訂性實在太低,且沒有做到真正去中心化的效果,所以我們今天要真正來撰寫智能合約了!


Remix開發平台

我們在Day18有大致紹將使用的開發流程會是用Remix(開發環境IDE)來撰寫Solidity(程式語言/合約),那現在讓我們廢話不多說,直接進入Remix官網

  • 首先點擊左上角的新建檔案, 並把檔案命名為ironman.solhttps://ithelp.ithome.com.tw/upload/images/20221006/201525372kG17UGKJg.png
  • 建好之後就完成了可以開始打codehttps://ithelp.ithome.com.tw/upload/images/20221006/20152537l2dCIhwAFP.png
  • 不過我相信大家只記得版本號pragma solidity...跟使用函式庫OpenZeppelin吧?!https://ithelp.ithome.com.tw/upload/images/20221006/20152537Ak0JX1eqlY.png
    各位現在一定一頭霧水,不知道要怎麼開始
    嘿嘿..! 這時候就是強大的開源函式庫OpenZeppelin出場的時候了

OpenZepplin魔法生成器

  • 首先進入OpenZepplin的合約官網, 並點擊左邊的Wizardhttps://ithelp.ithome.com.tw/upload/images/20221006/20152537TiCYt1vCNN.png
  • 可以看到有很多選項可以勾或直接設定, 讓我來解釋一下好了https://ithelp.ithome.com.tw/upload/images/20221006/20152537m7XvxfjGZH.png

首先當然是選擇ERC721代幣
下面輸入代幣的名稱Name以及代幣的符號/簡寫Symbol(ERC721標準)
Base URI就是圖片/影片等的Metadata了, 不知道可以看這裡
Mintable指的是代幣是否可以被鑄造
Auto Increment Ids則是代幣被鑄造時的編號是否自動往上加
Burnable指的是代幣是否可以被銷毀/燒毀
Pausable指的是是否可以暫停合約中的一些函式(提高容錯率但也將失去無法更改的特性)
URI Storage指的是是否可以更改代幣的Metadata位置(通常用來開盲盒用)
License則是一些關於著作權/使用權的設定(建議不需更改)

https://ithelp.ithome.com.tw/upload/images/20221006/20152537PIjrUYBG7W.png

  • 設定完之後應該會長這樣
    這裡我們將代幣名稱設定成Ironman2022 LD以及符號IM2022LD
    並勾選可以被鑄造以及自動增加代幣的編號
    其他像是銷毀代幣、更改Metadata等功能我們這次用不到就不勾選了
    Base URI的Metadata地址因為我們尚未上傳檔案, 所以先簡單輸入就好
  • 接著我們點擊右上角的Copy to clipboard可以複製程式碼, 並回到Remix貼上
    https://ithelp.ithome.com.tw/upload/images/20221006/20152537At1ackBhdQ.png
  • 點擊左邊的第三個圖示進入編譯介面
  • 點擊Compile xxx.sol完成編譯, 若沒有任何錯誤跳出則代表成功!

現在我們已經成功把合約編譯成Byte Code了,現在要有一個VM環境讓我們可以簡易測試一下我們合約內的各個函式是否可以正常運行。

測試/檢查合約

https://ithelp.ithome.com.tw/upload/images/20221006/201525372lZN6B4UKA.png

  • 點擊左邊的第四個圖示進入佈署/執行介面
  • 上面ENVIROMENT選擇Remix VM(London)(由Remix官方提供, 非以太鏈, 供本地快速測試使用)
  • 按下Depoly, 佈署合約
  • 完成後可以看到下面有成功佈署的合約, 點開來就可以看到各種函式囉
    https://ithelp.ithome.com.tw/upload/images/20221006/201525377Csim67eIZ.png
    橘色代表可以與合約互動, 而藍色則代表可以查詢
    例如使用者用來鑄造的函式safeMint()
    以及用來查詢誰有多少這個代幣的數量balanceOf()
    不過這邊因為沒有實際上鏈, 所以互動起來也看不到結果
    不過要佈署到以太坊主網上又要花不少的gas fee,且也不一定成功
    有沒有折衷的方案阿...? 當然有!
    明天讓我們來把合約上到以太坊測試鏈(Goerli)吧!

小結

今天用最簡單的方式教大家如何使用OpenZepplin所提供的一鍵式服務,讓你沒有程式基礎也可以用合約來發行NFT,明天讓我們把合約上到以太坊測試鏈上吧!來看看有沒有辦法成功鑄造
提醒! 尚未在電腦版安裝MetaMask的人趕快去安裝喔! 明天上鏈會用到

<上一篇> [Day 23] 新手也能創造NFT! OpenSea上手,3分鐘販賣你的NFT
<下一篇> [Day 25] 建造鐵人賽專屬NFT!(二)把寫好的合約部屬上測試鏈Goerli!竟然還有測試用OpenSea?!


上一篇
[Day 23] 新手也能創造NFT! OpenSea上手,3分鐘販賣你的NFT
下一篇
[Day 25] 建造鐵人賽專屬NFT!(二)把寫好的合約部屬上測試鏈Goerli!竟然還有測試用OpenSea?!
系列文
NFT、區塊鏈、比特幣,這些到底是什麼?? 讓我們從頭認識這些酷東西吧! 發出屬於自己的NFT!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言