'Why getExpectedRate() return 0?

I'm working on a price monitoring script on the Ethereum blockchain. The logic is very simple but I can't figure out why for uni and sushi swap the script return an amount but for Kyber it does not. I've tried to swap on the platform and everything seems ok.

This is the code, to test just insert a valid WSS provider

     const ethers = require('ethers')                                                                                                               
     const WSS_RPC = 'wss://mainnet.infura.io/ws/v3/00f257d59c994582a65abefecb18c0bf'                                                                        
     const WSS_ETH_PROVIDER = new ethers.providers.WebSocketProvider(WSS_RPC)                                                                                
                                                                                                                                                                
     const TOKEN_ADDRESS = {                                                                                                                                    
         WETH: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',                                                                                                               
         DAI: '0x6b175474e89094c44da98b954eedeac495271d0f',                                                                                                     
         USDT: '0xdac17f958d2ee523a2206206994597c13d831ec7'                                                                                                         
     }                                                                                                                                                                                          
                                                                                                                                                                
     const CONTRACT_ADDRESS = {                                                                                                                                                                 
         uniSwapRouter : "0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D",                                                                                                                          
         sushiSwapRouter : "0xd9e1cE17f2641f24aE83637ab66a2cca9C378B9F",                                                                                                                        
         kyberProxyNetwork : "0x9AAb3f75489902f3a48495025729a0AF77d4b11e"                                                                                                                       
     }                                                                                                                                                                                          
                                                                                                                                                                
     // ABI of Contracts                                                                                                                                        
     const ABI = {                                                                                                                                              
         uniSwapRouter : [ 'function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts)'],                     
         sushiSwapRouter : [ 'function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts)'],                   
         kyberProxyNetwork : ['function getExpectedRate(address src, address dest, uint256 srcQty) external view returns (uint256 expectedRate, uint256 worstRate)']
         }                                                                                                                                                      
                                                                                                                                                                
     // CONTRACT INSTANCE                                                                                                                                       
     const CONTRACT = {                                                                                                                                                                         
         uniSwapRouter : new ethers.Contract(CONTRACT_ADDRESS.uniSwapRouter, ABI.uniSwapRouter, WSS_ETH_PROVIDER),                                                                              
          sushiSwapRouter : new ethers.Contract(CONTRACT_ADDRESS.sushiSwapRouter, ABI.sushiSwapRouter, WSS_ETH_PROVIDER),                                                                        
          kyberProxyNetwork: new ethers.Contract(CONTRACT_ADDRESS.kyberProxyNetwork, ABI.kyberProxyNetwork, WSS_ETH_PROVIDER)                                    
      }                                                                                                                                                          
                                                                                                                                                                 
                                                                                                                                                                 
      // PRICE MONITORING LOGIC                                                                                                                                  
      async function priceMonitoring(){                                                                                                                          
          const uniSwapPrice = await CONTRACT.uniSwapRouter.getAmountsOut(1000, [TOKEN_ADDRESS.WETH, DAI])                                                       
          const sushiSwapPrice = await CONTRACT.uniSwapRouter.getAmountsOut(1000, [TOKEN_ADDRESS.WETH, TOKEN_ADDRESS.DAI])                                       
          const  kyberNetworkPrice = await CONTRACT.kyberProxyNetwork.getExpectedRate(TOKEN_ADDRESS.DAI, TOKEN_ADDRESS.WETH, 1000)                               
                                                                                                                                                                 
          var priceComparison = `SUSHI: ${sushiSwapPrice[1].toString()}   UNI: ${uniSwapPrice[1].toString()}   KYBER: ${ethers.utils.formatEther(kyberNetworkPrice[1])}`
          console.log(priceComparison)                                                                                                                      
      }                                                                                                                                             
                                                                                                                                                    
      setInterval(async () => {await priceMonitoring()}, 3000)


Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source