Skip to content

Commit

Permalink
Merge branch 'main' into faddat-patch-2
Browse files Browse the repository at this point in the history
  • Loading branch information
tuantran1702 authored Mar 28, 2024
2 parents 2e16c9e + 42d83ff commit 48d8543
Show file tree
Hide file tree
Showing 65 changed files with 4,577 additions and 1,491 deletions.
1 change: 1 addition & 0 deletions .github/workflows/deploytestweb.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ jobs:
VERCEL_TOKEN: ${{ secrets.VERCEL_TOKEN }}
VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }}
VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID }}
VERCEL_SCOPE: quicksilver
ALIAS_DOMAINS: |
{BRANCH}.app-dev.quicksilver.zone
PR_PREVIEW_DOMAIN: "pr-{PR}.app-dev.quicksilver.zone"
Expand Down
4 changes: 2 additions & 2 deletions Dockerfile.osmosis
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,14 @@
# Build
# --------------------------------------------------------

FROM golang:1.20.11-alpine3.18 as build
FROM golang:1.21.8-alpine3.18 as build

RUN set -eux; apk add --no-cache ca-certificates build-base;
RUN apk add git
# Needed by github.com/zondax/hid
RUN apk add linux-headers

RUN git clone https://github.com/osmosis-labs/osmosis /osmosis --branch v21.1.4
RUN git clone https://github.com/osmosis-labs/osmosis /osmosis --branch v23.0.0-rc1
WORKDIR /osmosis

RUN ARCH=$(uname -m) && WASMVM_VERSION=$(go list -m github.com/CosmWasm/wasmvm | sed 's/.* //') && \
Expand Down
6 changes: 3 additions & 3 deletions app/keepers/keepers.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ package keepers

