switch-node command

This commit is contained in:
alwx 2017-03-06 17:29:20 +03:00
parent e3ad2b750d
commit cad1ed3b52
3 changed files with 59 additions and 25 deletions

View File

@ -15,7 +15,47 @@ Additional tools for DApps developers. These tools allows to speed up the proces
npm i -g status-dev-cli npm i -g status-dev-cli
``` ```
## How to ## API
**Common additional parameters:**
* `--ip <device-ip>` to specify your device's IP address.
#### 1. Adding a DApp
`status-dev-cli add-dapp [dapp]`
* `dapp` — JSON containing DApp information. It is not required if your DApp contains `package.json` file. Otherwise, this map should contain `whisper-identity`, `dapp-url` and `name` fields (see the example in **Scenario** section)
You can additionally specify `--dapp-port <port>` if your DApp uses port other than 8080 and you don't specify a `dapp`JSON.
#### 2. Removing a DApp
`status-dev-cli remove-dapp [dapp]`
* `dapp` — JSON containing `whisper-identity` field. It is not required if your DApp contains `package.json` file.
#### 3. Refreshing a DApp automatically
`status-dev-cli watch-dapp [dappDir] [dapp]`
* `dapp_dir` dir that should be observed. Not required;
* `dapp` — JSON containing `whisper-identity` field. It is not required if your DApp contains `package.json` file.
#### 4. Switching network
***Requires Status 0.9.4+ & status-dev-cli 2.2.0+!***
Typically when developing DApps, a developer uses his own private chain or a simulator.
Status inserts its own web3 object into the DApp, however, this web3 object is connected to a different network than the development one.
This command allows to switch a network. Next time you login the network will be switched back.
`status-dev-cli switch-node <url>`
* `url` (required) — the network that will be used instead of `http://localhost:8545`
## DApp development
To make debugging work we run a web server on your device. It runs on port 5561 on both iOS and Android, but only if you need it. To make debugging work we run a web server on your device. It runs on port 5561 on both iOS and Android, but only if you need it.
@ -39,26 +79,3 @@ your DApp by typing http://localhost:8080 in your browser.
1. Add a DApp to Status by executing `status-dev-cli add-dapp '{"whisper-identity": "dapp-test", "dapp-url": "http://localhost:8080/", "name": "My Dapp"}'`; 1. Add a DApp to Status by executing `status-dev-cli add-dapp '{"whisper-identity": "dapp-test", "dapp-url": "http://localhost:8080/", "name": "My Dapp"}'`;
2. Open the "My Dapp" on your device; 2. Open the "My Dapp" on your device;
3. Optional: Execute `status-dev-cli watch-dapp . '{"whisper-identity": "dapp-test"}'` to start automatically refreshing your DApp in Status browser when you change the DApp's code. 3. Optional: Execute `status-dev-cli watch-dapp . '{"whisper-identity": "dapp-test"}'` to start automatically refreshing your DApp in Status browser when you change the DApp's code.
## API
You can specify a --dapp-port in the case your DApp uses port other than 8080.
### Adding DApp
`status-dev-cli add-dapp [dapp]`
* `dapp` — JSON containing DApp information. It is not required if your DApp contains `package.json` file. Otherwise, this map should contain `whisper-identity`, `dapp-url` and `name` fields (see the example in **Scenario** section)
### Removing DApp
`status-dev-cli remove-dapp [dapp]`
* `dapp` — JSON containing `whisper-identity` field. It is not required if your DApp contains `package.json` file.
### Watching for DApp changes and refreshing DApp automatically
`status-dev-cli watch-dapp [dappDir] [dapp]`
* `dapp_dir` dir that should be observed. Not required;
* `dapp` — JSON containing `whisper-identity` field. It is not required if your DApp contains `package.json` file.

View File

@ -182,6 +182,23 @@ cli.command("watch-dapp [dappDir] [dapp]")
); );
}); });
cli.command("switch-node <url>")
.description("Switches the current RPC node")
.action(function (url) {
request({
url: "http://" + (cli.ip || defaultIp) + ":5561/switch-node",
method: "POST",
json: true,
body: {encoded: fromAscii(JSON.stringify({"url": url}))}
}, function (error, response, body) {
if (error) {
printMan();
} else {
console.log(chalk.green("DApp has been removed succesfully."));
}
});
});
cli.on("*", function(command) { cli.on("*", function(command) {
console.error("Unknown command " + command[0] + ". See --help for valid commands.") console.error("Unknown command " + command[0] + ". See --help for valid commands.")
}); });

View File

@ -1,6 +1,6 @@
{ {
"name": "status-dev-cli", "name": "status-dev-cli",
"version": "2.1.1", "version": "2.2.0",
"description": "CLI for Status", "description": "CLI for Status",
"main": "index.js", "main": "index.js",
"bin": { "bin": {