laconicd-stack/stack-orchestrator/config/mainnet-laconicd/create-validator.sh
shreerang edee217050 Divide generate genesis and create validator playbooks into build and start playbooks (#13)
Part of https://www.notion.so/Create-stacks-for-mainnet-1f2a6b22d4728034be4be2c51decf94e

Co-authored-by: Shreerang Kale <shreerangkale@gmail.com>
Reviewed-on: #13
Co-authored-by: shreerang <shreerang@noreply.git.vdb.to>
Co-committed-by: shreerang <shreerang@noreply.git.vdb.to>
2025-06-10 10:07:15 +00:00

69 lines
1.6 KiB
Bash
Executable File

#!/bin/bash
set -e
DENOM=alnt
CREATE_VALIDATOR_DIR=/root/create-validator
KEYRING="test"
staking_amount_file="$CREATE_VALIDATOR_DIR/tmp/staking-amount.json"
if [ ! -f "$staking_amount_file" ]; then
echo "staking-amount.json file not provided, exiting..."
exit 1
fi
if [ -z "$KEY_NAME" ]; then
echo "KEY_NAME environment variable not set, exiting..."
exit 1
fi
if [ -z "$CERC_MONIKER" ]; then
echo "CERC_MONIKER environment variable not set, exiting..."
exit 1
fi
if [ -z "$NODE_URL" ]; then
echo "NODE_URL environment variable not set, exiting..."
exit 1
fi
if [ -z "$VALIDATOR_PUB_KEY" ]; then
echo "VALIDATOR_PUB_KEY environment variable not set, exiting..."
exit 1
fi
if [ -z "$PVT_KEY" ]; then
echo "PVT_KEY environment variable not set, exiting..."
exit 1
fi
laconicd keys import-hex "$KEY_NAME" "$PVT_KEY" --keyring-backend test
# Set staking amount
stake_amount=$(jq -r '.common_staking_amount' "$staking_amount_file")
# Create validator.json file
validator_json="$CREATE_VALIDATOR_DIR/tmp/validator.json"
cat > "$validator_json" << EOF
{
"pubkey": $VALIDATOR_PUB_KEY,
"amount": "${stake_amount}${DENOM}",
"moniker": "${CERC_MONIKER}",
"commission-rate": "0.0",
"commission-max-rate": "0.0",
"commission-max-change-rate": "0.0",
"min-self-delegation": "1"
}
EOF
# Create validator using the JSON file
laconicd tx staking create-validator "$validator_json" \
--chain-id "$CERC_CHAIN_ID" \
--gas auto \
--gas-adjustment 1.5 \
--gas-prices $MIN_GAS_PRICE$DENOM \
--from $KEY_NAME \
--keyring-backend $KEYRING \
--node $NODE_URL \
--yes