83 lines
3.3 KiB
Bash
83 lines
3.3 KiB
Bash
#!/bin/bash
|
|
set -e
|
|
CHAIN_ID="genex-testnet-1"
|
|
DENOM="agnx"
|
|
HOME_DIR="/home/genex/.genexd"
|
|
KEYRING="test"
|
|
GENESIS="$HOME_DIR/config/genesis.json"
|
|
|
|
echo "[1/6] Initializing chain..."
|
|
genexd init "genex-us-east-1" --chain-id "$CHAIN_ID" --home "$HOME_DIR"
|
|
|
|
echo "[2/6] Patching genesis for Genex denom (agnx)..."
|
|
# Replace default denoms with agnx
|
|
cat "$GENESIS" | jq '
|
|
# EVM module: set denom to agnx
|
|
.app_state.evm.params.evm_denom = "agnx" |
|
|
.app_state.evm.params.extended_denom_options.extended_denom = "agnx" |
|
|
# Staking: bond denom
|
|
.app_state.staking.params.bond_denom = "agnx" |
|
|
# Mint: mint denom
|
|
.app_state.mint.params.mint_denom = "agnx" |
|
|
# Gov: min deposit denom
|
|
.app_state.gov.params.min_deposit[0].denom = "agnx" |
|
|
.app_state.gov.params.expedited_min_deposit[0].denom = "agnx" |
|
|
# Bank: add denom metadata for agnx (18 decimals for EVM compat)
|
|
.app_state.bank.denom_metadata = [{
|
|
"description": "The native staking and gas token of Genex Chain",
|
|
"denom_units": [
|
|
{"denom": "agnx", "exponent": 0, "aliases": ["attoGNX"]},
|
|
{"denom": "GNX", "exponent": 18, "aliases": []}
|
|
],
|
|
"base": "agnx",
|
|
"display": "GNX",
|
|
"name": "Genex Token",
|
|
"symbol": "GNX"
|
|
}] |
|
|
# FeeMarket: use zero gas for dev
|
|
.app_state.feemarket.params.min_gas_price = "0.000000000000000000" |
|
|
.app_state.feemarket.params.base_fee = "1000000000.000000000000000000"
|
|
' > "${GENESIS}.tmp" && mv "${GENESIS}.tmp" "$GENESIS"
|
|
|
|
echo "[3/6] Creating validator key..."
|
|
genexd keys add validator --keyring-backend "$KEYRING" --home "$HOME_DIR" 2>&1
|
|
|
|
echo "[4/6] Adding genesis account..."
|
|
ADDR=$(genexd keys show validator -a --keyring-backend "$KEYRING" --home "$HOME_DIR")
|
|
genexd genesis add-genesis-account "$ADDR" "500000000000000000000000000${DENOM}" --home "$HOME_DIR" --keyring-backend "$KEYRING"
|
|
|
|
echo "[5/6] Creating genesis transaction..."
|
|
genexd genesis gentx validator "250000000000000000000000000${DENOM}" \
|
|
--chain-id "$CHAIN_ID" \
|
|
--moniker "genex-us-east-1" \
|
|
--commission-rate "0.10" \
|
|
--commission-max-rate "0.20" \
|
|
--commission-max-change-rate "0.01" \
|
|
--min-self-delegation "1" \
|
|
--keyring-backend "$KEYRING" \
|
|
--home "$HOME_DIR"
|
|
|
|
echo "[6/6] Collecting genesis transactions and validating..."
|
|
genexd genesis collect-gentxs --home "$HOME_DIR"
|
|
|
|
# Configure node
|
|
sed -i "s/minimum-gas-prices = \"\"/minimum-gas-prices = \"0${DENOM}\"/" "$HOME_DIR/config/app.toml"
|
|
# Enable API
|
|
sed -i "/\[api\]/,/\[/ s/enable = false/enable = true/" "$HOME_DIR/config/app.toml"
|
|
# Enable JSON-RPC
|
|
sed -i "/\[json-rpc\]/,/\[/ s/enable = false/enable = true/" "$HOME_DIR/config/app.toml"
|
|
sed -i "s/address = \"127.0.0.1:8545\"/address = \"0.0.0.0:8545\"/" "$HOME_DIR/config/app.toml"
|
|
sed -i "s/ws-address = \"127.0.0.1:8546\"/ws-address = \"0.0.0.0:8546\"/" "$HOME_DIR/config/app.toml"
|
|
# CORS
|
|
sed -i "s/cors_allowed_origins = \[\]/cors_allowed_origins = [\"*\"]/" "$HOME_DIR/config/config.toml"
|
|
sed -i "s/laddr = \"tcp:\/\/127.0.0.1:26657\"/laddr = \"tcp:\/\/0.0.0.0:26657\"/" "$HOME_DIR/config/config.toml"
|
|
# Set EVM chain ID
|
|
sed -i "s/evm-chain-id = 262144/evm-chain-id = 8888/" "$HOME_DIR/config/app.toml" 2>/dev/null || true
|
|
|
|
echo ""
|
|
echo "Genesis initialization complete!"
|
|
echo "Chain ID: $CHAIN_ID"
|
|
echo "Validator: $ADDR"
|
|
echo "EVM Chain ID: 8888"
|
|
echo "Denom: $DENOM (GNX, 18 decimals)"
|