// SPDX-License-Identifier: MIT pragma solidity ^0.8.24; import {Test} from "forge-std/Test.sol"; import {PluginOracleAdapter} from "../src/PluginOracleAdapter.sol"; import {IPluginFeed} from "../src/interfaces/IPluginFeed.sol"; import {MockPluginFeed} from "./mocks/Mocks.sol"; /// Keeps the site's "Developer kit" snippet honest (same shape, mock feed instead of the mainnet proxy). contract MyVault { PluginOracleAdapter public immutable xdcUsdt; constructor(address feed) { xdcUsdt = new PluginOracleAdapter(IPluginFeed(feed), 1 hours, 0, 0); } function collateralValue(uint256 xdcAmount) external view returns (uint256) { return xdcAmount * xdcUsdt.latestPrice() / 10 ** xdcUsdt.decimals(); } } contract SnippetTest is Test { function test_SiteSnippet() public { vm.warp(1_000_000); MockPluginFeed f = new MockPluginFeed(16); f.set(0.0345e16, block.timestamp); MyVault v = new MyVault(address(f)); assertEq(v.collateralValue(1000e18), 34.5e18); } }