Quantillon Protocol

ExecutionPricing

Git Source

Inherits: AccessControl, IExecutionPricing

Title: ExecutionPricing

Bounded, directional order-book pricing with persistent admission accounting.

Non-upgradeable module. Governance configures it on a paused vault after publishing depth. Reporter acknowledgments attest completed hedges; publishing alone never releases exposure.

Constants

SCALE

uint256 private constant SCALE = 1e30

BPS

uint256 private constant BPS = 10_000

MAX_LEVELS

Maximum number of executable price levels on each side.

uint256 public constant MAX_LEVELS = 20

WRITER_ROLE

Role authorized to publish observed Hyperliquid depth.

bytes32 public constant WRITER_ROLE = keccak256("WRITER_ROLE")

REPORTER_ROLE

Role authorized to acknowledge hedged exposure and margin capacity.

bytes32 public constant REPORTER_ROLE = keccak256("REPORTER_ROLE")

vault

Vault authorized to consume liquidity.

address public immutable override vault

venueOracle

Hyperliquid oracle required in the router's active market slot.

address public immutable venueOracle

reserveRecipient

Recipient of execution spread reserves.

address public immutable reserveRecipient

State Variables

maxAge

Maximum book and capacity observation age in seconds.

uint256 public maxAge

maxImpactBps

Maximum per-level deviation from the reference price in basis points.

uint256 public maxImpactBps

bufferBps

Venue fee and timing allowance incorporated into each execution rate.

uint256 public bufferBps

maxOutstanding

Governance ceiling on net directional unacknowledged EUR exposure.

uint256 public maxOutstanding

degradedHaircutBps

Haircut applied to reference-priced redemptions when execution data is unavailable.

uint256 public degradedHaircutBps = 25

riskLimitsUpdatedAt

Governance-update timestamp; subsequent reports must be observed after this time.

uint256 public riskLimitsUpdatedAt

asks

Level[] private asks

bids

Level[] private bids

observedAt

Original source observation time; never replaced by publication time.

uint256 public observedAt

sequence

Monotonic accepted snapshot revision.

uint256 public sequence

usedBuy

Buy-side quantity consumed from the current admission epoch.

uint256 public usedBuy

usedSell

Sell-side quantity consumed from the current admission epoch.

uint256 public usedSell

admittedBuy

Lifetime admitted quantities, used as replay-safe acknowledgment cursors.

uint256 public admittedBuy

admittedSell

uint256 public admittedSell

acknowledgedBuy

Lifetime hedge-acknowledged quantities.

uint256 public acknowledgedBuy

acknowledgedSell

uint256 public acknowledgedSell

acknowledgedAt

Time of the last complete hedge acknowledgment.

uint256 public acknowledgedAt

lastConsumptionBlock

Last block in which exposure was consumed.

uint256 public lastConsumptionBlock

marginCapacity

Reporter-certified additional margin capacity in EUR and its observation time.

uint256 public marginCapacity

capacityObservedAt

uint256 public capacityObservedAt

Functions

constructor

Deploy a vault-bound pricing module with explicit initial risk ceilings.

Uses the documented units and preserves reference-price accounting.

Notes:

  • security: Explicit role separation; no default economic limits are inferred.

  • validation: Validates the documented preconditions; view interface reads delegate to the target contract.

  • state-changes: Applies the effects described above.

  • events: Emits the events described above when applicable.

  • errors: Propagates invalid input, freshness, capacity or downstream contract errors as applicable.

  • reentrancy: Vault settlement is nonReentrant; publisher and reporter methods have no external state-changing callbacks.

  • access: Deployment only; explicit role recipients are required.

  • oracle: Reference EUR/USD and observed venue depth where required; no oracle dependency for role and version reads.

constructor(address[6] memory addresses, uint256[4] memory limits) ;

Parameters

