| 109 | } |
| 110 | |
| 111 | static bool GetPubKey(const SigningProvider& provider, const SignatureData& sigdata, const CKeyID& address, CPubKey& pubkey) |
| 112 | { |
| 113 | // Look for pubkey in all partial sigs |
| 114 | const auto it = sigdata.signatures.find(address); |
| 115 | if (it != sigdata.signatures.end()) { |
| 116 | pubkey = it->second.first; |
| 117 | return true; |
| 118 | } |
| 119 | // Look for pubkey in pubkey list |
| 120 | const auto& pk_it = sigdata.misc_pubkeys.find(address); |
| 121 | if (pk_it != sigdata.misc_pubkeys.end()) { |
| 122 | pubkey = pk_it->second.first; |
| 123 | return true; |
| 124 | } |
| 125 | // Query the underlying provider |
| 126 | return provider.GetPubKey(address, pubkey); |
| 127 | } |
| 128 | |
| 129 | static bool CreateSig(const BaseSignatureCreator& creator, SignatureData& sigdata, const SigningProvider& provider, std::vector<unsigned char>& sig_out, const CPubKey& pubkey, const CScript& scriptcode, SigVersion sigversion, unsigned int flags) |
| 130 | { |
no test coverage detected