make install
The command will compile and install nolusd locally on your machine.
init-local-network.sh
generates a network setup, including the deployment of platform contracts (only) and initial Hermes setup (Nolus chain configuration).
First, generate the mnemonic you will use for Hermes:
nolusd keys mnemonic
Initialize and start (run ./scripts/init-local-network.sh --help
for additional configuration options):
./scripts/init-local-network.sh --reserve-tokens <reserve_account_init_tokens> --hermes-mnemonic <the_mnemonic_generated_by_the_previous_steps> --dex-admin-mnemonic <mnemonic_phrase> --store-code-privileged-account-mnemonic <mnemonic_phrase>
*Notes:
-
Make sure the
nolus-money-market
repository is checked out as a sibling to this one. -
!!! Before running the
./scripts/init-local-network.sh
again, make sure thenolusd
andhermes
processes are killed. -
The nolusd logs are stored in
~/.nolus
.
nolusd start --home "networks/nolus/local-validator-1"
On a live network, a new DEX can be deployed using the following steps.
-
provide a certain amount for the Hermes account (DEX side)
Recover your Hermes wallet on the DEX network and use a faucet to obtain some amount.
Example for the Osmosis DEX (Osmo-test-5 faucet):
osmosisd keys add hermes_key --recover
-
start hermes
./scripts/add-new-dex.sh --wasm-artifacts-path <wasm_artifacts_dir_path> --dex-name <dex_name> --dex-chain-id <new_dex_chain_id> --dex-ip-addr-rpc-host <new_dex_ip_addr_rpc_host_part> --dex-ip-addr-grpc-host <new_dex_ip_addr_grpc_host_part> --dex-account-prefix <new_dex_account_prefix> --dex-gas-price-denom <new_dex_price_denom> --dex-trusting-period-secs <new_dex_trusting_period_in_seconds> --dex-if-interchain-security <if_interchain_security_true/false> --protocol-currency <new_protocol_currency> --protocol-swap-tree <new_protocol_swap_tree> --dex-network <dex_network_name> --dex-type-and-params '<dex_specific_field>'
The script takes care of setting up Hermes to work with the new DEX and, for now, deploying DEX-specific contracts (More about deploying contracts on a live network can be found here).
*Notes:
-
Execute
./scripts/add-new-dex.sh --help
for additional configuration options -
The
protocol-swap-tree
must be passed in single quotes (for example: --protocol-swap-tree '{"value":[0,"USDC"],"children":[{"value":[5,"OSMO"],"children":[{"value":[12,"ATOM"]}]}]}') -
The script will locate the Hermes account from the Hermes configuration directory and link it to the new DEX
By default, make build
generates a dynamically linked binary. In case someone would like to reproduce the way the binary is built in the pipeline then the command to achieve it locally is:
docker run --rm -it -v "$(pwd)":/code public.ecr.aws/nolus/builder:<replace_with_the latest_tag> make build -C /code
- Update the Go modules
- Update the wasmvm version in the builder Dockerfile at .github/images/builder.Dockerfile
- Increment the IMAGE_TAG and use the same version in the build-binary step in .github/workflows/build.yaml