Example #1
0
        public bool Login(string pwd)
        {
            var wallet = WalletDao.GetActiveWallet();

            if (MD5Helper.ToMD5(pwd) != wallet.Password)
            {
                return(false);
            }

            var mnemonicWords = CryptHelper.AESDecryptText(wallet.MnemonicWords, pwd);
            var result        = KeyOperator.Instance.Recover(pwd, mnemonicWords);

            GlobalWallet.Set(new ActiveWallet
            {
                Id           = wallet.Id,
                Name         = wallet.WalletName,
                RootXPrivKey = result.RootExtPrivKeyWif,
                RootXPubKey  = result.RootExtPubKeyWif
            });

            return(true);
        }
Example #2
0
        public MnemonicResult CreateWallet(string password)
        {
            var result   = KeyOperator.Instance.CreateMnemonicRoot(password);
            var mnemonic = string.Join(" ", result.MnemonicWords);
            var wallet   = new WalletInfo
            {
                Id            = Guid.NewGuid().ToString("N"),
                WalletName    = "Wallet_" + DateTime.Now.ToString("yyyyMMddHHmm"),
                Password      = MD5Helper.ToMD5(password),
                MnemonicWords = CryptHelper.AESEncryptText(mnemonic, password)
            };

            var rootAddress = new AddressInfo
            {
                Id              = Guid.NewGuid().ToString("N"),
                Address         = result.RootAddress,
                ExtPubKeyWif    = result.RootExtPubKeyWif,
                WalletId        = wallet.Id,
                Network         = result.Network,
                KeyPath         = null,
                AddressType     = (long)CustomAddressType.Root,
                AddressCategory = (long)AddressCategory.Default,
                Name            = "Coinbase"
            };

            WalletDao.Create(wallet);
            AddressDao.Create(rootAddress);

            GlobalWallet.Set(new ActiveWallet
            {
                Id           = wallet.Id,
                Name         = wallet.WalletName,
                RootXPrivKey = result.RootExtPrivKeyWif,
                RootXPubKey  = result.RootExtPubKeyWif
            });

            return(result);
        }