common: withdraw_tx() now use the array of struct bitcoin_tx_output as parameter

This commit is contained in:
trueptolemy
2019-08-13 03:29:13 +08:00
committed by neil saitug
parent 6570c743c4
commit b660531216
7 changed files with 36 additions and 16 deletions

View File

@@ -26,7 +26,7 @@ struct bitcoin_tx *funding_tx(const tal_t *ctx,
struct bitcoin_tx *tx;
bool has_change = !amount_sat_eq(change, AMOUNT_SAT(0));
tx = tx_spending_utxos(ctx, chainparams, utxomap, bip32_base, has_change);
tx = tx_spending_utxos(ctx, chainparams, utxomap, bip32_base, has_change, 1);
wscript = bitcoin_redeem_2of2(tx, local_fundingkey, remote_fundingkey);

View File

@@ -1,3 +1,4 @@
#include <assert.h>
#include <bitcoin/script.h>
#include <common/key_derive.h>
#include <common/utils.h>
@@ -52,11 +53,14 @@ struct bitcoin_tx *tx_spending_utxos(const tal_t *ctx,
const struct chainparams *chainparams,
const struct utxo **utxos,
const struct ext_key *bip32_base,
bool add_change_output)
bool add_change_output,
size_t num_output)
{
struct pubkey key;
u8 *script;
size_t outcount = add_change_output ? 2 : 1;
assert(num_output);
size_t outcount = add_change_output ? 1 + num_output : num_output;
struct bitcoin_tx *tx = bitcoin_tx(ctx, chainparams, tal_count(utxos), outcount);
for (size_t i = 0; i < tal_count(utxos); i++) {

View File

@@ -50,6 +50,7 @@ struct bitcoin_tx *tx_spending_utxos(const tal_t *ctx,
const struct chainparams *chainparams,
const struct utxo **utxos,
const struct ext_key *bip32_base,
bool add_change_output);
bool add_change_output,
size_t num_output);
#endif /* LIGHTNING_COMMON_UTXO_H */

View File

@@ -11,8 +11,7 @@
struct bitcoin_tx *withdraw_tx(const tal_t *ctx,
const struct chainparams *chainparams,
const struct utxo **utxos,
const u8 *destination,
struct amount_sat withdraw_amount,
struct bitcoin_tx_output **outputs,
const struct pubkey *changekey,
struct amount_sat change,
const struct ext_key *bip32_base,
@@ -21,9 +20,10 @@ struct bitcoin_tx *withdraw_tx(const tal_t *ctx,
struct bitcoin_tx *tx;
tx = tx_spending_utxos(ctx, chainparams, utxos, bip32_base,
!amount_sat_eq(change, AMOUNT_SAT(0)));
!amount_sat_eq(change, AMOUNT_SAT(0)),
tal_count(outputs));
bitcoin_tx_add_output(tx, destination, withdraw_amount);
bitcoin_tx_add_multi_outputs(tx, outputs);
if (!amount_sat_eq(change, AMOUNT_SAT(0))) {
const void *map[2];

View File

@@ -2,6 +2,7 @@
#define LIGHTNING_COMMON_WITHDRAW_TX_H
#include "config.h"
#include <bitcoin/chainparams.h>
#include <bitcoin/tx.h>
#include <ccan/short_types/short_types.h>
#include <ccan/tal/tal.h>
#include <common/amount.h>
@@ -19,8 +20,7 @@ struct utxo;
* @ctx: context to tal from.
* @chainparams: (in) the params for the created transaction.
* @utxos: (in/out) tal_arr of UTXO pointers to spend (permuted to match)
* @destination: (in) tal_arr of u8, scriptPubKey to send to.
* @amount: (in) satoshis to send to the destination
* @outputs: (in) tal_arr of bitcoin_tx_output, scriptPubKeys with amount to send to.
* @changekey: (in) key to send change to (only used if change_satoshis != 0).
* @change: (in) amount to send as change.
* @bip32_base: (in) bip32 base for key derivation, or NULL.
@@ -29,8 +29,7 @@ struct utxo;
struct bitcoin_tx *withdraw_tx(const tal_t *ctx,
const struct chainparams *chainparams,
const struct utxo **utxos,
const u8 *destination,
struct amount_sat withdraw_amount,
struct bitcoin_tx_output **outputs,
const struct pubkey *changekey,
struct amount_sat change,
const struct ext_key *bip32_base,