第一次寫智慧合約的部署小作業,交作業了。介面操作上沒想像中的複雜,是因為都還只是在 Remix IDE 內進行。都是練習而已,沒有任何需要花錢的交易發生。幾個關鍵步驟:撰寫 ERC20 合約程式碼、compile 編譯程式碼成 bytecode、deploy 部署合約。最後是測試合約的 functions,使用者互動測試。
這次先練習複製貼上程式碼。快速照抄別人寫好的簡易版 ERC20 合約程式碼 .sol 後,緊接著一個關鍵的步驟是,要進行程式碼編譯 compile,把程式碼變成 EVM,Ethereum Virtual Machine (EVM) 能夠看得懂的二進位 contract bytecode。
而在 Remix IDE 的環境,compile 完的 bytecode 會是給一個 Remix 自己開發的 Remix VM,可以想成是假的 EVM,一個模擬的 EVM。預設的這個 Remix VM,之前的名字是叫 JavaScript VM。
現在在 Remix 介面上看到的,是寫「Remix VM (Cancun)」。不知道為什麼外國人好像都喜歡用一些城市名字來命名。像是這裡寫 Cancun 坎昆,是墨西哥一個熱門觀光城市,很多歐美觀光客喜歡去那邊海邊度假。之前有一年的以太坊技術大會活動就在墨西哥坎昆舉行。除了 Remix VM 坎昆,還有上海、巴黎、倫敦、柏林這些城市。都是過去幾年曾經辦過以太坊技術研討會的城市。基本上是跟著 Ethereum Virtual Machine (EVM) 取名。
]
Compile ERC20.sol 程式碼編譯步驟完成,接著按古銅色的 Deploy 部署。Deploy 部署合約實際上是把合約二進位 bytecode 放到以太坊 world state 底下的一個合約帳戶 contract account。
沒有出現什麼錯誤訊息的話,那應該就是成功了。部署成功會顯示在畫面左下角,最下方的區域 Deployed/Unpinned Contracts。這塊區域有跑出東西的話,就表示有部署完成。
是不是看起來很小,很不起眼。展開它可看詳細的內容,比如說可以看餘額、做了幾筆交易,發送了多少錢等等。
成功部署智慧合約後,可以直接發送幾個交易看看。從一個地址,發一些代幣到另一個地址。大概就是如此。沒有花真的 testnet 測試幣來做合約部署,是否有一小點無趣嗎。