mirror of
https://github.com/barelyprofessional/KfChatDotNet.git
synced 2026-05-02 04: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 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; }
|
|
||||||
}
|
}
|
||||||
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user