mirror of
https://github.com/aljazceru/lightning.git
synced 2026-01-06 15:44:21 +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:
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:
|
||||
|
||||
Reference in New Issue
Block a user