btcpayserver/BTCPayServer/Views/Stores/ImportWallet/Scan.cshtml

76 lines
2.2 KiB
Text
Raw Normal View History

Wallet setup redesign (#2164) * 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
2021-02-11 11:48:54 +01:00
@model WalletSetupViewModel
@addTagHelper *, BundlerMinifier.TagHelpers
@{
Layout = "_LayoutWalletSetup";
ViewData["Title"] = "Scan QR code";
}
@section Navbar {
<a asp-controller="Stores" asp-action="ImportWallet" asp-route-storeId="@Model.StoreId" asp-route-cryptoCode="@Model.CryptoCode" asp-route-method="">
<vc:icon symbol="back" />
</a>
}
<header class="text-center">
<h1>@ViewData["Title"]</h1>
<p class="lead text-secondary mt-3">Scan the extended public key, also called "xpub", shown on your wallet's display.</p>
</header>
@if (!ViewContext.ModelState.IsValid)
{
<div asp-validation-summary="All" class="text-danger"></div>
}
<div class="my-5">
<partial name="CameraScanner"/>
<form id="qr-import-form" method="post">
<input asp-for="WalletFileContent" type="hidden" />
</form>
</div>
<p class="mt-5">
Generate a QR code of the extended public key in your wallet (see instructions for supported wallets below).
Allow the browser access to your camera and hold the code to the camera when the scan prompt appears.
</p>
<table class="table table-sm">
<thead>
<tr>
<th>Wallet</th>
<th>Instructions</th>
</tr>
</thead>
<tbody>
<tr>
<td class="text-nowrap">Cobo Vault</td>
<td>Open Wallet Settings Show/Export XPUB</td>
</tr>
<tr>
<td>BlueWallet</td>
<td>Open Wallet Settings Show Wallet XPUB</td>
</tr>
<tr>
<td>Specter DIY</td>
<td>Master public keys Select key Disable "Show derivation path"</td>
</tr>
</tbody>
</table>
@section Scripts {
@await Html.PartialAsync("_ValidationScriptsPartial")
<bundle name="wwwroot/bundles/camera-bundle.min.js"></bundle>
<link href="~/vendor/vue-qrcode-reader/vue-qrcode-reader.css" rel="stylesheet" asp-append-version="true"/>
<script type="text/javascript">
window.coinName = "@Model.Network.DisplayName.ToLowerInvariant()";
window.addEventListener("load", async () => {
initCameraScanningApp("Scan wallet QR", data => {
document.getElementById("WalletFileContent").value = data;
document.getElementById("qr-import-form").submit();
});
});
</script>
}