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


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

 

 點擊"+"新建一個sol文件,命名為faucet.sol

 

 

 

 

 

 然后在代碼區輸入solidity代碼

 

 

 選擇相關插件

 

 

 

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

 

 編譯成功后,會顯示一個綠色的勾

 

 再點擊“Deploy & Run Transaction”

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

接下來會提示我們remix需要將metamask里的賬戶關聯上,選擇“確定”,這樣在Environment:顯示鏈接的網絡信息,這里為Ropsten測試網絡,account里會顯示我們metamask賬戶的地址和余額

 

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

 

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

同樣,我們點開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,至此函數執行成功。

 

 

 

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM