在研究了交易所的功能需求後,小明今天便開始進行智能合約的設計。因為是以 POC (Proof Of Concept)為目的,故只要完成重要功能的 MVP(Minimum Viable Product)即可。
存入 ETH 以太幣
depositEther() payable {...}
將用戶錢包中的 ETH 以太幣存入交易所
存入 ERC20 代幣
depositToken(string symbolName, uint amount) {...}
將用戶錢包中的 ERC20 代幣存入交易所
提領 ETH 以太幣
withdrawEther(uint amount_in_wei) {...}
將用戶在交易所的 ETH 以太幣領出到用戶錢包
提領 ERC20 代幣
withdrawToken(string symbolName, uint amount) {...}
將用戶在交易所的 ERC20 代幣領出到用戶錢包
檢視 ETH 以太幣餘額
getEthBalanceInWei() constant returns (uint) {...}
取得用戶 ETH 以太幣的餘額
檢視 ERC20 代幣餘額
getBalance(string symbolName) constant returns (uint) {...}
取得用戶 ERC20 代幣的餘額
下單買入 ERC20 代幣
buyToken(string token, uint priceInWei, uint amount) {...}
下單售出 ERC20 代幣
sellToken(string token, uint priceInWei, uint amount) {...}
取消下單
cancelOrder(string symbolName, bool isSellOrder, uint priceInWei, uint offerKey) {...}
檢視買單交易帳簿
getBuyOrderBook(string token) constant returns (uint[], uint[]) {...}
檢視賣單交易帳簿
getSellOrderBook(string token) constant returns (uint[], uint[]) {...}
新增代幣
addToken(string symbol_name, address erc20TokenAddress) onlyowner {...}
新增 ERC20 代幣至交易所智能合約中
檢查代幣
hasToken(string symbol_name) constant returns (bool) {...}
檢查某代幣是否已新增至交易所
又到了週末,好好休息吧!
本文同時發佈於作者部落格:https://www.bdetw.com/blog
想找區塊鏈人才或想學習區塊鏈知識的夥伴。歡迎參加社群小聚,一起來輕鬆交流、互相學習成長、認識新朋友、發現新機會!
台北區塊鏈社群
https://bitlly.co/Q4dIK
BDE 區塊鏈學院 - 提供專業的區塊鏈培訓與顧問服務。
https://bitlly.co/mbDwX