mirror of
https://github.com/aljazceru/lightning.git
synced 2026-01-06 15:44:21 +01:00
This is an intermediate step since the only difference between p2pkh and p2sh is the argument that the parsing functions take, and parsing twice for that reason alone is quite useless. Signed-off-by: Christian Decker <decker.christian@gmail.com>
37 lines
1.1 KiB
C
37 lines
1.1 KiB
C
#ifndef LIGHTNING_BITCOIN_BASE58_H
|
|
#define LIGHTNING_BITCOIN_BASE58_H
|
|
#include "config.h"
|
|
|
|
#include <ccan/crypto/ripemd160/ripemd160.h>
|
|
#include <ccan/short_types/short_types.h>
|
|
#include <ccan/tal/tal.h>
|
|
#include <stdbool.h>
|
|
#include <stdlib.h>
|
|
|
|
struct pubkey;
|
|
struct privkey;
|
|
struct bitcoin_address;
|
|
|
|
/* Bitcoin address encoded in base58, with version and checksum */
|
|
char *bitcoin_to_base58(const tal_t *ctx, bool test_net,
|
|
const struct bitcoin_address *addr);
|
|
bool bitcoin_from_base58(bool *test_net,
|
|
struct bitcoin_address *addr,
|
|
const char *base58, size_t len);
|
|
|
|
/* P2SH address encoded as base58, with version and checksum */
|
|
char *p2sh_to_base58(const tal_t *ctx, bool test_net,
|
|
const struct ripemd160 *p2sh);
|
|
bool p2sh_from_base58(bool *test_net,
|
|
struct ripemd160 *p2sh,
|
|
const char *base58, size_t len);
|
|
|
|
bool key_from_base58(const char *base58, size_t base58_len,
|
|
bool *test_net, struct privkey *priv, struct pubkey *key);
|
|
|
|
/* Decode a p2pkh or p2sh into the ripemd160 hash */
|
|
bool ripemd160_from_base58(u8 *version, struct ripemd160 *rmd,
|
|
const char *base58, size_t base58_len);
|
|
|
|
#endif /* LIGHTNING_BITCOIN_BASE58_H */
|