| 216 | } |
| 217 | |
| 218 | bool VerifySignature(const uint256 &sigHash, const std::vector<uint8_t> &signature, const CPubKey &pubKey) { |
| 219 | if (signature.size() == 0 && signature.size() >= MAX_SIGNATURE_SIZE) { |
| 220 | return false; |
| 221 | } |
| 222 | |
| 223 | if (signatureCache.Get(sigHash, signature, pubKey)) |
| 224 | return true; |
| 225 | |
| 226 | { |
| 227 | auto bm = MAKE_BENCHMARK("execute pubkey verify"); |
| 228 | if (!pubKey.Verify(sigHash, signature)) |
| 229 | return false; |
| 230 | } |
| 231 | |
| 232 | signatureCache.Set(sigHash, signature, pubKey); |
| 233 | return true; |
| 234 | } |
| 235 | |
| 236 | bool AcceptToMemoryPool(CTxMemPool &pool, CValidationState &state, CBaseTx *pBaseTx, |
| 237 | bool fLimitFree, bool fRejectInsaneFee) { |
no test coverage detected