【新年企劃最終章】大割的韭菜幣 | 智能合約開發計劃 #4

閱讀時間約 11 分鐘

前言

這是新年特別企劃的第四篇,我們的目標是在過年前學習寫自己的第一個智能合約並發行自己的加密貨幣,可以作為紅包發送給親友,或是想想自己幣的用途,打造一個貨幣的經濟模型,拿去大割韭菜大賺一票,所以如果你一篇都還沒看過的話,第一篇的連結在這裡
經過前面文章,我們已經撰寫了程式碼並順利的發佈自己的智能合約,發佈的當下合約會將100%加幣貨幣供給量發送到我們的錢包,不過這都是在本機上的操作,當你換個瀏覽器或是把智能合約刪掉,它就不見了,所以本篇我們會操作一翻,讓智能合約部屬在以太坊測試網上,雖然說測試網上的錢都是假的,但是它仍是一個正常運作的區塊鏈,不論是你換個瀏覽器、換個電腦或是去其他國家使用,我們發佈的幣將永遠存留在區塊鏈上!
另外還會討論為什麼在合約發佈後,我們要將程式碼貼在Etherscan上並進行驗證,這樣做又有什麼好處。
那就開始吧,雖然我在第一篇寫過如何領取測試網上的ETH做為發佈智能合約以及轉帳用的手續費,但是在這邊還是會再寫一次。

以太坊 Kovan測試網 免費Ether領取

首先你要先有一個Metamask錢包,網址是https://metamask.io/
Metamask切換至Kovan測試網路的兩步驟:
1. 在Metamask中點選「以太坊 主網路」的下拉選單
2. 選擇Kovan 測試網路
**如果你的錢包並未出現Kovan 測試網路的話,請優先將Kovan測試網路加到Metamask中,一樣是兩步驟完成:
1. 在Metamask中點選「以太坊 主網路」的下拉選單並按下新增網路(Add Network)
2. 分別填入這四個項目並按下Save儲存即可
為了方便複製避免輸入錯誤,這裡會將四個項目寫下來,可以直接從這裡複製貼上哦:
Network Name: Kovan Test Network
New RPC URL: https://kovan.poa.network
Chain ID: 42
Currency Symbol: ETH
新增完畢後,記得回去做切換至Kovan測試網路的兩步驟,先將錢包切換到Kovan測試網路哦!
接著,將自己的錢包地址複製起來,我們去水龍頭領錢了!網址是https://linkfaucet.protofire.io/kovan,打開後頁面會長這樣:
左側的Network顯示為以太訪的測試網路Kovan,當然你可以點開下拉選單,轉換一下不同的測試網路,不過我們這次開發會在Kovan上,所以只要領Kovan測試網的ETH就好,右側輸入錢包地址,按下我不是機器人並Sand request。
按下之後,這個水龍頭就會發送交易,將ETH以及LINK幣鏈上轉帳給我們,看到”Waiting for confirmation”表示這些資產正在上鏈中可以稍等一下,直到變成”Request complete”就成功了!趕快回去打開Metamask錢包就能看到剛剛被發送的10顆Kovan LINK以及0.1顆Kovan ETH,再次強調,這裡的錢只是玩具鈔,就算你有100,000,000顆ETH,它的資產價值也是0哦!

在Kovan發佈智能合約

要把程式碼發佈到區塊鏈上,就像轉帳交易一樣都需要上區塊鏈,這件事情本身就會需要Gas fee,也就是上鏈的手續費,所以才需要先去領取免費的ETH,領到之後就可以開始發佈啦!要能夠在Kovan上發佈,就需要先將環境改到測試網上,先去檢查Metamask錢包是否設定在Kovan測試網路,接著在 “DEPLOY & RUN TRANSACTIONS” 的第一個欄位 “ENVIRONMENT” 切換到 “Injected Web3″,這時Matamask會跳出來問你要不要跟Remix連線,點選連線後,ENVIROMNT就會顯示Koven (42) network:
如果你的Metamask是在其他主網、L2、側鏈或測試網上,底下就不會顯示 “Koven (42) network” 哦。
接著就是老樣子,Deploy我們的代幣,但是這次不一樣的是你的Metamask會跳出小視窗請你確認一筆在Kovan測試網路上建立新合約:
以此例而言,可以看到如果要將這個智能合約發佈到Kovan測試網路,需要付出0.0015顆ETH,但是這裡的ETH是我們剛剛領取到的免費Kovan ETH (KETH),KETH與真正交易所買到的ETH不一樣,它是沒有價值的。

添加程式碼至Etherscan

如果還不知道Etherscan是什麼,不知道一些基礎的瀏覽器用法可以回去參考之前的文章「我用一萬塊買了最後一個 Traveloggers | 區塊鏈瀏覽器」複習一下,我們接下來會用到。
成功發佈後,需要把程式碼貼到鏈上以供任何人瀏覽,但是這樣做似乎像是多此一舉,因為我們已經自行驗證過程式碼是可以轉帳的嘛!所以在這裡稍微解釋一下可能會出現的疑惑點。

