Exemplo n.º 1
0
        static public void Import(string privatekey, string walletFile = "./Data/walletImport.json")
        {
            var walletKey = new WalletKey();

            walletKey.random = privatekey.HexToBytes();
            ed25519.ed25519_create_keypair(walletKey.publickey, walletKey.privatekey, walletKey.random);

            var keys = new List <WalletKey>();

            keys.Add(walletKey);

            var walletJson = new WalletJson();

            walletJson.curIndex = 0;
            walletJson.accounts = new List <WalletJsonAddress>();

            var aes256 = new AesEverywhere.AES256();

            for (int i = 0; i < keys.Count; i++)
            {
                var walletJsonAddress = new WalletJsonAddress();

                walletJsonAddress.address   = keys[i].ToAddress();
                walletJsonAddress.encrypted = aes256.Encrypt(keys[i].random.ToHexString(), "smartx123");

                walletJson.accounts.Add(walletJsonAddress);
            }

            File.WriteAllText(walletFile, JsonHelper.ToJson(walletJson), System.Text.Encoding.UTF8);
        }
Exemplo n.º 2
0
        int OpenWallet(string password)
        {
            passwords = password;
            try
            {
                if (!File.Exists(walletFile))
                {
                    return(-1);
                }

                string allText    = File.ReadAllText(walletFile, System.Text.Encoding.UTF8);
                var    walletJson = JsonHelper.FromJson <WalletJson>(allText);
                if (walletJson == null || walletJson.version < 101)
                {
                    return(-3);
                }
                var aes256 = new AesEverywhere.AES256();

                for (int i = 0; i < walletJson.accounts.Count; i++)
                {
                    WalletKey walletKey = new WalletKey();
                    string    base64    = aes256.Decrypt(walletJson.accounts[i].encrypted, passwords);
                    walletKey.random = base64.HexToBytes();

                    ed25519.ed25519_create_keypair(walletKey.publickey, walletKey.privatekey, walletKey.random);

                    if (walletKey.ToAddress() != walletJson.accounts[i].address)
                    {
                        return(-2);
                    }

                    keys.Add(walletKey);
                }

                curIndex = walletJson.curIndex;
            }
            catch (Exception)
            {
                return(-2);
            }
            return(1);
        }
Exemplo n.º 3
0
        public void SaveWallet()
        {
            var walletJson = new WalletJson();

            walletJson.curIndex = curIndex;
            walletJson.accounts = new List <WalletJsonAddress>();

            var aes256 = new AesEverywhere.AES256();

            for (int i = 0; i < keys.Count; i++)
            {
                var walletJsonAddress = new WalletJsonAddress();

                walletJsonAddress.address   = keys[i].ToAddress();
                walletJsonAddress.encrypted = aes256.Encrypt(keys[i].random.ToHexString(), passwords);

                walletJson.accounts.Add(walletJsonAddress);
            }

            File.WriteAllText(walletFile, JsonHelper.ToJson(walletJson), System.Text.Encoding.UTF8);
        }