NameTypeDescription
addressesaddress[6]Vault, Hyperliquid oracle, governance, depth writer, hedge reporter, reserve recipient.
limitsuint256[4]Maximum age (seconds), maximum impact (bps), rate buffer (bps), max outstanding EUR (18 decimals).

version

Implementation semantic version.

Uses the documented units and preserves reference-price accounting.

Notes:

  • security: Uses explicit contract access boundaries and checked arithmetic.

  • validation: Validates the documented preconditions; view interface reads delegate to the target contract.

  • state-changes: None.

  • events: None.

  • errors: Propagates invalid input, freshness, capacity or downstream contract errors as applicable.

  • reentrancy: No state changes.

  • access: Public read access.

  • oracle: Reference EUR/USD and observed venue depth where required; no oracle dependency for role and version reads.

function version() external pure returns (string memory);

Returns

NameTypeDescription
<none>stringresult Calculated result in the units described by this operation.

setDegradedHaircutBps

Sets the bounded haircut used by the redemption liveness fallback.

The setting applies only when a fresh coherent execution book cannot settle a redemption.

Notes:

  • security: Governance-only and only while the vault is paused.

  • validation: Rejects haircuts above the hard safety cap.

  • state-changes: Updates the fallback payout parameter.

  • events: Emits DegradedHaircutUpdated.

  • errors: InvalidCondition or InvalidParameter.

  • reentrancy: Only a read-only vault pause check.

  • access: DEFAULT_ADMIN_ROLE.

  • oracle: No oracle dependency.

function setDegradedHaircutBps(uint256 haircutBps) external onlyRole(DEFAULT_ADMIN_ROLE);

Parameters

NameTypeDescription
haircutBpsuint256Haircut in basis points, at most 1000 (10%).

updateRiskLimits

Update pricing limits on a paused vault after all admitted hedges are acknowledged.

Invalidates depth and capacity so subsequent quotes require newly observed reports.

Notes:

  • security: Governance only; cannot change the terms of pending admission.

  • validation: Requires paused settlement, zero outstanding admission and bounded limits.

  • state-changes: Updates limits, invalidates reports and clears consumed depth.

  • events: RiskLimitsUpdated.

  • errors: InvalidCondition for unsettled/unpaused vault; InvalidParameter for invalid limits.

  • reentrancy: Only a read-only call to the immutable vault.

  • access: DEFAULT_ADMIN_ROLE.

  • oracle: Fresh reports observed after the change are required before quoting.

function updateRiskLimits(uint256 age, uint256 impact, uint256 buffer, uint256 outstandingLimit)
    external
    onlyRole(DEFAULT_ADMIN_ROLE);

Parameters

NameTypeDescription
ageuint256Maximum source age in seconds, from 1 to 300.
impactuint256Maximum total per-level execution impact in bps, from 1 to 500.
bufferuint256Execution-rate buffer in bps, no greater than impact.
outstandingLimituint256Aggregate unacknowledged EUR ceiling in 18 decimals.

_validateRiskLimits

Validate pricing risk limits.

Applies the same bounds during deployment and governance updates.

Notes:

  • security: Caps source age and per-level impact.

  • validation: Age 1–300, impact 1–500, buffer at most impact, positive exposure limit.

  • state-changes: None.

  • events: None.

  • errors: InvalidParameter.

  • reentrancy: None.

  • access: Internal.

  • oracle: None.

function _validateRiskLimits(uint256 age, uint256 impact, uint256 buffer, uint256 outstandingLimit) private pure;

Parameters

NameTypeDescription
ageuint256Maximum source age in seconds.
impactuint256Maximum total execution impact in bps.
bufferuint256Execution-rate buffer in bps.
outstandingLimituint256Unacknowledged EUR limit in 18 decimals.

publish

Publish strictly ordered book levels with the original exchange timestamp.

Uses the documented units and preserves reference-price accounting.

