API3 DAO Tracker provides a web interface to see on-chain details of the API3 DAO, including:
- Members, their stakes, shares, voting power and votings history
- Details of the votings
- All events from the smart contracts of the API3 DAO
- User-friendly event history (compacted, colourful and without pennies)
- Display DAO treasuries balances
- Hourly re-checks of ENS, vote scripts and treasuries instead of checks on start
- Include shares/rewards/stakes in rewards snapshots and display both stakes in wallet history
- Match total number of shares (check unstaking cases)
- Finish mobile look
- Fix message about staking target for the lowest and highest value
- Clean up code for vote script parsing
- Introduce more links to Etherscan
- Introduce configuration for
known tokens
. For treasuries and scripts parsing - Votes: group into PENDING/EXECUTED/REJECTED, order would better be by reverse start date. Current order is incorrect
- Votes: missing the date of expiration and date of execution
- Improve filter for DAO members by classificaiton
- CSV export: Votings, Votes, Wallets, Rewards, Delegations, Events
- Prometheus metrics
- This tool is built on Rust, and to build it locally you need Rust toolchain
- To run this tool locally, you need the connection to gETH IPC endpoint. The tool doesn't do polling from HTTP endpoint (at least yet)
- The tool contains
client
andserver
. - To build
client
, you need trunkrs.dev (which is an alternative to webpack) distribution, and it should be simplytrunk build
to prepare assets for distribution. - After your
client/dist
folder is ready, copy environment variables into.env
from the environment you want to work with, mainnet or rinkeby - After that
server
could be run withcargo run --release
. - The most important - you also need to have patience to wait for all previous events to be cached ;). Please make sure
CACHE_DIR
folder was set up and mentioned as environment variable properly. Downloaded batches of events will be saved, so time on the next run would be less (though it would be still a few minutes for every day of the history). - It would be useful to review
run.sh
file, it contains exact scripts that are used for building and deployments
- This tool uses trunkrs.dev. Please install at least 0.14 version.
- You need to download state as JSON file into your client folder as JSON file
wget https://enormous.cloud/dao/api3/tracker/api/state -O appstate.json
- Run
trunk serve
from the client folder, and it will rebuild the client-side on every save, watching your changes.
- This is a work in progress.
- The numbers might not match to the penny as the implementation of calculations are not identical to the original smart contract.
- Please create an issue in case of proposals or questions.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
MIT