public async Task <TokenInfoModel> GetTokenInfo(string userToken) { if (string.IsNullOrEmpty(userToken)) { throw new ArgumentNullException(nameof(userToken)); } var path = $"debug_token"; var queryParameters = new Dictionary <string, string> { ["input_token"] = userToken }; var data = await RequestService.GetAsync(path, queryParameters, appendToken : true); var jObject = JObject.Parse(data)["data"]; var issuedAt = (int?)jObject["issued_at"]; var tokenInfo = new TokenInfoModel { TokenPortion = $"{userToken.Substring(0, 10)}...", RequestedUtc = issuedAt.HasValue ? DotnetExtensions.FromEpochTime(issuedAt.Value) : default(DateTime?), ExpiresUtc = DotnetExtensions.FromEpochTime((int)jObject["expires_at"]), }; return(tokenInfo); }
public TokenListModel ListToken() { var result = new TokenListModel(); var list = GetAllTokenCodes(); if (!list.Any()) { return(result); } var codes = list.Select(m => m.Code).Distinct().ToList(); var accounts = DbContext.GetDbSet <Account>() .Where(m => codes.Contains(m.Name)) .ToList(); var abiSerializationProvider = new AbiSerializationProvider(); list.ForEach(item => { var account = accounts .Where(m => m.Name == item.Code && m.BlockNum <= item.BlockNum) .OrderByDescending(m => m.BlockNum) .First(); var abi = abiSerializationProvider.DeserializePackedAbi(account.Abi); var abiTable = abi.tables.First(t => t.name == item.Table); var data = abiSerializationProvider.DeserializeStructData(abiTable.type, item.Value, abi); var model = new TokenInfoModel { Contract = item.Code, Data = data }; if (!ConfigDataKey.FilterTokenSymbol.Contains(model.TokenName)) { result.Lists.Add(model); } }); result.TotalTokenCount = result.Lists.Count; return(result); }
public async Task <TokenInfoModel> GetLongToken(string appId, string appSecret, string userToken) { var path = $"/oauth/access_token"; var queryParameters = new Dictionary <string, string> { ["grant_type"] = "fb_exchange_token", ["client_id"] = appId, ["client_secret"] = appSecret, ["fb_exchange_token"] = userToken, }; var data = await RequestService.GetAsync(path, queryParameters, appendToken : false); var jObject = JObject.Parse(data); var utcNow = DateTime.UtcNow; var tokenInfo = new TokenInfoModel { Token = (string)jObject["access_token"], RequestedUtc = utcNow, ExpiresUtc = utcNow.AddSeconds((int)jObject["expires_in"]) }; return(tokenInfo); }