txnouttype typeRet;
IList<IEnumerable<byte>> solutions;
- Console.WriteLine("scriptPubKey solved: {0}", ScriptCode.Solver(scriptPubKey, out typeRet, out solutions));
- Console.WriteLine("scriptPubKey address: {0}", new CPubKey(solutions.First()).KeyID.ToString());
+ Console.WriteLine("\nscriptPubKey solved: {0}", ScriptCode.Solver(scriptPubKey, out typeRet, out solutions));
+ Console.WriteLine("scriptPubKey address: {0}\n", new CPubKey(solutions.First()).KeyID.ToString());
Console.WriteLine("scriptPubKeyHash solved: {0}", ScriptCode.Solver(scriptPubKeyHash, out typeRet, out solutions));
- Console.WriteLine("scriptPubKeyHash address: {0}", new CKeyID(new Hash160(solutions.First())).ToString());
+ Console.WriteLine("scriptPubKeyHash address: {0}\n", new CKeyID(new Hash160(solutions.First())).ToString());
+
+ /// Some SetDestination tests
+ CScript scriptDestinationTest = new CScript();
+
+
+ Console.WriteLine("Creating and decoding new destination with {0} as public key.\n", keyPair1.PubKey.ToString());
+
+ Console.WriteLine("Pay-to-Pubkey:");
+
+ scriptDestinationTest.SetDestination(keyPair1.PubKey);
+
+ Console.WriteLine("\tscriptDestinationTest solved: {0}", ScriptCode.Solver(scriptDestinationTest, out typeRet, out solutions));
+ Console.WriteLine("\tscriptDestinationTest address: {0}\n", new CPubKey(solutions.First()).KeyID.ToString());
+
+ Console.WriteLine("Pay-to-PubkeyHash:");
+
+ scriptDestinationTest.SetDestination(keyPair1.PubKey.KeyID);
+
+ Console.WriteLine("\tscriptDestinationTest solved: {0}", ScriptCode.Solver(scriptDestinationTest, out typeRet, out solutions));
+ Console.WriteLine("\tscriptDestinationTest address: {0}\n", new CKeyID(new Hash160(solutions.First())).ToString());
+
+ Console.WriteLine("Multisig with three random keys:");
+
+ CKeyPair k1 = new CKeyPair(), k2 = new CKeyPair(), k3 = new CKeyPair();
+
+ scriptDestinationTest.SetMultiSig(2, new CPubKey[] { k1.PubKey, k2.PubKey, k3.PubKey });
+
+ Console.WriteLine("\nscriptDestinationTest solved: {0}", ScriptCode.Solver(scriptDestinationTest, out typeRet, out solutions));
+ Console.WriteLine("scriptDestinationTest addresses: \n");
+
+ int nRequired = solutions.First().First();
+ int nKeys = solutions.Last().First();
+
+ foreach (IEnumerable<byte> keyBytes in solutions.Skip(1).Take(nKeys))
+ {
+ Console.WriteLine("\t{0}", (new CPubKey(keyBytes)).KeyID.ToString());
+ }
+
+ Console.WriteLine("\nnRequired={0}\n", nRequired);
+
+ Console.WriteLine("Script code: \n\n{0}", scriptDestinationTest.ToString());
+
+ Console.WriteLine("\nPay-to-ScriptHash with same script:\n");
+
+ CScript scriptP2SHTest = new CScript();
+ scriptP2SHTest.SetDestination(scriptDestinationTest.ScriptID);
+
+ Console.WriteLine("\tscriptP2SHTest solved: {0}", ScriptCode.Solver(scriptP2SHTest, out typeRet, out solutions));
+ Console.WriteLine("\tscriptP2SHTest address: {0}\n", new CScriptID(new Hash160(solutions.First())).ToString());
+
+
Console.ReadLine();
}