# ArbRelayHub

The RelayHub Implementation for Arbitrum

This contract implements the IRelayHub interface for the Arbitrum-compatible Rollups.

This implementation relies on the ArbSys built-ins that do not exist outside of Arbitrum.

# Functions

# versionHub()

→ string (public)

# Return values

SemVer-compliant version of the RelayHub contract.


# constructor(contract ArbSys _arbsys, contract IStakeManager _stakeManager, address _penalizer, address _batchGateway, address _relayRegistrar, struct IRelayHub.RelayHubConfig _config)

(public)

we accept the ArbSys address in the constructor to allow mocking it in tests.


# getCreationBlock()

→ uint256 (external)

Uses ArbSys L2 block number specific to the Arbitrum Rollup.

# Return values

block number in which the contract has been deployed.


# getL1CreationBlock()

→ uint256 (external)

Uses original L1 block number.

# Return values

block number in which the contract has been deployed.


# aggregateGasleft()

→ uint256 (public)

Includes the 'storage gas' specific to the Arbitrum Rollup.

# Return values

total measurable amount of gas left to current execution. Same as 'gasleft()' for pure EVMs.