Как вычислить срок действия BOLT11-счёта перед оплатой
В Lightning-счёте записаны время создания и срок действия в секундах. Платёжная форма может вычислить абсолютное время истечения до запроса маршрута.
Прочитайте поля подписанного счёта
В BOLT11 поместите закодированный счёт. Декодируйте его на ноде нужной сети, проверьте тип и признак корректности и затем читайте поля BOLT11.
lightning-cli decode "$BOLT11" | jq '{type, valid, currency, created_at, expiry, deadline: (.created_at + .expiry)}'
Вычислите оставшееся время
Если счёт создан в Unix-время 1 700 000 000, а срок равен 900 секундам, он истекает в 1 700 000 900. Сравните результат с точными часами и оставьте время на поиск маршрута. Корректная подпись и неистёкший срок ничего не говорят о доступности получателя.