Quantillon Protocol

PriceValidationLibrary

Git Source

Title: PriceValidationLibrary

Author: Quantillon Labs - Nicolas Bellengé - @chewbaccoin

Library for price validation and deviation checks

Main characteristics:

  • Price deviation checks to prevent flash loan attacks
  • Block-based validation for price freshness
  • Reduces code duplication across contracts

Note: security-contact: team@quantillon.money

Functions

checkPriceDeviation

Checks if price deviation exceeds maximum allowed

Only checks deviation if enough blocks have passed since last update

Notes:

  • security: Prevents flash loan attacks by validating price deviations

  • validation: Validates price changes are within acceptable bounds

  • state-changes: No state changes - view function

  • events: No events emitted

  • errors: No errors thrown - returns boolean flag

  • reentrancy: Not applicable - view function

  • access: Internal library function - no access restrictions

  • oracle: Uses provided price parameters (no direct oracle calls)

function checkPriceDeviation(
    uint256 currentPrice,
    uint256 lastValidPrice,
    uint256 maxDeviation,
    uint256 lastUpdateBlock,
    uint256 minBlocksBetweenUpdates
) internal view returns (bool shouldRevert, uint256 deviationBps);

Parameters

NameTypeDescription
currentPriceuint256Current price from oracle
lastValidPriceuint256Last valid cached price
maxDeviationuint256Maximum allowed deviation in basis points
lastUpdateBlockuint256Block number of last price update
minBlocksBetweenUpdatesuint256Minimum blocks required between updates

Returns

NameTypeDescription
shouldRevertboolTrue if deviation check should cause revert
deviationBpsuint256Calculated deviation in basis points