changed a year ago
Published Linked with GitHub

eth智能合約 前置作業

本文章不定期更新, 如果有錯誤請跟我說,謝謝

編譯器版本 0.4.25+

Image Not Showing Possible Reasons
  • The image was uploaded to a note which you don't have access to
  • The note which the image was originally uploaded to has been deleted
Learn More →

已發佈的合約1

eth 智能合約

一個標準的 ERC20 智能合約需具備的函式有

  • 代幣的全名
  • 代幣的縮寫
  • 代幣的最小單位數值
  • 代幣的總量
  • 查詢帳戶代幣餘額
  • 轉移代幣
  • 轉移代幣事件
  • 從 A 地址轉移代幣給 B 地址
  • 批准代幣轉移
  • A 地址批准給 B 地址的代幣數量
  • 代幣批准觸發事件

關鍵字

emit 事件使用
revert 該次交易會失敗

建立第一個智能合約專案

  • 合約佈署後,就不能夠修改 ( 聽勇者說有熱更新 )

  • 所有的節點都會執行一次 合約內容, 且執行內容都會一致

  • 上傳修改 都要花手續費

  • 萬一某次執行合約有錯誤,整批更新都不算,會回滾

  • 資料儲存在區塊鍊上(因永久有效手續費比較貴),資料儲存在此次交易的暫存記憶體上, 手續費就比較便宜

  • 沒有float資料型態

  • 宣告變數時, 就要預先知道數值的範圍, 然後給予可以容納的範圍 ( uint16 = 2^16 )

  • bytes = 8bit * 1 = 8bit => 可以儲存 0xab

  • bytes2 = 8bit * 2 = 16bit => 可以儲存 0xabcd

  • bytes32 = 8bit * 4 = 256bit => 拿來存放 block.blackhash(4);

1個byte = 8 bit ( 可以儲存2個16進制) 1個16進位是 4bit 0xF = 16(10進制), 要 4bit 來處存 (1111) sha256 回傳的 0xaaaaaa 是256bit

建構子
佈署合約時會執行一次
可以有船入參數, 但不能有回傳值

函式保留字

事件

純粹用來記錄, etherscan拿來記錄轉幣紀錄(token)
記錄購買者是誰? 買多少?
紀錄轉帳給誰? 轉多少?

ERC20的規範

智能合約實做下列函式

approve 來同意 誰 可以使用我的代幣
之後用 transferFrom 來 轉代幣

交易原理

轉幣是透過智能合約來轉換
來源 自己的小狐狸錢包地址
目的 合約地址

圖解

疑惑

我佈署好的合約
我用新版的 remax IDE 之後
我點下方的 url 沒辦法直接連到 合約?
正常點下方url, 轉到該筆交易去, 再點 contract合約, 即可跳到智能合約部分

程式碼要開源( Verify and Publish ),才看得懂記錄在紀錄啥

參考文章

鐵人賽-開發智能合約 - 序 (Day01)

Select a repo