diff --git a/KfChatDotNetBot/Models/PocketWatchModel.cs b/KfChatDotNetBot/Models/DbModels/PocketWatchDbModels.cs similarity index 71% rename from KfChatDotNetBot/Models/PocketWatchModel.cs rename to KfChatDotNetBot/Models/DbModels/PocketWatchDbModels.cs index dcbe32a..16c2ad4 100644 --- a/KfChatDotNetBot/Models/PocketWatchModel.cs +++ b/KfChatDotNetBot/Models/DbModels/PocketWatchDbModels.cs @@ -1,18 +1,19 @@ -namespace KfChatDotNetBot.Models; +namespace KfChatDotNetBot.Models.DbModels; -public class PocketWatchModel +public class PocketWatchAddressDbModel { + public int Id { get; set; } public required string Network { get; set; } public required string Address { get; set; } public required string Label { get; set; } public required bool BypassGambaSeshPresenceDetection { get; set; } public required int CheckIntervalSec { get; set; } - // Used internally to detect new transactions - public required DateTime LastChecked { get; set; } = DateTime.Now; + public required DateTimeOffset LastChecked { get; set; } = DateTimeOffset.UtcNow; } -public class PocketWatchEventModel +public class PocketWatchTransactionDbModel { + public int Id { get; set; } public required string TransactionHash { get; set; } public required DateTimeOffset Time { get; set; } public required string Currency { get; set; } @@ -22,5 +23,4 @@ public class PocketWatchEventModel public required long Balance { get; set; } public required float UsdRate { get; set; } public required bool IsMempool { get; set; } - public required PocketWatchModel PocketWatch { get; set; } } \ No newline at end of file diff --git a/KfChatDotNetBot/Services/ThreeXplPocketWatch.cs b/KfChatDotNetBot/Services/ThreeXplPocketWatch.cs index bb41534..3e12841 100644 --- a/KfChatDotNetBot/Services/ThreeXplPocketWatch.cs +++ b/KfChatDotNetBot/Services/ThreeXplPocketWatch.cs @@ -2,6 +2,7 @@ using System.Net.Http.Json; using System.Text.Json; using KfChatDotNetBot.Models; +using KfChatDotNetBot.Models.DbModels; using NLog; namespace KfChatDotNetBot.Services; @@ -11,9 +12,8 @@ public class ThreeXplPocketWatch private Logger _logger = LogManager.GetCurrentClassLogger(); private string _3xplToken = "3A0_t3st3xplor3rpub11cb3t4efcd21748a5e"; private string? _proxy; - private List _addresses = []; private CancellationToken _cancellationToken = CancellationToken.None; - public delegate void OnPocketWatchEventHandler(object sender, PocketWatchEventModel e); + public delegate void OnPocketWatchEventHandler(object sender, PocketWatchTransactionDbModel e); public event OnPocketWatchEventHandler OnPocketWatchEvent; public ThreeXplPocketWatch(string? proxy = null, CancellationToken? cancellationToken = null) @@ -23,7 +23,7 @@ public class ThreeXplPocketWatch if (cancellationToken != null) _cancellationToken = cancellationToken.Value; } - private async Task CheckAddress(PocketWatchModel addy) + private async Task CheckAddress(PocketWatchAddressDbModel addy) { _logger.Debug($"Getting data for {addy.Network}/{addy.Address}"); var data = await GetAddress(addy.Network, addy.Address); @@ -40,7 +40,7 @@ public class ThreeXplPocketWatch public async Task GetAddress(string network, string address) { var url = - $"https://api.3xpl.com/{network}/address/{address}?data=address,balances,events,mempool&from=all&token=3A0_t3st3xplor3rpub11cb3t4efcd21748a5e&library=currencies,rates(usd)"; + $"https://api.3xpl.com/{network}/address/{address}?data=address,balances,events,mempool&from=all&token={_3xplToken}&library=currencies,rates(usd)"; _logger.Debug($"Retrieving {url}"); var handler = new HttpClientHandler { AutomaticDecompression = DecompressionMethods.All }; if (_proxy != null)