bitcoin/psbt: psbt_finalize needs a tal ctx.

Since it returns a wally_tx.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This commit is contained in:
Rusty Russell
2020-09-21 19:54:26 +09:30
parent 607075a3d4
commit 77b62d9e42
5 changed files with 8 additions and 5 deletions

View File

@@ -524,7 +524,8 @@ static void wally_tx_destroy(struct wally_tx *wtx)
wally_tx_free(wtx);
}
struct wally_tx *psbt_finalize(struct wally_psbt *psbt, bool finalize_in_place)
struct wally_tx *psbt_finalize(const tal_t *ctx,
struct wally_psbt *psbt, bool finalize_in_place)
{
struct wally_psbt *tmppsbt;
struct wally_tx *wtx;
@@ -585,6 +586,7 @@ struct wally_tx *psbt_finalize(struct wally_psbt *psbt, bool finalize_in_place)
if (psbt_is_finalized(tmppsbt)
&& wally_psbt_extract(tmppsbt, &wtx) == WALLY_OK) {
tal_steal(ctx, wtx);
tal_add_destructor(wtx, wally_tx_destroy);
if (!finalize_in_place)
wally_psbt_free(tmppsbt);

View File

@@ -79,7 +79,8 @@ void psbt_txid(const tal_t *ctx,
*/
void psbt_elements_normalize_fees(struct wally_psbt *psbt);
struct wally_tx *psbt_finalize(struct wally_psbt *psbt, bool finalize_in_place);
struct wally_tx *psbt_finalize(const tal_t *ctx,
struct wally_psbt *psbt, bool finalize_in_place);
/* psbt_make_key - Create a new, proprietary c-lightning key
*

View File

@@ -502,7 +502,7 @@ struct bitcoin_tx *bitcoin_tx_with_psbt(const tal_t *ctx, struct wally_psbt *psb
psbt->tx->num_outputs,
psbt->tx->locktime);
wally_tx_free(tx->wtx);
tx->wtx = psbt_finalize(psbt, false);
tx->wtx = psbt_finalize(tx, psbt, false);
if (!tx->wtx && wally_tx_clone_alloc(psbt->tx, 0, &tx->wtx) != WALLY_OK)
return NULL;