-
Notifications
You must be signed in to change notification settings - Fork 145
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(cmd): add transport switch in flag start daemon #1681
Open
Ja7ad
wants to merge
2
commits into
pactus-project:main
Choose a base branch
from
Ja7ad:feat/enable-transport-with-command
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
2 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -370,10 +370,10 @@ | |
// The passwordFetcher will be used to fetch the password for the default_wallet if it is encrypted. | ||
// It returns an error if the genesis doc or default_wallet can't be found inside the working directory. | ||
// TODO: write test for me. | ||
func StartNode(workingDir string, passwordFetcher func(*wallet.Wallet) (string, bool)) ( | ||
*node.Node, *wallet.Wallet, error, | ||
) { | ||
conf, gen, err := MakeConfig(workingDir) | ||
func StartNode(workingDir string, passwordFetcher func(*wallet.Wallet) (string, bool), | ||
confModifiers ...config.Modifier, | ||
) (*node.Node, *wallet.Wallet, error) { | ||
conf, gen, err := MakeConfig(workingDir, confModifiers...) | ||
if err != nil { | ||
return nil, nil, err | ||
} | ||
|
@@ -448,7 +448,7 @@ | |
// The genesis document is required to determine the chain type, which influences the configuration settings. | ||
// The function sets various private configurations, such as the "wallets directory" and chain-specific HRP values. | ||
// If the configuration file cannot be loaded, it tries to recover or restore the configuration. | ||
func MakeConfig(workingDir string) (*config.Config, *genesis.Genesis, error) { | ||
func MakeConfig(workingDir string, confModifiers ...config.Modifier) (*config.Config, *genesis.Genesis, error) { | ||
gen, err := genesis.LoadFromFile(PactusGenesisPath(workingDir)) | ||
if err != nil { | ||
return nil, nil, err | ||
|
@@ -498,6 +498,10 @@ | |
conf.WalletManager.ChainType = chainType | ||
conf.WalletManager.WalletsDir = walletsDir | ||
|
||
for _, modify := range confModifiers { | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. if modifier != nil {
conf = modifier(conf)
} |
||
modify(conf) | ||
} | ||
|
||
if err := conf.BasicCheck(); err != nil { | ||
return nil, nil, err | ||
} | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
package config | ||
|
||
// Modifier override some configuration after load configuration. | ||
type Modifier func(cfg *Config) | ||
|
||
func EnableGRPCTransport(listen string, enableWallet bool) Modifier { | ||
return func(cfg *Config) { | ||
if listen != "" { | ||
cfg.GRPC.Enable = true | ||
cfg.GRPC.Listen = listen | ||
} | ||
|
||
cfg.GRPC.EnableWallet = enableWallet | ||
} | ||
} | ||
|
||
func EnableZMQBlockInfoPub(listen string) Modifier { | ||
return func(cfg *Config) { | ||
if listen != "" { | ||
cfg.ZeroMq.ZmqPubBlockInfo = listen | ||
} | ||
} | ||
} | ||
|
||
func EnableZMQTxInfoPub(listen string) Modifier { | ||
return func(cfg *Config) { | ||
if listen != "" { | ||
cfg.ZeroMq.ZmqPubTxInfo = listen | ||
} | ||
} | ||
} | ||
|
||
func EnableZMQRawBlockPub(listen string) Modifier { | ||
return func(cfg *Config) { | ||
if listen != "" { | ||
cfg.ZeroMq.ZmqPubRawBlock = listen | ||
} | ||
} | ||
} | ||
|
||
func EnableZMQRawTxPub(listen string) Modifier { | ||
return func(cfg *Config) { | ||
if listen != "" { | ||
cfg.ZeroMq.ZmqPubRawTx = listen | ||
} | ||
} | ||
} |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@b00f Why modifier return
Config
? Modifier just applied changes on loaded configuration.