コード例 #1
0
        private string GenerateStringFromCache()
        {
            var cacheStringBuilder = new StringBuilder();

            _eventCache.ToList().ForEach(
                ideEvent =>
                cacheStringBuilder.Append(
                    EventMappingUtils.GetAbstractStringOf(ideEvent) + StatisticStringSeparator));

            return(cacheStringBuilder.ToString().TrimEnd(StatisticStringSeparator));
        }
コード例 #2
0
        public async Task <Transaction> GetSendingTxAsync(BitcoinAddress destination, Money amount, NRustLightningNetwork network, CancellationToken cancellationToken = default)
        {
            var deriv = await GetOurDerivationStrategyAsync(network, cancellationToken).ConfigureAwait(false);

            var nbXplorerClient = _nbXplorerClientProvider.GetClient(network);
            await _outpointAssumedAsSpentLock.WaitAsync(cancellationToken);

            try
            {
                var req = new CreatePSBTRequest()
                {
                    Destinations =
                        new[]
                    {
                        amount == Money.Zero ?
                        new CreatePSBTDestination
                        {
                            SweepAll    = true,
                            Destination = destination
                        } :
                        new CreatePSBTDestination
                        {
                            Amount      = amount,
                            Destination = destination
                        }
                        ,
                    }.ToList(),
                    ExcludeOutpoints = _outpointAssumedAsSpent.ToList()
                };
                var psbtResponse = await nbXplorerClient.CreatePSBTAsync(deriv, req, cancellationToken)
                                   .ConfigureAwait(false);

                var psbt = await SignPSBT(psbtResponse.PSBT, network);

                if (!psbt.IsAllFinalized())
                {
                    psbt.Finalize();
                }

                var tx = psbt.ExtractTransaction();
                foreach (var prevOut in tx.Inputs.Select(txIn => txIn.PrevOut))
                {
                    _outpointAssumedAsSpent.Enqueue(prevOut);
                }
                return(tx);
            }
            finally
            {
                _outpointAssumedAsSpentLock.Release();
            }
        }
コード例 #3
0
ファイル: QueuesTests.cs プロジェクト: kuiaski/utilities
        public void FixedSizeQueueWillDequeuesOldValuesWhenFull()
        {
            int queueSize = 5;

            List<int> dataSet = new List<int> { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
            List<int> expected = new List<int> { 5, 6, 7, 8, 9 };

            FixedSizeQueue<int> queue = new FixedSizeQueue<int>(queueSize);

            foreach (int data in dataSet)
            {
                queue.Enqueue(data);
            }

            List<int> actual = queue.ToList<int>();

            Assert.Equal(queueSize, queue.Size);
            Assert.Equal<int>(expected, actual);
        }