core-lightning/common/penalty_base.c
Rusty Russell 06a54606a3 check-includes: allow redundant "config.h"
We should actually be including this (as it may define _GNU_SOURCE
etc) before any system headers.  But where we include <assert.h> we
often didn't, because check-includes would complain that the headers
included it too.

Weaken that check, and include config.h in C files before assert.h.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2021-02-04 12:02:36 +10:30

39 lines
1.1 KiB
C

#include "config.h"
#include <assert.h>
#include <common/penalty_base.h>
#include <wire/wire.h>
/* txout must be within tx! */
struct penalty_base *penalty_base_new(const tal_t *ctx,
u64 commitment_num,
const struct bitcoin_tx *tx,
const struct wally_tx_output *txout)
{
struct penalty_base *pbase = tal(ctx, struct penalty_base);
pbase->commitment_num = commitment_num;
bitcoin_txid(tx, &pbase->txid);
pbase->outnum = txout - tx->wtx->outputs;
assert(pbase->outnum < tx->wtx->num_outputs);
pbase->amount = amount_sat(txout->satoshi);
return pbase;
}
void towire_penalty_base(u8 **pptr, const struct penalty_base *pbase)
{
towire_u64(pptr, pbase->commitment_num);
towire_bitcoin_txid(pptr, &pbase->txid);
towire_u32(pptr, pbase->outnum);
towire_amount_sat(pptr, pbase->amount);
}
void fromwire_penalty_base(const u8 **pptr, size_t *max,
struct penalty_base *pbase)
{
pbase->commitment_num = fromwire_u64(pptr, max);
fromwire_bitcoin_txid(pptr, max, &pbase->txid);
pbase->outnum = fromwire_u32(pptr, max);
pbase->amount = fromwire_amount_sat(pptr, max);
}