// Package main — Genex Chain 节点二进制入口
//
// genexd 是 Genex Chain 的节点程序，基于 Cosmos SDK + cosmos/evm + CometBFT。
// 支持完全 EVM 兼容，提供券 NFT 发行、交易、结算、合规的链上能力。
//
// 用法:
//
//	genexd init <moniker> --chain-id genex-1
//	genexd start
//	genexd keys add <name>
//	genexd version
package main

import (
	"fmt"
	"os"

	svrcmd "github.com/cosmos/cosmos-sdk/server/cmd"
	sdk "github.com/cosmos/cosmos-sdk/types"

	genexchain "github.com/genex/genex-chain"
	"github.com/genex/genex-chain/cmd/genexd/cmd"
)

func main() {
	setupSDKConfig()

	rootCmd := cmd.NewRootCmd()
	if err := svrcmd.Execute(rootCmd, "genexd", genexchain.GenexDefaultNodeHome()); err != nil {
		fmt.Fprintln(rootCmd.OutOrStderr(), err)
		os.Exit(1)
	}
}

// setupSDKConfig configures the Genex Chain SDK parameters
func setupSDKConfig() {
	cfg := sdk.GetConfig()
	genexchain.SetGenexBech32Prefixes(cfg)
	cfg.Seal()
}
