@@ -362,8 +362,7 @@ pub mod pallet {
362
362
///
363
363
/// This resets `last_proof` to the current block, thereby delaying any automatic demotion.
364
364
///
365
- /// If `who` is not already tracked by this pallet, then it will become tracked.
366
- /// `last_promotion` will be set to zero.
365
+ /// `who` must already be tracked by this pallet for this to have an effect.
367
366
///
368
367
/// - `origin`: An origin which satisfies `ApproveOrigin` or root.
369
368
/// - `who`: A member (i.e. of non-zero rank).
@@ -382,11 +381,7 @@ pub mod pallet {
382
381
ensure ! ( at_rank > 0 , Error :: <T , I >:: InvalidRank ) ;
383
382
let rank = T :: Members :: rank_of ( & who) . ok_or ( Error :: < T , I > :: Unranked ) ?;
384
383
ensure ! ( rank == at_rank, Error :: <T , I >:: UnexpectedRank ) ;
385
- let mut member = if let Some ( m) = Member :: < T , I > :: get ( & who) {
386
- m
387
- } else {
388
- Self :: import_member ( who. clone ( ) , rank)
389
- } ;
384
+ let mut member = Member :: < T , I > :: get ( & who) . ok_or ( Error :: < T , I > :: NotTracked ) ?;
390
385
391
386
member. last_proof = frame_system:: Pallet :: < T > :: block_number ( ) ;
392
387
Member :: < T , I > :: insert ( & who, & member) ;
@@ -522,7 +517,13 @@ pub mod pallet {
522
517
let who = ensure_signed ( origin) ?;
523
518
ensure ! ( !Member :: <T , I >:: contains_key( & who) , Error :: <T , I >:: AlreadyInducted ) ;
524
519
let rank = T :: Members :: rank_of ( & who) . ok_or ( Error :: < T , I > :: Unranked ) ?;
525
- let _ = Self :: import_member ( who, rank) ;
520
+
521
+ let now = frame_system:: Pallet :: < T > :: block_number ( ) ;
522
+ Member :: < T , I > :: insert (
523
+ & who,
524
+ MemberStatus { is_active : true , last_promotion : 0u32 . into ( ) , last_proof : now } ,
525
+ ) ;
526
+ Self :: deposit_event ( Event :: < T , I > :: Imported { who, rank } ) ;
526
527
527
528
Ok ( Pays :: No . into ( ) )
528
529
}
@@ -546,18 +547,6 @@ pub mod pallet {
546
547
Self :: deposit_event ( e) ;
547
548
}
548
549
}
549
-
550
- fn import_member ( who : T :: AccountId , rank : RankOf < T , I > ) -> MemberStatusOf < T > {
551
- let now = frame_system:: Pallet :: < T > :: block_number ( ) ;
552
- let status = MemberStatus {
553
- is_active : true ,
554
- last_promotion : BlockNumberFor :: < T > :: zero ( ) ,
555
- last_proof : now,
556
- } ;
557
- Member :: < T , I > :: insert ( & who, status. clone ( ) ) ;
558
- Self :: deposit_event ( Event :: < T , I > :: Imported { who, rank } ) ;
559
- status
560
- }
561
550
}
562
551
563
552
impl < T : Config < I > , I : ' static > GetSalary < RankOf < T , I > , T :: AccountId , T :: Balance > for Pallet < T , I > {
0 commit comments