Issuer¶
Description¶
This contract does all the heavy lifting of issuing and burning sUSD
. It's used primarily to reduce the size of the Synthetix
contract
Source: contracts/Issuer.sol
Architecture¶
Related Contracts¶
Details
FeePool
: The Synthetix contract remits exchange fees as sUSD to the fee pool, and also uses it to keep track of historical issuance records for each issuer.SynthetixState
: This state contract stores the debt ledger and the current issuance information for synth issuers.
Variables¶
CONTRACT_NAME
¶
Type: bytes32
availableSynths
¶
Type: contract ISynth[]
synths
¶
Type: mapping(bytes32 => contract ISynth)
synthsByAddress
¶
Type: mapping(address => bytes32)
Constructor¶
constructor
¶
Details
Signature
constructor(address _owner, address _resolver)
Visibility
public
State Mutability
``
Views¶
allNetworksDebtInfo
¶
Details
Signature
allNetworksDebtInfo() view returns (uint256 debt, uint256 sharesSupply, bool isStale)
Visibility
public
State Mutability
view
anySynthOrSNXRateIsInvalid
¶
Details
Signature
anySynthOrSNXRateIsInvalid() view returns (bool anyRateInvalid)
Visibility
external
State Mutability
view
availableCurrencyKeys
¶
Details
Signature
availableCurrencyKeys() view returns (bytes32[])
Visibility
external
State Mutability
view
availableSynthCount
¶
Details
Signature
availableSynthCount() view returns (uint256)
Visibility
external
State Mutability
view
canBurnSynths
¶
Details
Signature
canBurnSynths(address account) view returns (bool)
Visibility
external
State Mutability
view
collateral
¶
Details
Signature
collateral(address account) view returns (uint256)
Visibility
external
State Mutability
view
collateralisationRatio
¶
Details
Signature
collateralisationRatio(address _issuer) view returns (uint256 cratio)
Visibility
external
State Mutability
view
collateralisationRatioAndAnyRatesInvalid
¶
Details
Signature
collateralisationRatioAndAnyRatesInvalid(address _issuer) view returns (uint256 cratio, bool anyRateIsInvalid)
Visibility
external
State Mutability
view
debtBalanceOf
¶
Details
Signature
debtBalanceOf(address _issuer, bytes32 currencyKey) view returns (uint256 debtBalance)
Visibility
external
State Mutability
view
getSynths
¶
Details
Signature
getSynths(bytes32[] currencyKeys) view returns (contract ISynth[])
Visibility
external
State Mutability
view
issuanceRatio
¶
Details
Signature
issuanceRatio() view returns (uint256)
Visibility
external
State Mutability
view
lastIssueEvent
¶
Details
Signature
lastIssueEvent(address account) view returns (uint256)
Visibility
external
State Mutability
view
liquidationAmounts
¶
Details
Signature
liquidationAmounts(address account, bool isSelfLiquidation) view returns (uint256 totalRedeemed, uint256 debtToRemove, uint256 escrowToLiquidate, uint256 initialDebtBalance)
Visibility
external
State Mutability
view
maxIssuableSynths
¶
Details
Signature
maxIssuableSynths(address _issuer) view returns (uint256)
Visibility
external
State Mutability
view
minimumStakeTime
¶
Type: uint256
Details
Signature
minimumStakeTime() view returns (uint256)
Visibility
external
State Mutability
view
remainingIssuableSynths
¶
Details
Signature
remainingIssuableSynths(address _issuer) view returns (uint256 maxIssuable, uint256 alreadyIssued, uint256 totalSystemDebt)
Visibility
external
State Mutability
view
resolverAddressesRequired
¶
Details
Signature
resolverAddressesRequired() view returns (bytes32[] addresses)
Visibility
public
State Mutability
view
totalIssuedSynths
¶
Details
Signature
totalIssuedSynths(bytes32 currencyKey, bool excludeOtherCollateral) view returns (uint256 totalIssued)
Visibility
external
State Mutability
view
transferableSynthetixAndAnyRateIsInvalid
¶
Details
Signature
transferableSynthetixAndAnyRateIsInvalid(address account, uint256 balance) view returns (uint256 transferable, bool anyRateIsInvalid)
Visibility
external
State Mutability
view
Restricted Functions¶
addSynth
¶
Details
Signature
addSynth(contract ISynth synth)
Visibility
external
State Mutability
``
Modifiers
addSynths
¶
Details
Signature
addSynths(contract ISynth[] synthsToAdd)
Visibility
external
State Mutability
``
Modifiers
burnForRedemption
¶
Details
Signature
burnForRedemption(address deprecatedSynthProxy, address account, uint256 balance)
Visibility
external
State Mutability
``
Modifiers
burnSynths
¶
Details
Signature
burnSynths(address from, uint256 amount)
Visibility
external
State Mutability
``
Modifiers
burnSynthsOnBehalf
¶
Details
Signature
burnSynthsOnBehalf(address burnForAddress, address from, uint256 amount)
Visibility
external
State Mutability
``
Requires
Modifiers
burnSynthsToTarget
¶
Details
Signature
burnSynthsToTarget(address from)
Visibility
external
State Mutability
``
Modifiers
burnSynthsToTargetOnBehalf
¶
Details
Signature
burnSynthsToTargetOnBehalf(address burnForAddress, address from)
Visibility
external
State Mutability
``
Requires
Modifiers
burnSynthsWithoutDebt
¶
Details
Signature
burnSynthsWithoutDebt(bytes32 currencyKey, address from, uint256 amount) returns (bool rateInvalid)
Visibility
external
State Mutability
``
Requires
Modifiers
issueMaxSynths
¶
Details
Signature
issueMaxSynths(address from)
Visibility
external
State Mutability
``
Modifiers
issueMaxSynthsOnBehalf
¶
Details
Signature
issueMaxSynthsOnBehalf(address issueForAddress, address from)
Visibility
external
State Mutability
``
Requires
Modifiers
issueSynths
¶
Details
Signature
issueSynths(address from, uint256 amount)
Visibility
external
State Mutability
``
Requires
Modifiers
issueSynthsOnBehalf
¶
Details
Signature
issueSynthsOnBehalf(address issueForAddress, address from, uint256 amount)
Visibility
external
State Mutability
``
Requires
Modifiers
issueSynthsWithoutDebt
¶
Details
Signature
issueSynthsWithoutDebt(bytes32 currencyKey, address to, uint256 amount) returns (bool rateInvalid)
Visibility
external
State Mutability
``
Requires
Modifiers
liquidateAccount
¶
Details
Signature
liquidateAccount(address account, bool isSelfLiquidation) returns (uint256 totalRedeemed, uint256 debtRemoved, uint256 escrowToLiquidate)
Visibility
external
State Mutability
``
Requires
Modifiers
modifyDebtSharesForMigration
¶
Details
Signature
modifyDebtSharesForMigration(address account, uint256 amount)
Visibility
external
State Mutability
``
Modifiers
removeSynth
¶
Details
Signature
removeSynth(bytes32 currencyKey)
Visibility
external
State Mutability
``
Modifiers
removeSynths
¶
Details
Signature
removeSynths(bytes32[] currencyKeys)
Visibility
external
State Mutability
``
Modifiers
upgradeCollateralShort
¶
Details
Signature
upgradeCollateralShort(address short, uint256 amount)
Visibility
external
State Mutability
``
Requires
Modifiers
Internal Functions¶
_addSynth
¶
Details
Signature
_addSynth(contract ISynth synth)
Visibility
internal
State Mutability
``
Requires
Emits
_addToDebtRegister
¶
Details
Signature
_addToDebtRegister(address from, uint256 amount)
Visibility
internal
State Mutability
``
_availableCurrencyKeysWithOptionalSNX
¶
Details
Signature
_availableCurrencyKeysWithOptionalSNX(bool withSNX) view returns (bytes32[])
Visibility
internal
State Mutability
view
_burnSynths
¶
Details
Signature
_burnSynths(address debtAccount, address burnAccount, uint256 amount, uint256 existingDebt) returns (uint256 amountBurnt)
Visibility
internal
State Mutability
``
_canBurnSynths
¶
Details
Signature
_canBurnSynths(address account) view returns (bool)
Visibility
internal
State Mutability
view
_collateral
¶
Details
Signature
_collateral(address account) view returns (uint256)
Visibility
internal
State Mutability
view
_collateralisationRatio
¶
Details
Signature
_collateralisationRatio(address _issuer) view returns (uint256, bool)
Visibility
internal
State Mutability
view
_debtBalanceOfAndTotalDebt
¶
Details
Signature
_debtBalanceOfAndTotalDebt(uint256 debtShareBalance, bytes32 currencyKey) view returns (uint256 debtBalance, uint256 totalSystemValue, bool anyRateIsInvalid)
Visibility
internal
State Mutability
view
_debtForShares
¶
Details
Signature
_debtForShares(uint256 sharesAmount) view returns (uint256)
Visibility
internal
State Mutability
view
_debtShareBalanceOf
¶
Details
Signature
_debtShareBalanceOf(address account) view returns (uint256)
Visibility
internal
State Mutability
view
_getMinValue
¶
Details
Signature
_getMinValue(uint256 x, uint256 y) pure returns (uint256)
Visibility
internal
State Mutability
pure
_issueSynths
¶
Details
Signature
_issueSynths(address from, uint256 amount, bool issueMax)
Visibility
internal
State Mutability
``
Requires
_lastIssueEvent
¶
Details
Signature
_lastIssueEvent(address account) view returns (uint256)
Visibility
internal
State Mutability
view
_latestRoundData
¶
Details
Signature
_latestRoundData(address aggregator) view returns (uint80, int256, uint256, uint256, uint80)
Visibility
internal
State Mutability
view
_liquidationAmounts
¶
Details
Signature
_liquidationAmounts(address account, bool isSelfLiquidation) view returns (uint256 totalRedeemed, uint256 debtToRemove, uint256 escrowToLiquidate, uint256 debtBalance)
Visibility
internal
State Mutability
view
Requires
_maxIssuableSynths
¶
Details
Signature
_maxIssuableSynths(address _issuer) view returns (uint256, bool)
Visibility
internal
State Mutability
view
_onlySynthRedeemer
¶
Details
Signature
_onlySynthRedeemer() view
Visibility
internal
State Mutability
view
Requires
_rateAndInvalid
¶
Details
Signature
_rateAndInvalid(bytes32 currencyKey) view returns (uint256, bool)
Visibility
internal
State Mutability
view
_rawDebtRatioAndUpdatedAt
¶
Details
Signature
_rawDebtRatioAndUpdatedAt() view returns (uint256, uint256)
Visibility
internal
State Mutability
view
_redeemableCollateralForTarget
¶
Details
Signature
_redeemableCollateralForTarget(address account, uint256 redeemTarget, uint256 rewardsSum) view returns (uint256 totalRedeemed, uint256 escrowToLiquidate)
Visibility
internal
State Mutability
view
_remainingIssuableSynths
¶
Details
Signature
_remainingIssuableSynths(address _issuer) view returns (uint256 maxIssuable, uint256 alreadyIssued, uint256 totalSystemDebt, bool anyRateIsInvalid)
Visibility
internal
State Mutability
view
_removeFromDebtRegister
¶
Details
Signature
_removeFromDebtRegister(address from, uint256 debtToRemove, uint256 existingDebt)
Visibility
internal
State Mutability
``
_removeSynth
¶
Details
Signature
_removeSynth(bytes32 currencyKey)
Visibility
internal
State Mutability
``
Requires
Emits
_requireCanBurnOnBehalf
¶
Details
Signature
_requireCanBurnOnBehalf(address burnForAddress, address from) view
Visibility
internal
State Mutability
view
Requires
_requireCanIssueOnBehalf
¶
Details
Signature
_requireCanIssueOnBehalf(address issueForAddress, address from) view
Visibility
internal
State Mutability
view
Requires
_requireRatesNotInvalid
¶
Details
Signature
_requireRatesNotInvalid(bool anyRateIsInvalid) pure
Visibility
internal
State Mutability
pure
Requires
_rewardEscrowBalanceOf
¶
Details
Signature
_rewardEscrowBalanceOf(address account) view returns (uint256)
Visibility
internal
State Mutability
view
_setLastIssueEvent
¶
Details
Signature
_setLastIssueEvent(address account)
Visibility
internal
State Mutability
``
_sharesForDebt
¶
Details
Signature
_sharesForDebt(uint256 debtAmount) view returns (uint256)
Visibility
internal
State Mutability
view
_snxBalanceOf
¶
Details
Signature
_snxBalanceOf(address account) view returns (uint256)
Visibility
internal
State Mutability
view
_snxToUSD
¶
Details
Signature
_snxToUSD(uint256 amount, uint256 snxRate) pure returns (uint256)
Visibility
internal
State Mutability
pure
_totalIssuedSynths
¶
Details
Signature
_totalIssuedSynths(bytes32 currencyKey, bool excludeCollateral) view returns (uint256 totalIssued, bool anyRateIsInvalid)
Visibility
internal
State Mutability
view
_usdToSnx
¶
Details
Signature
_usdToSnx(uint256 amount, uint256 snxRate) pure returns (uint256)
Visibility
internal
State Mutability
pure
_verifyCircuitBreakers
¶
Details
Signature
_verifyCircuitBreakers() returns (bool)
Visibility
internal
State Mutability
``
_voluntaryBurnSynths
¶
Details
Signature
_voluntaryBurnSynths(address from, uint256 amount, bool burnToTarget)
Visibility
internal
State Mutability
``
Requires
circuitBreaker
¶
Details
Signature
circuitBreaker() view returns (contract ICircuitBreaker)
Visibility
internal
State Mutability
view
debtCache
¶
Details
Signature
debtCache() view returns (contract IIssuerInternalDebtCache)
Visibility
internal
State Mutability
view
delegateApprovals
¶
Details
Signature
delegateApprovals() view returns (contract IDelegateApprovals)
Visibility
internal
State Mutability
view
exchangeRates
¶
Details
Signature
exchangeRates() view returns (contract IExchangeRates)
Visibility
internal
State Mutability
view
exchanger
¶
Details
Signature
exchanger() view returns (contract IExchanger)
Visibility
internal
State Mutability
view
liquidator
¶
Details
Signature
liquidator() view returns (contract ILiquidator)
Visibility
internal
State Mutability
view
liquidatorRewards
¶
Details
Signature
liquidatorRewards() view returns (contract ILiquidatorRewards)
Visibility
internal
State Mutability
view
rewardEscrowV2
¶
Details
Signature
rewardEscrowV2() view returns (contract IHasBalance)
Visibility
internal
State Mutability
view
synthRedeemer
¶
Details
Signature
synthRedeemer() view returns (contract ISynthRedeemer)
Visibility
internal
State Mutability
view
synthetixDebtShare
¶
Details
Signature
synthetixDebtShare() view returns (contract ISynthetixDebtShare)
Visibility
internal
State Mutability
view
synthetixERC20
¶
Details
Signature
synthetixERC20() view returns (contract IERC20)
Visibility
internal
State Mutability
view
External Functions¶
setCurrentPeriodId
¶
Details
Signature
setCurrentPeriodId(uint128 periodId)
Visibility
external
State Mutability
``
Requires
Modifiers¶
onlySynthRedeemer
¶
onlySynthetix
¶
onlyTrustedMigrators
¶
onlyTrustedMinters
¶
Events¶
SynthAdded
¶
Signature: SynthAdded(bytes32 currencyKey, address synth)
SynthRemoved
¶
Signature: SynthRemoved(bytes32 currencyKey, address synth)