🔗
SoftLink
WebsiteGithubMediumTwitter
  • Welcome
  • GETTING STARTED
    • White Paper
    • Overview
    • Quick Links
  • PROTOCOL
    • Reserves
    • Lending
    • Flash Loans
    • Gas-Free Flash Loans
    • Cross Chain
    • Fee Distribution
    • CFR Distribution
    • Staking
    • Locking
    • Governance
    • Looking Forward
  • DEVELOPERS
    • Addresses
    • Contracts
      • CoreReserveFactory
      • CoreReserve
      • LendingYieldManagers (LYM)
        • AaveLYM
        • CompoundLYM
        • EulerLYM
        • IronBankLYM
      • CoreFlashLoanParams
      • CoreFlashLoanReceiver
      • CoreRewardsDistributor
      • CoreStakingManager
      • CoreLockManager
      • SOFT
    • Interfaces
      • IFlashLoanReceiver
      • ILendingYieldManager
  • SUPPORT
    • Contact Us
Powered by GitBook
On this page
  1. PROTOCOL

Reserves

SoftLink Reserves V0

Mechanism Design

Reserves are pretty straightforward.

In order for a reserve to exist one must create a reserve via the CoreReserveFactory:

struct CreateReserveParams { 
    CoreReserve.ReserveType reserveType; 
    bool isNativeTokenReserve; 
    address reserveToken; 
    uint256 reserveTokenInitialAmount; 
} 

function createReserve(CreateReserveParams calldata _params) external payable nonReentrant whenNotPaused returns (address)

Once a reserve is created, one can provide liquidity to the selected reserve via a deposit:

function deposit(uint256 _depositAmount, address _creationDepositor) external payable nonReentrant whenNotPaused

Whenever one is ready to withdraw liquidity, they can simply do so via a withdrawal:

function withdraw(uint256 _withdrawAmount) external nonReentrant whenNotPaused
PreviousQuick LinksNextLending

Last updated 2 years ago