iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 27
0
Blockchain

區塊鏈應用開發實戰系列 第 27

27. 去中心化交易所用戶檢視賣單交易帳簿功能實作

小明今天繼續完成的是用戶檢視賣單交易帳簿的功能:

User 用戶功能

  • 檢視賣單交易帳簿
function getSellOrderBook(string symbolName) view public returns (uint[], uint[]) {
    uint8 tokenNameIndex = getSymbolIndexOrThrow(symbolName);
    uint[] memory arrPricesSell = new uint[](tokens[tokenNameIndex].amountSellPrices);
    uint[] memory arrVolumesSell = new uint[](tokens[tokenNameIndex].amountSellPrices);
    uint sellWhilePrice = tokens[tokenNameIndex].curSellPrice;
    uint sellCounter = 0;
    if (tokens[tokenNameIndex].curSellPrice > 0) {
        while (sellWhilePrice <= tokens[tokenNameIndex].highestSellPrice) {
            arrPricesSell[sellCounter] = sellWhilePrice;
            uint sellVolumeAtPrice = 0;
            uint sell_offers_key = 0;

            sell_offers_key = tokens[tokenNameIndex].sellBook[sellWhilePrice].offers_key;
            while (sell_offers_key <= tokens[tokenNameIndex].sellBook[sellWhilePrice].offers_length) {
                sellVolumeAtPrice += tokens[tokenNameIndex].sellBook[sellWhilePrice].offers[sell_offers_key].amount;
                sell_offers_key++;
            }

            arrVolumesSell[sellCounter] = sellVolumeAtPrice;

            if (tokens[tokenNameIndex].sellBook[sellWhilePrice].higherPrice == 0) {
                break;
            }
            else {
                sellWhilePrice = tokens[tokenNameIndex].sellBook[sellWhilePrice].higherPrice;
            }
            sellCounter++;

        }
    }

    return (arrPricesSell, arrVolumesSell);
}

本文同時發佈於作者部落格:https://www.bdetw.com/blog


/images/emoticon/emoticon34.gif想找區塊鏈人才或想學習區塊鏈知識的夥伴。歡迎參加社群小聚,一起來輕鬆交流、互相學習成長、認識新朋友、發現新機會!
 
台北區塊鏈社群
https://bitlly.co/Q4dIK
 
BDE 區塊鏈學院 - 提供專業的區塊鏈培訓與顧問服務。
https://bitlly.co/mbDwX


上一篇
26. 去中心化交易所用戶檢視買單交易帳簿功能實作
下一篇
28. 去中心化交易所用戶取消下單功能實作
系列文
區塊鏈應用開發實戰30

尚未有邦友留言

立即登入留言