Skip to content

Commit

Permalink
add upgrade handler
Browse files Browse the repository at this point in the history
  • Loading branch information
hoank101 committed Mar 29, 2024
1 parent 27391b5 commit d152e7e
Show file tree
Hide file tree
Showing 11 changed files with 186 additions and 17 deletions.
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -51,4 +51,5 @@ go.work.sum

_build

screenlog.0
screenlog.0
mytestnet
8 changes: 8 additions & 0 deletions .idea/.gitignore

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

9 changes: 9 additions & 0 deletions .idea/composable-cosmos.iml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions .idea/modules.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions .idea/vcs.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 2 additions & 1 deletion app/app.go
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ import (

"github.com/notional-labs/composable/v6/app/keepers"
"github.com/notional-labs/composable/v6/app/upgrades/v6_5_0"
"github.com/notional-labs/composable/v6/app/upgrades/v7_0_0"

// bankkeeper "github.com/cosmos/cosmos-sdk/x/bank/keeper"
"cosmossdk.io/x/evidence"
Expand Down Expand Up @@ -144,7 +145,7 @@ var (
// https://github.com/CosmWasm/wasmd/blob/02a54d33ff2c064f3539ae12d75d027d9c665f05/x/wasm/internal/types/proposal.go#L28-L34
EnableSpecificProposals = ""

Upgrades = []upgrades.Upgrade{v6_5_0.Upgrade}
Upgrades = []upgrades.Upgrade{v6_5_0.Upgrade, v7_0_0.Upgrade}
Forks = []upgrades.Fork{}
)

Expand Down
16 changes: 8 additions & 8 deletions app/upgrades/v6_5_0/upgrade.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,14 +27,14 @@ func CreateUpgradeHandler(
keepers.IbcTransferMiddlewareKeeper.SetParams(sdkctx, custommiddlewareparams.Params)

// remove broken proposals
BrokenProposals := [3]uint64{2, 6, 11}
for _, proposal_id := range BrokenProposals {
_, err := keepers.GovKeeper.Proposals.Get(sdkctx, proposal_id)
if err != nil {
keepers.GovKeeper.DeleteProposal(sdkctx, proposal_id)
}

}
//BrokenProposals := [3]uint64{2, 6, 11}
//for _, proposal_id := range BrokenProposals {
// _, err := keepers.GovKeeper.Proposals.Get(sdkctx, proposal_id)
// if err != nil {
// keepers.GovKeeper.DeleteProposal(sdkctx, proposal_id)
// }
//
//}

// burn extra ppica in escrow account
// this ppica is unused because it is a native token stored in escrow account
Expand Down
20 changes: 20 additions & 0 deletions app/upgrades/v7_0_0/constants.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package v7_0_0

import (
store "cosmossdk.io/store/types"
"github.com/notional-labs/composable/v6/app/upgrades"
)

const (
// UpgradeName defines the on-chain upgrade name for the composable upgrade.
UpgradeName = "v7_0_0"
)

var Upgrade = upgrades.Upgrade{
UpgradeName: UpgradeName,
CreateUpgradeHandler: CreateUpgradeHandler,
StoreUpgrades: store.StoreUpgrades{
Added: []string{},
Deleted: []string{"alliance"},
},
}
24 changes: 24 additions & 0 deletions app/upgrades/v7_0_0/upgrade.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package v7_0_0

import (
"context"

upgradetypes "cosmossdk.io/x/upgrade/types"
"github.com/cosmos/cosmos-sdk/types/module"

"github.com/cosmos/cosmos-sdk/codec"
"github.com/notional-labs/composable/v6/app/keepers"
"github.com/notional-labs/composable/v6/app/upgrades"
)

func CreateUpgradeHandler(
mm *module.Manager,
configurator module.Configurator,
_ upgrades.BaseAppParamManager,
_ codec.Codec,
keepers *keepers.AppKeepers,
) upgradetypes.UpgradeHandler {
return func(ctx context.Context, plan upgradetypes.Plan, vm module.VersionMap) (module.VersionMap, error) {
return mm.RunMigrations(ctx, configurator, vm)
}
}
92 changes: 92 additions & 0 deletions scripts/localnode.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
#!/bin/bash

echo "starting localnode"

BINARY=$1
CONTINUE=${CONTINUE:-"false"}
HOME_DIR=mytestnet
ENV=${ENV:-""}

if [ "$CONTINUE" == "true" ]; then
echo "\n ->> continuing from previous state"
$BINARY start --home $HOME_DIR --log_level debug
exit 0
fi

rm -rf mytestnet
pkill centaurid

# check DENOM is set. If not, set to upica
DENOM=${2:-upica}
echo "denom: $DENOM"
COMMISSION_RATE=0.01
COMMISSION_MAX_RATE=0.02

SED_BINARY=sed
# check if this is OS X
if [[ "$OSTYPE" == "darwin"* ]]; then
# check if gsed is installed
if ! command -v gsed &> /dev/null
then
echo "gsed could not be found. Please install it with 'brew install gnu-sed'"
exit
else
SED_BINARY=gsed
fi
fi

# check BINARY is set. If not, build centaurid and set BINARY
if [ -z "$BINARY" ]; then
make build
BINARY=build/centaurid
fi

CHAIN_ID="localpica"
KEYRING="test"
KEY="test0"
KEY1="test1"
KEY2="test2"

# Function updates the config based on a jq argument as a string
update_test_genesis () {
# update_test_genesis '.consensus_params["block"]["max_gas"]="100000000"'
cat $HOME_DIR/config/genesis.json | jq "$1" > $HOME_DIR/config/tmp_genesis.json && mv $HOME_DIR/config/tmp_genesis.json $HOME_DIR/config/genesis.json
}

$BINARY init --chain-id $CHAIN_ID moniker --home $HOME_DIR

$BINARY keys add $KEY --keyring-backend $KEYRING --home $HOME_DIR
$BINARY keys add $KEY1 --keyring-backend $KEYRING --home $HOME_DIR
$BINARY keys add $KEY2 --keyring-backend $KEYRING --home $HOME_DIR

# Allocate genesis accounts (cosmos formatted addresses)
$BINARY add-genesis-account $KEY "1000000000000000000000${DENOM}" --keyring-backend $KEYRING --home $HOME_DIR
$BINARY add-genesis-account $KEY1 "1000000000000000000000${DENOM}" --keyring-backend $KEYRING --home $HOME_DIR
$BINARY add-genesis-account $KEY2 "1000000000000000000000${DENOM}" --keyring-backend $KEYRING --home $HOME_DIR

update_test_genesis '.app_state["gov"]["params"]["voting_period"]="5s"'
update_test_genesis '.app_state["mint"]["params"]["mint_denom"]="'$DENOM'"'
update_test_genesis '.app_state["gov"]["params"]["min_deposit"]=[{"denom":"'$DENOM'","amount": "1000000"}]'
update_test_genesis '.app_state["crisis"]["constant_fee"]={"denom":"'$DENOM'","amount":"1000"}'
update_test_genesis '.app_state["staking"]["params"]["bond_denom"]="'$DENOM'"'

# enable rest server and swagger
$SED_BINARY -i '0,/enable = false/s//enable = true/' $HOME_DIR/config/app.toml
$SED_BINARY -i 's/swagger = false/swagger = true/' $HOME_DIR/config/app.toml
$SED_BINARY -i -e 's/enabled-unsafe-cors = false/enabled-unsafe-cors = true/g' $HOME_DIR/config/app.toml
$SED_BINARY -i 's/minimum-gas-prices = "0.25upica"/minimum-gas-prices = "0.0upica"/' $HOME_DIR/config/app.toml

## Adjust block time
$SED_BINARY -i 's/timeout_commit = "5s"/timeout_commit = "500ms"/' $HOME_DIR/config/config.toml



# Sign genesis transaction
$BINARY gentx $KEY "1000000000000000000000${DENOM}" --commission-rate=$COMMISSION_RATE --commission-max-rate=$COMMISSION_MAX_RATE --keyring-backend $KEYRING --chain-id $CHAIN_ID --home $HOME_DIR

# Collect genesis tx
$BINARY collect-gentxs --home $HOME_DIR

# Run this to ensure everything worked and that the genesis file is setup correctly
$BINARY validate-genesis --home $HOME_DIR
$BINARY start --home $HOME_DIR
14 changes: 7 additions & 7 deletions scripts/test-upgrade.sh
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ if [ $# -eq 1 ] && [ $1 == "--reinstall-old" ] || ! command -v _build/old/centau
fi

# install new binary
if ! command -v _build/new/picad &> /dev/null
if ! command -v _build/new/centaurid &> /dev/null
then
mkdir -p _build/new
GOBIN="$ROOT/_build/new" go install -mod=readonly ./...
Expand Down Expand Up @@ -96,12 +96,12 @@ run_upgrade () {
UPGRADE_HEIGHT=$((STATUS_INFO[1] + 20))
echo "UPGRADE_HEIGHT = $UPGRADE_HEIGHT"

tar -cf ./_build/new/picad.tar -C ./_build/new picad
SUM=$(shasum -a 256 ./_build/new/picad.tar | cut -d ' ' -f1)
tar -cf ./_build/new/centaurid.tar -C ./_build/new centaurid
SUM=$(shasum -a 256 ./_build/new/centaurid.tar | cut -d ' ' -f1)
UPGRADE_INFO=$(jq -n '
{
"binaries": {
"linux/amd64": "file://'$(pwd)'/_build/new/picad.tar?checksum=sha256:'"$SUM"'",
"linux/amd64": "file://'$(pwd)'/_build/new/centaurid.tar?checksum=sha256:'"$SUM"'",
}
}')

Expand Down Expand Up @@ -151,9 +151,9 @@ sleep 1
# run new node
echo -e "\n\n=> =>continue running nodes after upgrade"
if [[ "$OSTYPE" == "darwin"* ]]; then
CONTINUE="true" screen -L -dmS picad bash scripts/localnode.sh _build/new/picad $DENOM
CONTINUE="true" screen -L -dmS centaurid bash scripts/localnode.sh _build/new/centaurid $DENOM
else
CONTINUE="true" screen -L -dmS picad bash scripts/localnode.sh _build/new/picad $DENOM
CONTINUE="true" screen -L -dmS centaurid bash scripts/localnode.sh _build/new/centaurid $DENOM
fi

sleep 5
Expand All @@ -167,7 +167,7 @@ if [ ! -z "$ADDITIONAL_AFTER_SCRIPTS" ]; then
# check if SCRIPT is a file
if [ -f "$SCRIPT" ]; then
echo "executing additional after scripts from $SCRIPT"
source $SCRIPT _build/new/picad
source $SCRIPT _build/new/centaurid
sleep 5
else
echo "$SCRIPT is not a file"
Expand Down

0 comments on commit d152e7e

Please sign in to comment.