You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
38 lines
1.1 KiB
38 lines
1.1 KiB
5 years ago
|
#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.satoshis = txout->satoshi; /* Raw: from wally_tx_output */
|
||
|
|
||
|
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);
|
||
|
}
|