Example #1
0
        public async Task <Tuple <List <UnspentOutput>, Amount> > FundTransactionAsync(
            Account account, Amount targetAmount, int requiredConfirmations)
        {
            var client  = new WalletService.WalletServiceClient(_channel);
            var request = new FundTransactionRequest
            {
                Account                  = account.AccountNumber,
                TargetAmount             = targetAmount,
                RequiredConfirmations    = requiredConfirmations,
                IncludeImmatureCoinbases = false,
                IncludeChangeScript      = false,
            };
            var response = await client.FundTransactionAsync(request, cancellationToken : _tokenSource.Token);

            var outputs = response.SelectedOutputs.Select(MarshalUnspentOutput).ToList();
            var total   = (Amount)response.TotalAmount;

            return(Tuple.Create(outputs, total));
        }