import monero.seed from quart import Blueprint, redirect, request, flash, render_template from quart_auth import login_required from lws.models import Wallet, User from lws.helpers import LWS from lws import config bp = Blueprint("meta", "meta") @bp.route("/") @login_required async def index(): admin = User.select().first() lws = LWS(admin.view_key) accounts = lws.list_accounts() data = {} for status in accounts: if status == "hidden": continue for account in accounts[status]: account["wallet"] = Wallet.select().where(Wallet.address ** account["address"]).first() account["status"] = status data[account["address"]] = account return await render_template( "index.html", config=config, data=data ) @bp.route("/utils") async def utils(): return await render_template("utils/index.html") @bp.route("/utils/mnemonic", methods=["GET", "POST"]) async def utils_mnemonic(): form = await request.form if form: seed = form.get("seed", "") if not seed: await flash("must provide mnemonic seed") return redirect("/utils/mnemonic") try: s = monero.seed.Seed(seed) return await render_template( "utils/mnemonic.html", results=s ) except Exception as e: print(f"failed to read mnemonic seed: {e}") await flash("failed to parse mnemonic seed") return await render_template("utils/mnemonic.html")