BtcExplorer/Models/TxInput.cpp

25 lines
807 B
C++

#include "TxInput.h"
#include "VarInt.h"
#include <algorithm>
#include <iostream>
TxInput::TxInput(const std::byte *data) {
std::copy_n(data, _txId.size(), _txId.begin());
data += _txId.size();
_vOut = *reinterpret_cast<const uint32_t*>(data);
data += sizeof(_vOut);
VarInt scriptSigSize(data);
data += scriptSigSize.size();
//std::cout << "=== Creating signature script of size: " << scriptSigSize.value() << std::endl;
_signatureScript = std::make_unique<Script>(std::span((uint8_t*)data, scriptSigSize.value()));
data += scriptSigSize.value();
_sequence = *reinterpret_cast<const uint32_t*>(data);
_size = _txId.size() + sizeof(_vOut) + scriptSigSize.size() + scriptSigSize.value() + sizeof(_sequence);
}
size_t TxInput::size() const {
return _size;
}