Notes:

  • security: A newer observation cannot clear outstanding exposure or reset used depth prematurely.

  • validation: Validates the documented preconditions; view interface reads delegate to the target contract.

  • state-changes: Applies the effects described above.

  • events: Emits the events described above when applicable.

  • errors: Propagates invalid input, freshness, capacity or downstream contract errors as applicable.

  • reentrancy: Vault settlement is nonReentrant; publisher and reporter methods have no external state-changing callbacks.

  • access: WRITER_ROLE only.

  • oracle: Reference EUR/USD and observed venue depth where required; no oracle dependency for role and version reads.

function publish(uint256 sourceTime, Level[] calldata buy, Level[] calldata sell) external onlyRole(WRITER_ROLE);

Parameters

NameTypeDescription
sourceTimeuint256Source observation timestamp in seconds.
buyLevel[]Asks ordered by ascending price.
sellLevel[]Bids ordered by descending price.

acknowledge

Acknowledge all currently admitted exposure after canonical fills are reconciled.

Uses the documented units and preserves reference-price accounting.

Notes:

  • security: Trusted reporter must reconcile fills and Base finality before calling; timestamps alone are not evidence.

  • validation: Validates the documented preconditions; view interface reads delegate to the target contract.

  • state-changes: Applies the effects described above.

  • events: Emits the events described above when applicable.

  • errors: Propagates invalid input, freshness, capacity or downstream contract errors as applicable.

  • reentrancy: Vault settlement is nonReentrant; publisher and reporter methods have no external state-changing callbacks.

  • access: REPORTER_ROLE only.

  • oracle: Reference EUR/USD and observed venue depth where required; no oracle dependency for role and version reads.

function acknowledge(uint256 buy, uint256 sell, uint256 capacity, uint256 sourceTime)
    external
    onlyRole(REPORTER_ROLE);

Parameters

NameTypeDescription
buyuint256Expected lifetime admitted buy quantity; rejects concurrent consumption.
selluint256Expected lifetime admitted sell quantity; rejects concurrent consumption.
capacityuint256Additional EUR capacity supported by currently available venue margin.
sourceTimeuint256Original account observation time in seconds.

reconcileAdmission

Reconcile admitted exposure during a governance-controlled pause.

Invalidates all reports; new depth and capacity must be observed after reconciliation.

Notes:

  • security: Governance must verify venue settlement before reconciling.

  • validation: Requires the immutable vault to be paused.

  • state-changes: Advances cursors and clears depth and capacity.

  • events: AdmissionReconciled.

  • errors: InvalidCondition if settlement is not paused.

  • reentrancy: Only a view call to the vault.

  • access: DEFAULT_ADMIN_ROLE.

  • oracle: Fresh reports required before further admission.

function reconcileAdmission() external onlyRole(DEFAULT_ADMIN_ROLE);

pendingExposure

Pending buy, sell, gross and absolute net exposure in QEURO units.

Net exposure is informational; opposite admissions do not release gross capacity.

Notes:

  • security: Read only.

  • validation: Cursors cannot exceed admission totals.

  • state-changes: None.

  • events: None.

  • errors: None.

  • reentrancy: None.

  • access: Public.

  • oracle: None.

function pendingExposure() public view returns (uint256 buy, uint256 sell, uint256 gross, uint256 net);

Returns

NameTypeDescription
buyuint256Unacknowledged buy quantity.
selluint256Unacknowledged sell quantity.
grossuint256Sum of pending quantities.
netuint256Absolute difference of pending quantities.

outstanding

Unacknowledged exposure across both directions, without speculative netting.

Uses the documented units and preserves reference-price accounting.

Notes:

  • security: Uses explicit contract access boundaries and checked arithmetic.

  • validation: Validates the documented preconditions; view interface reads delegate to the target contract.

  • state-changes: None.

  • events: None.

  • errors: Propagates invalid input, freshness, capacity or downstream contract errors as applicable.

  • reentrancy: No state changes.

  • access: Public read access.

  • oracle: Reference EUR/USD and observed venue depth where required; no oracle dependency for role and version reads.

