1
// Copyright (C) Moondance Labs Ltd.
2
// This file is part of Tanssi.
3

            
4
// Tanssi is free software: you can redistribute it and/or modify
5
// it under the terms of the GNU General Public License as published by
6
// the Free Software Foundation, either version 3 of the License, or
7
// (at your option) any later version.
8

            
9
// Tanssi is distributed in the hope that it will be useful,
10
// but WITHOUT ANY WARRANTY; without even the implied warranty of
11
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12
// GNU General Public License for more details.
13

            
14
// You should have received a copy of the GNU General Public License
15
// along with Tanssi.  If not, see <http://www.gnu.org/licenses/>
16
use {
17
    crate::{Config, OfflineStatus},
18
    frame_support::{pallet_prelude::Weight, traits::Get},
19
};
20

            
21
// Migrating offline collator storage from bool to Option<u32>.
22
pub fn migrate_offline_collators_storage<T: Config>(_available_weight: Weight) -> Weight {
23
    let mut count = 0;
24
    crate::OfflineCollators::<T>::translate(|_key, value: bool| {
25
        count += 1;
26
        if value {
27
            Some(OfflineStatus::Disabled)
28
        } else {
29
            None
30
        }
31
    });
32
    log::info!("Migrated {} offline collators records", count);
33
    T::DbWeight::get().reads_writes(count, count)
34
}