# Nym Mixnet Contract This is the [cosmwasm](https://www.cosmwasm.com) smart contract which runs the Nym mixnet. ## Compiling in development ``` RUSTFLAGS='-C link-arg=-s' cargo wasm ``` ## Production build Install wasm-opt: ``` npm i wasm-opt -g ``` Run `make mixnet-opt` from the top level Nym directory ## CI Support We have template configurations for both [GitHub Actions](.github/workflows/Basic.yml) and [Circle CI](.circleci/config.yml) in the generated project, so you can get up and running with CI right away. One note is that the CI runs all `cargo` commands with `--locked` to ensure it uses the exact same versions as you have locally. This also means you must have an up-to-date `Cargo.lock` file, which is not auto-generated. The first time you set up the project (or after adding any dep), you should ensure the `Cargo.lock` file is updated, so the CI will test properly. This can be done simply by running `cargo check` or `cargo unit-test`. ## Using your project Once you have your custom repo, you should check out [Developing](./Developing.md) to explain more on how to run tests and develop code. Or go through the [online tutorial](https://www.cosmwasm.com/docs/getting-started/intro) to get a better feel of how to develop. [Publishing](./Publishing.md) contains useful information on how to publish your contract to the world, once you are ready to deploy it on a running blockchain. And [Importing](./Importing.md) contains information about pulling in other contracts or crates that have been published. Please replace this README file with information about your specific project. You can keep the `Developing.md` and `Publishing.md` files as useful referenced, but please set some proper description in the README.