@@ -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-payment" , label = "test" )
30
+ addr_info = wallet .getaddressinfo (labeled_sp_addr )
31
+ assert addr_info ["labels" ][0 ] == "test"
32
+ assert wallet .listlabels () == ["test" ]
33
+ assert_raises_rpc_error (- 11 , "No addresses with label test" , wallet .getaddressesbylabel , "test" ) # SP destination is ignored
34
+
35
+ txid = 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 len (addresses ) == 1
41
+ assert addresses [sp_taproot_spk_addr ]["purpose" ] == "receive"
42
+ assert wallet .getaddressinfo (sp_taproot_spk_addr )["labels" ][0 ] == "test"
43
+ wallet_txs_by_label = wallet .listreceivedbylabel ()
44
+ assert wallet_txs_by_label [0 ]["amount" ] == 10
45
+ assert wallet_txs_by_label [0 ]["label" ] == "test"
46
+ assert 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