core-lightning/doc/schemas/lightning-reserveinputs.json
Rusty Russell b327bd30c3 doc: fix all JSON schemas to enforce no additional properties.
Without this, we have hardly any enforcement.  This is why the schema
mistake fixed in the previous patches weren't spotted immediately.

The hard work was done by:

```
$ for f in lightning-*.json; do grep -v '^  "additionalProperties": false,' $f | bagto $f; done
$ for f in lightning-*.json; do sed 's/"properties": {/"additionalProperties": false, "properties": {/' $f | bagto $f; done
$ make fmt-schemas
```

Then checking where 'additionalProperties: true' had been turned to
false (we deliberately use it in some places where there are if
statements in the schema, or occasionally where there can be arbitrary
fields).

[Including doc/rpc-schema-draft.json update by Shahana]
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2024-10-30 15:39:12 +10:30

153 lines
4.1 KiB
JSON

{
"$schema": "../rpc-schema-draft.json",
"type": "object",
"rpc": "reserveinputs",
"title": "Construct a transaction and reserve the UTXOs it spends",
"description": [
"The **reserveinputs** RPC command places (or increases) reservations on any inputs specified in *psbt* which are known to lightningd. It will fail with an error if any of the inputs are known to be spent, and ignore inputs which are unknown.",
"",
"Normally the command will fail (with no reservations made) if an input is already reserved."
],
"request": {
"required": [
"psbt"
],
"additionalProperties": false,
"properties": {
"psbt": {
"type": "string",
"description": [
"The PSBT to reserve inputs from."
]
},
"exclusive": {
"type": "boolean",
"description": [
"If set to *False*, existing reservations are simply extended, rather than causing failure."
]
},
"reserve": {
"type": "u32",
"description": [
"The number of blocks to reserve. By default, reservations are for the next 72 blocks (approximately 6 hours)."
]
}
}
},
"response": {
"required": [
"reservations"
],
"additionalProperties": false,
"properties": {
"reservations": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"txid",
"vout",
"was_reserved",
"reserved",
"reserved_to_block"
],
"properties": {
"txid": {
"type": "txid",
"description": [
"The input transaction id."
]
},
"vout": {
"type": "u32",
"description": [
"The input index output number which was reserved."
]
},
"was_reserved": {
"type": "boolean",
"description": [
"Whether the input was already reserved."
]
},
"reserved": {
"type": "boolean",
"enum": [
true
],
"description": [
"Whether the input is now reserved."
]
},
"reserved_to_block": {
"type": "u32",
"description": [
"What blockheight the reservation will expire."
]
}
}
}
}
}
},
"errors": [
"On failure, an error is reported and no UTXOs are reserved.",
"",
"- -32602: Invalid parameter, such as specifying a spent/reserved input in *psbt*."
],
"author": [
"Lisa Neigut <<niftynei@gmail.com>> is mainly responsible."
],
"see_also": [
"lightning-unreserveinputs(7)",
"lightning-signpsbt(7)",
"lightning-sendpsbt(7)"
],
"resources": [
"Main web site: <https://github.com/ElementsProject/lightning>"
],
"examples": [
{
"request": {
"id": "example:reserveinputs#1",
"method": "reserveinputs",
"params": {
"psbt": "cHNidP8BADMCAAAAAfcJ+tPRXly5UFuX2jOOOBUcBBjfDGAC8vLWfrkJf/O2AQAAAAD9////AAAAAAAAAA=="
}
},
"response": {
"reservations": [
{
"txid": "b6f37f09b97ed6f2f202600cdf18041c15388e33da975b50b95c5ed1d3fa09f7",
"vout": 1,
"was_reserved": false,
"reserved": true,
"reserved_to_block": 226
}
]
}
},
{
"request": {
"id": "example:reserveinputs#2",
"method": "reserveinputs",
"params": {
"psbt": "cHNidP8BADMCAAAAAQmU87pv4WOONFOqae6XAQBHIi5fZ4Ztyt0vn1YASZntAAAAAAD9////AAAAAAAAAA=="
}
},
"response": {
"reservations": [
{
"txid": "ed994900569f2fddca6d86675f2e2247000197ee69aa53348e63e16fbaf39409",
"vout": 0,
"was_reserved": false,
"reserved": true,
"reserved_to_block": 226
}
]
}
}
]
}