#ifndef LIGHTNING_COMMON_KEYSET_H
#define LIGHTNING_COMMON_KEYSET_H
#include "config.h"
#include <bitcoin/pubkey.h>
#include <stdbool.h>

/* Keys needed to derive a particular commitment tx. */
struct keyset {
	struct pubkey self_revocation_key;
	struct pubkey self_htlc_key, other_htlc_key;
	struct pubkey self_delayed_payment_key;
	struct pubkey self_payment_key, other_payment_key;
};

bool derive_keyset(const struct pubkey *per_commitment_point,
		   const struct pubkey *self_payment_basepoint,
		   const struct pubkey *other_payment_basepoint,
		   const struct pubkey *self_htlc_basepoint,
		   const struct pubkey *other_htlc_basepoint,
		   const struct pubkey *self_delayed_basepoint,
		   const struct pubkey *other_revocation_basepoint,
		   struct keyset *keyset);
#endif /* LIGHTNING_COMMON_KEYSET_H */