《一些可能的疑問》

Q:為什麼需要把程式碼放上去呢?
首先你應該要知道,電腦只看得懂0和1組成的數據,並不能直接看懂人類的語言以及人類撰寫出來的程式碼,所有你現在所用的軟體服務,背後都是0和1組合而成的語言。回想一下我們如何發佈一個智能合約的,在程式寫完後要先到 “SOLIDITY COMPILER” 進行編譯,這個編譯的步驟就像是一個語言翻譯的過程,將人類寫的程式碼轉換成電腦看得懂的語言。
在發佈的過程,只是將電腦看得懂的語言放上去而已,事實上電腦語言沒有能夠100%還原成原本程式碼的能力,例如程式碼中不會被執行的註解就無從還原,於是在Etherscan上就有 Verify and Publish 的功能讓我們將原始代碼放上去做驗證。
Q:放程式碼上去有什麼好處嗎?為什麼要這麼做?
既然發佈了智能合約,那我們一定會希望有人使用吧!這種感覺就像是在巷口放置一台自動販賣機,希望被更多人使用一樣。但是一般使用者幾乎不可能會認識身為發佈者的我們,這時候他根本無從得知我們的幣或是提供的服務(如:轉帳)是否可以被信任,所以我們應該要把程式碼放上去,至少讓用戶有機會自己審核代碼,透過瀏覽程式碼去判斷準備要使用的合約背後的程式是否確實按照開發者所說的會那樣執行。

《添加程式碼》

於 “DEPLOY & RUN TRANSACTIONS” 往下滑找到 “Deployed Contracts” 欄位,右邊有個複製的icon:
這個TOKEN AT 0X….就是我們發佈的合約,合約在創建時也會有個地址,這個例子而言,我們發的幣就是0x9E開頭,未來想要追蹤這個幣的任何紀錄都要透過這個地址做查詢,現在將地址複製起來,接下來就是去Etherscan上找到剛剛發佈的合約內容,並添加合約的程式碼。
Kovan是以太坊的測試網路,所以也有一個Kovan版本的Etherscan,網址是: https://kovan.etherscan.io/ 進去之後直接在Search的框框內貼上剛剛複製的地址進行搜尋:
搜尋後就會找到剛剛在Remix上發佈的合約,可以看到Creator的錢包地址就會是你發佈合約的那個地址哦!
接下來點擊下方的 Contract,就會看到一堆像亂碼的東西,這個東西就是給電腦閱讀的語言,也可以被稱作「Byte Code」,點擊 Verify and Publish。
進到 Verify & Publish Contract Source Code 頁面後,分別要輸入錢包地址、要編譯的程式語言、程式語言版本以及License,這個License就是程式碼授權的程度,當初我們在寫的時候放在第一行的東西。
再來把完整的程式碼複製貼上到 “Enter the Solidity Contract Code below” 中,按Verify and Publish 就完成程式碼的上傳了。
上傳完成後,回到合約的頁面就會發現Contract右邊多了一個綠勾勾,表示這個合約附上了程式碼,且被EVM驗證過了。
到這裡為止,就是完整的完成智能合約的發佈了,再來我們來實際使用這個幣看看,你會需要開第二個錢包作為收款錢包哦。

轉帳

再來我們會做跟上一篇文章一樣的事情就是實際轉帳看看,由於大部分過程都一模一樣,我就簡單帶過了,忘記的話可以回顧上一篇再重新看一下。
由於我們發行的加密貨幣確實運行在區塊鏈上了,所以選擇回到Remix上或是直接用Metamask進行轉帳都可以,這邊還是以Remix做示範,在 “DEPLOY & RUN TRANSACTIONS” 中輸入另一個錢包的地址與匯出的數量做transfer:
Metamask會請你確認是否要發送這筆交易,由於交易需要上區塊鏈,就會需要ETH作為手續費,這張圖可以看出預計的手續費是0.000131 ETH,匯出的金額是0.0000000000000001顆 FTB (因為我們在 _value 中填了100, _value 的最小單位稱作wei,wei表示10e-18顆):
確認後等待這筆交易紀錄成功上鏈,就會跑出小狐狸的小視窗:
像上次一樣使用我們在Remix上寫的 balanceOf 來查詢兩個錢包的加密貨幣餘額,由於匯出了100 wei 顆加密貨幣,一邊會扣100 一邊會加100:

Etherscan上查詢轉帳紀錄

