Perps sites
The perps application is made up of both the contracts and the frontend. We use different frontend sites to choose which contracts we use. (Though on non-production deployments there is also a contract selector available.) Different versions of the frontend are built from different branches of the codebase.
| Branch | Contracts shown | Site |
|---|---|---|
develop | All | https://develop.staff.levana.exchange |
develop | Beta | https://develop-testnet.staff.levana.exchange |
develop | Mainnet | https://develop-mainnet.staff.levana.exchange |
staging | All | https://staging.staff.levana.exchange |
staging | Beta | https://staging-testnet.staff.levana.exchange |
staging | Mainnet | https://staging-mainnet.staff.levana.exchange |
main | All | https://main.staff.levana.exchange |
main | Beta | https://testnet-trade.levana.finance |
main | Mainnet | https://trade.levana.finance |
Note that any domain name with the word staff requires authentication with a Levana email address to access.
Perps contracts
At any given time, Levana runs multiple testnet and mainnet sets of contracts of Perps. Each set of contracts has different purposes and stability guarantees. The following apply to testnet:
beta- these are production, testnet deployments. They are intended to always work and be as stable as possible. They are exposed to end users on a regular basis.dev- these are the primary contracts that we test against internallydebug- similar todev, but we don't run liquidity, utilization, or trade bots. This makes it easier to test market corner cases.qa- takesdebugone step farther and allows QA to manually update pricesci- contracts that can be migrated or reinstantiated at any time, not intended to be stable but to get quick feedback on changestrade- used for trading competitions, have special rules to disallow things like multiple faucet taps
We prepend the (shortened) chain name to each of these environments to get the contract family name, such as osmodev, seibeta, and osmoci. As new versions of contracts are deployed, the sites and bots automatically move to the newer versions.
Mainnet contracts are handled differently for heightened security. There are no contract families and contract addresses are hard-coded into the frontend.
Frontend branches
There are three primary branches in the Perps frontend codebase:
develop- any approved PR can be merged into this branch. This branch should generally work correctly, but has not necessarily undergone full QA.staging- a testing ground for code before deploying to production. Generally this branch should only have code that is expected to work. But since full QA typically occurs onstaging, it's still possible that there will be regressions here.main- the production branch, used for public facing deployments.