mirror of
https://github.com/ElementsProject/lightning.git
synced 2024-11-20 02:27:51 +01:00
d1b42cccd1
One of the more complex ones. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
147 lines
3.6 KiB
JSON
147 lines
3.6 KiB
JSON
{
|
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
"type": "object",
|
|
"required": [ "currency", "created_at", "expiry", "payee", "min_final_cltv_expiry", "payment_hash", "signature" ],
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"currency": {
|
|
"type": "string",
|
|
"description": "the BIP173 name for the currency"
|
|
},
|
|
"created_at": {
|
|
"type": "u64",
|
|
"description": "the UNIX-style timestamp of the invoice"
|
|
},
|
|
"expiry": {
|
|
"type": "u64",
|
|
"description": "the number of seconds this is valid after *timestamp*"
|
|
},
|
|
"payee": {
|
|
"type": "pubkey",
|
|
"description": "the public key of the recipient"
|
|
},
|
|
"msatoshi": {
|
|
"type": "u64",
|
|
"deprecated": true
|
|
},
|
|
"amount_msat": {
|
|
"type": "msat",
|
|
"description": "Amount the invoice asked for"
|
|
},
|
|
"payment_hash": {
|
|
"type": "hex",
|
|
"description": "the hash of the *payment_preimage*",
|
|
"maxLength": 64,
|
|
"minLength": 64
|
|
},
|
|
"signature": {
|
|
"type": "signature",
|
|
"description": "signature of the *payee* on this invoice"
|
|
},
|
|
"description": {
|
|
"type": "string",
|
|
"description": "the description of the purpose of the purchase"
|
|
},
|
|
"description_hash": {
|
|
"type": "hex",
|
|
"description": "the hash of the description, in place of *description*",
|
|
"maxLength": 64,
|
|
"minLength": 64
|
|
},
|
|
"min_final_cltv_expiry": {
|
|
"type": "u32",
|
|
"description": "the minimum CLTV delay for the final node"
|
|
},
|
|
"payment_secret": {
|
|
"type": "hex",
|
|
"description": "the secret to hand to the payee node",
|
|
"maxLength": 64,
|
|
"minLength": 64
|
|
},
|
|
"features": {
|
|
"type": "hex",
|
|
"description": "the features bitmap for this invoice"
|
|
},
|
|
"fallbacks": {
|
|
"type": "array",
|
|
"description": "onchain addresses",
|
|
"items": {
|
|
"type": "object",
|
|
"required": ["type", "hex"],
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"description": "the address type (if known)",
|
|
"enum": [ "P2PKH", "P2SH", "P2WPKH", "P2WSH" ]
|
|
},
|
|
"addr": {
|
|
"type": "string",
|
|
"description": "the address in appropriate format for *type*"
|
|
},
|
|
"hex": {
|
|
"type": "hex",
|
|
"description": "Raw encoded address"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"routes": {
|
|
"type": "array",
|
|
"description": "Route hints to the *payee*",
|
|
"items": {
|
|
"type": "array",
|
|
"description": "hops in the route",
|
|
"items": {
|
|
"type": "object",
|
|
"required": [ "pubkey", "short_channel_id", "fee_base_msat", "fee_proportional_millionths", "cltv_expiry_delta" ],
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"pubkey": {
|
|
"type": "pubkey",
|
|
"description": "the public key of the node"
|
|
},
|
|
"short_channel_id": {
|
|
"type": "short_channel_id",
|
|
"description": "a channel to the next peer"
|
|
},
|
|
"fee_base_msat": {
|
|
"type": "u32",
|
|
"description": "the base fee for payments"
|
|
},
|
|
"fee_proportional_millionths": {
|
|
"type": "u32",
|
|
"description": "the parts-per-million fee for payments"
|
|
},
|
|
"cltv_expiry_delta": {
|
|
"type": "u32",
|
|
"description": "the CLTV delta across this hop"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"extra": {
|
|
"type": "array",
|
|
"description": "Any extra fields we didn't know how to parse",
|
|
"items": {
|
|
"type": "object",
|
|
"required": [ "tag", "data" ],
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"tag": {
|
|
"type": "string",
|
|
"description": "The bech32 letter which identifies this field",
|
|
"maxLength": 1,
|
|
"minLength": 1
|
|
},
|
|
"data": {
|
|
"type": "string",
|
|
"description": "The bech32 data for this field"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|