Multi pool type automated market-maker (AMM) protocol powered by smart contracts on the Terra blockchain.
Name | Description |
---|---|
factory |
Pool creation factory |
pair |
Pair with x*y=k curve |
pair_stable |
Pair with stableswap invariant curve |
pair_stable_bluna |
Pair with stableswap invariant curve handling bLUNA rewards for LPs |
token |
CW20 (ERC20 equivalent) token implementation |
router |
Multi-hop trade router |
oracle |
TWAP oracles for x*y=k pool types |
whitelist |
CW1 whitelist contract |
Tokenomics related smart contracts are hosted on ../contracts/tokenomics.
Name | Description |
---|---|
generator |
Rewards generator for liquidity providers |
generator_proxy_to_mirror |
Rewards generator proxy for liquidity providers |
maker |
Fee collector and swapper |
staking |
xASTRO staking contract |
vesting |
ASTRO distributor for generator rewards |
xASTRO |
xASTRO token contract |
You will need Rust 1.44.1+ with wasm32-unknown-unknown target installed.
You can run unit tests for each contract directory via:
cargo test
You can compile each contract using:
RUSTFLAGS='-C link-arg=-s' cargo wasm
cp ../../target/wasm32-unknown-unknown/release/cw1_subkeys.wasm .
ls -l cw1_subkeys.wasm
sha256sum cw1_subkeys.wasm
For a production-ready (compressed) build, run the following from the repository root:
docker run --rm -v "$(pwd)":/code \
--mount type=volume,source="$(basename "$(pwd)")_cache",target=/code/target \
--mount type=volume,source=registry_cache,target=/usr/local/cargo/registry \
cosmwasm/workspace-optimizer:0.12.3
The optimized contracts are generated in the artifacts/ directory.
Docs can be generated using cargo doc --no-deps
The contracts in this repo are included in a bug bounty program.