import (
"github.com/CosmWasm/wasmd/x/wasm"
packetforward "github.com/strangelove-ventures/packet-forward-middleware/v5/router"
packetforwardkeeper "github.com/strangelove-ventures/packet-forward-middleware/v5/router/keeper"
packetforwardtypes "github.com/strangelove-ventures/packet-forward-middleware/v5/router/types"
"github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v5/packetforward"
packetforwardkeeper "github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v5/packetforward/keeper"
packetforwardtypes "github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v5/packetforward/types"
tmos "github.com/tendermint/tendermint/libs/os"

"github.com/cosmos/cosmos-sdk/baseapp"
Expand Down
2 changes: 1 addition & 1 deletion app/keepers/keys.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ package keepers

import (
"github.com/CosmWasm/wasmd/x/wasm"
packetforwardtypes "github.com/strangelove-ventures/packet-forward-middleware/v5/router/types"
packetforwardtypes "github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v5/packetforward/types"

storetypes "github.com/cosmos/cosmos-sdk/store/types"
sdk "github.com/cosmos/cosmos-sdk/types"
Expand Down
4 changes: 2 additions & 2 deletions app/modules.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ package app

import (
"github.com/CosmWasm/wasmd/x/wasm"
packetforward "github.com/strangelove-ventures/packet-forward-middleware/v5/router"
packetforwardtypes "github.com/strangelove-ventures/packet-forward-middleware/v5/router/types"
"github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v5/packetforward"
packetforwardtypes "github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v5/packetforward/types"

"github.com/cosmos/cosmos-sdk/types/module"
"github.com/cosmos/cosmos-sdk/x/auth"
Expand Down
2 changes: 1 addition & 1 deletion app/upgrades.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ package app
import (
"fmt"

packetforwardtypes "github.com/strangelove-ventures/packet-forward-middleware/v5/router/types"
packetforwardtypes "github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v5/packetforward/types"

storetypes "github.com/cosmos/cosmos-sdk/store/types"
upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types"
Expand Down
3 changes: 3 additions & 0 deletions app/upgrades/types.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ const (
V010407rc2UpgradeName = "v1.4.7-rc2"
V010500rc0UpgradeName = "v1.5.0-rc0"
V010500rc1UpgradeName = "v1.5.0-rc1"
V010503rc0UpgradeName = "v1.5.3-rc0"

// mainnet upgrades
V010217UpgradeName = "v1.2.17"
Expand All @@ -32,6 +33,8 @@ const (
V010407UpgradeName = "v1.4.7"
V010500UpgradeName = "v1.5.0"
V010501UpgradeName = "v1.5.1"
V010503UpgradeName = "v1.5.3"
V010504UpgradeName = "v1.5.4"
V010600UpgradeName = "v1.6.0"
)

Expand Down
3 changes: 3 additions & 0 deletions app/upgrades/upgrades.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ func Upgrades() []Upgrade {
{UpgradeName: V010407rc2UpgradeName, CreateUpgradeHandler: V010407rc2UpgradeHandler},
{UpgradeName: V010500rc0UpgradeName, CreateUpgradeHandler: NoOpHandler},
{UpgradeName: V010500rc1UpgradeName, CreateUpgradeHandler: V010500rc1UpgradeHandler},
{UpgradeName: V010503rc0UpgradeName, CreateUpgradeHandler: V010503rc0UpgradeHandler},

// v1.2: this needs to be present to support upgrade on mainnet
{UpgradeName: V010217UpgradeName, CreateUpgradeHandler: NoOpHandler},
Expand All @@ -26,6 +27,8 @@ func Upgrades() []Upgrade {
{UpgradeName: V010407UpgradeName, CreateUpgradeHandler: V010407UpgradeHandler},
{UpgradeName: V010500UpgradeName, CreateUpgradeHandler: V010500UpgradeHandler},
{UpgradeName: V010501UpgradeName, CreateUpgradeHandler: V010501UpgradeHandler},
{UpgradeName: V010503UpgradeName, CreateUpgradeHandler: V010503UpgradeHandler},
{UpgradeName: V010504UpgradeName, CreateUpgradeHandler: V010504UpgradeHandler},
{UpgradeName: V010600UpgradeName, CreateUpgradeHandler: V010600UpgradeHandler},
}
}
Expand Down
147 changes: 144 additions & 3 deletions app/upgrades/v1_5.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,17 @@ import (
"fmt"
"time"

"cosmossdk.io/math"

sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/cosmos/cosmos-sdk/types/module"
authtypes "github.com/cosmos/cosmos-sdk/x/auth/types"
upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types"

"github.com/quicksilver-zone/quicksilver/app/keepers"
"github.com/quicksilver-zone/quicksilver/utils"
"github.com/quicksilver-zone/quicksilver/utils/addressutils"
cmtypes "github.com/quicksilver-zone/quicksilver/x/claimsmanager/types"
icstypes "github.com/quicksilver-zone/quicksilver/x/interchainstaking/types"
prkeeper "github.com/quicksilver-zone/quicksilver/x/participationrewards/keeper"
prtypes "github.com/quicksilver-zone/quicksilver/x/participationrewards/types"
Expand Down Expand Up @@ -49,8 +54,144 @@ func V010500rc1UpgradeHandler(
}
}

func V010503rc0UpgradeHandler(
mm *module.Manager,
configurator module.Configurator,
appKeepers *keepers.AppKeepers,
) upgradetypes.UpgradeHandler {
return func(ctx sdk.Context, _ upgradetypes.Plan, fromVM module.VersionMap) (module.VersionMap, error) {
// update all withdrawal records' distributors to use new Amount field.
appKeepers.InterchainstakingKeeper.IterateWithdrawalRecords(ctx, func(index int64, record icstypes.WithdrawalRecord) (stop bool) {
if record.Distribution == nil {
// skip records that are queued.
return false
}

newDist := make([]*icstypes.Distribution, 0, len(record.Distribution))
for _, d := range record.Distribution {
d.Amount = math.NewIntFromUint64(d.XAmount)
d.XAmount = 0
newDist = append(newDist, d)
}
record.Distribution = newDist
appKeepers.InterchainstakingKeeper.SetWithdrawalRecord(ctx, record)

return false
})

// for all claims, update to use new Amount field
appKeepers.ClaimsManagerKeeper.IterateAllClaims(ctx, func(index int64, key []byte, data cmtypes.Claim) (stop bool) {
data.Amount = math.NewIntFromUint64(data.XAmount)
appKeepers.ClaimsManagerKeeper.SetClaim(ctx, &data)
return false
})

appKeepers.ClaimsManagerKeeper.IterateAllLastEpochClaims(ctx, func(index int64, key []byte, data cmtypes.Claim) (stop bool) {
data.Amount = math.NewIntFromUint64(data.XAmount)
appKeepers.ClaimsManagerKeeper.SetClaim(ctx, &data)
return false
})

// for all redelegation records, migrate
appKeepers.InterchainstakingKeeper.IterateRedelegationRecords(ctx, func(index int64, key []byte, record icstypes.RedelegationRecord) (stop bool) {
record.Amount = math.NewInt(record.XAmount)
appKeepers.InterchainstakingKeeper.SetRedelegationRecord(ctx, record)
return false
})

appKeepers.InterchainstakingKeeper.SetConnectionForPort(ctx, "connection-4", "icacontroller-osmo-test-5.performance")

return mm.RunMigrations(ctx, configurator, fromVM)
}
}

// =========== PRODUCTION UPGRADE HANDLER ===========

func V010504UpgradeHandler(
mm *module.Manager,
configurator module.Configurator,
appKeepers *keepers.AppKeepers,
) upgradetypes.UpgradeHandler {
return func(ctx sdk.Context, _ upgradetypes.Plan, fromVM module.VersionMap) (module.VersionMap, error) {
appKeepers.InterchainstakingKeeper.IterateZones(ctx, func(_ int64, zone *icstypes.Zone) (stop bool) {
// ship everything in local corresponding account to withdrawal account address to fee collector.
account, err := addressutils.AccAddressFromBech32(zone.WithdrawalAddress.Address, "")
if err != nil {
panic(err)
}

accountBalance := appKeepers.BankKeeper.GetAllBalances(ctx, account)
err = appKeepers.BankKeeper.SendCoinsFromAccountToModule(ctx, account, authtypes.FeeCollectorName, accountBalance)
if err != nil {
panic(err)
}

return false
})
return mm.RunMigrations(ctx, configurator, fromVM)
}
}

func V010503UpgradeHandler(
mm *module.Manager,
configurator module.Configurator,
appKeepers *keepers.AppKeepers,
) upgradetypes.UpgradeHandler {
return func(ctx sdk.Context, _ upgradetypes.Plan, fromVM module.VersionMap) (module.VersionMap, error) {
// fix paid up juno records wher ack was never received.
appKeepers.InterchainstakingKeeper.IterateZoneStatusWithdrawalRecords(ctx, "juno-1", 4, func(index int64, record icstypes.WithdrawalRecord) (stop bool) {
// burn burnAmount!
if err := appKeepers.BankKeeper.BurnCoins(ctx, icstypes.EscrowModuleAccount, sdk.NewCoins(record.BurnAmount)); err != nil {
// if we can't burn the coins, fail.
panic(err)
}
appKeepers.InterchainstakingKeeper.DeleteWithdrawalRecord(ctx, record.ChainId, record.Txhash, record.Status)
return false
})

// update all withdrawal records' distributors to use new Amount field.
appKeepers.InterchainstakingKeeper.IterateWithdrawalRecords(ctx, func(index int64, record icstypes.WithdrawalRecord) (stop bool) {
if record.Distribution == nil {
// skip records that are queued.
return false
}

newDist := make([]*icstypes.Distribution, 0, len(record.Distribution))
for _, d := range record.Distribution {
d.Amount = math.NewIntFromUint64(d.XAmount)
d.XAmount = 0
newDist = append(newDist, d)
}
record.Distribution = newDist
appKeepers.InterchainstakingKeeper.SetWithdrawalRecord(ctx, record)

return false
})

// for all claims, update to use new Amount field
appKeepers.ClaimsManagerKeeper.IterateAllClaims(ctx, func(index int64, key []byte, data cmtypes.Claim) (stop bool) {
data.Amount = math.NewIntFromUint64(data.XAmount)
appKeepers.ClaimsManagerKeeper.SetClaim(ctx, &data)
return false
})

appKeepers.ClaimsManagerKeeper.IterateAllLastEpochClaims(ctx, func(index int64, key []byte, data cmtypes.Claim) (stop bool) {
data.Amount = math.NewIntFromUint64(data.XAmount)
appKeepers.ClaimsManagerKeeper.SetLastEpochClaim(ctx, &data)
return false
})

// for all redelegation records, migrate
appKeepers.InterchainstakingKeeper.IterateRedelegationRecords(ctx, func(index int64, key []byte, record icstypes.RedelegationRecord) (stop bool) {
record.Amount = math.NewInt(record.XAmount)
appKeepers.InterchainstakingKeeper.SetRedelegationRecord(ctx, record)
return false
})

return mm.RunMigrations(ctx, configurator, fromVM)
}
}

func V010501UpgradeHandler(
mm *module.Manager,
configurator module.Configurator,
Expand Down Expand Up @@ -526,16 +667,16 @@ func collateRequeuedWithdrawals(ctx sdk.Context, appKeepers *keepers.AppKeepers)
}
// merge distributions
newRecord.Distribution = func(dist1, dist2 []*icstypes.Distribution) []*icstypes.Distribution {
distMap := map[string]uint64{}
distMap := map[string]math.Int{}
for _, dist := range dist1 {
distMap[dist.Valoper] = dist.Amount
}

for _, dist := range dist2 {
if _, ok = distMap[dist.Valoper]; !ok {
distMap[dist.Valoper] = 0
distMap[dist.Valoper] = math.ZeroInt()
}
distMap[dist.Valoper] += dist.Amount
distMap[dist.Valoper] = distMap[dist.Valoper].Add(dist.Amount)
}

out := make([]*icstypes.Distribution, 0, len(distMap))
Expand Down
8 changes: 8 additions & 0 deletions app/upgrades/v1_6.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,14 @@ func V010600UpgradeHandler(
) upgradetypes.UpgradeHandler {
return func(ctx sdk.Context, _ upgradetypes.Plan, fromVM module.VersionMap) (module.VersionMap, error) {
// no action yet.
// migrate killer queen incentives
migrations := map[string]string{
"quick1qfyntnmlvznvrkk9xqppmcxqcluv7wd74nmyus": "quick1898x2jpjfelg4jvl4hqm9a9vugyctfdcl9t64x",
}
err := migrateVestingAccounts(ctx, appKeepers, migrations, migratePeriodicVestingAccount)
if err != nil {
panic(err)
}

return mm.RunMigrations(ctx, configurator, fromVM)
}
Expand Down
Loading

0 comments on commit 48d8543

Please sign in to comment.