From ef1475d401dda514f230040b8496db4be6fd8ede Mon Sep 17 00:00:00 2001 From: Kukks Date: Mon, 26 Feb 2024 11:06:59 +0100 Subject: [PATCH] bringin mainnet --- .../BringinClient.cs | 64 +++++++++++-------- .../BringinController.cs | 9 ++- .../BringinService.cs | 14 ++-- .../Components/BringinWidget.razor | 7 +- 4 files changed, 59 insertions(+), 35 deletions(-) diff --git a/Plugins/BTCPayServer.Plugins.Bringin/BringinClient.cs b/Plugins/BTCPayServer.Plugins.Bringin/BringinClient.cs index 41da74d..9653add 100644 --- a/Plugins/BTCPayServer.Plugins.Bringin/BringinClient.cs +++ b/Plugins/BTCPayServer.Plugins.Bringin/BringinClient.cs @@ -3,6 +3,7 @@ using System.Net.Http; using System.Text; using System.Threading.Tasks; using BTCPayServer.JsonConverters; +using NBitcoin; using Newtonsoft.Json; using Newtonsoft.Json.Linq; @@ -20,18 +21,38 @@ public class BringinClient private HttpClient HttpClient { get; set; } - public static HttpClient CreateClient(IHttpClientFactory httpClientFactory, string? apiKey = null) + public static Uri GetDashboardUri(Network network) + { + if (network.ChainName == ChainName.Mainnet) + { + return new Uri("https://app.bringin.xyz"); + } + + return new Uri("https://dev-app.bringin.xyz"); + } + + public static Uri GetApiUrl(Network network) + { + if (network.ChainName == ChainName.Mainnet) + { + return new Uri("https://api.bringin.xyz"); + } + + return new Uri("https://dev.bringin.xyz"); + } + + + public static HttpClient CreateClient(Network network, IHttpClientFactory httpClientFactory, string? apiKey = null) { var httpClient = httpClientFactory.CreateClient("bringin"); - httpClient.BaseAddress = new Uri("https://dev.bringin.xyz"); - if(apiKey != null) + httpClient.BaseAddress = GetApiUrl(network); + if (apiKey != null) httpClient.DefaultRequestHeaders.TryAddWithoutValidation("api-key", apiKey); return httpClient; } - - public static async Task OnboardUri(HttpClient httpClient, Uri callback) + + public static async Task OnboardUri(HttpClient httpClient, Uri callback, Network network) { - var content = new StringContent(JsonConvert.SerializeObject(new { callback @@ -39,11 +60,9 @@ public class BringinClient var response = await httpClient.PostAsync($"/api/v0/application/btcpay/signup-url", content); var responseContent = await response.Content.ReadAsStringAsync(); if (response.IsSuccessStatusCode) return new Uri(JObject.Parse(responseContent)["signupURL"].ToString()); - return new Uri("https://dev-app.bringin.xyz"); - var error = JObject.Parse(responseContent).ToObject(); - throw new BringinException(error); + return GetDashboardUri(network); } - + public async Task GetUserId() { var response = await HttpClient.GetAsync($"/api/v0/user/user-id"); @@ -87,18 +106,16 @@ public class BringinClient var balance = JObject.Parse(responseContent).ToObject(); return balance.Balance / 100m; //response is in cents } + var error = JObject.Parse(responseContent).ToObject(); throw new BringinException(error); } public class BalanceResponse { - [JsonProperty("balance")] + [JsonProperty("balance")] [JsonConverter(typeof(NumericStringJsonConverter))] - public decimal Balance { - get; - set; - } + public decimal Balance { get; set; } } // // public class GetOrderResponse @@ -130,28 +147,25 @@ public class BringinClient public class CreateOrderResponse { - [JsonProperty("id")] - public string Id { get; set; } + [JsonProperty("id")] public string Id { get; set; } [JsonProperty("amount")] [JsonConverter(typeof(NumericStringJsonConverter))] public decimal Amount { get; set; } - [JsonProperty("invoice")] - public string Invoice { get; set; } + [JsonProperty("invoice")] public string Invoice { get; set; } - [JsonProperty("expiresAt")] - public long Expiry { get; set; } + [JsonProperty("expiresAt")] public long Expiry { get; set; } } public class CreateOrderRequest - { [JsonProperty("sourceAmount")] + { + [JsonProperty("sourceAmount")] [JsonConverter(typeof(NumericStringJsonConverter))] public decimal SourceAmount { get; set; } [JsonProperty("ipAddress")] public string IP { get; set; } - [JsonProperty("paymentMethod")] - public string PaymentMethod { get; set; } + [JsonProperty("paymentMethod")] public string PaymentMethod { get; set; } } public class RateResponse @@ -159,7 +173,7 @@ public class BringinClient public string Ticker { get; set; } public string Currency { get; set; } - + public long Timestamp { get; set; } [JsonConverter(typeof(NumericStringJsonConverter))] diff --git a/Plugins/BTCPayServer.Plugins.Bringin/BringinController.cs b/Plugins/BTCPayServer.Plugins.Bringin/BringinController.cs index 0703fd6..9191114 100644 --- a/Plugins/BTCPayServer.Plugins.Bringin/BringinController.cs +++ b/Plugins/BTCPayServer.Plugins.Bringin/BringinController.cs @@ -15,11 +15,13 @@ public class BringinController : Controller { private readonly BringinService _bringinService; private readonly IHttpClientFactory _httpClientFactory; + private readonly BTCPayNetworkProvider _btcPayNetworkProvider; - public BringinController(BringinService bringinService, IHttpClientFactory httpClientFactory) + public BringinController(BringinService bringinService, IHttpClientFactory httpClientFactory, BTCPayNetworkProvider btcPayNetworkProvider) { _bringinService = bringinService; _httpClientFactory = httpClientFactory; + _btcPayNetworkProvider = btcPayNetworkProvider; } [HttpGet("onboard")] @@ -35,8 +37,9 @@ public class BringinController : Controller storeId }, Request.Scheme); - var httpClient = BringinClient.CreateClient(_httpClientFactory); - var onboardUri = await BringinClient.OnboardUri(httpClient, new Uri(callbackUri)); + var network = _btcPayNetworkProvider.GetNetwork("BTC").NBitcoinNetwork; + var httpClient = BringinClient.CreateClient(network,_httpClientFactory); + var onboardUri = await BringinClient.OnboardUri(httpClient, new Uri(callbackUri), network); return Redirect(onboardUri.ToString()); } diff --git a/Plugins/BTCPayServer.Plugins.Bringin/BringinService.cs b/Plugins/BTCPayServer.Plugins.Bringin/BringinService.cs index 79856c3..acec475 100644 --- a/Plugins/BTCPayServer.Plugins.Bringin/BringinService.cs +++ b/Plugins/BTCPayServer.Plugins.Bringin/BringinService.cs @@ -38,7 +38,8 @@ public class BringinService : EventHostedServiceBase private ConcurrentDictionary _settings; private readonly AsyncKeyedLocker _storeLocker = new(); - public BringinService(EventAggregator eventAggregator, ILogger logger, + public BringinService(EventAggregator eventAggregator, + ILogger logger, StoreRepository storeRepository, PullPaymentHostedService pullPaymentHostedService, BTCPayNetworkJsonSerializerSettings btcPayNetworkJsonSerializerSettings, @@ -199,7 +200,9 @@ public class BringinService : EventHostedServiceBase try { - var bringinClient = bringinStoreSetting.CreateClient(_httpClientFactory); + + var network = _btcPayNetworkProvider.GetNetwork("BTC"); + var bringinClient = bringinStoreSetting.CreateClient(_httpClientFactory,network.NBitcoinNetwork); var thresholdAmount = methodSetting.Value.Threshold; if (methodSetting.Value.FiatThreshold) @@ -245,7 +248,8 @@ public class BringinService : EventHostedServiceBase } var settings = _settings[storeId]; - var bringinClient = settings.CreateClient(_httpClientFactory); + + var bringinClient = settings.CreateClient(_httpClientFactory, _btcPayNetworkProvider.GetNetwork(paymentMethodId.CryptoCode).NBitcoinNetwork); var host = await Dns.GetHostEntryAsync(Dns.GetHostName(), CancellationToken.None); @@ -462,9 +466,9 @@ public class BringinService : EventHostedServiceBase public List PendingPayouts { get; set; } = new(); } - public BringinClient CreateClient(IHttpClientFactory httpClientFactory) + public BringinClient CreateClient(IHttpClientFactory httpClientFactory, Network network) { - var httpClient = BringinClient.CreateClient(httpClientFactory, ApiKey); + var httpClient = BringinClient.CreateClient(network, httpClientFactory, ApiKey); return new BringinClient(ApiKey, httpClient); } } diff --git a/Plugins/BTCPayServer.Plugins.Bringin/Components/BringinWidget.razor b/Plugins/BTCPayServer.Plugins.Bringin/Components/BringinWidget.razor index b5427e8..27b80e6 100644 --- a/Plugins/BTCPayServer.Plugins.Bringin/Components/BringinWidget.razor +++ b/Plugins/BTCPayServer.Plugins.Bringin/Components/BringinWidget.razor @@ -133,7 +133,8 @@ return; try { - var userId = await _settings.CreateClient(HttpClientFactory).GetUserId(); + var network = BTCPayNetworkProvider.GetNetwork("BTC"); + var userId = await _settings.CreateClient(HttpClientFactory, network.NBitcoinNetwork).GetUserId(); ApiKeyError = string.IsNullOrEmpty(userId); } catch (Exception e) @@ -182,7 +183,9 @@ { if (_settings?.ApiKey is null || EditMode) return; - var client = _settings.CreateClient(HttpClientFactory); + + var network = BTCPayNetworkProvider.GetNetwork("BTC"); + var client = _settings.CreateClient(HttpClientFactory, network.NBitcoinNetwork); LastFiatBalance = await client.GetFiatBalance(); LastFiatRate = (await client.GetRate()).BringinPrice; LastDataFetch = DateTimeOffset.UtcNow;