/// <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); }
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); }