Skip to main content

Overview

OraclesManager is the base contract for managing the network of independent validators (oracles) who verify and sign cross-chain transactions. Contract Location: contracts/transfers/OraclesManager.sol

State Variables

minConfirmations
uint8
Minimum number of oracle signatures required for transaction confirmation
excessConfirmations
uint8
Required confirmations when many oracles are active
requiredOraclesCount
uint8
Number of oracles marked as required (must sign every transaction)
oracleAddresses
address[]
Array of active oracle addresses

Main Functions

addOracles

function addOracles(
    address[] memory _oracles,
    bool[] memory _required
) external onlyAdmin
Adds new oracles to the validator set.

updateOracle

function updateOracle(
    address _oracle,
    bool _isValid,
    bool _required
) external onlyAdmin
Updates oracle status and requirements.

setMinConfirmations

function setMinConfirmations(uint8 _minConfirmations) external onlyAdmin
Updates the minimum confirmation threshold.

Oracle Types

Required Oracles: Must sign every transaction for it to be valid Optional Oracles: Contribute to reaching minimum confirmation threshold
At least 51% of oracles must sign for a transaction to be confirmed (minConfirmations ≥ totalOracles / 2 + 1)

Oracle Concepts

Learn about the oracle network architecture

SignatureVerifier

Signature verification contract

Build docs developers (and LLMs) love