From dd31fae56c1a9adf44c1c86db9e1731ff6b20e3c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bastian=20K=C3=B6cher?= <bkchr@users.noreply.github.com>
Date: Fri, 24 Apr 2020 12:35:25 +0200
Subject: [PATCH] Make sure staking migration code runs only for `version =
 2_0_0` (#5768)

---
 substrate/frame/staking/src/lib.rs | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/substrate/frame/staking/src/lib.rs b/substrate/frame/staking/src/lib.rs
index 34b6a4f7958..d175c26e7ae 100644
--- a/substrate/frame/staking/src/lib.rs
+++ b/substrate/frame/staking/src/lib.rs
@@ -1246,8 +1246,12 @@ decl_module! {
 		fn on_runtime_upgrade() -> Weight {
 			// For Kusama the type hasn't actually changed as Moment was u64 and was the number of
 			// millisecond since unix epoch.
-			StorageVersion::put(Releases::V3_0_0);
-			Self::migrate_last_reward_to_claimed_rewards();
+			StorageVersion::mutate(|v| {
+				if matches!(v, Releases::V2_0_0) {
+					Self::migrate_last_reward_to_claimed_rewards();
+				}
+				*v = Releases::V3_0_0;
+			});
 			0
 		}
 
-- 
GitLab