#include "Transaction.h" #include "VarInt.h" #include Transaction::Transaction(const std::byte *data) { _version = *((uint32_t*)data); VarInt inputCount(data + sizeof(_version)); const std::byte* curPtr = data + sizeof(_version) + inputCount.size(); std::cout << "======== Transaction ========" << std::endl; 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(); std::cout << "Output " << output.value()/100000000.0 << " BTC to address: " << output.address() << std::endl; _outputs.emplace_back(std::move(output)); } _lockTime = *((uint32_t*)curPtr); _size = curPtr - data + sizeof(_lockTime); } size_t Transaction::size() const { return _size; }