Skip to content

PerpRouter functions

← Browse all contracts

Perp Engine and market deployment router. ERC-1967/UUPS proxy; implementation disables direct initialization.

This page lists every ABI-exposed function: 29 total, comprising 0 user functions, 16 state-changing, and 13 read-only calls.

User functions are state-changing calls expected from wallets, SDKs, traders, market makers, builders, or relayers. Internal settlement, deployment, governance, keeper, proxy, and maintenance calls remain available under the other filters.

About public and external visibility

The ABI proves that every function below is externally callable. It does not retain whether Solidity declared an individual function public or external, so the page does not invent a per-function visibility label.

Showing all 29 functions

State-changing functions

These payable and nonpayable calls can change protocol or contract state. Check the caller, requirements, effects, events, and errors before integrating one.

addPerpEngine(address)

state-changing ABI callable governance 0x28aaaf0f

Registers a router-owned PerpEngine for its canonical quote asset.

Parameters and behavior

Inputs

  • engineAddress — address. EVM address; zero-address allowance/sentinel meaning is stated by the function semantics.

Returns

  • No return value.

Access and behavior

  • Who can call: Governance role.
  • Requirements: Engine must be nonzero, point to the configured AccountCore, have a unique quote asset, and be router-owned/config-compatible.
  • State effects: Registers a quote-scoped Engine with the router and AccountCore.
  • Units and rounding: Quote scale is defined by the Engine/token; address mapping only here.
  • Event families: In order: AccountCore PerpEngineAdded, then router PerpEngineAdded.
  • Expected errors: Authorization, zero address, duplicate Engine/quote, owner/account/config mismatch, AccountCore registration errors.

Exact call data

addPerpEngine(address)
  • Selector: 0x28aaaf0f
  • Mutability: nonpayable
  • Semantic rule: perp-router.engine-add
  • Call path: governance

cancelOwnershipHandover()

payable ABI callable ownership-candidate 0x54d1f13d

Sets the caller's handover-request expiry to zero, including when no request existed.

Parameters and behavior

Inputs

  • None.

Returns

  • No return value.

Access and behavior

  • Who can call: Any requester, for its own pending request.
  • Requirements: No current-owner requirement and no request-existence requirement.
  • State effects: Sets the caller's handover-request expiry to zero, including when no request existed.
  • Units and rounding: No protocol arithmetic.
  • Event families: OwnershipHandoverCanceled.
  • Expected errors: No contract-defined revert path.

Exact call data

cancelOwnershipHandover()
  • Selector: 0x54d1f13d
  • Mutability: payable
  • Semantic rule: ownership.handover-cancel
  • Call path: ownership-candidate

completeOwnershipHandover(address)

payable ABI callable owner 0xf04e283e

Transfers ownership to the requesting address and consumes the request.

Parameters and behavior

Inputs

  • pendingOwner — address. EVM address; zero-address allowance/sentinel meaning is stated by the function semantics.

Returns

  • No return value.

Access and behavior

  • Who can call: Current owner.
  • Requirements: The nominated pending owner must have an unexpired request.
  • State effects: Transfers ownership to the requesting address and consumes the request.
  • Units and rounding: Request validity is timestamp-based.
  • Event families: OwnershipTransferred only; clearing the request emits no OwnershipHandoverCanceled.
  • Expected errors: Unauthorized, NoHandoverRequest.

Exact call data

completeOwnershipHandover(address)
  • Selector: 0xf04e283e
  • Mutability: payable
  • Semantic rule: ownership.handover-complete
  • Call path: owner

deployPerpMarket(address,(uint32,uint32,uint8,uint96,uint32,uint32,uint32,uint32,uint32,uint32,uint96,uint32,uint32,uint32,uint96,uint96,uint96,uint96))

state-changing ABI callable governance-deployment 0xd4477ed1

Deploys, initializes, and registers a deterministic perp orderbook proxy.

Parameters and behavior

Inputs

  • quoteAsset — address. EVM asset address; address(0) denotes native MON only on explicitly native-aware AccountCore/periphery paths.
  • params — struct PerpRouter.PerpMarketParams. Structured struct PerpRouter.PerpMarketParams; field-level units are defined in the type catalog and tuple metadata.

