(count int, outputDir, seedIPv4Addr string)
| 62 | } |
| 63 | |
| 64 | func (n *Network) Build(count int, outputDir, seedIPv4Addr string) (*string, error) { |
| 65 | if err := n.CLI.Reset([]string{outputDir}); err != nil { |
| 66 | return nil, err |
| 67 | } |
| 68 | |
| 69 | initDirs := []string{ |
| 70 | fmt.Sprintf("%s/%s", outputDir, ValidatorsDir), |
| 71 | fmt.Sprintf("%s/%s", outputDir, GentxsDir), |
| 72 | } |
| 73 | |
| 74 | if err := n.createDirs(initDirs); err != nil { |
| 75 | return nil, err |
| 76 | } |
| 77 | |
| 78 | gentxDir := fmt.Sprintf("%s/%s", outputDir, GentxsDir) |
| 79 | validators := n.initValidators(count, outputDir, seedIPv4Addr) |
| 80 | |
| 81 | for _, validator := range validators { |
| 82 | appDirs := []string{validator.NodeHomeDir} |
| 83 | if err := n.createDirs(appDirs); err != nil { |
| 84 | return nil, err |
| 85 | } |
| 86 | |
| 87 | if err := n.generateKey(validator); err != nil { |
| 88 | return nil, err |
| 89 | } |
| 90 | |
| 91 | if err := n.initChain(validator); err != nil { |
| 92 | return nil, err |
| 93 | } |
| 94 | |
| 95 | if err := n.setValidatorAddress(validator); err != nil { |
| 96 | return nil, err |
| 97 | } |
| 98 | |
| 99 | if err := n.setValidatorConsensusAddress(validator); err != nil { |
| 100 | return nil, err |
| 101 | } |
| 102 | |
| 103 | if err := genesis.ReplaceStakingBondDenom(validator.NodeHomeDir); err != nil { |
| 104 | return nil, err |
| 105 | } |
| 106 | |
| 107 | if err := genesis.ReplaceMintBondDenom(validator.NodeHomeDir); err != nil { |
| 108 | return nil, err |
| 109 | } |
| 110 | |
| 111 | if err := n.setValidatorID(validator); err != nil { |
| 112 | return nil, err |
| 113 | } |
| 114 | |
| 115 | if !validator.Seed { |
| 116 | seedValidator := n.getSeedValidator(validators) |
| 117 | |
| 118 | if err := n.addValidatorKeyToSeed(validator, seedValidator); err != nil { |
| 119 | return nil, err |
| 120 | } |
| 121 |
no test coverage detected