ebtc-protocol / ebtc-multisig

eBTC's EVM multisig operations.
GNU Affero General Public License v3.0
0 stars 0 forks source link

Develop Timelock transparency Dashboard #6

Closed sajanrajdev closed 5 months ago

sajanrajdev commented 7 months ago

Develop a dashboard for ease of access to the state of every transaction loaded to the timelocks and the necessary information for both users and reviewers:

Nice to have: For each timelock

petrovska-petro commented 7 months ago

should not be this part of ui or f/e team ticketing?

sajanrajdev commented 7 months ago

should not be this part of ui or f/e team ticketing?

The UI team has their hands full until after launch so we decided that the development of the MVP can be handled by the multisig pod with their guidance. This will be a functional version so that users and reviewers can refer to from the get to. Once their bandwidth allows it, the UI team will take it over and improve.

sajanrajdev commented 7 months ago

After discussions with the UI team, we decided that a Dune Dashboard should be enough for an MVP. The scope is the same. As bandwidth allows, the UI team will work on a custom web version.

petrovska-petro commented 7 months ago

can handle the dune at my end

petrovska-petro commented 6 months ago

during the initial phases dune dash was explored as a solution, but it is foreseen to required lots of workarounds into decoding and a separate/standalone ui exposing timelock via subgraph likely will be easier to develop in JS stack

in lack of existing timelock deployed on sepolia to have all wired up already the tentative workaround was to leverage an existing timelock in mainnet and a latter stage replace with the mainnet address once the address was added into the dune books

items:

new contracts for decoding abi

roles tracking

in dune that was doable via events emitted in the access control sc, when revoking or granting. which was simply achivable by decoding the contract in dune and having those evens out of the box RoleGranted & RoleRevoked

can imagine querying those w/ JS are more straight fwd on the updates

tx statuses

in dune was doable only by overridden the status using again events once a tx was schedule w/ status pending. think: CallExecuted, Cancelled, CallScheduled

samples w/ persistent challenge of data decoding:

sources to facilitate decoding of the data given its relatively limit amount of "actions" that will go thru the timelock, in the standalone ui will be simpler to decode as you can have the abi/signatures and digest smoothly

sources:

  1. https://dune.com/queries/1299528
  2. https://dune.com/agaperste/event-and-function-signature-sleuthing
  3. https://joshua-data.medium.com/intro-to-encoding-and-decoding-ethereum-contract-functions-0e12583916aa
  4. https://alexkroeger.mirror.xyz/0C3EQBtFqAK4k2TAGPZhg0JMY-upfTAxuTD-o91vBPc
sajanrajdev commented 5 months ago

Dashboard was built as a React project leveraging The Graph: https://github.com/ebtc-protocol/timelock-dashboard Live deploy: http://www.timelock.ebtc.finance/