wormhole/terra/generate_governance

70 lines
1.6 KiB
Bash
Executable File

#!/bin/bash
set -euo pipefail
usage="Usage:
$(basename "$0") [-h] [-m s] [-c n] -- Generate governance prototxt for a given module to be upgraded to a given code id
where:
-h show this help text
-m module (bridge, token_bridge, nft_bridge)
-c code id (e.g. 4018)"
code_id=""
module=""
while getopts ':hm:c:' option; do
case "$option" in
h) echo "$usage"
exit
;;
m) module=$OPTARG
;;
c) code_id=$OPTARG
;;
:) printf "missing argument for -%s\n" "$OPTARG" >&2
echo "$usage" >&2
exit 1
;;
\?) printf "illegal option: -%s\n" "$OPTARG" >&2
echo "$usage" >&2
exit 1
;;
esac
done
shift $((OPTIND - 1))
[ -z "$code_id" ] && { echo "$usage" >&2; exit 1; }
[ -z "$module" ] && { echo "$usage" >&2; exit 1; }
address=$(printf "%064x" "$code_id")
TERRA_ID=3
GUARDIAND=guardiand
case "$module" in
bridge)
"$GUARDIAND" template contract-upgrade \
--chain-id $TERRA_ID \
--new-address "$address" \
> /tmp/gov.prototxt
;;
token_bridge)
"$GUARDIAND" template token-bridge-upgrade-contract \
--chain-id $TERRA_ID --module "TokenBridge" \
--new-address "$address" \
> /tmp/gov.prototxt
;;
nft_bridge)
"$GUARDIAND" template token-bridge-upgrade-contract \
--chain-id $TERRA_ID --module "NFTBridge" \
--new-address "$address" \
> /tmp/gov.prototxt
;;
*) echo "illegal module $module"
echo "$usage" >&2
exit 1
;;
esac
cat /tmp/gov.prototxt
"$GUARDIAND" admin governance-vaa-verify /tmp/gov.prototxt >&2