Index Coop Resource Center
  • Welcome to The Index Coop.
  • Products
    • Trade
      • Index Coop Leverage Suite
      • Leverage Token Parameters
      • Leverage Token Keepers
      • Trading Interface Guide
      • Ripcord Guide
    • Earn
      • High Yield ETH Index (hyETH)
      • Interest Compounding ETH Index (icETH)
    • Asset Management
      • Product Development Process
      • Product Revenue Tokens (PRTs)
    • Legacy Products
      • How to Redeem Legacy Products
      • DeFi Pulse Index (DPI)
      • Bankless BED Index (BED)
      • Metaverse Index (MVI)
      • Diversified Staked ETH Index (dsETH)
      • Index Coop CoinDesk ETH Trend Index (cdETI)
      • Index Coop Large Cap Index (ic21)
      • ETH 2x Flexible Leverage Index (ETH2x-FLI)
      • BTC 2x Flexible Leverage Index (BTC2x-FLI)
      • Flexible Leverage Index- Polygon (FLI-Ps)
        • ETH 2x Flexible Leverage Index (ETH2x-FLI-P)
        • Inverse ETH Flexible Leverage Index (iETH-FLI-P)
        • BTC 2x Flexible Leverage Index (BTC2x-FLI-P)
        • Inverse BTC Flexible Leverage Index (iBTC-FLI-P)
        • MATIC 2x Flexible Leverage Index (MATIC2x-FLI-P)
        • Inverse MATIC Flexible Leverage Index (iMATIC-FLI-P)
      • Market Neutral Yield ETH (MNYe)
      • Bankless DeFi Innovation Index (GMI)
      • Data Economy Index (DATA)
      • Legacy Contract Addresses
      • Gitcoin Staked ETH Index (gtcETH)
  • Protocol
    • Index Protocol
      • Core Contracts
        • Set Token
        • Set Token Creator
        • Controller
        • Integration Registry
        • Price Oracle
        • Set Valuer
      • Modules
        • Basic Issuance Module
        • Debt Issuance Module v2
        • NAV Issuance Module
        • Trade Module
        • Streaming Fee Module
        • Wrap Module
        • Airdrop Module
        • Claim Module
        • Governance Module
        • Compound Leverage Module
        • Aave v2 Leverage Module
        • Aave v3 Leverage Module
        • Auction Rebalance Module
    • Set Protocol v2
    • Security and Audits
    • Contract Verification
    • Programmatic Redemptions
  • Resources
    • Governance
      • $INDEX - Governance Token
      • Index Improvement Proposals (IIP) Overview
        • IIP Step-by-Step
        • Governance Representatives
        • IIP Template
        • Product (DG) Template
      • Meta-Governance
      • Delegation
    • Data & Analytics
    • Multisigs
    • Press Kit
Powered by GitBook
On this page
  • Select Methods
  • issue()
  • redeem()
  • initialize()
  • Select View Methods
  • getRequiredComponentUnitsForIssue()
  1. Protocol
  2. Index Protocol
  3. Modules

Basic Issuance Module

PreviousModulesNextDebt Issuance Module v2

Last updated 6 months ago

The BasicIssuanceModule is a smart contract that enables issuance and redemption functionality on a for default-only positions.

Select Methods

issue()

function issue(ISetToken _setToken, uint256 _quantity, address _to)

Deposits the SetToken's position components into the SetToken and mints the SetToken of the given quantity to the specified _to address. This function only handles Default Positions (positionState = 0). Components must be approved to this contract (BasicIssuanceModule) ahead of the issuance call.

Parameter Name

Type

Description

_setToken

ISetToken

Instance of the SetToken

_quantity

uint256

Quantity of the SetToken to mint

_to

address

Address to mint SetToken to

redeem()

function redeem( ISetToken _setToken, uint256 _quantity,address _to)

Redeems the SetToken's positions and sends the components of the given quantity to the caller. This function only handles Default Positions (positionState = 0).

Parameter Name

Type

Description

_setToken

ISetToken

Address of the SetToken

_quantity

uint256

Quantity of the SetToken toredeem

_to

address

Address to redeem components to

initialize()

function initialize(ISetToken _setToken, IManagerIssuanceHook _preIssueHook)

Manager only. Initializes this module to the SetToken with issuance-related hooks. Only callable by the SetToken's manager. Hook addresses are optional. Address(0) means that no hook will be called

Parameter Name

Type

Description

_setToken

ISetToken

Address of the SetToken

_preIssueHook

IManagerIssuanceHook

Instance of the Manager Contract with the Pre-Issuance Hook function

Select View Methods

getRequiredComponentUnitsForIssue()

function getRequiredComponentUnitsForIssue(ISetToken _setToken, uint256 _quantity) view returns (address[] memory, uint256[] memory)

Retrieves the addresses and units required to mint a particular quantity of SetToken.

Parameter Name

Type

Description

_setToken

ISetToken

Address of the SetToken

_quantity

uint256

Quantity of the SetToken toredeem

Return Name

Type

Description

componentAddresses

address[]

Address of the SetToken

componentQuantities

uint256[]

List of component units required to issue the quantity of SetTokens

SetToken