core-lightning/common/shutdown_scriptpubkey.h
Rusty Russell 9f06a59e3c shutdown: don't allow shutdown to p2pkh or p2sh addresses for anchor outputs.
This doesn't have an effect now (except in experimental mode), but it
will when we support anchors.  So we deprecate the use of those in the
close command too.

For experimental mode we have to avoid using p2pkh; adapt that test.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Changelog-Deprecated: JSON-RPC: `shutdown` no longer allows p2pkh or p2sh addresses.
2022-04-02 09:40:18 +10:30

24 lines
794 B
C

#ifndef LIGHTNING_COMMON_SHUTDOWN_SCRIPTPUBKEY_H
#define LIGHTNING_COMMON_SHUTDOWN_SCRIPTPUBKEY_H
#include "config.h"
#include <ccan/short_types/short_types.h>
/* BOLT #2:
*
* 1. `OP_0` `20` 20-bytes (version 0 pay to witness pubkey hash), OR
* 2. `OP_0` `32` 32-bytes (version 0 pay to witness script hash), OR
* 3. if (and only if) `option_shutdown_anysegwit` is negotiated:
* * `OP_1` through `OP_16` inclusive, followed by a single push of 2 to 40 bytes
* (witness program versions 1 through 16)
*
* A receiving node:
*...
* - if the `scriptpubkey` is not in one of the above forms:
* - SHOULD send a `warning`
*/
bool valid_shutdown_scriptpubkey(const u8 *scriptpubkey,
bool anysegwit,
bool anchors);
#endif /* LIGHTNING_COMMON_SHUTDOWN_SCRIPTPUBKEY_H */