function outstanding() public view override returns (uint256);

Returns

NameTypeDescription
<none>uint256result Calculated result in the units described by this operation.

availableCapacity

Remaining executable EUR capacity on each side, including outstanding exposure limits.

Uses the documented units and preserves reference-price accounting.

Notes:

  • security: Uses explicit contract access boundaries and checked arithmetic.

  • validation: Validates the documented preconditions; view interface reads delegate to the target contract.

  • state-changes: None.

  • events: None.

  • errors: Propagates invalid input, freshness, capacity or downstream contract errors as applicable.

  • reentrancy: No state changes.

  • access: Public read access.

  • oracle: Reference EUR/USD and observed venue depth where required; no oracle dependency for role and version reads.

function availableCapacity() external view returns (uint256 buy, uint256 sell);

Returns

NameTypeDescription
buyuint256Buy capacity in 18-decimal EUR units.
selluint256Sell capacity in 18-decimal EUR units.

previewMint

Exact-USDC-input mint preview, after the vault's protocol fee.

Uses the documented units and preserves reference-price accounting.

Notes:

  • security: Uses explicit contract access boundaries and checked arithmetic.

  • validation: Validates the documented preconditions; view interface reads delegate to the target contract.

  • state-changes: None.

  • events: None.

  • errors: Propagates invalid input, freshness, capacity or downstream contract errors as applicable.

  • reentrancy: No state changes.

  • access: Public read access.

  • oracle: Reference EUR/USD and observed venue depth where required; no oracle dependency for role and version reads.

function previewMint(uint256 usdcInput) external view returns (Quote memory quote);

Parameters

NameTypeDescription
usdcInputuint256Value supplied to this operation.

Returns

NameTypeDescription
quoteQuoteCalculated result in the units described by this operation.

previewRedeem

Exact-QEURO-input normal-redemption preview, after the reference-valued protocol fee.

Uses the documented units and preserves reference-price accounting.

Notes:

  • security: Uses explicit contract access boundaries and checked arithmetic.

  • validation: Validates the documented preconditions; view interface reads delegate to the target contract.

  • state-changes: None.

  • events: None.

  • errors: Propagates invalid input, freshness, capacity or downstream contract errors as applicable.

  • reentrancy: No state changes.

  • access: Public read access.

  • oracle: Reference EUR/USD and observed venue depth where required; no oracle dependency for role and version reads.

function previewRedeem(uint256 qeuroInput) external view returns (Quote memory quote);

Parameters

NameTypeDescription
qeuroInputuint256Value supplied to this operation.

Returns

NameTypeDescription
quoteQuoteCalculated result in the units described by this operation.

consumeMint

Consume buy liquidity and return minted quantity and reference backing.

Uses the documented units and preserves reference-price accounting.

Notes:

  • security: Uses explicit contract access boundaries and checked arithmetic.

  • validation: Validates the documented preconditions; view interface reads delegate to the target contract.

  • state-changes: Updates consumed liquidity counters.

  • events: LiquidityConsumed.

  • errors: Propagates invalid input, freshness, capacity or downstream contract errors as applicable.

  • reentrancy: Vault settlement is nonReentrant; publisher and reporter methods have no external state-changing callbacks.

  • access: Configured vault only.

  • oracle: Reference EUR/USD and observed venue depth where required; no oracle dependency for role and version reads.

function consumeMint(uint256 netUsdc, uint256 ref) external override returns (uint256 q, uint256 backing);

Parameters

NameTypeDescription
netUsdcuint256Net USDC input in 6 decimals.
refuint256Reference USD per EUR price in 18 decimals.

Returns

NameTypeDescription
quint256Calculated result in the units described by this operation.
backinguint256Calculated result in the units described by this operation.

consumeRedeem

Consume sell liquidity and return the execution-valued payout.

Uses the documented units and preserves reference-price accounting.

