mirror of
https://github.com/aljazceru/lightning.git
synced 2025-12-23 17:14:22 +01:00
BOLT update for 8-byte satoshi values, and other updates.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This commit is contained in:
@@ -702,7 +702,7 @@ u8 **bitcoin_to_local_spend_revocation(const tal_t *ctx,
|
|||||||
* key. The output is a P2WSH, with a witness script:
|
* key. The output is a P2WSH, with a witness script:
|
||||||
*
|
*
|
||||||
* # To you with revocation key
|
* # To you with revocation key
|
||||||
* OP_DUP OP_HASH160 <RIPEMD160(revocationkey)> OP_EQUAL
|
* OP_DUP OP_HASH160 <RIPEMD160(SHA256(revocationkey))> OP_EQUAL
|
||||||
* OP_IF
|
* OP_IF
|
||||||
* OP_CHECKSIG
|
* OP_CHECKSIG
|
||||||
* OP_ELSE
|
* OP_ELSE
|
||||||
@@ -767,7 +767,7 @@ u8 *bitcoin_wscript_htlc_offer(const tal_t *ctx,
|
|||||||
* payment preimage. The output is a P2WSH, with a witness script:
|
* payment preimage. The output is a P2WSH, with a witness script:
|
||||||
*
|
*
|
||||||
* # To you with revocation key
|
* # To you with revocation key
|
||||||
* OP_DUP OP_HASH160 <RIPEMD160(revocationkey)> OP_EQUAL
|
* OP_DUP OP_HASH160 <RIPEMD160(SHA256(revocationkey))> OP_EQUAL
|
||||||
* OP_IF
|
* OP_IF
|
||||||
* OP_CHECKSIG
|
* OP_CHECKSIG
|
||||||
* OP_ELSE
|
* OP_ELSE
|
||||||
|
|||||||
@@ -762,7 +762,7 @@ void handle_channel_update(struct routing_state *rstate, const u8 *update, size_
|
|||||||
u32 timestamp;
|
u32 timestamp;
|
||||||
u16 flags;
|
u16 flags;
|
||||||
u16 expiry;
|
u16 expiry;
|
||||||
u32 htlc_minimum_msat;
|
u64 htlc_minimum_msat;
|
||||||
u32 fee_base_msat;
|
u32 fee_base_msat;
|
||||||
u32 fee_proportional_millionths;
|
u32 fee_proportional_millionths;
|
||||||
const tal_t *tmpctx = tal_tmpctx(rstate);
|
const tal_t *tmpctx = tal_tmpctx(rstate);
|
||||||
|
|||||||
@@ -351,9 +351,9 @@ enum channel_add_err channel_add_htlc(struct channel *channel,
|
|||||||
* 2. data:
|
* 2. data:
|
||||||
* * [`32`:`channel_id`]
|
* * [`32`:`channel_id`]
|
||||||
* * [`8`:`id`]
|
* * [`8`:`id`]
|
||||||
* * [`4`:`amount_msat`]
|
* * [`8`:`amount_msat`]
|
||||||
* * [`4`:`cltv_expiry`]
|
|
||||||
* * [`32`:`payment_hash`]
|
* * [`32`:`payment_hash`]
|
||||||
|
* * [`4`:`cltv_expiry`]
|
||||||
* * [`1366`:`onion_routing_packet`]
|
* * [`1366`:`onion_routing_packet`]
|
||||||
*/
|
*/
|
||||||
htlc->routing = tal_dup_arr(htlc, u8, routing, TOTAL_PACKET_SIZE, 0);
|
htlc->routing = tal_dup_arr(htlc, u8, routing, TOTAL_PACKET_SIZE, 0);
|
||||||
@@ -391,6 +391,17 @@ enum channel_add_err channel_add_htlc(struct channel *channel,
|
|||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* BOLT #2:
|
||||||
|
*
|
||||||
|
* For channels with `chain_hash` identifying the Bitcoin blockchain,
|
||||||
|
* the sending node MUST set the 4 most significant bytes of
|
||||||
|
* `amount_msat` to zero.
|
||||||
|
*/
|
||||||
|
if (htlc->msatoshi & 0xFFFFFFFF00000000ULL) {
|
||||||
|
e = CHANNEL_ERR_MAX_HTLC_VALUE_EXCEEDED;
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
/* Figure out what receiver will already be committed to. */
|
/* Figure out what receiver will already be committed to. */
|
||||||
gather_htlcs(tmpctx, channel, recipient, &committed, &removing, &adding);
|
gather_htlcs(tmpctx, channel, recipient, &committed, &removing, &adding);
|
||||||
htlc_arr_append(&adding, htlc);
|
htlc_arr_append(&adding, htlc);
|
||||||
|
|||||||
@@ -316,14 +316,14 @@ static void handle_peer_add_htlc(struct peer *peer, const u8 *msg)
|
|||||||
{
|
{
|
||||||
struct channel_id channel_id;
|
struct channel_id channel_id;
|
||||||
u64 id;
|
u64 id;
|
||||||
u32 amount_msat;
|
u64 amount_msat;
|
||||||
u32 cltv_expiry;
|
u32 cltv_expiry;
|
||||||
struct sha256 payment_hash;
|
struct sha256 payment_hash;
|
||||||
u8 onion_routing_packet[TOTAL_PACKET_SIZE];
|
u8 onion_routing_packet[TOTAL_PACKET_SIZE];
|
||||||
enum channel_add_err add_err;
|
enum channel_add_err add_err;
|
||||||
|
|
||||||
if (!fromwire_update_add_htlc(msg, NULL, &channel_id, &id, &amount_msat,
|
if (!fromwire_update_add_htlc(msg, NULL, &channel_id, &id, &amount_msat,
|
||||||
&cltv_expiry, &payment_hash,
|
&payment_hash, &cltv_expiry,
|
||||||
onion_routing_packet))
|
onion_routing_packet))
|
||||||
peer_failed(io_conn_fd(peer->peer_conn),
|
peer_failed(io_conn_fd(peer->peer_conn),
|
||||||
&peer->pcs.cs,
|
&peer->pcs.cs,
|
||||||
@@ -1128,7 +1128,8 @@ static void handle_funding_announce_depth(struct peer *peer, const u8 *msg)
|
|||||||
static void handle_offer_htlc(struct peer *peer, const u8 *inmsg)
|
static void handle_offer_htlc(struct peer *peer, const u8 *inmsg)
|
||||||
{
|
{
|
||||||
u8 *msg;
|
u8 *msg;
|
||||||
u32 amount_msat, cltv_expiry;
|
u32 cltv_expiry;
|
||||||
|
u64 amount_msat;
|
||||||
struct sha256 payment_hash;
|
struct sha256 payment_hash;
|
||||||
u8 onion_routing_packet[TOTAL_PACKET_SIZE];
|
u8 onion_routing_packet[TOTAL_PACKET_SIZE];
|
||||||
enum channel_add_err e;
|
enum channel_add_err e;
|
||||||
@@ -1156,7 +1157,7 @@ static void handle_offer_htlc(struct peer *peer, const u8 *inmsg)
|
|||||||
/* Tell the peer. */
|
/* Tell the peer. */
|
||||||
msg = towire_update_add_htlc(peer, &peer->channel_id,
|
msg = towire_update_add_htlc(peer, &peer->channel_id,
|
||||||
peer->htlc_id, amount_msat,
|
peer->htlc_id, amount_msat,
|
||||||
cltv_expiry, &payment_hash,
|
&payment_hash, cltv_expiry,
|
||||||
onion_routing_packet);
|
onion_routing_packet);
|
||||||
msg_enqueue(&peer->peer_out, take(msg));
|
msg_enqueue(&peer->peer_out, take(msg));
|
||||||
peer->funding_locked[LOCAL] = true;
|
peer->funding_locked[LOCAL] = true;
|
||||||
|
|||||||
@@ -53,7 +53,7 @@ channel_funding_announce_depth,3
|
|||||||
|
|
||||||
# Tell channel to offer this htlc
|
# Tell channel to offer this htlc
|
||||||
channel_offer_htlc,4
|
channel_offer_htlc,4
|
||||||
channel_offer_htlc,,amount_msat,4
|
channel_offer_htlc,,amount_msat,8
|
||||||
channel_offer_htlc,,cltv_expiry,4
|
channel_offer_htlc,,cltv_expiry,4
|
||||||
channel_offer_htlc,,payment_hash,32
|
channel_offer_htlc,,payment_hash,32
|
||||||
channel_offer_htlc,,onion_routing_packet,1366*u8
|
channel_offer_htlc,,onion_routing_packet,1366*u8
|
||||||
@@ -81,7 +81,7 @@ channel_fail_htlc,,error_pkt,len*u8
|
|||||||
# Peer and I are irrevocably committed to this HTLC.
|
# Peer and I are irrevocably committed to this HTLC.
|
||||||
channel_accepted_htlc,7
|
channel_accepted_htlc,7
|
||||||
channel_accepted_htlc,,id,8
|
channel_accepted_htlc,,id,8
|
||||||
channel_accepted_htlc,,amount_msat,4
|
channel_accepted_htlc,,amount_msat,8
|
||||||
channel_accepted_htlc,,cltv_expiry,4
|
channel_accepted_htlc,,cltv_expiry,4
|
||||||
channel_accepted_htlc,,payment_hash,32
|
channel_accepted_htlc,,payment_hash,32
|
||||||
channel_accepted_htlc,,next_onion,1366*u8
|
channel_accepted_htlc,,next_onion,1366*u8
|
||||||
|
|||||||
|
@@ -15,7 +15,7 @@
|
|||||||
* * [`8`:`dust_limit_satoshis`]
|
* * [`8`:`dust_limit_satoshis`]
|
||||||
* * [`8`:`max_htlc_value_in_flight_msat`]
|
* * [`8`:`max_htlc_value_in_flight_msat`]
|
||||||
* * [`8`:`channel_reserve_satoshis`]
|
* * [`8`:`channel_reserve_satoshis`]
|
||||||
* * [`4`:`htlc_minimum_msat`]
|
* * [`8`:`htlc_minimum_msat`]
|
||||||
* * [`4`:`feerate_per_kw`]
|
* * [`4`:`feerate_per_kw`]
|
||||||
* * [`2`:`to_self_delay`]
|
* * [`2`:`to_self_delay`]
|
||||||
* * [`2`:`max_accepted_htlcs`]
|
* * [`2`:`max_accepted_htlcs`]
|
||||||
@@ -26,8 +26,8 @@
|
|||||||
* * [`8`:`dust_limit_satoshis`]
|
* * [`8`:`dust_limit_satoshis`]
|
||||||
* * [`8`:`max_htlc_value_in_flight_msat`]
|
* * [`8`:`max_htlc_value_in_flight_msat`]
|
||||||
* * [`8`:`channel_reserve_satoshis`]
|
* * [`8`:`channel_reserve_satoshis`]
|
||||||
|
* * [`8`:`htlc_minimum_msat`]
|
||||||
* * [`4`:`minimum_depth`]
|
* * [`4`:`minimum_depth`]
|
||||||
* * [`4`:`htlc_minimum_msat`]
|
|
||||||
* * [`2`:`to_self_delay`]
|
* * [`2`:`to_self_delay`]
|
||||||
* * [`2`:`max_accepted_htlcs`]
|
* * [`2`:`max_accepted_htlcs`]
|
||||||
*/
|
*/
|
||||||
@@ -35,7 +35,7 @@ struct channel_config {
|
|||||||
u64 dust_limit_satoshis;
|
u64 dust_limit_satoshis;
|
||||||
u64 max_htlc_value_in_flight_msat;
|
u64 max_htlc_value_in_flight_msat;
|
||||||
u64 channel_reserve_satoshis;
|
u64 channel_reserve_satoshis;
|
||||||
u32 htlc_minimum_msat;
|
u64 htlc_minimum_msat;
|
||||||
u16 to_self_delay;
|
u16 to_self_delay;
|
||||||
u16 max_accepted_htlcs;
|
u16 max_accepted_htlcs;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -964,10 +964,11 @@ static void exchange_init(int fd, struct crypto_state *cs,
|
|||||||
/* BOLT #1:
|
/* BOLT #1:
|
||||||
*
|
*
|
||||||
* The sending node SHOULD use the minimum lengths required to
|
* The sending node SHOULD use the minimum lengths required to
|
||||||
* represent the feature fields. The sending node MUST set feature
|
* represent the feature fields.
|
||||||
* bits corresponding to features it requires the peer to support, and
|
*
|
||||||
* SHOULD set feature bits corresponding to features it optionally
|
* The sender MUST set feature bits as defined in [BOLT
|
||||||
* supports.
|
* #9](09-features.md), and MUST set to zero any feature bits that are
|
||||||
|
* not defined.
|
||||||
*/
|
*/
|
||||||
u8 *msg = towire_init(NULL, NULL, NULL);
|
u8 *msg = towire_init(NULL, NULL, NULL);
|
||||||
|
|
||||||
|
|||||||
@@ -170,7 +170,8 @@ static struct io_plan *handle_channel_update_sig(struct io_conn *conn,
|
|||||||
struct sha256_double hash;
|
struct sha256_double hash;
|
||||||
secp256k1_ecdsa_signature sig;
|
secp256k1_ecdsa_signature sig;
|
||||||
struct short_channel_id scid;
|
struct short_channel_id scid;
|
||||||
u32 timestamp, htlc_minimum_msat, fee_base_msat, fee_proportional_mill;
|
u32 timestamp, fee_base_msat, fee_proportional_mill;
|
||||||
|
u64 htlc_minimum_msat;
|
||||||
u16 flags, cltv_expiry_delta;
|
u16 flags, cltv_expiry_delta;
|
||||||
u8 *cu;
|
u8 *cu;
|
||||||
|
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ struct htlc_end {
|
|||||||
enum htlc_end_type which_end;
|
enum htlc_end_type which_end;
|
||||||
struct peer *peer;
|
struct peer *peer;
|
||||||
u64 htlc_id;
|
u64 htlc_id;
|
||||||
u32 msatoshis;
|
u64 msatoshis;
|
||||||
|
|
||||||
struct htlc_end *other_end;
|
struct htlc_end *other_end;
|
||||||
/* If this is driven by a command. */
|
/* If this is driven by a command. */
|
||||||
|
|||||||
@@ -123,9 +123,9 @@ static bool handshake_succeeded(struct subd *handshaked,
|
|||||||
|
|
||||||
/* BOLT #1:
|
/* BOLT #1:
|
||||||
*
|
*
|
||||||
* The receiving node MUST fail the channels if it receives a
|
* For unknown feature bits which are non-zero, the receiver
|
||||||
* `globalfeatures` or `localfeatures` with an even bit set which it
|
* MUST ignore the bit if the bit number is odd, and MUST fail
|
||||||
* does not understand.
|
* the connection if the bit number is even.
|
||||||
*/
|
*/
|
||||||
if (has_even_bit(globalfeatures)) {
|
if (has_even_bit(globalfeatures)) {
|
||||||
connection_failed(c, handshaked->log,
|
connection_failed(c, handshaked->log,
|
||||||
|
|||||||
@@ -107,7 +107,7 @@ static void check_config_bounds(struct state *state,
|
|||||||
if (remoteconf->htlc_minimum_msat * (u64)1000 > capacity_msat)
|
if (remoteconf->htlc_minimum_msat * (u64)1000 > capacity_msat)
|
||||||
peer_failed(PEER_FD, &state->cs, NULL,
|
peer_failed(PEER_FD, &state->cs, NULL,
|
||||||
WIRE_OPENING_PEER_BAD_CONFIG,
|
WIRE_OPENING_PEER_BAD_CONFIG,
|
||||||
"Invalid htlc_minimum_msat %u"
|
"Invalid htlc_minimum_msat %"PRIu64
|
||||||
" for funding_satoshis %"PRIu64
|
" for funding_satoshis %"PRIu64
|
||||||
" capacity_msat %"PRIu64,
|
" capacity_msat %"PRIu64,
|
||||||
remoteconf->htlc_minimum_msat,
|
remoteconf->htlc_minimum_msat,
|
||||||
@@ -283,8 +283,8 @@ static u8 *funder_channel(struct state *state,
|
|||||||
->max_htlc_value_in_flight_msat,
|
->max_htlc_value_in_flight_msat,
|
||||||
&state->remoteconf
|
&state->remoteconf
|
||||||
->channel_reserve_satoshis,
|
->channel_reserve_satoshis,
|
||||||
&minimum_depth,
|
|
||||||
&state->remoteconf->htlc_minimum_msat,
|
&state->remoteconf->htlc_minimum_msat,
|
||||||
|
&minimum_depth,
|
||||||
&state->remoteconf->to_self_delay,
|
&state->remoteconf->to_self_delay,
|
||||||
&state->remoteconf->max_accepted_htlcs,
|
&state->remoteconf->max_accepted_htlcs,
|
||||||
&their_funding_pubkey,
|
&their_funding_pubkey,
|
||||||
|
|||||||
@@ -836,6 +836,8 @@ static u8 *make_failmsg(const tal_t *ctx, const struct htlc_end *hend,
|
|||||||
return towire_invalid_onion_key(ctx, onion_sha);
|
return towire_invalid_onion_key(ctx, onion_sha);
|
||||||
case WIRE_TEMPORARY_CHANNEL_FAILURE:
|
case WIRE_TEMPORARY_CHANNEL_FAILURE:
|
||||||
return towire_temporary_channel_failure(ctx, channel_update);
|
return towire_temporary_channel_failure(ctx, channel_update);
|
||||||
|
case WIRE_CHANNEL_DISABLED:
|
||||||
|
return towire_channel_disabled(ctx);
|
||||||
case WIRE_PERMANENT_CHANNEL_FAILURE:
|
case WIRE_PERMANENT_CHANNEL_FAILURE:
|
||||||
return towire_permanent_channel_failure(ctx);
|
return towire_permanent_channel_failure(ctx);
|
||||||
case WIRE_REQUIRED_CHANNEL_FEATURE_MISSING:
|
case WIRE_REQUIRED_CHANNEL_FEATURE_MISSING:
|
||||||
|
|||||||
@@ -59,9 +59,9 @@ enum route_next_case {
|
|||||||
* 1. type: `per_hop` (for `realm` 0)
|
* 1. type: `per_hop` (for `realm` 0)
|
||||||
* 2. data:
|
* 2. data:
|
||||||
* * [`8`:`channel_id`]
|
* * [`8`:`channel_id`]
|
||||||
* * [`4`:`amt_to_forward`]
|
* * [`8`:`amt_to_forward`]
|
||||||
* * [`4`:`outgoing_cltv_value`]
|
* * [`4`:`outgoing_cltv_value`]
|
||||||
* * [`16`:`padding`]
|
* * [`12`:`padding`]
|
||||||
*/
|
*/
|
||||||
struct hop_data {
|
struct hop_data {
|
||||||
u8 realm;
|
u8 realm;
|
||||||
|
|||||||
@@ -9,20 +9,20 @@ invalid_onion_hmac,BADONION|PERM|5
|
|||||||
invalid_onion_hmac,0,sha256_of_onion,32
|
invalid_onion_hmac,0,sha256_of_onion,32
|
||||||
invalid_onion_key,BADONION|PERM|6
|
invalid_onion_key,BADONION|PERM|6
|
||||||
invalid_onion_key,0,sha256_of_onion,32
|
invalid_onion_key,0,sha256_of_onion,32
|
||||||
temporary_channel_failure,7
|
temporary_channel_failure,UPDATE|7
|
||||||
temporary_channel_failure,0,len,2
|
temporary_channel_failure,0,len,2
|
||||||
temporary_channel_failure,2,channel_update,len
|
temporary_channel_failure,2,channel_update,len
|
||||||
permanent_channel_failure,PERM|8
|
permanent_channel_failure,PERM|8
|
||||||
required_channel_feature_missing,PERM|9
|
required_channel_feature_missing,PERM|9
|
||||||
unknown_next_peer,PERM|10
|
unknown_next_peer,PERM|10
|
||||||
amount_below_minimum,UPDATE|11
|
amount_below_minimum,UPDATE|11
|
||||||
amount_below_minimum,0,htlc_msat,4
|
amount_below_minimum,0,htlc_msat,8
|
||||||
amount_below_minimum,4,len,2
|
amount_below_minimum,8,len,2
|
||||||
amount_below_minimum,6,channel_update,len
|
amount_below_minimum,10,channel_update,len
|
||||||
fee_insufficient,UPDATE|12
|
fee_insufficient,UPDATE|12
|
||||||
fee_insufficient,0,htlc_msat,4
|
fee_insufficient,0,htlc_msat,8
|
||||||
fee_insufficient,4,len,2
|
fee_insufficient,8,len,2
|
||||||
fee_insufficient,6,channel_update,len
|
fee_insufficient,10,channel_update,len
|
||||||
incorrect_cltv_expiry,UPDATE|13
|
incorrect_cltv_expiry,UPDATE|13
|
||||||
incorrect_cltv_expiry,0,cltv_expiry,4
|
incorrect_cltv_expiry,0,cltv_expiry,4
|
||||||
incorrect_cltv_expiry,4,len,2
|
incorrect_cltv_expiry,4,len,2
|
||||||
@@ -30,6 +30,7 @@ incorrect_cltv_expiry,6,channel_update,len
|
|||||||
expiry_too_soon,UPDATE|14
|
expiry_too_soon,UPDATE|14
|
||||||
expiry_too_soon,0,len,2
|
expiry_too_soon,0,len,2
|
||||||
expiry_too_soon,2,channel_update,len
|
expiry_too_soon,2,channel_update,len
|
||||||
|
channel_disabled,UPDATE|20
|
||||||
unknown_payment_hash,PERM|15
|
unknown_payment_hash,PERM|15
|
||||||
incorrect_payment_amount,PERM|16
|
incorrect_payment_amount,PERM|16
|
||||||
final_expiry_too_soon,17
|
final_expiry_too_soon,17
|
||||||
|
|||||||
@@ -22,29 +22,29 @@ open_channel,72,push_msat,8
|
|||||||
open_channel,80,dust_limit_satoshis,8
|
open_channel,80,dust_limit_satoshis,8
|
||||||
open_channel,88,max_htlc_value_in_flight_msat,8
|
open_channel,88,max_htlc_value_in_flight_msat,8
|
||||||
open_channel,96,channel_reserve_satoshis,8
|
open_channel,96,channel_reserve_satoshis,8
|
||||||
open_channel,104,htlc_minimum_msat,4
|
open_channel,104,htlc_minimum_msat,8
|
||||||
open_channel,108,feerate_per_kw,4
|
open_channel,112,feerate_per_kw,4
|
||||||
open_channel,112,to_self_delay,2
|
open_channel,116,to_self_delay,2
|
||||||
open_channel,114,max_accepted_htlcs,2
|
open_channel,118,max_accepted_htlcs,2
|
||||||
open_channel,116,funding_pubkey,33
|
open_channel,120,funding_pubkey,33
|
||||||
open_channel,149,revocation_basepoint,33
|
open_channel,153,revocation_basepoint,33
|
||||||
open_channel,182,payment_basepoint,33
|
open_channel,186,payment_basepoint,33
|
||||||
open_channel,215,delayed_payment_basepoint,33
|
open_channel,219,delayed_payment_basepoint,33
|
||||||
open_channel,248,first_per_commitment_point,33
|
open_channel,252,first_per_commitment_point,33
|
||||||
accept_channel,33
|
accept_channel,33
|
||||||
accept_channel,0,temporary_channel_id,32
|
accept_channel,0,temporary_channel_id,32
|
||||||
accept_channel,32,dust_limit_satoshis,8
|
accept_channel,32,dust_limit_satoshis,8
|
||||||
accept_channel,40,max_htlc_value_in_flight_msat,8
|
accept_channel,40,max_htlc_value_in_flight_msat,8
|
||||||
accept_channel,48,channel_reserve_satoshis,8
|
accept_channel,48,channel_reserve_satoshis,8
|
||||||
accept_channel,56,minimum_depth,4
|
accept_channel,56,htlc_minimum_msat,8
|
||||||
accept_channel,60,htlc_minimum_msat,4
|
accept_channel,64,minimum_depth,4
|
||||||
accept_channel,64,to_self_delay,2
|
accept_channel,68,to_self_delay,2
|
||||||
accept_channel,66,max_accepted_htlcs,2
|
accept_channel,70,max_accepted_htlcs,2
|
||||||
accept_channel,68,funding_pubkey,33
|
accept_channel,72,funding_pubkey,33
|
||||||
accept_channel,101,revocation_basepoint,33
|
accept_channel,105,revocation_basepoint,33
|
||||||
accept_channel,134,payment_basepoint,33
|
accept_channel,138,payment_basepoint,33
|
||||||
accept_channel,167,delayed_payment_basepoint,33
|
accept_channel,171,delayed_payment_basepoint,33
|
||||||
accept_channel,200,first_per_commitment_point,33
|
accept_channel,204,first_per_commitment_point,33
|
||||||
funding_created,34
|
funding_created,34
|
||||||
funding_created,0,temporary_channel_id,32
|
funding_created,0,temporary_channel_id,32
|
||||||
funding_created,32,funding_txid,32
|
funding_created,32,funding_txid,32
|
||||||
@@ -67,10 +67,10 @@ closing_signed,40,signature,64
|
|||||||
update_add_htlc,128
|
update_add_htlc,128
|
||||||
update_add_htlc,0,channel_id,32
|
update_add_htlc,0,channel_id,32
|
||||||
update_add_htlc,32,id,8
|
update_add_htlc,32,id,8
|
||||||
update_add_htlc,40,amount_msat,4
|
update_add_htlc,40,amount_msat,8
|
||||||
update_add_htlc,44,cltv_expiry,4
|
|
||||||
update_add_htlc,48,payment_hash,32
|
update_add_htlc,48,payment_hash,32
|
||||||
update_add_htlc,80,onion_routing_packet,1366
|
update_add_htlc,80,cltv_expiry,4
|
||||||
|
update_add_htlc,84,onion_routing_packet,1366
|
||||||
update_fulfill_htlc,130
|
update_fulfill_htlc,130
|
||||||
update_fulfill_htlc,0,channel_id,32
|
update_fulfill_htlc,0,channel_id,32
|
||||||
update_fulfill_htlc,32,id,8
|
update_fulfill_htlc,32,id,8
|
||||||
@@ -130,6 +130,6 @@ channel_update,64,short_channel_id,8
|
|||||||
channel_update,72,timestamp,4
|
channel_update,72,timestamp,4
|
||||||
channel_update,76,flags,2
|
channel_update,76,flags,2
|
||||||
channel_update,78,cltv_expiry_delta,2
|
channel_update,78,cltv_expiry_delta,2
|
||||||
channel_update,80,htlc_minimum_msat,4
|
channel_update,80,htlc_minimum_msat,8
|
||||||
channel_update,84,fee_base_msat,4
|
channel_update,88,fee_base_msat,4
|
||||||
channel_update,88,fee_proportional_millionths,4
|
channel_update,92,fee_proportional_millionths,4
|
||||||
|
|||||||
@@ -101,8 +101,8 @@ struct msg_accept_channel {
|
|||||||
u64 dust_limit_satoshis;
|
u64 dust_limit_satoshis;
|
||||||
u64 max_htlc_value_in_flight_msat;
|
u64 max_htlc_value_in_flight_msat;
|
||||||
u64 channel_reserve_satoshis;
|
u64 channel_reserve_satoshis;
|
||||||
|
u64 htlc_minimum_msat;
|
||||||
u32 minimum_depth;
|
u32 minimum_depth;
|
||||||
u32 htlc_minimum_msat;
|
|
||||||
u16 to_self_delay;
|
u16 to_self_delay;
|
||||||
u16 max_accepted_htlcs;
|
u16 max_accepted_htlcs;
|
||||||
struct pubkey funding_pubkey;
|
struct pubkey funding_pubkey;
|
||||||
@@ -134,7 +134,7 @@ struct msg_channel_update {
|
|||||||
u32 timestamp;
|
u32 timestamp;
|
||||||
u16 flags;
|
u16 flags;
|
||||||
u16 expiry;
|
u16 expiry;
|
||||||
u32 htlc_minimum_msat;
|
u64 htlc_minimum_msat;
|
||||||
u32 fee_base_msat;
|
u32 fee_base_msat;
|
||||||
u32 fee_proportional_millionths;
|
u32 fee_proportional_millionths;
|
||||||
struct short_channel_id short_channel_id;
|
struct short_channel_id short_channel_id;
|
||||||
@@ -171,7 +171,7 @@ struct msg_open_channel {
|
|||||||
u64 dust_limit_satoshis;
|
u64 dust_limit_satoshis;
|
||||||
u64 max_htlc_value_in_flight_msat;
|
u64 max_htlc_value_in_flight_msat;
|
||||||
u64 channel_reserve_satoshis;
|
u64 channel_reserve_satoshis;
|
||||||
u32 htlc_minimum_msat;
|
u64 htlc_minimum_msat;
|
||||||
u32 feerate_per_kw;
|
u32 feerate_per_kw;
|
||||||
u16 to_self_delay;
|
u16 to_self_delay;
|
||||||
u16 max_accepted_htlcs;
|
u16 max_accepted_htlcs;
|
||||||
@@ -205,7 +205,7 @@ struct msg_init {
|
|||||||
struct msg_update_add_htlc {
|
struct msg_update_add_htlc {
|
||||||
struct channel_id channel_id;
|
struct channel_id channel_id;
|
||||||
u64 id;
|
u64 id;
|
||||||
u32 amount_msat;
|
u64 amount_msat;
|
||||||
u32 expiry;
|
u32 expiry;
|
||||||
struct sha256 payment_hash;
|
struct sha256 payment_hash;
|
||||||
u8 onion_routing_packet[TOTAL_PACKET_SIZE];
|
u8 onion_routing_packet[TOTAL_PACKET_SIZE];
|
||||||
@@ -304,8 +304,8 @@ static void *towire_struct_accept_channel(const tal_t *ctx,
|
|||||||
s->dust_limit_satoshis,
|
s->dust_limit_satoshis,
|
||||||
s->max_htlc_value_in_flight_msat,
|
s->max_htlc_value_in_flight_msat,
|
||||||
s->channel_reserve_satoshis,
|
s->channel_reserve_satoshis,
|
||||||
s->minimum_depth,
|
|
||||||
s->htlc_minimum_msat,
|
s->htlc_minimum_msat,
|
||||||
|
s->minimum_depth,
|
||||||
s->to_self_delay,
|
s->to_self_delay,
|
||||||
s->max_accepted_htlcs,
|
s->max_accepted_htlcs,
|
||||||
&s->funding_pubkey,
|
&s->funding_pubkey,
|
||||||
@@ -324,8 +324,8 @@ static struct msg_accept_channel *fromwire_struct_accept_channel(const tal_t *ct
|
|||||||
&s->dust_limit_satoshis,
|
&s->dust_limit_satoshis,
|
||||||
&s->max_htlc_value_in_flight_msat,
|
&s->max_htlc_value_in_flight_msat,
|
||||||
&s->channel_reserve_satoshis,
|
&s->channel_reserve_satoshis,
|
||||||
&s->minimum_depth,
|
|
||||||
&s->htlc_minimum_msat,
|
&s->htlc_minimum_msat,
|
||||||
|
&s->minimum_depth,
|
||||||
&s->to_self_delay,
|
&s->to_self_delay,
|
||||||
&s->max_accepted_htlcs,
|
&s->max_accepted_htlcs,
|
||||||
&s->funding_pubkey,
|
&s->funding_pubkey,
|
||||||
@@ -631,8 +631,8 @@ static void *towire_struct_update_add_htlc(const tal_t *ctx,
|
|||||||
&s->channel_id,
|
&s->channel_id,
|
||||||
s->id,
|
s->id,
|
||||||
s->amount_msat,
|
s->amount_msat,
|
||||||
s->expiry,
|
|
||||||
&s->payment_hash,
|
&s->payment_hash,
|
||||||
|
s->expiry,
|
||||||
s->onion_routing_packet);
|
s->onion_routing_packet);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -644,8 +644,8 @@ static struct msg_update_add_htlc *fromwire_struct_update_add_htlc(const tal_t *
|
|||||||
&s->channel_id,
|
&s->channel_id,
|
||||||
&s->id,
|
&s->id,
|
||||||
&s->amount_msat,
|
&s->amount_msat,
|
||||||
&s->expiry,
|
|
||||||
&s->payment_hash,
|
&s->payment_hash,
|
||||||
|
&s->expiry,
|
||||||
s->onion_routing_packet))
|
s->onion_routing_packet))
|
||||||
return s;
|
return s;
|
||||||
return tal_free(s);
|
return tal_free(s);
|
||||||
|
|||||||
Reference in New Issue
Block a user