Exemple #1
0
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public async Task <object> GetAllAssets()
        {
            using var db = new TrackDB();
            var result = db.GetAllContracts()?.Where(a => a.Symbol.NotNull() && a.DeleteOrMigrateTxId == null).Select(a =>
                                                                                                                      new AssetInfoModel()
            {
                Asset      = a.Hash,
                Decimals   = a.Decimals,
                Name       = a.Name,
                Symbol     = a.Symbol,
                CreateTime = a.CreateTime,
            }).ToList();


            var totalSupplies = AssetCache.GetTotalSupply(result.Select(r => r.Asset));

            for (var i = 0; i < result.Count; i++)
            {
                result[i].TotalSupply = totalSupplies[i];
            }
            return(result);
        }
Exemple #2
0
        public async Task <object> GetAllContracts()
        {
            var list = new List <ContractInfoModel>();

            list.AddRange(NativeContract.Contracts.Select(c => new ContractInfoModel()
            {
                Hash = c.Hash,
                Name = c.Name,
            }));
            var nativeHashes = new HashSet <UInt160>(list.Select(x => x.Hash));

            using var db = new TrackDB();
            var assets = db.GetAllContracts()?.Where(a => !nativeHashes.Contains(a.Hash)).Select(a =>
                                                                                                 new ContractInfoModel()
            {
                Hash = a.Hash,
                Name = a.Name,
            }).ToList();

            list.AddRange(assets);
            return(list);
        }