def get_offers(trading_pair) -> list: ''' Get List of Offers for trading pair :param trading_pair: scripthash of each contract trading pair :return: list of Offers() ''' storage = MCTManager() result_serialized = storage.get(trading_pair) if not result_serialized: print("result_serialized is null") return None result_info = storage.deserialize(result_serialized) offers = [] for result in result_info: offer = Offer() offer.MakerAddress = result.MakerAddress offer.OfferAssetID = result.OfferAssetID offer.OfferAssetCategory = result.OfferAssetCategory offer.OfferAmount = result.OfferAmount offer.WantAssetID = result.WantAssetID offer.WantAssetCategory = result.WantAssetCategory offer.WantAmount = result.WantAmount offer.AvailableAmount = result.AvailableAmount offer.TradingPair = result.OfferAssetCategory + result.WantAssetCategory offers.append(offer) return offers
def get_volume(bucket_number, asset_id): storage = MCTManager() volume_key = concat("tradeVolume", bucket_number) volume_key = concat(volume_key, asset_id) volume_data = storage.get(volume_key) if len(volume_data) == 0: return Volume() else: return storage.deserialize(volume_data)
def get_offer(trading_pair, hash) -> Offer: ''' Get Single Offer :param trading_pair: :param hash: :return: Offer Object ''' storage = MCTManager() offer_data = storage.get(trading_pair + hash) if len(offer_data) == 0: return Offer() else: return storage.deserialize(offer_data)
def add_volume(asset_id, native_amount, foreign_amount): time = GetTime() storage = MCTManager() bucket_number = time / bucket_duration volume_key = concat("tradeVolume", bucket_number) volume_key = concat(volume_key, asset_id) volume_data = storage.get(volume_key) if len(volume_data) == 0: volume = Volume() volume.Native = native_amount volume.Foreign = foreign_amount else: volume = storage.deserialize(volume_data) volume.Native = volume.Native + native_amount volume.Foreign = volume.Foreign + foreign_amount storage.put(volume_key, storage.serialize_array(volume))