mirror of
https://github.com/ElementsProject/lightning.git
synced 2024-11-19 09:54:16 +01:00
ea95ad9c12
In the case where you want a PSBT and also want the output to be added as a change address, use `excess_as_change` = true. Generates a change address to use. If you want to pay the excess elsewhere, you will have to add separately. Changelog-Added: JSON-RPC: Add new parameter `excess_as_change` to fundpsbt+utxopsbt
124 lines
4.4 KiB
Groff
Generated
124 lines
4.4 KiB
Groff
Generated
.TH "LIGHTNING-FUNDPSBT" "7" "" "" "lightning-fundpsbt"
|
||
.SH NAME
|
||
lightning-fundpsbt - Command to populate PSBT inputs from the wallet
|
||
.SH SYNOPSIS
|
||
|
||
\fBfundpsbt\fR \fIsatoshi\fR \fIfeerate\fR \fIstartweight\fR [\fIminconf\fR] [\fIreserve\fR] [\fIlocktime\fR] [\fImin_witness_weight\fR] [\fIexcess_as_change\fR]
|
||
|
||
.SH DESCRIPTION
|
||
|
||
\fBfundpsbt\fR is a low-level RPC command which creates a PSBT using unreserved
|
||
inputs in the wallet, optionally reserving them as well\.
|
||
|
||
|
||
\fIsatoshi\fR is the minimum satoshi value of the output(s) needed (or the
|
||
string "all" meaning use all unreserved inputs)\. If a value, it can
|
||
be a whole number, a whole number ending in \fIsat\fR, a whole number
|
||
ending in \fI000msat\fR, or a number with 1 to 8 decimal places ending in
|
||
\fIbtc\fR\.
|
||
|
||
|
||
\fIfeerate\fR can be one of the feerates listed in \fBlightning-feerates\fR(7),
|
||
or one of the strings \fIurgent\fR (aim for next block), \fInormal\fR (next 4
|
||
blocks or so) or \fIslow\fR (next 100 blocks or so) to use lightningd’s
|
||
internal estimates\. It can also be a \fIfeerate\fR is a number, with an
|
||
optional suffix: \fIperkw\fR means the number is interpreted as
|
||
satoshi-per-kilosipa (weight), and \fIperkb\fR means it is interpreted
|
||
bitcoind-style as satoshi-per-kilobyte\. Omitting the suffix is
|
||
equivalent to \fIperkb\fR\.
|
||
|
||
|
||
\fIstartweight\fR is the weight of the transaction before \fIfundpsbt\fR has
|
||
added any inputs\.
|
||
|
||
|
||
\fIminconf\fR specifies the minimum number of confirmations that used
|
||
outputs should have\. Default is 1\.
|
||
|
||
|
||
\fIreserve\fR is a boolean: if true (the default), then \fIreserveinputs\fR is
|
||
called (successfully, with \fIexclusive\fR true) on the returned PSBT\.
|
||
|
||
|
||
\fIlocktime\fR is an optional locktime: if not set, it is set to a recent
|
||
block height\.
|
||
|
||
|
||
\fImin_witness_weight\fR is an optional minimum weight to use for a UTXO's
|
||
witness\. If the actual witness weight is greater than the provided minimum,
|
||
the actual witness weight will be used\.
|
||
|
||
|
||
\fIexcess_as_change\fR is an optional boolean to flag to add a change output
|
||
for the excess sats\.
|
||
|
||
.SH EXAMPLE USAGE
|
||
|
||
Let's assume the caller is trying to produce a 100,000 satoshi output\.
|
||
|
||
|
||
First, the caller estimates the weight of the core (typically 42) and
|
||
known outputs of the transaction (typically (9 + scriptlen) * 4)\. For
|
||
a simple P2WPKH it's a 22 byte scriptpubkey, so that's 124 weight\.
|
||
|
||
|
||
It calls "\fIfundpsbt\fR 100000sat slow 166", which succeeds, and returns
|
||
the \fIpsbt\fR and \fIfeerate_per_kw\fR it used, the \fIestimated_final_weight\fR
|
||
and any \fIexcess_msat\fR\.
|
||
|
||
|
||
If \fIexcess_msat\fR is greater than the cost of adding a change output,
|
||
the caller adds a change output randomly to position 0 or 1 in the
|
||
PSBT\. Say \fIfeerate_per_kw\fR is 253, and the change output is a P2WPKH
|
||
(weight 124), the cost is around 31 sats\. With the dust limit disallowing
|
||
payments below 546 satoshis, we would only create a change output
|
||
if \fIexcess_msat\fR was greater or equal to 31 + 546\.
|
||
|
||
.SH RETURN VALUE
|
||
|
||
On success, returns the \fIpsbt\fR containing the inputs, \fIfeerate_per_kw\fR
|
||
showing the exact numeric feerate it used, \fIestimated_final_weight\fR for
|
||
the estimated weight of the transaction once fully signed, and
|
||
\fIexcess_msat\fR containing the amount above \fIsatoshi\fR which is
|
||
available\. This could be zero, or dust\. If \fIsatoshi\fR was "all",
|
||
then \fIexcess_msat\fR is the entire amount once fees are subtracted
|
||
for the weights of the inputs and startweight\.
|
||
|
||
|
||
If \fIreserve\fR was true, then a \fIreservations\fR array is returned,
|
||
exactly like \fIreserveinputs\fR\.
|
||
|
||
|
||
If \fIexcess_as_change\fR is true and the excess is enough to cover
|
||
an additional output above the \fBdust_limit\fR, then an output is
|
||
added to the PSBT for the excess amount\. The \fIexcess_msat\fR will
|
||
be zero\. A \fIchange_outnum\fR will be returned with the index of
|
||
the change output\.
|
||
|
||
|
||
On error the returned object will contain \fBcode\fR and \fBmessage\fR properties,
|
||
with \fBcode\fR being one of the following:
|
||
|
||
.RS
|
||
.IP \[bu]
|
||
-32602: If the given parameters are wrong\.
|
||
.IP \[bu]
|
||
-1: Catchall nonspecific error\.
|
||
.IP \[bu]
|
||
301: Insufficient UTXOs to meet \fIsatoshi\fR value\.
|
||
|
||
.RE
|
||
.SH AUTHOR
|
||
|
||
Rusty Russell \fI<rusty@rustcorp.com.au\fR> is mainly responsible\.
|
||
|
||
.SH SEE ALSO
|
||
|
||
\fBlightning-utxopsbt\fR(7), \fBlightning-reserveinputs\fR(7), \fBlightning-unreserveinputs\fR(7)\.
|
||
|
||
.SH RESOURCES
|
||
|
||
Main web site: \fIhttps://github.com/ElementsProject/lightning\fR
|
||
|
||
\" SHA256STAMP:b9ecd1408f0e5d8424e530ab44ab21b0e773c537c3512b68b31f197851d9abce
|