From 6af8f293929d7fd707c1422687f18692a0671cf9 Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Sat, 13 Oct 2018 14:24:32 +1030 Subject: [PATCH] bolt11: better message when you try to 'lightning-cli pay' an onchain addr. Give a clear error at the beginning if it's not bolt11 payment, rather than falling foul of other checks. This will work at least until some altcoin adapts the 'ln' prefix :) Signed-off-by: Rusty Russell --- common/bolt11.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/common/bolt11.c b/common/bolt11.c index 56928ec94..9d32cbcae 100644 --- a/common/bolt11.c +++ b/common/bolt11.c @@ -467,11 +467,11 @@ struct bolt11 *bolt11_decode(const tal_t *ctx, const char *str, b11->routes = tal_arr(b11, struct route_info *, 0); - if (strlen(str) < 8) - return decode_fail(b11, fail, "Bad bech32 string"); + if (!strstarts(str, "ln")) + return decode_fail(b11, fail, "Invoices must start with ln"); - hrp = tal_arr(tmpctx, char, strlen(str) - 6); - data = tal_arr(tmpctx, u5, strlen(str) - 8); + hrp = tal_arr(tmpctx, char, strlen(str)); + data = tal_arr(tmpctx, u5, strlen(str)); if (!bech32_decode(hrp, data, &data_len, str, (size_t)-1)) return decode_fail(b11, fail, "Bad bech32 string");