private FeeStrategy(FeeStrategyType type, int?confirmationTarget, FeeRate?feeRate) { Type = type; if (type == FeeStrategyType.Rate) { if (confirmationTarget is not null) { throw new ArgumentException($"{nameof(confirmationTarget)} must be null."); } feeRate = Guard.NotNull(nameof(feeRate), feeRate); if (feeRate < new FeeRate(1m)) { throw new ArgumentOutOfRangeException(nameof(feeRate), feeRate, "Cannot be less than 1 sat/vByte."); } _rate = feeRate; } else if (type == FeeStrategyType.Target) { if (feeRate is not null) { throw new ArgumentException($"{nameof(feeRate)} must be null."); } _target = Guard.InRangeAndNotNull(nameof(confirmationTarget), Guard.NotNull(nameof(confirmationTarget), confirmationTarget).Value, Constants.TwentyMinutesConfirmationTarget, Constants.SevenDaysConfirmationTarget); } else { throw new NotSupportedException(type.ToString()); } }
private FeeStrategy(FeeStrategyType type, int?confirmationTarget, FeeRate feeRate) { Type = type; if (type == FeeStrategyType.Rate) { if (confirmationTarget is { })