Returns

  • marketId — uint32. Global Perp market ID (uint32); market ID 0 is reserved as the cross-margin namespace within an Engine.
  • proxy — address. EVM address; zero-address allowance/sentinel meaning is stated by the function semantics.

Access and behavior

  • Who can call: Governance role.
  • Requirements: Known quote Engine, implementation set, valid unique nonzero market ID/config, CREATE2 availability, Engine/AccountCore registration validation.
  • State effects: Allocates the next global market ID, registers Engine risk state, deploys/initializes deterministic PerpOrderBook proxy, sets authority, and registers AccountCore route.
  • Units and rounding: Lots/price/quote scales from params; fees/factors parts-per-10,000,000; staleness/interval seconds.
  • Event families: In order: Engine PerpMarketUpdated; child proxy Upgraded; child Initialized; optional child AuthorityUpdated; child MarketStateUpdated only when launched paused; AccountCore PerpMarketEnabled(true) then PerpOrderBookUpdated; router PerpMarketDeployed last.
  • Expected errors: Authorization, quote Engine, implementation, market ID/config/fee/risk, CREATE2/initializer, downstream registration errors.

Exact call data

deployPerpMarket(address,(uint32,uint32,uint8,uint96,uint32,uint32,uint32,uint32,uint32,uint32,uint96,uint32,uint32,uint32,uint96,uint96,uint96,uint96))
  • Selector: 0xd4477ed1
  • Mutability: nonpayable
  • Semantic rule: perp-router.deploy
  • Call path: governance-deployment

initialize(address,address)

state-changing ABI callable proxy-initialization 0x485cc955

Initializes ownership and the AccountCore dependency for a proxy deployment.

Parameters and behavior

Inputs

  • _owner — address. EVM address; zero-address allowance/sentinel meaning is stated by the function semantics.
  • _accountCore — address. EVM address; zero-address allowance/sentinel meaning is stated by the function semantics.

Returns

  • No return value.

Access and behavior

  • Who can call: Any caller only while the proxy is uninitialized; deployers must initialize atomically.
  • Requirements: Owner and AccountCore nonzero; initializer guard.
  • State effects: Initializes proxy ownership, stores AccountCore, and sets first deployable Perp market ID to 1.
  • Units and rounding: Addresses exact; next market ID is an integer sequence.
  • Event families: OwnershipTransferred, then Initialized.
  • Expected errors: AlreadyInitialized, ZeroAddress.

Exact call data

initialize(address,address)
  • Selector: 0x485cc955
  • Mutability: nonpayable
  • Semantic rule: lifecycle.initialize
  • Call path: proxy-initialization

renounceOwnership()

payable ABI callable owner 0x715018a6

Sets the owner to the zero address; owner-gated paths then become unreachable.

Parameters and behavior

Inputs

  • None.

Returns

  • No return value.

Access and behavior

  • Who can call: Current owner.
  • Requirements: Owner authorization.
  • State effects: Sets the owner to the zero address; owner-gated paths then become unreachable.
  • Units and rounding: No numeric units.
  • Event families: OwnershipTransferred.
  • Expected errors: Unauthorized.

Exact call data

renounceOwnership()
  • Selector: 0x715018a6
  • Mutability: payable
  • Semantic rule: ownership.renounce
  • Call path: owner

requestOwnershipHandover()

payable ABI callable ownership-candidate 0x25692962

Creates or refreshes the caller's ownership handover request to expire at block.timestamp + 172800.

Parameters and behavior

Inputs

  • None.

Returns

  • No return value.

Access and behavior

  • Who can call: Any prospective owner, for its own address.
  • Requirements: No current-owner requirement; always succeeds absent an EVM-level failure.
  • State effects: Creates or refreshes the caller's ownership handover request to expire at block.timestamp + 172800.
  • Units and rounding: Expiry is a Unix timestamp in seconds; validity is exactly 48 hours (172,800 seconds).
  • Event families: OwnershipHandoverRequested.
  • Expected errors: No contract-defined revert path.

Exact call data

requestOwnershipHandover()
  • Selector: 0x25692962
  • Mutability: payable
  • Semantic rule: ownership.handover-request
  • Call path: ownership-candidate

