Bumpy Silver Albatross
Medium
In BanchorExchangeProvider.sol:_createExchange we're generating exchangeId as encodePacked of symbols of reserveAssets and tokenAddress. Since .symbol for tokens shouldn`t be unique in ETH ecosystem we might got id which will collide with another one.
BanchorExchangeProvider.sol:_createExchange
since it is private function it requires some activity from admin, however, calling this function with such tokens, where the symbols are identical to the symbols from another pool, is a normal functioning of the protocol, and accordingly, does not imply that the admin has violated any rules or has been deceived
Admin has to add exchange with tokens which have same symbols as an already existing exchange
No response
Protocol will re-write (DELETE) existing exchange struct with all data and add new one on it's place bcs it
exchanges[exchangeId] = exchange;
It will make a lot of confusion across the protocol since it is crucial struct.
No response
add check for exchangeId uniqueness inside BanchorExchangeProvider.sol:_createExchange