Compare commits

..

1 Commits

Author SHA1 Message Date
0793641a9b Update changelog 2022-07-07 23:18:03 +09:00
20 changed files with 44 additions and 79 deletions

View File

@ -28,7 +28,7 @@
<PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.0.0" PrivateAssets="All" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="BTCPayServer.Lightning.Common" Version="1.3.8" />
<PackageReference Include="BTCPayServer.Lightning.Common" Version="1.3.7" />
<PackageReference Include="NBitcoin" Version="7.0.1" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
</ItemGroup>

View File

@ -1,6 +1,5 @@
using BTCPayServer.Client.JsonConverters;
using BTCPayServer.Lightning;
using NBitcoin;
using Newtonsoft.Json;
namespace BTCPayServer.Client.Models
@ -26,14 +25,14 @@ namespace BTCPayServer.Client.Models
public class OnchainBalanceData
{
[JsonConverter(typeof(JsonConverters.MoneyJsonConverter))]
public Money Confirmed { get; set; }
[JsonConverter(typeof(JsonConverters.MoneyJsonConverter))]
public Money Unconfirmed { get; set; }
[JsonConverter(typeof(LightMoneyJsonConverter))]
public LightMoney Confirmed { get; set; }
[JsonConverter(typeof(JsonConverters.MoneyJsonConverter))]
public Money Reserved { get; set; }
[JsonConverter(typeof(LightMoneyJsonConverter))]
public LightMoney Unconfirmed { get; set; }
[JsonConverter(typeof(LightMoneyJsonConverter))]
public LightMoney Reserved { get; set; }
}
public class OffchainBalanceData

View File

@ -1011,7 +1011,7 @@ namespace BTCPayServer.Tests
var actualSig = headers["BTCPay-Sig"].First();
var bytes = await request.Request.Body.ReadBytesAsync((int)headers.ContentLength.Value);
var expectedSig =
$"sha256={Encoders.Hex.EncodeData(NBitcoin.Crypto.Hashes.HMACSHA256(Encoding.UTF8.GetBytes("HelloWorld"), bytes))}";
$"sha256={Encoders.Hex.EncodeData(new HMACSHA256(Encoding.UTF8.GetBytes("HelloWorld")).ComputeHash(bytes))}";
Assert.Equal(expectedSig, actualSig);
request.Response.StatusCode = 200;
server.Done();

View File

@ -48,7 +48,7 @@
<ItemGroup>
<PackageReference Include="BIP78.Sender" Version="0.2.2" />
<PackageReference Include="BTCPayServer.Hwi" Version="2.0.2" />
<PackageReference Include="BTCPayServer.Lightning.All" Version="1.3.12" />
<PackageReference Include="BTCPayServer.Lightning.All" Version="1.3.11" />
<PackageReference Include="BuildBundlerMinifier" Version="3.2.449" />
<PackageReference Include="BundlerMinifier.Core" Version="3.2.435" />
<PackageReference Include="BundlerMinifier.TagHelpers" Version="3.2.435" />
@ -76,7 +76,7 @@
<PackageReference Include="Serilog" Version="2.9.0" />
<PackageReference Include="Serilog.AspNetCore" Version="3.2.0" />
<PackageReference Include="Serilog.Sinks.File" Version="4.1.0" />
<PackageReference Include="SSH.NET" Version="2020.0.2" />
<PackageReference Include="SSH.NET" Version="2016.1.0" />
<PackageReference Include="Text.Analyzers" Version="3.3.3">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>

View File

@ -61,8 +61,8 @@ public class StoreLightningBalance : ViewComponent
var balance = await lightningClient.GetBalance();
vm.Balance = balance;
vm.TotalOnchain = balance.OnchainBalance != null
? (balance.OnchainBalance.Confirmed?? 0L) + (balance.OnchainBalance.Reserved ?? 0L) +
(balance.OnchainBalance.Unconfirmed ?? 0L)
? (balance.OnchainBalance.Confirmed?? 0) + (balance.OnchainBalance.Reserved ?? 0) +
(balance.OnchainBalance.Unconfirmed ?? 0)
: null;
vm.TotalOffchain = balance.OffchainBalance != null
? (balance.OffchainBalance.Opening?? 0) + (balance.OffchainBalance.Local?? 0) +

View File

