IHomogenizer
Functions#
initialize#
function initialize( string name, string symbol, address underlyingContractAddress, address eligibilityContractAddress, address maxRate, uint256 minRate, uint256 buydownRatio, uint256 useArmMargin, bool useCurrentRate ) externalThe initialization function used for proxy contracts in lieu of a constructor
Parameters:#
| Name | Type | Description |
|---|---|---|
name | string | The ERC-20 name of the new homogenizer |
symbol | string | The ERC-20 symbol of the new homogenizer |
underlyingContractAddress | address | The address of the digitizer i.e., the ERC20Lookthrough's underlying contract adddress |
eligibilityContractAddress | address | The address of the contract used to check a loan token's eligibility for homogenization |
maxRate | address | The 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 |
minRate | uint256 | The 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 |
buydownRatio | uint256 | A multiplier that's used to adjust the cash required to account for differences in the underlying loans' coupon rates and servicing fees |
useArmMargin | uint256 | A boolean value indicating that the adjustable-rate margin should be used in lieu of the original coupon rate |
useCurrentRate | bool | A 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:#
| Name | Type | Description |
|---|---|---|
tokenId | uint256 | The ERC721 ID associated with a loan token |
homogenize#
function homogenize( uint256 tokenId ) externalHomogenize a loan token
Parameters:#
| Name | Type | Description |
|---|---|---|
tokenId | uint256 | The ERC721 ID associated with a loan token |
dehomogenize#
function dehomogenize( uint256 tokenId ) externalDehomogenize a loan token
Parameters:#
| Name | Type | Description |
|---|---|---|
tokenId | uint256 | The ERC721 ID associated with a loan token |
_dehomogenize#
function _dehomogenize( uint256 tokenId ) externalAn alternative to dehomogenize that can be called from HomogenizerFactoryClone.dehomogenizeBatch
Parameters:#
| Name | Type | Description |
|---|---|---|
tokenId | uint256 | The 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:#
| Name | Type | Description |
|---|---|---|
tokenId | uint256 | The 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:#
| Name | Type | Description |
|---|---|---|
digitizerAddress | address | The digitizer contract address |
tokenId | uint256 | The ERC721 ID associated with the homogenized loan token |
LoanDehomogenized#
event LoanDehomogenized( address digitizerAddress, uint256 tokenId )Event emitted when a loan is dehomogenized
Parameters:#
| Name | Type | Description |
|---|---|---|
digitizerAddress | address | The digitizer contract address |
tokenId | uint256 | The ERC721 ID associated with the homogenized loan token |