#!/usr/bin/env bash set -e if [ "$#" -ne 1 ]; then echo "Please provide the number of initial validators!" exit 1 fi generate_account_id() { subkey inspect ${3:-} ${4:-} "$SECRET//$1//$2" | grep "Account ID" | awk '{ print $3 }' } generate_address() { subkey inspect ${3:-} ${4:-} "$SECRET//$1//$2" | grep "SS58 Address" | awk '{ print $3 }' } generate_public_key() { subkey inspect ${3:-} ${4:-} "$SECRET//$1//$2" | grep "Public key (hex)" | awk '{ print $4 }' } generate_address_and_public_key() { ADDRESS=$(generate_address $1 $2 $3) PUBLIC_KEY=$(generate_public_key $1 $2 $3) printf "//$ADDRESS\nhex![\"${PUBLIC_KEY#'0x'}\"].unchecked_into()," } generate_address_and_account_id() { ACCOUNT=$(generate_account_id $1 $2 $3) ADDRESS=$(generate_address $1 $2 $3) if ${4:-false}; then INTO="unchecked_into" else INTO="into" fi printf "//$ADDRESS\nhex![\"${ACCOUNT#'0x'}\"].$INTO()," } V_NUM=$1 AUTHORITIES="" for i in $(seq 1 $V_NUM); do AUTHORITIES+="(\n" AUTHORITIES+="$(generate_address_and_account_id $i stash)\n" AUTHORITIES+="$(generate_address_and_account_id $i controller)\n" AUTHORITIES+="$(generate_address_and_account_id $i babe '--scheme sr25519' true)\n" AUTHORITIES+="$(generate_address_and_account_id $i grandpa '--scheme ed25519' true)\n" AUTHORITIES+="$(generate_address_and_account_id $i im_online '--scheme sr25519' true)\n" AUTHORITIES+="$(generate_address_and_account_id $i para_validator '--scheme sr25519' true)\n" AUTHORITIES+="$(generate_address_and_account_id $i para_assignment '--scheme sr25519' true)\n" AUTHORITIES+="$(generate_address_and_account_id $i authority_discovery '--scheme sr25519' true)\n" AUTHORITIES+="$(generate_address_and_public_key $i beefy '--scheme ecdsa' true)\n" AUTHORITIES+="),\n" done printf "$AUTHORITIES"