View Facet
View Facet (0.8.5)
The View Facet provides read-only functions for querying protocol state. It exposes balance information, configuration parameters, liquidation details, pause states, withdrawal requests, and various status checks. All functions are view and do not modify state.
Overview
The View Facet is organized into the following categories:
Ownership: Diamond owner and pending owner.
Balances & Allocation: User balances, PartyA/PartyB allocated balances, locked values, and cross-mode balances.
Nonces & Cooldowns: Party nonces, deallocation timestamps, withdrawal cooldowns, and various protocol cooldown parameters.
Liquidation: Liquidation status, details, settlement states, insurance vault parameters, cross liquidation details, and PartyA takeover details.
Pause State: Global and per-subsystem pause states, emergency mode, PartyB emergency status.
Roles & Access: Role checks, role admin checks, role hash computation.
Protocol Configuration: Collateral address, fee collectors, Muon configuration, balance limits, signature verifier, and various protocol parameters.
Quotes & Positions: Force close details, pending quotes length.
Symbols & Affiliates: Affiliate fees (with full resolution priority), affiliate hooks, minimum fees, ADL status.
Withdrawal System: Withdraw requests (single, batch, pending-only), provider registration, speed-up eligibility, cooldown end times, locked balance.
Cross PartyB: Cross-mode status, cross balance info, migration status.
Binding & Instant Layer: Bind state, instant layer call detection, bindable PartyB status.
External Transfers: Virtual external transfer requests.
Bridge: Bridge transactions, next transaction ID.
Funding: Legacy funding deprecation status, accumulated funding activation status.
Solvency Previews:
getMaxCloseAmountToLiquidationfor previewing partial close amounts.
Ownership
owner()
Diamond contract owner address
pendingOwner()
Pending owner address (for two-step ownership transfer)
Balances & Allocation
balanceOf(address user)
User address
User's free (unallocated) balance
allocatedBalanceOfPartyA(address partyA)
PartyA address
PartyA's allocated balance
allocatedBalanceOfPartyB(address partyB, address partyA)
PartyB, PartyA
PartyB's allocated balance for a specific PartyA
allocatedBalanceOfPartyBs(address partyA, address[] partyBs)
PartyA, array of PartyBs
Array of allocated balances for each PartyB
balanceOfCrossPartyB(address partyB)
PartyB address
Cross-mode aggregated allocated balance (address(0) bucket)
balanceInfoOfPartyA(address partyA)
PartyA address
Allocated balance, locked values (cva, lf, partyAmm, partyBmm), and pending locked values
balanceInfoOfPartyB(address partyB, address partyA)
PartyB, PartyA
Same as above but for a PartyB-PartyA pair
balanceInfoOfCrossPartyB(address partyB)
PartyB address
Same as above but for the cross bucket (address(0))
partyAStats(address partyA)
PartyA address
Comprehensive stats: liquidation status, balances, locked values, position counts, nonces, quote IDs count
partyAReimbursement(address partyA)
PartyA address
Reimbursement amount escrowed during ClearingHouse liquidation
Nonces & Cooldowns
nonceOfPartyA(address partyA)
PartyA address
PartyA's current nonce
nonceOfPartyB(address partyB, address partyA)
PartyB, PartyA
PartyB's nonce (per-PartyA or cross)
withdrawCooldownOf(address user)
User address
Timestamp of user's most recent deallocation
getWithdrawableTime(address user)
User address
Earliest time a withdrawal initiated now could be finalized
coolDownsOfMA()
—
Withdraw cooldown, force cancel cooldown, force cancel close cooldown, force close first cooldown
forceCloseCooldowns()
—
Force close first and second cooldowns
deallocateCooldown()
—
Withdraw cooldown period
settlementCooldown()
—
Settlement cooldown
unbindCooldown()
—
Unbind cooldown for oracle-less trading
getDeallocateDebounceTime()
—
Debounce time between deallocations
lastUpnlSettlementTimestamp(address senderPartyB, address targetPartyB, address partyA)
Three addresses
Last settlement timestamp for the given combination
Liquidation
isPartyALiquidated(address partyA)
PartyA address
Whether PartyA is in liquidation
isPartyBLiquidated(address partyB, address partyA)
PartyB, PartyA
Whether PartyB is in liquidation for this PartyA
getLiquidatedStateOfPartyA(address partyA)
PartyA address
Full LiquidationDetail struct
getSettlementStates(address partyA, address[] partyBs)
PartyA, array of PartyBs
Settlement states for each PartyB
getLiquidationInsuranceVaultParams()
—
Insurance vault address and max profit per position
getPartyBCrossLiquidationStatus(address partyB)
PartyB address
Whether PartyB is in cross liquidation
getCrossLiquidationDetails(address partyB)
PartyB address
Full CrossLiquidationDetail struct
getPartyATakeoverDetails(address partyA)
PartyA address
PartyATakeoverDetail struct for ClearingHouse takeovers
liquidatorShare()
—
Liquidator share percentage
liquidationTimeout()
—
Liquidation timeout period
partyBLiquidationTimestamp(address partyB, address partyA)
PartyB, PartyA
When PartyB liquidation was initiated
Pause State
pauseState()
Tuple of all pause flags: global, liquidation, accounting, partyB actions, partyA actions, internal transfer, external transfer, emergency mode, partyB open positions
getPartyBEmergencyStatus(address partyB)
Whether PartyB has emergency status
Roles & Access
hasRole(address user, bytes32 role)
User, role hash
Whether user has the role
isRoleAdmin(address user, bytes32 role)
User, role hash
Whether user is an admin for the role
getRoleHash(string str)
Role name string
keccak256 hash of the role name
Protocol Configuration
getCollateral()
Collateral token address
getFeeCollector(address affiliate)
Fee collector address for a specific affiliate
getDefaultFeeCollector()
Default fee collector address
getBalanceLimitPerUser()
Maximum balance allowed per user
getSignatureVerifier()
Muon signature verifier contract address
getMuonConfig()
UPNL validity time and price validity time
getMuonIds()
Muon application ID
pendingQuotesValidLength()
Maximum number of valid pending quotes
forceClosePricePenalty()
Price penalty applied during force close
forceCloseMinSigPeriod()
Minimum signature period for force close
maxConnectedCounterParty()
Maximum PartyA-to-PartyB connection count
getSoftLiquidationPenaltyCollector()
Address receiving soft liquidation penalties
getInvalidBridgedAmountsPool()
Address receiving invalid bridged amounts
Symbols & Affiliates
getFeeForUser(address affiliate, address user, uint256 symbolId)
Affiliate, user, symbol
Resolved Fee struct using the full priority chain (user+symbol → user default → symbol → default → symbol tradingFee)
getAffiliateFeeForUser(address affiliate, address user, uint256 symbolId)
Affiliate, user, symbol
Fee struct for user-specific level only
getAffiliateFee(address affiliate, uint256 symbolId)
Affiliate, symbol
Fee struct for affiliate-level only
getMinAffiliateFee()
—
Minimum affiliate fee threshold
getAffiliateHook(address affiliate)
Affiliate address
Hook contract address
isAffiliate(address affiliate)
Address
Whether the address is a registered affiliate
isADLEnabled(address partyB)
PartyB address
Whether ADL is enabled for the PartyB
Withdrawal System
getWithdrawRequests(address user, uint256 requestId)
User, request ID
Single WithdrawRequest struct
getLastWithdrawRequestId(address user)
User address
Last assigned request ID (0 = no requests)
getWithdrawRequestsBatch(address user, uint256 start, uint256 size)
User, start ID, batch size
Array of all requests in range (any status)
getPendingWithdrawRequests(address user, uint256 start, uint256 size)
User, start ID, scan size
Only non-terminal requests (PENDING, PROVIDER_ACCEPTED, CANCEL_REQUESTED, SUSPENDED)
isExpressProviderRegistered(address provider)
Provider address
Whether the address is a registered express provider
isVirtualProviderRegistered(address provider)
Provider address
Whether the address is a registered virtual provider
isSpeedUpEligible(address user)
User address
Whether the user is on the speed-up whitelist
getModifiedCooldownEndTime(address user, uint256 requestId)
User, request ID
Modified cooldown end time (reverts if not modified)
getWithdrawLockedBalance()
—
Total collateral locked for pending withdrawals
Cross PartyB
isCrossPartyB(address partyB)
PartyB address
Whether cross mode is enabled
isCrossPartyBModeActivated()
—
Whether the global cross mode feature flag is on
isCrossPartyBMigrationComplete(address partyB)
PartyB address
Whether locked-values migration is complete
Binding & Instant Layer
getBindState(address user)
User address
BindState struct (status, bound PartyB, timestamps)
isBindable(address partyB)
PartyB address
Whether PartyB is bindable for oracle-less trading
isCallFromInstantLayer()
—
Whether the current call originates from the Instant Layer
getSigner()
—
Effective signer address (falls back to msg.sender if none set)
External Transfers & Bridge
getVirtualExternalTransfer(uint256 id)
Transfer ID
VirtualExternalTransferRequest struct
getBridgeTransaction(uint256 transactionId)
Transaction ID
BridgeTransaction struct
getBridgeTransactions(address bridge, uint256 start, uint256 size)
Bridge address, pagination
Array of BridgeTransaction structs
getNextBridgeTransactionId()
—
Next bridge transaction ID
Funding
isLegacyFundingDeprecated()
Whether legacy per-quote funding is deprecated
isAccumulatedFundingActivated()
Whether accumulated funding mode is active
isLegacyDeallocateDeprecated()
Whether legacy deallocate is deprecated (must use safeDeallocate)
Solvency Previews
getMaxCloseAmountToLiquidation()
Preview function for fillCloseRequestToLiquidation. Calculates the maximum close amount that keeps PartyA at the liquidation threshold without submitting a transaction.
Function Signature:
Parameters:
quoteId: The quote with a pending close request.closedPrice: The price at which the position would be closed.marketPrice: The current market price.upnlPartyA: PartyA's unrealized PnL.
Returns:
maxCloseAmount: The maximum amount that can be closed while keeping PartyA solvent.canCloseAll: Whether the fullquantityToClosecan be closed without insolvency.
Muon Verification
verifyMuonTSSAndGateway()
Utility function to verify a Muon TSS and gateway signature against a hash. Reverts if verification fails.
Last updated

