#!/bin/bash if [[ -n "$CERC_SCRIPT_DEBUG" ]]; then set -x fi set -e TMKMS_HOME=/root/tmkms INPUT_PRIV_KEY_FILE=$TMKMS_HOME/tmp/priv_validator_key.json TMKMS_SECRETS_DIR=$TMKMS_HOME/secrets TMKMS_STATE_DIR=$TMKMS_HOME/state # Check if priv_validator_key in SECRETS_DIR exists if [[ ! -f "$TMKMS_SECRETS_DIR/priv_validator_key" ]]; then # Initialize tmkms config echo "Initializing tmkms configuration..." tmkms init $TMKMS_HOME # Import the private validator key into tmkms echo "Importing private validator key into tmkms..." tmkms softsign import $INPUT_PRIV_KEY_FILE $TMKMS_SECRETS_DIR/priv_validator_key # Remove the original private validator key rm -rf $INPUT_PRIV_KEY_FILE else echo "tmkms configuration already exists. Skipping initialization and cleaning up any existing input private validator key files..." # Remove the original private validator key as it is not needed if [[ -f "$INPUT_PRIV_KEY_FILE" ]]; then rm -rf $INPUT_PRIV_KEY_FILE fi fi # Update tmkms.toml echo "Updating tmkms.toml with chain_id, node IP, and key prefixes..." # Add chain configuration cat < $TMKMS_HOME/tmkms.toml [[chain]] id = "$CHAIN_ID" key_format = { type = "cosmos-json", account_key_prefix = "${KEY_PREFIX}pub", consensus_key_prefix = "${KEY_PREFIX}valconspub" } state_file = "$TMKMS_STATE_DIR/priv_validator_state.json" [[validator]] chain_id = "$CHAIN_ID" addr = "tcp://$NODE_IP:$NODE_PORT" secret_key = "$TMKMS_SECRETS_DIR/kms-identity.key" protocol_version = "v0.34" reconnect = true [[providers.softsign]] key_type = "consensus" path = "$TMKMS_SECRETS_DIR/priv_validator_key" chain_ids = ["$CHAIN_ID"] EOF echo "Starting tmkms..." tmkms start --config $TMKMS_HOME/tmkms.toml