Assessment reports>Orderly Network>Threat Model>eventUpload

Function: eventUpload(EventTypes.EventUpload data)

This uploads an event of one of four types: withdraw, settlement, adl, and liquidation. For more information about each type, see the description of the Ledger contract functions.

Inputs

  • data

    • Control: Controlled by operator.

    • Constraints: Verify that data is signed by cefiEventUploadAddress. The data.batchId should be equal to eventUploadBatchId.

    • Impact: The data of one of four types: withdraw, settlement, adl, or liquidation.

Branches and code coverage

Negative behavior

  • Caller is not a trusted operator.

  • Signature is wrong.

  • Resend the same message again after successful execution.

Function call analysis

  • _innerPing()

    • External/Internal? Internal.

    • Argument control? N/A.

    • Impact: Update the lastOperatorInteraction by current timestamp.

  • _eventUploadData(data) -> _processEventUpload -> ledger.executeWithdrawAction(abi.decode(data.data, (EventTypes.WithdrawData)), data.eventId)

    • External/Internal? External.

    • Argument control? data.data and data.eventId are controlled by operator.

    • Impact: External call to Ledger contract to process withdraw event.

  • _eventUploadData(data) -> _processEventUpload -> ledger.executeSettlement(abi.decode(data.data, (EventTypes.Settlement)), data.eventId)

    • External/Internal? External.

    • Argument control? data.data and data.eventId are controlled by operator.

    • Impact: External call to Ledger contract to process settlement event.

  • _eventUploadData(data) -> _processEventUpload -> ledger.executeAdl(abi.decode(data.data, (EventTypes.Adl)), data.eventId)

    • External/Internal? External.

    • Argument control? data.data and data.eventId are controlled by operator.

    • Impact: External call to Ledger contract to process adl event.

  • _eventUploadData(data) -> _processEventUpload -> ledger.executeLiquidation(abi.decode(data.data, (EventTypes.Liquidation)), data.eventId)

    • External/Internal? External.

    • Argument control? data.data and data.eventId are controlled by operator.

    • Impact: External call to Ledger contract to process liquidation event.

Zellic © 2024Back to top ↑