ElementsProject / ElementsProject/elements

`blindrawtransaction` and `rawblindrawtransaction` RPCs null asset parse error

Open
#999 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
1.2k
Forks
417
Avg merge
1d 23h
Merged PRs (30d)
15

Description

```
blindrawtransaction "hexstring" ( ignoreblindfail ["assetcommitment",...] blind_issuances "totalblinder" )

Convert one or more outputs of a raw transaction into confidential ones using only wallet inputs.
Returns the hex-encoded raw transaction.
The output keys used can be specified by using a confidential address in createrawtransaction.
This call may add an additional 0-value unspendable output in order to balance the blinders.

Arguments:
1. hexstring (string, required) A hex-encoded raw transaction.
2. ignoreblindfail (boolean, optional, default=true) Return a transaction even when a blinding attempt fails due to number of blinded inputs/outputs.
3. asset_commitments (json array, optional) An array of input asset generators. If provided, this list must be empty, or match the final input commitment list, including ordering, to make a valid surjection proof. This list does not include generators for issuances, as these assets are inherently unblinded.
[
"assetcommitment", (string) A hex-encoded asset commitment, one for each input. Null commitments must be "".
...
]
4. blind_issuances (boolean, optional, default=true) Blind the issuances found in the raw transaction or not. All issuances will be blinded if true.
5. totalblinder (string) Ignored for now.

Result:
"hex" (string) serialized transaction

```
The doc says that Null commitments must be "", but there is no code to parse them. Users can use any dummy 66 hex valid generator string instead of null. But the rpc docs are incorrect.

Contributor guide

Open the contributing guide

Research direction

Start at the RPC argument-parsing entry points for blindrawtransaction and rawblindrawtransaction, then compare their asset_commitments handling with the documented null-commitment form. Done means both RPCs consistently accept the documented empty-string null commitments, with the RPC documentation and relevant verification updated to match.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
api, backend
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Clearly specified
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.