interface IERC20 {
    function decimals() external view returns (uint8);
}

library MyLibrary {

  function aViewCall(address token) internal view {
    (bool success ,  ) = token.staticcall(
            abi.encodeWithSelector(IERC20.decimals.selector)
            );
     require(success, "call failed");
  }
}

contract A {
  uint256 private protectMe = 1;  function good() external {
    MyLibrary.aViewCall(0x6B175474E89094C44Da98b954EedeAC495271d0F);
    protectMe += 1;
  }
  function good1() external {
    (bool success,) = address(MyLibrary).staticcall(abi.encodeWithSignature("aViewCall(address)"));
    require(success, "call failed");
    protectMe += 1;
  }
}
