github.com/Finschia/finschia-sdk@v0.48.1/x/upgrade/types/storeloader.go (about)

     1  package types
     2  
     3  import (
     4  	"github.com/Finschia/finschia-sdk/baseapp"
     5  	store "github.com/Finschia/finschia-sdk/store/types"
     6  	sdk "github.com/Finschia/finschia-sdk/types"
     7  )
     8  
     9  // UpgradeStoreLoader is used to prepare baseapp with a fixed StoreLoader
    10  // pattern. This is useful for custom upgrade loading logic.
    11  func UpgradeStoreLoader(upgradeHeight int64, storeUpgrades *store.StoreUpgrades) baseapp.StoreLoader {
    12  	return func(ms sdk.CommitMultiStore) error {
    13  		if upgradeHeight == ms.LastCommitID().Version+1 {
    14  			// Check if the current commit version and upgrade height matches
    15  			if len(storeUpgrades.Renamed) > 0 || len(storeUpgrades.Deleted) > 0 || len(storeUpgrades.Added) > 0 {
    16  				return ms.LoadLatestVersionAndUpgrade(storeUpgrades)
    17  			}
    18  		}
    19  
    20  		// Otherwise load default store loader
    21  		return baseapp.DefaultStoreLoader(ms)
    22  	}
    23  }