mirror of
				https://github.com/0glabs/0g-chain.git
				synced 2025-11-03 23:47:27 +00:00 
			
		
		
		
	add chaincfg to save all configration of chain
This commit is contained in:
		
							parent
							
								
									de2559f6cc
								
							
						
					
					
						commit
						54425ab766
					
				
							
								
								
									
										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