mirror of
https://github.com/aljazceru/lightning.git
synced 2025-12-21 16:14:23 +01:00
common: withdraw_tx() now use the array of struct bitcoin_tx_output as parameter
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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++) {
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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];
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user