PerpRouter functions¶
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)¶¶
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 routerPerpEngineAdded. - 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()¶¶
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)¶¶
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:
OwnershipTransferredonly; clearing the request emits noOwnershipHandoverCanceled. - 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))¶¶
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 proxyUpgraded; childInitialized; optional childAuthorityUpdated; childMarketStateUpdatedonly when launched paused; AccountCorePerpMarketEnabled(true)thenPerpOrderBookUpdated; routerPerpMarketDeployedlast. - 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)¶¶
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, thenInitialized. - Expected errors:
AlreadyInitialized,ZeroAddress.
Exact call data
initialize(address,address)
- Selector:
0x485cc955 - Mutability:
nonpayable - Semantic rule:
lifecycle.initialize - Call path:
proxy-initialization
renounceOwnership()¶¶
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()¶¶
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)¶¶
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)¶¶
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; AccountCorePerpOrderBookUpdated; routerPerpOrderBookRouteUpdated. - 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)¶¶
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)¶¶
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:
MarketStateenum (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)¶¶
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:
Unauthorizedand zero/new-owner errors.
Exact call data
transferOwnership(address)
- Selector:
0xf2fde38b - Mutability:
payable - Semantic rule:
ownership.transfer - Call path:
owner
upgradePerpEngine(address,address,bytes)¶¶
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 routerPerpEngineUpgraded. - 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)¶¶
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 routerPerpOrderBookUpgraded. - 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)¶¶
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 migrationdatamay 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)¶¶
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; flagsuint24bitmask. - 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()¶¶
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/purecall. - 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()¶¶
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/purecall. - 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)¶¶
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/purecall. - 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)¶¶
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/purecall. - 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()¶¶
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/purecall. - 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)¶¶
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/purecall. - 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()¶¶
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/purecall. - 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)¶¶
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 topendingOwner. - Units and rounding: Return/input units follow ABI names, tuple definitions, constants, and NatSpec; no state-changing rounding occurs.
- Event families: None;
view/purecall. - 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)¶¶
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/purecall. - 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()¶¶
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/purecall. - 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()¶¶
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
notDelegatedmodifier 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/purecall. - 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)¶¶
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 namedvalue.
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 namedvalue. - Units and rounding: Return/input units follow ABI names, tuple definitions, constants, and NatSpec; no state-changing rounding occurs.
- Event families: None;
view/purecall. - 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)¶¶
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 namedvalue.
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 namedvalue. - Units and rounding: Return/input units follow ABI names, tuple definitions, constants, and NatSpec; no state-changing rounding occurs.
- Event families: None;
view/purecall. - 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