|
| 1 | +#!/bin/bash |
| 2 | + |
| 3 | +set -eux |
| 4 | + |
| 5 | +DENOM="${DENOM:=uusdc}" |
| 6 | +COINS="${COINS:=100000000000000uusdc,100000000000000ustake}" |
| 7 | +CHAIN_ID="${CHAIN_ID:=noblelocal}" |
| 8 | +CHAIN_BIN="${CHAIN_BIN:=nobled}" |
| 9 | +CHAIN_DIR="${CHAIN_DIR:=$HOME/.nobled}" |
| 10 | +KEYS_CONFIG="${KEYS_CONFIG:=configs/keys.json}" |
| 11 | + |
| 12 | +FAUCET_ENABLED="${FAUCET_ENABLED:=true}" |
| 13 | +NUM_VALIDATORS="${NUM_VALIDATORS:=1}" |
| 14 | +NUM_RELAYERS="${NUM_RELAYERS:=0}" |
| 15 | + |
| 16 | +# FiatTokenFactory roles |
| 17 | +FIATTF_OWNER_KEY="fiattf_owner" |
| 18 | +FIATTF_OWNER_MNEMONIC="gesture inject test cycle original hollow east ridge hen combine junk child bacon zero hope comfort vacuum milk pitch cage oppose unhappy lunar seat" |
| 19 | + |
| 20 | +FIATTF_MASTER_MINTER_KEY="fiattf_master_minter" |
| 21 | +FIATTF_MASTER_MINTER_MNEMONIC="maximum display century economy unlock van census kite error heart snow filter midnight usage egg venture cash kick motor survey drastic edge muffin visual" |
| 22 | + |
| 23 | +FIATTF_MINTER_CONTROLLER_KEY="fiattf_minter_controller" |
| 24 | +FIATTF_MINTER_CONTROLLER_MNEMONIC="keep liar demand upon shed essence tip undo eagle run people strong sense another salute double peasant egg royal hair report winner student diamond" |
| 25 | + |
| 26 | +FIATTF_MINTER_CONTROLLER2_KEY="fiattf_minter_controller2" |
| 27 | +FIATTF_MINTER_CONTROLLER2_MNEMONIC="morning person bachelor illegal inner note learn problem cement river half sentence junk evidence mercy intact step nasty cotton elite real unveil business drum" |
| 28 | + |
| 29 | +FIATTF_MINTER_KEY="fiattf_minter" |
| 30 | +FIATTF_MINTER_MNEMONIC="shed spike wish soda inside awake satoshi fish length whisper garlic sketch diary trumpet tree nose stove tobacco vague target announce brave alley priority" |
| 31 | + |
| 32 | +FIATTF_BLACKLISTER_KEY="fiattf_blacklister" |
| 33 | +FIATTF_BLACKLISTER_MNEMONIC="planet reunion diet obscure curious swim suit kitchen fiscal creek jeans doll disorder color gown sweet have search repair exhaust clap assault dwarf design" |
| 34 | + |
| 35 | +FIATTF_PAUSER_KEY="fiattf_pauser" |
| 36 | +FIATTF_PAUSER_MNEMONIC="guilt juice tone exhibit vault stairs mesh often expect face search quality paddle broccoli hundred another elder range horror beef session found loop mobile" |
| 37 | + |
| 38 | +# TokenFactory roles |
| 39 | +TF_OWNER_KEY="tf_owner" |
| 40 | +TF_OWNER_MNEMONIC="poverty pride inject trumpet candy quiz mixed junk cricket food include involve uphold gasp wish gas save occur genius shoe slight occur sudden cute" |
| 41 | + |
| 42 | +TF_MASTER_MINTER_KEY="tf_master_minter" |
| 43 | +TF_MASTER_MINTER_MNEMONIC="belt cream catalog absurd hen toast ethics summer addict kick hood february spatial inmate cycle business double keep gravity private nose obvious phrase birth" |
| 44 | + |
| 45 | +TF_MINTER_CONTROLLER_KEY="tf_minter_controller" |
| 46 | +TF_MINTER_CONTROLLER_MNEMONIC="spider silk peasant tobacco cactus range draft merry fashion trick modify scale width omit admit face off property enact upper drink obvious off used" |
| 47 | + |
| 48 | +TF_MINTER_CONTROLLER2_KEY="tf_minter_controller2" |
| 49 | +TF_MINTER_CONTROLLER2_MNEMONIC="swear blossom hybrid write crash seven then ship brush market moral renew plug oval focus stairs brisk inner blue main barely broken burden fancy" |
| 50 | + |
| 51 | +TF_MINTER_KEY="tf_minter" |
| 52 | +TF_MINTER_MNEMONIC="muffin clog joy echo hello size reform mention patient pumpkin enough inside danger talk wire home doctor bone ensure bind arrest dizzy magnet arrest" |
| 53 | + |
| 54 | +TF_BLACKLISTER_KEY="tf_blacklister" |
| 55 | +TF_BLACKLISTER_MNEMONIC="gravity domain nothing stomach cousin print rally door bone ghost tuition opera witness paper color oak mistake toward current coach industry thought acid breeze" |
| 56 | + |
| 57 | +TF_PAUSER_KEY="tf_pauser" |
| 58 | +TF_PAUSER_MNEMONIC="sniff tail rotate pelican snap spawn champion thought recycle body caution grain brass armed hawk goat champion sunset soul answer panel present open room" |
| 59 | + |
| 60 | +# check if the binary has genesis subcommand or not, if not, set CHAIN_GENESIS_CMD to empty |
| 61 | +CHAIN_GENESIS_CMD=$($CHAIN_BIN 2>&1 | grep -q "genesis-related subcommands" && echo "genesis" || echo "") |
| 62 | + |
| 63 | +CHAIN_INIT_ID="$CHAIN_ID" |
| 64 | +if [ "$CHAIN_BIN" == "osmosisd" ]; then |
| 65 | + CHAIN_INIT_ID="test-1" |
| 66 | +fi |
| 67 | +jq -r ".genesis[0].mnemonic" $KEYS_CONFIG | $CHAIN_BIN init $CHAIN_ID --chain-id $CHAIN_INIT_ID --recover |
| 68 | +sed -i -e "s/$CHAIN_INIT_ID/$CHAIN_ID/g" $CHAIN_DIR/config/genesis.json |
| 69 | + |
| 70 | +# Add genesis keys to the keyring and self delegate initial coins |
| 71 | +echo "Adding key...." $(jq -r ".genesis[0].name" $KEYS_CONFIG) |
| 72 | +jq -r ".genesis[0].mnemonic" $KEYS_CONFIG | $CHAIN_BIN keys add $(jq -r ".genesis[0].name" $KEYS_CONFIG) --recover --keyring-backend="test" |
| 73 | +$CHAIN_BIN $CHAIN_GENESIS_CMD add-genesis-account $($CHAIN_BIN keys show -a $(jq -r .genesis[0].name $KEYS_CONFIG) --keyring-backend="test") $COINS --keyring-backend="test" |
| 74 | + |
| 75 | +# Add faucet key to the keyring and self delegate initial coins |
| 76 | +echo "Adding key...." $(jq -r ".faucet[0].name" $KEYS_CONFIG) |
| 77 | +jq -r ".faucet[0].mnemonic" $KEYS_CONFIG | $CHAIN_BIN keys add $(jq -r ".faucet[0].name" $KEYS_CONFIG) --recover --keyring-backend="test" |
| 78 | +$CHAIN_BIN $CHAIN_GENESIS_CMD add-genesis-account $($CHAIN_BIN keys show -a $(jq -r .faucet[0].name $KEYS_CONFIG) --keyring-backend="test") $COINS --keyring-backend="test" |
| 79 | + |
| 80 | +# Add test keys to the keyring and self delegate initial coins |
| 81 | +echo "Adding key...." $(jq -r ".keys[0].name" $KEYS_CONFIG) |
| 82 | +jq -r ".keys[0].mnemonic" $KEYS_CONFIG | $CHAIN_BIN keys add $(jq -r ".keys[0].name" $KEYS_CONFIG) --recover --keyring-backend="test" |
| 83 | +$CHAIN_BIN $CHAIN_GENESIS_CMD add-genesis-account $($CHAIN_BIN keys show -a $(jq -r .keys[0].name $KEYS_CONFIG) --keyring-backend="test") $COINS --keyring-backend="test" |
| 84 | + |
| 85 | +# Add FiatTokenFactory role keys |
| 86 | +echo "Adding FiatTokenFactory role keys..." |
| 87 | +echo "$FIATTF_OWNER_MNEMONIC" | $CHAIN_BIN keys add $FIATTF_OWNER_KEY --recover --keyring-backend="test" |
| 88 | +echo "$FIATTF_MASTER_MINTER_MNEMONIC" | $CHAIN_BIN keys add $FIATTF_MASTER_MINTER_KEY --recover --keyring-backend="test" |
| 89 | +echo "$FIATTF_MINTER_CONTROLLER_MNEMONIC" | $CHAIN_BIN keys add $FIATTF_MINTER_CONTROLLER_KEY --recover --keyring-backend="test" |
| 90 | +echo "$FIATTF_MINTER_CONTROLLER2_MNEMONIC" | $CHAIN_BIN keys add $FIATTF_MINTER_CONTROLLER2_KEY --recover --keyring-backend="test" |
| 91 | +echo "$FIATTF_MINTER_MNEMONIC" | $CHAIN_BIN keys add $FIATTF_MINTER_KEY --recover --keyring-backend="test" |
| 92 | +echo "$FIATTF_BLACKLISTER_MNEMONIC" | $CHAIN_BIN keys add $FIATTF_BLACKLISTER_KEY --recover --keyring-backend="test" |
| 93 | +echo "$FIATTF_PAUSER_MNEMONIC" | $CHAIN_BIN keys add $FIATTF_PAUSER_KEY --recover --keyring-backend="test" |
| 94 | + |
| 95 | +# Add TokenFactory role keys |
| 96 | +echo "Adding TokenFactory role keys..." |
| 97 | +echo "$TF_OWNER_MNEMONIC" | $CHAIN_BIN keys add $TF_OWNER_KEY --recover --keyring-backend="test" |
| 98 | +echo "$TF_MASTER_MINTER_MNEMONIC" | $CHAIN_BIN keys add $TF_MASTER_MINTER_KEY --recover --keyring-backend="test" |
| 99 | +echo "$TF_MINTER_CONTROLLER_MNEMONIC" | $CHAIN_BIN keys add $TF_MINTER_CONTROLLER_KEY --recover --keyring-backend="test" |
| 100 | +echo "$TF_MINTER_CONTROLLER2_MNEMONIC" | $CHAIN_BIN keys add $TF_MINTER_CONTROLLER2_KEY --recover --keyring-backend="test" |
| 101 | +echo "$TF_MINTER_MNEMONIC" | $CHAIN_BIN keys add $TF_MINTER_KEY --recover --keyring-backend="test" |
| 102 | +echo "$TF_BLACKLISTER_MNEMONIC" | $CHAIN_BIN keys add $TF_BLACKLISTER_KEY --recover --keyring-backend="test" |
| 103 | +echo "$TF_PAUSER_MNEMONIC" | $CHAIN_BIN keys add $TF_PAUSER_KEY --recover --keyring-backend="test" |
| 104 | + |
| 105 | +# Add genesis accounts for FiatTokenFactory roles |
| 106 | +$CHAIN_BIN $CHAIN_GENESIS_CMD add-genesis-account $($CHAIN_BIN keys show -a $FIATTF_OWNER_KEY --keyring-backend="test") $COINS --keyring-backend="test" |
| 107 | +$CHAIN_BIN $CHAIN_GENESIS_CMD add-genesis-account $($CHAIN_BIN keys show -a $FIATTF_MASTER_MINTER_KEY --keyring-backend="test") $COINS --keyring-backend="test" |
| 108 | +$CHAIN_BIN $CHAIN_GENESIS_CMD add-genesis-account $($CHAIN_BIN keys show -a $FIATTF_MINTER_CONTROLLER_KEY --keyring-backend="test") $COINS --keyring-backend="test" |
| 109 | +$CHAIN_BIN $CHAIN_GENESIS_CMD add-genesis-account $($CHAIN_BIN keys show -a $FIATTF_MINTER_CONTROLLER2_KEY --keyring-backend="test") $COINS --keyring-backend="test" |
| 110 | +$CHAIN_BIN $CHAIN_GENESIS_CMD add-genesis-account $($CHAIN_BIN keys show -a $FIATTF_MINTER_KEY --keyring-backend="test") $COINS --keyring-backend="test" |
| 111 | +$CHAIN_BIN $CHAIN_GENESIS_CMD add-genesis-account $($CHAIN_BIN keys show -a $FIATTF_BLACKLISTER_KEY --keyring-backend="test") $COINS --keyring-backend="test" |
| 112 | +$CHAIN_BIN $CHAIN_GENESIS_CMD add-genesis-account $($CHAIN_BIN keys show -a $FIATTF_PAUSER_KEY --keyring-backend="test") $COINS --keyring-backend="test" |
| 113 | + |
| 114 | +# Add genesis accounts for TokenFactory roles |
| 115 | +$CHAIN_BIN $CHAIN_GENESIS_CMD add-genesis-account $($CHAIN_BIN keys show -a $TF_OWNER_KEY --keyring-backend="test") $COINS --keyring-backend="test" |
| 116 | +$CHAIN_BIN $CHAIN_GENESIS_CMD add-genesis-account $($CHAIN_BIN keys show -a $TF_MASTER_MINTER_KEY --keyring-backend="test") $COINS --keyring-backend="test" |
| 117 | +$CHAIN_BIN $CHAIN_GENESIS_CMD add-genesis-account $($CHAIN_BIN keys show -a $TF_MINTER_CONTROLLER_KEY --keyring-backend="test") $COINS --keyring-backend="test" |
| 118 | +$CHAIN_BIN $CHAIN_GENESIS_CMD add-genesis-account $($CHAIN_BIN keys show -a $TF_MINTER_CONTROLLER2_KEY --keyring-backend="test") $COINS --keyring-backend="test" |
| 119 | +$CHAIN_BIN $CHAIN_GENESIS_CMD add-genesis-account $($CHAIN_BIN keys show -a $TF_MINTER_KEY --keyring-backend="test") $COINS --keyring-backend="test" |
| 120 | +$CHAIN_BIN $CHAIN_GENESIS_CMD add-genesis-account $($CHAIN_BIN keys show -a $TF_BLACKLISTER_KEY --keyring-backend="test") $COINS --keyring-backend="test" |
| 121 | +$CHAIN_BIN $CHAIN_GENESIS_CMD add-genesis-account $($CHAIN_BIN keys show -a $TF_PAUSER_KEY --keyring-backend="test") $COINS --keyring-backend="test" |
| 122 | + |
| 123 | +if [[ $FAUCET_ENABLED == "false" && $NUM_RELAYERS -gt "-1" ]]; |
| 124 | +then |
| 125 | + ## Add relayers keys and delegate tokens |
| 126 | + for i in $(seq 0 $NUM_RELAYERS); |
| 127 | + do |
| 128 | + # Add relayer key and delegate tokens |
| 129 | + RELAYER_KEY_NAME="$(jq -r ".relayers[$i].name" $KEYS_CONFIG)" |
| 130 | + echo "Adding relayer key.... $RELAYER_KEY_NAME" |
| 131 | + jq -r ".relayers[$i].mnemonic" $KEYS_CONFIG | $CHAIN_BIN keys add $RELAYER_KEY_NAME --recover --keyring-backend="test" |
| 132 | + $CHAIN_BIN $CHAIN_GENESIS_CMD add-genesis-account $($CHAIN_BIN keys show -a $RELAYER_KEY_NAME --keyring-backend="test") $COINS --keyring-backend="test" |
| 133 | + # Add relayer-cli key and delegate tokens |
| 134 | + RELAYER_CLI_KEY_NAME="$(jq -r ".relayers_cli[$i].name" $KEYS_CONFIG)" |
| 135 | + echo "Adding relayer-cli key.... $RELAYER_CLI_KEY_NAME" |
| 136 | + jq -r ".relayers_cli[$i].mnemonic" $KEYS_CONFIG | $CHAIN_BIN keys add $RELAYER_CLI_KEY_NAME --recover --keyring-backend="test" |
| 137 | + $CHAIN_BIN $CHAIN_GENESIS_CMD add-genesis-account $($CHAIN_BIN keys show -a $RELAYER_CLI_KEY_NAME --keyring-backend="test") $COINS --keyring-backend="test" |
| 138 | + done |
| 139 | +fi |
| 140 | + |
| 141 | +## if faucet not enabled then add validator and relayer with index as keys and into gentx |
| 142 | +if [[ $FAUCET_ENABLED == "false" && $NUM_VALIDATORS -gt "1" ]]; |
| 143 | +then |
| 144 | + ## Add validators key and delegate tokens |
| 145 | + for i in $(seq 0 $NUM_VALIDATORS); |
| 146 | + do |
| 147 | + VAL_KEY_NAME="$(jq -r '.validators[0].name' $KEYS_CONFIG)-$i" |
| 148 | + echo "Adding validator key.... $VAL_KEY_NAME" |
| 149 | + jq -r ".validators[0].mnemonic" $KEYS_CONFIG | $CHAIN_BIN keys add $VAL_KEY_NAME --index $i --recover --keyring-backend="test" |
| 150 | + $CHAIN_BIN $CHAIN_GENESIS_CMD add-genesis-account $($CHAIN_BIN keys show -a $VAL_KEY_NAME --keyring-backend="test") $COINS --keyring-backend="test" |
| 151 | + done |
| 152 | +fi |
| 153 | + |
| 154 | +echo "Creating gentx..." |
| 155 | +COIN=$(echo $COINS | cut -d ',' -f1) |
| 156 | +AMT=$(echo ${COIN//[!0-9]/} | sed -e "s/0000$//") |
| 157 | +$CHAIN_BIN $CHAIN_GENESIS_CMD gentx $(jq -r ".genesis[0].name" $KEYS_CONFIG) $AMT$DENOM --keyring-backend="test" --chain-id $CHAIN_ID |
| 158 | + |
| 159 | +echo "Output of gentx" |
| 160 | +cat $CHAIN_DIR/config/gentx/*.json | jq |
| 161 | + |
| 162 | +echo "Running collect-gentxs" |
| 163 | +$CHAIN_BIN $CHAIN_GENESIS_CMD collect-gentxs |
| 164 | + |
| 165 | +ls $CHAIN_DIR/config |
0 commit comments