1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#[cfg(feature = "libsecp_compat_0_27")]
mod v0_27 {
    use crate::{fun::secp256k1_0_27::ecdsa, Signature};

    impl From<Signature> for ecdsa::Signature {
        fn from(sig: Signature) -> Self {
            ecdsa::Signature::from_compact(sig.to_bytes().as_ref()).unwrap()
        }
    }

    impl From<ecdsa::Signature> for Signature {
        fn from(sig: ecdsa::Signature) -> Self {
            Signature::from_bytes(sig.serialize_compact()).unwrap()
        }
    }
}

#[cfg(feature = "libsecp_compat_0_28")]
mod v0_28 {
    use crate::{fun::secp256k1_0_28::ecdsa, Signature};

    impl From<Signature> for ecdsa::Signature {
        fn from(sig: Signature) -> Self {
            ecdsa::Signature::from_compact(sig.to_bytes().as_ref()).unwrap()
        }
    }

    impl From<ecdsa::Signature> for Signature {
        fn from(sig: ecdsa::Signature) -> Self {
            Signature::from_bytes(sig.serialize_compact()).unwrap()
        }
    }
}