Notes:

  • security: Uses explicit contract access boundaries and checked arithmetic.

  • validation: Validates the documented preconditions; view interface reads delegate to the target contract.

  • state-changes: Updates consumed liquidity counters.

  • events: LiquidityConsumed.

  • errors: Propagates invalid input, freshness, capacity or downstream contract errors as applicable.

  • reentrancy: Vault settlement is nonReentrant; publisher and reporter methods have no external state-changing callbacks.

  • access: Configured vault only.

  • oracle: Reference EUR/USD and observed venue depth where required; no oracle dependency for role and version reads.

function consumeRedeem(uint256 q, uint256 ref) external override returns (uint256 payout);

Parameters

NameTypeDescription
quint256QEURO quantity in 18 decimals.
refuint256Reference USD per EUR price in 18 decimals.

Returns

NameTypeDescription
payoutuint256Calculated result in the units described by this operation.

withdrawReserve

Transfer collected execution spreads to the immutable hedge reserve recipient.

Uses the documented units and preserves reference-price accounting.

Notes:

  • security: Governance cannot redirect the reserve to an arbitrary recipient.

  • validation: Validates the documented preconditions; view interface reads delegate to the target contract.

  • state-changes: Applies the effects described above.

  • events: Emits the events described above when applicable.

  • errors: Propagates invalid input, freshness, capacity or downstream contract errors as applicable.

  • reentrancy: Vault settlement is nonReentrant; publisher and reporter methods have no external state-changing callbacks.

  • access: DEFAULT_ADMIN_ROLE only.

  • oracle: Reference EUR/USD and observed venue depth where required; no oracle dependency for role and version reads.

function withdrawReserve(uint256 amount) external onlyRole(DEFAULT_ADMIN_ROLE);

Parameters

NameTypeDescription
amountuint256USDC amount in 6 decimals.

_checkLevels

Validate nonzero strictly ordered executable book levels.

Uses the documented units and preserves reference-price accounting.

Notes:

  • security: Uses explicit contract access boundaries and checked arithmetic.

  • validation: Validates the documented preconditions; view interface reads delegate to the target contract.

  • state-changes: None.

  • events: None.

  • errors: Propagates invalid input, freshness, capacity or downstream contract errors as applicable.

  • reentrancy: No state changes.

  • access: Private helper.

  • oracle: Reference EUR/USD and observed venue depth where required; no oracle dependency for role and version reads.

function _checkLevels(Level[] calldata levels, bool buy) private pure;

Parameters

NameTypeDescription
levelsLevel[]Ordered executable price and quantity levels.
buyboolTrue for the buy side, false for the sell side.

_reference

Read a valid reference price for execution previews.

Uses the documented units and preserves reference-price accounting.

Notes:

  • security: Uses explicit contract access boundaries and checked arithmetic.

  • validation: Validates the documented preconditions; view interface reads delegate to the target contract.

  • state-changes: None.

  • events: None.

  • errors: Propagates invalid input, freshness, capacity or downstream contract errors as applicable.

  • reentrancy: No state changes.

  • access: Private helper.

  • oracle: Reference EUR/USD and observed venue depth where required; no oracle dependency for role and version reads.

function _reference() private view returns (uint256 ref);

Returns

NameTypeDescription
refuint256Calculated result in the units described by this operation.

_validate

Validate reference coherence, venue and observation freshness.

Uses the documented units and preserves reference-price accounting.

Notes:

  • security: Uses explicit contract access boundaries and checked arithmetic.

  • validation: Validates the documented preconditions; view interface reads delegate to the target contract.

  • state-changes: None.

  • events: None.

  • errors: Propagates invalid input, freshness, capacity or downstream contract errors as applicable.

  • reentrancy: No state changes.

  • access: Private helper.

  • oracle: Reference EUR/USD and observed venue depth where required; no oracle dependency for role and version reads.

function _validate(uint256 ref) private view;

Parameters

NameTypeDescription
refuint256Reference USD per EUR price in 18 decimals.