setAuthority(address)

state-changing ABI callable owner 0x7a9e5e4b

Sets the shared authority contract used for governance, ops, and emergency roles.

Parameters and behavior

Inputs

  • newAuthority — address. EVM address; zero-address allowance/sentinel meaning is stated by the function semantics.

Returns

  • No return value.

Access and behavior

  • Who can call: Contract owner.
  • Requirements: New authority must be nonzero and expose nonzero governance, ops, and emergency roles.
  • State effects: Replaces this contract's authority pointer; does not propagate the pointer to already deployed children.
  • Units and rounding: Address only; no rounding.
  • Event families: AuthorityUpdated.
  • Expected errors: Unauthorized, ZeroAddress, InvalidAuthority.

Exact call data

setAuthority(address)
  • Selector: 0x7a9e5e4b
  • Mutability: nonpayable
  • Semantic rule: access.authority
  • Call path: owner

setPerpOrderBook(uint32,address)

state-changing ABI callable governance 0x5f244aa2

Rotates or revokes the orderbook route for a disabled perp market.

Parameters and behavior

Inputs

  • marketId — uint32. Global Perp market ID (uint32); market ID 0 is reserved as the cross-margin namespace within an Engine.
  • newOrderBook — address. EVM address; zero-address allowance/sentinel meaning is stated by the function semantics.

Returns

  • No return value.

Access and behavior

  • Who can call: Governance role.
  • Requirements: Market must be registered and disabled in AccountCore; replacement must match Engine, market ID, and required config/ownership checks.
  • State effects: Changes the AccountCore route and router mapping to a replacement Perp book; draining the old book is an off-chain prerequisite.
  • Units and rounding: Market ID/address only.
  • Event families: In order: optional replacement-child AuthorityUpdated; AccountCore PerpOrderBookUpdated; router PerpOrderBookRouteUpdated.
  • Expected errors: Authorization, market not found/enabled, duplicate route, invalid replacement owner/Engine/config, and downstream errors; zero address is accepted to revoke the route.

Exact call data

setPerpOrderBook(uint32,address)
  • Selector: 0x5f244aa2
  • Mutability: nonpayable
  • Semantic rule: perp-router.route-replace
  • Call path: governance

setPerpOrderBookImplementation(address)

state-changing ABI callable governance 0x179a3c43

Sets the implementation used for new perp orderbook proxies.

Parameters and behavior

Inputs

  • newImplementation — address. EVM address; zero-address allowance/sentinel meaning is stated by the function semantics.

Returns

  • No return value.

Access and behavior

  • Who can call: Governance role.
  • Requirements: Nonzero and different implementation.
  • State effects: Changes the implementation used for future Perp order-book proxies.
  • Units and rounding: Address only.
  • Event families: PerpOBImplementationUpdated.
  • Expected errors: Unauthorized, InvalidAuthority, ZeroAddress, ImplementationNotChanged.

Exact call data

setPerpOrderBookImplementation(address)
  • Selector: 0x179a3c43
  • Mutability: nonpayable
  • Semantic rule: perp-router.implementation
  • Call path: governance

togglePerpMarkets(address[],uint8)

state-changing ABI callable emergency/ops/governance 0x55dfffb0

Batch-updates the state of deployed perp markets.

Parameters and behavior

Inputs

  • orderBooks — address[]. Array in ABI order; each element: EVM address; zero-address allowance/sentinel meaning is stated by the function semantics.
  • state — enum IActiveOrderBook.MarketState. Numeric Solidity enum enum IActiveOrderBook.MarketState; member values are listed in types and constants.

Returns

  • No return value.

Access and behavior

  • Who can call: Governance or ops for loosening; emergency, ops, or governance for tightening.
  • Requirements: Every address must be a verified Perp order book; child owner call must succeed.
  • State effects: Changes ACTIVE/SOFT_PAUSED/HARD_PAUSED state on each book.
  • Units and rounding: MarketState enum (uint8).
  • Event families: Child MarketStateUpdated.
  • Expected errors: Authorization, unknown book, unchanged/invalid state, downstream errors.

Exact call data

