Пример #1
0
        private List <MyTrans> GetTransactions(RewardSplit rewardSplitByCycle, long cycleZero, long cycle)
        {
            var myContext    = new MyContext();
            var transactions = new List <MyTrans>();

            foreach (var delegatorsBalance in rewardSplitByCycle.GetDelegatorsBalance())
            {
                var delegateConfig = myContext.DelegateConfig.Find(_baker.Account, delegatorsBalance.Account.Tz);
                if (cycleZero + delegateConfig.RewardOffset < cycle)
                {
                    continue;
                }
                var delegatePercentage = rewardSplitByCycle.GetDelegatePercentage(delegatorsBalance);
                var totalReward        = rewardSplitByCycle.GetTotalReward();
                var delegateReward     = totalReward * delegatePercentage * delegatorsBalance.GetFee();
                var myTrans            = new MyTrans
                {
                    Name   = delegateConfig.Name, Account = delegatorsBalance.Account.Tz, Cycle = cycle,
                    Reward = delegateReward.ToTez(), Percentage = delegatePercentage
                };
                transactions.Add(myTrans);
                Log.Info($"{myTrans}");
            }
            return(transactions);
        }
        public RewardSplit GetRewardSplitByCycle(long cycle)
        {
            var client = new HttpClient {
                BaseAddress = new Uri(Url)
            };
            var response = client.GetAsync($"rewards_split/{_baker.Account}?cycle={cycle}").Result;

            if (response.IsSuccessStatusCode)
            {
                var result      = response.Content.ReadAsStringAsync().Result;
                var rewardSplit = RewardSplit.FromJson(result);
                return(rewardSplit);
            }
            Log.Info($"{(int)response.StatusCode} ({response.ReasonPhrase})");
            client.Dispose();
            return(null);
        }