Skip to main content

IHomogenizer

Functions#

initialize#

  function initialize(    string name,    string symbol,    address underlyingContractAddress,    address eligibilityContractAddress,    address maxRate,    uint256 minRate,    uint256 buydownRatio,    uint256 useArmMargin,    bool useCurrentRate  ) external

The initialization function used for proxy contracts in lieu of a constructor

Parameters:#

NameTypeDescription
namestringThe ERC-20 name of the new homogenizer
symbolstringThe ERC-20 symbol of the new homogenizer
underlyingContractAddressaddressThe address of the digitizer i.e., the ERC20Lookthrough's underlying contract adddress
eligibilityContractAddressaddressThe address of the contract used to check a loan token's eligibility for homogenization
maxRateaddressThe highest coupon rate that a loan can have to be eligible for homogenization; a loan's original coupon rate is used unless either useArmMargin or useCurrentRate are set to true
minRateuint256The highest coupon rate that a loan can have to be eligible for homogenization; a loan's original coupon rate is used unless either useArmMargin or useCurrentRate are set to true
buydownRatiouint256A multiplier that's used to adjust the cash required to account for differences in the underlying loans' coupon rates and servicing fees
useArmMarginuint256A boolean value indicating that the adjustable-rate margin should be used in lieu of the original coupon rate
useCurrentRateboolA boolean value indicating that the current coupon rate should be used in lieu of the original coupon rate

digitizerAddress#

  function digitizerAddress(  ) external returns (address)

Returns the address of the underlying digitizer contract

isEligible#

  function isEligible(    uint256 tokenId  ) external returns (bool)

Returns true if a loan token meets the eligibility criteria of the homogenizer

Parameters:#

NameTypeDescription
tokenIduint256The ERC721 ID associated with a loan token

homogenize#

  function homogenize(    uint256 tokenId  ) external

Homogenize a loan token

Parameters:#

NameTypeDescription
tokenIduint256The ERC721 ID associated with a loan token

dehomogenize#

  function dehomogenize(    uint256 tokenId  ) external

Dehomogenize a loan token

Parameters:#

NameTypeDescription
tokenIduint256The ERC721 ID associated with a loan token

_dehomogenize#

  function _dehomogenize(    uint256 tokenId  ) external

An alternative to dehomogenize that can be called from HomogenizerFactoryClone.dehomogenizeBatch

Parameters:#

NameTypeDescription
tokenIduint256The ERC721 ID associated with a loan token

currentCashRequired#

  function currentCashRequired(    uint256 tokenId  ) external returns (uint256)

Returns the stablecoin quantity required to pay for homogenization

Parameters:#

NameTypeDescription
tokenIduint256The ERC721 ID associated with a loan token

onForgoCashFlowFromDigitizer#

  function onForgoCashFlowFromDigitizer(  ) external returns (bytes4)

Function that signals to Digitizer contract cash flows are to be redirected to a SWEEPER_ROLE wallet

Events#

LoanHomogenized#

  event LoanHomogenized(    address digitizerAddress,    uint256 tokenId  )

Event emitted when a loan is homogenized

Parameters:#

NameTypeDescription
digitizerAddressaddressThe digitizer contract address
tokenIduint256The ERC721 ID associated with the homogenized loan token

LoanDehomogenized#

  event LoanDehomogenized(    address digitizerAddress,    uint256 tokenId  )

Event emitted when a loan is dehomogenized

Parameters:#

NameTypeDescription
digitizerAddressaddressThe digitizer contract address
tokenIduint256The ERC721 ID associated with the homogenized loan token