Почему getExpectedRate() возвращает 0?

#javascript #solidity

Вопрос:

Я работаю над сценарием мониторинга цен на блокчейне. Логика очень проста, но я не могу понять, почему для uni и sushi swap скрипт возвращает сумму, а для kyber-нет. Я попытался поменяться местами на платформе, и все кажется в порядке.

Это код, для тестирования просто вставьте действительного поставщика WSS

 
     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)