接著回到Etherscan,網址是 https://kovan.etherscan.io/ ,一樣輸入智能合約的地址,就會看到 Transactions 多了一筆 Hash:
最上面的第一筆就是我們剛剛轉帳出去的那筆紀錄,想看更詳細的內容就要點擊 Txn Hash 0xbd開頭的Hash,點進去會看到這筆紀錄的詳細資料:
在這裡可以明明白白地看到誰(From)呼叫哪個智能合約(Interacted With),給了誰(To) 多少(For)顆加密貨幣(Fa Tsai Bee, FTB),手續費花了多少ETH (Transaction Fee)。

完整程式碼

如果要看完整的程式碼,我會放在Github上,網址是 https://github.com/ITechNote/FaTsaiBee 其中的 FaTsaiBee.sol 就是完整程式碼了。
裡面放的主要就是過去這四篇文章的程式碼,包含 First.sol, TransferToken.sol。
而其中的 FaTsaiBee.sol 是完整版的程式碼,未來如果有機會再來談談這裏面的allowance和approval是什麼,以及它所衍生的資安議題。

小彩蛋

如果沒意外過年期間我會再發一篇文章,主旨就是我在Polygon上發行了自己的科技幣 (IT Coin, ITC),到時候會有空投免費的 ITC 幣獎勵做為讀者回饋,持幣者接下來會有一些特殊福利哦!
目前規劃會在我的FB粉專、Line社群以及Telegram群組分別發放空投名額,空投名額有限先搶先贏,詳細資訊請持續關注之後的文章,所以歡迎優先加入或追蹤以下三個平台,掌握第一手資訊:
FB粉專連結:ITechNote 科技隨筆
Line社群:科技隨筆 場外休息區
Telegram群組:ITechNote 科技隨筆 交流社群

延伸閱讀

