Skip to content

Redundant duplicated solving_data in FundTransaction #1470

@tomt1664

Description

@tomt1664

solving_data is used as documented input to walletcreatefundedpsbt and fundrawtransaction twice, but only one is used.

solving_data (keys and scripts needed for producing a final transaction with a dummy signature) is supplied as a json object to walletcreatefundedpsbt (argument number 6) and fundrawtransaction (argument number 4).

Each of these RPCs is also supplied a json object options (argument 2 in fundrawtransaction and argument 4 in walletcreatefundedpsbt).

The options object in both RPCs also has an optional solving_data object (added in the function FundTxDoc() in wallet/rpc/spend.cpp).

Both RPCs pass both the full options object and the solving_data argument to the function FundTransaction function. However, only the solving_data included in the options object is used by this function, the explicitly supplied solving_data is ignored.

All functional tests supply solving_data via the options argument.

The consequence of this is that the RPC docs are incorrect, and any user adding solving_data directly as an argument will have no effect.

An upstream patch (bitcoin/bitcoin#26485) adds an assertion that checks no RPC argument names are duplicated, which this bug will cause to fail.

Metadata

Metadata

Assignees

Labels

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions