@using MoneroLikePaymentMethodViewModel = BTCPayServer.Services.Altcoins.Monero.UI.UIMoneroLikeStoreController.MoneroLikePaymentMethodViewModel @using MoneroLikeSettlementThresholdChoice = BTCPayServer.Services.Altcoins.Monero.UI.UIMoneroLikeStoreController.MoneroLikeSettlementThresholdChoice; @model MoneroLikePaymentMethodViewModel @{ ViewData.SetActivePage(Model.CryptoCode, $"{Model.CryptoCode} Settings", Model.CryptoCode); } <partial name="_StatusMessage" /> <div class="row"> <div class="col-md-8"> @if (!ViewContext.ModelState.IsValid) { <div asp-validation-summary="All"></div> } @if (Model.Summary != null) { <div class="card"> <ul class="list-group list-group-flush"> <li class="list-group-item">Node available: @Model.Summary.DaemonAvailable</li> <li class="list-group-item">Wallet available: @Model.Summary.WalletAvailable (@(Model.WalletFileFound ? "Wallet file present" : "Wallet file not found"))</li> <li class="list-group-item">Last updated: @Model.Summary.UpdatedAt</li> <li class="list-group-item">Synced: @Model.Summary.Synced (@Model.Summary.CurrentHeight / @Model.Summary.TargetHeight)</li> </ul> </div> } @if (!Model.WalletFileFound || Model.Summary.WalletHeight == default) { <form method="post" asp-action="GetStoreMoneroLikePaymentMethod" asp-route-storeId="@Context.GetRouteValue("storeId")" asp-route-cryptoCode="@Context.GetRouteValue("cryptoCode")" class="mt-4" enctype="multipart/form-data"> <div class="card my-2"> <h3 class="card-title p-2">Upload Wallet</h3> <div class="form-group p-2"> <label asp-for="WalletFile" class="form-label"></label> <input class="form-control" asp-for="WalletFile" required> <span asp-validation-for="WalletFile" class="text-danger"></span> </div> <div class="form-group p-2"> <label asp-for="WalletKeysFile" class="form-label"></label> <input class="form-control" asp-for="WalletKeysFile" required> <span asp-validation-for="WalletKeysFile" class="text-danger"></span> </div> <div class="form-group p-2"> <label asp-for="WalletPassword" class="form-label"></label> <input class="form-control" asp-for="WalletPassword"> <span asp-validation-for="WalletPassword" class="text-danger"></span> </div> <div class="card-footer text-right"> <button name="command" value="upload-wallet" class="btn btn-secondary" type="submit">Upload</button> </div> </div> </form> } <form method="post" asp-action="GetStoreMoneroLikePaymentMethod" asp-route-storeId="@Context.GetRouteValue("storeId")" asp-route-cryptoCode="@Context.GetRouteValue("cryptoCode")" class="mt-4" enctype="multipart/form-data"> <input type="hidden" asp-for="CryptoCode"/> @if (!Model.WalletFileFound || Model.Summary.WalletHeight == default) { <input type="hidden" asp-for="AccountIndex"/> } else { <div class="form-group"> <label asp-for="AccountIndex" class="control-label"></label> @if (@Model.Accounts != null && Model.Accounts.Any()) { <select asp-for="AccountIndex" asp-items="Model.Accounts" class="form-control"></select> <span asp-validation-for="AccountIndex" class="text-danger"></span> } else { <span>No accounts available on the current wallet</span> <input type="hidden" asp-for="AccountIndex"/> } </div> <div class="form-group"> <div class="input-group my-3"> <input type="text" class="form-control" placeholder="New account label" asp-for="NewAccountLabel"> <button name="command" value="add-account" class="input-group-text btn btn-secondary" type="submit">Add account</button> </div> </div> } <div class="form-group"> <label asp-for="Enabled"></label> <input asp-for="Enabled" type="checkbox" class="form-check"/> <span asp-validation-for="Enabled" class="text-danger"></span> </div> <div class="form-group"> <label asp-for="SettlementConfirmationThresholdChoice" class="form-label"></label> <a href="https://docs.btcpayserver.org/FAQ/Stores/#consider-the-invoice-confirmed-when-the-payment-transaction" target="_blank" rel="noreferrer noopener" title="More information..."> <vc:icon symbol="info" /> </a> <select asp-for="SettlementConfirmationThresholdChoice" asp-items="Html.GetEnumSelectList<MoneroLikeSettlementThresholdChoice>()" class="form-select w-auto" onchange=" document.getElementById('unconfirmed-warning').hidden = this.value !== '@((int)MoneroLikeSettlementThresholdChoice.ZeroConfirmation)'; document.getElementById('custom-confirmation-value').hidden = this.value !== '@((int)MoneroLikeSettlementThresholdChoice.Custom)';"> </select> <span asp-validation-for="SettlementConfirmationThresholdChoice" class="text-danger"></span> <p class="info-note my-3 text-warning" id="unconfirmed-warning" role="alert" hidden="@(Model.SettlementConfirmationThresholdChoice is not MoneroLikeSettlementThresholdChoice.ZeroConfirmation)"> <vc:icon symbol="warning" /> Choosing to accept an unconfirmed invoice can lead to double-spending and is strongly discouraged. </p> </div> <div class="form-group" id="custom-confirmation-value" hidden="@(Model.SettlementConfirmationThresholdChoice is not MoneroLikeSettlementThresholdChoice.Custom)"> <label asp-for="CustomSettlementConfirmationThreshold" class="form-label"></label> <input asp-for="CustomSettlementConfirmationThreshold" type="number" value="@(Model.CustomSettlementConfirmationThreshold)" class="form-control w-auto" min="0" max="100" pattern="\d+" /> <span asp-validation-for="CustomSettlementConfirmationThreshold" class="text-danger"></span> </div> <div class="form-group"> <button type="submit" class="btn btn-primary" id="SaveButton">Save</button> <a class="btn btn-secondary" asp-action="GetStoreMoneroLikePaymentMethods" asp-route-storeId="@Context.GetRouteValue("storeId")" asp-route-cryptoCode="@Context.GetRouteValue("cryptoCode")" asp-controller="UIMoneroLikeStore"> Back to list </a> </div> </form> </div> </div> @section PageFootContent { @await Html.PartialAsync("_ValidationScriptsPartial") }