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); }
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); }
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); }