Can only sign with NBX if imported with NBX

This commit is contained in:
nicolas.dorier 2020-06-07 09:38:15 +09:00
parent ef271a088a
commit 56283df05a
No known key found for this signature in database
GPG key ID: 6618763EF09186FE
3 changed files with 11 additions and 7 deletions

View file

@ -475,11 +475,14 @@ namespace BTCPayServer.Controllers
if (await CanUseHotWallet())
{
var derivationScheme = GetDerivationSchemeSettings(walletId);
var extKey = await ExplorerClientProvider.GetExplorerClient(walletId.CryptoCode)
.GetMetadataAsync<string>(derivationScheme.AccountDerivation,
WellknownMetadataKeys.MasterHDKey);
return SignWithSeed(walletId,
new SignWithSeedViewModel() {SeedOrKey = extKey, SigningContext = signingContext });
if (derivationScheme.IsHotWallet)
{
var extKey = await ExplorerClientProvider.GetExplorerClient(walletId.CryptoCode)
.GetMetadataAsync<string>(derivationScheme.AccountDerivation,
WellknownMetadataKeys.MasterHDKey);
return SignWithSeed(walletId,
new SignWithSeedViewModel() { SeedOrKey = extKey, SigningContext = signingContext });
}
}
TempData.SetStatusMessageModel(new StatusMessageModel()
{

View file

@ -151,6 +151,8 @@ namespace BTCPayServer
[JsonIgnore]
public BTCPayNetwork Network { get; set; }
public string Source { get; set; }
[JsonIgnore]
public bool IsHotWallet => Source == "NBXplorer";
[Obsolete("Use GetAccountKeySettings().AccountKeyPath instead")]
[JsonProperty(DefaultValueHandling = DefaultValueHandling.Ignore)]

View file

@ -169,8 +169,7 @@ namespace BTCPayServer.Payments.Bitcoin
var prefix = $"{supportedPaymentMethod.PaymentId.ToPrettyString()}:";
var nodeSupport = _dashboard?.Get(network.CryptoCode)?.Status?.BitcoinStatus?.Capabilities
?.CanSupportTransactionCheck is true;
bool isHotwallet = supportedPaymentMethod.Source == "NBXplorer";
onchainMethod.PayjoinEnabled &= isHotwallet && nodeSupport;
onchainMethod.PayjoinEnabled &= supportedPaymentMethod.IsHotWallet && nodeSupport;
if (!isHotwallet)
logs.Write($"{prefix} Payjoin should have been enabled, but your store is not a hotwallet");
if (!nodeSupport)