Files
market.src
- import_code("/home/me/market/listLib.src")
- blockchain = include_lib("/lib/blockchain.so")
- if not blockchain then exit("Error: Missing blockchain.so library in the /lib")
- wallet = login_wallet("deadlock", "kek")
- all_coins = wallet.list_global_coins
- Offers = {}
- Offers.init = function(raw_offers)
- self.raw_offers = raw_offers
- end function
- Offers.list = function()
- list = []
- for offer in to_list(self.raw_offers)
- wallet_id = offer[0]
- order = offer[1]
-
- type = order[0]
- amount = order[1]
- price = order[2]
-
- new_offer = {}
- new_offer["wallet_id"] = wallet_id
- new_offer["type"] = type
- new_offer["amount"] = amount
- new_offer["price"] = price
-
- list.push(new_offer)
- end for
- return list
- end function
- Offers.wallets = function()
- f = function(offer)
- return offer["wallet_id"]
- end function
- return map(self.list, @f)
- end function
- Offers.buys = function()
- f = function(offer)
- return offer["type"] == "Buy"
- end function
- return select(self.list, @f)
- end function
- Offers.buys_min = function()
- if self.buys.len == 0 then return null
- return self.buys.sort("price")[0]
- end function
- Offers.buys_max = function()
- if self.buys.len == 0 then return null
- return self.buys.sort("price")[-1]
- end function
- Offers.buys_list = function()
- f = function(offer)
- return [offer["price"], offer["amount"]]
- end function
- return map(self.buys, @f)
- end function
- Offers.sells = function()
- f = function(offer)
- return offer["type"] == "Sell"
- end function
- return select(self.list, @f)
- end function
- Offers.sells_list = function()
- f = function(offer)
- return [offer["price"], offer["amount"]]
- end function
- return map(self.sells, @f)
- end function
- Offers.sells_min = function()
- if self.sells.len == 0 then return null
- return self.sells.sort("price")[0]
- end function
- Offers.sells_max = function()
- if self.sells.len == 0 then return null
- return self.sells.sort("price")[-1]
- end function
- Offers.len = function()
- return self.list.len
- end function
- Coin = {}
- Coin.blockchain = blockchain
- Coin.wallet = wallet
- Coin.init = function(name, wallet)
- self.name = name
- end function
- Coin.mined = function()
- return self.blockchain.amount_mined(self.name)
- end function
- Coin.price = function()
- return self.blockchain.coin_price(self.name)
- end function
- Coin.history = function()
- return self.blockchain.show_history(self.name)
- end function
- Coin.offers = function()
- offers = new Offers
- offers.init(self.wallet.get_global_offers(self.name))
- return offers
- end function
- f = function(coin_name)
- coin = new Coin
- coin.init(coin_name)
- return coin
- end function
- all_coins = map(all_coins, @f)
- for coin in all_coins
- print(coin.name)
- print("last sold price: " + coin.price)
- print("total coins mined: " + coin.mined)
- //print(coin.history)
- print("sell offers: " + coin.offers.sells.len)
- print("buy offers: " + coin.offers.buys.len)
- if coin.offers.sells.len > 0 then
print(coin.offers.sells.len + " for sale starting at $" + coin.offers.sells_min["price"])
- f = function(offer)
- return offer["amount"]
- end function
- total_coins = map(coin.offers.sells, @f).sum
- print(total_coins + " for sale starting at $" + coin.offers.sells_min["price"])
- out = ["price quantity"]
- for i in coin.offers.sells.sort("price")
- out.push(i["price"] + " " + i["amount"])
- end for
- print(format_columns(out.join(char(10))))
- end if
- if coin.offers.buys.len > 0 then
print(coin.offers.buys.len + " requests to buy at $" + coin.offers.buys_max["price"] + " or lower")
- f = function(offer)
- return offer["amount"]
- end function
- total_coins = map(coin.offers.buys, @f).sum
- print(total_coins + " requests to buy at $" + coin.offers.buys_max["price"] + " or lower")
- out = ["price quantity"]
- buys = coin.offers.buys.sort("price")
- buys.reverse
- for i in buys
- out.push(i["price"] + " " + i["amount"])
- end for
- print(format_columns(out.join(char(10))))
- end if
- print(" ")
- end for