github.com/Finschia/finschia-sdk@v0.48.1/tools/cosmovisor/upgrade.sh (about)

     1  #!/bin/sh
     2  
     3  set -e
     4  
     5  [ -n "$DAEMON_HOME" ]
     6  [ -d $DAEMON_HOME ]
     7  [ -n "$DAEMON_NAME" ]
     8  [ -x $(which $DAEMON_NAME) ]
     9  
    10  [ -n "$CHAIN_ID" ]
    11  
    12  UPGRADE_HEIGHT=5
    13  
    14  assert_begin() {
    15  	info=$($DAEMON_NAME q block --log_level info 2>/dev/null)
    16  	if [ -z "$info" ]
    17  	then
    18  		return 1
    19  	fi
    20  
    21  	height=$(echo "$info" | jq -r '.block.header.height')
    22  	if [ "$height" -ge 0 ] 2>/dev/null
    23  	then
    24  		return 0
    25  	else
    26  		return 1
    27  	fi
    28  }
    29  
    30  wait_for_begin() {
    31  	while ! assert_begin
    32  	do
    33  		sleep 1
    34  	done
    35  }
    36  
    37  keyring_backend=test
    38  
    39  new_binary=$(realpath ./dummyd)
    40  prepare_upgrade() {
    41  	name=$1
    42  	bindir=$DAEMON_HOME/cosmovisor/upgrades/$name/bin
    43  	mkdir -p $bindir
    44  	cp $new_binary $bindir/$DAEMON_NAME
    45  }
    46  
    47  submit_upgrade() {
    48  	name=$1
    49  	checksum=sha256:$(sha256sum $new_binary | awk '{print $1}')
    50  	info='{"binaries":{"any":"file://'$new_binary'?checksum='$checksum'"}}'
    51  	$DAEMON_NAME --home $DAEMON_HOME tx --keyring-backend $keyring_backend gov submit-proposal software-upgrade $name --upgrade-height $UPGRADE_HEIGHT --upgrade-info $info --title upgrade --description "test upgrade" --deposit 1stake --broadcast-mode block --from validator0 --chain-id $CHAIN_ID --yes
    52  }
    53  
    54  vote() {
    55  	proposal=$1
    56  	$DAEMON_NAME --home $DAEMON_HOME tx --keyring-backend $keyring_backend gov vote $proposal VOTE_OPTION_YES --broadcast-mode sync --from validator0 --chain-id $CHAIN_ID --yes
    57  }
    58  
    59  wait_for_begin
    60  
    61  if [ "$DAEMON_ALLOW_DOWNLOAD_BINARIES" != true ]
    62  then
    63  	prepare_upgrade testing
    64  fi
    65  submit_upgrade testing
    66  vote 1