Ejemplo n.º 1
0
        /// <summary>
        ///     Gets the mosaic list.
        /// </summary>
        /// <param name="mosaicIDs">The mosaicId</param>
        /// <returns>IObservable&lt;List&lt;MosaicInfo&gt;&gt;</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()));
        }
Ejemplo n.º 2
0
        /// <summary>
        ///     Gets the mosaic names.
        /// </summary>
        /// <returns>IObservable&lt;List&lt;MosaicNames&gt;&gt;</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()));
        }