BtcExplorer/Models/Transaction.cpp
2021-05-06 16:58:11 +03:00

30 lines
784 B
C++

#include "Transaction.h"
#include "VarInt.h"
Transaction::Transaction(const std::byte *data) {
_version = *((uint32_t*)data);
VarInt inputCount(data + sizeof(_version));
const std::byte* curPtr = data + sizeof(_version) + inputCount.size();
for(size_t i = 0; i < inputCount.value(); ++i) {
TxInput input(curPtr);
curPtr += input.size();
_inputs.push_back(input);
}
VarInt outputCount(curPtr);
curPtr += outputCount.size();
for(size_t i = 0; i < outputCount.value(); ++i) {
TxOutput output(curPtr);
curPtr += output.size();
_outputs.push_back(output);
}
_lockTime = *((uint32_t*)curPtr);
_size = curPtr - data + sizeof(_lockTime);
}
size_t Transaction::size() const {
return _size;
}