diff --git a/NostrStreamer/Controllers/LnurlController.cs b/NostrStreamer/Controllers/LnurlController.cs index 9449f9d..1a4cbfc 100644 --- a/NostrStreamer/Controllers/LnurlController.cs +++ b/NostrStreamer/Controllers/LnurlController.cs @@ -47,7 +47,8 @@ public class LnurlController : Controller } [HttpGet("{key}")] - public async Task PayUserBalance([FromRoute] string key, [FromQuery] ulong amount, [FromQuery] string? nostr) + public async Task PayUserBalance([FromRoute] string key, [FromQuery] ulong amount, + [FromQuery] string? nostr) { try { @@ -58,7 +59,9 @@ public class LnurlController : Controller if (!string.IsNullOrEmpty(nostr)) { var ev = JsonConvert.DeserializeObject(nostr, NostrSerializer.Settings); - if (ev?.Kind != NostrKind.ZapRequest || ev.Tags?.FindFirstTagValue("amount") != amount.ToString() || + var amountTag = ev?.Tags?.FindFirstTagValue("amount"); + if (ev?.Kind != NostrKind.ZapRequest || + (amountTag != default && amountTag != amount.ToString()) || !ev.IsSignatureValid()) { throw new Exception("Invalid nostr event"); @@ -100,4 +103,4 @@ public class LnurlController : Controller Status = "ERROR" }); } -} +} \ No newline at end of file