示例#1
0
        public void UpdateDelegateAccured(string addr, int cycle, long accured)
        {
            RunIsolatedDb(db =>
            {
                var d = db.Delegates.FirstOrDefault(o => o.Address == addr);
                if (d == null)
                {
                    d = new Delegate {
                        Address = addr
                    };
                    db.Delegates.Add(d);
                }

                var dr = db.DelegateRewards.FirstOrDefault(o => o.Cycle == cycle && o.DelegateId == d.Id);
                if (dr == null)
                {
                    dr = new DelegateRewards {
                        Cycle = cycle
                    };
                    dr.Delegate = d;
                    db.DelegateRewards.Add(dr);
                }

                dr.Accured = accured;
                db.SaveChanges();
            });
        }
        public List <DelegateRewards> GetDelegateRewards(string account)
        {
            var client = new HttpClient {
                BaseAddress = new Uri(Url)
            };
            var response = client.GetAsync($"delegator_rewards_with_details/{account}").Result;

            if (response.IsSuccessStatusCode)
            {
                var result       = response.Content.ReadAsStringAsync().Result;
                var bakerRewards = DelegateRewards.FromJson(result);
                return(bakerRewards);
            }
            Log.Info($"{(int)response.StatusCode} ({response.ReasonPhrase})");
            client.Dispose();
            return(null);
        }
示例#3
0
        private string GetText(DelegateRewards reward)
        {
            switch (reward.Status.Status)
            {
            case StatusEnum.RewardsPending:
                return("❄️ Rewards Pending");

            case StatusEnum.CycleInProgress:
                return($"🔄 In Progress ({_approxFinish.ToPrettyFormat()})");

            case StatusEnum.CyclePending:
                return("⏲️ Cycle Pending");

            default:
                return("");
            }
        }