Exemplo n.º 1
0
        public static ArkClientIndexModel GetClientsToPay(string passPhrase, double percentToPay, long amountToPay)
        {
            var returnModel = new ArkClientIndexModel();

            var delegateAccount = GetAccount(passPhrase);

            if (delegateAccount.Address == StaticProperties.ARK_ACCOUNT_NOT_FOUND)
            {
                throw new Exception(StaticProperties.ARK_ACCOUNT_NOT_FOUND);
            }

            var delegateAccountTotalArk = Convert.ToInt64(delegateAccount.Balance);

            if (Convert.ToInt64(amountToPay) < delegateAccountTotalArk)
            {
                delegateAccountTotalArk = amountToPay;
            }
            var delegateAccountVoters        = DelegateService.GetVoters(delegateAccount.PublicKey);
            var feesToPay                    = ArkNetApi.Instance.NetworkSettings.Fee.Send * delegateAccountVoters.Count();
            var delegateAccountTotalArkToPay = (percentToPay / 100) * (delegateAccountTotalArk - feesToPay);
            var delegateAccountTotalArkVote  = delegateAccountVoters.Sum(x => Convert.ToInt64(x.Balance));

            var clientsToPay = new List <ArkClientModel>();

            foreach (var voter in delegateAccountVoters)
            {
                var voterAccount     = AccountService.GetByAddress(voter.Address);
                var amountToPayVoter = (Convert.ToInt64(voterAccount.Balance) / (double)delegateAccountTotalArkVote) * (delegateAccountTotalArkToPay);

                clientsToPay.Add(new ArkClientModel(voter.Address, amountToPayVoter, Convert.ToInt64(voterAccount.Balance)));
            }

            returnModel.ArkDelegateAccount = delegateAccount;
            returnModel.ArkClients         = clientsToPay;
            return(returnModel);
        }
        public void GetVotersErrorTest()
        {
            var dele = DelegateService.GetVoters("ErrorKey");

            GetVotersErrorResultTest(dele);
        }
        public void GetVotersTest()
        {
            var dele = DelegateService.GetVoters(_pubKey);

            GetVotersResultTest(dele);
        }
        public void GetVotersTest()
        {
            var dele = DelegateService.GetVoters("arkpool");

            Assert.IsNotNull(dele);
        }