This repository implements IBC solo machine which can be used to interface with other machines & replicated ledgers which speak IBC.
Before building and using stag
, you need to install the following dependencies:
- Rust: https://rustup.rs/
- Just: https://just.systems/
- Protocol Buffer Compiler: https://grpc.io/docs/protoc-installation/
To build stag-cli
, run:
just build-cli
To build stag-cli
in release mode, run:
just build-cli-release
To install stag-cli
, run:
just install-cli
For documentation on using
stag-cli
, refer ./stag-cli/README.md
To build stag-grpc
, run:
just build-grpc
To build stag-grpc
in release mode, run:
just build-grpc-release
To install stag-grpc
, run:
just install-grpc
To run stag-grpc
, run:
stag run-grpc
For more details on configuration options, run
stag-grpc start --help
after installing gRPC server on your local machine.
- NodeJS: https://nodejs.org/en/ (for
tailwindcss
) - wasm-pack: https://rustwasm.github.io/wasm-pack/ (Trunk automatically installs it but it's better to install it yourself)
- Trunk: https://trunkrs.dev/
To build stag-ui
, run:
just build-ui
To build stag-ui
in release mode, run:
just build-ui-release
These will put all the built artifacts in stag-ui/dist
directory.
To start an auto-reloading development server for stag-ui
, run:
just serve-ui
In addition to the above dependencies, you need to install the following dependencies for testing:
- Ignite CLI: https://ignite.com/cli
Before running integration tests, you need to start a local blockchain:
ignite scaffold chain github.com/devashish/mars --no-module
cp mars-config.yml ./mars/config.yml
cd mars
ignite chain serve
In a new terminal window, run:
just test
To run coverage tests, you'll need nightly Rust and llvm-tools-preview
component.
rustup toolchain install nightly
rustup component add --toolchain nightly llvm-tools-preview
To get coverage report (in html format), run:
just coverage-html
In a new terminal window, run (this will use Google Chrome to run browser tests, so, make sure that it is installed on your machine):
just browser-test
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE)
- MIT license (LICENSE-MIT)
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.