42 lines
1.5 KiB
Bash
Executable File
42 lines
1.5 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
if [ -z "${NUM_GUARDIANS}" ]; then
|
|
echo "Error: NUM_GUARDIANS is unset, cannot create wormchain genesis."
|
|
exit 1
|
|
fi
|
|
|
|
pwd=$(pwd)
|
|
genesis="$pwd/devnet/base/config/genesis.json"
|
|
|
|
# TODO
|
|
# create a sequence of the wormchain instances to include
|
|
# loop through the sequence, reading the data from the instance's dir
|
|
# add the genesis account to:
|
|
# app_state.auth.accounts
|
|
# app_state.bank.balances
|
|
# add the gentx
|
|
# add the guardian pubkey base64 to wormhole.guardianSetList[0].keys
|
|
# add the validator obj to wormhole.guardianValidatorList
|
|
|
|
|
|
# TEMP manually add the second validator info to genesis.json
|
|
if [ $NUM_GUARDIANS -ge 2 ]; then
|
|
echo "number of guardians is >= 2, adding second validator to genesis.json."
|
|
# the validator info for wormchain-1
|
|
guardianKey="iNfYsyqRBdIoEA5y3/4vrgcF0xw="
|
|
validatorAddr="cBxHWxmj9o0/3r8JWRSH+s7y1jY="
|
|
|
|
# add the validatorAddr to guardianSetList.keys.
|
|
# use jq to add the object to the list in genesis.json. use cat and a sub-shell to send the output of jq to the json file.
|
|
cat <<< $(jq --arg new "$guardianKey" '.app_state.wormhole.guardianSetList[0].keys += [$new]' ${genesis}) > ${genesis}
|
|
|
|
# create a guardianValidator config object and add it to the guardianValidatorList.
|
|
validatorConfig="{\"guardianKey\": \"$guardianKey\", \"validatorAddr\": \"$validatorAddr\"}"
|
|
cat <<< $(jq --argjson new "$validatorConfig" '.app_state.wormhole.guardianValidatorList += [$new]' ${genesis}) > ${genesis}
|
|
fi
|
|
|
|
|
|
|
|
echo "done with genesis, exiting."
|