mirror of
https://github.com/barelyprofessional/KfChatDotNet.git
synced 2026-04-30 03:22:04 -04:00
Some pocket watch stuff for the future
This commit is contained in:
@@ -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; }
|
||||
}
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user