togglePerpMarkets(address[],uint8)
  • Selector: 0x55dfffb0
  • Mutability: nonpayable
  • Semantic rule: perp-router.book-state
  • Call path: emergency/ops/governance

transferOwnership(address)

payable ABI callable owner 0xf2fde38b

Transfers direct upgrade/administrative ownership.

Parameters and behavior

Inputs

  • newOwner — address. EVM address; zero-address allowance/sentinel meaning is stated by the function semantics.

Returns

  • No return value.

Access and behavior

  • Who can call: Current owner.
  • Requirements: New owner must be nonzero.
  • State effects: Transfers direct upgrade/administrative ownership.
  • Units and rounding: Address only; no rounding.
  • Event families: OwnershipTransferred.
  • Expected errors: Unauthorized and zero/new-owner errors.

Exact call data

transferOwnership(address)
  • Selector: 0xf2fde38b
  • Mutability: payable
  • Semantic rule: ownership.transfer
  • Call path: owner

upgradePerpEngine(address,address,bytes)

state-changing ABI callable governance-upgrade 0xf596f4ae

Upgrades a verified router-owned PerpEngine proxy.

Parameters and behavior

Inputs

  • engineAddress — address. EVM address; zero-address allowance/sentinel meaning is stated by the function semantics.
  • newImplementation — address. EVM address; zero-address allowance/sentinel meaning is stated by the function semantics.
  • data — bytes. Opaque ABI or protocol-packed bytes; the function/type-specific codec defines its fields.

Returns

  • No return value.

Access and behavior

  • Who can call: Governance role through PerpRouter, which must own the registered Engine proxy.
  • Requirements: Engine must be registered; new implementation nonzero and UUPS-compatible; child proxy/owner checks and optional migration call must succeed atomically.
  • State effects: Upgrades one quote-scoped PerpEngine implementation without changing its address or router/account mappings.
  • Units and rounding: Addresses and raw migration calldata; no market-unit arithmetic.
  • Event families: Child ERC-1967 Upgraded, any events emitted by the explicitly selected migration function, then router PerpEngineUpgraded.
  • Expected errors: Unauthorized, InvalidAuthority, unknown Engine, ZeroAddress, UUPS proxy/UUID/implementation, ownership, and delegated migration errors.

Exact call data

upgradePerpEngine(address,address,bytes)
  • Selector: 0xf596f4ae
  • Mutability: nonpayable
  • Semantic rule: perp-router.child-upgrade.upgrade-perp-engine
  • Call path: governance-upgrade

upgradePerpOrderBook(address,address,bytes)

state-changing ABI callable governance-upgrade 0x58070ac5

Upgrades a verified router-owned perp orderbook proxy.

Parameters and behavior

Inputs

  • orderBook — address. EVM address; zero-address allowance/sentinel meaning is stated by the function semantics.
  • newImplementation — address. EVM address; zero-address allowance/sentinel meaning is stated by the function semantics.
  • data — bytes. Opaque ABI or protocol-packed bytes; the function/type-specific codec defines its fields.

Returns

  • No return value.

Access and behavior

  • Who can call: Governance role through PerpRouter, which must own the verified order-book proxy.
  • Requirements: Book must be verified; new implementation nonzero and UUPS-compatible; child proxy/owner checks and optional migration call must succeed atomically.
  • State effects: Upgrades one PerpOrderBook implementation without changing market ID, Engine, or routing address.
  • Units and rounding: Addresses and raw migration calldata; no market-unit arithmetic.
  • Event families: Child ERC-1967 Upgraded, any events emitted by the explicitly selected migration function, then router PerpOrderBookUpgraded.
  • Expected errors: Unauthorized, InvalidAuthority, unknown market/book, ZeroAddress, UUPS proxy/UUID/implementation, ownership, and delegated migration errors.

Exact call data

upgradePerpOrderBook(address,address,bytes)
  • Selector: 0x58070ac5
  • Mutability: nonpayable
  • Semantic rule: perp-router.child-upgrade.upgrade-perp-order-book
  • Call path: governance-upgrade

upgradeToAndCall(address,bytes)

payable ABI callable owner-upgrade 0x4f1ef286

Changes the proxy implementation and optionally delegatecalls migration data.

Parameters and behavior

