https://github.com/statebox/cli-tool
Statebox CLI tool
https://github.com/statebox/cli-tool
Last synced: 5 months ago
JSON representation
Statebox CLI tool
- Host: GitHub
- URL: https://github.com/statebox/cli-tool
- Owner: statebox
- License: agpl-3.0
- Created: 2019-01-31T14:42:11.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2021-08-12T02:53:30.000Z (almost 5 years ago)
- Last Synced: 2025-09-17T14:39:19.661Z (9 months ago)
- Language: JavaScript
- Size: 108 KB
- Stars: 5
- Watchers: 3
- Forks: 0
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Statebox Commandline Tool
This is a (temporary) tool that is supposed to do various useful thingss.
- Encode & decode transactions
- Convert file formats
- Compute hashes
- ~~Communicate with the API~~
- ~~Create EC keypairs~~
- ~~Sign transactions & Verify signatures~~
## Installation
Can install tool locally or globally (`-g`) or run once using `npx`.
```
npm i stbx # install locally
npm i -g stbx # or install globally
npx stbx -V # or run once using npx
```
## Usage
See `node stbx-cli.js --help`
```
Usage: stbx-cli [options] [command]
Options:
-V, --version output the version number
-h, --help output usage information
Commands:
codec work with transactions
help [cmd] display help for [cmd]
```
### `codec`: Transaction Encoding & Decoding
When you type `stbx codec --help` you get this:
```
Usage: stbx-codec [options]
Options:
-V, --version output the version number
-e, --encode Encode message
-d, --decode Decode message
-i, --input [filename] File to read data from
-o, --output [filename] File to write transaction to
-f, --force Force file overwrite
-h, --help output usage information
```
Examples:
```sh
$ echo '{"previous":"deadc0de","firing":{"execution":"beefbabe","path":[0]}}' > file
$ cat file | stbx codec --encode
0a04deadc0de12080a04beefbabe1000
```
```sh
$ echo "0a04deadc0de12080a04beefbabe1000" | stbx codec --decode
{"previous":"deadc0de","firing":{"execution":"beefbabe","path":[0]}}
```
```sh
echo 0a04deadbeef1a420a2b0a0161100010011000100110001002100010021000100310001003100010001a01781a01791a017a1a0177120f0a017a10011801180222017322017418001800 | stbx codec --decode
{"nets":[{"name":"a","partition":[0,1,0,1,0,2,0,2,0,3,0,3,0,0],"names":["x","y","z","w"]}],"diagrams":[{"name":"z","width":1,"pixels":[1,2],"names":["s","t"]}],"labels":[0,0]}
```
### `hash`: Compute Hashes
Computes hashes, pass a hexadecimal string via stdin or using a file (with `-i`).
```sh
$ echo 'feedc0de' | stbx hash fafec8b68b40c948930d7e4f7263a1b8e9bbd543ec37d0f7b3403b6fd6066737fb75b56ac43290b9d8c1191882fc2f0c055eb06f6155c4a462c4f61d71b92e7e
```
### `convert`: Conversion from GreatSPN
Convert PNPRO to statebox petrinet representation.
```
Usage: stbx-cli-convert [options]
Options:
-V, --version output the version number
-i, --input [filename] File to read input from
-o, --output [filename] File to write output to
-F, --force Force file overwrite
-l, --list List available pages (Petri nets) in PNPRO project file.
-1, --one [name] Extract single net by name.
-a, --all Extract all nets as a dictionary.
-f, --format [format] Specify output format: `nll` or `nbpt`.
-h, --help output usage information
```
The output format is specified with `--format` and is either either:
- `nbpt` ~ Nano-Bipartite Graph
- `nll` ~ Number List List
Usage:
```sh
# list all nets
stbx convert -i myProject.pnpro --list
# pick one and output as NBPT
stbx convert -i myProject.pnpro --one "name" --format=nbpt
```
```
# convert all and write to `myProject.nets` as NLL
stbx convert -i myProject.pnpro --all -o myProject.nets
```
If you convert with `--all`, the output format is a JSON dictionary of either `nbpt` or `nll` object, indexed by page title.