@@ -1080,8 +1080,7 @@ pub mod pallet {
1080
1080
/// At the moment, we only allow one upgrade to be scheduled at the next block after pending
1081
1081
/// code is set.
1082
1082
#[ pallet:: storage]
1083
- pub ( super ) type UpgradeScheduledAt < T : Config > =
1084
- StorageValue < _ , Option < BlockNumberFor < T > > , ValueQuery > ;
1083
+ pub ( super ) type UpgradeScheduledAt < T : Config > = StorageValue < _ , BlockNumberFor < T > , ValueQuery > ;
1085
1084
1086
1085
/// True if we have upgraded so that `type RefCount` is `u32`. False (default) if not.
1087
1086
#[ pallet:: storage]
@@ -1595,7 +1594,7 @@ impl<T: Config> Pallet<T> {
1595
1594
let current_number = Pallet :: < T > :: block_number ( ) ;
1596
1595
let scheduled_at = current_number + One :: one ( ) ;
1597
1596
1598
- UpgradeScheduledAt :: < T > :: put ( Some ( scheduled_at) ) ;
1597
+ UpgradeScheduledAt :: < T > :: put ( scheduled_at) ;
1599
1598
storage:: unhashed:: put_raw ( well_known_keys:: PENDING_CODE , code) ;
1600
1599
}
1601
1600
@@ -1606,13 +1605,13 @@ impl<T: Config> Pallet<T> {
1606
1605
///
1607
1606
/// Returns `true` if the pending code upgrade was applied.
1608
1607
pub fn maybe_apply_pending_code_upgrade ( ) -> bool {
1609
- let maybe_pending_upgrade = UpgradeScheduledAt :: < T > :: get ( ) ;
1610
-
1611
- if let Some ( scheduled_at) = maybe_pending_upgrade {
1608
+ if UpgradeScheduledAt :: < T > :: exists ( ) {
1609
+ let scheduled_at = UpgradeScheduledAt :: < T > :: get ( ) ;
1612
1610
let current_number = Pallet :: < T > :: block_number ( ) ;
1611
+
1613
1612
// Only enact the pending code upgrade if it is scheduled to be enacted in this block.
1614
1613
if scheduled_at == current_number {
1615
- UpgradeScheduledAt :: < T > :: put ( None :: < BlockNumberFor < T > > ) ;
1614
+ UpgradeScheduledAt :: < T > :: kill ( ) ;
1616
1615
let new_code = storage:: unhashed:: get_raw ( well_known_keys:: PENDING_CODE ) ;
1617
1616
let Some ( new_code) = new_code else {
1618
1617
// should never happen
0 commit comments