Saturday, June 14, 2025
HomeBitcoinHow do I calculate transaction payment for name to createpsbt()?

How do I calculate transaction payment for name to createpsbt()?

When my consumer invokes my app, he passes as an enter parameter the specified worth of the TX payment in satoshis per byte. I create a PSBT by calling createpsbt(). I exert full management over the dedication of inputs and outputs. For instance, I do not name walletcreatefundedpsbt(), as a result of I do not need bitcoind to pick out inputs on my behalf. I’ve a hen and egg downside in that I must name createpsbt() to be able to decide the scale of the TX in bytes, however I must specify the payment quantity earlier than the decision to createpsbt(). One of the best resolution that I can consider is to execute a dummy name to createpsbt() utilizing a dummy payment worth, then measure the scale of the TX, then do an actual name to createpsbt() after appropriately calculating the payment quantity. Is there a greater manner?

Edit: I need to spend all UTXOs. I need two outputs, one to obtain a set quantity, the opposite to obtain change much less the payment. I’ve tried many incantations, I am unable to get it to work. This is my newest try:

raw_psbt = rpc.walletcreatefundedpsbt(
    # all UTXOs, as returned by listunspent():
    inputs,
    # one recipient: [ { addr : amount } ]
    outputs,
    0,  # locktime
    {
        "replaceable" : True,
        # I would love for the change much less the payment to go right here:
        "changeAddress" : xxx,
        "includeWatching" : True,
        "feeRate" : 0.005,
    }
)

This fails with Signing transaction failed (-4). Any thought what I am doing improper?

Edit #2: I am unable to use walletcreatefundedpsbt() as prompt beneath to create the PSBT, as a result of that perform requires that its inputs be “solvable”, which isn’t the case in my surroundings. Extra information at this hyperlink:

Errors with walletcreatefundedpsbt & non-solvable UTXOs

So my authentic query stays unresolved at this level.

Edit #3: So I requested on Slack. The issue is that our UTXOs are 1) not “solvable” and a couple of) can’t be expressed within the descriptor language, so Bitcoin Core has no option to calculate the TX measurement earlier than the TX is signed. Apparently I must calculated it manually as defined within the hooked up screenshot.How do I calculate transaction payment for name to createpsbt()?

RELATED ARTICLES

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Most Popular

Recent Comments