interface AnchorOracle {
    function numBlocksPerPeriod() external view returns (uint); // approximately 1 hour: 60 seconds/minute * 60 minutes/hour * 1 block/15 seconds

    function assetPrices(address asset) external view returns (uint);

    struct Anchor {
        // floor(block.number / numBlocksPerPeriod) + 1
        uint period;

        // Price in ETH, scaled by 10**18
        uint priceMantissa;
    }
    function anchors(address asset) external view returns (Anchor memory);
}
function assetPrices(address asset) external view returns (uint);

// approximately 1 hour: 60 seconds/minute * 60 minutes/hour * 1 block/15 seconds