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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
crate::ix!();

///-----------------------
pub struct DeferringSignatureChecker {
    checker: Rc<RefCell<Box<dyn BaseSignatureChecker>>>,
}

impl BaseSignatureChecker for DeferringSignatureChecker {

}

impl From<&mut Box<dyn BaseSignatureChecker>> for DeferringSignatureChecker {

    fn from(checker: &mut Box<dyn BaseSignatureChecker>) -> Self {
    
        todo!();
        /*
        : checker(checker),
        */
    }
}

impl DeferringSignatureChecker {
    
    pub fn check_ecdsa_signature(&self, 
        script_sig:  &Vec<u8>,
        vch_pub_key: &Vec<u8>,
        script_code: &Script,
        sigversion:  SigVersion) -> bool {
        
        todo!();
        /*
            return m_checker.CheckECDSASignature(scriptSig, vchPubKey, scriptCode, sigversion);
        */
    }
    
    pub fn check_schnorr_signature(&self, 
        sig:        &[u8],
        pubkey:     &[u8],
        sigversion: SigVersion,
        execdata:   &ScriptExecutionData,
        serror:     Option<*mut ScriptError>) -> bool {

        todo!();
        /*
            return m_checker.CheckSchnorrSignature(sig, pubkey, sigversion, execdata, serror);
        */
    }
    
    pub fn check_lock_time(&self, n_lock_time: &ScriptNum) -> bool {
        
        todo!();
        /*
            return m_checker.CheckLockTime(nLockTime);
        */
    }
    
    pub fn check_sequence(&self, n_sequence: &ScriptNum) -> bool {
        
        todo!();
        /*
            return m_checker.CheckSequence(nSequence);
        */
    }
}