Blockchain - 建立智能合約(二)

Remix 建立智能合約 - 資料存取

Posted by BY HzYu on October 4, 2018

利用 Remix 來建立智能合約(二)

Remix 是以太坊提供開發 Solidity 智能合約線上開發環境

開發環境 Remix

使用語言 Solidity

錢包 MetaMask

如果還沒有建立MetaMask錢包,可以參考這篇 Blockchain - 建立智能合約(一)

Remix 開啟後介面會如下圖

  • 左邊為檔案目錄
  • 中間為程式編輯區
  • 右邊為部署 測試 調試區

剛進去Remix裡, 會有預設的 browser.sol

我們把它關閉,自行創建一個新的檔案

最左上角有一個 的符號

建立一個名為 Storage

智能合約 - 資料存取

我們要來做一個有關資料(數據)存取的智能合約

ex : 在店家消費 100元 的時候,我們要如何紀錄這筆消費,來做驗證 説有來過這家店家消費 100元

以下為資料存取的智能合約

pragma solidity ^0.4.21;   //  宣告 solidity 版本為 0.4.21   ^只要是0.4.21以後的版本都相容  

contract Storage  //宣告主體 Storage
{  
    uint data; // uninteger 非負整數(正整數)
    
    function set(uint x) public  //公開存一個正整數為data
    {
        data = x;
    }
    
    function get() public constant returns (uint)  //取 data 值 公開並回傳非負整數(constant不用付費用
    {
        return data;   
    }
}

完成後按下右邊 Start to compile

如果語法沒有錯會顯示綠色

語法有錯會顯示紅色,代表沒有 compile 成功

compile 成功後,切換到 Run

  • Envroment 是合约的運行環境,預設是Injected web3
  • Account 是當前錢包的地址
  • Gas limit 合約所準備的 Gas
  • value 合約帳戶的轉帳金額

設定好之後,按下 Deploy

會跳出是否要提交合約,從中會收取一些手續費

接者按下 Confirm

在下面訊息區域會跳出一個連結,點進去

會進到 Etherscan 交易所

TimeStamp 等待合約交易時間

交易成功之後,Block Height是這份合約交易成功區塊的識別碼

以後不論多久想要在查看這份合約交易,進 TESTNET Ropsten

在搜尋地方打上 Block Height 合約區塊的識別碼

會進入到當時交易的相關合約

完成合約交易後,在 Remix 右下角會出現 getset是這份合約程式裡取的函數

我們就完成第一份智能合約了