38 lines
895 B
C++
38 lines
895 B
C++
#include "Block.h"
|
|
#include "VarInt.h"
|
|
#include "../hash.h"
|
|
#include <iostream>
|
|
|
|
Block::Block(const std::byte* pBlock, size_t size): _header{} {
|
|
_size = size;
|
|
_header = *((BlockHeader*)pBlock);
|
|
VarInt txCount(pBlock + sizeof(BlockHeader));
|
|
|
|
auto pTxData = pBlock + sizeof(BlockHeader) + txCount.size();
|
|
for(size_t i = 0; i < txCount.value(); ++i) {
|
|
Transaction transaction(pTxData);
|
|
pTxData += transaction.size();
|
|
_transactions.emplace_back(std::move(transaction));
|
|
}
|
|
}
|
|
|
|
uint32_t Block::version() const {
|
|
return _header.version;
|
|
}
|
|
|
|
uint32_t Block::time() const {
|
|
return _header.time;
|
|
}
|
|
|
|
const std::vector<Transaction>& Block::transactions() const {
|
|
return _transactions;
|
|
}
|
|
|
|
size_t Block::size() const {
|
|
return _size;
|
|
}
|
|
|
|
std::string Block::prevHeaderHash() const {
|
|
return hash::to_string_inverse(_header.prevBlockHeaderHash);
|
|
}
|