_bookCanExecuteRedeem

Checks whether published depth can price this redemption.

Missing capacity allows reference fallback; coherent fresh venue books must stay in bounds.

Notes:

  • security: Fresh divergent venue prices fail closed.

  • validation: Requires nonzero reference and quantity.

  • state-changes: None.

  • events: None.

  • errors: InvalidAmount or InvalidPrice.

  • reentrancy: Read-only router calls.

  • access: Private.

  • oracle: Uses the validated reference supplied by the vault.

function _bookCanExecuteRedeem(uint256 q, uint256 ref) private view returns (bool);

Parameters

NameTypeDescription
quint256Requested QEURO quantity.
refuint256Validated reference price.

Returns

NameTypeDescription
<none>boolWhether the normal book path can execute.

_degradedPayout

Applies the configured haircut to a reference redemption.

Rounds the payout down in USDC units.

Notes:

  • security: Cannot pay more than reference backing.

  • validation: Rejects zero payout.

  • state-changes: None.

  • events: None.

  • errors: InvalidAmount.

  • reentrancy: None.

  • access: Private.

  • oracle: Caller validates reference.

function _degradedPayout(uint256 q, uint256 ref) private view returns (uint256 payout);

Parameters

NameTypeDescription
quint256QEURO input.
refuint256Validated EUR/USD price.

Returns

NameTypeDescription
payoutuint256Payout before protocol fees.

_degradedHaircut

Returns the fallback haircut for the current observation state.

Fresh depth exhaustion uses at least the maximum book impact, preventing a better fallback quote.

Notes:

  • security: A fresh book cannot be bypassed for a better execution rate.

  • validation: None.

  • state-changes: None.

  • events: None.

  • errors: None.

  • reentrancy: None.

  • access: Private.

  • oracle: Uses publication age only.

function _degradedHaircut() private view returns (uint256);

Returns

NameTypeDescription
<none>uint256Haircut in basis points.

_rate

Calculate a conservative per-level execution rate.

Uses the documented units and preserves reference-price accounting.

Notes:

  • security: Uses explicit contract access boundaries and checked arithmetic.

  • validation: Validates the documented preconditions; view interface reads delegate to the target contract.

  • state-changes: None.

  • events: None.

  • errors: Propagates invalid input, freshness, capacity or downstream contract errors as applicable.

  • reentrancy: No state changes.

  • access: Private helper.

  • oracle: Reference EUR/USD and observed venue depth where required; no oracle dependency for role and version reads.

function _rate(uint256 price, bool buy, uint256 ref) private view returns (uint256);

Parameters

NameTypeDescription
priceuint256USD per EUR price in 18 decimals.
buyboolTrue for the buy side, false for the sell side.
refuint256Reference USD per EUR price in 18 decimals.

Returns

NameTypeDescription
<none>uint256result Calculated result in the units described by this operation.

_capacity

Calculate remaining admitted capacity at the configured price limit.

Uses the documented units and preserves reference-price accounting.

Notes:

  • security: Uses explicit contract access boundaries and checked arithmetic.

  • validation: Validates the documented preconditions; view interface reads delegate to the target contract.

  • state-changes: None.

  • events: None.

  • errors: Propagates invalid input, freshness, capacity or downstream contract errors as applicable.

  • reentrancy: No state changes.

  • access: Private helper.

  • oracle: Reference EUR/USD and observed venue depth where required; no oracle dependency for role and version reads.

function _capacity(bool buy, uint256 ref) private view returns (uint256 capacity);

Parameters

NameTypeDescription
buyboolTrue for the buy side, false for the sell side.
refuint256Reference USD per EUR price in 18 decimals.

Returns

NameTypeDescription
capacityuint256Calculated result in the units described by this operation.

_admissionRoom

Returns remaining net admission room for one execution side.

Opposite pending exposure may be offset before reaching the configured directional limit.