Inputs

  • newImplementation — address. EVM address; zero-address allowance/sentinel meaning is stated by the function semantics.
  • data — bytes. Opaque ABI or protocol-packed bytes; the function/type-specific codec defines its fields.

Returns

  • No return value.

Access and behavior

  • Who can call: Contract owner through the active ERC-1967 proxy.
  • Requirements: UUPS proxy context, compatible proxiableUUID, owner authorization; migration calldata executes atomically.
  • State effects: Changes the proxy implementation and optionally delegatecalls migration data.
  • Units and rounding: Raw calldata; no protocol arithmetic.
  • Event families: ERC-1967 Upgraded; optional migration data may emit any events of the explicitly invoked implementation selector, which cannot be statically narrowed from arbitrary bytes.
  • Expected errors: Unauthorized, UUPS call-context/UUID errors, zero-code/invalid implementation, and delegated migration errors.

Exact call data

upgradeToAndCall(address,bytes)
  • Selector: 0x4f1ef286
  • Mutability: payable
  • Semantic rule: upgrade.uups
  • Call path: owner-upgrade

writeMarketStatus(uint32,uint8,uint24)

state-changing ABI callable governance/ops 0xd0bf134d

Updates a perp market's engine-level status and flags.

Parameters and behavior

Inputs

  • marketId — uint32. Global Perp market ID (uint32); market ID 0 is reserved as the cross-margin namespace within an Engine.
  • status — uint8. Unitless enum/status value; valid members are in types and constants or the enclosing ABI tuple type.
  • flags — uint24. Unsigned bitmask; named bit definitions are in types and constants.

Returns

  • No return value.

Access and behavior

  • Who can call: Governance or ops role according to requested risk direction.
  • Requirements: Known market/Engine and valid status/flags; note current Engine stores the whole flags word, including funding-sign bit.
  • State effects: Forwards the status and complete flags word to the Engine.
  • Units and rounding: Status uint8; flags uint24 bitmask.
  • Event families: Engine PerpMarketStatusUpdated; PerpRouter declares no separate event for this forwarding call.
  • Expected errors: Authorization, market/config/status/flag errors.

Exact call data

writeMarketStatus(uint32,uint8,uint24)
  • Selector: 0xd0bf134d
  • Mutability: nonpayable
  • Semantic rule: perp-router.market-status
  • Call path: governance/ops

Read-only functions

These view and pure calls expose configuration or protocol state without mutating it.

accountCoreAddress()

view ABI callable public-read 0x1364dd74

Returns the configured AccountCore address.

Parameters and behavior

Inputs

  • None.

Returns

  • result0 — address. EVM address; zero-address allowance/sentinel meaning is stated by the function semantics.

Access and behavior

  • Who can call: Any caller; no state mutation.
  • Requirements: No caller authorization unless stated in NatSpec; input-dependent existence/configuration validation may revert.
  • State effects: Returns _: address — EVM address; zero-address allowance/sentinel meaning is stated by the function semantics.
  • Units and rounding: Return/input units follow ABI names, tuple definitions, constants, and NatSpec; no state-changing rounding occurs.
  • Event families: None; view/pure call.
  • Expected errors: Input, missing entity, invalid configuration, arithmetic, or delegated read errors declared in the error catalog.

Exact call data

accountCoreAddress()
  • Selector: 0x1364dd74
  • Mutability: view
  • Semantic rule: read.public
  • Call path: public-read

authority()

view ABI callable public-read 0xbf7e214f

Returns the shared protocol-authority contract.

Parameters and behavior

Inputs

  • None.

Returns

  • result0 — address. EVM address; zero-address allowance/sentinel meaning is stated by the function semantics.

Access and behavior

  • Who can call: Any caller; no state mutation.
  • Requirements: No caller authorization unless stated in NatSpec; input-dependent existence/configuration validation may revert.
  • State effects: Returns _: address — EVM address; zero-address allowance/sentinel meaning is stated by the function semantics.
  • Units and rounding: Return/input units follow ABI names, tuple definitions, constants, and NatSpec; no state-changing rounding occurs.
  • Event families: None; view/pure call.
  • Expected errors: Input, missing entity, invalid configuration, arithmetic, or delegated read errors declared in the error catalog.

