コード例 #1
0
        public static List <WalletFile> GetWalletFiles()
        {
            //Execute the query. This might write out a lot of files!
            List <WalletFile> possiblewalletfiles = new List <WalletFile>();


            foreach (var fi in walletFileQuery)
            {
                if (!fi.Name.Contains("peer") || !fi.Name.Contains("blk"))
                {
                    if (fi.Name.Contains("wallet"))

                    {
                        var wf = new WalletFile
                        {
                            FullPath = fi.FullName,
                            CoinName = fi.Directory.Name
                        };
                        var configFile = fi.Directory.GetFiles("*.conf", System.IO.SearchOption.TopDirectoryOnly).FirstOrDefault();
                        if (configFile != null)
                        {
                            wf.ConfigFile = configFile.FullName;
                            ParseWalletConfig(wf);
                        }
                        possiblewalletfiles.Add(wf);
                    }
                }
            }
            Wallets = possiblewalletfiles;

            return(possiblewalletfiles);
        }
コード例 #2
0
        private static void ParseWalletConfig(WalletFile wf)
        {
            try
            {
                var    reader = File.OpenText(wf.ConfigFile);
                string line;
                while ((line = reader.ReadLine()) != null)
                {
                    if (line.StartsWith("#"))
                    {
                        continue;
                    }

                    var items = line.Split('=');
                    if (items[0].Contains("rpcuser"))
                    {
                        wf.rpcuser = items[1];
                    }
                    if (items[0].Contains("rpcpassword"))
                    {
                        wf.rpcpassword = items[1];
                    }
                    if (items[0].Contains("rpcport"))
                    {
                        wf.rpcport = items[1];
                    }
                    if (items[0].Contains("addnode"))
                    {
                        var ip = IPAddress.Parse(items[1]);
                        wf.ExternalNodes.Add(ip);
                    }
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }
        }
コード例 #3
0
        private static void FindExecutables(WalletFile wf)
        {
            var rootFolder = Environment.GetEnvironmentVariable("PROGRAMFILES");
            var dir        = new DirectoryInfo(rootFolder);


            try
            {
                var fileList = dir.GetFiles("*.exe", System.IO.SearchOption.AllDirectories);

                //Create the wallet query
                var exeFileQuery =
                    from file in fileList
                    where file.Name.Contains(wf.CoinName)
                    orderby file.Name
                    select file;

                foreach (var fi in exeFileQuery)
                {
                    if (fi.Name.Contains("cli"))
                    {
                        wf.CLI = fi.FullName;
                    }

                    if (fi.Name.Contains("*d.exe"))
                    {
                        wf.ND = fi.FullName;
                    }

                    wf.EXE = fi.FullName;
                }
            }
            catch (UnauthorizedAccessException e)
            {
                var x = e;
            }
        }