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)