Exact call data

authority()
  • Selector: 0xbf7e214f
  • Mutability: view
  • Semantic rule: read.public
  • Call path: public-read

computeAddress(address,uint32,uint96,uint96)

view ABI callable public-read 0x857dcadd

Computes the deterministic proxy address for a perp market deployment.

Parameters and behavior

Inputs

  • quoteAsset — address. EVM asset address; address(0) denotes native MON only on explicitly native-aware AccountCore/periphery paths.
  • marketId — uint32. Global Perp market ID (uint32); market ID 0 is reserved as the cross-margin namespace within an Engine.
  • minQuoteNotional — uint96. Raw atomic units of the applicable quote/token asset; human amount = value / that asset's decimal scale.
  • maxQuoteNotional — uint96. Raw atomic units of the applicable quote/token asset; human amount = value / that asset's decimal scale.

Returns

  • result0 — address. EVM address; zero-address allowance/sentinel meaning is stated by the function semantics.

Access and behavior

  • Who can call: Any caller; no state mutation.
  • Requirements: No caller authorization unless stated in NatSpec; input-dependent existence/configuration validation may revert.
  • State effects: Returns _: address — EVM address; zero-address allowance/sentinel meaning is stated by the function semantics. Computes the deterministic proxy address for a perp market deployment.
  • Units and rounding: Return/input units follow ABI names, tuple definitions, constants, and NatSpec; no state-changing rounding occurs.
  • Event families: None; view/pure call.
  • Expected errors: Input, missing entity, invalid configuration, arithmetic, or delegated read errors declared in the error catalog.

Exact call data

computeAddress(address,uint32,uint96,uint96)
  • Selector: 0x857dcadd
  • Mutability: view
  • Semantic rule: read.public
  • Call path: public-read

engineByMarketId(uint32)

view ABI callable public-read 0x057711ee

Returns the PerpEngine registered for a market ID.

Parameters and behavior

Inputs

  • arg0 — uint32. Global Perp market ID (uint32); market ID 0 is reserved as the cross-margin namespace within an Engine.

Returns

  • result0 — address. EVM address; zero-address allowance/sentinel meaning is stated by the function semantics.

Access and behavior

  • Who can call: Any caller; no state mutation.
  • Requirements: No caller authorization unless stated in NatSpec; input-dependent existence/configuration validation may revert.
  • State effects: Returns _: address — EVM address; zero-address allowance/sentinel meaning is stated by the function semantics.
  • Units and rounding: Return/input units follow ABI names, tuple definitions, constants, and NatSpec; no state-changing rounding occurs.
  • Event families: None; view/pure call.
  • Expected errors: Input, missing entity, invalid configuration, arithmetic, or delegated read errors declared in the error catalog.

Exact call data

engineByMarketId(uint32)
  • Selector: 0x057711ee
  • Mutability: view
  • Semantic rule: read.public
  • Call path: public-read

nextMarketId()

view ABI callable public-read 0x406ef2ef

Returns the next Perp market ID the router will allocate.

Parameters and behavior

Inputs

  • None.

Returns

  • result0 — uint32. Global Perp market ID (uint32); market ID 0 is reserved as the cross-margin namespace within an Engine.

Access and behavior

  • Who can call: Any caller; no state mutation.
  • Requirements: No caller authorization unless stated in NatSpec; input-dependent existence/configuration validation may revert.
  • State effects: Returns _: uint32 — Global Perp market ID (uint32); market ID 0 is reserved as the cross-margin namespace within an Engine.
  • Units and rounding: Return/input units follow ABI names, tuple definitions, constants, and NatSpec; no state-changing rounding occurs.
  • Event families: None; view/pure call.
  • Expected errors: Input, missing entity, invalid configuration, arithmetic, or delegated read errors declared in the error catalog.

Exact call data

nextMarketId()
  • Selector: 0x406ef2ef
  • Mutability: view
  • Semantic rule: read.public
  • Call path: public-read

orderBookByMarketId(uint32)

view ABI callable public-read 0xde0fabaa

Returns the Perp order book registered for a market ID.

Parameters and behavior

Inputs

  • arg0 — uint32. Global Perp market ID (uint32); market ID 0 is reserved as the cross-margin namespace within an Engine.

