contract KeeperBase {

  /**
   * @notice method that allows it to be simulated via eth_call by checking that
   * the sender is the zero address.
   */
  function preventExecution()
    internal
    view
  {
    require(tx.origin == address(0), "only for simulated backend");
  }

  /**
   * @notice modifier that allows it to be simulated via eth_call by checking
   * that the sender is the zero address.
   */
  modifier cannotExecute()
  {
    preventExecution();
    _;
  }

}
function preventExecution()
  internal
  view
{
  require(tx.origin == address(0), "only for simulated backend");
}

/**
 * @notice method that allows it to be simulated via eth_call by checking that
 * the sender is the zero address.
 */