Some of our resident scammers like to create offers for 10x or 100x the spot price, presumably in the hope that someone will buy them on accident.
Do not render these offers to potential buyers (their creators can still see them and cancel them).
Differential D17426
[Cashtab] Do not show wild-ass agora offers in OrderBook bytesofman on Mon, Dec 30, 06:06. Authored by
Details
Some of our resident scammers like to create offers for 10x or 100x the spot price, presumably in the hope that someone will buy them on accident. Do not render these offers to potential buyers (their creators can still see them and cancel them). npm test this is deployed at https://cashtab-local-dev.netlify.app/ can check out some crowded entries and note they are much cleaner with this diff, e.g. https://cashtab-local-dev.netlify.app/#/token/c67bf5c2b6d91cfb46a5c1772582eff80d88686887be10aa63b0945479cf4ed4
Diff Detail
Event TimelineComment Actions No issues on a technical level, but philosophically, I feel this is overreaching on Cashtab's part. There are valid use cases where the seller is essentially setting this as a limit order, to be sold at their target price. I know scammers are leveraging this but implementing this diff means all etoken prices would only move in controlled increments, which goes against the DEX mantra. Also none of the mainstream DEXs do this either. A better solution would be to use what cowswap or uniswap (I can't remember which one) did and simply pop up a warning if the user is buying more than 10x the current average spot price. If the user still gets tricked then that's on them and we've done our due diligence. Comment Actions it's a good point, in general agora should be 100% laissez faire the issue I have is with offers that are clearly fishing for someone making a mistake -- for example there are some XECX listings asking for 9 billion XEC for 95k XECX ... the "spot price" looks low / reasonable enough. The presence of these offers makes OrderBook less usable. They are also hugely asymmetric -- i.e. if only one person is tricked here, half the market cap of XECX just went to a scam. How about this solution:
I think it's important to screen some of the orders out just to make the component more usable, esp as we often need to load 100s (soon thousands?) of these at once. While the above-spot orders are "hidden" on the front end -- they are still functionally limit orders. If the spot price orders are consumed, then spot changes, and these more expensive orders would eventually be rendered by default. The orders themselves also still exist on the chain. Anyone could still accept them with their own front end or programmatically. Cashtab being open source, anyone could fork it to show whatever. Comment Actions I'm late in this discussion but imo the issue lies in the order book itself. It's hard to reason about for a few reasons:
Comment Actions These are good points but imo a lot gets beyond the scope of this diff. Indeed we do have many opportunities to improve OrderBook.
Technically possible but I think not impactful enough to justify the implementation. Requires 2 txs to accept two offers. So we would need to be chaining txs in the "back-end" of this front end app. We already do this for some cases, like listing SLP offers, so it's not impossible. But since fees are so low and accepting 1 offer still needs to be optimized, I don't think we are ready to add this yet. I could see supporting this after we add an option for text input of desired buy qty.
The grey bars are depth charts. if there is only 1 order, it will show 100% width. If there is another (smaller) order, its width will be proportional to the largest order. It's confusing in OrderBook because, on traditional exchanges, this depth is cumulative. So yes, this should be reworked on OrderBook to match the traditional exchange UX.
Yes. I do still like the "fill the depth bar green to show the user how much of the offer they are about to accept". But this too can probably be optimized. I think if we fix the depth bar cumulative issue described above, this becomes more clear.
We could, but esp given the above two points -- we already have a problem that the UI is too confusing. Rendering fewer bars is the easiest way to solve this problem. I think this kind of approach could work
Comment Actions
I'm ok with this approach if it brings immediate value to the UX. I understand that the order book improvements are much more work and seems to not belong to this diff, but if the root UI issue was fixed this diff would not exist to begin with. Comment Actions ok good discussion in this thread i have lots of problems to solve here. this approach solves a quick problem but ends up making the full solution more complex. the tech debt introduced is minimal but not zero.
|