Returns

  • result0 — address. EVM address; zero-address allowance/sentinel meaning is stated by the function semantics.

Access and behavior

  • Who can call: Any caller; no state mutation.
  • Requirements: No caller authorization unless stated in NatSpec; input-dependent existence/configuration validation may revert.
  • State effects: Returns _: address — EVM address; zero-address allowance/sentinel meaning is stated by the function semantics.
  • Units and rounding: Return/input units follow ABI names, tuple definitions, constants, and NatSpec; no state-changing rounding occurs.
  • Event families: None; view/pure call.
  • Expected errors: Input, missing entity, invalid configuration, arithmetic, or delegated read errors declared in the error catalog.

Exact call data

orderBookByMarketId(uint32)
  • Selector: 0xde0fabaa
  • Mutability: view
  • Semantic rule: read.public
  • Call path: public-read

owner()

view ABI callable public-read 0x8da5cb5b

Returns the contract owner.

Parameters and behavior

Inputs

  • None.

Returns

  • result — address. EVM address; zero-address allowance/sentinel meaning is stated by the function semantics.

Access and behavior

  • Who can call: Any caller; no state mutation.
  • Requirements: No caller authorization unless stated in NatSpec; input-dependent existence/configuration validation may revert.
  • State effects: Returns result: address — EVM address; zero-address allowance/sentinel meaning is stated by the function semantics. Returns the owner of the contract.
  • Units and rounding: Return/input units follow ABI names, tuple definitions, constants, and NatSpec; no state-changing rounding occurs.
  • Event families: None; view/pure call.
  • Expected errors: Input, missing entity, invalid configuration, arithmetic, or delegated read errors declared in the error catalog.

Exact call data

owner()
  • Selector: 0x8da5cb5b
  • Mutability: view
  • Semantic rule: read.public
  • Call path: public-read

ownershipHandoverExpiresAt(address)

view ABI callable public-read 0xfee81cf4

Returns when a pending ownership handover expires.

Parameters and behavior

Inputs

  • pendingOwner — address. EVM address; zero-address allowance/sentinel meaning is stated by the function semantics.

Returns

  • result — uint256. Unix timestamp in seconds; zero-sentinel behavior is function-specific.

Access and behavior

  • Who can call: Any caller; no state mutation.
  • Requirements: No caller authorization unless stated in NatSpec; input-dependent existence/configuration validation may revert.
  • State effects: Returns result: uint256 — Unix timestamp in seconds; zero-sentinel behavior is function-specific. Returns the expiry timestamp for the two-step ownership handover to pendingOwner.
  • Units and rounding: Return/input units follow ABI names, tuple definitions, constants, and NatSpec; no state-changing rounding occurs.
  • Event families: None; view/pure call.
  • Expected errors: Input, missing entity, invalid configuration, arithmetic, or delegated read errors declared in the error catalog.

Exact call data

ownershipHandoverExpiresAt(address)
  • Selector: 0xfee81cf4
  • Mutability: view
  • Semantic rule: read.public
  • Call path: public-read

perpEngineByQuoteAsset(address)

view ABI callable public-read 0xdd8ebf11

Returns the PerpEngine registered for a quote asset.

Parameters and behavior

Inputs

  • arg0 — address. EVM asset address; address(0) denotes native MON only on explicitly native-aware AccountCore/periphery paths.

Returns

  • result0 — address. EVM asset address; address(0) denotes native MON only on explicitly native-aware AccountCore/periphery paths.

Access and behavior

  • Who can call: Any caller; no state mutation.
  • Requirements: No caller authorization unless stated in NatSpec; input-dependent existence/configuration validation may revert.
  • State effects: Returns _: address — EVM asset address; address(0) denotes native MON only on explicitly native-aware AccountCore/periphery paths.
  • Units and rounding: Return/input units follow ABI names, tuple definitions, constants, and NatSpec; no state-changing rounding occurs.
  • Event families: None; view/pure call.
  • Expected errors: Input, missing entity, invalid configuration, arithmetic, or delegated read errors declared in the error catalog.

Exact call data

