Many Chain Multisig System (MCMS) provides tools and libraries to deploy, manage and interact with MCMS across multiple chains.
Install the developments tools and dependencies to get started.
asdf is a tool version manager. All dependencies used for local development of this repo are
managed through asdf
. To install asdf
:
- Install asdf
- Follow the instructions to ensure
asdf
is shimmed into your terminal or development environment
task is an alternative to make
and is used to provide commands for everyday
development tasks. To install task
:
- Add the asdf task plugin:
asdf plugin add task
- Install
task
withasdf install task
- Run
task -l
to see available commands
Now that you have asdf
and task
installed, you can install the dependencies for this repo:
task install:tools
Run the entire test suite with:
task test
More test
commands can be found by running task -l
task test:unit
We use Chainlink Testing Framework for E2E tests. Run them with:
task test:e2e
For verbose output just pass -v as command argument:
task test:e2e -- -v
By default, we use anvil
evm. If you want to run e2e tests with specific configuration different chain etc. you need to specify path to the config
after default one to override or add to the previous values. It's pattern of CTF more here:
task test:e2e CTF_CONFIGS=../config.toml,../custom_configs/avax_fuji.toml
To run e2e tests for solana blockchain, we need to have the MCM compiled program.
MCM Solana program is located in chainlink-ccip repo.
We can run go generate -tags=e2e ./e2e/...
to pull in the latest version of the program from that repo and compile it.
The output will be saved in e2e/artifacts/solana/
folder.
For real ledger signing verification you can run:
task test:ledger
Remember to connect usb device, unlock it and open ethereum app.
Run the linters with:
task lint
More lint
commands can be found by running task -l
We use Docsify to generate our documentation. You can modify the docs by editing the markdown
files in the docs
directory.
Run the local documentation server with:
task docs
For instructions on how to contribute to mcms
,
see CONTRIBUTING.md
For instructions on how to release mcms
,
see RELEASE.md