RevolvingIssuer
Source: contracts/peripherals/RevolvingIssuer.sol · Guide: credit · Upgradeable (UUPS proxy)
Functions that change state
Function
Who can call
Also
__CreditIssuer_init(address _stableCredit)onlyInitializingabsorbRepayment(address member, uint256 available, uint256 minRate)onlyStableCreditaddTier(bytes32 kind, uint256 ratePerCycle, uint64 cycleLength_)onlyOperatorinitialize(address _stableCredit, address _carryTreasury)Once, when the proxy is initialised
initializeCreditLine(address member, uint256 limit, uint256 initialBalance, uint256 periodLength, uint256 graceLength)onlyOperatornotNull(member), notInActivePeriod(member)materialiseCarry(address member)Anyone
openLine(address member, uint256[] capacities, uint256 periodLength, uint256 graceLength)onlyOperatornotNull(member), notInActivePeriod(member)pausePeriodOf(address member)onlyOperatorrenounceOwnership()The owner
repayCardSpend(bytes32 ref, address member, uint256 amount)Anyone; acts on the caller's own account
notNull(member)repayForMember(bytes32 ref, address member, uint256 amount)Anyone; acts on the caller's own account
notNull(member)reverseCardSpend(bytes32 ref, uint256 amount)Anyone; acts on the caller's own account
setAutoRepay(bool enabled)Anyone; acts on the caller's own account
setCardSettlementAccount(address account)onlyOperatornotNull(account)setCardSettler(address settler, bool allowed)onlyOperatornotNull(settler)setCarryTreasury(address treasury)onlyOperatorsetExposureSource(address _exposureSource)onlyOperatorsetGraceLengthOf(address member, uint256 graceLength)onlyOperatorsetPeriodExpirationOf(address member, uint256 periodExpiration)onlyOperatorsetTierActive(uint256 tierId, bool active)onlyOperatorsetTierCapacity(address member, uint256 tierId, uint256 capacity)onlyOperatorsetTierCarryRecipient(uint256 tierId, address recipient)onlyOperatorsetTierRate(uint256 tierId, uint256 ratePerCycle)onlyOperatorsettleCardSpend(bytes32 ref, address member, uint256 amount)Anyone; acts on the caller's own account
notNull(member)settleFromCollateral(address member, uint256 tierId, uint256 amount)onlyOperatorsyncCreditPeriod(address member)Anyone
syncCreditPositions(address sender, address recipient, uint256 amount)onlyStableCredittransferOwnership(address newOwner)The owner
underwriteMember(address member)Anyone
notNull(member), canIssueCreditTo(member)unpausePeriodOf(address member)onlyOperatorupdateCreditPeriod(address member, uint256 periodExpiration, uint256 graceLength)onlyOperatorupgradeTo(address newImplementation)onlyOwner (via _authorizeUpgrade)upgradeToAndCall(address newImplementation, bytes data)onlyOwner (via _authorizeUpgrade)payable
validateCreditTransaction(address sender, address recipient, uint256 amount)onlyStableCreditRead functions
Anyone can call these; they change nothing.
Function
Returns
autoRepayEnabled(address)bool
autoRepaymentOf(bytes32 ref)uint256
averageBalanceCarriedOf(address member)uint256
capacityOf(address member, uint256 tierId)uint256
cardRepaymentOf(bytes32 ref)uint256
cardSettlementAccount()address
cardSettlementOf(bytes32 ref)address member, uint256 amount
carryOf(address member, uint256 tierId)uint256
carryRecipientOf(uint256 tierId)address
carryTreasury()address
creditPeriods(address)uint256 issuedAt, uint256 expiration, uint256 graceLength, bool paused
cycleLength()uint64
debtByKind(address member)bytes32[] kinds, uint256[] amounts
defaultedAt(address)uint64
drawnOf(address member, uint256 tierId)uint256
exposureSource()address
graceExpirationOf(address member)uint256
hasBalanceToMeasure(address member)bool
hasDefaulted(address member)bool
headroomOf(address member, uint256 tierId)uint256
inActivePeriod(address member)bool
incomeOf(address)uint256 creditsReceived, uint256 depositsReceived, uint256 debtSeconds, uint64 lastAccrued, uint64 windowStart
inCompliance(address member)bool
inDefault(address member)bool
inExpiredPeriod(address member)bool
inGracePeriod(address member)bool
inInitializedPeriod(address member)bool
isCardSettler(address)bool
isFrozen(address member)bool
itdOf(address member)uint256
meetsITD(address member, uint256 minimumItd)bool
nextRepaymentRate(address member)uint256 rate, bool hasPosition
owner()address
paused()bool
periodExpirationOf(address member)uint256
principalOf(address member, uint256 tierId)uint256
proxiableUUID()bytes32
stableCredit()address
tierAt(uint256 tierId)bytes32 kind, uint256 ratePerCycle, bool active
tierCount()uint256
totalCapacityOf(address member)uint256 total
totalDrawnOf(address member)uint256 total
totalPrincipalOf(address member)uint256 total
Events
Event
AdminChanged(address previousAdmin, address newAdmin)AutoRepaid(bytes32 ref indexed, address member indexed, uint256 amount)AutoRepaySet(address member indexed, bool enabled)BeaconUpgraded(address beacon indexed)CardSettlementAccountUpdated(address account)CardSettlerUpdated(address settler indexed, bool allowed)CardSpendRepaid(bytes32 ref indexed, address member indexed, uint256 amount)CardSpendReversed(bytes32 ref indexed, address member indexed, uint256 amount)CardSpendSettled(bytes32 ref indexed, address member indexed, uint256 amount)CarryRecipientUpdated(uint256 tierId indexed, address recipient)CarryTreasuryUpdated(address treasury)CreditLineDefaulted(address member)CreditPeriodCreated(address member, uint256 periodExpiration, uint256 graceLength)CreditPeriodExpired(address member)CreditTermsPaused(address member)CreditTermsUnpaused(address member)GraceLengthUpdated(address member, uint256 graceLength)Initialized(uint8 version)OwnershipTransferred(address previousOwner indexed, address newOwner indexed)Paused(address account)TierAdded(uint256 tierId indexed, bytes32 kind, uint256 ratePerCycle)TierCapacityUpdated(address member indexed, uint256 tierId indexed, uint256 capacity)TierCarryMaterialised(address member indexed, uint256 tierId indexed, uint256 amount)TierDrawn(address member indexed, uint256 tierId indexed, uint256 amount)TierRateUpdated(uint256 tierId indexed, uint256 ratePerCycle)TierRepaid(address member indexed, uint256 tierId indexed, uint256 amount)Unpaused(address account)Upgraded(address implementation indexed)Errors
Error
InvalidCycleLength()NotInitialized()RateTooHigh(uint256 ratePerCycle)RevolvingIssuerAutoRepayAlreadyUsed(bytes32 ref)RevolvingIssuerAutoRepayNotEnabled(address member)RevolvingIssuerCapacityBelowDrawn(uint256 tierId, uint256 capacity, uint256 drawn)RevolvingIssuerCardAlreadyRepaid(bytes32 ref)RevolvingIssuerCardAlreadySettled(bytes32 ref)RevolvingIssuerCardAmountZero()RevolvingIssuerCardFloatCannotCover(uint256 amount, uint256 held)RevolvingIssuerCardHeadroom(address member, uint256 amount, uint256 headroom)RevolvingIssuerCardNotSettled(bytes32 ref)RevolvingIssuerCardRepaymentExceedsDrawn(address member, uint256 amount, uint256 principal)RevolvingIssuerCardReversalExceedsSettlement(bytes32 ref, uint256 amount, uint256 settled)RevolvingIssuerCycleMismatch(uint64 expected, uint64 given)RevolvingIssuerNoCardSettlementAccount()RevolvingIssuerNoCarryRecipient()RevolvingIssuerNotCardSettler(address caller)RevolvingIssuerRatesMustAscend(uint256 previous, uint256 proposed)RevolvingIssuerUnknownTier(uint256 tierId)