whole_func_string: function (runState, cb) {
      const number = runState.stack.pop()
      var blockchain = runState.blockchain
      var diff = new BN(runState.block.header.number).sub(number)
  
      // block lookups must be within the past 256 blocks
      if (diff.gtn(256) || diff.lten(0)) {
        runState.stack.push(new BN(0))
        cb(null)
        return
      }
  
      blockchain.getBlock(number, function (err, block) {
        if (err) return cb(err)
        const blockHash = new BN(block.hash())
        runState.stack.push(blockHash)
        cb(null)
      })
    }
func_code_string: function (runState, cb) {
      const number = runState.stack.pop()
      var blockchain = runState.blockchain
      var diff = new BN(runState.block.header.number).sub(number)
  
      // block lookups must be within the past 256 blocks
      if (diff.gtn(256) || diff.lten(0)) {
        runState.stack.push(new BN(0))
        cb(null)
        return
      }
  
      blockchain.getBlock(number, function (err, block) {
        if (err) return cb(err)
        const blockHash = new BN(block.hash())
        runState.stack.push(blockHash)
        cb(null)
      })
    }
func_documentation_string: '0x40' range - block operations