mirror of
https://github.com/btcpayserver/btcpayserver.git
synced 2025-02-28 08:54:13 +01:00
* Add PSBT QR code scan/show This PR introduces support to show and read PSBTs in BC-UR format via animated QR codes. This allows you to use BTCPay with HW devices such as Cobo Vault and Blue wallet to sign transactions without ever exposing the keys outside of that device. Spec: https://github.com/BlockchainCommons/Research/blob/master/papers/bcr-2020-005-ur.md I've also bumped the QR code library we sue as it had a bug with large datasets. * Reuse same code for all and allow wallet import via QR code scan * remove unecessary js vendor files * Allow export wallet from settings via QR * formatting * bundle * fix wallet receive bundle
59 lines
1.9 KiB
C#
59 lines
1.9 KiB
C#
using System.Collections.Generic;
|
|
using System.ComponentModel.DataAnnotations;
|
|
using Microsoft.AspNetCore.Http;
|
|
using NBitcoin;
|
|
|
|
namespace BTCPayServer.Models.StoreViewModels
|
|
{
|
|
public class DerivationSchemeViewModel
|
|
{
|
|
|
|
public DerivationSchemeViewModel()
|
|
{
|
|
}
|
|
|
|
[Display(Name = "Derivation scheme")]
|
|
public string DerivationScheme
|
|
{
|
|
get; set;
|
|
}
|
|
|
|
public List<(string KeyPath, string Address, RootedKeyPath RootedKeyPath)> AddressSamples
|
|
{
|
|
get; set;
|
|
} = new List<(string KeyPath, string Address, RootedKeyPath RootedKeyPath)>();
|
|
|
|
public string CryptoCode { get; set; }
|
|
public string KeyPath { get; set; }
|
|
public string RootFingerprint { get; set; }
|
|
[Display(Name = "Hint address")]
|
|
public string HintAddress { get; set; }
|
|
public bool Confirmation { get; set; }
|
|
public bool Enabled { get; set; } = true;
|
|
|
|
public KeyPath RootKeyPath { get; set; }
|
|
|
|
[Display(Name = "Wallet File")]
|
|
public IFormFile WalletFile { get; set; }
|
|
[Display(Name = "Wallet File Content")]
|
|
public string WalletFileContent { get; set; }
|
|
public string Config { get; set; }
|
|
public string Source { get; set; }
|
|
public string DerivationSchemeFormat { get; set; }
|
|
public string AccountKey { get; set; }
|
|
public BTCPayNetwork Network { get; set; }
|
|
public bool CanUseHotWallet { get; set; }
|
|
public bool CanUseRPCImport { get; set; }
|
|
|
|
public RootedKeyPath GetAccountKeypath()
|
|
{
|
|
if (KeyPath != null && RootFingerprint != null &&
|
|
NBitcoin.KeyPath.TryParse(KeyPath, out var p) &&
|
|
HDFingerprint.TryParse(RootFingerprint, out var fp))
|
|
{
|
|
return new RootedKeyPath(fp, p);
|
|
}
|
|
return null;
|
|
}
|
|
}
|
|
}
|