コード例 #1
0
        private static void ImportKeys(IRpcService service, string privateKeysFilePath)
        {
            verbosityLevel.Writer.WriteLine($"Importing private keys");
            if (service == null)
            {
                verbosityLevel.Writer.WriteLine("No X node found to import keys into.");
                return;
            }

            if (!File.Exists(privateKeysFilePath))
            {
                verbosityLevel.Writer.WriteLine($"{privateKeysFilePath} file not found.");
            }

            var keysToImport = JsonConvert.DeserializeObject <List <ImportedKey> >(File.ReadAllText(privateKeysFilePath));

            verbosityLevel.Writer.WriteLine($"Found {keysToImport.Count} private keys to import.");

            for (int i = 0; i < keysToImport.Count; i++)
            {
                var keyToImport = keysToImport[i];

                var request = new GenericCall(
                    "importprivkey",
                    ("privkey", keyToImport.PrivateKey),
                    ("label", keyToImport.Path),
                    ("rescan", false) //i == keysToImport.Count - 1)
                    );

                var result = service.CallSingle(request);

                Console.Write($"\rImporting key {i + 1}/{keysToImport.Count}");
                if (result.HasError)
                {
                    verbosityLevel.Writer.WriteLine($"\rimportprivkey error on key {i + 1}/{keysToImport.Count}: {result.Error}");
                }
            }

            verbosityLevel.Writer.WriteLine($"Check if first key has been imported");
            var dumpPrivKeyResult = service.CallSingle(new GenericCall("dumpprivkey", ("address", keysToImport.First().Address)));

            if (dumpPrivKeyResult.HasError)
            {
                verbosityLevel.Writer.WriteLine($"dumpprivkey error: {dumpPrivKeyResult.Error}");
            }
            else
            {
                verbosityLevel.Writer.WriteLine($"dumpprivkey result: {dumpPrivKeyResult.Result}");
            }
        }