Augmentlabs StableCoin with AMCF
  • Overview
    • 💡About Us
    • ✨Our Vision
  • Smart Contracts
    • 🪙USC Token
    • 🪙AGC Token
    • ⚖️Token Controller
    • 👨‍🍳MasterChef
    • ⚙️Uniswap Liquidity Auto Provider
    • ⚙️Pancakeswap Liquidity Auto Provider
    • 🕰️Timelock
    • 🔗AGC Governor
Powered by GitBook
On this page
  • Overview
  • Dependencies
  • How it works
  • Roles
  • Participants
  1. Smart Contracts

USC Token

USC token is the stable coin in the ecosystem

PreviousOur VisionNextAGC Token

Last updated 2 years ago

Overview

Contract:

USC Token is an ERC20Upgradeable smart contract that acts as the stable coin in the ecosystem.

You can refer to the for reference.

Dependencies

  • ERC20Upgradeable: Openzeppelin's ERC20 smart contract that is upgradeable.

  • Pausable: Allows for pausing/unpausing of the smart contract.

  • Mintable: Allows for minting new USC tokens to a user.

  • Burnable: Allows for holders of USC token to burn their tokens.

  • AccessControl: Allows for multiple permission roles to exist in the same contract.

How it works

The USC token is a basic ERC20 contract with no modification or limitation for users. Users are free to transfer, approve, burn,... just like other ERC20 tokens.

The owner of the USC contract can mint new tokens to a user without any special mechanism.

Roles

  • Admin (DEFAULT_ADMIN_ROLE): Admin role is able to pause/unpause the smart contract and can perform mintaction. Admin role will be held by a gnosis safe address to ensure security.

  • Pauser (PAUSER_ROLE): Pauser role is able to pause/unpause the contract in case of emergencies. Initially no specific address is the holder of the Pauser role other than the Admin.

  • Upgrader (UPGRADER_ROLE): Upgrader role is able to upgrade the smart contract for future phases. Initially no specific address is the holder of the Upgrader role other than the Admin.

Participants

  • Gnosis-safe address as Admin: This ensures important roles are secure and doesn't have single-point-of-failure. Also for future extension, Admin can grant roles to other addresses if needed.

  • User: Freely to do whatever he/she wants with the token with no restrictions.

Minter (MINTER_ROLE): Minter role is able to perform mint action. The contract has Minter role so it can perform the redeem workflow.

as Minter: The Token controller will have Minter role as it is a part of the redeem flow. TokenController can mint new USC tokens in exchange for burning user's AGC token as a part of the redeem process.

🪙
USC.sol
Whitepaper
TokenController
TokenController