chore(electrum,testenv): move test_reorg_is_detected_in_electrsd
This commit is contained in:
parent
2462e90415
commit
7c9ba3cfc8
@ -86,39 +86,6 @@ fn scan_detects_confirmed_tx() -> Result<()> {
|
|||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn test_reorg_is_detected_in_electrsd() -> Result<()> {
|
|
||||||
let env = TestEnv::new()?;
|
|
||||||
|
|
||||||
// Mine some blocks.
|
|
||||||
env.mine_blocks(101, None)?;
|
|
||||||
env.wait_until_electrum_sees_block()?;
|
|
||||||
let height = env.bitcoind.client.get_block_count()?;
|
|
||||||
let blocks = (0..=height)
|
|
||||||
.map(|i| env.bitcoind.client.get_block_hash(i))
|
|
||||||
.collect::<Result<Vec<_>, _>>()?;
|
|
||||||
|
|
||||||
// Perform reorg on six blocks.
|
|
||||||
env.reorg(6)?;
|
|
||||||
env.wait_until_electrum_sees_block()?;
|
|
||||||
let reorged_height = env.bitcoind.client.get_block_count()?;
|
|
||||||
let reorged_blocks = (0..=height)
|
|
||||||
.map(|i| env.bitcoind.client.get_block_hash(i))
|
|
||||||
.collect::<Result<Vec<_>, _>>()?;
|
|
||||||
|
|
||||||
assert_eq!(height, reorged_height);
|
|
||||||
|
|
||||||
// Block hashes should not be equal on the six reorged blocks.
|
|
||||||
for (i, (block, reorged_block)) in blocks.iter().zip(reorged_blocks.iter()).enumerate() {
|
|
||||||
match i <= height as usize - 6 {
|
|
||||||
true => assert_eq!(block, reorged_block),
|
|
||||||
false => assert_ne!(block, reorged_block),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Ok(())
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Ensure that confirmed txs that are reorged become unconfirmed.
|
/// Ensure that confirmed txs that are reorged become unconfirmed.
|
||||||
///
|
///
|
||||||
/// 1. Mine 101 blocks.
|
/// 1. Mine 101 blocks.
|
||||||
|
@ -235,3 +235,44 @@ impl TestEnv {
|
|||||||
Ok(txid)
|
Ok(txid)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg(test)]
|
||||||
|
mod test {
|
||||||
|
use crate::TestEnv;
|
||||||
|
use anyhow::Result;
|
||||||
|
use bitcoincore_rpc::RpcApi;
|
||||||
|
|
||||||
|
/// This checks that reorgs initiated by `bitcoind` is detected by our `electrsd` instance.
|
||||||
|
#[test]
|
||||||
|
fn test_reorg_is_detected_in_electrsd() -> Result<()> {
|
||||||
|
let env = TestEnv::new()?;
|
||||||
|
|
||||||
|
// Mine some blocks.
|
||||||
|
env.mine_blocks(101, None)?;
|
||||||
|
env.wait_until_electrum_sees_block()?;
|
||||||
|
let height = env.bitcoind.client.get_block_count()?;
|
||||||
|
let blocks = (0..=height)
|
||||||
|
.map(|i| env.bitcoind.client.get_block_hash(i))
|
||||||
|
.collect::<Result<Vec<_>, _>>()?;
|
||||||
|
|
||||||
|
// Perform reorg on six blocks.
|
||||||
|
env.reorg(6)?;
|
||||||
|
env.wait_until_electrum_sees_block()?;
|
||||||
|
let reorged_height = env.bitcoind.client.get_block_count()?;
|
||||||
|
let reorged_blocks = (0..=height)
|
||||||
|
.map(|i| env.bitcoind.client.get_block_hash(i))
|
||||||
|
.collect::<Result<Vec<_>, _>>()?;
|
||||||
|
|
||||||
|
assert_eq!(height, reorged_height);
|
||||||
|
|
||||||
|
// Block hashes should not be equal on the six reorged blocks.
|
||||||
|
for (i, (block, reorged_block)) in blocks.iter().zip(reorged_blocks.iter()).enumerate() {
|
||||||
|
match i <= height as usize - 6 {
|
||||||
|
true => assert_eq!(block, reorged_block),
|
||||||
|
false => assert_ne!(block, reorged_block),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user