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

fix: CNS-v3.1.0 #1664

Merged
merged 8 commits into from
Sep 1, 2024
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
1 change: 1 addition & 0 deletions app/app.go
Original file line number Diff line number Diff line change
Expand Up @@ -202,6 +202,7 @@ var Upgrades = []upgrades.Upgrade{
upgrades.Upgrade_2_5_0,
upgrades.Upgrade_3_0_0,
upgrades.Upgrade_3_0_1,
upgrades.Upgrade_3_1_0,
}

// this line is used by starport scaffolding # stargate/wasm/app/enabledProposals
Expand Down
6 changes: 6 additions & 0 deletions app/upgrades/empty_upgrades.go
Original file line number Diff line number Diff line change
Expand Up @@ -294,3 +294,9 @@ var Upgrade_3_0_1 = Upgrade{
CreateUpgradeHandler: defaultUpgradeHandler,
StoreUpgrades: store.StoreUpgrades{},
}

var Upgrade_3_1_0 = Upgrade{
UpgradeName: "v3.1.0",
CreateUpgradeHandler: defaultUpgradeHandler,
StoreUpgrades: store.StoreUpgrades{},
}
35 changes: 35 additions & 0 deletions x/pairing/keeper/migrations.go
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
package keeper

import (
"fmt"

sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/lavanet/lava/v2/utils"
v2 "github.com/lavanet/lava/v2/x/pairing/migrations/v2"
)

Expand All @@ -20,3 +23,35 @@ func (m Migrator) MigrateVersion2To3(ctx sdk.Context) error {
v2.RemoveAllEpochPayments(ctx, m.keeper.storeKey)
return nil
}

// MigrateVersion3To4 fix delegation total in the stake entries
func (m Migrator) MigrateVersion3To4(ctx sdk.Context) error {
entries := m.keeper.epochStorageKeeper.GetAllStakeEntriesCurrent(ctx)
epoch := m.keeper.epochStorageKeeper.GetCurrentNextEpoch(ctx)
for _, e := range entries {
delegations, err := m.keeper.dualstakingKeeper.GetProviderDelegators(ctx, e.Address, epoch)
if err != nil {
utils.LavaFormatError("failed getting provider delegators at MigrateVersion3To4", err, utils.LogAttr("provider", e.Address))
continue
}

delegateTotal := sdk.ZeroInt()
for _, d := range delegations {
if e.Address == d.Delegator || e.Vault == d.Delegator || d.ChainID != e.Chain {
continue
}
delegateTotal = delegateTotal.Add(d.Amount.Amount)
}
if !e.DelegateTotal.Amount.Equal(delegateTotal) {
fmt.Println("fixing delegate total for", e.Address, e.Chain)

e.DelegateTotal.Amount = delegateTotal
if e.EffectiveStake().LT(m.keeper.specKeeper.GetMinStake(ctx, e.Chain).Amount) {
e.Freeze()
}
m.keeper.epochStorageKeeper.SetStakeEntryCurrent(ctx, e)
}
}

return nil
}
6 changes: 5 additions & 1 deletion x/pairing/module.go
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,10 @@ func (am AppModule) RegisterServices(cfg module.Configurator) {
if err := cfg.RegisterMigration(types.ModuleName, 2, migrator.MigrateVersion2To3); err != nil {
panic(fmt.Errorf("%s: failed to register migration to v3: %w", types.ModuleName, err))
}
// register v3 -> v4 migration
if err := cfg.RegisterMigration(types.ModuleName, 3, migrator.MigrateVersion3To4); err != nil {
panic(fmt.Errorf("%s: failed to register migration to v4: %w", types.ModuleName, err))
}
}

// RegisterInvariants registers the capability module's invariants.
Expand All @@ -157,7 +161,7 @@ func (am AppModule) ExportGenesis(ctx sdk.Context, cdc codec.JSONCodec) json.Raw
}

// ConsensusVersion implements ConsensusVersion.
func (AppModule) ConsensusVersion() uint64 { return 3 }
func (AppModule) ConsensusVersion() uint64 { return 4 }

