diff --git a/BTCPayServer/Controllers/HomeController.cs b/BTCPayServer/Controllers/HomeController.cs index 476c10d2e..961ada06e 100644 --- a/BTCPayServer/Controllers/HomeController.cs +++ b/BTCPayServer/Controllers/HomeController.cs @@ -115,11 +115,6 @@ namespace BTCPayServer.Controllers return RedirectToAction(nameof(AccountController.Login), "Account"); } - [Route("translate")] - public IActionResult BitpayTranslator() - { - return View(new BitpayTranslatorViewModel()); - } [Route("misc/lang")] [Authorize(AuthenticationSchemes = AuthenticationSchemes.Cookie)] public IActionResult Languages() @@ -152,58 +147,6 @@ namespace BTCPayServer.Controllers return View(); } - [HttpPost] - [Route("translate")] - public async Task BitpayTranslator(BitpayTranslatorViewModel vm) - { - if (!ModelState.IsValid) - return View(vm); - vm.BitpayLink = vm.BitpayLink ?? string.Empty; - vm.BitpayLink = vm.BitpayLink.Trim(); - if (!vm.BitpayLink.StartsWith("bitcoin:", StringComparison.OrdinalIgnoreCase)) - { - var invoiceId = vm.BitpayLink.Substring(vm.BitpayLink.LastIndexOf("=", StringComparison.OrdinalIgnoreCase) + 1); - vm.BitpayLink = $"bitcoin:?r=https://bitpay.com/i/{invoiceId}"; - } - - try - { - BitcoinUrlBuilder urlBuilder = new BitcoinUrlBuilder(vm.BitpayLink, Network.Main); -#pragma warning disable CS0618 // Type or member is obsolete - if (!urlBuilder.PaymentRequestUrl.DnsSafeHost.EndsWith("bitpay.com", StringComparison.OrdinalIgnoreCase)) - { - throw new Exception("This tool only work with bitpay"); - } - - var client = HttpClientFactory.CreateClient(); - HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, urlBuilder.PaymentRequestUrl); -#pragma warning restore CS0618 // Type or member is obsolete - request.Headers.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/payment-request")); - var result = await client.SendAsync(request); - // {"network":"main","currency":"BTC","requiredFeeRate":29.834,"outputs":[{"amount":255900,"address":"1PgPo5d4swD6pKfCgoXtoW61zqTfX9H7tj"}],"time":"2018-12-03T14:39:47.162Z","expires":"2018-12-03T14:54:47.162Z","memo":"Payment request for BitPay invoice HHfG8cprRMzZG6MErCqbjv for merchant VULTR Holdings LLC","paymentUrl":"https://bitpay.com/i/HHfG8cprRMzZG6MErCqbjv","paymentId":"HHfG8cprRMzZG6MErCqbjv"} - var str = await result.Content.ReadAsStringAsync(); - try - { - var jobj = JObject.Parse(str); - vm.Address = ((JArray)jobj["outputs"])[0]["address"].Value(); - var amount = Money.Satoshis(((JArray)jobj["outputs"])[0]["amount"].Value()); - vm.Amount = amount.ToString(); - vm.BitcoinUri = $"bitcoin:{vm.Address}?amount={amount.ToString()}"; - } - catch (JsonReaderException) - { - ModelState.AddModelError(nameof(vm.BitpayLink), $"Invalid or expired bitpay invoice"); - return View(vm); - } - } - catch (Exception ex) - { - ModelState.AddModelError(nameof(vm.BitpayLink), $"Error while requesting {ex.Message}"); - return View(vm); - } - return View(vm); - } - [Route("recovery-seed-backup")] [Authorize(AuthenticationSchemes = AuthenticationSchemes.Cookie)] public IActionResult RecoverySeedBackup(RecoverySeedBackupViewModel vm) diff --git a/BTCPayServer/Models/BitpayTranslatorViewModel.cs b/BTCPayServer/Models/BitpayTranslatorViewModel.cs deleted file mode 100644 index 71960347f..000000000 --- a/BTCPayServer/Models/BitpayTranslatorViewModel.cs +++ /dev/null @@ -1,13 +0,0 @@ -using System.ComponentModel.DataAnnotations; - -namespace BTCPayServer.Models -{ - public class BitpayTranslatorViewModel - { - [Display(Name = "Bitpay's invoice URL or obsolete invoice url")] - public string BitpayLink { get; set; } - public string Address { get; set; } - public string Amount { get; set; } - public string BitcoinUri { get; set; } - } -} diff --git a/BTCPayServer/Views/Home/BitpayTranslator.cshtml b/BTCPayServer/Views/Home/BitpayTranslator.cshtml deleted file mode 100644 index f90330743..000000000 --- a/BTCPayServer/Views/Home/BitpayTranslator.cshtml +++ /dev/null @@ -1,63 +0,0 @@ -@model BitpayTranslatorViewModel - -
-
- @if (Model.Address != null) - { -
-
- -
-
- } -
-
-

The Bitpay Translator

-
-

Bitpay is using a deprecated standard in their invoices that most wallets do not support. Use this tool to transform their invoices to a regular address/amount.

-
-
-
-
 
-
-
-
- * - - -
-
- -
-
-
-
 
-
-
-
- -@section Scripts { - @await Html.PartialAsync("_ValidationScriptsPartial") - - -} diff --git a/BTCPayServer/wwwroot/swagger/v1/swagger.template.misc.json b/BTCPayServer/wwwroot/swagger/v1/swagger.template.misc.json index 57f0e2eda..729214399 100644 --- a/BTCPayServer/wwwroot/swagger/v1/swagger.template.misc.json +++ b/BTCPayServer/wwwroot/swagger/v1/swagger.template.misc.json @@ -1,25 +1,5 @@ { "paths": { - "/translate": { - "get": { - "tags": [ - "Miscalleneous" - ], - "summary": "Bitpay translator", - "description": "Bitpay is using a deprecated standard in their invoices that most wallets do not support. Use this tool to transform their invoices to a regular address/amount.", - "responses": { - "200": { - "description": "The page to the Bitpay translator", - "content": { - "text/html": { - "example": "The HTML page of the Bitpay translator tool" - } - } - } - }, - "security": [] - } - }, "/misc/lang": { "get": { "tags": [