public Transaction BuildTransaction(IDestination receiverAddress, Money amount = null)
        {
            var transaction = new Transaction();

            transaction.AddOutput(new TxOut(amount ?? TestingValues.GetMoney(), receiverAddress));
            return(transaction);
        }
        protected Transaction GetTransactionWithInputs(
            Network network,
            Key[] senderSecrets,
            Script senderScript,
            Script receiverScript,
            byte[] opReturnBytes = null,
            Money amount         = null,
            bool withChange      = true)
        {
            var txBuilder = new TransactionBuilder(network);

            amount = amount ?? TestingValues.GetMoney();
            Money change        = withChange ? TestingValues.GetMoney() : Money.Zero;
            var   multisigCoins = new ICoin[] { RandomCoin(amount + change, senderScript, true) };

            txBuilder
            .AddCoins(multisigCoins)
            .Send(receiverScript, amount)
            .SetChange(senderScript)
            .BuildTransaction(false);

            txBuilder.AddKeys(senderSecrets);

            Transaction signed = txBuilder.BuildTransaction(true);

            if (opReturnBytes != null)
            {
                signed.AddOpReturn(opReturnBytes);
            }

            return(signed);
        }
 private OutPoint RandomOutpoint()
 {
     return(new OutPoint(TestingValues.GetUint256(), 0));
 }