btcpayserver/BTCPayServer/Views/UIStores/ImportWallet/Scan.cshtml
d11n 0f8da123b8
UI: Move section navigation to sidebar (#5744)
* UI: Move section navigation to sidebar

* Scroll active nav link into view

* Move CTAs to top right

* Server Settings: Make Policies first page

* Responsive table fixes

* Spacing fixes

* Add breadcrumb samples

* store settings fixes

* payment request fixes

* updates pull payment title

* adds invoice detail fix

* updates server settings breadcrumbs + copy fix

* Don't open Server Settings on Plugins page

* Add breadcrumbs to pull payment views

* adds breadcrumbs to account

* server and store breadcrumb fixes

* fixes access tokens

* Fix payment processor breadcrumbs

* fixes webhook 404

* Final touches

* Fix test

* Add breadcrumb for email rules page

* Design system updates

---------

Co-authored-by: dstrukt <gfxdsign@gmail.com>
2024-06-19 15:23:10 +02:00

106 lines
3.7 KiB
Text
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

@inject BTCPayServer.Security.ContentSecurityPolicies Csp
@model WalletSetupViewModel
@{
Layout = "_LayoutWalletSetup";
ViewData.SetActivePage(StoreNavPages.OnchainSettings, "Scan QR code", $"{Context.GetStoreData().Id}-{Model.CryptoCode}");
Csp.UnsafeEval();
}
@section Navbar {
<a asp-controller="UIStores" 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"></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-hover">
<thead>
<tr>
<th>Wallet</th>
<th>Instructions</th>
</tr>
</thead>
<tbody>
<tr>
<td>BlueWallet</td>
<td>Open Wallet Settings Show Wallet XPUB</td>
</tr>
<tr>
<td class="text-nowrap">Cobo Vault</td>
<td>Open Wallet Settings Show/Export XPUB</td>
</tr>
<tr>
<td class="text-nowrap">Keystone Vault</td>
<td>Open Wallet Settings Show/Export XPUB</td>
</tr>
<tr>
<td>Passport</td>
<td>Wallet Connect Wallet BTCPay QR Code</td>
</tr>
<tr>
<td>Specter DIY</td>
<td>Master public keys Select key</td>
</tr>
<tr>
<td>SeedSigner</td>
<td>Seeds Select seed Export XPUB BlueWallet</td>
</tr>
</tbody>
</table>
@section PageHeadContent {
<link href="~/vendor/vue-qrcode-reader/vue-qrcode-reader.css" rel="stylesheet" asp-append-version="true"/>
}
@section PageFootContent {
<partial name="_ValidationScriptsPartial"/>
<script src="~/vendor/vuejs/vue.min.js" asp-append-version="true"></script>
<script src="~/vendor/vue-qrcode/vue-qrcode.min.js" asp-append-version="true"></script>
<script src="~/vendor/ur-registry/urlib.min.js" asp-append-version="true"></script>
<script src="~/vendor/bbqr/bbqr.iife.js" asp-append-version="true"></script>
<script src="~/vendor/vue-qrcode-reader/VueQrcodeReader.umd.min.js" asp-append-version="true"></script>
<script>
window.coinName = "@Model.Network.DisplayName.ToLowerInvariant()";
document.addEventListener("DOMContentLoaded", function () {
initCameraScanningApp("Scan wallet QR", data => {
let xpub = "";
if (typeof(data) === "object") {
if (data.type === "crypto-account") {
const account = window.URlib.CryptoAccount.fromCBOR(data.cbor);
const [descriptor] = account.getOutputDescriptors();
xpub = descriptor.getHDKey().getBip32Key();
} else {
console.error('Unexpected UR type', data.type)
}
} else if (typeof(data) === 'string') {
xpub = data;
}
// submit
document.getElementById("WalletFileContent").value = xpub;
document.getElementById("qr-import-form").submit();
});
});
</script>
}