Open hdevalence opened 6 months ago
Additional TODO for tracking:
The EventPositionExecution
events now include the previous reserves state (allowing complete trade display) as well as a context
field with the end-to-end pair (allowing display of something like "while routing C -> D")
The MVP code is now up, with a skeleton of the LP position page: https://dex-explorer.testnet-preview.penumbra.zone/lp/plpid1zh5ngkkhcnlzugaeztk74umu7r7ytq9ghurz6v25n6m7mzyzvruqa3fdve
Brainstorming an initial list of changes to fill in data:
Position Status Box
ValueViewComponent
to display token amounts if possible. This is blocked on being able to use those components from external applications, which might have some complexityMetadata
by asset ID: https://github.com/prax-wallet/registryTimeline
The visual design language for the timeline is that the left-aligned boxes are actions by the user who controls the position, and the right-aligned boxes are actions by the DEX engine interacting with the position (currently this is just filling against it)
General thought on the "timeline"-ness: can we put explicit time markers on the side of the current content? Maybe putting block heights on one side and date time on the other, in a greyed out font that blends with the background?
User Actions
EventPositionOpen
. This should show:EventPositionClose
. This should show:EventPositionWithdraw
. This should show:DEX Actions
There may be many, many executions connected to a particular position. It would be good to have some way to optionally collapse these, maybe using some heuristics.
One concrete suggestion: if there are more than
2*N
executions, show only the firstN
and lastN
trades, with a vertical ellipsis in between (maybe also with a count of how many items are elided). Clicking on the ellipsis shows all of the intervening executions. The user can restore the collapsed view by refreshing the page. Then, setN = 1
, so we only show the first and last trades, but have code where we could easily change to show more or less if we change our mind.EventPositionExecution
. This should show: