@@ -61,28 +61,24 @@ def test_admin_macaroons(self):
6161 # These tanks all use the same default macaroon root key, meaning the macaroons
6262 # generated at ~/.lnd/.../admin.macaroon in each lnd container are authorized
6363 # to make requests to each other.
64- info = json .loads (
65- self .warnet ("ln rpc tank-0000-ln --rpcserver=tank-0001-ln.default:10009 getinfo" )
66- )
67- info ["alias" ] = "tank-0001-ln"
6864 info = json .loads (
6965 self .warnet ("ln rpc tank-0001-ln --rpcserver=tank-0002-ln.default:10009 getinfo" )
7066 )
71- info ["alias" ] = "tank-0002-ln"
67+ assert info ["alias" ] = = "tank-0002-ln"
7268 info = json .loads (
7369 self .warnet ("ln rpc tank-0002-ln --rpcserver=tank-0005-ln.default:10009 getinfo" )
7470 )
75- info ["alias" ] = "tank-0005-ln"
71+ assert info ["alias" ] = = "tank-0005-ln"
7672
7773 self .log .info ("Testing lnd nodes with unique macaroon root key can NOT query each other" )
7874 # These tanks are configured with unique macaroon root keys
7975 try :
80- self .warnet ("ln rpc tank-0000 -ln --rpcserver=tank-0003-ln.default:10009 getinfo" )
76+ self .warnet ("ln rpc tank-0001 -ln --rpcserver=tank-0003-ln.default:10009 getinfo" )
8177 raise AssertionError ("That should not have worked!" )
8278 except Exception as e :
8379 assert "verification failed: signature mismatch after caveat verification" in str (e )
8480 try :
85- self .warnet ("ln rpc tank-0000 -ln --rpcserver=tank-0004-ln.default:10009 getinfo" )
81+ self .warnet ("ln rpc tank-0001 -ln --rpcserver=tank-0004-ln.default:10009 getinfo" )
8682 raise AssertionError ("That should not have worked!" )
8783 except Exception as e :
8884 assert "verification failed: signature mismatch after caveat verification" in str (e )
@@ -94,13 +90,27 @@ def test_admin_macaroons(self):
9490
9591 def fund_wallets (self ):
9692 for ln in self .lns :
97- addr = json .loads (self .warnet (f"ln rpc { ln } newaddress p2wkh" ))["address" ]
93+ if ln == "tank-0000-ln" :
94+ # cln
95+ addr = json .loads (self .warnet (f"ln rpc { ln } newaddr p2tr" ))["p2tr" ]
96+ else :
97+ # lnd
98+ addr = json .loads (self .warnet (f"ln rpc { ln } newaddress p2tr" ))["address" ]
9899 self .warnet (f"bitcoin rpc tank-0000 sendtoaddress { addr } 10" )
99100 self .wait_for_predicate (
100101 lambda : json .loads (self .warnet ("bitcoin rpc tank-0000 getmempoolinfo" ))["size" ]
101102 == len (self .lns )
102103 )
103104 self .warnet ("bitcoin rpc tank-0000 -generate 1" )
105+ # cln takes a long time to register its own balance?
106+ self .wait_for_predicate (
107+ lambda : len (
108+ json .loads (self .warnet ("ln rpc tank-0000-ln bkpr-listbalances" ))["accounts" ][0 ][
109+ "balances"
110+ ]
111+ )
112+ > 0
113+ )
104114
105115 def manual_open_channels (self ):
106116 self .fund_wallets ()
@@ -118,11 +128,9 @@ def manual_open_channels(self):
118128 host2 = self .warnet ("ln host tank-0002-ln" )
119129 sleep (1 )
120130
121- print (
122- self .warnet (
123- f"ln rpc tank-0000-ln openchannel --node_key { pk1 } --local_amt 100000 --connect { host1 } "
124- )
125- )
131+ print (self .warnet (f"ln rpc tank-0000-ln connect { pk1 } { host1 } " ))
132+ print (self .warnet (f"ln rpc tank-0000-ln fundchannel { pk1 } 100000" ))
133+
126134 print (
127135 self .warnet (
128136 f"ln rpc tank-0001-ln openchannel --node_key { pk2 } --local_amt 100000 --connect { host2 } "
@@ -138,7 +146,13 @@ def manual_open_channels(self):
138146 def wait_for_gossip_sync (self , nodes , expected ):
139147 while len (nodes ) > 0 :
140148 for node in nodes :
141- chs = json .loads (self .warnet (f"ln rpc { node } describegraph" ))["edges" ]
149+ if node == "tank-0000-ln" :
150+ # cln
151+ chs = json .loads (self .warnet (f"ln rpc { node } listchannels" ))["channels" ]
152+ chs = [ch for ch in chs if ch ["direction" ] == 1 ]
153+ else :
154+ # lnd
155+ chs = json .loads (self .warnet (f"ln rpc { node } describegraph" ))["edges" ]
142156 if len (chs ) >= expected :
143157 nodes .remove (node )
144158 sleep (1 )
@@ -147,7 +161,12 @@ def pay_invoice(self, sender: str, recipient: str):
147161 init_balance = int (json .loads (self .warnet (f"ln rpc { recipient } channelbalance" ))["balance" ])
148162 inv = json .loads (self .warnet (f"ln rpc { recipient } addinvoice --amt 1000" ))
149163 print (inv )
150- print (self .warnet (f"ln rpc { sender } payinvoice -f { inv ['payment_request' ]} " ))
164+ if sender == "tank-0000-ln" :
165+ # cln
166+ print (self .warnet (f"ln rpc { sender } pay { inv ['payment_request' ]} " ))
167+ else :
168+ # lnd
169+ print (self .warnet (f"ln rpc { sender } payinvoice -f { inv ['payment_request' ]} " ))
151170
152171 def wait_for_success ():
153172 return (
0 commit comments