INNER CODE UNIT · Rust

withdraw_bond

AstarNetwork/Astar · pallets/collator-selection/src/lib.rs:454

        pub fn withdraw_bond(origin: OriginFor<T>) -> DispatchResult {
            let who = ensure_signed(origin)?;

            <NonCandidates<T>>::try_mutate_exists(&who, |maybe| -> DispatchResult {
                if let Some((index, deposit)) = maybe.take() {
                    ensure!(
                        T::ValidatorSet::session_index() >= index,
                        Error::<T>::BondStillLocked
                    );
                    T::Currency::unreserve(&who, deposit);
                    <LastAuthoredBlock<T>>::remove(&who);
                    Ok(())
                } else {
                    Err(Error::<T>::NoCandidacyBond.into())
                }
            })?;

            Ok(())

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…