ark/test/
mod.rs

1pub mod dummy;
2
3use crate::Vtxo;
4use crate::vtxo::GenesisTransition;
5
6impl Vtxo {
7	pub fn invalidate_final_sig(&mut self) {
8		let fake = "cc8b93e9f6fbc2506bb85ae8bbb530b178daac49704f5ce2e3ab69c266fd59320b28d028eef212e3b9fdc42cfd2e0760a0359d3ea7d2e9e8cfe2040e3f1b71ea".parse().unwrap();
9		let item = self.genesis.last_mut().unwrap();
10		match item.transition {
11			GenesisTransition::Cosigned { ref mut signature, .. } => *signature = fake,
12			GenesisTransition::HashLockedCosigned { ref mut signature, .. } => {
13				*signature = fake;
14			},
15			GenesisTransition::Arkoor { ref mut signature, .. } => {
16				signature.replace(fake).expect("didn't have arkoor signature");
17			},
18		}
19	}
20}
21
22/// Verify a tx using bitcoinkernel
23#[cfg(test)]
24pub fn verify_tx(
25	inputs: &[bitcoin::TxOut],
26	input_idx: usize,
27	tx: &bitcoin::Transaction,
28) -> Result<(), bitcoinkernel::KernelError> {
29	use bitcoinkernel as krn;
30	use bitcoin::consensus::encode::serialize;
31
32	krn::verify(
33		&krn::ScriptPubkey::new(inputs[input_idx].script_pubkey.as_bytes()).unwrap(),
34		Some(inputs[input_idx].value.to_sat() as i64),
35		&krn::Transaction::new(&serialize(tx)).unwrap(),
36		input_idx,
37		Some(krn::VERIFY_ALL),
38		&inputs.iter().map(|i| krn::TxOut::new(
39			&krn::ScriptPubkey::new(i.script_pubkey.as_bytes()).unwrap(),
40			i.value.to_sat() as i64,
41		)).collect::<Vec<_>>(),
42	)
43}