// BeginBlock executes all ABCI BeginBlock logic respective to the capability module.
func (am AppModule) BeginBlock(ctx sdk.Context, _ abci.RequestBeginBlock) {
Expand Down
19 changes: 5 additions & 14 deletions x/protocol/module.go
Original file line number Diff line number Diff line change
Expand Up @@ -132,72 +132,59 @@ func (am AppModule) RegisterServices(cfg module.Configurator) {
// panic:ok: at start up, migration cannot proceed anyhow
panic(fmt.Errorf("%s: failed to register migration to v3: %w", types.ModuleName, err))
}

// register v3 -> v4 migration
if err := cfg.RegisterMigration(types.ModuleName, 3, migrator.MigrateVersion); err != nil {
// panic:ok: at start up, migration cannot proceed anyhow
panic(fmt.Errorf("%s: failed to register migration to v3: %w", types.ModuleName, err))
}

// register v4 -> v5 migration
if err := cfg.RegisterMigration(types.ModuleName, 4, migrator.MigrateVersion); err != nil {
// panic:ok: at start up, migration cannot proceed anyhow
panic(fmt.Errorf("%s: failed to register migration to v5: %w", types.ModuleName, err))
}

// register v5 -> v6 migration
if err := cfg.RegisterMigration(types.ModuleName, 5, migrator.MigrateVersion); err != nil {
// panic:ok: at start up, migration cannot proceed anyhow
panic(fmt.Errorf("%s: failed to register migration to v6: %w", types.ModuleName, err))
}

// register v6 -> v7 migration
if err := cfg.RegisterMigration(types.ModuleName, 6, migrator.MigrateVersion); err != nil {
// panic:ok: at start up, migration cannot proceed anyhow
panic(fmt.Errorf("%s: failed to register migration to v7: %w", types.ModuleName, err))
}

// register v7 -> v8 migration
if err := cfg.RegisterMigration(types.ModuleName, 7, migrator.MigrateVersion); err != nil {
// panic:ok: at start up, migration cannot proceed anyhow
panic(fmt.Errorf("%s: failed to register migration to v8: %w", types.ModuleName, err))
}

if err := cfg.RegisterMigration(types.ModuleName, 8, migrator.MigrateVersion); err != nil {
// panic:ok: at start up, migration cannot proceed anyhow
panic(fmt.Errorf("%s: failed to register migration to v9: %w", types.ModuleName, err))
}

if err := cfg.RegisterMigration(types.ModuleName, 9, migrator.MigrateVersion); err != nil {
// panic:ok: at start up, migration cannot proceed anyhow
panic(fmt.Errorf("%s: failed to register migration to v10: %w", types.ModuleName, err))
}

if err := cfg.RegisterMigration(types.ModuleName, 10, migrator.MigrateVersion); err != nil {
// panic:ok: at start up, migration cannot proceed anyhow
panic(fmt.Errorf("%s: failed to register migration to v11: %w", types.ModuleName, err))
}

if err := cfg.RegisterMigration(types.ModuleName, 11, migrator.MigrateVersion); err != nil {
// panic:ok: at start up, migration cannot proceed anyhow
panic(fmt.Errorf("%s: failed to register migration to v12: %w", types.ModuleName, err))
}

if err := cfg.RegisterMigration(types.ModuleName, 12, migrator.MigrateVersion); err != nil {
// panic:ok: at start up, migration cannot proceed anyhow
panic(fmt.Errorf("%s: failed to register migration to v13: %w", types.ModuleName, err))
}

if err := cfg.RegisterMigration(types.ModuleName, 13, migrator.MigrateVersion); err != nil {
// panic:ok: at start up, migration cannot proceed anyhow
panic(fmt.Errorf("%s: failed to register migration to v14: %w", types.ModuleName, err))
}

if err := cfg.RegisterMigration(types.ModuleName, 14, migrator.MigrateVersion); err != nil {
// panic:ok: at start up, migration cannot proceed anyhow
panic(fmt.Errorf("%s: failed to register migration to v15: %w", types.ModuleName, err))
}

if err := cfg.RegisterMigration(types.ModuleName, 15, migrator.MigrateVersion); err != nil {
// panic:ok: at start up, migration cannot proceed anyhow
panic(fmt.Errorf("%s: failed to register migration to v16: %w", types.ModuleName, err))
Expand All @@ -222,10 +209,14 @@ func (am AppModule) RegisterServices(cfg module.Configurator) {
// panic:ok: at start up, migration cannot proceed anyhow
panic(fmt.Errorf("%s: failed to register migration to v21: %w", types.ModuleName, err))
}
if err := cfg.RegisterMigration(types.ModuleName, 21, migrator.MigrateVersion); err != nil {
// panic:ok: at start up, migration cannot proceed anyhow
panic(fmt.Errorf("%s: failed to register migration to v22: %w", types.ModuleName, err))
}
}

// ConsensusVersion implements ConsensusVersion.
func (AppModule) ConsensusVersion() uint64 { return 21 }
func (AppModule) ConsensusVersion() uint64 { return 22 }

// RegisterInvariants registers the capability module's invariants.
func (am AppModule) RegisterInvariants(_ sdk.InvariantRegistry) {}
Expand Down
2 changes: 1 addition & 1 deletion x/protocol/types/params.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import (
var _ paramtypes.ParamSet = (*Params)(nil)

const (
TARGET_VERSION = "3.0.1"
TARGET_VERSION = "3.1.0"
MIN_VERSION = "2.2.2"
)

Expand Down
Loading