diff --git a/common/jsonrpc_errors.h b/common/jsonrpc_errors.h index d3fe80d53997..a2ea1bf1b2e1 100644 --- a/common/jsonrpc_errors.h +++ b/common/jsonrpc_errors.h @@ -116,6 +116,7 @@ enum jsonrpc_errcode { OFFER_BAD_INVREQ_REPLY = 1004, OFFER_TIMEOUT = 1005, OFFER_ALREADY_ENABLED = 1006, + OFFER_USED_SINGLE_USE = 1007, /* Errors from datastore command */ DATASTORE_DEL_DOES_NOT_EXIST = 1200, diff --git a/lightningd/offer.c b/lightningd/offer.c index bd4357eb33af..50edd4d4f9b6 100644 --- a/lightningd/offer.c +++ b/lightningd/offer.c @@ -282,6 +282,10 @@ static struct command_result *json_enableoffer(struct command *cmd, return command_fail(cmd, OFFER_ALREADY_ENABLED, "offer already active"); + if (offer_status_single(status) && offer_status_used(status)) + return command_fail(cmd, OFFER_USED_SINGLE_USE, + "cannot activate an used single use offer"); + if (command_check_only(cmd)) return command_check_done(cmd);