Skip to content

Commit 9b17937

Browse files
authored
feat: Separate network upgrade and freeze from node update/add/delete command (#628)
Signed-off-by: Ivo Yankov <[email protected]>
1 parent 5b9d19d commit 9b17937

31 files changed

+927
-466
lines changed

.github/workflows/autogen/README.md

+6-1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ The Solo autogen tool is used to add e2e test cases that need to be ran independ
77
## Usage
88

99
from solo root directory:
10+
1011
```bash
1112
cd .github/workflows/autogen
1213
npm install
@@ -16,17 +17,20 @@ npm run autogen
1617
Use git to detect file changes and validate that they are correct.
1718

1819
The templates need to be maintained, you can either make changes directly to the templates and then run the tool, or make changes in both the workflow yaml files and the templates. Should the templates fall out of sync, then you can update the templates so that when autogen runs again, the git diff will better match.
20+
1921
```bash
2022
template.flow-build-application.yaml
2123
template.flow-pull-request-checks.yaml
2224
template.zxc-code-analysis.yaml
2325
template.zxc-env-vars.yaml
24-
```
26+
```
27+
2528
For new e2e test jobs update the `<solo-root>/.github/workflows/templates/config.yaml`, adding a new item to the tests object with a name and jestPostfix attribute.
2629

2730
NOTE: IntelliJ copy/paste will alter the escape sequences, you might have to manually type it in, clone a line, or use an external text editor.
2831

2932
e.g.:
33+
3034
```yaml
3135
- name: Mirror Node
3236
jestPostfix: --testRegex=\".*\\/e2e\\/commands\\/mirror_node\\.test\\.mjs\"
@@ -36,6 +40,7 @@ e.g.:
3640
## Development
3741

3842
To run lint fix:
43+
3944
```bash
4045
cd .github/workflows/autogen
4146
eslint --fix .

.github/workflows/flow-build-application.yaml

+16
Original file line numberDiff line numberDiff line change
@@ -194,6 +194,19 @@ jobs:
194194
coverage-subdirectory: ${{ needs.env-vars.outputs.e2e-node-delete-separate-commands-test-subdir }}
195195
coverage-report-name: ${{ needs.env-vars.outputs.e2e-node-delete-separate-commands-coverage-report }}
196196

197+
e2e-node-upgrade-tests:
198+
name: E2E Tests
199+
if: ${{ github.event_name == 'push' || github.event.inputs.enable-e2e-tests == 'true' }}
200+
uses: ./.github/workflows/zxc-e2e-test.yaml
201+
needs:
202+
- env-vars
203+
- code-style
204+
with:
205+
custom-job-label: Node Upgrade
206+
npm-test-script: test-${{ needs.env-vars.outputs.e2e-node-upgrade-test-subdir }}
207+
coverage-subdirectory: ${{ needs.env-vars.outputs.e2e-node-upgrade-test-subdir }}
208+
coverage-report-name: ${{ needs.env-vars.outputs.e2e-node-upgrade-coverage-report }}
209+
197210
e2e-relay-tests:
198211
name: E2E Tests
199212
if: ${{ github.event_name == 'push' || github.event.inputs.enable-e2e-tests == 'true' }}
@@ -223,6 +236,7 @@ jobs:
223236
- e2e-node-update-tests
224237
- e2e-node-delete-tests
225238
- e2e-node-delete-separate-commands-tests
239+
- e2e-node-upgrade-tests
226240
- e2e-relay-tests
227241
if: ${{ (github.event_name == 'push' || github.event.inputs.enable-unit-tests == 'true' || github.event.inputs.enable-e2e-tests == 'true') && !failure() && !cancelled() }}
228242
with:
@@ -241,6 +255,7 @@ jobs:
241255
e2e-node-update-test-subdir: ${{ needs.env-vars.outputs.e2e-node-update-test-subdir }}
242256
e2e-node-delete-test-subdir: ${{ needs.env-vars.outputs.e2e-node-delete-test-subdir }}
243257
e2e-node-delete-separate-commands-test-subdir: ${{ needs.env-vars.outputs.e2e-node-delete-separate-commands-test-subdir }}
258+
e2e-node-upgrade-test-subdir: ${{ needs.env-vars.outputs.e2e-node-upgrade-test-subdir }}
244259
e2e-relay-test-subdir: ${{ needs.env-vars.outputs.e2e-relay-test-subdir }}
245260
e2e-standard-coverage-report: ${{ needs.env-vars.outputs.e2e-standard-coverage-report }}
246261
e2e-mirror-node-coverage-report: ${{ needs.env-vars.outputs.e2e-mirror-node-coverage-report }}
@@ -252,6 +267,7 @@ jobs:
252267
e2e-node-update-coverage-report: ${{ needs.env-vars.outputs.e2e-node-update-coverage-report }}
253268
e2e-node-delete-coverage-report: ${{ needs.env-vars.outputs.e2e-node-delete-coverage-report }}
254269
e2e-node-delete-separate-commands-coverage-report: ${{ needs.env-vars.outputs.e2e-node-delete-separate-commands-coverage-report }}
270+
e2e-node-upgrade-coverage-report: ${{ needs.env-vars.outputs.e2e-node-upgrade-coverage-report }}
255271
e2e-relay-coverage-report: ${{ needs.env-vars.outputs.e2e-relay-coverage-report }}
256272
secrets:
257273
snyk-token: ${{ secrets.SNYK_TOKEN }}

.github/workflows/flow-pull-request-checks.yaml

+19
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,19 @@ jobs:
192192
coverage-subdirectory: ${{ needs.env-vars.outputs.e2e-node-delete-separate-commands-test-subdir }}
193193
coverage-report-name: ${{ needs.env-vars.outputs.e2e-node-delete-separate-commands-coverage-report }}
194194

195+
e2e-node-upgrade-tests:
196+
name: E2E Tests
197+
if: ${{ !cancelled() && always() }}
198+
uses: ./.github/workflows/zxc-e2e-test.yaml
199+
needs:
200+
- env-vars
201+
- code-style
202+
with:
203+
custom-job-label: Node Upgrade
204+
npm-test-script: test-${{ needs.env-vars.outputs.e2e-node-upgrade-test-subdir }}
205+
coverage-subdirectory: ${{ needs.env-vars.outputs.e2e-node-upgrade-test-subdir }}
206+
coverage-report-name: ${{ needs.env-vars.outputs.e2e-node-upgrade-coverage-report }}
207+
195208
e2e-relay-tests:
196209
name: E2E Tests
197210
if: ${{ !cancelled() && always() }}
@@ -221,6 +234,7 @@ jobs:
221234
- e2e-node-update-tests
222235
- e2e-node-delete-tests
223236
- e2e-node-delete-separate-commands-tests
237+
- e2e-node-upgrade-tests
224238
- e2e-relay-tests
225239
if: ${{ github.event.pull_request.head.repo.full_name == github.event.pull_request.base.repo.full_name }}
226240
with:
@@ -237,6 +251,7 @@ jobs:
237251
e2e-node-update-test-subdir: ${{ needs.env-vars.outputs.e2e-node-update-test-subdir }}
238252
e2e-node-delete-test-subdir: ${{ needs.env-vars.outputs.e2e-node-delete-test-subdir }}
239253
e2e-node-delete-separate-commands-test-subdir: ${{ needs.env-vars.outputs.e2e-node-delete-separate-commands-test-subdir }}
254+
e2e-node-upgrade-test-subdir: ${{ needs.env-vars.outputs.e2e-node-upgrade-test-subdir }}
240255
e2e-relay-test-subdir: ${{ needs.env-vars.outputs.e2e-relay-test-subdir }}
241256
e2e-standard-coverage-report: ${{ needs.env-vars.outputs.e2e-standard-coverage-report }}
242257
e2e-mirror-node-coverage-report: ${{ needs.env-vars.outputs.e2e-mirror-node-coverage-report }}
@@ -248,6 +263,7 @@ jobs:
248263
e2e-node-update-coverage-report: ${{ needs.env-vars.outputs.e2e-node-update-coverage-report }}
249264
e2e-node-delete-coverage-report: ${{ needs.env-vars.outputs.e2e-node-delete-coverage-report }}
250265
e2e-node-delete-separate-commands-coverage-report: ${{ needs.env-vars.outputs.e2e-node-delete-separate-commands-coverage-report }}
266+
e2e-node-upgrade-coverage-report: ${{ needs.env-vars.outputs.e2e-node-upgrade-coverage-report }}
251267
e2e-relay-coverage-report: ${{ needs.env-vars.outputs.e2e-relay-coverage-report }}
252268
secrets:
253269
codecov-token: ${{ secrets.CODECOV_TOKEN }}
@@ -268,6 +284,7 @@ jobs:
268284
- e2e-node-update-tests
269285
- e2e-node-delete-tests
270286
- e2e-node-delete-separate-commands-tests
287+
- e2e-node-upgrade-tests
271288
- e2e-relay-tests
272289
if: ${{ github.event.pull_request.head.repo.full_name == github.event.pull_request.base.repo.full_name }}
273290
with:
@@ -284,6 +301,7 @@ jobs:
284301
e2e-node-update-test-subdir: ${{ needs.env-vars.outputs.e2e-node-update-test-subdir }}
285302
e2e-node-delete-test-subdir: ${{ needs.env-vars.outputs.e2e-node-delete-test-subdir }}
286303
e2e-node-delete-separate-commands-test-subdir: ${{ needs.env-vars.outputs.e2e-node-delete-separate-commands-test-subdir }}
304+
e2e-node-upgrade-test-subdir: ${{ needs.env-vars.outputs.e2e-node-upgrade-test-subdir }}
287305
e2e-relay-test-subdir: ${{ needs.env-vars.outputs.e2e-relay-test-subdir }}
288306
e2e-standard-coverage-report: ${{ needs.env-vars.outputs.e2e-standard-coverage-report }}
289307
e2e-mirror-node-coverage-report: ${{ needs.env-vars.outputs.e2e-mirror-node-coverage-report }}
@@ -295,6 +313,7 @@ jobs:
295313
e2e-node-update-coverage-report: ${{ needs.env-vars.outputs.e2e-node-update-coverage-report }}
296314
e2e-node-delete-coverage-report: ${{ needs.env-vars.outputs.e2e-node-delete-coverage-report }}
297315
e2e-node-delete-separate-commands-coverage-report: ${{ needs.env-vars.outputs.e2e-node-delete-separate-commands-coverage-report }}
316+
e2e-node-upgrade-coverage-report: ${{ needs.env-vars.outputs.e2e-node-upgrade-coverage-report }}
298317
e2e-relay-coverage-report: ${{ needs.env-vars.outputs.e2e-relay-coverage-report }}
299318
secrets:
300319
codacy-project-token: ${{ secrets.CODACY_PROJECT_TOKEN }}

.github/workflows/templates/config.yaml

+2
Original file line numberDiff line numberDiff line change
@@ -23,5 +23,7 @@ tests:
2323
jestPostfix: --testRegex=\".*\\/e2e\\/commands\\/node_delete.*\\.test\\.mjs\"
2424
- name: Node Delete - Separate commands
2525
jestPostfix: --testRegex=\".*\\/e2e\\/commands\\/separate_node_delete.*\\.test\\.mjs\"
26+
- name: Node Upgrade
27+
jestPostfix: --testRegex=\".*\\/e2e\\/commands\\/node_upgrade.*\\.test\\.mjs\"
2628
- name: Relay
2729
jestPostfix: --testRegex=\".*\\/e2e\\/commands\\/relay\\.test\\.mjs\"

.github/workflows/zxc-code-analysis.yaml

+17
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,11 @@ on:
105105
type: string
106106
required: false
107107
default: "e2e-node-delete-separate-commands"
108+
e2e-node-upgrade-test-subdir:
109+
description: "E2E Node Upgrade Test Subdirectory:"
110+
type: string
111+
required: false
112+
default: "e2e-node-upgrade"
108113
e2e-relay-test-subdir:
109114
description: "E2E Relay Test Subdirectory:"
110115
type: string
@@ -160,6 +165,11 @@ on:
160165
type: string
161166
required: false
162167
default: "E2E Node Delete - Separate commands Tests Coverage Report"
168+
e2e-node-upgrade-coverage-report:
169+
description: "E2E Node Upgrade Coverage Report:"
170+
type: string
171+
required: false
172+
default: "E2E Node Upgrade Tests Coverage Report"
163173
e2e-relay-coverage-report:
164174
description: "E2E Relay Coverage Report:"
165175
type: string
@@ -285,6 +295,13 @@ jobs:
285295
name: ${{ inputs.e2e-node-delete-separate-commands-coverage-report }}
286296
path: 'coverage/${{ inputs.e2e-node-delete-separate-commands-test-subdir }}'
287297

298+
- name: Download E2E Node Upgrade Coverage Report
299+
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
300+
if: ${{ (inputs.enable-codecov-analysis || inputs.enable-codacy-coverage) && inputs.enable-e2e-coverage-report && !cancelled() && !failure() }}
301+
with:
302+
name: ${{ inputs.e2e-node-upgrade-coverage-report }}
303+
path: 'coverage/${{ inputs.e2e-node-upgrade-test-subdir }}'
304+
288305
- name: Download E2E Relay Coverage Report
289306
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
290307
if: ${{ (inputs.enable-codecov-analysis || inputs.enable-codacy-coverage) && inputs.enable-e2e-coverage-report && !cancelled() && !failure() }}

.github/workflows/zxc-env-vars.yaml

+8
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,9 @@ on:
5656
e2e-node-delete-separate-commands-test-subdir:
5757
description: "E2E Node Delete - Separate commands Test Subdirectory"
5858
value: ${{ jobs.env-vars.outputs.e2e_node_delete_separate_commands_test_subdir }}
59+
e2e-node-upgrade-test-subdir:
60+
description: "E2E Node Upgrade Test Subdirectory"
61+
value: ${{ jobs.env-vars.outputs.e2e_node_upgrade_test_subdir }}
5962
e2e-relay-test-subdir:
6063
description: "E2E Relay Test Subdirectory"
6164
value: ${{ jobs.env-vars.outputs.e2e_relay_test_subdir }}
@@ -89,6 +92,9 @@ on:
8992
e2e-node-delete-separate-commands-coverage-report:
9093
description: "E2E Node Delete - Separate commands Tests Coverage Report"
9194
value: ${{ jobs.env-vars.outputs.e2e_node_delete_separate_commands_coverage_report }}
95+
e2e-node-upgrade-coverage-report:
96+
description: "E2E Node Upgrade Tests Coverage Report"
97+
value: ${{ jobs.env-vars.outputs.e2e_node_upgrade_coverage_report }}
9298
e2e-relay-coverage-report:
9399
description: "E2E Relay Tests Coverage Report"
94100
value: ${{ jobs.env-vars.outputs.e2e_relay_coverage_report }}
@@ -112,6 +118,7 @@ jobs:
112118
e2e_node_update_test_subdir: e2e-node-update
113119
e2e_node_delete_test_subdir: e2e-node-delete
114120
e2e_node_delete_separate_commands_test_subdir: e2e-node-delete-separate-commands
121+
e2e_node_upgrade_test_subdir: e2e-node-upgrade
115122
e2e_relay_test_subdir: e2e-relay
116123
e2e_standard_coverage_report: "E2E Standard Tests Coverage Report"
117124
e2e_mirror_node_coverage_report: "E2E Mirror Node Tests Coverage Report"
@@ -123,6 +130,7 @@ jobs:
123130
e2e_node_update_coverage_report: "E2E Node Update Tests Coverage Report"
124131
e2e_node_delete_coverage_report: "E2E Node Delete Tests Coverage Report"
125132
e2e_node_delete_separate_commands_coverage_report: "E2E Node Delete - Separate commands Tests Coverage Report"
133+
e2e_node_upgrade_coverage_report: "E2E Node Upgrade Tests Coverage Report"
126134
e2e_relay_coverage_report: "E2E Relay Tests Coverage Report"
127135
steps:
128136
- run: echo "Exposing environment variables to reusable workflows"

README.md

+9-1
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@ Then run the following command to set the kubectl context to the new cluster:
7676
```bash
7777
kind create cluster -n "${SOLO_CLUSTER_NAME}"
7878
```
79+
7980
Example output
8081

8182
```
@@ -96,7 +97,6 @@ Have a nice day! 👋
9697

9798
You may now view pods in your cluster using `k9s -A` as below:
9899

99-
100100
```
101101
Context: kind-solo <0> all <a> Attach <ctr… ____ __.________
102102
Cluster: kind-solo <ctrl-d> Delete <l> | |/ _/ __ \______
@@ -187,13 +187,16 @@ Kubernetes Namespace : solo
187187
✔ Generate gRPC TLS keys
188188
✔ Finalize
189189
```
190+
190191
PEM key files are generated in `~/.solo/keys` directory.
192+
191193
```
192194
hedera-node1.crt hedera-node3.crt s-private-node1.pem s-public-node1.pem unused-gossip-pem
193195
hedera-node1.key hedera-node3.key s-private-node2.pem s-public-node2.pem unused-tls
194196
hedera-node2.crt hedera-node4.crt s-private-node3.pem s-public-node3.pem
195197
hedera-node2.key hedera-node4.key s-private-node4.pem s-public-node4.pem
196198
```
199+
197200
* Setup cluster with shared components
198201

199202
```
@@ -475,6 +478,7 @@ To set customized `settings.txt` file, edit the file
475478
`~/.solo/cache/templates/settings.txt` after `solo init` command.
476479

477480
Then you can start customized built hedera network with the following command:
481+
478482
```
479483
solo node setup --local-build-path <default path to hedera repo>,node1=<custom build hedera repo>,node2=<custom build repo>
480484
@@ -484,12 +488,15 @@ solo node setup --local-build-path <default path to hedera repo>,node1=<custom b
484488
## For Developers Working on Platform core
485489

486490
To deploy node with local build PTT jar files, run the following command:
491+
487492
```
488493
solo node setup --local-build-path <default path to hedera repo>,node1=<custom build hedera repo>,node2=<custom build repo> --app PlatformTestingTool.jar --app-config <path-to-test-json1,path-to-test-json2>
489494
490495
# example: solo node setup --local-build-path ../hedera-services/platform-sdk/sdk/data,node1=../hedera-services/platform-sdk/sdk/data,node2=../hedera-services/platform-sdk/sdk/data --app PlatformTestingTool.jar --app-config ../hedera-services/platform-sdk/platform-apps/tests/PlatformTestingTool/src/main/resources/FCMFCQ-Basic-2.5k-5m.json
491496
```
497+
492498
## Logs
499+
493500
You can find log for running solo command under the directory `~/.solo/logs/`
494501
The file `solo.log` contains the logs for the solo command.
495502
The file `hashgraph-sdk.log` contains the logs from Solo client when sending transactions to network nodes.
@@ -499,6 +506,7 @@ The file `hashgraph-sdk.log` contains the logs from Solo client when sending tra
499506
NOTE: the hedera-services path referenced '../hedera-services/hedera-node/data' may need to be updated based on what directory you are currently in. This also assumes that you have done an assemble/build and the directory contents are up-to-date.
500507

501508
Example 1: attach jvm debugger to a hedera node
509+
502510
```bash
503511
./test/e2e/setup-e2e.sh
504512
solo node keys --gossip-keys --tls-keys

package.json

+1
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
"test-e2e-node-update": "NODE_OPTIONS=--experimental-vm-modules JEST_SUITE_NAME='Jest E2E Node Update Tests' JEST_JUNIT_OUTPUT_NAME='junit-e2e-node-update.xml' jest --runInBand --detectOpenHandles --forceExit --coverage --coverageDirectory='coverage/e2e-node-update' --testRegex=\".*\\/e2e\\/commands\\/node_update.*\\.test\\.mjs\"",
2424
"test-e2e-node-delete": "NODE_OPTIONS=--experimental-vm-modules JEST_SUITE_NAME='Jest E2E Node Delete Tests' JEST_JUNIT_OUTPUT_NAME='junit-e2e-node-delete.xml' jest --runInBand --detectOpenHandles --forceExit --coverage --coverageDirectory='coverage/e2e-node-delete' --testRegex=\".*\\/e2e\\/commands\\/node_delete.*\\.test\\.mjs\"",
2525
"test-e2e-node-delete-separate-commands": "NODE_OPTIONS=--experimental-vm-modules JEST_SUITE_NAME='Jest E2E Node Delete - Separate commands Tests' JEST_JUNIT_OUTPUT_NAME='junit-e2e-node-delete-separate-commands.xml' jest --runInBand --detectOpenHandles --forceExit --coverage --coverageDirectory='coverage/e2e-node-delete-separate-commands' --testRegex=\".*\\/e2e\\/commands\\/separate_node_delete.*\\.test\\.mjs\"",
26+
"test-e2e-node-upgrade": "NODE_OPTIONS=--experimental-vm-modules JEST_SUITE_NAME='Jest E2E Node Upgrade Tests' JEST_JUNIT_OUTPUT_NAME='junit-e2e-node-upgrade.xml' jest --runInBand --detectOpenHandles --forceExit --coverage --coverageDirectory='coverage/e2e-node-upgrade' --testRegex=\".*\\/e2e\\/commands\\/node_upgrade.*\\.test\\.mjs\"",
2627
"test-e2e-relay": "NODE_OPTIONS=--experimental-vm-modules JEST_SUITE_NAME='Jest E2E Relay Tests' JEST_JUNIT_OUTPUT_NAME='junit-e2e-relay.xml' jest --runInBand --detectOpenHandles --forceExit --coverage --coverageDirectory='coverage/e2e-relay' --testRegex=\".*\\/e2e\\/commands\\/relay\\.test\\.mjs\"",
2728
"merge-clean": "rm -rf .nyc_output && mkdir .nyc_output && rm -rf coverage/lcov-report && rm -rf coverage/solo && rm coverage/*.*",
2829
"merge-e2e": "nyc merge ./coverage/e2e/ .nyc_output/coverage.json",

src/commands/account.mjs

+2-5
Original file line numberDiff line numberDiff line change
@@ -453,13 +453,10 @@ export class AccountCommand extends BaseCommand {
453453

454454
/**
455455
* Return Yargs command definition for 'node' command
456-
* @param {AccountCommand} accountCmd an instance of NodeCommand
457456
* @returns {{command: string, desc: string, builder: Function}}
458457
*/
459-
static getCommandDefinition (accountCmd) {
460-
if (!accountCmd || !(accountCmd instanceof AccountCommand)) {
461-
throw new IllegalArgumentError('An instance of AccountCommand is required', accountCmd)
462-
}
458+
getCommandDefinition () {
459+
const accountCmd = this
463460
return {
464461
command: 'account',
465462
desc: 'Manage Hedera accounts in solo network',

src/commands/cluster.mjs

+2-5
Original file line numberDiff line numberDiff line change
@@ -222,13 +222,10 @@ export class ClusterCommand extends BaseCommand {
222222

223223
/**
224224
* Return Yargs command definition for 'cluster' command
225-
* @param {ClusterCommand} clusterCmd - an instance of ClusterCommand
226225
* @returns {{command: string, desc: string, builder: Function}}
227226
*/
228-
static getCommandDefinition (clusterCmd) {
229-
if (!clusterCmd || !(clusterCmd instanceof ClusterCommand)) {
230-
throw new IllegalArgumentError('Invalid ClusterCommand instance')
231-
}
227+
getCommandDefinition () {
228+
const clusterCmd = this
232229
return {
233230
command: 'cluster',
234231
desc: 'Manage fullstack testing cluster',

src/commands/index.mjs

+7-7
Original file line numberDiff line numberDiff line change
@@ -39,13 +39,13 @@ function Initialize (opts) {
3939
const mirrorNodeCmd = new MirrorNodeCommand(opts)
4040

4141
return [
42-
InitCommand.getCommandDefinition(initCmd),
43-
ClusterCommand.getCommandDefinition(clusterCmd),
44-
NetworkCommand.getCommandDefinition(networkCommand),
45-
NodeCommand.getCommandDefinition(nodeCmd),
46-
RelayCommand.getCommandDefinition(relayCmd),
47-
AccountCommand.getCommandDefinition(accountCmd),
48-
MirrorNodeCommand.getCommandDefinition(mirrorNodeCmd)
42+
initCmd.getCommandDefinition(),
43+
clusterCmd.getCommandDefinition(),
44+
networkCommand.getCommandDefinition(),
45+
nodeCmd.getCommandDefinition(),
46+
relayCmd.getCommandDefinition(),
47+
accountCmd.getCommandDefinition(),
48+
mirrorNodeCmd.getCommandDefinition()
4949
]
5050
}
5151

src/commands/init.mjs

+2-5
Original file line numberDiff line numberDiff line change
@@ -144,13 +144,10 @@ export class InitCommand extends BaseCommand {
144144

145145
/**
146146
* Return Yargs command definition for 'init' command
147-
* @param {InitCommand} initCmd - an instance of InitCommand
148147
* @returns A object representing the Yargs command definition
149148
*/
150-
static getCommandDefinition (initCmd) {
151-
if (!initCmd || !(initCmd instanceof InitCommand)) {
152-
throw new IllegalArgumentError('Invalid InitCommand')
153-
}
149+
getCommandDefinition () {
150+
const initCmd = this
154151
return {
155152
command: 'init',
156153
desc: 'Initialize local environment and default flags',

0 commit comments

Comments
 (0)