最後,謝謝你在百忙之中願意抽空來花時間來看我的文章,如果還喜歡這些內容的話希望能獲得你的追蹤及支持,也歡迎點此連結在其他平台找到我
下次見嚕 o((>ω< ))o~
為什麼會看到廣告
《科技隨筆 | 智能合約開發計畫》 智能合約開發計畫會深入淺出,從認識以太坊的協議開始出發,慢慢從最簡單的代幣到發行 NFT ,甚至是開發一些去中心化應用程式(Dapps),並做一些簡單的使用者介面讓任何人可以透過瀏覽器開啟 Web3.0 的大門。
留言0
查看全部
發表第一個留言支持創作者!
本文延續上一次的程式碼,並增加錢包餘額查詢以及轉帳功能,完成後將會嘗試轉帳,若測試與查詢的結果都沒有問題的話,恭喜你完成一個可以被轉帳交易的加密貨幣,今年過年就靠它讓你在親戚朋友之間成為被眾人討論的紅人了!
在本文中,我們會開始寫一些程式,讓讀者瞭解如何利用Remix開發環境來撰寫Solidity程式,以及如何編譯、發佈智能合約。還有在發佈之後怎麼看剛剛設定的參數是否都成功被執行了,一起實作發出人生第一顆發財幣吧!
2022年的農曆新年在一月底就要登場了!說到新年或多或少一定免不了要家族團聚吃個團圓飯,又到了這個時間了,身為社畜的你想好今年要包多少紅包給家人了嗎?這次過年就逼親戚下載錢包,直接把你設計的發財幣、紅包幣、坐以待幣、大學延幣通通在過年的時候射給他們吧!
本文延續上一次的程式碼,並增加錢包餘額查詢以及轉帳功能,完成後將會嘗試轉帳,若測試與查詢的結果都沒有問題的話,恭喜你完成一個可以被轉帳交易的加密貨幣,今年過年就靠它讓你在親戚朋友之間成為被眾人討論的紅人了!
在本文中,我們會開始寫一些程式,讓讀者瞭解如何利用Remix開發環境來撰寫Solidity程式,以及如何編譯、發佈智能合約。還有在發佈之後怎麼看剛剛設定的參數是否都成功被執行了,一起實作發出人生第一顆發財幣吧!
2022年的農曆新年在一月底就要登場了!說到新年或多或少一定免不了要家族團聚吃個團圓飯,又到了這個時間了,身為社畜的你想好今年要包多少紅包給家人了嗎?這次過年就逼親戚下載錢包,直接把你設計的發財幣、紅包幣、坐以待幣、大學延幣通通在過年的時候射給他們吧!
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
Thumbnail
Faker昨天真的太扯了,中國主播王多多點評的話更是精妙,分享給各位 王多多的點評 「Faker是我們的處境,他是LPL永遠繞不開的一個人和話題,所以我們特別渴望在決賽跟他相遇,去直面我們的處境。 我們曾經稱他為最高的山,最長的河,以為山海就是盡頭,可是Faker用他28歲的年齡...
Thumbnail
2023年我只設了一個大目標"穩定發文",最後挑戰成功了!然因去年底的身體警訊,今(2024)年我得同時挑戰兩個"大目標"--健康與發文兼顧! 且兩個大目標下,還有各有4個"子目標"願景..我花了1-2月這兩個月的時間,進行了各種資料收集與"先期挑戰",最終我的具體目標和預計的執行路徑會是什麼呢?
Thumbnail
農曆新年快樂,餃子有元寶的寓意,一起迎向豐盛之路。 靜心深呼吸3次,選一份與你有連結的餃子,看看如何開啟今年的豐盛之路。 透過情感與情緒的流動帶領內在的能量流動,並附有相關精油療癒與正面語句的建議,一起開啟豐盛之路。
Thumbnail
熱血沸騰的BWF年終賽彷彿昨天才剛剛結束,新年度賽季緊接從1月9日起,由超級1000等級的馬來西亞公開賽揭開序幕。本賽事作為奧運積分週期下半場的第一項大賽,各路高手齊聚。籤表一公布,各分項首輪已出現許多堪稱決賽規格的對決。
Thumbnail
亞企味屋 AJIYA 西湖店,位在捷運西湖站步行約九分鐘的距離 餐廳位置在轉角內,有點隱密需張大眼睛仔細找一下~ 亞企味屋 AJIYA 西湖店,環境挑高擺放許多電視,一邊用餐一邊看電視不怕無聊~ 座位區下方有插座可以充電,不怕手機臨時滑到沒電! 裝潢走一個溫色調,隨著耶誕節即將來臨,店內精心
Thumbnail
按照慣例,回顧過去,才能迎接美好的未來✨ 本篇借花獻佛,引用吉卜力美術館(三鷹の森ジブリ美術館)昨天發布宮崎駿大師親自繪製的虎年賀圖,一起來看看2021年博物館吧的熱門貼文吧!
Thumbnail
​ 首先說明:這篇不是寫食記,而是一篇關於食品業一家股票上市公司。此家就是德麥食品公司(英文名稱:THEMAG       FOOD      CPMPANY),這是一家致力於人類民以食為天以食品為本業,身為台灣最大烘焙原物料供應商,十足之戰戰兢兢經營的企業。身為讀者的你,看完本文後一定會覺得;德麥
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
Thumbnail
Faker昨天真的太扯了,中國主播王多多點評的話更是精妙,分享給各位 王多多的點評 「Faker是我們的處境,他是LPL永遠繞不開的一個人和話題,所以我們特別渴望在決賽跟他相遇,去直面我們的處境。 我們曾經稱他為最高的山,最長的河,以為山海就是盡頭,可是Faker用他28歲的年齡...
Thumbnail
2023年我只設了一個大目標"穩定發文",最後挑戰成功了!然因去年底的身體警訊,今(2024)年我得同時挑戰兩個"大目標"--健康與發文兼顧! 且兩個大目標下,還有各有4個"子目標"願景..我花了1-2月這兩個月的時間,進行了各種資料收集與"先期挑戰",最終我的具體目標和預計的執行路徑會是什麼呢?
Thumbnail
農曆新年快樂,餃子有元寶的寓意,一起迎向豐盛之路。 靜心深呼吸3次,選一份與你有連結的餃子,看看如何開啟今年的豐盛之路。 透過情感與情緒的流動帶領內在的能量流動,並附有相關精油療癒與正面語句的建議,一起開啟豐盛之路。
Thumbnail
熱血沸騰的BWF年終賽彷彿昨天才剛剛結束,新年度賽季緊接從1月9日起,由超級1000等級的馬來西亞公開賽揭開序幕。本賽事作為奧運積分週期下半場的第一項大賽,各路高手齊聚。籤表一公布,各分項首輪已出現許多堪稱決賽規格的對決。
Thumbnail
亞企味屋 AJIYA 西湖店,位在捷運西湖站步行約九分鐘的距離 餐廳位置在轉角內,有點隱密需張大眼睛仔細找一下~ 亞企味屋 AJIYA 西湖店,環境挑高擺放許多電視,一邊用餐一邊看電視不怕無聊~ 座位區下方有插座可以充電,不怕手機臨時滑到沒電! 裝潢走一個溫色調,隨著耶誕節即將來臨,店內精心
Thumbnail
按照慣例,回顧過去,才能迎接美好的未來✨ 本篇借花獻佛,引用吉卜力美術館(三鷹の森ジブリ美術館)昨天發布宮崎駿大師親自繪製的虎年賀圖,一起來看看2021年博物館吧的熱門貼文吧!
Thumbnail
​ 首先說明:這篇不是寫食記,而是一篇關於食品業一家股票上市公司。此家就是德麥食品公司(英文名稱:THEMAG       FOOD      CPMPANY),這是一家致力於人類民以食為天以食品為本業,身為台灣最大烘焙原物料供應商,十足之戰戰兢兢經營的企業。身為讀者的你,看完本文後一定會覺得;德麥