private static async Task CreateLightningTx() { //Begin lightning test //For testing NBitcoin.Transaction aliceFunding = new NBitcoin.Transaction() { Outputs = { new NBitcoin.TxOut("1.0", alice) } }; NBitcoin.Coin[] aliceCoinsx = aliceFunding .Outputs .Select((o, i) => new NBitcoin.Coin(new NBitcoin.OutPoint(aliceFunding.GetHash(), i), o)) .ToArray(); //Create 2 of 2 NBitcoin.Script table = NBitcoin.PayToMultiSigTemplate .Instance .GenerateScriptPubKey(2, new[] { alice_secret.PubKey, alice_secret.PubKey }); Console.WriteLine(table); Console.WriteLine(table.Hash.GetAddress(NBitcoin.Network.TestNet)); NBitcoin.IDestination tableAddress = table.Hash.GetAddress(NBitcoin.Network.TestNet); var blockr = new NBitcoin.BlockrTransactionRepository(NBitcoin.Network.TestNet); Transaction aliceTx = blockr.GetAsync(new NBitcoin.uint256("f5c5e008f0cb9fc52487deb7531a8019e2d78c51c3c40e53a45248e0712102a3")).Result; NBitcoin.Transaction bobTx = blockr.GetAsync(new NBitcoin.uint256("c60193a33174a1252df9deb522bac3e5532e0c756d053e4ac9999ca17a79c74e")).Result; NBitcoin.Coin[] alicCoins = aliceTx .Outputs .Select((o, i) => new NBitcoin.Coin(new NBitcoin.OutPoint(aliceTx.GetHash(), i), o)) .ToArray(); Coin[] bobCoins = bobTx .Outputs .Select((o, i) => new NBitcoin.Coin(new NBitcoin.OutPoint(bobTx.GetHash(), i), o)) .ToArray(); var txBuilder = new TransactionBuilder(); var tx_alice = txBuilder .AddKeys(alice_secret.PrivateKey) .AddCoins(alicCoins) .Send(tableAddress, new NBitcoin.Money(5000000)) .SetChange(alice) .SendFees(NBitcoin.Money.Coins(0.001m)) .BuildTransaction(true); //Console.WriteLine(tx_alice.ToHex()); string signature = alice_secret.PrivateKey.SignMessage("1msPJhg9GPzMN6twknwmSQvrUKZbZnk51Tv398b5fe2-da27-4772-81ce-37fa615719b52CALL 5000000"); Console.WriteLine(signature); Console.ReadKey(); var tx = txBuilder .AddKeys(bob_secret.PrivateKey) .AddCoins(bobCoins) .Send(tableAddress, new NBitcoin.Money(100000)) .SetChange(bob) .SendFees(NBitcoin.Money.Coins(0.001m)) .BuildTransaction(true); Boolean ok = txBuilder.Verify(tx); signature = bob_secret.PrivateKey.SignMessage("CALL 100000"); Console.WriteLine(signature); //BE.Providers.Blockr blockr = new BE.Providers.Blockr(true); //return blockr.BroadCastTx(tx.ToHex()); Console.WriteLine(tx.ToHex()); }