FluidCLXStockOracle ​
Inherits:FluidOracle, FluidCLXStockOracleAdmin, IFluidCLXStockOracle, IFluidOracleWrite
Title: FluidCLXStockOracle
CL 24/5 × Backed multiplier: session staleness, extended-hours caps, split guards, pause.
Split/desync protections and how each freeze clears (details: SPEC §6): band (live multiplier vs accepted, accrued) → gov/class-3 confirmMultiplierChange; scheduled (pending multiplier ≤ 24h out, outside band) → Backed override, or activation hands to band; price gap (live vs stored anchor round, strict −down%/+up%) → self-heals on transient prints, else gov/class-3 out-of-band updateRegularHoursAnchor or 5d reference age-out (fail-open). RTH round warmed by Write / updateRegularHoursAnchor. Policy + state via getConfig().
Functions ​
constructor ​
constructor(CLXStockOracleConstructorParams memory p_) FluidOracle(p_.infoName, p_.targetDecimals) Helpers(p_);backedUnderlying ​
Backed underlying (wrapper.asset()); separate from getConfig() to keep that ABI stable.
function backedUnderlying() external view returns (address);getConfig ​
function getConfig() public view returns (CLXStockOracleConfig memory config_);getExchangeRate ​
Returns the raw underlying exchange rate in 1e27 precision, without applying collateral/debt caps.
Heartbeat-aware read: if a heartbeat refresh is due, computes and returns the fresh rate without requiring a storage write.
function getExchangeRate() external view returns (uint256);getExchangeRateOperate ​
Get the exchangeRate_ between the underlying asset and the peg asset in 1e27 for operates
function getExchangeRateOperate() public view returns (uint256 exchangeRate_);getExchangeRateLiquidate ​
Get the exchangeRate_ between the underlying asset and the peg asset in 1e27 for liquidations
function getExchangeRateLiquidate() public view returns (uint256 exchangeRate_);getExchangeRateOperateDebt ​
Debt operate: extended-hours clamp inverted vs collateral (floor downside).
function getExchangeRateOperateDebt() public view returns (uint256 exchangeRate_);getExchangeRateLiquidateDebt ​
Debt liquidate: extended-hours clamp inverted vs collateral (cap upside).
function getExchangeRateLiquidateDebt() public view returns (uint256 exchangeRate_);getExchangeRateOperateWrite ​
Non-view operate rate. May persist oracle state (e.g. last regular-hours price).
function getExchangeRateOperateWrite() public returns (uint256);getExchangeRateLiquidateWrite ​
Non-view liquidate rate. May persist oracle state (e.g. last regular-hours price).
function getExchangeRateLiquidateWrite() public returns (uint256);getExchangeRateOperateDebtWrite ​
Non-view operate debt rate. May persist oracle state (e.g. last regular-hours price).
function getExchangeRateOperateDebtWrite() public returns (uint256);getExchangeRateLiquidateDebtWrite ​
Non-view liquidate debt rate. May persist oracle state (e.g. last regular-hours price).
function getExchangeRateLiquidateDebtWrite() public returns (uint256);getExchangeRateOperateRaw ​
Same as getExchangeRateOperate(), for resolver/UI reads only. May bypass checks that can revert on the guarded getter.
Skips band / staleness reverts; still applies extended-hours caps.
function getExchangeRateOperateRaw() external view returns (uint256 exchangeRate_);getExchangeRateLiquidateRaw ​
Same as getExchangeRateLiquidate(), for resolver/UI reads only. May bypass checks that can revert on the guarded getter.
Skips band / staleness reverts; still applies extended-hours caps.
function getExchangeRateLiquidateRaw() external view returns (uint256 exchangeRate_);getExchangeRateRaw ​
Same as getExchangeRate(), for resolver/UI reads only. May bypass checks that can revert on the guarded getter.
Example today: L2 sequencer uptime / grace-period. Additional bypasses may be added here over time.
function getExchangeRateRaw() external view returns (uint256 exchangeRate_);updateRegularHoursAnchor ​
Permissionless RTH anchor: latest CL round in current regular window (+ buffer); once the window is past, also the latest pre-window round within heartbeat of the close. Seals the close only after regularEnd + buffer; earlier calls store a hint, so late prints count. Gov / class ≥ 3 may roll out-of-band vs the gap reference — accepts a verified CL↔split re-sync.
function updateRegularHoursAnchor(uint80 roundId_) external;Parameters
| Name | Type | Description |
|---|---|---|
roundId_ | uint80 | Start hint (0 = stored/latest). Walks to last in-window round. |