| 131 | } |
| 132 | |
| 133 | std::pair<AnyScriptOutput, std::unique_ptr<AnyScriptInput>> p2shWitnessGenerate(const InputView &inputView, const blocksci::CScriptView &scriptView, const RawTransaction &tx, const SpendData<blocksci::AddressType::Enum::WITNESS_SCRIPTHASH> &) { |
| 134 | assert(inputView.witnessStack.size() > 0); |
| 135 | auto &witnessScriptItem = inputView.witnessStack.back(); |
| 136 | auto outputBegin = reinterpret_cast<const unsigned char *>(witnessScriptItem.itemBegin); |
| 137 | blocksci::CScriptView witnessView(outputBegin, outputBegin + witnessScriptItem.length); |
| 138 | AnyScriptOutput wrappedScriptOutput(witnessView, false, inputView.witnessActivated); |
| 139 | return std::make_pair(wrappedScriptOutput, std::make_unique<AnyScriptInput>(inputView, scriptView, tx, AnySpendData{wrappedScriptOutput})); |
| 140 | } |
| 141 | |
| 142 | ScriptInputData<blocksci::AddressType::Enum::WITNESS_SCRIPTHASH>::ScriptInputData(std::pair<AnyScriptOutput, std::unique_ptr<AnyScriptInput>> data) : wrappedScriptOutput(data.first), wrappedScriptInput(std::move(data.second)) { |
| 143 | } |