urma-runtime 0.2.2

URMA publication planning, network transports and recovery
Documentation
use crate::error::Error;
use bitcoin::{
    OutPoint, ScriptBuf, Sequence, Transaction, TxIn, TxOut, Witness, absolute,
    transaction::Version,
};
use urma_chain::transaction::decode_bounded;

pub(crate) fn transaction(outpoint: OutPoint, output: TxOut) -> Transaction {
    Transaction {
        version: Version::TWO,
        lock_time: absolute::LockTime::ZERO,
        input: vec![TxIn {
            previous_output: outpoint,
            script_sig: ScriptBuf::new(),
            sequence: Sequence::ENABLE_RBF_NO_LOCKTIME,
            witness: Witness::new(),
        }],
        output: vec![output],
    }
}

pub(crate) fn decode(raw: &str, max_hex_bytes: usize) -> Result<Transaction, Error> {
    decode_bounded(raw, max_hex_bytes).map_err(Error::from)
}