@@ -192,23 +192,29 @@ use pallet_subtensor::{CollectiveInterface, MemberManagement};
192192pub struct ManageSenateMembers ;
193193impl MemberManagement < AccountId > for ManageSenateMembers {
194194 fn add_member ( account : & AccountId ) -> DispatchResultWithPostInfo {
195- SenateMembers :: add_member ( RawOrigin :: Root . into ( ) , * account)
195+ let who = * account;
196+ SenateMembers :: add_member ( RawOrigin :: Root . into ( ) , who)
196197 }
197198
198199 fn remove_member ( account : & AccountId ) -> DispatchResultWithPostInfo {
199- SenateMembers :: remove_member ( RawOrigin :: Root . into ( ) , * account)
200+ let who = * account;
201+ SenateMembers :: remove_member ( RawOrigin :: Root . into ( ) , who)
200202 }
201203
202- fn swap_member ( remove : & AccountId , add : & AccountId ) -> DispatchResultWithPostInfo {
203- SenateMembers :: swap_member ( RawOrigin :: Root . into ( ) , * remove, * add)
204+ fn swap_member ( rm : & AccountId , add : & AccountId ) -> DispatchResultWithPostInfo {
205+ let remove = * rm;
206+ let add = * add;
207+
208+ Triumvirate :: remove_votes ( rm) ?;
209+ SenateMembers :: swap_member ( RawOrigin :: Root . into ( ) , remove, add)
204210 }
205211
206212 fn is_member ( account : & AccountId ) -> bool {
207- Senate :: is_member ( account)
213+ SenateMembers :: members ( ) . contains ( account)
208214 }
209215
210216 fn members ( ) -> Vec < AccountId > {
211- Senate :: members ( )
217+ SenateMembers :: members ( ) . into ( )
212218 }
213219
214220 fn max_members ( ) -> u32 {
0 commit comments