Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrade plan v0.8.1 #371

Merged
merged 4 commits into from
Mar 22, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion app/app.go
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,8 @@ var Upgrades = []upgrades.Upgrade{
upgrades.Upgrade_0_6_1,
upgrades.Upgrade_0_7_0,
upgrades.Upgrade_0_7_1,
upgrades.Upgrade_0_8_0,
// upgrades.Upgrade_0_8_0,
upgrades.Upgrade_0_8_1,
}

// this line is used by starport scaffolding # stargate/wasm/app/enabledProposals
Expand Down
147 changes: 77 additions & 70 deletions app/upgrades/empty_upgrades.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,102 +11,109 @@ import (
subscriptionmoduletypes "github.com/lavanet/lava/x/subscription/types"
)

func defaultUpgradeHandler(
m *module.Manager,
c module.Configurator,
bapm BaseAppParamManager,
lk *keepers.LavaKeepers,
) upgradetypes.UpgradeHandler {
return func(ctx sdk.Context, plan upgradetypes.Plan, vm module.VersionMap) (module.VersionMap, error) {
return m.RunMigrations(ctx, c, vm)
}
}

// Template for empty/simple upgrades:
// (Note: in cosmos-sdk 0.45.11 "Renamed" did not work properly for attempt v0.8.1)
//
// var Upgrade_0_0_1 = Upgrade{
// UpgradeName: "v0.0.1", // upgrade name
// CreateUpgradeHandler: defaultUpgradeHandler, // upgrade handler (default)
// StoreUpgrades: store.StoreUpgrades{ // store upgrades
// Added: []string{newmoduletypes.StoreKey}, // new module store to add
// Deleted: []string{oldmoduletypes.StoreKey}, // old module store to delete
// Renamed: []store.StoreRename{ // old/new module store to rename
// {OldKey: oldmoduletypes.StoreKey, NewKey: newmoduletypes.StoreKey},
// },
// },
// }

var Upgrade_0_4_0 = Upgrade{
UpgradeName: "v0.4.0", // upgrade name defined few lines above
CreateUpgradeHandler: func(m *module.Manager, c module.Configurator, bapm BaseAppParamManager, lk *keepers.LavaKeepers) upgradetypes.UpgradeHandler {
return func(ctx sdk.Context, plan upgradetypes.Plan, vm module.VersionMap) (module.VersionMap, error) {
return m.RunMigrations(ctx, c, vm)
}
}, // create CreateUpgradeHandler in upgrades.go below
StoreUpgrades: store.StoreUpgrades{}, // StoreUpgrades has 3 fields: Added/Renamed/Deleted any module that fits these description should be added in the way below
UpgradeName: "v0.4.0",
CreateUpgradeHandler: defaultUpgradeHandler,
StoreUpgrades: store.StoreUpgrades{},
}

var Upgrade_0_4_3 = Upgrade{
UpgradeName: "v0.4.3", // upgrade name defined few lines above
CreateUpgradeHandler: func(m *module.Manager, c module.Configurator, bapm BaseAppParamManager, lk *keepers.LavaKeepers) upgradetypes.UpgradeHandler {
return func(ctx sdk.Context, plan upgradetypes.Plan, vm module.VersionMap) (module.VersionMap, error) {
return m.RunMigrations(ctx, c, vm)
}
}, // create CreateUpgradeHandler in upgrades.go below
StoreUpgrades: store.StoreUpgrades{}, // StoreUpgrades has 3 fields: Added/Renamed/Deleted any module that fits these description should be added in the way below
UpgradeName: "v0.4.3",
CreateUpgradeHandler: defaultUpgradeHandler,
StoreUpgrades: store.StoreUpgrades{},
}

var Upgrade_0_4_4 = Upgrade{
UpgradeName: "v0.4.4", // upgrade name defined few lines above
CreateUpgradeHandler: func(m *module.Manager, c module.Configurator, bapm BaseAppParamManager, lk *keepers.LavaKeepers) upgradetypes.UpgradeHandler {
return func(ctx sdk.Context, plan upgradetypes.Plan, vm module.VersionMap) (module.VersionMap, error) {
return m.RunMigrations(ctx, c, vm)
}
}, // create CreateUpgradeHandler in upgrades.go below
StoreUpgrades: store.StoreUpgrades{}, // StoreUpgrades has 3 fields: Added/Renamed/Deleted any module that fits these description should be added in the way below
UpgradeName: "v0.4.4",
CreateUpgradeHandler: defaultUpgradeHandler,
StoreUpgrades: store.StoreUpgrades{},
}

