Skip to content

PolygonValidiumEtrog.sol

Functions

constructor

  function constructor(
    contract IPolygonZkEVMGlobalExitRootV2 _globalExitRootManager,
    contract IERC20Upgradeable _pol,
    contract IPolygonZkEVMBridgeV2 _bridgeAddress,
    contract PolygonRollupManager _rollupManager
  ) public
Parameters
Name Type Description
_globalExitRootManager contract IPolygonZkEVMGlobalExitRootV2 Global exit root manager address
_pol contract IERC20Upgradeable POL token address
_bridgeAddress contract IPolygonZkEVMBridgeV2 Bridge address
_rollupManager contract PolygonRollupManager Global exit root manager address

sequenceBatchesValidium

Allows a sequencer to send multiple batches.

  function sequenceBatchesValidium(
    struct PolygonValidiumEtrog.ValidiumBatchData[] batches,
    uint64 maxSequenceTimestamp,
    uint64 initSequencedBatch,
    address l2Coinbase,
    bytes dataAvailabilityMessage
  ) external
Parameters
Name Type Description
batches struct PolygonValidiumEtrog.ValidiumBatchData[] Struct array which holds data necessary for appending new batches to the sequence
maxSequenceTimestamp uint64 Max timestamp of the sequence.
This timestamp must be within a safety range (actual + 36 seconds).
This timestamp should be equal or greater than that of the last block inside the sequence, otherwise this batch is invalidated by the circuit.
initSequencedBatch uint64 This parameter must match the current last batch sequenced.
This is a protection mechanism against the sequencer sending undesired data.
l2Coinbase address Address that will receive the fees from L2
dataAvailabilityMessage bytes Byte array containing signatures and all addresses of the committee members in ascending order
[signature 0, …, signature requiredAmountOfSignatures -1, address 0, … address N].
Note that all signatures are ECDSA, therefore each must be 65 bytes long.

Note that POL is not a reentrant token.

sequenceBatches

Allows a sequencer to send multiple batches.

  function sequenceBatches(
    struct PolygonRollupBaseEtrog.BatchData[] batches,
    uint64 maxSequenceTimestamp,
    uint64 initSequencedBatch,
    address l2Coinbase
  ) public
Parameters
Name Type Description
batches struct PolygonRollupBaseEtrog.BatchData[] Struct array which holds data necessary for appending new batches to the sequence.
maxSequenceTimestamp uint64 Max timestamp of the sequence. This timestamp must be within a safety range (actual + 36 seconds). It should be equal or greater than the last block inside the sequence, otherwise this batch is invalidated by circuit.
initSequencedBatch uint64 This parameter must match the current last batch sequenced. This is a protection mechanism against the sequencer sending undesired data.
l2Coinbase address Address that will receive the fees from L2. Note that POL is not a reentrant token.

setDataAvailabilityProtocol

Allows the admin to set a new data availability protocol.

  function setDataAvailabilityProtocol(
    contract IDataAvailabilityProtocol newDataAvailabilityProtocol
  ) external
Parameters
Name Type Description
newDataAvailabilityProtocol contract IDataAvailabilityProtocol Address of the new data availability protocol.

switchSequenceWithDataAvailability

Allows the admin to switch the sequencing functionality.

  function switchSequenceWithDataAvailability(
    bool newIsSequenceWithDataAvailabilityAllowed
  ) external
Parameters
Name Type Description
newIsSequenceWithDataAvailabilityAllowed bool A Boolean to switch sequencing mode.

Events

SetDataAvailabilityProtocol

Emitted when the admin updates the data availability protocol.

  event SetDataAvailabilityProtocol(
  )

SwitchSequenceWithDataAvailability

Emitted when switching the sequencing functionality to a validium, a network with a data availability committee.

  event SwitchSequenceWithDataAvailability(
  )