Natrium docs
  • ๐ŸงชOverview
    • ๐Ÿ“–Introducing Natrium
    • ๐Ÿ”ฎVision
  • โš™๏ธProtocol Overview
    • ๐ŸŒProtocol architecture
      • โšœ๏ธNatrium Core & Enterprise
    • ๐ŸŒŠLiquidations
    • ๐Ÿ“ˆInterest Rate Models
    • โšกOracles
    • โš–๏ธProtocol Fees
  • ๐Ÿ’ฐTokenomics
    • ๐Ÿš€Presale & Launch
    • ๐ŸงฌNTM & NaCl
  • โš’๏ธDev Docs
    • ๐Ÿ”‘Contract specs
      • Isolated Pools (Layer 1)
        • Bucket config
        • Supply underlying asset
        • Withdraw underlying asset
        • Deposit OverCollateralized asset
        • Borrow
        • Repay
        • Withdraw OverCollaterlized asset
        • Liquidate
      • Shufflers (Layer 2)
        • Contract functionalities
          • Shuffler Creation
          • Shuffler Management
          • Supply Cap Management
          • Risk Exposure Management
      • Error Library
        • Error lib
  • ๐Ÿ“šLibrary
    • Brand Assets
    • Community Links
    • Legal Disclaimer
Powered by GitBook
On this page
  1. โš’๏ธDev Docs
  2. ๐Ÿ”‘Contract specs
  3. Isolated Pools (Layer 1)

Bucket config

Create permissionless markets

PreviousIsolated Pools (Layer 1)NextSupply underlying asset

Last updated 1 year ago

CtrlK

createMarket is used in creating permissionless markets :

function createMarket(MarketParams memory marketParams) external {
    Id id = marketParams.id();

    // Ensure that Interest Rate Model (IRM) and Liquidation Loan-To-Value (LLTV) are enabled.
    require(isIrmEnabled[marketParams.irm], ErrorsLib.IRM_NOT_ENABLED);
    require(isLltvEnabled[marketParams.lltv], ErrorsLib.LLTV_NOT_ENABLED);

    // Ensure that the market has not been created before.
    require(market[id].lastUpdate == 0, ErrorsLib.MARKET_ALREADY_CREATED);

    // Set the last update timestamp for the market.
    unchecked {
        market[id].lastUpdate = uint128(block.timestamp);
    }

    // Store market parameters.
    idToMarketParams[id] = marketParams;

    // Emit an event to signal the creation of the market.
    emit EventsLib.CreateMarket(id, marketParams);
}

Bucket config :

loanToken
collateralToken
oracle
irm
lltv