Skip to content

Commit

Permalink
add _t suffix to uint256, uint160 and vector types
Browse files Browse the repository at this point in the history
  • Loading branch information
edtubbs committed Jan 21, 2025
1 parent 77cf47f commit aee7e4b
Show file tree
Hide file tree
Showing 64 changed files with 609 additions and 609 deletions.
4 changes: 2 additions & 2 deletions doc/signing.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ This document describes the process of message signing within libdogecoin. It ai
char* sign_message(char* privkey, char* msg) {
if (!privkey || !msg) return false;

uint256 message_bytes;
uint256_t message_bytes;
hash_message(msg, message_bytes);

size_t compact_signature_length = 65;
Expand Down Expand Up @@ -66,7 +66,7 @@ char* sig = sign_message("QUtnMFjt3JFk1NfeMe6Dj5u4p25DHZA54FsvEFAiQxcNP4bZkPu2",
int verify_message(char* sig, char* msg, char* address) {
if (!(sig || msg || address)) return false;

uint256 message_bytes;
uint256_t message_bytes;
hash_message(msg, message_bytes);

size_t encoded_length = strlen((const char*)sig);
Expand Down
8 changes: 4 additions & 4 deletions doc/transaction_extended.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ The `dogecoin_tx` structure describes a dogecoin transaction in reply to getdata
```
typedef struct dogecoin_tx_ {
int32_t version;
vector* vin;
vector* vout;
vector_t* vin;
vector_t* vout;
uint32_t locktime;
} dogecoin_tx;
```
Expand Down Expand Up @@ -51,7 +51,7 @@ The `dogecoin_tx_outpoint` structure represented above as `prevout` consists of
`include/dogecoin/tx.h`:
```
typedef struct dogecoin_tx_outpoint_ {
uint256 hash;
uint256_t hash;
uint32_t n;
} dogecoin_tx_outpoint;
```
Expand Down Expand Up @@ -88,7 +88,7 @@ OP_DUP OP_HASH160 Bytes to push
```
##### **Note: scriptSig is in the input of the spending transaction and scriptPubKey is in the output of the previously unspent i.e. "available" transaction.**

Here is how each word is processed:
Here is how each word is processed:
| Stack | Script | Description |
| ----------- | ----------- | - |
| Empty | `<sig> <pubKey>` OP_DUP OP_HASH160 `<pubKeyHash>` OP_EQUALVERIFY OP_CHECKSIG | scriptSig and scriptPubKey are combined. |
Expand Down
2 changes: 1 addition & 1 deletion include/dogecoin/arith_uint256.h
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ void arith_shift_left(arith_uint256* input, unsigned int shift);
void arith_shift_right(arith_uint256* input, unsigned int shift);
arith_uint256* set_compact(arith_uint256* hash, uint32_t compact, dogecoin_bool *pf_negative, dogecoin_bool *pf_overflow);
uint8_t* arith_to_uint256(const arith_uint256* a);
arith_uint256* uint_to_arith(const uint256* a);
arith_uint256* uint_to_arith(const uint256_t* a);
uint64_t get_low64(arith_uint256* a);
arith_uint256* div_arith_uint256(arith_uint256* a, arith_uint256* b);
arith_uint256* add_arith_uint256(arith_uint256* a, arith_uint256* b);
Expand Down
2 changes: 1 addition & 1 deletion include/dogecoin/auxpow.h
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ LIBDOGECOIN_BEGIN_DECL
static const unsigned char pch_merged_mining_header[] = { 0xfa, 0xbe, 'm', 'm' };

int get_expected_index(uint32_t nNonce, int nChainId, unsigned h);
uint256* check_merkle_branch(uint256* hash, const vector* merkle_branch, int index);
uint256_t* check_merkle_branch(uint256_t* hash, const vector_t* merkle_branch, int index);

LIBDOGECOIN_END_DECL

Expand Down
6 changes: 3 additions & 3 deletions include/dogecoin/base58.h
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
* Copyright (c) 2013-2014 Pavol Rusnak
* Copyright (c) 2022 bluezr
* Copyright (c) 2022 The Dogecoin Foundation
*
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
Expand Down Expand Up @@ -39,8 +39,8 @@ LIBDOGECOIN_API size_t dogecoin_base58_decode_check(const char* str, uint8_t* da
LIBDOGECOIN_API int dogecoin_base58_encode(char* b58, size_t* b58sz, const void* data, size_t binsz);
LIBDOGECOIN_API int dogecoin_base58_decode(void* bin, size_t* binszp, const char* b58, size_t b58sz);

LIBDOGECOIN_API dogecoin_bool dogecoin_p2pkh_addr_from_hash160(const uint160 hashin, const dogecoin_chainparams* chain, char* addrout, size_t len);
LIBDOGECOIN_API dogecoin_bool dogecoin_p2sh_addr_from_hash160(const uint160 hashin, const dogecoin_chainparams* chain, char* addrout, size_t len);
LIBDOGECOIN_API dogecoin_bool dogecoin_p2pkh_addr_from_hash160(const uint160_t hashin, const dogecoin_chainparams* chain, char* addrout, size_t len);
LIBDOGECOIN_API dogecoin_bool dogecoin_p2sh_addr_from_hash160(const uint160_t hashin, const dogecoin_chainparams* chain, char* addrout, size_t len);

LIBDOGECOIN_END_DECL

Expand Down
2 changes: 1 addition & 1 deletion include/dogecoin/bip32.h
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ LIBDOGECOIN_API void dogecoin_hdnode_serialize_public(const dogecoin_hdnode* nod
LIBDOGECOIN_API void dogecoin_hdnode_serialize_private(const dogecoin_hdnode* node, const dogecoin_chainparams* chain, char* str, size_t strsize);

/* gives out the raw sha256/ripemd160 hash */
LIBDOGECOIN_API void dogecoin_hdnode_get_hash160(const dogecoin_hdnode* node, uint160 hash160_out);
LIBDOGECOIN_API void dogecoin_hdnode_get_hash160(const dogecoin_hdnode* node, uint160_t hash160_out);
LIBDOGECOIN_API void dogecoin_hdnode_get_p2pkh_address(const dogecoin_hdnode* node, const dogecoin_chainparams* chain, char* str, size_t strsize);
LIBDOGECOIN_API dogecoin_bool dogecoin_hdnode_get_pub_hex(const dogecoin_hdnode* node, char* str, size_t* strsize);
LIBDOGECOIN_API dogecoin_bool dogecoin_hdnode_deserialize(const char* str, const dogecoin_chainparams* chain, dogecoin_hdnode* node);
Expand Down
18 changes: 9 additions & 9 deletions include/dogecoin/block.h
Original file line number Diff line number Diff line change
Expand Up @@ -43,14 +43,14 @@ LIBDOGECOIN_BEGIN_DECL

typedef struct _auxpow {
dogecoin_bool is;
dogecoin_bool (*check)(void* ctx, uint256* hash, uint32_t chainid, dogecoin_chainparams* params);
dogecoin_bool (*check)(void* ctx, uint256_t* hash, uint32_t chainid, dogecoin_chainparams* params);
void *ctx;
} auxpow;

typedef struct dogecoin_block_header_ {
int32_t version;
uint256 prev_block;
uint256 merkle_root;
uint256_t prev_block;
uint256_t merkle_root;
uint32_t timestamp;
uint32_t bits;
uint32_t nonce;
Expand All @@ -60,12 +60,12 @@ typedef struct dogecoin_block_header_ {
typedef struct dogecoin_auxpow_block_ {
dogecoin_block_header* header;
dogecoin_tx* parent_coinbase;
uint256 parent_hash;
uint256_t parent_hash;
uint8_t parent_merkle_count;
uint256* parent_coinbase_merkle;
uint256_t* parent_coinbase_merkle;
uint32_t parent_merkle_index;
uint8_t aux_merkle_count;
uint256* aux_merkle_branch;
uint256_t* aux_merkle_branch;
uint32_t aux_merkle_index;
dogecoin_block_header* parent_header;
} dogecoin_auxpow_block;
Expand All @@ -74,11 +74,11 @@ LIBDOGECOIN_API dogecoin_block_header* dogecoin_block_header_new();
LIBDOGECOIN_API void dogecoin_block_header_free(dogecoin_block_header* header);
LIBDOGECOIN_API dogecoin_auxpow_block* dogecoin_auxpow_block_new();
LIBDOGECOIN_API void dogecoin_auxpow_block_free(dogecoin_auxpow_block* block);
LIBDOGECOIN_API int dogecoin_block_header_deserialize(dogecoin_block_header* header, struct const_buffer* buf, const dogecoin_chainparams *params, uint256* chainwork);
LIBDOGECOIN_API int deserialize_dogecoin_auxpow_block(dogecoin_auxpow_block* block, struct const_buffer* buffer, const dogecoin_chainparams *params, uint256* chainwork);
LIBDOGECOIN_API int dogecoin_block_header_deserialize(dogecoin_block_header* header, struct const_buffer* buf, const dogecoin_chainparams *params, uint256_t* chainwork);
LIBDOGECOIN_API int deserialize_dogecoin_auxpow_block(dogecoin_auxpow_block* block, struct const_buffer* buffer, const dogecoin_chainparams *params, uint256_t* chainwork);
LIBDOGECOIN_API void dogecoin_block_header_serialize(cstring* s, const dogecoin_block_header* header);
LIBDOGECOIN_API void dogecoin_block_header_copy(dogecoin_block_header* dest, const dogecoin_block_header* src);
LIBDOGECOIN_API dogecoin_bool dogecoin_block_header_hash(dogecoin_block_header* header, uint256 hash);
LIBDOGECOIN_API dogecoin_bool dogecoin_block_header_hash(dogecoin_block_header* header, uint256_t hash);

LIBDOGECOIN_END_DECL

Expand Down
4 changes: 2 additions & 2 deletions include/dogecoin/blockchain.h
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,8 @@ LIBDOGECOIN_BEGIN_DECL
*/
typedef struct dogecoin_blockindex {
uint32_t height;
uint256 hash;
uint256 chainwork;
uint256_t hash;
uint256_t chainwork;
dogecoin_block_header header;
struct dogecoin_blockindex* prev;
} dogecoin_blockindex;
Expand Down
8 changes: 4 additions & 4 deletions include/dogecoin/chainparams.h
Original file line number Diff line number Diff line change
Expand Up @@ -46,14 +46,14 @@ typedef struct dogecoin_chainparams_ {
uint32_t b58prefix_bip32_privkey;
uint32_t b58prefix_bip32_pubkey;
const unsigned char netmagic[4];
uint256 genesisblockhash;
uint256 genesisblockchainwork;
uint256_t genesisblockhash;
uint256_t genesisblockchainwork;
int default_port;
dogecoin_dns_seed dnsseeds[8];
dogecoin_bool strict_id;
dogecoin_bool auxpow_id;
uint256 pow_limit;
uint256 minimumchainwork;
uint256_t pow_limit;
uint256_t minimumchainwork;
} dogecoin_chainparams;

typedef struct dogecoin_checkpoint_ {
Expand Down
6 changes: 3 additions & 3 deletions include/dogecoin/dogecoin.h
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
#include <stdlib.h>
#include <string.h>

#if defined(HAVE_CONFIG_H)
#if defined(HAVE_CONFIG_H) && !defined(USE_LIB)
#include <config/libdogecoin-config.h>
#endif

Expand Down Expand Up @@ -146,8 +146,8 @@ typedef uint8_t dogecoin_bool; //!serialize, c/c++ save bool
LIBDOGECOIN_BEGIN_DECL

/* Data array types */
typedef uint8_t uint256[32];
typedef uint8_t uint160[20];
typedef uint8_t uint256_t[32];
typedef uint8_t uint160_t[20];
typedef uint8_t SEED[MAX_SEED_SIZE];

static const int WIDTH = 0x0000100/32;
Expand Down
16 changes: 8 additions & 8 deletions include/dogecoin/ecc.h
Original file line number Diff line number Diff line change
Expand Up @@ -57,22 +57,22 @@ LIBDOGECOIN_API dogecoin_bool dogecoin_ecc_verify_privatekey(const uint8_t* priv
LIBDOGECOIN_API dogecoin_bool dogecoin_ecc_verify_pubkey(const uint8_t* public_key, dogecoin_bool compressed);

//!create a DER signature (72-74 bytes) with private key
LIBDOGECOIN_API dogecoin_bool dogecoin_ecc_sign(const uint8_t* private_key, const uint256 hash, unsigned char* sigder, size_t* outlen);
LIBDOGECOIN_API dogecoin_bool dogecoin_ecc_sign(const uint8_t* private_key, const uint256_t hash, unsigned char* sigder, size_t* outlen);

//!create a compact (64bytes) signature with private key
LIBDOGECOIN_API dogecoin_bool dogecoin_ecc_sign_compact(const uint8_t* private_key, const uint256 hash, unsigned char* sigcomp, size_t* outlen);
LIBDOGECOIN_API dogecoin_bool dogecoin_ecc_sign_compact(const uint8_t* private_key, const uint256_t hash, unsigned char* sigcomp, size_t* outlen);

//!create a compact recoverable (65bytes) signature with private key
LIBDOGECOIN_API dogecoin_bool dogecoin_ecc_sign_compact_recoverable(const uint8_t* private_key, const uint256 hash, unsigned char* sigcomprec, size_t* outlen, int* recid);
LIBDOGECOIN_API dogecoin_bool dogecoin_ecc_sign_compact_recoverable(const uint8_t* private_key, const uint256_t hash, unsigned char* sigcomprec, size_t* outlen, int* recid);

//!create a compact recoverable (65bytes) signature with private key with compressed or uncompressed bytes flag
LIBDOGECOIN_API dogecoin_bool dogecoin_ecc_sign_compact_recoverable_fcomp(const uint8_t* private_key, const uint256 hash, unsigned char* sigrec, size_t* outlen, int* recid, bool fCompressed);
LIBDOGECOIN_API dogecoin_bool dogecoin_ecc_sign_compact_recoverable_fcomp(const uint8_t* private_key, const uint256_t hash, unsigned char* sigrec, size_t* outlen, int* recid, bool fCompressed);

//!recover a specific pubkey from a signature and recid
LIBDOGECOIN_API dogecoin_bool dogecoin_recover_pubkey(const unsigned char* sigrec, const uint256 hash, const int recid, uint8_t* public_key, size_t* outlen);
LIBDOGECOIN_API dogecoin_bool dogecoin_recover_pubkey(const unsigned char* sigrec, const uint256_t hash, const int recid, uint8_t* public_key, size_t* outlen);

//!recover a pubkey from a signature and recid
LIBDOGECOIN_API dogecoin_bool dogecoin_ecc_recover_pubkey(const unsigned char* sigrec, const uint256 hash, const int recid, uint8_t* public_key, size_t* outlen);
LIBDOGECOIN_API dogecoin_bool dogecoin_ecc_recover_pubkey(const unsigned char* sigrec, const uint256_t hash, const int recid, uint8_t* public_key, size_t* outlen);

//!converts (and normalized) a compact signature to DER
LIBDOGECOIN_API dogecoin_bool dogecoin_ecc_compact_to_der_normalized(unsigned char* sigcomp_in, unsigned char* sigder_out, size_t* sigder_len_out);
Expand All @@ -81,10 +81,10 @@ LIBDOGECOIN_API dogecoin_bool dogecoin_ecc_compact_to_der_normalized(unsigned ch
LIBDOGECOIN_API dogecoin_bool dogecoin_ecc_der_to_compact(unsigned char* sigder_in, size_t sigder_len, unsigned char* sigcomp_out);

//!verify DER signature with public key
LIBDOGECOIN_API dogecoin_bool dogecoin_ecc_verify_sig(const uint8_t* public_key, dogecoin_bool compressed, const uint256 hash, unsigned char* sigder, size_t siglen);
LIBDOGECOIN_API dogecoin_bool dogecoin_ecc_verify_sig(const uint8_t* public_key, dogecoin_bool compressed, const uint256_t hash, unsigned char* sigder, size_t siglen);

//!verify compact signature with public key
LIBDOGECOIN_API dogecoin_bool dogecoin_ecc_verify_sigcmp(const uint8_t* public_key, dogecoin_bool compressed, const uint256 hash, unsigned char* sigcmp);
LIBDOGECOIN_API dogecoin_bool dogecoin_ecc_verify_sigcmp(const uint8_t* public_key, dogecoin_bool compressed, const uint256_t hash, unsigned char* sigcmp);

LIBDOGECOIN_END_DECL

Expand Down
46 changes: 23 additions & 23 deletions include/dogecoin/hash.h
Original file line number Diff line number Diff line change
Expand Up @@ -41,53 +41,53 @@

LIBDOGECOIN_BEGIN_DECL

LIBDOGECOIN_API static inline dogecoin_bool dogecoin_hash_is_empty(uint256 hash)
LIBDOGECOIN_API static inline dogecoin_bool dogecoin_hash_is_empty(uint256_t hash)
{
return hash[0] == 0 && !memcmp(hash, hash + 1, 19);
}

LIBDOGECOIN_API static inline void dogecoin_hash_clear(uint256 hash)
LIBDOGECOIN_API static inline void dogecoin_hash_clear(uint256_t hash)
{
dogecoin_mem_zero(hash, DOGECOIN_HASH_LENGTH);
}

LIBDOGECOIN_API static inline dogecoin_bool dogecoin_hash_equal(uint256 hash_a, uint256 hash_b)
LIBDOGECOIN_API static inline dogecoin_bool dogecoin_hash_equal(uint256_t hash_a, uint256_t hash_b)
{
return (memcmp(hash_a, hash_b, DOGECOIN_HASH_LENGTH) == 0);
}

LIBDOGECOIN_API static inline void dogecoin_hash_set(uint256 hash_dest, const uint256 hash_src)
LIBDOGECOIN_API static inline void dogecoin_hash_set(uint256_t hash_dest, const uint256_t hash_src)
{
memcpy_safe(hash_dest, hash_src, DOGECOIN_HASH_LENGTH);
}

LIBDOGECOIN_API static inline void dogecoin_hash(const unsigned char* datain, size_t length, uint256 hashout)
LIBDOGECOIN_API static inline void dogecoin_hash(const unsigned char* datain, size_t length, uint256_t hashout)
{
sha256_raw(datain, length, hashout);
sha256_raw(hashout, SHA256_DIGEST_LENGTH, hashout); // dogecoin double sha256 hash
}

LIBDOGECOIN_API static inline dogecoin_bool dogecoin_dblhash(const unsigned char* datain, size_t length, uint256 hashout)
LIBDOGECOIN_API static inline dogecoin_bool dogecoin_dblhash(const unsigned char* datain, size_t length, uint256_t hashout)
{
sha256_raw(datain, length, hashout);
sha256_raw(hashout, SHA256_DIGEST_LENGTH, hashout); // dogecoin double sha256 hash
return true;
}

LIBDOGECOIN_API static inline void dogecoin_hash_sngl_sha256(const unsigned char* datain, size_t length, uint256 hashout)
LIBDOGECOIN_API static inline void dogecoin_hash_sngl_sha256(const unsigned char* datain, size_t length, uint256_t hashout)
{
sha256_raw(datain, length, hashout); // single sha256 hash
}

LIBDOGECOIN_API static inline void dogecoin_get_auxpow_hash(const uint32_t version, uint256 hashout)
LIBDOGECOIN_API static inline void dogecoin_get_auxpow_hash(const uint32_t version, uint256_t hashout)
{
scrypt_1024_1_1_256(BEGIN(version), BEGIN(hashout));
}

DISABLE_WARNING_PUSH
DISABLE_WARNING(-Wunused-function)
DISABLE_WARNING(-Wunused-variable)
typedef uint256 chain_code;
typedef uint256_t chain_code;

typedef struct _chash256 {
sha256_context* sha;
Expand All @@ -107,19 +107,19 @@ static inline chash256* dogecoin_chash256_init() {
return chash;
}

// Hashes the data from two uint256 values and returns the double SHA-256 hash.
static inline uint256* Hash(const uint256* p1, const uint256* p2) {
uint256* result = dogecoin_uint256_vla(1);
// Hashes the data from two uint256_t values and returns the double SHA-256 hash.
static inline uint256_t* Hash(const uint256_t* p1, const uint256_t* p2) {
uint256_t* result = dogecoin_uint256_vla(1);
chash256* chash = dogecoin_chash256_init();

// Write the first uint256 to the hash context
// Write the first uint256_t to the hash context
if (p1) {
chash->write(chash->sha, (const uint8_t*)p1, sizeof(uint256));
chash->write(chash->sha, (const uint8_t*)p1, sizeof(uint256_t));
}

// Write the second uint256 to the hash context
// Write the second uint256_t to the hash context
if (p2) {
chash->write(chash->sha, (const uint8_t*)p2, sizeof(uint256));
chash->write(chash->sha, (const uint8_t*)p2, sizeof(uint256_t));
}

// Finalize and reset for double hashing
Expand Down Expand Up @@ -148,11 +148,11 @@ typedef struct hashwriter {
int n_type;
int n_version;
cstring* cstr;
uint256* hash;
uint256_t* hash;
int (*get_type)(struct hashwriter* hw);
int (*get_version)(struct hashwriter* hw);
void (*write_hash)(struct hashwriter* hw, const char* pch, size_t size);
uint256* (*get_hash)(struct hashwriter* hw);
uint256_t* (*get_hash)(struct hashwriter* hw);
void (*ser)(cstring* cstr, const void* obj);
} hashwriter;

Expand All @@ -168,7 +168,7 @@ static void write_hash(struct hashwriter* hw, const char* pch, size_t size) {
hw->ctx->write(hw->ctx->sha, (const unsigned char*)pch, size);
}

static uint256* get_hash(struct hashwriter* hw) {
static uint256_t* get_hash(struct hashwriter* hw) {
dogecoin_dblhash((const unsigned char*)hw->cstr->str, hw->cstr->len, *hw->hash);
cstr_free(hw->cstr, true);
return hw->hash;
Expand Down Expand Up @@ -289,10 +289,10 @@ static uint64_t siphasher_finalize(struct siphasher* sh) {
}

typedef union u256 {
uint256 data;
uint256_t data;
} u256;

static uint64_t get_uint64(uint256* data, int pos) {
static uint64_t get_uint64(uint256_t* data, int pos) {
const uint8_t* ptr = (const uint8_t*)data + pos * 8;
return ((uint64_t)ptr[0]) | \
((uint64_t)ptr[1]) << 8 | \
Expand All @@ -304,14 +304,14 @@ static uint64_t get_uint64(uint256* data, int pos) {
((uint64_t)ptr[7]) << 56;
}

static inline union u256 init_u256(uint256* val) {
static inline union u256 init_u256(uint256_t* val) {
union u256* u256 = dogecoin_calloc(1, sizeof(*u256));
memcpy_safe(u256->data, dogecoin_uint256_vla(1), 32);
if (val != NULL) memcpy(u256->data, val, 32);
return *u256;
}

static uint64_t siphash_u256(uint64_t k0, uint64_t k1, uint256* val) {
static uint64_t siphash_u256(uint64_t k0, uint64_t k1, uint256_t* val) {
/* Specialized implementation for efficiency */
uint64_t d = get_uint64(val, 0);
uint64_t v0 = 0x736f6d6570736575ULL ^ k0;
Expand Down
4 changes: 2 additions & 2 deletions include/dogecoin/headersdb.h
Original file line number Diff line number Diff line change
Expand Up @@ -47,12 +47,12 @@ typedef struct dogecoin_headers_db_interface_
void* (*init)(const dogecoin_chainparams* chainparams, dogecoin_bool inmem_only);
void (*free)(void *db);
dogecoin_bool (*load)(void *db, const char *filename, dogecoin_bool prompt);
void (*fill_blocklocator_tip)(void* db, vector *blocklocators);
void (*fill_blocklocator_tip)(void* db, vector_t *blocklocators);
dogecoin_blockindex *(*connect_hdr)(void* db, struct const_buffer *buf, dogecoin_bool load_process, dogecoin_bool *connected);
dogecoin_blockindex* (*getchaintip)(void *db);
dogecoin_bool (*disconnect_tip)(void *db);
dogecoin_bool (*has_checkpoint_start)(void *db);
void (*set_checkpoint_start)(void *db, uint256 hash, uint32_t height, uint256 chainwork);
void (*set_checkpoint_start)(void *db, uint256_t hash, uint32_t height, uint256_t chainwork);
} dogecoin_headers_db_interface;

LIBDOGECOIN_END_DECL
Expand Down
Loading

0 comments on commit aee7e4b

Please sign in to comment.