mirror of
				https://github.com/0glabs/0g-chain.git
				synced 2025-11-03 21:27:26 +00:00 
			
		
		
		
	add chaincfg to save all configration of chain
This commit is contained in:
		
							parent
							
								
									d61f4e94fd
								
							
						
					
					
						commit
						b1365fb792
					
				
							
								
								
									
										22
									
								
								chaincfg/coin.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								chaincfg/coin.go
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,22 @@
 | 
			
		||||
package chaincfg
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	sdk "github.com/cosmos/cosmos-sdk/types"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
var (
 | 
			
		||||
	// Bip44CoinType satisfies EIP84. See https://github.com/ethereum/EIPs/issues/84 for more info.
 | 
			
		||||
	Bip44CoinType uint32 = 459 // TODO: need new coin type for 0g-chain (a0gi)
 | 
			
		||||
	// eth = 60
 | 
			
		||||
	// kava = 459 // see https://github.com/satoshilabs/slips/blob/master/slip-0044.md
 | 
			
		||||
	// BIP44HDPath is the default BIP44 HD path used on Ethereum.
 | 
			
		||||
	//BIP44HDPath = ethaccounts.DefaultBaseDerivationPath.String()
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// TODO: Implement BIP44CoinType and BIP44HDPath
 | 
			
		||||
// SetBip44CoinType sets the global coin type to be used in hierarchical deterministic wallets.
 | 
			
		||||
func setBip44CoinType(config *sdk.Config) {
 | 
			
		||||
	config.SetCoinType(Bip44CoinType)
 | 
			
		||||
	//config.SetPurpose(sdk.Purpose)            // Shared
 | 
			
		||||
	//config.SetFullFundraiserPath(BIP44HDPath) //nolint: staticcheck
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										15
									
								
								chaincfg/config.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								chaincfg/config.go
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,15 @@
 | 
			
		||||
package chaincfg
 | 
			
		||||
 | 
			
		||||
import sdk "github.com/cosmos/cosmos-sdk/types"
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	AppName   = "0gchain"
 | 
			
		||||
	EnvPrefix = "0GCHAIN"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func SetSDKConfig() *sdk.Config {
 | 
			
		||||
	config := sdk.GetConfig()
 | 
			
		||||
	setBech32Prefixes(config)
 | 
			
		||||
	setBip44CoinType(config)
 | 
			
		||||
	return config
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										27
									
								
								chaincfg/denoms.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								chaincfg/denoms.go
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,27 @@
 | 
			
		||||
package chaincfg
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	sdk "github.com/cosmos/cosmos-sdk/types"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	// DisplayDenom defines the denomination displayed to users in client applications.
 | 
			
		||||
	DisplayDenom = "a0gi"
 | 
			
		||||
	// BaseDenom defines to the default denomination used in 0g-chain
 | 
			
		||||
	BaseDenom = "neuron"
 | 
			
		||||
 | 
			
		||||
	BaseDenomUnit = 18
 | 
			
		||||
 | 
			
		||||
	ConversionMultiplier = 1e18
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// RegisterDenoms registers the base and display denominations to the SDK.
 | 
			
		||||
func RegisterDenoms() {
 | 
			
		||||
	if err := sdk.RegisterDenom(DisplayDenom, sdk.OneDec()); err != nil {
 | 
			
		||||
		panic(err)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if err := sdk.RegisterDenom(BaseDenom, sdk.NewDecWithPrec(1, BaseDenomUnit)); err != nil {
 | 
			
		||||
		panic(err)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										25
									
								
								chaincfg/homedir.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								chaincfg/homedir.go
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,25 @@
 | 
			
		||||
package chaincfg
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	stdlog "log"
 | 
			
		||||
	"os"
 | 
			
		||||
	"path/filepath"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	HomeDirName = ".0gchain"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
var (
 | 
			
		||||
	// DefaultNodeHome default home directories for the application daemon
 | 
			
		||||
	DefaultNodeHome string
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func init() {
 | 
			
		||||
	userHomeDir, err := os.UserHomeDir()
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		stdlog.Printf("Failed to get home dir %v", err)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	DefaultNodeHome = filepath.Join(userHomeDir, HomeDirName)
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										44
									
								
								chaincfg/prefix.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										44
									
								
								chaincfg/prefix.go
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,44 @@
 | 
			
		||||
package chaincfg
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	sdk "github.com/cosmos/cosmos-sdk/types"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	// Bech32Prefix defines the Bech32 prefix used for EthAccounts
 | 
			
		||||
	Bech32Prefix = "0g"
 | 
			
		||||
 | 
			
		||||
	// PrefixAccount is the prefix for account keys
 | 
			
		||||
	PrefixAccount = "acc"
 | 
			
		||||
	// PrefixValidator is the prefix for validator keys
 | 
			
		||||
	PrefixValidator = "val"
 | 
			
		||||
	// PrefixConsensus is the prefix for consensus keys
 | 
			
		||||
	PrefixConsensus = "cons"
 | 
			
		||||
	// PrefixPublic is the prefix for public keys
 | 
			
		||||
	PrefixPublic = "pub"
 | 
			
		||||
	// PrefixOperator is the prefix for operator keys
 | 
			
		||||
	PrefixOperator = "oper"
 | 
			
		||||
 | 
			
		||||
	// PrefixAddress is the prefix for addresses
 | 
			
		||||
	PrefixAddress = "addr"
 | 
			
		||||
 | 
			
		||||
	// Bech32PrefixAccAddr defines the Bech32 prefix of an account's address
 | 
			
		||||
	Bech32PrefixAccAddr = Bech32Prefix
 | 
			
		||||
	// Bech32PrefixAccPub defines the Bech32 prefix of an account's public key
 | 
			
		||||
	Bech32PrefixAccPub = Bech32Prefix + PrefixPublic
 | 
			
		||||
	// Bech32PrefixValAddr defines the Bech32 prefix of a validator's operator address
 | 
			
		||||
	Bech32PrefixValAddr = Bech32Prefix + PrefixValidator + PrefixOperator
 | 
			
		||||
	// Bech32PrefixValPub defines the Bech32 prefix of a validator's operator public key
 | 
			
		||||
	Bech32PrefixValPub = Bech32Prefix + PrefixValidator + PrefixOperator + PrefixPublic
 | 
			
		||||
	// Bech32PrefixConsAddr defines the Bech32 prefix of a consensus node address
 | 
			
		||||
	Bech32PrefixConsAddr = Bech32Prefix + PrefixValidator + PrefixConsensus
 | 
			
		||||
	// Bech32PrefixConsPub defines the Bech32 prefix of a consensus node public key
 | 
			
		||||
	Bech32PrefixConsPub = Bech32Prefix + PrefixValidator + PrefixConsensus + PrefixPublic
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// setBech32Prefixes sets the global prefixes to be used when serializing addresses and public keys to Bech32 strings.
 | 
			
		||||
func setBech32Prefixes(config *sdk.Config) {
 | 
			
		||||
	config.SetBech32PrefixForAccount(Bech32PrefixAccAddr, Bech32PrefixAccPub)
 | 
			
		||||
	config.SetBech32PrefixForValidator(Bech32PrefixValAddr, Bech32PrefixValPub)
 | 
			
		||||
	config.SetBech32PrefixForConsensusNode(Bech32PrefixConsAddr, Bech32PrefixConsPub)
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user