< Summary - Combined Code Coverage

Information
Class: NLightning.Infrastructure.Bitcoin.Transactions.ClosingTransaction
Assembly: NLightning.Infrastructure.Bitcoin
File(s): /home/runner/work/nlightning/nlightning/src/NLightning.Infrastructure.Bitcoin/Transactions/ClosingTransaction.cs
Tag: 30_15166811759
Line coverage
0%
Covered lines: 0
Uncovered lines: 22
Coverable lines: 22
Total lines: 46
Line coverage: 0%
Branch coverage
0%
Covered branches: 0
Total branches: 8
Branch coverage: 0%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
get_CloserOutputAmountSatoshis()100%210%
get_CloseeOutputAmountSatoshis()100%210%
.ctor(...)0%2040%
CalculateOutputAmount(...)0%2040%

File(s)

/home/runner/work/nlightning/nlightning/src/NLightning.Infrastructure.Bitcoin/Transactions/ClosingTransaction.cs

#LineLine coverage
 1using NBitcoin;
 2
 3namespace NLightning.Infrastructure.Bitcoin.Transactions;
 4
 5public class ClosingTransaction : Transaction
 6{
 07    public ulong CloserOutputAmountSatoshis { get; }
 08    public ulong CloseeOutputAmountSatoshis { get; }
 9
 010    public ClosingTransaction(OutPoint outPoint, ulong closerAmountSatoshis, ulong closeeAmountSatoshis, Script closerSc
 11    {
 012        Version = 2;
 013        LockTime = 0; // TODO: Find out correct lockTime
 14
 015        Inputs.Add(new TxIn
 016        {
 017            PrevOut = outPoint,
 018            Sequence = 0xFFFFFFFD
 019        });
 20
 021        CloserOutputAmountSatoshis = CalculateOutputAmount(closerAmountSatoshis, closerScriptPubKey, feeSatoshis);
 022        Outputs.Add(new TxOut((Money)CloserOutputAmountSatoshis, closerScriptPubKey));
 23
 024        if (closeeAmountSatoshis == 0)
 25        {
 026            return;
 27        }
 28
 029        CloseeOutputAmountSatoshis = CalculateOutputAmount(closeeAmountSatoshis, closeeScriptPubKey, 0);
 030        if (CloseeOutputAmountSatoshis > 0)
 31        {
 032            Outputs.Add(new TxOut((Money)CloseeOutputAmountSatoshis, closeeScriptPubKey));
 33        }
 034    }
 35
 36    private static ulong CalculateOutputAmount(ulong amountSatoshis, Script scriptPubKey, ulong feeSatoshis)
 37    {
 038        if (scriptPubKey.ToBytes()[0] == (byte)OpcodeType.OP_RETURN)
 39        {
 040            return 0;
 41        }
 42
 043        var finalAmount = amountSatoshis - feeSatoshis;
 044        return finalAmount > 0 ? finalAmount : 0;
 45    }
 46}