code: function makeDirectEvaluators(web3, gateway) {
    const evaluator = makeEstimationEvaluators();
    evaluator.if = node => ([iA, iB]) => {
      const bool = gateway.at(node.gatewayAddress).getValue.call();
      return bool ? iA : iB;
    };
    evaluator.scaleObs = node => i => {
      const scale = gateway.at(node.gatewayAddress).getValue.call();
      return [i[0] * scale, i[1] * scale];
    };
    return evaluator;
  }
docs: Returns {@link NodeEvaluators} object for evaluating using `direct`
  (See {@link makeEstimationEvaluators}) method.
  Nodes are defined exactly as for `estimate` method with exceptions of:
  <ul>
  <li>`if` : selects the child interval based on the boolean
  value obtained from calling the gateway</li>
  <li>`scaleObs`  : interval arithmetic scalar multiplication
  with scale obtained from calling the gateway</li>
  </ul>
  @param {Web3} web3 a web3 instance connected to Ethereum node
  @param {Gateway} gateway a gateway instance not connected to any address
  @return {NodeEvaluators} node evaluators object describing `direct`
  evaluation method