@ -1,7 +1,6 @@
using BTCPayServer.Data;
using BTCPayServer.Lightning;
using BTCPayServer.Services.Rates;
using NBitcoin;
namespace BTCPayServer.Components.StoreLightningBalance;
@ -11,7 +10,7 @@ public class StoreLightningBalanceViewModel
public string DefaultCurrency { get; set; }
public CurrencyData CurrencyData { get; set; }
public StoreData Store { get; set; }
public Money TotalOnchain { get; set; }
public LightMoney TotalOnchain { get; set; }
public LightMoney TotalOffchain { get; set; }
public LightningNodeBalance Balance { get; set; }
public string ProblemDescription { get; set; }

View File

@ -37,8 +37,7 @@ public class StoreLightningServices : ViewComponent
if (vm.Store == null) throw new ArgumentNullException(nameof(vm.Store));
if (vm.CryptoCode == null) throw new ArgumentNullException(nameof(vm.CryptoCode));
if (vm.LightningNodeType != LightningNodeType.Internal) return View(vm);
if (!User.IsInRole(Roles.ServerAdmin)) return View(vm);
var services = _externalServiceOptions.Value.ExternalServices.ToList()
.Where(service => ExternalServices.LightningServiceTypes.Contains(service.Type))
.Select(async service =>

View File

@ -75,7 +75,7 @@ namespace BTCPayServer
CreationStore.Remove(userId, out _);
return true;
}
catch (Exception)
catch (Exception e)
{
return false;
}

View File

@ -114,7 +114,7 @@ namespace BTCPayServer.Controllers
assetBalance.FormattedFiatValue = _currencyNameTable.DisplayFormatCurrency(pair.Value.Qty * quote.Bid, pair.Value.FiatAsset);
assetBalance.TradableAssetPairs = tradableAssetPairs.Where(o => o.AssetBought == asset || o.AssetSold == asset);
}
catch (WrongTradingPairException)
catch (WrongTradingPairException e)
{
// Cannot trade this asset, just ignore
}

View File

@ -310,8 +310,6 @@ namespace BTCPayServer.Controllers
if (!store.GetSupportedPaymentMethods(_NetworkProvider).Any())
errors.AppendLine(
"Warning: No wallet has been linked to your BTCPay Store. See the following link for more information on how to connect your store and wallet. (https://docs.btcpayserver.org/WalletSetup/)");
else
errors.AppendLine("Warning: You have payment methods configured but none of them match any of the requested payment methods (e.g., you requested on-chain BTC invoice but don't have an on-chain wallet configured)");
foreach (var error in logs.ToList())
{
errors.AppendLine(error.ToString());

View File

@ -2,6 +2,7 @@ using System;
using System.Collections.Generic;
using BTCPayServer.Client.Models;
using BTCPayServer.Data;
using BTCPayServer.Data;
using BTCPayServer.Payments;
using BTCPayServer.Payments.Bitcoin;
using BTCPayServer.Services.Invoices;

View File

@ -68,6 +68,6 @@ namespace BTCPayServer.Models.InvoicingModels
public bool RedirectAutomatically { get; set; }
public bool Activated { get; set; }
public string InvoiceCurrency { get; set; }
public string ReceiptLink { get; set; }
public string? ReceiptLink { get; set; }
}
}

View File

@ -73,14 +73,7 @@
<a class="alert-link p-0" asp-action="ConfigureStorePayoutProcessors" asp-controller="UIPayoutProcessors" asp-route-storeId="@storeId">Configure now</a>
</div>
}
<h2 class="mt-1 mb-4">
@ViewData["Title"]
<small>
<a href="https://docs.btcpayserver.org/Payouts/" target="_blank" rel="noreferrer noopener">
<span class="fa fa-question-circle-o text-secondary" title="More information..."></span>
</a>
</small>
</h2>
<h2 class="mt-1 mb-4">@ViewData["Title"]</h2>
<form method="post" id="Payouts">
<input type="hidden" asp-for="PaymentMethodId"/>

View File

@ -49,5 +49,5 @@
"Close": "Zavřít",
"NotPaid_ExtraTransaction": "Faktura nebyla uhrazena v plné výši. Zašlete prosím další transakci na úhradu dlužné částky.",
"Recommended_Fee": "Doporučený poplatek: {{feeRate}} sat/bajt",
"View receipt": "Zobrazit účtenku"
"View receipt": "View receipt"
}

