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 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; }
}

View File

@@ -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<PocketWatchModel> _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<JsonElement> 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)