Skip to content

FluidCLXStockOracle ​

Git Source

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 ​

solidity
constructor(CLXStockOracleConstructorParams memory p_) FluidOracle(p_.infoName, p_.targetDecimals) Helpers(p_);

backedUnderlying ​

Backed underlying (wrapper.asset()); separate from getConfig() to keep that ABI stable.

solidity
function backedUnderlying() external view returns (address);

getConfig ​

solidity
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.

solidity
function getExchangeRate() external view returns (uint256);

getExchangeRateOperate ​

Get the exchangeRate_ between the underlying asset and the peg asset in 1e27 for operates

solidity
function getExchangeRateOperate() public view returns (uint256 exchangeRate_);

getExchangeRateLiquidate ​

Get the exchangeRate_ between the underlying asset and the peg asset in 1e27 for liquidations

solidity
function getExchangeRateLiquidate() public view returns (uint256 exchangeRate_);

getExchangeRateOperateDebt ​

Debt operate: extended-hours clamp inverted vs collateral (floor downside).

solidity
function getExchangeRateOperateDebt() public view returns (uint256 exchangeRate_);

getExchangeRateLiquidateDebt ​

Debt liquidate: extended-hours clamp inverted vs collateral (cap upside).

solidity
function getExchangeRateLiquidateDebt() public view returns (uint256 exchangeRate_);

getExchangeRateOperateWrite ​

Non-view operate rate. May persist oracle state (e.g. last regular-hours price).

solidity
function getExchangeRateOperateWrite() public returns (uint256);

getExchangeRateLiquidateWrite ​

Non-view liquidate rate. May persist oracle state (e.g. last regular-hours price).

solidity
function getExchangeRateLiquidateWrite() public returns (uint256);

getExchangeRateOperateDebtWrite ​

Non-view operate debt rate. May persist oracle state (e.g. last regular-hours price).

solidity
function getExchangeRateOperateDebtWrite() public returns (uint256);

getExchangeRateLiquidateDebtWrite ​

Non-view liquidate debt rate. May persist oracle state (e.g. last regular-hours price).

solidity
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.

solidity
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.

solidity
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.

solidity
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.

solidity
function updateRegularHoursAnchor(uint80 roundId_) external;

Parameters

NameTypeDescription
roundId_uint80Start hint (0 = stored/latest). Walks to last in-window round.