/// <summary> /// Gets the mosaic list. /// </summary> /// <param name="mosaicIDs">The mosaicId</param> /// <returns>IObservable<List<MosaicInfo>></returns> /// <exception cref="ArgumentNullException">mosaicId</exception> public IObservable <List <MosaicInfo> > GetMosaicListAsync(List <string> mosaicIDs) { if (mosaicIDs.Count < 0) { throw new ArgumentNullException(nameof(mosaicIDs)); } var route = $"{BasePath}/mosaic"; var mosaicList = new MosaicIds { _MosaicIds = mosaicIDs }; var networkType = GetNetworkTypeObservable().Take(1); return(Observable.FromAsync(async ar => await route.PostJsonAsync(mosaicList).ReceiveJson <List <MosaicInfoDTO> >()) .Select(l => l.Select(info => new MosaicInfo( info.Meta.Id, new MosaicId(info.Mosaic.MosaicId.ToUInt64()), info.Mosaic.Supply.ToUInt64(), info.Mosaic.Height.ToUInt64(), PublicAccount.CreateFromPublicKey(info.Mosaic.Owner, networkType.Wait()), info.Mosaic.Revision, ExtractMosaicProperties(info.Mosaic.Properties), null )).ToList())); }
/// <summary> /// Gets the mosaic names. /// </summary> /// <returns>IObservable<List<MosaicNames>></returns> /// <exception cref="ArgumentNullException">mosaicId</exception> public IObservable <List <MosaicNames> > GetMosaicNames(List <string> mosaicIDs) { var route = $"{BasePath}/mosaic/names"; var mosaicList = new MosaicIds { _MosaicIds = mosaicIDs }; var networkType = GetNetworkTypeObservable().Take(1); return(Observable.FromAsync(async ar => await route.PostJsonAsync(mosaicList).ReceiveJson <List <MosaicNamesDTO> >()) .Select(l => l.Select(m => new MosaicNames(new MosaicId(m.MosaicId.FromUInt8Array()), m.Names)).ToList())); }