Path: attestor/
Reads prices from DIAOracleV2Meta (0x0087342f5f4c7AB23a37c045c3EF710749527c88), signs EIP-712 intents
struct OracleIntent {
string intentType;
string version;
uint256 chainId; // 100640 for DIA testnet
uint256 nonce;
uint256 expiry;
string name;
uint256 price;
uint256 timestamp;
string source;
bytes signature;
address signer;
}Contract: contracts/contracts/OracleIntentRegistry.sol
Address: 0xC1ca83b5df6ce7e21Fb462C86f0C90E182d6db5d
Stores signed OracleIntents used by OracleTrigger
Contract: contracts/contracts/OracleTrigger.sol
Address: 0x43f1032b7cBa5DA1069a7e40adD529ACdbe9E77C
Dispatches Hyperlane messages to destination chains
Changes:
- Added support for OracleIntent
- Gets price from OracleIntentRegistry instead of DIAOracleV2Meta
function dispatch(
uint32 _destinationDomain,
address recipientAddress, // PushOracleReceiverV2 address
string memory key
)Path: hyperlane-monitor/
Monitors MessageDispatched events, triggers Bridge failover on delivery timeout
Path: bridge/
Works in 2 ways:
- GRPC messages from hyperlane-monitor for failover
- Inbuilt router to route messages from destination to source,Randomness functionality is configured here
Provides failover via direct intent updates to PushOracleReceiverV2 using EIP-712 signatures
Contract: contracts/contracts/PushOracleReceiverV2.sol
Receives data via handle() (Hyperlane) or handleIntentUpdate() (direct failover)
Changes:
- Added support to receive OracleIntent
- Added function to register signed intent
Deployed instances:
- Apple:
0xe60ccF4248640a2838eDf04516161d706e14bCAF - Ball:
0x474F45415504f46f143Eb09Ea461F46270F7372f - Cat:
0x20ab239e69edAA1a24593742fB838e7B2e98128B
-
Improve logs - Enhance logging across all services for better debugging and monitoring
attestor/- Add structured loggingbridge/- Improve error and event logginghyperlane-monitor/- Enhanced monitoring logs
-
Merge EIP-712 logic - Create single library for EIP-712 functionality and use it in:
contracts/contracts/OracleIntentRegistry.solcontracts/contracts/PushOracleReceiverV2.solcontracts/contracts/OracleTrigger.sol
-
Solidity lint - Run linting on all smart contracts for code quality
contracts/contracts/- All contract files
-
Add interfaces - Create proper interfaces for all contracts
contracts/contracts/interfaces/- New interface directory
-
Remove require statements - Replace
require()with custom errors for gas efficiencycontracts/contracts/- All contract files
-
Unit tests - Add comprehensive unit tests