var Upgrade_0_4_5 = Upgrade{
UpgradeName: "v0.4.5", // upgrade name defined few lines above
CreateUpgradeHandler: func(m *module.Manager, c module.Configurator, bapm BaseAppParamManager, lk *keepers.LavaKeepers) upgradetypes.UpgradeHandler {
return func(ctx sdk.Context, plan upgradetypes.Plan, vm module.VersionMap) (module.VersionMap, error) {
return m.RunMigrations(ctx, c, vm)
}
}, // create CreateUpgradeHandler in upgrades.go below
StoreUpgrades: store.StoreUpgrades{}, // StoreUpgrades has 3 fields: Added/Renamed/Deleted any module that fits these description should be added in the way below
UpgradeName: "v0.4.5",
CreateUpgradeHandler: defaultUpgradeHandler,
StoreUpgrades: store.StoreUpgrades{},
}

var Upgrade_0_6_0 = Upgrade{
UpgradeName: "v0.6.0", // upgrade name defined few lines above
CreateUpgradeHandler: func(m *module.Manager, c module.Configurator, bapm BaseAppParamManager, lk *keepers.LavaKeepers) upgradetypes.UpgradeHandler {
return func(ctx sdk.Context, plan upgradetypes.Plan, vm module.VersionMap) (module.VersionMap, error) {
return m.RunMigrations(ctx, c, vm)
}
}, // create CreateUpgradeHandler in upgrades.go below
StoreUpgrades: store.StoreUpgrades{}, // StoreUpgrades has 3 fields: Added/Renamed/Deleted any module that fits these description should be added in the way below
UpgradeName: "v0.6.0",
CreateUpgradeHandler: defaultUpgradeHandler,
StoreUpgrades: store.StoreUpgrades{},
}

var Upgrade_0_6_0_RC3 = Upgrade{
UpgradeName: "v0.6.0-RC3", // upgrade name defined few lines above
CreateUpgradeHandler: func(m *module.Manager, c module.Configurator, bapm BaseAppParamManager, lk *keepers.LavaKeepers) upgradetypes.UpgradeHandler {
return func(ctx sdk.Context, plan upgradetypes.Plan, vm module.VersionMap) (module.VersionMap, error) {
return m.RunMigrations(ctx, c, vm)
}
}, // create CreateUpgradeHandler in upgrades.go below
StoreUpgrades: store.StoreUpgrades{}, // StoreUpgrades has 3 fields: Added/Renamed/Deleted any module that fits these description should be added in the way below
CreateUpgradeHandler: defaultUpgradeHandler,
StoreUpgrades: store.StoreUpgrades{},
}

var Upgrade_0_6_1 = Upgrade{
UpgradeName: "v0.6.1", // upgrade name defined few lines above
CreateUpgradeHandler: func(m *module.Manager, c module.Configurator, bapm BaseAppParamManager, lk *keepers.LavaKeepers) upgradetypes.UpgradeHandler {
return func(ctx sdk.Context, plan upgradetypes.Plan, vm module.VersionMap) (module.VersionMap, error) {
return m.RunMigrations(ctx, c, vm)
}
}, // create CreateUpgradeHandler in upgrades.go below
StoreUpgrades: store.StoreUpgrades{}, // StoreUpgrades has 3 fields: Added/Renamed/Deleted any module that fits these description should be added in the way below
UpgradeName: "v0.6.1",
CreateUpgradeHandler: defaultUpgradeHandler,
StoreUpgrades: store.StoreUpgrades{},
}

// Upgrade_0_7_0 adds three new modules: plan, subscription, projects
var Upgrade_0_7_0 = Upgrade{
UpgradeName: "v0.7.0", // upgrade name defined few lines above
CreateUpgradeHandler: func(m *module.Manager, c module.Configurator, bapm BaseAppParamManager, lk *keepers.LavaKeepers) upgradetypes.UpgradeHandler {
return func(ctx sdk.Context, plan upgradetypes.Plan, vm module.VersionMap) (module.VersionMap, error) {
return m.RunMigrations(ctx, c, vm)
}
}, // create CreateUpgradeHandler in upgrades.go below
StoreUpgrades: store.StoreUpgrades{Added: []string{plansmoduletypes.StoreKey, projectsmoduletypes.StoreKey, subscriptionmoduletypes.StoreKey}}, // StoreUpgrades has 3 fields: Added/Renamed/Deleted any module that fits these description should be added in the way below
UpgradeName: "v0.7.0",
CreateUpgradeHandler: defaultUpgradeHandler,
StoreUpgrades: store.StoreUpgrades{
Added: []string{
plansmoduletypes.StoreKey,
projectsmoduletypes.StoreKey,
subscriptionmoduletypes.StoreKey,
},
},
}

