MCPcopy Create free account
hub / github.com/ElementsProject/elements / IsSegWitOutput

Function IsSegWitOutput

src/script/sign.cpp:626–643  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

624}
625
626bool IsSegWitOutput(const SigningProvider& provider, const CScript& script)
627{
628 int version;
629 valtype program;
630 if (script.IsWitnessProgram(version, program)) return true;
631 if (script.IsPayToScriptHash()) {
632 std::vector<valtype> solutions;
633 auto whichtype = Solver(script, solutions);
634 if (whichtype == TxoutType::SCRIPTHASH) {
635 auto h160 = uint160(solutions[0]);
636 CScript subscript;
637 if (provider.GetCScript(CScriptID{h160}, subscript)) {
638 if (subscript.IsWitnessProgram(version, program)) return true;
639 }
640 }
641 }
642 return false;
643}
644
645bool SignTransaction(CMutableTransaction& mtx, const SigningProvider* keystore, const std::map<COutPoint, Coin>& coins, int nHashType, const uint256& hash_genesis_block, std::map<int, bilingual_str>& input_errors)
646{

Callers 3

FUZZ_TARGET_INITFunction · 0.85
FUZZ_TARGET_INITFunction · 0.85
utxoupdatepsbtFunction · 0.85

Calls 5

SolverFunction · 0.85
IsWitnessProgramMethod · 0.80
IsPayToScriptHashMethod · 0.80
uint160Class · 0.50
GetCScriptMethod · 0.45

Tested by 2

FUZZ_TARGET_INITFunction · 0.68
FUZZ_TARGET_INITFunction · 0.68