CurveTricryptoOracle incorrectly assumes that WETH is always the last token in the pool which leads to bad LP pricing
CurveTricryptoOracle.sol#L53-L63\\n```\\n    if (tokens.length == 3) {\\n        /// tokens[2] is WETH\\n        uint256 ethPrice = base.getPrice(tokens[2]);\\n        return\\n            (lpPrice(\\n                virtualPrice,\\n                base.getPrice(tokens[1]),\\n                ethPrice,\\n                base.getPrice(tokens[0])\\n            ) * 1e18) / ethPrice;\\n    }\\n```\\n\\nWhen calculating LP prices, CurveTricryptoOracle#getPrice always assumes that WETH is the second token in the pool. This isn't the case which will cause the LP to be massively overvalued.\\nThere are 6 tricrypto pools currently deployed on mainnet. Half of these pools have an asset other than WETH as token[2]:\\n```\\n    0x4ebdf703948ddcea3b11f675b4d1fba9d2414a14 - CRV\\n    0x5426178799ee0a0181a89b4f57efddfab49941ec - INV\\n    0x2889302a794da87fbf1d6db415c1492194663d13 - wstETH\\n```\\n
There is no need to assume that WETH is the last token. Simply pull the price for each asset and input it into lpPrice.
LP will be massively overvalued leading to overborrowing and protocol insolvency
```\\n    if (tokens.length == 3) {\\n        /// tokens[2] is WETH\\n        uint256 ethPrice = base.getPrice(tokens[2]);\\n        return\\n            (lpPrice(\\n                virtualPrice,\\n                base.getPrice(tokens[1]),\\n                ethPrice,\\n                base.getPrice(tokens[0])\\n            ) * 1e18) / ethPrice;\\n    }\\n```\\n