Some pocket watch stuff for the future

This commit is contained in:
barelyprofessional
2025-06-07 16:04:13 -05:00
parent 7421683e32
commit be355e83df
2 changed files with 10 additions and 10 deletions

View File

@@ -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 Network { get; set; }
public required string Address { get; set; } public required string Address { get; set; }
public required string Label { get; set; } public required string Label { get; set; }
public required bool BypassGambaSeshPresenceDetection { get; set; } public required bool BypassGambaSeshPresenceDetection { get; set; }
public required int CheckIntervalSec { get; set; } public required int CheckIntervalSec { get; set; }
// Used internally to detect new transactions public required DateTimeOffset LastChecked { get; set; } = DateTimeOffset.UtcNow;
public required DateTime LastChecked { get; set; } = DateTime.Now;
} }
public class PocketWatchEventModel public class PocketWatchTransactionDbModel
{ {
public int Id { get; set; }
public required string TransactionHash { get; set; } public required string TransactionHash { get; set; }
public required DateTimeOffset Time { get; set; } public required DateTimeOffset Time { get; set; }
public required string Currency { get; set; } public required string Currency { get; set; }
@@ -22,5 +23,4 @@ public class PocketWatchEventModel
public required long Balance { get; set; } public required long Balance { get; set; }
public required float UsdRate { get; set; } public required float UsdRate { get; set; }
public required bool IsMempool { get; set; } public required bool IsMempool { get; set; }
public required PocketWatchModel PocketWatch { get; set; }
} }

View File

@@ -2,6 +2,7 @@
using System.Net.Http.Json; using System.Net.Http.Json;
using System.Text.Json; using System.Text.Json;
using KfChatDotNetBot.Models; using KfChatDotNetBot.Models;
using KfChatDotNetBot.Models.DbModels;
using NLog; using NLog;
namespace KfChatDotNetBot.Services; namespace KfChatDotNetBot.Services;
@@ -11,9 +12,8 @@ public class ThreeXplPocketWatch
private Logger _logger = LogManager.GetCurrentClassLogger(); private Logger _logger = LogManager.GetCurrentClassLogger();
private string _3xplToken = "3A0_t3st3xplor3rpub11cb3t4efcd21748a5e"; private string _3xplToken = "3A0_t3st3xplor3rpub11cb3t4efcd21748a5e";
private string? _proxy; private string? _proxy;
private List<PocketWatchModel> _addresses = [];
private CancellationToken _cancellationToken = CancellationToken.None; 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 event OnPocketWatchEventHandler OnPocketWatchEvent;
public ThreeXplPocketWatch(string? proxy = null, CancellationToken? cancellationToken = null) public ThreeXplPocketWatch(string? proxy = null, CancellationToken? cancellationToken = null)
@@ -23,7 +23,7 @@ public class ThreeXplPocketWatch
if (cancellationToken != null) _cancellationToken = cancellationToken.Value; 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}"); _logger.Debug($"Getting data for {addy.Network}/{addy.Address}");
var data = await GetAddress(addy.Network, addy.Address); var data = await GetAddress(addy.Network, addy.Address);
@@ -40,7 +40,7 @@ public class ThreeXplPocketWatch
public async Task<JsonElement> GetAddress(string network, string address) public async Task<JsonElement> GetAddress(string network, string address)
{ {
var url = 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}"); _logger.Debug($"Retrieving {url}");
var handler = new HttpClientHandler { AutomaticDecompression = DecompressionMethods.All }; var handler = new HttpClientHandler { AutomaticDecompression = DecompressionMethods.All };
if (_proxy != null) if (_proxy != null)