mirror of
https://github.com/ElementsProject/lightning.git
synced 2025-01-17 19:03:42 +01:00
bitcoin/tx: add helper to write blob of data.
We do this a lot. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This commit is contained in:
parent
58b14292ad
commit
ee5f0e3ea6
17
bitcoin/tx.c
17
bitcoin/tx.c
@ -55,13 +55,20 @@ static void add_le64(u64 v,
|
||||
add(&l, sizeof(l), addp);
|
||||
}
|
||||
|
||||
static void add_varint_blob(const void *blob, varint_t len,
|
||||
void (*add)(const void *, size_t, void *),
|
||||
void *addp)
|
||||
{
|
||||
add_varint(len, add, addp);
|
||||
add(blob, len, addp);
|
||||
}
|
||||
|
||||
static void add_tx_input(const struct bitcoin_tx_input *input,
|
||||
void (*add)(const void *, size_t, void *), void *addp)
|
||||
{
|
||||
add(&input->txid, sizeof(input->txid), addp);
|
||||
add_le32(input->index, add, addp);
|
||||
add_varint(input->script_length, add, addp);
|
||||
add(input->script, input->script_length, addp);
|
||||
add_varint_blob(input->script, input->script_length, add, addp);
|
||||
add_le32(input->sequence_number, add, addp);
|
||||
}
|
||||
|
||||
@ -69,8 +76,7 @@ static void add_tx_output(const struct bitcoin_tx_output *output,
|
||||
void (*add)(const void *, size_t, void *), void *addp)
|
||||
{
|
||||
add_le64(output->amount, add, addp);
|
||||
add_varint(output->script_length, add, addp);
|
||||
add(output->script, output->script_length, addp);
|
||||
add_varint_blob(output->script, output->script_length, add, addp);
|
||||
}
|
||||
|
||||
/* BIP 141:
|
||||
@ -79,8 +85,7 @@ static void add_tx_output(const struct bitcoin_tx_output *output,
|
||||
static void add_witness(const u8 *witness,
|
||||
void (*add)(const void *, size_t, void *), void *addp)
|
||||
{
|
||||
add_varint(tal_count(witness), add, addp);
|
||||
add(witness, tal_count(witness), addp);
|
||||
add_varint_blob(witness, tal_count(witness), add, addp);
|
||||
}
|
||||
|
||||
/* BIP144:
|
||||
|
Loading…
Reference in New Issue
Block a user