splice script: Allow `out_ppm` for wallet
What changed, and why it matters
This small code change relaxes a validation rule in the splicing feature of Core Lightning. Previously, the software rejected any splice action that included an `out_ppm` (output parts-per-million fee rate) on the final step. Now it allows `out_ppm` to remain set if the action is the on-chain wallet. The commit says this is to help manage state around dynamic wallets. There is no direct evidence in the commit or supplied references that this fixes a security vulnerability; it appears to be a functional or state-management adjustment.
Treat as a routine functional patch unless additional context shows the prior strict validation caused security-relevant failures. Review the splicing state machine to confirm that allowing `out_ppm` on the wallet action does not lead to fee miscalculation or unintended transaction outputs.
Security signals we found
Validation rule relaxed for onchain_wallet splice action
No explicit security claim in commit message or diff
Change relates to fee-rate field persistence in splicing workflow
Evidence from the diff
In plugins/spender/splice.c, the validation in execute_splice was changed from rejecting any action with out_ppm on the final splice step to only rejecting it when !action->onchain_wallet. The error message was updated accordingly. This permits the wallet-related splice action to retain an out_ppm value after its result has been calculated. The change is minimal (+3/-2 lines) and no security impact is stated or directly inferable from the diff alone.
Changed components
plugins/spender/splice.cCore Lightning splicing pluginInspect captured patch +3 / −2
diff --git a/plugins/spender/splice.c b/plugins/spender/splice.c
index d52d731b..cbe13d43 100644
--- a/plugins/spender/splice.c
+++ b/plugins/spender/splice.c
@@ -1090,9 +1090,10 @@ static struct command_result *execute_splice(struct command *cmd,
action = splice_cmd->actions[i];
state = splice_cmd->states[i];
- if (splice_cmd->actions[i]->out_ppm)
+ if (action->out_ppm && !action->onchain_wallet)
return do_fail(cmd, splice_cmd, JSONRPC2_INVALID_PARAMS,
- "Should be no out_ppm on final");
+ "Should be no out_ppm on final"
+ " except for the wallet");
if (splice_cmd->actions[i]->pays_fee) {
if (pays_fee)
return do_fail(cmd, splice_cmd,
Why this scored 28/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.