|
| 1 | +#!/usr/bin/env bash |
| 2 | +# shellcheck disable=SC2031 |
| 3 | +set -euo pipefail |
| 4 | + |
| 5 | +[ -n "${DEBUG:-}" ] && set -x |
| 6 | +[ -z "${ENV:-}" ] && { echo "ENV var must be set"; exit 1; } |
| 7 | + |
| 8 | +[ -z "${ANCHOR_URL:-}" ] && { echo "ANCHOR_URL var must be set and should point to an ipfs://\$CIDv1 address"; exit 1; } |
| 9 | +[ -z "${DREP_INDEX:-}" ] && { echo "DREP_INDEX var must be set"; exit 1; } |
| 10 | +[ -z "${TESTNET_MAGIC:-}" ] && { echo "TESTNET_MAGIC var must be set"; exit 1; } |
| 11 | +[ -z "${THRESHOLD:-}" ] && { echo "THRESHOLD var must be set and most likely should remain the same as the existing threshold"; exit 1; } |
| 12 | + |
| 13 | +export IPFS_GATEWAY_URI="https://ipfs.io" |
| 14 | + |
| 15 | +SCRIPT_PATH=$(readlink -f "$0") |
| 16 | +SCRIPT_DIR=$(dirname "$SCRIPT_PATH") |
| 17 | + |
| 18 | +# shellcheck disable=SC1091 |
| 19 | +source "$SCRIPT_DIR/../bash-fns.sh" |
| 20 | + |
| 21 | +PP=$(cardano-cli query protocol-parameters) |
| 22 | +ANCHOR_HASH=$(cardano-cli hash anchor-data --url "$ANCHOR_URL") |
| 23 | +CURRENT_EPOCH=$(cardano-cli query tip | jq .epoch) |
| 24 | +DREP_DEPOSIT=$(jq -r '.dRepDeposit' <<< "$PP") |
| 25 | +GOV_ACTION_DEPOSIT=$(jq -r '.govActionDeposit' <<< "$PP") |
| 26 | +PREV_GOV_ACTION=$(cardano-cli latest query gov-state | jq -r '.nextRatifyState.nextEnactState.prevGovActionIds.Committee') |
| 27 | +PREV_GOV_ACTION_TX_ID=$(jq '.txId' <<< "$PREV_GOV_ACTION") |
| 28 | +PREV_GOV_ACTION_INDEX=$(jq '.govActionIx' <<< "$PREV_GOV_ACTION") |
| 29 | +echo "Current epoch on $ENV is: $CURRENT_EPOCH" |
| 30 | +echo "Drep deposit is: $DREP_DEPOSIT" |
| 31 | +echo "Governance action deposit is: $GOV_ACTION_DEPOSIT" |
| 32 | + |
| 33 | +# Create a governance update action and submit it. |
| 34 | +PROPOSAL_ARGS=( |
| 35 | + "--prev-governance-action-tx-id" "$PREV_GOV_ACTION_TX_ID" |
| 36 | + "--prev-governance-action-index" "$PREV_GOV_ACTION_INDEX" |
| 37 | + "--check-anchor-data" |
| 38 | + "--threshold" "$THRESHOLD" |
| 39 | + "--remove-cc-cold-verification-key-hash" "$(just sops-decrypt-binary "$SCRIPT_DIR/../../secrets/envs/$ENV/cc-keys/cc4/init-cold/credential.plutus.hash")" |
| 40 | + "--remove-cc-cold-verification-key-hash" "$(just sops-decrypt-binary "$SCRIPT_DIR/../../secrets/envs/$ENV/cc-keys/cc5/init-cold/credential.plutus.hash")" |
| 41 | + "--remove-cc-cold-verification-key-hash" "$(just sops-decrypt-binary "$SCRIPT_DIR/../../secrets/envs/$ENV/cc-keys/cc6/init-cold/credential.plutus.hash")" |
| 42 | + "--remove-cc-cold-verification-key-hash" "$(just sops-decrypt-binary "$SCRIPT_DIR/../../secrets/envs/$ENV/cc-keys/cc7/init-cold/credential.plutus.hash")" |
| 43 | + "--remove-cc-cold-verification-key-hash" "$(just sops-decrypt-binary "$SCRIPT_DIR/../../secrets/envs/$ENV/icc-keys/init-cold/credential.plutus.hash")" |
| 44 | +) |
| 45 | + |
| 46 | +ACTION="update-committee" \ |
| 47 | + DREP_DIR="$SCRIPT_DIR/../../secrets/envs/$ENV/drep" \ |
| 48 | + GOV_ACTION_DEPOSIT="$GOV_ACTION_DEPOSIT" \ |
| 49 | + PAYMENT_KEY="$SCRIPT_DIR/../../secrets/envs/$ENV/utxo-keys/rich-utxo" \ |
| 50 | + PROPOSAL_HASH="$ANCHOR_HASH" \ |
| 51 | + PROPOSAL_URL="$ANCHOR_URL" \ |
| 52 | + STAKE_KEY="$SCRIPT_DIR/../../secrets/envs/$ENV/drep/stake-$DREP_INDEX" \ |
| 53 | + SUBMIT_TX="false" \ |
| 54 | + USE_DECRYPTION="true" \ |
| 55 | + USE_ENCRYPTION="false" \ |
| 56 | + nix run .#job-submit-gov-action -- "${PROPOSAL_ARGS[@]}" |
0 commit comments