arbitraryAddrOnlyTxOut :: Gen TxOut
arbitraryAddrOnlyTxOut = do
    v <- getTestCoin <$> arbitrarySatoshi
    out <- oneof [ arbitraryPKHashOutput, arbitrarySHOutput ]
    return $ TxOut v $ encodeOutputBS out

-- | Arbitrary SigInput with the corresponding private keys used
-- to generate the ScriptOutput or RedeemScript
arbitraryAddrOnlyTxOut :: Gen TxOut
arbitraryAddrOnlyTxOut = do
    v <- getTestCoin <$> arbitrarySatoshi
    out <- oneof [ arbitraryPKHashOutput, arbitrarySHOutput ]
    return $ TxOut v $ encodeOutputBS out

-- | Arbitrary SigInput with the corresponding private keys used
-- to generate the ScriptOutput or RedeemScript
arbitraryAddrOnlyTxOut = do
    v <- getTestCoin <$> arbitrarySatoshi
    out <- oneof [ arbitraryPKHashOutput, arbitrarySHOutput ]
    return $ TxOut v $ encodeOutputBS out

-- | Arbitrary SigInput with the corresponding private keys used
-- to generate the ScriptOutput or RedeemScript