End-to-end testing environment for fully simulated chains, powered by Starship.
The current commands will read from config.yaml
to build a multi-chain testing environment. Currently, the image includes agoric
, osmosis
, and cosmoshub
chains and a hermes relayer between each.
The agoric
software revision includes the vats necessary for building and testing orchestration applications:
- vat-network
- vat-ibc
- vat-localchain
- vat-transfer
- vat-orchestration
The Kubernetes deployments in config.yaml
and config.fusdc.yaml
are configured to request approximately 6.5 CPU cores and 9.5 GiB of memory from the host machine. Make sure your local Kubernetes environment (Docker Desktop or similar) has sufficient resources allocated.
Install the relevant dependencies:
yarn install
(Note that the '@agoric/*' deps will come from the parent directory due to yarn link --relative .. --all
)
Ensure you have Kubernetes available. See https://docs.cosmology.zone/starship/get-started/step-2.
The following will install kubectl
, kind
, helm
, and yq
as needed:
make clean setup
You can start everything with a single command:
make start
This command will:
- Install the Helm chart and start the Starship service
- Wait for all pods to be ready
- Set up port forwarding
- Fund the provision pool
- Override the chain registry
The process may take 7-12 minutes to complete. You'll see status updates as the pods come online.
Alternatively, you can run the steps individually:
# install helm chart and start starship service
make install
# wait for all pods to spin up
make wait-for-pods
# expose ports on your local machine (useful for testing dapps)
make port-forward
# set up Agoric testing environment
make fund-provision-pool override-chain-registry register-bank-assets
If you get an error like "connection refused", you need to wait longer, until all the pods are Running.
# stop the containers and port-forwarding
make stop
# delete the clusters
make clean
You can use the following commands to view logs:
# agoric slogfile
make tail-slog
# agoric validator logs
kubectl logs agoriclocal-genesis-0 --container=validator --follow
# relayer logs
kubectl logs hermes-agoric-cosmoshub-0 --container=relayer --follow
kubectl logs hermes-osmosis-cosmoshub-0 --container=relayer --follow
# run tests with go-relayer configuration
make start FILE=config.go-relayer.yaml
RELAYER_TYPE=go-relayer yarn test
For the steps below, you must import a key to agd
or create a new one.
# create a `user1` key from a random seed
kubectl exec -i agoriclocal-genesis-0 -c validator -- agd keys add user1
# get the newly created address
ADDR=$(kubectl exec -i agoriclocal-genesis-0 -c validator -- agd keys show user1 -a)
# fund the wallet with some tokens
make fund-wallet COIN=20000000ubld ADDR=$ADDR
# provision the smart wallet
make provision-smart-wallet ADDR=$ADDR
These only work if you've done make port-forward
.