@@ -22,9 +22,7 @@ use crate::util::config::{ChannelHandshakeConfig, UserConfig};
22
22
fn test_v1_splice_in ( ) {
23
23
// Set up a network of 2 nodes
24
24
let cfg = UserConfig {
25
- channel_handshake_config : ChannelHandshakeConfig {
26
- ..Default :: default ( )
27
- } ,
25
+ channel_handshake_config : ChannelHandshakeConfig { ..Default :: default ( ) } ,
28
26
..Default :: default ( )
29
27
} ;
30
28
let chanmon_cfgs = create_chanmon_cfgs ( 2 ) ;
@@ -43,27 +41,69 @@ fn test_v1_splice_in() {
43
41
let push_msat = 0 ;
44
42
let channel_reserve_amnt_sat = 1_000 ;
45
43
46
- let expected_funded_channel_id = "ae3367da2c13bc1ceb86bf56418f62828f7ce9d6bfb15a46af5ba1f1ed8b124f" ;
44
+ let expected_funded_channel_id =
45
+ "ae3367da2c13bc1ceb86bf56418f62828f7ce9d6bfb15a46af5ba1f1ed8b124f" ;
47
46
48
47
// Have initiator_node initiate a channel to acceptor_node with aforementioned parameters
49
- let channel_id_temp1 = initiator_node. node . create_channel ( acceptor_node. node . get_our_node_id ( ) , channel_value_sat, push_msat, 42 , None , None ) . unwrap ( ) ;
48
+ let channel_id_temp1 = initiator_node
49
+ . node
50
+ . create_channel (
51
+ acceptor_node. node . get_our_node_id ( ) ,
52
+ channel_value_sat,
53
+ push_msat,
54
+ 42 ,
55
+ None ,
56
+ None ,
57
+ )
58
+ . unwrap ( ) ;
50
59
51
60
// Extract the channel open message from initiator_node to acceptor_node
52
- let open_channel_message = get_event_msg ! ( initiator_node, MessageSendEvent :: SendOpenChannel , acceptor_node. node. get_our_node_id( ) ) ;
53
-
54
- let _res = acceptor_node. node . handle_open_channel ( initiator_node. node . get_our_node_id ( ) , & open_channel_message. clone ( ) ) ;
61
+ let open_channel_message = get_event_msg ! (
62
+ initiator_node,
63
+ MessageSendEvent :: SendOpenChannel ,
64
+ acceptor_node. node. get_our_node_id( )
65
+ ) ;
66
+
67
+ let _res = acceptor_node
68
+ . node
69
+ . handle_open_channel ( initiator_node. node . get_our_node_id ( ) , & open_channel_message. clone ( ) ) ;
55
70
// Extract the accept channel message from acceptor_node to initiator_node
56
- let accept_channel_message = get_event_msg ! ( acceptor_node, MessageSendEvent :: SendAcceptChannel , initiator_node. node. get_our_node_id( ) ) ;
57
- let _res = initiator_node. node . handle_accept_channel ( acceptor_node. node . get_our_node_id ( ) , & accept_channel_message. clone ( ) ) ;
71
+ let accept_channel_message = get_event_msg ! (
72
+ acceptor_node,
73
+ MessageSendEvent :: SendAcceptChannel ,
74
+ initiator_node. node. get_our_node_id( )
75
+ ) ;
76
+ let _res = initiator_node. node . handle_accept_channel (
77
+ acceptor_node. node . get_our_node_id ( ) ,
78
+ & accept_channel_message. clone ( ) ,
79
+ ) ;
58
80
// Note: FundingGenerationReady emitted, checked and used below
59
- let ( _channel_id_temp2, funding_tx, _funding_output) = create_funding_transaction ( & initiator_node, & acceptor_node. node . get_our_node_id ( ) , channel_value_sat, 42 ) ;
81
+ let ( _channel_id_temp2, funding_tx, _funding_output) = create_funding_transaction (
82
+ & initiator_node,
83
+ & acceptor_node. node . get_our_node_id ( ) ,
84
+ channel_value_sat,
85
+ 42 ,
86
+ ) ;
60
87
61
88
// Funding transation created, provide it
62
- let _res = initiator_node. node . funding_transaction_generated ( channel_id_temp1, acceptor_node. node . get_our_node_id ( ) , funding_tx. clone ( ) ) . unwrap ( ) ;
63
-
64
- let funding_created_message = get_event_msg ! ( initiator_node, MessageSendEvent :: SendFundingCreated , acceptor_node. node. get_our_node_id( ) ) ;
65
-
66
- let _res = acceptor_node. node . handle_funding_created ( initiator_node. node . get_our_node_id ( ) , & funding_created_message) ;
89
+ let _res = initiator_node
90
+ . node
91
+ . funding_transaction_generated (
92
+ channel_id_temp1,
93
+ acceptor_node. node . get_our_node_id ( ) ,
94
+ funding_tx. clone ( ) ,
95
+ )
96
+ . unwrap ( ) ;
97
+
98
+ let funding_created_message = get_event_msg ! (
99
+ initiator_node,
100
+ MessageSendEvent :: SendFundingCreated ,
101
+ acceptor_node. node. get_our_node_id( )
102
+ ) ;
103
+
104
+ let _res = acceptor_node
105
+ . node
106
+ . handle_funding_created ( initiator_node. node . get_our_node_id ( ) , & funding_created_message) ;
67
107
68
108
assert_eq ! ( initiator_node. node. list_channels( ) . len( ) , 1 ) ;
69
109
{
@@ -77,15 +117,26 @@ fn test_v1_splice_in() {
77
117
assert ! ( !channel. is_channel_ready) ;
78
118
}
79
119
80
- let funding_signed_message = get_event_msg ! ( acceptor_node, MessageSendEvent :: SendFundingSigned , initiator_node. node. get_our_node_id( ) ) ;
81
- let _res = initiator_node. node . handle_funding_signed ( acceptor_node. node . get_our_node_id ( ) , & funding_signed_message) ;
120
+ let funding_signed_message = get_event_msg ! (
121
+ acceptor_node,
122
+ MessageSendEvent :: SendFundingSigned ,
123
+ initiator_node. node. get_our_node_id( )
124
+ ) ;
125
+ let _res = initiator_node
126
+ . node
127
+ . handle_funding_signed ( acceptor_node. node . get_our_node_id ( ) , & funding_signed_message) ;
82
128
// Take new channel ID
83
129
let channel_id2 = funding_signed_message. channel_id ;
84
130
assert_eq ! ( channel_id2. to_string( ) , expected_funded_channel_id) ;
85
131
86
132
// Check that funding transaction has been broadcasted
87
- assert_eq ! ( chanmon_cfgs[ initiator_node_index] . tx_broadcaster. txn_broadcasted. lock( ) . unwrap( ) . len( ) , 1 ) ;
88
- let broadcasted_funding_tx = chanmon_cfgs[ initiator_node_index] . tx_broadcaster . txn_broadcasted . lock ( ) . unwrap ( ) [ 0 ] . clone ( ) ;
133
+ assert_eq ! (
134
+ chanmon_cfgs[ initiator_node_index] . tx_broadcaster. txn_broadcasted. lock( ) . unwrap( ) . len( ) ,
135
+ 1
136
+ ) ;
137
+ let broadcasted_funding_tx =
138
+ chanmon_cfgs[ initiator_node_index] . tx_broadcaster . txn_broadcasted . lock ( ) . unwrap ( ) [ 0 ]
139
+ . clone ( ) ;
89
140
90
141
check_added_monitors ! ( initiator_node, 1 ) ;
91
142
let _ev = get_event ! ( initiator_node, Event :: ChannelPending ) ;
@@ -94,18 +145,38 @@ fn test_v1_splice_in() {
94
145
95
146
// Simulate confirmation of the funding tx
96
147
confirm_transaction ( & initiator_node, & broadcasted_funding_tx) ;
97
- let channel_ready_message = get_event_msg ! ( initiator_node, MessageSendEvent :: SendChannelReady , acceptor_node. node. get_our_node_id( ) ) ;
148
+ let channel_ready_message = get_event_msg ! (
149
+ initiator_node,
150
+ MessageSendEvent :: SendChannelReady ,
151
+ acceptor_node. node. get_our_node_id( )
152
+ ) ;
98
153
99
154
confirm_transaction ( & acceptor_node, & broadcasted_funding_tx) ;
100
- let channel_ready_message2 = get_event_msg ! ( acceptor_node, MessageSendEvent :: SendChannelReady , initiator_node. node. get_our_node_id( ) ) ;
101
-
102
- let _res = acceptor_node. node . handle_channel_ready ( initiator_node. node . get_our_node_id ( ) , & channel_ready_message) ;
155
+ let channel_ready_message2 = get_event_msg ! (
156
+ acceptor_node,
157
+ MessageSendEvent :: SendChannelReady ,
158
+ initiator_node. node. get_our_node_id( )
159
+ ) ;
160
+
161
+ let _res = acceptor_node
162
+ . node
163
+ . handle_channel_ready ( initiator_node. node . get_our_node_id ( ) , & channel_ready_message) ;
103
164
let _ev = get_event ! ( acceptor_node, Event :: ChannelReady ) ;
104
- let _channel_update = get_event_msg ! ( acceptor_node, MessageSendEvent :: SendChannelUpdate , initiator_node. node. get_our_node_id( ) ) ;
105
-
106
- let _res = initiator_node. node . handle_channel_ready ( acceptor_node. node . get_our_node_id ( ) , & channel_ready_message2) ;
165
+ let _channel_update = get_event_msg ! (
166
+ acceptor_node,
167
+ MessageSendEvent :: SendChannelUpdate ,
168
+ initiator_node. node. get_our_node_id( )
169
+ ) ;
170
+
171
+ let _res = initiator_node
172
+ . node
173
+ . handle_channel_ready ( acceptor_node. node . get_our_node_id ( ) , & channel_ready_message2) ;
107
174
let _ev = get_event ! ( initiator_node, Event :: ChannelReady ) ;
108
- let _channel_update = get_event_msg ! ( initiator_node, MessageSendEvent :: SendChannelUpdate , acceptor_node. node. get_our_node_id( ) ) ;
175
+ let _channel_update = get_event_msg ! (
176
+ initiator_node,
177
+ MessageSendEvent :: SendChannelUpdate ,
178
+ acceptor_node. node. get_our_node_id( )
179
+ ) ;
109
180
110
181
// check channel capacity and other parameters
111
182
assert_eq ! ( initiator_node. node. list_channels( ) . len( ) , 1 ) ;
@@ -115,7 +186,10 @@ fn test_v1_splice_in() {
115
186
assert ! ( channel. is_usable) ;
116
187
assert ! ( channel. is_channel_ready) ;
117
188
assert_eq ! ( channel. channel_value_satoshis, channel_value_sat) ;
118
- assert_eq ! ( channel. outbound_capacity_msat, 1000 * ( channel_value_sat - channel_reserve_amnt_sat) ) ;
189
+ assert_eq ! (
190
+ channel. outbound_capacity_msat,
191
+ 1000 * ( channel_value_sat - channel_reserve_amnt_sat)
192
+ ) ;
119
193
assert_eq ! ( channel. funding_txo. unwrap( ) . txid, funding_tx. compute_txid( ) ) ;
120
194
assert_eq ! ( channel. confirmations. unwrap( ) , 10 ) ;
121
195
}
@@ -143,13 +217,32 @@ fn test_v1_splice_in() {
143
217
let locktime = 0 ; // TODO
144
218
145
219
// Initiate splice-in (on initiator_node)
146
- let _res = initiator_node. node . splice_channel ( & channel_id2, & acceptor_node. node . get_our_node_id ( ) , splice_in_sats as i64 , Vec :: new ( ) , funding_feerate_perkw, locktime) . unwrap ( ) ;
220
+ let _res = initiator_node
221
+ . node
222
+ . splice_channel (
223
+ & channel_id2,
224
+ & acceptor_node. node . get_our_node_id ( ) ,
225
+ splice_in_sats as i64 ,
226
+ Vec :: new ( ) ,
227
+ funding_feerate_perkw,
228
+ locktime,
229
+ )
230
+ . unwrap ( ) ;
147
231
// Extract the splice message from node0 to node1
148
- let splice_msg = get_event_msg ! ( initiator_node, MessageSendEvent :: SendSpliceInit , acceptor_node. node. get_our_node_id( ) ) ;
149
-
150
- let _res = acceptor_node. node . handle_splice_init ( initiator_node. node . get_our_node_id ( ) , & splice_msg) ;
232
+ let splice_msg = get_event_msg ! (
233
+ initiator_node,
234
+ MessageSendEvent :: SendSpliceInit ,
235
+ acceptor_node. node. get_our_node_id( )
236
+ ) ;
237
+
238
+ let _res =
239
+ acceptor_node. node . handle_splice_init ( initiator_node. node . get_our_node_id ( ) , & splice_msg) ;
151
240
// Extract the splice_ack message from node1 to node0
152
- let splice_ack_msg = get_event_msg ! ( acceptor_node, MessageSendEvent :: SendSpliceAck , initiator_node. node. get_our_node_id( ) ) ;
241
+ let splice_ack_msg = get_event_msg ! (
242
+ acceptor_node,
243
+ MessageSendEvent :: SendSpliceAck ,
244
+ initiator_node. node. get_our_node_id( )
245
+ ) ;
153
246
154
247
// still pre-splice channel: capacity not updated, channel usable, and funding tx set
155
248
assert_eq ! ( acceptor_node. node. list_channels( ) . len( ) , 1 ) ;
@@ -164,7 +257,9 @@ fn test_v1_splice_in() {
164
257
assert ! ( channel. confirmations. unwrap( ) > 0 ) ;
165
258
}
166
259
167
- let _res = initiator_node. node . handle_splice_ack ( acceptor_node. node . get_our_node_id ( ) , & splice_ack_msg) ;
260
+ let _res = initiator_node
261
+ . node
262
+ . handle_splice_ack ( acceptor_node. node . get_our_node_id ( ) , & splice_ack_msg) ;
168
263
169
264
// still pre-splice channel: capacity not updated, channel usable, and funding tx set
170
265
assert_eq ! ( initiator_node. node. list_channels( ) . len( ) , 1 ) ;
@@ -174,7 +269,10 @@ fn test_v1_splice_in() {
174
269
assert ! ( channel. is_usable) ;
175
270
assert ! ( channel. is_channel_ready) ;
176
271
assert_eq ! ( channel. channel_value_satoshis, channel_value_sat) ;
177
- assert_eq ! ( channel. outbound_capacity_msat, 1000 * ( channel_value_sat - channel_reserve_amnt_sat) ) ;
272
+ assert_eq ! (
273
+ channel. outbound_capacity_msat,
274
+ 1000 * ( channel_value_sat - channel_reserve_amnt_sat)
275
+ ) ;
178
276
assert ! ( channel. funding_txo. is_some( ) ) ;
179
277
assert ! ( channel. confirmations. unwrap( ) > 0 ) ;
180
278
}
@@ -185,9 +283,23 @@ fn test_v1_splice_in() {
185
283
186
284
// === Close channel, cooperatively
187
285
initiator_node. node . close_channel ( & channel_id2, & acceptor_node. node . get_our_node_id ( ) ) . unwrap ( ) ;
188
- let node0_shutdown_message = get_event_msg ! ( initiator_node, MessageSendEvent :: SendShutdown , acceptor_node. node. get_our_node_id( ) ) ;
189
- acceptor_node. node . handle_shutdown ( initiator_node. node . get_our_node_id ( ) , & node0_shutdown_message) ;
190
- let nodes_1_shutdown = get_event_msg ! ( acceptor_node, MessageSendEvent :: SendShutdown , initiator_node. node. get_our_node_id( ) ) ;
286
+ let node0_shutdown_message = get_event_msg ! (
287
+ initiator_node,
288
+ MessageSendEvent :: SendShutdown ,
289
+ acceptor_node. node. get_our_node_id( )
290
+ ) ;
291
+ acceptor_node
292
+ . node
293
+ . handle_shutdown ( initiator_node. node . get_our_node_id ( ) , & node0_shutdown_message) ;
294
+ let nodes_1_shutdown = get_event_msg ! (
295
+ acceptor_node,
296
+ MessageSendEvent :: SendShutdown ,
297
+ initiator_node. node. get_our_node_id( )
298
+ ) ;
191
299
initiator_node. node . handle_shutdown ( acceptor_node. node . get_our_node_id ( ) , & nodes_1_shutdown) ;
192
- let _ = get_event_msg ! ( initiator_node, MessageSendEvent :: SendClosingSigned , acceptor_node. node. get_our_node_id( ) ) ;
300
+ let _ = get_event_msg ! (
301
+ initiator_node,
302
+ MessageSendEvent :: SendClosingSigned ,
303
+ acceptor_node. node. get_our_node_id( )
304
+ ) ;
193
305
}
0 commit comments