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
34
35
36
37
38
39
crate::ix!();

///---------------------------
pub struct SignatureExtractorChecker {
    base:    DeferringSignatureChecker,
    sigdata: Rc<RefCell<SignatureData>>,
}

impl SignatureExtractorChecker {

    pub fn new(
        sigdata: &mut SignatureData,
        checker: &mut Box<dyn BaseSignatureChecker>) -> Self {
    
        todo!();
        /*
        : deferring_signature_checker(checker),
        : sigdata(sigdata),
        */
    }
    
    pub fn check_ecdsa_signature(&self, 
        script_sig:  &Vec<u8>,
        vch_pub_key: &Vec<u8>,
        script_code: &Script,
        sigversion:  SigVersion) -> bool {
        
        todo!();
        /*
            if (m_checker.CheckECDSASignature(scriptSig, vchPubKey, scriptCode, sigversion)) {
                CPubKey pubkey(vchPubKey);
                sigdata.signatures.emplace(pubkey.GetID(), SigPair(pubkey, scriptSig));
                return true;
            }
            return false;
        */
    }
}