Skip to content

Commit 4ece097

Browse files
committed
bitcoin/chainparams: add an utility to retrieve chainparams for all networks
1 parent a1f9645 commit 4ece097

2 files changed

Lines changed: 15 additions & 0 deletions

File tree

bitcoin/chainparams.c

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
#include "chainparams.h"
22
#include <ccan/array_size/array_size.h>
33
#include <ccan/str/str.h>
4+
#include <common/utils.h>
45
#include <string.h>
56

67
/* Version codes for BIP32 extended keys in libwally-core.
@@ -220,6 +221,14 @@ const struct chainparams *chainparams_for_network(const char *network_name)
220221
return NULL;
221222
}
222223

224+
const struct chainparams **chainparams_for_networks(const tal_t *ctx)
225+
{
226+
const struct chainparams **params = tal_arr(ctx, const struct chainparams*, 0);
227+
for (size_t i = 0; i < ARRAY_SIZE(networks); i++)
228+
tal_arr_expand(&params, &networks[i]);
229+
return params;
230+
}
231+
223232
const struct chainparams *chainparams_by_chainhash(const struct bitcoin_blkid *chain_hash)
224233
{
225234
for (size_t i = 0; i < ARRAY_SIZE(networks); i++) {

bitcoin/chainparams.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,12 @@ struct chainparams {
4646
*/
4747
const struct chainparams *chainparams_for_network(const char *network_name);
4848

49+
/**
50+
* chainparams_for_networks - Get blockchain parameters for all known networks,
51+
* as a tal array.
52+
*/
53+
const struct chainparams **chainparams_for_networks(const tal_t *ctx);
54+
4955
/**
5056
* chainparams_by_bip173 - Helper to get a network by its bip173 name
5157
*

0 commit comments

Comments
 (0)