45 lines
1.7 KiB
Python
45 lines
1.7 KiB
Python
from flask import request, render_template, session, redirect, url_for
|
|
from wallet.blueprints.authentication import authentication_bp
|
|
from wallet.library.daemon import daemon
|
|
from wallet.library.wallet import wallet
|
|
from monero.seed import Seed
|
|
from binascii import hexlify
|
|
from datetime import datetime
|
|
from os import urandom
|
|
|
|
@authentication_bp.route("/login", methods=["GET", "POST"])
|
|
def login():
|
|
error = None
|
|
if request.method == "POST":
|
|
if request.form.get('seed'):
|
|
try:
|
|
seed = Seed(str(request.form['seed']))
|
|
|
|
session['seed'] = seed.phrase
|
|
session['start_time'] = datetime.utcnow()
|
|
session['public_address'] = seed.public_address()
|
|
session['private_spend_key'] = seed.secret_spend_key()
|
|
session['public_spend_key'] = seed.public_spend_key()
|
|
session['private_view_key'] = seed.secret_view_key()
|
|
session['public_view_key'] = seed.public_view_key()
|
|
session['wallet_password'] = hexlify(urandom(64))
|
|
if request.form.get('persistence'):
|
|
session['wallet_persistence'] = "Enabled"
|
|
else:
|
|
session['wallet_persistence'] = "Disabled"
|
|
return redirect(url_for('account.overview'))
|
|
except AssertionError:
|
|
error = "Invalid seed checksum"
|
|
except Exception as e:
|
|
error = "Invalid seed {0}".format(e)
|
|
|
|
else:
|
|
error = "Must provide a seed"
|
|
|
|
return render_template("login.html", error=error)
|
|
|
|
@authentication_bp.route("/logout")
|
|
def logout():
|
|
session.clear()
|
|
return redirect(url_for('index'))
|