mirror of
https://github.com/btcpayserver/btcpayserver.git
synced 2025-02-22 06:21:44 +01:00
Lightning Address: Use lowercased username when resolving (#5579)
* Lightning Address: Use lowercased username when resolving * Use static NormalizeUsername
This commit is contained in:
parent
c94dc87cb8
commit
8ae9e59d9d
4 changed files with 16 additions and 22 deletions
|
@ -48,16 +48,11 @@ public class LightningAddressService
|
||||||
{
|
{
|
||||||
return await _memoryCache.GetOrCreateAsync(GetKey(username), async entry =>
|
return await _memoryCache.GetOrCreateAsync(GetKey(username), async entry =>
|
||||||
{
|
{
|
||||||
var result = await Get(new LightningAddressQuery { Usernames = new[] { username } });
|
var result = await Get(new LightningAddressQuery { Usernames = new[] { NormalizeUsername(username) } });
|
||||||
return result.FirstOrDefault();
|
return result.FirstOrDefault();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private string NormalizeUsername(string username)
|
|
||||||
{
|
|
||||||
return username.ToLowerInvariant();
|
|
||||||
}
|
|
||||||
|
|
||||||
public async Task<bool> Set(LightningAddressData data)
|
public async Task<bool> Set(LightningAddressData data)
|
||||||
{
|
{
|
||||||
data.Username = NormalizeUsername(data.Username);
|
data.Username = NormalizeUsername(data.Username);
|
||||||
|
@ -115,8 +110,12 @@ public class LightningAddressService
|
||||||
await context.AddAsync(data);
|
await context.AddAsync(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static string NormalizeUsername(string username)
|
||||||
|
{
|
||||||
|
return username.ToLowerInvariant();
|
||||||
|
}
|
||||||
|
|
||||||
private string GetKey(string username)
|
private static string GetKey(string username)
|
||||||
{
|
{
|
||||||
username = NormalizeUsername(username);
|
username = NormalizeUsername(username);
|
||||||
return $"{nameof(LightningAddressService)}_{username}";
|
return $"{nameof(LightningAddressService)}_{username}";
|
||||||
|
|
|
@ -373,7 +373,7 @@ namespace BTCPayServer
|
||||||
if (string.IsNullOrEmpty(username))
|
if (string.IsNullOrEmpty(username))
|
||||||
return NotFound("Unknown username");
|
return NotFound("Unknown username");
|
||||||
|
|
||||||
LNURLPayRequest lnurlRequest = null;
|
LNURLPayRequest lnurlRequest;
|
||||||
|
|
||||||
// Check core and fall back to lookup Lightning Address via plugins
|
// Check core and fall back to lookup Lightning Address via plugins
|
||||||
var lightningAddressSettings = await _lightningAddressService.ResolveByAddress(username);
|
var lightningAddressSettings = await _lightningAddressService.ResolveByAddress(username);
|
||||||
|
|
9
BTCPayServer/Plugins/LightningAddressResolver.cs
Normal file
9
BTCPayServer/Plugins/LightningAddressResolver.cs
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
using LNURL;
|
||||||
|
|
||||||
|
namespace BTCPayServer.Plugins;
|
||||||
|
|
||||||
|
public class LightningAddressResolver(string username)
|
||||||
|
{
|
||||||
|
public string Username { get; set; } = LightningAddressService.NormalizeUsername(username);
|
||||||
|
public LNURLPayRequest LNURLPayRequest { get; set; }
|
||||||
|
}
|
|
@ -1,14 +0,0 @@
|
||||||
using LNURL;
|
|
||||||
|
|
||||||
namespace BTCPayServer.Plugins;
|
|
||||||
|
|
||||||
public class LightningAddressResolver
|
|
||||||
{
|
|
||||||
public string Username { get; set; }
|
|
||||||
public LNURLPayRequest LNURLPayRequest { get; set; }
|
|
||||||
|
|
||||||
public LightningAddressResolver(string username)
|
|
||||||
{
|
|
||||||
Username = username;
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Add table
Reference in a new issue