From ded8d26527f3465775b7dc095362f624c59a625a Mon Sep 17 00:00:00 2001 From: lemonpartee Date: Wed, 4 Sep 2024 15:01:31 +0200 Subject: [PATCH] Test slash or take signature is saved using database --- core/src/database/common.rs | 40 ++++++++++++++++++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/core/src/database/common.rs b/core/src/database/common.rs index 510be928..960a9853 100644 --- a/core/src/database/common.rs +++ b/core/src/database/common.rs @@ -660,9 +660,47 @@ mod tests { hashes::Hash, Address, Amount, OutPoint, ScriptBuf, TxOut, Txid, XOnlyPublicKey, }; use crypto_bigint::rand_core::OsRng; - use secp256k1::Secp256k1; + use secp256k1::{constants::SCHNORR_SIGNATURE_SIZE, Secp256k1}; use std::thread; + #[tokio::test] + async fn test_database_gets_previously_saved_slash_or_take_signature() { + let config = create_test_config_with_thread_name!("test_config.toml"); + let database = Database::new(config).await.unwrap(); + + let deposit_outpoint = OutPoint::null(); + let outpoint = OutPoint { + txid: Txid::from_byte_array([1u8; 32]), + vout: 1, + }; + let kickoff_utxo = UTXO { + outpoint, + txout: TxOut { + value: Amount::from_sat(100), + script_pubkey: ScriptBuf::from(vec![1u8]), + }, + }; + let signature = schnorr::Signature::from_slice(&[0u8; SCHNORR_SIGNATURE_SIZE]).unwrap(); + + database + .save_kickoff_utxos(deposit_outpoint, &[kickoff_utxo.clone()]) + .await + .unwrap(); + + database + .save_slash_or_take_sigs(deposit_outpoint, [(kickoff_utxo.clone(), signature)]) + .await + .unwrap(); + + let actual_sig = database + .get_slash_or_take_sig(deposit_outpoint, kickoff_utxo) + .await + .unwrap(); + let expected_sig = Some(signature); + + assert_eq!(actual_sig, expected_sig); + } + #[tokio::test] #[should_panic] async fn test_invalid_connection() {