var Upgrade_0_7_1 = Upgrade{
UpgradeName: "v0.7.1", // upgrade name defined few lines above
CreateUpgradeHandler: func(m *module.Manager, c module.Configurator, bapm BaseAppParamManager, lk *keepers.LavaKeepers) upgradetypes.UpgradeHandler {
return func(ctx sdk.Context, plan upgradetypes.Plan, vm module.VersionMap) (module.VersionMap, error) {
return m.RunMigrations(ctx, c, vm)
}
}, // create CreateUpgradeHandler in upgrades.go below
StoreUpgrades: store.StoreUpgrades{}, // StoreUpgrades has 3 fields: Added/Renamed/Deleted any module that fits these description should be added in the way below
UpgradeName: "v0.7.1",
CreateUpgradeHandler: defaultUpgradeHandler,
StoreUpgrades: store.StoreUpgrades{},
}

var Upgrade_0_8_0 = Upgrade{
UpgradeName: "v0.8.0-RC1",
CreateUpgradeHandler: func(m *module.Manager, c module.Configurator, bapm BaseAppParamManager, lk *keepers.LavaKeepers) upgradetypes.UpgradeHandler {
return func(ctx sdk.Context, plan upgradetypes.Plan, vm module.VersionMap) (module.VersionMap, error) {
return m.RunMigrations(ctx, c, vm)
}
//// Upgrade_0_8_0 canceled: module StoreKey "projects" renamed to "project" without store
//// rename/delete/add; outcome not recoverable (due to cosmos-sdk v0.45.11 bug?).
// var Upgrade_0_8_0 = Upgrade{
// UpgradeName: "v0.8.0-RC1",
// CreateUpgradeHandler: defaultUpgradeHandler,
// StoreUpgrades: store.StoreUpgrades{},
// }

// for Upgrade_0_8_1 the old StoreKey for Projects module
const oldProjectsModuleStoreKey = "projects"

// Upgrade_0_8_1 fixes StoreKey "projects"->"project": delete old and add new
var Upgrade_0_8_1 = Upgrade{
UpgradeName: "v0.8.1",
CreateUpgradeHandler: defaultUpgradeHandler,
StoreUpgrades: store.StoreUpgrades{
Deleted: []string{oldProjectsModuleStoreKey},
Added: []string{projectsmoduletypes.StoreKey},
},
StoreUpgrades: store.StoreUpgrades{},
}
2 changes: 1 addition & 1 deletion x/projects/keeper/msg_server_set_project_policy.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ func (k msgServer) SetProjectPolicy(goCtx context.Context, msg *types.MsgSetProj
}

// check if the admin key is valid
if !project.HasKeyType(adminKey, types.ProjectKey_ADMIN) || project.Subscription != adminKey {
if !project.IsAdminKey(adminKey) {
return nil, utils.LavaError(ctx, ctx.Logger(), "SetProjectPolicy_not_admin", map[string]string{"project": projectID}, "the requesting key is not admin key")
}

Expand Down
2 changes: 1 addition & 1 deletion x/projects/keeper/project.go
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ func (k Keeper) AddKeysToProject(ctx sdk.Context, projectID string, adminKey str
}

// check if the admin key is valid
if !project.HasKeyType(adminKey, types.ProjectKey_ADMIN) && project.Subscription != adminKey {
if !project.IsAdminKey(adminKey) {
return utils.LavaError(ctx, ctx.Logger(), "AddProjectKeys_not_admin", map[string]string{"project": projectID}, "the requesting key is not admin key")
}

Expand Down
4 changes: 4 additions & 0 deletions x/projects/types/project.go
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,10 @@ func (project *Project) HasKeyType(projectKey string, keyTypeToCheck ProjectKey_
return project.GetKey(projectKey).IsKeyType(keyTypeToCheck)
}

func (project *Project) IsAdminKey(projectKey string) bool {
return project.HasKeyType(projectKey, ProjectKey_ADMIN) || project.Subscription == projectKey
}

func (project *Project) VerifyProject(chainID string) error {
if !project.Enabled {
return fmt.Errorf("the developers project is disabled")
Expand Down