Home

Awesome

Astroport Core

codecov

Multi pool type automated market-maker (AMM) protocol powered by smart contracts on the Terra, Injective, Neutron, Sei and Osmosis blockchains.

Contracts diagram

contract diagram

General Contracts

NameDescription
factoryPool creation factory
pairPair with x*y=k curve
pairOne way swap pair to convert ASTRO.cw20 to TokenFactory ASTRO
pair_concentratedPassive Concentrated Liquidity pair inspired by Curve v2 whitepaper
pair_stablePair with stableswap invariant curve
pair_transmuterConstant sum pair with no fee ans slippage for 1:1 assets
pair_xyk_sale_taxXYK pair with buy and sell taxes
routerMulti-hop trade router
whitelistCW1 whitelist contract (Astroport treasury)

Tokenomics Contracts

Tokenomics related smart contracts are hosted on ../contracts/tokenomics.

NameDescription
incentivesRewards distributor for liquidity providers
makerFee collector and swapper
stakingxASTRO staking contract
vestingASTRO distributor for generator rewards
xastro_tokenxASTRO token contract (extended cw20 with onchain balances history)

Building Contracts

You will need Rust 1.68.0+ with wasm32-unknown-unknown target installed.

You can compile each contract:

Go to contract directory and run

cargo wasm
cp ../../target/wasm32-unknown-unknown/release/astroport_token.wasm .
ls -l astroport_token.wasm
sha256sum astroport_token.wasm

You can run tests for all contracts

Run the following from the repository root

cargo test

For a production-ready (compressed) build:

Run the following from the repository root

./scripts/build_release.sh

The optimized contracts are generated in the artifacts/ directory.

Deployment

You can find versions and commits for actual deployed contracts here.

Docs

Docs can be generated using cargo doc --no-deps

Bug Bounty

The contracts in this repo are included in a bug bounty program.