Decent Smoke Owl
High
Creation of bracket order does not check if the tokenOut is supported.
There is a wrong check in _createOrder()
in Bracket
contract:
require(
address(MASTER.oracles(tokenIn)) != address(0x0) &&
address(MASTER.oracles(tokenIn)) != address(0x0),
"Oracle !exist"
);
Function wrongly double checks if tokenIn
has an oracle instead of checking both tokenIn
and tokenOut
.
N/A
N/A
Users can use all kind of unsupported/malicious tokens.
This leads to unexpected behavior as core assumption that only supported tokens will be used.
One of the impacts of this would be creating such orders for not supported tokenOut. Trying to check if these orders are inRange would always fail as there is not an oracle defined to get the exchange rate. This will brick the whole automation process since checkUpkeep is always going to revert when it reach such order.
N/A
Check if both tokenIn
and tokenOut
has oracles.