public TestBlocks(TestBlocks parent) { this.random = parent.random; this.txManager = parent.txManager; this.coinbasePrivateKey = parent.coinbasePrivateKey; this.coinbasePublicKey = parent.coinbasePublicKey; this.miner = parent.miner; this.rules = parent.rules; this.blocks = parent.blocks.ToImmutable().ToBuilder(); this.chain = parent.chain.ToImmutable().ToBuilder(); }
public void TestCreateCoinbaseAndSpend() { var txManager = new TransactionManager(); var keyPair = txManager.CreateKeyPair(); var privateKey = keyPair.Item1; var publicKey = keyPair.Item2; var coinbaseTx = txManager.CreateCoinbaseTransaction(publicKey, Encoding.ASCII.GetBytes("coinbase text!")).Transaction; var publicKeyScript = txManager.CreatePublicKeyScript(publicKey); var privateKeyScript = txManager.CreatePrivateKeyScript(coinbaseTx, 0, (byte)ScriptHashType.SIGHASH_ALL, privateKey, publicKey); var script = privateKeyScript.Concat(publicKeyScript); var scriptEngine = new ScriptEngine(); Assert.IsTrue(scriptEngine.VerifyScript(UInt256.Zero, 0, publicKeyScript.ToArray(), coinbaseTx, 0, script)); }