6#ifndef VERIBLOCK_POP_CPP_C_ENTITIES_BTCBLOCK_H
7#define VERIBLOCK_POP_CPP_C_ENTITIES_BTCBLOCK_H
9#include "veriblock/pop/c/array.h"
10#include "veriblock/pop/c/entities/serde.h"
11#include "veriblock/pop/c/type_helpers.h"
17POP_DECLARE_ENTITY(config);
19POP_DECLARE_ENTITY(btc_block);
21POP_ENTITY_GETTER_FUNCTION(btc_block, POP_ARRAY_NAME(u8), hash);
22POP_ENTITY_GETTER_FUNCTION(btc_block, POP_ARRAY_NAME(u8), previous_block);
23POP_ENTITY_GETTER_FUNCTION(btc_block, POP_ARRAY_NAME(u8), merkle_root);
24POP_ENTITY_GETTER_FUNCTION(btc_block, uint32_t, version);
25POP_ENTITY_GETTER_FUNCTION(btc_block, uint32_t, timestamp);
26POP_ENTITY_GETTER_FUNCTION(btc_block, uint32_t, difficulty);
27POP_ENTITY_GETTER_FUNCTION(btc_block, uint32_t, nonce);
29POP_ENTITY_TO_JSON(btc_block);
31POP_ENTITY_SERIALIZE_TO_VBK(btc_block);
32POP_ENTITY_DESERIALIZE_FROM_VBK(btc_block, POP_ENTITY_NAME(config) *);
34POP_DECLARE_ARRAY(POP_ENTITY_NAME(btc_block) *, btc_block);
36POP_GENERATE_DEFAULT_VALUE(btc_block);