# coding: utf8
from __future__ import unicode_literals
import logging
from eth_account.messages import defunct_hash_message
from web3 import Web3
from mnemonic import Mnemonic
from api.content import encrypt_private_key_AES256
from backoffice.models import User
from tixsell import settings
from eth_account import Account


def run():
    codePin="2107"
    mnemo = Mnemonic("english")
    words = mnemo.generate(strength=256)  # Generate 24 words
    seed = mnemo.to_seed(words, passphrase=codePin)  # Create seed with PIN as passphrase
    user = User.objects.get(email='csurbier@idevotion.fr')
               
    # Create account from seed
    Account.enable_unaudited_hdwallet_features()
    account = Account.from_mnemonic(words)

    # Get keys
    private_key = account.key
    public_key = account.address
    print("private key: %s"%private_key.hex())
    print("public key: %s"%public_key)
    print("words: %s"%words)
    # Store encrypted values
    user.privateKey = encrypt_private_key_AES256(private_key.hex(), codePin)
    user.words = encrypt_private_key_AES256(words, codePin)
    user.generatedWallet=True
    user.walletAddress = public_key
    user.save()