BeamMW / beam

Beam: Scalable Confidential Cryptocurrency. Leading the way to Confidential DeFi
https://beam.mw
Apache License 2.0
699 stars 202 forks source link

Update explorer.htm & CodeQL workflow #1964

Closed Maxnflaxl closed 3 months ago

Maxnflaxl commented 3 months ago

-> @dbadol's explorer UI update -> codeQL analysis workflow update: https://github.blog/changelog/2023-01-18-code-scanning-codeql-action-v1-is-now-deprecated/

valdok commented 3 months ago

This is very nice, I like it.

But I have a couple of suggestions.

  1. In the contract state window, the "call history". In case a contract call invokes calling other contract (such as Nephrite method call sometimes invokes calling Oracle and DaoVault contract) - all this should be shown as a group call, separated from others.

In previous version there's a slightly more bold margin that separates those groups, and the Height is shown only for top-level call. In this version there'e no visible margin, and the Height field is at every row. Which is more confusing IMHO.

Ideally it'd be great to somehow put a bold visible separator between such groups. Also that'd be cool to "dim" other contracts invoked (i.e. maybe use smaller fonts), emphasize this specific contract being-viewed.

  1. In a contract list view if a contract holds or owns many different asset types - they're placed under "+x assets", which is very handy. Is it possible to give a user control of their expansion? I mean, a button at the top of the page, where user select to either expand, collapse, or semi-expand (i.e. expand unless too many items) those lists?
dbadol commented 3 months ago

@valdok Thanks for your comments! All very valid. I will work on that and submit an updated version.

The only reason I removed the rowspan display for multiple contract calls is that it was making table sorting and filtering much more complicated. I thus replaced it with a simple height repetition (not ideal, but quick and simple). Now, your comment makes me think that we can still make the result much more readable just by adjusting some display parameters. I will do it.

For the asset lists, the list is already automatically collapsed if there is more than 4 assets. But yes, it would be handy to have a general control somewhere. I will add it.

valdok commented 3 months ago

@dbadol More on this topic. Basically in those tables there's more info that can be shown. For example the call history of a contract, we currently show how much funds a contract locks/unlocks, and how much assets it emits/burns.

In addition to this we could show how much excess funds are put in/out of the current tx. In simple case where only 1 contract is invoked and no assets are emitted/burned that would match the numbers that contract locks/unlocks. But it could be more complex.

Another example: in blocks history, there're many more details can be shown. Such as current cumulative values (total number of UTXOs, delta UTXOs, and etc.)

The reason we didn't include all possible values in the table is the lack of screen space. But if we could give the user ability to show/hide all the columns - that would be very beneficial. Ideally for each such a table there should be a set of checkboxes with column names, each could be checked/unchecked by the user, and the user preferences could be stored locally.