OtcUtils

OTC facet internal library

initializeOtc

function initializeOtc(struct IOtc.OtcConfig _config) internal

Check IOtcUtils interface for documentation

updateOtcConfig

function updateOtcConfig(struct IOtc.OtcConfig _config) internal

Check IOtcUtils interface for documentation

addOtcCollateralBalance

function addOtcCollateralBalance(uint8 _collateralIndex, uint256 _collateralAmount) internal

Check IOtcUtils interface for documentation

sellGnsForCollateral

function sellGnsForCollateral(uint8 _collateralIndex, uint256 _collateralAmount) internal

Check IOtcUtils interface for documentation

getOtcConfig

function getOtcConfig() internal view returns (struct IOtc.OtcConfig)

Check IOtcUtils interface for documentation

getOtcBalance

function getOtcBalance(uint8 _collateralIndex) internal view returns (uint256)

Check IOtcUtils interface for documentation

getOtcRate

function getOtcRate(uint8 _collateralIndex) internal view returns (uint256)

Check IOtcUtils interface for documentation

_getSlot

function _getSlot() internal pure returns (uint256)

Returns storage slot to use when fetching storage relevant to library

_getStorage

function _getStorage() internal pure returns (struct IOtc.OtcStorage s)

Returns storage pointer for storage struct in diamond contract, at defined slot

_getMultiCollatDiamond

function _getMultiCollatDiamond() internal view returns (contract IGNSMultiCollatDiamond)

Returns current address as multi-collateral diamond interface to call other facets functions.

_calculateGnsAmount

function _calculateGnsAmount(uint8 _collateralIndex, uint256 _collateralAmount, uint256 _gnsPriceCollateral) internal view returns (uint256)

Calculate GNS amount for given collateral amount

Parameters

Name
Type
Description

_collateralIndex

uint8

index of the collateral

_collateralAmount

uint256

amount of collateral (collateral precision)

_gnsPriceCollateral

uint256

price of GNS in collateral (1e10)

_calculateGnsDistribution

function _calculateGnsDistribution(uint256 _gnsAmount) internal view returns (uint256 treasuryAmountGns, uint256 stakingAmountGns, uint256 burnAmountGns)

Calculate GNS distribution for treasury, GNS staking and burn

Parameters

Name
Type
Description

_gnsAmount

uint256

amount of GNS tokens to distribute (1e18)

_distributeTreasuryGns

function _distributeTreasuryGns(uint256 _gnsAmount) internal

Distributes treasury rewards in GNS tokens

Parameters

Name
Type
Description

_gnsAmount

uint256

amount of GNS tokens to distribute (1e18)

_distributeStakingGns

function _distributeStakingGns(uint256 _gnsAmount) internal

Distributes staking rewards in GNS tokens

Parameters

Name
Type
Description

_gnsAmount

uint256

amount of GNS tokens to distribute (1e18)

_burnGns

function _burnGns(uint256 _gnsAmount) internal

Burns GNS tokens

Parameters

Name
Type
Description

_gnsAmount

uint256

amount of GNS tokens to burn (1e18)