@@ -42,7 +42,7 @@ use crate::libwallet::{
42
42
use crate :: util:: logger:: LoggingConfig ;
43
43
use crate :: util:: secp:: key:: SecretKey ;
44
44
use crate :: util:: { from_hex, Mutex , ZeroingString } ;
45
- use libwallet:: { OwnershipProof , OwnershipProofValidation , RetrieveTxQueryArgs } ;
45
+ use libwallet:: { wallet_lock , OwnershipProof , OwnershipProofValidation , RetrieveTxQueryArgs } ;
46
46
use mwc_wallet_util:: mwc_util:: secp:: key:: PublicKey ;
47
47
use mwc_wallet_util:: mwc_util:: static_secp_instance;
48
48
use std:: sync:: atomic:: { AtomicBool , Ordering } ;
@@ -295,8 +295,7 @@ where
295
295
& self ,
296
296
keychain_mask : Option < & SecretKey > ,
297
297
) -> Result < Vec < AcctPathMapping > , Error > {
298
- let mut w_lock = self . wallet_inst . lock ( ) ;
299
- let w = w_lock. lc_provider ( ) ?. wallet_inst ( ) ?;
298
+ wallet_lock ! ( self . wallet_inst, w) ;
300
299
// Test keychain mask, to keep API consistent
301
300
let _ = w. keychain ( keychain_mask) ?;
302
301
owner:: accounts ( & mut * * w)
@@ -347,8 +346,7 @@ where
347
346
keychain_mask : Option < & SecretKey > ,
348
347
label : & str ,
349
348
) -> Result < Identifier , Error > {
350
- let mut w_lock = self . wallet_inst . lock ( ) ;
351
- let w = w_lock. lc_provider ( ) ?. wallet_inst ( ) ?;
349
+ wallet_lock ! ( self . wallet_inst, w) ;
352
350
owner:: create_account_path ( & mut * * w, keychain_mask, label)
353
351
}
354
352
@@ -395,8 +393,7 @@ where
395
393
keychain_mask : Option < & SecretKey > ,
396
394
label : & str ,
397
395
) -> Result < ( ) , Error > {
398
- let mut w_lock = self . wallet_inst . lock ( ) ;
399
- let w = w_lock. lc_provider ( ) ?. wallet_inst ( ) ?;
396
+ wallet_lock ! ( self . wallet_inst, w) ;
400
397
// Test keychain mask, to keep API consistent
401
398
let _ = w. keychain ( keychain_mask) ?;
402
399
owner:: set_active_account ( & mut * * w, label)
@@ -708,7 +705,8 @@ where
708
705
) -> Result < Slate , Error > {
709
706
let address = args. address . clone ( ) ;
710
707
711
- owner:: update_wallet_state ( self . wallet_inst . clone ( ) , keychain_mask, & None ) ?;
708
+ wallet_lock ! ( self . wallet_inst, w) ;
709
+ owner:: update_wallet_state ( & mut * * w, keychain_mask, & None ) ?;
712
710
let send_args = args. send_args . clone ( ) ;
713
711
//minimum_confirmations cannot be zero.
714
712
let minimum_confirmations = args. minimum_confirmations . clone ( ) ;
@@ -768,11 +766,8 @@ where
768
766
None
769
767
} ;
770
768
771
- let mut slate = {
772
- let mut w_lock = self . wallet_inst . lock ( ) ;
773
- let w = w_lock. lc_provider ( ) ?. wallet_inst ( ) ?;
774
- owner:: init_send_tx ( & mut * * w, keychain_mask, & args, self . doctest_mode , routputs) ?
775
- } ;
769
+ let mut slate =
770
+ { owner:: init_send_tx ( & mut * * w, keychain_mask, & args, self . doctest_mode , routputs) ? } ;
776
771
777
772
match send_args {
778
773
Some ( sa) => {
@@ -781,8 +776,6 @@ where
781
776
match sender_info {
782
777
Some ( ( sender, other_wallet_info) ) => {
783
778
let ( slatepack_secret, height, secp) = {
784
- let mut w_lock = self . wallet_inst . lock ( ) ;
785
- let w = w_lock. lc_provider ( ) ?. wallet_inst ( ) ?;
786
779
let keychain = w. keychain ( keychain_mask) ?;
787
780
let ( height, _, _) = w. w2n_client ( ) . get_chain_tip ( ) ?;
788
781
let slatepack_secret =
@@ -893,8 +886,7 @@ where
893
886
keychain_mask : Option < & SecretKey > ,
894
887
args : & IssueInvoiceTxArgs ,
895
888
) -> Result < Slate , Error > {
896
- let mut w_lock = self . wallet_inst . lock ( ) ;
897
- let w = w_lock. lc_provider ( ) ?. wallet_inst ( ) ?;
889
+ wallet_lock ! ( self . wallet_inst, w) ;
898
890
owner:: issue_invoice_tx ( & mut * * w, keychain_mask, args, self . doctest_mode , 1 )
899
891
}
900
892
@@ -959,7 +951,9 @@ where
959
951
slate : & Slate ,
960
952
args : & InitTxArgs ,
961
953
) -> Result < Slate , Error > {
962
- owner:: update_wallet_state ( self . wallet_inst . clone ( ) , keychain_mask, & None ) ?;
954
+ wallet_lock ! ( self . wallet_inst, w) ;
955
+
956
+ owner:: update_wallet_state ( & mut * * w, keychain_mask, & None ) ?;
963
957
964
958
//minimum_confirmations cannot be zero.
965
959
let minimum_confirmations = args. minimum_confirmations . clone ( ) ;
@@ -968,8 +962,6 @@ where
968
962
"minimum_confirmations can not smaller than 1" . to_owned ( ) ,
969
963
) ) ;
970
964
}
971
- let mut w_lock = self . wallet_inst . lock ( ) ;
972
- let w = w_lock. lc_provider ( ) ?. wallet_inst ( ) ?;
973
965
owner:: process_invoice_tx (
974
966
& mut * * w,
975
967
keychain_mask,
@@ -1043,8 +1035,7 @@ where
1043
1035
address : Option < String > ,
1044
1036
participant_id : usize ,
1045
1037
) -> Result < ( ) , Error > {
1046
- let mut w_lock = self . wallet_inst . lock ( ) ;
1047
- let w = w_lock. lc_provider ( ) ?. wallet_inst ( ) ?;
1038
+ wallet_lock ! ( self . wallet_inst, w) ;
1048
1039
owner:: tx_lock_outputs (
1049
1040
& mut * * w,
1050
1041
keychain_mask,
@@ -1120,8 +1111,7 @@ where
1120
1111
keychain_mask : Option < & SecretKey > ,
1121
1112
slate : & Slate ,
1122
1113
) -> Result < Slate , Error > {
1123
- let mut w_lock = self . wallet_inst . lock ( ) ;
1124
- let w = w_lock. lc_provider ( ) ?. wallet_inst ( ) ?;
1114
+ wallet_lock ! ( self . wallet_inst, w) ;
1125
1115
let ( slate_res, _context) =
1126
1116
owner:: finalize_tx ( & mut * * w, keychain_mask, slate, true , self . doctest_mode ) ?;
1127
1117
@@ -1187,8 +1177,7 @@ where
1187
1177
fluff : bool ,
1188
1178
) -> Result < ( ) , Error > {
1189
1179
let client = {
1190
- let mut w_lock = self . wallet_inst . lock ( ) ;
1191
- let w = w_lock. lc_provider ( ) ?. wallet_inst ( ) ?;
1180
+ wallet_lock ! ( self . wallet_inst, w) ;
1192
1181
// Test keychain mask, to keep API consistent
1193
1182
let _ = w. keychain ( keychain_mask) ?;
1194
1183
w. w2n_client ( ) . clone ( )
@@ -1310,17 +1299,15 @@ where
1310
1299
keychain_mask : Option < & SecretKey > ,
1311
1300
tx_log_entry : & TxLogEntry ,
1312
1301
) -> Result < Option < Transaction > , Error > {
1313
- let mut w_lock = self . wallet_inst . lock ( ) ;
1314
- let w = w_lock. lc_provider ( ) ?. wallet_inst ( ) ?;
1302
+ wallet_lock ! ( self . wallet_inst, w) ;
1315
1303
// Test keychain mask, to keep API consistent
1316
1304
let _ = w. keychain ( keychain_mask) ?;
1317
1305
owner:: get_stored_tx ( & * * w, tx_log_entry)
1318
1306
}
1319
1307
1320
1308
/// Loads a stored transaction from a file
1321
1309
pub fn load_stored_tx ( & self , file : & String ) -> Result < Transaction , Error > {
1322
- let mut w_lock = self . wallet_inst . lock ( ) ;
1323
- let w = w_lock. lc_provider ( ) ?. wallet_inst ( ) ?;
1310
+ wallet_lock ! ( self . wallet_inst, w) ;
1324
1311
owner:: load_stored_tx ( & * * w, file)
1325
1312
}
1326
1313
@@ -1381,8 +1368,7 @@ where
1381
1368
slate : & Slate ,
1382
1369
) -> Result < ( ) , Error > {
1383
1370
{
1384
- let mut w_lock = self . wallet_inst . lock ( ) ;
1385
- let w = w_lock. lc_provider ( ) ?. wallet_inst ( ) ?;
1371
+ wallet_lock ! ( self . wallet_inst, w) ;
1386
1372
// Test keychain mask, to keep API consistent
1387
1373
let _ = w. keychain ( keychain_mask) ?;
1388
1374
}
@@ -1596,8 +1582,7 @@ where
1596
1582
keychain_mask : Option < & SecretKey > ,
1597
1583
) -> Result < NodeHeightResult , Error > {
1598
1584
{
1599
- let mut w_lock = self . wallet_inst . lock ( ) ;
1600
- let w = w_lock. lc_provider ( ) ?. wallet_inst ( ) ?;
1585
+ wallet_lock ! ( self . wallet_inst, w) ;
1601
1586
// Test keychain mask, to keep API consistent
1602
1587
let _ = w. keychain ( keychain_mask) ?;
1603
1588
}
@@ -2473,7 +2458,10 @@ where
2473
2458
params : & SwapStartArgs ,
2474
2459
) -> Result < String , Error > {
2475
2460
// Updating wallet state first because we need to select outputs.
2476
- owner:: update_wallet_state ( self . wallet_inst . clone ( ) , keychain_mask, & None ) ?;
2461
+ {
2462
+ wallet_lock ! ( self . wallet_inst, w) ;
2463
+ owner:: update_wallet_state ( & mut * * w, keychain_mask, & None ) ?;
2464
+ }
2477
2465
owner_swap:: swap_start ( self . wallet_inst . clone ( ) , keychain_mask, params)
2478
2466
. map_err ( |e| e. into ( ) )
2479
2467
}
@@ -2720,8 +2708,7 @@ where
2720
2708
) ,
2721
2709
Error ,
2722
2710
> {
2723
- let mut w_lock = self . wallet_inst . lock ( ) ;
2724
- let w = w_lock. lc_provider ( ) ?. wallet_inst ( ) ?;
2711
+ wallet_lock ! ( self . wallet_inst, w) ;
2725
2712
foreign:: decrypt_slate ( & mut * * w, keychain_mask, encrypted_slate, address_index)
2726
2713
}
2727
2714
@@ -2736,8 +2723,7 @@ where
2736
2723
address_index : Option < u32 > ,
2737
2724
use_test_rng : bool ,
2738
2725
) -> Result < VersionedSlate , Error > {
2739
- let mut w_lock = self . wallet_inst . lock ( ) ;
2740
- let w = w_lock. lc_provider ( ) ?. wallet_inst ( ) ?;
2726
+ wallet_lock ! ( self . wallet_inst, w) ;
2741
2727
foreign:: encrypt_slate (
2742
2728
& mut * * w,
2743
2729
keychain_mask,
@@ -2757,8 +2743,7 @@ where
2757
2743
features : OutputFeatures ,
2758
2744
amount : u64 ,
2759
2745
) -> Result < BuiltOutput , Error > {
2760
- let mut w_lock = self . wallet_inst . lock ( ) ;
2761
- let w = w_lock. lc_provider ( ) ?. wallet_inst ( ) ?;
2746
+ wallet_lock ! ( self . wallet_inst, w) ;
2762
2747
owner:: build_output ( & mut * * w, keychain_mask, features, amount)
2763
2748
}
2764
2749
}
0 commit comments