arbitraryAddrOnlyTxIn :: Gen TxIn
arbitraryAddrOnlyTxIn = do
    o   <- arbitraryOutPoint
    inp <- oneof [ arbitraryPKHashCInput, arbitraryMulSigSHCInput ]
    s   <- arbitrary
    return $ TxIn o (encodeInputBS inp) s

-- | Arbitrary TxOut that can only be of type PayPKHash or PaySH
arbitraryAddrOnlyTxIn :: Gen TxIn
arbitraryAddrOnlyTxIn = do
    o   <- arbitraryOutPoint
    inp <- oneof [ arbitraryPKHashCInput, arbitraryMulSigSHCInput ]
    s   <- arbitrary
    return $ TxIn o (encodeInputBS inp) s

-- | Arbitrary TxOut that can only be of type PayPKHash or PaySH
arbitraryAddrOnlyTxIn = do
    o   <- arbitraryOutPoint
    inp <- oneof [ arbitraryPKHashCInput, arbitraryMulSigSHCInput ]
    s   <- arbitrary
    return $ TxIn o (encodeInputBS inp) s

-- | Arbitrary TxOut that can only be of type PayPKHash or PaySH