SHOWING: First 60
}
Some(_) => return Ok(None),
}
}
}
}
#[cfg(test)]
mod tests {
use {super::*, bitcoin::absolute::LockTime};
fn parse(witnesses: &[Witness]) -> Vec<ParsedEnvelope> {
ParsedEnvelope::from_transaction(&Transaction {
version: 0,
lock_time: LockTime::ZERO,
input: witnesses
.iter()
.map(|witness| TxIn {
previous_output: OutPoint::null(),
script_sig: ScriptBuf::new(),
sequence: Sequence::ENABLE_RBF_NO_LOCKTIME,
witness: witness.clone(),
})
.collect(),
output: Vec::new(),
})
}
#[test]
fn empty() {
assert_eq!(parse(&[Witness::new()]), Vec::new())
}
#[test]
fn ignore_key_path_spends() {
assert_eq!(
parse(&[Witness::from_slice(&[bitcoin::script::Builder::new()
.push_opcode(bitcoin::opcodes::OP_FALSE)
.push_opcode(bitcoin::opcodes::all::OP_IF)
.push_slice(b"ord")
.push_opcode(bitcoin::opcodes::all::OP_ENDIF)
.into_script()
#45,005,536text )),
}
}
fn get_raw_transaction(
&self,
txid: Txid,
verbose: Option<bool>,
blockhash: Option<BlockHash>,
) -> Result<Value, jsonrpc_core::Error> {
assert_eq!(blockhash, None, "Blockhash param is unsupported");
if verbose.unwrap_or(false) {
match self.state().transactions.get(&txid) {
Some(_) => Ok(
serde_json::to_value(GetRawTransactionResult {
in_active_chain: Some(true),
hex: Vec::new(),
txid: Txid::all_zeros(),
hash: Wtxid::all_zeros(),
size: 0,
vsize: 0,
version: 0,
locktime: 0,
vin: Vec::new(),
vout: Vec::new(),
blockhash: None,
confirmations: Some(1),
time: None,
blocktime: None,
})
.unwrap(),
),
None => Err(Self::not_found()),
}
} else {
match self.state().transactions.get(&txid) {
Some(tx) => Ok(Value::String(hex::encode(serialize(tx)))),
#44,982,621text