Skip to content

Commit

Permalink
test: Only the highest ord keychain is returned
Browse files Browse the repository at this point in the history
  • Loading branch information
danielabrozzoni committed May 8, 2024
1 parent 746ae75 commit 33fe84f
Showing 1 changed file with 19 additions and 0 deletions.
19 changes: 19 additions & 0 deletions crates/chain/tests/test_keychain_txout_index.rs
Original file line number Diff line number Diff line change
Expand Up @@ -742,3 +742,22 @@ fn applying_changesets_one_by_one_vs_aggregate_must_have_same_result() {
indexer_b.last_revealed_indices()
);
}

// When the same descriptor is associated with various keychains,
// index methods only return the highest keychain by Ord
#[test]
fn test_only_highest_ord_keychain_is_returned() {
let desc = parse_descriptor(DESCRIPTORS[0]);

let mut indexer = KeychainTxOutIndex::<TestKeychain>::new(0);
let _ = indexer.insert_descriptor(TestKeychain::Internal, desc.clone());
let _ = indexer.insert_descriptor(TestKeychain::External, desc);

// reveal_next_spk will work with either keychain
let spk0: ScriptBuf = indexer.reveal_next_spk(&TestKeychain::External).unwrap().0.1.into();
let spk1: ScriptBuf = indexer.reveal_next_spk(&TestKeychain::Internal).unwrap().0.1.into();

// index_of_spk will always return External
assert_eq!(indexer.index_of_spk(&spk0), Some((TestKeychain::External, 0)));
assert_eq!(indexer.index_of_spk(&spk1), Some((TestKeychain::External, 1)));
}

0 comments on commit 33fe84f

Please sign in to comment.