View File

@ -22,7 +22,7 @@
"Amount": "Znesek",
"Address": "Naslov",
"Copied": "Kopirano",
"ConversionTab_BodyTop": "Plačilo {{btcDue}} {{cryptoCode}} lahko izvedete z uporabo alternativne kriptovalute, ki jo prodajalec neposredno ne podpira.",
"ConversionTab_BodyTop": "Plačilo {{btcDue}} {{cryptoCode}} lahko izvedete z uporabo altcoina, ki ga prodajalec neposredno ne podpira.",
"ConversionTab_BodyDesc": "To storitev ponuja tretja oseba. Ne pozabite, da nimamo nadzora nad tem, kako bodo ponudniki posredovali vaša sredstva. Račun bo označen kot plačan šele po prejemu sredstev na {{cryptoCode}} Blockchain.",
"ConversionTab_CalculateAmount_Error": "Poskusite znova",
"ConversionTab_LoadCurrencies_Error": "Poskusite znova",
@ -33,21 +33,21 @@
"What happened?": "Kaj se je zgodilo?",
"InvoiceExpired_Body_1": "Račun je potekel in ni več veljaven. Račun je veljaven samo {{maxTimeMinutes}} minut. \nVrnete se lahko na {{storeName}}, kjer lahko ponovno izvedete plačilo.",
"InvoiceExpired_Body_2": "Če ste poskušali poslati plačilo, to še ni bilo sprejeto v omrežju. Plačila še nismo prejeli.",
"InvoiceExpired_Body_3": "V primeru, da ga bomo prejeli kasneje, bomo naročilo obdelali oz. vas kontaktirali glede vračila...",
"InvoiceExpired_Body_3": "Če ga bomo prejeli kasneje, bomo obdelali naročilo ali vas kontaktirali glede vračila...",
"Invoice ID": "Račun št.",
"Order ID": "Naročilo št.",
"Return to StoreName": "Vrni se na {{storeName}}",
"This invoice has been paid": "Račun je plačan.",
"This invoice has been archived": "Račun je arhiviran.",
"Archived_Body": "Prosimo, kontaktirajte trgovino za informacije o naročilu ali pomoč.",
"BOLT 11 Invoice": "BOLT 11 račun",
"Node Info": "Info vozlišča",
"BOLT 11 Invoice": "BOLT 11 Invoice",
"Node Info": "Node Info",
"txCount": "{{count}} transakcija",
"txCount_plural": "{{count}} transakcij/e",
"Pay with CoinSwitch": "Plačilo z CoinSwitch",
"Pay with Changelly": "Plačilo z Changelly",
"Close": "Zapri",
"NotPaid_ExtraTransaction": "Račun ni bil plačan v celoti. Potrebna je nova transakcija za doplačilo.",
"Recommended_Fee": "Priporočena omrežnina: {{feeRate}} sat/byte",
"View receipt": "Prikaži račun"
"Recommended_Fee": "Priporočena provizija: {{feeRate}} sat/byte",
"View receipt": "View receipt"
}

View File

@ -219,17 +219,17 @@
"properties": {
"confirmed": {
"type": "string",
"description": "The confirmed amount in satoshi",
"description": "The confirmed amount in millisatoshi",
"nullable": true
},
"unconfirmed": {
"type": "string",
"description": "The unconfirmed amount in satoshi",
"description": "The unconfirmed amount in millisatoshi",
"nullable": true
},
"reserved": {
"type": "string",
"description": "The reserved amount in satoshi",
"description": "The reserved amount in millisatoshi",
"nullable": true
}
}

View File

@ -1,5 +1,5 @@
<Project>
<PropertyGroup>
<Version>1.6.0</Version>
<Version>1.5.4</Version>
</PropertyGroup>
</Project>

View File

@ -56,9 +56,9 @@ public class FakeCustodian : ICustodian
return Task.FromResult(form);
}
private FakeCustodianConfig ParseConfig(JObject config)
private FakeCustodianConfig? ParseConfig(JObject config)
{
return config?.ToObject<FakeCustodianConfig>() ?? throw new InvalidOperationException("Invalid config");
return config?.ToObject<FakeCustodianConfig>();
}
}

View File