Notes:

  • security: Applies the governance and reporter capacity ceilings to every admission path.

  • validation: None.

  • state-changes: None.

  • events: None.

  • errors: None.

  • reentrancy: None.

  • access: Private helper.

  • oracle: Uses the last reported margin capacity, including during degraded execution.

function _admissionRoom(bool buy) private view returns (uint256 sideRoom);

Parameters

NameTypeDescription
buyboolTrue for buy-side admission, false for sell-side admission.

Returns

NameTypeDescription
sideRoomuint256Remaining quantity that can be admitted on the selected side.

_mint

Invert cumulative buy cost for an exact USDC input.

Uses the documented units and preserves reference-price accounting.

Notes:

  • security: Uses explicit contract access boundaries and checked arithmetic.

  • validation: Validates the documented preconditions; view interface reads delegate to the target contract.

  • state-changes: None.

  • events: None.

  • errors: Propagates invalid input, freshness, capacity or downstream contract errors as applicable.

  • reentrancy: No state changes.

  • access: Private helper.

  • oracle: Reference EUR/USD and observed venue depth where required; no oracle dependency for role and version reads.

function _mint(uint256 budget, uint256 ref) private view returns (uint256 q, uint256 backing);

Parameters

NameTypeDescription
budgetuint256Net USDC input in 6 decimals.
refuint256Reference USD per EUR price in 18 decimals.

Returns

NameTypeDescription
quint256Calculated result in the units described by this operation.
backinguint256Calculated result in the units described by this operation.

_redeem

Calculate cumulative sell proceeds for a QEURO input.

Uses the documented units and preserves reference-price accounting.

Notes:

  • security: Uses explicit contract access boundaries and checked arithmetic.

  • validation: Validates the documented preconditions; view interface reads delegate to the target contract.

  • state-changes: None.

  • events: None.

  • errors: Propagates invalid input, freshness, capacity or downstream contract errors as applicable.

  • reentrancy: No state changes.

  • access: Private helper.

  • oracle: Reference EUR/USD and observed venue depth where required; no oracle dependency for role and version reads.

function _redeem(uint256 q, uint256 ref) private view returns (uint256 payout);

Parameters

NameTypeDescription
quint256QEURO quantity in 18 decimals.
refuint256Reference USD per EUR price in 18 decimals.

Returns

NameTypeDescription
payoutuint256Calculated result in the units described by this operation.

Events

BookPublished

event BookPublished(uint256 indexed sequence, uint256 observedAt, uint256 usedBuy, uint256 usedSell);

LiquidityConsumed

event LiquidityConsumed(
    bool indexed mint,
    uint256 quantity,
    uint256 referencePrice,
    uint256 executionUsdc,
    uint256 admittedBuy,
    uint256 admittedSell
);

HedgeAcknowledged

event HedgeAcknowledged(uint256 admittedBuy, uint256 admittedSell, uint256 capacity, uint256 observedAt);

ReserveWithdrawn

event ReserveWithdrawn(address indexed recipient, uint256 amount);

RiskLimitsUpdated

event RiskLimitsUpdated(uint256 maxAge, uint256 maxImpactBps, uint256 bufferBps, uint256 maxOutstanding);

AdmissionReconciled

event AdmissionReconciled(uint256 admittedBuy, uint256 admittedSell);

DegradedHaircutUpdated

event DegradedHaircutUpdated(uint256 previousBps, uint256 newBps);

DegradedRedemption

event DegradedRedemption(uint256 quantity, uint256 referencePrice, uint256 payout, uint256 haircutBps);

Structs

Level

A price level with USD/EUR price and EUR quantity, both in 18 decimals.

struct Level {
    uint128 price;
    uint128 quantity;
}

Quote

Contract preview, including user output after protocol fees.

struct Quote {
    uint256 amountOut;
    uint256 executionRate;
    uint256 referenceRate;
    uint256 capacityQeuro;
    uint256 observedAt;
    uint256 sequence;
}