mirror of
https://github.com/btcpayserver/btcpayserver.git
synced 2025-02-23 14:40:36 +01:00
* Prepare existing layouts and views * Add icon view component and sprite svg * Add wallet setup basics * Add import method view basics * Use external sprite file instead of inline svg * Refactor hardware wallet setup flow * Manually enter an xpub * Prepare other views * Update views and models * Finalize wallet setup flow * Updat tests, part 1 * Update tests, part 2 * Vaul: Fix missing retry button * Add better Scan QR subtext Still tbd. * Make wallet account an advanced setting * Prevent empty xpub * Use textarea for seed input * Remove redundant error message for missing file upload * Confirm store updates after generating a new wallet * Update wording * Modify existing wallets * Fix proposed method name * Suggest using ColdCard Electrum export option only Advise the user to use the electrum export of the coldcard instead of saying either electrum or wasabi export file … the electurm one contains more info, e.g. the wasabi one doesn't include the account key path. * More concise WalletSetupMethod setting * Test fix * Update wallet removal code * Fix back navigation quirk in change wallet case * Fix behaviour on wallet enable/disable * Fix initial wallet setup * Improve modify view and messages * Test fixes * Seed import fix Uses the correct form url for confirming addresses * Quickfixes from design meeting * Add enable toggle switch on modify page * Confirm wallet removal * Update setup view * Update import view * Icon finetuning * Improve import options page * Refactor QR code scanner Allow for usage with and without modal * Update copy and instructions on import pages * Split generate options: Hot wallet and watch-only * Implement hot wallet options correctly * Minor test changes * Navbar improvements * Fix tables * Fix badge color * Routing related updates Thanks @kukks for the suggestions! * Wording updates Thanks @kukks for the suggestions! * Extend address types table for xpub import Thanks @kukks for the suggestions! * Rename controller * Unify precondition checks * Improve removal warning for hot wallets * Add tooltip on why seed import is not recommended * Add tooltip icon * Add Specter import info
57 lines
2 KiB
C#
57 lines
2 KiB
C#
using System.Collections.Generic;
|
|
using System.ComponentModel.DataAnnotations;
|
|
using Microsoft.AspNetCore.Http;
|
|
using NBitcoin;
|
|
|
|
namespace BTCPayServer.Models.StoreViewModels
|
|
{
|
|
public class 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; }
|
|
[Display(Name = "Root fingerprint")]
|
|
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; }
|
|
[Display(Name = "Derivation scheme format")]
|
|
public string DerivationSchemeFormat { get; set; }
|
|
[Display(Name = "Account key")]
|
|
public string AccountKey { get; set; }
|
|
public BTCPayNetwork Network { get; set; }
|
|
[Display(Name = "Can use hot wallet")]
|
|
public bool CanUseHotWallet { get; set; }
|
|
[Display(Name = "Can use RPC import")]
|
|
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;
|
|
}
|
|
}
|
|
}
|