@ -1,7 +1,7 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.1.32414.318
# Visual Studio Version 16
VisualStudioVersion = 16.0.29411.108
MinimumVisualStudioVersion = 15.0.26124.0
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BTCPayServer", "BTCPayServer\BTCPayServer.csproj", "{949A0870-8D8C-4DE5-8845-DDD560489177}"
EndProject
@ -13,12 +13,12 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Misc", "Misc", "{29290EC7-0
amd64.Dockerfile = amd64.Dockerfile
arm32v7.Dockerfile = arm32v7.Dockerfile
arm64v8.Dockerfile = arm64v8.Dockerfile
Changelog.md = Changelog.md
Build\Common.csproj = Build\Common.csproj
.circleci\config.yml = .circleci\config.yml
docker-entrypoint.sh = docker-entrypoint.sh
.circleci\run-tests.sh = .circleci\run-tests.sh
Build\Version.csproj = Build\Version.csproj
Changelog.md = Changelog.md
EndProjectSection
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BTCPayServer.Rating", "BTCPayServer.Rating\BTCPayServer.Rating.csproj", "{6DC77459-D52F-45EE-B3F3-315043D33A1B}"
@ -29,15 +29,15 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BTCPayServer.Data", "BTCPay
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BTCPayServer.Client", "BTCPayServer.Client\BTCPayServer.Client.csproj", "{21A13304-7168-49A0-86C2-0A1A9453E9C7}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BTCPayServer.Abstractions", "BTCPayServer.Abstractions\BTCPayServer.Abstractions.csproj", "{A0D50BB6-FE2C-4671-8693-F7582B66178F}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BTCPayServer.Abstractions", "BTCPayServer.Abstractions\BTCPayServer.Abstractions.csproj", "{A0D50BB6-FE2C-4671-8693-F7582B66178F}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BTCPayServer.Plugins.Test", "BTCPayServer.Plugins.Test\BTCPayServer.Plugins.Test.csproj", "{545AFC8E-7BC2-43D9-84CA-F9468F4FF295}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BTCPayServer.Plugins.Test", "BTCPayServer.Plugins.Test\BTCPayServer.Plugins.Test.csproj", "{545AFC8E-7BC2-43D9-84CA-F9468F4FF295}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Plugins", "Plugins", "{1FC7F660-ADF1-4D55-B61A-85C6AB083C33}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BTCPayServer.PluginPacker", "BTCPayServer.PluginPacker\BTCPayServer.PluginPacker.csproj", "{7DC94B25-1CFC-4170-AA41-7BA983E4C0B8}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BTCPayServer.PluginPacker", "BTCPayServer.PluginPacker\BTCPayServer.PluginPacker.csproj", "{7DC94B25-1CFC-4170-AA41-7BA983E4C0B8}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BTCPayServer.Plugins.Custodians.FakeCustodian", "Plugins\BTCPayServer.Plugins.Custodians.FakeCustodian\BTCPayServer.Plugins.Custodians.FakeCustodian.csproj", "{49E1FE45-FE71-49DF-8701-8394E974BE82}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BTCPayServer.Plugins.Custodians.FakeCustodian", "Plugins\BTCPayServer.Plugins.Custodians.FakeCustodian\BTCPayServer.Plugins.Custodians.FakeCustodian.csproj", "{49E1FE45-FE71-49DF-8701-8394E974BE82}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@ -271,39 +271,15 @@ Global
{7DC94B25-1CFC-4170-AA41-7BA983E4C0B8}.Release|x64.Build.0 = Release|Any CPU
{7DC94B25-1CFC-4170-AA41-7BA983E4C0B8}.Release|x86.ActiveCfg = Release|Any CPU
{7DC94B25-1CFC-4170-AA41-7BA983E4C0B8}.Release|x86.Build.0 = Release|Any CPU
{49E1FE45-FE71-49DF-8701-8394E974BE82}.Altcoins-Debug|Any CPU.ActiveCfg = Debug|Any CPU
{49E1FE45-FE71-49DF-8701-8394E974BE82}.Altcoins-Debug|Any CPU.Build.0 = Debug|Any CPU
{49E1FE45-FE71-49DF-8701-8394E974BE82}.Altcoins-Debug|x64.ActiveCfg = Debug|Any CPU
{49E1FE45-FE71-49DF-8701-8394E974BE82}.Altcoins-Debug|x64.Build.0 = Debug|Any CPU
{49E1FE45-FE71-49DF-8701-8394E974BE82}.Altcoins-Debug|x86.ActiveCfg = Debug|Any CPU
{49E1FE45-FE71-49DF-8701-8394E974BE82}.Altcoins-Debug|x86.Build.0 = Debug|Any CPU
{49E1FE45-FE71-49DF-8701-8394E974BE82}.Altcoins-Release|Any CPU.ActiveCfg = Release|Any CPU
{49E1FE45-FE71-49DF-8701-8394E974BE82}.Altcoins-Release|Any CPU.Build.0 = Release|Any CPU
{49E1FE45-FE71-49DF-8701-8394E974BE82}.Altcoins-Release|x64.ActiveCfg = Release|Any CPU
{49E1FE45-FE71-49DF-8701-8394E974BE82}.Altcoins-Release|x64.Build.0 = Release|Any CPU
{49E1FE45-FE71-49DF-8701-8394E974BE82}.Altcoins-Release|x86.ActiveCfg = Release|Any CPU
{49E1FE45-FE71-49DF-8701-8394E974BE82}.Altcoins-Release|x86.Build.0 = Release|Any CPU
{49E1FE45-FE71-49DF-8701-8394E974BE82}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{49E1FE45-FE71-49DF-8701-8394E974BE82}.Debug|Any CPU.Build.0 = Debug|Any CPU
{49E1FE45-FE71-49DF-8701-8394E974BE82}.Debug|x64.ActiveCfg = Debug|Any CPU
{49E1FE45-FE71-49DF-8701-8394E974BE82}.Debug|x64.Build.0 = Debug|Any CPU
{49E1FE45-FE71-49DF-8701-8394E974BE82}.Debug|x86.ActiveCfg = Debug|Any CPU
{49E1FE45-FE71-49DF-8701-8394E974BE82}.Debug|x86.Build.0 = Debug|Any CPU
{49E1FE45-FE71-49DF-8701-8394E974BE82}.Release|Any CPU.ActiveCfg = Release|Any CPU
{49E1FE45-FE71-49DF-8701-8394E974BE82}.Release|Any CPU.Build.0 = Release|Any CPU
{49E1FE45-FE71-49DF-8701-8394E974BE82}.Release|x64.ActiveCfg = Release|Any CPU
{49E1FE45-FE71-49DF-8701-8394E974BE82}.Release|x64.Build.0 = Release|Any CPU
{49E1FE45-FE71-49DF-8701-8394E974BE82}.Release|x86.ActiveCfg = Release|Any CPU
{49E1FE45-FE71-49DF-8701-8394E974BE82}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {203A3162-BE45-4721-937D-6804E0E1AFF8}
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{545AFC8E-7BC2-43D9-84CA-F9468F4FF295} = {1FC7F660-ADF1-4D55-B61A-85C6AB083C33}
{7DC94B25-1CFC-4170-AA41-7BA983E4C0B8} = {1FC7F660-ADF1-4D55-B61A-85C6AB083C33}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {203A3162-BE45-4721-937D-6804E0E1AFF8}
EndGlobalSection
EndGlobal

View File

@ -6,7 +6,7 @@ if [ -f "$BTCPAY_SSHAUTHORIZEDKEYS" ] && [[ "$BTCPAY_SSHKEYFILE" ]]; then
if ! [ -f "$BTCPAY_SSHKEYFILE" ] || ! [ -f "$BTCPAY_SSHKEYFILE.pub" ]; then
rm -f "$BTCPAY_SSHKEYFILE" "$BTCPAY_SSHKEYFILE.pub"
echo "Creating BTCPay Server SSH key File..."
ssh-keygen -t ed25519 -f "$BTCPAY_SSHKEYFILE" -q -P "" -m PEM -C btcpayserver > /dev/null
ssh-keygen -t rsa -f "$BTCPAY_SSHKEYFILE" -q -P "" -m PEM -C btcpayserver > /dev/null
# Let's make sure the SSHAUTHORIZEDKEYS doesn't have our key yet
# Because the file is mounted, set -i does not work
sed '/btcpayserver$/d' "$BTCPAY_SSHAUTHORIZEDKEYS" > "$BTCPAY_SSHAUTHORIZEDKEYS.new"