#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.emplace_back(std::move(input)); } VarInt outputCount(curPtr); curPtr += outputCount.size(); for(size_t i = 0; i < outputCount.value(); ++i) { TxOutput output(curPtr); curPtr += output.size(); _outputs.emplace_back(std::move(output)); } _lockTime = *((uint32_t*)curPtr); _size = curPtr - data + sizeof(_lockTime); } size_t Transaction::size() const { return _size; }