@@ -20,6 +20,31 @@ def skip_test_if_missing_module(self):
20
20
self .skip_if_no_wallet ()
21
21
self .skip_if_no_sqlite ()
22
22
23
+ def test_labels (self ):
24
+ self .log .info ("Check Silent Payment Labels" )
25
+
26
+ self .nodes [0 ].createwallet (wallet_name = "labels" , silent_payment = True )
27
+ wallet = self .nodes [0 ].get_wallet_rpc ("labels" )
28
+
29
+ labeled_sp_addr = wallet .getnewaddress (address_type = "silent-payments" , label = "test" )
30
+ addr_info = wallet .getaddressinfo (labeled_sp_addr )
31
+ assert_equal (addr_info ["labels" ][0 ], "test" )
32
+ assert_equal (wallet .listlabels (), ["test" ])
33
+ assert_raises_rpc_error (- 11 , "No addresses with label test" , wallet .getaddressesbylabel , "test" ) # SP destination is ignored
34
+
35
+ self .def_wallet .sendtoaddress (labeled_sp_addr , 10 )
36
+ self .generate (self .nodes [0 ], 1 )
37
+
38
+ addresses = wallet .getaddressesbylabel ("test" )
39
+ sp_taproot_spk_addr = list (addresses )[0 ]
40
+ assert_equal (len (addresses ), 1 )
41
+ assert_equal (addresses [sp_taproot_spk_addr ]["purpose" ], "receive" )
42
+ assert_equal (wallet .getaddressinfo (sp_taproot_spk_addr )["labels" ][0 ], "test" )
43
+ wallet_txs_by_label = wallet .listreceivedbylabel ()
44
+ assert_equal (wallet_txs_by_label [0 ]["amount" ], 10 )
45
+ assert_equal (wallet_txs_by_label [0 ]["label" ], "test" )
46
+ assert_equal (wallet .getreceivedbylabel ("test" ), 10 )
47
+
23
48
def test_encrypt_and_decrypt (self ):
24
49
self .log .info ("Check that a silent payments wallet can be encrypted and decrypted" )
25
50
self .log .info ("Create encrypted wallet" )
@@ -171,6 +196,7 @@ def run_test(self):
171
196
self .test_encrypting_unencrypted ()
172
197
self .test_basic ()
173
198
self .test_import_rescan ()
199
+ self .test_labels ()
174
200
175
201
176
202
if __name__ == '__main__' :
0 commit comments