perpEngineByQuoteAsset(address)
  • Selector: 0xdd8ebf11
  • Mutability: view
  • Semantic rule: read.public
  • Call path: public-read

perpOrderBookImplementation()

view ABI callable public-read 0xe543576f

Returns the Perp order-book implementation used for new markets.

Parameters and behavior

Inputs

  • None.

Returns

  • result0 — address. EVM address; zero-address allowance/sentinel meaning is stated by the function semantics.

Access and behavior

  • Who can call: Any caller; no state mutation.
  • Requirements: No caller authorization unless stated in NatSpec; input-dependent existence/configuration validation may revert.
  • State effects: Returns _: address — EVM address; zero-address allowance/sentinel meaning is stated by the function semantics.
  • Units and rounding: Return/input units follow ABI names, tuple definitions, constants, and NatSpec; no state-changing rounding occurs.
  • Event families: None; view/pure call.
  • Expected errors: Input, missing entity, invalid configuration, arithmetic, or delegated read errors declared in the error catalog.

Exact call data

perpOrderBookImplementation()
  • Selector: 0xe543576f
  • Mutability: view
  • Semantic rule: read.public
  • Call path: public-read

proxiableUUID()

view ABI callable implementation-read 0x52d1902d

Returns the ERC-1822 implementation-slot identifier.

Parameters and behavior

Inputs

  • None.

Returns

  • result0 — bytes32. bytes32 opaque binary value.

Access and behavior

  • Who can call: Any caller on the implementation contract, not through the active proxy.
  • Requirements: UUPS notDelegated; intentionally reverts when delegatecalled through a proxy.
  • State effects: No state mutation. Returns the ERC-1967 implementation storage slot UUID. Returns the storage slot used by the implementation, as specified in ERC1822. Note: The notDelegated modifier prevents accidental upgrades to an implementation that is a proxy contract.
  • Units and rounding: Return/input units follow the ABI names, tuple definitions, constants, and NatSpec in this reference.
  • Event families: None; view/pure call.
  • Expected errors: Input/existence/configuration errors declared by the contract may still revert.

Exact call data

proxiableUUID()
  • Selector: 0x52d1902d
  • Mutability: view
  • Semantic rule: read.PerpRouter.proxiableUUID
  • Call path: implementation-read

verifiedPerpEngine(address)

view ABI callable public-read 0x5f840e08

Returns whether an address is a verified PerpEngine.

Parameters and behavior

Inputs

  • arg0 — address. EVM address; zero-address allowance/sentinel meaning is stated by the function semantics.

Returns

  • result0 — bool. Boolean flag named value.

Access and behavior

  • Who can call: Any caller; no state mutation.
  • Requirements: No caller authorization unless stated in NatSpec; input-dependent existence/configuration validation may revert.
  • State effects: Returns _: bool — Boolean flag named value.
  • Units and rounding: Return/input units follow ABI names, tuple definitions, constants, and NatSpec; no state-changing rounding occurs.
  • Event families: None; view/pure call.
  • Expected errors: Input, missing entity, invalid configuration, arithmetic, or delegated read errors declared in the error catalog.

Exact call data

verifiedPerpEngine(address)
  • Selector: 0x5f840e08
  • Mutability: view
  • Semantic rule: read.public
  • Call path: public-read

verifiedPerpMarket(address)

view ABI callable public-read 0x59f7612b

Returns whether an address is a verified Perp market.

Parameters and behavior

Inputs

  • arg0 — address. EVM address; zero-address allowance/sentinel meaning is stated by the function semantics.

Returns

  • result0 — bool. Boolean flag named value.

Access and behavior

  • Who can call: Any caller; no state mutation.
  • Requirements: No caller authorization unless stated in NatSpec; input-dependent existence/configuration validation may revert.
  • State effects: Returns _: bool — Boolean flag named value.
  • Units and rounding: Return/input units follow ABI names, tuple definitions, constants, and NatSpec; no state-changing rounding occurs.
  • Event families: None; view/pure call.
  • Expected errors: Input, missing entity, invalid configuration, arithmetic, or delegated read errors declared in the error catalog.

Exact call data

verifiedPerpMarket(address)
  • Selector: 0x59f7612b
  • Mutability: view
  • Semantic rule: read.public
  • Call path: public-read