dfuse-eosio icon indicating copy to clipboard operation
dfuse-eosio copied to clipboard

In eosq transaction page, display account(s) holding key(s) that signed transaction

Open maoueh opened this issue 4 years ago • 2 comments

One cool feature requested recently was to see the list of accounts controlling the key used to signed a transaction.

Not sure of the exact UI aspect, maybe a popup on current Signed By display line or besides each of the public key list (because there could be more than one key signing the transaction).

Some thing to note here:

  • We can use dfuse /v0/state/key_accounts here to achieve that.
  • The query must be performed using the block_num in which the transaction was, so we respect the timeframe of the transaction and the state at this block height.
  • There might be multiple keys to sign a transaction
  • There might be multiple accounts controlling the signed key, we must do the UI in consequence. It think we should aim for a design when there is a single account for the key and when there is more than that
  • When there is more than 1 account controlling the key, it must be made clear in the UI that it's one this account that used the key, but we don't know which one for sure

image

(Screenshot from https://eosq.app/tx/a4816e3a54c8f29a5c60c025bf1c6bc3c2bc11cf5dc5a9c1b4e8b979e47057a6)

When there is a single account, in the design, we could even think about showing the account straight and the key in smaller:

Signed By:   [bluebet2user](/account/bluebet2user) (<small>EOS7Dn2u2nCt7YZnC4JXEqwnMEB1oB9dyWTGHd1vmSMbhKPjCwrXC</small>)
             [bluebetproms](bluebetproms) (<small>EOS5No1zoNusvFU2yhUock7RTEkKTQeeA5gCCZV9BQi1bCzeeQPB3</small>)

(Markdown pseudo style)

maoueh avatar May 28 '20 03:05 maoueh

+1. Would be a fantastic addition to eosq.

scottoau avatar May 28 '20 09:05 scottoau

We are building this as a separate product. We show the original signer of the transaction by looking up the account that has the key. In addition, we ensure that only human's are allowed private keys, making all transactions traced to a human. See https://github.com/Conscious-Cities/eosio-react-app/commit/a15439d16c57cd47d819f05cf536a2b4b378e44a#diff-127d838aec137f38f06c6f929af11b0cR106

theblockstalk avatar Jun 09 '20 10:06 theblockstalk