mirror of
https://github.com/aljazceru/btcpayserver.git
synced 2025-12-17 22:14:26 +01:00
update nbx + prep bitcoin payment data ctor change
This commit is contained in:
@@ -5,6 +5,6 @@
|
|||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Microsoft.AspNetCore.App" Version="2.1.9" Condition="'$(TargetFramework)' == 'netcoreapp2.1'" />
|
<PackageReference Include="Microsoft.AspNetCore.App" Version="2.1.9" Condition="'$(TargetFramework)' == 'netcoreapp2.1'" />
|
||||||
<FrameworkReference Include="Microsoft.AspNetCore.App" Condition="'$(TargetFramework)' != 'netcoreapp2.1'" />
|
<FrameworkReference Include="Microsoft.AspNetCore.App" Condition="'$(TargetFramework)' != 'netcoreapp2.1'" />
|
||||||
<PackageReference Include="NBXplorer.Client" Version="2.0.0.26" />
|
<PackageReference Include="NBXplorer.Client" Version="3.0.0" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
||||||
|
|||||||
@@ -252,7 +252,7 @@ namespace BTCPayServer.Controllers
|
|||||||
vm.Id = tx.TransactionId.ToString();
|
vm.Id = tx.TransactionId.ToString();
|
||||||
vm.Link = string.Format(CultureInfo.InvariantCulture, paymentMethod.Network.BlockExplorerLink, vm.Id);
|
vm.Link = string.Format(CultureInfo.InvariantCulture, paymentMethod.Network.BlockExplorerLink, vm.Id);
|
||||||
vm.Timestamp = tx.Timestamp;
|
vm.Timestamp = tx.Timestamp;
|
||||||
vm.Positive = tx.BalanceChange >= Money.Zero;
|
vm.Positive = tx.BalanceChange.GetValue(wallet.Network) >= Money.Zero;
|
||||||
vm.Balance = tx.BalanceChange.ToString();
|
vm.Balance = tx.BalanceChange.ToString();
|
||||||
vm.IsConfirmed = tx.Confirmations != 0;
|
vm.IsConfirmed = tx.Confirmations != 0;
|
||||||
|
|
||||||
@@ -912,7 +912,7 @@ namespace BTCPayServer.Controllers
|
|||||||
}
|
}
|
||||||
else if (command == "prune")
|
else if (command == "prune")
|
||||||
{
|
{
|
||||||
var result = await ExplorerClientProvider.GetExplorerClient(walletId.CryptoCode).PruneAsync(derivationScheme.AccountDerivation, cancellationToken);
|
var result = await ExplorerClientProvider.GetExplorerClient(walletId.CryptoCode).PruneAsync(derivationScheme.AccountDerivation, new PruneRequest(), cancellationToken);
|
||||||
if (result.TotalPruned == 0)
|
if (result.TotalPruned == 0)
|
||||||
{
|
{
|
||||||
TempData[WellKnownTempData.SuccessMessage] = $"The wallet is already pruned";
|
TempData[WellKnownTempData.SuccessMessage] = $"The wallet is already pruned";
|
||||||
|
|||||||
30
BTCPayServer/Extensions/MoneyExtensions.cs
Normal file
30
BTCPayServer/Extensions/MoneyExtensions.cs
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
using System;
|
||||||
|
using System.Linq;
|
||||||
|
using NBitcoin;
|
||||||
|
|
||||||
|
namespace BTCPayServer
|
||||||
|
{
|
||||||
|
public static class MoneyExtensions
|
||||||
|
{
|
||||||
|
public static Money GetValue(this IMoney m, BTCPayNetwork network = null)
|
||||||
|
{
|
||||||
|
switch (m)
|
||||||
|
{
|
||||||
|
case Money money:
|
||||||
|
return money;
|
||||||
|
case MoneyBag mb:
|
||||||
|
return mb.Select(money => money.GetValue(network)).Sum();
|
||||||
|
// case AssetMoney assetMoney:
|
||||||
|
// if (network is ElementsBTCPayNetwork elementsBTCPayNetwork)
|
||||||
|
// {
|
||||||
|
// return elementsBTCPayNetwork.AssetId == assetMoney.AssetId
|
||||||
|
// ? new Money(assetMoney.Quantity)
|
||||||
|
// : Money.Zero;
|
||||||
|
// }
|
||||||
|
// throw new NotSupportedException("IMoney type not supported");
|
||||||
|
default:
|
||||||
|
throw new NotSupportedException("IMoney type not supported");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -20,10 +20,10 @@ namespace BTCPayServer.Payments.Bitcoin
|
|||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
public BitcoinLikePaymentData(Coin coin, bool rbf)
|
public BitcoinLikePaymentData(TxOut txout, OutPoint outpoint, bool rbf)
|
||||||
{
|
{
|
||||||
Outpoint = coin.Outpoint;
|
Outpoint = outpoint;
|
||||||
Output = coin.TxOut;
|
Output = txout;
|
||||||
ConfirmationCount = 0;
|
ConfirmationCount = 0;
|
||||||
RBF = rbf;
|
RBF = rbf;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -157,7 +157,7 @@ namespace BTCPayServer.Payments.Bitcoin
|
|||||||
var invoice = (await _InvoiceRepository.GetInvoicesFromAddresses(new [] {key})).FirstOrDefault();
|
var invoice = (await _InvoiceRepository.GetInvoicesFromAddresses(new [] {key})).FirstOrDefault();
|
||||||
if (invoice != null)
|
if (invoice != null)
|
||||||
{
|
{
|
||||||
var paymentData = new BitcoinLikePaymentData(txCoin, evt.TransactionData.Transaction.RBF);
|
var paymentData = new BitcoinLikePaymentData(txCoin.TxOut, txCoin.Outpoint, evt.TransactionData.Transaction.RBF);
|
||||||
var alreadyExist = GetAllBitcoinPaymentData(invoice).Where(c => c.GetPaymentId() == paymentData.GetPaymentId()).Any();
|
var alreadyExist = GetAllBitcoinPaymentData(invoice).Where(c => c.GetPaymentId() == paymentData.GetPaymentId()).Any();
|
||||||
if (!alreadyExist)
|
if (!alreadyExist)
|
||||||
{
|
{
|
||||||
@@ -338,7 +338,7 @@ namespace BTCPayServer.Payments.Bitcoin
|
|||||||
foreach (var coin in coins.Where(c => !alreadyAccounted.Contains(c.Coin.Outpoint)))
|
foreach (var coin in coins.Where(c => !alreadyAccounted.Contains(c.Coin.Outpoint)))
|
||||||
{
|
{
|
||||||
var transaction = await wallet.GetTransactionAsync(coin.Coin.Outpoint.Hash);
|
var transaction = await wallet.GetTransactionAsync(coin.Coin.Outpoint.Hash);
|
||||||
var paymentData = new BitcoinLikePaymentData(coin.Coin, transaction.Transaction.RBF);
|
var paymentData = new BitcoinLikePaymentData(coin.Coin.TxOut, coin.Coin.Outpoint, transaction.Transaction.RBF);
|
||||||
var payment = await _InvoiceRepository.AddPayment(invoice.Id, coin.Timestamp, paymentData, network).ConfigureAwait(false);
|
var payment = await _InvoiceRepository.AddPayment(invoice.Id, coin.Timestamp, paymentData, network).ConfigureAwait(false);
|
||||||
alreadyAccounted.Add(coin.Coin.Outpoint);
|
alreadyAccounted.Add(coin.Coin.Outpoint);
|
||||||
if (payment != null)
|
if (payment != null)
|
||||||
|
|||||||
@@ -181,7 +181,7 @@ namespace BTCPayServer.Services.Wallets
|
|||||||
public async Task<Money> GetBalance(DerivationStrategyBase derivationStrategy, CancellationToken cancellation = default(CancellationToken))
|
public async Task<Money> GetBalance(DerivationStrategyBase derivationStrategy, CancellationToken cancellation = default(CancellationToken))
|
||||||
{
|
{
|
||||||
UTXOChanges changes = await GetUTXOChanges(derivationStrategy, cancellation);
|
UTXOChanges changes = await GetUTXOChanges(derivationStrategy, cancellation);
|
||||||
return changes.GetUnspentUTXOs().Select(c => c.Value).Sum();
|
return changes.GetUnspentUTXOs().Select(c => c.Value.GetValue(_Network)).Sum();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user