arbitraryAddrOnlyTx :: Gen Tx
arbitraryAddrOnlyTx = do
    v    <- arbitrary
    ni   <- choose (0,5)
    no   <- choose (0,5)
    inps <- vectorOf ni arbitraryAddrOnlyTxIn
    outs <- vectorOf no arbitraryAddrOnlyTxOut
    t    <- arbitrary
    return $ createTx v inps outs t

-- | Arbitrary TxIn that can only be of type SpendPKHash or
-- SpendScriptHash (multisig). Only compressed public keys are used.
arbitraryAddrOnlyTx :: Gen Tx
arbitraryAddrOnlyTx = do
    v    <- arbitrary
    ni   <- choose (0,5)
    no   <- choose (0,5)
    inps <- vectorOf ni arbitraryAddrOnlyTxIn
    outs <- vectorOf no arbitraryAddrOnlyTxOut
    t    <- arbitrary
    return $ createTx v inps outs t

-- | Arbitrary TxIn that can only be of type SpendPKHash or
-- SpendScriptHash (multisig). Only compressed public keys are used.
arbitraryAddrOnlyTx = do
    v    <- arbitrary
    ni   <- choose (0,5)
    no   <- choose (0,5)
    inps <- vectorOf ni arbitraryAddrOnlyTxIn
    outs <- vectorOf no arbitraryAddrOnlyTxOut
    t    <- arbitrary
    return $ createTx v inps outs t

-- | Arbitrary TxIn that can only be of type SpendPKHash or
-- SpendScriptHash (multisig). Only compressed public keys are used.