< Summary - Combined Code Coverage

Information
Class: NLightning.Infrastructure.Bitcoin.Factories.FundingTransactionFactory
Assembly: NLightning.Infrastructure.Bitcoin
File(s): /home/runner/work/nlightning/nlightning/src/NLightning.Infrastructure.Bitcoin/Factories/FundingTransactionFactory.cs
Tag: 30_15166811759
Line coverage
64%
Covered lines: 11
Uncovered lines: 6
Coverable lines: 17
Total lines: 56
Line coverage: 64.7%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.ctor(...)100%11100%
CreateFundingTransaction(...)100%210%
CreateFundingTransaction(...)100%11100%

File(s)

/home/runner/work/nlightning/nlightning/src/NLightning.Infrastructure.Bitcoin/Factories/FundingTransactionFactory.cs

#LineLine coverage
 1using Microsoft.Extensions.Options;
 2using NBitcoin;
 3
 4namespace NLightning.Infrastructure.Bitcoin.Factories;
 5
 6using Domain.Bitcoin.Services;
 7using Domain.Money;
 8using Domain.Node.Options;
 9using Domain.Protocol.Factories;
 10using Transactions;
 11using Network = Domain.ValueObjects.Network;
 12
 13public class FundingTransactionFactory : IFundingTransactionFactory
 14{
 15    private readonly IFeeService _feeService;
 16    private readonly NodeOptions _nodeOptions;
 17    private readonly Network _network;
 18
 419    public FundingTransactionFactory(IFeeService feeService, IOptions<NodeOptions> nodeOptions)
 20    {
 421        _feeService = feeService;
 422        _nodeOptions = nodeOptions.Value;
 423        _network = _nodeOptions.Network;
 424    }
 25
 26    public FundingTransaction CreateFundingTransaction(PubKey localFundingPubKey, PubKey remoteFundingPubKey,
 27                                                       LightningMoney fundingSatoshis, Script changeScript,
 28                                                       Coin[] coins, params BitcoinSecret[] secrets)
 29    {
 030        var fundingTx = new FundingTransaction(_nodeOptions.DustLimitAmount, _nodeOptions.HasAnchorOutputs,
 031                                               _network, localFundingPubKey, remoteFundingPubKey,
 032                                               fundingSatoshis, changeScript, coins);
 33
 034        fundingTx.ConstructTransaction(_feeService.GetCachedFeeRatePerKw());
 35
 036        fundingTx.SignTransaction(secrets);
 37
 038        return fundingTx;
 39    }
 40
 41    public FundingTransaction CreateFundingTransaction(PubKey localFundingPubKey, PubKey remoteFundingPubKey,
 42                                                       LightningMoney fundingSatoshis, Script redeemScript,
 43                                                       Script changeScript, Coin[] coins,
 44                                                       params BitcoinSecret[] secrets)
 45    {
 446        var fundingTx = new FundingTransaction(_nodeOptions.DustLimitAmount, _nodeOptions.HasAnchorOutputs,
 447                                               _network, localFundingPubKey, remoteFundingPubKey,
 448                                               fundingSatoshis, redeemScript, changeScript, coins);
 49
 450        fundingTx.ConstructTransaction(_feeService.GetCachedFeeRatePerKw());
 51
 452        fundingTx.SignTransaction(secrets);
 53
 454        return fundingTx;
 55    }
 56}