A Rust and CosmWasm implementation of the Anchor Protocol money market on the Terra blockchain.
You can find information about the architecture, usage, and function of the smart contracts in the documentation.
Money Market has dependencies on Anchor Token Contracts and bAsset Contracts.
Contract | Reference | Description |
---|---|---|
overseer |
doc | Manages money market overalls, stores borrower information |
market |
doc | Handles Terra stablecoin deposits and borrows, ANC distribution to borrowers |
custody_bluna |
doc | Handles bLuna collateral deposits and withdrawals |
custody_beth |
doc | Handles bEth collateral deposits and withdrawals |
interest_model |
doc | Calculates the current borrow interest rate based on the market situation |
distribution_model |
doc | Calculates the borrower ANC emission rate based on the previous emission rate |
oracle |
doc | Provides a price feed for bAsset collaterals |
liquidation |
doc | OTC exchange contract for bAsset collateral liquidations |
- Rust v1.44.1+
wasm32-unknown-unknown
target- Docker
-
Install
rustup
via https://rustup.rs/ -
Run the following:
rustup default stable
rustup target add wasm32-unknown-unknown
- Make sure Docker is installed.
Each contract contains Rust unit and integration tests embedded within the contract source directories. You can run:
cargo unit-test
cargo integration-test
After making sure tests pass, you can compile each contract with the following:
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 production builds, run the following:
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.11.5
This performs several optimizations which can significantly reduce the final size of the contract binaries, which will be available inside the artifacts/
directory.
This repository is licensed under the Apache 2.0 license. See LICENSE for full disclosure.
© 2021 Anchor Protocol.