Integating Canary Nest Oracle (PUSH Based)
PriceOracle Technical Specification
Overview
Contract Information
Architecture
Inheritance Structure
PriceOracle
βββ AggregatorV3Interface (Chainlink standard)
βββ Initializable (OpenZeppelin upgradeable)
βββ AccessControlEnumerableUpgradeable (OpenZeppelin role-based access)Access Control Roles
Role
Constant
Responsibilities
Data Structures
RoundData
PendingRoundData
State Variables
Variable
Type
Description
Core Functions
Initialisation
Price Management
Configuration Management
Chainlink Interface Implementation
Events
RoundDataAdded(uint80 indexed roundId, uint256 recordedOffchainAt, uint256 recordedOnchainAt, int192 price, bytes32 indexed sourceHash)
RoundDataAdded(uint80 indexed roundId, uint256 recordedOffchainAt, uint256 recordedOnchainAt, int192 price, bytes32 indexed sourceHash)PendingRoundDataAdded(uint256 recordedOffchainAt, uint256 recordedOnchainAt, int192 pendingPrice, bytes32 indexed sourceHash)
PendingRoundDataAdded(uint256 recordedOffchainAt, uint256 recordedOnchainAt, int192 pendingPrice, bytes32 indexed sourceHash)SetMaxPriceDeviation(uint256 oldMaxPriceDeviation, uint256 newMaxPriceDeviation)
SetMaxPriceDeviation(uint256 oldMaxPriceDeviation, uint256 newMaxPriceDeviation)SetTimestampBuffer(uint256 oldTimestampBuffer, uint256 newTimestampBuffer)
SetTimestampBuffer(uint256 oldTimestampBuffer, uint256 newTimestampBuffer)Error Conditions
Error
Trigger Condition
Security Considerations
Price Validation
Access Control
Economic Security
Integration Guidelines
For Consumers
For Operators
Deployment Considerations
Last updated