Saturday, July 6, 2024

json rpc – import a descriptor right into a pockets?

I’m making an attempt to import a descriptor right into a clean pockets however I get a JSON parsing error.

$ cli createwallet "check" false true "" false true
$ cli -rpcwallet=check importdescriptors '[{ "desc": "pk(0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798)", "timestamp":1455191478, "internal": true }]'
error: Error parsing JSON: [{

Isn’t the command importdescriptors expecting a JSON string?
I can’t see why I get this error. By the way this is an example from https://developer.bitcoin.org/reference/rpc/importdescriptors.html

Edit1.

The argument is a correct JSON string

$ export ARGS='[{ "desc": "pk(0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798)", "timestamp":1455191478, "internal": true }]'
$ echo $ARGS | jq
[
  {
    "desc": "pk(0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798)",
    "timestamp": 1455191478,
    "internal": true
  }
]
$ cli -rpcwallet=check importdescriptors $ARGS
error: Error parsing JSON: [{

I also tried changing single quotes with double quotes

$ export ARGS2="[{ "desc": "pk(0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798)", "timestamp":1455191478, "internal": true }]"
$ echo $ARGS2 | jq
[
  {
    "desc": "pk(0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798)",
    "timestamp": 1455191478,
    "internal": true
  }
]
$ cli -rpcwallet=check importdescriptors $ARGS2 
error: Error parsing JSON: [{

I am using a bash shell.

Edit2.

As suggested by @andrew-chow, removing the spaces solves the JSON parsing error,
this is weird. I tried a simple C++ application in my bash shell that reads arguments from the command line and anything inside single or double quotes is interpreted as a single string argument independently of spaces.

int main(int nargs, char** args)

Related Articles

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Latest Articles