mirror of
https://github.com/ElementsProject/lightning.git
synced 2025-01-09 07:10:16 +01:00
0fe53cc8e7
We used to have a permutation map; this reintroduces a variant which uses the htlc pointers directly. We need this because we have to send the htlc-tx signatures in output order as part of the protocol: without two-stage HTLCs we only needed to wire them up in the unilateral spend case so we simply brute-forced the ordering. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
19 lines
613 B
C
19 lines
613 B
C
#ifndef LIGHTNING_PERMUTE_TX_H
|
|
#define LIGHTNING_PERMUTE_TX_H
|
|
#include "config.h"
|
|
#include "bitcoin/tx.h"
|
|
|
|
struct htlc;
|
|
|
|
/* Permute the transaction into BIP69 order. */
|
|
void permute_inputs(struct bitcoin_tx_input *inputs, size_t num_inputs);
|
|
|
|
/* If @htlcmap is non-NULL, it will be permuted the same as the outputs.
|
|
*
|
|
* So the caller initiates the htlcsmap with which htlcs are used, it
|
|
* can easily see which htlc (if any) is in output #0 with htlcmap[0].
|
|
*/
|
|
void permute_outputs(struct bitcoin_tx_output *outputs, size_t num_outputs,
|
|
const struct htlc **htlcmap);
|
|
#endif /* LIGHTNING_PERMUTE_TX_H */
|