2021-02-19 05:22:01 +01:00
|
|
|
#ifndef LIGHTNING_COMMON_SHUTDOWN_SCRIPTPUBKEY_H
|
|
|
|
#define LIGHTNING_COMMON_SHUTDOWN_SCRIPTPUBKEY_H
|
|
|
|
#include "config.h"
|
|
|
|
#include <ccan/short_types/short_types.h>
|
|
|
|
|
|
|
|
/* BOLT #2:
|
|
|
|
*
|
2022-03-31 11:10:50 +02:00
|
|
|
* 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:
|
2021-05-26 06:09:06 +02:00
|
|
|
* * `OP_1` through `OP_16` inclusive, followed by a single push of 2 to 40 bytes
|
|
|
|
* (witness program versions 1 through 16)
|
2021-02-19 05:22:01 +01:00
|
|
|
*
|
|
|
|
* A receiving node:
|
|
|
|
*...
|
|
|
|
* - if the `scriptpubkey` is not in one of the above forms:
|
2022-03-31 11:10:50 +02:00
|
|
|
* - SHOULD send a `warning`
|
2021-02-19 05:22:01 +01:00
|
|
|
*/
|
2021-02-24 03:53:12 +01:00
|
|
|
bool valid_shutdown_scriptpubkey(const u8 *scriptpubkey,
|
2022-03-31 11:10:50 +02:00
|
|
|
bool anysegwit,
|
|
|
|
bool anchors);
|
2021-02-19 05:22:01 +01:00
|
|
|
|
|
|
|
#endif /* LIGHTNING_COMMON_SHUTDOWN_SCRIPTPUBKEY_H */
|