2021-02-01 03:58:50 +01:00
|
|
|
#include "config.h"
|
2020-10-20 05:59:30 +02:00
|
|
|
#include <assert.h>
|
|
|
|
#include <bitcoin/chainparams.h>
|
|
|
|
#include <bitcoin/privkey.h>
|
|
|
|
#include <bitcoin/pubkey.h>
|
|
|
|
#include <common/node_id.h>
|
|
|
|
#include <common/private_channel_announcement.h>
|
2020-12-14 04:48:14 +01:00
|
|
|
#include <wire/peer_wire.h>
|
2020-10-20 05:59:30 +02:00
|
|
|
|
|
|
|
const u8 *private_channel_announcement(const tal_t *ctx,
|
|
|
|
const struct short_channel_id *scid,
|
|
|
|
const struct node_id *local_node_id,
|
|
|
|
const struct node_id *remote_node_id,
|
|
|
|
const u8 *features)
|
|
|
|
{
|
|
|
|
struct pubkey dummy_pubkey;
|
|
|
|
const struct node_id *node[2];
|
|
|
|
struct secret not_a_secret;
|
|
|
|
|
|
|
|
/* Make an all-zero sig. */
|
|
|
|
static const u8 zeros[64];
|
|
|
|
size_t zlen = sizeof(zeros);
|
|
|
|
const u8 *zerop = zeros;
|
|
|
|
secp256k1_ecdsa_signature zerosig;
|
|
|
|
fromwire_secp256k1_ecdsa_signature(&zerop, &zlen, &zerosig);
|
|
|
|
assert(zerop != NULL);
|
|
|
|
|
|
|
|
memset(¬_a_secret, 1, sizeof(not_a_secret));
|
|
|
|
if (!pubkey_from_secret(¬_a_secret, &dummy_pubkey))
|
|
|
|
abort();
|
|
|
|
|
|
|
|
/* node ids are in ascending order. */
|
|
|
|
if (node_id_cmp(remote_node_id, local_node_id) > 0) {
|
|
|
|
node[0] = local_node_id;
|
|
|
|
node[1] = remote_node_id;
|
|
|
|
} else {
|
|
|
|
node[0] = remote_node_id;
|
|
|
|
node[1] = local_node_id;
|
|
|
|
}
|
|
|
|
|
|
|
|
return towire_channel_announcement(ctx,
|
|
|
|
&zerosig, &zerosig,
|
|
|
|
&zerosig, &zerosig,
|
|
|
|
features,
|
|
|
|
&chainparams->genesis_blockhash,
|
|
|
|
scid,
|
|
|
|
node[0],
|
|
|
|
node[1],
|
|
|
|
&dummy_pubkey,
|
|
|
|
&dummy_pubkey);
|
|
|
|
}
|