Accruespenaltyminter for missed update collateral intervals and/or excessOwedMminter if present before CVminter is updated
Called at least once per updateCollateralInterval by Minter or missedCollateralUpdatePenalty is imposed on the entire activeOwedMminter since the collateral of minter is 0 if failing to call updateCollateral once per updateCollateralInterval
GetsupdateCollateral message digest for each validator signature
Verifies that each signature is valid, unique, and is not in the future, and is coming from TTG-approved validator
Verifies that at least updateCollateralThreshold of valid unique signatures of TTG-approved validators were provided and Finds the minimumTimestamp of given validators' timestamps[] .
Calculates current activeOwedMminter, and ImposesmissedCollateralUpdatePenaltyminter for every missed and not yet penalized update collateral interval. UpdatespenalizedUntilTimestampminter if a penalty was imposed.
missedCollateralUpdatePenaltyminter=activeOwedMminter∗missedIntervalsNum∗penaltyRate where penalizeFromminter=max(lastCollateralUpdateminter,lastPenalizedUntilminter)missedIntervalsNum=(now−penalizeFromminter)/updateCollateralIntervalpenalizedUntilTimestampminter=penalizeFromminter+missedIntervalsNum∗updateCollateralInterval
Calculates current excessActiveOwedminterImposesundercollateralizationPenaltyminter if excessActiveOwedMminter>0 and penalizeFromminter<minimumTimestamp where excessActiveOwedMminter=activeOwedMminter−maxAllowedActiveOwedMminterpenalizeFromminter=max(lastCollateralUpdateminter,lastPenalizedUntilminter)
activeOwedMminter+=undercollateralizationPenaltymintertotalActiveOwedM+=undercollateralizationPenaltyminter
After penalization new activeOwedMminter,t1=activeOwedMminter,t0+undercollateralizationPenaltyminter
Resolves pending retrievals. Deducts the amount of retrieval from totalPendingCollateralRetrievalsminter for every retrieval. DeletesretrievalId from pendingCollateralRetrievalsmintertotalPendingCollateralRetrievalsminter−=∑iretrievalminter,retrievalId[i]
Verifies that minimumTimestamp is greater than earliestAllowedTimestampminterlastUpdateTimestampminter=max(lastCollateralUpdateminter,latestProposedRetrievalTimestampminter)minUpdateCollateralInterval=min(updateCollateralInterval,now)earliestAllowedTimestampminter=max(lastUpdateTimestampminter,now−minUpdateCollateralInterval)