@@ -118,77 +118,76 @@ def expect_event(node, expected_event_type):
118118 assert isinstance (event , expected_event_type )
119119 print ("EVENT:" , event )
120120 node .event_handled ()
121- return event
121+ return event
122122
123+ def setup_two_nodes (esplora_endpoint ):
124+ tmp_dir_1 = tempfile .TemporaryDirectory ("_ldk_node_1" )
125+ listening_addresses_1 = ["127.0.0.1:2323" ]
126+ node_1 = setup_node (tmp_dir_1 .name , esplora_endpoint , listening_addresses_1 )
127+ node_1 .start ()
128+ node_id_1 = node_1 .node_id ()
123129
130+ tmp_dir_2 = tempfile .TemporaryDirectory ("_ldk_node_2" )
131+ listening_addresses_2 = ["127.0.0.1:2324" ]
132+ node_2 = setup_node (tmp_dir_2 .name , esplora_endpoint , listening_addresses_2 )
133+ node_2 .start ()
134+ node_id_2 = node_2 .node_id ()
124135
125- class TestLdkNode (unittest .TestCase ):
126- def setUp (self ):
127- bitcoin_cli ("createwallet ldk_node_test" )
128- mine (101 )
129- time .sleep (3 )
130- esplora_endpoint = get_esplora_endpoint ()
131- mine_and_wait (esplora_endpoint , 1 )
136+ return node_1 , node_2 , tmp_dir_1 , tmp_dir_2 , node_id_1 , node_id_2 , listening_addresses_2
132137
133- def _setup_two_nodes (self , esplora_endpoint ):
134- tmp_dir_1 = tempfile .TemporaryDirectory ("_ldk_node_1" )
135- listening_addresses_1 = ["127.0.0.1:2323" ]
136- node_1 = setup_node (tmp_dir_1 .name , esplora_endpoint , listening_addresses_1 )
137- node_1 .start ()
138- node_id_1 = node_1 .node_id ()
138+ def fund_nodes (node_1 , node_2 , esplora_endpoint , amount_sats = 100000 ):
139+ address_1 = node_1 .onchain_payment ().new_address ()
140+ txid_1 = send_to_address (address_1 , amount_sats )
141+ address_2 = node_2 .onchain_payment ().new_address ()
142+ txid_2 = send_to_address (address_2 , amount_sats )
139143
140- tmp_dir_2 = tempfile .TemporaryDirectory ("_ldk_node_2" )
141- listening_addresses_2 = ["127.0.0.1:2324" ]
142- node_2 = setup_node (tmp_dir_2 .name , esplora_endpoint , listening_addresses_2 )
143- node_2 .start ()
144- node_id_2 = node_2 .node_id ()
144+ wait_for_tx (esplora_endpoint , txid_1 )
145+ wait_for_tx (esplora_endpoint , txid_2 )
146+ mine_and_wait (esplora_endpoint , 6 )
145147
146- return node_1 , node_2 , tmp_dir_1 , tmp_dir_2 , node_id_1 , node_id_2 , listening_addresses_2
148+ node_1 .sync_wallets ()
149+ node_2 .sync_wallets ()
147150
148- def _fund_nodes (self , node_1 , node_2 , esplora_endpoint , amount_sats = 100000 ):
149- address_1 = node_1 .onchain_payment ().new_address ()
150- txid_1 = send_to_address (address_1 , amount_sats )
151- address_2 = node_2 .onchain_payment ().new_address ()
152- txid_2 = send_to_address (address_2 , amount_sats )
151+ def open_channel_and_wait_ready (node_1 , node_2 , node_id_2 , listening_address_2 , esplora_endpoint , channel_amount_sats = 50000 ):
152+ node_1 .open_channel (node_id_2 , listening_address_2 , channel_amount_sats , None , None )
153153
154- wait_for_tx (esplora_endpoint , txid_1 )
155- wait_for_tx (esplora_endpoint , txid_2 )
156- mine_and_wait (esplora_endpoint , 6 )
157-
158- node_1 .sync_wallets ()
159- node_2 .sync_wallets ()
154+ channel_pending_event_1 = expect_event (node_1 , Event .CHANNEL_PENDING )
155+ expect_event (node_2 , Event .CHANNEL_PENDING )
160156
161- def _open_channel_and_wait_ready (self , node_1 , node_2 , node_id_2 , listening_address_2 , esplora_endpoint , channel_amount_sats = 50000 ):
162- node_1 .open_channel (node_id_2 , listening_address_2 , channel_amount_sats , None , None )
157+ funding_txid = channel_pending_event_1 .funding_txo .txid
158+ wait_for_tx (esplora_endpoint , funding_txid )
159+ mine_and_wait (esplora_endpoint , 6 )
163160
164- channel_pending_event_1 = expect_event ( node_1 , Event . CHANNEL_PENDING )
165- expect_event ( node_2 , Event . CHANNEL_PENDING )
161+ node_1 . sync_wallets ( )
162+ node_2 . sync_wallets ( )
166163
167- funding_txid = channel_pending_event_1 . funding_txo . txid
168- wait_for_tx ( esplora_endpoint , funding_txid )
169- mine_and_wait ( esplora_endpoint , 6 )
164+ channel_ready_event_1 = expect_event ( node_1 , Event . CHANNEL_READY )
165+ channel_ready_event_2 = expect_event ( node_2 , Event . CHANNEL_READY )
166+ return channel_ready_event_1 , channel_ready_event_2 , funding_txid
170167
171- node_1 .sync_wallets ()
172- node_2 .sync_wallets ()
168+ def stop_and_cleanup (node_1 , node_2 , tmp_dir_1 , tmp_dir_2 ):
169+ node_1 .stop ()
170+ node_2 .stop ()
171+ time .sleep (1 )
172+ tmp_dir_1 .cleanup ()
173+ tmp_dir_2 .cleanup ()
173174
174- channel_ready_event_1 = expect_event (node_1 , Event .CHANNEL_READY )
175- channel_ready_event_2 = expect_event (node_2 , Event .CHANNEL_READY )
176- return channel_ready_event_1 , channel_ready_event_2 , funding_txid
177175
178- def _stop_and_cleanup (self , node_1 , node_2 , tmp_dir_1 , tmp_dir_2 ):
179- node_1 .stop ()
180- node_2 .stop ()
181- time .sleep (1 )
182- tmp_dir_1 .cleanup ()
183- tmp_dir_2 .cleanup ()
176+ class TestLdkNode (unittest .TestCase ):
177+ def setUp (self ):
178+ bitcoin_cli ("createwallet ldk_node_test" )
179+ mine (101 )
180+ time .sleep (3 )
181+ esplora_endpoint = get_esplora_endpoint ()
182+ mine_and_wait (esplora_endpoint , 1 )
184183
185184 def test_spontaneous_payment (self ):
186185 """Spontaneous payment test in python: keysend after channel ready."""
187186 esplora_endpoint = get_esplora_endpoint ()
188187
189- node_1 , node_2 , tmp_dir_1 , tmp_dir_2 , node_id_1 , node_id_2 , listening_addresses_2 = self . _setup_two_nodes (esplora_endpoint )
190- self . _fund_nodes (node_1 , node_2 , esplora_endpoint )
191- self . _open_channel_and_wait_ready (node_1 , node_2 , node_id_2 , listening_addresses_2 [0 ], esplora_endpoint )
188+ node_1 , node_2 , tmp_dir_1 , tmp_dir_2 , node_id_1 , node_id_2 , listening_addresses_2 = setup_two_nodes (esplora_endpoint )
189+ fund_nodes (node_1 , node_2 , esplora_endpoint )
190+ open_channel_and_wait_ready (node_1 , node_2 , node_id_2 , listening_addresses_2 [0 ], esplora_endpoint )
192191
193192 keysend_amount_msat = 2_500_000
194193 custom_tlvs = [CustomTlvRecord (type_num = 13377331 , value = bytes ([1 , 2 , 3 ]))]
@@ -217,43 +216,18 @@ def test_spontaneous_payment(self):
217216 self .assertEqual (receiver_payment .amount_msat , keysend_amount_msat )
218217 self .assertTrue (receiver_payment .kind .is_spontaneous ())
219218
220- self . _stop_and_cleanup (node_1 , node_2 , tmp_dir_1 , tmp_dir_2 )
219+ stop_and_cleanup (node_1 , node_2 , tmp_dir_1 , tmp_dir_2 )
221220
222221 def test_channel_full_cycle (self ):
223222 esplora_endpoint = get_esplora_endpoint ()
224223
225- ## Setup Node 1
226- tmp_dir_1 = tempfile .TemporaryDirectory ("_ldk_node_1" )
224+ node_1 , node_2 , tmp_dir_1 , tmp_dir_2 , node_id_1 , node_id_2 , listening_addresses_2 = setup_two_nodes (esplora_endpoint )
227225 print ("TMP DIR 1:" , tmp_dir_1 .name )
228-
229- listening_addresses_1 = ["127.0.0.1:2323" ]
230- node_1 = setup_node (tmp_dir_1 .name , esplora_endpoint , listening_addresses_1 )
231- node_1 .start ()
232- node_id_1 = node_1 .node_id ()
233226 print ("Node ID 1:" , node_id_1 )
234-
235- # Setup Node 2
236- tmp_dir_2 = tempfile .TemporaryDirectory ("_ldk_node_2" )
237227 print ("TMP DIR 2:" , tmp_dir_2 .name )
238-
239- listening_addresses_2 = ["127.0.0.1:2324" ]
240- node_2 = setup_node (tmp_dir_2 .name , esplora_endpoint , listening_addresses_2 )
241- node_2 .start ()
242- node_id_2 = node_2 .node_id ()
243228 print ("Node ID 2:" , node_id_2 )
244229
245- address_1 = node_1 .onchain_payment ().new_address ()
246- txid_1 = send_to_address (address_1 , 100000 )
247- address_2 = node_2 .onchain_payment ().new_address ()
248- txid_2 = send_to_address (address_2 , 100000 )
249-
250- wait_for_tx (esplora_endpoint , txid_1 )
251- wait_for_tx (esplora_endpoint , txid_2 )
252-
253- mine_and_wait (esplora_endpoint , 6 )
254-
255- node_1 .sync_wallets ()
256- node_2 .sync_wallets ()
230+ fund_nodes (node_1 , node_2 , esplora_endpoint )
257231
258232 spendable_balance_1 = node_1 .list_balances ().spendable_onchain_balance_sats
259233 spendable_balance_2 = node_2 .list_balances ().spendable_onchain_balance_sats
@@ -272,23 +246,11 @@ def test_channel_full_cycle(self):
272246 print ("TOTAL 2:" , total_balance_2 )
273247 self .assertEqual (total_balance_2 , 100000 )
274248
275- node_1 .open_channel (node_id_2 , listening_addresses_2 [0 ], 50000 , None , None )
276-
277-
278- channel_pending_event_1 = expect_event (node_1 , Event .CHANNEL_PENDING )
279- channel_pending_event_2 = expect_event (node_2 , Event .CHANNEL_PENDING )
280- funding_txid = channel_pending_event_1 .funding_txo .txid
281- wait_for_tx (esplora_endpoint , funding_txid )
282- mine_and_wait (esplora_endpoint , 6 )
283-
284- node_1 .sync_wallets ()
285- node_2 .sync_wallets ()
286-
287- channel_ready_event_1 = expect_event (node_1 , Event .CHANNEL_READY )
249+ channel_ready_event_1 , channel_ready_event_2 , funding_txid = open_channel_and_wait_ready (
250+ node_1 , node_2 , node_id_2 , listening_addresses_2 [0 ], esplora_endpoint
251+ )
288252 print ("funding_txo:" , funding_txid )
289253
290- channel_ready_event_2 = expect_event (node_2 , Event .CHANNEL_READY )
291-
292254 description = Bolt11InvoiceDescription .DIRECT ("asdf" )
293255 invoice = node_2 .bolt11_payment ().receive (2500000 , description , 9217 )
294256 node_1 .bolt11_payment ().send (invoice , None )
@@ -316,14 +278,7 @@ def test_channel_full_cycle(self):
316278 spendable_balance_after_close_2 = node_2 .list_balances ().spendable_onchain_balance_sats
317279 self .assertEqual (spendable_balance_after_close_2 , 102500 )
318280
319- # Stop nodes
320- node_1 .stop ()
321- node_2 .stop ()
322-
323- # Cleanup
324- time .sleep (1 ) # Wait a sec so our logs can finish writing
325- tmp_dir_1 .cleanup ()
326- tmp_dir_2 .cleanup ()
281+ stop_and_cleanup (node_1 , node_2 , tmp_dir_1 , tmp_dir_2 )
327282
328283if __name__ == '__main__' :
329284 unittest .main ()
0 commit comments