// using System; // using System.Threading; // using NNostr.Client; // // namespace BTCPayServer.Plugins.NIP05; // // public class NostrClientWrapper : IDisposable // { // public INostrClient Client { get; private set; } // private int _usageCount = 0; // private bool _isDisposed = false; // private DateTimeOffset _lastUsed; // // public NostrClientWrapper(INostrClient client) // { // Client = client; // _lastUsed = DateTimeOffset.UtcNow; // } // // public void IncrementUsage() // { // _lastUsed = DateTimeOffset.UtcNow; // Interlocked.Increment(ref _usageCount); // } // // public void DecrementUsage() // { // _lastUsed = DateTimeOffset.UtcNow; // if (Interlocked.Decrement(ref _usageCount) == 0 && IsExpired()) // { // Dispose(); // } // } // // public bool IsExpired() // { // return DateTimeOffset.UtcNow - _lastUsed > TimeSpan.FromMinutes(5); // } // // public void Dispose() // { // if (!_isDisposed) // { // Client.Dispose(); // _isDisposed = true; // } // } // }