Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m11s
CI/CD Pipeline / Security Scanning (push) Has been cancelled
CI/CD Pipeline / Lint and Format (push) Has been cancelled
CI/CD Pipeline / Terraform Validation (push) Has been cancelled
CI/CD Pipeline / Kubernetes Validation (push) Has been cancelled
Validation / validate-genesis (push) Has been cancelled
Validation / validate-terraform (push) Has been cancelled
Validation / validate-kubernetes (push) Has been cancelled
Validation / validate-smart-contracts (push) Has been cancelled
Validation / validate-security (push) Has been cancelled
Validation / validate-documentation (push) Has been cancelled
Deploy ChainID 138 / Deploy ChainID 138 (push) Failing after 1m4s
HYBX OMNL TypeScript & anchor / token-aggregation build + reconcile artifact (push) Failing after 31s
OMNL reconcile anchor / Run omnl:reconcile and upload artifacts (push) Failing after 29s
Verify Deployment / Verify Deployment (push) Failing after 57s
Relay router, reserve system, oracle publisher, token-aggregation compliance middleware, and Monad deployment scripts. Co-authored-by: Cursor <cursoragent@cursor.com>
55 lines
1.9 KiB
Solidity
55 lines
1.9 KiB
Solidity
// SPDX-License-Identifier: MIT
|
|
pragma solidity ^0.8.20;
|
|
|
|
import {Script, console} from "forge-std/Script.sol";
|
|
|
|
interface IOraclePriceFeedSync {
|
|
function updatePriceFeed(address asset) external;
|
|
function aggregators(address asset) external view returns (address);
|
|
}
|
|
|
|
/// @notice Push wired Chain 138 aggregators into ReserveSystem via OraclePriceFeed (fixes getPoolPriceOrOracle).
|
|
contract SyncChain138ReserveFromOracle is Script {
|
|
address internal constant WETH9 = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;
|
|
address internal constant CUSDT = 0x93E66202A11B1772E55407B32B44e5Cd8eda7f22;
|
|
address internal constant CUSDC = 0xf22258f57794CC8E06237084b353Ab30fFfa640b;
|
|
address internal constant USDT = 0x004b63A7B5b0E06f6bB6adb4a5F9f590BF3182D1;
|
|
address internal constant USDC = 0x71D6687F38b93CCad569Fa6352c876eea967201b;
|
|
|
|
function run() external {
|
|
require(block.chainid == 138, "ChainID 138 only");
|
|
|
|
uint256 pk = vm.envUint("PRIVATE_KEY");
|
|
address opf = vm.envAddress("ORACLE_PRICE_FEED");
|
|
|
|
address[] memory assets = new address[](5);
|
|
assets[0] = WETH9;
|
|
assets[1] = CUSDT;
|
|
assets[2] = CUSDC;
|
|
assets[3] = USDT;
|
|
assets[4] = USDC;
|
|
|
|
console.log("=== Sync ReserveSystem from OraclePriceFeed ===");
|
|
console.log("OraclePriceFeed:", opf);
|
|
|
|
vm.startBroadcast(pk);
|
|
|
|
IOraclePriceFeedSync feed = IOraclePriceFeedSync(opf);
|
|
for (uint256 i = 0; i < assets.length; i++) {
|
|
address asset = assets[i];
|
|
if (feed.aggregators(asset) == address(0)) {
|
|
console.log("SKIP (no aggregator):", asset);
|
|
continue;
|
|
}
|
|
try feed.updatePriceFeed(asset) {
|
|
console.log("Updated:", asset);
|
|
} catch {
|
|
console.log("WARN updatePriceFeed failed:", asset);
|
|
}
|
|
}
|
|
|
|
vm.stopBroadcast();
|
|
console.log("=== Done ===");
|
|
}
|
|
}
|