예제 #1
0
        public void InterpretShortNotationByConstructor_ValidNotationInvalidData_InvalidSignature()
        {
            var shortNotation = "1|10|3";

            var signature = new WalletSignature(shortNotation);

            Assert.IsFalse(signature.IsValid());
        }
예제 #2
0
        public void IsValid_ValidSignature_True()
        {
            var signature = new WalletSignature()
            {
                PartsThreshold = 3,
                PartsTotal     = 6
            };

            var result = signature.IsValid();

            Assert.IsTrue(result);
        }
예제 #3
0
        public void IsValid_NegativeSharesTotal_False()
        {
            var expectedMessage = Strings.SharesTotalCannotBeLessThanOne;
            var signature       = new WalletSignature()
            {
                PartsThreshold = 3,
                PartsTotal     = -8
            };

            string message;
            var    result = signature.IsValid(out message);

            Assert.IsFalse(result);
            Assert.That(message, Is.EqualTo(expectedMessage));
        }
예제 #4
0
        static void GenerateSharedWallet(string thresholdStr, string totalStr, string privateKey)
        {
            // Validate and convert values
            var valid = !string.IsNullOrWhiteSpace(thresholdStr) &&
                        !string.IsNullOrWhiteSpace(totalStr) &&
                        !string.IsNullOrWhiteSpace(privateKey);

            int threshold = -1;

            valid = valid && int.TryParse(thresholdStr, out threshold);

            int total = -1;

            valid = valid && int.TryParse(totalStr, out total);

            var signature = new WalletSignature()
            {
                PartsThreshold = threshold,
                PartsTotal     = total
            };

            if (!valid || !signature.IsValid())
            {
                // Show instructions if parametes are invalid.
                PrintUsage();
            }
            else
            {
                // Generate wallet
                var wallet = new Wallet(signature, privateKey);

                if (!wallet.IsValid())
                {
                    PrintUsage();
                    return;
                }

                // Print parts
                Console.WriteLine("Parts generated: ");
                foreach (var part in wallet.Parts)
                {
                    Console.WriteLine(" - " + part.GetShortNotation());
                }
            }
        }