< Summary - Combined Code Coverage

Information
Class: NLightning.Infrastructure.Protocol.Validators.TxAddOutputValidator
Assembly: NLightning.Infrastructure
File(s): /home/runner/work/nlightning/nlightning/src/NLightning.Infrastructure/Protocol/Validators/TxAddOutputValidator.cs
Tag: 30_15166811759
Line coverage
0%
Covered lines: 0
Uncovered lines: 13
Coverable lines: 13
Total lines: 43
Line coverage: 0%
Branch coverage
0%
Covered branches: 0
Total branches: 14
Branch coverage: 0%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
Validate(...)0%210140%

File(s)

/home/runner/work/nlightning/nlightning/src/NLightning.Infrastructure/Protocol/Validators/TxAddOutputValidator.cs

#LineLine coverage
 1namespace NLightning.Infrastructure.Protocol.Validators;
 2
 3using Domain.Money;
 4using Domain.Protocol.Constants;
 5using Domain.Protocol.Payloads;
 6
 7public static class TxAddOutputValidator
 8{
 9    public static void Validate(bool isInitiator, TxAddOutputPayload output, int currentOutputCount,
 10                                Func<ulong, bool> isSerialIdUnique, Func<byte[], bool> isStandardScript,
 11                                LightningMoney dustLimit)
 12    {
 013        if (isInitiator && (output.SerialId & 1) != 0) // Ensure even serial_id for initiator
 14        {
 015            throw new InvalidOperationException("SerialId has the wrong parity.");
 16        }
 17
 018        if (!isSerialIdUnique(output.SerialId))
 19        {
 020            throw new InvalidOperationException("SerialId is already included in the transaction.");
 21        }
 22
 023        if (currentOutputCount >= InteractiveTransactionConstants.MAX_OUTPUTS_ALLOWED)
 24        {
 025            throw new InvalidOperationException($"Cannot receive more than {InteractiveTransactionConstants.MAX_OUTPUTS_
 26        }
 27
 028        if (output.Amount < dustLimit)
 29        {
 030            throw new InvalidOperationException("The sats amount is less than the dust_limit.");
 31        }
 32
 033        if (output.Amount > InteractiveTransactionConstants.MAX_MONEY)
 34        {
 035            throw new InvalidOperationException("The sats amount is greater than the maximum allowed (MAX_MONEY).");
 36        }
 37
 038        if (!isStandardScript(output.Script.ToBytes()))
 39        {
 040            throw new InvalidOperationException("The script is non-standard.");
 41        }
 042    }
 43}