44set -e
55
66# Check arguments
7- if [ " $# " -lt 4 ]; then
8- echo " Usage: $0 <validator0_ip> <validator1_ip> <validator2_ip> <validator3_ip>"
9- echo " Example: $0 1.2.3.4 5.6.7.8 9.10.11.12 13.14.15.16"
7+ if [ " $# " -lt 7 ]; then
8+ echo " Usage: $0 <validator0_ip> <validator1_ip> <validator2_ip> <validator3_ip> <validator4_ip> <validator5_ip> <validator6_ip> "
9+ echo " Example: $0 1.2.3.4 5.6.7.8 9.10.11.12 13.14.15.16 17.18.19.20 21.22.23.24 25.26.27.28 "
1010 exit 1
1111fi
1212
@@ -17,10 +17,10 @@ command -v jq >/dev/null 2>&1 || {
1717}
1818
1919# Set number of validators
20- NUM_VALIDATORS=4
20+ NUM_VALIDATORS=7
2121
2222# Store validator IPs in array
23- declare -a VALIDATOR_IPS=($1 $2 $3 $4 )
23+ declare -a VALIDATOR_IPS=($1 $2 $3 $4 $5 $6 $7 )
2424echo " All validator IPs: ${VALIDATOR_IPS[@]} "
2525echo " Number of validators: $NUM_VALIDATORS "
2626
@@ -77,19 +77,49 @@ hetud init "node0" -o --chain-id="${CHAIN_ID}" --home "${HOME_PREFIX}"
7777GENESIS=" ${HOME_PREFIX} /config/genesis.json"
7878TMP_GENESIS=" ${HOME_PREFIX} /config/tmp_genesis.json"
7979
80+ # Create validator keys and add genesis accounts
81+ declare -a KEYS
82+ for i in $( seq 0 $(( NUM_VALIDATORS - 1 )) ) ; do
83+ KEYS[$i ]=" validator$i "
84+ echo " Creating validator key ${KEYS[$i]} ..."
85+ hetud keys add " ${KEYS[$i]} " \
86+ --keyring-backend=" ${KEYRING} " \
87+ --algo=" ${KEYALGO} " \
88+ --home " ${HOME_PREFIX} "
89+
90+ echo " Adding genesis account for validator ${KEYS[$i]} ..."
91+ hetud add-genesis-account " ${KEYS[$i]} " " ${GENESIS_BALANCE}${DENOM} ,${GENESIS_BALANCE} gas" \
92+ --keyring-backend=" ${KEYRING} " \
93+ --home " ${HOME_PREFIX} "
94+ done
95+
8096# Change parameter token denominations to ahetu
8197jq ' .app_state["staking"]["params"]["bond_denom"]="ahetu"' " $GENESIS " > " $TMP_GENESIS " && mv " $TMP_GENESIS " " $GENESIS "
8298jq ' .app_state["crisis"]["constant_fee"]["denom"]="ahetu"' " $GENESIS " > " $TMP_GENESIS " && mv " $TMP_GENESIS " " $GENESIS "
8399jq ' .app_state["gov"]["deposit_params"]["min_deposit"][0]["denom"]="ahetu"' " $GENESIS " > " $TMP_GENESIS " && mv " $TMP_GENESIS " " $GENESIS "
84100jq ' .app_state["evm"]["params"]["evm_denom"]="gas"' " $GENESIS " > " $TMP_GENESIS " && mv " $TMP_GENESIS " " $GENESIS "
85101jq ' .app_state["inflation"]["params"]["mint_denom"]="ahetu"' " $GENESIS " > " $TMP_GENESIS " && mv " $TMP_GENESIS " " $GENESIS "
86102
87-
88103# Set gas limit in genesis
89- # jq '.consensus_params["block"]["max_gas"]="10000000"' "$GENESIS" >"$TMP_GENESIS" && mv "$TMP_GENESIS" "$GENESIS"
104+ jq ' .consensus_params["block"]["max_gas"]="10000000"' " $GENESIS " > " $TMP_GENESIS " && mv " $TMP_GENESIS " " $GENESIS "
105+
106+ # Set claims start time
107+ current_date=$( date -u +" %Y-%m-%dT%TZ" )
108+ jq -r --arg current_date " $current_date " ' .app_state["claims"]["params"]["airdrop_start_time"]=$current_date' " $GENESIS " > " $TMP_GENESIS " && mv " $TMP_GENESIS " " $GENESIS "
90109
91- # Set base fee in genesis
92- # jq --arg fee "$BASEFEE" '.app_state["feemarket"]["params"]["base_fee"]=$fee' "$GENESIS" >"$TMP_GENESIS" && mv "$TMP_GENESIS" "$GENESIS"
110+ # Set claims records for validator account
111+ amount_to_claim=10000
112+ claims_key=" validator0"
113+ node_address=$( hetud keys show " $claims_key " --keyring-backend $KEYRING --home " $HOME_PREFIX " | grep " address" | cut -c12-)
114+ jq -r --arg node_address " $node_address " --arg amount_to_claim " $amount_to_claim " ' .app_state["claims"]["claims_records"]=[{"initial_claimable_amount":$amount_to_claim, "actions_completed":[false, false, false, false],"address":$node_address}]' " $GENESIS " > " $TMP_GENESIS " && mv " $TMP_GENESIS " " $GENESIS "
115+
116+ # Set claims decay
117+ jq ' .app_state["claims"]["params"]["duration_of_decay"]="1000000s"' " $GENESIS " > " $TMP_GENESIS " && mv " $TMP_GENESIS " " $GENESIS "
118+ jq ' .app_state["claims"]["params"]["duration_until_decay"]="100000s"' " $GENESIS " > " $TMP_GENESIS " && mv " $TMP_GENESIS " " $GENESIS "
119+
120+ # Claim module account:
121+ # 0xA61808Fe40fEb8B3433778BBC2ecECCAA47c8c47 || hetu15cvq3ljql6utxseh0zau9m8ve2j8erz89c94rj
122+ jq -r --arg amount_to_claim " $amount_to_claim " ' .app_state["bank"]["balances"] += [{"address":"hetu15cvq3ljql6utxseh0zau9m8ve2j8erz89c94rj","coins":[{"denom":"ahetu", "amount":$amount_to_claim}, {"denom":"gas", "amount":$amount_to_claim}]}]' " $GENESIS " > " $TMP_GENESIS " && mv " $TMP_GENESIS " " $GENESIS "
93123
94124# Change proposal periods to pass within a reasonable time
95125sed -i.bak ' s/"max_deposit_period": "172800s"/"max_deposit_period": "30s"/g' " $GENESIS "
@@ -99,19 +129,10 @@ sed -i.bak 's/"expedited_voting_period": "86400s"/"expedited_voting_period": "15
99129# Create gentx directory in primary node
100130mkdir -p " ${HOME_PREFIX} /config/gentx"
101131
102- # Create validator keys and add genesis accounts
103- for i in $( seq 0 $(( NUM_VALIDATORS - 1 )) ) ; do
104- echo " Creating validator $i key..."
105- hetud keys add " validator$i " \
106- --keyring-backend=" ${KEYRING} " \
107- --algo=" ${KEYALGO} " \
108- --home " ${HOME_PREFIX} "
109-
110- echo " Adding genesis account for validator $i ..."
111- hetud add-genesis-account " validator$i " " ${GENESIS_BALANCE}${DENOM} " \
112- --keyring-backend=" ${KEYRING} " \
113- --home " ${HOME_PREFIX} "
114- done
132+ # Calculate total supply including claims amount
133+ total_supply=$( echo " $NUM_VALIDATORS * $GENESIS_BALANCE + $amount_to_claim " | bc)
134+ jq -r --arg total_supply " $total_supply " ' .app_state["bank"]["supply"][0]["amount"]=$total_supply' " $GENESIS " > " $TMP_GENESIS " && mv " $TMP_GENESIS " " $GENESIS "
135+ jq -r --arg total_supply " $total_supply " ' .app_state["bank"]["supply"][1]["amount"]=$total_supply' " $GENESIS " > " $TMP_GENESIS " && mv " $TMP_GENESIS " " $GENESIS "
115136
116137# Create clone directories, gentx, and get node IDs
117138declare -a NODE_IDS
@@ -155,8 +176,8 @@ for i in $(seq 0 $((NUM_VALIDATORS - 1))); do
155176 -e " s/^#allow_duplicate_ip *=.*/allow_duplicate_ip = true/" \
156177 " $CONFIG_TOML "
157178
158- # Set minimum gas price to 0
159- sed -i.bak " s/^minimum-gas-prices *=.*/minimum-gas-prices = \" 0 ${DENOM} \ " /g" " $APP_TOML "
179+ # Set minimum gas price
180+ sed -i.bak ' s/^minimum-gas-prices *=.*/minimum-gas-prices = "0.0001gas "/g' " $APP_TOML "
160181
161182 # Configure API and EVM settings in app.toml
162183 sed -i.bak \
@@ -166,7 +187,7 @@ for i in $(seq 0 $((NUM_VALIDATORS - 1))); do
166187 -e " /^\[json-rpc\]/,/^\[/s|^address *= *.*|address = \" 0.0.0.0:${JSON_RPC_PORT} \" |" \
167188 -e " /^\[json-rpc\]/,/^\[/s|^ws-address *= *.*|ws-address = \" 0.0.0.0:${WS_PORT} \" |" \
168189 -e " /^\[json-rpc\]/,/^\[/s|^enable *= *.*|enable = true|" \
169- -e " /^\[json-rpc\]/,/^\[/s|^api *= *.*|api = \" eth,net,web3,txpool ,debug\" |" \
190+ -e " /^\[json-rpc\]/,/^\[/s|^api *= *.*|api = \" eth,txpool,personal,net ,debug,web3 \" |" \
170191 -e ' s/^json-rpc.enable-indexer = .*$/json-rpc.enable-indexer = true/' \
171192 -e ' s/^evm.tracer = .*$/evm.tracer = ""/' \
172193 " $APP_TOML "
0 commit comments