25 lines
807 B
C++
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;
|
|
}
|