ClearCredit
Source: contracts/core/ClearCredit.sol · Guide: credit · Upgradeable (UUPS proxy)
Functions that change state
Function
Who can call
Also
__MutualCredit_init(string name_, string symbol_)onlyInitializing__StableCredit_init(string name_, string symbol_, address access_)onlyInitializingaccrueCarry(address member, address recipient, uint256 amount)onlyCreditIssuerapprove(address spender, uint256 amount)The token holder
burn(uint256 amount)The holder, or an approved spender
burnFrom(address account, uint256 amount)An approved spender
burnLostDebt(address member, uint256 amount)Checked inside the function
createCreditLine(address member, uint256 limit, uint256 initialBalance)onlyCreditIssuerdecreaseAllowance(address spender, uint256 subtractedValue)The token holder
increaseAllowance(address spender, uint256 addedValue)The token holder
initialize(string name_, string symbol_, address access_)Once, when the proxy is initialised
originatePurchase(address member, uint256 purchase, address merchant, uint256 payout, address coop, uint256 discount)onlyCreditIssuerrepayCreditBalance(address member, uint128 amount)Anyone; acts on the caller's own account
repayCreditBalanceFor(address payer, address member, uint128 amount)onlyCreditIssuerrepayRefund(address member, uint256 paid, address merchant, uint256 merchantShare, address coop, uint256 coopShare, uint256 carryWithheld)onlyCreditIssuerreversePurchase(address member, uint256 purchase, address merchant, uint256 payout, address coop, uint256 discount)onlyCreditIssuersetAccessManager(address _access)onlyAdminsetAssurancePool(address _assurancePool)onlyAdminsetNetworkRegistry(address _networkRegistry)onlyAdminsetPayoutPool(address _payoutPool)onlyAdminsettleClaim(address holder, uint256 amount)Checked inside the function
transfer(address to, uint256 amount)The token holder
transferFrom(address from, address to, uint256 amount)The holder, or an approved spender
updateCreditLimit(address member, uint256 creditLimit)onlyCreditIssuerupgradeTo(address newImplementation)onlyAdmin (via _authorizeUpgrade)upgradeToAndCall(address newImplementation, bytes data)onlyAdmin (via _authorizeUpgrade)payable
writeOffCreditLine(address member, uint256 amount)onlyCreditIssuerRead functions
Anyone can call these; they change nothing.
Function
Returns
access()address
allowance(address owner, address spender)uint256
assurancePool()address
balanceOf(address account)uint256
creditBalanceOf(address member)uint256
creditLimitLeftOf(address member)uint256
creditLimitOf(address member)uint256
decimals()uint8
issuerCreditLimit(address, address)uint256
lostDebt()uint256
name()string
networkRegistry()address
payoutPool()address
proxiableUUID()bytes32
symbol()string
totalCreditLimitOf(address member)uint256
totalSupply()uint256
Events
Event
AccessManagerUpdated(address accessManager)AdminChanged(address previousAdmin, address newAdmin)Approval(address owner indexed, address spender indexed, uint256 value)AssurancePoolUpdated(address assurancePool)BeaconUpgraded(address beacon indexed)CarryAccrued(address member indexed, address recipient indexed, uint256 amount)ClaimSettled(address holder indexed, uint256 amount)ComplianceUpdated(address sender, address recipient, bool senderCompliance, bool recipientCompliance)CreditBalanceRepaid(address member, uint128 amount)CreditLimitUpdate(address member, uint256 limit)CreditLimitUpdated(address member, uint256 creditLimit)CreditLineCreated(address member, uint256 creditLimit, uint256 balance)CreditLineWrittenOff(address member, uint256 amount)Initialized(uint8 version)LostDebtBurned(address member, uint256 amount)NetworkRegistryUpdated(address networkRegistry)PayoutPoolUpdated(address payoutPool indexed)PurchaseOriginated(address member indexed, address merchant indexed, uint256 purchase, uint256 payout, uint256 discount)PurchaseReversed(address member indexed, address merchant indexed, uint256 purchase, uint256 payout, uint256 discount)RefundCarryWithheld(address member indexed, uint256 amount)RefundOwedByMerchant(address merchant indexed, uint256 amount)RefundRepaid(address member indexed, uint256 returned, uint256 carryWithheld)RepaymentRouted(address destination indexed, uint256 amount)Transfer(address from indexed, address to indexed, uint256 value)Upgraded(address implementation indexed)Errors
Error
StableCreditCeilingExceeded(address member, uint256 owed, uint256 ceiling)StableCreditInvalidCarryRecipient()StableCreditNoCreditLine(address issuer, address member)StableCreditNoPayoutPool()StableCreditNotAnIssuer(address caller)StableCreditPurchaseDoesNotNet(uint256 purchase, uint256 payout, uint256 discount)StableCreditRefundExceedsPayment(uint256 withheld, uint256 paid)StableCreditReversalExceedsObligation(address member, uint256 reversing, uint256 owed)StableCreditTransactionInvalid(address from, address to, uint256 amount)StableCreditTreasuryCannotCoverDiscount(uint256 discount, uint256 held)StableCreditUnauthorizedSettler(address caller)