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. Shufflers (Layer 2)
  4. Contract functionalities

Shuffler Creation

PreviousContract functionalitiesNextShuffler Management

Last updated 1 year ago

CtrlK

To create a Shuffler one will have to fill the following fields:

initialOwner

initialTimelock

asset

name

symbol

salt

function createShuffler(
        address initialOwner,
        uint256 initialTimelock,
        address asset,
        string memory name,
        string memory symbol,
        bytes32 salt
    ) external returns (IShuffler shuffler) {
        shuffler =
            IShuffler(address(new Shuffler{salt: salt}(initialOwner, MORPHO, initialTimelock, asset, name, symbol)));

        isShuffler[address(shuffler)] = true;

        emit EventsLib.CreateShuffler(
            address(shuffler), msg.sender, initialOwner, initialTimelock, asset, name, symbol, salt
        );
    }