使用remix的solidity在線編譯環境部署一個faucet合約

1、瀏覽器打開https://remix.ethereum.org 地址web

 

 點擊"+"新建一個sol文件,命名爲faucet.sol瀏覽器

 

 

 

 

 

 而後在代碼區輸入solidity代碼網絡

 

 

 選擇相關插件ide

 

 

 

 將Solidity compiler、Deploy & run transactions插件激活,選擇編譯函數

 

 編譯成功後,會顯示一個綠色的勾測試

 

 再點擊「Deploy & Run Transaction」spa

部署環境選擇"Injected web3",這樣把經過metamask客戶端將咱們的合約部署到測試環境上插件

接下來會提示咱們remix須要將metamask裏的帳戶關聯上,選擇「肯定」,這樣在Environment:顯示連接的網絡信息,這裏爲Ropsten測試網絡,account裏會顯示咱們metamask帳戶的地址和餘額3d

 

 再點擊「Deploy」開始部署合約,彈出提示確認框,裏面顯示由metamask帳戶發起一筆0金額的交易來進行合約部署,並顯示收取的GAS費blog

 

 ,點擊確認,部署成功後,頁面下方會顯示部署的合約地址

一樣,咱們點開metamask錢包,也會顯示一筆合約部署的交易記錄

 

 

回到remix編譯環境頁面,點擊「Deployed Contracts」的下拉箭頭,能夠顯示本合約的合一調用的方法列表

 

 一個fallback,一個winthdraw函數

咱們在withdraw函數後面輸入一個參數,咱們輸入1後面18個0,表示1個ETH,再點擊「withdraw」調用函數

  這是會彈出一個Gas費用估計不足的提示,咱們忽略繼續發送交易

 

 接下來自動打開metamask客戶端,顯示以下

 

 從錢包帳戶到合約地址的一筆交易,金額是0,由於是調用合約提幣函數,因此金額爲0,點擊「確認」

咱們看到remix的控制檯已經顯示出本次交易的HASH

 

 可是尚未出結果,等待一會,下面出現

 

 顯示交易失敗了,點擊Debug後面的箭頭,顯示詳情

 

 這筆交易執行失敗,因爲咱們新部署的合約裏尚未ETH,因此調用withdraw函數,是沒法提幣的,那麼首先咱們向這個合約發送一些ETH

首先複製合約地址,而後打開metamask錢包,發送2個ETH到這個合約地址

 

 下一步

 

  確認

顯示合約交互,狀態爲待處理

 

   等到確認狀態後,這時咱們的合約地址裏就有2ETH了,咱們從ropsten.etherscan.io上查看交易詳情

 

 咱們回到remix ide ,再次執行withdraw函數進行提幣

 

  咱們輸入1ETH,點擊withdraw,後,彈出metamask界面,點擊確認,金額爲0,表示調用合約函數,發送本筆交易

 

 控制檯很快顯示本次交易的HASH

再等待一下子,交易確認

 

  點擊箭頭,顯示詳情

 打開etherscan.io查看詳情

 

 能夠看到To 字段值,爲合約地址,而且下面顯示了調用的合約函數和輸入參數,並顯示從合約地址向外部帳戶地址轉帳的信息。可是這筆調用合約的交易金額爲0,那麼咱們怎麼查看函數裏面轉帳的交易呢,咱們知道合約帳戶是內部帳戶,是由外部用戶帳戶建立的,因此咱們在etherscan.io裏點擊"Internal Tansaction"便可顯示合約內部交易記錄

 

咱們能夠看到剛纔調用合約函數成功提幣的交易記錄,從合約帳戶地址到外部帳戶地址,金額爲1ETH

 咱們點擊From 下面的地址,即合約地址,就會顯示當前合約的詳情,包括帳戶餘額,外部交易記錄

 

 

點擊「Internal Txns」,顯示合約內部交易記錄,既外部帳戶調用合約函數所執行的轉帳交易

 

 

  咱們打開metamask錢包,看看帳戶地址是否多了這筆交易

 

 有一筆withdraw交易,咱們當時輸入的金額爲1ETH,帳戶餘額顯示爲3.4987ETH,而以前帳戶餘額爲2.4989,減去本次交易的gas費用0.000174,再加上獲得的1ETH,餘額正好爲3.4987ETH,至此函數執行成功。

相關文章
相關標籤/搜索