Example #1
0
        public async Task <List <Blake256Hash> > PurchaseTicketsAsync(Account account, Amount spendLimit,
                                                                      int reqConfs, Address votingAddress, uint ticketCount, Address poolAddress, decimal poolFees,
                                                                      uint expiry, Amount txFee, Amount ticketFee, string passphrase)
        {
            var votingAddressStr = "";

            if (votingAddress != null)
            {
                votingAddressStr = votingAddress.ToString();
            }
            var poolAddressStr = "";

            if (poolAddress != null)
            {
                poolAddressStr = poolAddress.ToString();
            }
            if (poolAddressStr == "")
            {
                poolFees = 0m;
            }

            var client  = new WalletService.WalletServiceClient(_channel);
            var request = new PurchaseTicketsRequest
            {
                Passphrase            = ByteString.CopyFromUtf8(passphrase),
                Account               = account.AccountNumber,
                SpendLimit            = spendLimit,
                RequiredConfirmations = (uint)reqConfs,
                TicketAddress         = votingAddressStr,
                NumTickets            = ticketCount,
                PoolAddress           = poolAddressStr,
                PoolFees              = (double)(poolFees * 100),
                Expiry    = expiry,
                TxFee     = txFee,
                TicketFee = ticketFee,
            };
            var response = await client.PurchaseTicketsAsync(request, cancellationToken : _tokenSource.Token);

            return(response.TicketHashes.Select(h => new Blake256Hash(h.ToByteArray())).ToList());
        }