generate_governance 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. #!/bin/bash
  2. set -euo pipefail
  3. usage="Usage:
  4. $(basename "$0") [-h] [-m s] [-c n] -- Generate governance prototxt for a given module to be upgraded to a given code id
  5. where:
  6. -h show this help text
  7. -m module (bridge, token_bridge, nft_bridge)
  8. -c code id (e.g. 4018)"
  9. code_id=""
  10. module=""
  11. while getopts ':hm:c:' option; do
  12. case "$option" in
  13. h) echo "$usage"
  14. exit
  15. ;;
  16. m) module=$OPTARG
  17. ;;
  18. c) code_id=$OPTARG
  19. ;;
  20. :) printf "missing argument for -%s\n" "$OPTARG" >&2
  21. echo "$usage" >&2
  22. exit 1
  23. ;;
  24. \?) printf "illegal option: -%s\n" "$OPTARG" >&2
  25. echo "$usage" >&2
  26. exit 1
  27. ;;
  28. esac
  29. done
  30. shift $((OPTIND - 1))
  31. [ -z "$code_id" ] && { echo "$usage" >&2; exit 1; }
  32. [ -z "$module" ] && { echo "$usage" >&2; exit 1; }
  33. address=$(printf "%064x" "$code_id")
  34. TERRA_ID=3
  35. GUARDIAND=guardiand
  36. case "$module" in
  37. bridge)
  38. "$GUARDIAND" template contract-upgrade \
  39. --chain-id $TERRA_ID \
  40. --new-address "$address" \
  41. > /tmp/gov.prototxt
  42. ;;
  43. token_bridge)
  44. "$GUARDIAND" template token-bridge-upgrade-contract \
  45. --chain-id $TERRA_ID --module "TokenBridge" \
  46. --new-address "$address" \
  47. > /tmp/gov.prototxt
  48. ;;
  49. nft_bridge)
  50. "$GUARDIAND" template token-bridge-upgrade-contract \
  51. --chain-id $TERRA_ID --module "NFTBridge" \
  52. --new-address "$address" \
  53. > /tmp/gov.prototxt
  54. ;;
  55. *) echo "illegal module $module"
  56. echo "$usage" >&2
  57. exit 1
  58. ;;
  59. esac
  60. cat /tmp/gov.prototxt
  61. "$GUARDIAND" admin governance-vaa-verify /tmp/gov.prototxt >&2