Tokens with more than 18 decimal points will cause issues
It is assumed that the maximum number of decimals for each token is 18. However uncommon, but it is possible to have tokens with more than 18 decimals, as an Example YAMv2 has 24 decimals. This can result in broken code flow and unpredictable outcomes (e.g. an underflow will result with really high rates).\\n```\\n    function getSellRate(address \\_srcAddr, address \\_destAddr, uint \\_srcAmount, bytes memory) public override view returns (uint rate) {\\n        (rate, ) = KyberNetworkProxyInterface(KYBER\\_INTERFACE)\\n            .getExpectedRate(IERC20(\\_srcAddr), IERC20(\\_destAddr), \\_srcAmount);\\n\\n        // multiply with decimal difference in src token\\n        rate = rate \\* (10\\*\\*(18 - getDecimals(\\_srcAddr)));\\n        // divide with decimal difference in dest token\\n        rate = rate / (10\\*\\*(18 - getDecimals(\\_destAddr)));\\n    }\\n```\\n
Make sure the code won't fail in case the token's decimals is more than 18.
```\\n    function getSellRate(address \\_srcAddr, address \\_destAddr, uint \\_srcAmount, bytes memory) public override view returns (uint rate) {\\n        (rate, ) = KyberNetworkProxyInterface(KYBER\\_INTERFACE)\\n            .getExpectedRate(IERC20(\\_srcAddr), IERC20(\\_destAddr), \\_srcAmount);\\n\\n        // multiply with decimal difference in src token\\n        rate = rate \\* (10\\*\\*(18 - getDecimals(\\_srcAddr)));\\n        // divide with decimal difference in dest token\\n        rate = rate / (10\\*\\*(18 - getDecimals(\\_destAddr)));\\n    }\\n```\\n